@buoy-gg/shared-ui 7.0.4 → 7.0.6

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 (191) hide show
  1. package/lib/commonjs/colors/index.js +49 -0
  2. package/lib/commonjs/dataViewer/DataTreeActionBar.js +389 -0
  3. package/lib/commonjs/dataViewer/DataTreeActionDock.js +222 -0
  4. package/lib/commonjs/dataViewer/DataViewer.js +18 -3
  5. package/lib/commonjs/dataViewer/VirtualizedDataExplorer.js +227 -28
  6. package/lib/commonjs/dataViewer/index.js +88 -0
  7. package/lib/commonjs/dataViewer/jsonOps.js +320 -0
  8. package/lib/commonjs/dataViewer/lineDiff.js +285 -83
  9. package/lib/commonjs/dataViewer/tree/TreeDiffViewer.js +20 -5
  10. package/lib/commonjs/dataViewer/treeActions.js +167 -0
  11. package/lib/commonjs/env/EnvironmentSelector.js +2 -2
  12. package/lib/commonjs/env/EnvironmentSelectorInline.js +2 -2
  13. package/lib/commonjs/hooks/safe-area-impl.js +1 -1
  14. package/lib/commonjs/icons/index.js +79 -3
  15. package/lib/commonjs/icons/lucide-icons-original-full.js +5 -1
  16. package/lib/commonjs/icons/lucide-icons.js +59 -2
  17. package/lib/commonjs/index.js +35 -0
  18. package/lib/commonjs/settings/components/BubbleSettingsSection.js +21 -19
  19. package/lib/commonjs/storage/devToolsStorageKeys.js +6 -3
  20. package/lib/commonjs/ui/components/Badge.js +2 -0
  21. package/lib/commonjs/ui/components/CompactRow.js +7 -0
  22. package/lib/commonjs/ui/components/CopyButton.js +27 -4
  23. package/lib/commonjs/ui/components/DevToolsCard.js +11 -0
  24. package/lib/commonjs/ui/components/DynamicFilterView.js +8 -1
  25. package/lib/commonjs/ui/components/EmptyState.js +12 -5
  26. package/lib/commonjs/ui/components/ErrorBoundary.js +3 -2
  27. package/lib/commonjs/ui/components/EventHistoryViewer/EventHistoryViewer.js +63 -11
  28. package/lib/commonjs/ui/components/ExpandableSection.js +4 -3
  29. package/lib/commonjs/ui/components/ExpandableSectionHeader.js +2 -1
  30. package/lib/commonjs/ui/components/FilterViewPattern.js +8 -7
  31. package/lib/commonjs/ui/components/ListItem.js +7 -5
  32. package/lib/commonjs/ui/components/PowerToggleButton.js +4 -1
  33. package/lib/commonjs/ui/components/TabSelector.js +3 -0
  34. package/lib/commonjs/ui/console/CyberpunkConsoleSection.js +1 -1
  35. package/lib/commonjs/ui/console/GalaxyButton.js +1 -1
  36. package/lib/commonjs/ui/gameUI/components/GameUICompactStats.js +2 -2
  37. package/lib/commonjs/ui/gameUI/constants/gameUIColors.js +28 -6
  38. package/lib/commonjs/ui/gameUI/constants/macOSDesignSystemColors.js +22 -4
  39. package/lib/commonjs/utils/index.js +25 -0
  40. package/lib/commonjs/utils/reloadApp.js +144 -0
  41. package/lib/module/colors/index.js +21 -0
  42. package/lib/module/dataViewer/DataTreeActionBar.js +384 -0
  43. package/lib/module/dataViewer/DataTreeActionDock.js +218 -0
  44. package/lib/module/dataViewer/DataViewer.js +18 -3
  45. package/lib/module/dataViewer/VirtualizedDataExplorer.js +228 -30
  46. package/lib/module/dataViewer/index.js +16 -1
  47. package/lib/module/dataViewer/jsonOps.js +311 -0
  48. package/lib/module/dataViewer/lineDiff.js +284 -82
  49. package/lib/module/dataViewer/tree/TreeDiffViewer.js +20 -5
  50. package/lib/module/dataViewer/treeActions.js +161 -0
  51. package/lib/module/env/EnvironmentSelector.js +2 -2
  52. package/lib/module/env/EnvironmentSelectorInline.js +2 -2
  53. package/lib/module/hooks/safe-area-impl.js +1 -1
  54. package/lib/module/icons/index.js +10 -1
  55. package/lib/module/icons/lucide-icons-original-full.js +5 -1
  56. package/lib/module/icons/lucide-icons.js +56 -0
  57. package/lib/module/index.js +4 -0
  58. package/lib/module/settings/components/BubbleSettingsSection.js +21 -19
  59. package/lib/module/storage/devToolsStorageKeys.js +6 -3
  60. package/lib/module/ui/components/Badge.js +2 -0
  61. package/lib/module/ui/components/CompactRow.js +7 -0
  62. package/lib/module/ui/components/CopyButton.js +29 -6
  63. package/lib/module/ui/components/DevToolsCard.js +11 -0
  64. package/lib/module/ui/components/DynamicFilterView.js +8 -1
  65. package/lib/module/ui/components/EmptyState.js +12 -5
  66. package/lib/module/ui/components/ErrorBoundary.js +3 -2
  67. package/lib/module/ui/components/EventHistoryViewer/EventHistoryViewer.js +63 -11
  68. package/lib/module/ui/components/ExpandableSection.js +4 -3
  69. package/lib/module/ui/components/ExpandableSectionHeader.js +2 -1
  70. package/lib/module/ui/components/FilterViewPattern.js +9 -7
  71. package/lib/module/ui/components/ListItem.js +7 -5
  72. package/lib/module/ui/components/PowerToggleButton.js +4 -1
  73. package/lib/module/ui/components/TabSelector.js +3 -0
  74. package/lib/module/ui/console/CyberpunkConsoleSection.js +1 -1
  75. package/lib/module/ui/console/GalaxyButton.js +1 -1
  76. package/lib/module/ui/gameUI/components/GameUICompactStats.js +2 -2
  77. package/lib/module/ui/gameUI/constants/gameUIColors.js +27 -6
  78. package/lib/module/ui/gameUI/constants/macOSDesignSystemColors.js +19 -2
  79. package/lib/module/utils/index.js +1 -0
  80. package/lib/module/utils/reloadApp.js +137 -0
  81. package/lib/typescript/commonjs/colors/index.d.ts +22 -0
  82. package/lib/typescript/commonjs/colors/index.d.ts.map +1 -0
  83. package/lib/typescript/commonjs/dataViewer/DataTreeActionBar.d.ts +53 -0
  84. package/lib/typescript/commonjs/dataViewer/DataTreeActionBar.d.ts.map +1 -0
  85. package/lib/typescript/commonjs/dataViewer/DataTreeActionDock.d.ts +33 -0
  86. package/lib/typescript/commonjs/dataViewer/DataTreeActionDock.d.ts.map +1 -0
  87. package/lib/typescript/commonjs/dataViewer/DataViewer.d.ts +14 -1
  88. package/lib/typescript/commonjs/dataViewer/DataViewer.d.ts.map +1 -1
  89. package/lib/typescript/commonjs/dataViewer/VirtualizedDataExplorer.d.ts +30 -1
  90. package/lib/typescript/commonjs/dataViewer/VirtualizedDataExplorer.d.ts.map +1 -1
  91. package/lib/typescript/commonjs/dataViewer/__tests__/jsonOps.test.d.ts +19 -0
  92. package/lib/typescript/commonjs/dataViewer/__tests__/jsonOps.test.d.ts.map +1 -0
  93. package/lib/typescript/commonjs/dataViewer/index.d.ts +5 -1
  94. package/lib/typescript/commonjs/dataViewer/index.d.ts.map +1 -1
  95. package/lib/typescript/commonjs/dataViewer/jsonOps.d.ts +124 -0
  96. package/lib/typescript/commonjs/dataViewer/jsonOps.d.ts.map +1 -0
  97. package/lib/typescript/commonjs/dataViewer/lineDiff.d.ts +27 -0
  98. package/lib/typescript/commonjs/dataViewer/lineDiff.d.ts.map +1 -1
  99. package/lib/typescript/commonjs/dataViewer/tree/TreeDiffViewer.d.ts +8 -1
  100. package/lib/typescript/commonjs/dataViewer/tree/TreeDiffViewer.d.ts.map +1 -1
  101. package/lib/typescript/commonjs/dataViewer/treeActions.d.ts +83 -0
  102. package/lib/typescript/commonjs/dataViewer/treeActions.d.ts.map +1 -0
  103. package/lib/typescript/commonjs/hooks/safe-area-impl.d.ts +1 -1
  104. package/lib/typescript/commonjs/icons/index.d.ts +6 -1
  105. package/lib/typescript/commonjs/icons/index.d.ts.map +1 -1
  106. package/lib/typescript/commonjs/icons/lucide-icons-original-full.d.ts.map +1 -1
  107. package/lib/typescript/commonjs/icons/lucide-icons.d.ts +9 -0
  108. package/lib/typescript/commonjs/icons/lucide-icons.d.ts.map +1 -1
  109. package/lib/typescript/commonjs/index.d.ts +2 -1
  110. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  111. package/lib/typescript/commonjs/settings/components/BubbleSettingsSection.d.ts.map +1 -1
  112. package/lib/typescript/commonjs/storage/devToolsStorageKeys.d.ts +5 -1
  113. package/lib/typescript/commonjs/storage/devToolsStorageKeys.d.ts.map +1 -1
  114. package/lib/typescript/commonjs/ui/components/CopyButton.d.ts +7 -1
  115. package/lib/typescript/commonjs/ui/components/CopyButton.d.ts.map +1 -1
  116. package/lib/typescript/commonjs/ui/components/EmptyState.d.ts.map +1 -1
  117. package/lib/typescript/commonjs/ui/components/ErrorBoundary.d.ts.map +1 -1
  118. package/lib/typescript/commonjs/ui/components/EventHistoryViewer/EventHistoryViewer.d.ts.map +1 -1
  119. package/lib/typescript/commonjs/ui/components/EventHistoryViewer/types.d.ts +23 -7
  120. package/lib/typescript/commonjs/ui/components/EventHistoryViewer/types.d.ts.map +1 -1
  121. package/lib/typescript/commonjs/ui/components/ExpandableSection.d.ts.map +1 -1
  122. package/lib/typescript/commonjs/ui/components/ExpandableSectionHeader.d.ts.map +1 -1
  123. package/lib/typescript/commonjs/ui/components/FilterViewPattern.d.ts.map +1 -1
  124. package/lib/typescript/commonjs/ui/components/ListItem.d.ts.map +1 -1
  125. package/lib/typescript/commonjs/ui/gameUI/constants/gameUIColors.d.ts +36 -30
  126. package/lib/typescript/commonjs/ui/gameUI/constants/gameUIColors.d.ts.map +1 -1
  127. package/lib/typescript/commonjs/ui/gameUI/constants/macOSDesignSystemColors.d.ts +5 -0
  128. package/lib/typescript/commonjs/ui/gameUI/constants/macOSDesignSystemColors.d.ts.map +1 -1
  129. package/lib/typescript/commonjs/utils/index.d.ts +1 -0
  130. package/lib/typescript/commonjs/utils/index.d.ts.map +1 -1
  131. package/lib/typescript/commonjs/utils/reloadApp.d.ts +68 -0
  132. package/lib/typescript/commonjs/utils/reloadApp.d.ts.map +1 -0
  133. package/lib/typescript/module/colors/index.d.ts +22 -0
  134. package/lib/typescript/module/colors/index.d.ts.map +1 -0
  135. package/lib/typescript/module/dataViewer/DataTreeActionBar.d.ts +53 -0
  136. package/lib/typescript/module/dataViewer/DataTreeActionBar.d.ts.map +1 -0
  137. package/lib/typescript/module/dataViewer/DataTreeActionDock.d.ts +33 -0
  138. package/lib/typescript/module/dataViewer/DataTreeActionDock.d.ts.map +1 -0
  139. package/lib/typescript/module/dataViewer/DataViewer.d.ts +14 -1
  140. package/lib/typescript/module/dataViewer/DataViewer.d.ts.map +1 -1
  141. package/lib/typescript/module/dataViewer/VirtualizedDataExplorer.d.ts +30 -1
  142. package/lib/typescript/module/dataViewer/VirtualizedDataExplorer.d.ts.map +1 -1
  143. package/lib/typescript/module/dataViewer/__tests__/jsonOps.test.d.ts +19 -0
  144. package/lib/typescript/module/dataViewer/__tests__/jsonOps.test.d.ts.map +1 -0
  145. package/lib/typescript/module/dataViewer/index.d.ts +5 -1
  146. package/lib/typescript/module/dataViewer/index.d.ts.map +1 -1
  147. package/lib/typescript/module/dataViewer/jsonOps.d.ts +124 -0
  148. package/lib/typescript/module/dataViewer/jsonOps.d.ts.map +1 -0
  149. package/lib/typescript/module/dataViewer/lineDiff.d.ts +27 -0
  150. package/lib/typescript/module/dataViewer/lineDiff.d.ts.map +1 -1
  151. package/lib/typescript/module/dataViewer/tree/TreeDiffViewer.d.ts +8 -1
  152. package/lib/typescript/module/dataViewer/tree/TreeDiffViewer.d.ts.map +1 -1
  153. package/lib/typescript/module/dataViewer/treeActions.d.ts +83 -0
  154. package/lib/typescript/module/dataViewer/treeActions.d.ts.map +1 -0
  155. package/lib/typescript/module/hooks/safe-area-impl.d.ts +1 -1
  156. package/lib/typescript/module/icons/index.d.ts +6 -1
  157. package/lib/typescript/module/icons/index.d.ts.map +1 -1
  158. package/lib/typescript/module/icons/lucide-icons-original-full.d.ts.map +1 -1
  159. package/lib/typescript/module/icons/lucide-icons.d.ts +9 -0
  160. package/lib/typescript/module/icons/lucide-icons.d.ts.map +1 -1
  161. package/lib/typescript/module/index.d.ts +2 -1
  162. package/lib/typescript/module/index.d.ts.map +1 -1
  163. package/lib/typescript/module/settings/components/BubbleSettingsSection.d.ts.map +1 -1
  164. package/lib/typescript/module/storage/devToolsStorageKeys.d.ts +5 -1
  165. package/lib/typescript/module/storage/devToolsStorageKeys.d.ts.map +1 -1
  166. package/lib/typescript/module/ui/components/CopyButton.d.ts +7 -1
  167. package/lib/typescript/module/ui/components/CopyButton.d.ts.map +1 -1
  168. package/lib/typescript/module/ui/components/EmptyState.d.ts.map +1 -1
  169. package/lib/typescript/module/ui/components/ErrorBoundary.d.ts.map +1 -1
  170. package/lib/typescript/module/ui/components/EventHistoryViewer/EventHistoryViewer.d.ts.map +1 -1
  171. package/lib/typescript/module/ui/components/EventHistoryViewer/types.d.ts +23 -7
  172. package/lib/typescript/module/ui/components/EventHistoryViewer/types.d.ts.map +1 -1
  173. package/lib/typescript/module/ui/components/ExpandableSection.d.ts.map +1 -1
  174. package/lib/typescript/module/ui/components/ExpandableSectionHeader.d.ts.map +1 -1
  175. package/lib/typescript/module/ui/components/FilterViewPattern.d.ts.map +1 -1
  176. package/lib/typescript/module/ui/components/ListItem.d.ts.map +1 -1
  177. package/lib/typescript/module/ui/gameUI/constants/gameUIColors.d.ts +36 -30
  178. package/lib/typescript/module/ui/gameUI/constants/gameUIColors.d.ts.map +1 -1
  179. package/lib/typescript/module/ui/gameUI/constants/macOSDesignSystemColors.d.ts +5 -0
  180. package/lib/typescript/module/ui/gameUI/constants/macOSDesignSystemColors.d.ts.map +1 -1
  181. package/lib/typescript/module/utils/index.d.ts +1 -0
  182. package/lib/typescript/module/utils/index.d.ts.map +1 -1
  183. package/lib/typescript/module/utils/reloadApp.d.ts +68 -0
  184. package/lib/typescript/module/utils/reloadApp.d.ts.map +1 -0
  185. package/package.json +15 -4
  186. package/lib/commonjs/icons/ImageOverlayIcon.js +0 -142
  187. package/lib/module/icons/ImageOverlayIcon.js +0 -137
  188. package/lib/typescript/commonjs/icons/ImageOverlayIcon.d.ts +0 -14
  189. package/lib/typescript/commonjs/icons/ImageOverlayIcon.d.ts.map +0 -1
  190. package/lib/typescript/module/icons/ImageOverlayIcon.d.ts +0 -14
  191. package/lib/typescript/module/icons/ImageOverlayIcon.d.ts.map +0 -1
