@buoy-gg/assets 7.0.38 → 7.0.39

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 (161) hide show
  1. package/lib/commonjs/capture/expo.js +46 -1
  2. package/lib/commonjs/capture/expo.js.map +1 -0
  3. package/lib/commonjs/capture/install.js +91 -1
  4. package/lib/commonjs/capture/install.js.map +1 -0
  5. package/lib/commonjs/capture/isBuoyAsset.js +23 -1
  6. package/lib/commonjs/capture/isBuoyAsset.js.map +1 -0
  7. package/lib/commonjs/capture/measure.js +186 -1
  8. package/lib/commonjs/capture/measure.js.map +1 -0
  9. package/lib/commonjs/capture/metroGraph.js +175 -1
  10. package/lib/commonjs/capture/metroGraph.js.map +1 -0
  11. package/lib/commonjs/capture/registry.js +127 -1
  12. package/lib/commonjs/capture/registry.js.map +1 -0
  13. package/lib/commonjs/components/AssetDetail.js +211 -1
  14. package/lib/commonjs/components/AssetDetail.js.map +1 -0
  15. package/lib/commonjs/components/AssetImage.js +66 -1
  16. package/lib/commonjs/components/AssetImage.js.map +1 -0
  17. package/lib/commonjs/components/AssetRow.js +232 -1
  18. package/lib/commonjs/components/AssetRow.js.map +1 -0
  19. package/lib/commonjs/components/AssetsFilterBar.js +105 -1
  20. package/lib/commonjs/components/AssetsFilterBar.js.map +1 -0
  21. package/lib/commonjs/components/AssetsHeader.js +73 -1
  22. package/lib/commonjs/components/AssetsHeader.js.map +1 -0
  23. package/lib/commonjs/components/AssetsIcon.js +19 -1
  24. package/lib/commonjs/components/AssetsIcon.js.map +1 -0
  25. package/lib/commonjs/components/AssetsListControls.js +81 -1
  26. package/lib/commonjs/components/AssetsListControls.js.map +1 -0
  27. package/lib/commonjs/components/AssetsModal.js +378 -1
  28. package/lib/commonjs/components/AssetsModal.js.map +1 -0
  29. package/lib/commonjs/components/ScanNotice.js +85 -1
  30. package/lib/commonjs/components/ScanNotice.js.map +1 -0
  31. package/lib/commonjs/components/optionalExpoImage.js +16 -1
  32. package/lib/commonjs/components/optionalExpoImage.js.map +1 -0
  33. package/lib/commonjs/components/optionalExpoImage.web.js +11 -1
  34. package/lib/commonjs/components/optionalExpoImage.web.js.map +1 -0
  35. package/lib/commonjs/export.js +62 -1
  36. package/lib/commonjs/export.js.map +1 -0
  37. package/lib/commonjs/format.js +59 -1
  38. package/lib/commonjs/format.js.map +1 -0
  39. package/lib/commonjs/hooks/useAssetRecords.js +22 -1
  40. package/lib/commonjs/hooks/useAssetRecords.js.map +1 -0
  41. package/lib/commonjs/hooks/useAssetScanStatus.js +28 -1
  42. package/lib/commonjs/hooks/useAssetScanStatus.js.map +1 -0
  43. package/lib/commonjs/index.js +313 -1
  44. package/lib/commonjs/index.js.map +1 -0
  45. package/lib/commonjs/preset.js +39 -1
  46. package/lib/commonjs/preset.js.map +1 -0
  47. package/lib/commonjs/remote.js +68 -1
  48. package/lib/commonjs/remote.js.map +1 -0
  49. package/lib/commonjs/state.js +51 -1
  50. package/lib/commonjs/state.js.map +1 -0
  51. package/lib/commonjs/store/assetStore.js +256 -1
  52. package/lib/commonjs/store/assetStore.js.map +1 -0
  53. package/lib/commonjs/store/baseline.js +175 -1
  54. package/lib/commonjs/store/baseline.js.map +1 -0
  55. package/lib/commonjs/store/insights.js +120 -1
  56. package/lib/commonjs/store/insights.js.map +1 -0
  57. package/lib/commonjs/sync/assetsSyncAdapter.js +157 -1
  58. package/lib/commonjs/sync/assetsSyncAdapter.js.map +1 -0
  59. package/lib/commonjs/types.js +2 -1
  60. package/lib/commonjs/types.js.map +1 -0
  61. package/lib/commonjs/utils/deviceScale.js +50 -1
  62. package/lib/commonjs/utils/deviceScale.js.map +1 -0
  63. package/lib/commonjs/utils/testIDs.js +110 -1
  64. package/lib/commonjs/utils/testIDs.js.map +1 -0
  65. package/lib/module/capture/expo.js +41 -1
  66. package/lib/module/capture/expo.js.map +1 -0
  67. package/lib/module/capture/install.js +85 -1
  68. package/lib/module/capture/install.js.map +1 -0
  69. package/lib/module/capture/isBuoyAsset.js +18 -1
  70. package/lib/module/capture/isBuoyAsset.js.map +1 -0
  71. package/lib/module/capture/measure.js +179 -1
  72. package/lib/module/capture/measure.js.map +1 -0
  73. package/lib/module/capture/metroGraph.js +168 -1
  74. package/lib/module/capture/metroGraph.js.map +1 -0
  75. package/lib/module/capture/registry.js +120 -1
  76. package/lib/module/capture/registry.js.map +1 -0
  77. package/lib/module/components/AssetDetail.js +207 -1
  78. package/lib/module/components/AssetDetail.js.map +1 -0
  79. package/lib/module/components/AssetImage.js +62 -1
  80. package/lib/module/components/AssetImage.js.map +1 -0
  81. package/lib/module/components/AssetRow.js +228 -1
  82. package/lib/module/components/AssetRow.js.map +1 -0
  83. package/lib/module/components/AssetsFilterBar.js +101 -1
  84. package/lib/module/components/AssetsFilterBar.js.map +1 -0
  85. package/lib/module/components/AssetsHeader.js +69 -1
  86. package/lib/module/components/AssetsHeader.js.map +1 -0
  87. package/lib/module/components/AssetsIcon.js +12 -1
  88. package/lib/module/components/AssetsIcon.js.map +1 -0
  89. package/lib/module/components/AssetsListControls.js +77 -1
  90. package/lib/module/components/AssetsListControls.js.map +1 -0
  91. package/lib/module/components/AssetsModal.js +373 -1
  92. package/lib/module/components/AssetsModal.js.map +1 -0
  93. package/lib/module/components/ScanNotice.js +81 -1
  94. package/lib/module/components/ScanNotice.js.map +1 -0
  95. package/lib/module/components/optionalExpoImage.js +12 -1
  96. package/lib/module/components/optionalExpoImage.js.map +1 -0
  97. package/lib/module/components/optionalExpoImage.web.js +7 -1
  98. package/lib/module/components/optionalExpoImage.web.js.map +1 -0
  99. package/lib/module/export.js +57 -1
  100. package/lib/module/export.js.map +1 -0
  101. package/lib/module/format.js +51 -1
  102. package/lib/module/format.js.map +1 -0
  103. package/lib/module/hooks/useAssetRecords.js +18 -1
  104. package/lib/module/hooks/useAssetRecords.js.map +1 -0
  105. package/lib/module/hooks/useAssetScanStatus.js +23 -1
  106. package/lib/module/hooks/useAssetScanStatus.js.map +1 -0
  107. package/lib/module/index.js +63 -1
  108. package/lib/module/index.js.map +1 -0
  109. package/lib/module/preset.js +35 -1
  110. package/lib/module/preset.js.map +1 -0
  111. package/lib/module/remote.js +61 -1
  112. package/lib/module/remote.js.map +1 -0
  113. package/lib/module/state.js +47 -1
  114. package/lib/module/state.js.map +1 -0
  115. package/lib/module/store/assetStore.js +240 -1
  116. package/lib/module/store/assetStore.js.map +1 -0
  117. package/lib/module/store/baseline.js +167 -1
  118. package/lib/module/store/baseline.js.map +1 -0
  119. package/lib/module/store/insights.js +116 -1
  120. package/lib/module/store/insights.js.map +1 -0
  121. package/lib/module/sync/assetsSyncAdapter.js +153 -1
  122. package/lib/module/sync/assetsSyncAdapter.js.map +1 -0
  123. package/lib/module/types.js +2 -1
  124. package/lib/module/types.js.map +1 -0
  125. package/lib/module/utils/deviceScale.js +46 -1
  126. package/lib/module/utils/deviceScale.js.map +1 -0
  127. package/lib/module/utils/testIDs.js +99 -1
  128. package/lib/module/utils/testIDs.js.map +1 -0
  129. package/lib/typescript/capture/expo.d.ts.map +1 -0
  130. package/lib/typescript/capture/install.d.ts.map +1 -0
  131. package/lib/typescript/capture/isBuoyAsset.d.ts.map +1 -0
  132. package/lib/typescript/capture/measure.d.ts.map +1 -0
  133. package/lib/typescript/capture/metroGraph.d.ts.map +1 -0
  134. package/lib/typescript/capture/registry.d.ts.map +1 -0
  135. package/lib/typescript/components/AssetDetail.d.ts.map +1 -0
  136. package/lib/typescript/components/AssetImage.d.ts.map +1 -0
  137. package/lib/typescript/components/AssetRow.d.ts.map +1 -0
  138. package/lib/typescript/components/AssetsFilterBar.d.ts.map +1 -0
  139. package/lib/typescript/components/AssetsHeader.d.ts.map +1 -0
  140. package/lib/typescript/components/AssetsIcon.d.ts.map +1 -0
  141. package/lib/typescript/components/AssetsListControls.d.ts.map +1 -0
  142. package/lib/typescript/components/AssetsModal.d.ts.map +1 -0
  143. package/lib/typescript/components/ScanNotice.d.ts.map +1 -0
  144. package/lib/typescript/components/optionalExpoImage.d.ts.map +1 -0
  145. package/lib/typescript/components/optionalExpoImage.web.d.ts.map +1 -0
  146. package/lib/typescript/export.d.ts.map +1 -0
  147. package/lib/typescript/format.d.ts.map +1 -0
  148. package/lib/typescript/hooks/useAssetRecords.d.ts.map +1 -0
  149. package/lib/typescript/hooks/useAssetScanStatus.d.ts.map +1 -0
  150. package/lib/typescript/index.d.ts.map +1 -0
  151. package/lib/typescript/preset.d.ts.map +1 -0
  152. package/lib/typescript/remote.d.ts.map +1 -0
  153. package/lib/typescript/state.d.ts.map +1 -0
  154. package/lib/typescript/store/assetStore.d.ts.map +1 -0
  155. package/lib/typescript/store/baseline.d.ts.map +1 -0
  156. package/lib/typescript/store/insights.d.ts.map +1 -0
  157. package/lib/typescript/sync/assetsSyncAdapter.d.ts.map +1 -0
  158. package/lib/typescript/types.d.ts.map +1 -0
  159. package/lib/typescript/utils/deviceScale.d.ts.map +1 -0
  160. package/lib/typescript/utils/testIDs.d.ts.map +1 -0
  161. package/package.json +2 -2
