@buoy-gg/js-top 7.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/LICENSE +58 -0
  2. package/README.md +56 -0
  3. package/lib/commonjs/index.js +97 -0
  4. package/lib/commonjs/index.js.map +1 -0
  5. package/lib/commonjs/js-top/components/BusySparkline.js +56 -0
  6. package/lib/commonjs/js-top/components/BusySparkline.js.map +1 -0
  7. package/lib/commonjs/js-top/components/JsTopHudOverlay.js +79 -0
  8. package/lib/commonjs/js-top/components/JsTopHudOverlay.js.map +1 -0
  9. package/lib/commonjs/js-top/components/JsTopModal.js +347 -0
  10. package/lib/commonjs/js-top/components/JsTopModal.js.map +1 -0
  11. package/lib/commonjs/js-top/components/TaskDetailView.js +329 -0
  12. package/lib/commonjs/js-top/components/TaskDetailView.js.map +1 -0
  13. package/lib/commonjs/js-top/components/TaskTable.js +360 -0
  14. package/lib/commonjs/js-top/components/TaskTable.js.map +1 -0
  15. package/lib/commonjs/js-top/engine/JsTopController.js +350 -0
  16. package/lib/commonjs/js-top/engine/JsTopController.js.map +1 -0
  17. package/lib/commonjs/js-top/engine/aggregator.js +148 -0
  18. package/lib/commonjs/js-top/engine/aggregator.js.map +1 -0
  19. package/lib/commonjs/js-top/engine/busyProbe.js +101 -0
  20. package/lib/commonjs/js-top/engine/busyProbe.js.map +1 -0
  21. package/lib/commonjs/js-top/engine/frameStack.js +133 -0
  22. package/lib/commonjs/js-top/engine/frameStack.js.map +1 -0
  23. package/lib/commonjs/js-top/engine/longtasks.js +141 -0
  24. package/lib/commonjs/js-top/engine/longtasks.js.map +1 -0
  25. package/lib/commonjs/js-top/engine/now.js +38 -0
  26. package/lib/commonjs/js-top/engine/now.js.map +1 -0
  27. package/lib/commonjs/js-top/engine/originRegistry.js +402 -0
  28. package/lib/commonjs/js-top/engine/originRegistry.js.map +1 -0
  29. package/lib/commonjs/js-top/engine/patches/bridge.js +60 -0
  30. package/lib/commonjs/js-top/engine/patches/bridge.js.map +1 -0
  31. package/lib/commonjs/js-top/engine/patches/microtasks.js +27 -0
  32. package/lib/commonjs/js-top/engine/patches/microtasks.js.map +1 -0
  33. package/lib/commonjs/js-top/engine/patches/promises.js +65 -0
  34. package/lib/commonjs/js-top/engine/patches/promises.js.map +1 -0
  35. package/lib/commonjs/js-top/engine/patches/timers.js +66 -0
  36. package/lib/commonjs/js-top/engine/patches/timers.js.map +1 -0
  37. package/lib/commonjs/js-top/engine/state.js +63 -0
  38. package/lib/commonjs/js-top/engine/state.js.map +1 -0
  39. package/lib/commonjs/js-top/engine/symbolicate.js +95 -0
  40. package/lib/commonjs/js-top/engine/symbolicate.js.map +1 -0
  41. package/lib/commonjs/js-top/sync/jsTopSyncAdapter.js +74 -0
  42. package/lib/commonjs/js-top/sync/jsTopSyncAdapter.js.map +1 -0
  43. package/lib/commonjs/js-top/types/index.js +46 -0
  44. package/lib/commonjs/js-top/types/index.js.map +1 -0
  45. package/lib/commonjs/js-top/utils/preferences.js +39 -0
  46. package/lib/commonjs/js-top/utils/preferences.js.map +1 -0
  47. package/lib/commonjs/package.json +1 -0
  48. package/lib/commonjs/preset.js +75 -0
  49. package/lib/commonjs/preset.js.map +1 -0
  50. package/lib/module/index.js +47 -0
  51. package/lib/module/index.js.map +1 -0
  52. package/lib/module/js-top/components/BusySparkline.js +52 -0
  53. package/lib/module/js-top/components/BusySparkline.js.map +1 -0
  54. package/lib/module/js-top/components/JsTopHudOverlay.js +75 -0
  55. package/lib/module/js-top/components/JsTopHudOverlay.js.map +1 -0
  56. package/lib/module/js-top/components/JsTopModal.js +343 -0
  57. package/lib/module/js-top/components/JsTopModal.js.map +1 -0
  58. package/lib/module/js-top/components/TaskDetailView.js +325 -0
  59. package/lib/module/js-top/components/TaskDetailView.js.map +1 -0
  60. package/lib/module/js-top/components/TaskTable.js +353 -0
  61. package/lib/module/js-top/components/TaskTable.js.map +1 -0
  62. package/lib/module/js-top/engine/JsTopController.js +347 -0
  63. package/lib/module/js-top/engine/JsTopController.js.map +1 -0
  64. package/lib/module/js-top/engine/aggregator.js +136 -0
  65. package/lib/module/js-top/engine/aggregator.js.map +1 -0
  66. package/lib/module/js-top/engine/busyProbe.js +94 -0
  67. package/lib/module/js-top/engine/busyProbe.js.map +1 -0
  68. package/lib/module/js-top/engine/frameStack.js +126 -0
  69. package/lib/module/js-top/engine/frameStack.js.map +1 -0
  70. package/lib/module/js-top/engine/longtasks.js +133 -0
  71. package/lib/module/js-top/engine/longtasks.js.map +1 -0
  72. package/lib/module/js-top/engine/now.js +33 -0
  73. package/lib/module/js-top/engine/now.js.map +1 -0
  74. package/lib/module/js-top/engine/originRegistry.js +388 -0
  75. package/lib/module/js-top/engine/originRegistry.js.map +1 -0
  76. package/lib/module/js-top/engine/patches/bridge.js +56 -0
  77. package/lib/module/js-top/engine/patches/bridge.js.map +1 -0
  78. package/lib/module/js-top/engine/patches/microtasks.js +23 -0
  79. package/lib/module/js-top/engine/patches/microtasks.js.map +1 -0
  80. package/lib/module/js-top/engine/patches/promises.js +62 -0
  81. package/lib/module/js-top/engine/patches/promises.js.map +1 -0
  82. package/lib/module/js-top/engine/patches/timers.js +62 -0
  83. package/lib/module/js-top/engine/patches/timers.js.map +1 -0
  84. package/lib/module/js-top/engine/state.js +54 -0
  85. package/lib/module/js-top/engine/state.js.map +1 -0
  86. package/lib/module/js-top/engine/symbolicate.js +91 -0
  87. package/lib/module/js-top/engine/symbolicate.js.map +1 -0
  88. package/lib/module/js-top/sync/jsTopSyncAdapter.js +70 -0
  89. package/lib/module/js-top/sync/jsTopSyncAdapter.js.map +1 -0
  90. package/lib/module/js-top/types/index.js +42 -0
  91. package/lib/module/js-top/types/index.js.map +1 -0
  92. package/lib/module/js-top/utils/preferences.js +34 -0
  93. package/lib/module/js-top/utils/preferences.js.map +1 -0
  94. package/lib/module/preset.js +71 -0
  95. package/lib/module/preset.js.map +1 -0
  96. package/lib/typescript/index.d.ts +21 -0
  97. package/lib/typescript/index.d.ts.map +1 -0
  98. package/lib/typescript/js-top/components/BusySparkline.d.ts +8 -0
  99. package/lib/typescript/js-top/components/BusySparkline.d.ts.map +1 -0
  100. package/lib/typescript/js-top/components/JsTopHudOverlay.d.ts +8 -0
  101. package/lib/typescript/js-top/components/JsTopHudOverlay.d.ts.map +1 -0
  102. package/lib/typescript/js-top/components/JsTopModal.d.ts +39 -0
  103. package/lib/typescript/js-top/components/JsTopModal.d.ts.map +1 -0
  104. package/lib/typescript/js-top/components/TaskDetailView.d.ts +15 -0
  105. package/lib/typescript/js-top/components/TaskDetailView.d.ts.map +1 -0
  106. package/lib/typescript/js-top/components/TaskTable.d.ts +38 -0
  107. package/lib/typescript/js-top/components/TaskTable.d.ts.map +1 -0
  108. package/lib/typescript/js-top/engine/JsTopController.d.ts +78 -0
  109. package/lib/typescript/js-top/engine/JsTopController.d.ts.map +1 -0
  110. package/lib/typescript/js-top/engine/__tests__/engine.test.d.ts +9 -0
  111. package/lib/typescript/js-top/engine/__tests__/engine.test.d.ts.map +1 -0
  112. package/lib/typescript/js-top/engine/aggregator.d.ts +33 -0
  113. package/lib/typescript/js-top/engine/aggregator.d.ts.map +1 -0
  114. package/lib/typescript/js-top/engine/busyProbe.d.ts +25 -0
  115. package/lib/typescript/js-top/engine/busyProbe.d.ts.map +1 -0
  116. package/lib/typescript/js-top/engine/frameStack.d.ts +44 -0
  117. package/lib/typescript/js-top/engine/frameStack.d.ts.map +1 -0
  118. package/lib/typescript/js-top/engine/longtasks.d.ts +37 -0
  119. package/lib/typescript/js-top/engine/longtasks.d.ts.map +1 -0
  120. package/lib/typescript/js-top/engine/now.d.ts +9 -0
  121. package/lib/typescript/js-top/engine/now.d.ts.map +1 -0
  122. package/lib/typescript/js-top/engine/originRegistry.d.ts +82 -0
  123. package/lib/typescript/js-top/engine/originRegistry.d.ts.map +1 -0
  124. package/lib/typescript/js-top/engine/patches/bridge.d.ts +17 -0
  125. package/lib/typescript/js-top/engine/patches/bridge.d.ts.map +1 -0
  126. package/lib/typescript/js-top/engine/patches/microtasks.d.ts +6 -0
  127. package/lib/typescript/js-top/engine/patches/microtasks.d.ts.map +1 -0
  128. package/lib/typescript/js-top/engine/patches/promises.d.ts +18 -0
  129. package/lib/typescript/js-top/engine/patches/promises.d.ts.map +1 -0
  130. package/lib/typescript/js-top/engine/patches/timers.d.ts +11 -0
  131. package/lib/typescript/js-top/engine/patches/timers.d.ts.map +1 -0
  132. package/lib/typescript/js-top/engine/state.d.ts +35 -0
  133. package/lib/typescript/js-top/engine/state.d.ts.map +1 -0
  134. package/lib/typescript/js-top/engine/symbolicate.d.ts +16 -0
  135. package/lib/typescript/js-top/engine/symbolicate.d.ts.map +1 -0
  136. package/lib/typescript/js-top/sync/jsTopSyncAdapter.d.ts +43 -0
  137. package/lib/typescript/js-top/sync/jsTopSyncAdapter.d.ts.map +1 -0
  138. package/lib/typescript/js-top/types/index.d.ts +130 -0
  139. package/lib/typescript/js-top/types/index.d.ts.map +1 -0
  140. package/lib/typescript/js-top/utils/preferences.d.ts +13 -0
  141. package/lib/typescript/js-top/utils/preferences.d.ts.map +1 -0
  142. package/lib/typescript/preset.d.ts +49 -0
  143. package/lib/typescript/preset.d.ts.map +1 -0
  144. package/package.json +67 -0
  145. package/src/index.tsx +69 -0
  146. package/src/js-top/components/BusySparkline.tsx +59 -0
  147. package/src/js-top/components/JsTopHudOverlay.tsx +78 -0
  148. package/src/js-top/components/JsTopModal.tsx +421 -0
  149. package/src/js-top/components/TaskDetailView.tsx +349 -0
  150. package/src/js-top/components/TaskTable.tsx +365 -0
  151. package/src/js-top/engine/JsTopController.ts +401 -0
  152. package/src/js-top/engine/__tests__/engine.test.ts +337 -0
  153. package/src/js-top/engine/aggregator.ts +148 -0
  154. package/src/js-top/engine/busyProbe.ts +100 -0
  155. package/src/js-top/engine/frameStack.ts +142 -0
  156. package/src/js-top/engine/longtasks.ts +137 -0
  157. package/src/js-top/engine/now.ts +33 -0
  158. package/src/js-top/engine/originRegistry.ts +495 -0
  159. package/src/js-top/engine/patches/bridge.ts +69 -0
  160. package/src/js-top/engine/patches/microtasks.ts +25 -0
  161. package/src/js-top/engine/patches/promises.ts +57 -0
  162. package/src/js-top/engine/patches/timers.ts +80 -0
  163. package/src/js-top/engine/state.ts +66 -0
  164. package/src/js-top/engine/symbolicate.ts +109 -0
  165. package/src/js-top/sync/jsTopSyncAdapter.ts +72 -0
  166. package/src/js-top/types/index.ts +144 -0
  167. package/src/js-top/utils/preferences.ts +35 -0
  168. package/src/preset.tsx +67 -0
