react-native-inapp-inspector 2.5.15 → 2.5.16

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.
@@ -1,176 +1,176 @@
1
- import{useMemo as Qe,useState as Me,useEffect as Ze,useRef as jr}from"react";import{Alert as j,Animated as _,Platform as Ct,ScrollView as J,StyleSheet as Ur,Switch as St,Text as T,TextInput as Gr,View as C}from"react-native";import{animateNextLayout as _r,useInspector as kt}from"./InspectorContext";import V from"../TouchableScale";import Jr from"../Slider";import{toggleGlobalTheme as xt}from"../../styles";import{AppColors as e}from"../../styles/AppColors";import{AppFonts as S}from"../../styles/AppFonts";import{DEFAULT_HIDDEN_URL_PATTERNS as er}from"../../constants";import{calculateRamBasedLimits as Tt}from"../../helpers/settingsStore";import{clearNetworkLogs as Rt}from"../../customHooks/networkLogger";import{clearConsoleLogs as Vt}from"../../customHooks/consoleLogger";import{clearAnalyticsEvents as zt,isAnalyticsConnected as qr}from"../../customHooks/analyticsLogger";import{clearCrashRecords as Bt}from"../../customHooks/crashHandler";import{isReduxConnected as Yr}from"../../customHooks/reduxLogger";import{useTranslation as Ft,SUPPORTED_LANGUAGES as Kr,getLanguage as It}from"../../i18n";import{LanguageSelectorModal as Dt}from"./LanguageSelectorModal";import{GlobeIcon as Xr,SignalIcon as Qr,TerminalIcon as Zr,AnalyticsIcon as Co,SettingsIcon as Ht,SunIcon as $t,MoonIcon as Pt,ScreenIcon as So,MotionIcon as Wt,LayersIcon as Q,EyeIcon as Ce,CheckIcon as Se,TrashIcon as O,PackageIcon as Lt,ReduxIcon as To,CrashIcon as At,ShieldAlertIcon as Ro,ShieldCheckIcon as Vo,ScaleBalanceIcon as Et,VolumeMuteIcon as Ot,JsIcon as Mt,ChipIcon as Nt,LayoutIcon as Ut,HourglassIcon as Gt,CodeBracketsIcon as Bo,LockIcon as _t,RefreshCcwIcon as Jt,ForwardChevronIcon as Fo,ChevronDownIcon as Yt,BrainIcon as Io,SmartphoneIcon as Kt,DatabaseIcon as Xt,FilmIcon as Do,ScreencastIcon as Qt,CameraIcon as Te,VideoCameraIcon as Cr,MicrophoneIcon as Ho,GifIcon as $o,ImageIcon as Po,BellIcon as Wo,WebsocketIcon as Lo,SpeedometerIcon as Zt,BoltIcon as Sr}from"../NetworkIcons";import{ScreenCapture as kr}from"../../capture";import{triggerNativeHaptic as D}from"../../native/NativeInspector";import{showToast as B}from"../../helpers/toast";import{pruneAllLogs as ei}from"../../helpers/memoryManager";const ri=()=>{const{t:w}=Ft(),{settingsPage:v,setSettingsPage:vo,settingsActiveSubTab:q,setSettingsActiveSubTab:xr,tabVisibility:Y,toggleTabVisibility:Tr,defaultTab:K,setDefaultTab:Ao,isDark:Z,setIsDark:Eo,modalHeightPercent:Re,setModalHeightPercent:Oo,modalAnimationType:Mo,setModalAnimationType:No,showDuplicateLogs:Ne,setShowDuplicateLogs:jo,showUpdateToast:je,setShowUpdateToast:Uo,showConsoleLevels:Go,setShowConsoleLevels:_o,closeModal:oi,logs:Ue,consoleLogs:Ge,analyticsEvents:_e,reduxState:Ve,maxConsoleLogs:Rr,setMaxConsoleLogs:Jo,maxAnalyticsEventsLimit:Vr,setMaxAnalyticsEventsLimit:qo,isAutoRamLimitEnabled:W,setIsAutoRamLimitEnabled:Yo,deviceFreeRamMb:Je,reduxAutoRefresh:qe,setReduxAutoRefreshState:Ko,reduxExpandDepth:Xo,setReduxExpandDepth:Qo,setSelected:Zo,setSelectedEvent:et,setReduxState:rt,crashRecords:ze,maxCrashLogs:zr,setMaxCrashLogs:Br,crashIgnoredTypes:$,setCrashIgnoredTypes:ot,crashModalTriggerPolicy:tt,setCrashModalTriggerPolicyState:Fr,applyCrashPolicyPreset:Be,pushRecords:Fe,maxPushLogs:it,setMaxPushLogs:lt,clearAllPushLogs:at,simulatePush:Ie,socketRecords:De,maxSocketLogs:nt,setMaxSocketLogs:st,clearAllSocketLogs:dt,simulateSocket:He,captureImageFormat:Ye,setCaptureImageFormat:Ir,captureAutoHide:L,setCaptureAutoHide:$e,captureAudioMode:Dr,setCaptureAudioMode:Hr,captureFps:$r,setCaptureFps:Pr,captureScale:ti,setCaptureScale:ii,captureBitrate:li,setCaptureBitrate:ai,captureMaxDurationSeconds:ni,setCaptureMaxDurationSeconds:si,captureAutoGif:A,setCaptureAutoGif:Pe,captureWidgetEnabled:X,setCaptureWidgetEnabled:Wr,peekOpacity:Lr,setPeekOpacity:ct,hiddenUrlPatterns:ee,setHiddenUrlPatterns:Ke}=kt(),[We,vr]=Me(""),[Le,Ar]=Me(Re),[gt,Er]=Me(!1),pt=It(),ve=Kr.find(r=>r.code===pt)||Kr[0],Or=()=>{const r=We.trim();if(r){if(ee.includes(r)){B("Pattern already exists in filter list");return}try{new RegExp(r)}catch{}D("light"),Ke(R=>[...R,r]),vr(""),B("Hidden URL pattern added")}},yt=r=>{const R=ee[r];if(er.includes(R)){B("Default system filter cannot be removed");return}D("light"),Ke(I=>I.filter((P,E)=>E!==r)),B("Pattern removed")};Ze(()=>{Ar(Re)},[Re]);const M=jr(new _.Value(1)).current;Ze(()=>{M.setValue(0),_.spring(M,{toValue:1,friction:8,tension:65,useNativeDriver:!0}).start()},[q]);const Ae=Tt(Je),N=Qe(()=>[{id:1,key:"apis",label:"APIs (Network)",category:"core",icon:"apis",desc:"HTTP/HTTPS requests, GraphQL, Axios & WebSocket inspector"},{id:2,key:"logs",label:"Console Logs",category:"core",icon:"logs",desc:"Terminal console logs, warnings, errors & stack traces"},{id:3,key:"perf",label:"Performance & FPS",category:"telemetry",icon:"perf",desc:"Live 60 FPS graph, JS event loop queue lag, memory heap & jank monitor"},{id:4,key:"analytics",label:"Analytics Logger",category:"telemetry",icon:"analytics",desc:"Firebase & custom analytics events, user properties & params"},{id:5,key:"redux",label:"Redux Inspector",category:"telemetry",icon:"redux",desc:"Store state diffing, action history & reducer timeline"},{id:6,key:"storage",label:"Storage Inspector",category:"telemetry",icon:"storage",desc:"AsyncStorage & MMKV key-value store viewer with full CRUD support"},{id:7,key:"device",label:"Device Info",category:"diagnostic",icon:"device",desc:"Hardware specs, IP address, screen metrics, UDID & runtime stats"},{id:8,key:"crash",label:"Crash Protection",category:"diagnostic",icon:"crash",desc:"Runtime exception guard, breadcrumbs & memory snapshot"},{id:9,key:"media",label:"Screencast",category:"diagnostic",icon:"media",desc:"Screenshots, video recordings, audio narration & animated GIFs"},{id:10,key:"push",label:"Push Notifications",category:"telemetry",icon:"push",desc:"Universal push & local notification logger (Salesforce, FCM, APNs, Braze, Expo)"},{id:11,key:"socket",label:"WebSocket & Socket.IO",category:"telemetry",icon:"socket",desc:"Real-time WebSocket & Socket.IO message inspector, frames & event logger"}],[]),ut={apis:{color:e.blue500,bg:`${e.blue500}14`,border:`${e.blue500}2E`},logs:{color:e.purple,bg:`${e.purple}14`,border:`${e.purple}2E`},perf:{color:e.purple,bg:`${e.purple}14`,border:`${e.purple}2E`},analytics:{color:e.amber600,bg:`${e.amber600}14`,border:`${e.amber600}2E`},redux:{color:e.violet600,bg:`${e.violet600}14`,border:`${e.violet600}2E`},storage:{color:e.cyan600,bg:`${e.cyan600}14`,border:`${e.cyan600}2E`},device:{color:e.emerald600,bg:`${e.emerald600}14`,border:`${e.emerald600}2E`},crash:{color:e.red600,bg:`${e.red600}14`,border:`${e.red600}2E`},media:{color:e.pink600,bg:`${e.pink600}14`,border:`${e.pink600}2E`},push:{color:e.orange600,bg:`${e.orange600}14`,border:`${e.orange600}2E`},socket:{color:e.teal600,bg:`${e.teal600}14`,border:`${e.teal600}2E`}},Ee=Qe(()=>N.filter(r=>!(r.key==="apis"||r.key==="redux"&&!Yr()||r.key==="analytics"&&!qr())),[N]),ht=N.filter(r=>r.key==="apis"||!!Y?.[r.key]).length,re=Qe(()=>Ee.length===0?!1:Ee.every(r=>!!Y?.[r.key]),[Ee,Y]),bt=r=>{r!=="apis"&&(D("light"),Tr(r))},mt=()=>{D("medium");const r=!re;Ee.forEach(R=>{!!Y?.[R.key]!==r&&Tr(R.key)}),B(r?"All modules enabled":"Optional modules disabled")},[Xe,Mr]=Me(!1),F=r=><C key={r.key}style={{paddingVertical:12,borderBottomWidth:r.isLast?0:1,borderBottomColor:e.dividerColor}}>
2
- <V disabled={!r.onPress}onPress={r.onPress}style={{flexDirection:"row",alignItems:"center",gap:12}}>
1
+ import{useMemo as er,useState as Ne,useEffect as rr,useRef as Nr}from"react";import{Alert as U,Animated as J,Platform as mt,ScrollView as Y,StyleSheet as jr,Switch as Ct,Text as T,TextInput as Ur,View as C}from"react-native";import{animateNextLayout as Gr,useInspector as St}from"./InspectorContext";import R from"../TouchableScale";import _r from"../Slider";import{toggleGlobalTheme as kt}from"../../styles";import{AppColors as e}from"../../styles/AppColors";import{AppFonts as k}from"../../styles/AppFonts";import{DEFAULT_HIDDEN_URL_PATTERNS as or}from"../../constants";import{calculateRamBasedLimits as wt}from"../../helpers/settingsStore";import{clearNetworkLogs as xt}from"../../customHooks/networkLogger";import{clearConsoleLogs as Tt}from"../../customHooks/consoleLogger";import{clearAnalyticsEvents as Vt,isAnalyticsConnected as Jr}from"../../customHooks/analyticsLogger";import{clearCrashRecords as zt}from"../../customHooks/crashHandler";import{isReduxConnected as qr}from"../../customHooks/reduxLogger";import{useTranslation as Rt,SUPPORTED_LANGUAGES as Yr,getLanguage as Bt}from"../../i18n";import{LanguageSelectorModal as Ft}from"./LanguageSelectorModal";import{GlobeIcon as Kr,SignalIcon as Xr,TerminalIcon as Qr,AnalyticsIcon as Zr,SettingsIcon as It,SunIcon as Dt,MoonIcon as $t,ScreenIcon as Co,MotionIcon as Pt,LayersIcon as Ce,EyeIcon as Ue,CheckIcon as Te,TrashIcon as M,PackageIcon as Ht,ReduxIcon as So,CrashIcon as Wt,ShieldAlertIcon as To,ShieldCheckIcon as Vo,ScaleBalanceIcon as Lt,VolumeMuteIcon as At,JsIcon as Et,ChipIcon as Ot,LayoutIcon as Mt,HourglassIcon as Nt,CodeBracketsIcon as Ro,LockIcon as Ut,RefreshCcwIcon as Gt,ForwardChevronIcon as Bo,ChevronDownIcon as _t,BrainIcon as Fo,SmartphoneIcon as Jt,DatabaseIcon as Yt,FilmIcon as Io,ScreencastIcon as Kt,CameraIcon as Ve,VideoCameraIcon as Cr,MicrophoneIcon as Do,GifIcon as $o,ImageIcon as Po,BellIcon as Ho,WebsocketIcon as Wo,SpeedometerIcon as Xt,BoltIcon as Sr}from"../NetworkIcons";import{ScreenCapture as kr}from"../../capture";import{triggerNativeHaptic as $}from"../../native/NativeInspector";import{showToast as F}from"../../helpers/toast";import{pruneAllLogs as Qt}from"../../helpers/memoryManager";const Zt=()=>{const{t:S}=Rt(),{settingsPage:A,setSettingsPage:Lo,settingsActiveSubTab:K,setSettingsActiveSubTab:wr,tabVisibility:X,toggleTabVisibility:xr,defaultTab:Q,setDefaultTab:vo,isDark:Se,setIsDark:Ao,modalHeightPercent:ze,setModalHeightPercent:Eo,modalAnimationType:Oo,setModalAnimationType:Mo,showUpdateToast:Ge,setShowUpdateToast:No,showConsoleLevels:jo,setShowConsoleLevels:Uo,closeModal:ei,logs:_e,consoleLogs:Je,analyticsEvents:qe,reduxState:Re,maxConsoleLogs:Tr,setMaxConsoleLogs:Go,maxAnalyticsEventsLimit:Vr,setMaxAnalyticsEventsLimit:_o,isAutoRamLimitEnabled:L,setIsAutoRamLimitEnabled:Jo,deviceFreeRamMb:Ye,reduxAutoRefresh:Ke,setReduxAutoRefreshState:qo,reduxExpandDepth:Yo,setReduxExpandDepth:Ko,setSelected:Xo,setSelectedEvent:Qo,setReduxState:Zo,crashRecords:Be,maxCrashLogs:zr,setMaxCrashLogs:Rr,crashIgnoredTypes:H,setCrashIgnoredTypes:et,crashModalTriggerPolicy:rt,setCrashModalTriggerPolicyState:Br,applyCrashPolicyPreset:Fe,pushRecords:Ie,maxPushLogs:ot,setMaxPushLogs:tt,clearAllPushLogs:it,simulatePush:De,socketRecords:$e,maxSocketLogs:lt,setMaxSocketLogs:at,clearAllSocketLogs:nt,simulateSocket:Pe,captureImageFormat:Xe,setCaptureImageFormat:Fr,captureAutoHide:v,setCaptureAutoHide:He,captureAudioMode:Ir,setCaptureAudioMode:Dr,captureFps:$r,setCaptureFps:Pr,captureScale:ri,setCaptureScale:oi,captureBitrate:ti,setCaptureBitrate:ii,captureMaxDurationSeconds:li,setCaptureMaxDurationSeconds:ai,captureAutoGif:E,setCaptureAutoGif:We,captureWidgetEnabled:Z,setCaptureWidgetEnabled:Hr,peekOpacity:Wr,setPeekOpacity:st,hiddenUrlPatterns:ke,setHiddenUrlPatterns:Qe}=St(),[Le,Lr]=Ne(""),[ve,vr]=Ne(ze),[dt,Ar]=Ne(!1),ct=Bt(),Ae=Yr.find(r=>r.code===ct)||Yr[0],Er=()=>{const r=Le.trim();if(r){if(ke.includes(r)){F("Pattern already exists in filter list");return}try{new RegExp(r)}catch{}$("light"),Qe(V=>[...V,r]),Lr(""),F("Hidden URL pattern added")}},gt=r=>{const V=ke[r];if(or.includes(V)){F("Default system filter cannot be removed");return}$("light"),Qe(D=>D.filter((W,O)=>O!==r)),F("Pattern removed")};rr(()=>{vr(ze)},[ze]);const N=Nr(new J.Value(1)).current;rr(()=>{N.setValue(0),J.spring(N,{toValue:1,friction:8,tension:65,useNativeDriver:!0}).start()},[K]);const Ee=wt(Ye),j=er(()=>[{id:1,key:"apis",label:"APIs (Network)",category:"core",icon:"apis",desc:"HTTP/HTTPS requests, GraphQL, Axios & WebSocket inspector"},{id:2,key:"logs",label:"Console Logs",category:"core",icon:"logs",desc:"Terminal console logs, warnings, errors & stack traces"},{id:3,key:"perf",label:"Performance & FPS",category:"telemetry",icon:"perf",desc:"Live 60 FPS graph, JS event loop queue lag, memory heap & jank monitor"},{id:4,key:"analytics",label:"Analytics Logger",category:"telemetry",icon:"analytics",desc:"Firebase & custom analytics events, user properties & params"},{id:5,key:"redux",label:"Redux Inspector",category:"telemetry",icon:"redux",desc:"Store state diffing, action history & reducer timeline"},{id:6,key:"storage",label:"Storage Inspector",category:"telemetry",icon:"storage",desc:"AsyncStorage & MMKV key-value store viewer with full CRUD support"},{id:7,key:"device",label:"Device Info",category:"diagnostic",icon:"device",desc:"Hardware specs, IP address, screen metrics, UDID & runtime stats"},{id:8,key:"crash",label:"Crash Protection",category:"diagnostic",icon:"crash",desc:"Runtime exception guard, breadcrumbs & memory snapshot"},{id:9,key:"media",label:"Screencast",category:"diagnostic",icon:"media",desc:"Screenshots, video recordings, audio narration & animated GIFs"},{id:10,key:"push",label:"Push Notifications",category:"telemetry",icon:"push",desc:"Universal push & local notification logger (Salesforce, FCM, APNs, Braze, Expo)"},{id:11,key:"socket",label:"WebSocket & Socket.IO",category:"telemetry",icon:"socket",desc:"Real-time WebSocket & Socket.IO message inspector, frames & event logger"}],[]),pt={apis:{color:e.blue500,bg:`${e.blue500}14`,border:`${e.blue500}2E`},logs:{color:e.purple,bg:`${e.purple}14`,border:`${e.purple}2E`},perf:{color:e.purple,bg:`${e.purple}14`,border:`${e.purple}2E`},analytics:{color:e.amber600,bg:`${e.amber600}14`,border:`${e.amber600}2E`},redux:{color:e.violet600,bg:`${e.violet600}14`,border:`${e.violet600}2E`},storage:{color:e.cyan600,bg:`${e.cyan600}14`,border:`${e.cyan600}2E`},device:{color:e.emerald600,bg:`${e.emerald600}14`,border:`${e.emerald600}2E`},crash:{color:e.red600,bg:`${e.red600}14`,border:`${e.red600}2E`},media:{color:e.pink600,bg:`${e.pink600}14`,border:`${e.pink600}2E`},push:{color:e.orange600,bg:`${e.orange600}14`,border:`${e.orange600}2E`},socket:{color:e.teal600,bg:`${e.teal600}14`,border:`${e.teal600}2E`}},Oe=er(()=>j.filter(r=>!(r.key==="apis"||r.key==="redux"&&!qr()||r.key==="analytics"&&!Jr())),[j]),yt=j.filter(r=>r.key==="apis"||!!X?.[r.key]).length,we=er(()=>Oe.length===0?!1:Oe.every(r=>!!X?.[r.key]),[Oe,X]),ut=r=>{r!=="apis"&&($("light"),xr(r))},ht=()=>{$("medium");const r=!we;Oe.forEach(V=>{!!X?.[V.key]!==r&&xr(V.key)}),F(r?"All modules enabled":"Optional modules disabled")},[Ze,Or]=Ne(!1),I=r=><C key={r.key}style={{paddingVertical:12,borderBottomWidth:r.isLast?0:1,borderBottomColor:e.dividerColor}}>
2
+ <R disabled={!r.onPress}onPress={r.onPress}style={{flexDirection:"row",alignItems:"center",gap:12}}>
3
3
  <C style={{width:36,height:36,borderRadius:10,backgroundColor:e.purpleShade50,borderWidth:1,borderColor:`${e.purple}2E`,alignItems:"center",justifyContent:"center"}}>
4
4
  {r.icon}
5
5
  </C>
6
6
  <C style={{flex:1}}>
7
- <T style={{fontFamily:S.interBold,fontSize:14,lineHeight:18,color:e.primaryBlack}}>
7
+ <T style={{fontFamily:k.interBold,fontSize:14,lineHeight:18,color:e.primaryBlack}}>
8
8
  {r.label}
9
9
  </T>
10
- {r.description?<T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
10
+ {r.description?<T style={{fontFamily:k.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
11
11
  {r.description}
12
12
  </T>:null}
13
13
  </C>
14
14
  {r.right||null}
15
- </V>
15
+ </R>
16
16
  {r.numericInput&&<C style={{marginTop:10,gap:6}}>
17
17
  <C style={{flexDirection:"row",alignItems:"center",backgroundColor:e.grayBackground,borderRadius:8,borderWidth:1,borderColor:e.dividerColor,paddingHorizontal:12,paddingVertical:4}}>
18
- <Gr style={{flex:1,fontFamily:S.interMedium,fontSize:14,lineHeight:18,color:e.primaryBlack,paddingVertical:6}}value={String(r.numericInput.value||"")}onChangeText={R=>{const I=parseInt(R.replace(/[^0-9]/g,""),10);if(!isNaN(I)){const P=Math.max(r.numericInput?.min??1,Math.min(r.numericInput?.max??1e4,I));r.numericInput?.onChange(P)}}}keyboardType={r.numericInput.keyboardType??"number-pad"}placeholder={r.numericInput.placeholder}placeholderTextColor={e.grayTextWeak}maxLength={6}selectTextOnFocus/>
19
- <T style={{fontFamily:S.interBold,fontSize:11,color:e.purple,marginLeft:6}}>
18
+ <Ur style={{flex:1,fontFamily:k.interMedium,fontSize:14,lineHeight:18,color:e.primaryBlack,paddingVertical:6}}value={String(r.numericInput.value||"")}onChangeText={V=>{const D=parseInt(V.replace(/[^0-9]/g,""),10);if(!isNaN(D)){const W=Math.max(r.numericInput?.min??1,Math.min(r.numericInput?.max??1e4,D));r.numericInput?.onChange(W)}}}keyboardType={r.numericInput.keyboardType??"number-pad"}placeholder={r.numericInput.placeholder}placeholderTextColor={e.grayTextWeak}maxLength={6}selectTextOnFocus/>
19
+ <T style={{fontFamily:k.interBold,fontSize:11,color:e.purple,marginLeft:6}}>
20
20
  MAX
21
21
  </T>
22
22
  </C>
23
- {r.numericInput.min!==void 0||r.numericInput.max!==void 0?<T style={{fontFamily:S.interRegular,fontSize:10,lineHeight:13,color:e.grayTextWeak}}>
23
+ {r.numericInput.min!==void 0||r.numericInput.max!==void 0?<T style={{fontFamily:k.interRegular,fontSize:10,lineHeight:13,color:e.grayTextWeak}}>
24
24
  Range: {r.numericInput.min??1} -{" "}
25
25
  {r.numericInput.max??"\u221E"}
26
26
  </T>:null}
27
27
  </C>}
28
28
  {r.picker&&<C style={{flexDirection:"row",backgroundColor:e.grayBackground,borderRadius:8,padding:2.5,marginTop:10,borderWidth:1,borderColor:e.dividerColor}}>
29
- {r.picker.options.map(R=>{const I=r.picker.selectedValue===R;return<V key={String(R)}onPress={()=>r.picker.onSelect(R)}style={{flex:1,paddingVertical:6,alignItems:"center",borderRadius:6,backgroundColor:I?e.purple:"transparent"}}>
30
- <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:I?e.white:e.grayText}}>
31
- {r.picker.formatLabel?r.picker.formatLabel(R):R}
29
+ {r.picker.options.map(V=>{const D=r.picker.selectedValue===V;return<R key={String(V)}onPress={()=>r.picker.onSelect(V)}style={{flex:1,paddingVertical:6,alignItems:"center",borderRadius:6,backgroundColor:D?e.purple:"transparent"}}>
30
+ <T style={{fontFamily:k.interBold,fontSize:11,lineHeight:14,color:D?e.white:e.grayText}}>
31
+ {r.picker.formatLabel?r.picker.formatLabel(V):V}
32
32
  </T>
33
- </V>})}
33
+ </R>})}
34
34
  </C>}
35
- </C>,ft=()=><C style={{flex:1,backgroundColor:e.grayBackground}}>
36
- <J style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:14}}showsVerticalScrollIndicator={!1}>
35
+ </C>,bt=()=><C style={{flex:1,backgroundColor:e.grayBackground}}>
36
+ <Y style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:14}}showsVerticalScrollIndicator={!1}>
37
37
 
