@buoy-gg/images 7.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. package/LICENSE +58 -0
  2. package/README.md +58 -0
  3. package/lib/commonjs/capture/actions.js +227 -0
  4. package/lib/commonjs/capture/actions.js.map +1 -0
  5. package/lib/commonjs/capture/install.js +41 -0
  6. package/lib/commonjs/capture/install.js.map +1 -0
  7. package/lib/commonjs/capture/installExpoImage.js +99 -0
  8. package/lib/commonjs/capture/installExpoImage.js.map +1 -0
  9. package/lib/commonjs/capture/installRnImage.js +128 -0
  10. package/lib/commonjs/capture/installRnImage.js.map +1 -0
  11. package/lib/commonjs/capture/overrides.js +286 -0
  12. package/lib/commonjs/capture/overrides.js.map +1 -0
  13. package/lib/commonjs/capture/savings.js +193 -0
  14. package/lib/commonjs/capture/savings.js.map +1 -0
  15. package/lib/commonjs/capture/shared.js +367 -0
  16. package/lib/commonjs/capture/shared.js.map +1 -0
  17. package/lib/commonjs/components/ImageDetail.js +444 -0
  18. package/lib/commonjs/components/ImageDetail.js.map +1 -0
  19. package/lib/commonjs/components/ImageDetailFooter.js +232 -0
  20. package/lib/commonjs/components/ImageDetailFooter.js.map +1 -0
  21. package/lib/commonjs/components/ImageRow.js +164 -0
  22. package/lib/commonjs/components/ImageRow.js.map +1 -0
  23. package/lib/commonjs/components/ImagesHeader.js +63 -0
  24. package/lib/commonjs/components/ImagesHeader.js.map +1 -0
  25. package/lib/commonjs/components/ImagesIcon.js +59 -0
  26. package/lib/commonjs/components/ImagesIcon.js.map +1 -0
  27. package/lib/commonjs/components/ImagesListFooter.js +194 -0
  28. package/lib/commonjs/components/ImagesListFooter.js.map +1 -0
  29. package/lib/commonjs/components/ImagesModal.js +173 -0
  30. package/lib/commonjs/components/ImagesModal.js.map +1 -0
  31. package/lib/commonjs/components/ImagesRoot.js +24 -0
  32. package/lib/commonjs/components/ImagesRoot.js.map +1 -0
  33. package/lib/commonjs/components/InsightsBar.js +59 -0
  34. package/lib/commonjs/components/InsightsBar.js.map +1 -0
  35. package/lib/commonjs/export.js +81 -0
  36. package/lib/commonjs/export.js.map +1 -0
  37. package/lib/commonjs/format.js +117 -0
  38. package/lib/commonjs/format.js.map +1 -0
  39. package/lib/commonjs/hooks/useImageRecords.js +20 -0
  40. package/lib/commonjs/hooks/useImageRecords.js.map +1 -0
  41. package/lib/commonjs/index.js +236 -0
  42. package/lib/commonjs/index.js.map +1 -0
  43. package/lib/commonjs/package.json +1 -0
  44. package/lib/commonjs/preset.js +45 -0
  45. package/lib/commonjs/preset.js.map +1 -0
  46. package/lib/commonjs/register.js +19 -0
  47. package/lib/commonjs/register.js.map +1 -0
  48. package/lib/commonjs/state.js +54 -0
  49. package/lib/commonjs/state.js.map +1 -0
  50. package/lib/commonjs/store/imageEventStore.js +160 -0
  51. package/lib/commonjs/store/imageEventStore.js.map +1 -0
  52. package/lib/commonjs/store/insights.js +76 -0
  53. package/lib/commonjs/store/insights.js.map +1 -0
  54. package/lib/commonjs/sync/imagesSyncAdapter.js +315 -0
  55. package/lib/commonjs/sync/imagesSyncAdapter.js.map +1 -0
  56. package/lib/commonjs/types.js +2 -0
  57. package/lib/commonjs/types.js.map +1 -0
  58. package/lib/module/capture/actions.js +214 -0
  59. package/lib/module/capture/actions.js.map +1 -0
  60. package/lib/module/capture/install.js +36 -0
  61. package/lib/module/capture/install.js.map +1 -0
  62. package/lib/module/capture/installExpoImage.js +94 -0
  63. package/lib/module/capture/installExpoImage.js.map +1 -0
  64. package/lib/module/capture/installRnImage.js +122 -0
  65. package/lib/module/capture/installRnImage.js.map +1 -0
  66. package/lib/module/capture/overrides.js +269 -0
  67. package/lib/module/capture/overrides.js.map +1 -0
  68. package/lib/module/capture/savings.js +189 -0
  69. package/lib/module/capture/savings.js.map +1 -0
  70. package/lib/module/capture/shared.js +359 -0
  71. package/lib/module/capture/shared.js.map +1 -0
  72. package/lib/module/components/ImageDetail.js +440 -0
  73. package/lib/module/components/ImageDetail.js.map +1 -0
  74. package/lib/module/components/ImageDetailFooter.js +228 -0
  75. package/lib/module/components/ImageDetailFooter.js.map +1 -0
  76. package/lib/module/components/ImageRow.js +160 -0
  77. package/lib/module/components/ImageRow.js.map +1 -0
  78. package/lib/module/components/ImagesHeader.js +59 -0
  79. package/lib/module/components/ImagesHeader.js.map +1 -0
  80. package/lib/module/components/ImagesIcon.js +55 -0
  81. package/lib/module/components/ImagesIcon.js.map +1 -0
  82. package/lib/module/components/ImagesListFooter.js +190 -0
  83. package/lib/module/components/ImagesListFooter.js.map +1 -0
  84. package/lib/module/components/ImagesModal.js +169 -0
  85. package/lib/module/components/ImagesModal.js.map +1 -0
  86. package/lib/module/components/ImagesRoot.js +20 -0
  87. package/lib/module/components/ImagesRoot.js.map +1 -0
  88. package/lib/module/components/InsightsBar.js +55 -0
  89. package/lib/module/components/InsightsBar.js.map +1 -0
  90. package/lib/module/export.js +76 -0
  91. package/lib/module/export.js.map +1 -0
  92. package/lib/module/format.js +108 -0
  93. package/lib/module/format.js.map +1 -0
  94. package/lib/module/hooks/useImageRecords.js +16 -0
  95. package/lib/module/hooks/useImageRecords.js.map +1 -0
  96. package/lib/module/index.js +73 -0
  97. package/lib/module/index.js.map +1 -0
  98. package/lib/module/preset.js +40 -0
  99. package/lib/module/preset.js.map +1 -0
  100. package/lib/module/register.js +19 -0
  101. package/lib/module/register.js.map +1 -0
  102. package/lib/module/state.js +50 -0
  103. package/lib/module/state.js.map +1 -0
  104. package/lib/module/store/imageEventStore.js +146 -0
  105. package/lib/module/store/imageEventStore.js.map +1 -0
  106. package/lib/module/store/insights.js +71 -0
  107. package/lib/module/store/insights.js.map +1 -0
  108. package/lib/module/sync/imagesSyncAdapter.js +311 -0
  109. package/lib/module/sync/imagesSyncAdapter.js.map +1 -0
  110. package/lib/module/types.js +2 -0
  111. package/lib/module/types.js.map +1 -0
  112. package/lib/typescript/capture/actions.d.ts +49 -0
  113. package/lib/typescript/capture/actions.d.ts.map +1 -0
  114. package/lib/typescript/capture/install.d.ts +15 -0
  115. package/lib/typescript/capture/install.d.ts.map +1 -0
  116. package/lib/typescript/capture/installExpoImage.d.ts +23 -0
  117. package/lib/typescript/capture/installExpoImage.d.ts.map +1 -0
  118. package/lib/typescript/capture/installRnImage.d.ts +24 -0
  119. package/lib/typescript/capture/installRnImage.d.ts.map +1 -0
  120. package/lib/typescript/capture/overrides.d.ts +83 -0
  121. package/lib/typescript/capture/overrides.d.ts.map +1 -0
  122. package/lib/typescript/capture/savings.d.ts +37 -0
  123. package/lib/typescript/capture/savings.d.ts.map +1 -0
  124. package/lib/typescript/capture/shared.d.ts +61 -0
  125. package/lib/typescript/capture/shared.d.ts.map +1 -0
  126. package/lib/typescript/components/ImageDetail.d.ts +13 -0
  127. package/lib/typescript/components/ImageDetail.d.ts.map +1 -0
  128. package/lib/typescript/components/ImageDetailFooter.d.ts +19 -0
  129. package/lib/typescript/components/ImageDetailFooter.d.ts.map +1 -0
  130. package/lib/typescript/components/ImageRow.d.ts +15 -0
  131. package/lib/typescript/components/ImageRow.d.ts.map +1 -0
  132. package/lib/typescript/components/ImagesHeader.d.ts +25 -0
  133. package/lib/typescript/components/ImagesHeader.d.ts.map +1 -0
  134. package/lib/typescript/components/ImagesIcon.d.ts +13 -0
  135. package/lib/typescript/components/ImagesIcon.d.ts.map +1 -0
  136. package/lib/typescript/components/ImagesListFooter.d.ts +8 -0
  137. package/lib/typescript/components/ImagesListFooter.d.ts.map +1 -0
  138. package/lib/typescript/components/ImagesModal.d.ts +17 -0
  139. package/lib/typescript/components/ImagesModal.d.ts.map +1 -0
  140. package/lib/typescript/components/ImagesRoot.d.ts +11 -0
  141. package/lib/typescript/components/ImagesRoot.d.ts.map +1 -0
  142. package/lib/typescript/components/InsightsBar.d.ts +13 -0
  143. package/lib/typescript/components/InsightsBar.d.ts.map +1 -0
  144. package/lib/typescript/export.d.ts +12 -0
  145. package/lib/typescript/export.d.ts.map +1 -0
  146. package/lib/typescript/format.d.ts +26 -0
  147. package/lib/typescript/format.d.ts.map +1 -0
  148. package/lib/typescript/hooks/useImageRecords.d.ts +11 -0
  149. package/lib/typescript/hooks/useImageRecords.d.ts.map +1 -0
  150. package/lib/typescript/index.d.ts +33 -0
  151. package/lib/typescript/index.d.ts.map +1 -0
  152. package/lib/typescript/preset.d.ts +38 -0
  153. package/lib/typescript/preset.d.ts.map +1 -0
  154. package/lib/typescript/register.d.ts +15 -0
  155. package/lib/typescript/register.d.ts.map +1 -0
  156. package/lib/typescript/state.d.ts +54 -0
  157. package/lib/typescript/state.d.ts.map +1 -0
  158. package/lib/typescript/store/imageEventStore.d.ts +34 -0
  159. package/lib/typescript/store/imageEventStore.d.ts.map +1 -0
  160. package/lib/typescript/store/insights.d.ts +11 -0
  161. package/lib/typescript/store/insights.d.ts.map +1 -0
  162. package/lib/typescript/sync/imagesSyncAdapter.d.ts +205 -0
  163. package/lib/typescript/sync/imagesSyncAdapter.d.ts.map +1 -0
  164. package/lib/typescript/types.d.ts +121 -0
  165. package/lib/typescript/types.d.ts.map +1 -0
  166. package/package.json +67 -0
  167. package/register.d.ts +1 -0
  168. package/register.js +15 -0
  169. package/src/capture/actions.ts +206 -0
  170. package/src/capture/install.ts +36 -0
  171. package/src/capture/installExpoImage.ts +115 -0
  172. package/src/capture/installRnImage.tsx +133 -0
  173. package/src/capture/overrides.ts +282 -0
  174. package/src/capture/savings.ts +193 -0
  175. package/src/capture/shared.ts +387 -0
  176. package/src/components/ImageDetail.tsx +456 -0
  177. package/src/components/ImageDetailFooter.tsx +270 -0
  178. package/src/components/ImageRow.tsx +148 -0
  179. package/src/components/ImagesHeader.tsx +77 -0
  180. package/src/components/ImagesIcon.tsx +66 -0
  181. package/src/components/ImagesListFooter.tsx +193 -0
  182. package/src/components/ImagesModal.tsx +195 -0
  183. package/src/components/ImagesRoot.tsx +18 -0
  184. package/src/components/InsightsBar.tsx +51 -0
  185. package/src/export.ts +100 -0
  186. package/src/format.ts +85 -0
  187. package/src/hooks/useImageRecords.ts +24 -0
  188. package/src/index.tsx +108 -0
  189. package/src/preset.tsx +35 -0
  190. package/src/register.ts +17 -0
  191. package/src/state.ts +88 -0
  192. package/src/store/imageEventStore.ts +162 -0
  193. package/src/store/insights.ts +66 -0
  194. package/src/sync/imagesSyncAdapter.ts +261 -0
  195. package/src/types.ts +111 -0
