@buoy-gg/storage 1.7.2

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 (187) hide show
  1. package/README.md +607 -0
  2. package/lib/commonjs/index.js +34 -0
  3. package/lib/commonjs/package.json +1 -0
  4. package/lib/commonjs/preset.js +94 -0
  5. package/lib/commonjs/storage/components/DiffViewer/DiffOptionsPanel.js +356 -0
  6. package/lib/commonjs/storage/components/DiffViewer/TreeDiffViewer.js +29 -0
  7. package/lib/commonjs/storage/components/DiffViewer/components/DiffSummary.js +121 -0
  8. package/lib/commonjs/storage/components/DiffViewer/modes/ThemedSplitView.js +419 -0
  9. package/lib/commonjs/storage/components/DiffViewer/themes/diffThemes.js +122 -0
  10. package/lib/commonjs/storage/components/GameUIStorageBrowser.js +924 -0
  11. package/lib/commonjs/storage/components/GameUIStorageStats.js +746 -0
  12. package/lib/commonjs/storage/components/MMKVInstanceInfoPanel.js +257 -0
  13. package/lib/commonjs/storage/components/MMKVInstanceSelector.js +418 -0
  14. package/lib/commonjs/storage/components/SelectionActionBar.js +224 -0
  15. package/lib/commonjs/storage/components/StorageActionButtons.js +239 -0
  16. package/lib/commonjs/storage/components/StorageActions.js +192 -0
  17. package/lib/commonjs/storage/components/StorageBrowserMode.js +31 -0
  18. package/lib/commonjs/storage/components/StorageEventDetailContent.js +1025 -0
  19. package/lib/commonjs/storage/components/StorageEventFilterView.js +141 -0
  20. package/lib/commonjs/storage/components/StorageEventListener.js +357 -0
  21. package/lib/commonjs/storage/components/StorageEventsSection.js +24 -0
  22. package/lib/commonjs/storage/components/StorageFilterCards.js +345 -0
  23. package/lib/commonjs/storage/components/StorageFilterViewV2.js +42 -0
  24. package/lib/commonjs/storage/components/StorageKeyCard.js +516 -0
  25. package/lib/commonjs/storage/components/StorageKeyRow.js +356 -0
  26. package/lib/commonjs/storage/components/StorageKeySection.js +105 -0
  27. package/lib/commonjs/storage/components/StorageKeyStats.js +344 -0
  28. package/lib/commonjs/storage/components/StorageModalWithTabs.js +871 -0
  29. package/lib/commonjs/storage/components/StorageSection.js +43 -0
  30. package/lib/commonjs/storage/hooks/useAsyncStorageKeys.js +126 -0
  31. package/lib/commonjs/storage/hooks/useMMKVInstances.js +221 -0
  32. package/lib/commonjs/storage/hooks/useMMKVKeys.js +362 -0
  33. package/lib/commonjs/storage/hooks/useTickEverySecond.js +21 -0
  34. package/lib/commonjs/storage/index.js +148 -0
  35. package/lib/commonjs/storage/types.js +5 -0
  36. package/lib/commonjs/storage/utils/AsyncStorageListener.js +510 -0
  37. package/lib/commonjs/storage/utils/MMKVInstanceRegistry.js +202 -0
  38. package/lib/commonjs/storage/utils/MMKVListener.js +380 -0
  39. package/lib/commonjs/storage/utils/clearAllStorage.js +47 -0
  40. package/lib/commonjs/storage/utils/index.js +180 -0
  41. package/lib/commonjs/storage/utils/lineDiff.js +363 -0
  42. package/lib/commonjs/storage/utils/mmkvAvailability.js +62 -0
  43. package/lib/commonjs/storage/utils/mmkvTypeDetection.js +139 -0
  44. package/lib/commonjs/storage/utils/objectDiff.js +157 -0
  45. package/lib/commonjs/storage/utils/safeAsyncStorage.js +140 -0
  46. package/lib/commonjs/storage/utils/storageActionHelpers.js +46 -0
  47. package/lib/commonjs/storage/utils/storageQueryUtils.js +35 -0
  48. package/lib/commonjs/storage/utils/valueType.js +18 -0
  49. package/lib/module/index.js +7 -0
  50. package/lib/module/preset.js +89 -0
  51. package/lib/module/storage/components/DiffViewer/DiffOptionsPanel.js +352 -0
  52. package/lib/module/storage/components/DiffViewer/TreeDiffViewer.js +25 -0
  53. package/lib/module/storage/components/DiffViewer/components/DiffSummary.js +117 -0
  54. package/lib/module/storage/components/DiffViewer/modes/ThemedSplitView.js +415 -0
  55. package/lib/module/storage/components/DiffViewer/themes/diffThemes.js +118 -0
  56. package/lib/module/storage/components/GameUIStorageBrowser.js +922 -0
  57. package/lib/module/storage/components/GameUIStorageStats.js +742 -0
  58. package/lib/module/storage/components/MMKVInstanceInfoPanel.js +253 -0
  59. package/lib/module/storage/components/MMKVInstanceSelector.js +414 -0
  60. package/lib/module/storage/components/SelectionActionBar.js +221 -0
  61. package/lib/module/storage/components/StorageActionButtons.js +236 -0
  62. package/lib/module/storage/components/StorageActions.js +189 -0
  63. package/lib/module/storage/components/StorageBrowserMode.js +27 -0
  64. package/lib/module/storage/components/StorageEventDetailContent.js +1020 -0
  65. package/lib/module/storage/components/StorageEventFilterView.js +137 -0
  66. package/lib/module/storage/components/StorageEventListener.js +354 -0
  67. package/lib/module/storage/components/StorageEventsSection.js +20 -0
  68. package/lib/module/storage/components/StorageFilterCards.js +341 -0
  69. package/lib/module/storage/components/StorageFilterViewV2.js +38 -0
  70. package/lib/module/storage/components/StorageKeyCard.js +513 -0
  71. package/lib/module/storage/components/StorageKeyRow.js +353 -0
  72. package/lib/module/storage/components/StorageKeySection.js +101 -0
  73. package/lib/module/storage/components/StorageKeyStats.js +340 -0
  74. package/lib/module/storage/components/StorageModalWithTabs.js +867 -0
  75. package/lib/module/storage/components/StorageSection.js +40 -0
  76. package/lib/module/storage/hooks/useAsyncStorageKeys.js +121 -0
  77. package/lib/module/storage/hooks/useMMKVInstances.js +216 -0
  78. package/lib/module/storage/hooks/useMMKVKeys.js +359 -0
  79. package/lib/module/storage/hooks/useTickEverySecond.js +18 -0
  80. package/lib/module/storage/index.js +25 -0
  81. package/lib/module/storage/types.js +3 -0
  82. package/lib/module/storage/utils/AsyncStorageListener.js +500 -0
  83. package/lib/module/storage/utils/MMKVInstanceRegistry.js +196 -0
  84. package/lib/module/storage/utils/MMKVListener.js +367 -0
  85. package/lib/module/storage/utils/clearAllStorage.js +42 -0
  86. package/lib/module/storage/utils/index.js +22 -0
  87. package/lib/module/storage/utils/lineDiff.js +359 -0
  88. package/lib/module/storage/utils/mmkvAvailability.js +56 -0
  89. package/lib/module/storage/utils/mmkvTypeDetection.js +133 -0
  90. package/lib/module/storage/utils/objectDiff.js +153 -0
  91. package/lib/module/storage/utils/safeAsyncStorage.js +134 -0
  92. package/lib/module/storage/utils/storageActionHelpers.js +42 -0
  93. package/lib/module/storage/utils/storageQueryUtils.js +30 -0
  94. package/lib/module/storage/utils/valueType.js +14 -0
  95. package/lib/typescript/index.d.ts +3 -0
  96. package/lib/typescript/index.d.ts.map +1 -0
  97. package/lib/typescript/preset.d.ts +90 -0
  98. package/lib/typescript/preset.d.ts.map +1 -0
  99. package/lib/typescript/storage/components/DiffViewer/DiffOptionsPanel.d.ts +18 -0
  100. package/lib/typescript/storage/components/DiffViewer/DiffOptionsPanel.d.ts.map +1 -0
  101. package/lib/typescript/storage/components/DiffViewer/TreeDiffViewer.d.ts +7 -0
  102. package/lib/typescript/storage/components/DiffViewer/TreeDiffViewer.d.ts.map +1 -0
  103. package/lib/typescript/storage/components/DiffViewer/components/DiffSummary.d.ts +12 -0
  104. package/lib/typescript/storage/components/DiffViewer/components/DiffSummary.d.ts.map +1 -0
  105. package/lib/typescript/storage/components/DiffViewer/modes/ThemedSplitView.d.ts +13 -0
  106. package/lib/typescript/storage/components/DiffViewer/modes/ThemedSplitView.d.ts.map +1 -0
  107. package/lib/typescript/storage/components/DiffViewer/themes/diffThemes.d.ts +64 -0
  108. package/lib/typescript/storage/components/DiffViewer/themes/diffThemes.d.ts.map +1 -0
  109. package/lib/typescript/storage/components/GameUIStorageBrowser.d.ts +16 -0
  110. package/lib/typescript/storage/components/GameUIStorageBrowser.d.ts.map +1 -0
  111. package/lib/typescript/storage/components/GameUIStorageStats.d.ts +7 -0
  112. package/lib/typescript/storage/components/GameUIStorageStats.d.ts.map +1 -0
  113. package/lib/typescript/storage/components/MMKVInstanceInfoPanel.d.ts +42 -0
  114. package/lib/typescript/storage/components/MMKVInstanceInfoPanel.d.ts.map +1 -0
  115. package/lib/typescript/storage/components/MMKVInstanceSelector.d.ts +35 -0
  116. package/lib/typescript/storage/components/MMKVInstanceSelector.d.ts.map +1 -0
  117. package/lib/typescript/storage/components/SelectionActionBar.d.ts +21 -0
  118. package/lib/typescript/storage/components/SelectionActionBar.d.ts.map +1 -0
  119. package/lib/typescript/storage/components/StorageActionButtons.d.ts +21 -0
  120. package/lib/typescript/storage/components/StorageActionButtons.d.ts.map +1 -0
  121. package/lib/typescript/storage/components/StorageActions.d.ts +10 -0
  122. package/lib/typescript/storage/components/StorageActions.d.ts.map +1 -0
  123. package/lib/typescript/storage/components/StorageBrowserMode.d.ts +18 -0
  124. package/lib/typescript/storage/components/StorageBrowserMode.d.ts.map +1 -0
  125. package/lib/typescript/storage/components/StorageEventDetailContent.d.ts +40 -0
  126. package/lib/typescript/storage/components/StorageEventDetailContent.d.ts.map +1 -0
  127. package/lib/typescript/storage/components/StorageEventFilterView.d.ts +11 -0
  128. package/lib/typescript/storage/components/StorageEventFilterView.d.ts.map +1 -0
  129. package/lib/typescript/storage/components/StorageEventListener.d.ts +6 -0
  130. package/lib/typescript/storage/components/StorageEventListener.d.ts.map +1 -0
  131. package/lib/typescript/storage/components/StorageEventsSection.d.ts +7 -0
  132. package/lib/typescript/storage/components/StorageEventsSection.d.ts.map +1 -0
  133. package/lib/typescript/storage/components/StorageFilterCards.d.ts +36 -0
  134. package/lib/typescript/storage/components/StorageFilterCards.d.ts.map +1 -0
  135. package/lib/typescript/storage/components/StorageFilterViewV2.d.ts +9 -0
  136. package/lib/typescript/storage/components/StorageFilterViewV2.d.ts.map +1 -0
  137. package/lib/typescript/storage/components/StorageKeyCard.d.ts +17 -0
  138. package/lib/typescript/storage/components/StorageKeyCard.d.ts.map +1 -0
  139. package/lib/typescript/storage/components/StorageKeyRow.d.ts +15 -0
  140. package/lib/typescript/storage/components/StorageKeyRow.d.ts.map +1 -0
  141. package/lib/typescript/storage/components/StorageKeySection.d.ts +25 -0
  142. package/lib/typescript/storage/components/StorageKeySection.d.ts.map +1 -0
  143. package/lib/typescript/storage/components/StorageKeyStats.d.ts +15 -0
  144. package/lib/typescript/storage/components/StorageKeyStats.d.ts.map +1 -0
  145. package/lib/typescript/storage/components/StorageModalWithTabs.d.ts +13 -0
  146. package/lib/typescript/storage/components/StorageModalWithTabs.d.ts.map +1 -0
  147. package/lib/typescript/storage/components/StorageSection.d.ts +10 -0
  148. package/lib/typescript/storage/components/StorageSection.d.ts.map +1 -0
  149. package/lib/typescript/storage/hooks/useAsyncStorageKeys.d.ts +10 -0
  150. package/lib/typescript/storage/hooks/useAsyncStorageKeys.d.ts.map +1 -0
  151. package/lib/typescript/storage/hooks/useMMKVInstances.d.ts +114 -0
  152. package/lib/typescript/storage/hooks/useMMKVInstances.d.ts.map +1 -0
  153. package/lib/typescript/storage/hooks/useMMKVKeys.d.ts +94 -0
  154. package/lib/typescript/storage/hooks/useMMKVKeys.d.ts.map +1 -0
  155. package/lib/typescript/storage/hooks/useTickEverySecond.d.ts +6 -0
  156. package/lib/typescript/storage/hooks/useTickEverySecond.d.ts.map +1 -0
  157. package/lib/typescript/storage/index.d.ts +15 -0
  158. package/lib/typescript/storage/index.d.ts.map +1 -0
  159. package/lib/typescript/storage/types.d.ts +41 -0
  160. package/lib/typescript/storage/types.d.ts.map +1 -0
  161. package/lib/typescript/storage/utils/AsyncStorageListener.d.ts +195 -0
  162. package/lib/typescript/storage/utils/AsyncStorageListener.d.ts.map +1 -0
  163. package/lib/typescript/storage/utils/MMKVInstanceRegistry.d.ts +224 -0
  164. package/lib/typescript/storage/utils/MMKVInstanceRegistry.d.ts.map +1 -0
  165. package/lib/typescript/storage/utils/MMKVListener.d.ts +218 -0
  166. package/lib/typescript/storage/utils/MMKVListener.d.ts.map +1 -0
  167. package/lib/typescript/storage/utils/clearAllStorage.d.ts +11 -0
  168. package/lib/typescript/storage/utils/clearAllStorage.d.ts.map +1 -0
  169. package/lib/typescript/storage/utils/index.d.ts +8 -0
  170. package/lib/typescript/storage/utils/index.d.ts.map +1 -0
  171. package/lib/typescript/storage/utils/lineDiff.d.ts +34 -0
  172. package/lib/typescript/storage/utils/lineDiff.d.ts.map +1 -0
  173. package/lib/typescript/storage/utils/mmkvAvailability.d.ts +23 -0
  174. package/lib/typescript/storage/utils/mmkvAvailability.d.ts.map +1 -0
  175. package/lib/typescript/storage/utils/mmkvTypeDetection.d.ts +71 -0
  176. package/lib/typescript/storage/utils/mmkvTypeDetection.d.ts.map +1 -0
  177. package/lib/typescript/storage/utils/objectDiff.d.ts +35 -0
  178. package/lib/typescript/storage/utils/objectDiff.d.ts.map +1 -0
  179. package/lib/typescript/storage/utils/safeAsyncStorage.d.ts +56 -0
  180. package/lib/typescript/storage/utils/safeAsyncStorage.d.ts.map +1 -0
  181. package/lib/typescript/storage/utils/storageActionHelpers.d.ts +5 -0
  182. package/lib/typescript/storage/utils/storageActionHelpers.d.ts.map +1 -0
  183. package/lib/typescript/storage/utils/storageQueryUtils.d.ts +6 -0
  184. package/lib/typescript/storage/utils/storageQueryUtils.d.ts.map +1 -0
  185. package/lib/typescript/storage/utils/valueType.d.ts +3 -0
  186. package/lib/typescript/storage/utils/valueType.d.ts.map +1 -0
  187. package/package.json +68 -0
