@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.
- package/LICENSE +58 -0
- package/README.md +58 -0
- package/lib/commonjs/capture/actions.js +227 -0
- package/lib/commonjs/capture/actions.js.map +1 -0
- package/lib/commonjs/capture/install.js +41 -0
- package/lib/commonjs/capture/install.js.map +1 -0
- package/lib/commonjs/capture/installExpoImage.js +99 -0
- package/lib/commonjs/capture/installExpoImage.js.map +1 -0
- package/lib/commonjs/capture/installRnImage.js +128 -0
- package/lib/commonjs/capture/installRnImage.js.map +1 -0
- package/lib/commonjs/capture/overrides.js +286 -0
- package/lib/commonjs/capture/overrides.js.map +1 -0
- package/lib/commonjs/capture/savings.js +193 -0
- package/lib/commonjs/capture/savings.js.map +1 -0
- package/lib/commonjs/capture/shared.js +367 -0
- package/lib/commonjs/capture/shared.js.map +1 -0
- package/lib/commonjs/components/ImageDetail.js +444 -0
- package/lib/commonjs/components/ImageDetail.js.map +1 -0
- package/lib/commonjs/components/ImageDetailFooter.js +232 -0
- package/lib/commonjs/components/ImageDetailFooter.js.map +1 -0
- package/lib/commonjs/components/ImageRow.js +164 -0
- package/lib/commonjs/components/ImageRow.js.map +1 -0
- package/lib/commonjs/components/ImagesHeader.js +63 -0
- package/lib/commonjs/components/ImagesHeader.js.map +1 -0
- package/lib/commonjs/components/ImagesIcon.js +59 -0
- package/lib/commonjs/components/ImagesIcon.js.map +1 -0
- package/lib/commonjs/components/ImagesListFooter.js +194 -0
- package/lib/commonjs/components/ImagesListFooter.js.map +1 -0
- package/lib/commonjs/components/ImagesModal.js +173 -0
- package/lib/commonjs/components/ImagesModal.js.map +1 -0
- package/lib/commonjs/components/ImagesRoot.js +24 -0
- package/lib/commonjs/components/ImagesRoot.js.map +1 -0
- package/lib/commonjs/components/InsightsBar.js +59 -0
- package/lib/commonjs/components/InsightsBar.js.map +1 -0
- package/lib/commonjs/export.js +81 -0
- package/lib/commonjs/export.js.map +1 -0
- package/lib/commonjs/format.js +117 -0
- package/lib/commonjs/format.js.map +1 -0
- package/lib/commonjs/hooks/useImageRecords.js +20 -0
- package/lib/commonjs/hooks/useImageRecords.js.map +1 -0
- package/lib/commonjs/index.js +236 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/preset.js +45 -0
- package/lib/commonjs/preset.js.map +1 -0
- package/lib/commonjs/register.js +19 -0
- package/lib/commonjs/register.js.map +1 -0
- package/lib/commonjs/state.js +54 -0
- package/lib/commonjs/state.js.map +1 -0
- package/lib/commonjs/store/imageEventStore.js +160 -0
- package/lib/commonjs/store/imageEventStore.js.map +1 -0
- package/lib/commonjs/store/insights.js +76 -0
- package/lib/commonjs/store/insights.js.map +1 -0
- package/lib/commonjs/sync/imagesSyncAdapter.js +315 -0
- package/lib/commonjs/sync/imagesSyncAdapter.js.map +1 -0
- package/lib/commonjs/types.js +2 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/module/capture/actions.js +214 -0
- package/lib/module/capture/actions.js.map +1 -0
- package/lib/module/capture/install.js +36 -0
- package/lib/module/capture/install.js.map +1 -0
- package/lib/module/capture/installExpoImage.js +94 -0
- package/lib/module/capture/installExpoImage.js.map +1 -0
- package/lib/module/capture/installRnImage.js +122 -0
- package/lib/module/capture/installRnImage.js.map +1 -0
- package/lib/module/capture/overrides.js +269 -0
- package/lib/module/capture/overrides.js.map +1 -0
- package/lib/module/capture/savings.js +189 -0
- package/lib/module/capture/savings.js.map +1 -0
- package/lib/module/capture/shared.js +359 -0
- package/lib/module/capture/shared.js.map +1 -0
- package/lib/module/components/ImageDetail.js +440 -0
- package/lib/module/components/ImageDetail.js.map +1 -0
- package/lib/module/components/ImageDetailFooter.js +228 -0
- package/lib/module/components/ImageDetailFooter.js.map +1 -0
- package/lib/module/components/ImageRow.js +160 -0
- package/lib/module/components/ImageRow.js.map +1 -0
- package/lib/module/components/ImagesHeader.js +59 -0
- package/lib/module/components/ImagesHeader.js.map +1 -0
- package/lib/module/components/ImagesIcon.js +55 -0
- package/lib/module/components/ImagesIcon.js.map +1 -0
- package/lib/module/components/ImagesListFooter.js +190 -0
- package/lib/module/components/ImagesListFooter.js.map +1 -0
- package/lib/module/components/ImagesModal.js +169 -0
- package/lib/module/components/ImagesModal.js.map +1 -0
- package/lib/module/components/ImagesRoot.js +20 -0
- package/lib/module/components/ImagesRoot.js.map +1 -0
- package/lib/module/components/InsightsBar.js +55 -0
- package/lib/module/components/InsightsBar.js.map +1 -0
- package/lib/module/export.js +76 -0
- package/lib/module/export.js.map +1 -0
- package/lib/module/format.js +108 -0
- package/lib/module/format.js.map +1 -0
- package/lib/module/hooks/useImageRecords.js +16 -0
- package/lib/module/hooks/useImageRecords.js.map +1 -0
- package/lib/module/index.js +73 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/preset.js +40 -0
- package/lib/module/preset.js.map +1 -0
- package/lib/module/register.js +19 -0
- package/lib/module/register.js.map +1 -0
- package/lib/module/state.js +50 -0
- package/lib/module/state.js.map +1 -0
- package/lib/module/store/imageEventStore.js +146 -0
- package/lib/module/store/imageEventStore.js.map +1 -0
- package/lib/module/store/insights.js +71 -0
- package/lib/module/store/insights.js.map +1 -0
- package/lib/module/sync/imagesSyncAdapter.js +311 -0
- package/lib/module/sync/imagesSyncAdapter.js.map +1 -0
- package/lib/module/types.js +2 -0
- package/lib/module/types.js.map +1 -0
- package/lib/typescript/capture/actions.d.ts +49 -0
- package/lib/typescript/capture/actions.d.ts.map +1 -0
- package/lib/typescript/capture/install.d.ts +15 -0
- package/lib/typescript/capture/install.d.ts.map +1 -0
- package/lib/typescript/capture/installExpoImage.d.ts +23 -0
- package/lib/typescript/capture/installExpoImage.d.ts.map +1 -0
- package/lib/typescript/capture/installRnImage.d.ts +24 -0
- package/lib/typescript/capture/installRnImage.d.ts.map +1 -0
- package/lib/typescript/capture/overrides.d.ts +83 -0
- package/lib/typescript/capture/overrides.d.ts.map +1 -0
- package/lib/typescript/capture/savings.d.ts +37 -0
- package/lib/typescript/capture/savings.d.ts.map +1 -0
- package/lib/typescript/capture/shared.d.ts +61 -0
- package/lib/typescript/capture/shared.d.ts.map +1 -0
- package/lib/typescript/components/ImageDetail.d.ts +13 -0
- package/lib/typescript/components/ImageDetail.d.ts.map +1 -0
- package/lib/typescript/components/ImageDetailFooter.d.ts +19 -0
- package/lib/typescript/components/ImageDetailFooter.d.ts.map +1 -0
- package/lib/typescript/components/ImageRow.d.ts +15 -0
- package/lib/typescript/components/ImageRow.d.ts.map +1 -0
- package/lib/typescript/components/ImagesHeader.d.ts +25 -0
- package/lib/typescript/components/ImagesHeader.d.ts.map +1 -0
- package/lib/typescript/components/ImagesIcon.d.ts +13 -0
- package/lib/typescript/components/ImagesIcon.d.ts.map +1 -0
- package/lib/typescript/components/ImagesListFooter.d.ts +8 -0
- package/lib/typescript/components/ImagesListFooter.d.ts.map +1 -0
- package/lib/typescript/components/ImagesModal.d.ts +17 -0
- package/lib/typescript/components/ImagesModal.d.ts.map +1 -0
- package/lib/typescript/components/ImagesRoot.d.ts +11 -0
- package/lib/typescript/components/ImagesRoot.d.ts.map +1 -0
- package/lib/typescript/components/InsightsBar.d.ts +13 -0
- package/lib/typescript/components/InsightsBar.d.ts.map +1 -0
- package/lib/typescript/export.d.ts +12 -0
- package/lib/typescript/export.d.ts.map +1 -0
- package/lib/typescript/format.d.ts +26 -0
- package/lib/typescript/format.d.ts.map +1 -0
- package/lib/typescript/hooks/useImageRecords.d.ts +11 -0
- package/lib/typescript/hooks/useImageRecords.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +33 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/preset.d.ts +38 -0
- package/lib/typescript/preset.d.ts.map +1 -0
- package/lib/typescript/register.d.ts +15 -0
- package/lib/typescript/register.d.ts.map +1 -0
- package/lib/typescript/state.d.ts +54 -0
- package/lib/typescript/state.d.ts.map +1 -0
- package/lib/typescript/store/imageEventStore.d.ts +34 -0
- package/lib/typescript/store/imageEventStore.d.ts.map +1 -0
- package/lib/typescript/store/insights.d.ts +11 -0
- package/lib/typescript/store/insights.d.ts.map +1 -0
- package/lib/typescript/sync/imagesSyncAdapter.d.ts +205 -0
- package/lib/typescript/sync/imagesSyncAdapter.d.ts.map +1 -0
- package/lib/typescript/types.d.ts +121 -0
- package/lib/typescript/types.d.ts.map +1 -0
- package/package.json +67 -0
- package/register.d.ts +1 -0
- package/register.js +15 -0
- package/src/capture/actions.ts +206 -0
- package/src/capture/install.ts +36 -0
- package/src/capture/installExpoImage.ts +115 -0
- package/src/capture/installRnImage.tsx +133 -0
- package/src/capture/overrides.ts +282 -0
- package/src/capture/savings.ts +193 -0
- package/src/capture/shared.ts +387 -0
- package/src/components/ImageDetail.tsx +456 -0
- package/src/components/ImageDetailFooter.tsx +270 -0
- package/src/components/ImageRow.tsx +148 -0
- package/src/components/ImagesHeader.tsx +77 -0
- package/src/components/ImagesIcon.tsx +66 -0
- package/src/components/ImagesListFooter.tsx +193 -0
- package/src/components/ImagesModal.tsx +195 -0
- package/src/components/ImagesRoot.tsx +18 -0
- package/src/components/InsightsBar.tsx +51 -0
- package/src/export.ts +100 -0
- package/src/format.ts +85 -0
- package/src/hooks/useImageRecords.ts +24 -0
- package/src/index.tsx +108 -0
- package/src/preset.tsx +35 -0
- package/src/register.ts +17 -0
- package/src/state.ts +88 -0
- package/src/store/imageEventStore.ts +162 -0
- package/src/store/insights.ts +66 -0
- package/src/sync/imagesSyncAdapter.ts +261 -0
- package/src/types.ts +111 -0
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ImageDetailFooter = ImageDetailFooter;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _sharedUi = require("@buoy-gg/shared-ui");
|
|
10
|
+
var _actions = require("../capture/actions");
|
|
11
|
+
var _overrides = require("../capture/overrides");
|
|
12
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
+
/**
|
|
14
|
+
* ImageDetailFooter — bottom navbar for the detail view: previous/next
|
|
15
|
+
* stepping through the captured list at the edges, per-image actions in the
|
|
16
|
+
* middle (hard reload / retry), with inline action feedback. Styling matches
|
|
17
|
+
* shared-ui's EventStepperFooter so it reads like the rest of Buoy.
|
|
18
|
+
*
|
|
19
|
+
* Mount with key={record.id} so action feedback resets when stepping.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
function ImageDetailFooter({
|
|
23
|
+
record,
|
|
24
|
+
hasPrevious,
|
|
25
|
+
hasNext,
|
|
26
|
+
onPrevious,
|
|
27
|
+
onNext
|
|
28
|
+
}) {
|
|
29
|
+
const insets = (0, _sharedUi.useSafeAreaInsets)();
|
|
30
|
+
const [message, setMessage] = (0, _react.useState)(null);
|
|
31
|
+
const runAction = action => {
|
|
32
|
+
setMessage("…");
|
|
33
|
+
action().then(result => setMessage(result.message)).catch(error => setMessage(String(error?.message ?? error)));
|
|
34
|
+
};
|
|
35
|
+
const actionsDisabled = !record.mounted;
|
|
36
|
+
const overrideActive = record.overrideLabel != null;
|
|
37
|
+
const simulate = (source, label) => {
|
|
38
|
+
(0, _overrides.setOverride)(record.id, {
|
|
39
|
+
source,
|
|
40
|
+
label
|
|
41
|
+
});
|
|
42
|
+
setMessage(`${label} — Restore to undo`);
|
|
43
|
+
};
|
|
44
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
45
|
+
style: [styles.footer, {
|
|
46
|
+
paddingBottom: 12 + insets.bottom
|
|
47
|
+
}],
|
|
48
|
+
children: [message ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
49
|
+
style: styles.message,
|
|
50
|
+
numberOfLines: 1,
|
|
51
|
+
children: message
|
|
52
|
+
}) : actionsDisabled ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
53
|
+
style: styles.hint,
|
|
54
|
+
numberOfLines: 1,
|
|
55
|
+
children: "Instance unmounted \u2014 reload actions need the image on screen."
|
|
56
|
+
}) : null, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
57
|
+
style: styles.row,
|
|
58
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
|
|
59
|
+
onPress: onPrevious,
|
|
60
|
+
disabled: !hasPrevious,
|
|
61
|
+
style: [styles.navButton, !hasPrevious && styles.disabled],
|
|
62
|
+
activeOpacity: 0.7,
|
|
63
|
+
accessibilityLabel: "Previous image",
|
|
64
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ChevronLeft, {
|
|
65
|
+
size: 20,
|
|
66
|
+
color: hasPrevious ? _sharedUi.macOSColors.text.primary : _sharedUi.macOSColors.text.muted
|
|
67
|
+
})
|
|
68
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
|
|
69
|
+
onPress: () => runAction(() => (0, _actions.hardReloadRecord)(record)),
|
|
70
|
+
disabled: actionsDisabled,
|
|
71
|
+
style: [styles.actionButton, actionsDisabled && styles.disabled],
|
|
72
|
+
activeOpacity: 0.7,
|
|
73
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.RefreshCw, {
|
|
74
|
+
size: 13,
|
|
75
|
+
color: actionsDisabled ? _sharedUi.macOSColors.text.muted : _sharedUi.macOSColors.semantic.info
|
|
76
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
77
|
+
style: [styles.actionText, actionsDisabled && styles.actionTextDisabled],
|
|
78
|
+
children: "Hard reload"
|
|
79
|
+
})]
|
|
80
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
|
|
81
|
+
onPress: () => runAction(() => (0, _actions.retryRecord)(record)),
|
|
82
|
+
disabled: actionsDisabled,
|
|
83
|
+
style: [styles.actionButton, actionsDisabled && styles.disabled],
|
|
84
|
+
activeOpacity: 0.7,
|
|
85
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
86
|
+
style: [styles.actionText, actionsDisabled && styles.actionTextDisabled],
|
|
87
|
+
children: record.status === "error" ? "Retry" : "Reload"
|
|
88
|
+
})
|
|
89
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
|
|
90
|
+
onPress: onNext,
|
|
91
|
+
disabled: !hasNext,
|
|
92
|
+
style: [styles.navButton, !hasNext && styles.disabled],
|
|
93
|
+
activeOpacity: 0.7,
|
|
94
|
+
accessibilityLabel: "Next image",
|
|
95
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ChevronRight, {
|
|
96
|
+
size: 20,
|
|
97
|
+
color: hasNext ? _sharedUi.macOSColors.text.primary : _sharedUi.macOSColors.text.muted
|
|
98
|
+
})
|
|
99
|
+
})]
|
|
100
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
101
|
+
style: styles.row,
|
|
102
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(SimButton, {
|
|
103
|
+
label: "Error",
|
|
104
|
+
disabled: actionsDisabled,
|
|
105
|
+
onPress: () => simulate({
|
|
106
|
+
type: "error"
|
|
107
|
+
}, "Forced error")
|
|
108
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(SimButton, {
|
|
109
|
+
label: "Loading",
|
|
110
|
+
disabled: actionsDisabled,
|
|
111
|
+
onPress: () => simulate({
|
|
112
|
+
type: "hang"
|
|
113
|
+
}, "Forced loading")
|
|
114
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(SimButton, {
|
|
115
|
+
label: "Blank",
|
|
116
|
+
disabled: actionsDisabled,
|
|
117
|
+
onPress: () => simulate({
|
|
118
|
+
type: "blank"
|
|
119
|
+
}, "Blanked")
|
|
120
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(SimButton, {
|
|
121
|
+
label: "Find",
|
|
122
|
+
disabled: actionsDisabled,
|
|
123
|
+
onPress: () => {
|
|
124
|
+
(0, _overrides.flashRecord)(record.id);
|
|
125
|
+
setMessage("Flashing a red border on the image (2.5s)");
|
|
126
|
+
}
|
|
127
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(SimButton, {
|
|
128
|
+
label: "Restore",
|
|
129
|
+
accent: true,
|
|
130
|
+
disabled: !overrideActive,
|
|
131
|
+
onPress: () => {
|
|
132
|
+
(0, _overrides.clearOverride)(record.id);
|
|
133
|
+
setMessage("Override removed — original source restored");
|
|
134
|
+
}
|
|
135
|
+
})]
|
|
136
|
+
})]
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
function SimButton({
|
|
140
|
+
label,
|
|
141
|
+
onPress,
|
|
142
|
+
disabled,
|
|
143
|
+
accent
|
|
144
|
+
}) {
|
|
145
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
|
|
146
|
+
onPress: onPress,
|
|
147
|
+
disabled: disabled,
|
|
148
|
+
style: [styles.simButton, disabled && styles.disabled],
|
|
149
|
+
activeOpacity: 0.7,
|
|
150
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
151
|
+
style: [styles.simText, accent && !disabled && styles.simTextAccent, disabled && styles.actionTextDisabled],
|
|
152
|
+
children: label
|
|
153
|
+
})
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
const styles = _reactNative.StyleSheet.create({
|
|
157
|
+
footer: {
|
|
158
|
+
paddingHorizontal: 12,
|
|
159
|
+
paddingTop: 10,
|
|
160
|
+
backgroundColor: _sharedUi.macOSColors.background.base,
|
|
161
|
+
borderTopWidth: 1,
|
|
162
|
+
borderTopColor: _sharedUi.macOSColors.border.default,
|
|
163
|
+
gap: 8
|
|
164
|
+
},
|
|
165
|
+
row: {
|
|
166
|
+
flexDirection: "row",
|
|
167
|
+
alignItems: "center",
|
|
168
|
+
gap: 8
|
|
169
|
+
},
|
|
170
|
+
navButton: {
|
|
171
|
+
paddingHorizontal: 10,
|
|
172
|
+
paddingVertical: 8,
|
|
173
|
+
borderRadius: 6,
|
|
174
|
+
backgroundColor: _sharedUi.macOSColors.background.card,
|
|
175
|
+
alignItems: "center",
|
|
176
|
+
justifyContent: "center"
|
|
177
|
+
},
|
|
178
|
+
actionButton: {
|
|
179
|
+
flex: 1,
|
|
180
|
+
flexDirection: "row",
|
|
181
|
+
alignItems: "center",
|
|
182
|
+
justifyContent: "center",
|
|
183
|
+
gap: 6,
|
|
184
|
+
paddingVertical: 8,
|
|
185
|
+
borderRadius: 6,
|
|
186
|
+
backgroundColor: _sharedUi.macOSColors.background.card,
|
|
187
|
+
borderWidth: _reactNative.StyleSheet.hairlineWidth,
|
|
188
|
+
borderColor: _sharedUi.macOSColors.border.default
|
|
189
|
+
},
|
|
190
|
+
actionText: {
|
|
191
|
+
fontSize: 11,
|
|
192
|
+
fontWeight: "600",
|
|
193
|
+
color: _sharedUi.macOSColors.text.primary,
|
|
194
|
+
fontFamily: "monospace",
|
|
195
|
+
textTransform: "uppercase"
|
|
196
|
+
},
|
|
197
|
+
actionTextDisabled: {
|
|
198
|
+
color: _sharedUi.macOSColors.text.muted
|
|
199
|
+
},
|
|
200
|
+
disabled: {
|
|
201
|
+
opacity: 0.4
|
|
202
|
+
},
|
|
203
|
+
simButton: {
|
|
204
|
+
flex: 1,
|
|
205
|
+
alignItems: "center",
|
|
206
|
+
paddingVertical: 7,
|
|
207
|
+
borderRadius: 6,
|
|
208
|
+
backgroundColor: _sharedUi.macOSColors.background.card,
|
|
209
|
+
borderWidth: _reactNative.StyleSheet.hairlineWidth,
|
|
210
|
+
borderColor: _sharedUi.macOSColors.border.default
|
|
211
|
+
},
|
|
212
|
+
simText: {
|
|
213
|
+
fontSize: 10,
|
|
214
|
+
fontWeight: "600",
|
|
215
|
+
color: _sharedUi.macOSColors.text.secondary,
|
|
216
|
+
fontFamily: "monospace",
|
|
217
|
+
textTransform: "uppercase"
|
|
218
|
+
},
|
|
219
|
+
simTextAccent: {
|
|
220
|
+
color: _sharedUi.macOSColors.semantic.warning
|
|
221
|
+
},
|
|
222
|
+
message: {
|
|
223
|
+
color: _sharedUi.macOSColors.semantic.info,
|
|
224
|
+
fontSize: 10,
|
|
225
|
+
fontFamily: "monospace"
|
|
226
|
+
},
|
|
227
|
+
hint: {
|
|
228
|
+
color: _sharedUi.macOSColors.text.muted,
|
|
229
|
+
fontSize: 10
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
//# sourceMappingURL=ImageDetailFooter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_sharedUi","_actions","_overrides","_jsxRuntime","ImageDetailFooter","record","hasPrevious","hasNext","onPrevious","onNext","insets","useSafeAreaInsets","message","setMessage","useState","runAction","action","then","result","catch","error","String","actionsDisabled","mounted","overrideActive","overrideLabel","simulate","source","label","setOverride","id","jsxs","View","style","styles","footer","paddingBottom","bottom","children","jsx","Text","numberOfLines","hint","row","TouchableOpacity","onPress","disabled","navButton","activeOpacity","accessibilityLabel","ChevronLeft","size","color","macOSColors","text","primary","muted","hardReloadRecord","actionButton","RefreshCw","semantic","info","actionText","actionTextDisabled","retryRecord","status","ChevronRight","SimButton","type","flashRecord","accent","clearOverride","simButton","simText","simTextAccent","StyleSheet","create","paddingHorizontal","paddingTop","backgroundColor","background","base","borderTopWidth","borderTopColor","border","default","gap","flexDirection","alignItems","paddingVertical","borderRadius","card","justifyContent","flex","borderWidth","hairlineWidth","borderColor","fontSize","fontWeight","fontFamily","textTransform","opacity","secondary","warning"],"sourceRoot":"../../../src","sources":["components/ImageDetailFooter.tsx"],"mappings":";;;;;;AASA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAOA,IAAAG,QAAA,GAAAH,OAAA;AAEA,IAAAI,UAAA,GAAAJ,OAAA;AAA+E,IAAAK,WAAA,GAAAL,OAAA;AApB/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAwBO,SAASM,iBAAiBA,CAAC;EAChCC,MAAM;EACNC,WAAW;EACXC,OAAO;EACPC,UAAU;EACVC;AACsB,CAAC,EAAE;EACzB,MAAMC,MAAM,GAAG,IAAAC,2BAAiB,EAAC,CAAC;EAClC,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAC,eAAQ,EAAgB,IAAI,CAAC;EAE3D,MAAMC,SAAS,GAAIC,MAAmC,IAAK;IACzDH,UAAU,CAAC,GAAG,CAAC;IACfG,MAAM,CAAC,CAAC,CACLC,IAAI,CAAEC,MAAM,IAAKL,UAAU,CAACK,MAAM,CAACN,OAAO,CAAC,CAAC,CAC5CO,KAAK,CAAEC,KAAK,IAAKP,UAAU,CAACQ,MAAM,CAACD,KAAK,EAAER,OAAO,IAAIQ,KAAK,CAAC,CAAC,CAAC;EAClE,CAAC;EAED,MAAME,eAAe,GAAG,CAACjB,MAAM,CAACkB,OAAO;EACvC,MAAMC,cAAc,GAAGnB,MAAM,CAACoB,aAAa,IAAI,IAAI;EAEnD,MAAMC,QAAQ,GAAGA,CACfC,MAAgE,EAChEC,KAAa,KACV;IACH,IAAAC,sBAAW,EAACxB,MAAM,CAACyB,EAAE,EAAE;MAAEH,MAAM;MAAEC;IAAM,CAAC,CAAC;IACzCf,UAAU,CAAC,GAAGe,KAAK,oBAAoB,CAAC;EAC1C,CAAC;EAED,oBACE,IAAAzB,WAAA,CAAA4B,IAAA,EAAChC,YAAA,CAAAiC,IAAI;IAACC,KAAK,EAAE,CAACC,MAAM,CAACC,MAAM,EAAE;MAAEC,aAAa,EAAE,EAAE,GAAG1B,MAAM,CAAC2B;IAAO,CAAC,CAAE;IAAAC,QAAA,GACjE1B,OAAO,gBACN,IAAAT,WAAA,CAAAoC,GAAA,EAACxC,YAAA,CAAAyC,IAAI;MAACP,KAAK,EAAEC,MAAM,CAACtB,OAAQ;MAAC6B,aAAa,EAAE,CAAE;MAAAH,QAAA,EAC3C1B;IAAO,CACJ,CAAC,GACLU,eAAe,gBACjB,IAAAnB,WAAA,CAAAoC,GAAA,EAACxC,YAAA,CAAAyC,IAAI;MAACP,KAAK,EAAEC,MAAM,CAACQ,IAAK;MAACD,aAAa,EAAE,CAAE;MAAAH,QAAA,EAAC;IAE5C,CAAM,CAAC,GACL,IAAI,eAER,IAAAnC,WAAA,CAAA4B,IAAA,EAAChC,YAAA,CAAAiC,IAAI;MAACC,KAAK,EAAEC,MAAM,CAACS,GAAI;MAAAL,QAAA,gBACtB,IAAAnC,WAAA,CAAAoC,GAAA,EAACxC,YAAA,CAAA6C,gBAAgB;QACfC,OAAO,EAAErC,UAAW;QACpBsC,QAAQ,EAAE,CAACxC,WAAY;QACvB2B,KAAK,EAAE,CAACC,MAAM,CAACa,SAAS,EAAE,CAACzC,WAAW,IAAI4B,MAAM,CAACY,QAAQ,CAAE;QAC3DE,aAAa,EAAE,GAAI;QACnBC,kBAAkB,EAAC,gBAAgB;QAAAX,QAAA,eAEnC,IAAAnC,WAAA,CAAAoC,GAAA,EAACvC,SAAA,CAAAkD,WAAW;UACVC,IAAI,EAAE,EAAG;UACTC,KAAK,EAAE9C,WAAW,GAAG+C,qBAAW,CAACC,IAAI,CAACC,OAAO,GAAGF,qBAAW,CAACC,IAAI,CAACE;QAAM,CACxE;MAAC,CACc,CAAC,eAEnB,IAAArD,WAAA,CAAA4B,IAAA,EAAChC,YAAA,CAAA6C,gBAAgB;QACfC,OAAO,EAAEA,CAAA,KAAM9B,SAAS,CAAC,MAAM,IAAA0C,yBAAgB,EAACpD,MAAM,CAAC,CAAE;QACzDyC,QAAQ,EAAExB,eAAgB;QAC1BW,KAAK,EAAE,CAACC,MAAM,CAACwB,YAAY,EAAEpC,eAAe,IAAIY,MAAM,CAACY,QAAQ,CAAE;QACjEE,aAAa,EAAE,GAAI;QAAAV,QAAA,gBAEnB,IAAAnC,WAAA,CAAAoC,GAAA,EAACvC,SAAA,CAAA2D,SAAS;UACRR,IAAI,EAAE,EAAG;UACTC,KAAK,EAAE9B,eAAe,GAAG+B,qBAAW,CAACC,IAAI,CAACE,KAAK,GAAGH,qBAAW,CAACO,QAAQ,CAACC;QAAK,CAC7E,CAAC,eACF,IAAA1D,WAAA,CAAAoC,GAAA,EAACxC,YAAA,CAAAyC,IAAI;UAACP,KAAK,EAAE,CAACC,MAAM,CAAC4B,UAAU,EAAExC,eAAe,IAAIY,MAAM,CAAC6B,kBAAkB,CAAE;UAAAzB,QAAA,EAAC;QAEhF,CAAM,CAAC;MAAA,CACS,CAAC,eAEnB,IAAAnC,WAAA,CAAAoC,GAAA,EAACxC,YAAA,CAAA6C,gBAAgB;QACfC,OAAO,EAAEA,CAAA,KAAM9B,SAAS,CAAC,MAAM,IAAAiD,oBAAW,EAAC3D,MAAM,CAAC,CAAE;QACpDyC,QAAQ,EAAExB,eAAgB;QAC1BW,KAAK,EAAE,CAACC,MAAM,CAACwB,YAAY,EAAEpC,eAAe,IAAIY,MAAM,CAACY,QAAQ,CAAE;QACjEE,aAAa,EAAE,GAAI;QAAAV,QAAA,eAEnB,IAAAnC,WAAA,CAAAoC,GAAA,EAACxC,YAAA,CAAAyC,IAAI;UAACP,KAAK,EAAE,CAACC,MAAM,CAAC4B,UAAU,EAAExC,eAAe,IAAIY,MAAM,CAAC6B,kBAAkB,CAAE;UAAAzB,QAAA,EAC5EjC,MAAM,CAAC4D,MAAM,KAAK,OAAO,GAAG,OAAO,GAAG;QAAQ,CAC3C;MAAC,CACS,CAAC,eAEnB,IAAA9D,WAAA,CAAAoC,GAAA,EAACxC,YAAA,CAAA6C,gBAAgB;QACfC,OAAO,EAAEpC,MAAO;QAChBqC,QAAQ,EAAE,CAACvC,OAAQ;QACnB0B,KAAK,EAAE,CAACC,MAAM,CAACa,SAAS,EAAE,CAACxC,OAAO,IAAI2B,MAAM,CAACY,QAAQ,CAAE;QACvDE,aAAa,EAAE,GAAI;QACnBC,kBAAkB,EAAC,YAAY;QAAAX,QAAA,eAE/B,IAAAnC,WAAA,CAAAoC,GAAA,EAACvC,SAAA,CAAAkE,YAAY;UACXf,IAAI,EAAE,EAAG;UACTC,KAAK,EAAE7C,OAAO,GAAG8C,qBAAW,CAACC,IAAI,CAACC,OAAO,GAAGF,qBAAW,CAACC,IAAI,CAACE;QAAM,CACpE;MAAC,CACc,CAAC;IAAA,CACf,CAAC,eAEP,IAAArD,WAAA,CAAA4B,IAAA,EAAChC,YAAA,CAAAiC,IAAI;MAACC,KAAK,EAAEC,MAAM,CAACS,GAAI;MAAAL,QAAA,gBACtB,IAAAnC,WAAA,CAAAoC,GAAA,EAAC4B,SAAS;QACRvC,KAAK,EAAC,OAAO;QACbkB,QAAQ,EAAExB,eAAgB;QAC1BuB,OAAO,EAAEA,CAAA,KAAMnB,QAAQ,CAAC;UAAE0C,IAAI,EAAE;QAAQ,CAAC,EAAE,cAAc;MAAE,CAC5D,CAAC,eACF,IAAAjE,WAAA,CAAAoC,GAAA,EAAC4B,SAAS;QACRvC,KAAK,EAAC,SAAS;QACfkB,QAAQ,EAAExB,eAAgB;QAC1BuB,OAAO,EAAEA,CAAA,KAAMnB,QAAQ,CAAC;UAAE0C,IAAI,EAAE;QAAO,CAAC,EAAE,gBAAgB;MAAE,CAC7D,CAAC,eACF,IAAAjE,WAAA,CAAAoC,GAAA,EAAC4B,SAAS;QACRvC,KAAK,EAAC,OAAO;QACbkB,QAAQ,EAAExB,eAAgB;QAC1BuB,OAAO,EAAEA,CAAA,KAAMnB,QAAQ,CAAC;UAAE0C,IAAI,EAAE;QAAQ,CAAC,EAAE,SAAS;MAAE,CACvD,CAAC,eACF,IAAAjE,WAAA,CAAAoC,GAAA,EAAC4B,SAAS;QACRvC,KAAK,EAAC,MAAM;QACZkB,QAAQ,EAAExB,eAAgB;QAC1BuB,OAAO,EAAEA,CAAA,KAAM;UACb,IAAAwB,sBAAW,EAAChE,MAAM,CAACyB,EAAE,CAAC;UACtBjB,UAAU,CAAC,2CAA2C,CAAC;QACzD;MAAE,CACH,CAAC,eACF,IAAAV,WAAA,CAAAoC,GAAA,EAAC4B,SAAS;QACRvC,KAAK,EAAC,SAAS;QACf0C,MAAM;QACNxB,QAAQ,EAAE,CAACtB,cAAe;QAC1BqB,OAAO,EAAEA,CAAA,KAAM;UACb,IAAA0B,wBAAa,EAAClE,MAAM,CAACyB,EAAE,CAAC;UACxBjB,UAAU,CAAC,6CAA6C,CAAC;QAC3D;MAAE,CACH,CAAC;IAAA,CACE,CAAC;EAAA,CACH,CAAC;AAEX;AAEA,SAASsD,SAASA,CAAC;EACjBvC,KAAK;EACLiB,OAAO;EACPC,QAAQ;EACRwB;AAMF,CAAC,EAAE;EACD,oBACE,IAAAnE,WAAA,CAAAoC,GAAA,EAACxC,YAAA,CAAA6C,gBAAgB;IACfC,OAAO,EAAEA,OAAQ;IACjBC,QAAQ,EAAEA,QAAS;IACnBb,KAAK,EAAE,CAACC,MAAM,CAACsC,SAAS,EAAE1B,QAAQ,IAAIZ,MAAM,CAACY,QAAQ,CAAE;IACvDE,aAAa,EAAE,GAAI;IAAAV,QAAA,eAEnB,IAAAnC,WAAA,CAAAoC,GAAA,EAACxC,YAAA,CAAAyC,IAAI;MACHP,KAAK,EAAE,CACLC,MAAM,CAACuC,OAAO,EACdH,MAAM,IAAI,CAACxB,QAAQ,IAAIZ,MAAM,CAACwC,aAAa,EAC3C5B,QAAQ,IAAIZ,MAAM,CAAC6B,kBAAkB,CACrC;MAAAzB,QAAA,EAEDV;IAAK,CACF;EAAC,CACS,CAAC;AAEvB;AAEA,MAAMM,MAAM,GAAGyC,uBAAU,CAACC,MAAM,CAAC;EAC/BzC,MAAM,EAAE;IACN0C,iBAAiB,EAAE,EAAE;IACrBC,UAAU,EAAE,EAAE;IACdC,eAAe,EAAE1B,qBAAW,CAAC2B,UAAU,CAACC,IAAI;IAC5CC,cAAc,EAAE,CAAC;IACjBC,cAAc,EAAE9B,qBAAW,CAAC+B,MAAM,CAACC,OAAO;IAC1CC,GAAG,EAAE;EACP,CAAC;EACD3C,GAAG,EAAE;IACH4C,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBF,GAAG,EAAE;EACP,CAAC;EACDvC,SAAS,EAAE;IACT8B,iBAAiB,EAAE,EAAE;IACrBY,eAAe,EAAE,CAAC;IAClBC,YAAY,EAAE,CAAC;IACfX,eAAe,EAAE1B,qBAAW,CAAC2B,UAAU,CAACW,IAAI;IAC5CH,UAAU,EAAE,QAAQ;IACpBI,cAAc,EAAE;EAClB,CAAC;EACDlC,YAAY,EAAE;IACZmC,IAAI,EAAE,CAAC;IACPN,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBI,cAAc,EAAE,QAAQ;IACxBN,GAAG,EAAE,CAAC;IACNG,eAAe,EAAE,CAAC;IAClBC,YAAY,EAAE,CAAC;IACfX,eAAe,EAAE1B,qBAAW,CAAC2B,UAAU,CAACW,IAAI;IAC5CG,WAAW,EAAEnB,uBAAU,CAACoB,aAAa;IACrCC,WAAW,EAAE3C,qBAAW,CAAC+B,MAAM,CAACC;EAClC,CAAC;EACDvB,UAAU,EAAE;IACVmC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjB9C,KAAK,EAAEC,qBAAW,CAACC,IAAI,CAACC,OAAO;IAC/B4C,UAAU,EAAE,WAAW;IACvBC,aAAa,EAAE;EACjB,CAAC;EACDrC,kBAAkB,EAAE;IAClBX,KAAK,EAAEC,qBAAW,CAACC,IAAI,CAACE;EAC1B,CAAC;EACDV,QAAQ,EAAE;IACRuD,OAAO,EAAE;EACX,CAAC;EACD7B,SAAS,EAAE;IACTqB,IAAI,EAAE,CAAC;IACPL,UAAU,EAAE,QAAQ;IACpBC,eAAe,EAAE,CAAC;IAClBC,YAAY,EAAE,CAAC;IACfX,eAAe,EAAE1B,qBAAW,CAAC2B,UAAU,CAACW,IAAI;IAC5CG,WAAW,EAAEnB,uBAAU,CAACoB,aAAa;IACrCC,WAAW,EAAE3C,qBAAW,CAAC+B,MAAM,CAACC;EAClC,CAAC;EACDZ,OAAO,EAAE;IACPwB,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjB9C,KAAK,EAAEC,qBAAW,CAACC,IAAI,CAACgD,SAAS;IACjCH,UAAU,EAAE,WAAW;IACvBC,aAAa,EAAE;EACjB,CAAC;EACD1B,aAAa,EAAE;IACbtB,KAAK,EAAEC,qBAAW,CAACO,QAAQ,CAAC2C;EAC9B,CAAC;EACD3F,OAAO,EAAE;IACPwC,KAAK,EAAEC,qBAAW,CAACO,QAAQ,CAACC,IAAI;IAChCoC,QAAQ,EAAE,EAAE;IACZE,UAAU,EAAE;EACd,CAAC;EACDzD,IAAI,EAAE;IACJU,KAAK,EAAEC,qBAAW,CAACC,IAAI,CAACE,KAAK;IAC7ByC,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ImageRow = ImageRow;
|
|
7
|
+
var _reactNative = require("react-native");
|
|
8
|
+
var _sharedUi = require("@buoy-gg/shared-ui");
|
|
9
|
+
var _format = require("../format");
|
|
10
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
+
/**
|
|
12
|
+
* ImageRow — one captured image in the list: thumbnail, filename, library +
|
|
13
|
+
* cache badges, load time, and the size verdict.
|
|
14
|
+
*
|
|
15
|
+
* Thumbnails carry the buoy-internal testID so the capture layer skips them —
|
|
16
|
+
* the tool must never appear in its own registry.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
function ImageRow({
|
|
20
|
+
record,
|
|
21
|
+
onPress
|
|
22
|
+
}) {
|
|
23
|
+
const verdict = (0, _format.sizeVerdict)(record);
|
|
24
|
+
const cache = (0, _format.cacheBadge)(record);
|
|
25
|
+
const showThumb = record.sourceKind === "network" || record.sourceKind === "asset" || record.sourceKind === "file";
|
|
26
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
|
|
27
|
+
style: styles.row,
|
|
28
|
+
testID: `buoy-image-row-${record.id}`,
|
|
29
|
+
onPress: () => onPress(record.id),
|
|
30
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
31
|
+
style: styles.thumbBox,
|
|
32
|
+
children: [showThumb && record.uri ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Image, {
|
|
33
|
+
testID: "buoy-internal-images-thumb",
|
|
34
|
+
source: {
|
|
35
|
+
uri: record.uri
|
|
36
|
+
},
|
|
37
|
+
style: styles.thumb,
|
|
38
|
+
resizeMode: "cover"
|
|
39
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
40
|
+
style: styles.thumbFallback,
|
|
41
|
+
children: "?"
|
|
42
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
43
|
+
style: [styles.statusDot, {
|
|
44
|
+
backgroundColor: (0, _format.statusColor)(record)
|
|
45
|
+
}]
|
|
46
|
+
})]
|
|
47
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
48
|
+
style: styles.main,
|
|
49
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
50
|
+
style: styles.name,
|
|
51
|
+
numberOfLines: 1,
|
|
52
|
+
children: (0, _format.uriTail)(record.uri)
|
|
53
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
54
|
+
style: styles.metaRow,
|
|
55
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
56
|
+
style: [styles.badge, {
|
|
57
|
+
color: _sharedUi.macOSColors.text.muted
|
|
58
|
+
}],
|
|
59
|
+
children: record.lib === "expo" ? "EXPO" : "RN"
|
|
60
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
61
|
+
style: [styles.badge, {
|
|
62
|
+
color: cache.color
|
|
63
|
+
}],
|
|
64
|
+
children: cache.label
|
|
65
|
+
}), record.overrideLabel ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
66
|
+
style: [styles.badge, {
|
|
67
|
+
color: _sharedUi.macOSColors.semantic.warning
|
|
68
|
+
}],
|
|
69
|
+
children: "SIM"
|
|
70
|
+
}) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
71
|
+
style: styles.meta,
|
|
72
|
+
children: (0, _format.formatMs)(record.durationMs)
|
|
73
|
+
}), record.intrinsic ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
|
|
74
|
+
style: styles.meta,
|
|
75
|
+
children: [record.intrinsic.width, "\xD7", record.intrinsic.height]
|
|
76
|
+
}) : null]
|
|
77
|
+
})]
|
|
78
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
79
|
+
style: styles.right,
|
|
80
|
+
children: record.status === "error" ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
81
|
+
style: [styles.verdict, {
|
|
82
|
+
color: _sharedUi.macOSColors.semantic.error
|
|
83
|
+
}],
|
|
84
|
+
children: "FAILED"
|
|
85
|
+
}) : verdict.label ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
86
|
+
style: [styles.verdict, {
|
|
87
|
+
color: verdict.color
|
|
88
|
+
}],
|
|
89
|
+
children: verdict.label
|
|
90
|
+
}) : null
|
|
91
|
+
})]
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
const styles = _reactNative.StyleSheet.create({
|
|
95
|
+
row: {
|
|
96
|
+
flexDirection: "row",
|
|
97
|
+
alignItems: "center",
|
|
98
|
+
paddingHorizontal: 12,
|
|
99
|
+
paddingVertical: 8,
|
|
100
|
+
borderBottomWidth: _reactNative.StyleSheet.hairlineWidth,
|
|
101
|
+
borderBottomColor: _sharedUi.macOSColors.border.default,
|
|
102
|
+
gap: 10
|
|
103
|
+
},
|
|
104
|
+
thumbBox: {
|
|
105
|
+
width: 40,
|
|
106
|
+
height: 40,
|
|
107
|
+
borderRadius: 6,
|
|
108
|
+
backgroundColor: _sharedUi.macOSColors.background.input,
|
|
109
|
+
alignItems: "center",
|
|
110
|
+
justifyContent: "center",
|
|
111
|
+
overflow: "hidden"
|
|
112
|
+
},
|
|
113
|
+
thumb: {
|
|
114
|
+
width: 40,
|
|
115
|
+
height: 40
|
|
116
|
+
},
|
|
117
|
+
thumbFallback: {
|
|
118
|
+
color: _sharedUi.macOSColors.text.muted,
|
|
119
|
+
fontSize: 16,
|
|
120
|
+
fontWeight: "700"
|
|
121
|
+
},
|
|
122
|
+
statusDot: {
|
|
123
|
+
position: "absolute",
|
|
124
|
+
right: 2,
|
|
125
|
+
bottom: 2,
|
|
126
|
+
width: 8,
|
|
127
|
+
height: 8,
|
|
128
|
+
borderRadius: 4,
|
|
129
|
+
borderWidth: 1,
|
|
130
|
+
borderColor: _sharedUi.macOSColors.background.base
|
|
131
|
+
},
|
|
132
|
+
main: {
|
|
133
|
+
flex: 1,
|
|
134
|
+
gap: 2
|
|
135
|
+
},
|
|
136
|
+
name: {
|
|
137
|
+
color: _sharedUi.macOSColors.text.primary,
|
|
138
|
+
fontSize: 12,
|
|
139
|
+
fontWeight: "600"
|
|
140
|
+
},
|
|
141
|
+
metaRow: {
|
|
142
|
+
flexDirection: "row",
|
|
143
|
+
alignItems: "center",
|
|
144
|
+
gap: 8
|
|
145
|
+
},
|
|
146
|
+
badge: {
|
|
147
|
+
fontSize: 9,
|
|
148
|
+
fontWeight: "700",
|
|
149
|
+
letterSpacing: 0.5
|
|
150
|
+
},
|
|
151
|
+
meta: {
|
|
152
|
+
color: _sharedUi.macOSColors.text.secondary,
|
|
153
|
+
fontSize: 10,
|
|
154
|
+
fontVariant: ["tabular-nums"]
|
|
155
|
+
},
|
|
156
|
+
right: {
|
|
157
|
+
alignItems: "flex-end"
|
|
158
|
+
},
|
|
159
|
+
verdict: {
|
|
160
|
+
fontSize: 10,
|
|
161
|
+
fontWeight: "700"
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
//# sourceMappingURL=ImageRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_sharedUi","_format","_jsxRuntime","ImageRow","record","onPress","verdict","sizeVerdict","cache","cacheBadge","showThumb","sourceKind","jsxs","TouchableOpacity","style","styles","row","testID","id","children","View","thumbBox","uri","jsx","Image","source","thumb","resizeMode","Text","thumbFallback","statusDot","backgroundColor","statusColor","main","name","numberOfLines","uriTail","metaRow","badge","color","macOSColors","text","muted","lib","label","overrideLabel","semantic","warning","meta","formatMs","durationMs","intrinsic","width","height","right","status","error","StyleSheet","create","flexDirection","alignItems","paddingHorizontal","paddingVertical","borderBottomWidth","hairlineWidth","borderBottomColor","border","default","gap","borderRadius","background","input","justifyContent","overflow","fontSize","fontWeight","position","bottom","borderWidth","borderColor","base","flex","primary","letterSpacing","secondary","fontVariant"],"sourceRoot":"../../../src","sources":["components/ImageRow.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ImagesHeader = ImagesHeader;
|
|
7
|
+
var _sharedUi = require("@buoy-gg/shared-ui");
|
|
8
|
+
var _format = require("../format");
|
|
9
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
+
/**
|
|
11
|
+
* ImagesHeader — shared ModalHeader wiring for the Images tool, matching the
|
|
12
|
+
* Console/Network header pattern. List mode shows aggregate stats, the shared
|
|
13
|
+
* ToolbarCopyButton (full registry report) and the shared ToolbarClearButton;
|
|
14
|
+
* detail mode shows back navigation plus the copy button for that record's
|
|
15
|
+
* report. Copy behavior (Pro gating, hint banner, success/error feedback)
|
|
16
|
+
* comes from shared-ui — identical to every other tool.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
function ImagesHeader({
|
|
20
|
+
stats,
|
|
21
|
+
detailOpen,
|
|
22
|
+
detailIndex = -1,
|
|
23
|
+
detailTotal = 0,
|
|
24
|
+
onCloseDetail,
|
|
25
|
+
onClear,
|
|
26
|
+
getReport,
|
|
27
|
+
onBack
|
|
28
|
+
}) {
|
|
29
|
+
if (detailOpen) {
|
|
30
|
+
const counter = detailIndex >= 0 && detailTotal > 0 ? `${detailIndex + 1} of ${detailTotal}` : undefined;
|
|
31
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_sharedUi.ModalHeader, {
|
|
32
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Navigation, {
|
|
33
|
+
onBack: onCloseDetail
|
|
34
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Content, {
|
|
35
|
+
title: "Image detail",
|
|
36
|
+
subtitle: counter
|
|
37
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Actions, {
|
|
38
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ToolbarCopyButton, {
|
|
39
|
+
value: getReport
|
|
40
|
+
})
|
|
41
|
+
})]
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
const subtitleParts = [`${stats.total} images`, `${stats.errors} failed`, `≈${(0, _format.formatBytes)(stats.estDecodedBytes)} decoded`];
|
|
45
|
+
if (stats.estWastedBytes > 0) {
|
|
46
|
+
subtitleParts.push(`${(0, _format.formatBytes)(stats.estWastedBytes)} wasted`);
|
|
47
|
+
}
|
|
48
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_sharedUi.ModalHeader, {
|
|
49
|
+
children: [onBack ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Navigation, {
|
|
50
|
+
onBack: onBack
|
|
51
|
+
}) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Content, {
|
|
52
|
+
title: "Images",
|
|
53
|
+
subtitle: subtitleParts.join(" · ")
|
|
54
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_sharedUi.ModalHeader.Actions, {
|
|
55
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ToolbarCopyButton, {
|
|
56
|
+
value: getReport
|
|
57
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ToolbarClearButton, {
|
|
58
|
+
onPress: onClear
|
|
59
|
+
})]
|
|
60
|
+
})]
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=ImagesHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_sharedUi","require","_format","_jsxRuntime","ImagesHeader","stats","detailOpen","detailIndex","detailTotal","onCloseDetail","onClear","getReport","onBack","counter","undefined","jsxs","ModalHeader","children","jsx","Navigation","Content","title","subtitle","Actions","ToolbarCopyButton","value","subtitleParts","total","errors","formatBytes","estDecodedBytes","estWastedBytes","push","join","ToolbarClearButton","onPress"],"sourceRoot":"../../../src","sources":["components/ImagesHeader.tsx"],"mappings":";;;;;;AASA,IAAAA,SAAA,GAAAC,OAAA;AAKA,IAAAC,OAAA,GAAAD,OAAA;AAAwC,IAAAE,WAAA,GAAAF,OAAA;AAdxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAwBO,SAASG,YAAYA,CAAC;EAC3BC,KAAK;EACLC,UAAU;EACVC,WAAW,GAAG,CAAC,CAAC;EAChBC,WAAW,GAAG,CAAC;EACfC,aAAa;EACbC,OAAO;EACPC,SAAS;EACTC;AACiB,CAAC,EAAE;EACpB,IAAIN,UAAU,EAAE;IACd,MAAMO,OAAO,GACXN,WAAW,IAAI,CAAC,IAAIC,WAAW,GAAG,CAAC,GAC/B,GAAGD,WAAW,GAAG,CAAC,OAAOC,WAAW,EAAE,GACtCM,SAAS;IACf,oBACE,IAAAX,WAAA,CAAAY,IAAA,EAACf,SAAA,CAAAgB,WAAW;MAAAC,QAAA,gBACV,IAAAd,WAAA,CAAAe,GAAA,EAAClB,SAAA,CAAAgB,WAAW,CAACG,UAAU;QAACP,MAAM,EAAEH;MAAc,CAAE,CAAC,eACjD,IAAAN,WAAA,CAAAe,GAAA,EAAClB,SAAA,CAAAgB,WAAW,CAACI,OAAO;QAACC,KAAK,EAAC,cAAc;QAACC,QAAQ,EAAET;MAAQ,CAAE,CAAC,eAC/D,IAAAV,WAAA,CAAAe,GAAA,EAAClB,SAAA,CAAAgB,WAAW,CAACO,OAAO;QAAAN,QAAA,eAClB,IAAAd,WAAA,CAAAe,GAAA,EAAClB,SAAA,CAAAwB,iBAAiB;UAACC,KAAK,EAAEd;QAAU,CAAE;MAAC,CACpB,CAAC;IAAA,CACX,CAAC;EAElB;EAEA,MAAMe,aAAa,GAAG,CACpB,GAAGrB,KAAK,CAACsB,KAAK,SAAS,EACvB,GAAGtB,KAAK,CAACuB,MAAM,SAAS,EACxB,IAAI,IAAAC,mBAAW,EAACxB,KAAK,CAACyB,eAAe,CAAC,UAAU,CACjD;EACD,IAAIzB,KAAK,CAAC0B,cAAc,GAAG,CAAC,EAAE;IAC5BL,aAAa,CAACM,IAAI,CAAC,GAAG,IAAAH,mBAAW,EAACxB,KAAK,CAAC0B,cAAc,CAAC,SAAS,CAAC;EACnE;EAEA,oBACE,IAAA5B,WAAA,CAAAY,IAAA,EAACf,SAAA,CAAAgB,WAAW;IAAAC,QAAA,GACTL,MAAM,gBAAG,IAAAT,WAAA,CAAAe,GAAA,EAAClB,SAAA,CAAAgB,WAAW,CAACG,UAAU;MAACP,MAAM,EAAEA;IAAO,CAAE,CAAC,GAAG,IAAI,eAC3D,IAAAT,WAAA,CAAAe,GAAA,EAAClB,SAAA,CAAAgB,WAAW,CAACI,OAAO;MAACC,KAAK,EAAC,QAAQ;MAACC,QAAQ,EAAEI,aAAa,CAACO,IAAI,CAAC,KAAK;IAAE,CAAE,CAAC,eAC3E,IAAA9B,WAAA,CAAAY,IAAA,EAACf,SAAA,CAAAgB,WAAW,CAACO,OAAO;MAAAN,QAAA,gBAClB,IAAAd,WAAA,CAAAe,GAAA,EAAClB,SAAA,CAAAwB,iBAAiB;QAACC,KAAK,EAAEd;MAAU,CAAE,CAAC,eACvC,IAAAR,WAAA,CAAAe,GAAA,EAAClB,SAAA,CAAAkC,kBAAkB;QAACC,OAAO,EAAEzB;MAAQ,CAAE,CAAC;IAAA,CACrB,CAAC;EAAA,CACX,CAAC;AAElB","ignoreList":[]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.IMAGES_ICON_COLOR = void 0;
|
|
7
|
+
exports.ImagesIcon = ImagesIcon;
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
+
/** Tool accent color (photo violet). */
|
|
11
|
+
const IMAGES_ICON_COLOR = exports.IMAGES_ICON_COLOR = "#C084FC";
|
|
12
|
+
/**
|
|
13
|
+
* Dependency-free "picture" glyph: rounded frame with a sun dot and a
|
|
14
|
+
* mountain-ish baseline, rendered from plain views.
|
|
15
|
+
*/
|
|
16
|
+
function ImagesIcon({
|
|
17
|
+
size,
|
|
18
|
+
color = IMAGES_ICON_COLOR
|
|
19
|
+
}) {
|
|
20
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
21
|
+
style: [styles.frame, {
|
|
22
|
+
width: size,
|
|
23
|
+
height: size,
|
|
24
|
+
borderRadius: size * 0.2,
|
|
25
|
+
borderColor: color
|
|
26
|
+
}],
|
|
27
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
28
|
+
style: [styles.sun, {
|
|
29
|
+
width: size * 0.18,
|
|
30
|
+
height: size * 0.18,
|
|
31
|
+
borderRadius: size * 0.09,
|
|
32
|
+
backgroundColor: color,
|
|
33
|
+
top: size * 0.18,
|
|
34
|
+
right: size * 0.2
|
|
35
|
+
}]
|
|
36
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
37
|
+
style: {
|
|
38
|
+
color,
|
|
39
|
+
fontSize: size * 0.52,
|
|
40
|
+
fontWeight: "700",
|
|
41
|
+
lineHeight: size * 0.62,
|
|
42
|
+
marginTop: size * 0.28
|
|
43
|
+
},
|
|
44
|
+
children: "▲"
|
|
45
|
+
})]
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
const styles = _reactNative.StyleSheet.create({
|
|
49
|
+
frame: {
|
|
50
|
+
borderWidth: 1.5,
|
|
51
|
+
alignItems: "center",
|
|
52
|
+
justifyContent: "flex-end",
|
|
53
|
+
overflow: "hidden"
|
|
54
|
+
},
|
|
55
|
+
sun: {
|
|
56
|
+
position: "absolute"
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
//# sourceMappingURL=ImagesIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_jsxRuntime","IMAGES_ICON_COLOR","exports","ImagesIcon","size","color","jsxs","View","style","styles","frame","width","height","borderRadius","borderColor","children","jsx","sun","backgroundColor","top","right","Text","fontSize","fontWeight","lineHeight","marginTop","StyleSheet","create","borderWidth","alignItems","justifyContent","overflow","position"],"sourceRoot":"../../../src","sources":["components/ImagesIcon.tsx"],"mappings":";;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAAsD,IAAAC,WAAA,GAAAD,OAAA;AAEtD;AACO,MAAME,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,SAAS;AAO1C;AACA;AACA;AACA;AACO,SAASE,UAAUA,CAAC;EAAEC,IAAI;EAAEC,KAAK,GAAGJ;AAAmC,CAAC,EAAE;EAC/E,oBACE,IAAAD,WAAA,CAAAM,IAAA,EAACR,YAAA,CAAAS,IAAI;IACHC,KAAK,EAAE,CACLC,MAAM,CAACC,KAAK,EACZ;MACEC,KAAK,EAAEP,IAAI;MACXQ,MAAM,EAAER,IAAI;MACZS,YAAY,EAAET,IAAI,GAAG,GAAG;MACxBU,WAAW,EAAET;IACf,CAAC,CACD;IAAAU,QAAA,gBAEF,IAAAf,WAAA,CAAAgB,GAAA,EAAClB,YAAA,CAAAS,IAAI;MACHC,KAAK,EAAE,CACLC,MAAM,CAACQ,GAAG,EACV;QACEN,KAAK,EAAEP,IAAI,GAAG,IAAI;QAClBQ,MAAM,EAAER,IAAI,GAAG,IAAI;QACnBS,YAAY,EAAET,IAAI,GAAG,IAAI;QACzBc,eAAe,EAAEb,KAAK;QACtBc,GAAG,EAAEf,IAAI,GAAG,IAAI;QAChBgB,KAAK,EAAEhB,IAAI,GAAG;MAChB,CAAC;IACD,CACH,CAAC,eACF,IAAAJ,WAAA,CAAAgB,GAAA,EAAClB,YAAA,CAAAuB,IAAI;MACHb,KAAK,EAAE;QACLH,KAAK;QACLiB,QAAQ,EAAElB,IAAI,GAAG,IAAI;QACrBmB,UAAU,EAAE,KAAK;QACjBC,UAAU,EAAEpB,IAAI,GAAG,IAAI;QACvBqB,SAAS,EAAErB,IAAI,GAAG;MACpB,CAAE;MAAAW,QAAA,EAED;IAAG,CACA,CAAC;EAAA,CACH,CAAC;AAEX;AAEA,MAAMN,MAAM,GAAGiB,uBAAU,CAACC,MAAM,CAAC;EAC/BjB,KAAK,EAAE;IACLkB,WAAW,EAAE,GAAG;IAChBC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,UAAU;IAC1BC,QAAQ,EAAE;EACZ,CAAC;EACDd,GAAG,EAAE;IACHe,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC","ignoreList":[]}
|