@@ -7,7 +7,7 @@ exports.useNativeSafeAreaInsets = exports.safeAreaType = exports.hasSafeAreaPack
7
7
  /**
8
8
  * Auto-generated safe area implementation
9
9
  * Detected: none
10
- * Generated at: 2026-07-23T18:32:21.569Z
10
+ * Generated at: 2026-07-29T13:27:30.301Z
11
11
  *
12
12
  * DO NOT EDIT - This file is generated by scripts/detect-safe-area.js
13
13
  *
@@ -8,6 +8,18 @@ var _exportNames = {
8
8
  NETWORK_ICON_COLOR: true,
9
9
  EnvIcon: true,
10
10
  ENV_ICON_COLOR: true,
11
+ ConsoleIcon: true,
12
+ CONSOLE_ICON_COLOR: true,
13
+ ImagesIcon: true,
14
+ IMAGES_ICON_COLOR: true,
15
+ ImpersonateIcon: true,
16
+ IMPERSONATE_ICON_COLOR: true,
17
+ ImageOverlayIcon: true,
18
+ IMAGE_OVERLAY_ICON_COLOR: true,
19
+ ZustandIcon: true,
20
+ ZUSTAND_ICON_COLOR: true,
21
+ JotaiIcon: true,
22
+ JOTAI_ICON_COLOR: true,
11
23
  EnvLaptopIcon: true,
12
24
  LaptopIcon: true,
13
25
  ReactQueryIcon: true,
@@ -22,7 +34,6 @@ var _exportNames = {
22
34
  HighlightUpdatesIcon: true,
23
35
  RenderCountIcon: true,
24
36
  BenchmarkIcon: true,
25
- ImageOverlayIcon: true,
26
37
  IconBackground: true
27
38
  };
28
39
  Object.defineProperty(exports, "BenchmarkIcon", {
@@ -31,6 +42,18 @@ Object.defineProperty(exports, "BenchmarkIcon", {
31
42
  return _BenchmarkIcon.BenchmarkIcon;
32
43
  }
33
44
  });
45
+ Object.defineProperty(exports, "CONSOLE_ICON_COLOR", {
46
+ enumerable: true,
47
+ get: function () {
48
+ return _floatingToolsCore.CONSOLE_ICON_COLOR;
49
+ }
50
+ });
51
+ Object.defineProperty(exports, "ConsoleIcon", {
52
+ enumerable: true,
53
+ get: function () {
54
+ return _floatingToolsCore.ConsoleIcon;
55
+ }
56
+ });
34
57
  Object.defineProperty(exports, "ENV_ICON_COLOR", {
35
58
  enumerable: true,
36
59
  get: function () {
@@ -55,6 +78,24 @@ Object.defineProperty(exports, "HighlightUpdatesIcon", {
55
78
  return _StackPulseIcon.HighlightUpdatesIcon;
56
79
  }
57
80
  });
81
+ Object.defineProperty(exports, "IMAGES_ICON_COLOR", {
82
+ enumerable: true,
83
+ get: function () {
84
+ return _floatingToolsCore.IMAGES_ICON_COLOR;
85
+ }
86
+ });
87
+ Object.defineProperty(exports, "IMAGE_OVERLAY_ICON_COLOR", {
88
+ enumerable: true,
89
+ get: function () {
90
+ return _floatingToolsCore.IMAGE_OVERLAY_ICON_COLOR;
91
+ }
92
+ });
93
+ Object.defineProperty(exports, "IMPERSONATE_ICON_COLOR", {
94
+ enumerable: true,
95
+ get: function () {
96
+ return _floatingToolsCore.IMPERSONATE_ICON_COLOR;
97
+ }
98
+ });
58
99
  Object.defineProperty(exports, "IconBackground", {
59
100
  enumerable: true,
60
101
  get: function () {
@@ -64,7 +105,31 @@ Object.defineProperty(exports, "IconBackground", {
64
105
  Object.defineProperty(exports, "ImageOverlayIcon", {
65
106
  enumerable: true,
66
107
  get: function () {
67
- return _ImageOverlayIcon.ImageOverlayIcon;
108
+ return _floatingToolsCore.ImageOverlayIcon;
109
+ }
110
+ });
111
+ Object.defineProperty(exports, "ImagesIcon", {
112
+ enumerable: true,
113
+ get: function () {
114
+ return _floatingToolsCore.ImagesIcon;
115
+ }
116
+ });
117
+ Object.defineProperty(exports, "ImpersonateIcon", {
118
+ enumerable: true,
119
+ get: function () {
120
+ return _floatingToolsCore.ImpersonateIcon;
121
+ }
122
+ });
123
+ Object.defineProperty(exports, "JOTAI_ICON_COLOR", {
124
+ enumerable: true,
125
+ get: function () {
126
+ return _floatingToolsCore.JOTAI_ICON_COLOR;
127
+ }
128
+ });
129
+ Object.defineProperty(exports, "JotaiIcon", {
130
+ enumerable: true,
131
+ get: function () {
132
+ return _floatingToolsCore.JotaiIcon;
68
133
  }
69
134
  });
70
135
  Object.defineProperty(exports, "LaptopIcon", {
@@ -145,6 +210,18 @@ Object.defineProperty(exports, "WifiCircuitIcon", {
145
210
  return _WifiCircuitIcon.WifiCircuitIcon;
146
211
  }
147
212
  });
213
+ Object.defineProperty(exports, "ZUSTAND_ICON_COLOR", {
214
+ enumerable: true,
215
+ get: function () {
216
+ return _floatingToolsCore.ZUSTAND_ICON_COLOR;
217
+ }
218
+ });
219
+ Object.defineProperty(exports, "ZustandIcon", {
220
+ enumerable: true,
221
+ get: function () {
222
+ return _floatingToolsCore.ZustandIcon;
223
+ }
224
+ });
148
225
  var _index = require("./primitives/index.js");
149
226
  Object.keys(_index).forEach(function (key) {
150
227
  if (key === "default" || key === "__esModule") return;
@@ -167,7 +244,6 @@ var _RouteMapIcon = require("./RouteMapIcon.js");
167
244
  var _StackPulseIcon = require("./StackPulseIcon.js");
168
245
  var _RenderCountIcon = require("./RenderCountIcon.js");
169
246
  var _BenchmarkIcon = require("./BenchmarkIcon.js");
170
- var _ImageOverlayIcon = require("./ImageOverlayIcon.js");
171
247
  var _IconBackground = require("./IconBackground.js");
172
248
  var _lucideIcons = require("./lucide-icons.js");
173
249
  Object.keys(_lucideIcons).forEach(function (key) {
@@ -970,7 +970,11 @@ const GlobeIcon = ({
970
970
  strokeWidth = 2,
971
971
  ...props
972
972
  }) => {
973
- color = _gameUIColors.gameUIColors.env;
973
+ // NOTE: this used to reassign `color = gameUIColors.env` right here, throwing
974
+ // away whatever the caller passed. The default above already covers the
975
+ // "network tool green" case; the reassignment only broke every caller that
976
+ // asked for something else (e.g. the network empty state, which asks for
977
+ // muted grey and was getting a green globe on the white canvas).
974
978
  const scale = size / 24;
975
979
  const globeSize = 18 * scale;
976
980
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.Play = exports.Pin = exports.PhoneIcon = exports.Phone = exports.PauseIcon = exports.Pause = exports.PaletteIcon = exports.Palette = exports.NavigationIcon = exports.Navigation = exports.MusicIcon = exports.Music = exports.MinusIcon = exports.Minus = exports.Maximize2Icon = exports.Maximize2 = exports.LockIcon = exports.Lock = exports.LinkIcon = exports.Link = exports.LayersIcon = exports.Layers = exports.KeyIcon = exports.Key = exports.InfoIcon = exports.Info = exports.ImageIcon = exports.Image = exports.HomeIcon = exports.Home = exports.HelpCircle = exports.HashIcon = exports.Hash = exports.HardDriveIcon = exports.HardDrive = exports.HandIcon = exports.Hand = exports.GlobeIcon = exports.Globe = exports.GitBranchIcon = exports.GitBranch = exports.FloatWindow = exports.FlaskConicalIcon = exports.FlaskConical = exports.FilterIcon = exports.Filter = exports.FilmIcon = exports.Film = exports.FileTextIcon = exports.FileText = exports.FileJsonIcon = exports.FileJson = exports.FileCodeIcon = exports.FileCode = exports.EyeOffIcon = exports.EyeOff = exports.EyeIcon = exports.Eye = exports.Edit3Icon = exports.Edit3 = exports.DownloadIcon = exports.Download = exports.DockBottom = exports.DatabaseIcon = exports.Database = exports.CopyIcon = exports.Copy = exports.CloudIcon = exports.Cloud = exports.ClockIcon = exports.Clock = exports.ChevronUpIcon = exports.ChevronUp = exports.ChevronRightIcon = exports.ChevronRight = exports.ChevronLeftIcon = exports.ChevronLeft = exports.ChevronDownIcon = exports.ChevronDown = exports.CheckSquareIcon = exports.CheckSquare = exports.CheckIcon = exports.CheckCircleIcon = exports.CheckCircle2Icon = exports.CheckCircle2 = exports.CheckCircle = exports.Check = exports.BugIcon = exports.Bug = exports.BoxIcon = exports.Box = exports.BarChart3Icon = exports.BarChart3 = exports.AlertTriangleIcon = exports.AlertTriangle = exports.AlertOctagon = exports.AlertCircleIcon = exports.AlertCircle = exports.ActivityIcon = exports.Activity = void 0;
7
- exports.ZapIcon = exports.Zap = exports.XIcon = exports.XCircleIcon = exports.XCircle = exports.X = exports.WifiIcon = exports.Wifi = exports.VolumeIcon = exports.Volume = exports.UsersIcon = exports.Users = exports.UserIcon = exports.User = exports.UploadIcon = exports.Upload = exports.UnlockIcon = exports.Unlock = exports.TriangleAlertIcon = exports.TriangleAlert = exports.TrashIcon = exports.Trash2Icon = exports.Trash2 = exports.Trash = exports.TouchpadIcon = exports.Touchpad = exports.TimerIcon = exports.Timer = exports.TestTube2Icon = exports.TestTube2 = exports.SquareIcon = exports.SquareDashedIcon = exports.SquareDashed = exports.Square = exports.SmartphoneIcon = exports.Smartphone = exports.ShieldIcon = exports.Shield = exports.SettingsIcon = exports.Settings = exports.ServerIcon = exports.Server = exports.SearchIcon = exports.Search = exports.RouteIcon = exports.Route = exports.RefreshCwIcon = exports.RefreshCw = exports.PowerIcon = exports.Power = exports.PlusIcon = exports.Plus = exports.PlayIcon = void 0;
6
+ exports.Pin = exports.PhoneIcon = exports.Phone = exports.PauseIcon = exports.Pause = exports.PaletteIcon = exports.Palette = exports.NavigationIcon = exports.Navigation = exports.MusicIcon = exports.Music = exports.MinusIcon = exports.Minus = exports.Maximize2Icon = exports.Maximize2 = exports.LockIcon = exports.Lock = exports.LinkIcon = exports.Link = exports.LayersIcon = exports.Layers = exports.KeyIcon = exports.Key = exports.InfoIcon = exports.Info = exports.ImageIcon = exports.Image = exports.HomeIcon = exports.Home = exports.HelpCircle = exports.HashIcon = exports.Hash = exports.HardDriveIcon = exports.HardDrive = exports.HandIcon = exports.Hand = exports.GlobeIcon = exports.Globe = exports.GitBranchIcon = exports.GitBranch = exports.FloatWindow = exports.FlaskConicalIcon = exports.FlaskConical = exports.FilterIcon = exports.Filter = exports.FilmIcon = exports.Film = exports.FileTextIcon = exports.FileText = exports.FileJsonIcon = exports.FileJson = exports.FileCodeIcon = exports.FileCode = exports.EyeOffIcon = exports.EyeOff = exports.EyeIcon = exports.Eye = exports.Edit3Icon = exports.Edit3 = exports.DownloadIcon = exports.Download = exports.DockBottom = exports.DatabaseIcon = exports.Database = exports.CopyIcon = exports.Copy = exports.CloudIcon = exports.Cloud = exports.ClockIcon = exports.Clock = exports.ChevronUpIcon = exports.ChevronUp = exports.ChevronRightIcon = exports.ChevronRight = exports.ChevronLeftIcon = exports.ChevronLeft = exports.ChevronDownIcon = exports.ChevronDown = exports.CheckSquareIcon = exports.CheckSquare = exports.CheckIcon = exports.CheckCircleIcon = exports.CheckCircle2Icon = exports.CheckCircle2 = exports.CheckCircle = exports.Check = exports.BugIcon = exports.Bug = exports.BoxIcon = exports.Box = exports.Bookmark = exports.BarChart3Icon = exports.BarChart3 = exports.AlertTriangleIcon = exports.AlertTriangle = exports.AlertOctagon = exports.AlertCircleIcon = exports.AlertCircle = exports.ActivityIcon = exports.Activity = void 0;
7
+ exports.ZapIcon = exports.Zap = exports.XIcon = exports.XCircleIcon = exports.XCircle = exports.X = exports.WifiIcon = exports.Wifi = exports.VolumeIcon = exports.Volume = exports.UsersIcon = exports.Users = exports.UserIcon = exports.User = exports.UploadIcon = exports.Upload = exports.UnlockIcon = exports.Unlock = exports.TriangleAlertIcon = exports.TriangleAlert = exports.TrashIcon = exports.Trash2Icon = exports.Trash2 = exports.Trash = exports.TouchpadIcon = exports.Touchpad = exports.TimerIcon = exports.Timer = exports.TestTube2Icon = exports.TestTube2 = exports.SquareIcon = exports.SquareDashedIcon = exports.SquareDashed = exports.Square = exports.SmartphoneIcon = exports.Smartphone = exports.ShieldIcon = exports.Shield = exports.SettingsIcon = exports.Settings = exports.ServerIcon = exports.Server = exports.SearchIcon = exports.Search = exports.RouteIcon = exports.Route = exports.RefreshCwIcon = exports.RefreshCw = exports.PowerIcon = exports.Power = exports.PlusIcon = exports.Plus = exports.PlayIcon = exports.Play = void 0;
8
8
  var _reactNative = require("react-native");
9
9
  var OriginalIcons = _interopRequireWildcard(require("./lucide-icons-original-full.js"));
10
10
  var _jsxRuntime = require("react/jsx-runtime");
@@ -549,7 +549,64 @@ const Pin = ({
549
549
  strokeWidth: strokeWidth
550
550
  })]
551
551
  });
552
+
553
+ /**
554
+ * Bookmark — the "saved request" glyph (Network tool's favorites).
555
+ *
556
+ * Lucide's Star would be the obvious choice, but these icons are composed from
557
+ * View-based `Line`/`Circle`/`Rect` primitives (there is no `Path`), so a
558
+ * 5-point star isn't drawable here. A bookmark is five straight segments and
559
+ * reads as "kept for later" at 10px, which is what the glyph has to say.
560
+ */
552
561
  exports.Pin = Pin;