@@ -0,0 +1,444 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ImageDetail = ImageDetail;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _sharedUi = require("@buoy-gg/shared-ui");
10
+ var _overrides = require("../capture/overrides");
11
+ var _savings = require("../capture/savings");
12
+ var _imageEventStore = require("../store/imageEventStore");
13
+ var _format = require("../format");
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
+ /**
16
+ * ImageDetail — full record view: preview, source, load timeline, dimensions
17
+ * with the oversize verdict + estimated decoded/wasted memory, cache verdict,
18
+ * and error details (including HTTP status/headers when the platform provides
19
+ * them). Cache actions live here too (expo-image global clears).
20
+ */
21
+
22
+ function Section({
23
+ title,
24
+ children
25
+ }) {
26
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
27
+ style: styles.section,
28
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
29
+ style: styles.sectionTitle,
30
+ children: title
31
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
32
+ style: styles.sectionBody,
33
+ children: children
34
+ })]
35
+ });
36
+ }
37
+ function Row({
38
+ label,
39
+ value,
40
+ color
41
+ }) {
42
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
43
+ style: styles.kvRow,
44
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
45
+ style: styles.kvLabel,
46
+ children: label
47
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
48
+ style: [styles.kvValue, color ? {
49
+ color
50
+ } : null],
51
+ selectable: true,
52
+ children: value
53
+ })]
54
+ });
55
+ }
56
+
57
+ /** expo-image global cache clears (no-ops if expo-image is absent). */
58
+ function clearExpoCache(kind) {
59
+ try {
60
+ const expo = require("expo-image");
61
+ if (kind === "memory") void expo.Image.clearMemoryCache();else void expo.Image.clearDiskCache();
62
+ } catch {
63
+ // expo-image not installed
64
+ }
65
+ }
66
+
67
+ /** Free-text source swap: test another URL/format/CDN param on the live view. */
68
+ function SwapUrlSection({
69
+ record
70
+ }) {
71
+ const [url, setUrl] = (0, _react.useState)(record.uri);
72
+ const trimmed = url.trim();
73
+ const canApply = record.mounted && trimmed.length > 0 && trimmed !== record.uri;
74
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Section, {
75
+ title: "SWAP SOURCE URL",
76
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
77
+ style: styles.urlInput,
78
+ value: url,
79
+ onChangeText: setUrl,
80
+ placeholder: "https://\u2026",
81
+ placeholderTextColor: _sharedUi.macOSColors.text.muted,
82
+ autoCapitalize: "none",
83
+ autoCorrect: false,
84
+ multiline: true
85
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
86
+ style: styles.actionsRow,
87
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
88
+ style: [styles.actionButton, !canApply && styles.actionDisabled],
89
+ disabled: !canApply,
90
+ onPress: () => (0, _overrides.setOverride)(record.id, {
91
+ source: {
92
+ type: "url",
93
+ uri: trimmed
94
+ },
95
+ label: "URL swapped"
96
+ }),
97
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
98
+ style: styles.actionText,
99
+ children: "Apply"
100
+ })
101
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
102
+ style: styles.actionButton,
103
+ onPress: () => setUrl(record.uri),
104
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
105
+ style: styles.actionText,
106
+ children: "Reset field"
107
+ })
108
+ })]
109
+ })]
110
+ });
111
+ }
112
+
113
+ /**
114
+ * Real, on-device savings proof: re-encode at displayed size as WebP via
115
+ * expo-image-manipulator, report actual bytes, offer an in-place preview.
116
+ */
117
+ function SavingsSection({
118
+ record
119
+ }) {
120
+ const [busy, setBusy] = (0, _react.useState)(false);
121
+ const [result, setResult] = (0, _react.useState)(null);
122
+ const run = () => {
123
+ setBusy(true);
124
+ (0, _savings.proveSavings)(record).then(setResult).catch(error => setResult({
125
+ ok: false,
126
+ message: String(error?.message ?? error)
127
+ })).finally(() => setBusy(false));
128
+ };
129
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Section, {
130
+ title: "PROVE SAVINGS (re-encode on device)",
131
+ children: result == null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
132
+ style: styles.actionsRow,
133
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
134
+ style: styles.actionButton,
135
+ onPress: run,
136
+ disabled: busy,
137
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
138
+ style: styles.actionText,
139
+ children: busy ? "Re-encoding…" : "Re-encode at displayed size (WebP)"
140
+ })
141
+ })
142
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
143
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
144
+ label: "Result",
145
+ value: result.message || (result.ok ? "done" : "failed"),
146
+ color: result.ok ? _sharedUi.macOSColors.semantic.success : _sharedUi.macOSColors.semantic.error
147
+ }), result.originalBytes != null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
148
+ label: "Original",
149
+ value: `${(0, _format.formatBytes)(result.originalBytes)} (${result.originalBytesSource})`
150
+ }) : null, result.optimizedBytes != null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
151
+ label: "Optimized",
152
+ value: `${(0, _format.formatBytes)(result.optimizedBytes)} — ${result.optimizedDims?.width}×${result.optimizedDims?.height} WebP`,
153
+ color: _sharedUi.macOSColors.semantic.success
154
+ }) : null, result.savedBytes != null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
155
+ label: "Saved",
156
+ value: `${(0, _format.formatBytes)(result.savedBytes)} (${result.savedPct}%)`,
157
+ color: _sharedUi.macOSColors.semantic.success
158
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
159
+ style: styles.actionsRow,
160
+ children: [result.ok && result.optimizedUri && record.mounted ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
161
+ style: styles.actionButton,
162
+ onPress: () => (0, _overrides.setOverride)(record.id, {
163
+ source: {
164
+ type: "url",
165
+ uri: result.optimizedUri
166
+ },
167
+ label: "Optimized preview"
168
+ }),
169
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
170
+ style: styles.actionText,
171
+ children: "Preview in place"
172
+ })
173
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
174
+ style: styles.actionButton,
175
+ onPress: run,
176
+ disabled: busy,
177
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
178
+ style: styles.actionText,
179
+ children: busy ? "Re-encoding…" : "Re-run"
180
+ })
181
+ })]
182
+ })]
183
+ })
184
+ });
185
+ }
186
+ function ImageDetail({
187
+ record
188
+ }) {
189
+ const verdict = (0, _format.sizeVerdict)(record);
190
+ const cache = (0, _format.cacheBadge)(record);
191
+ const needed = (0, _imageEventStore.neededPixels)(record);
192
+ const decoded = (0, _imageEventStore.estDecodedBytes)(record);
193
+ const wasted = (0, _imageEventStore.estWastedBytes)(record);
194
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.ScrollView, {
195
+ style: styles.container,
196
+ contentContainerStyle: styles.content,
197
+ children: [record.overrideLabel ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
198
+ style: styles.overrideBanner,
199
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
200
+ style: styles.overrideText,
201
+ children: ["Simulation active: ", record.overrideLabel, " \u2014 stats below describe the override, not the original source."]
202
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
203
+ onPress: () => (0, _overrides.clearOverride)(record.id),
204
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
205
+ style: styles.overrideRestore,
206
+ children: "RESTORE"
207
+ })
208
+ })]
209
+ }) : null, record.uri && record.sourceKind !== "data" ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
210
+ style: styles.previewBox,
211
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Image, {
212
+ testID: "buoy-internal-images-preview",
213
+ source: {
214
+ uri: record.uri
215
+ },
216
+ style: styles.preview,
217
+ resizeMode: "contain"
218
+ })
219
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsxs)(Section, {
220
+ title: "SOURCE",
221
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
222
+ label: "URI",
223
+ value: record.uri || "(none)"
224
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
225
+ label: "Kind",
226
+ value: record.sourceKind
227
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
228
+ label: "Library",
229
+ value: record.lib === "expo" ? "expo-image" : "RN <Image>"
230
+ }), record.hasAltText === false ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
231
+ label: "Alt text",
232
+ value: "missing \u2014 add alt/accessibilityLabel",
233
+ color: _sharedUi.macOSColors.semantic.warning
234
+ }) : null, record.mediaType != null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
235
+ label: "Media type",
236
+ value: String(record.mediaType)
237
+ }) : null, record.isAnimated != null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
238
+ label: "Animated",
239
+ value: record.isAnimated ? "yes" : "no"
240
+ }) : null]
241
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(Section, {
242
+ title: "LOAD",
243
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
244
+ label: "Status",
245
+ value: record.status,
246
+ color: record.status === "error" ? _sharedUi.macOSColors.semantic.error : record.status === "loaded" ? _sharedUi.macOSColors.semantic.success : _sharedUi.macOSColors.semantic.warning
247
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
248
+ label: "Duration",
249
+ value: (0, _format.formatMs)(record.durationMs)
250
+ }), record.displayedAt && record.loadedAt ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
251
+ label: "Decode \u2192 display",
252
+ value: (0, _format.formatMs)(Math.max(0, record.displayedAt - record.loadedAt))
253
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
254
+ label: "Cache",
255
+ value: `${cache.label}`,
256
+ color: cache.color
257
+ }), record.cacheVerdictSource ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
258
+ label: "Cache source",
259
+ value: record.cacheVerdictSource === "event" ? "reported by expo-image onLoad" : "Image.queryCache after load"
260
+ }) : null, record.progressSeen ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
261
+ label: "Downloaded",
262
+ value: record.bytesTotal ? `${(0, _format.formatBytes)(record.bytesLoaded ?? 0)} / ${(0, _format.formatBytes)(record.bytesTotal)}` : "network transfer observed"
263
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
264
+ label: "Load cycles",
265
+ value: String(record.loadCount)
266
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
267
+ label: "Still mounted",
268
+ value: record.mounted ? "yes" : "no"
269
+ })]
270
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(Section, {
271
+ title: "DIMENSIONS",
272
+ children: [record.intrinsic ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
273
+ label: "Decoded",
274
+ value: `${record.intrinsic.width}×${record.intrinsic.height} px`
275
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
276
+ label: "Decoded",
277
+ value: "unknown"
278
+ }), record.layout ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
279
+ label: "Displayed",
280
+ value: `${Math.round(record.layout.width)}×${Math.round(record.layout.height)} dp (needs ${needed ? `${needed.width}×${needed.height}` : "?"} px @${_reactNative.PixelRatio.get()}x)`
281
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
282
+ label: "Displayed",
283
+ value: "no layout yet"
284
+ }), verdict.label ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
285
+ label: "Verdict",
286
+ value: verdict.label,
287
+ color: verdict.color
288
+ }) : null, decoded > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
289
+ label: "Est. decoded memory",
290
+ value: (0, _format.formatBytes)(decoded)
291
+ }) : null, wasted > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
292
+ label: "Est. wasted",
293
+ value: `${(0, _format.formatBytes)(wasted)} — resize the source to ${needed ? `${needed.width}×${needed.height}` : "the displayed size"}`,
294
+ color: _sharedUi.macOSColors.semantic.warning
295
+ }) : null, (record.layoutShifts ?? 0) > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
296
+ label: "Layout shifts",
297
+ value: `${record.layoutShifts} — box resized after load; reserve explicit width/height`,
298
+ color: _sharedUi.macOSColors.semantic.warning
299
+ }) : null]
300
+ }), record.sourceKind === "network" || record.sourceKind === "asset" ? /*#__PURE__*/(0, _jsxRuntime.jsx)(SavingsSection, {
301
+ record: record
302
+ }, `savings-${record.id}`) : null, record.status === "error" ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(Section, {
303
+ title: "ERROR",
304
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
305
+ label: "Message",
306
+ value: record.error ?? "unknown",
307
+ color: _sharedUi.macOSColors.semantic.error
308
+ }), record.errorCode != null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
309
+ label: "HTTP status",
310
+ value: String(record.errorCode)
311
+ }) : null, record.errorHeaders ? Object.entries(record.errorHeaders).map(([k, v]) => /*#__PURE__*/(0, _jsxRuntime.jsx)(Row, {
312
+ label: k,
313
+ value: String(v)
314
+ }, k)) : null]
315
+ }) : null, record.sourceKind === "network" && record.mounted ? /*#__PURE__*/(0, _jsxRuntime.jsx)(SwapUrlSection, {
316
+ record: record
317
+ }, record.id) : null, record.lib === "expo" ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Section, {
318
+ title: "CACHE ACTIONS (expo-image, global)",
319
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
320
+ style: styles.actionsRow,
321
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
322
+ style: styles.actionButton,
323
+ onPress: () => clearExpoCache("memory"),
324
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
325
+ style: styles.actionText,
326
+ children: "Clear memory cache"
327
+ })
328
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
329
+ style: styles.actionButton,
330
+ onPress: () => clearExpoCache("disk"),
331
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
332
+ style: styles.actionText,
333
+ children: "Clear disk cache"
334
+ })
335
+ })]
336
+ })
337
+ }) : null]
338
+ });
339
+ }
340
+ const styles = _reactNative.StyleSheet.create({
341
+ container: {
342
+ flex: 1
343
+ },
344
+ content: {
345
+ padding: 12,
346
+ gap: 12
347
+ },
348
+ previewBox: {
349
+ height: 140,
350
+ borderRadius: 8,
351
+ backgroundColor: _sharedUi.macOSColors.background.input,
352
+ overflow: "hidden"
353
+ },
354
+ preview: {
355
+ width: "100%",
356
+ height: "100%"
357
+ },
358
+ section: {
359
+ gap: 6
360
+ },
361
+ sectionTitle: {
362
+ color: _sharedUi.macOSColors.text.muted,
363
+ fontSize: 10,
364
+ fontWeight: "700",
365
+ letterSpacing: 0.8
366
+ },
367
+ sectionBody: {
368
+ backgroundColor: _sharedUi.macOSColors.background.card,
369
+ borderRadius: 8,
370
+ borderWidth: _reactNative.StyleSheet.hairlineWidth,
371
+ borderColor: _sharedUi.macOSColors.border.default,
372
+ paddingHorizontal: 10,
373
+ paddingVertical: 4
374
+ },
375
+ kvRow: {
376
+ flexDirection: "row",
377
+ paddingVertical: 5,
378
+ gap: 12
379
+ },
380
+ kvLabel: {
381
+ color: _sharedUi.macOSColors.text.secondary,
382
+ fontSize: 11,
383
+ width: 110
384
+ },
385
+ kvValue: {
386
+ color: _sharedUi.macOSColors.text.primary,
387
+ fontSize: 11,
388
+ flex: 1
389
+ },
390
+ actionsRow: {
391
+ flexDirection: "row",
392
+ gap: 8,
393
+ paddingVertical: 8
394
+ },
395
+ actionButton: {
396
+ backgroundColor: _sharedUi.macOSColors.background.hover,
397
+ borderRadius: 6,
398
+ paddingHorizontal: 10,
399
+ paddingVertical: 6,
400
+ borderWidth: _reactNative.StyleSheet.hairlineWidth,
401
+ borderColor: _sharedUi.macOSColors.border.default
402
+ },
403
+ actionText: {
404
+ color: _sharedUi.macOSColors.text.primary,
405
+ fontSize: 11,
406
+ fontWeight: "600"
407
+ },
408
+ actionDisabled: {
409
+ opacity: 0.4
410
+ },
411
+ urlInput: {
412
+ color: _sharedUi.macOSColors.text.primary,
413
+ fontSize: 11,
414
+ fontFamily: "monospace",
415
+ backgroundColor: _sharedUi.macOSColors.background.input,
416
+ borderRadius: 6,
417
+ borderWidth: _reactNative.StyleSheet.hairlineWidth,
418
+ borderColor: _sharedUi.macOSColors.border.input,
419
+ paddingHorizontal: 8,
420
+ paddingVertical: 6,
421
+ marginTop: 8
422
+ },
423
+ overrideBanner: {
424
+ flexDirection: "row",
425
+ alignItems: "center",
426
+ gap: 10,
427
+ padding: 10,
428
+ borderRadius: 8,
429
+ backgroundColor: _sharedUi.macOSColors.semantic.warningBackground
430
+ },
431
+ overrideText: {
432
+ flex: 1,
433
+ color: _sharedUi.macOSColors.semantic.warning,
434
+ fontSize: 11,
435
+ lineHeight: 15
436
+ },
437
+ overrideRestore: {
438
+ color: _sharedUi.macOSColors.semantic.warning,
439
+ fontSize: 11,
440
+ fontWeight: "700",
441
+ letterSpacing: 0.5
442
+ }
443
+ });
444
+ //# sourceMappingURL=ImageDetail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_sharedUi","_overrides","_savings","_imageEventStore","_format","_jsxRuntime","Section","title","children","jsxs","View","style","styles","section","jsx","Text","sectionTitle","sectionBody","Row","label","value","color","kvRow","kvLabel","kvValue","selectable","clearExpoCache","kind","expo","Image","clearMemoryCache","clearDiskCache","SwapUrlSection","record","url","setUrl","useState","uri","trimmed","trim","canApply","mounted","length","TextInput","urlInput","onChangeText","placeholder","placeholderTextColor","macOSColors","text","muted","autoCapitalize","autoCorrect","multiline","actionsRow","TouchableOpacity","actionButton","actionDisabled","disabled","onPress","setOverride","id","source","type","actionText","SavingsSection","busy","setBusy","result","setResult","run","proveSavings","then","catch","error","ok","message","String","finally","Fragment","semantic","success","originalBytes","formatBytes","originalBytesSource","optimizedBytes","optimizedDims","width","height","savedBytes","savedPct","optimizedUri","ImageDetail","verdict","sizeVerdict","cache","cacheBadge","needed","neededPixels","decoded","estDecodedBytes","wasted","estWastedBytes","ScrollView","container","contentContainerStyle","content","overrideLabel","overrideBanner","overrideText","clearOverride","overrideRestore","sourceKind","previewBox","testID","preview","resizeMode","lib","hasAltText","warning","mediaType","isAnimated","status","formatMs","durationMs","displayedAt","loadedAt","Math","max","cacheVerdictSource","progressSeen","bytesTotal","bytesLoaded","loadCount","intrinsic","layout","round","PixelRatio","get","layoutShifts","errorCode","errorHeaders","Object","entries","map","k","v","StyleSheet","create","flex","padding","gap","borderRadius","backgroundColor","background","input","overflow","fontSize","fontWeight","letterSpacing","card","borderWidth","hairlineWidth","borderColor","border","default","paddingHorizontal","paddingVertical","flexDirection","secondary","primary","hover","opacity","fontFamily","marginTop","alignItems","warningBackground","lineHeight"],"sourceRoot":"../../../src","sources":["components/ImageDetail.tsx"],"mappings":"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","ignoreList":[]}