react-native-inapp-inspector 2.3.25 → 2.4.0

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 (123) hide show
  1. package/README.md +26 -5
  2. package/dist/commonjs/components/AnalyticsDetail.js +9 -6
  3. package/dist/commonjs/components/AppHeaderLogo.js +4 -6
  4. package/dist/commonjs/components/Inspector/AnalyticsFilterModal.js +1 -1
  5. package/dist/commonjs/components/Inspector/AnalyticsTab.js +11 -15
  6. package/dist/commonjs/components/Inspector/ConsoleTab.js +11 -14
  7. package/dist/commonjs/components/Inspector/CrashDetail.js +7 -6
  8. package/dist/commonjs/components/Inspector/CrashTab.js +14 -14
  9. package/dist/commonjs/components/Inspector/DebuggingTab.js +6 -6
  10. package/dist/commonjs/components/Inspector/DeviceInfoTab.js +77 -43
  11. package/dist/commonjs/components/Inspector/FabLauncher.js +8 -9
  12. package/dist/commonjs/components/Inspector/InspectorHeader.js +93 -70
  13. package/dist/commonjs/components/Inspector/LogDetail.js +10 -7
  14. package/dist/commonjs/components/Inspector/MainScreen.js +67 -29
  15. package/dist/commonjs/components/Inspector/NetworkDetail.js +29 -28
  16. package/dist/commonjs/components/Inspector/NetworkFilterModal.js +1 -1
  17. package/dist/commonjs/components/Inspector/NetworkTab.js +87 -85
  18. package/dist/commonjs/components/Inspector/PushCard.d.ts +4 -0
  19. package/dist/commonjs/components/Inspector/PushCard.js +89 -0
  20. package/dist/commonjs/components/Inspector/PushDetail.d.ts +4 -0
  21. package/dist/commonjs/components/Inspector/PushDetail.js +190 -0
  22. package/dist/commonjs/components/Inspector/PushTab.d.ts +3 -0
  23. package/dist/commonjs/components/Inspector/PushTab.js +45 -0
  24. package/dist/commonjs/components/Inspector/ReduxDetail.js +16 -13
  25. package/dist/commonjs/components/Inspector/ReduxTab.js +13 -23
  26. package/dist/commonjs/components/Inspector/SettingsPanel.js +253 -105
  27. package/dist/commonjs/components/Inspector/StorageTab.js +35 -35
  28. package/dist/commonjs/components/Inspector/TabBar.js +9 -8
  29. package/dist/commonjs/components/Inspector/UpdateAvailableModal.js +2 -2
  30. package/dist/commonjs/components/JsonViewer.js +77 -90
  31. package/dist/commonjs/components/ModuleErrorBoundary.d.ts +24 -0
  32. package/dist/commonjs/components/ModuleErrorBoundary.js +33 -0
  33. package/dist/commonjs/components/NetworkIcons.d.ts +3 -3
  34. package/dist/commonjs/components/NetworkIcons.js +10 -6
  35. package/dist/commonjs/components/SegmentedTabs.d.ts +4 -1
  36. package/dist/commonjs/components/SegmentedTabs.js +12 -8
  37. package/dist/commonjs/components/ShareButton.d.ts +11 -0
  38. package/dist/commonjs/components/ShareButton.js +6 -0
  39. package/dist/commonjs/constants/version.d.ts +1 -1
  40. package/dist/commonjs/constants/version.js +1 -1
  41. package/dist/commonjs/customHooks/crashHandler.js +4 -4
  42. package/dist/commonjs/customHooks/networkLogger.js +1 -1
  43. package/dist/commonjs/customHooks/pushNotificationLogger.d.ts +19 -0
  44. package/dist/commonjs/customHooks/pushNotificationLogger.js +1 -0
  45. package/dist/commonjs/helpers/memoryManager.d.ts +2 -1
  46. package/dist/commonjs/helpers/memoryManager.js +1 -1
  47. package/dist/commonjs/helpers/settingsStore.d.ts +1 -0
  48. package/dist/commonjs/helpers/settingsStore.js +1 -1
  49. package/dist/commonjs/helpers/shareFormatter.d.ts +13 -0
  50. package/dist/commonjs/helpers/shareFormatter.js +7 -0
  51. package/dist/commonjs/i18n/locales/en.json +1 -1
  52. package/dist/commonjs/index.d.ts +5 -2
  53. package/dist/commonjs/index.js +4 -4
  54. package/dist/commonjs/push.d.ts +4 -0
  55. package/dist/commonjs/push.js +1 -0
  56. package/dist/commonjs/types/enums.d.ts +30 -0
  57. package/dist/commonjs/types/enums.js +1 -1
  58. package/dist/commonjs/types/index.d.ts +10 -0
  59. package/dist/commonjs/types/interfaces.d.ts +63 -7
  60. package/dist/esm/components/AnalyticsDetail.js +28 -25
  61. package/dist/esm/components/AppHeaderLogo.js +5 -7
  62. package/dist/esm/components/Inspector/AnalyticsFilterModal.js +14 -14
  63. package/dist/esm/components/Inspector/AnalyticsTab.js +35 -39
  64. package/dist/esm/components/Inspector/ConsoleTab.js +50 -53
  65. package/dist/esm/components/Inspector/CrashDetail.js +11 -10
  66. package/dist/esm/components/Inspector/CrashTab.js +14 -14
  67. package/dist/esm/components/Inspector/DebuggingTab.js +10 -10
  68. package/dist/esm/components/Inspector/DeviceInfoTab.js +208 -174
  69. package/dist/esm/components/Inspector/FabLauncher.js +41 -42
  70. package/dist/esm/components/Inspector/InspectorHeader.js +138 -115
  71. package/dist/esm/components/Inspector/LogDetail.js +24 -21
  72. package/dist/esm/components/Inspector/MainScreen.js +100 -62
  73. package/dist/esm/components/Inspector/NetworkDetail.js +88 -87
  74. package/dist/esm/components/Inspector/NetworkFilterModal.js +8 -8
  75. package/dist/esm/components/Inspector/NetworkTab.js +136 -134
  76. package/dist/esm/components/Inspector/PushCard.d.ts +4 -0
  77. package/dist/esm/components/Inspector/PushCard.js +89 -0
  78. package/dist/esm/components/Inspector/PushDetail.d.ts +4 -0
  79. package/dist/esm/components/Inspector/PushDetail.js +190 -0
  80. package/dist/esm/components/Inspector/PushTab.d.ts +3 -0
  81. package/dist/esm/components/Inspector/PushTab.js +45 -0
  82. package/dist/esm/components/Inspector/ReduxDetail.js +40 -37
  83. package/dist/esm/components/Inspector/ReduxTab.js +103 -113
  84. package/dist/esm/components/Inspector/SettingsPanel.js +406 -258
  85. package/dist/esm/components/Inspector/StorageTab.js +158 -158
  86. package/dist/esm/components/Inspector/TabBar.js +28 -27
  87. package/dist/esm/components/Inspector/UpdateAvailableModal.js +1 -1
  88. package/dist/esm/components/JsonViewer.js +101 -114
  89. package/dist/esm/components/ModuleErrorBoundary.d.ts +24 -0
  90. package/dist/esm/components/ModuleErrorBoundary.js +33 -0
  91. package/dist/esm/components/NetworkIcons.d.ts +3 -3
  92. package/dist/esm/components/NetworkIcons.js +7 -3
  93. package/dist/esm/components/SegmentedTabs.d.ts +4 -1
  94. package/dist/esm/components/SegmentedTabs.js +12 -8
  95. package/dist/esm/components/ShareButton.d.ts +11 -0
  96. package/dist/esm/components/ShareButton.js +6 -0
  97. package/dist/esm/constants/version.d.ts +1 -1
  98. package/dist/esm/constants/version.js +1 -1
  99. package/dist/esm/customHooks/crashHandler.js +6 -6
  100. package/dist/esm/customHooks/networkLogger.js +1 -1
  101. package/dist/esm/customHooks/pushNotificationLogger.d.ts +19 -0
  102. package/dist/esm/customHooks/pushNotificationLogger.js +1 -0
  103. package/dist/esm/helpers/memoryManager.d.ts +2 -1
  104. package/dist/esm/helpers/memoryManager.js +1 -1
  105. package/dist/esm/helpers/settingsStore.d.ts +1 -0
  106. package/dist/esm/helpers/settingsStore.js +1 -1
  107. package/dist/esm/helpers/shareFormatter.d.ts +13 -0
  108. package/dist/esm/helpers/shareFormatter.js +7 -0
  109. package/dist/esm/i18n/locales/en.json +1 -1
  110. package/dist/esm/index.d.ts +5 -2
  111. package/dist/esm/index.js +7 -7
  112. package/dist/esm/push.d.ts +4 -0
  113. package/dist/esm/push.js +1 -0
  114. package/dist/esm/types/enums.d.ts +30 -0
  115. package/dist/esm/types/enums.js +1 -1
  116. package/dist/esm/types/index.d.ts +10 -0
  117. package/dist/esm/types/interfaces.d.ts +63 -7
  118. package/package.json +53 -10
  119. package/src/native/NativeInspector.ts +0 -1
  120. package/dist/commonjs/components/BrandSquareIcon.d.ts +0 -5
  121. package/dist/commonjs/components/BrandSquareIcon.js +0 -112
  122. package/dist/esm/components/BrandSquareIcon.d.ts +0 -5
  123. package/dist/esm/components/BrandSquareIcon.js +0 -112
