react-native-inapp-inspector 2.3.25 → 2.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/README.md +26 -5
  2. package/dist/commonjs/components/AnalyticsDetail.js +9 -6
  3. package/dist/commonjs/components/AppHeaderLogo.js +4 -6
  4. package/dist/commonjs/components/Inspector/AnalyticsFilterModal.js +1 -1
  5. package/dist/commonjs/components/Inspector/AnalyticsTab.js +18 -22
  6. package/dist/commonjs/components/Inspector/ConsoleTab.js +13 -16
  7. package/dist/commonjs/components/Inspector/CrashDetail.js +7 -6
  8. package/dist/commonjs/components/Inspector/CrashTab.js +23 -23
  9. package/dist/commonjs/components/Inspector/DebuggingTab.js +6 -6
  10. package/dist/commonjs/components/Inspector/DeviceInfoTab.js +77 -43
  11. package/dist/commonjs/components/Inspector/FabLauncher.js +8 -9
  12. package/dist/commonjs/components/Inspector/InspectorHeader.js +93 -70
  13. package/dist/commonjs/components/Inspector/LogDetail.js +10 -7
  14. package/dist/commonjs/components/Inspector/MainScreen.js +67 -29
  15. package/dist/commonjs/components/Inspector/NetworkDetail.js +29 -28
  16. package/dist/commonjs/components/Inspector/NetworkFilterModal.js +1 -1
  17. package/dist/commonjs/components/Inspector/NetworkTab.js +87 -85
  18. package/dist/commonjs/components/Inspector/PushCard.d.ts +4 -0
  19. package/dist/commonjs/components/Inspector/PushCard.js +89 -0
  20. package/dist/commonjs/components/Inspector/PushDetail.d.ts +4 -0
  21. package/dist/commonjs/components/Inspector/PushDetail.js +190 -0
  22. package/dist/commonjs/components/Inspector/PushTab.d.ts +3 -0
  23. package/dist/commonjs/components/Inspector/PushTab.js +45 -0
  24. package/dist/commonjs/components/Inspector/ReduxDetail.js +16 -13
  25. package/dist/commonjs/components/Inspector/ReduxTab.js +18 -28
  26. package/dist/commonjs/components/Inspector/SettingsPanel.js +253 -105
  27. package/dist/commonjs/components/Inspector/StorageTab.js +40 -40
  28. package/dist/commonjs/components/Inspector/TabBar.js +9 -8
  29. package/dist/commonjs/components/Inspector/UpdateAvailableModal.js +2 -2
  30. package/dist/commonjs/components/JsonViewer.js +77 -90
  31. package/dist/commonjs/components/LogCard.js +9 -6
  32. package/dist/commonjs/components/ModuleErrorBoundary.d.ts +24 -0
  33. package/dist/commonjs/components/ModuleErrorBoundary.js +33 -0
  34. package/dist/commonjs/components/NetworkIcons.d.ts +3 -3
  35. package/dist/commonjs/components/NetworkIcons.js +10 -6
  36. package/dist/commonjs/components/SegmentedTabs.d.ts +4 -1
  37. package/dist/commonjs/components/SegmentedTabs.js +12 -8
  38. package/dist/commonjs/components/ShareButton.d.ts +11 -0
  39. package/dist/commonjs/components/ShareButton.js +6 -0
  40. package/dist/commonjs/constants/version.d.ts +1 -1
  41. package/dist/commonjs/constants/version.js +1 -1
  42. package/dist/commonjs/customHooks/crashHandler.js +4 -4
  43. package/dist/commonjs/customHooks/networkLogger.js +1 -1
  44. package/dist/commonjs/customHooks/pushNotificationLogger.d.ts +19 -0
  45. package/dist/commonjs/customHooks/pushNotificationLogger.js +1 -0
  46. package/dist/commonjs/helpers/memoryManager.d.ts +2 -1
  47. package/dist/commonjs/helpers/memoryManager.js +1 -1
  48. package/dist/commonjs/helpers/settingsStore.d.ts +1 -0
  49. package/dist/commonjs/helpers/settingsStore.js +1 -1
  50. package/dist/commonjs/helpers/shareFormatter.d.ts +13 -0
  51. package/dist/commonjs/helpers/shareFormatter.js +7 -0
  52. package/dist/commonjs/i18n/locales/en.json +1 -1
  53. package/dist/commonjs/index.d.ts +5 -2
  54. package/dist/commonjs/index.js +4 -4
  55. package/dist/commonjs/push.d.ts +4 -0
  56. package/dist/commonjs/push.js +1 -0
  57. package/dist/commonjs/types/enums.d.ts +30 -0
  58. package/dist/commonjs/types/enums.js +1 -1
  59. package/dist/commonjs/types/index.d.ts +10 -0
  60. package/dist/commonjs/types/interfaces.d.ts +63 -7
  61. package/dist/esm/components/AnalyticsDetail.js +28 -25
  62. package/dist/esm/components/AppHeaderLogo.js +5 -7
  63. package/dist/esm/components/Inspector/AnalyticsFilterModal.js +14 -14
  64. package/dist/esm/components/Inspector/AnalyticsTab.js +36 -40
  65. package/dist/esm/components/Inspector/ConsoleTab.js +52 -55
  66. package/dist/esm/components/Inspector/CrashDetail.js +11 -10
  67. package/dist/esm/components/Inspector/CrashTab.js +23 -23
  68. package/dist/esm/components/Inspector/DebuggingTab.js +10 -10
  69. package/dist/esm/components/Inspector/DeviceInfoTab.js +208 -174
  70. package/dist/esm/components/Inspector/FabLauncher.js +41 -42
  71. package/dist/esm/components/Inspector/InspectorHeader.js +138 -115
  72. package/dist/esm/components/Inspector/LogDetail.js +24 -21
  73. package/dist/esm/components/Inspector/MainScreen.js +100 -62
  74. package/dist/esm/components/Inspector/NetworkDetail.js +88 -87
  75. package/dist/esm/components/Inspector/NetworkFilterModal.js +8 -8
  76. package/dist/esm/components/Inspector/NetworkTab.js +136 -134
  77. package/dist/esm/components/Inspector/PushCard.d.ts +4 -0
  78. package/dist/esm/components/Inspector/PushCard.js +89 -0
  79. package/dist/esm/components/Inspector/PushDetail.d.ts +4 -0
  80. package/dist/esm/components/Inspector/PushDetail.js +190 -0
  81. package/dist/esm/components/Inspector/PushTab.d.ts +3 -0
  82. package/dist/esm/components/Inspector/PushTab.js +45 -0
  83. package/dist/esm/components/Inspector/ReduxDetail.js +40 -37
  84. package/dist/esm/components/Inspector/ReduxTab.js +109 -119
  85. package/dist/esm/components/Inspector/SettingsPanel.js +406 -258
  86. package/dist/esm/components/Inspector/StorageTab.js +174 -174
  87. package/dist/esm/components/Inspector/TabBar.js +28 -27
  88. package/dist/esm/components/Inspector/UpdateAvailableModal.js +1 -1
  89. package/dist/esm/components/JsonViewer.js +101 -114
  90. package/dist/esm/components/LogCard.js +25 -22
  91. package/dist/esm/components/ModuleErrorBoundary.d.ts +24 -0
  92. package/dist/esm/components/ModuleErrorBoundary.js +33 -0
  93. package/dist/esm/components/NetworkIcons.d.ts +3 -3
  94. package/dist/esm/components/NetworkIcons.js +7 -3
  95. package/dist/esm/components/SegmentedTabs.d.ts +4 -1
  96. package/dist/esm/components/SegmentedTabs.js +12 -8
  97. package/dist/esm/components/ShareButton.d.ts +11 -0
  98. package/dist/esm/components/ShareButton.js +6 -0
  99. package/dist/esm/constants/version.d.ts +1 -1
  100. package/dist/esm/constants/version.js +1 -1
  101. package/dist/esm/customHooks/crashHandler.js +6 -6
  102. package/dist/esm/customHooks/networkLogger.js +1 -1
  103. package/dist/esm/customHooks/pushNotificationLogger.d.ts +19 -0
  104. package/dist/esm/customHooks/pushNotificationLogger.js +1 -0
  105. package/dist/esm/helpers/memoryManager.d.ts +2 -1
  106. package/dist/esm/helpers/memoryManager.js +1 -1
  107. package/dist/esm/helpers/settingsStore.d.ts +1 -0
  108. package/dist/esm/helpers/settingsStore.js +1 -1
  109. package/dist/esm/helpers/shareFormatter.d.ts +13 -0
  110. package/dist/esm/helpers/shareFormatter.js +7 -0
  111. package/dist/esm/i18n/locales/en.json +1 -1
  112. package/dist/esm/index.d.ts +5 -2
  113. package/dist/esm/index.js +7 -7
  114. package/dist/esm/push.d.ts +4 -0
  115. package/dist/esm/push.js +1 -0
  116. package/dist/esm/types/enums.d.ts +30 -0
  117. package/dist/esm/types/enums.js +1 -1
  118. package/dist/esm/types/index.d.ts +10 -0
  119. package/dist/esm/types/interfaces.d.ts +63 -7
  120. package/package.json +53 -10
  121. package/src/native/NativeInspector.ts +0 -1
  122. package/dist/commonjs/components/BrandSquareIcon.d.ts +0 -5
  123. package/dist/commonjs/components/BrandSquareIcon.js +0 -112
  124. package/dist/esm/components/BrandSquareIcon.d.ts +0 -5
  125. package/dist/esm/components/BrandSquareIcon.js +0 -112
