@buoy-gg/network 7.0.41 → 7.0.43

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 (272) hide show
  1. package/README.md +11 -85
  2. package/lib/commonjs/index.js +1 -332
  3. package/lib/commonjs/index.web.js +1 -420
  4. package/lib/commonjs/network/components/DataViewer.web.js +1 -879
  5. package/lib/commonjs/network/components/NetworkCopyScreen.web.js +1 -48
  6. package/lib/commonjs/network/components/NetworkCopySettingsView.js +27 -755
  7. package/lib/commonjs/network/components/NetworkCopySettingsView.web.js +14 -1242
  8. package/lib/commonjs/network/components/NetworkDetailScreen.web.js +1 -101
  9. package/lib/commonjs/network/components/NetworkDetailStepper.js +1 -108
  10. package/lib/commonjs/network/components/NetworkDetailStepper.web.js +1 -298
  11. package/lib/commonjs/network/components/NetworkEventDetailView.js +15 -1130
  12. package/lib/commonjs/network/components/NetworkEventDetailView.web.js +15 -1484
  13. package/lib/commonjs/network/components/NetworkEventItemCompact.js +2 -401
  14. package/lib/commonjs/network/components/NetworkEventItemCompact.web.js +2 -820
  15. package/lib/commonjs/network/components/NetworkFilterScreen.web.js +1 -55
  16. package/lib/commonjs/network/components/NetworkFilterViewV3.js +1 -442
  17. package/lib/commonjs/network/components/NetworkFilterViewV3.web.js +1 -1310
  18. package/lib/commonjs/network/components/NetworkHeaderLive.js +1 -375
  19. package/lib/commonjs/network/components/NetworkHeaderLive.web.js +1 -623
  20. package/lib/commonjs/network/components/NetworkHeaderMenu.js +1 -190
  21. package/lib/commonjs/network/components/NetworkListScreen.js +1 -403
  22. package/lib/commonjs/network/components/NetworkListScreen.web.js +1 -624
  23. package/lib/commonjs/network/components/NetworkModal.js +1 -786
  24. package/lib/commonjs/network/components/NetworkNumberPrompt.js +1 -178
  25. package/lib/commonjs/network/components/NetworkNumberPrompt.web.js +1 -232
  26. package/lib/commonjs/network/components/NetworkOverrideEditor.js +1 -814
  27. package/lib/commonjs/network/components/NetworkOverrideEditor.web.js +1 -942
  28. package/lib/commonjs/network/components/NetworkOverrideHeaderButton.js +1 -107
  29. package/lib/commonjs/network/components/NetworkOverrideHeaderButton.web.js +1 -133
  30. package/lib/commonjs/network/components/NetworkOverridesButton.js +1 -90
  31. package/lib/commonjs/network/components/NetworkOverridesButton.web.js +1 -143
  32. package/lib/commonjs/network/components/NetworkOverridesScreen.js +1 -543
  33. package/lib/commonjs/network/components/NetworkOverridesScreen.web.js +1 -830
  34. package/lib/commonjs/network/components/NetworkSavedScreen.js +1 -226
  35. package/lib/commonjs/network/components/NetworkSavedScreen.web.js +1 -463
  36. package/lib/commonjs/network/components/NetworkUpgradeBanner.js +1 -76
  37. package/lib/commonjs/network/components/response-editor/Explorer.js +1 -973
  38. package/lib/commonjs/network/components/response-editor/Explorer.web.js +1 -1136
  39. package/lib/commonjs/network/components/response-editor/deleteNestedDataByPath.js +1 -56
  40. package/lib/commonjs/network/components/response-editor/editorContext.js +1 -33
  41. package/lib/commonjs/network/components/response-editor/updateNestedDataByPath.js +1 -61
  42. package/lib/commonjs/network/conditions/NetworkConditionsControl.js +1 -235
  43. package/lib/commonjs/network/conditions/NetworkConditionsControl.test.js +1 -136
  44. package/lib/commonjs/network/conditions/NetworkConditionsIcon.js +1 -33
  45. package/lib/commonjs/network/conditions/NetworkFloatingTool.js +1 -310
  46. package/lib/commonjs/network/conditions/NetworkFloatingTool.test.js +1 -219
  47. package/lib/commonjs/network/conditions/store.js +1 -75
  48. package/lib/commonjs/network/conditions/wait.js +1 -43
  49. package/lib/commonjs/network/conditions/xhr.js +1 -135
  50. package/lib/commonjs/network/hooks/useLiveNetworkEvent.js +1 -62
  51. package/lib/commonjs/network/hooks/useNetworkBadgeCounts.js +1 -83
  52. package/lib/commonjs/network/hooks/useNetworkEventList.js +1 -108
  53. package/lib/commonjs/network/hooks/useNetworkEvents.js +1 -318
  54. package/lib/commonjs/network/hooks/useNetworkHasMatches.js +1 -56
  55. package/lib/commonjs/network/hooks/useNetworkSaved.js +1 -38
  56. package/lib/commonjs/network/hooks/useNetworkSelection.js +1 -53
  57. package/lib/commonjs/network/hooks/useOverrideRules.js +1 -36
  58. package/lib/commonjs/network/hooks/useTickEveryMinute.js +1 -21
  59. package/lib/commonjs/network/overrides/applyToFetch.js +1 -80
  60. package/lib/commonjs/network/overrides/applyToXhr.js +2 -510
  61. package/lib/commonjs/network/overrides/engine.js +1 -93
  62. package/lib/commonjs/network/overrides/matchRule.js +1 -87
  63. package/lib/commonjs/network/overrides/overriddenRows.js +1 -37
  64. package/lib/commonjs/network/overrides/overrideRulesStore.js +1 -550
  65. package/lib/commonjs/network/overrides/presets.js +1 -70
  66. package/lib/commonjs/network/overrides/resolveOverride.js +1 -158
  67. package/lib/commonjs/network/overrides/types.js +1 -90
  68. package/lib/commonjs/network/sync/networkBodyResolver.js +1 -39
  69. package/lib/commonjs/network/sync/networkSyncAdapter.js +1 -882
  70. package/lib/commonjs/network/sync/overrideHonesty.release.test.js +1 -36
  71. package/lib/commonjs/network/types/index.js +1 -5
  72. package/lib/commonjs/network/utils/extractOperationName.js +1 -80
  73. package/lib/commonjs/network/utils/filterNetworkEvents.js +1 -96
  74. package/lib/commonjs/network/utils/formatGraphQLVariables.js +1 -219
  75. package/lib/commonjs/network/utils/formatting.js +1 -30
  76. package/lib/commonjs/network/utils/generateCurl.js +2 -71
  77. package/lib/commonjs/network/utils/generateNetworkCopyText.js +37 -166
  78. package/lib/commonjs/network/utils/httpCompletion.js +1 -37
  79. package/lib/commonjs/network/utils/networkEventStore.js +1 -411
  80. package/lib/commonjs/network/utils/networkListener.js +4 -1352
  81. package/lib/commonjs/network/utils/networkSavedStore.js +3 -577
  82. package/lib/commonjs/network/utils/networkSelectionStore.js +1 -193
  83. package/lib/commonjs/network/utils/realNow.js +1 -0
  84. package/lib/commonjs/network/utils/requestId.js +1 -16
  85. package/lib/commonjs/network/utils/resolveRequestUrl.js +1 -15
  86. package/lib/commonjs/network/utils/selectSavedEvents.js +1 -39
  87. package/lib/commonjs/network/utils/startNetworkCapture.js +1 -24
  88. package/lib/commonjs/network/utils/withPinnedFirst.js +1 -32
  89. package/lib/commonjs/preset.js +1 -93
  90. package/lib/module/index.js +1 -104
  91. package/lib/module/index.web.js +1 -82
  92. package/lib/module/network/components/DataViewer.web.js +1 -875
  93. package/lib/module/network/components/NetworkCopyScreen.web.js +1 -44
  94. package/lib/module/network/components/NetworkCopySettingsView.js +27 -750
  95. package/lib/module/network/components/NetworkCopySettingsView.web.js +14 -1237
  96. package/lib/module/network/components/NetworkDetailScreen.web.js +1 -97
  97. package/lib/module/network/components/NetworkDetailStepper.js +1 -104
  98. package/lib/module/network/components/NetworkDetailStepper.web.js +1 -296
  99. package/lib/module/network/components/NetworkEventDetailView.js +15 -1129
  100. package/lib/module/network/components/NetworkEventDetailView.web.js +15 -1482
  101. package/lib/module/network/components/NetworkEventItemCompact.js +2 -398
  102. package/lib/module/network/components/NetworkEventItemCompact.web.js +2 -818
  103. package/lib/module/network/components/NetworkFilterScreen.web.js +1 -51
  104. package/lib/module/network/components/NetworkFilterViewV3.js +1 -438
  105. package/lib/module/network/components/NetworkFilterViewV3.web.js +1 -1306
  106. package/lib/module/network/components/NetworkHeaderLive.js +1 -366
  107. package/lib/module/network/components/NetworkHeaderLive.web.js +1 -617
  108. package/lib/module/network/components/NetworkHeaderMenu.js +1 -184
  109. package/lib/module/network/components/NetworkListScreen.js +1 -399
  110. package/lib/module/network/components/NetworkListScreen.web.js +1 -622
  111. package/lib/module/network/components/NetworkModal.js +1 -781
  112. package/lib/module/network/components/NetworkNumberPrompt.js +1 -174
  113. package/lib/module/network/components/NetworkNumberPrompt.web.js +1 -230
  114. package/lib/module/network/components/NetworkOverrideEditor.js +1 -811
  115. package/lib/module/network/components/NetworkOverrideEditor.web.js +1 -939
  116. package/lib/module/network/components/NetworkOverrideHeaderButton.js +1 -104
  117. package/lib/module/network/components/NetworkOverrideHeaderButton.web.js +1 -131
  118. package/lib/module/network/components/NetworkOverridesButton.js +1 -87
  119. package/lib/module/network/components/NetworkOverridesButton.web.js +1 -141
  120. package/lib/module/network/components/NetworkOverridesScreen.js +1 -539
  121. package/lib/module/network/components/NetworkOverridesScreen.web.js +1 -826
  122. package/lib/module/network/components/NetworkSavedScreen.js +1 -222
  123. package/lib/module/network/components/NetworkSavedScreen.web.js +1 -461
  124. package/lib/module/network/components/NetworkUpgradeBanner.js +1 -72
  125. package/lib/module/network/components/response-editor/Explorer.js +1 -972
  126. package/lib/module/network/components/response-editor/Explorer.web.js +1 -1133
  127. package/lib/module/network/components/response-editor/deleteNestedDataByPath.js +1 -51
  128. package/lib/module/network/components/response-editor/editorContext.js +1 -29
  129. package/lib/module/network/components/response-editor/updateNestedDataByPath.js +1 -56
  130. package/lib/module/network/conditions/NetworkConditionsControl.js +1 -231
  131. package/lib/module/network/conditions/NetworkConditionsControl.test.js +1 -135
  132. package/lib/module/network/conditions/NetworkConditionsIcon.js +1 -29
  133. package/lib/module/network/conditions/NetworkFloatingTool.js +1 -304
  134. package/lib/module/network/conditions/NetworkFloatingTool.test.js +1 -218
  135. package/lib/module/network/conditions/store.js +1 -65
  136. package/lib/module/network/conditions/wait.js +1 -38
  137. package/lib/module/network/conditions/xhr.js +1 -131
  138. package/lib/module/network/hooks/useLiveNetworkEvent.js +1 -58
  139. package/lib/module/network/hooks/useNetworkBadgeCounts.js +1 -79
  140. package/lib/module/network/hooks/useNetworkEventList.js +1 -104
  141. package/lib/module/network/hooks/useNetworkEvents.js +1 -314
  142. package/lib/module/network/hooks/useNetworkHasMatches.js +1 -52
  143. package/lib/module/network/hooks/useNetworkSaved.js +1 -34
  144. package/lib/module/network/hooks/useNetworkSelection.js +1 -46
  145. package/lib/module/network/hooks/useOverrideRules.js +1 -32
  146. package/lib/module/network/hooks/useTickEveryMinute.js +1 -11
  147. package/lib/module/network/overrides/applyToFetch.js +1 -72
  148. package/lib/module/network/overrides/applyToXhr.js +2 -502
  149. package/lib/module/network/overrides/engine.js +1 -85
  150. package/lib/module/network/overrides/matchRule.js +1 -81
  151. package/lib/module/network/overrides/overriddenRows.js +1 -33
  152. package/lib/module/network/overrides/overrideRulesStore.js +1 -547
  153. package/lib/module/network/overrides/presets.js +1 -65
  154. package/lib/module/network/overrides/resolveOverride.js +1 -152
  155. package/lib/module/network/overrides/types.js +1 -86
  156. package/lib/module/network/sync/networkBodyResolver.js +1 -34
  157. package/lib/module/network/sync/networkSyncAdapter.js +1 -880
  158. package/lib/module/network/sync/overrideHonesty.release.test.js +1 -35
  159. package/lib/module/network/types/index.js +1 -3
  160. package/lib/module/network/utils/extractOperationName.js +1 -76
  161. package/lib/module/network/utils/filterNetworkEvents.js +1 -92
  162. package/lib/module/network/utils/formatGraphQLVariables.js +1 -213
  163. package/lib/module/network/utils/formatting.js +1 -9
  164. package/lib/module/network/utils/generateCurl.js +2 -67
  165. package/lib/module/network/utils/generateNetworkCopyText.js +37 -162
  166. package/lib/module/network/utils/httpCompletion.js +1 -32
  167. package/lib/module/network/utils/networkEventStore.js +1 -409
  168. package/lib/module/network/utils/networkListener.js +4 -1341
  169. package/lib/module/network/utils/networkSavedStore.js +3 -572
  170. package/lib/module/network/utils/networkSelectionStore.js +1 -188
  171. package/lib/module/network/utils/realNow.js +1 -0
  172. package/lib/module/network/utils/requestId.js +1 -12
  173. package/lib/module/network/utils/resolveRequestUrl.js +1 -11
  174. package/lib/module/network/utils/selectSavedEvents.js +1 -35
  175. package/lib/module/network/utils/startNetworkCapture.js +1 -21
  176. package/lib/module/network/utils/withPinnedFirst.js +1 -28
  177. package/lib/module/preset.js +1 -91
  178. package/lib/typescript/network/overrides/engine.d.ts +1 -1
  179. package/lib/typescript/network/overrides/matchRule.d.ts +1 -1
  180. package/lib/typescript/network/overrides/resolveOverride.d.ts +2 -2
  181. package/lib/typescript/network/overrides/types.d.ts +9 -0
  182. package/lib/typescript/network/utils/networkListener.d.ts +11 -0
  183. package/lib/typescript/network/utils/realNow.d.ts +18 -0
  184. package/lib/web/index.mjs +73 -74
  185. package/package.json +3 -6
  186. package/lib/typescript/index.d.ts.map +0 -1
  187. package/lib/typescript/index.web.d.ts.map +0 -1
  188. package/lib/typescript/network/components/DataViewer.web.d.ts.map +0 -1
  189. package/lib/typescript/network/components/NetworkCopyScreen.web.d.ts.map +0 -1
  190. package/lib/typescript/network/components/NetworkCopySettingsView.d.ts.map +0 -1
  191. package/lib/typescript/network/components/NetworkCopySettingsView.web.d.ts.map +0 -1
  192. package/lib/typescript/network/components/NetworkDetailScreen.web.d.ts.map +0 -1
  193. package/lib/typescript/network/components/NetworkDetailStepper.d.ts.map +0 -1
  194. package/lib/typescript/network/components/NetworkDetailStepper.web.d.ts.map +0 -1
  195. package/lib/typescript/network/components/NetworkEventDetailView.d.ts.map +0 -1
  196. package/lib/typescript/network/components/NetworkEventDetailView.web.d.ts.map +0 -1
  197. package/lib/typescript/network/components/NetworkEventItemCompact.d.ts.map +0 -1
  198. package/lib/typescript/network/components/NetworkEventItemCompact.web.d.ts.map +0 -1
  199. package/lib/typescript/network/components/NetworkFilterScreen.web.d.ts.map +0 -1
  200. package/lib/typescript/network/components/NetworkFilterViewV3.d.ts.map +0 -1
  201. package/lib/typescript/network/components/NetworkFilterViewV3.web.d.ts.map +0 -1
  202. package/lib/typescript/network/components/NetworkHeaderLive.d.ts.map +0 -1
  203. package/lib/typescript/network/components/NetworkHeaderLive.web.d.ts.map +0 -1
  204. package/lib/typescript/network/components/NetworkHeaderMenu.d.ts.map +0 -1
  205. package/lib/typescript/network/components/NetworkListScreen.d.ts.map +0 -1
  206. package/lib/typescript/network/components/NetworkListScreen.web.d.ts.map +0 -1
  207. package/lib/typescript/network/components/NetworkModal.d.ts.map +0 -1
  208. package/lib/typescript/network/components/NetworkNumberPrompt.d.ts.map +0 -1
  209. package/lib/typescript/network/components/NetworkNumberPrompt.web.d.ts.map +0 -1
  210. package/lib/typescript/network/components/NetworkOverrideEditor.d.ts.map +0 -1
  211. package/lib/typescript/network/components/NetworkOverrideEditor.web.d.ts.map +0 -1
  212. package/lib/typescript/network/components/NetworkOverrideHeaderButton.d.ts.map +0 -1
  213. package/lib/typescript/network/components/NetworkOverrideHeaderButton.web.d.ts.map +0 -1
  214. package/lib/typescript/network/components/NetworkOverridesButton.d.ts.map +0 -1
  215. package/lib/typescript/network/components/NetworkOverridesButton.web.d.ts.map +0 -1
  216. package/lib/typescript/network/components/NetworkOverridesScreen.d.ts.map +0 -1
  217. package/lib/typescript/network/components/NetworkOverridesScreen.web.d.ts.map +0 -1
  218. package/lib/typescript/network/components/NetworkSavedScreen.d.ts.map +0 -1
  219. package/lib/typescript/network/components/NetworkSavedScreen.web.d.ts.map +0 -1
  220. package/lib/typescript/network/components/NetworkUpgradeBanner.d.ts.map +0 -1
  221. package/lib/typescript/network/components/response-editor/Explorer.d.ts.map +0 -1
  222. package/lib/typescript/network/components/response-editor/Explorer.web.d.ts.map +0 -1
  223. package/lib/typescript/network/components/response-editor/deleteNestedDataByPath.d.ts.map +0 -1
  224. package/lib/typescript/network/components/response-editor/editorContext.d.ts.map +0 -1
  225. package/lib/typescript/network/components/response-editor/updateNestedDataByPath.d.ts.map +0 -1
  226. package/lib/typescript/network/conditions/NetworkConditionsControl.d.ts.map +0 -1
  227. package/lib/typescript/network/conditions/NetworkConditionsControl.test.d.ts.map +0 -1
  228. package/lib/typescript/network/conditions/NetworkConditionsIcon.d.ts.map +0 -1
  229. package/lib/typescript/network/conditions/NetworkFloatingTool.d.ts.map +0 -1
  230. package/lib/typescript/network/conditions/NetworkFloatingTool.test.d.ts.map +0 -1
  231. package/lib/typescript/network/conditions/store.d.ts.map +0 -1
  232. package/lib/typescript/network/conditions/wait.d.ts.map +0 -1
  233. package/lib/typescript/network/conditions/xhr.d.ts.map +0 -1
  234. package/lib/typescript/network/hooks/useLiveNetworkEvent.d.ts.map +0 -1
  235. package/lib/typescript/network/hooks/useNetworkBadgeCounts.d.ts.map +0 -1
  236. package/lib/typescript/network/hooks/useNetworkEventList.d.ts.map +0 -1
  237. package/lib/typescript/network/hooks/useNetworkEvents.d.ts.map +0 -1
  238. package/lib/typescript/network/hooks/useNetworkHasMatches.d.ts.map +0 -1
  239. package/lib/typescript/network/hooks/useNetworkSaved.d.ts.map +0 -1
  240. package/lib/typescript/network/hooks/useNetworkSelection.d.ts.map +0 -1
  241. package/lib/typescript/network/hooks/useOverrideRules.d.ts.map +0 -1
  242. package/lib/typescript/network/hooks/useTickEveryMinute.d.ts.map +0 -1
  243. package/lib/typescript/network/overrides/applyToFetch.d.ts.map +0 -1
  244. package/lib/typescript/network/overrides/applyToXhr.d.ts.map +0 -1
  245. package/lib/typescript/network/overrides/engine.d.ts.map +0 -1
  246. package/lib/typescript/network/overrides/matchRule.d.ts.map +0 -1
  247. package/lib/typescript/network/overrides/overriddenRows.d.ts.map +0 -1
  248. package/lib/typescript/network/overrides/overrideRulesStore.d.ts.map +0 -1
  249. package/lib/typescript/network/overrides/presets.d.ts.map +0 -1
  250. package/lib/typescript/network/overrides/resolveOverride.d.ts.map +0 -1
  251. package/lib/typescript/network/overrides/types.d.ts.map +0 -1
  252. package/lib/typescript/network/sync/networkBodyResolver.d.ts.map +0 -1
  253. package/lib/typescript/network/sync/networkSyncAdapter.d.ts.map +0 -1
  254. package/lib/typescript/network/sync/overrideHonesty.release.test.d.ts.map +0 -1
  255. package/lib/typescript/network/types/index.d.ts.map +0 -1
  256. package/lib/typescript/network/utils/extractOperationName.d.ts.map +0 -1
  257. package/lib/typescript/network/utils/filterNetworkEvents.d.ts.map +0 -1
  258. package/lib/typescript/network/utils/formatGraphQLVariables.d.ts.map +0 -1
  259. package/lib/typescript/network/utils/formatting.d.ts.map +0 -1
  260. package/lib/typescript/network/utils/generateCurl.d.ts.map +0 -1
  261. package/lib/typescript/network/utils/generateNetworkCopyText.d.ts.map +0 -1
  262. package/lib/typescript/network/utils/httpCompletion.d.ts.map +0 -1
  263. package/lib/typescript/network/utils/networkEventStore.d.ts.map +0 -1
  264. package/lib/typescript/network/utils/networkListener.d.ts.map +0 -1
  265. package/lib/typescript/network/utils/networkSavedStore.d.ts.map +0 -1
  266. package/lib/typescript/network/utils/networkSelectionStore.d.ts.map +0 -1
  267. package/lib/typescript/network/utils/requestId.d.ts.map +0 -1
  268. package/lib/typescript/network/utils/resolveRequestUrl.d.ts.map +0 -1
  269. package/lib/typescript/network/utils/selectSavedEvents.d.ts.map +0 -1
  270. package/lib/typescript/network/utils/startNetworkCapture.d.ts.map +0 -1
  271. package/lib/typescript/network/utils/withPinnedFirst.d.ts.map +0 -1
  272. package/lib/typescript/preset.d.ts.map +0 -1