@@ -1,4 +1,4 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(r,o,t,l){l===void 0&&(l=t);var a=Object.getOwnPropertyDescriptor(o,t);(!a||("get"in a?!o.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return o[t]}}),Object.defineProperty(r,l,a)}):(function(r,o,t,l){l===void 0&&(l=t),r[l]=o[t]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(r,o){Object.defineProperty(r,"default",{enumerable:!0,value:o})}):function(r,o){r.default=o}),__importStar=this&&this.__importStar||(function(){var r=function(o){return r=Object.getOwnPropertyNames||function(t){var l=[];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(l[l.length]=a);return l},r(o)};return function(o){if(o&&o.__esModule)return o;var t={};if(o!=null)for(var l=r(o),a=0;a<l.length;a++)l[a]!=="default"&&__createBinding(t,o,l[a]);return __setModuleDefault(t,o),t}})(),__importDefault=this&&this.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.StorageTab=void 0;const react_1=__importStar(require("react")),react_native_1=require("react-native"),TouchableScale_1=__importDefault(require("../TouchableScale")),EndOfListFooter_1=__importDefault(require("../EndOfListFooter")),AppColors_1=require("../../styles/AppColors"),AppFonts_1=require("../../styles/AppFonts"),i18n_1=require("../../i18n"),NetworkIcons_1=require("../NetworkIcons"),storageInspector_1=require("../../customHooks/storageInspector"),helpers_1=require("../../helpers"),toast_1=require("../../helpers/toast"),getTypeBadge=r=>{switch(r){case"json":return{label:"JSON",color:AppColors_1.AppColors.purple,bg:`${AppColors_1.AppColors.purple}16`};case"number":return{label:"NUM",color:AppColors_1.AppColors.warningIconGold,bg:`${AppColors_1.AppColors.warningIconGold}16`};case"boolean":return{label:"BOOL",color:AppColors_1.AppColors.emerald500,bg:`${AppColors_1.AppColors.emerald500}16`};case"null":return{label:"NULL",color:AppColors_1.AppColors.grayTextWeak,bg:`${AppColors_1.AppColors.grayTextWeak}16`};default:return{label:"STR",color:AppColors_1.AppColors.blue500,bg:`${AppColors_1.AppColors.blue500}16`}}},StorageEntryCard=react_1.default.memo(function({entry:o,isExpanded:t,onToggleExpand:l,onCopy:a,onEdit:x,onDelete:n,badge:c}){const _=(0,react_1.useMemo)(()=>o.byteSize<1024?`${o.byteSize} B`:`${(o.byteSize/1024).toFixed(1)} KB`,[o.byteSize]),A=(0,react_1.useMemo)(()=>{if(!t)return o.value.length>250?o.value.slice(0,250)+"...":o.value;if(o.type==="json")try{const s=o.parsedValue??JSON.parse(o.value);return JSON.stringify(s,null,2)}catch{return o.value}return o.value},[t,o.value,o.type,o.parsedValue]);return<react_native_1.View style={styles.entryCard}>
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(r,o,t,l){l===void 0&&(l=t);var a=Object.getOwnPropertyDescriptor(o,t);(!a||("get"in a?!o.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return o[t]}}),Object.defineProperty(r,l,a)}):(function(r,o,t,l){l===void 0&&(l=t),r[l]=o[t]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(r,o){Object.defineProperty(r,"default",{enumerable:!0,value:o})}):function(r,o){r.default=o}),__importStar=this&&this.__importStar||(function(){var r=function(o){return r=Object.getOwnPropertyNames||function(t){var l=[];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(l[l.length]=a);return l},r(o)};return function(o){if(o&&o.__esModule)return o;var t={};if(o!=null)for(var l=r(o),a=0;a<l.length;a++)l[a]!=="default"&&__createBinding(t,o,l[a]);return __setModuleDefault(t,o),t}})(),__importDefault=this&&this.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.StorageTab=void 0;const react_1=__importStar(require("react")),react_native_1=require("react-native"),TouchableScale_1=__importDefault(require("../TouchableScale")),EndOfListFooter_1=__importDefault(require("../EndOfListFooter")),AppColors_1=require("../../styles/AppColors"),AppFonts_1=require("../../styles/AppFonts"),i18n_1=require("../../i18n"),NetworkIcons_1=require("../NetworkIcons"),storageInspector_1=require("../../customHooks/storageInspector"),helpers_1=require("../../helpers"),toast_1=require("../../helpers/toast"),getTypeBadge=r=>{switch(r){case"json":return{label:"JSON",color:AppColors_1.AppColors.purple,bg:`${AppColors_1.AppColors.purple}16`};case"number":return{label:"NUM",color:AppColors_1.AppColors.warningIconGold,bg:`${AppColors_1.AppColors.warningIconGold}16`};case"boolean":return{label:"BOOL",color:AppColors_1.AppColors.emerald500,bg:`${AppColors_1.AppColors.emerald500}16`};case"null":return{label:"NULL",color:AppColors_1.AppColors.grayTextWeak,bg:`${AppColors_1.AppColors.grayTextWeak}16`};default:return{label:"STR",color:AppColors_1.AppColors.blue500,bg:`${AppColors_1.AppColors.blue500}16`}}},StorageEntryCard=react_1.default.memo(function({entry:o,isExpanded:t,onToggleExpand:l,onCopy:a,onEdit:v,onDelete:n,badge:d}){const S=(0,react_1.useMemo)(()=>o.byteSize<1024?`${o.byteSize.toLocaleString()} B`:`${(o.byteSize/1024).toLocaleString(void 0,{minimumFractionDigits:1,maximumFractionDigits:1})} KB`,[o.byteSize]),A=(0,react_1.useMemo)(()=>{if(!t)return o.value.length>250?o.value.slice(0,250)+"...":o.value;if(o.type==="json")try{const s=o.parsedValue??JSON.parse(o.value);return JSON.stringify(s,null,2)}catch{return o.value}return o.value},[t,o.value,o.type,o.parsedValue]);return<react_native_1.View style={styles.entryCard}>
2
2
 
3
3
  <react_native_1.View style={styles.entryHeader}>
4
4
  <react_native_1.View style={{flex:1,marginRight:8}}>
@@ -6,12 +6,12 @@
6
6
  <react_native_1.Text style={styles.entryKey}numberOfLines={1}selectable>
7
7
  {o.key}
8
8
  </react_native_1.Text>
9
- <react_native_1.View style={[styles.typeBadge,{backgroundColor:c.bg,borderColor:`${c.color}33`}]}>
10
- <react_native_1.Text style={[styles.typeBadgeText,{color:c.color}]}>
11
- {c.label}
9
+ <react_native_1.View style={[styles.typeBadge,{backgroundColor:d.bg,borderColor:`${d.color}33`}]}>
10
+ <react_native_1.Text style={[styles.typeBadgeText,{color:d.color}]}>
11
+ {d.label}
12
12
  </react_native_1.Text>
13
13
  </react_native_1.View>
14
- <react_native_1.Text style={styles.sizeText}>{_}</react_native_1.Text>
14
+ <react_native_1.Text style={styles.sizeText}>{S}</react_native_1.Text>
15
15
  </react_native_1.View>
16
16
  </react_native_1.View>
17
17
 
@@ -21,7 +21,7 @@
21
21
  <NetworkIcons_1.CopyIcon size={12}color={AppColors_1.AppColors.grayText}/>
22
22
  </TouchableScale_1.default>
23
23
 
24
- <TouchableScale_1.default hitSlop={6}onPress={()=>x(o)}style={styles.entryActionBtn}>
24
+ <TouchableScale_1.default hitSlop={6}onPress={()=>v(o)}style={styles.entryActionBtn}>
25
25
  <NetworkIcons_1.PencilIcon size={12}color={AppColors_1.AppColors.purple}/>
26
26
  </TouchableScale_1.default>
27
27
 
@@ -43,28 +43,28 @@
43
43
  <NetworkIcons_1.ChevronIcon direction={t?"up":"down"}size={10}color={AppColors_1.AppColors.purple}/>
44
44
  </react_native_1.View>}
45
45
  </TouchableScale_1.default>
46
- </react_native_1.View>});exports.StorageTab=react_1.default.memo(()=>{const{t:r}=(0,i18n_1.useTranslation)(),o=(0,react_1.useRef)(null),[t,l]=(0,react_1.useState)("asyncStorage"),[a,x]=(0,react_1.useState)("default"),[n,c]=(0,react_1.useState)([]),[_,A]=(0,react_1.useState)(!0),[s,S]=(0,react_1.useState)(""),[w,P]=(0,react_1.useState)(100),[k,M]=(0,react_1.useState)({}),[O,y]=(0,react_1.useState)(!1),[h,I]=(0,react_1.useState)("create"),[C,B]=(0,react_1.useState)(""),[b,T]=(0,react_1.useState)(""),[d,v]=(0,react_1.useState)("string"),[V,p]=(0,react_1.useState)(null),F=(0,react_1.useMemo)(()=>(0,storageInspector_1.getRegisteredMMKVInstanceIds)(),[]),u=(0,react_1.useCallback)(async()=>{A(!0);try{const e=await(0,storageInspector_1.fetchStorageEntries)(t,t==="mmkv"?a:void 0);c(e)}catch{c([])}finally{A(!1)}},[t,a]);(0,react_1.useEffect)(()=>(u(),(0,storageInspector_1.subscribeToStorageChanges)(u)),[u]);const D=e=>{M(i=>({...i,[e]:!i[e]}))},$=()=>{I("create"),B(""),T(""),v("string"),p(null),y(!0)},R=e=>{I("edit"),B(e.key),T(e.value),v(e.type==="json"?"json":e.type==="number"?"number":e.type==="boolean"?"boolean":"string"),p(null),y(!0)},K=e=>{react_native_1.Alert.alert(r("storage.deleteKeyTitle","Delete Key"),r("storage.deleteKeyMessage",{key:e,defaultValue:`Are you sure you want to delete key "${e}"?`}),[{text:r("common.cancel","Cancel"),style:"cancel"},{text:r("common.clear","Delete"),style:"destructive",onPress:async()=>{await(0,storageInspector_1.removeStorageEntry)(t,e,t==="mmkv"?a:void 0)?((0,toast_1.showToast)(`Deleted "${e}"`),u()):(0,toast_1.showToast)(`Failed to delete "${e}"`)}}])},W=()=>{react_native_1.Alert.alert(r("storage.clearTitle","Clear Storage Driver"),r("storage.clearMessage",{driver:t==="asyncStorage"?"AsyncStorage":"MMKV",defaultValue:`Are you sure you want to delete all keys in ${t==="asyncStorage"?"AsyncStorage":"MMKV"}?`}),[{text:r("common.cancel","Cancel"),style:"cancel"},{text:r("storage.clearConfirm","Clear All"),style:"destructive",onPress:async()=>{await(0,storageInspector_1.clearStorageDriver)(t,t==="mmkv"?a:void 0)&&((0,toast_1.showToast)("All storage keys wiped"),u())}}])},L=async()=>{if(!C.trim()){(0,toast_1.showToast)("Key name cannot be empty");return}let e=b;if(d==="json")try{const m=JSON.parse(b);e=JSON.stringify(m)}catch(m){p("Invalid JSON: "+m.message);return}else if(d==="number"&&isNaN(Number(b))){p("Value must be a valid number");return}await(0,storageInspector_1.setStorageEntry)(t,C.trim(),e,t==="mmkv"?a:void 0)?((0,toast_1.showToast)(h==="create"?`Added "${C.trim()}"`:`Updated "${C.trim()}"`),y(!1),u()):(0,toast_1.showToast)("Error saving storage key")},E=()=>{try{const e=JSON.parse(b);T(JSON.stringify(e,null,2)),p(null),v("json"),(0,toast_1.showToast)("Formatted JSON")}catch{p("Cannot format: invalid JSON syntax")}},g=(0,react_1.useMemo)(()=>{if(!s.trim())return n;const e=s.toLowerCase().trim().split(/\s+/).filter(Boolean);return n.filter(i=>{const m=`${i.key} ${i.value}`.toLowerCase();return e.every(H=>m.includes(H))})},[n,s]),f=(0,react_1.useMemo)(()=>n.reduce((e,i)=>e+i.byteSize,0),[n]),N=(0,react_1.useMemo)(()=>f<1024?`${f} B`:f<1024*1024?`${(f/1024).toFixed(1)} KB`:`${(f/(1024*1024)).toFixed(2)} MB`,[f]),z=(0,react_1.useCallback)(e=>{(0,helpers_1.copyToClipboard)(e.value,e.key),(0,toast_1.showToast)(`Copied value of "${e.key}"`)},[]),j=(0,react_1.useCallback)(({item:e})=><StorageEntryCard entry={e}isExpanded={!!k[e.key]}onToggleExpand={D}onCopy={z}onEdit={R}onDelete={K}badge={getTypeBadge(e.type)}/>,[k,z]),J=t==="asyncStorage"?(0,storageInspector_1.isAsyncStorageConnected)():(0,storageInspector_1.isMMKVConnected)();return<react_native_1.View style={styles.container}>
46
+ </react_native_1.View>});exports.StorageTab=react_1.default.memo(()=>{const{t:r}=(0,i18n_1.useTranslation)(),o=(0,react_1.useRef)(null),[t,l]=(0,react_1.useState)("asyncStorage"),[a,v]=(0,react_1.useState)("default"),[n,d]=(0,react_1.useState)([]),[S,A]=(0,react_1.useState)(!0),[s,_]=(0,react_1.useState)(""),[w,P]=(0,react_1.useState)(100),[k,M]=(0,react_1.useState)({}),[D,y]=(0,react_1.useState)(!1),[T,I]=(0,react_1.useState)("create"),[C,B]=(0,react_1.useState)(""),[m,h]=(0,react_1.useState)(""),[u,x]=(0,react_1.useState)("string"),[V,c]=(0,react_1.useState)(null),F=(0,react_1.useMemo)(()=>(0,storageInspector_1.getRegisteredMMKVInstanceIds)(),[]),g=(0,react_1.useCallback)(async()=>{A(!0);try{const e=await(0,storageInspector_1.fetchStorageEntries)(t,t==="mmkv"?a:void 0);d(e)}catch{d([])}finally{A(!1)}},[t,a]);(0,react_1.useEffect)(()=>(g(),(0,storageInspector_1.subscribeToStorageChanges)(g)),[g]);const L=e=>{M(i=>({...i,[e]:!i[e]}))},O=()=>{I("create"),B(""),h(""),x("string"),c(null),y(!0)},$=e=>{I("edit"),B(e.key),h(e.value),x(e.type==="json"?"json":e.type==="number"?"number":e.type==="boolean"?"boolean":"string"),c(null),y(!0)},R=e=>{react_native_1.Alert.alert(r("storage.deleteKeyTitle","Delete Key"),r("storage.deleteKeyMessage",{key:e,defaultValue:`Are you sure you want to delete key "${e}"?`}),[{text:r("common.cancel","Cancel"),style:"cancel"},{text:r("common.clear","Delete"),style:"destructive",onPress:async()=>{await(0,storageInspector_1.removeStorageEntry)(t,e,t==="mmkv"?a:void 0)?((0,toast_1.showToast)(`Deleted "${e}"`),g()):(0,toast_1.showToast)(`Failed to delete "${e}"`)}}])},K=()=>{react_native_1.Alert.alert(r("storage.clearTitle","Clear Storage Driver"),r("storage.clearMessage",{driver:t==="asyncStorage"?"AsyncStorage":"MMKV",defaultValue:`Are you sure you want to delete all keys in ${t==="asyncStorage"?"AsyncStorage":"MMKV"}?`}),[{text:r("common.cancel","Cancel"),style:"cancel"},{text:r("storage.clearConfirm","Clear All"),style:"destructive",onPress:async()=>{await(0,storageInspector_1.clearStorageDriver)(t,t==="mmkv"?a:void 0)&&((0,toast_1.showToast)("All storage keys wiped"),g())}}])},W=async()=>{if(!C.trim()){(0,toast_1.showToast)("Key name cannot be empty");return}let e=m;if(u==="json")try{const b=JSON.parse(m);e=JSON.stringify(b)}catch(b){c("Invalid JSON: "+b.message);return}else if(u==="number"&&isNaN(Number(m))){c("Value must be a valid number");return}await(0,storageInspector_1.setStorageEntry)(t,C.trim(),e,t==="mmkv"?a:void 0)?((0,toast_1.showToast)(T==="create"?`Added "${C.trim()}"`:`Updated "${C.trim()}"`),y(!1),g()):(0,toast_1.showToast)("Error saving storage key")},j=()=>{try{const e=JSON.parse(m);h(JSON.stringify(e,null,2)),c(null),x("json"),(0,toast_1.showToast)("Formatted JSON")}catch{c("Cannot format: invalid JSON syntax")}},p=(0,react_1.useMemo)(()=>{if(!s.trim())return n;const e=s.toLowerCase().trim().split(/\s+/).filter(Boolean);return n.filter(i=>{const b=`${i.key} ${i.value}`.toLowerCase();return e.every(H=>b.includes(H))})},[n,s]),f=(0,react_1.useMemo)(()=>n.reduce((e,i)=>e+i.byteSize,0),[n]),E=(0,react_1.useMemo)(()=>f<1024?`${f.toLocaleString()} B`:f<1024*1024?`${(f/1024).toLocaleString(void 0,{minimumFractionDigits:1,maximumFractionDigits:1})} KB`:`${(f/(1024*1024)).toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})} MB`,[f]),z=(0,react_1.useCallback)(e=>{(0,helpers_1.copyToClipboard)(e.value,e.key),(0,toast_1.showToast)(`Copied value of "${e.key}"`)},[]),N=(0,react_1.useCallback)(({item:e})=><StorageEntryCard entry={e}isExpanded={!!k[e.key]}onToggleExpand={L}onCopy={z}onEdit={$}onDelete={R}badge={getTypeBadge(e.type)}/>,[k,z]);return<react_native_1.View style={styles.container}>
47
47
 
48
48
  <react_native_1.View style={styles.driverTabsWrapper}>
49
49
  <react_native_1.ScrollView horizontal showsHorizontalScrollIndicator={!1}contentContainerStyle={styles.driverTabsContainer}>
50
- <TouchableScale_1.default onPress={()=>l("asyncStorage")}style={[styles.driverTabPill,{backgroundColor:t==="asyncStorage"?AppColors_1.AppColors.brandPurple:`${AppColors_1.AppColors.brandPurple}0D`,borderColor:t==="asyncStorage"?AppColors_1.AppColors.brandPurple:`${AppColors_1.AppColors.brandPurple}2B`},t==="asyncStorage"&&{shadowColor:AppColors_1.AppColors.brandPurple,shadowOffset:{width:0,height:1.5},shadowOpacity:.25,shadowRadius:3,elevation:3}]}>
51
- <NetworkIcons_1.DatabaseIcon size={13}color={t==="asyncStorage"?AppColors_1.AppColors.white:AppColors_1.AppColors.brandPurple}/>
52
- <react_native_1.Text style={[styles.driverTabText,{color:t==="asyncStorage"?AppColors_1.AppColors.white:AppColors_1.AppColors.brandPurple,fontFamily:t==="asyncStorage"?AppFonts_1.AppFonts.interBold:AppFonts_1.AppFonts.interSemiBold}]}>
50
+ <TouchableScale_1.default onPress={()=>l("asyncStorage")}style={[styles.driverTabPill,t==="asyncStorage"&&{backgroundColor:AppColors_1.AppColors.brandPurple,borderColor:AppColors_1.AppColors.brandPurple},t!=="asyncStorage"&&{backgroundColor:`${AppColors_1.AppColors.brandPurple}12`,borderColor:`${AppColors_1.AppColors.brandPurple}30`}]}>
51
+ <NetworkIcons_1.DatabaseIcon size={11}color={t==="asyncStorage"?AppColors_1.AppColors.white:AppColors_1.AppColors.brandPurple}/>
52
+ <react_native_1.Text style={[styles.driverTabText,{color:t==="asyncStorage"?AppColors_1.AppColors.white:AppColors_1.AppColors.primaryBlack}]}>
53
53
  {r("storage.subTabs.asyncStorage","AsyncStorage")}
54
54
  </react_native_1.Text>
55
- {n.length>0&&t==="asyncStorage"&&<react_native_1.View style={[styles.driverCountBadge,{backgroundColor:"rgba(255,255,255,0.25)",borderColor:"rgba(255,255,255,0.45)"}]}>
55
+ {n.length>0&&t==="asyncStorage"&&<react_native_1.View style={[styles.driverCountBadge,{backgroundColor:"rgba(255,255,255,0.25)"}]}>
56
56
  <react_native_1.Text style={[styles.driverCountText,{color:AppColors_1.AppColors.white}]}>
57
57
  {n.length}
58
58
  </react_native_1.Text>
59
59
  </react_native_1.View>}
60
60
  </TouchableScale_1.default>
61
61
 
62
- <TouchableScale_1.default onPress={()=>l("mmkv")}style={[styles.driverTabPill,{backgroundColor:t==="mmkv"?AppColors_1.AppColors.teal600:`${AppColors_1.AppColors.teal600}0D`,borderColor:t==="mmkv"?AppColors_1.AppColors.teal600:`${AppColors_1.AppColors.teal600}2B`},t==="mmkv"&&{shadowColor:AppColors_1.AppColors.teal600,shadowOffset:{width:0,height:1.5},shadowOpacity:.25,shadowRadius:3,elevation:3}]}>
63
- <NetworkIcons_1.LayersIcon size={13}color={t==="mmkv"?AppColors_1.AppColors.white:AppColors_1.AppColors.teal600}/>
64
- <react_native_1.Text style={[styles.driverTabText,{color:t==="mmkv"?AppColors_1.AppColors.white:AppColors_1.AppColors.teal600,fontFamily:t==="mmkv"?AppFonts_1.AppFonts.interBold:AppFonts_1.AppFonts.interSemiBold}]}>
62
+ <TouchableScale_1.default onPress={()=>l("mmkv")}style={[styles.driverTabPill,t==="mmkv"&&{backgroundColor:AppColors_1.AppColors.teal600,borderColor:AppColors_1.AppColors.teal600},t!=="mmkv"&&{backgroundColor:`${AppColors_1.AppColors.teal600}12`,borderColor:`${AppColors_1.AppColors.teal600}30`}]}>
63
+ <NetworkIcons_1.LayersIcon size={11}color={t==="mmkv"?AppColors_1.AppColors.white:AppColors_1.AppColors.teal600}/>
64
+ <react_native_1.Text style={[styles.driverTabText,{color:t==="mmkv"?AppColors_1.AppColors.white:AppColors_1.AppColors.primaryBlack}]}>
65
65
  {r("storage.subTabs.mmkv","MMKV")}
66
66
  </react_native_1.Text>
67
- {n.length>0&&t==="mmkv"&&<react_native_1.View style={[styles.driverCountBadge,{backgroundColor:"rgba(255,255,255,0.25)",borderColor:"rgba(255,255,255,0.45)"}]}>
67
+ {n.length>0&&t==="mmkv"&&<react_native_1.View style={[styles.driverCountBadge,{backgroundColor:"rgba(255,255,255,0.25)"}]}>
68
68
  <react_native_1.Text style={[styles.driverCountText,{color:AppColors_1.AppColors.white}]}>
69
69
  {n.length}
70
70
  </react_native_1.Text>
@@ -73,7 +73,7 @@
73
73
 
74
74
 
75
75
  {t==="mmkv"&&F.length>1&&<react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:4,marginLeft:6}}>
76
- {F.map(e=><TouchableScale_1.default key={e}onPress={()=>x(e)}style={[styles.instancePill,a===e&&styles.instancePillActive]}>
76
+ {F.map(e=><TouchableScale_1.default key={e}onPress={()=>v(e)}style={[styles.instancePill,a===e&&styles.instancePillActive]}>
77
77
  <react_native_1.Text style={[styles.instancePillText,a===e&&styles.instancePillTextActive]}>
78
78
  {e}
79
79
  </react_native_1.Text>
@@ -86,30 +86,30 @@
86
86
  <react_native_1.View style={styles.actionBar}>
87
87
  <react_native_1.View style={styles.searchBar}>
88
88
  <NetworkIcons_1.SearchIcon size={14}color={AppColors_1.AppColors.grayTextWeak}/>
89
- <react_native_1.TextInput value={s}onChangeText={S}placeholder={r("storage.searchPlaceholder","Search keys, values, types...")}placeholderTextColor={AppColors_1.AppColors.grayTextWeak}style={styles.searchInput}clearButtonMode="while-editing"/>
89
+ <react_native_1.TextInput value={s}onChangeText={_}placeholder={r("storage.searchPlaceholder","Search keys, values, types...")}placeholderTextColor={AppColors_1.AppColors.grayTextWeak}style={styles.searchInput}clearButtonMode="while-editing"/>
90
90
  {s.length>0&&<react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:4}}>
91
91
  <react_native_1.View style={{backgroundColor:`${AppColors_1.AppColors.purple}20`,borderRadius:10,paddingHorizontal:6,paddingVertical:1.5}}>
92
92
  <react_native_1.Text style={{color:AppColors_1.AppColors.purple,fontSize:9.5,fontFamily:AppFonts_1.AppFonts.interBold}}>
93
- {g.length}
93
+ {p.length}
94
94
  </react_native_1.Text>
95
95
  </react_native_1.View>
96
- <TouchableScale_1.default onPress={()=>S("")}hitSlop={8}>
96
+ <TouchableScale_1.default onPress={()=>_("")}hitSlop={8}>
97
97
  <NetworkIcons_1.ClearIcon size={13}color={AppColors_1.AppColors.grayTextWeak}/>
98
98
  </TouchableScale_1.default>
99
99
  </react_native_1.View>}
100
100
  </react_native_1.View>
101
101
 
102
102
 
103
- <TouchableScale_1.default onPress={$}style={styles.addKeyBtn}hitSlop={6}>
103
+ <TouchableScale_1.default onPress={O}style={styles.addKeyBtn}hitSlop={6}>
104
104
  <NetworkIcons_1.PlusIcon size={13}color={AppColors_1.AppColors.white}/>
105
105
  <react_native_1.Text style={styles.addKeyBtnText}>{r("storage.add","Add")}</react_native_1.Text>
106
106
  </TouchableScale_1.default>
107
107
 
108
- <TouchableScale_1.default onPress={u}style={styles.actionIconBtn}hitSlop={6}>
108
+ <TouchableScale_1.default onPress={g}style={styles.actionIconBtn}hitSlop={6}>
109
109
  <NetworkIcons_1.ResetIcon size={13}color={AppColors_1.AppColors.grayText}/>
110
110
  </TouchableScale_1.default>
111
111
 
112
- {n.length>0&&<TouchableScale_1.default onPress={W}style={[styles.actionIconBtn,{borderColor:`${AppColors_1.AppColors.errorColor}33`,backgroundColor:`${AppColors_1.AppColors.errorColor}12`}]}hitSlop={6}>
112
+ {n.length>0&&<TouchableScale_1.default onPress={K}style={[styles.actionIconBtn,{borderColor:`${AppColors_1.AppColors.errorColor}33`,backgroundColor:`${AppColors_1.AppColors.errorColor}12`}]}hitSlop={6}>
113
113
  <NetworkIcons_1.TrashIcon size={13}color={AppColors_1.AppColors.errorColor}/>
114
114
  </TouchableScale_1.default>}
115
115
  </react_native_1.View>
@@ -117,7 +117,7 @@
117
117
 
118
118
  <react_native_1.View style={styles.statsStrip}>
119
119
  <react_native_1.Text style={styles.statsText}>
120
- {g.length} of {n.length} Keys • {N}
120
+ {p.length.toLocaleString()} of {n.length.toLocaleString()} Keys • {E}
121
121
  </react_native_1.Text>
122
122
  <react_native_1.Text style={styles.statsSubtext}>
123
123
  {t==="asyncStorage"?"SQLite Key-Value":`MMKV (${a})`}
@@ -125,11 +125,11 @@
125
125
  </react_native_1.View>
126
126
 
127
127
 
128
- {_?<react_native_1.View style={styles.loadingContainer}>
128
+ {S?<react_native_1.View style={styles.loadingContainer}>
129
129
  <react_native_1.ActivityIndicator size="small"color={AppColors_1.AppColors.purple}/>
130
130
  <react_native_1.Text style={styles.loadingText}>{r("storage.loading","Loading storage entries...")}</react_native_1.Text>
131
131
  </react_native_1.View>:<>
132
- <react_native_1.FlatList ref={o}data={g.slice(0,w)}keyExtractor={e=>e.key}renderItem={j}initialNumToRender={10}maxToRenderPerBatch={10}windowSize={5}removeClippedSubviews={react_native_1.Platform.OS==="android"}style={styles.scrollArea}contentContainerStyle={styles.scrollContent}showsVerticalScrollIndicator={!1}ListEmptyComponent={<react_native_1.View style={styles.emptyContainer}>
132
+ <react_native_1.FlatList ref={o}data={p.slice(0,w)}keyExtractor={e=>e.key}renderItem={N}initialNumToRender={10}maxToRenderPerBatch={10}windowSize={5}removeClippedSubviews={react_native_1.Platform.OS==="android"}style={styles.scrollArea}contentContainerStyle={p.length===0?styles.emptyScrollContent:styles.scrollContent}showsVerticalScrollIndicator={!1}ListEmptyComponent={<react_native_1.View style={styles.emptyContainer}>
133
133
  <react_native_1.View style={styles.emptyIconWrap}>
134
134
  <NetworkIcons_1.DatabaseIcon size={28}color={AppColors_1.AppColors.grayTextWeak}/>
135
135
  </react_native_1.View>
@@ -139,21 +139,21 @@
139
139
  <react_native_1.Text style={styles.emptySubtitle}>
140
140
  {s.trim().length>0?`No keys or values match "${s}"`:`Storage is auto-detected. Tap "+ Add" above to create your first ${t==="asyncStorage"?"AsyncStorage":"MMKV"} key!`}
141
141
  </react_native_1.Text>
142
- {s.trim().length>0&&<TouchableScale_1.default onPress={()=>S("")}style={{marginTop:12,paddingHorizontal:14,paddingVertical:6,borderRadius:8,backgroundColor:AppColors_1.AppColors.grayBackground,borderWidth:1,borderColor:AppColors_1.AppColors.grayBorderSecondary}}>
142
+ {s.trim().length>0&&<TouchableScale_1.default onPress={()=>_("")}style={{marginTop:12,paddingHorizontal:14,paddingVertical:6,borderRadius:8,backgroundColor:AppColors_1.AppColors.grayBackground,borderWidth:1,borderColor:AppColors_1.AppColors.grayBorderSecondary}}>
143
143
  <react_native_1.Text style={{color:AppColors_1.AppColors.brandPurple,fontSize:12,fontFamily:AppFonts_1.AppFonts.interBold}}>
144
144
  Clear Search
145
145
  </react_native_1.Text>
146
146
  </TouchableScale_1.default>}
147
- </react_native_1.View>}ListFooterComponent={g.length>0?<EndOfListFooter_1.default count={Math.min(w,g.length)}totalCount={g.length}label="keys"hasMore={g.length>w}onLoadMore={()=>P(e=>e+10)}/>:<react_native_1.View style={{height:60}}/>}/>
147
+ </react_native_1.View>}ListFooterComponent={p.length>0?<EndOfListFooter_1.default count={Math.min(w,p.length)}totalCount={p.length}label="keys"hasMore={p.length>w}onLoadMore={()=>P(e=>e+10)}/>:<react_native_1.View style={{height:60}}/>}/>
148
148
  </>}
149
149
 
150
150
 
151
- <react_native_1.Modal visible={O}transparent animationType="fade"onRequestClose={()=>y(!1)}>
151
+ <react_native_1.Modal visible={D}transparent animationType="fade"onRequestClose={()=>y(!1)}>
152
152
  <react_native_1.View style={styles.modalOverlay}>
153
153
  <react_native_1.View style={styles.modalCard}>
154
154
  <react_native_1.View style={styles.modalHeader}>
155
155
  <react_native_1.Text style={styles.modalTitle}>
156
- {h==="create"?"Add Storage Key":`Edit: ${C}`}
156
+ {T==="create"?"Add Storage Key":`Edit: ${C}`}
157
157
  </react_native_1.Text>
158
158
  <TouchableScale_1.default onPress={()=>y(!1)}hitSlop={8}>
159
159
  <NetworkIcons_1.ClearIcon size={16}color={AppColors_1.AppColors.grayText}/>
@@ -163,19 +163,19 @@
163
163
 
164
164
  <react_native_1.View style={styles.inputGroup}>
165
165
  <react_native_1.Text style={styles.inputLabel}>{r("storage.keyName","KEY NAME").toUpperCase()}</react_native_1.Text>
166
- <react_native_1.TextInput value={C}onChangeText={B}placeholder="e.g. user_session, auth_token"placeholderTextColor={AppColors_1.AppColors.grayTextWeak}editable={h==="create"}style={[styles.textInput,h==="edit"&&styles.textInputDisabled]}autoCapitalize="none"/>
166
+ <react_native_1.TextInput value={C}onChangeText={B}placeholder="e.g. user_session, auth_token"placeholderTextColor={AppColors_1.AppColors.grayTextWeak}editable={T==="create"}style={[styles.textInput,T==="edit"&&styles.textInputDisabled]}autoCapitalize="none"/>
167
167
  </react_native_1.View>
168
168
 
169
169
 
170
170
  <react_native_1.View style={styles.inputGroup}>
171
171
  <react_native_1.View style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",marginBottom:4}}>
172
172
  <react_native_1.Text style={styles.inputLabel}>{r("storage.type","VALUE TYPE").toUpperCase()}</react_native_1.Text>
173
- {d==="json"&&<TouchableScale_1.default onPress={E}hitSlop={6}>
173
+ {u==="json"&&<TouchableScale_1.default onPress={j}hitSlop={6}>
174
174
  <react_native_1.Text style={styles.formatJsonBtn}>{r("storage.beautifyJson","Beautify JSON")}</react_native_1.Text>
175
175
  </TouchableScale_1.default>}
176
176
  </react_native_1.View>
177
177
  <react_native_1.View style={styles.typeSelectorStrip}>
178
- {["string","json","number","boolean"].map(e=>{const i=d===e;return<TouchableScale_1.default key={e}onPress={()=>{v(e),p(null)}}style={[styles.typePill,i&&styles.typePillActive]}>
178
+ {["string","json","number","boolean"].map(e=>{const i=u===e;return<TouchableScale_1.default key={e}onPress={()=>{x(e),c(null)}}style={[styles.typePill,i&&styles.typePillActive]}>
179
179
  <react_native_1.Text style={[styles.typePillText,i&&styles.typePillTextActive]}>
180
180
  {e.toUpperCase()}
181
181
  </react_native_1.Text>
@@ -186,7 +186,7 @@
186
186
 
187
187
  <react_native_1.View style={styles.inputGroup}>
188
188
  <react_native_1.Text style={styles.inputLabel}>{r("storage.valueContent","VALUE CONTENT").toUpperCase()}</react_native_1.Text>
189
- <react_native_1.TextInput value={b}onChangeText={e=>{T(e),V&&p(null)}}placeholder={d==="json"?'{"userId": 123, "isLoggedIn": true}':d==="number"?"42":d==="boolean"?"true":"String value..."}placeholderTextColor={AppColors_1.AppColors.grayTextWeak}style={[styles.textInput,styles.textAreaInput]}multiline textAlignVertical="top"autoCapitalize="none"/>
189
+ <react_native_1.TextInput value={m}onChangeText={e=>{h(e),V&&c(null)}}placeholder={u==="json"?'{"userId": 123, "isLoggedIn": true}':u==="number"?"42":u==="boolean"?"true":"String value..."}placeholderTextColor={AppColors_1.AppColors.grayTextWeak}style={[styles.textInput,styles.textAreaInput]}multiline textAlignVertical="top"autoCapitalize="none"/>
190
190
  {V&&<react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:5,marginTop:4}}>
191
191
  <NetworkIcons_1.WarningTriangleIcon size={12}color={AppColors_1.AppColors.errorColor}/>
192
192
  <react_native_1.Text style={styles.errorText}>{V}</react_native_1.Text>
@@ -198,7 +198,7 @@
198
198
  <TouchableScale_1.default onPress={()=>y(!1)}style={styles.cancelBtn}>
199
199
  <react_native_1.Text style={styles.cancelBtnText}>{r("common.cancel","Cancel")}</react_native_1.Text>
200
200
  </TouchableScale_1.default>
201
- <TouchableScale_1.default onPress={L}style={styles.saveBtn}>
201
+ <TouchableScale_1.default onPress={W}style={styles.saveBtn}>
202
202
  <NetworkIcons_1.CheckIcon size={14}color={AppColors_1.AppColors.white}/>
203
203
  <react_native_1.Text style={styles.saveBtnText}>{r("storage.saveKey","Save Key")}</react_native_1.Text>
204
204
  </TouchableScale_1.default>
@@ -206,4 +206,4 @@
206
206
  </react_native_1.View>
207
207
  </react_native_1.View>
208
208
  </react_native_1.Modal>
209
- </react_native_1.View>});const styles=react_native_1.StyleSheet.create({container:{flex:1,backgroundColor:AppColors_1.AppColors.grayBackground},driverTabsWrapper:{backgroundColor:AppColors_1.AppColors.primaryLight,borderBottomWidth:1,borderBottomColor:AppColors_1.AppColors.dividerColor,paddingVertical:8},driverTabsContainer:{paddingHorizontal:12,flexDirection:"row",alignItems:"center",gap:6},driverTabPill:{flexDirection:"row",alignItems:"center",gap:5,paddingHorizontal:9,paddingVertical:4.5,borderRadius:8,backgroundColor:AppColors_1.AppColors.grayBackground,borderWidth:1,borderColor:AppColors_1.AppColors.grayBorderSecondary},driverTabPillActive:{backgroundColor:AppColors_1.AppColors.purple,borderColor:AppColors_1.AppColors.purple},driverTabText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:10.5,color:AppColors_1.AppColors.grayText},driverTabTextActive:{color:AppColors_1.AppColors.white},driverCountBadge:{backgroundColor:"rgba(255, 255, 255, 0.25)",paddingHorizontal:5,paddingVertical:1,borderRadius:8},driverCountText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9.5,color:AppColors_1.AppColors.white},instancePill:{paddingHorizontal:7,paddingVertical:3,borderRadius:6,backgroundColor:`${AppColors_1.AppColors.purple}14`,borderWidth:1,borderColor:`${AppColors_1.AppColors.purple}30`},instancePillActive:{backgroundColor:AppColors_1.AppColors.purple,borderColor:AppColors_1.AppColors.purple},instancePillText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:10,color:AppColors_1.AppColors.purple},instancePillTextActive:{color:AppColors_1.AppColors.white},actionBar:{flexDirection:"row",alignItems:"center",paddingHorizontal:12,paddingVertical:8,backgroundColor:AppColors_1.AppColors.primaryLight,borderBottomWidth:1,borderBottomColor:AppColors_1.AppColors.dividerColor,gap:6},searchBar:{flex:1,flexDirection:"row",alignItems:"center",backgroundColor:AppColors_1.AppColors.grayBackground,borderRadius:8,paddingHorizontal:9,paddingVertical:react_native_1.Platform.OS==="ios"?6:2,borderWidth:1,borderColor:AppColors_1.AppColors.grayBorderSecondary,gap:6},searchInput:{flex:1,fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:12,color:AppColors_1.AppColors.primaryBlack,padding:0},addKeyBtn:{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:10,paddingVertical:6,borderRadius:8,backgroundColor:AppColors_1.AppColors.purple},addKeyBtnText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:11,color:AppColors_1.AppColors.white},actionIconBtn:{width:30,height:30,borderRadius:8,alignItems:"center",justifyContent:"center",backgroundColor:AppColors_1.AppColors.grayBackground,borderWidth:1,borderColor:AppColors_1.AppColors.grayBorderSecondary},statsStrip:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingHorizontal:12,paddingVertical:5,backgroundColor:`${AppColors_1.AppColors.grayBorderSecondary}40`},statsText:{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:10,color:AppColors_1.AppColors.grayText},statsSubtext:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9.5,color:AppColors_1.AppColors.grayTextWeak},scrollArea:{flex:1},scrollContent:{padding:12,gap:10,paddingBottom:100},entryCard:{backgroundColor:AppColors_1.AppColors.primaryLight,borderRadius:10,borderWidth:1,borderColor:AppColors_1.AppColors.grayBorderSecondary,padding:10,gap:8,shadowColor:AppColors_1.AppColors.black,shadowOpacity:.02,shadowRadius:3,shadowOffset:{width:0,height:1},elevation:1},entryHeader:{flexDirection:"row",alignItems:"center",justifyContent:"space-between"},entryKey:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:12.5,color:AppColors_1.AppColors.primaryBlack},typeBadge:{paddingHorizontal:5,paddingVertical:1,borderRadius:4,borderWidth:1},typeBadgeText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:8.5},sizeText:{fontFamily:AppFonts_1.AppFonts.interRegular,fontSize:10,color:AppColors_1.AppColors.grayTextWeak},entryActions:{flexDirection:"row",alignItems:"center",gap:5},entryActionBtn:{padding:5,borderRadius:5,backgroundColor:AppColors_1.AppColors.grayBackground},valuePreviewBox:{backgroundColor:AppColors_1.AppColors.grayBackground,borderRadius:6,padding:8,borderWidth:1,borderColor:`${AppColors_1.AppColors.grayBorderSecondary}80`},valuePreviewText:{fontFamily:AppFonts_1.AppFonts.interRegular,fontSize:11,color:AppColors_1.AppColors.primaryBlack,lineHeight:16},expandHint:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9.5,color:AppColors_1.AppColors.purple,marginTop:4},loadingContainer:{flex:1,alignItems:"center",justifyContent:"center",gap:8},loadingText:{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:12,color:AppColors_1.AppColors.grayText},emptyContainer:{padding:24,alignItems:"center",justifyContent:"center"},emptyIconWrap:{width:56,height:56,borderRadius:28,backgroundColor:`${AppColors_1.AppColors.grayBorderSecondary}40`,alignItems:"center",justifyContent:"center",marginBottom:12},emptyTitle:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:14,color:AppColors_1.AppColors.primaryBlack,marginBottom:4},emptySubtitle:{fontFamily:AppFonts_1.AppFonts.interRegular,fontSize:11.5,color:AppColors_1.AppColors.grayText,textAlign:"center",maxWidth:280},connectGuideCard:{marginTop:20,width:"100%",backgroundColor:AppColors_1.AppColors.primaryLight,borderRadius:10,borderWidth:1,borderColor:AppColors_1.AppColors.grayBorderSecondary,padding:12,gap:6},connectGuideTitle:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:11,color:AppColors_1.AppColors.purple},connectGuideCode:{fontFamily:AppFonts_1.AppFonts.interRegular,fontSize:10,color:AppColors_1.AppColors.grayText,lineHeight:15},modalOverlay:{flex:1,backgroundColor:"rgba(0, 0, 0, 0.5)",justifyContent:"center",alignItems:"center",padding:16},modalCard:{width:"100%",maxWidth:400,backgroundColor:AppColors_1.AppColors.primaryLight,borderRadius:14,padding:16,gap:12,shadowColor:AppColors_1.AppColors.black,shadowOpacity:.2,shadowRadius:10,shadowOffset:{width:0,height:4},elevation:5},modalHeader:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",borderBottomWidth:1,borderBottomColor:AppColors_1.AppColors.dividerColor,paddingBottom:10},modalTitle:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:14,color:AppColors_1.AppColors.primaryBlack},inputGroup:{gap:4},inputLabel:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9.5,color:AppColors_1.AppColors.grayTextWeak,letterSpacing:.5},textInput:{backgroundColor:AppColors_1.AppColors.grayBackground,borderRadius:8,paddingHorizontal:10,paddingVertical:8,fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:12,color:AppColors_1.AppColors.primaryBlack,borderWidth:1,borderColor:AppColors_1.AppColors.grayBorderSecondary},textInputDisabled:{backgroundColor:`${AppColors_1.AppColors.grayBorderSecondary}40`,color:AppColors_1.AppColors.grayText},textAreaInput:{minHeight:90,maxHeight:160,fontFamily:AppFonts_1.AppFonts.interRegular,fontSize:11},typeSelectorStrip:{flexDirection:"row",alignItems:"center",gap:6},typePill:{flex:1,alignItems:"center",paddingVertical:6,borderRadius:6,backgroundColor:AppColors_1.AppColors.grayBackground,borderWidth:1,borderColor:AppColors_1.AppColors.grayBorderSecondary},typePillActive:{backgroundColor:AppColors_1.AppColors.purple,borderColor:AppColors_1.AppColors.purple},typePillText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:10,color:AppColors_1.AppColors.grayText},typePillTextActive:{color:AppColors_1.AppColors.white},formatJsonBtn:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:10,color:AppColors_1.AppColors.purple},errorText:{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:10,color:AppColors_1.AppColors.errorColor,marginTop:2},modalActions:{flexDirection:"row",alignItems:"center",gap:10,marginTop:4},cancelBtn:{flex:1,alignItems:"center",paddingVertical:10,borderRadius:8,backgroundColor:AppColors_1.AppColors.grayBackground,borderWidth:1,borderColor:AppColors_1.AppColors.grayBorderSecondary},cancelBtnText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:12,color:AppColors_1.AppColors.grayText},saveBtn:{flex:1.5,flexDirection:"row",alignItems:"center",justifyContent:"center",gap:5,paddingVertical:10,borderRadius:8,backgroundColor:AppColors_1.AppColors.purple},saveBtnText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:12,color:AppColors_1.AppColors.white}});exports.default=exports.StorageTab;
209
+ </react_native_1.View>});const styles=react_native_1.StyleSheet.create({container:{flex:1,backgroundColor:AppColors_1.AppColors.grayBackground},driverTabsWrapper:{backgroundColor:AppColors_1.AppColors.primaryLight,borderBottomWidth:1,borderBottomColor:AppColors_1.AppColors.dividerColor,paddingVertical:8},driverTabsContainer:{paddingHorizontal:12,flexDirection:"row",alignItems:"center",gap:6},driverTabPill:{flexDirection:"row",alignItems:"center",gap:5,paddingHorizontal:9,paddingVertical:4.5,borderRadius:8,backgroundColor:AppColors_1.AppColors.grayBackground,borderWidth:1,borderColor:AppColors_1.AppColors.grayBorderSecondary},driverTabPillActive:{backgroundColor:AppColors_1.AppColors.purple,borderColor:AppColors_1.AppColors.purple},driverTabText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:10.5,color:AppColors_1.AppColors.grayText},driverTabTextActive:{color:AppColors_1.AppColors.white},driverCountBadge:{backgroundColor:"rgba(255, 255, 255, 0.25)",paddingHorizontal:5,paddingVertical:1,borderRadius:8},driverCountText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9.5,color:AppColors_1.AppColors.white},instancePill:{paddingHorizontal:7,paddingVertical:3,borderRadius:6,backgroundColor:`${AppColors_1.AppColors.purple}14`,borderWidth:1,borderColor:`${AppColors_1.AppColors.purple}30`},instancePillActive:{backgroundColor:AppColors_1.AppColors.purple,borderColor:AppColors_1.AppColors.purple},instancePillText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:10,color:AppColors_1.AppColors.purple},instancePillTextActive:{color:AppColors_1.AppColors.white},actionBar:{flexDirection:"row",alignItems:"center",paddingHorizontal:12,paddingVertical:8,backgroundColor:AppColors_1.AppColors.primaryLight,borderBottomWidth:1,borderBottomColor:AppColors_1.AppColors.dividerColor,gap:6},searchBar:{flex:1,flexDirection:"row",alignItems:"center",backgroundColor:AppColors_1.AppColors.grayBackground,borderRadius:8,paddingHorizontal:9,paddingVertical:react_native_1.Platform.OS==="ios"?6:2,borderWidth:1,borderColor:AppColors_1.AppColors.grayBorderSecondary,gap:6},searchInput:{flex:1,fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:12,color:AppColors_1.AppColors.primaryBlack,padding:0},addKeyBtn:{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:10,paddingVertical:6,borderRadius:8,backgroundColor:AppColors_1.AppColors.purple},addKeyBtnText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:11,color:AppColors_1.AppColors.white},actionIconBtn:{width:30,height:30,borderRadius:8,alignItems:"center",justifyContent:"center",backgroundColor:AppColors_1.AppColors.grayBackground,borderWidth:1,borderColor:AppColors_1.AppColors.grayBorderSecondary},statsStrip:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingHorizontal:12,paddingVertical:5,backgroundColor:`${AppColors_1.AppColors.grayBorderSecondary}40`},statsText:{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:10,color:AppColors_1.AppColors.grayText},statsSubtext:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9.5,color:AppColors_1.AppColors.grayTextWeak},scrollArea:{flex:1},scrollContent:{padding:12,gap:10,paddingBottom:100},emptyScrollContent:{flexGrow:1,justifyContent:"center",alignItems:"center",padding:24,paddingBottom:60},entryCard:{backgroundColor:AppColors_1.AppColors.primaryLight,borderRadius:10,borderWidth:1,borderColor:AppColors_1.AppColors.grayBorderSecondary,padding:10,gap:8,shadowColor:AppColors_1.AppColors.black,shadowOpacity:.02,shadowRadius:3,shadowOffset:{width:0,height:1},elevation:1},entryHeader:{flexDirection:"row",alignItems:"center",justifyContent:"space-between"},entryKey:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:12.5,color:AppColors_1.AppColors.primaryBlack},typeBadge:{paddingHorizontal:5,paddingVertical:1,borderRadius:4,borderWidth:1},typeBadgeText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:8.5},sizeText:{fontFamily:AppFonts_1.AppFonts.interRegular,fontSize:10,color:AppColors_1.AppColors.grayTextWeak},entryActions:{flexDirection:"row",alignItems:"center",gap:5},entryActionBtn:{padding:5,borderRadius:5,backgroundColor:AppColors_1.AppColors.grayBackground},valuePreviewBox:{backgroundColor:AppColors_1.AppColors.grayBackground,borderRadius:6,padding:8,borderWidth:1,borderColor:`${AppColors_1.AppColors.grayBorderSecondary}80`},valuePreviewText:{fontFamily:AppFonts_1.AppFonts.interRegular,fontSize:11,color:AppColors_1.AppColors.primaryBlack,lineHeight:16},expandHint:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9.5,color:AppColors_1.AppColors.purple,marginTop:4},loadingContainer:{flex:1,alignItems:"center",justifyContent:"center",gap:8},loadingText:{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:12,color:AppColors_1.AppColors.grayText},emptyContainer:{padding:24,alignItems:"center",justifyContent:"center"},emptyIconWrap:{width:56,height:56,borderRadius:28,backgroundColor:`${AppColors_1.AppColors.grayBorderSecondary}40`,alignItems:"center",justifyContent:"center",marginBottom:12},emptyTitle:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:14,color:AppColors_1.AppColors.primaryBlack,marginBottom:4},emptySubtitle:{fontFamily:AppFonts_1.AppFonts.interRegular,fontSize:11.5,color:AppColors_1.AppColors.grayText,textAlign:"center",maxWidth:280},connectGuideCard:{marginTop:20,width:"100%",backgroundColor:AppColors_1.AppColors.primaryLight,borderRadius:10,borderWidth:1,borderColor:AppColors_1.AppColors.grayBorderSecondary,padding:12,gap:6},connectGuideTitle:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:11,color:AppColors_1.AppColors.purple},connectGuideCode:{fontFamily:AppFonts_1.AppFonts.interRegular,fontSize:10,color:AppColors_1.AppColors.grayText,lineHeight:15},modalOverlay:{flex:1,backgroundColor:"rgba(0, 0, 0, 0.5)",justifyContent:"center",alignItems:"center",padding:16},modalCard:{width:"100%",maxWidth:400,backgroundColor:AppColors_1.AppColors.primaryLight,borderRadius:14,padding:16,gap:12,shadowColor:AppColors_1.AppColors.black,shadowOpacity:.2,shadowRadius:10,shadowOffset:{width:0,height:4},elevation:5},modalHeader:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",borderBottomWidth:1,borderBottomColor:AppColors_1.AppColors.dividerColor,paddingBottom:10},modalTitle:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:14,color:AppColors_1.AppColors.primaryBlack},inputGroup:{gap:4},inputLabel:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9.5,color:AppColors_1.AppColors.grayTextWeak,letterSpacing:.5},textInput:{backgroundColor:AppColors_1.AppColors.grayBackground,borderRadius:8,paddingHorizontal:10,paddingVertical:8,fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:12,color:AppColors_1.AppColors.primaryBlack,borderWidth:1,borderColor:AppColors_1.AppColors.grayBorderSecondary},textInputDisabled:{backgroundColor:`${AppColors_1.AppColors.grayBorderSecondary}40`,color:AppColors_1.AppColors.grayText},textAreaInput:{minHeight:90,maxHeight:160,fontFamily:AppFonts_1.AppFonts.interRegular,fontSize:11},typeSelectorStrip:{flexDirection:"row",alignItems:"center",gap:6},typePill:{flex:1,alignItems:"center",paddingVertical:6,borderRadius:6,backgroundColor:AppColors_1.AppColors.grayBackground,borderWidth:1,borderColor:AppColors_1.AppColors.grayBorderSecondary},typePillActive:{backgroundColor:AppColors_1.AppColors.purple,borderColor:AppColors_1.AppColors.purple},typePillText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:10,color:AppColors_1.AppColors.grayText},typePillTextActive:{color:AppColors_1.AppColors.white},formatJsonBtn:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:10,color:AppColors_1.AppColors.purple},errorText:{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:10,color:AppColors_1.AppColors.errorColor,marginTop:2},modalActions:{flexDirection:"row",alignItems:"center",gap:10,marginTop:4},cancelBtn:{flex:1,alignItems:"center",paddingVertical:10,borderRadius:8,backgroundColor:AppColors_1.AppColors.grayBackground,borderWidth:1,borderColor:AppColors_1.AppColors.grayBorderSecondary},cancelBtnText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:12,color:AppColors_1.AppColors.grayText},saveBtn:{flex:1.5,flexDirection:"row",alignItems:"center",justifyContent:"center",gap:5,paddingVertical:10,borderRadius:8,backgroundColor:AppColors_1.AppColors.purple},saveBtnText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:12,color:AppColors_1.AppColors.white}});exports.default=exports.StorageTab;
@@ -1,14 +1,14 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(t,o,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(o,n);(!i||("get"in i?!o.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return o[n]}}),Object.defineProperty(t,r,i)}):(function(t,o,n,r){r===void 0&&(r=n),t[r]=o[n]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(t,o){Object.defineProperty(t,"default",{enumerable:!0,value:o})}):function(t,o){t.default=o}),__importStar=this&&this.__importStar||(function(){var t=function(o){return t=Object.getOwnPropertyNames||function(n){var r=[];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[r.length]=i);return r},t(o)};return function(o){if(o&&o.__esModule)return o;var n={};if(o!=null)for(var r=t(o),i=0;i<r.length;i++)r[i]!=="default"&&__createBinding(n,o,r[i]);return __setModuleDefault(n,o),n}})(),__importDefault=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0});const react_1=__importStar(require("react")),react_native_1=require("react-native"),InspectorContext_1=require("./InspectorContext"),styles_1=__importDefault(require("../../styles")),AppColors_1=require("../../styles/AppColors"),AppFonts_1=require("../../styles/AppFonts"),TouchableScale_1=__importDefault(require("../TouchableScale")),NetworkIcons_1=require("../NetworkIcons"),reduxLogger_1=require("../../customHooks/reduxLogger"),analyticsLogger_1=require("../../customHooks/analyticsLogger"),helpers_1=require("../../helpers"),HEADER_TAB_THEME={themeColor:AppColors_1.AppColors.brandPurple,bgInactive:`${AppColors_1.AppColors.brandPurple}0D`,borderInactive:`${AppColors_1.AppColors.brandPurple}2B`,iconInactive:AppColors_1.AppColors.brandPurple,idBadgeBg:`${AppColors_1.AppColors.brandPurple}1C`,idBadgeBorder:`${AppColors_1.AppColors.brandPurple}3D`,idBadgeText:AppColors_1.AppColors.brandPurple},TAB_THEMES={apis:HEADER_TAB_THEME,logs:HEADER_TAB_THEME,analytics:HEADER_TAB_THEME,redux:HEADER_TAB_THEME,storage:HEADER_TAB_THEME,device:HEADER_TAB_THEME,crash:HEADER_TAB_THEME,debugging:HEADER_TAB_THEME,media:HEADER_TAB_THEME},TabBar=react_1.default.memo(()=>{const{activeTab:t,switchActiveTab:o,tabVisibility:n,logs:r,consoleLogs:i,analyticsEvents:v,crashRecords:f,lastReadApisCount:A,lastReadLogsCount:m,lastReadCrashesCount:S,mediaCount:y}=(0,InspectorContext_1.useInspector)(),x=(0,reduxLogger_1.isReduxConnected)(),I=(0,analyticsLogger_1.isAnalyticsConnected)(),c=t==="media",g=(n?.media??!0)&&y>0,C=(0,react_1.useRef)(null),[h,T]=(0,react_1.useState)(!1),[b,B]=(0,react_1.useState)(!0),_=(0,react_1.useRef)(0),R=e=>{const{contentOffset:a,layoutMeasurement:l,contentSize:s}=e.nativeEvent,d=a.x;_.current=d;const u=d>8,p=d<s.width-l.width-8;h!==u&&T(u),b!==p&&B(p)},w=e=>{C.current?.scrollTo({x:Math.max(0,_.current+e),animated:!0})};return<react_native_1.View style={[styles_1.default.tabBarContainer,{flexDirection:"row",alignItems:"center",paddingHorizontal:0}]}>
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(t,o,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(o,n);(!i||("get"in i?!o.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return o[n]}}),Object.defineProperty(t,r,i)}):(function(t,o,n,r){r===void 0&&(r=n),t[r]=o[n]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(t,o){Object.defineProperty(t,"default",{enumerable:!0,value:o})}):function(t,o){t.default=o}),__importStar=this&&this.__importStar||(function(){var t=function(o){return t=Object.getOwnPropertyNames||function(n){var r=[];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[r.length]=i);return r},t(o)};return function(o){if(o&&o.__esModule)return o;var n={};if(o!=null)for(var r=t(o),i=0;i<r.length;i++)r[i]!=="default"&&__createBinding(n,o,r[i]);return __setModuleDefault(n,o),n}})(),__importDefault=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0});const react_1=__importStar(require("react")),react_native_1=require("react-native"),InspectorContext_1=require("./InspectorContext"),styles_1=__importDefault(require("../../styles")),AppColors_1=require("../../styles/AppColors"),AppFonts_1=require("../../styles/AppFonts"),TouchableScale_1=__importDefault(require("../TouchableScale")),NetworkIcons_1=require("../NetworkIcons"),reduxLogger_1=require("../../customHooks/reduxLogger"),analyticsLogger_1=require("../../customHooks/analyticsLogger"),helpers_1=require("../../helpers"),HEADER_TAB_THEME={themeColor:AppColors_1.AppColors.brandPurple,bgInactive:`${AppColors_1.AppColors.brandPurple}0D`,borderInactive:`${AppColors_1.AppColors.brandPurple}2B`,iconInactive:AppColors_1.AppColors.brandPurple,idBadgeBg:`${AppColors_1.AppColors.brandPurple}1C`,idBadgeBorder:`${AppColors_1.AppColors.brandPurple}3D`,idBadgeText:AppColors_1.AppColors.brandPurple},TAB_THEMES={apis:HEADER_TAB_THEME,logs:HEADER_TAB_THEME,analytics:HEADER_TAB_THEME,redux:HEADER_TAB_THEME,storage:HEADER_TAB_THEME,device:HEADER_TAB_THEME,crash:HEADER_TAB_THEME,push:HEADER_TAB_THEME,debugging:HEADER_TAB_THEME,media:HEADER_TAB_THEME},TabBar=react_1.default.memo(()=>{const{activeTab:t,switchActiveTab:o,tabVisibility:n,logs:r,consoleLogs:i,analyticsEvents:A,crashRecords:f,pushRecords:y,unreadPushCount:m,lastReadApisCount:S,lastReadLogsCount:I,lastReadCrashesCount:x,mediaCount:C}=(0,InspectorContext_1.useInspector)(),T=(0,reduxLogger_1.isReduxConnected)(),B=(0,analyticsLogger_1.isAnalyticsConnected)(),c=t==="media",g=(n?.media??!0)&&C>0,b=(0,react_1.useRef)(null),[h,R]=(0,react_1.useState)(!1),[_,P]=(0,react_1.useState)(!0),w=(0,react_1.useRef)(0),k=e=>{const{contentOffset:a,layoutMeasurement:l,contentSize:s}=e.nativeEvent,d=a.x;w.current=d;const u=d>8,p=d<s.width-l.width-8;h!==u&&R(u),_!==p&&P(p)},v=e=>{b.current?.scrollTo({x:Math.max(0,w.current+e),animated:!0})};return<react_native_1.View style={[styles_1.default.tabBarContainer,{flexDirection:"row",alignItems:"center",paddingHorizontal:0}]}>
2
2
 
3
- {h&&<react_native_1.TouchableOpacity onPress={()=>w(-160)}hitSlop={{top:6,bottom:6,left:6,right:6}}activeOpacity={.7}style={{paddingLeft:6,paddingRight:2,justifyContent:"center",alignItems:"center"}}>
3
+ {h&&<react_native_1.TouchableOpacity onPress={()=>v(-160)}hitSlop={{top:6,bottom:6,left:6,right:6}}activeOpacity={.7}style={{paddingLeft:6,paddingRight:2,justifyContent:"center",alignItems:"center"}}>
4
4
  <react_native_1.View style={{width:22,height:22,borderRadius:11,backgroundColor:AppColors_1.AppColors.grayBorderSecondary,alignItems:"center",justifyContent:"center"}}>
5
5
  <NetworkIcons_1.ChevronIcon direction="left"size={13}color={AppColors_1.AppColors.grayTextStrong}/>
6
6
  </react_native_1.View>
7
7
  </react_native_1.TouchableOpacity>}
8
8
 
9
9
 
10
- <react_native_1.ScrollView ref={C}horizontal showsHorizontalScrollIndicator={!1}onScroll={R}scrollEventThrottle={16}style={{flex:1}}contentContainerStyle={{paddingLeft:h?4:12,paddingRight:g?6:12}}>
11
- {[{id:1,key:"apis",label:"APIs",count:r.length,icon:"apis"},{id:2,key:"logs",label:"Logs",count:i.length,icon:"logs"},{id:3,key:"analytics",label:"Analytics",count:v.length,icon:"analytics"},{id:4,key:"redux",label:"Redux",count:0,icon:"redux"},{id:5,key:"storage",label:"Storage",count:0,icon:"storage"},{id:6,key:"device",label:"Device",count:0,icon:"device"},{id:7,key:"crash",label:"Crash",count:f?.length||0,icon:"crash"},{id:8,key:"debugging",label:"Debugging",count:0,icon:"debugging"}].filter(e=>e.key==="debugging"?react_native_1.Platform.OS==="android"&&(0,helpers_1.isLocalDebugEnvironment)()&&!!n?.debugging:!(!n?.[e.key]||e.key==="redux"&&!x||e.key==="analytics"&&!I)).map(e=>{const a=t===e.key,l=TAB_THEMES[e.key]||TAB_THEMES.apis,s=a?AppColors_1.AppColors.white:l.iconInactive,d=e.count>99?"99+":String(e.count),u=t!=="apis"&&r.length>A,p=t!=="logs"&&i.length>m,O=t!=="crash"&&(f?.length||0)>(S||0);return<TouchableScale_1.default key={e.key}onPress={()=>{o(e.key)}}style={[styles_1.default.contentTabButton,{backgroundColor:a?l.themeColor:l.bgInactive,borderColor:a?l.themeColor:l.borderInactive},a&&{shadowColor:l.themeColor,shadowOffset:{width:0,height:2},shadowOpacity:.28,shadowRadius:3.5,elevation:3}]}>
10
+ <react_native_1.ScrollView ref={b}horizontal showsHorizontalScrollIndicator={!1}onScroll={k}scrollEventThrottle={16}style={{flex:1}}contentContainerStyle={{paddingLeft:h?4:12,paddingRight:g?6:12}}>
11
+ {[{id:1,key:"apis",label:"APIs",count:r.length,icon:"apis"},{id:2,key:"logs",label:"Logs",count:i.length,icon:"logs"},{id:3,key:"analytics",label:"Analytics",count:A.length,icon:"analytics"},{id:4,key:"redux",label:"Redux",count:0,icon:"redux"},{id:5,key:"storage",label:"Storage",count:0,icon:"storage"},{id:6,key:"device",label:"Device",count:0,icon:"device"},{id:7,key:"crash",label:"Crash",count:f?.length||0,icon:"crash"},{id:8,key:"push",label:"Push",count:y?.length||0,icon:"push"},{id:9,key:"debugging",label:"Debugging",count:0,icon:"debugging"}].filter(e=>e.key==="debugging"?react_native_1.Platform.OS==="android"&&(0,helpers_1.isLocalDebugEnvironment)()&&!!n?.debugging:!(!n?.[e.key]||e.key==="redux"&&!T||e.key==="analytics"&&!B)).map(e=>{const a=t===e.key,l=TAB_THEMES[e.key]||TAB_THEMES.apis,s=a?AppColors_1.AppColors.white:l.iconInactive,d=e.count>99?"99+":String(e.count),u=t!=="apis"&&r.length>S,p=t!=="logs"&&i.length>I,O=t!=="crash"&&(f?.length||0)>(x||0);return<TouchableScale_1.default key={e.key}onPress={()=>{o(e.key)}}style={[styles_1.default.contentTabButton,{backgroundColor:a?l.themeColor:l.bgInactive,borderColor:a?l.themeColor:l.borderInactive},a&&{shadowColor:l.themeColor,shadowOffset:{width:0,height:2},shadowOpacity:.28,shadowRadius:3.5,elevation:3}]}>
12
12
  <react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:6}}>
13
13
  {e.icon==="apis"&&<NetworkIcons_1.SignalIcon color={s}size={14}/>}
14
14
  {e.icon==="logs"&&<NetworkIcons_1.TerminalIcon color={s}size={14}/>}
@@ -17,6 +17,7 @@
17
17
  {e.icon==="storage"&&<NetworkIcons_1.DatabaseIcon color={s}size={14}/>}
18
18
  {e.icon==="device"&&<NetworkIcons_1.SmartphoneIcon color={s}size={14}/>}
19
19
  {e.icon==="crash"&&<NetworkIcons_1.CrashIcon color={s}size={14}/>}
20
+ {e.icon==="push"&&<NetworkIcons_1.BellIcon color={s}size={14}/>}
20
21
  {e.icon==="debugging"&&<NetworkIcons_1.QrCodeIcon color={s}size={14}/>}
21
22
  <react_native_1.View style={{minWidth:20,height:20,paddingHorizontal:4,borderRadius:10,backgroundColor:a?`${AppColors_1.AppColors.white}33`:l.idBadgeBg,borderWidth:1,borderColor:a?`${AppColors_1.AppColors.white}66`:l.idBadgeBorder,alignItems:"center",justifyContent:"center"}}>
22
23
  <react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9.5,lineHeight:12,color:a?AppColors_1.AppColors.white:l.idBadgeText}}>
@@ -26,18 +27,18 @@
26
27
  <react_native_1.Text numberOfLines={1}ellipsizeMode="tail"style={[styles_1.default.contentTabButtonText,{color:a?AppColors_1.AppColors.white:AppColors_1.AppColors.grayTextStrong,fontFamily:a?AppFonts_1.AppFonts.interBold:AppFonts_1.AppFonts.interSemiBold}]}>
27
28
  {e.label}
28
29
  </react_native_1.Text>
29
- {e.count>0&&<react_native_1.View style={{paddingHorizontal:5,paddingVertical:1,borderRadius:8,backgroundColor:a?"rgba(255,255,255,0.25)":l.idBadgeBg,borderWidth:.5,borderColor:a?"rgba(255,255,255,0.45)":l.idBadgeBorder,marginLeft:1,alignItems:"center",justifyContent:"center"}}>
30
+ {e.count>0&&e.key!=="push"&&<react_native_1.View style={{paddingHorizontal:5,paddingVertical:1,borderRadius:8,backgroundColor:a?"rgba(255,255,255,0.25)":l.idBadgeBg,borderWidth:.5,borderColor:a?"rgba(255,255,255,0.45)":l.idBadgeBorder,marginLeft:1,alignItems:"center",justifyContent:"center"}}>
30
31
  <react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9.5,lineHeight:12,color:a?AppColors_1.AppColors.white:l.themeColor}}>
31
32
  {d}
32
33
  </react_native_1.Text>
33
34
  </react_native_1.View>}
34
- {(e.key==="apis"&&u||e.key==="logs"&&p||e.key==="crash"&&O)&&<react_native_1.View style={{width:6,height:6,borderRadius:3,backgroundColor:AppColors_1.AppColors.errorColor,marginLeft:4,alignSelf:"center"}}/>}
35
+ {(e.key==="apis"&&u||e.key==="logs"&&p||e.key==="crash"&&O||e.key==="push"&&((y?.length||0)>0||m>0))&&<react_native_1.View style={{width:6,height:6,borderRadius:3,backgroundColor:AppColors_1.AppColors.errorColor,marginLeft:4,alignSelf:"center"}}/>}
35
36
  </react_native_1.View>
36
37
  </TouchableScale_1.default>})}
37
38
  </react_native_1.ScrollView>
38
39
 
39
40
 
40
- {b&&<react_native_1.TouchableOpacity onPress={()=>w(160)}hitSlop={{top:6,bottom:6,left:6,right:6}}activeOpacity={.7}style={{paddingLeft:2,paddingRight:g?4:8,justifyContent:"center",alignItems:"center"}}>
41
+ {_&&<react_native_1.TouchableOpacity onPress={()=>v(160)}hitSlop={{top:6,bottom:6,left:6,right:6}}activeOpacity={.7}style={{paddingLeft:2,paddingRight:g?4:8,justifyContent:"center",alignItems:"center"}}>
41
42
  <react_native_1.View style={{width:22,height:22,borderRadius:11,backgroundColor:AppColors_1.AppColors.grayBorderSecondary,alignItems:"center",justifyContent:"center"}}>
42
43
  <NetworkIcons_1.ChevronIcon direction="right"size={13}color={AppColors_1.AppColors.grayTextStrong}/>
43
44
  </react_native_1.View>
@@ -48,7 +49,7 @@
48
49
  <TouchableScale_1.default key="media"onPress={()=>{o("media")}}accessibilityRole="button"accessibilityLabel="Media Gallery"style={[styles_1.default.contentTabButton,{marginRight:0,borderRadius:8,backgroundColor:c?AppColors_1.AppColors.brandPurple:`${AppColors_1.AppColors.brandPurple}0D`,borderColor:c?AppColors_1.AppColors.brandPurple:`${AppColors_1.AppColors.brandPurple}2B`,borderWidth:1,paddingHorizontal:10,paddingVertical:7,alignItems:"center",justifyContent:"center"},c&&{shadowColor:AppColors_1.AppColors.brandPurple,shadowOffset:{width:0,height:2},shadowOpacity:.28,shadowRadius:3.5,elevation:3}]}>
49
50
  <react_native_1.View style={{position:"relative",alignItems:"center",justifyContent:"center"}}>
50
51
  <NetworkIcons_1.ScreencastIcon color={c?AppColors_1.AppColors.white:AppColors_1.AppColors.brandPurple}size={15}/>
51
- {y>0&&<react_native_1.View style={{position:"absolute",top:-3,right:-4,width:7,height:7,borderRadius:3.5,backgroundColor:c?AppColors_1.AppColors.white:AppColors_1.AppColors.brandPurple,borderWidth:1.2,borderColor:c?AppColors_1.AppColors.brandPurple:AppColors_1.AppColors.white}}/>}
52
+ {C>0&&<react_native_1.View style={{position:"absolute",top:-3,right:-4,width:7,height:7,borderRadius:3.5,backgroundColor:c?AppColors_1.AppColors.white:AppColors_1.AppColors.brandPurple,borderWidth:1.2,borderColor:c?AppColors_1.AppColors.brandPurple:AppColors_1.AppColors.white}}/>}
52
53
  </react_native_1.View>
53
54
  </TouchableScale_1.default>
54
55
  </react_native_1.View>}
@@ -1,4 +1,4 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(t,e,a,o){o===void 0&&(o=a);var r=Object.getOwnPropertyDescriptor(e,a);(!r||("get"in r?!e.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return e[a]}}),Object.defineProperty(t,o,r)}):(function(t,e,a,o){o===void 0&&(o=a),t[o]=e[a]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),__importStar=this&&this.__importStar||(function(){var t=function(e){return t=Object.getOwnPropertyNames||function(a){var o=[];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(o[o.length]=r);return o},t(e)};return function(e){if(e&&e.__esModule)return e;var a={};if(e!=null)for(var o=t(e),r=0;r<o.length;r++)o[r]!=="default"&&__createBinding(a,e,o[r]);return __setModuleDefault(a,e),a}})();Object.defineProperty(exports,"__esModule",{value:!0}),exports.UpdateAvailableModal=void 0;const react_1=__importStar(require("react")),react_native_1=require("react-native"),react_native_svg_1=__importStar(require("react-native-svg")),BrandSquareIcon_1=require("../BrandSquareIcon"),NetworkIcons_1=require("../NetworkIcons"),constants_1=require("../../constants"),helpers_1=require("../../helpers"),toast_1=require("../../helpers/toast"),AppFonts_1=require("../../styles/AppFonts"),AppColors_1=require("../../styles/AppColors"),CopySvg=({size:t=14,color:e=AppColors_1.AppColors.grayTextWeak})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(t,e,a,o){o===void 0&&(o=a);var r=Object.getOwnPropertyDescriptor(e,a);(!r||("get"in r?!e.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return e[a]}}),Object.defineProperty(t,o,r)}):(function(t,e,a,o){o===void 0&&(o=a),t[o]=e[a]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),__importStar=this&&this.__importStar||(function(){var t=function(e){return t=Object.getOwnPropertyNames||function(a){var o=[];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(o[o.length]=r);return o},t(e)};return function(e){if(e&&e.__esModule)return e;var a={};if(e!=null)for(var o=t(e),r=0;r<o.length;r++)o[r]!=="default"&&__createBinding(a,e,o[r]);return __setModuleDefault(a,e),a}})();Object.defineProperty(exports,"__esModule",{value:!0}),exports.UpdateAvailableModal=void 0;const react_1=__importStar(require("react")),react_native_1=require("react-native"),react_native_svg_1=__importStar(require("react-native-svg")),BrandCircleIcon_1=require("../BrandCircleIcon"),NetworkIcons_1=require("../NetworkIcons"),constants_1=require("../../constants"),helpers_1=require("../../helpers"),toast_1=require("../../helpers/toast"),AppFonts_1=require("../../styles/AppFonts"),AppColors_1=require("../../styles/AppColors"),CopySvg=({size:t=14,color:e=AppColors_1.AppColors.grayTextWeak})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
2
2
  <react_native_svg_1.Path d="M8 4v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2z"stroke={e}strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
3
3
  <react_native_svg_1.Path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"stroke={e}strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
4
4
  </react_native_svg_1.default>,CheckSvg=({size:t=14,color:e=AppColors_1.AppColors.emerald500})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
@@ -24,7 +24,7 @@
24
24
 
25
25
  <react_native_1.View style={styles.headerSection}>
26
26
  <react_native_1.View style={styles.iconHaloRing}>
27
- <BrandSquareIcon_1.BrandSquareIcon size={38}/>
27
+ <BrandCircleIcon_1.BrandCircleIcon size={38}/>
28
28
  <react_native_1.View style={styles.sparkleBadge}>
29
29
  <SparkleSvg size={13}color={AppColors_1.AppColors.amber500}/>
30
30
  </react_native_1.View>