@@ -1 +1,232 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.AssetRow=AssetRow;var _reactNative=require("react-native"),_sharedUi=require("@buoy-gg/shared-ui"),_AssetImage=require("./AssetImage"),_format=require("../format"),_assetStore=require("../store/assetStore"),_testIDs=require("../utils/testIDs"),_jsxRuntime=require("react/jsx-runtime");function Badge({label:e,color:t,testID:s}){return(0,_jsxRuntime.jsx)(_sharedUi.Pill,{label:e,color:t,variant:"quiet",dot:Boolean(t),style:{paddingVertical:2.5},testID:s})}function AssetRow({record:e,flags:t,sizeFraction:s,onPress:a}){const r=_format.KIND_COLORS[e.kind],i=[];return e.loaded||i.push({label:"NOT OBSERVED"}),t.oversize&&i.push({label:"OVERSIZE",color:_sharedUi.macOSColors.semantic.error}),t.duplicate&&i.push({label:"DUP"}),t.heavy&&i.push({label:"HEAVY"}),t.scaleAnomaly?i.push({label:"BAD SCALE",color:_sharedUi.macOSColors.semantic.error}):t.scaleGap&&i.push({label:"LOW-RES"}),t.webp&&i.push({label:"WEBP",color:_sharedUi.macOSColors.semantic.info}),(0,_jsxRuntime.jsxs)(_reactNative.TouchableOpacity,{style:styles.card,testID:(0,_testIDs.assetRowTestID)(e.name,e.type),onPress:()=>a(e.id),activeOpacity:.7,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.body,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.thumbBox,children:"image"===e.kind?(0,_jsxRuntime.jsx)(_AssetImage.AssetImage,{testID:"buoy-internal-assets-thumb",record:e,style:styles.thumb,compact:!0}):(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.thumbFallback,{color:r}],children:_format.KIND_LABELS[e.kind]})}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.main,children:[(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:styles.name,numberOfLines:1,testID:`${(0,_testIDs.assetRowTestID)(e.name,e.type)}-name`,children:[e.name,(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:styles.ext,children:[".",e.type]})]}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.metaRow,children:["image"===e.kind&&null!=e.width?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.meta,children:(0,_format.formatDimensions)(e)}):null,"image"===e.kind&&e.scales.length?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.meta,children:(0,_format.formatScales)(e.scales)}):null]})]}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.right,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.size,testID:`${(0,_testIDs.assetRowTestID)(e.name,e.type)}-size`,children:(0,_format.formatSize)(e,(0,_assetStore.estDecodedBytes)(e))}),i.length?(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.badgeRow,children:i.slice(0,3).map(t=>(0,_jsxRuntime.jsx)(Badge,{label:t.label,color:t.color,testID:(0,_testIDs.assetBadgeTestID)(e.name,e.type,t.label)},t.label))}):null]})]}),s>0?(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.sizeTrack,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.sizeFill,{backgroundColor:r,width:`${Math.max(2,Math.round(100*s))}%`}]})}):null]})}const styles=_reactNative.StyleSheet.create({card:{marginHorizontal:10,marginTop:6,borderRadius:10,backgroundColor:_sharedUi.night.color.surface,borderWidth:1,borderColor:_sharedUi.night.color.border,overflow:"hidden"},body:{flexDirection:"row",alignItems:"center",paddingVertical:8,paddingHorizontal:12,gap:10},thumbBox:{width:40,height:40,borderRadius:8,backgroundColor:"rgba(255,255,255,0.10)",borderWidth:1,borderColor:_sharedUi.night.color.border,alignItems:"center",justifyContent:"center",overflow:"hidden"},thumb:{width:34,height:34},thumbFallback:{fontSize:9,fontWeight:"700",letterSpacing:.5},main:{flex:1,gap:3},name:{color:_sharedUi.night.color.text,fontSize:12,fontWeight:"600"},ext:{color:_sharedUi.night.color.textTertiary,fontWeight:"400"},metaRow:{flexDirection:"row",alignItems:"center",gap:8},meta:{color:_sharedUi.night.color.textSecondary,fontSize:10,fontVariant:["tabular-nums"]},right:{alignItems:"flex-end",gap:4},size:{color:_sharedUi.night.color.text,fontSize:12,fontWeight:"700",fontVariant:["tabular-nums"]},badgeRow:{flexDirection:"row",gap:4},sizeTrack:{height:2,backgroundColor:"transparent"},sizeFill:{height:2,opacity:.45,borderTopRightRadius:2}});
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.AssetRow = AssetRow;
7
+ var _reactNative = require("react-native");
8
+ var _sharedUi = require("@buoy-gg/shared-ui");
9
+ var _AssetImage = require("./AssetImage");
10
+ var _format = require("../format");
11
+ var _assetStore = require("../store/assetStore");
12
+ var _testIDs = require("../utils/testIDs");
13
+ var _jsxRuntime = require("react/jsx-runtime");
14
+ /**
15
+ * AssetRow — one bundled asset as a family-style card (matching the network
16
+ * tool's rows): rounded card, colored accent edge per kind, thumbnail, name,
17
+ * quiet metadata, bold right-aligned size, and finding badges ONLY when a
18
+ * finding exists. A thin proportional bar along the card bottom makes the
19
+ * heavy assets feel heavy at a glance.
20
+ *
21
+ * Thumbnails render through the NUMERIC registry id when available — that
22
+ * routes through resolveAssetSource natively, so it works in dev, iOS
23
+ * release (file://) and Android release (bare resource id) alike. They carry
24
+ * the buoy-internal testID so the images tool never records our own UI.
25
+ */
26
+
27
+ /** Which audit findings apply to this record (drives the row badges). */
28
+
29
+ function Badge({
30
+ label,
31
+ color,
32
+ testID
33
+ }) {
34
+ // Quiet chip: legibility from light-gray text on a neutral fill. Only the
35
+ // serious tiers (red) and WEBP (blue) carry a small dot; the rest are plain.
36
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Pill, {
37
+ label: label,
38
+ color: color,
39
+ variant: "quiet",
40
+ dot: Boolean(color),
41
+ style: {
42
+ paddingVertical: 2.5
43
+ },
44
+ testID: testID
45
+ });
46
+ }
47
+ function AssetRow({
48
+ record,
49
+ flags,
50
+ sizeFraction,
51
+ onPress
52
+ }) {
53
+ const accent = _format.KIND_COLORS[record.kind];
54
+ const badges = [];
55
+ if (!record.loaded) badges.push({
56
+ label: "NOT OBSERVED"
57
+ });
58
+ if (flags.oversize) badges.push({
59
+ label: "OVERSIZE",
60
+ color: _sharedUi.macOSColors.semantic.error
61
+ });
62
+ if (flags.duplicate) badges.push({
63
+ label: "DUP"
64
+ });
65
+ if (flags.heavy) badges.push({
66
+ label: "HEAVY"
67
+ });
68
+ if (flags.scaleAnomaly) badges.push({
69
+ label: "BAD SCALE",
70
+ color: _sharedUi.macOSColors.semantic.error
71
+ });else if (flags.scaleGap) badges.push({
72
+ label: "LOW-RES"
73
+ });
74
+ if (flags.webp) badges.push({
75
+ label: "WEBP",
76
+ color: _sharedUi.macOSColors.semantic.info
77
+ });
78
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
79
+ style: styles.card,
80
+ testID: (0, _testIDs.assetRowTestID)(record.name, record.type),
81
+ onPress: () => onPress(record.id),
82
+ activeOpacity: 0.7,
83
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
84
+ style: styles.body,
85
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
86
+ style: styles.thumbBox,
87
+ children: record.kind === "image" ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_AssetImage.AssetImage
88
+ // buoy-internal- prefix: the images tool skips its own toolchain's
89
+ // views, so previewing an asset never records a render of itself.
90
+ , {
91
+ testID: "buoy-internal-assets-thumb",
92
+ record: record,
93
+ style: styles.thumb,
94
+ compact: true
95
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
96
+ style: [styles.thumbFallback, {
97
+ color: accent
98
+ }],
99
+ children: _format.KIND_LABELS[record.kind]
100
+ })
101
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
102
+ style: styles.main,
103
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
104
+ style: styles.name,
105
+ numberOfLines: 1,
106
+ testID: `${(0, _testIDs.assetRowTestID)(record.name, record.type)}-name`,
107
+ children: [record.name, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
108
+ style: styles.ext,
109
+ children: [".", record.type]
110
+ })]
111
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
112
+ style: styles.metaRow,
113
+ children: [record.kind === "image" && record.width != null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
114
+ style: styles.meta,
115
+ children: (0, _format.formatDimensions)(record)
116
+ }) : null, record.kind === "image" && record.scales.length ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
117
+ style: styles.meta,
118
+ children: (0, _format.formatScales)(record.scales)
119
+ }) : null]
120
+ })]
121
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
122
+ style: styles.right,
123
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
124
+ style: styles.size,
125
+ testID: `${(0, _testIDs.assetRowTestID)(record.name, record.type)}-size`,
126
+ children: (0, _format.formatSize)(record, (0, _assetStore.estDecodedBytes)(record))
127
+ }), badges.length ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
128
+ style: styles.badgeRow,
129
+ children: badges.slice(0, 3).map(b => /*#__PURE__*/(0, _jsxRuntime.jsx)(Badge, {
130
+ label: b.label,
131
+ color: b.color,
132
+ testID: (0, _testIDs.assetBadgeTestID)(record.name, record.type, b.label)
133
+ }, b.label))
134
+ }) : null]
135
+ })]
136
+ }), sizeFraction > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
137
+ style: styles.sizeTrack,
138
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
139
+ style: [styles.sizeFill, {
140
+ backgroundColor: accent,
141
+ width: `${Math.max(2, Math.round(sizeFraction * 100))}%`
142
+ }]
143
+ })
144
+ }) : null]
145
+ });
146
+ }
147
+ const styles = _reactNative.StyleSheet.create({
148
+ card: {
149
+ marginHorizontal: 10,
150
+ marginTop: 6,
151
+ borderRadius: 10,
152
+ backgroundColor: _sharedUi.night.color.surface,
153
+ borderWidth: 1,
154
+ borderColor: _sharedUi.night.color.border,
155
+ overflow: "hidden"
156
+ },
157
+ body: {
158
+ flexDirection: "row",
159
+ alignItems: "center",
160
+ paddingVertical: 8,
161
+ paddingHorizontal: 12,
162
+ gap: 10
163
+ },
164
+ thumbBox: {
165
+ width: 40,
166
+ height: 40,
167
+ borderRadius: 8,
168
+ // Light plate so dark glyph assets stay visible on the dark card.
169
+ backgroundColor: "rgba(255,255,255,0.10)",
170
+ borderWidth: 1,
171
+ borderColor: _sharedUi.night.color.border,
172
+ alignItems: "center",
173
+ justifyContent: "center",
174
+ overflow: "hidden"
175
+ },
176
+ thumb: {
177
+ width: 34,
178
+ height: 34
179
+ },
180
+ thumbFallback: {
181
+ fontSize: 9,
182
+ fontWeight: "700",
183
+ letterSpacing: 0.5
184
+ },
185
+ main: {
186
+ flex: 1,
187
+ gap: 3
188
+ },
189
+ name: {
190
+ color: _sharedUi.night.color.text,
191
+ fontSize: 12,
192
+ fontWeight: "600"
193
+ },
194
+ ext: {
195
+ color: _sharedUi.night.color.textTertiary,
196
+ fontWeight: "400"
197
+ },
198
+ metaRow: {
199
+ flexDirection: "row",
200
+ alignItems: "center",
201
+ gap: 8
202
+ },
203
+ meta: {
204
+ color: _sharedUi.night.color.textSecondary,
205
+ fontSize: 10,
206
+ fontVariant: ["tabular-nums"]
207
+ },
208
+ right: {
209
+ alignItems: "flex-end",
210
+ gap: 4
211
+ },
212
+ size: {
213
+ color: _sharedUi.night.color.text,
214
+ fontSize: 12,
215
+ fontWeight: "700",
216
+ fontVariant: ["tabular-nums"]
217
+ },
218
+ badgeRow: {
219
+ flexDirection: "row",
220
+ gap: 4
221
+ },
222
+ sizeTrack: {
223
+ height: 2,
224
+ backgroundColor: "transparent"
225
+ },
226
+ sizeFill: {
227
+ height: 2,
228
+ opacity: 0.45,
229
+ borderTopRightRadius: 2
230
+ }
231
+ });
232
+ //# sourceMappingURL=AssetRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_sharedUi","_AssetImage","_format","_assetStore","_testIDs","_jsxRuntime","Badge","label","color","testID","jsx","Pill","variant","dot","Boolean","style","paddingVertical","AssetRow","record","flags","sizeFraction","onPress","accent","KIND_COLORS","kind","badges","loaded","push","oversize","macOSColors","semantic","error","duplicate","heavy","scaleAnomaly","scaleGap","webp","info","jsxs","TouchableOpacity","styles","card","assetRowTestID","name","type","id","activeOpacity","children","View","body","thumbBox","AssetImage","thumb","compact","Text","thumbFallback","KIND_LABELS","main","numberOfLines","ext","metaRow","width","meta","formatDimensions","scales","length","formatScales","right","size","formatSize","estDecodedBytes","badgeRow","slice","map","b","assetBadgeTestID","sizeTrack","sizeFill","backgroundColor","Math","max","round","StyleSheet","create","marginHorizontal","marginTop","borderRadius","night","surface","borderWidth","borderColor","border","overflow","flexDirection","alignItems","paddingHorizontal","gap","height","justifyContent","fontSize","fontWeight","letterSpacing","flex","text","textTertiary","textSecondary","fontVariant","opacity","borderTopRightRadius"],"sourceRoot":"../../../src","sources":["components/AssetRow.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1,105 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.AssetsFilterBar=AssetsFilterBar;var _reactNative=require("react-native"),_sharedUi=require("@buoy-gg/shared-ui"),_format=require("../format"),_testIDs=require("../utils/testIDs"),_jsxRuntime=require("react/jsx-runtime");function AssetsFilterBar({stats:e,duplicateCount:t,filter:r,onChange:a}){const s=[{key:"all",label:`ALL ${e.total}`,accent:_sharedUi.night.color.textSecondary},{key:"duplicates",label:`DUPLICATES ${t}`,accent:"#FF9F1C"}];for(const t of Object.keys(e.byKind)){const r=e.byKind[t];r.count>0&&s.push({key:t,label:`${_format.KIND_LABELS[t]} ${r.count}`,accent:_format.KIND_COLORS[t]})}return e.neverLoaded>0&&s.push({key:"unused",label:`NOT OBSERVED ${e.neverLoaded}`,accent:"#FF9F1C"}),s.length<=1?null:(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.bar,testID:_testIDs.ASSETS_TEST_IDS.filterBar,children:s.map(e=>{const t=e.key===r;return(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{accessibilityRole:"button",accessibilityState:{selected:t},testID:(0,_testIDs.assetFilterTestID)(e.key),style:[styles.chip,t&&{borderColor:e.accent,backgroundColor:`${e.accent}1A`}],onPress:()=>a(t?"all":e.key),children:(0,_jsxRuntime.jsx)(_reactNative.Text,{testID:`${(0,_testIDs.assetFilterTestID)(e.key)}-label`,style:[styles.chipText,{color:t?e.accent:_sharedUi.night.color.textSecondary}],children:e.label})},e.key)})})}const styles=_reactNative.StyleSheet.create({bar:{flexDirection:"row",flexWrap:"wrap",gap:6,paddingHorizontal:10,paddingVertical:8},chip:{borderWidth:1,borderColor:_sharedUi.night.color.border,backgroundColor:_sharedUi.night.color.surface,borderRadius:999,paddingHorizontal:10,paddingVertical:5},chipText:{fontSize:10,fontWeight:"700",letterSpacing:.4,lineHeight:13}});
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.AssetsFilterBar = AssetsFilterBar;
7
+ var _reactNative = require("react-native");
8
+ var _sharedUi = require("@buoy-gg/shared-ui");
9
+ var _format = require("../format");
10
+ var _testIDs = require("../utils/testIDs");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ /**
13
+ * AssetsFilterBar — kind filter pills with counts, styled like the network
14
+ * tool's bordered pills: outlined, kind-accent-colored when active. Wrapping
15
+ * row, not a horizontal ScrollView (same height-measurement pitfall the
16
+ * images tool documents).
17
+ */
18
+
19
+ function AssetsFilterBar({
20
+ stats,
21
+ duplicateCount,
22
+ filter,
23
+ onChange
24
+ }) {
25
+ const chips = [{
26
+ key: "all",
27
+ label: `ALL ${stats.total}`,
28
+ accent: _sharedUi.night.color.textSecondary
29
+ }, {
30
+ key: "duplicates",
31
+ label: `DUPLICATES ${duplicateCount}`,
32
+ accent: "#FF9F1C"
33
+ }];
34
+ for (const kind of Object.keys(stats.byKind)) {
35
+ const entry = stats.byKind[kind];
36
+ if (entry.count > 0) {
37
+ chips.push({
38
+ key: kind,
39
+ label: `${_format.KIND_LABELS[kind]} ${entry.count}`,
40
+ accent: _format.KIND_COLORS[kind]
41
+ });
42
+ }
43
+ }
44
+ if (stats.neverLoaded > 0) {
45
+ // Amber, not semantic.warning — the bright yellow reads as an alarm.
46
+ chips.push({
47
+ key: "unused",
48
+ label: `NOT OBSERVED ${stats.neverLoaded}`,
49
+ accent: "#FF9F1C"
50
+ });
51
+ }
52
+ if (chips.length <= 1) return null;
53
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
54
+ style: styles.bar,
55
+ testID: _testIDs.ASSETS_TEST_IDS.filterBar,
56
+ children: chips.map(chip => {
57
+ const active = chip.key === filter;
58
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
59
+ accessibilityRole: "button",
60
+ accessibilityState: {
61
+ selected: active
62
+ },
63
+ testID: (0, _testIDs.assetFilterTestID)(chip.key),
64
+ style: [styles.chip, active && {
65
+ borderColor: chip.accent,
66
+ backgroundColor: `${chip.accent}1A`
67
+ }]
68
+ // Tapping the active chip again untoggles back to ALL.
69
+ ,
70
+ onPress: () => onChange(active ? "all" : chip.key),
71
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
72
+ testID: `${(0, _testIDs.assetFilterTestID)(chip.key)}-label`,
73
+ style: [styles.chipText, {
74
+ color: active ? chip.accent : _sharedUi.night.color.textSecondary
75
+ }],
76
+ children: chip.label
77
+ })
78
+ }, chip.key);
79
+ })
80
+ });
81
+ }
82
+ const styles = _reactNative.StyleSheet.create({
83
+ bar: {
84
+ flexDirection: "row",
85
+ flexWrap: "wrap",
86
+ gap: 6,
87
+ paddingHorizontal: 10,
88
+ paddingVertical: 8
89
+ },
90
+ chip: {
91
+ borderWidth: 1,
92
+ borderColor: _sharedUi.night.color.border,
93
+ backgroundColor: _sharedUi.night.color.surface,
94
+ borderRadius: 999,
95
+ paddingHorizontal: 10,
96
+ paddingVertical: 5
97
+ },
98
+ chipText: {
99
+ fontSize: 10,
100
+ fontWeight: "700",
101
+ letterSpacing: 0.4,
102
+ lineHeight: 13
103
+ }
104
+ });
105
+ //# sourceMappingURL=AssetsFilterBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_sharedUi","_format","_testIDs","_jsxRuntime","AssetsFilterBar","stats","duplicateCount","filter","onChange","chips","key","label","total","accent","night","color","textSecondary","kind","Object","keys","byKind","entry","count","push","KIND_LABELS","KIND_COLORS","neverLoaded","length","jsx","View","style","styles","bar","testID","ASSETS_TEST_IDS","filterBar","children","map","chip","active","TouchableOpacity","accessibilityRole","accessibilityState","selected","assetFilterTestID","borderColor","backgroundColor","onPress","Text","chipText","StyleSheet","create","flexDirection","flexWrap","gap","paddingHorizontal","paddingVertical","borderWidth","border","surface","borderRadius","fontSize","fontWeight","letterSpacing","lineHeight"],"sourceRoot":"../../../src","sources":["components/AssetsFilterBar.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1,73 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.AssetsHeader=AssetsHeader;var _sharedUi=require("@buoy-gg/shared-ui"),_format=require("../format"),_testIDs=require("../utils/testIDs"),_jsxRuntime=require("react/jsx-runtime");function AssetsHeader({stats:e,measuring:t,discovering:s=!1,detailOpen:a,detailIndex:r=-1,detailTotal:i=0,onCloseDetail:o,onClear:n,getReport:d,onBack:l}){if(a){const e=r>=0&&i>0?`${r+1} of ${i}`:void 0;return(0,_jsxRuntime.jsxs)(_sharedUi.ModalHeader,{children:[(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Navigation,{onBack:o}),(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Content,{title:"Asset detail",subtitle:e,testID:_testIDs.ASSETS_TEST_IDS.title}),(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Actions,{children:(0,_jsxRuntime.jsx)(_sharedUi.ToolbarCopyButton,{value:d,testID:_testIDs.ASSETS_TEST_IDS.copy})})]})}const _=[`${e.total} assets${s?" so far":""}`];if(e.totalBytes>0&&!t&&!s){const t=e.measuredCount<e.total?"+":"";_.push(`${(0,_format.formatBytes)(e.totalBytes)}${t}`)}return e.neverLoaded>0&&_.push(`${e.neverLoaded} not observed`),e.fontFamilies>0&&_.push(`${e.fontFamilies} fonts`),(0,_jsxRuntime.jsxs)(_sharedUi.ModalHeader,{children:[l?(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Navigation,{onBack:l}):null,(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Content,{title:"Assets",subtitle:_.join(" · "),testID:_testIDs.ASSETS_TEST_IDS.title}),(0,_jsxRuntime.jsxs)(_sharedUi.ModalHeader.Actions,{children:[(0,_jsxRuntime.jsx)(_sharedUi.ToolbarCopyButton,{value:d,testID:_testIDs.ASSETS_TEST_IDS.copy}),(0,_jsxRuntime.jsx)(_sharedUi.ToolbarClearButton,{onPress:n,testID:_testIDs.ASSETS_TEST_IDS.clear})]})]})}
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.AssetsHeader = AssetsHeader;
7
+ var _sharedUi = require("@buoy-gg/shared-ui");
8
+ var _format = require("../format");
9
+ var _testIDs = require("../utils/testIDs");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ /**
12
+ * AssetsHeader — shared ModalHeader wiring, matching the Images/Console
13
+ * header pattern. List mode shows inventory totals plus the shared
14
+ * ToolbarCopyButton (full markdown report); detail mode shows back
15
+ * navigation and the single-asset report.
16
+ */
17
+
18
+ function AssetsHeader({
19
+ stats,
20
+ measuring,
21
+ discovering = false,
22
+ detailOpen,
23
+ detailIndex = -1,
24
+ detailTotal = 0,
25
+ onCloseDetail,
26
+ onClear,
27
+ getReport,
28
+ onBack
29
+ }) {
30
+ if (detailOpen) {
31
+ const counter = detailIndex >= 0 && detailTotal > 0 ? `${detailIndex + 1} of ${detailTotal}` : undefined;
32
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_sharedUi.ModalHeader, {
33
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Navigation, {
34
+ onBack: onCloseDetail
35
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Content, {
36
+ title: "Asset detail",
37
+ subtitle: counter,
38
+ testID: _testIDs.ASSETS_TEST_IDS.title
39
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Actions, {
40
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ToolbarCopyButton, {
41
+ value: getReport,
42
+ testID: _testIDs.ASSETS_TEST_IDS.copy
43
+ })
44
+ })]
45
+ });
46
+ }
47
+ const subtitleParts = [`${stats.total} assets${discovering ? " so far" : ""}`];
48
+ // A mid-measure byte total reads as nonsense ("653 B+") — wait it out.
49
+ if (stats.totalBytes > 0 && !measuring && !discovering) {
50
+ const partial = stats.measuredCount < stats.total ? "+" : "";
51
+ subtitleParts.push(`${(0, _format.formatBytes)(stats.totalBytes)}${partial}`);
52
+ }
53
+ if (stats.neverLoaded > 0) subtitleParts.push(`${stats.neverLoaded} not observed`);
54
+ if (stats.fontFamilies > 0) subtitleParts.push(`${stats.fontFamilies} fonts`);
55
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_sharedUi.ModalHeader, {
56
+ children: [onBack ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Navigation, {
57
+ onBack: onBack
58
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Content, {
59
+ title: "Assets",
60
+ subtitle: subtitleParts.join(" · "),
61
+ testID: _testIDs.ASSETS_TEST_IDS.title
62
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_sharedUi.ModalHeader.Actions, {
63
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ToolbarCopyButton, {
64
+ value: getReport,
65
+ testID: _testIDs.ASSETS_TEST_IDS.copy
66
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ToolbarClearButton, {
67
+ onPress: onClear,
68
+ testID: _testIDs.ASSETS_TEST_IDS.clear
69
+ })]
70
+ })]
71
+ });
72
+ }
73
+ //# sourceMappingURL=AssetsHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_sharedUi","require","_format","_testIDs","_jsxRuntime","AssetsHeader","stats","measuring","discovering","detailOpen","detailIndex","detailTotal","onCloseDetail","onClear","getReport","onBack","counter","undefined","jsxs","ModalHeader","children","jsx","Navigation","Content","title","subtitle","testID","ASSETS_TEST_IDS","Actions","ToolbarCopyButton","value","copy","subtitleParts","total","totalBytes","partial","measuredCount","push","formatBytes","neverLoaded","fontFamilies","join","ToolbarClearButton","onPress","clear"],"sourceRoot":"../../../src","sources":["components/AssetsHeader.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1,19 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ASSETS_ICON_COLOR",{enumerable:!0,get:function(){return _sharedUi.ASSETS_ICON_COLOR}}),Object.defineProperty(exports,"AssetsIcon",{enumerable:!0,get:function(){return _sharedUi.AssetsIcon}});var _sharedUi=require("@buoy-gg/shared-ui");
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "ASSETS_ICON_COLOR", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _sharedUi.ASSETS_ICON_COLOR;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "AssetsIcon", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _sharedUi.AssetsIcon;
16
+ }
17
+ });
18
+ var _sharedUi = require("@buoy-gg/shared-ui");
19
+ //# sourceMappingURL=AssetsIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_sharedUi","require"],"sourceRoot":"../../../src","sources":["components/AssetsIcon.tsx"],"mappings":";;;;;;;;;;;;;;;;;AAQA,IAAAA,SAAA,GAAAC,OAAA","ignoreList":[]}
@@ -1 +1,81 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.AssetsListControls=AssetsListControls;var _reactNative=require("react-native"),_sharedUi=require("@buoy-gg/shared-ui"),_testIDs=require("../utils/testIDs"),_jsxRuntime=require("react/jsx-runtime");const NEXT_SORT={size:"name",name:"type",type:"size"};function AssetsListControls({query:e,onQueryChange:t,sort:r,onSortChange:o}){return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.row,children:[(0,_jsxRuntime.jsx)(_reactNative.TextInput,{style:styles.input,value:e,onChangeText:t,placeholder:"Search assets…",placeholderTextColor:_sharedUi.night.color.placeholder,autoCapitalize:"none",autoCorrect:!1,testID:_testIDs.ASSETS_TEST_IDS.search}),(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{style:styles.button,onPress:()=>o(NEXT_SORT[r]),testID:_testIDs.ASSETS_TEST_IDS.sort,children:(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:styles.buttonText,testID:`${_testIDs.ASSETS_TEST_IDS.sort}-label`,children:["↓ ",r.toUpperCase()]})})]})}const styles=_reactNative.StyleSheet.create({row:{flexDirection:"row",alignItems:"center",gap:8,paddingHorizontal:10,paddingBottom:8},input:{flex:1,backgroundColor:_sharedUi.night.color.surfaceElevated,borderWidth:1,borderColor:_sharedUi.night.color.border,borderRadius:8,paddingHorizontal:10,paddingVertical:6,color:_sharedUi.night.color.text,fontSize:12},button:{backgroundColor:_sharedUi.night.color.surface,borderWidth:1,borderColor:_sharedUi.night.color.border,borderRadius:8,paddingHorizontal:10,paddingVertical:7},buttonText:{color:_sharedUi.night.color.textSecondary,fontSize:10,fontWeight:"700",letterSpacing:.5}});
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.AssetsListControls = AssetsListControls;
7
+ var _reactNative = require("react-native");
8
+ var _sharedUi = require("@buoy-gg/shared-ui");
9
+ var _testIDs = require("../utils/testIDs");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ /** Asset list search and sort controls. */
12
+
13
+ const NEXT_SORT = {
14
+ size: "name",
15
+ name: "type",
16
+ type: "size"
17
+ };
18
+ function AssetsListControls({
19
+ query,
20
+ onQueryChange,
21
+ sort,
22
+ onSortChange
23
+ }) {
24
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
25
+ style: styles.row,
26
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
27
+ style: styles.input,
28
+ value: query,
29
+ onChangeText: onQueryChange,
30
+ placeholder: "Search assets\u2026",
31
+ placeholderTextColor: _sharedUi.night.color.placeholder,
32
+ autoCapitalize: "none",
33
+ autoCorrect: false,
34
+ testID: _testIDs.ASSETS_TEST_IDS.search
35
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
36
+ style: styles.button,
37
+ onPress: () => onSortChange(NEXT_SORT[sort]),
38
+ testID: _testIDs.ASSETS_TEST_IDS.sort,
39
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
40
+ style: styles.buttonText,
41
+ testID: `${_testIDs.ASSETS_TEST_IDS.sort}-label`,
42
+ children: ["\u2193 ", sort.toUpperCase()]
43
+ })
44
+ })]
45
+ });
46
+ }
47
+ const styles = _reactNative.StyleSheet.create({
48
+ row: {
49
+ flexDirection: "row",
50
+ alignItems: "center",
51
+ gap: 8,
52
+ paddingHorizontal: 10,
53
+ paddingBottom: 8
54
+ },
55
+ input: {
56
+ flex: 1,
57
+ backgroundColor: _sharedUi.night.color.surfaceElevated,
58
+ borderWidth: 1,
59
+ borderColor: _sharedUi.night.color.border,
60
+ borderRadius: 8,
61
+ paddingHorizontal: 10,
62
+ paddingVertical: 6,
63
+ color: _sharedUi.night.color.text,
64
+ fontSize: 12
65
+ },
66
+ button: {
67
+ backgroundColor: _sharedUi.night.color.surface,
68
+ borderWidth: 1,
69
+ borderColor: _sharedUi.night.color.border,
70
+ borderRadius: 8,
71
+ paddingHorizontal: 10,
72
+ paddingVertical: 7
73
+ },
74
+ buttonText: {
75
+ color: _sharedUi.night.color.textSecondary,
76
+ fontSize: 10,
77
+ fontWeight: "700",
78
+ letterSpacing: 0.5
79
+ }
80
+ });
81
+ //# sourceMappingURL=AssetsListControls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_sharedUi","_testIDs","_jsxRuntime","NEXT_SORT","size","name","type","AssetsListControls","query","onQueryChange","sort","onSortChange","jsxs","View","style","styles","row","children","jsx","TextInput","input","value","onChangeText","placeholder","placeholderTextColor","night","color","autoCapitalize","autoCorrect","testID","ASSETS_TEST_IDS","search","TouchableOpacity","button","onPress","Text","buttonText","toUpperCase","StyleSheet","create","flexDirection","alignItems","gap","paddingHorizontal","paddingBottom","flex","backgroundColor","surfaceElevated","borderWidth","borderColor","border","borderRadius","paddingVertical","text","fontSize","surface","textSecondary","fontWeight","letterSpacing"],"sourceRoot":"../../../src","sources":["components/AssetsListControls.tsx"],"mappings":";;;;;;AAEA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAAmD,IAAAG,WAAA,GAAAH,OAAA;AAJnD;;AAQA,MAAMI,SAAuC,GAAG;EAC9CC,IAAI,EAAE,MAAM;EACZC,IAAI,EAAE,MAAM;EACZC,IAAI,EAAE;AACR,CAAC;AASM,SAASC,kBAAkBA,CAAC;EACjCC,KAAK;EACLC,aAAa;EACbC,IAAI;EACJC;AACuB,CAAC,EAAE;EAC1B,oBACE,IAAAT,WAAA,CAAAU,IAAA,EAACd,YAAA,CAAAe,IAAI;IAACC,KAAK,EAAEC,MAAM,CAACC,GAAI;IAAAC,QAAA,gBACtB,IAAAf,WAAA,CAAAgB,GAAA,EAACpB,YAAA,CAAAqB,SAAS;MACRL,KAAK,EAAEC,MAAM,CAACK,KAAM;MACpBC,KAAK,EAAEb,KAAM;MACbc,YAAY,EAAEb,aAAc;MAC5Bc,WAAW,EAAC,qBAAgB;MAC5BC,oBAAoB,EAAEC,eAAK,CAACC,KAAK,CAACH,WAAY;MAC9CI,cAAc,EAAC,MAAM;MACrBC,WAAW,EAAE,KAAM;MACnBC,MAAM,EAAEC,wBAAe,CAACC;IAAO,CAChC,CAAC,eACF,IAAA7B,WAAA,CAAAgB,GAAA,EAACpB,YAAA,CAAAkC,gBAAgB;MACflB,KAAK,EAAEC,MAAM,CAACkB,MAAO;MACrBC,OAAO,EAAEA,CAAA,KAAMvB,YAAY,CAACR,SAAS,CAACO,IAAI,CAAC,CAAE;MAC7CmB,MAAM,EAAEC,wBAAe,CAACpB,IAAK;MAAAO,QAAA,eAE7B,IAAAf,WAAA,CAAAU,IAAA,EAACd,YAAA,CAAAqC,IAAI;QAACrB,KAAK,EAAEC,MAAM,CAACqB,UAAW;QAACP,MAAM,EAAE,GAAGC,wBAAe,CAACpB,IAAI,QAAS;QAAAO,QAAA,GAAC,SACrE,EAACP,IAAI,CAAC2B,WAAW,CAAC,CAAC;MAAA,CACjB;IAAC,CACS,CAAC;EAAA,CACf,CAAC;AAEX;AAEA,MAAMtB,MAAM,GAAGuB,uBAAU,CAACC,MAAM,CAAC;EAC/BvB,GAAG,EAAE;IACHwB,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,GAAG,EAAE,CAAC;IACNC,iBAAiB,EAAE,EAAE;IACrBC,aAAa,EAAE;EACjB,CAAC;EACDxB,KAAK,EAAE;IACLyB,IAAI,EAAE,CAAC;IACPC,eAAe,EAAErB,eAAK,CAACC,KAAK,CAACqB,eAAe;IAC5CC,WAAW,EAAE,CAAC;IACdC,WAAW,EAAExB,eAAK,CAACC,KAAK,CAACwB,MAAM;IAC/BC,YAAY,EAAE,CAAC;IACfR,iBAAiB,EAAE,EAAE;IACrBS,eAAe,EAAE,CAAC;IAClB1B,KAAK,EAAED,eAAK,CAACC,KAAK,CAAC2B,IAAI;IACvBC,QAAQ,EAAE;EACZ,CAAC;EACDrB,MAAM,EAAE;IACNa,eAAe,EAAErB,eAAK,CAACC,KAAK,CAAC6B,OAAO;IACpCP,WAAW,EAAE,CAAC;IACdC,WAAW,EAAExB,eAAK,CAACC,KAAK,CAACwB,MAAM;IAC/BC,YAAY,EAAE,CAAC;IACfR,iBAAiB,EAAE,EAAE;IACrBS,eAAe,EAAE;EACnB,CAAC;EACDhB,UAAU,EAAE;IACVV,KAAK,EAAED,eAAK,CAACC,KAAK,CAAC8B,aAAa;IAChCF,QAAQ,EAAE,EAAE;IACZG,UAAU,EAAE,KAAK;IACjBC,aAAa,EAAE;EACjB;AACF,CAAC,CAAC","ignoreList":[]}