@@ -1,401 +1,2 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.NetworkEventItemCompact = void 0;
7
- var _react = require("react");
8
- var _reactNative = require("react-native");
9
- var _sharedUi = require("@buoy-gg/shared-ui");
10
- var _formatting = require("../utils/formatting");
11
- var _useTickEveryMinute = require("../hooks/useTickEveryMinute");
12
- var _formatGraphQLVariables = require("../utils/formatGraphQLVariables");
13
- var _jsxRuntime = require("react/jsx-runtime");
14
- // Get color based on status. Deliberately kept on the macOS semantic palette
15
- // (not the night tones) — the classic status colors read well on the night
16
- // rows and stay consistent with the status colors used elsewhere.
17
- function getStatusColor(status, error) {
18
- if (error) return _sharedUi.macOSColors.semantic.error;
19
- if (!status) return _sharedUi.macOSColors.semantic.warning;
20
- if (status >= 200 && status < 300) return _sharedUi.macOSColors.semantic.success;
21
- if (status >= 300 && status < 400) return _sharedUi.macOSColors.semantic.info;
22
- if (status >= 400) return _sharedUi.macOSColors.semantic.error;
23
- return _sharedUi.macOSColors.text.muted;
24
- }
25
-
26
- // Get content type badge with color
27
- function getContentTypeBadge(headers) {
28
- const contentType = headers?.["content-type"] || headers?.["Content-Type"] || "";
29
- if (contentType.includes("json")) return "JSON";
30
- if (contentType.includes("xml")) return "XML";
31
- if (contentType.includes("html")) return "HTML";
32
- if (contentType.includes("text")) return "TEXT";
33
- if (contentType.includes("image")) return "IMG";
34
- if (contentType.includes("video")) return "VIDEO";
35
- if (contentType.includes("audio")) return "AUDIO";
36
- if (contentType.includes("form")) return "FORM";
37
- return null;
38
- }
39
-
40
- /**
41
- * The transport chip (`fetch` / `GQL` / `gRPC` / `XHR`), one brand colour each.
42
- */
43
- function getClientChipColors(requestClient) {
44
- switch (requestClient) {
45
- case "fetch":
46
- return {
47
- backgroundColor: "rgba(74, 144, 226, 0.15)",
48
- color: "#4A90E2"
49
- };
50
- case "graphql":
51
- return {
52
- backgroundColor: "rgba(229, 53, 171, 0.15)",
53
- color: "#E535AB"
54
- };
55
- case "grpc-web":
56
- return {
57
- backgroundColor: "rgba(16, 185, 129, 0.15)",
58
- color: "#10B981"
59
- };
60
- case "xhr":
61
- return {
62
- backgroundColor: "rgba(245, 158, 11, 0.15)",
63
- color: "#F59E0B"
64
- };
65
- default:
66
- return {
67
- backgroundColor: "rgba(147, 51, 234, 0.15)",
68
- color: "#9333EA"
69
- };
70
- }
71
- }
72
-
73
- // Decomposed components following rule3 - Component Composition
74
-
75
- // Status indicator component - single responsibility
76
- function StatusIndicator({
77
- event,
78
- isPending,
79
- statusColor
80
- }) {
81
- if (isPending) {
82
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
83
- style: styles.pendingBadge,
84
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Clock, {
85
- size: 10,
86
- color: _sharedUi.night.color.warning
87
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
88
- style: styles.pendingText,
89
- children: "..."
90
- })]
91
- });
92
- }
93
- if (event.error) {
94
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
95
- style: styles.errorBadge,
96
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.AlertCircle, {
97
- size: 10,
98
- color: _sharedUi.night.color.danger
99
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
100
- style: styles.errorText,
101
- children: "ERR"
102
- })]
103
- });
104
- }
105
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
106
- style: styles.statusBadge,
107
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
108
- style: [styles.statusText, {
109
- color: statusColor
110
- }],
111
- children: String(event.status)
112
- })
113
- });
114
- }
115
-
116
- // Size indicators component - single responsibility
117
- function SizeIndicators({
118
- requestSize,
119
- responseSize
120
- }) {
121
- if (!requestSize && !responseSize) return null;
122
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
123
- style: styles.sizeRow,
124
- children: [requestSize ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
125
- style: styles.sizeItem,
126
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Upload, {
127
- size: 8,
128
- color: _sharedUi.night.color.info
129
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
130
- style: styles.sizeText,
131
- children: (0, _formatting.formatBytes)(requestSize)
132
- })]
133
- }) : null, responseSize ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
134
- style: styles.sizeItem,
135
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Download, {
136
- size: 8,
137
- color: _sharedUi.night.color.accent
138
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
139
- style: styles.sizeText,
140
- children: (0, _formatting.formatBytes)(responseSize)
141
- })]
142
- }) : null]
143
- });
144
- }
145
-
146
- /**
147
- * Compact list-row representation of a network event. Optimized for large lists with memoization
148
- * and periodic refresh via `useTickEveryMinute` to keep relative timestamps accurate.
149
- */
150
- /**
151
- * Sole tick-context consumer in the row (rule2: composition over memo) —
152
- * the periodic relative-timestamp tick re-renders ONLY this Text, not the
153
- * whole card. Profiling (tool-bench 2026-07-06): the tick accounted for
154
- * ~30 of 65 row renders (plus their SVG-icon churn) in a 12s recording.
155
- */
156
- function BottomRightTime({
157
- timestamp,
158
- duration
159
- }) {
160
- const tick = (0, _useTickEveryMinute.useTickEveryMinute)();
161
- const relativeTime = (0, _sharedUi.formatRelativeTime)(timestamp, tick);
162
- return duration ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
163
- style: styles.bottomRightText,
164
- children: [(0, _formatting.formatDuration)(duration), " ", relativeTime]
165
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
166
- style: styles.bottomRightText,
167
- children: relativeTime
168
- });
169
- }
170
- const NetworkEventItemCompact = exports.NetworkEventItemCompact = /*#__PURE__*/(0, _react.memo)(
171
- // Named function (not an arrow) so render-capture reports attribute row
172
- // renders to this component instead of a compiled anonymous name.
173
- function NetworkEventItemCompact({
174
- event,
175
- onPress,
176
- pinned = false,
177
- saved = false,
178
- overridden = false,
179
- onLongPress
180
- }) {
181
- const statusColor = getStatusColor(event.status, event.error);
182
- const isPending = !event.status && !event.error;
183
- const contentType = getContentTypeBadge(event.responseHeaders);
184
-
185
- // Format URL for display (max 2 lines)
186
- let displayUrl = event.path || event.url.replace(/^https?:\/\/[^/]+/, "");
187
-
188
- // If this is a GraphQL request, show operation name with variables using arrow notation
189
- // Matches React Query pattern: ["pokemon", "Sandshrew"] → "pokemon › Sandshrew"
190
- if (event.requestClient === "graphql") {
191
- if (event.operationName) {
192
- // Format: GetPokemon › Sandshrew (matches React Query pattern)
193
- displayUrl = (0, _formatGraphQLVariables.formatGraphQLDisplay)(event.operationName, event.graphqlVariables);
194
- } else {
195
- // If no operation name found, just remove the redundant /graphql path
196
- displayUrl = displayUrl.replace(/\/graphql[^?]*/, "/graphql");
197
- }
198
- } else if (event.operationName) {
199
- // For non-GraphQL requests with operation names (e.g., gRPC)
200
- displayUrl = `${displayUrl}\n(${event.operationName})`;
201
- }
202
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_sharedUi.DevToolsCard, {
203
- onPress: () => onPress(event),
204
- onLongPress: onLongPress ? () => onLongPress(event) : undefined,
205
- style: styles.cardWrapper,
206
- contentStyle: [styles.container, {
207
- borderLeftColor: statusColor
208
- }],
209
- testID: `buoy-network-row-${event.id}`,
210
- accessibilityLabel: `${event.method} ${event.path || event.url}`,
211
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
212
- style: styles.topRightContainer,
213
- children: [pinned ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Pin, {
214
- size: 10,
215
- active: true,
216
- color: _sharedUi.night.color.info
217
- }) : null, saved ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Bookmark, {
218
- size: 10,
219
- color: _sharedUi.night.color.accent
220
- }) : null, overridden || event.override ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.FlaskConical, {
221
- size: 10,
222
- color: _sharedUi.night.color.warning
223
- }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(StatusIndicator, {
224
- event: event,
225
- isPending: isPending,
226
- statusColor: statusColor
227
- }), event.requestClient ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
228
- style: [styles.topRightBadge, {
229
- backgroundColor: getClientChipColors(event.requestClient).backgroundColor
230
- }],
231
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
232
- style: [styles.clientText, {
233
- color: getClientChipColors(event.requestClient).color
234
- }],
235
- children: event.requestClient === "graphql" ? "GQL" : event.requestClient === "grpc-web" ? "gRPC" : event.requestClient === "xhr" ? "XHR" : event.requestClient
236
- })
237
- }) : null]
238
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
239
- style: styles.leftSection,
240
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.MethodBadge, {
241
- method: event.method,
242
- size: "small"
243
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(SizeIndicators, {
244
- requestSize: event.requestSize,
245
- responseSize: event.responseSize
246
- })]
247
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
248
- style: styles.middleSection,
249
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
250
- style: styles.urlText,
251
- numberOfLines: 2,
252
- children: displayUrl
253
- })
254
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
255
- style: styles.rightSection,
256
- children: [contentType ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.TypeBadge, {
257
- type: contentType,
258
- size: "small"
259
- }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ChevronRight, {
260
- size: 14,
261
- color: _sharedUi.night.color.textTertiary
262
- })]
263
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
264
- style: styles.bottomRightContainer,
265
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(BottomRightTime, {
266
- timestamp: event.timestamp,
267
- duration: event.duration
268
- })
269
- })]
270
- });
271
- });
272
-
273
- // Without this, render-capture reports attribute row renders to the
274
- // anonymous memo wrapper ("Memo"/"_c4") instead of the row.
275
- NetworkEventItemCompact.displayName = "NetworkEventItemCompact";
276
- const styles = _reactNative.StyleSheet.create({
277
- cardWrapper: {
278
- // Overrides DevToolsCard's own wrapper margin, so it has to opt into the
279
- // edge-to-edge chat layout too or the rows keep their gutter.
280
- marginHorizontal: 8
281
- },
282
- container: {
283
- flexDirection: "row",
284
- alignItems: "center",
285
- // Translucent instead of DevToolsCard's opaque fill, so the tool background
286
- // (see ToolBackground) reads THROUGH the list rather than only around it.
287
- // Same luminance contract as the old rgba(10,13,20,0.9) scrim (backing
288
- // stays ≤ ~45 under the catalogue's brightest scenes), re-based on the
289
- // night surface `#0C0C0C` so rows match the night cards.
290
- backgroundColor: "rgba(12, 12, 12, 0.9)",
291
- borderLeftWidth: 3,
292
- borderLeftColor: "transparent",
293
- // One hairline per row — the same value DevToolsCard's border uses.
294
- borderBottomWidth: 1
295
- },
296
- leftSection: {
297
- marginRight: 8,
298
- alignItems: "flex-start"
299
- },
300
- topRightContainer: {
301
- position: "absolute",
302
- top: 1,
303
- right: 1,
304
- flexDirection: "row",
305
- alignItems: "center",
306
- gap: 4
307
- },
308
- topRightBadge: {
309
- paddingHorizontal: 4,
310
- paddingVertical: 2,
311
- borderRadius: 4
312
- },
313
- middleSection: {
314
- flex: 1,
315
- justifyContent: "center",
316
- paddingRight: 8
317
- },
318
- urlText: {
319
- fontSize: 12,
320
- color: _sharedUi.night.color.text,
321
- lineHeight: 16,
322
- fontFamily: _sharedUi.monoFont
323
- },
324
- rightSection: {
325
- flexDirection: "row",
326
- alignItems: "center",
327
- gap: 6
328
- },
329
- bottomRightContainer: {
330
- position: "absolute",
331
- bottom: 4,
332
- right: 8
333
- },
334
- bottomRightText: {
335
- fontSize: 9,
336
- color: _sharedUi.night.color.textTertiary,
337
- fontFamily: _sharedUi.monoFont
338
- },
339
- statusBadge: {
340
- paddingHorizontal: 4,
341
- paddingVertical: 1,
342
- borderRadius: 3
343
- },
344
- statusText: {
345
- fontSize: 10,
346
- fontWeight: "600"
347
- },
348
- pendingBadge: {
349
- flexDirection: "row",
350
- alignItems: "center",
351
- gap: 2,
352
- paddingHorizontal: 4,
353
- paddingVertical: 1,
354
- backgroundColor: _sharedUi.night.color.warningSoft,
355
- borderRadius: 3
356
- },
357
- pendingText: {
358
- fontSize: 10,
359
- color: _sharedUi.night.color.warning,
360
- fontWeight: "600"
361
- },
362
- errorBadge: {
363
- flexDirection: "row",
364
- alignItems: "center",
365
- gap: 2,
366
- paddingHorizontal: 4,
367
- paddingVertical: 1,
368
- backgroundColor: _sharedUi.night.color.dangerSoft,
369
- borderRadius: 3
370
- },
371
- errorText: {
372
- fontSize: 10,
373
- color: _sharedUi.night.color.danger,
374
- fontWeight: "600"
375
- },
376
- durationText: {
377
- fontSize: 9,
378
- color: _sharedUi.night.color.textSecondary
379
- },
380
- sizeRow: {
381
- flexDirection: "row",
382
- gap: 4,
383
- marginTop: 4
384
- },
385
- sizeItem: {
386
- flexDirection: "row",
387
- alignItems: "center",
388
- gap: 2
389
- },
390
- sizeText: {
391
- fontSize: 8,
392
- color: _sharedUi.night.color.textSecondary,
393
- fontFamily: _sharedUi.monoFont
394
- },
395
- clientText: {
396
- fontSize: 8,
397
- fontWeight: "700",
398
- letterSpacing: 0.3,
399
- textTransform: "uppercase"
400
- }
401
- });
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.NetworkEventItemCompact=void 0;var _react=require("react");var _reactNative=require("react-native");var _sharedUi=require("@buoy-gg/shared-ui");var _formatting=require("../utils/formatting");var _useTickEveryMinute=require("../hooks/useTickEveryMinute");var _formatGraphQLVariables=require("../utils/formatGraphQLVariables");var _jsxRuntime=require("react/jsx-runtime");function getStatusColor(r,e){if(e)return _sharedUi.macOSColors.semantic.error;if(!r)return _sharedUi.macOSColors.semantic.warning;if(r>=200&&r<300)return _sharedUi.macOSColors.semantic.success;if(r>=300&&r<400)return _sharedUi.macOSColors.semantic.info;if(r>=400)return _sharedUi.macOSColors.semantic.error;return _sharedUi.macOSColors.text.muted}function getContentTypeBadge(r){const e=r?.["content-type"]||r?.["Content-Type"]||"";if(e.includes("json"))return"JSON";if(e.includes("xml"))return"XML";if(e.includes("html"))return"HTML";if(e.includes("text"))return"TEXT";if(e.includes("image"))return"IMG";if(e.includes("video"))return"VIDEO";if(e.includes("audio"))return"AUDIO";if(e.includes("form"))return"FORM";return null}function getClientChipColors(r){switch(r){case"fetch":return{backgroundColor:"rgba(74, 144, 226, 0.15)",color:"#4A90E2"};case"graphql":return{backgroundColor:"rgba(229, 53, 171, 0.15)",color:"#E535AB"};case"grpc-web":return{backgroundColor:"rgba(16, 185, 129, 0.15)",color:"#10B981"};case"xhr":return{backgroundColor:"rgba(245, 158, 11, 0.15)",color:"#F59E0B"};default:return{backgroundColor:"rgba(147, 51, 234, 0.15)",color:"#9333EA"}}}function StatusIndicator({event:r,isPending:e,statusColor:o}){if(e){return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.pendingBadge,children:[(0,_jsxRuntime.jsx)(_sharedUi.Clock,{size:10,color:_sharedUi.night.color.warning}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.pendingText,children:"..."})]})}if(r.error){return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.errorBadge,children:[(0,_jsxRuntime.jsx)(_sharedUi.AlertCircle,{size:10,color:_sharedUi.night.color.danger}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.errorText,children:"ERR"})]})}return(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.statusBadge,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.statusText,{color:o}],children:String(r.status)})})}function SizeIndicators({requestSize:r,responseSize:e}){if(!r&&!e)return null;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.sizeRow,children:[r?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.sizeItem,children:[(0,_jsxRuntime.jsx)(_sharedUi.Upload,{size:8,color:_sharedUi.night.color.info}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.sizeText,children:(0,_formatting.formatBytes)(r)})]}):null,e?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.sizeItem,children:[(0,_jsxRuntime.jsx)(_sharedUi.Download,{size:8,color:_sharedUi.night.color.accent}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.sizeText,children:(0,_formatting.formatBytes)(e)})]}):null]})}function BottomRightTime({timestamp:r,duration:e}){const o=(0,_useTickEveryMinute.useTickEveryMinute)();const i=(0,_sharedUi.formatRelativeTime)(r,o);return e?(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:styles.bottomRightText,children:[(0,_formatting.formatDuration)(e)," ",i]}):(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.bottomRightText,children:i})}const NetworkEventItemCompact=exports.NetworkEventItemCompact=(0,_react.memo)(function r({event:e,onPress:o,pinned:i=false,saved:s=false,overridden:c=false,onLongPress:n}){const l=getStatusColor(e.status,e.error);const d=!e.status&&!e.error;const a=getContentTypeBadge(e.responseHeaders);let t=e.path||e.url.replace(/^https?:\/\/[^/]+/,"");if(e.requestClient==="graphql"){if(e.operationName){t=(0,_formatGraphQLVariables.formatGraphQLDisplay)(e.operationName,e.graphqlVariables)}else{t=t.replace(/\/graphql[^?]*/,"/graphql")}}else if(e.operationName){t=`${t}
2
+ (${e.operationName})`}return(0,_jsxRuntime.jsxs)(_sharedUi.DevToolsCard,{onPress:()=>o(e),onLongPress:n?()=>n(e):void 0,style:styles.cardWrapper,contentStyle:[styles.container,{borderLeftColor:l}],testID:`buoy-network-row-${e.id}`,accessibilityLabel:`${e.method} ${e.path||e.url}`,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.topRightContainer,children:[i?(0,_jsxRuntime.jsx)(_sharedUi.Pin,{size:10,active:true,color:_sharedUi.night.color.info}):null,s?(0,_jsxRuntime.jsx)(_sharedUi.Bookmark,{size:10,color:_sharedUi.night.color.accent}):null,c||e.override?(0,_jsxRuntime.jsx)(_sharedUi.FlaskConical,{size:10,color:_sharedUi.night.color.warning}):null,(0,_jsxRuntime.jsx)(StatusIndicator,{event:e,isPending:d,statusColor:l}),e.requestClient?(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.topRightBadge,{backgroundColor:getClientChipColors(e.requestClient).backgroundColor}],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.clientText,{color:getClientChipColors(e.requestClient).color}],children:e.requestClient==="graphql"?"GQL":e.requestClient==="grpc-web"?"gRPC":e.requestClient==="xhr"?"XHR":e.requestClient})}):null]}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.leftSection,children:[(0,_jsxRuntime.jsx)(_sharedUi.MethodBadge,{method:e.method,size:"small"}),(0,_jsxRuntime.jsx)(SizeIndicators,{requestSize:e.requestSize,responseSize:e.responseSize})]}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.middleSection,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.urlText,numberOfLines:2,children:t})}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.rightSection,children:[a?(0,_jsxRuntime.jsx)(_sharedUi.TypeBadge,{type:a,size:"small"}):null,(0,_jsxRuntime.jsx)(_sharedUi.ChevronRight,{size:14,color:_sharedUi.night.color.textTertiary})]}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.bottomRightContainer,children:(0,_jsxRuntime.jsx)(BottomRightTime,{timestamp:e.timestamp,duration:e.duration})})]})});NetworkEventItemCompact.displayName="NetworkEventItemCompact";const styles=_reactNative.StyleSheet.create({cardWrapper:{marginHorizontal:8},container:{flexDirection:"row",alignItems:"center",backgroundColor:"rgba(12, 12, 12, 0.9)",borderLeftWidth:3,borderLeftColor:"transparent",borderBottomWidth:1},leftSection:{marginRight:8,alignItems:"flex-start"},topRightContainer:{position:"absolute",top:1,right:1,flexDirection:"row",alignItems:"center",gap:4},topRightBadge:{paddingHorizontal:4,paddingVertical:2,borderRadius:4},middleSection:{flex:1,justifyContent:"center",paddingRight:8},urlText:{fontSize:12,color:_sharedUi.night.color.text,lineHeight:16,fontFamily:_sharedUi.monoFont},rightSection:{flexDirection:"row",alignItems:"center",gap:6},bottomRightContainer:{position:"absolute",bottom:4,right:8},bottomRightText:{fontSize:9,color:_sharedUi.night.color.textTertiary,fontFamily:_sharedUi.monoFont},statusBadge:{paddingHorizontal:4,paddingVertical:1,borderRadius:3},statusText:{fontSize:10,fontWeight:"600"},pendingBadge:{flexDirection:"row",alignItems:"center",gap:2,paddingHorizontal:4,paddingVertical:1,backgroundColor:_sharedUi.night.color.warningSoft,borderRadius:3},pendingText:{fontSize:10,color:_sharedUi.night.color.warning,fontWeight:"600"},errorBadge:{flexDirection:"row",alignItems:"center",gap:2,paddingHorizontal:4,paddingVertical:1,backgroundColor:_sharedUi.night.color.dangerSoft,borderRadius:3},errorText:{fontSize:10,color:_sharedUi.night.color.danger,fontWeight:"600"},durationText:{fontSize:9,color:_sharedUi.night.color.textSecondary},sizeRow:{flexDirection:"row",gap:4,marginTop:4},sizeItem:{flexDirection:"row",alignItems:"center",gap:2},sizeText:{fontSize:8,color:_sharedUi.night.color.textSecondary,fontFamily:_sharedUi.monoFont},clientText:{fontSize:8,fontWeight:"700",letterSpacing:.3,textTransform:"uppercase"}});