@@ -1,183 +1,173 @@
1
- import Fe,{useCallback as ee,useMemo as N,useRef as We,useState as q}from"react";import{FlatList as Oe,Platform as te,Pressable as Ce,StyleSheet as Ee,Text as R,TextInput as Me,TouchableOpacity as Te,View as C}from"react-native";import{useTranslation as Ne}from"../../i18n";import{useInspector as $e}from"./InspectorContext";import Ue from"../TouchableScale";import Ge from"../AnimatedEntrance";import Ke from"../EmptyState";import Ze from"../EndOfListFooter";import Se from"../HighlightText";import{getSize as Re,openInVSCode as qe,getCleanCallerDisplay as Je}from"../../helpers";import F from"../../styles";import{AppColors as e}from"../../styles/AppColors";import{AppFonts as k}from"../../styles/AppFonts";import{getActionHistory as Qe,getReduxAutoRefresh as Xe,setReduxAutoRefresh as _e}from"../../customHooks/reduxLogger";import{TerminalIcon as Ie,SearchIcon as Ye,ClearIcon as Ct,LayersIcon as Tt,ClockIcon as St,SizeIcon as Rt,ForwardChevronIcon as It,SortArrowIcon as At,BoltIcon as G,AtomIcon as Vt,ScreenIcon as Bt,ListenerIcon as Ht,DocIcon as Lt,LoadingSpinnerIcon as Pt,CircleAlertIcon as Dt,TextAaIcon as Ft,HeaderPauseIcon as Wt}from"../NetworkIcons";const ke=L=>{switch(L){case"saga":return{label:"SAGA",renderIcon:(I,z=9)=><G color={I}size={z}/>,bg:e.purple100,text:e.brandPurple,border:e.purple200};case"thunk":return{label:"THUNK",renderIcon:(I,z=9)=><Vt color={I}size={z}/>,bg:e.amber100,text:e.amber800Warm,border:e.amber200};case"ui":return{label:"UI",renderIcon:(I,z=9)=><Bt color={I}size={z}/>,bg:e.sky100,text:e.sky600,border:e.sky400};case"listener":return{label:"LISTENER",renderIcon:(I,z=9)=><Ht color={I}size={z}/>,bg:e.teal100,text:e.teal700,border:e.teal400};default:return{label:"DIRECT",renderIcon:(I,z=9)=><G color={I}size={z}/>,bg:e.slate100,text:e.slate700,border:e.slate200}}},Ot=Fe.memo(()=>{const{t:L}=Ne(),{reduxState:I,reduxLastActionMap:z,reduxSearch:A,setReduxSearch:K,setSelectedReduxSlice:J}=$e(),ze=We(null),[Q,Ae]=q(100),[W,Ve]=q("latest"),[$,Be]=q(!Xe()),ve=ee(()=>{Be(t=>{const S=!t;return _e(!S),S})},[]),He=N(()=>Re(I),[I]),X=N(()=>Qe(),[z]),U=N(()=>!I||typeof I!="object"?[]:Object.keys(I).map(S=>{const T=I[S],v=Array.isArray(T),M=T&&typeof T=="object";let D="Primitive",H=0;v?(H=T.length,D=`Array [${H}]`):M?(H=Object.keys(T).length,D=`Object {${H}}`):typeof T<"u"&&(H=1,D=typeof T);let O="live",B;M&&(T.loading===!0||T.isLoading===!0||T.status==="loading"||T.status==="pending"?(O="loading",B="Loading"):T.error||T.hasError||T.status==="error"||T.status==="failed"?(O="error",B=typeof T.error=="string"?T.error:"Error"):H===0&&(O="empty",B="Empty"));const V=z[S],Pe=V?.updatedAt||0,De=X.filter(E=>!E.affectedSlices||E.affectedSlices.length===0?!0:E.affectedSlices.includes(S)).length;let _;if(V){let E;if(V.payload!==void 0&&V.payload!==null)try{if(typeof V.payload=="object"){const Y=Object.keys(V.payload);E=`{ ${Y.slice(0,3).join(", ")}${Y.length>3?"...":""} }`}else E=String(V.payload)}catch{}_={type:V.type,timestamp:V.timestamp,updatedAt:V.updatedAt,payloadPreview:E,originType:V.originType,callerFile:V.callerFile,callerLine:V.callerLine,callerCol:V.callerCol}}return{id:`slice-${S}`,name:S,keysCount:H,sizeStr:Re(T),typeLabel:D,status:O,statusMessage:B,timelineCount:De,lastAction:_,updatedAt:Pe}}),[I,z,X]),P=N(()=>{let t=U;if(A&&A.trim().length>0){const S=A.trim().toLowerCase().split(/\s+/).filter(Boolean);t=t.filter(T=>{const v=I?I[T.name]:null,M=[T.name||"",T.lastAction?.type||"",T.lastAction?.payloadPreview||"",T.lastAction?.originType||"",T.status||"",T.statusMessage||"",v?typeof v=="string"?v:JSON.stringify(v):""].join(" ").toLowerCase();return S.every(D=>M.includes(D))})}return[...t].sort((S,T)=>W==="latest"&&T.updatedAt!==S.updatedAt?T.updatedAt-S.updatedAt:S.name.localeCompare(T.name))},[U,A,W,I]),Z=N(()=>P.slice(0,Q),[P,Q]),j=N(()=>{const t=Object.values(z);return t.length===0?null:t.reduce((S,T)=>S?(T.updatedAt||0)>(S.updatedAt||0)?T:S:T,null)},[z]),Le=ee(({item:t,index:S})=>{const T=t.updatedAt>0&&Date.now()-t.updatedAt<5e3,v=t.status==="error"?e.errorColor:t.status==="loading"?e.warningIconGold:t.status==="empty"?e.grayTextWeak:e.greenColor,M=t.status==="error"?e.red100:t.status==="loading"?e.amber100:t.status==="empty"?e.grayBackground:e.emeraldBg,D=t.status==="error"?e.errorBorder:t.status==="loading"?e.amber200:t.status==="empty"?e.dividerColor:e.emeraldBorder,H=t.status==="error"?e.red600:t.status==="loading"?e.amber800Warm:t.status==="empty"?e.grayTextWeak:e.emerald700,O=t.lastAction?.callerFile?Je(t.lastAction.callerFile):null;return<Ge index={S}distance={8}>
2
- <C style={r.cardContainer}>
3
- <Ue onPress={()=>{J(t.name)}}style={[r.card,{borderLeftWidth:3.5,borderLeftColor:v,backgroundColor:t.status==="error"?e.errorCardBg:e.white},T&&r.cardRecentlyUpdated]}>
4
- <C style={r.cardBody}>
1
+ import ee,{useCallback as Be,useMemo as N,useRef as Pe,useState as te}from"react";import{FlatList as De,Platform as oe,Pressable as Ce,StyleSheet as Fe,Text as S,TextInput as Ee,TouchableOpacity as We,View as C}from"react-native";import{useTranslation as Oe}from"../../i18n";import{useInspector as Me}from"./InspectorContext";import Ne from"../TouchableScale";import $e from"../AnimatedEntrance";import Ue from"../EmptyState";import Ge from"../EndOfListFooter";import Te from"../HighlightText";import{getSize as Se,openInVSCode as _e,getCleanCallerDisplay as Ze}from"../../helpers";import O from"../../styles";import{AppColors as e}from"../../styles/AppColors";import{AppFonts as R}from"../../styles/AppFonts";import{getActionHistory as Ke}from"../../customHooks/reduxLogger";import{TerminalIcon as Ae,SearchIcon as Je,ClearIcon as Qe,LayersIcon as Xe,ClockIcon as Ye,SizeIcon as Ct,ForwardChevronIcon as Tt,SortArrowIcon as St,BoltIcon as U,AtomIcon as At,ScreenIcon as It,ListenerIcon as Rt,DocIcon as Vt,LoadingSpinnerIcon as Ht,CircleAlertIcon as Lt,TextAaIcon as Bt}from"../NetworkIcons";const Ie=B=>{switch(B){case"saga":return{label:"SAGA",renderIcon:(I,z=9)=><U color={I}size={z}/>,bg:e.purple100,text:e.brandPurple,border:e.purple200};case"thunk":return{label:"THUNK",renderIcon:(I,z=9)=><At color={I}size={z}/>,bg:e.amber100,text:e.amber800Warm,border:e.amber200};case"ui":return{label:"UI",renderIcon:(I,z=9)=><It color={I}size={z}/>,bg:e.sky100,text:e.sky600,border:e.sky400};case"listener":return{label:"LISTENER",renderIcon:(I,z=9)=><Rt color={I}size={z}/>,bg:e.teal100,text:e.teal700,border:e.teal400};default:return{label:"DIRECT",renderIcon:(I,z=9)=><U color={I}size={z}/>,bg:e.slate100,text:e.slate700,border:e.slate200}}},Re=50,ze=10,Pt=ee.memo(()=>{const{t:B}=Oe(),{reduxState:I,reduxLastActionMap:z,reduxSearch:k,setReduxSearch:G,setSelectedReduxSlice:Z}=Me(),K=Pe(null),[q,J]=te(Re),[P,ke]=te("latest");ee.useEffect(()=>{J(Re),K.current?.scrollToOffset({offset:0,animated:!1})},[k,P]);const Ve=N(()=>Se(I),[I]),Q=N(()=>Ke(),[z]),$=N(()=>!I||typeof I!="object"?[]:Object.keys(I).map(A=>{const T=I[A],H=Array.isArray(T),j=T&&typeof T=="object";let F="Primitive",L=0;H?(L=T.length,F=`Array [${L}]`):j?(L=Object.keys(T).length,F=`Object {${L}}`):typeof T<"u"&&(L=1,F=typeof T);let E="live",v;j&&(T.loading===!0||T.isLoading===!0||T.status==="loading"||T.status==="pending"?(E="loading",v="Loading"):T.error||T.hasError||T.status==="error"||T.status==="failed"?(E="error",v=typeof T.error=="string"?T.error:"Error"):L===0&&(E="empty",v="Empty"));const V=z[A],He=V?.updatedAt||0,Le=Q.filter(W=>!W.affectedSlices||W.affectedSlices.length===0?!0:W.affectedSlices.includes(A)).length;let X;if(V){let W;if(V.payload!==void 0&&V.payload!==null)try{if(typeof V.payload=="object"){const Y=Object.keys(V.payload);W=`{ ${Y.slice(0,3).join(", ")}${Y.length>3?"...":""} }`}else W=String(V.payload)}catch{}X={type:V.type,timestamp:V.timestamp,updatedAt:V.updatedAt,payloadPreview:W,originType:V.originType,callerFile:V.callerFile,callerLine:V.callerLine,callerCol:V.callerCol}}return{id:`slice-${A}`,name:A,keysCount:L,sizeStr:Se(T),typeLabel:F,status:E,statusMessage:v,timelineCount:Le,lastAction:X,updatedAt:He}}),[I,z,Q]),D=N(()=>{let t=$;if(k&&k.trim().length>0){const A=k.trim().toLowerCase().split(/\s+/).filter(Boolean);t=t.filter(T=>{const H=I?I[T.name]:null,j=[T.name||"",T.lastAction?.type||"",T.lastAction?.payloadPreview||"",T.lastAction?.originType||"",T.status||"",T.statusMessage||"",H?typeof H=="string"?H:JSON.stringify(H):""].join(" ").toLowerCase();return A.every(F=>j.includes(F))})}return[...t].sort((A,T)=>P==="latest"&&T.updatedAt!==A.updatedAt?T.updatedAt-A.updatedAt:A.name.localeCompare(T.name))},[$,k,P,I]),_=N(()=>D.slice(0,q),[D,q]),M=N(()=>{const t=Object.values(z);return t.length===0?null:t.reduce((A,T)=>A?(T.updatedAt||0)>(A.updatedAt||0)?T:A:T,null)},[z]),ve=Be(({item:t,index:A})=>{const T=t.updatedAt>0&&Date.now()-t.updatedAt<5e3,H=t.status==="error"?e.errorColor:t.status==="loading"?e.warningIconGold:t.status==="empty"?e.grayTextWeak:e.greenColor,j=t.status==="error"?e.red100:t.status==="loading"?e.amber100:t.status==="empty"?e.grayBackground:e.emeraldBg,F=t.status==="error"?e.errorBorder:t.status==="loading"?e.amber200:t.status==="empty"?e.dividerColor:e.emeraldBorder,L=t.status==="error"?e.red600:t.status==="loading"?e.amber800Warm:t.status==="empty"?e.grayTextWeak:e.emerald700,E=t.lastAction?.callerFile?Ze(t.lastAction.callerFile):null;return<$e index={A}distance={8}>
2
+ <C style={o.cardContainer}>
3
+ <Ne onPress={()=>{Z(t.name)}}style={[o.card,{borderLeftWidth:3.5,borderLeftColor:H,backgroundColor:t.status==="error"?e.errorCardBg:e.white},T&&o.cardRecentlyUpdated]}>
4
+ <C style={o.cardBody}>
5
5
 
6
- <C style={r.cardHeaderRow}>
7
- <C style={r.cardHeaderLeft}>
8
- <R style={r.serialNumber}>#{S+1}</R>
9
- <C style={[r.methodBadge,{backgroundColor:e.violet600}]}>
10
- <R style={r.methodBadgeText}>REDUX</R>
6
+ <C style={o.cardHeaderRow}>
7
+ <C style={o.cardHeaderLeft}>
8
+ <S style={o.serialNumber}>#{A+1}</S>
9
+ <C style={[o.methodBadge,{backgroundColor:e.violet600}]}>
10
+ <S style={o.methodBadgeText}>REDUX</S>
11
11
  </C>
12
- <C style={[r.chip,{backgroundColor:`${e.violet600}14`,borderColor:`${e.violet600}2E`}]}>
13
- <R style={[r.chipText,{color:e.violet600}]}>
12
+ <C style={[o.chip,{backgroundColor:`${e.violet600}14`,borderColor:`${e.violet600}2E`}]}>
13
+ <S style={[o.chipText,{color:e.violet600}]}>
14
14
  {t.typeLabel.toUpperCase()}
15
- </R>
15
+ </S>
16
16
  </C>
17
17
 
18
- {t.lastAction?.originType&&(()=>{const B=ke(t.lastAction.originType);return<C style={[r.chip,{backgroundColor:B.bg,borderColor:B.border}]}>
19
- {B.renderIcon(B.text,8.5)}
20
- <R style={[r.chipText,{color:B.text}]}>
21
- {B.label}
22
- </R>
18
+ {t.lastAction?.originType&&(()=>{const v=Ie(t.lastAction.originType);return<C style={[o.chip,{backgroundColor:v.bg,borderColor:v.border}]}>
19
+ {v.renderIcon(v.text,8.5)}
20
+ <S style={[o.chipText,{color:v.text}]}>
21
+ {v.label}
22
+ </S>
23
23
  </C>})()}
24
24
  </C>
25
25
 
26
- <C style={r.cardHeaderRight}>
27
- <C style={[r.statusPill,{backgroundColor:M,borderColor:D}]}>
28
- {t.status==="loading"?<Pt color={e.amber800Warm}size={10}/>:t.status==="error"?<Dt color={e.red600}size={10}/>:t.status==="empty"?null:<C style={r.liveDot}/>}
29
- <R style={[r.statusPillText,{color:H}]}>
26
+ <C style={o.cardHeaderRight}>
27
+ <C style={[o.statusPill,{backgroundColor:j,borderColor:F}]}>
28
+ {t.status==="loading"?<Ht color={e.amber800Warm}size={10}/>:t.status==="error"?<Lt color={e.red600}size={10}/>:t.status==="empty"?null:<C style={o.liveDot}/>}
29
+ <S style={[o.statusPillText,{color:L}]}>
30
30
  {t.status==="loading"?"Loading":t.status==="error"?t.statusMessage||"Error":t.status==="empty"?"Empty":"Live"}
31
- </R>
31
+ </S>
32
32
  </C>
33
- <It color={e.grayTextWeak}size={13}/>
33
+ <Tt color={e.grayTextWeak}size={13}/>
34
34
  </C>
35
35
  </C>
36
36
 
37
37
 
38
- <C style={r.cardMainRow}>
39
- <C style={r.sliceNameRow}>
40
- <Se text={t.name}search={A}style={r.sliceNameText}highlightStyle={r.highlight}numberOfLines={1}/>
41
- {t.timelineCount>0&&<C style={r.actionCountChip}>
42
- <G color={e.violet600}size={9}/>
43
- <R style={r.actionCountChipText}>
38
+ <C style={o.cardMainRow}>
39
+ <C style={o.sliceNameRow}>
40
+ <Te text={t.name}search={k}style={o.sliceNameText}highlightStyle={o.highlight}numberOfLines={1}/>
41
+ {t.timelineCount>0&&<C style={o.actionCountChip}>
42
+ <U color={e.violet600}size={9}/>
43
+ <S style={o.actionCountChipText}>
44
44
  {t.timelineCount}
45
- </R>
45
+ </S>
46
46
  </C>}
47
47
  </C>
48
- <C style={r.actionPreviewRow}>
49
- <Ie color={e.grayTextWeak}size={10}/>
50
- {t.lastAction?<Se text={t.lastAction.type+(t.lastAction.payloadPreview?` \xB7 ${t.lastAction.payloadPreview}`:"")}search={A}style={r.actionPreviewText}highlightStyle={r.highlight}numberOfLines={1}/>:<R style={r.actionPreviewEmptyText}numberOfLines={1}>
48
+ <C style={o.actionPreviewRow}>
49
+ <Ae color={e.grayTextWeak}size={10}/>
50
+ {t.lastAction?<Te text={t.lastAction.type+(t.lastAction.payloadPreview?` \xB7 ${t.lastAction.payloadPreview}`:"")}search={k}style={o.actionPreviewText}highlightStyle={o.highlight}numberOfLines={1}/>:<S style={o.actionPreviewEmptyText}numberOfLines={1}>
51
51
  Initial state (no actions dispatched yet)
52
- </R>}
52
+ </S>}
53
53
  </C>
54
54
  </C>
55
55
 
56
56
 
57
- <C style={r.cardFooterRow}>
58
- <C style={r.footerLeft}>
59
- <St color={e.grayTextWeak}size={10}/>
60
- <R style={r.footerTimestampText}numberOfLines={1}>
57
+ <C style={o.cardFooterRow}>
58
+ <C style={o.footerLeft}>
59
+ <Ye color={e.grayTextWeak}size={10}/>
60
+ <S style={o.footerTimestampText}numberOfLines={1}>
61
61
  {t.lastAction?.timestamp||"Initial state"}
62
- </R>
63
- {O&&<Ce onPress={()=>qe(t.lastAction.callerFile,t.lastAction.callerLine,t.lastAction.callerCol)}hitSlop={6}style={r.callerChip}>
64
- <Lt color={e.sky600}size={9}/>
65
- <R style={r.callerChipText}>
66
- {O.display}
67
- </R>
62
+ </S>
63
+ {E&&<Ce onPress={()=>_e(t.lastAction.callerFile,t.lastAction.callerLine,t.lastAction.callerCol)}hitSlop={6}style={o.callerChip}>
64
+ <Vt color={e.sky600}size={9}/>
65
+ <S style={o.callerChipText}>
66
+ {E.display}
67
+ </S>
68
68
  </Ce>}
69
69
  </C>
70
70
 
71
- <C style={r.footerRight}>
72
- <C style={r.metaStatChip}>
73
- <Rt color={e.violet600}size={9.5}/>
74
- <R style={r.metaStatText}>
71
+ <C style={o.footerRight}>
72
+ <C style={o.metaStatChip}>
73
+ <Ct color={e.violet600}size={9.5}/>
74
+ <S style={o.metaStatText}>
75
75
  {t.sizeStr}
76
- </R>
76
+ </S>
77
77
  </C>
78
- <C style={r.metaStatChip}>
79
- <Tt color={e.violet600}size={9.5}/>
80
- <R style={r.metaStatText}>
78
+ <C style={o.metaStatChip}>
79
+ <Xe color={e.violet600}size={9.5}/>
80
+ <S style={o.metaStatText}>
81
81
  {t.keysCount} keys
82
- </R>
82
+ </S>
83
83
  </C>
84
84
  </C>
85
85
  </C>
86
86
  </C>
87
87
 
88
88
 
89
- <C style={r.waterfallContainer}>
90
- <C style={[r.waterfallBar,{backgroundColor:v,width:T?"100%":"35%"}]}/>
89
+ <C style={o.waterfallContainer}>
90
+ <C style={[o.waterfallBar,{backgroundColor:H,width:T?"100%":"35%"}]}/>
91
91
  </C>
92
- </Ue>
92
+ </Ne>
93
93
  </C>
94
- </Ge>},[A,J]);return I?<C style={{flex:1,backgroundColor:e.grayBackground}}>
94
+ </$e>},[k,Z]);return I?<C style={{flex:1,backgroundColor:e.grayBackground}}>
95
95
 
96
- <C style={r.overviewCard}>
97
- <C style={r.statCol}>
98
- <R style={r.statHeading}>{L("redux.activeSlices","ACTIVE SLICES")}</R>
99
- <R style={r.statBigVal}>{U.length}</R>
96
+ <C style={o.overviewCard}>
97
+ <C style={o.statCol}>
98
+ <S style={o.statHeading}>{B("redux.activeSlices","ACTIVE SLICES")}</S>
99
+ <S style={o.statBigVal}>{$.length}</S>
100
100
  </C>
101
- <C style={r.statDivider}/>
102
- <C style={r.statCol}>
103
- <R style={r.statHeading}>{L("redux.totalState","TOTAL STATE")}</R>
104
- <R style={r.statBigVal}>{He}</R>
101
+ <C style={o.statDivider}/>
102
+ <C style={o.statCol}>
103
+ <S style={o.statHeading}>{B("redux.totalState","TOTAL STATE")}</S>
104
+ <S style={o.statBigVal}>{Ve}</S>
105
105
  </C>
106
- <C style={r.statDivider}/>
107
- <C style={[r.statCol,{flex:1.6}]}>
106
+ <C style={o.statDivider}/>
107
+ <C style={[o.statCol,{flex:1.6}]}>
108
108
  <C style={{flexDirection:"row",alignItems:"center",gap:4}}>
109
- <R style={r.statHeading}>{L("redux.lastActionHeader","LAST ACTION")}</R>
110
- {j?.originType&&(()=>{const t=ke(j.originType);return<C style={{flexDirection:"row",alignItems:"center",gap:2,backgroundColor:t.bg,paddingHorizontal:4,paddingVertical:1,borderRadius:3}}>
109
+ <S style={o.statHeading}>{B("redux.lastActionHeader","LAST ACTION")}</S>
110
+ {M?.originType&&(()=>{const t=Ie(M.originType);return<C style={{flexDirection:"row",alignItems:"center",gap:2,backgroundColor:t.bg,paddingHorizontal:4,paddingVertical:1,borderRadius:3}}>
111
111
  {t.renderIcon(t.text,8)}
112
- <R style={{fontFamily:k.interBold,fontSize:7.5,color:t.text}}>
112
+ <S style={{fontFamily:R.interBold,fontSize:7.5,color:t.text}}>
113
113
  {t.label}
114
- </R>
114
+ </S>
115
115
  </C>})()}
116
116
  </C>
117
- <R style={r.statLastAction}numberOfLines={1}>
118
- {j?j.type:"Initial"}
119
- </R>
120
- {j?.timestamp&&<R style={r.statLastTime}>
121
- {j.timestamp}
122
- </R>}
117
+ <S style={o.statLastAction}numberOfLines={1}>
118
+ {M?M.type:"Initial"}
119
+ </S>
120
+ {M?.timestamp&&<S style={o.statLastTime}>
121
+ {M.timestamp}
122
+ </S>}
123
123
  </C>
124
124
  </C>
125
125
 
126
126
 
127
- <C style={r.toolbarContainer}>
128
- <C style={r.searchRow}>
129
- <C style={F.searchContainer}>
130
- <Ye color={e.grayTextWeak}size={15}/>
131
- <Me accessible={!0}accessibilityRole="search"accessibilityLabel="Search Redux slices or actions"accessibilityHint="Type to filter state slices in real time"placeholder={L("redux.searchPlaceholder","Search state or actions...")}placeholderTextColor={e.grayTextWeak}value={A}onChangeText={K}style={F.searchInput}autoCorrect={!1}autoCapitalize="none"/>
132
- {A.length>0&&<C style={{flexDirection:"row",alignItems:"center",gap:4}}>
127
+ <C style={o.toolbarContainer}>
128
+ <C style={o.searchRow}>
129
+ <C style={O.searchContainer}>
130
+ <Je color={e.grayTextWeak}size={15}/>
131
+ <Ee accessible={!0}accessibilityRole="search"accessibilityLabel="Search Redux slices or actions"accessibilityHint="Type to filter state slices in real time"placeholder={B("redux.searchPlaceholder","Search state or actions...")}placeholderTextColor={e.grayTextWeak}value={k}onChangeText={G}style={O.searchInput}autoCorrect={!1}autoCapitalize="none"/>
132
+ {k.length>0&&<C style={{flexDirection:"row",alignItems:"center",gap:4}}>
133
133
  <C style={{backgroundColor:`${e.purple}20`,borderRadius:10,paddingHorizontal:6,paddingVertical:1.5}}>
134
- <R style={{color:e.purple,fontSize:9.5,fontFamily:k.interBold}}>
135
- {P.length}
136
- </R>
134
+ <S style={{color:e.purple,fontSize:9.5,fontFamily:R.interBold}}>
135
+ {D.length}
136
+ </S>
137
137
  </C>
138
- <Ce accessible={!0}accessibilityRole="button"accessibilityLabel="Clear search input"onPress={()=>K("")}hitSlop={10}>
139
- <Ct color={e.grayTextWeak}size={14}/>
138
+ <Ce accessible={!0}accessibilityRole="button"accessibilityLabel="Clear search input"onPress={()=>G("")}hitSlop={10}>
139
+ <Qe color={e.grayTextWeak}size={14}/>
140
140
  </Ce>
141
141
  </C>}
142
142
  </C>
143
143
 
144
144
 
145
- <Te accessible={!0}accessibilityRole="button"accessibilityLabel={$?"Resume live Redux updates":"Pause live Redux updates"}accessibilityHint="Toggles automatic recording of Redux state updates"style={[F.toolbarBtn,$&&{backgroundColor:`${e.darkOrange}1F`,borderColor:e.darkOrange}]}onPress={ve}hitSlop={6}>
146
- <Wt isPaused={$}color={$?e.darkOrange:e.grayTextStrong}size={16}/>
147
- </Te>
148
-
149
-
150
- <Te accessible={!0}accessibilityRole="button"accessibilityLabel={`Sort order: ${W==="latest"?"Recently updated first":"Alphabetical A to Z"}`}accessibilityHint="Switches sorting between recently updated and alphabetical"style={[F.toolbarBtn,W==="latest"&&{backgroundColor:`${e.brandPurple}1F`,borderColor:e.brandPurple}]}onPress={()=>Ve(t=>t==="latest"?"alpha":"latest")}hitSlop={6}>
151
- <At color={W==="latest"?e.brandPurple:e.grayTextStrong}size={16}/>
152
- </Te>
145
+ <We accessible={!0}accessibilityRole="button"accessibilityLabel={`Sort order: ${P==="latest"?"Recently updated first":"Alphabetical A to Z"}`}accessibilityHint="Switches sorting between recently updated and alphabetical"style={[O.toolbarBtn,P==="latest"&&{backgroundColor:`${e.brandPurple}1F`,borderColor:e.brandPurple}]}onPress={()=>ke(t=>t==="latest"?"alpha":"latest")}hitSlop={6}>
146
+ <St color={P==="latest"?e.brandPurple:e.grayTextStrong}size={16}/>
147
+ </We>
153
148
  </C>
154
149
 
155
- <C style={r.headerSubRow}>
156
- <R style={r.resultCount}>
157
- Showing {P.length} of {U.length} state slices
158
- </R>
159
- <C style={{flexDirection:"row",alignItems:"center",gap:8}}>
160
- {$&&<C style={r.pausedBannerPill}>
161
- <R style={r.pausedBannerText}>PAUSED</R>
162
- </C>}
163
- <C style={{flexDirection:"row",alignItems:"center",gap:4}}>
164
- {W==="latest"?<G color={e.brandPurple}size={11}/>:<Ft color={e.brandPurple}size={11}/>}
165
- <R style={r.sortLabel}>
166
- {W==="latest"?"Newest Updates First":"Alphabetical (A-Z)"}
167
- </R>
168
- </C>
150
+ <C style={o.headerSubRow}>
151
+ <S style={o.resultCount}>
152
+ Showing {D.length} of {$.length} state slices
153
+ </S>
154
+ <C style={{flexDirection:"row",alignItems:"center",gap:4}}>
155
+ {P==="latest"?<U color={e.brandPurple}size={11}/>:<Bt color={e.brandPurple}size={11}/>}
156
+ <S style={o.sortLabel}>
157
+ {P==="latest"?"Newest Updates First":"Alphabetical (A-Z)"}
158
+ </S>
169
159
  </C>
170
160
  </C>
171
161
  </C>
172
162
 
173
163
 
174
- <Oe ref={ze}data={Z}keyExtractor={t=>t.id}renderItem={Le}getItemLayout={(t,S)=>({length:126,offset:126*S,index:S})}initialNumToRender={12}maxToRenderPerBatch={8}windowSize={5}removeClippedSubviews={te.OS==="android"}renderToHardwareTextureAndroid={!0}ListEmptyComponent={<Ke isSearch={A.trim().length>0}searchQuery={A}onClearSearch={()=>K("")}customTitle={A.trim().length>0?"No Matching Slices":"No Redux State Detected"}customSub={A.trim().length>0?`No Redux slices match "${A}"`:"Attach the Redux store or dispatch actions to see state slices."}/>}ListFooterComponent={P.length>0?<Ze count={Z.length}totalCount={P.length}label="slices"hasMore={Z.length<P.length}onLoadMore={()=>Ae(t=>t+10)}/>:null}contentContainerStyle={[r.listContent,P.length===0&&{flexGrow:1}]}keyboardShouldPersistTaps="handled"/>
175
- </C>:<C style={F.emptyContainer}>
176
- <C style={F.emptyIconWrap}>
177
- <Ie color={e.purple}size={32}/>
164
+ <De ref={K}data={_}keyExtractor={t=>t.id}renderItem={ve}getItemLayout={(t,A)=>({length:126,offset:126*A,index:A})}initialNumToRender={12}maxToRenderPerBatch={8}windowSize={5}removeClippedSubviews={oe.OS==="android"}renderToHardwareTextureAndroid={!0}ListEmptyComponent={<Ue isSearch={k.trim().length>0}searchQuery={k}onClearSearch={()=>G("")}customTitle={k.trim().length>0?"No Matching Slices":"No Redux State Detected"}customSub={k.trim().length>0?`No Redux slices match "${k}"`:"Attach the Redux store or dispatch actions to see state slices."}/>}ListFooterComponent={D.length>0?<Ge count={_.length}totalCount={D.length}label="slices"loadMoreStep={ze}hasMore={_.length<D.length}onLoadMore={()=>J(t=>t+ze)}/>:null}contentContainerStyle={[o.listContent,D.length===0&&{flexGrow:1}]}keyboardShouldPersistTaps="handled"/>
165
+ </C>:<C style={O.emptyContainer}>
166
+ <C style={O.emptyIconWrap}>
167
+ <Ae color={e.purple}size={32}/>
178
168
  </C>
179
- <R style={F.emptyTitle}>{L("redux.noStoreConnected","No Redux Store Connected")}</R>
180
- <R style={F.emptySub}>
181
- {L("redux.connectStoreTip","Call connectReduxStore(store) or use inspectorReduxMiddleware at app initialization.")}
182
- </R>
183
- </C>}),r=Ee.create({overviewCard:{flexDirection:"row",alignItems:"center",backgroundColor:e.white,marginHorizontal:12,marginTop:10,borderRadius:12,padding:12,borderWidth:1,borderColor:e.dividerColor,shadowColor:e.primaryBlack,shadowOffset:{width:0,height:1},shadowOpacity:.03,shadowRadius:3,elevation:1},statCol:{flex:1},statDivider:{width:1,height:28,backgroundColor:e.dividerColor,marginHorizontal:8},statHeading:{fontFamily:k.interBold,fontSize:9,color:e.grayTextWeak,letterSpacing:.5},statBigVal:{fontFamily:k.interBold,fontSize:14,color:e.primaryBlack,marginTop:2},statLastAction:{fontFamily:k.interBold,fontSize:11,color:e.purple,marginTop:2},statLastTime:{fontFamily:k.interRegular,fontSize:9.5,color:e.grayTextWeak},toolbarContainer:{backgroundColor:e.white,borderBottomWidth:1,borderBottomColor:e.dividerColor,paddingHorizontal:12,paddingTop:8,paddingBottom:6,marginTop:8},searchRow:{flexDirection:"row",alignItems:"center",gap:8},headerSubRow:{flexDirection:"row",justifyContent:"space-between",alignItems:"center",marginTop:6,paddingHorizontal:2},resultCount:{fontFamily:k.interMedium,fontSize:11,color:e.grayTextWeak},sortLabel:{fontFamily:k.interMedium,fontSize:10.5,color:e.brandPurple},listContent:{paddingVertical:8,paddingBottom:36},cardContainer:{paddingHorizontal:10,paddingVertical:4,height:126},card:{backgroundColor:e.white,borderRadius:10,borderWidth:1,borderColor:e.grayBorderSecondary,shadowColor:e.shadowColorString,shadowOffset:{width:0,height:1},shadowOpacity:.05,shadowRadius:2.5,elevation:1.5,height:118,overflow:"hidden"},cardRecentlyUpdated:{borderColor:`${e.brandPurple}66`,backgroundColor:e.purpleTintBg},cardBody:{paddingHorizontal:12,paddingTop:9,paddingBottom:7,flex:1,justifyContent:"space-between"},cardHeaderRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",height:22,minHeight:22,maxHeight:22,gap:6},cardHeaderLeft:{flexDirection:"row",alignItems:"center",gap:6,flex:1,minWidth:0},cardHeaderRight:{flexDirection:"row",alignItems:"center",gap:6,flexShrink:0},serialNumber:{fontFamily:k.interBold,fontSize:10.5,lineHeight:13,color:e.grayTextWeak},methodBadge:{paddingHorizontal:5.5,paddingVertical:2,borderRadius:4,alignItems:"center",justifyContent:"center"},methodBadgeText:{fontFamily:k.interBold,color:e.white,fontSize:9,lineHeight:12,letterSpacing:.4},chip:{flexDirection:"row",alignItems:"center",gap:3,paddingHorizontal:5,paddingVertical:1.5,borderRadius:4,borderWidth:1},chipText:{fontFamily:k.interBold,fontSize:8.5,lineHeight:11,letterSpacing:.3},statusPill:{flexDirection:"row",alignItems:"center",gap:3.5,paddingHorizontal:6,paddingVertical:2,borderRadius:4,borderWidth:1},liveDot:{width:6,height:6,borderRadius:3,backgroundColor:e.emerald500},statusPillText:{fontFamily:k.interBold,fontSize:9.5,lineHeight:12},cardMainRow:{height:48,minHeight:48,maxHeight:48,justifyContent:"space-between",gap:3},sliceNameRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:6},sliceNameText:{fontFamily:k.interBold,fontSize:12.5,lineHeight:16,color:e.primaryBlack,flex:1},actionCountChip:{flexDirection:"row",alignItems:"center",gap:2.5,backgroundColor:`${e.violet600}14`,borderColor:`${e.violet600}2E`,borderWidth:1,paddingHorizontal:4.5,paddingVertical:1,borderRadius:3.5},actionCountChipText:{fontFamily:k.interBold,fontSize:8.5,lineHeight:11,color:e.violet600},actionPreviewRow:{flexDirection:"row",alignItems:"center",gap:4.5,minHeight:15},actionPreviewText:{fontFamily:te.select({ios:"Menlo",default:"monospace"}),fontSize:10,lineHeight:13,color:e.grayTextWeak,flex:1},actionPreviewEmptyText:{fontFamily:k.interRegular,fontSize:10,lineHeight:13,color:e.slate400,fontStyle:"italic",flex:1},cardFooterRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",height:18,minHeight:18,maxHeight:18,gap:6},footerLeft:{flexDirection:"row",alignItems:"center",gap:5,flex:1,minWidth:0,overflow:"hidden"},footerRight:{flexDirection:"row",alignItems:"center",gap:5,flexShrink:0},footerTimestampText:{fontFamily:k.interRegular,fontSize:10,lineHeight:13,color:e.slate400},callerChip:{flexDirection:"row",alignItems:"center",gap:2.5,backgroundColor:e.sky100,paddingHorizontal:4.5,paddingVertical:1,borderRadius:3,borderWidth:.5,borderColor:e.sky400,marginLeft:4},callerChipText:{fontFamily:k.interMedium,fontSize:8.5,lineHeight:11,color:e.sky600},metaStatChip:{flexDirection:"row",alignItems:"center",gap:3,backgroundColor:e.violetSoftBg,borderColor:e.violetSoftBorder,borderWidth:1,paddingHorizontal:5.5,paddingVertical:1.5,borderRadius:4},metaStatText:{fontFamily:k.interBold,color:e.violetSoftText,fontSize:9,lineHeight:12},waterfallContainer:{height:2.5,width:"100%",backgroundColor:e.graySurface,borderRadius:1.5,overflow:"hidden"},waterfallBar:{height:"100%",borderRadius:1.5},highlight:{backgroundColor:e.yellowHighlight,color:e.primaryBlack,borderRadius:2},pausedBannerPill:{backgroundColor:e.amber100,paddingHorizontal:6,paddingVertical:2,borderRadius:4,borderWidth:1,borderColor:e.amber200},pausedBannerText:{fontFamily:k.interBold,fontSize:9,color:e.amber800Warm,letterSpacing:.5}});export default Ot;
169
+ <S style={O.emptyTitle}>{B("redux.noStoreConnected","No Redux Store Connected")}</S>
170
+ <S style={O.emptySub}>
171
+ {B("redux.connectStoreTip","Call connectReduxStore(store) or use inspectorReduxMiddleware at app initialization.")}
172
+ </S>
173
+ </C>}),o=Fe.create({overviewCard:{flexDirection:"row",alignItems:"center",backgroundColor:e.white,marginHorizontal:12,marginTop:10,borderRadius:12,padding:12,borderWidth:1,borderColor:e.dividerColor,shadowColor:e.primaryBlack,shadowOffset:{width:0,height:1},shadowOpacity:.03,shadowRadius:3,elevation:1},statCol:{flex:1},statDivider:{width:1,height:28,backgroundColor:e.dividerColor,marginHorizontal:8},statHeading:{fontFamily:R.interBold,fontSize:9,color:e.grayTextWeak,letterSpacing:.5},statBigVal:{fontFamily:R.interBold,fontSize:14,color:e.primaryBlack,marginTop:2},statLastAction:{fontFamily:R.interBold,fontSize:11,color:e.purple,marginTop:2},statLastTime:{fontFamily:R.interRegular,fontSize:9.5,color:e.grayTextWeak},toolbarContainer:{backgroundColor:e.white,borderBottomWidth:1,borderBottomColor:e.dividerColor,paddingHorizontal:12,paddingTop:8,paddingBottom:6,marginTop:8},searchRow:{flexDirection:"row",alignItems:"center",gap:8},headerSubRow:{flexDirection:"row",justifyContent:"space-between",alignItems:"center",marginTop:6,paddingHorizontal:2},resultCount:{fontFamily:R.interMedium,fontSize:11,color:e.grayTextWeak},sortLabel:{fontFamily:R.interMedium,fontSize:10.5,color:e.brandPurple},listContent:{paddingVertical:8,paddingBottom:36},cardContainer:{paddingHorizontal:10,paddingVertical:4,height:126},card:{backgroundColor:e.white,borderRadius:10,borderWidth:1,borderColor:e.grayBorderSecondary,shadowColor:e.shadowColorString,shadowOffset:{width:0,height:1},shadowOpacity:.05,shadowRadius:2.5,elevation:1.5,height:118,overflow:"hidden"},cardRecentlyUpdated:{borderColor:`${e.brandPurple}66`,backgroundColor:e.purpleTintBg},cardBody:{paddingHorizontal:12,paddingTop:9,paddingBottom:7,flex:1,justifyContent:"space-between"},cardHeaderRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",height:22,minHeight:22,maxHeight:22,gap:6},cardHeaderLeft:{flexDirection:"row",alignItems:"center",gap:6,flex:1,minWidth:0},cardHeaderRight:{flexDirection:"row",alignItems:"center",gap:6,flexShrink:0},serialNumber:{fontFamily:R.interBold,fontSize:10.5,lineHeight:13,color:e.grayTextWeak},methodBadge:{paddingHorizontal:5.5,paddingVertical:2,borderRadius:4,alignItems:"center",justifyContent:"center"},methodBadgeText:{fontFamily:R.interBold,color:e.white,fontSize:9,lineHeight:12,letterSpacing:.4},chip:{flexDirection:"row",alignItems:"center",gap:3,paddingHorizontal:5,paddingVertical:1.5,borderRadius:4,borderWidth:1},chipText:{fontFamily:R.interBold,fontSize:8.5,lineHeight:11,letterSpacing:.3},statusPill:{flexDirection:"row",alignItems:"center",gap:3.5,paddingHorizontal:6,paddingVertical:2,borderRadius:4,borderWidth:1},liveDot:{width:6,height:6,borderRadius:3,backgroundColor:e.emerald500},statusPillText:{fontFamily:R.interBold,fontSize:9.5,lineHeight:12},cardMainRow:{height:48,minHeight:48,maxHeight:48,justifyContent:"space-between",gap:3},sliceNameRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:6},sliceNameText:{fontFamily:R.interBold,fontSize:12.5,lineHeight:16,color:e.primaryBlack,flex:1},actionCountChip:{flexDirection:"row",alignItems:"center",gap:2.5,backgroundColor:`${e.violet600}14`,borderColor:`${e.violet600}2E`,borderWidth:1,paddingHorizontal:4.5,paddingVertical:1,borderRadius:3.5},actionCountChipText:{fontFamily:R.interBold,fontSize:8.5,lineHeight:11,color:e.violet600},actionPreviewRow:{flexDirection:"row",alignItems:"center",gap:4.5,minHeight:15},actionPreviewText:{fontFamily:oe.select({ios:"Menlo",default:"monospace"}),fontSize:10,lineHeight:13,color:e.grayTextWeak,flex:1},actionPreviewEmptyText:{fontFamily:R.interRegular,fontSize:10,lineHeight:13,color:e.slate400,fontStyle:"italic",flex:1},cardFooterRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",height:18,minHeight:18,maxHeight:18,gap:6},footerLeft:{flexDirection:"row",alignItems:"center",gap:5,flex:1,minWidth:0,overflow:"hidden"},footerRight:{flexDirection:"row",alignItems:"center",gap:5,flexShrink:0},footerTimestampText:{fontFamily:R.interRegular,fontSize:10,lineHeight:13,color:e.slate400},callerChip:{flexDirection:"row",alignItems:"center",gap:2.5,backgroundColor:e.sky100,paddingHorizontal:4.5,paddingVertical:1,borderRadius:3,borderWidth:.5,borderColor:e.sky400,marginLeft:4},callerChipText:{fontFamily:R.interMedium,fontSize:8.5,lineHeight:11,color:e.sky600},metaStatChip:{flexDirection:"row",alignItems:"center",gap:3,backgroundColor:e.violetSoftBg,borderColor:e.violetSoftBorder,borderWidth:1,paddingHorizontal:5.5,paddingVertical:1.5,borderRadius:4},metaStatText:{fontFamily:R.interBold,color:e.violetSoftText,fontSize:9,lineHeight:12},waterfallContainer:{height:2.5,width:"100%",backgroundColor:e.graySurface,borderRadius:1.5,overflow:"hidden"},waterfallBar:{height:"100%",borderRadius:1.5},highlight:{backgroundColor:e.yellowHighlight,color:e.primaryBlack,borderRadius:2}});export default Pt;