@@ -0,0 +1,341 @@
1
+ "use strict";
2
+
3
+ import { View, Text, StyleSheet, TouchableOpacity } from "react-native";
4
+ import { macOSColors } from "@buoy-gg/shared-ui";
5
+ import { isMMKVAvailable } from "../utils/mmkvAvailability";
6
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
+ // Feature flags - set to true when implemented
8
+ const IS_MMKV_IMPLEMENTED = true; // ✅ MMKV support is now implemented
9
+ const IS_SECURE_STORE_IMPLEMENTED = false;
10
+
11
+ // Runtime availability checks
12
+ const IS_MMKV_AVAILABLE = isMMKVAvailable();
13
+ export function StorageFilterCards({
14
+ stats,
15
+ tabStats,
16
+ healthPercentage,
17
+ healthStatus,
18
+ healthColor,
19
+ activeFilter = "all",
20
+ onFilterChange,
21
+ activeStorageType = "all",
22
+ onStorageTypeChange
23
+ }) {
24
+ // Use tabStats if provided (for filtered counts), otherwise fall back to stats
25
+ const displayStats = tabStats || {
26
+ validCount: stats.presentRequiredCount + stats.optionalCount,
27
+ missingCount: stats.missingCount,
28
+ issuesCount: stats.wrongValueCount + stats.wrongTypeCount,
29
+ asyncCount: stats.asyncCount || 0,
30
+ mmkvCount: stats.mmkvCount || 0,
31
+ secureCount: stats.secureCount || 0,
32
+ totalCount: stats.totalCount
33
+ };
34
+ return /*#__PURE__*/_jsxs(View, {
35
+ style: styles.container,
36
+ children: [/*#__PURE__*/_jsxs(View, {
37
+ style: styles.filtersRow,
38
+ children: [/*#__PURE__*/_jsxs(TouchableOpacity, {
39
+ style: [styles.filterChip, activeFilter === "all" && [styles.filterChipActive, {
40
+ backgroundColor: macOSColors.background.hover,
41
+ borderColor: macOSColors.border.hover,
42
+ shadowColor: macOSColors.text.primary
43
+ }]],
44
+ onPress: () => onFilterChange?.("all"),
45
+ activeOpacity: 0.8,
46
+ children: [/*#__PURE__*/_jsx(Text, {
47
+ style: [styles.filterValue, {
48
+ color: macOSColors.text.primary
49
+ }],
50
+ children: displayStats.validCount
51
+ }), /*#__PURE__*/_jsx(Text, {
52
+ style: styles.filterLabel,
53
+ children: "Valid"
54
+ })]
55
+ }), /*#__PURE__*/_jsxs(TouchableOpacity, {
56
+ style: [styles.filterChip, activeFilter === "missing" && [styles.filterChipActive, {
57
+ backgroundColor: macOSColors.semantic.error + "10",
58
+ borderColor: macOSColors.semantic.error + "30",
59
+ shadowColor: macOSColors.semantic.error
60
+ }]],
61
+ onPress: () => onFilterChange?.("missing"),
62
+ activeOpacity: 0.8,
63
+ children: [/*#__PURE__*/_jsx(Text, {
64
+ style: [styles.filterValue, {
65
+ color: displayStats.missingCount > 0 ? macOSColors.semantic.error : macOSColors.text.muted
66
+ }],
67
+ children: displayStats.missingCount
68
+ }), /*#__PURE__*/_jsx(Text, {
69
+ style: styles.filterLabel,
70
+ children: "Missing"
71
+ })]
72
+ }), /*#__PURE__*/_jsxs(TouchableOpacity, {
73
+ style: [styles.filterChip, activeFilter === "issues" && [styles.filterChipActive, {
74
+ backgroundColor: macOSColors.semantic.warning + "10",
75
+ borderColor: macOSColors.semantic.warning + "30",
76
+ shadowColor: macOSColors.semantic.warning
77
+ }]],
78
+ onPress: () => onFilterChange?.("issues"),
79
+ activeOpacity: 0.8,
80
+ children: [/*#__PURE__*/_jsx(Text, {
81
+ style: [styles.filterValue, {
82
+ color: displayStats.issuesCount > 0 ? macOSColors.semantic.warning : macOSColors.text.muted
83
+ }],
84
+ children: displayStats.issuesCount
85
+ }), /*#__PURE__*/_jsx(Text, {
86
+ style: styles.filterLabel,
87
+ children: "Issues"
88
+ })]
89
+ })]
90
+ }), onStorageTypeChange && /*#__PURE__*/_jsxs(View, {
91
+ style: styles.typesRow,
92
+ children: [/*#__PURE__*/_jsxs(TouchableOpacity, {
93
+ style: [styles.typePill, {
94
+ borderColor: macOSColors.border.default
95
+ }, activeStorageType === "all" && [styles.typePillActive, {
96
+ backgroundColor: macOSColors.background.hover,
97
+ borderColor: macOSColors.border.hover
98
+ }]],
99
+ onPress: () => onStorageTypeChange?.("all"),
100
+ activeOpacity: 0.8,
101
+ children: [/*#__PURE__*/_jsx(Text, {
102
+ style: [styles.typePillLabel, activeStorageType === "all" && {
103
+ color: macOSColors.text.primary,
104
+ fontWeight: "600"
105
+ }],
106
+ children: "All Types"
107
+ }), /*#__PURE__*/_jsx(Text, {
108
+ style: [styles.typePillValue, activeStorageType === "all" && {
109
+ color: macOSColors.text.primary
110
+ }, activeStorageType !== "all" && {
111
+ color: macOSColors.text.muted
112
+ }],
113
+ children: displayStats.totalCount
114
+ })]
115
+ }), /*#__PURE__*/_jsxs(TouchableOpacity, {
116
+ style: [styles.typePill, {
117
+ borderColor: macOSColors.border.default
118
+ }, activeStorageType === "async" && [styles.typePillActive, {
119
+ backgroundColor: macOSColors.semantic.warning + "15",
120
+ borderColor: macOSColors.semantic.warning + "40"
121
+ }]],
122
+ onPress: () => onStorageTypeChange?.("async"),
123
+ activeOpacity: 0.8,
124
+ children: [/*#__PURE__*/_jsx(Text, {
125
+ style: [styles.typePillLabel, activeStorageType === "async" && {
126
+ color: macOSColors.semantic.warning,
127
+ fontWeight: "600"
128
+ }],
129
+ children: "Async"
130
+ }), /*#__PURE__*/_jsx(Text, {
131
+ style: [styles.typePillValue, activeStorageType === "async" ? {
132
+ color: macOSColors.semantic.warning
133
+ } : {
134
+ color: macOSColors.text.muted
135
+ }],
136
+ children: displayStats.asyncCount
137
+ })]
138
+ }), /*#__PURE__*/_jsxs(TouchableOpacity, {
139
+ style: [styles.typePill, {
140
+ borderColor: macOSColors.border.default
141
+ }, activeStorageType === "mmkv" && [styles.typePillActive, {
142
+ backgroundColor: macOSColors.semantic.info + "15",
143
+ borderColor: macOSColors.semantic.info + "40"
144
+ }]],
145
+ onPress: () => onStorageTypeChange?.("mmkv"),
146
+ activeOpacity: 0.8,
147
+ children: [/*#__PURE__*/_jsx(Text, {
148
+ style: [styles.typePillLabel, activeStorageType === "mmkv" && {
149
+ color: macOSColors.semantic.info,
150
+ fontWeight: "600"
151
+ }],
152
+ children: "MMKV"
153
+ }), /*#__PURE__*/_jsx(Text, {
154
+ style: [styles.typePillValue, activeStorageType === "mmkv" ? {
155
+ color: macOSColors.semantic.info
156
+ } : {
157
+ color: macOSColors.text.muted
158
+ }],
159
+ children: displayStats.mmkvCount
160
+ })]
161
+ }), /*#__PURE__*/_jsxs(TouchableOpacity, {
162
+ style: [styles.typePill, {
163
+ borderColor: macOSColors.border.default
164
+ }, activeStorageType === "secure" && [styles.typePillActive, {
165
+ backgroundColor: macOSColors.semantic.success + "15",
166
+ borderColor: macOSColors.semantic.success + "40"
167
+ }]],
168
+ onPress: () => onStorageTypeChange?.("secure"),
169
+ activeOpacity: 0.8,
170
+ children: [/*#__PURE__*/_jsx(Text, {
171
+ style: [styles.typePillLabel, activeStorageType === "secure" && {
172
+ color: macOSColors.semantic.success,
173
+ fontWeight: "600"
174
+ }],
175
+ children: "Secure"
176
+ }), /*#__PURE__*/_jsx(Text, {
177
+ style: [styles.typePillValue, activeStorageType === "secure" ? {
178
+ color: macOSColors.semantic.success
179
+ } : {
180
+ color: macOSColors.text.muted
181
+ }],
182
+ children: "Coming Soon"
183
+ })]
184
+ })]
185
+ })]
186
+ });
187
+ }
188
+ const styles = StyleSheet.create({
189
+ container: {
190
+ backgroundColor: macOSColors.background.card,
191
+ borderRadius: 12,
192
+ padding: 16,
193
+ borderWidth: 1,
194
+ borderColor: macOSColors.border.default + "50",
195
+ gap: 14,
196
+ shadowColor: "#000000",
197
+ shadowOpacity: 0.03,
198
+ shadowRadius: 12,
199
+ shadowOffset: {
200
+ width: 0,
201
+ height: 2
202
+ }
203
+ },
204
+ topRow: {
205
+ flexDirection: "row",
206
+ alignItems: "center",
207
+ justifyContent: "space-between"
208
+ },
209
+ titleLeft: {
210
+ flexDirection: "row",
211
+ alignItems: "center",
212
+ gap: 8,
213
+ flexShrink: 1
214
+ },
215
+ healthDot: {
216
+ width: 6,
217
+ height: 6,
218
+ borderRadius: 3
219
+ },
220
+ titleText: {
221
+ fontSize: 12,
222
+ fontWeight: "600",
223
+ color: macOSColors.text.primary,
224
+ letterSpacing: 0.5,
225
+ textTransform: "uppercase"
226
+ },
227
+ titleDivider: {
228
+ width: 4,
229
+ height: 1,
230
+ backgroundColor: macOSColors.border.default + "60",
231
+ marginHorizontal: 4
232
+ },
233
+ subtitleText: {
234
+ color: macOSColors.text.muted,
235
+ fontSize: 11
236
+ },
237
+ healthBadge: {
238
+ paddingHorizontal: 6,
239
+ paddingVertical: 2,
240
+ borderRadius: 6,
241
+ borderWidth: 1
242
+ },
243
+ healthBadgeText: {
244
+ fontSize: 10,
245
+ fontWeight: "600",
246
+ fontVariant: ["tabular-nums"]
247
+ },
248
+ // Health progress bar
249
+ healthProgressBar: {
250
+ height: 3,
251
+ borderRadius: 1.5,
252
+ backgroundColor: macOSColors.background.input,
253
+ overflow: "hidden"
254
+ },
255
+ healthProgressFill: {
256
+ height: 3,
257
+ borderRadius: 1.5
258
+ },
259
+ // Status filters
260
+ filtersRow: {
261
+ flexDirection: "row",
262
+ gap: 10
263
+ },
264
+ filterChip: {
265
+ flex: 1,
266
+ backgroundColor: macOSColors.background.input + "80",
267
+ borderRadius: 8,
268
+ borderWidth: 1,
269
+ borderColor: macOSColors.border.default + "30",
270
+ paddingVertical: 10,
271
+ paddingHorizontal: 12,
272
+ alignItems: "center",
273
+ justifyContent: "center",
274
+ minHeight: 44
275
+ },
276
+ filterChipActive: {
277
+ borderWidth: 1,
278
+ shadowOffset: {
279
+ width: 0,
280
+ height: 0
281
+ },
282
+ shadowOpacity: 0.1,
283
+ shadowRadius: 6,
284
+ elevation: 2,
285
+ transform: [{
286
+ scale: 1.005
287
+ }]
288
+ },
289
+ filterLabel: {
290
+ fontSize: 9,
291
+ color: macOSColors.text.muted,
292
+ textTransform: "uppercase",
293
+ letterSpacing: 0.5,
294
+ fontWeight: "500",
295
+ marginTop: 3
296
+ },
297
+ filterValue: {
298
+ fontSize: 18,
299
+ fontWeight: "600",
300
+ fontFamily: "monospace",
301
+ lineHeight: 20
302
+ },
303
+ // Storage type pills
304
+ typesRow: {
305
+ flexDirection: "row",
306
+ gap: 8,
307
+ marginTop: 2
308
+ },
309
+ typePill: {
310
+ flex: 1,
311
+ backgroundColor: macOSColors.background.input + "80",
312
+ borderRadius: 8,
313
+ borderWidth: 1,
314
+ borderColor: macOSColors.border.default + "30",
315
+ paddingVertical: 6,
316
+ paddingHorizontal: 8,
317
+ alignItems: "center",
318
+ justifyContent: "center",
319
+ minHeight: 32
320
+ },
321
+ typePillActive: {
322
+ borderWidth: 1,
323
+ transform: [{
324
+ scale: 1.005
325
+ }]
326
+ },
327
+ typePillLabel: {
328
+ fontSize: 9,
329
+ color: macOSColors.text.secondary,
330
+ textTransform: "uppercase",
331
+ letterSpacing: 0.4,
332
+ fontWeight: "500",
333
+ marginBottom: 1
334
+ },
335
+ typePillValue: {
336
+ fontSize: 12,
337
+ fontWeight: "600",
338
+ fontFamily: "monospace",
339
+ lineHeight: 14
340
+ }
341
+ });
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ import { Filter, DynamicFilterView } from "@buoy-gg/shared-ui";
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ export function StorageFilterViewV2({
6
+ ignoredPatterns,
7
+ onTogglePattern,
8
+ onAddPattern,
9
+ availableKeys = []
10
+ }) {
11
+ const filterConfig = {
12
+ addFilterSection: {
13
+ enabled: true,
14
+ placeholder: "Enter key pattern to hide...",
15
+ title: "ACTIVE FILTERS",
16
+ icon: Filter
17
+ },
18
+ availableItemsSection: {
19
+ enabled: true,
20
+ title: "AVAILABLE STORAGE KEYS",
21
+ emptyMessage: "No storage keys available. Keys will appear here once loaded.",
22
+ items: availableKeys
23
+ },
24
+ howItWorksSection: {
25
+ enabled: true,
26
+ title: "HOW STORAGE FILTERS WORK",
27
+ description: "Patterns hide matching storage keys from the list. Filters match if the storage key contains the provided text.",
28
+ examples: ["• react_buoy → hides keys containing react_buoy", "• @temp → hides @temp_user, @temp_data", "• redux → hides redux-persist:root", "• : → hides all keys with colons"],
29
+ icon: Filter
30
+ },
31
+ onPatternToggle: onTogglePattern,
32
+ onPatternAdd: onAddPattern,
33
+ activePatterns: ignoredPatterns
34
+ };
35
+ return /*#__PURE__*/_jsx(DynamicFilterView, {
36
+ ...filterConfig
37
+ });
38
+ }