562
+ const Bookmark = ({
563
+ size = 24,
564
+ color = "currentColor",
565
+ strokeWidth = 2,
566
+ ...props
567
+ }) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(Svg, {
568
+ width: size,
569
+ height: size,
570
+ viewBox: "0 0 24 24",
571
+ ...props,
572
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Line, {
573
+ x1: 5,
574
+ y1: 3,
575
+ x2: 19,
576
+ y2: 3,
577
+ stroke: color,
578
+ strokeWidth: strokeWidth
579
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(Line, {
580
+ x1: 5,
581
+ y1: 3,
582
+ x2: 5,
583
+ y2: 21,
584
+ stroke: color,
585
+ strokeWidth: strokeWidth
586
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(Line, {
587
+ x1: 19,
588
+ y1: 3,
589
+ x2: 19,
590
+ y2: 21,
591
+ stroke: color,
592
+ strokeWidth: strokeWidth
593
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(Line, {
594
+ x1: 5,
595
+ y1: 21,
596
+ x2: 12,
597
+ y2: 15,
598
+ stroke: color,
599
+ strokeWidth: strokeWidth
600
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(Line, {
601
+ x1: 19,
602
+ y1: 21,
603
+ x2: 12,
604
+ y2: 15,
605
+ stroke: color,
606
+ strokeWidth: strokeWidth
607
+ })]
608
+ });
609
+ exports.Bookmark = Bookmark;
553
610
  const EyeOff = ({
554
611
  size = 24,
555
612
  color = "currentColor",
@@ -29,6 +29,10 @@ var _exportNames = {
29
29
  getCachedOptionalModule: true,
30
30
  setRenderCaptureProvider: true,
31
31
  getRenderCaptureProvider: true,
32
+ reloadApp: true,
33
+ scheduleReloadApp: true,
34
+ resolveReloadStrategy: true,
35
+ REMOTE_RELOAD_DELAY_MS: true,
32
36
  Subscribable: true,
33
37
  subscriberCountNotifier: true,
34
38
  subscribeToSubscriberCountChanges: true,
@@ -49,6 +53,7 @@ var _exportNames = {
49
53
  JsModal: true,
50
54
  gameUIColors: true,
51
55
  buoyColors: true,
56
+ refreshGameUIColors: true,
52
57
  dialColors: true,
53
58
  macOSColors: true,
54
59
  EnvironmentIndicator: true,
@@ -129,6 +134,12 @@ Object.defineProperty(exports, "ProUpgradeModal", {
129
134
  return _index12.ProUpgradeModal;
130
135
  }
131
136
  });
137
+ Object.defineProperty(exports, "REMOTE_RELOAD_DELAY_MS", {
138
+ enumerable: true,
139
+ get: function () {
140
+ return _index3.REMOTE_RELOAD_DELAY_MS;
141
+ }
142
+ });
132
143
  Object.defineProperty(exports, "Subscribable", {
133
144
  enumerable: true,
134
145
  get: function () {
@@ -363,12 +374,36 @@ Object.defineProperty(exports, "persistentStorage", {
363
374
  return _index3.persistentStorage;
364
375
  }
365
376
  });
377
+ Object.defineProperty(exports, "refreshGameUIColors", {
378
+ enumerable: true,
379
+ get: function () {
380
+ return _gameUIColors.refreshGameUIColors;
381
+ }
382
+ });
383
+ Object.defineProperty(exports, "reloadApp", {
384
+ enumerable: true,
385
+ get: function () {
386
+ return _index3.reloadApp;
387
+ }
388
+ });
389
+ Object.defineProperty(exports, "resolveReloadStrategy", {
390
+ enumerable: true,
391
+ get: function () {
392
+ return _index3.resolveReloadStrategy;
393
+ }
394
+ });
366
395
  Object.defineProperty(exports, "safeStringify", {
367
396
  enumerable: true,
368
397
  get: function () {
369
398
  return _index3.safeStringify;
370
399
  }
371
400
  });
401
+ Object.defineProperty(exports, "scheduleReloadApp", {
402
+ enumerable: true,
403
+ get: function () {
404
+ return _index3.scheduleReloadApp;
405
+ }
406
+ });
372
407
  Object.defineProperty(exports, "setRenderCaptureProvider", {
373
408
  enumerable: true,
374
409
  get: function () {
@@ -12,6 +12,8 @@ var _react = require("react");
12
12
  var _CyberpunkSectionButton = require("../../ui/console/CyberpunkSectionButton.js");
13
13
  var _devToolsStorageKeys = require("../../storage/devToolsStorageKeys.js");
14
14
  var _persistentStorage = require("../../utils/persistentStorage.js");
15
+ var _macOSDesignSystemColors = require("../../ui/gameUI/constants/macOSDesignSystemColors.js");
16
+ var _gameUIColors = require("../../ui/gameUI/constants/gameUIColors.js");
15
17
  var _jsxRuntime = require("react/jsx-runtime");
16
18
  const STORAGE_KEY = _devToolsStorageKeys.devToolsStorageKeys.bubble.settings();
17
19
  const USER_PREFERENCES_KEY = _devToolsStorageKeys.devToolsStorageKeys.bubble.userPreferences();
@@ -212,7 +214,7 @@ function BubbleSettingsDetail({
212
214
  false: "#4B5563",
213
215
  true: "#10B981"
214
216
  },
215
- thumbColor: settings[config.key] ? "#fff" : "#9CA3AF"
217
+ thumbColor: settings[config.key] ? "#fff" : _gameUIColors.buoyColors.textSecondary
216
218
  })]
217
219
  }, config.key))
218
220
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
@@ -221,7 +223,7 @@ function BubbleSettingsDetail({
221
223
  style: styles.noteContainer,
222
224
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_index.EyeOff, {
223
225
  size: 16,
224
- color: "#9CA3AF"
226
+ color: _gameUIColors.buoyColors.textSecondary
225
227
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
226
228
  style: styles.noteText,
227
229
  children: "User status indicator is always visible and cannot be disabled"
@@ -250,7 +252,7 @@ const styles = _reactNative.StyleSheet.create({
250
252
  flexGrow: 1
251
253
  },
252
254
  sectionCard: {
253
- backgroundColor: "#1F2937",
255
+ backgroundColor: _gameUIColors.buoyColors.input,
254
256
  borderRadius: 8,
255
257
  padding: 16,
256
258
  flexDirection: "row",
@@ -270,25 +272,25 @@ const styles = _reactNative.StyleSheet.create({
270
272
  flex: 1
271
273
  },
272
274
  title: {
273
- color: "#E5E7EB",
275
+ color: _gameUIColors.buoyColors.text,
274
276
  fontSize: 14,
275
277
  fontWeight: "600",
276
278
  marginBottom: 2
277
279
  },
278
280
  subtitle: {
279
- color: "#9CA3AF",
281
+ color: _gameUIColors.buoyColors.textSecondary,
280
282
  fontSize: 12
281
283
  },
282
284
  chevron: {
283
- color: "#6B7280",
285
+ color: _macOSDesignSystemColors.macOSColors.text.icon,
284
286
  fontSize: 20
285
287
  },
286
288
  detailContainer: {
287
289
  flex: 1,
288
- backgroundColor: "#171717"
290
+ backgroundColor: _gameUIColors.buoyColors.card
289
291
  },
290
292
  loadingText: {
291
- color: "#9CA3AF",
293
+ color: _gameUIColors.buoyColors.textSecondary,
292
294
  fontSize: 14,
293
295
  textAlign: "center",
294
296
  marginTop: 20
@@ -296,16 +298,16 @@ const styles = _reactNative.StyleSheet.create({
296
298
  header: {
297
299
  padding: 16,
298
300
  borderBottomWidth: 1,
299
- borderBottomColor: "rgba(255, 255, 255, 0.1)"
301
+ borderBottomColor: "rgba(128, 128, 128, 0.2)"
300
302
  },
301
303
  headerTitle: {
302
- color: "#E5E7EB",
304
+ color: _gameUIColors.buoyColors.text,
303
305
  fontSize: 16,
304
306
  fontWeight: "600",
305
307
  marginBottom: 4
306
308
  },
307
309
  headerDescription: {
308
- color: "#9CA3AF",
310
+ color: _gameUIColors.buoyColors.textSecondary,
309
311
  fontSize: 12
310
312
  },
311
313
  settingsList: {
@@ -316,7 +318,7 @@ const styles = _reactNative.StyleSheet.create({
316
318
  alignItems: "center",
317
319
  paddingVertical: 12,
318
320
  borderBottomWidth: 1,
319
- borderBottomColor: "rgba(255, 255, 255, 0.05)"
321
+ borderBottomColor: "rgba(128, 128, 128, 0.1)"
320
322
  },
321
323
  settingIconContainer: {
322
324
  width: 32,
@@ -330,13 +332,13 @@ const styles = _reactNative.StyleSheet.create({
330
332
  marginRight: 12
331
333
  },
332
334
  settingLabel: {
333
- color: "#E5E7EB",
335
+ color: _gameUIColors.buoyColors.text,
334
336
  fontSize: 14,
335
337
  fontWeight: "500",
336
338
  marginBottom: 2
337
339
  },
338
340
  settingDescription: {
339
- color: "#6B7280",
341
+ color: _macOSDesignSystemColors.macOSColors.text.icon,
340
342
  fontSize: 11
341
343
  },
342
344
  indicator: {
@@ -347,7 +349,7 @@ const styles = _reactNative.StyleSheet.create({
347
349
  footer: {
348
350
  padding: 16,
349
351
  borderTopWidth: 1,
350
- borderTopColor: "rgba(255, 255, 255, 0.1)"
352
+ borderTopColor: "rgba(128, 128, 128, 0.2)"
351
353
  },
352
354
  noteContainer: {
353
355
  flexDirection: "row",
@@ -356,12 +358,12 @@ const styles = _reactNative.StyleSheet.create({
356
358
  marginBottom: 8
357
359
  },
358
360
  noteText: {
359
- color: "#9CA3AF",
361
+ color: _gameUIColors.buoyColors.textSecondary,
360
362
  fontSize: 12,
361
363
  flex: 1
362
364
  },
363
365
  restartNote: {
364
- color: "#6B7280",
366
+ color: _macOSDesignSystemColors.macOSColors.text.icon,
365
367
  fontSize: 11,
366
368
  fontStyle: "italic"
367
369
  },
@@ -370,10 +372,10 @@ const styles = _reactNative.StyleSheet.create({
370
372
  paddingVertical: 8,
371
373
  marginTop: 8,
372
374
  borderTopWidth: 1,
373
- borderTopColor: "rgba(255, 255, 255, 0.06)"
375
+ borderTopColor: "rgba(128, 128, 128, 0.12)"
374
376
  },
375
377
  sectionTitle: {
376
- color: "#9CA3AF",
378
+ color: _gameUIColors.buoyColors.textSecondary,
377
379
  fontSize: 12,
378
380
  fontWeight: "600",
379
381
  letterSpacing: 0.5,
@@ -102,8 +102,6 @@ const devToolsStorageKeys = exports.devToolsStorageKeys = {
102
102
  preferences: () => `${devToolsStorageKeys.storage.root()}_preferences`,
103
103
  activeTab: () => `${devToolsStorageKeys.storage.root()}_active_tab`,
104
104
  isMonitoring: () => `${devToolsStorageKeys.storage.root()}_is_monitoring`,
105
- detailView: () => `${devToolsStorageKeys.storage.root()}_detail_view`,
106
- // 'current' | 'diff'
107
105
  diffViewerMode: () => `${devToolsStorageKeys.storage.root()}_diff_viewer_mode` // 'split' | 'tree'
108
106
  },
109
107
  /**
@@ -130,7 +128,12 @@ const devToolsStorageKeys = exports.devToolsStorageKeys = {
130
128
  ignoredDomains: () => `${devToolsStorageKeys.network.root()}_ignored_domains`,
131
129
  ignoredUrls: () => `${devToolsStorageKeys.network.root()}_ignored_urls`,
132
130
  preferences: () => `${devToolsStorageKeys.network.root()}_preferences`,
133
- copyOptions: () => `${devToolsStorageKeys.network.root()}_copy_options`
131
+ copyOptions: () => `${devToolsStorageKeys.network.root()}_copy_options`,
132
+ /**
133
+ * Pinned + saved requests (snapshots, not IDs — request IDs are
134
+ * per-runtime counters and collide across app launches).
135
+ */
136
+ saved: () => `${devToolsStorageKeys.network.root()}_saved`
134
137
  },
135
138
  /**
136
139
  * Route events-related storage keys
@@ -212,6 +212,8 @@ const styles = _reactNative.StyleSheet.create({
212
212
  alignItems: "center"
213
213
  },
214
214
  methodBadge: {
215
+ // Fixed width keeps the URL column aligned down the list whether or not
216
+ // the badge still has a chip around it.
215
217
  minWidth: 45,
216
218
  alignItems: "center"
217
219
  },
@@ -118,12 +118,19 @@ const styles = _reactNative.StyleSheet.create({
118
118
  borderRadius: 8,
119
119
  borderWidth: 1,
120
120
  borderColor: _gameUIColors.buoyColors.border + "40",
121
+ // …separated by a single hairline instead of four borders per row.
122
+ // Declared after borderWidth so the specific side wins on the chat path.
123
+ borderBottomWidth: 1,
124
+ borderBottomColor: _gameUIColors.buoyColors.border + "40",
121
125
  padding: 12,
126
+ paddingHorizontal: 12,
122
127
  transform: [{
123
128
  scale: 1
124
129
  }]
125
130
  },
126
131
  selectedRow: {
132
+ // Neutral fill, no outline, no lift — the same selection language as the
133
+ // sidebar. The classic path keeps its tinted, scaled, glowing card.
127
134
  backgroundColor: _gameUIColors.buoyColors.primary + "15",
128
135
  borderColor: _gameUIColors.buoyColors.primary + "50",
129
136
  transform: [{
@@ -59,6 +59,8 @@ const CopyButton = exports.CopyButton = /*#__PURE__*/(0, _react.memo)(function C
59
59
  isFocused = false,
60
60
  size = 16,
61
61
  buttonStyle,
62
+ label,
63
+ labelStyle,
62
64
  onCopySuccess,
63
65
  onCopyError,
64
66
  feedbackDuration = 1500,
@@ -180,7 +182,7 @@ const CopyButton = exports.CopyButton = /*#__PURE__*/(0, _react.memo)(function C
180
182
  });
181
183
  };
182
184
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
183
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
185
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
184
186
  ...touchableProps,
185
187
  style: [styles.button, buttonStyle],
186
188
  onPress: copyState === "idle" || !isPro ? handlePress : undefined,
@@ -193,7 +195,12 @@ const CopyButton = exports.CopyButton = /*#__PURE__*/(0, _react.memo)(function C
193
195
  },
194
196
  accessibilityLabel: copyState === "idle" ? "Copy to clipboard" : copyState === "success" ? "Copied to clipboard" : "Failed to copy",
195
197
  accessibilityRole: "button",
196
- children: renderIcon()
198
+ children: [renderIcon(), label ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
199
+ style: [styles.label, {
200
+ color: getColor()
201
+ }, labelStyle],
202
+ children: label
203
+ }) : null]
197
204
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ClipboardHintBanner.ClipboardHintBanner, {
198
205
  visible: showHint,
199
206
  onAcknowledge: handleHintAcknowledge
@@ -208,7 +215,15 @@ const styles = _reactNative.StyleSheet.create({
208
215
  button: {
209
216
  padding: 4,
210
217
  justifyContent: "center",
211
- alignItems: "center"
218
+ alignItems: "center",
219
+ // Only relevant when a `label` is present; a bare icon button has one
220
+ // child, so the row direction and gap cost it nothing.
221
+ flexDirection: "row",
222
+ gap: 7
223
+ },
224
+ label: {
225
+ fontSize: 12.5,
226
+ fontWeight: "600"
212
227
  }
213
228
  });
214
229
 
@@ -272,7 +287,15 @@ const clearStyles = _reactNative.StyleSheet.create({
272
287
  button: {
273
288
  padding: 4,
274
289
  justifyContent: "center",
275
- alignItems: "center"
290
+ alignItems: "center",
291
+ // Only relevant when a `label` is present; a bare icon button has one
292
+ // child, so the row direction and gap cost it nothing.
293
+ flexDirection: "row",
294
+ gap: 7
295
+ },
296
+ label: {
297
+ fontSize: 12.5,
298
+ fontWeight: "600"
276
299
  },
277
300
  disabled: {
278
301
  opacity: 0.4
@@ -78,6 +78,11 @@ function DevToolsCard({
78
78
  })
79
79
  });
80
80
  }
81
+
82
+ /**
83
+ * A bordered tile in a gutter. `CompactRow` is the other row primitive; keep the
84
+ * two in step.
85
+ */
81
86
  const styles = _reactNative.StyleSheet.create({
82
87
  wrapper: {
83
88
  marginHorizontal: DEVTOOLS_CARD_CONSTANTS.marginHorizontal,
@@ -88,10 +93,16 @@ const styles = _reactNative.StyleSheet.create({
88
93
  borderRadius: DEVTOOLS_CARD_CONSTANTS.borderRadius,
89
94
  borderWidth: DEVTOOLS_CARD_CONSTANTS.borderWidth,
90
95
  borderColor: _gameUIColors.buoyColors.border + "40",
96
+ // The separator. On classic this just re-states the full outline; on chat
97
+ // it is the ONLY edge the row has.
98
+ borderBottomWidth: 1,
99
+ borderBottomColor: _gameUIColors.buoyColors.border + "40",
91
100
  padding: DEVTOOLS_CARD_CONSTANTS.padding,
101
+ paddingHorizontal: DEVTOOLS_CARD_CONSTANTS.padding,
92
102
  minHeight: DEVTOOLS_CARD_CONSTANTS.minHeight
93
103
  },
94
104
  selectedCard: {
105
+ // Neutral grey fill, no tinted outline and no lift — see CompactRow.
95
106
  backgroundColor: _gameUIColors.buoyColors.primary + "15",
96
107
  borderColor: _gameUIColors.buoyColors.primary + "50",
97
108
  shadowColor: _gameUIColors.buoyColors.primary,
@@ -385,7 +385,14 @@ const styles = _reactNative.StyleSheet.create({
385
385
  borderRadius: 8,
386
386
  borderWidth: 1
387
387
  },
388
+ /**
389
+ * Selection is marked with a 2px accent outline. Border width stays 1 so
390
+ * selecting a
391
+ * tile doesn't shift the grid by a pixel.
392
+ */
388
393
  tabButtonActive: {
394
+ // White THUMB, not a grey one — the INACTIVE tab is already
395
+ // `buoyColors.hover` here, so a grey active state would be invisible.
389
396
  backgroundColor: _gameUIColors.buoyColors.primary + "20",
390
397
  borderColor: _gameUIColors.buoyColors.primary,
391
398
  borderWidth: 2
@@ -448,7 +455,7 @@ const styles = _reactNative.StyleSheet.create({
448
455
  backgroundColor: _gameUIColors.buoyColors.primary + "33",
449
456
  borderColor: _gameUIColors.buoyColors.primary,
450
457
  borderWidth: 2,
451
- // Subtle glow effect like web
458
+ // Subtle glow effect like web — no glows on a light surface.
452
459
  shadowColor: _gameUIColors.buoyColors.primary,
453
460
  shadowOffset: {
454
461
  width: 0,
@@ -8,6 +8,7 @@ exports.NoDataEmptyState = NoDataEmptyState;
8
8
  exports.NoResultsEmptyState = NoResultsEmptyState;
9
9
  exports.NoSearchResultsEmptyState = NoSearchResultsEmptyState;
10
10
  var _reactNative = require("react-native");
11
+ var _macOSDesignSystemColors = require("../gameUI/constants/macOSDesignSystemColors.js");
11
12
  var _jsxRuntime = require("react/jsx-runtime");
12
13
  /**
13
14
  * Reusable empty state component for consistent empty/no-data displays
@@ -17,7 +18,7 @@ function EmptyState({
17
18
  description,
18
19
  icon: Icon,
19
20
  iconSize = 48,
20
- iconColor = "#4B5563",
21
+ iconColor = _macOSDesignSystemColors.macOSColors.border.hover,
21
22
  action,
22
23
  variant = "default",
23
24
  style
@@ -94,11 +95,11 @@ const styles = _reactNative.StyleSheet.create({
94
95
  maxWidth: 300
95
96
  },
96
97
  cardVariant: {
97
- backgroundColor: "rgba(255, 255, 255, 0.03)",
98
+ backgroundColor: "rgba(128, 128, 128, 0.06)",
98
99
  padding: 32,
99
100
  borderRadius: 8,
100
101
  borderWidth: 1,
101
- borderColor: "rgba(255, 255, 255, 0.05)"
102
+ borderColor: "rgba(128, 128, 128, 0.1)"
102
103
  },
103
104
  minimalVariant: {
104
105
  padding: 16
@@ -107,14 +108,20 @@ const styles = _reactNative.StyleSheet.create({
107
108
  marginBottom: 16
108
109
  },
109
110
  title: {
110
- color: "#6B7280",
111
+ color: _macOSDesignSystemColors.macOSColors.text.icon,
111
112
  fontSize: 16,
112
113
  fontWeight: "500",
113
114
  textAlign: "center",
114
115
  marginBottom: 8
115
116
  },
116
117
  description: {
117
- color: "#4B5563",
118
+ // ⚠️ KNOWN LOW CONTRAST. This reads a BORDER token — border.hover is tuned
119
+ // to be a faint LINE, so as text it lands at ~2.8:1 on the near-black
120
+ // canvas, under WCAG AA. `macOSColors.text.muted` is the real tertiary-text
121
+ // token and would clear it comfortably. Left as-is because it is the
122
+ // shipped look and changing it moves every empty state in the suite; worth
123
+ // a deliberate pass rather than a drive-by.
124
+ color: _macOSDesignSystemColors.macOSColors.border.hover,
118
125
  fontSize: 14,
119
126
  textAlign: "center",
120
127
  lineHeight: 20