@buoy-gg/console 4.0.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 (151) hide show
  1. package/LICENSE +58 -0
  2. package/README.md +55 -0
  3. package/lib/commonjs/components/ConsoleIcon.js +47 -0
  4. package/lib/commonjs/components/ConsoleIcon.js.map +1 -0
  5. package/lib/commonjs/components/ConsoleLogList.js +145 -0
  6. package/lib/commonjs/components/ConsoleLogList.js.map +1 -0
  7. package/lib/commonjs/components/ConsoleModal.js +48 -0
  8. package/lib/commonjs/components/ConsoleModal.js.map +1 -0
  9. package/lib/commonjs/components/ConsoleRoot.js +28 -0
  10. package/lib/commonjs/components/ConsoleRoot.js.map +1 -0
  11. package/lib/commonjs/devtools/ConsoleBody.js +235 -0
  12. package/lib/commonjs/devtools/ConsoleBody.js.map +1 -0
  13. package/lib/commonjs/devtools/ConsoleHeader.js +146 -0
  14. package/lib/commonjs/devtools/ConsoleHeader.js.map +1 -0
  15. package/lib/commonjs/devtools/ConsoleMessageRow.js +338 -0
  16. package/lib/commonjs/devtools/ConsoleMessageRow.js.map +1 -0
  17. package/lib/commonjs/devtools/ConsoleValue.js +254 -0
  18. package/lib/commonjs/devtools/ConsoleValue.js.map +1 -0
  19. package/lib/commonjs/devtools/ConsoleView.js +51 -0
  20. package/lib/commonjs/devtools/ConsoleView.js.map +1 -0
  21. package/lib/commonjs/devtools/consoleFilter.js +125 -0
  22. package/lib/commonjs/devtools/consoleFilter.js.map +1 -0
  23. package/lib/commonjs/devtools/consoleFormat.js +313 -0
  24. package/lib/commonjs/devtools/consoleFormat.js.map +1 -0
  25. package/lib/commonjs/devtools/origin.js +191 -0
  26. package/lib/commonjs/devtools/origin.js.map +1 -0
  27. package/lib/commonjs/devtools/theme.js +143 -0
  28. package/lib/commonjs/devtools/theme.js.map +1 -0
  29. package/lib/commonjs/devtools/useConsoleController.js +82 -0
  30. package/lib/commonjs/devtools/useConsoleController.js.map +1 -0
  31. package/lib/commonjs/devtools/useConsoleMessages.js +241 -0
  32. package/lib/commonjs/devtools/useConsoleMessages.js.map +1 -0
  33. package/lib/commonjs/hooks/useConsoleLogs.js +23 -0
  34. package/lib/commonjs/hooks/useConsoleLogs.js.map +1 -0
  35. package/lib/commonjs/index.js +175 -0
  36. package/lib/commonjs/index.js.map +1 -0
  37. package/lib/commonjs/package.json +1 -0
  38. package/lib/commonjs/preset.js +45 -0
  39. package/lib/commonjs/preset.js.map +1 -0
  40. package/lib/commonjs/store/consoleLogStore.js +298 -0
  41. package/lib/commonjs/store/consoleLogStore.js.map +1 -0
  42. package/lib/commonjs/store/sanitize.js +64 -0
  43. package/lib/commonjs/store/sanitize.js.map +1 -0
  44. package/lib/commonjs/sync/consoleSyncAdapter.js +47 -0
  45. package/lib/commonjs/sync/consoleSyncAdapter.js.map +1 -0
  46. package/lib/module/components/ConsoleIcon.js +42 -0
  47. package/lib/module/components/ConsoleIcon.js.map +1 -0
  48. package/lib/module/components/ConsoleLogList.js +140 -0
  49. package/lib/module/components/ConsoleLogList.js.map +1 -0
  50. package/lib/module/components/ConsoleModal.js +44 -0
  51. package/lib/module/components/ConsoleModal.js.map +1 -0
  52. package/lib/module/components/ConsoleRoot.js +25 -0
  53. package/lib/module/components/ConsoleRoot.js.map +1 -0
  54. package/lib/module/devtools/ConsoleBody.js +230 -0
  55. package/lib/module/devtools/ConsoleBody.js.map +1 -0
  56. package/lib/module/devtools/ConsoleHeader.js +141 -0
  57. package/lib/module/devtools/ConsoleHeader.js.map +1 -0
  58. package/lib/module/devtools/ConsoleMessageRow.js +333 -0
  59. package/lib/module/devtools/ConsoleMessageRow.js.map +1 -0
  60. package/lib/module/devtools/ConsoleValue.js +249 -0
  61. package/lib/module/devtools/ConsoleValue.js.map +1 -0
  62. package/lib/module/devtools/ConsoleView.js +46 -0
  63. package/lib/module/devtools/ConsoleView.js.map +1 -0
  64. package/lib/module/devtools/consoleFilter.js +119 -0
  65. package/lib/module/devtools/consoleFilter.js.map +1 -0
  66. package/lib/module/devtools/consoleFormat.js +309 -0
  67. package/lib/module/devtools/consoleFormat.js.map +1 -0
  68. package/lib/module/devtools/origin.js +183 -0
  69. package/lib/module/devtools/origin.js.map +1 -0
  70. package/lib/module/devtools/theme.js +140 -0
  71. package/lib/module/devtools/theme.js.map +1 -0
  72. package/lib/module/devtools/useConsoleController.js +79 -0
  73. package/lib/module/devtools/useConsoleController.js.map +1 -0
  74. package/lib/module/devtools/useConsoleMessages.js +238 -0
  75. package/lib/module/devtools/useConsoleMessages.js.map +1 -0
  76. package/lib/module/hooks/useConsoleLogs.js +19 -0
  77. package/lib/module/hooks/useConsoleLogs.js.map +1 -0
  78. package/lib/module/index.js +52 -0
  79. package/lib/module/index.js.map +1 -0
  80. package/lib/module/preset.js +40 -0
  81. package/lib/module/preset.js.map +1 -0
  82. package/lib/module/store/consoleLogStore.js +284 -0
  83. package/lib/module/store/consoleLogStore.js.map +1 -0
  84. package/lib/module/store/sanitize.js +60 -0
  85. package/lib/module/store/sanitize.js.map +1 -0
  86. package/lib/module/sync/consoleSyncAdapter.js +43 -0
  87. package/lib/module/sync/consoleSyncAdapter.js.map +1 -0
  88. package/lib/typescript/components/ConsoleIcon.d.ts +14 -0
  89. package/lib/typescript/components/ConsoleIcon.d.ts.map +1 -0
  90. package/lib/typescript/components/ConsoleLogList.d.ts +8 -0
  91. package/lib/typescript/components/ConsoleLogList.d.ts.map +1 -0
  92. package/lib/typescript/components/ConsoleModal.d.ts +18 -0
  93. package/lib/typescript/components/ConsoleModal.d.ts.map +1 -0
  94. package/lib/typescript/components/ConsoleRoot.d.ts +14 -0
  95. package/lib/typescript/components/ConsoleRoot.d.ts.map +1 -0
  96. package/lib/typescript/devtools/ConsoleBody.d.ts +11 -0
  97. package/lib/typescript/devtools/ConsoleBody.d.ts.map +1 -0
  98. package/lib/typescript/devtools/ConsoleHeader.d.ts +17 -0
  99. package/lib/typescript/devtools/ConsoleHeader.d.ts.map +1 -0
  100. package/lib/typescript/devtools/ConsoleMessageRow.d.ts +20 -0
  101. package/lib/typescript/devtools/ConsoleMessageRow.d.ts.map +1 -0
  102. package/lib/typescript/devtools/ConsoleValue.d.ts +21 -0
  103. package/lib/typescript/devtools/ConsoleValue.d.ts.map +1 -0
  104. package/lib/typescript/devtools/ConsoleView.d.ts +10 -0
  105. package/lib/typescript/devtools/ConsoleView.d.ts.map +1 -0
  106. package/lib/typescript/devtools/consoleFilter.d.ts +31 -0
  107. package/lib/typescript/devtools/consoleFilter.d.ts.map +1 -0
  108. package/lib/typescript/devtools/consoleFormat.d.ts +29 -0
  109. package/lib/typescript/devtools/consoleFormat.d.ts.map +1 -0
  110. package/lib/typescript/devtools/origin.d.ts +39 -0
  111. package/lib/typescript/devtools/origin.d.ts.map +1 -0
  112. package/lib/typescript/devtools/theme.d.ts +57 -0
  113. package/lib/typescript/devtools/theme.d.ts.map +1 -0
  114. package/lib/typescript/devtools/useConsoleController.d.ts +35 -0
  115. package/lib/typescript/devtools/useConsoleController.d.ts.map +1 -0
  116. package/lib/typescript/devtools/useConsoleMessages.d.ts +74 -0
  117. package/lib/typescript/devtools/useConsoleMessages.d.ts.map +1 -0
  118. package/lib/typescript/hooks/useConsoleLogs.d.ts +11 -0
  119. package/lib/typescript/hooks/useConsoleLogs.d.ts.map +1 -0
  120. package/lib/typescript/index.d.ts +26 -0
  121. package/lib/typescript/index.d.ts.map +1 -0
  122. package/lib/typescript/preset.d.ts +38 -0
  123. package/lib/typescript/preset.d.ts.map +1 -0
  124. package/lib/typescript/store/consoleLogStore.d.ts +71 -0
  125. package/lib/typescript/store/consoleLogStore.d.ts.map +1 -0
  126. package/lib/typescript/store/sanitize.d.ts +11 -0
  127. package/lib/typescript/store/sanitize.d.ts.map +1 -0
  128. package/lib/typescript/sync/consoleSyncAdapter.d.ts +30 -0
  129. package/lib/typescript/sync/consoleSyncAdapter.d.ts.map +1 -0
  130. package/package.json +56 -0
  131. package/src/components/ConsoleIcon.tsx +49 -0
  132. package/src/components/ConsoleLogList.tsx +133 -0
  133. package/src/components/ConsoleModal.tsx +48 -0
  134. package/src/components/ConsoleRoot.tsx +25 -0
  135. package/src/devtools/ConsoleBody.tsx +225 -0
  136. package/src/devtools/ConsoleHeader.tsx +149 -0
  137. package/src/devtools/ConsoleMessageRow.tsx +345 -0
  138. package/src/devtools/ConsoleValue.tsx +265 -0
  139. package/src/devtools/ConsoleView.tsx +41 -0
  140. package/src/devtools/consoleFilter.ts +123 -0
  141. package/src/devtools/consoleFormat.ts +314 -0
  142. package/src/devtools/origin.ts +190 -0
  143. package/src/devtools/theme.ts +137 -0
  144. package/src/devtools/useConsoleController.ts +104 -0
  145. package/src/devtools/useConsoleMessages.ts +337 -0
  146. package/src/hooks/useConsoleLogs.ts +26 -0
  147. package/src/index.tsx +69 -0
  148. package/src/preset.tsx +35 -0
  149. package/src/store/consoleLogStore.ts +346 -0
  150. package/src/store/sanitize.ts +58 -0
  151. package/src/sync/consoleSyncAdapter.ts +49 -0
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * ConsoleModal
5
+ *
6
+ * Bottom-sheet wrapper for the console, rendered by FloatingDevTools when the
7
+ * Console tool is opened. The controls live in the shared ModalHeader
8
+ * (`customContent`) — matching Network/Events — and the body is the log list.
9
+ */
10
+
11
+ import { JsModal } from "@buoy-gg/shared-ui";
12
+ import { useConsoleController } from "../devtools/useConsoleController";
13
+ import { ConsoleHeader } from "../devtools/ConsoleHeader";
14
+ import { ConsoleBody } from "../devtools/ConsoleBody";
15
+ import { jsx as _jsx } from "react/jsx-runtime";
16
+ export function ConsoleModal({
17
+ visible,
18
+ onClose,
19
+ onBack,
20
+ onMinimize,
21
+ persistenceKey
22
+ }) {
23
+ const c = useConsoleController();
24
+ return /*#__PURE__*/_jsx(JsModal, {
25
+ visible: visible,
26
+ onClose: onClose,
27
+ onMinimize: onMinimize,
28
+ persistenceKey: persistenceKey,
29
+ header: {
30
+ showToggleButton: true,
31
+ customContent: /*#__PURE__*/_jsx(ConsoleHeader, {
32
+ c: c,
33
+ onBack: onBack
34
+ })
35
+ },
36
+ enablePersistence: true,
37
+ initialMode: "bottomSheet",
38
+ disableScrollWrapper: true,
39
+ children: /*#__PURE__*/_jsx(ConsoleBody, {
40
+ c: c
41
+ })
42
+ });
43
+ }
44
+ //# sourceMappingURL=ConsoleModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["JsModal","useConsoleController","ConsoleHeader","ConsoleBody","jsx","_jsx","ConsoleModal","visible","onClose","onBack","onMinimize","persistenceKey","c","header","showToggleButton","customContent","enablePersistence","initialMode","disableScrollWrapper","children"],"sourceRoot":"../../../src","sources":["components/ConsoleModal.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,OAAO,QAAQ,oBAAoB;AAE5C,SAASC,oBAAoB,QAAQ,kCAAkC;AACvE,SAASC,aAAa,QAAQ,2BAA2B;AACzD,SAASC,WAAW,QAAQ,yBAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAUtD,OAAO,SAASC,YAAYA,CAAC;EAC3BC,OAAO;EACPC,OAAO;EACPC,MAAM;EACNC,UAAU;EACVC;AACiB,CAAC,EAAE;EACpB,MAAMC,CAAC,GAAGX,oBAAoB,CAAC,CAAC;EAChC,oBACEI,IAAA,CAACL,OAAO;IACNO,OAAO,EAAEA,OAAQ;IACjBC,OAAO,EAAEA,OAAQ;IACjBE,UAAU,EAAEA,UAAW;IACvBC,cAAc,EAAEA,cAAe;IAC/BE,MAAM,EAAE;MACNC,gBAAgB,EAAE,IAAI;MACtBC,aAAa,eAAEV,IAAA,CAACH,aAAa;QAACU,CAAC,EAAEA,CAAE;QAACH,MAAM,EAAEA;MAAO,CAAE;IACvD,CAAE;IACFO,iBAAiB;IACjBC,WAAW,EAAC,aAAa;IACzBC,oBAAoB;IAAAC,QAAA,eAEpBd,IAAA,CAACF,WAAW;MAACS,CAAC,EAAEA;IAAE,CAAE;EAAC,CACd,CAAC;AAEd","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ import { useEffect } from "react";
4
+ import { installConsoleCapture, initConsolePersistence } from "../store/consoleLogStore";
5
+
6
+ /**
7
+ * Mount once near the app root to start capturing console output immediately,
8
+ * so logs emitted before the Console tool is opened are retained.
9
+ *
10
+ * Also restores a preserved buffer (or clears any stale one) before capture
11
+ * starts, so the session honors the "Preserve log" setting from the first log.
12
+ *
13
+ * @example
14
+ * ```tsx
15
+ * <ConsoleRoot />
16
+ * ```
17
+ */
18
+ export function ConsoleRoot() {
19
+ useEffect(() => {
20
+ // Restore/clear the persisted buffer first, then start capturing.
21
+ void initConsolePersistence().finally(() => installConsoleCapture());
22
+ }, []);
23
+ return null;
24
+ }
25
+ //# sourceMappingURL=ConsoleRoot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","installConsoleCapture","initConsolePersistence","ConsoleRoot","finally"],"sourceRoot":"../../../src","sources":["components/ConsoleRoot.tsx"],"mappings":";;AAAA,SAASA,SAAS,QAAQ,OAAO;AACjC,SACEC,qBAAqB,EACrBC,sBAAsB,QACjB,0BAA0B;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,WAAWA,CAAA,EAAS;EAClCH,SAAS,CAAC,MAAM;IACd;IACA,KAAKE,sBAAsB,CAAC,CAAC,CAACE,OAAO,CAAC,MAAMH,qBAAqB,CAAC,CAAC,CAAC;EACtE,CAAC,EAAE,EAAE,CAAC;EACN,OAAO,IAAI;AACb","ignoreList":[]}
@@ -0,0 +1,230 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * ConsoleBody — the modal body. Renders the virtualized log list, or (when a
5
+ * header action selected it) a back-navigable Log levels / Console settings
6
+ * sub-view, mirroring how Network swaps its body to a filter sub-view.
7
+ */
8
+
9
+ import React, { useCallback, useRef, useSyncExternalStore } from "react";
10
+ import { View, Text, FlatList, TouchableOpacity, ScrollView, StyleSheet } from "react-native";
11
+ import { macOSColors, Check } from "@buoy-gg/shared-ui";
12
+ import { consoleTheme } from "./theme";
13
+ import { ConsoleMessageRow } from "./ConsoleMessageRow";
14
+ import { ALL_LEVELS, DEFAULT_LEVELS, LEVEL_LABEL, LEVEL_ORDER } from "./consoleFilter";
15
+ import { getPreserveLog, setPreserveLog, subscribePreserveLog } from "../store/consoleLogStore";
16
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
17
+ export function ConsoleBody({
18
+ c
19
+ }) {
20
+ if (c.view === "filters") return /*#__PURE__*/_jsx(FiltersView, {
21
+ c: c
22
+ });
23
+ return /*#__PURE__*/_jsx(ConsoleList, {
24
+ c: c
25
+ });
26
+ }
27
+
28
+ // ─── Log list ────────────────────────────────────────────────────────────────
29
+
30
+ function ConsoleList({
31
+ c
32
+ }) {
33
+ const listRef = useRef(null);
34
+ const stickToBottom = useRef(true);
35
+ const renderItem = useCallback(({
36
+ item
37
+ }) => /*#__PURE__*/_jsx(ConsoleMessageRow, {
38
+ row: item,
39
+ showTimestamps: c.showTimestamps,
40
+ onToggleGroup: c.onToggleGroup,
41
+ onToggleCluster: c.onToggleCluster
42
+ }), [c.showTimestamps, c.onToggleGroup, c.onToggleCluster]);
43
+ return /*#__PURE__*/_jsx(FlatList, {
44
+ ref: listRef,
45
+ data: c.rows,
46
+ keyExtractor: item => item.key,
47
+ renderItem: renderItem,
48
+ style: styles.list,
49
+ initialNumToRender: 30,
50
+ maxToRenderPerBatch: 30,
51
+ windowSize: 21,
52
+ removeClippedSubviews: true,
53
+ onContentSizeChange: () => {
54
+ if (stickToBottom.current) listRef.current?.scrollToEnd({
55
+ animated: false
56
+ });
57
+ },
58
+ onScroll: e => {
59
+ const {
60
+ contentOffset,
61
+ contentSize,
62
+ layoutMeasurement
63
+ } = e.nativeEvent;
64
+ const distanceFromBottom = contentSize.height - (contentOffset.y + layoutMeasurement.height);
65
+ stickToBottom.current = distanceFromBottom < 40;
66
+ },
67
+ scrollEventThrottle: 100
68
+ });
69
+ }
70
+
71
+ // ─── Sub-views ───────────────────────────────────────────────────────────────
72
+
73
+ function CheckRow({
74
+ on,
75
+ label,
76
+ subtext,
77
+ onPress
78
+ }) {
79
+ return /*#__PURE__*/_jsxs(TouchableOpacity, {
80
+ style: styles.row,
81
+ onPress: onPress,
82
+ activeOpacity: 0.7,
83
+ children: [/*#__PURE__*/_jsx(View, {
84
+ style: [styles.checkbox, on && styles.checkboxOn],
85
+ children: on ? /*#__PURE__*/_jsx(Check, {
86
+ size: 12,
87
+ color: macOSColors.background.base,
88
+ strokeWidth: 3
89
+ }) : null
90
+ }), /*#__PURE__*/_jsxs(View, {
91
+ style: styles.rowTextCol,
92
+ children: [/*#__PURE__*/_jsx(Text, {
93
+ style: styles.rowLabel,
94
+ children: label
95
+ }), subtext ? /*#__PURE__*/_jsx(Text, {
96
+ style: styles.rowSubtext,
97
+ children: subtext
98
+ }) : null]
99
+ })]
100
+ });
101
+ }
102
+ function SectionLabel({
103
+ text
104
+ }) {
105
+ return /*#__PURE__*/_jsx(Text, {
106
+ style: styles.sectionLabel,
107
+ children: text
108
+ });
109
+ }
110
+ function FiltersView({
111
+ c
112
+ }) {
113
+ const preserveLog = useSyncExternalStore(subscribePreserveLog, getPreserveLog, getPreserveLog);
114
+ const toggle = level => c.setLevelsMask({
115
+ ...c.levelsMask,
116
+ [level]: !c.levelsMask[level]
117
+ });
118
+ return /*#__PURE__*/_jsxs(ScrollView, {
119
+ style: styles.subView,
120
+ contentContainerStyle: styles.subViewContent,
121
+ children: [/*#__PURE__*/_jsx(SectionLabel, {
122
+ text: "Log levels"
123
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
124
+ style: styles.presetRow,
125
+ onPress: () => c.setLevelsMask({
126
+ ...DEFAULT_LEVELS
127
+ }),
128
+ children: /*#__PURE__*/_jsx(Text, {
129
+ style: styles.presetText,
130
+ children: "Default (hide verbose)"
131
+ })
132
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
133
+ style: styles.presetRow,
134
+ onPress: () => c.setLevelsMask({
135
+ ...ALL_LEVELS
136
+ }),
137
+ children: /*#__PURE__*/_jsx(Text, {
138
+ style: styles.presetText,
139
+ children: "All levels"
140
+ })
141
+ }), LEVEL_ORDER.map(level => /*#__PURE__*/_jsx(CheckRow, {
142
+ on: c.levelsMask[level],
143
+ label: LEVEL_LABEL[level],
144
+ onPress: () => toggle(level)
145
+ }, level)), /*#__PURE__*/_jsx(View, {
146
+ style: styles.divider
147
+ }), /*#__PURE__*/_jsx(SectionLabel, {
148
+ text: "Settings"
149
+ }), /*#__PURE__*/_jsx(CheckRow, {
150
+ on: c.showTimestamps,
151
+ label: "Show timestamps",
152
+ onPress: () => c.setShowTimestamps(s => !s)
153
+ }), /*#__PURE__*/_jsx(CheckRow, {
154
+ on: preserveLog,
155
+ label: "Preserve log",
156
+ subtext: "Do not clear log on reload",
157
+ onPress: () => setPreserveLog(!preserveLog)
158
+ })]
159
+ });
160
+ }
161
+ const styles = StyleSheet.create({
162
+ list: {
163
+ flex: 1,
164
+ backgroundColor: consoleTheme.baseContainer
165
+ },
166
+ subView: {
167
+ flex: 1,
168
+ backgroundColor: macOSColors.background.base
169
+ },
170
+ subViewContent: {
171
+ padding: 12
172
+ },
173
+ sectionLabel: {
174
+ color: macOSColors.text.muted,
175
+ fontSize: 11,
176
+ textTransform: "uppercase",
177
+ letterSpacing: 0.5,
178
+ marginTop: 4,
179
+ marginBottom: 4,
180
+ paddingHorizontal: 8
181
+ },
182
+ presetRow: {
183
+ paddingVertical: 10,
184
+ paddingHorizontal: 8
185
+ },
186
+ presetText: {
187
+ color: macOSColors.semantic.info,
188
+ fontSize: 14,
189
+ fontWeight: "600"
190
+ },
191
+ divider: {
192
+ height: StyleSheet.hairlineWidth,
193
+ backgroundColor: macOSColors.border.default,
194
+ marginVertical: 6
195
+ },
196
+ row: {
197
+ flexDirection: "row",
198
+ alignItems: "center",
199
+ paddingVertical: 10,
200
+ paddingHorizontal: 8,
201
+ gap: 12
202
+ },
203
+ rowTextCol: {
204
+ flexDirection: "column",
205
+ flex: 1
206
+ },
207
+ rowLabel: {
208
+ color: macOSColors.text.primary,
209
+ fontSize: 14
210
+ },
211
+ rowSubtext: {
212
+ color: macOSColors.text.muted,
213
+ fontSize: 12,
214
+ marginTop: 1
215
+ },
216
+ checkbox: {
217
+ width: 18,
218
+ height: 18,
219
+ borderRadius: 4,
220
+ borderWidth: 1,
221
+ borderColor: macOSColors.border.input,
222
+ alignItems: "center",
223
+ justifyContent: "center"
224
+ },
225
+ checkboxOn: {
226
+ backgroundColor: macOSColors.semantic.info,
227
+ borderColor: macOSColors.semantic.info
228
+ }
229
+ });
230
+ //# sourceMappingURL=ConsoleBody.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useCallback","useRef","useSyncExternalStore","View","Text","FlatList","TouchableOpacity","ScrollView","StyleSheet","macOSColors","Check","consoleTheme","ConsoleMessageRow","ALL_LEVELS","DEFAULT_LEVELS","LEVEL_LABEL","LEVEL_ORDER","getPreserveLog","setPreserveLog","subscribePreserveLog","jsx","_jsx","jsxs","_jsxs","ConsoleBody","c","view","FiltersView","ConsoleList","listRef","stickToBottom","renderItem","item","row","showTimestamps","onToggleGroup","onToggleCluster","ref","data","rows","keyExtractor","key","style","styles","list","initialNumToRender","maxToRenderPerBatch","windowSize","removeClippedSubviews","onContentSizeChange","current","scrollToEnd","animated","onScroll","e","contentOffset","contentSize","layoutMeasurement","nativeEvent","distanceFromBottom","height","y","scrollEventThrottle","CheckRow","on","label","subtext","onPress","activeOpacity","children","checkbox","checkboxOn","size","color","background","base","strokeWidth","rowTextCol","rowLabel","rowSubtext","SectionLabel","text","sectionLabel","preserveLog","toggle","level","setLevelsMask","levelsMask","subView","contentContainerStyle","subViewContent","presetRow","presetText","map","divider","setShowTimestamps","s","create","flex","backgroundColor","baseContainer","padding","muted","fontSize","textTransform","letterSpacing","marginTop","marginBottom","paddingHorizontal","paddingVertical","semantic","info","fontWeight","hairlineWidth","border","default","marginVertical","flexDirection","alignItems","gap","primary","width","borderRadius","borderWidth","borderColor","input","justifyContent"],"sourceRoot":"../../../src","sources":["devtools/ConsoleBody.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * ConsoleHeader — the Console tool's header, built from the shared ModalHeader
5
+ * pattern so it matches Network/Events 1:1. Controls live here: the
6
+ * Timeline/Grouped TabSelector (or the search field when active), plus action
7
+ * icons for search, level filter, clear, and settings. Tapping the level/filter
8
+ * or settings icon swaps the body to a back-navigable sub-view.
9
+ */
10
+
11
+ import React from "react";
12
+ import { View, TextInput, TouchableOpacity, StyleSheet } from "react-native";
13
+ import { ModalHeader, TabSelector, macOSColors, Search, Filter, Trash2, X } from "@buoy-gg/shared-ui";
14
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
15
+ const LAYOUT_TABS = [{
16
+ key: "chrono",
17
+ label: "Timeline"
18
+ }, {
19
+ key: "cluster",
20
+ label: "Grouped"
21
+ }];
22
+ export function ConsoleHeader({
23
+ c,
24
+ onBack
25
+ }) {
26
+ // Filters sub-view: a back chevron returns to the list.
27
+ if (c.view === "filters") {
28
+ return /*#__PURE__*/_jsxs(ModalHeader, {
29
+ children: [/*#__PURE__*/_jsx(ModalHeader.Navigation, {
30
+ onBack: () => c.setView("list")
31
+ }), /*#__PURE__*/_jsx(ModalHeader.Content, {
32
+ title: "Filters"
33
+ })]
34
+ });
35
+ }
36
+ const hasRows = c.rows.length > 0;
37
+ return /*#__PURE__*/_jsxs(ModalHeader, {
38
+ children: [onBack ? /*#__PURE__*/_jsx(ModalHeader.Navigation, {
39
+ onBack: onBack
40
+ }) : null, /*#__PURE__*/_jsx(ModalHeader.Content, {
41
+ title: "",
42
+ noMargin: true,
43
+ children: c.searchActive ? /*#__PURE__*/_jsxs(View, {
44
+ style: styles.searchContainer,
45
+ children: [/*#__PURE__*/_jsx(Search, {
46
+ size: 14,
47
+ color: macOSColors.text.secondary
48
+ }), /*#__PURE__*/_jsx(TextInput, {
49
+ style: styles.searchInput,
50
+ placeholder: "Filter logs\u2026 /regex/ -exclude",
51
+ placeholderTextColor: macOSColors.text.muted,
52
+ value: c.query,
53
+ onChangeText: c.setQuery,
54
+ autoCapitalize: "none",
55
+ autoCorrect: false,
56
+ returnKeyType: "search",
57
+ onSubmitEditing: () => c.setSearchActive(false)
58
+ }), c.query.length > 0 ? /*#__PURE__*/_jsx(TouchableOpacity, {
59
+ onPress: () => c.setQuery(""),
60
+ style: styles.searchClear,
61
+ children: /*#__PURE__*/_jsx(X, {
62
+ size: 14,
63
+ color: macOSColors.text.secondary
64
+ })
65
+ }) : null]
66
+ }) : /*#__PURE__*/_jsx(TabSelector, {
67
+ tabs: LAYOUT_TABS,
68
+ activeTab: c.layoutMode,
69
+ onTabChange: key => c.setLayoutMode(key)
70
+ })
71
+ }), /*#__PURE__*/_jsxs(ModalHeader.Actions, {
72
+ children: [/*#__PURE__*/_jsx(TouchableOpacity, {
73
+ onPress: () => c.setSearchActive(a => !a),
74
+ style: [styles.actionBtn, c.searchActive && styles.actionBtnActive],
75
+ accessibilityLabel: "Search logs",
76
+ children: /*#__PURE__*/_jsx(Search, {
77
+ size: 14,
78
+ color: c.searchActive ? macOSColors.semantic.info : macOSColors.text.secondary
79
+ })
80
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
81
+ onPress: () => c.setView("filters"),
82
+ style: [styles.actionBtn, c.isLevelCustom && styles.actionBtnActive],
83
+ accessibilityLabel: "Filters",
84
+ children: /*#__PURE__*/_jsx(Filter, {
85
+ size: 14,
86
+ color: c.isLevelCustom ? macOSColors.semantic.info : macOSColors.text.muted
87
+ })
88
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
89
+ onPress: c.clear,
90
+ disabled: !hasRows,
91
+ style: [styles.actionBtn, !hasRows && styles.actionBtnDisabled],
92
+ accessibilityLabel: "Clear console",
93
+ children: /*#__PURE__*/_jsx(Trash2, {
94
+ size: 14,
95
+ color: hasRows ? macOSColors.text.muted : macOSColors.text.disabled
96
+ })
97
+ })]
98
+ })]
99
+ });
100
+ }
101
+ const styles = StyleSheet.create({
102
+ actionBtn: {
103
+ width: 32,
104
+ height: 32,
105
+ borderRadius: 8,
106
+ backgroundColor: macOSColors.background.hover,
107
+ borderWidth: 1,
108
+ borderColor: macOSColors.border.default,
109
+ alignItems: "center",
110
+ justifyContent: "center"
111
+ },
112
+ actionBtnActive: {
113
+ backgroundColor: macOSColors.semantic.infoBackground,
114
+ borderColor: macOSColors.semantic.info + "40"
115
+ },
116
+ actionBtnDisabled: {
117
+ opacity: 0.55
118
+ },
119
+ searchContainer: {
120
+ flexDirection: "row",
121
+ alignItems: "center",
122
+ backgroundColor: macOSColors.background.input,
123
+ borderRadius: 10,
124
+ borderWidth: 1,
125
+ borderColor: macOSColors.border.default,
126
+ paddingHorizontal: 12,
127
+ paddingVertical: 5
128
+ },
129
+ searchInput: {
130
+ flex: 1,
131
+ color: macOSColors.text.primary,
132
+ fontSize: 13,
133
+ marginLeft: 6,
134
+ paddingVertical: 2
135
+ },
136
+ searchClear: {
137
+ marginLeft: 6,
138
+ padding: 4
139
+ }
140
+ });
141
+ //# sourceMappingURL=ConsoleHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","TextInput","TouchableOpacity","StyleSheet","ModalHeader","TabSelector","macOSColors","Search","Filter","Trash2","X","jsx","_jsx","jsxs","_jsxs","LAYOUT_TABS","key","label","ConsoleHeader","c","onBack","view","children","Navigation","setView","Content","title","hasRows","rows","length","noMargin","searchActive","style","styles","searchContainer","size","color","text","secondary","searchInput","placeholder","placeholderTextColor","muted","value","query","onChangeText","setQuery","autoCapitalize","autoCorrect","returnKeyType","onSubmitEditing","setSearchActive","onPress","searchClear","tabs","activeTab","layoutMode","onTabChange","setLayoutMode","Actions","a","actionBtn","actionBtnActive","accessibilityLabel","semantic","info","isLevelCustom","clear","disabled","actionBtnDisabled","create","width","height","borderRadius","backgroundColor","background","hover","borderWidth","borderColor","border","default","alignItems","justifyContent","infoBackground","opacity","flexDirection","input","paddingHorizontal","paddingVertical","flex","primary","fontSize","marginLeft","padding"],"sourceRoot":"../../../src","sources":["devtools/ConsoleHeader.tsx"],"mappings":"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","ignoreList":[]}