38
38
  <C style={{backgroundColor:e.primaryLight,borderRadius:12,padding:3,borderWidth:1,borderColor:e.grayBorderSecondary,flexDirection:"row",alignItems:"center",shadowColor:e.black,shadowOpacity:.04,shadowRadius:4,shadowOffset:{width:0,height:2},elevation:2}}>
39
- {[{key:"module",label:w("settings.navModules","Modules"),Icon:Q},{key:"ui",label:w("settings.navDisplay","Display"),Icon:So},{key:"limits",label:w("settings.navLimits","Limits"),Icon:Io},{key:"capture",label:w("settings.navCapture","Capture"),Icon:Te}].map(r=>{const R=q===r.key,I=r.Icon;return<V key={r.key}accessible={!0}accessibilityRole="tab"accessibilityLabel={r.label}accessibilityState={{selected:R}}onPress={()=>{D("light"),_r(),xr(r.key)}}style={{flex:1,minWidth:0,paddingVertical:8,paddingHorizontal:2,flexDirection:"row",alignItems:"center",justifyContent:"center",gap:4,borderRadius:9,backgroundColor:R?e.purple:"transparent"}}>
40
- <I color={R?e.white:e.grayText}size={12}/>
41
- <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:R?e.white:e.grayText}}numberOfLines={1}ellipsizeMode="tail">
39
+ {[{key:"module",label:S("settings.navModules","Modules"),Icon:Ce},{key:"ui",label:S("settings.navDisplay","Display"),Icon:Co},{key:"limits",label:S("settings.navLimits","Limits"),Icon:Fo},{key:"capture",label:S("settings.navCapture","Capture"),Icon:Ve}].map(r=>{const V=K===r.key,D=r.Icon;return<R key={r.key}accessible={!0}accessibilityRole="tab"accessibilityLabel={r.label}accessibilityState={{selected:V}}onPress={()=>{$("light"),Gr(),wr(r.key)}}style={{flex:1,minWidth:0,paddingVertical:8,paddingHorizontal:2,flexDirection:"row",alignItems:"center",justifyContent:"center",gap:4,borderRadius:9,backgroundColor:V?e.purple:"transparent"}}>
40
+ <D color={V?e.white:e.grayText}size={12}/>
41
+ <T style={{fontFamily:k.interBold,fontSize:11,lineHeight:14,color:V?e.white:e.grayText}}numberOfLines={1}ellipsizeMode="tail">
42
42
  {r.label}
43
43
  </T>
44
- </V>})}
44
+ </R>})}
45
45
  </C>
46
46
 
47
- {q==="module"&&<_.View style={{gap:10,opacity:M,transform:[{translateY:M.interpolate({inputRange:[0,1],outputRange:[10,0]})}]}}>
47
+ {K==="module"&&<J.View style={{gap:10,opacity:N,transform:[{translateY:N.interpolate({inputRange:[0,1],outputRange:[10,0]})}]}}>
48
48
 
49
49
  <C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingHorizontal:4,paddingVertical:2}}>
50
50
  <C style={{flexDirection:"row",alignItems:"center",gap:6}}>
51
- <T style={{fontFamily:S.interBold,fontSize:12.5,lineHeight:16,color:e.primaryBlack}}>
51
+ <T style={{fontFamily:k.interBold,fontSize:12.5,lineHeight:16,color:e.primaryBlack}}>
52
52
  Active Modules
53
53
  </T>
54
54
  <C style={{backgroundColor:`${e.purple}14`,paddingHorizontal:6,paddingVertical:1.5,borderRadius:10,borderWidth:1,borderColor:`${e.purple}25`}}>
55
- <T style={{fontFamily:S.interBold,fontSize:9.5,color:e.purple}}>
56
- {ht} of {N.length}
55
+ <T style={{fontFamily:k.interBold,fontSize:9.5,color:e.purple}}>
56
+ {yt} of {j.length}
57
57
  </T>
58
58
  </C>
59
59
  </C>
60
60
 
61
- <V onPress={mt}hitSlop={6}style={{paddingHorizontal:10,paddingVertical:4.5,borderRadius:7,backgroundColor:re?`${e.purple}14`:e.purple,borderWidth:1,borderColor:re?`${e.purple}30`:"transparent"}}>
62
- <T style={{fontFamily:S.interBold,fontSize:11,color:re?e.purple:e.white}}>
63
- {re?"Deselect All":"Select All"}
61
+ <R onPress={ht}hitSlop={6}style={{paddingHorizontal:10,paddingVertical:4.5,borderRadius:7,backgroundColor:we?`${e.purple}14`:e.purple,borderWidth:1,borderColor:we?`${e.purple}30`:"transparent"}}>
62
+ <T style={{fontFamily:k.interBold,fontSize:11,color:we?e.purple:e.white}}>
63
+ {we?"Deselect All":"Select All"}
64
64
  </T>
65
- </V>
65
+ </R>
66
66
  </C>
67
67
 
68
68
 
69
69
  <C style={{gap:8}}>
70
- {N.map(r=>{const R=Yr(),I=qr(),P=r.key==="redux"&&!R||r.key==="analytics"&&!I,E=r.key==="apis"||P,z=r.key==="apis"||!!Y?.[r.key]&&!P,H=ut[r.key]||{color:e.purple,bg:`${e.purple}14`,border:`${e.purple}2E`},G=r.key==="apis"||r.key==="logs"||r.key==="analytics"||r.key==="redux"||r.key==="crash"||r.key==="push"||r.key==="socket",oe=r.key==="apis"?Ue.length>0?`${Ue.length} requests`:"":r.key==="logs"?Ge.length>0?`${Ge.length} logs`:"":r.key==="crash"?ze&&ze.length>0?`${ze.length} crashes`:"":r.key==="analytics"?_e.length>0?`${_e.length} events`:"":r.key==="redux"?Ve&&Object.keys(Ve).length>0?`${Object.keys(Ve).length} slices`:"":r.key==="push"?Fe&&Fe.length>0?`${Fe.length} notifications`:"":r.key==="socket"&&De&&De.length>0?`${De.length} sockets`:"";return<C key={r.key}style={{backgroundColor:e.primaryLight,borderRadius:13,borderWidth:1,borderColor:z?`${H.color}38`:e.grayBorderSecondary,padding:12,gap:8,shadowColor:e.black,shadowOpacity:z?.03:.01,shadowRadius:3,shadowOffset:{width:0,height:1.5},elevation:1.5}}>
70
+ {j.map(r=>{const V=qr(),D=Jr(),W=r.key==="redux"&&!V||r.key==="analytics"&&!D,O=r.key==="apis"||W,B=r.key==="apis"||!!X?.[r.key]&&!W,P=pt[r.key]||{color:e.purple,bg:`${e.purple}14`,border:`${e.purple}2E`},_=r.key==="apis"||r.key==="logs"||r.key==="analytics"||r.key==="redux"||r.key==="crash"||r.key==="push"||r.key==="socket",xe=r.key==="apis"?_e.length>0?`${_e.length} requests`:"":r.key==="logs"?Je.length>0?`${Je.length} logs`:"":r.key==="crash"?Be&&Be.length>0?`${Be.length} crashes`:"":r.key==="analytics"?qe.length>0?`${qe.length} events`:"":r.key==="redux"?Re&&Object.keys(Re).length>0?`${Object.keys(Re).length} slices`:"":r.key==="push"?Ie&&Ie.length>0?`${Ie.length} notifications`:"":r.key==="socket"&&$e&&$e.length>0?`${$e.length} sockets`:"";return<C key={r.key}style={{backgroundColor:e.primaryLight,borderRadius:13,borderWidth:1,borderColor:B?`${P.color}38`:e.grayBorderSecondary,padding:12,gap:8,shadowColor:e.black,shadowOpacity:B?.03:.01,shadowRadius:3,shadowOffset:{width:0,height:1.5},elevation:1.5}}>
71
71
 
72
72
  <C style={{flexDirection:"row",alignItems:"center",gap:10}}>
73
73
 
74
- <C style={{width:38,height:38,borderRadius:10,backgroundColor:z?H.bg:e.grayBackground,borderWidth:1,borderColor:z?H.border:e.grayBorderSecondary,alignItems:"center",justifyContent:"center",flexShrink:0}}>
75
- {r.icon==="apis"&&<Qr color={z?H.color:e.grayTextWeak}size={16}/>}
76
- {r.icon==="logs"&&<Zr color={z?H.color:e.grayTextWeak}size={16}/>}
77
- {r.icon==="perf"&&<Zt color={z?H.color:e.grayTextWeak}size={16}/>}
78
- {r.icon==="crash"&&<At color={z?H.color:e.grayTextWeak}size={16}/>}
79
- {r.icon==="analytics"&&<Co color={z?H.color:e.grayTextWeak}size={16}/>}
80
- {r.icon==="redux"&&<To color={z?H.color:e.grayTextWeak}size={16}/>}
81
- {r.icon==="device"&&<Kt color={z?H.color:e.grayTextWeak}size={16}/>}
82
- {r.icon==="storage"&&<Xt color={z?H.color:e.grayTextWeak}size={16}/>}
83
- {r.icon==="media"&&<Qt color={z?H.color:e.grayTextWeak}size={16}/>}
84
- {r.icon==="push"&&<Wo color={z?H.color:e.grayTextWeak}size={16}/>}
85
- {r.icon==="socket"&&<Lo color={z?H.color:e.grayTextWeak}size={16}/>}
74
+ <C style={{width:38,height:38,borderRadius:10,backgroundColor:B?P.bg:e.grayBackground,borderWidth:1,borderColor:B?P.border:e.grayBorderSecondary,alignItems:"center",justifyContent:"center",flexShrink:0}}>
75
+ {r.icon==="apis"&&<Xr color={B?P.color:e.grayTextWeak}size={16}/>}
76
+ {r.icon==="logs"&&<Qr color={B?P.color:e.grayTextWeak}size={16}/>}
77
+ {r.icon==="perf"&&<Xt color={B?P.color:e.grayTextWeak}size={16}/>}
78
+ {r.icon==="crash"&&<Wt color={B?P.color:e.grayTextWeak}size={16}/>}
79
+ {r.icon==="analytics"&&<Zr color={B?P.color:e.grayTextWeak}size={16}/>}
80
+ {r.icon==="redux"&&<So color={B?P.color:e.grayTextWeak}size={16}/>}
81
+ {r.icon==="device"&&<Jt color={B?P.color:e.grayTextWeak}size={16}/>}
82
+ {r.icon==="storage"&&<Yt color={B?P.color:e.grayTextWeak}size={16}/>}
83
+ {r.icon==="media"&&<Kt color={B?P.color:e.grayTextWeak}size={16}/>}
84
+ {r.icon==="push"&&<Ho color={B?P.color:e.grayTextWeak}size={16}/>}
85
+ {r.icon==="socket"&&<Wo color={B?P.color:e.grayTextWeak}size={16}/>}
86
86
  </C>
87
87
 
88
88
 
89
89
  <C style={{flex:1,minWidth:0,justifyContent:"center"}}>
90
90
  <C style={{flexDirection:"row",alignItems:"center",gap:5}}>
91
- <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:E?e.grayText:e.primaryBlack}}numberOfLines={1}>
91
+ <T style={{fontFamily:k.interBold,fontSize:13.5,lineHeight:18,color:O?e.grayText:e.primaryBlack}}numberOfLines={1}>
92
92
  {r.label}
93
93
  </T>
94
94
 
95
95
 
96
96
  {r.key==="apis"&&<C style={{backgroundColor:`${e.blue500}14`,paddingHorizontal:4.5,paddingVertical:1,borderRadius:4,borderWidth:1,borderColor:`${e.blue500}33`}}>
97
- <T style={{fontFamily:S.interBold,fontSize:7.5,lineHeight:10,color:e.blue500,letterSpacing:.3}}>
97
+ <T style={{fontFamily:k.interBold,fontSize:7.5,lineHeight:10,color:e.blue500,letterSpacing:.3}}>
98
98
  CORE
99
99
  </T>
100
100
  </C>}
101
101
 
102
- {r.key===K&&<C style={{backgroundColor:`${e.purple}14`,paddingHorizontal:4.5,paddingVertical:1,borderRadius:4,borderWidth:1,borderColor:`${e.purple}2E`}}>
103
- <T style={{fontFamily:S.interBold,fontSize:7.5,lineHeight:10,color:e.purple,letterSpacing:.3}}>
102
+ {r.key===Q&&<C style={{backgroundColor:`${e.purple}14`,paddingHorizontal:4.5,paddingVertical:1,borderRadius:4,borderWidth:1,borderColor:`${e.purple}2E`}}>
103
+ <T style={{fontFamily:k.interBold,fontSize:7.5,lineHeight:10,color:e.purple,letterSpacing:.3}}>
104
104
  DEFAULT
105
105
  </T>
106
106
  </C>}
107
107
 
108
- {P&&<C style={{backgroundColor:`${e.amber500}14`,paddingHorizontal:4.5,paddingVertical:1,borderRadius:4,borderWidth:1,borderColor:`${e.amber500}33`}}>
109
- <T style={{fontFamily:S.interBold,fontSize:7.5,lineHeight:10,color:e.amber700,letterSpacing:.3}}>
108
+ {W&&<C style={{backgroundColor:`${e.amber500}14`,paddingHorizontal:4.5,paddingVertical:1,borderRadius:4,borderWidth:1,borderColor:`${e.amber500}33`}}>
109
+ <T style={{fontFamily:k.interBold,fontSize:7.5,lineHeight:10,color:e.amber700,letterSpacing:.3}}>
110
110
  OFFLINE
111
111
  </T>
112
112
  </C>}
113
113
  </C>
114
114
 
115
- <T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayTextWeak,marginTop:1.5}}numberOfLines={1}ellipsizeMode="tail">
115
+ <T style={{fontFamily:k.interRegular,fontSize:11,lineHeight:15,color:e.grayTextWeak,marginTop:1.5}}numberOfLines={1}ellipsizeMode="tail">
116
116
  {r.desc}
117
117
  </T>
118
118
  </C>
119
119
 
120
120
 
121
- <St value={z}disabled={E}onValueChange={()=>bt(r.key)}trackColor={{false:e.grayBorderSecondary,true:e.purple}}thumbColor={e.white}ios_backgroundColor={e.grayBorderSecondary}style={{transform:[{scaleX:.8},{scaleY:.8}]}}/>
121
+ <Ct value={B}disabled={O}onValueChange={()=>ut(r.key)}trackColor={{false:e.grayBorderSecondary,true:e.purple}}thumbColor={e.white}ios_backgroundColor={e.grayBorderSecondary}style={{transform:[{scaleX:.8},{scaleY:.8}]}}/>
122
122
  </C>
123
123
 
124
124
 
125
- {(oe||G||r.key==="media")&&<C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingTop:7,borderTopWidth:1,borderTopColor:`${e.dividerColor}99`,marginTop:1}}>
125
+ {(xe||_||r.key==="media")&&<C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingTop:7,borderTopWidth:1,borderTopColor:`${e.dividerColor}99`,marginTop:1}}>
126
126
 
127
127
  <C style={{flexDirection:"row",alignItems:"center",gap:5,flex:1}}>
128
- {oe?<C style={{flexDirection:"row",alignItems:"center",gap:5}}>
129
- <C style={{width:5.5,height:5.5,borderRadius:3,backgroundColor:z?H.color:e.grayTextWeak}}/>
130
- <T style={{fontFamily:S.interMedium,fontSize:10.5,lineHeight:14,color:z?e.grayTextStrong:e.grayTextWeak}}>
131
- {oe}
128
+ {xe?<C style={{flexDirection:"row",alignItems:"center",gap:5}}>
129
+ <C style={{width:5.5,height:5.5,borderRadius:3,backgroundColor:B?P.color:e.grayTextWeak}}/>
130
+ <T style={{fontFamily:k.interMedium,fontSize:10.5,lineHeight:14,color:B?e.grayTextStrong:e.grayTextWeak}}>
131
+ {xe}
132
132
  </T>
133
133
  </C>:<C/>}
134
134
  </C>
135
135
 
136
136
 
137
- {(G||r.key==="media")&&<V onPress={()=>{D("light"),r.key==="media"?(_r(),xr("capture")):vo(r.key)}}hitSlop={6}style={{flexDirection:"row",alignItems:"center",gap:3.5,paddingHorizontal:8.5,paddingVertical:4,borderRadius:6.5,backgroundColor:`${H.color}14`,borderWidth:1,borderColor:`${H.color}2A`}}>
138
- <Ht color={H.color}size={10}/>
139
- <T style={{fontFamily:S.interBold,fontSize:10,lineHeight:13,color:H.color}}>
140
- {w("settings.configure","Configure")}
137
+ {(_||r.key==="media")&&<R onPress={()=>{$("light"),r.key==="media"?(Gr(),wr("capture")):Lo(r.key)}}hitSlop={6}style={{flexDirection:"row",alignItems:"center",gap:3.5,paddingHorizontal:8.5,paddingVertical:4,borderRadius:6.5,backgroundColor:`${P.color}14`,borderWidth:1,borderColor:`${P.color}2A`}}>
138
+ <It color={P.color}size={10}/>
139
+ <T style={{fontFamily:k.interBold,fontSize:10,lineHeight:13,color:P.color}}>
140
+ {S("settings.configure","Configure")}
141
141
  </T>
142
- <Fo color={H.color}size={8}/>
143
- </V>}
142
+ <Bo color={P.color}size={8}/>
143
+ </R>}
144
144
  </C>}
145
145
  </C>})}