@@ -0,0 +1,347 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.JsTopModal = JsTopModal;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _sharedUi = require("@buoy-gg/shared-ui");
10
+ var _JsTopController = require("../engine/JsTopController");
11
+ var _BusySparkline = require("./BusySparkline");
12
+ var _TaskTable = require("./TaskTable");
13
+ var _TaskDetailView = require("./TaskDetailView");
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
+ /**
16
+ * JS TOP modal — the Task Manager window.
17
+ *
18
+ * Layout: header (busy% pill + pause/clear controls) → busy sparkline →
19
+ * coverage banner (when bridge tier is unavailable) → ranked task table →
20
+ * blocking-task list.
21
+ *
22
+ * Data source is the local JsTopController by default. The desktop
23
+ * dashboard mounts this same component via react-native-web and injects the
24
+ * synced device snapshot + remote actions through `remoteSnapshot` /
25
+ * `remoteActions` — the modal never samples the Electron renderer.
26
+ */
27
+
28
+ function busyColor(pct) {
29
+ if (pct >= 80) return _sharedUi.macOSColors.semantic.error;
30
+ if (pct >= 40) return _sharedUi.macOSColors.semantic.warning;
31
+ return _sharedUi.macOSColors.semantic.success;
32
+ }
33
+
34
+ /** ≥100ms is a dropped-tap-level freeze — escalate to red. */
35
+ function freezeColor(worstMs) {
36
+ return worstMs >= 100 ? _sharedUi.macOSColors.semantic.error : _sharedUi.macOSColors.semantic.warning;
37
+ }
38
+
39
+ /**
40
+ * The one-line answer to "what should I look at?" — rendered above the
41
+ * table so triage never requires reading it. Priority: a named culprit >
42
+ * freezes > saturated-by-UI-work > healthy.
43
+ */
44
+ function diagnose(s) {
45
+ const culprit = s.rows.find(r => r.api !== "unattributed" && r.api !== "other");
46
+ if (culprit && culprit.pctOfBusy >= 25 && s.busyPct >= 15) {
47
+ return {
48
+ color: culprit.pctOfBusy >= 50 ? _sharedUi.macOSColors.semantic.error : _sharedUi.macOSColors.semantic.warning,
49
+ icon: "▲",
50
+ text: `${culprit.label} is eating ${Math.round(culprit.pctOfBusy)}% of thread time — start there.`
51
+ };
52
+ }
53
+ if (s.freezeSummary.count > 0) {
54
+ return {
55
+ color: freezeColor(s.freezeSummary.worstMs),
56
+ icon: "▲",
57
+ text: `${s.freezeSummary.count} freeze${s.freezeSummary.count === 1 ? "" : "s"} in the last 60s (worst ${s.freezeSummary.worstMs}ms) — check rows marked ⚠.`
58
+ };
59
+ }
60
+ if (s.busyPct >= 80) {
61
+ return {
62
+ color: _sharedUi.macOSColors.semantic.warning,
63
+ icon: "▲",
64
+ text: "Thread saturated by UI/React work — open Highlight Updates to find re-renders."
65
+ };
66
+ }
67
+ return {
68
+ color: _sharedUi.macOSColors.semantic.success,
69
+ icon: "●",
70
+ text: `Thread healthy at ${Math.round(s.busyPct)}% load — nothing worth chasing.`
71
+ };
72
+ }
73
+ function JsTopModal({
74
+ visible,
75
+ onClose,
76
+ onBack,
77
+ onMinimize,
78
+ initialModalState,
79
+ minimizeTargetPosition,
80
+ remoteSnapshot,
81
+ remoteActions,
82
+ embedded = false
83
+ }) {
84
+ const isRemote = remoteSnapshot !== undefined;
85
+ const [localSnapshot, setLocalSnapshot] = (0, _react.useState)(null);
86
+
87
+ // Local mode: subscribing is what starts the engine (and unsubscribing on
88
+ // close is what stops it — zero overhead when the window isn't open).
89
+ (0, _react.useEffect)(() => {
90
+ if (isRemote || !visible) return;
91
+ return _JsTopController.JsTopController.subscribe(setLocalSnapshot);
92
+ }, [isRemote, visible]);
93
+ const snapshot = isRemote ? remoteSnapshot : localSnapshot;
94
+ const actions = (0, _react.useMemo)(() => remoteActions ?? {
95
+ pause: () => _JsTopController.JsTopController.pause(),
96
+ resume: () => _JsTopController.JsTopController.resume(),
97
+ clear: () => _JsTopController.JsTopController.clear()
98
+ }, [remoteActions]);
99
+ const paused = snapshot?.paused ?? false;
100
+ const hasData = (snapshot?.rows.length ?? 0) > 0;
101
+
102
+ // Tap-through detail. Local mode re-pulls the detail on every snapshot
103
+ // tick (this component re-renders), so the detail view stays live.
104
+ // Remote mode (desktop) has no local engine — rows aren't tappable there.
105
+ const [detailKey, setDetailKey] = (0, _react.useState)(null);
106
+ const onSelectRow = (0, _react.useCallback)(row => setDetailKey(row.key), []);
107
+ const detail = !isRemote && detailKey ? _JsTopController.JsTopController.getOriginDetail(detailKey) : null;
108
+ const inDetail = detailKey !== null;
109
+
110
+ // Shared ModalHeader compound — same structure as Network/Events/Console:
111
+ // Content (brand icon + title + live busy pill) and 32px icon Actions.
112
+ // In the detail view the chevron pops back to the table.
113
+ const headerContent = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_sharedUi.ModalHeader, {
114
+ children: [inDetail ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Navigation, {
115
+ onBack: () => setDetailKey(null)
116
+ }) : onBack ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Navigation, {
117
+ onBack: onBack
118
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Content, {
119
+ title: "",
120
+ noMargin: true,
121
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
122
+ style: styles.titleRow,
123
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Activity, {
124
+ size: 14,
125
+ color: "#34D399"
126
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
127
+ style: styles.title,
128
+ children: "JS Top"
129
+ }), snapshot && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
130
+ style: [styles.busyPill, {
131
+ borderColor: busyColor(snapshot.busyPct)
132
+ }],
133
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
134
+ style: [styles.busyText, {
135
+ color: busyColor(snapshot.busyPct)
136
+ }],
137
+ children: [snapshot.busyPct.toFixed(0), "% BUSY"]
138
+ })
139
+ }), snapshot && snapshot.freezeSummary.count > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
140
+ style: [styles.busyPill, {
141
+ borderColor: freezeColor(snapshot.freezeSummary.worstMs)
142
+ }],
143
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
144
+ style: [styles.busyText, {
145
+ color: freezeColor(snapshot.freezeSummary.worstMs)
146
+ }],
147
+ children: ["\u26A0 ", snapshot.freezeSummary.count, " \xB7", " ", snapshot.freezeSummary.worstMs, "ms"]
148
+ })
149
+ })]
150
+ })
151
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_sharedUi.ModalHeader.Actions, {
152
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
153
+ onPress: paused ? actions.resume : actions.pause,
154
+ style: [styles.actionBtn, paused && styles.actionBtnActive],
155
+ accessibilityLabel: paused ? "Resume sampling" : "Pause sampling",
156
+ children: paused ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Play, {
157
+ size: 14,
158
+ color: _sharedUi.macOSColors.semantic.info
159
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Pause, {
160
+ size: 14,
161
+ color: _sharedUi.macOSColors.text.secondary
162
+ })
163
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
164
+ onPress: actions.clear,
165
+ disabled: !hasData,
166
+ style: [styles.actionBtn, !hasData && styles.actionBtnDisabled],
167
+ accessibilityLabel: "Clear stats",
168
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Trash2, {
169
+ size: 14,
170
+ color: hasData ? _sharedUi.macOSColors.text.muted : _sharedUi.macOSColors.text.muted
171
+ })
172
+ })]
173
+ })]
174
+ });
175
+ const body = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
176
+ style: styles.body,
177
+ children: inDetail ? detail ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_TaskDetailView.TaskDetailView, {
178
+ detail: detail
179
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
180
+ style: styles.waiting,
181
+ children: "This origin is no longer tracked (cleared or evicted)."
182
+ }) : snapshot ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
183
+ children: [(() => {
184
+ const d = diagnose(snapshot);
185
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
186
+ style: [styles.diagnosis, {
187
+ borderLeftColor: d.color
188
+ }],
189
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
190
+ style: [styles.diagnosisIcon, {
191
+ color: d.color
192
+ }],
193
+ children: d.icon
194
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
195
+ style: styles.diagnosisText,
196
+ children: d.text
197
+ })]
198
+ });
199
+ })(), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
200
+ style: styles.sparklineRow,
201
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
202
+ style: styles.sparklineCaption,
203
+ children: "JS THREAD LOAD \xB7 LAST 30s"
204
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_BusySparkline.BusySparkline, {
205
+ history: snapshot.busyHistory
206
+ })]
207
+ }), !snapshot.tiers.bridge && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
208
+ style: styles.tierBanner,
209
+ children: "\u201CSystem\u201D rows are UI/React/native work pure JS can\u2019t name \u2014 timers, rAF and Promise chains are fully attributed."
210
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_TaskTable.TaskTable, {
211
+ rows: snapshot.rows,
212
+ onSelectRow: isRemote ? undefined : onSelectRow
213
+ })]
214
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
215
+ style: styles.waiting,
216
+ children: isRemote ? "Waiting for device…" : "Starting engine…"
217
+ })
218
+ });
219
+ if (embedded) {
220
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
221
+ style: styles.embeddedRoot,
222
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
223
+ style: styles.embeddedHeader,
224
+ children: headerContent
225
+ }), body]
226
+ });
227
+ }
228
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.JsModal, {
229
+ visible: visible,
230
+ onClose: onClose,
231
+ onMinimize: onMinimize,
232
+ minimizeTargetPosition: minimizeTargetPosition,
233
+ initialModalState: initialModalState,
234
+ header: {
235
+ showToggleButton: true,
236
+ customContent: headerContent
237
+ },
238
+ persistenceKey: "buoy-js-top-modal",
239
+ enablePersistence: true,
240
+ initialMode: "bottomSheet",
241
+ disableScrollWrapper: true,
242
+ children: body
243
+ });
244
+ }
245
+ const styles = _reactNative.StyleSheet.create({
246
+ titleRow: {
247
+ flexDirection: "row",
248
+ alignItems: "center",
249
+ gap: 8
250
+ },
251
+ title: {
252
+ color: _sharedUi.macOSColors.text.primary,
253
+ fontSize: 14,
254
+ fontWeight: "500"
255
+ },
256
+ busyPill: {
257
+ borderWidth: 1,
258
+ borderRadius: 4,
259
+ paddingHorizontal: 6,
260
+ paddingVertical: 2
261
+ },
262
+ busyText: {
263
+ fontSize: 10,
264
+ fontWeight: "700",
265
+ fontVariant: ["tabular-nums"]
266
+ },
267
+ actionBtn: {
268
+ width: 32,
269
+ height: 32,
270
+ borderRadius: 8,
271
+ backgroundColor: _sharedUi.macOSColors.background.hover,
272
+ borderWidth: 1,
273
+ borderColor: _sharedUi.macOSColors.border.default,
274
+ alignItems: "center",
275
+ justifyContent: "center"
276
+ },
277
+ actionBtnActive: {
278
+ backgroundColor: _sharedUi.macOSColors.semantic.infoBackground,
279
+ borderColor: _sharedUi.macOSColors.semantic.info + "40"
280
+ },
281
+ actionBtnDisabled: {
282
+ opacity: 0.55
283
+ },
284
+ body: {
285
+ flex: 1,
286
+ minHeight: 0,
287
+ backgroundColor: _sharedUi.macOSColors.background.base
288
+ },
289
+ diagnosis: {
290
+ flexDirection: "row",
291
+ alignItems: "center",
292
+ gap: 8,
293
+ marginHorizontal: 10,
294
+ marginTop: 8,
295
+ paddingHorizontal: 10,
296
+ paddingVertical: 8,
297
+ backgroundColor: _sharedUi.macOSColors.background.card,
298
+ borderRadius: 6,
299
+ borderLeftWidth: 3
300
+ },
301
+ diagnosisIcon: {
302
+ fontSize: 11,
303
+ fontWeight: "700"
304
+ },
305
+ diagnosisText: {
306
+ flex: 1,
307
+ color: _sharedUi.macOSColors.text.primary,
308
+ fontSize: 12,
309
+ lineHeight: 16
310
+ },
311
+ sparklineRow: {
312
+ paddingHorizontal: 10,
313
+ paddingVertical: 8,
314
+ gap: 4
315
+ },
316
+ sparklineCaption: {
317
+ color: _sharedUi.macOSColors.text.muted,
318
+ fontSize: 8,
319
+ fontWeight: "700",
320
+ letterSpacing: 0.5
321
+ },
322
+ tierBanner: {
323
+ color: _sharedUi.macOSColors.text.muted,
324
+ fontSize: 10,
325
+ paddingHorizontal: 10,
326
+ paddingBottom: 6
327
+ },
328
+ waiting: {
329
+ color: _sharedUi.macOSColors.text.muted,
330
+ fontSize: 12,
331
+ textAlign: "center",
332
+ paddingVertical: 32
333
+ },
334
+ embeddedRoot: {
335
+ position: "absolute",
336
+ top: 0,
337
+ left: 0,
338
+ right: 0,
339
+ bottom: 0,
340
+ backgroundColor: _sharedUi.macOSColors.background.base
341
+ },
342
+ embeddedHeader: {
343
+ borderBottomWidth: 1,
344
+ borderBottomColor: _sharedUi.macOSColors.border.default
345
+ }
346
+ });
347
+ //# sourceMappingURL=JsTopModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_sharedUi","_JsTopController","_BusySparkline","_TaskTable","_TaskDetailView","_jsxRuntime","busyColor","pct","macOSColors","semantic","error","warning","success","freezeColor","worstMs","diagnose","s","culprit","rows","find","r","api","pctOfBusy","busyPct","color","icon","text","label","Math","round","freezeSummary","count","JsTopModal","visible","onClose","onBack","onMinimize","initialModalState","minimizeTargetPosition","remoteSnapshot","remoteActions","embedded","isRemote","undefined","localSnapshot","setLocalSnapshot","useState","useEffect","JsTopController","subscribe","snapshot","actions","useMemo","pause","resume","clear","paused","hasData","length","detailKey","setDetailKey","onSelectRow","useCallback","row","key","detail","getOriginDetail","inDetail","headerContent","jsxs","ModalHeader","children","jsx","Navigation","Content","title","noMargin","View","style","styles","titleRow","Activity","size","Text","busyPill","borderColor","busyText","toFixed","Actions","TouchableOpacity","onPress","actionBtn","actionBtnActive","accessibilityLabel","Play","info","Pause","secondary","disabled","actionBtnDisabled","Trash2","muted","body","TaskDetailView","waiting","Fragment","d","diagnosis","borderLeftColor","diagnosisIcon","diagnosisText","sparklineRow","sparklineCaption","BusySparkline","history","busyHistory","tiers","bridge","tierBanner","TaskTable","embeddedRoot","embeddedHeader","JsModal","header","showToggleButton","customContent","persistenceKey","enablePersistence","initialMode","disableScrollWrapper","StyleSheet","create","flexDirection","alignItems","gap","primary","fontSize","fontWeight","borderWidth","borderRadius","paddingHorizontal","paddingVertical","fontVariant","width","height","backgroundColor","background","hover","border","default","justifyContent","infoBackground","opacity","flex","minHeight","base","marginHorizontal","marginTop","card","borderLeftWidth","lineHeight","letterSpacing","paddingBottom","textAlign","position","top","left","right","bottom","borderBottomWidth","borderBottomColor"],"sourceRoot":"../../../../src","sources":["js-top/components/JsTopModal.tsx"],"mappings":"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","ignoreList":[]}