146
146
  </C>
147
- </_.View>}
147
+ </J.View>}
148
148
 
149
- {q==="ui"&&<_.View style={{gap:14,opacity:M,transform:[{translateY:M.interpolate({inputRange:[0,1],outputRange:[10,0]})}]}}>
149
+ {K==="ui"&&<J.View style={{gap:14,opacity:N,transform:[{translateY:N.interpolate({inputRange:[0,1],outputRange:[10,0]})}]}}>
150
150
 
151
151
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,overflow:"hidden",padding:14,gap:12}}>
152
- <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.grayTextWeak,letterSpacing:.8}}>
153
- {w("settings.appearanceTheme")}
152
+ <T style={{fontFamily:k.interBold,fontSize:11,lineHeight:14,color:e.grayTextWeak,letterSpacing:.8}}>
153
+ {S("settings.appearanceTheme")}
154
154
  </T>
155
155
 
156
156
  <C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between"}}>
157
157
  <C style={{flexDirection:"row",alignItems:"center",gap:10,flex:1}}>
158
158
  <C style={{width:32,height:32,borderRadius:8,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
159
- {Z?<$t color={e.purple}size={15}/>:<Pt color={e.purple}size={15}/>}
159
+ {Se?<Dt color={e.purple}size={15}/>:<$t color={e.purple}size={15}/>}
160
160
  </C>
161
161
  <C style={{flex:1}}>
162
- <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
163
- {w("settings.general.darkMode")}
162
+ <T style={{fontFamily:k.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
163
+ {S("settings.general.darkMode")}
164
164
  </T>
165
- <T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
166
- {w("settings.general.darkModeDescription")}
165
+ <T style={{fontFamily:k.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
166
+ {S("settings.general.darkModeDescription")}
167
167
  </T>
168
168
  </C>
169
169
  </C>
170
170
 
171
- <V accessible={!0}accessibilityRole="switch"accessibilityLabel="Toggle Dark Theme"accessibilityState={{checked:Z}}onPress={()=>{const r=!Z;Eo(r),xt(r)}}style={{width:42,height:24,borderRadius:12,backgroundColor:Z?e.purple:e.grayBorderSecondary,padding:2,justifyContent:"center",alignItems:Z?"flex-end":"flex-start"}}>
171
+ <R accessible={!0}accessibilityRole="switch"accessibilityLabel="Toggle Dark Theme"accessibilityState={{checked:Se}}onPress={()=>{const r=!Se;Ao(r),kt(r)}}style={{width:42,height:24,borderRadius:12,backgroundColor:Se?e.purple:e.grayBorderSecondary,padding:2,justifyContent:"center",alignItems:Se?"flex-end":"flex-start"}}>
172
172
  <C style={{width:20,height:20,borderRadius:10,backgroundColor:e.white,shadowColor:e.black,shadowOpacity:.18,shadowRadius:2,shadowOffset:{width:0,height:1}}}/>
173
- </V>
173
+ </R>
174
174
  </C>
175
175
 
176
176
  <C style={{height:1,backgroundColor:e.grayBorderSecondary,opacity:.6}}/>
@@ -179,32 +179,32 @@ import{useMemo as Qe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
179
179
  <C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between"}}>
180
180
  <C style={{flexDirection:"row",alignItems:"center",gap:10,flex:1}}>
181
181
  <C style={{width:32,height:32,borderRadius:8,backgroundColor:`${e.blue600}14`,alignItems:"center",justifyContent:"center"}}>
182
- <Xr color={e.blue600}size={15}/>
182
+ <Kr color={e.blue600}size={15}/>
183
183
  </C>
184
184
  <C style={{flex:1}}>
185
- <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
186
- {w("settings.general.language","Language")}
185
+ <T style={{fontFamily:k.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
186
+ {S("settings.general.language","Language")}
187
187
  </T>
188
- <T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
189
- {w("settings.general.languageDescription","Choose preferred display language")}
188
+ <T style={{fontFamily:k.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
189
+ {S("settings.general.languageDescription","Choose preferred display language")}
190
190
  </T>
191
191
  </C>
192
192
  </C>
193
193
 
194
- <V onPress={()=>{D("light"),Er(!0)}}style={{flexDirection:"row",alignItems:"center",backgroundColor:e.purpleShade50,paddingHorizontal:10,paddingVertical:6,borderRadius:8,gap:5,borderWidth:1,borderColor:`${e.purple}20`}}>
195
- {ve?.flag?<T style={{fontSize:13}}>{ve.flag}</T>:<Xr size={14}color={e.purple}/>}
196
- <T style={{fontFamily:S.interSemiBold,fontSize:12,color:e.purple}}>
197
- {ve?.nativeName||ve?.name||"English"}
194
+ <R onPress={()=>{$("light"),Ar(!0)}}style={{flexDirection:"row",alignItems:"center",backgroundColor:e.purpleShade50,paddingHorizontal:10,paddingVertical:6,borderRadius:8,gap:5,borderWidth:1,borderColor:`${e.purple}20`}}>
195
+ {Ae?.flag?<T style={{fontSize:13}}>{Ae.flag}</T>:<Kr size={14}color={e.purple}/>}
196
+ <T style={{fontFamily:k.interSemiBold,fontSize:12,color:e.purple}}>
197
+ {Ae?.nativeName||Ae?.name||"English"}
198
198
  </T>
199
- <Fo size={11}color={e.purple}/>
200
- </V>
199
+ <Bo size={11}color={e.purple}/>
200
+ </R>
201
201
  </C>
202
202
  </C>
203
203
 
204
204
 
205
205
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,overflow:"hidden",padding:14,gap:14}}>
206
- <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.grayTextWeak,letterSpacing:.8}}>
207
- {w("settings.windowLayout")}
206
+ <T style={{fontFamily:k.interBold,fontSize:11,lineHeight:14,color:e.grayTextWeak,letterSpacing:.8}}>
207
+ {S("settings.windowLayout")}
208
208
  </T>
209
209
 
210
210
 
@@ -212,28 +212,28 @@ import{useMemo as Qe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
212
212
  <C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:10}}>
213
213
  <C style={{flexDirection:"row",alignItems:"center",gap:10,flex:1}}>
214
214
  <C style={{width:32,height:32,borderRadius:8,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
215
- <So color={e.purple}size={15}/>
215
+ <Co color={e.purple}size={15}/>
216
216
  </C>
217
217
  <C style={{flex:1}}>
218
- <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
219
- {w("settings.general.modalHeight")}
218
+ <T style={{fontFamily:k.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
219
+ {S("settings.general.modalHeight")}
220
220
  </T>
221
- <T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
222
- {w("settings.general.modalHeightDescription")}
221
+ <T style={{fontFamily:k.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
222
+ {S("settings.general.modalHeightDescription")}
223
223
  </T>
224
224
  </C>
225
225
  </C>
226
226
 
227
- {Le!==Re&&<V onPress={()=>{Oo(Le)}}style={{flexDirection:"row",alignItems:"center",gap:5,backgroundColor:e.purple,paddingHorizontal:10,paddingVertical:5,borderRadius:7,shadowColor:e.purple,shadowOffset:{width:0,height:1},shadowOpacity:.28,shadowRadius:2,elevation:2}}>
228
- <Se size={11}color={e.white}/>
229
- <T style={{fontFamily:S.interBold,fontSize:11,color:e.white}}>
230
- Save ({Le}%)
227
+ {ve!==ze&&<R onPress={()=>{Eo(ve)}}style={{flexDirection:"row",alignItems:"center",gap:5,backgroundColor:e.purple,paddingHorizontal:10,paddingVertical:5,borderRadius:7,shadowColor:e.purple,shadowOffset:{width:0,height:1},shadowOpacity:.28,shadowRadius:2,elevation:2}}>
228
+ <Te size={11}color={e.white}/>
229
+ <T style={{fontFamily:k.interBold,fontSize:11,color:e.white}}>
230
+ Save ({ve}%)
231
231
  </T>
232
- </V>}
232
+ </R>}
233
233
  </C>
234
234
 
235
235
  <C style={{marginTop:6}}>
236
- <Jr value={Le}onValueChange={Ar}min={50}max={90}step={5}quickPresets={[50,60,70,80,90]}formatLabel={r=>`${Math.round(r)}%`}/>
236
+ <_r value={ve}onValueChange={vr}min={50}max={90}step={5}quickPresets={[50,60,70,80,90]}formatLabel={r=>`${Math.round(r)}%`}/>
237
237
  </C>
238
238
  </C>
239
239
 
@@ -244,27 +244,27 @@ import{useMemo as Qe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
244
244
  <C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:10}}>
245
245
  <C style={{flexDirection:"row",alignItems:"center",gap:10,flex:1}}>
246
246
  <C style={{width:32,height:32,borderRadius:8,backgroundColor:"rgba(6, 182, 212, 0.12)",alignItems:"center",justifyContent:"center"}}>
247
- <Ce color={"#06B6D4"}size={15}/>
247
+ <Ue color={"#06B6D4"}size={15}/>
248
248
  </C>
249
249
  <C style={{flex:1}}>
250
- <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
251
- {w("settings.general.peekOpacity","Peek-Through Opacity")}
250
+ <T style={{fontFamily:k.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
251
+ {S("settings.general.peekOpacity","Peek-Through Opacity")}
252
252
  </T>
253
- <T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
254
- {w("settings.general.peekOpacityDescription","Transparency level when the eye icon is enabled")}
253
+ <T style={{fontFamily:k.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
254
+ {S("settings.general.peekOpacityDescription","Transparency level when the eye icon is enabled")}
255
255
  </T>
256
256
  </C>
257
257
  </C>
258
258
 
259
259
  <C style={{backgroundColor:"rgba(6, 182, 212, 0.14)",paddingHorizontal:8,paddingVertical:3,borderRadius:6,borderWidth:1,borderColor:"rgba(6, 182, 212, 0.30)"}}>
260
- <T style={{fontFamily:S.interBold,fontSize:12,color:"#06B6D4"}}>
261
- {Lr.toFixed(1)}
260
+ <T style={{fontFamily:k.interBold,fontSize:12,color:"#06B6D4"}}>
261
+ {Wr.toFixed(1)}
262
262
  </T>
263
263
  </C>
264
264
  </C>
265
265
 
266
266
  <C style={{marginTop:6}}>
267
- <Jr value={Lr}onValueChange={r=>{const R=Math.round(r*10)/10;ct(R)}}min={.1}max={1}step={.1}quickPresets={[.1,.3,.5,.7,1]}formatLabel={r=>r.toFixed(1)}/>
267
+ <_r value={Wr}onValueChange={r=>{const V=Math.round(r*10)/10;st(V)}}min={.1}max={1}step={.1}quickPresets={[.1,.3,.5,.7,1]}formatLabel={r=>r.toFixed(1)}/>
268
268
  </C>
269
269
  </C>
270
270
 
@@ -274,115 +274,115 @@ import{useMemo as Qe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
274
274
  <C style={{gap:8}}>
275
275
  <C style={{flexDirection:"row",alignItems:"center",gap:10}}>
276
276
  <C style={{width:32,height:32,borderRadius:8,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
277
- <Wt color={e.purple}size={15}/>
277
+ <Pt color={e.purple}size={15}/>
278
278
  </C>
279
279
  <C style={{flex:1}}>
280
- <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
281
- {w("settings.general.modalAnimation")}
280
+ <T style={{fontFamily:k.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
281
+ {S("settings.general.modalAnimation")}
282
282
  </T>
283
- <T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
284
- {w("settings.general.modalAnimationDescription")}
283
+ <T style={{fontFamily:k.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
284
+ {S("settings.general.modalAnimationDescription")}
285
285
  </T>
286
286
  </C>
287
287
  </C>
288
288
 
289
289
  <C style={{flexDirection:"row",backgroundColor:e.grayBackground,borderRadius:10,padding:3,borderWidth:1,borderColor:e.dividerColor}}>
290
- {[{key:"slide",label:"Slide Up"},{key:"fade",label:"Fade"},{key:"none",label:"None"}].map(r=>{const R=Mo===r.key;return<V key={r.key}accessible={!0}accessibilityRole="button"accessibilityLabel={`Set transition animation to ${r.label}`}accessibilityState={{selected:R}}onPress={()=>No(r.key)}style={{flex:1,paddingVertical:7,alignItems:"center",borderRadius:8,backgroundColor:R?e.purple:"transparent"}}>
291
- <T style={{fontFamily:S.interBold,fontSize:11.5,lineHeight:15,color:R?e.white:e.grayText}}>
290
+ {[{key:"slide",label:"Slide Up"},{key:"fade",label:"Fade"},{key:"none",label:"None"}].map(r=>{const V=Oo===r.key;return<R key={r.key}accessible={!0}accessibilityRole="button"accessibilityLabel={`Set transition animation to ${r.label}`}accessibilityState={{selected:V}}onPress={()=>Mo(r.key)}style={{flex:1,paddingVertical:7,alignItems:"center",borderRadius:8,backgroundColor:V?e.purple:"transparent"}}>
291
+ <T style={{fontFamily:k.interBold,fontSize:11.5,lineHeight:15,color:V?e.white:e.grayText}}>
292
292
  {r.label}
293
293
  </T>
294
- </V>})}
294
+ </R>})}
295
295
  </C>
296
296
  </C>
297
297
  </C>
298
298
 
299
299
 
300
300
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,overflow:"hidden",padding:14,gap:12}}>
301
- <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.grayTextWeak,letterSpacing:.8}}>
302
- {w("settings.startupDefault")}
301
+ <T style={{fontFamily:k.interBold,fontSize:11,lineHeight:14,color:e.grayTextWeak,letterSpacing:.8}}>
302
+ {S("settings.startupDefault")}
303
303
  </T>
304
304
 
305
305
  <C style={{flexDirection:"row",alignItems:"center",gap:10}}>
306
306
  <C style={{width:32,height:32,borderRadius:8,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
307
- <Q color={e.purple}size={15}/>
307
+ <Ce color={e.purple}size={15}/>
308
308
  </C>
309
309
  <C style={{flex:1}}>
310
- <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
311
- {w("settings.general.defaultOpeningTab")}
310
+ <T style={{fontFamily:k.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
311
+ {S("settings.general.defaultOpeningTab")}
312
312
  </T>
313
- <T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
314
- {w("settings.general.defaultOpeningTabDesc")}
313
+ <T style={{fontFamily:k.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
314
+ {S("settings.general.defaultOpeningTabDesc")}
315
315
  </T>
316
316
  </C>
317
317
  </C>
318
318
 
319
319
 
320
320
  <C style={{marginTop:6,gap:6}}>
321
- <V accessible={!0}accessibilityRole="button"accessibilityLabel={`Default opening tab: ${N.find(r=>r.key===K)?.label||"APIs"}`}onPress={()=>Mr(r=>!r)}style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",backgroundColor:e.grayBackground,borderRadius:10,borderWidth:1.5,borderColor:Xe?e.purple:e.grayBorderSecondary,paddingHorizontal:14,paddingVertical:11}}>
321
+ <R accessible={!0}accessibilityRole="button"accessibilityLabel={`Default opening tab: ${j.find(r=>r.key===Q)?.label||"APIs"}`}onPress={()=>Or(r=>!r)}style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",backgroundColor:e.grayBackground,borderRadius:10,borderWidth:1.5,borderColor:Ze?e.purple:e.grayBorderSecondary,paddingHorizontal:14,paddingVertical:11}}>
322
322
  <C style={{flexDirection:"row",alignItems:"center",gap:10,flex:1}}>
323
323
  <C style={{width:8,height:8,borderRadius:4,backgroundColor:e.purple}}/>
324
- <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
325
- {N.find(r=>r.key===K)?`#${N.find(r=>r.key===K)?.id} ${N.find(r=>r.key===K)?.label}`:"#1 APIs (Network)"}
324
+ <T style={{fontFamily:k.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
325
+ {j.find(r=>r.key===Q)?`#${j.find(r=>r.key===Q)?.id} ${j.find(r=>r.key===Q)?.label}`:"#1 APIs (Network)"}
326
326
  </T>
327
327
  <C style={{backgroundColor:`${e.purple}14`,paddingHorizontal:6,paddingVertical:1.5,borderRadius:6}}>
328
- <T style={{fontFamily:S.interBold,fontSize:8.5,color:e.purple}}>
328
+ <T style={{fontFamily:k.interBold,fontSize:8.5,color:e.purple}}>
329
329
  DEFAULT
330
330
  </T>
331
331
  </C>
332
332
  </C>
333
333
 
334
- <C style={{transform:[{rotate:Xe?"180deg":"0deg"}]}}>
335
- <Yt color={e.grayText}size={15}/>
334
+ <C style={{transform:[{rotate:Ze?"180deg":"0deg"}]}}>
335
+ <_t color={e.grayText}size={15}/>
336
336
  </C>
337
- </V>
337
+ </R>
338
338
 
339
339
 
340
- {Xe&&<C style={{backgroundColor:e.primaryLight,borderRadius:10,borderWidth:1,borderColor:e.grayBorderSecondary,overflow:"hidden",shadowColor:e.black,shadowOpacity:.08,shadowRadius:6,shadowOffset:{width:0,height:3},elevation:4}}>
341
- {N.filter(r=>r.key==="apis"||Y?.[r.key]).map((r,R,I)=>{const P=K===r.key,E=R===I.length-1;return<V key={r.key}accessible={!0}accessibilityRole="button"accessibilityLabel={`Select ${r.label} as default tab`}onPress={()=>{Ao(r.key),Mr(!1)}}style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingHorizontal:14,paddingVertical:11,backgroundColor:P?`${e.purple}0F`:"transparent",borderBottomWidth:E?0:1,borderBottomColor:e.dividerColor}}>
340
+ {Ze&&<C style={{backgroundColor:e.primaryLight,borderRadius:10,borderWidth:1,borderColor:e.grayBorderSecondary,overflow:"hidden",shadowColor:e.black,shadowOpacity:.08,shadowRadius:6,shadowOffset:{width:0,height:3},elevation:4}}>
341
+ {j.filter(r=>r.key==="apis"||X?.[r.key]).map((r,V,D)=>{const W=Q===r.key,O=V===D.length-1;return<R key={r.key}accessible={!0}accessibilityRole="button"accessibilityLabel={`Select ${r.label} as default tab`}onPress={()=>{vo(r.key),Or(!1)}}style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingHorizontal:14,paddingVertical:11,backgroundColor:W?`${e.purple}0F`:"transparent",borderBottomWidth:O?0:1,borderBottomColor:e.dividerColor}}>
342
342
  <C style={{flexDirection:"row",alignItems:"center",gap:10}}>
343
- <C style={{width:6,height:6,borderRadius:3,backgroundColor:P?e.purple:e.grayTextWeak}}/>
344
- <T style={{fontFamily:P?S.interBold:S.interMedium,fontSize:13,color:P?e.purple:e.primaryBlack}}>
343
+ <C style={{width:6,height:6,borderRadius:3,backgroundColor:W?e.purple:e.grayTextWeak}}/>
344
+ <T style={{fontFamily:W?k.interBold:k.interMedium,fontSize:13,color:W?e.purple:e.primaryBlack}}>
345
345
  #{r.id} {r.label}
346
346
  </T>
347
347
  </C>
348
- {P&&<Se size={14}color={e.purple}/>}
349
- </V>})}
348
+ {W&&<Te size={14}color={e.purple}/>}
349
+ </R>})}
350
350
  </C>}
351
351
  </C>
352
352
  </C>
353
353
 
354
354
 
355
355
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,overflow:"hidden",padding:14,gap:12}}>
356
- <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.grayTextWeak,letterSpacing:.8}}>
356
+ <T style={{fontFamily:k.interBold,fontSize:11,lineHeight:14,color:e.grayTextWeak,letterSpacing:.8}}>
357
357
  NOTIFICATIONS & TOASTS
358
358
  </T>
359
359
 
360
360
  <C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between"}}>
361
361
  <C style={{flexDirection:"row",alignItems:"center",gap:10,flex:1,marginRight:10}}>
362
362
  <C style={{width:32,height:32,borderRadius:8,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
363
- <Lt color={e.purple}size={15}/>
363
+ <Ht color={e.purple}size={15}/>
364
364
  </C>
365
365
  <C style={{flex:1}}>
366
- <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
366
+ <T style={{fontFamily:k.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
367
367
  NPM Update Toast
368
368
  </T>
369
- <T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
370
- {w("settings.npmUpdateToastDesc","Show a floating toast banner with countdown progress when a newer release is published on npm.")}
369
+ <T style={{fontFamily:k.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
370
+ {S("settings.npmUpdateToastDesc","Show a floating toast banner with countdown progress when a newer release is published on npm.")}
371
371
  </T>
372
372
  </C>
373
373
  </C>
374
374
 
375
- <V accessible={!0}accessibilityRole="switch"accessibilityLabel="Toggle NPM Update Toast"accessibilityState={{checked:je}}onPress={()=>Uo(r=>!r)}style={{width:42,height:24,borderRadius:12,backgroundColor:je?e.purple:e.grayBorderSecondary,padding:2,justifyContent:"center",alignItems:je?"flex-end":"flex-start"}}>
375
+ <R accessible={!0}accessibilityRole="switch"accessibilityLabel="Toggle NPM Update Toast"accessibilityState={{checked:Ge}}onPress={()=>No(r=>!r)}style={{width:42,height:24,borderRadius:12,backgroundColor:Ge?e.purple:e.grayBorderSecondary,padding:2,justifyContent:"center",alignItems:Ge?"flex-end":"flex-start"}}>
376
376
  <C style={{width:20,height:20,borderRadius:10,backgroundColor:e.white,shadowColor:e.black,shadowOpacity:.18,shadowRadius:2,shadowOffset:{width:0,height:1}}}/>
377
- </V>
377
+ </R>
378
378
  </C>
379
379
  </C>
380
- </_.View>}
380
+ </J.View>}
381
381
 
382
- {q==="limits"&&<_.View style={{gap:14,opacity:M,transform:[{translateY:M.interpolate({inputRange:[0,1],outputRange:[10,0]})}]}}>
382
+ {K==="limits"&&<J.View style={{gap:14,opacity:N,transform:[{translateY:N.interpolate({inputRange:[0,1],outputRange:[10,0]})}]}}>
383
383
 
384
384
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,overflow:"hidden",padding:14,gap:12}}>
385
- <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.grayTextWeak,letterSpacing:.8}}>
385
+ <T style={{fontFamily:k.interBold,fontSize:11,lineHeight:14,color:e.grayTextWeak,letterSpacing:.8}}>
386
386
  DEVICE MEMORY & AUTO PROFILES
387
387
  </T>
388
388
 
@@ -390,41 +390,41 @@ import{useMemo as Qe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
390
390
  <C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between"}}>
391
391
  <C style={{flexDirection:"row",alignItems:"center",gap:10,flex:1}}>
392
392
  <C style={{width:32,height:32,borderRadius:8,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
393
- <Io color={e.purple}size={16}/>
393
+ <Fo color={e.purple}size={16}/>
394
394
  </C>
395
395
  <C style={{flex:1}}>
396
- <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
396
+ <T style={{fontFamily:k.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
397
397
  Auto-Calculate Limits from RAM
398
398
  </T>
399
- <T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
400
- {w("settings.autoCalculateLimitsRamDesc","Dynamically sets log limits according to available device memory")}
399
+ <T style={{fontFamily:k.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
400
+ {S("settings.autoCalculateLimitsRamDesc","Dynamically sets log limits according to available device memory")}
401
401
  </T>
402
402
  </C>
403
403
  </C>
404
404
 
405
- <V accessible={!0}accessibilityRole="switch"accessibilityLabel="Toggle auto RAM limit calculation"accessibilityState={{checked:W}}onPress={()=>Yo(r=>!r)}style={{width:42,height:24,borderRadius:12,backgroundColor:W?e.purple:e.grayBorderSecondary,padding:2,justifyContent:"center",alignItems:W?"flex-end":"flex-start"}}>
405
+ <R accessible={!0}accessibilityRole="switch"accessibilityLabel="Toggle auto RAM limit calculation"accessibilityState={{checked:L}}onPress={()=>Jo(r=>!r)}style={{width:42,height:24,borderRadius:12,backgroundColor:L?e.purple:e.grayBorderSecondary,padding:2,justifyContent:"center",alignItems:L?"flex-end":"flex-start"}}>
406
406
  <C style={{width:20,height:20,borderRadius:10,backgroundColor:e.white,shadowColor:e.black,shadowOpacity:.18,shadowRadius:2,shadowOffset:{width:0,height:1}}}/>
407
- </V>
407
+ </R>
408
408
  </C>
409
409
 
410
410
  <C style={{height:1,backgroundColor:e.dividerColor}}/>
411
411
 
412
412
 
413
413
  <C style={{flexDirection:"row",alignItems:"center",gap:10}}>
414
- <C style={{width:32,height:32,borderRadius:8,backgroundColor:W?`${e.purple}14`:e.grayBackground,alignItems:"center",justifyContent:"center"}}>
415
- <Qr color={W?e.purple:e.grayTextWeak}size={15}/>
414
+ <C style={{width:32,height:32,borderRadius:8,backgroundColor:L?`${e.purple}14`:e.grayBackground,alignItems:"center",justifyContent:"center"}}>
415
+ <Xr color={L?e.purple:e.grayTextWeak}size={15}/>
416
416
  </C>
417
417
  <C style={{flex:1}}>
418
- <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:W?e.primaryBlack:e.grayText}}>
418
+ <T style={{fontFamily:k.interBold,fontSize:13.5,lineHeight:18,color:L?e.primaryBlack:e.grayText}}>
419
419
  Detected Available RAM
420
420
  </T>
421
- <T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
422
- {Je} MB available on device
421
+ <T style={{fontFamily:k.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
422
+ {Ye} MB available on device
423
423
  </T>
424
424
  </C>
425
- <C style={{paddingHorizontal:10,paddingVertical:5,borderRadius:8,backgroundColor:W?`${e.purple}12`:e.grayBackground,borderWidth:1,borderColor:W?`${e.purple}26`:e.dividerColor}}>
426
- <T style={{fontFamily:S.interBold,fontSize:12,lineHeight:15,color:W?e.purple:e.grayText}}>
427
- {Je} MB
425
+ <C style={{paddingHorizontal:10,paddingVertical:5,borderRadius:8,backgroundColor:L?`${e.purple}12`:e.grayBackground,borderWidth:1,borderColor:L?`${e.purple}26`:e.dividerColor}}>
426
+ <T style={{fontFamily:k.interBold,fontSize:12,lineHeight:15,color:L?e.purple:e.grayText}}>
427
+ {Ye} MB
428
428
  </T>
429
429
  </C>
430
430
  </C>
@@ -432,22 +432,22 @@ import{useMemo as Qe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
432
432
 
433
433
  <C style={{marginTop:4,paddingTop:8,borderTopWidth:1,borderTopColor:e.dividerColor,gap:6}}>
434
434
  <C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between"}}>
435
- <T style={{fontFamily:S.interBold,fontSize:11.5,lineHeight:15,color:e.purple}}>
436
- Profile: {Ae.profileName}
435
+ <T style={{fontFamily:k.interBold,fontSize:11.5,lineHeight:15,color:e.purple}}>
436
+ Profile: {Ee.profileName}
437
437
  </T>
438
- <C style={{backgroundColor:W?`${e.emerald500}18`:`${e.purple}18`,paddingHorizontal:7,paddingVertical:2.5,borderRadius:4}}>
439
- <T style={{fontFamily:S.interBold,fontSize:9.5,color:W?e.emerald500:e.purple}}>
440
- {W?"AUTO-TUNED":"MANUAL"}
438
+ <C style={{backgroundColor:L?`${e.emerald500}18`:`${e.purple}18`,paddingHorizontal:7,paddingVertical:2.5,borderRadius:4}}>
439
+ <T style={{fontFamily:k.interBold,fontSize:9.5,color:L?e.emerald500:e.purple}}>
440
+ {L?"AUTO-TUNED":"MANUAL"}
441
441
  </T>
442
442
  </C>
443
443
  </C>
444
444
 
445
445
  <C style={{flexDirection:"row",flexWrap:"wrap",gap:8,marginTop:4}}>
446
- {[{label:"Logs",value:W?Ae.maxConsoleLogs:Rr,color:e.sky500},{label:"Analytics",value:W?Ae.maxAnalyticsEvents:Vr,color:e.purple},{label:"Crash",value:W?Ae.maxCrashRecords:zr,color:e.errorColor}].map(r=><C key={r.label}style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:8,paddingVertical:4,borderRadius:6,backgroundColor:`${r.color}14`,borderWidth:1,borderColor:`${r.color}33`}}>
447
- <T style={{fontFamily:S.interBold,fontSize:10.5,lineHeight:14,color:r.color}}>
446
+ {[{label:"Logs",value:L?Ee.maxConsoleLogs:Tr,color:e.sky500},{label:"Analytics",value:L?Ee.maxAnalyticsEvents:Vr,color:e.purple},{label:"Crash",value:L?Ee.maxCrashRecords:zr,color:e.errorColor}].map(r=><C key={r.label}style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:8,paddingVertical:4,borderRadius:6,backgroundColor:`${r.color}14`,borderWidth:1,borderColor:`${r.color}33`}}>
447
+ <T style={{fontFamily:k.interBold,fontSize:10.5,lineHeight:14,color:r.color}}>
448
448
  {r.label}:
449
449
  </T>
450
- <T style={{fontFamily:S.interBold,fontSize:10.5,lineHeight:14,color:r.color}}>
450
+ <T style={{fontFamily:k.interBold,fontSize:10.5,lineHeight:14,color:r.color}}>
451
451
  {r.value} max
452
452
  </T>
453
453
  </C>)}
@@ -457,24 +457,24 @@ import{useMemo as Qe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
457
457
 
458
458
 
459
459
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,overflow:"hidden",padding:14,gap:12}}>
460
- <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.grayTextWeak,letterSpacing:.8}}>
460
+ <T style={{fontFamily:k.interBold,fontSize:11,lineHeight:14,color:e.grayTextWeak,letterSpacing:.8}}>
461
461
  LOW MEMORY PRESSURE PROTECTION
462
462
  </T>
463
463
 
464
464
  <C style={{flexDirection:"row",alignItems:"center",gap:10}}>
465
465
  <C style={{width:32,height:32,borderRadius:8,backgroundColor:`${e.emerald500}14`,alignItems:"center",justifyContent:"center"}}>
466
- <Ro color={e.emerald500}size={15}/>
466
+ <To color={e.emerald500}size={15}/>
467
467
  </C>
468
468
  <C style={{flex:1}}>
469
- <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
469
+ <T style={{fontFamily:k.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
470
470
  OS Memory Warning Guard
471
471
  </T>
472
- <T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
473
- {w("settings.osMemoryWarningGuardDesc","Automatically prunes in-memory buffers by 50% when the OS signals low memory")}
472
+ <T style={{fontFamily:k.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
473
+ {S("settings.osMemoryWarningGuardDesc","Automatically prunes in-memory buffers by 50% when the OS signals low memory")}
474
474
  </T>
475
475
  </C>
476
476
  <C style={{paddingHorizontal:8,paddingVertical:3,borderRadius:6,backgroundColor:`${e.emerald500}18`}}>
477
- <T style={{fontFamily:S.interBold,fontSize:10,color:e.emerald500}}>
477
+ <T style={{fontFamily:k.interBold,fontSize:10,color:e.emerald500}}>
478
478
  ACTIVE
479
479
  </T>
480
480
  </C>
@@ -485,23 +485,23 @@ import{useMemo as Qe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
485
485
 
486
486
  <C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:10}}>
487
487
  <C style={{flex:1}}>
488
- <T style={{fontFamily:S.interBold,fontSize:13,color:e.primaryBlack}}>
489
- {w("settings.memory.manualTitle","Manual Memory Cleanup")}
488
+ <T style={{fontFamily:k.interBold,fontSize:13,color:e.primaryBlack}}>
489
+ {S("settings.memory.manualTitle","Manual Memory Cleanup")}
490
490
  </T>
491
- <T style={{fontFamily:S.interRegular,fontSize:11,color:e.grayText,marginTop:1}}>
492
- {w("settings.memory.manualDescription","Prune older entries across all log stores and free RAM")}
491
+ <T style={{fontFamily:k.interRegular,fontSize:11,color:e.grayText,marginTop:1}}>
492
+ {S("settings.memory.manualDescription","Prune older entries across all log stores and free RAM")}
493
493
  </T>
494
494
  </C>
495
- <V onPress={()=>{const r=ei("manual",.5);B(w("settings.memory.pruned",{count:r.totalPruned},`Pruned ${r.totalPruned} items from memory`))}}style={{backgroundColor:e.purple,paddingHorizontal:12,paddingVertical:8,borderRadius:8,flexDirection:"row",alignItems:"center",gap:5}}>
496
- <O size={13}color={e.white}/>
497
- <T style={{fontFamily:S.interBold,fontSize:11.5,color:e.white}}>
495
+ <R onPress={()=>{const r=Qt("manual",.5);F(S("settings.memory.pruned",{count:r.totalPruned},`Pruned ${r.totalPruned} items from memory`))}}style={{backgroundColor:e.purple,paddingHorizontal:12,paddingVertical:8,borderRadius:8,flexDirection:"row",alignItems:"center",gap:5}}>
496
+ <M size={13}color={e.white}/>
497
+ <T style={{fontFamily:k.interBold,fontSize:11.5,color:e.white}}>
498
498
  Prune Now
499
499
  </T>
500
- </V>
500
+ </R>
501
501
  </C>
502
502
  </C>
503
- </_.View>}
504
- {q==="capture"&&<_.View style={{gap:16,opacity:M,transform:[{translateY:M.interpolate({inputRange:[0,1],outputRange:[10,0]})}]}}>
503
+ </J.View>}
504
+ {K==="capture"&&<J.View style={{gap:16,opacity:N,transform:[{translateY:N.interpolate({inputRange:[0,1],outputRange:[10,0]})}]}}>
505
505
 
506
506
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:12}}>
507
507
  <C style={{flexDirection:"row",alignItems:"center",gap:10}}>
@@ -509,51 +509,51 @@ import{useMemo as Qe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
509
509
  <Cr color={e.rose500}size={16}/>
510
510
  </C>
511
511
  <C style={{flex:1}}>
512
- <T style={{fontFamily:S.interBold,fontSize:14,lineHeight:18,color:e.primaryBlack}}>
513
- {w("settings.media.floatingWidgetTitle","Floating Capture Widget")}
512
+ <T style={{fontFamily:k.interBold,fontSize:14,lineHeight:18,color:e.primaryBlack}}>
513
+ {S("settings.media.floatingWidgetTitle","Floating Capture Widget")}
514
514
  </T>
515
- <T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
516
- {w("settings.media.floatingWidgetDesc","On-screen floating button to quickly take screenshots and record videos (Disabled by default)")}
515
+ <T style={{fontFamily:k.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
516
+ {S("settings.media.floatingWidgetDesc","On-screen floating button to quickly take screenshots and record videos (Disabled by default)")}
517
517
  </T>
518
518
  </C>
519
519
  </C>
520
520
 
521
- {F({icon:<Te color={e.purple}size={16}/>,label:w("settings.media.enableFloatingWidget","Enable Floating Widget"),description:w("settings.media.enableFloatingWidgetDesc","Shows draggable quick screenshot & video recording button on screen"),isLast:!0,onPress:()=>{D("light"),Wr(r=>!r),B(`Capture widget: ${X?"OFF":"ON"}`)},right:<V onPress={()=>{D("light"),Wr(r=>!r),B(`Capture widget: ${X?"OFF":"ON"}`)}}style={{paddingHorizontal:10,paddingVertical:5,borderRadius:7,backgroundColor:X?`${e.emerald500}26`:`${e.grayText}20`,borderWidth:1,borderColor:X?`${e.emerald500}4D`:`${e.grayText}33`}}>
522
- <T style={{fontFamily:S.interBold,fontSize:10.5,color:X?e.emerald500:e.grayText}}>
523
- {X?w("settings.media.enabled","ON"):"OFF"}
521
+ {I({icon:<Ve color={e.purple}size={16}/>,label:S("settings.media.enableFloatingWidget","Enable Floating Widget"),description:S("settings.media.enableFloatingWidgetDesc","Shows draggable quick screenshot & video recording button on screen"),isLast:!0,onPress:()=>{$("light"),Hr(r=>!r),F(`Capture widget: ${Z?"OFF":"ON"}`)},right:<R onPress={()=>{$("light"),Hr(r=>!r),F(`Capture widget: ${Z?"OFF":"ON"}`)}}style={{paddingHorizontal:10,paddingVertical:5,borderRadius:7,backgroundColor:Z?`${e.emerald500}26`:`${e.grayText}20`,borderWidth:1,borderColor:Z?`${e.emerald500}4D`:`${e.grayText}33`}}>
522
+ <T style={{fontFamily:k.interBold,fontSize:10.5,color:Z?e.emerald500:e.grayText}}>
523
+ {Z?S("settings.media.enabled","ON"):"OFF"}
524
524
  </T>
525
- </V>})}
525
+ </R>})}
526
526
  </C>
527
527
 
528
528
 
529
529
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:12}}>
530
530
  <C style={{flexDirection:"row",alignItems:"center",gap:10}}>
531
531
  <C style={{width:36,height:36,borderRadius:10,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
532
- <Te color={e.purple}size={16}/>
532
+ <Ve color={e.purple}size={16}/>
533
533
  </C>
534
534
  <C style={{flex:1}}>
535
- <T style={{fontFamily:S.interBold,fontSize:14,lineHeight:18,color:e.primaryBlack}}>
536
- {w("settings.media.screenshotCardTitle","Screenshot Capture Settings")}
535
+ <T style={{fontFamily:k.interBold,fontSize:14,lineHeight:18,color:e.primaryBlack}}>
536
+ {S("settings.media.screenshotCardTitle","Screenshot Capture Settings")}
537
537
  </T>
538
- <T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
539
- {w("settings.media.screenshotCardDesc","Image encoding format, compression quality and overlay auto-hide")}
538
+ <T style={{fontFamily:k.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
539
+ {S("settings.media.screenshotCardDesc","Image encoding format, compression quality and overlay auto-hide")}
540
540
  </T>
541
541
  </C>
542
542
  </C>
543
543
 
544
- {F({icon:<Po color={e.purple}size={16}/>,label:w("settings.media.imageFormat","Image Format"),description:w("settings.media.imageFormatDesc","Export formats (PNG lossless, JPEG lossy, WebP)"),right:<C style={{flexDirection:"row",gap:5}}>
545
- {["png","jpeg","webp"].map(r=>{const R=Ye===r;return<V key={r}onPress={()=>{D("light"),Ir(r),B(`Screenshot format: ${r.toUpperCase()}`)}}style={{paddingHorizontal:9,paddingVertical:5,borderRadius:7,backgroundColor:R?e.purple:`${e.purple}14`,borderWidth:1,borderColor:R?e.purple:`${e.purple}2E`}}>
546
- <T style={{fontFamily:S.interBold,fontSize:10.5,color:R?e.white:e.purple}}>
544
+ {I({icon:<Po color={e.purple}size={16}/>,label:S("settings.media.imageFormat","Image Format"),description:S("settings.media.imageFormatDesc","Export formats (PNG lossless, JPEG lossy, WebP)"),right:<C style={{flexDirection:"row",gap:5}}>
545
+ {["png","jpeg","webp"].map(r=>{const V=Xe===r;return<R key={r}onPress={()=>{$("light"),Fr(r),F(`Screenshot format: ${r.toUpperCase()}`)}}style={{paddingHorizontal:9,paddingVertical:5,borderRadius:7,backgroundColor:V?e.purple:`${e.purple}14`,borderWidth:1,borderColor:V?e.purple:`${e.purple}2E`}}>
546
+ <T style={{fontFamily:k.interBold,fontSize:10.5,color:V?e.white:e.purple}}>
547
547
  {r.toUpperCase()}
548
548
  </T>
549
- </V>})}
549
+ </R>})}
550
550
  </C>})}
551
551
 
552
- {F({icon:<Ce color={e.purple}size={16}/>,label:w("settings.media.autoHide","Auto-Hide Inspector During Capture"),description:w("settings.media.autoHideDesc","Temporarily hides the inspector overlay during screen capture"),isLast:!0,onPress:()=>{D("light"),$e(r=>!r),B(`Auto-hide overlay: ${L?"OFF":"ON"}`)},right:<V onPress={()=>{D("light"),$e(r=>!r),B(`Auto-hide overlay: ${L?"OFF":"ON"}`)}}style={{paddingHorizontal:10,paddingVertical:5,borderRadius:7,backgroundColor:L?`${e.emerald500}26`:`${e.grayText}20`,borderWidth:1,borderColor:L?`${e.emerald500}4D`:`${e.grayText}33`}}>
553
- <T style={{fontFamily:S.interBold,fontSize:10.5,color:L?e.emerald500:e.grayText}}>
554
- {L?w("settings.media.enabled","ON"):"OFF"}
552
+ {I({icon:<Ue color={e.purple}size={16}/>,label:S("settings.media.autoHide","Auto-Hide Inspector During Capture"),description:S("settings.media.autoHideDesc","Temporarily hides the inspector overlay during screen capture"),isLast:!0,onPress:()=>{$("light"),He(r=>!r),F(`Auto-hide overlay: ${v?"OFF":"ON"}`)},right:<R onPress={()=>{$("light"),He(r=>!r),F(`Auto-hide overlay: ${v?"OFF":"ON"}`)}}style={{paddingHorizontal:10,paddingVertical:5,borderRadius:7,backgroundColor:v?`${e.emerald500}26`:`${e.grayText}20`,borderWidth:1,borderColor:v?`${e.emerald500}4D`:`${e.grayText}33`}}>
553
+ <T style={{fontFamily:k.interBold,fontSize:10.5,color:v?e.emerald500:e.grayText}}>
554
+ {v?S("settings.media.enabled","ON"):"OFF"}
555
555
  </T>
556
- </V>})}
556
+ </R>})}
557
557
  </C>
558
558
 
559
559
 
@@ -563,288 +563,260 @@ import{useMemo as Qe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
563
563
  <Cr color={e.purple}size={16}/>
564
564
  </C>
565
565
  <C style={{flex:1}}>
566
- <T style={{fontFamily:S.interBold,fontSize:14,lineHeight:18,color:e.primaryBlack}}>
567
- {w("settings.media.videoCardTitle","Video Recording & GIF Conversion")}
566
+ <T style={{fontFamily:k.interBold,fontSize:14,lineHeight:18,color:e.primaryBlack}}>
567
+ {S("settings.media.videoCardTitle","Video Recording & GIF Conversion")}
568
568
  </T>
569
- <T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
570
- {w("settings.media.videoCardDesc","ReplayKit hardware encoding, frame capture fallback and GIF generation")}
569
+ <T style={{fontFamily:k.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
570
+ {S("settings.media.videoCardDesc","ReplayKit hardware encoding, frame capture fallback and GIF generation")}
571
571
  </T>
572
572
  </C>
573
573
  </C>
574
574
 
575
- {F({icon:<Ho color={e.purple}size={16}/>,label:w("settings.media.audioMode","Audio Source"),description:w("settings.media.audioModeDesc","Record video with muted, app audio, or microphone commentary"),right:<C style={{flexDirection:"row",gap:5}}>
576
- {[{key:"none",label:"Muted"},{key:"app",label:"App"},{key:"mic",label:"Mic"}].map(r=>{const R=Dr===r.key;return<V key={r.key}onPress={()=>{D("light"),Hr(r.key),B(`Audio source: ${r.label}`)}}style={{paddingHorizontal:8,paddingVertical:5,borderRadius:7,backgroundColor:R?e.purple:`${e.purple}14`,borderWidth:1,borderColor:R?e.purple:`${e.purple}2E`}}>
577
- <T style={{fontFamily:S.interBold,fontSize:10.5,color:R?e.white:e.purple}}>
575
+ {I({icon:<Do color={e.purple}size={16}/>,label:S("settings.media.audioMode","Audio Source"),description:S("settings.media.audioModeDesc","Record video with muted, app audio, or microphone commentary"),right:<C style={{flexDirection:"row",gap:5}}>
576
+ {[{key:"none",label:"Muted"},{key:"app",label:"App"},{key:"mic",label:"Mic"}].map(r=>{const V=Ir===r.key;return<R key={r.key}onPress={()=>{$("light"),Dr(r.key),F(`Audio source: ${r.label}`)}}style={{paddingHorizontal:8,paddingVertical:5,borderRadius:7,backgroundColor:V?e.purple:`${e.purple}14`,borderWidth:1,borderColor:V?e.purple:`${e.purple}2E`}}>
577
+ <T style={{fontFamily:k.interBold,fontSize:10.5,color:V?e.white:e.purple}}>
578
578
  {r.label}
579
579
  </T>
580
- </V>})}
580
+ </R>})}
581
581
  </C>})}
582
582
 
583
- {F({icon:<Do color={e.purple}size={16}/>,label:w("settings.media.frameRate","Recording Frame Rate (FPS)"),description:w("settings.media.frameRateDesc","Target video smoothness: 15, 24, 30, or 60 FPS"),right:<C style={{flexDirection:"row",gap:5}}>
584
- {[15,24,30,60].map(r=>{const R=$r===r;return<V key={r}onPress={()=>{D("light"),Pr(r),B(`Recording FPS: ${r}`)}}style={{paddingHorizontal:7,paddingVertical:5,borderRadius:7,backgroundColor:R?e.purple:`${e.purple}14`,borderWidth:1,borderColor:R?e.purple:`${e.purple}2E`}}>
585
- <T style={{fontFamily:S.interBold,fontSize:10.5,color:R?e.white:e.purple}}>
583
+ {I({icon:<Io color={e.purple}size={16}/>,label:S("settings.media.frameRate","Recording Frame Rate (FPS)"),description:S("settings.media.frameRateDesc","Target video smoothness: 15, 24, 30, or 60 FPS"),right:<C style={{flexDirection:"row",gap:5}}>
584
+ {[15,24,30,60].map(r=>{const V=$r===r;return<R key={r}onPress={()=>{$("light"),Pr(r),F(`Recording FPS: ${r}`)}}style={{paddingHorizontal:7,paddingVertical:5,borderRadius:7,backgroundColor:V?e.purple:`${e.purple}14`,borderWidth:1,borderColor:V?e.purple:`${e.purple}2E`}}>
585
+ <T style={{fontFamily:k.interBold,fontSize:10.5,color:V?e.white:e.purple}}>
586
586
  {r}fps
587
587
  </T>
588
- </V>})}
588
+ </R>})}
589
589
  </C>})}
590
590
 
591
- {F({icon:<$o color={e.purple}size={16}/>,label:w("settings.media.gifAutoOpt","Auto GIF Optimization"),description:w("settings.media.gifAutoOptDesc","Automatic palette reduction and frame skip for lightweight animated GIFs"),isLast:!0,onPress:()=>{D("light"),Pe(r=>!r),B(`GIF optimization: ${A?"OFF":"ON"}`)},right:<V onPress={()=>{D("light"),Pe(r=>!r),B(`GIF optimization: ${A?"OFF":"ON"}`)}}style={{paddingHorizontal:10,paddingVertical:5,borderRadius:7,backgroundColor:A?`${e.emerald500}26`:`${e.grayText}20`,borderWidth:1,borderColor:A?`${e.emerald500}4D`:`${e.grayText}33`}}>
592
- <T style={{fontFamily:S.interBold,fontSize:10.5,color:A?e.emerald500:e.grayText}}>
593
- {A?"ON":"OFF"}
591
+ {I({icon:<$o color={e.purple}size={16}/>,label:S("settings.media.gifAutoOpt","Auto GIF Optimization"),description:S("settings.media.gifAutoOptDesc","Automatic palette reduction and frame skip for lightweight animated GIFs"),isLast:!0,onPress:()=>{$("light"),We(r=>!r),F(`GIF optimization: ${E?"OFF":"ON"}`)},right:<R onPress={()=>{$("light"),We(r=>!r),F(`GIF optimization: ${E?"OFF":"ON"}`)}}style={{paddingHorizontal:10,paddingVertical:5,borderRadius:7,backgroundColor:E?`${e.emerald500}26`:`${e.grayText}20`,borderWidth:1,borderColor:E?`${e.emerald500}4D`:`${e.grayText}33`}}>
592
+ <T style={{fontFamily:k.interBold,fontSize:10.5,color:E?e.emerald500:e.grayText}}>
593
+ {E?"ON":"OFF"}
594
594
  </T>
595
- </V>})}
595
+ </R>})}
596
596
  </C>
597
597
 
598
598
 
599
599
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
600
- {F({icon:<O color={e.errorColor}size={16}/>,label:w("settings.media.purgeAll","Purge Captured Media Cache"),description:w("settings.media.purgeAllDesc","Delete all local screenshots, screen recordings and converted GIFs"),isLast:!0,onPress:()=>{j.alert(w("settings.media.purgeConfirmTitle","Purge Media Storage?"),w("settings.media.purgeConfirmMessage","This will permanently delete all captured screenshots and videos from disk."),[{text:w("common.cancel","Cancel"),style:"cancel"},{text:w("settings.media.purgeCacheBtn","Purge All"),style:"destructive",onPress:async()=>{await kr.clearAllMedia(),B(w("settings.media.purgedSuccess","Media cache cleared successfully"))}}])},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
601
- <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
602
- {w("settings.media.purgeCacheBtn","Purge All")}
600
+ {I({icon:<M color={e.errorColor}size={16}/>,label:S("settings.media.purgeAll","Purge Captured Media Cache"),description:S("settings.media.purgeAllDesc","Delete all local screenshots, screen recordings and converted GIFs"),isLast:!0,onPress:()=>{U.alert(S("settings.media.purgeConfirmTitle","Purge Media Storage?"),S("settings.media.purgeConfirmMessage","This will permanently delete all captured screenshots and videos from disk."),[{text:S("common.cancel","Cancel"),style:"cancel"},{text:S("settings.media.purgeCacheBtn","Purge All"),style:"destructive",onPress:async()=>{await kr.clearAllMedia(),F(S("settings.media.purgedSuccess","Media cache cleared successfully"))}}])},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
601
+ <T style={{fontFamily:k.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
602
+ {S("settings.media.purgeCacheBtn","Purge All")}
603
603
  </T>
604
604
  </C>})}
605
605
  </C>
606
- </_.View>}
606
+ </J.View>}
607
607
 
608
608
  <C style={{height:48}}/>
609
- </J>
610
- </C>;let U=null;if(v==="apis")U=<J style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
609
+ </Y>
610
+ </C>;let G=null;if(A==="apis")G=<Y style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
611
611
 
612
612
 
613
613
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16,gap:12}}>
614
614
  <C style={{flexDirection:"row",alignItems:"flex-start",justifyContent:"space-between",gap:8}}>
615
615
  <C style={{flexDirection:"row",alignItems:"center",gap:8,flex:1}}>
616
- <Ce color={e.purple}size={16}/>
616
+ <Ue color={e.purple}size={16}/>
617
617
  <C style={{flex:1}}>
618
- <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
619
- {w("settings.apis.hideUrlRegexTitle","Hidden URL Filters (Regex)")}
618
+ <T style={{fontFamily:k.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
619
+ {S("settings.apis.hideUrlRegexTitle","Hidden URL Filters (Regex)")}
620
620
  </T>
621
- <T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayTextWeak,marginTop:2}}>
622
- {w("settings.apis.hideUrlRegexDesc","Hide matching URLs from Network list and search results (calls will still execute normally).")}
621
+ <T style={{fontFamily:k.interRegular,fontSize:11,lineHeight:15,color:e.grayTextWeak,marginTop:2}}>
622
+ {S("settings.apis.hideUrlRegexDesc","Hide matching URLs from Network list and search results (calls will still execute normally).")}
623
623
  </T>
624
624
  </C>
625
625
  </C>
626
- {ee.length>0&&<V onPress={()=>{D("light"),Ke([...er]),B(w("settings.apis.resetFilterToast","Reset to default URL filters"))}}hitSlop={8}style={{paddingHorizontal:8,paddingVertical:4.5,borderRadius:6,backgroundColor:`${e.purple}14`,borderWidth:1,borderColor:`${e.purple}33`,alignSelf:"flex-start"}}>
627
- <T style={{fontFamily:S.interSemiBold,fontSize:10,lineHeight:13,color:e.purple}}>
628
- {w("common.resetDefaults","Reset Defaults")}
626
+ {ke.length>0&&<R onPress={()=>{$("light"),Qe([...or]),F(S("settings.apis.resetFilterToast","Reset to default URL filters"))}}hitSlop={8}style={{paddingHorizontal:8,paddingVertical:4.5,borderRadius:6,backgroundColor:`${e.purple}14`,borderWidth:1,borderColor:`${e.purple}33`,alignSelf:"flex-start"}}>
627
+ <T style={{fontFamily:k.interSemiBold,fontSize:10,lineHeight:13,color:e.purple}}>
628
+ {S("common.resetDefaults","Reset Defaults")}
629
629
  </T>
630
- </V>}
630
+ </R>}
631
631
  </C>
632
632
 
633
633
 
634
- <C style={{flexDirection:"row",alignItems:"center",gap:8,backgroundColor:e.grayBackground,borderRadius:10,borderWidth:1,borderColor:e.grayBorderSecondary,paddingHorizontal:10,paddingVertical:Ct.OS==="ios"?8:4}}>
635
- <Bo size={14}color={e.grayTextWeak}/>
636
- <Gr style={{flex:1,fontFamily:S.interMedium,fontSize:12,lineHeight:16,color:e.primaryBlack,padding:0}}placeholder={w("settings.apis.addPatternPlaceholder","e.g. https://api.example.com or .*analytics.*")}placeholderTextColor={e.grayTextWeak}value={We}onChangeText={vr}autoCapitalize="none"autoCorrect={!1}onSubmitEditing={Or}returnKeyType="done"/>
637
- <V onPress={Or}disabled={!We.trim()}style={{paddingHorizontal:10,paddingVertical:5.5,borderRadius:7,backgroundColor:We.trim()?e.purple:`${e.purple}33`}}>
638
- <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.white}}>
639
- {w("common.add","+ Add")}
634
+ <C style={{flexDirection:"row",alignItems:"center",gap:8,backgroundColor:e.grayBackground,borderRadius:10,borderWidth:1,borderColor:e.grayBorderSecondary,paddingHorizontal:10,paddingVertical:mt.OS==="ios"?8:4}}>
635
+ <Ro size={14}color={e.grayTextWeak}/>
636
+ <Ur style={{flex:1,fontFamily:k.interMedium,fontSize:12,lineHeight:16,color:e.primaryBlack,padding:0}}placeholder={S("settings.apis.addPatternPlaceholder","e.g. https://api.example.com or .*analytics.*")}placeholderTextColor={e.grayTextWeak}value={Le}onChangeText={Lr}autoCapitalize="none"autoCorrect={!1}onSubmitEditing={Er}returnKeyType="done"/>
637
+ <R onPress={Er}disabled={!Le.trim()}style={{paddingHorizontal:10,paddingVertical:5.5,borderRadius:7,backgroundColor:Le.trim()?e.purple:`${e.purple}33`}}>
638
+ <T style={{fontFamily:k.interBold,fontSize:11,lineHeight:14,color:e.white}}>
639
+ {S("common.add","+ Add")}
640
640
  </T>
641
- </V>
641
+ </R>
642
642
  </C>
643
643
 
644
644
 
645
645
  <C style={{gap:6}}>
646
- {ee.map((r,R)=>{const I=er.includes(r);return<C key={`${r}-${R}`}style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",backgroundColor:I?`${e.slate200}44`:e.grayBackground,borderRadius:8,paddingHorizontal:10,paddingVertical:7,borderWidth:1,borderColor:I?`${e.grayBorderSecondary}`:e.grayBorderSecondary,gap:8}}>
646
+ {ke.map((r,V)=>{const D=or.includes(r);return<C key={`${r}-${V}`}style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",backgroundColor:D?`${e.slate200}44`:e.grayBackground,borderRadius:8,paddingHorizontal:10,paddingVertical:7,borderWidth:1,borderColor:D?`${e.grayBorderSecondary}`:e.grayBorderSecondary,gap:8}}>
647
647
  <C style={{flexDirection:"row",alignItems:"center",gap:6,flex:1,minWidth:0}}>
648
- <C style={{paddingHorizontal:5,paddingVertical:1.5,borderRadius:4,backgroundColor:I?`${e.blue500}18`:`${e.purple}1F`}}>
649
- <T style={{fontFamily:S.interBold,fontSize:9,lineHeight:11,color:I?e.blue600:e.purple}}>
650
- {I?"DEFAULT":"CUSTOM"}
648
+ <C style={{paddingHorizontal:5,paddingVertical:1.5,borderRadius:4,backgroundColor:D?`${e.blue500}18`:`${e.purple}1F`}}>
649
+ <T style={{fontFamily:k.interBold,fontSize:9,lineHeight:11,color:D?e.blue600:e.purple}}>
650
+ {D?"DEFAULT":"CUSTOM"}
651
651
  </T>
652
652
  </C>
653
- <T style={{fontFamily:S.interMedium,fontSize:11.5,lineHeight:15,color:I?e.grayTextStrong:e.primaryBlack,flex:1}}numberOfLines={1}ellipsizeMode="middle">
653
+ <T style={{fontFamily:k.interMedium,fontSize:11.5,lineHeight:15,color:D?e.grayTextStrong:e.primaryBlack,flex:1}}numberOfLines={1}ellipsizeMode="middle">
654
654
  {r}
655
655
  </T>
656
656
  </C>
657
- {I?<C style={{padding:5,borderRadius:5,backgroundColor:`${e.grayTextWeak}18`,alignItems:"center",justifyContent:"center"}}>
658
- <_t size={12}color={e.grayTextWeak}/>
659
- </C>:<V onPress={()=>yt(R)}hitSlop={8}style={{padding:5,borderRadius:5,backgroundColor:`${e.errorColor}14`}}>
660
- <O size={12}color={e.errorColor}/>
661
- </V>}
657
+ {D?<C style={{padding:5,borderRadius:5,backgroundColor:`${e.grayTextWeak}18`,alignItems:"center",justifyContent:"center"}}>
658
+ <Ut size={12}color={e.grayTextWeak}/>
659
+ </C>:<R onPress={()=>gt(V)}hitSlop={8}style={{padding:5,borderRadius:5,backgroundColor:`${e.errorColor}14`}}>
660
+ <M size={12}color={e.errorColor}/>
661
+ </R>}
662
662
  </C>})}
663
- {ee.length===0&&<T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayTextWeak,textAlign:"center",paddingVertical:8}}>
664
- {w("settings.apis.noFiltersActive","No URL filters active. All URLs will be displayed.")}
663
+ {ke.length===0&&<T style={{fontFamily:k.interRegular,fontSize:11,lineHeight:15,color:e.grayTextWeak,textAlign:"center",paddingVertical:8}}>
664
+ {S("settings.apis.noFiltersActive","No URL filters active. All URLs will be displayed.")}
665
665
  </T>}
666
666
  </C>
667
667
  </C>
668
668
 
669
669
 
670
670
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
671
- {F({icon:<O color={e.errorColor}size={16}/>,label:w("settings.apis.clearNetworkLogs"),description:w("settings.apis.clearNetworkLogsDescription",{count:Ue.length}),isLast:!0,onPress:()=>{Rt(),Zo(null),j.alert(w("common.success"),w("settings.apis.networkLogsCleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
672
- <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
673
- {w("common.clear")}
671
+ {I({icon:<M color={e.errorColor}size={16}/>,label:S("settings.apis.clearNetworkLogs"),description:S("settings.apis.clearNetworkLogsDescription",{count:_e.length}),isLast:!0,onPress:()=>{xt(),Xo(null),U.alert(S("common.success"),S("settings.apis.networkLogsCleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
672
+ <T style={{fontFamily:k.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
673
+ {S("common.clear")}
674
674
  </T>
675
675
  </C>})}
676
676
  </C>
677
677
  <C style={{height:48}}/>
678
- </J>;else if(v==="logs")U=<J style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
678
+ </Y>;else if(A==="logs")G=<Y style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
679
679
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:4}}>
680
- {F({icon:<Zr color={e.purple}size={16}/>,label:w("settings.logs.maxConsoleLogs"),description:w("settings.logs.maxConsoleLogsDescription"),numericInput:{value:Rr,onChange:Jo,min:10,max:100,placeholder:"Enter max logs (10-100)"}})}
680
+ {I({icon:<Qr color={e.purple}size={16}/>,label:S("settings.logs.maxConsoleLogs"),description:S("settings.logs.maxConsoleLogsDescription"),numericInput:{value:Tr,onChange:Go,min:10,max:100,placeholder:"Enter max logs (10-100)"}})}
681
681
  <C style={{height:1,backgroundColor:e.dividerColor}}/>
682
- <T style={{fontFamily:S.interBold,fontSize:13,lineHeight:17,color:e.primaryBlack,paddingTop:6}}>
683
- {w("settings.logs.logLevels")}
682
+ <T style={{fontFamily:k.interBold,fontSize:13,lineHeight:17,color:e.primaryBlack,paddingTop:6}}>
683
+ {S("settings.logs.logLevels")}
684
684
  </T>
685
- {["info","warn","error"].map(r=>{const R=Go?.[r],I=r==="error"?e.errorColor:r==="warn"?e.warningIconGold:e.skyBlue,P=w(r==="info"?"settings.logs.showInfo":r==="warn"?"settings.logs.showWarn":"settings.logs.showError"),E=w(r==="info"?"settings.logs.showInfoDesc":r==="warn"?"settings.logs.showWarnDesc":"settings.logs.showErrorDesc");return F({icon:<C style={{width:12,height:12,borderRadius:6,backgroundColor:I}}/>,label:P,description:E,isLast:r==="error",onPress:()=>_o(z=>({...z,[r]:!z[r]})),right:<C style={{width:22,height:22,borderRadius:6,borderWidth:2,borderColor:R?e.purple:e.grayTextWeak,backgroundColor:R?`${e.purple}1A`:"transparent",alignItems:"center",justifyContent:"center"}}>
686
- {R&&<Se size={12}color={e.purple}/>}
685
+ {["info","warn","error"].map(r=>{const V=jo?.[r],D=r==="error"?e.errorColor:r==="warn"?e.warningIconGold:e.skyBlue,W=S(r==="info"?"settings.logs.showInfo":r==="warn"?"settings.logs.showWarn":"settings.logs.showError"),O=S(r==="info"?"settings.logs.showInfoDesc":r==="warn"?"settings.logs.showWarnDesc":"settings.logs.showErrorDesc");return I({icon:<C style={{width:12,height:12,borderRadius:6,backgroundColor:D}}/>,label:W,description:O,isLast:r==="error",onPress:()=>Uo(B=>({...B,[r]:!B[r]})),right:<C style={{width:22,height:22,borderRadius:6,borderWidth:2,borderColor:V?e.purple:e.grayTextWeak,backgroundColor:V?`${e.purple}1A`:"transparent",alignItems:"center",justifyContent:"center"}}>
686
+ {V&&<Te size={12}color={e.purple}/>}
687
687
  </C>})})}
688
688
  </C>
689
689
 
690
-
691
- <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,overflow:"hidden",padding:16,gap:14}}>
692
- <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.grayTextWeak,letterSpacing:.8}}>
693
- {w("settings.logFiltersDeduplication")}
694
- </T>
695
-
696
-
697
- <C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between"}}>
698
- <C style={{flexDirection:"row",alignItems:"center",gap:10,flex:1}}>
699
- <C style={{width:32,height:32,borderRadius:8,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
700
- <Ce color={e.purple}size={15}/>
701
- </C>
702
- <C style={{flex:1}}>
703
- <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
704
- {w("settings.general.duplicateLogs")}
705
- </T>
706
- <T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
707
- {w("settings.general.duplicateLogsDescription")}
708
- </T>
709
- </C>
710
- </C>
711
-
712
- <V accessible={!0}accessibilityRole="switch"accessibilityLabel="Toggle show duplicate logs"accessibilityState={{checked:Ne}}onPress={()=>jo(r=>!r)}style={{width:42,height:24,borderRadius:12,backgroundColor:Ne?e.purple:e.grayBorderSecondary,padding:2,justifyContent:"center",alignItems:Ne?"flex-end":"flex-start"}}>
713
- <C style={{width:20,height:20,borderRadius:10,backgroundColor:e.white,shadowColor:e.black,shadowOpacity:.18,shadowRadius:2,shadowOffset:{width:0,height:1}}}/>
714
- </V>
715
- </C>
716
- </C>
717
-
718
690
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
719
- {F({icon:<O color={e.errorColor}size={16}/>,label:w("settings.logs.clearConsoleLogs"),description:w("settings.logs.clearConsoleLogsDescription",{count:Ge.length}),isLast:!0,onPress:()=>{Vt(),j.alert(w("common.success"),w("settings.logs.consoleLogsCleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
720
- <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
721
- {w("common.clear")}
691
+ {I({icon:<M color={e.errorColor}size={16}/>,label:S("settings.logs.clearConsoleLogs"),description:S("settings.logs.clearConsoleLogsDescription",{count:Je.length}),isLast:!0,onPress:()=>{Tt(),U.alert(S("common.success"),S("settings.logs.consoleLogsCleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
692
+ <T style={{fontFamily:k.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
693
+ {S("common.clear")}
722
694
  </T>
723
695
  </C>})}
724
696
  </C>
725
697
  <C style={{height:48}}/>
726
- </J>;else if(v==="analytics")U=<J style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
698
+ </Y>;else if(A==="analytics")G=<Y style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
727
699
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary}}>
728
- {F({icon:<Co color={e.purple}size={16}/>,label:w("settings.analytics.maxAnalyticsEvents"),description:w("settings.analytics.maxAnalyticsEventsDescription",{count:_e.length}),numericInput:{value:Vr,onChange:qo,min:10,max:75,placeholder:"Enter max events (10-75)"},isLast:!0})}
700
+ {I({icon:<Zr color={e.purple}size={16}/>,label:S("settings.analytics.maxAnalyticsEvents"),description:S("settings.analytics.maxAnalyticsEventsDescription",{count:qe.length}),numericInput:{value:Vr,onChange:_o,min:10,max:75,placeholder:"Enter max events (10-75)"},isLast:!0})}
729
701
  </C>
730
702
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
731
- {F({icon:<O color={e.errorColor}size={16}/>,label:w("settings.analytics.clearAnalyticsEvents"),description:w("settings.analytics.clearAnalyticsEventsDescription"),isLast:!0,onPress:()=>{zt(),et(null),j.alert(w("common.success"),w("settings.analytics.analyticsEventsCleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
732
- <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
733
- {w("common.clear")}
703
+ {I({icon:<M color={e.errorColor}size={16}/>,label:S("settings.analytics.clearAnalyticsEvents"),description:S("settings.analytics.clearAnalyticsEventsDescription"),isLast:!0,onPress:()=>{Vt(),Qo(null),U.alert(S("common.success"),S("settings.analytics.analyticsEventsCleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
704
+ <T style={{fontFamily:k.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
705
+ {S("common.clear")}
734
706
  </T>
735
707
  </C>})}
736
708
  </C>
737
709
  <C style={{height:48}}/>
738
- </J>;else if(v==="redux")U=<J style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
710
+ </Y>;else if(A==="redux")G=<Y style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
739
711
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:4}}>
740
- {F({icon:<To color={e.purple}size={16}/>,label:w("settings.redux.autoRefresh"),description:w("settings.redux.autoRefreshDescription"),onPress:()=>Ko(r=>!r),right:<C style={{width:22,height:22,borderRadius:6,borderWidth:2,borderColor:qe?e.purple:e.grayTextWeak,backgroundColor:qe?`${e.purple}1A`:"transparent",alignItems:"center",justifyContent:"center"}}>
741
- {qe&&<Se size={12}color={e.purple}/>}
712
+ {I({icon:<So color={e.purple}size={16}/>,label:S("settings.redux.autoRefresh"),description:S("settings.redux.autoRefreshDescription"),onPress:()=>qo(r=>!r),right:<C style={{width:22,height:22,borderRadius:6,borderWidth:2,borderColor:Ke?e.purple:e.grayTextWeak,backgroundColor:Ke?`${e.purple}1A`:"transparent",alignItems:"center",justifyContent:"center"}}>
713
+ {Ke&&<Te size={12}color={e.purple}/>}
742
714
  </C>})}
743
715
  <C style={{height:1,backgroundColor:e.dividerColor}}/>
744
- {F({icon:<Q color={e.purple}size={16}/>,label:w("settings.redux.defaultJsonExpandDepth"),description:w("settings.redux.defaultJsonExpandDepthDescription"),picker:{options:[1,2,3,5],selectedValue:Xo,onSelect:Qo},isLast:!0})}
716
+ {I({icon:<Ce color={e.purple}size={16}/>,label:S("settings.redux.defaultJsonExpandDepth"),description:S("settings.redux.defaultJsonExpandDepthDescription"),picker:{options:[1,2,3,5],selectedValue:Yo,onSelect:Ko},isLast:!0})}
745
717
  </C>
746
718
 
747
719
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
748
- {F({icon:<O color={e.errorColor}size={16}/>,label:w("settings.redux.clearReduxState"),description:w(Ve?"settings.redux.clearReduxStateDescription":"settings.redux.clearReduxStateEmpty"),isLast:!0,onPress:()=>{rt(null),j.alert(w("common.success"),w("settings.redux.reduxStateCleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
749
- <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
750
- {w("common.clear")}
720
+ {I({icon:<M color={e.errorColor}size={16}/>,label:S("settings.redux.clearReduxState"),description:S(Re?"settings.redux.clearReduxStateDescription":"settings.redux.clearReduxStateEmpty"),isLast:!0,onPress:()=>{Zo(null),U.alert(S("common.success"),S("settings.redux.reduxStateCleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
721
+ <T style={{fontFamily:k.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
722
+ {S("common.clear")}
751
723
  </T>
752
724
  </C>})}
753
725
  </C>
754
726
  <C style={{height:48}}/>
755
- </J>;else if(v==="crash"){const r=!!$?.js&&!$?.native&&!!$?.render&&!$?.promise&&!$?.custom,R=!$?.js&&!$?.native&&!$?.render&&!$?.promise&&!$?.custom,I=!!$?.js&&!!$?.native&&!!$?.render&&!!$?.promise&&!!$?.custom,P=["js","native","render","promise","custom"].filter(z=>!$?.[z]).length,E=[{key:"js",label:w("settings.crash.ignoreJs","Ignore JS Runtime Crashes"),desc:w("settings.crash.ignoreJsDesc","Bypasses unhandled JS runtime exceptions, TypeError, SyntaxError & ErrorUtils"),icon:<Mt size={16}color={e.yellow400}/>},{key:"native",label:w("settings.crash.ignoreNative","Ignore Native Platform Crashes"),desc:w("settings.crash.ignoreNativeDesc","Bypasses iOS Mach-O signals, SIGSEGV, NullPointerException & ExceptionsManager"),icon:<Nt size={16}color={e.cyan600}/>},{key:"render",label:w("settings.crash.ignoreRender","Ignore React Render Errors"),desc:w("settings.crash.ignoreRenderDesc","Bypasses React component tree render failures & ErrorBoundary"),icon:<Ut size={16}color={e.purple400}/>},{key:"promise",label:w("settings.crash.ignorePromise","Ignore Promise Rejections"),desc:w("settings.crash.ignorePromiseDesc","Bypasses unhandled asynchronous Promise rejections"),icon:<Gt size={16}color={e.amber400}/>},{key:"custom",label:w("settings.crash.ignoreCustom","Ignore Custom Recorded Errors"),desc:w("settings.crash.ignoreCustomDesc","Bypasses manual recordCustomCrash exceptions & telemetry triggers"),icon:<Bo size={16}color={e.emerald400}/>}];U=<J style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:14}}showsVerticalScrollIndicator={!1}>
727
+ </Y>;else if(A==="crash"){const r=!!H?.js&&!H?.native&&!!H?.render&&!H?.promise&&!H?.custom,V=!H?.js&&!H?.native&&!H?.render&&!H?.promise&&!H?.custom,D=!!H?.js&&!!H?.native&&!!H?.render&&!!H?.promise&&!!H?.custom,W=["js","native","render","promise","custom"].filter(B=>!H?.[B]).length,O=[{key:"js",label:S("settings.crash.ignoreJs","Ignore JS Runtime Crashes"),desc:S("settings.crash.ignoreJsDesc","Bypasses unhandled JS runtime exceptions, TypeError, SyntaxError & ErrorUtils"),icon:<Et size={16}color={e.yellow400}/>},{key:"native",label:S("settings.crash.ignoreNative","Ignore Native Platform Crashes"),desc:S("settings.crash.ignoreNativeDesc","Bypasses iOS Mach-O signals, SIGSEGV, NullPointerException & ExceptionsManager"),icon:<Ot size={16}color={e.cyan600}/>},{key:"render",label:S("settings.crash.ignoreRender","Ignore React Render Errors"),desc:S("settings.crash.ignoreRenderDesc","Bypasses React component tree render failures & ErrorBoundary"),icon:<Mt size={16}color={e.purple400}/>},{key:"promise",label:S("settings.crash.ignorePromise","Ignore Promise Rejections"),desc:S("settings.crash.ignorePromiseDesc","Bypasses unhandled asynchronous Promise rejections"),icon:<Nt size={16}color={e.amber400}/>},{key:"custom",label:S("settings.crash.ignoreCustom","Ignore Custom Recorded Errors"),desc:S("settings.crash.ignoreCustomDesc","Bypasses manual recordCustomCrash exceptions & telemetry triggers"),icon:<Ro size={16}color={e.emerald400}/>}];G=<Y style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:14}}showsVerticalScrollIndicator={!1}>
756
728
 
757
729
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:12}}>
758
730
  <C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between"}}>
759
731
  <C style={{flexDirection:"row",alignItems:"center",gap:8}}>
760
732
  <Vo size={16}color={e.purple}/>
761
- <T style={{fontFamily:S.interBold,fontSize:12.5,letterSpacing:.5,color:e.purple}}>
762
- {w("settings.crash.governancePresets","GOVERNANCE PRESETS")}
733
+ <T style={{fontFamily:k.interBold,fontSize:12.5,letterSpacing:.5,color:e.purple}}>
734
+ {S("settings.crash.governancePresets","GOVERNANCE PRESETS")}
763
735
  </T>
764
736
  </C>
765
737
  <C style={{paddingHorizontal:8,paddingVertical:3,borderRadius:6,backgroundColor:`${e.purple}14`}}>
766
- <T style={{fontFamily:S.interBold,fontSize:10.5,color:e.purple}}>
767
- {P} / 5 PROTECTED
738
+ <T style={{fontFamily:k.interBold,fontSize:10.5,color:e.purple}}>
739
+ {W} / 5 PROTECTED
768
740
  </T>
769
741
  </C>
770
742
  </C>
771
743
 
772
744
 
773
745
  <C style={{flexDirection:"row",gap:8}}>
774
- <V onPress={()=>Be("balanced")}style={{flex:1,paddingVertical:10,paddingHorizontal:6,borderRadius:10,borderWidth:1.5,borderColor:r?e.purple:e.grayBorderSecondary,backgroundColor:r?`${e.purple}12`:e.grayBackground,alignItems:"center",gap:4}}>
775
- <Et size={16}color={r?e.purple:e.grayText}/>
776
- <T style={{fontFamily:S.interBold,fontSize:11,color:r?e.purple:e.primaryBlack}}>
777
- {w("settings.crash.presetBalanced","Balanced")}
746
+ <R onPress={()=>Fe("balanced")}style={{flex:1,paddingVertical:10,paddingHorizontal:6,borderRadius:10,borderWidth:1.5,borderColor:r?e.purple:e.grayBorderSecondary,backgroundColor:r?`${e.purple}12`:e.grayBackground,alignItems:"center",gap:4}}>
747
+ <Lt size={16}color={r?e.purple:e.grayText}/>
748
+ <T style={{fontFamily:k.interBold,fontSize:11,color:r?e.purple:e.primaryBlack}}>
749
+ {S("settings.crash.presetBalanced","Balanced")}
778
750
  </T>
779
- </V>
751
+ </R>
780
752
 
781
- <V onPress={()=>Be("max_shield")}style={{flex:1,paddingVertical:10,paddingHorizontal:6,borderRadius:10,borderWidth:1.5,borderColor:R?e.greenColor:e.grayBorderSecondary,backgroundColor:R?`${e.greenColor}12`:e.grayBackground,alignItems:"center",gap:4}}>
782
- <Vo size={16}color={R?e.greenColor:e.grayText}/>
783
- <T style={{fontFamily:S.interBold,fontSize:11,color:R?e.greenColor:e.primaryBlack}}>
784
- {w("settings.crash.presetMaxShield","Max Shield")}
753
+ <R onPress={()=>Fe("max_shield")}style={{flex:1,paddingVertical:10,paddingHorizontal:6,borderRadius:10,borderWidth:1.5,borderColor:V?e.greenColor:e.grayBorderSecondary,backgroundColor:V?`${e.greenColor}12`:e.grayBackground,alignItems:"center",gap:4}}>
754
+ <Vo size={16}color={V?e.greenColor:e.grayText}/>
755
+ <T style={{fontFamily:k.interBold,fontSize:11,color:V?e.greenColor:e.primaryBlack}}>
756
+ {S("settings.crash.presetMaxShield","Max Shield")}
785
757
  </T>
786
- </V>
758
+ </R>
787
759
 
788
- <V onPress={()=>Be("silent")}style={{flex:1,paddingVertical:10,paddingHorizontal:6,borderRadius:10,borderWidth:1.5,borderColor:I?e.grayTextWeak:e.grayBorderSecondary,backgroundColor:I?`${e.grayTextWeak}1A`:e.grayBackground,alignItems:"center",gap:4}}>
789
- <Ot size={16}color={I?e.grayText:e.grayTextWeak}/>
790
- <T style={{fontFamily:S.interBold,fontSize:11,color:I?e.grayText:e.primaryBlack}}>
791
- {w("settings.crash.presetSilent","Silent Mode")}
760
+ <R onPress={()=>Fe("silent")}style={{flex:1,paddingVertical:10,paddingHorizontal:6,borderRadius:10,borderWidth:1.5,borderColor:D?e.grayTextWeak:e.grayBorderSecondary,backgroundColor:D?`${e.grayTextWeak}1A`:e.grayBackground,alignItems:"center",gap:4}}>
761
+ <At size={16}color={D?e.grayText:e.grayTextWeak}/>
762
+ <T style={{fontFamily:k.interBold,fontSize:11,color:D?e.grayText:e.primaryBlack}}>
763
+ {S("settings.crash.presetSilent","Silent Mode")}
792
764
  </T>
793
- </V>
765
+ </R>
794
766
  </C>
795
767
 
796
- <T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayText}}>
797
- {r?w("settings.crash.presetBalancedDesc","Recommended: Native & Promise protected; JS & Render ignored for clean dev workflow"):R?w("settings.crash.presetMaxShieldDesc","100% Protection: Intercepts & captures all 5 error categories"):I?w("settings.crash.presetSilentDesc","Bypasses all error modals & badges for screencasts & clean demos"):w("settings.crash.categoryMatrix","Customized rule matrix actively configured below")}
768
+ <T style={{fontFamily:k.interRegular,fontSize:11,lineHeight:15,color:e.grayText}}>
769
+ {r?S("settings.crash.presetBalancedDesc","Recommended: Native & Promise protected; JS & Render ignored for clean dev workflow"):V?S("settings.crash.presetMaxShieldDesc","100% Protection: Intercepts & captures all 5 error categories"):D?S("settings.crash.presetSilentDesc","Bypasses all error modals & badges for screencasts & clean demos"):S("settings.crash.categoryMatrix","Customized rule matrix actively configured below")}
798
770
  </T>
799
771
  </C>
800
772
 
801
773
 
802
774
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:4}}>
803
- <T style={{fontFamily:S.interBold,fontSize:12.5,letterSpacing:.5,color:e.purple,marginBottom:4}}>
804
- {w("settings.crash.categoryMatrix","ERROR INTERCEPTION & IGNORED CATEGORIES")}
775
+ <T style={{fontFamily:k.interBold,fontSize:12.5,letterSpacing:.5,color:e.purple,marginBottom:4}}>
776
+ {S("settings.crash.categoryMatrix","ERROR INTERCEPTION & IGNORED CATEGORIES")}
805
777
  </T>
806
778
 
807
- {E.map((z,H)=>{const G=!!$?.[z.key],oe=H===E.length-1;return F({key:z.key,icon:z.icon,label:z.label,description:z.desc,isLast:oe,onPress:()=>{ot(Nr=>({...Nr,[z.key]:!Nr[z.key]}))},right:<C style={{flexDirection:"row",alignItems:"center",gap:8}}>
808
- <C style={{paddingHorizontal:6,paddingVertical:2.5,borderRadius:5,backgroundColor:G?`${e.warningIconGold}18`:`${e.greenColor}18`}}>
809
- <T style={{fontFamily:S.interBold,fontSize:9.5,color:G?e.warningIconGold:e.greenColor}}>
810
- {G?w("settings.crash.ignoredBadge","IGNORED"):w("settings.crash.protectedBadge","PROTECTED")}
779
+ {O.map((B,P)=>{const _=!!H?.[B.key],xe=P===O.length-1;return I({key:B.key,icon:B.icon,label:B.label,description:B.desc,isLast:xe,onPress:()=>{et(Mr=>({...Mr,[B.key]:!Mr[B.key]}))},right:<C style={{flexDirection:"row",alignItems:"center",gap:8}}>
780
+ <C style={{paddingHorizontal:6,paddingVertical:2.5,borderRadius:5,backgroundColor:_?`${e.warningIconGold}18`:`${e.greenColor}18`}}>
781
+ <T style={{fontFamily:k.interBold,fontSize:9.5,color:_?e.warningIconGold:e.greenColor}}>
782
+ {_?S("settings.crash.ignoredBadge","IGNORED"):S("settings.crash.protectedBadge","PROTECTED")}
811
783
  </T>
812
784
  </C>
813
- <C style={{width:22,height:22,borderRadius:6,borderWidth:2,borderColor:G?e.purple:e.grayTextWeak,backgroundColor:G?`${e.purple}1A`:"transparent",alignItems:"center",justifyContent:"center"}}>
814
- {G&&<Se size={12}color={e.purple}/>}
785
+ <C style={{width:22,height:22,borderRadius:6,borderWidth:2,borderColor:_?e.purple:e.grayTextWeak,backgroundColor:_?`${e.purple}1A`:"transparent",alignItems:"center",justifyContent:"center"}}>
786
+ {_&&<Te size={12}color={e.purple}/>}
815
787
  </C>
816
788
  </C>})})}
817
789
  </C>
818
790
 
819
791
 
820
792
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary}}>
821
- {F({icon:<Ro color={e.purple}size={16}/>,label:w("settings.crash.modalTriggerTitle","Modal Alert Display Policy"),description:w("settings.crash.modalTriggerDesc","Configure when the full-screen diagnostic modal appears"),isLast:!0,picker:{options:["fatal_only","all_errors","silent_tab_only"],selectedValue:tt||"fatal_only",onSelect:z=>Fr(z),formatLabel:z=>z==="fatal_only"?w("settings.crash.policyFatalOnly","Fatal Only"):z==="all_errors"?w("settings.crash.policyAllErrors","All Caught"):w("settings.crash.policySilent","Silent Only")}})}
793
+ {I({icon:<To color={e.purple}size={16}/>,label:S("settings.crash.modalTriggerTitle","Modal Alert Display Policy"),description:S("settings.crash.modalTriggerDesc","Configure when the full-screen diagnostic modal appears"),isLast:!0,picker:{options:["fatal_only","all_errors","silent_tab_only"],selectedValue:rt||"fatal_only",onSelect:B=>Br(B),formatLabel:B=>B==="fatal_only"?S("settings.crash.policyFatalOnly","Fatal Only"):B==="all_errors"?S("settings.crash.policyAllErrors","All Caught"):S("settings.crash.policySilent","Silent Only")}})}
822
794
  </C>
823
795
 
824
796
 
825
797
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:4}}>
826
- {F({icon:<Q color={e.purple}size={16}/>,label:w("settings.crash.maxCrashLogs","Max Crash Logs Buffer"),description:w("settings.crash.maxCrashLogsDesc","How many crash records to preserve in history (5-100)"),numericInput:{value:zr,onChange:Br,min:5,max:100,placeholder:"Enter max crashes (5-100)"}})}
798
+ {I({icon:<Ce color={e.purple}size={16}/>,label:S("settings.crash.maxCrashLogs","Max Crash Logs Buffer"),description:S("settings.crash.maxCrashLogsDesc","How many crash records to preserve in history (5-100)"),numericInput:{value:zr,onChange:Rr,min:5,max:100,placeholder:"Enter max crashes (5-100)"}})}
827
799
  <C style={{height:1,backgroundColor:e.dividerColor}}/>
828
- {F({icon:<Jt color={e.purple}size={16}/>,label:w("settings.crash.resetDefaults","Reset to Defaults"),description:w("settings.crash.resetDefaultsDesc","Restore recommended balanced crash protection settings"),onPress:()=>{Be("balanced"),Br(50),Fr("fatal_only"),j.alert(w("common.success","Success"),w("settings.crash.resetDefaultsDesc","Restore recommended balanced crash protection settings"))},right:<C style={{paddingHorizontal:10,paddingVertical:5,borderRadius:8,backgroundColor:`${e.purple}14`,borderWidth:1,borderColor:`${e.purple}33`}}>
829
- <T style={{fontFamily:S.interBold,fontSize:11,color:e.purple}}>
830
- {w("settings.reset","Reset")}
800
+ {I({icon:<Gt color={e.purple}size={16}/>,label:S("settings.crash.resetDefaults","Reset to Defaults"),description:S("settings.crash.resetDefaultsDesc","Restore recommended balanced crash protection settings"),onPress:()=>{Fe("balanced"),Rr(50),Br("fatal_only"),U.alert(S("common.success","Success"),S("settings.crash.resetDefaultsDesc","Restore recommended balanced crash protection settings"))},right:<C style={{paddingHorizontal:10,paddingVertical:5,borderRadius:8,backgroundColor:`${e.purple}14`,borderWidth:1,borderColor:`${e.purple}33`}}>
801
+ <T style={{fontFamily:k.interBold,fontSize:11,color:e.purple}}>
802
+ {S("settings.reset","Reset")}
831
803
  </T>
832
804
  </C>})}
833
805
  <C style={{height:1,backgroundColor:e.dividerColor}}/>
834
- {F({icon:<O color={e.errorColor}size={16}/>,label:w("settings.crash.clearHistory","Clear Crash History"),description:w("settings.crash.clearHistoryDesc",{count:ze?.length||0}),isLast:!0,onPress:()=>{Bt(),j.alert(w("common.success","Success"),w("settings.crash.historyCleared","Crash logs cleared."))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
835
- <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
836
- {w("common.clear","Clear")}
806
+ {I({icon:<M color={e.errorColor}size={16}/>,label:S("settings.crash.clearHistory","Clear Crash History"),description:S("settings.crash.clearHistoryDesc",{count:Be?.length||0}),isLast:!0,onPress:()=>{zt(),U.alert(S("common.success","Success"),S("settings.crash.historyCleared","Crash logs cleared."))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
807
+ <T style={{fontFamily:k.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
808
+ {S("common.clear","Clear")}
837
809
  </T>
838
810
  </C>})}
839
811
  </C>
840
812
  <C style={{height:48}}/>
841
- </J>}else v==="push"?U=<J style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
813
+ </Y>}else A==="push"?G=<Y style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
842
814
 
843
815
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:4}}>
844
- {F({icon:<Q color={e.purple}size={16}/>,label:"Max Push Notification Logs",description:"Buffer size limit for recorded push payloads (10-200)",numericInput:{value:it,onChange:lt,min:10,max:200,placeholder:"Enter max logs (10-200)"}})}
816
+ {I({icon:<Ce color={e.purple}size={16}/>,label:"Max Push Notification Logs",description:"Buffer size limit for recorded push payloads (10-200)",numericInput:{value:ot,onChange:tt,min:10,max:200,placeholder:"Enter max logs (10-200)"}})}
845
817
  <C style={{height:1,backgroundColor:e.dividerColor}}/>
846
- {F({icon:<Wo color={e.greenColor}size={16}/>,label:"Universal Ingestion Engine",description:"Captures any push domain (Salesforce, FCM, APNs, Expo, Braze, Custom)",isLast:!0,right:<C style={{paddingHorizontal:8,paddingVertical:4,borderRadius:6,backgroundColor:`${e.greenColor}1F`}}>
847
- <T style={{fontFamily:S.interBold,fontSize:10,lineHeight:13,color:e.greenColor}}>
818
+ {I({icon:<Ho color={e.greenColor}size={16}/>,label:"Universal Ingestion Engine",description:"Captures any push domain (Salesforce, FCM, APNs, Expo, Braze, Custom)",isLast:!0,right:<C style={{paddingHorizontal:8,paddingVertical:4,borderRadius:6,backgroundColor:`${e.greenColor}1F`}}>
819
+ <T style={{fontFamily:k.interBold,fontSize:10,lineHeight:13,color:e.greenColor}}>
848
820
  ACTIVE
849
821
  </T>
850
822
  </C>})}
@@ -854,54 +826,54 @@ import{useMemo as Qe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
854
826
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:8}}>
855
827
  <C style={{flexDirection:"row",alignItems:"center",gap:6,marginBottom:4}}>
856
828
  <Sr size={13}color={e.amber500}/>
857
- <T style={{fontFamily:S.interBold,fontSize:12,color:e.primaryBlack}}>
858
- {w("settings.simulatePushTitle","SIMULATE TEST PUSH NOTIFICATIONS")}
829
+ <T style={{fontFamily:k.interBold,fontSize:12,color:e.primaryBlack}}>
830
+ {S("settings.simulatePushTitle","SIMULATE TEST PUSH NOTIFICATIONS")}
859
831
  </T>
860
832
  </C>
861
833
 
862
834
  <C style={{flexDirection:"row",flexWrap:"wrap",gap:6}}>
863
- <V onPress={()=>{Ie("salesforce"),B(w("settings.simulator.salesforce","Simulated Salesforce Marketing Cloud push"))}}style={{backgroundColor:`${e.sky600}14`,borderColor:`${e.sky600}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
864
- <T style={{fontSize:11,fontFamily:S.interSemiBold,color:e.sky600}}>
835
+ <R onPress={()=>{De("salesforce"),F(S("settings.simulator.salesforce","Simulated Salesforce Marketing Cloud push"))}}style={{backgroundColor:`${e.sky600}14`,borderColor:`${e.sky600}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
836
+ <T style={{fontSize:11,fontFamily:k.interSemiBold,color:e.sky600}}>
865
837
  + Salesforce MC
866
838
  </T>
867
- </V>
839
+ </R>
868
840
 
869
- <V onPress={()=>{Ie("fcm"),B(w("settings.simulator.fcm","Simulated Firebase FCM push"))}}style={{backgroundColor:`${e.darkOrange}14`,borderColor:`${e.darkOrange}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
870
- <T style={{fontSize:11,fontFamily:S.interSemiBold,color:e.darkOrange}}>
841
+ <R onPress={()=>{De("fcm"),F(S("settings.simulator.fcm","Simulated Firebase FCM push"))}}style={{backgroundColor:`${e.darkOrange}14`,borderColor:`${e.darkOrange}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
842
+ <T style={{fontSize:11,fontFamily:k.interSemiBold,color:e.darkOrange}}>
871
843
  + Firebase FCM
872
844
  </T>
873
- </V>
845
+ </R>
874
846
 
875
- <V onPress={()=>{Ie("apns"),B(w("settings.simulator.apns","Simulated Apple APNs push"))}}style={{backgroundColor:`${e.primaryBlack}10`,borderColor:`${e.primaryBlack}25`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
876
- <T style={{fontSize:11,fontFamily:S.interSemiBold,color:e.primaryBlack}}>
847
+ <R onPress={()=>{De("apns"),F(S("settings.simulator.apns","Simulated Apple APNs push"))}}style={{backgroundColor:`${e.primaryBlack}10`,borderColor:`${e.primaryBlack}25`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
848
+ <T style={{fontSize:11,fontFamily:k.interSemiBold,color:e.primaryBlack}}>
877
849
  + Apple APNs
878
850
  </T>
879
- </V>
851
+ </R>
880
852
 
881
- <V onPress={()=>{Ie("deeplink"),B(w("settings.simulator.deepLink","Simulated Deep Link push"))}}style={{backgroundColor:`${e.brandPurple}14`,borderColor:`${e.brandPurple}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
882
- <T style={{fontSize:11,fontFamily:S.interSemiBold,color:e.brandPurple}}>
853
+ <R onPress={()=>{De("deeplink"),F(S("settings.simulator.deepLink","Simulated Deep Link push"))}}style={{backgroundColor:`${e.brandPurple}14`,borderColor:`${e.brandPurple}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
854
+ <T style={{fontSize:11,fontFamily:k.interSemiBold,color:e.brandPurple}}>
883
855
  + Deep Link
884
856
  </T>
885
- </V>
857
+ </R>
886
858
  </C>
887
859
  </C>
888
860
 
889
861
 
890
862
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
891
- {F({icon:<O color={e.errorColor}size={16}/>,label:w("push.clearTitle","Clear Push History"),description:`Permanently remove all ${Fe?.length||0} recorded notifications`,isLast:!0,onPress:()=>{at(),j.alert(w("common.success","Success"),w("settings.pushHistoryCleared","Push notification history cleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
892
- <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
893
- {w("common.clear")}
863
+ {I({icon:<M color={e.errorColor}size={16}/>,label:S("push.clearTitle","Clear Push History"),description:`Permanently remove all ${Ie?.length||0} recorded notifications`,isLast:!0,onPress:()=>{it(),U.alert(S("common.success","Success"),S("settings.pushHistoryCleared","Push notification history cleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
864
+ <T style={{fontFamily:k.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
865
+ {S("common.clear")}
894
866
  </T>
895
867
  </C>})}
896
868
  </C>
897
869
  <C style={{height:48}}/>
898
- </J>:v==="socket"?U=<J style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
870
+ </Y>:A==="socket"?G=<Y style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
899
871
 
900
872
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:4}}>
901
- {F({icon:<Q color={e.purple}size={16}/>,label:"Max WebSocket Connections",description:"Ring buffer limit for active & closed socket sessions (10-200)",numericInput:{value:nt,onChange:st,min:10,max:200,placeholder:"Enter max sockets (10-200)"}})}
873
+ {I({icon:<Ce color={e.purple}size={16}/>,label:"Max WebSocket Connections",description:"Ring buffer limit for active & closed socket sessions (10-200)",numericInput:{value:lt,onChange:at,min:10,max:200,placeholder:"Enter max sockets (10-200)"}})}
902
874
  <C style={{height:1,backgroundColor:e.dividerColor}}/>
903
- {F({icon:<Lo color={e.greenColor}size={16}/>,label:"Global WebSocket Interceptor",description:"Automatic capture for WebSocket, WSS & Socket.IO traffic",isLast:!0,right:<C style={{paddingHorizontal:8,paddingVertical:4,borderRadius:6,backgroundColor:`${e.greenColor}1F`}}>
904
- <T style={{fontFamily:S.interBold,fontSize:10,lineHeight:13,color:e.greenColor}}>
875
+ {I({icon:<Wo color={e.greenColor}size={16}/>,label:"Global WebSocket Interceptor",description:"Automatic capture for WebSocket, WSS & Socket.IO traffic",isLast:!0,right:<C style={{paddingHorizontal:8,paddingVertical:4,borderRadius:6,backgroundColor:`${e.greenColor}1F`}}>
876
+ <T style={{fontFamily:k.interBold,fontSize:10,lineHeight:13,color:e.greenColor}}>
905
877
  ACTIVE
906
878
  </T>
907
879
  </C>})}
@@ -911,64 +883,64 @@ import{useMemo as Qe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
911
883
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:8}}>
912
884
  <C style={{flexDirection:"row",alignItems:"center",gap:6,marginBottom:4}}>
913
885
  <Sr size={13}color={e.amber500}/>
914
- <T style={{fontFamily:S.interBold,fontSize:12,color:e.primaryBlack}}>
915
- {w("settings.simulateSocketTitle","SIMULATE TEST SOCKET CONNECTIONS")}
886
+ <T style={{fontFamily:k.interBold,fontSize:12,color:e.primaryBlack}}>
887
+ {S("settings.simulateSocketTitle","SIMULATE TEST SOCKET CONNECTIONS")}
916
888
  </T>
917
889
  </C>
918
890
 
919
891
  <C style={{flexDirection:"row",flexWrap:"wrap",gap:6}}>
920
- <V onPress={()=>{He("chat"),B(w("settings.simulator.chat","Simulated Real-time Chat WebSocket session"))}}style={{backgroundColor:`${e.blue600}14`,borderColor:`${e.blue600}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
921
- <T style={{fontSize:11,fontFamily:S.interSemiBold,color:e.blue600}}>
892
+ <R onPress={()=>{Pe("chat"),F(S("settings.simulator.chat","Simulated Real-time Chat WebSocket session"))}}style={{backgroundColor:`${e.blue600}14`,borderColor:`${e.blue600}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
893
+ <T style={{fontSize:11,fontFamily:k.interSemiBold,color:e.blue600}}>
922
894
  + Chat Room (WS)
923
895
  </T>
924
- </V>
896
+ </R>
925
897
 
926
- <V onPress={()=>{He("crypto"),B(w("settings.simulator.crypto","Simulated Binance Crypto Ticker stream"))}}style={{backgroundColor:`${e.emerald600}14`,borderColor:`${e.emerald600}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
927
- <T style={{fontSize:11,fontFamily:S.interSemiBold,color:e.emerald600}}>
898
+ <R onPress={()=>{Pe("crypto"),F(S("settings.simulator.crypto","Simulated Binance Crypto Ticker stream"))}}style={{backgroundColor:`${e.emerald600}14`,borderColor:`${e.emerald600}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
899
+ <T style={{fontSize:11,fontFamily:k.interSemiBold,color:e.emerald600}}>
928
900
  + Crypto Feed (WSS)
929
901
  </T>
930
- </V>
902
+ </R>
931
903
 
932
- <V onPress={()=>{He("socketio"),B(w("settings.simulator.socketio","Simulated Socket.IO v4 session"))}}style={{backgroundColor:`${e.violet600}14`,borderColor:`${e.violet600}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
933
- <T style={{fontSize:11,fontFamily:S.interSemiBold,color:e.violet600}}>
904
+ <R onPress={()=>{Pe("socketio"),F(S("settings.simulator.socketio","Simulated Socket.IO v4 session"))}}style={{backgroundColor:`${e.violet600}14`,borderColor:`${e.violet600}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
905
+ <T style={{fontSize:11,fontFamily:k.interSemiBold,color:e.violet600}}>
934
906
  + Socket.IO Room
935
907
  </T>
936
- </V>
908
+ </R>
937
909
 
938
- <V onPress={()=>{He("echo"),B(w("settings.simulator.echo","Simulated WebSocket Echo test"))}}style={{backgroundColor:`${e.brandPurple}14`,borderColor:`${e.brandPurple}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
939
- <T style={{fontSize:11,fontFamily:S.interSemiBold,color:e.brandPurple}}>
910
+ <R onPress={()=>{Pe("echo"),F(S("settings.simulator.echo","Simulated WebSocket Echo test"))}}style={{backgroundColor:`${e.brandPurple}14`,borderColor:`${e.brandPurple}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
911
+ <T style={{fontSize:11,fontFamily:k.interSemiBold,color:e.brandPurple}}>
940
912
  + Echo Test
941
913
  </T>
942
- </V>
914
+ </R>
943
915
  </C>
944
916
  </C>
945
917
 
946
918
 
947
919
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
948
- {F({icon:<O color={e.errorColor}size={16}/>,label:w("socket.clearTitle","Clear All WebSocket Logs").replace("All WebSocket Logs","Socket History"),description:`Permanently remove all ${De?.length||0} recorded sessions`,isLast:!0,onPress:()=>{dt(),j.alert(w("common.success","Success"),w("settings.socketHistoryCleared","WebSocket history cleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
949
- <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
950
- {w("common.clear")}
920
+ {I({icon:<M color={e.errorColor}size={16}/>,label:S("socket.clearTitle","Clear All WebSocket Logs").replace("All WebSocket Logs","Socket History"),description:`Permanently remove all ${$e?.length||0} recorded sessions`,isLast:!0,onPress:()=>{nt(),U.alert(S("common.success","Success"),S("settings.socketHistoryCleared","WebSocket history cleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
921
+ <T style={{fontFamily:k.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
922
+ {S("common.clear")}
951
923
  </T>
952
924
  </C>})}
953
925
  </C>
954
926
  <C style={{height:48}}/>
955
- </J>:v==="media"&&(U=<J style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
927
+ </Y>:A==="media"&&(G=<Y style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
956
928
 
957
929
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:8}}>
958
930
  <C style={{flexDirection:"row",alignItems:"center",gap:6,marginBottom:4}}>
959
931
  <Sr size={13}color={e.amber500}/>
960
- <T style={{fontFamily:S.interBold,fontSize:12,color:e.primaryBlack}}>
961
- {w("settings.directCaptureShortcuts","DIRECT CAPTURE SHORTCUTS")}
932
+ <T style={{fontFamily:k.interBold,fontSize:12,color:e.primaryBlack}}>
933
+ {S("settings.directCaptureShortcuts","DIRECT CAPTURE SHORTCUTS")}
962
934
  </T>
963
935
  </C>
964
936
 
965
937
  <C style={{flexDirection:"row",flexWrap:"wrap",gap:8}}>
966
- <V onPress={async()=>{D("light"),await kr.takeScreenshot({format:Ye.toLowerCase(),quality:.9,hideInspector:L})&&(D("success"),B(w("settings.simulator.screenshotSaved","Screenshot captured and saved!")))}}style={{backgroundColor:`${e.purple}14`,borderColor:`${e.purple}33`,borderWidth:1,paddingHorizontal:12,paddingVertical:7,borderRadius:8,flexDirection:"row",alignItems:"center",gap:6}}>
967
- <Te color={e.purple}size={14}/>
968
- <T style={{fontSize:11,fontFamily:S.interBold,color:e.purple}}>
938
+ <R onPress={async()=>{$("light"),await kr.takeScreenshot({format:Xe.toLowerCase(),quality:.9,hideInspector:v})&&($("success"),F(S("settings.simulator.screenshotSaved","Screenshot captured and saved!")))}}style={{backgroundColor:`${e.purple}14`,borderColor:`${e.purple}33`,borderWidth:1,paddingHorizontal:12,paddingVertical:7,borderRadius:8,flexDirection:"row",alignItems:"center",gap:6}}>
939
+ <Ve color={e.purple}size={14}/>
940
+ <T style={{fontSize:11,fontFamily:k.interBold,color:e.purple}}>
969
941
  Take Screenshot
970
942
  </T>
971
- </V>
943
+ </R>
972
944
  </C>
973
945
  </C>
974
946
 
@@ -976,31 +948,31 @@ import{useMemo as Qe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
976
948
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:12}}>
977
949
  <C style={{flexDirection:"row",alignItems:"center",gap:10}}>
978
950
  <C style={{width:36,height:36,borderRadius:10,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
979
- <Te color={e.purple}size={16}/>
951
+ <Ve color={e.purple}size={16}/>
980
952
  </C>
981
953
  <C style={{flex:1}}>
982
- <T style={{fontFamily:S.interBold,fontSize:14,lineHeight:18,color:e.primaryBlack}}>
983
- {w("settings.media.screenshotCardTitle","Screenshot Capture Settings")}
954
+ <T style={{fontFamily:k.interBold,fontSize:14,lineHeight:18,color:e.primaryBlack}}>
955
+ {S("settings.media.screenshotCardTitle","Screenshot Capture Settings")}
984
956
  </T>
985
- <T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
986
- {w("settings.media.screenshotCardDesc","Image encoding format, compression quality and overlay auto-hide")}
957
+ <T style={{fontFamily:k.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
958
+ {S("settings.media.screenshotCardDesc","Image encoding format, compression quality and overlay auto-hide")}
987
959
  </T>
988
960
  </C>
989
961
  </C>
990
962
 
991
- {F({icon:<Po color={e.purple}size={16}/>,label:w("settings.media.imageFormat","Image Format"),description:w("settings.media.imageFormatDesc","Export formats (PNG lossless, JPEG lossy, WebP)"),right:<C style={{flexDirection:"row",gap:5}}>
992
- {["png","jpeg","webp"].map(r=>{const R=Ye===r;return<V key={r}onPress={()=>{D("light"),Ir(r),B(`Screenshot format: ${r.toUpperCase()}`)}}style={{paddingHorizontal:9,paddingVertical:5,borderRadius:7,backgroundColor:R?e.purple:`${e.purple}14`,borderWidth:1,borderColor:R?e.purple:`${e.purple}2E`}}>
993
- <T style={{fontFamily:S.interBold,fontSize:10.5,color:R?e.white:e.purple}}>
963
+ {I({icon:<Po color={e.purple}size={16}/>,label:S("settings.media.imageFormat","Image Format"),description:S("settings.media.imageFormatDesc","Export formats (PNG lossless, JPEG lossy, WebP)"),right:<C style={{flexDirection:"row",gap:5}}>
964
+ {["png","jpeg","webp"].map(r=>{const V=Xe===r;return<R key={r}onPress={()=>{$("light"),Fr(r),F(`Screenshot format: ${r.toUpperCase()}`)}}style={{paddingHorizontal:9,paddingVertical:5,borderRadius:7,backgroundColor:V?e.purple:`${e.purple}14`,borderWidth:1,borderColor:V?e.purple:`${e.purple}2E`}}>
965
+ <T style={{fontFamily:k.interBold,fontSize:10.5,color:V?e.white:e.purple}}>
994
966
  {r.toUpperCase()}
995
967
  </T>
996
- </V>})}
968
+ </R>})}
997
969
  </C>})}
998
970
 
999
- {F({icon:<Ce color={e.purple}size={16}/>,label:w("settings.media.autoHide","Auto-Hide Inspector During Capture"),description:w("settings.media.autoHideDesc","Temporarily hides the inspector overlay during screen capture"),isLast:!0,onPress:()=>{D("light"),$e(r=>!r),B(`Auto-hide overlay: ${L?"OFF":"ON"}`)},right:<V onPress={()=>{D("light"),$e(r=>!r),B(`Auto-hide overlay: ${L?"OFF":"ON"}`)}}style={{paddingHorizontal:10,paddingVertical:5,borderRadius:7,backgroundColor:L?`${e.emerald500}26`:`${e.grayText}20`,borderWidth:1,borderColor:L?`${e.emerald500}4D`:`${e.grayText}33`}}>
1000
- <T style={{fontFamily:S.interBold,fontSize:10.5,color:L?e.emerald500:e.grayText}}>
1001
- {L?w("settings.media.enabled","ON"):"OFF"}
971
+ {I({icon:<Ue color={e.purple}size={16}/>,label:S("settings.media.autoHide","Auto-Hide Inspector During Capture"),description:S("settings.media.autoHideDesc","Temporarily hides the inspector overlay during screen capture"),isLast:!0,onPress:()=>{$("light"),He(r=>!r),F(`Auto-hide overlay: ${v?"OFF":"ON"}`)},right:<R onPress={()=>{$("light"),He(r=>!r),F(`Auto-hide overlay: ${v?"OFF":"ON"}`)}}style={{paddingHorizontal:10,paddingVertical:5,borderRadius:7,backgroundColor:v?`${e.emerald500}26`:`${e.grayText}20`,borderWidth:1,borderColor:v?`${e.emerald500}4D`:`${e.grayText}33`}}>
972
+ <T style={{fontFamily:k.interBold,fontSize:10.5,color:v?e.emerald500:e.grayText}}>
973
+ {v?S("settings.media.enabled","ON"):"OFF"}
1002
974
  </T>
1003
- </V>})}
975
+ </R>})}
1004
976
  </C>
1005
977
 
1006
978
 
@@ -1010,58 +982,58 @@ import{useMemo as Qe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
1010
982
  <Cr color={e.purple}size={16}/>
1011
983
  </C>
1012
984
  <C style={{flex:1}}>
1013
- <T style={{fontFamily:S.interBold,fontSize:14,lineHeight:18,color:e.primaryBlack}}>
1014
- {w("settings.media.videoCardTitle","Video Recording & GIF Conversion")}
985
+ <T style={{fontFamily:k.interBold,fontSize:14,lineHeight:18,color:e.primaryBlack}}>
986
+ {S("settings.media.videoCardTitle","Video Recording & GIF Conversion")}
1015
987
  </T>
1016
- <T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
1017
- {w("settings.media.videoCardDesc","ReplayKit hardware encoding, frame capture fallback and GIF generation")}
988
+ <T style={{fontFamily:k.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
989
+ {S("settings.media.videoCardDesc","ReplayKit hardware encoding, frame capture fallback and GIF generation")}
1018
990
  </T>
1019
991
  </C>
1020
992
  </C>
1021
993
 
1022
- {F({icon:<Ho color={e.purple}size={16}/>,label:w("settings.media.audioMode","Audio Source"),description:w("settings.media.audioModeDesc","Record video with muted, app audio, or microphone commentary"),right:<C style={{flexDirection:"row",gap:5}}>
1023
- {[{key:"none",label:"Muted"},{key:"app",label:"App"},{key:"mic",label:"Mic"}].map(r=>{const R=Dr===r.key;return<V key={r.key}onPress={()=>{D("light"),Hr(r.key),B(`Audio source: ${r.label}`)}}style={{paddingHorizontal:8,paddingVertical:5,borderRadius:7,backgroundColor:R?e.purple:`${e.purple}14`,borderWidth:1,borderColor:R?e.purple:`${e.purple}2E`}}>
1024
- <T style={{fontFamily:S.interBold,fontSize:10.5,color:R?e.white:e.purple}}>
994
+ {I({icon:<Do color={e.purple}size={16}/>,label:S("settings.media.audioMode","Audio Source"),description:S("settings.media.audioModeDesc","Record video with muted, app audio, or microphone commentary"),right:<C style={{flexDirection:"row",gap:5}}>
995
+ {[{key:"none",label:"Muted"},{key:"app",label:"App"},{key:"mic",label:"Mic"}].map(r=>{const V=Ir===r.key;return<R key={r.key}onPress={()=>{$("light"),Dr(r.key),F(`Audio source: ${r.label}`)}}style={{paddingHorizontal:8,paddingVertical:5,borderRadius:7,backgroundColor:V?e.purple:`${e.purple}14`,borderWidth:1,borderColor:V?e.purple:`${e.purple}2E`}}>
996
+ <T style={{fontFamily:k.interBold,fontSize:10.5,color:V?e.white:e.purple}}>
1025
997
  {r.label}
1026
998
  </T>
1027
- </V>})}
999
+ </R>})}
1028
1000
  </C>})}
1029
1001
 
1030
- {F({icon:<Do color={e.purple}size={16}/>,label:w("settings.media.frameRate","Recording Frame Rate (FPS)"),description:w("settings.media.frameRateDesc","Target video smoothness: 15, 24, 30, or 60 FPS"),right:<C style={{flexDirection:"row",gap:5}}>
1031
- {[15,24,30,60].map(r=>{const R=$r===r;return<V key={r}onPress={()=>{D("light"),Pr(r),B(`Recording FPS: ${r}`)}}style={{paddingHorizontal:7,paddingVertical:5,borderRadius:7,backgroundColor:R?e.purple:`${e.purple}14`,borderWidth:1,borderColor:R?e.purple:`${e.purple}2E`}}>
1032
- <T style={{fontFamily:S.interBold,fontSize:10.5,color:R?e.white:e.purple}}>
1002
+ {I({icon:<Io color={e.purple}size={16}/>,label:S("settings.media.frameRate","Recording Frame Rate (FPS)"),description:S("settings.media.frameRateDesc","Target video smoothness: 15, 24, 30, or 60 FPS"),right:<C style={{flexDirection:"row",gap:5}}>
1003
+ {[15,24,30,60].map(r=>{const V=$r===r;return<R key={r}onPress={()=>{$("light"),Pr(r),F(`Recording FPS: ${r}`)}}style={{paddingHorizontal:7,paddingVertical:5,borderRadius:7,backgroundColor:V?e.purple:`${e.purple}14`,borderWidth:1,borderColor:V?e.purple:`${e.purple}2E`}}>
1004
+ <T style={{fontFamily:k.interBold,fontSize:10.5,color:V?e.white:e.purple}}>
1033
1005
  {r}fps
1034
1006
  </T>
1035
- </V>})}
1007
+ </R>})}
1036
1008
  </C>})}
1037
1009
 
1038
- {F({icon:<$o color={e.purple}size={16}/>,label:w("settings.media.gifAutoOpt","Auto GIF Optimization"),description:w("settings.media.gifAutoOptDesc","Automatic palette reduction and frame skip for lightweight animated GIFs"),isLast:!0,onPress:()=>{D("light"),Pe(r=>!r),B(`GIF optimization: ${A?"OFF":"ON"}`)},right:<V onPress={()=>{D("light"),Pe(r=>!r),B(`GIF optimization: ${A?"OFF":"ON"}`)}}style={{paddingHorizontal:10,paddingVertical:5,borderRadius:7,backgroundColor:A?`${e.emerald500}26`:`${e.grayText}20`,borderWidth:1,borderColor:A?`${e.emerald500}4D`:`${e.grayText}33`}}>
1039
- <T style={{fontFamily:S.interBold,fontSize:10.5,color:A?e.emerald500:e.grayText}}>
1040
- {A?"ON":"OFF"}
1010
+ {I({icon:<$o color={e.purple}size={16}/>,label:S("settings.media.gifAutoOpt","Auto GIF Optimization"),description:S("settings.media.gifAutoOptDesc","Automatic palette reduction and frame skip for lightweight animated GIFs"),isLast:!0,onPress:()=>{$("light"),We(r=>!r),F(`GIF optimization: ${E?"OFF":"ON"}`)},right:<R onPress={()=>{$("light"),We(r=>!r),F(`GIF optimization: ${E?"OFF":"ON"}`)}}style={{paddingHorizontal:10,paddingVertical:5,borderRadius:7,backgroundColor:E?`${e.emerald500}26`:`${e.grayText}20`,borderWidth:1,borderColor:E?`${e.emerald500}4D`:`${e.grayText}33`}}>
1011
+ <T style={{fontFamily:k.interBold,fontSize:10.5,color:E?e.emerald500:e.grayText}}>
1012
+ {E?"ON":"OFF"}
1041
1013
  </T>
1042
- </V>})}
1014
+ </R>})}
1043
1015
  </C>
1044
1016
 
1045
1017
 
1046
1018
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
1047
- {F({icon:<O color={e.errorColor}size={16}/>,label:w("settings.media.purgeAll","Purge Captured Media Cache"),description:w("settings.media.purgeAllDesc","Delete all local screenshots, screen recordings and converted GIFs"),isLast:!0,onPress:()=>{j.alert(w("settings.media.purgeConfirmTitle","Purge Media Storage?"),w("settings.media.purgeConfirmMessage","This will permanently delete all captured screenshots and videos from disk."),[{text:w("common.cancel","Cancel"),style:"cancel"},{text:w("settings.media.purgeCacheBtn","Purge All"),style:"destructive",onPress:async()=>{await kr.clearAllMedia(),B(w("settings.media.purgedSuccess","Media cache cleared successfully"))}}])},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
1048
- <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
1049
- {w("settings.media.purgeCacheBtn","Purge All")}
1019
+ {I({icon:<M color={e.errorColor}size={16}/>,label:S("settings.media.purgeAll","Purge Captured Media Cache"),description:S("settings.media.purgeAllDesc","Delete all local screenshots, screen recordings and converted GIFs"),isLast:!0,onPress:()=>{U.alert(S("settings.media.purgeConfirmTitle","Purge Media Storage?"),S("settings.media.purgeConfirmMessage","This will permanently delete all captured screenshots and videos from disk."),[{text:S("common.cancel","Cancel"),style:"cancel"},{text:S("settings.media.purgeCacheBtn","Purge All"),style:"destructive",onPress:async()=>{await kr.clearAllMedia(),F(S("settings.media.purgedSuccess","Media cache cleared successfully"))}}])},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
1020
+ <T style={{fontFamily:k.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
1021
+ {S("settings.media.purgeCacheBtn","Purge All")}
1050
1022
  </T>
1051
1023
  </C>})}
1052
1024
  </C>
1053
1025
  <C style={{height:48}}/>
1054
- </J>);const Oe=jr(new _.Value(0)).current;return Ze(()=>{v!=="main"&&(Oe.setValue(0),_.spring(Oe,{toValue:1,friction:8,tension:65,useNativeDriver:!0}).start())},[v]),<C style={{flex:1,backgroundColor:e.grayBackground}}>
1026
+ </Y>);const Me=Nr(new J.Value(0)).current;return rr(()=>{A!=="main"&&(Me.setValue(0),J.spring(Me,{toValue:1,friction:8,tension:65,useNativeDriver:!0}).start())},[A]),<C style={{flex:1,backgroundColor:e.grayBackground}}>
1055
1027
 
1056
- <C style={[Ur.absoluteFill,v!=="main"&&{pointerEvents:"none"}]}>
1057
- {ft()}
1028
+ <C style={[jr.absoluteFill,A!=="main"&&{pointerEvents:"none"}]}>
1029
+ {bt()}
1058
1030
  </C>
1059
1031
 
1060
1032
 
1061
- {v!=="main"&&<_.View style={[Ur.absoluteFill,{backgroundColor:e.grayBackground,opacity:Oe,transform:[{translateX:Oe.interpolate({inputRange:[0,1],outputRange:[30,0]})}]}]}>
1062
- {U}
1063
- </_.View>}
1033
+ {A!=="main"&&<J.View style={[jr.absoluteFill,{backgroundColor:e.grayBackground,opacity:Me,transform:[{translateX:Me.interpolate({inputRange:[0,1],outputRange:[30,0]})}]}]}>
1034
+ {G}
1035
+ </J.View>}
1064
1036
 
1065
1037
 
1066
- <Dt visible={gt}onClose={()=>Er(!1)}/>
1067
- </C>};export default ri;
1038
+ <Ft visible={dt}onClose={()=>Ar(!1)}/>
1039
+ </C>};export default Zt;