@dimina-kit/devtools 0.4.0 → 0.5.0-dev.20260908120530

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 (507) hide show
  1. package/README.md +51 -660
  2. package/dist/main/api.d.ts +2 -1
  3. package/dist/main/app/app.d.ts +41 -12
  4. package/dist/main/app/app.js +299 -514
  5. package/dist/main/app/bootstrap.d.ts +8 -5
  6. package/dist/main/app/bootstrap.js +15 -15
  7. package/dist/main/app/editor-view.d.ts +21 -0
  8. package/dist/main/app/editor-view.js +71 -0
  9. package/dist/main/app/global-mirrors.d.ts +23 -0
  10. package/dist/main/app/global-mirrors.js +37 -0
  11. package/dist/main/app/host-sidebar-default.d.ts +19 -0
  12. package/dist/main/app/host-sidebar-default.js +44 -0
  13. package/dist/main/app/lifecycle.d.ts +12 -1
  14. package/dist/main/app/lifecycle.js +27 -1
  15. package/dist/main/app/menu-setup.d.ts +13 -0
  16. package/dist/main/app/menu-setup.js +49 -0
  17. package/dist/main/app/native-overview.d.ts +1 -1
  18. package/dist/main/app/open-project-ipc.d.ts +13 -0
  19. package/dist/main/app/open-project-ipc.js +21 -0
  20. package/dist/main/app/project-list-surface.d.ts +31 -0
  21. package/dist/main/app/project-list-surface.js +20 -0
  22. package/dist/main/app/project-window.d.ts +36 -0
  23. package/dist/main/app/project-window.js +93 -0
  24. package/dist/main/app/servers.d.ts +17 -0
  25. package/dist/main/app/servers.js +60 -0
  26. package/dist/main/app/ui-extension-targets.d.ts +42 -0
  27. package/dist/main/app/ui-extension-targets.js +101 -0
  28. package/dist/main/app/window-close-reveal.harness.d.ts +34 -0
  29. package/dist/main/app/window-close-reveal.harness.js +65 -0
  30. package/dist/main/app/window-events.d.ts +15 -0
  31. package/dist/main/app/window-events.js +45 -0
  32. package/dist/main/app/window-runtime-services.d.ts +41 -0
  33. package/dist/main/app/window-runtime-services.js +197 -0
  34. package/dist/main/app/workbench-modules.d.ts +24 -0
  35. package/dist/main/app/workbench-modules.js +51 -0
  36. package/dist/main/app/workbench-window.d.ts +85 -0
  37. package/dist/main/app/workbench-window.js +310 -0
  38. package/dist/main/index.bundle.js +11712 -9986
  39. package/dist/main/index.js +49 -1
  40. package/dist/main/ipc/app-lifecycle.d.ts +1 -31
  41. package/dist/main/ipc/app-lifecycle.js +1 -53
  42. package/dist/main/ipc/app.d.ts +4 -1
  43. package/dist/main/ipc/app.js +4 -3
  44. package/dist/main/ipc/bridge-router.d.ts +19 -116
  45. package/dist/main/ipc/bridge-router.js +28 -2128
  46. package/dist/main/ipc/device-picker.d.ts +16 -0
  47. package/dist/main/ipc/device-picker.js +27 -0
  48. package/dist/main/ipc/index.d.ts +5 -0
  49. package/dist/main/ipc/index.js +5 -0
  50. package/dist/main/ipc/internal-devtools.d.ts +16 -0
  51. package/dist/main/ipc/internal-devtools.js +10 -0
  52. package/dist/main/ipc/page-scroll.d.ts +1 -13
  53. package/dist/main/ipc/page-scroll.js +1 -16
  54. package/dist/main/ipc/popover.d.ts +4 -1
  55. package/dist/main/ipc/popover.js +26 -19
  56. package/dist/main/ipc/project-create.d.ts +16 -0
  57. package/dist/main/ipc/project-create.js +27 -0
  58. package/dist/main/ipc/project-fs.d.ts +38 -3
  59. package/dist/main/ipc/project-fs.js +53 -22
  60. package/dist/main/ipc/projects.d.ts +3 -3
  61. package/dist/main/ipc/projects.js +47 -11
  62. package/dist/main/ipc/session-listener-bag.d.ts +1 -40
  63. package/dist/main/ipc/session-listener-bag.js +1 -39
  64. package/dist/main/ipc/session.d.ts +4 -1
  65. package/dist/main/ipc/session.js +26 -26
  66. package/dist/main/ipc/settings.d.ts +4 -1
  67. package/dist/main/ipc/settings.js +17 -19
  68. package/dist/main/ipc/simulator-module.d.ts +9 -3
  69. package/dist/main/ipc/simulator-module.js +13 -10
  70. package/dist/main/ipc/simulator.d.ts +4 -1
  71. package/dist/main/ipc/simulator.js +12 -18
  72. package/dist/main/ipc/tooltip.d.ts +14 -0
  73. package/dist/main/ipc/tooltip.js +29 -0
  74. package/dist/main/ipc/views.d.ts +19 -2
  75. package/dist/main/ipc/views.js +76 -8
  76. package/dist/main/runtime/devtools-backend-before-quit.harness.d.ts +43 -0
  77. package/dist/main/runtime/devtools-backend-before-quit.harness.js +87 -0
  78. package/dist/main/runtime/devtools-backend.js +60 -4
  79. package/dist/main/runtime/devtools-runtime-mock.harness.d.ts +21 -0
  80. package/dist/main/runtime/devtools-runtime-mock.harness.js +313 -0
  81. package/dist/main/runtime/miniapp-runtime.d.ts +91 -22
  82. package/dist/main/services/app-services.d.ts +62 -0
  83. package/dist/main/services/app-services.js +64 -0
  84. package/dist/main/services/automation/connection-target.d.ts +36 -0
  85. package/dist/main/services/automation/connection-target.js +29 -0
  86. package/dist/main/services/automation/console-bridge.d.ts +28 -0
  87. package/dist/main/services/automation/console-bridge.js +91 -0
  88. package/dist/main/services/automation/handlers/app.js +4 -4
  89. package/dist/main/services/automation/handlers/element.js +55 -21
  90. package/dist/main/services/automation/index.d.ts +12 -1
  91. package/dist/main/services/automation/index.js +54 -133
  92. package/dist/main/services/cdp-session/index.d.ts +87 -0
  93. package/dist/main/services/cdp-session/index.js +173 -0
  94. package/dist/main/services/compile-standby.js +4 -0
  95. package/dist/main/services/console-forward/cdp-inject.d.ts +18 -0
  96. package/dist/main/services/console-forward/cdp-inject.js +30 -0
  97. package/dist/main/services/console-forward/global-console-mirror.d.ts +33 -0
  98. package/dist/main/services/console-forward/global-console-mirror.js +71 -0
  99. package/dist/main/services/console-forward/global-diagnostics-mirror.d.ts +33 -0
  100. package/dist/main/services/console-forward/global-diagnostics-mirror.js +73 -0
  101. package/dist/main/services/console-forward/index.d.ts +1 -46
  102. package/dist/main/services/console-forward/index.js +1 -185
  103. package/dist/main/services/console-forward/internal-log.d.ts +2 -0
  104. package/dist/main/services/console-forward/internal-log.js +2 -0
  105. package/dist/main/services/console-forward/open-gated-relay.d.ts +67 -0
  106. package/dist/main/services/console-forward/open-gated-relay.js +55 -0
  107. package/dist/main/services/default-adapter.js +1 -1
  108. package/dist/main/services/diagnostics/index.d.ts +1 -48
  109. package/dist/main/services/diagnostics/index.js +1 -60
  110. package/dist/main/services/dimina-resource-server.d.ts +1 -6
  111. package/dist/main/services/dimina-resource-server.js +1 -98
  112. package/dist/main/services/elements-forward/index.d.ts +132 -15
  113. package/dist/main/services/elements-forward/index.js +155 -304
  114. package/dist/main/services/fs-bridge-protocol.d.ts +61 -0
  115. package/dist/main/services/fs-bridge-protocol.js +34 -0
  116. package/dist/main/services/fs-watch-sse.d.ts +40 -0
  117. package/dist/main/services/fs-watch-sse.js +113 -0
  118. package/dist/main/services/http-json.d.ts +9 -0
  119. package/dist/main/services/http-json.js +6 -0
  120. package/dist/main/services/layout/index.d.ts +11 -0
  121. package/dist/main/services/layout/index.js +23 -0
  122. package/dist/main/services/mcp/connection-owner.d.ts +38 -0
  123. package/dist/main/services/mcp/connection-owner.js +79 -0
  124. package/dist/main/services/mcp/index.d.ts +3 -1
  125. package/dist/main/services/mcp/index.js +4 -3
  126. package/dist/main/services/mcp/opened-project.d.ts +88 -0
  127. package/dist/main/services/mcp/opened-project.js +60 -0
  128. package/dist/main/services/mcp/server.d.ts +2 -1
  129. package/dist/main/services/mcp/server.js +29 -4
  130. package/dist/main/services/mcp/target-manager.d.ts +71 -23
  131. package/dist/main/services/mcp/target-manager.js +269 -138
  132. package/dist/main/services/mcp/target-selection.d.ts +47 -0
  133. package/dist/main/services/mcp/target-selection.js +71 -0
  134. package/dist/main/services/mcp/tools/context-tools.js +20 -5
  135. package/dist/main/services/mcp/tools/project-tools.d.ts +72 -0
  136. package/dist/main/services/mcp/tools/project-tools.js +133 -0
  137. package/dist/main/services/module.d.ts +13 -5
  138. package/dist/main/services/network-forward/body-cache.d.ts +72 -0
  139. package/dist/main/services/network-forward/body-cache.js +179 -0
  140. package/dist/main/services/network-forward/frontend-dispatch.d.ts +91 -0
  141. package/dist/main/services/network-forward/frontend-dispatch.js +148 -0
  142. package/dist/main/services/network-forward/global-body-gate.d.ts +46 -0
  143. package/dist/main/services/network-forward/global-body-gate.js +93 -0
  144. package/dist/main/services/network-forward/global-mirror-test-fixtures.d.ts +48 -0
  145. package/dist/main/services/network-forward/global-mirror-test-fixtures.js +96 -0
  146. package/dist/main/services/network-forward/http.d.ts +47 -0
  147. package/dist/main/services/network-forward/http.js +162 -0
  148. package/dist/main/services/network-forward/index.d.ts +135 -15
  149. package/dist/main/services/network-forward/index.js +854 -224
  150. package/dist/main/services/network-forward/request-ids.d.ts +5 -0
  151. package/dist/main/services/network-forward/request-ids.js +5 -0
  152. package/dist/main/services/network-forward/user-facing.d.ts +21 -0
  153. package/dist/main/services/network-forward/user-facing.js +50 -0
  154. package/dist/main/services/network-forward/websocket.d.ts +36 -0
  155. package/dist/main/services/network-forward/websocket.js +120 -0
  156. package/dist/main/services/notifications/renderer-notifier.d.ts +71 -9
  157. package/dist/main/services/notifications/renderer-notifier.js +45 -8
  158. package/dist/main/services/projects/create-project-service.js +19 -5
  159. package/dist/main/services/projects/local-provider.js +8 -4
  160. package/dist/main/services/projects/project-repository.d.ts +59 -7
  161. package/dist/main/services/projects/project-repository.js +285 -51
  162. package/dist/main/services/projects/types.d.ts +44 -34
  163. package/dist/main/services/render-inspect/index.d.ts +12 -2
  164. package/dist/main/services/render-inspect/index.js +21 -102
  165. package/dist/main/services/safe-area/index.d.ts +21 -6
  166. package/dist/main/services/safe-area/index.js +92 -46
  167. package/dist/main/services/service-host-pool/pool.d.ts +1 -196
  168. package/dist/main/services/service-host-pool/pool.js +1 -363
  169. package/dist/main/services/settings/index.d.ts +7 -1
  170. package/dist/main/services/settings/index.js +22 -2
  171. package/dist/main/services/simulator/custom-apis.d.ts +1 -42
  172. package/dist/main/services/simulator/custom-apis.js +1 -46
  173. package/dist/main/services/simulator/referer.d.ts +1 -9
  174. package/dist/main/services/simulator/referer.js +1 -19
  175. package/dist/main/services/simulator/ui-extensions.d.ts +21 -0
  176. package/dist/main/services/simulator/ui-extensions.js +176 -0
  177. package/dist/main/services/simulator-appdata/index.d.ts +6 -0
  178. package/dist/main/services/simulator-appdata/index.js +21 -2
  179. package/dist/main/services/simulator-current-page/index.d.ts +5 -3
  180. package/dist/main/services/simulator-current-page/index.js +8 -1
  181. package/dist/main/services/simulator-storage/index.d.ts +34 -5
  182. package/dist/main/services/simulator-storage/index.js +73 -71
  183. package/dist/main/services/simulator-storage/service-storage-ops.d.ts +1 -39
  184. package/dist/main/services/simulator-storage/service-storage-ops.js +1 -66
  185. package/dist/main/services/simulator-storage/window-scope.d.ts +20 -0
  186. package/dist/main/services/simulator-storage/window-scope.js +20 -0
  187. package/dist/main/services/simulator-temp-files/disk.d.ts +1 -54
  188. package/dist/main/services/simulator-temp-files/disk.js +1 -237
  189. package/dist/main/services/simulator-temp-files/fs-channels.d.ts +1 -68
  190. package/dist/main/services/simulator-temp-files/fs-channels.js +1 -107
  191. package/dist/main/services/simulator-temp-files/index.d.ts +1 -32
  192. package/dist/main/services/simulator-temp-files/index.js +1 -181
  193. package/dist/main/services/simulator-temp-files/request-handler.d.ts +1 -29
  194. package/dist/main/services/simulator-temp-files/request-handler.js +1 -177
  195. package/dist/main/services/simulator-temp-files/resolver.d.ts +1 -21
  196. package/dist/main/services/simulator-temp-files/resolver.js +1 -21
  197. package/dist/main/services/simulator-temp-files/store.d.ts +1 -13
  198. package/dist/main/services/simulator-temp-files/store.js +1 -23
  199. package/dist/main/services/update/github-release-checker.js +22 -3
  200. package/dist/main/services/update/update-manager.d.ts +21 -4
  201. package/dist/main/services/update/update-manager.js +55 -11
  202. package/dist/main/services/views/clear-console-filter.d.ts +44 -0
  203. package/dist/main/services/views/clear-console-filter.js +86 -0
  204. package/dist/main/services/views/console-filter-test-fixtures.d.ts +94 -0
  205. package/dist/main/services/views/console-filter-test-fixtures.js +82 -0
  206. package/dist/main/services/views/console-filter.d.ts +94 -0
  207. package/dist/main/services/views/console-filter.js +190 -0
  208. package/dist/main/services/views/devtools-tabs.d.ts +24 -4
  209. package/dist/main/services/views/devtools-tabs.js +40 -21
  210. package/dist/main/services/views/frontend-bootstrap-gate.d.ts +59 -0
  211. package/dist/main/services/views/frontend-bootstrap-gate.js +117 -0
  212. package/dist/main/services/views/host-dialog-port-channel.d.ts +18 -0
  213. package/dist/main/services/views/host-dialog-port-channel.js +15 -0
  214. package/dist/main/services/views/host-dialog-session-runtime.d.ts +10 -0
  215. package/dist/main/services/views/host-dialog-session-runtime.js +17 -0
  216. package/dist/main/services/views/host-dialog-view.d.ts +95 -0
  217. package/dist/main/services/views/host-dialog-view.js +147 -0
  218. package/dist/main/services/views/host-sidebar-port-channel.d.ts +18 -0
  219. package/dist/main/services/views/host-sidebar-port-channel.js +15 -0
  220. package/dist/main/services/views/host-sidebar-session-runtime.d.ts +10 -0
  221. package/dist/main/services/views/host-sidebar-session-runtime.js +17 -0
  222. package/dist/main/services/views/host-sidebar-view.d.ts +59 -0
  223. package/dist/main/services/views/host-sidebar-view.js +44 -0
  224. package/dist/main/services/views/host-slot-port-channel.d.ts +124 -0
  225. package/dist/main/services/views/host-slot-port-channel.js +289 -0
  226. package/dist/main/services/views/host-slot-session-runtime.d.ts +40 -0
  227. package/dist/main/services/views/host-slot-session-runtime.js +50 -0
  228. package/dist/main/services/views/host-slot-view.d.ts +109 -0
  229. package/dist/main/services/views/host-slot-view.js +147 -0
  230. package/dist/main/services/views/host-toolbar-port-channel.d.ts +6 -91
  231. package/dist/main/services/views/host-toolbar-port-channel.js +10 -243
  232. package/dist/main/services/views/host-toolbar-session-runtime.d.ts +5 -30
  233. package/dist/main/services/views/host-toolbar-session-runtime.js +9 -47
  234. package/dist/main/services/views/host-toolbar-view.d.ts +34 -7
  235. package/dist/main/services/views/host-toolbar-view.js +30 -237
  236. package/dist/main/services/views/managed-web-contents-view.d.ts +48 -0
  237. package/dist/main/services/views/managed-web-contents-view.js +143 -0
  238. package/dist/main/services/views/miniapp-partition.d.ts +1 -89
  239. package/dist/main/services/views/miniapp-partition.js +1 -158
  240. package/dist/main/services/views/native-simulator-devtools-host.js +206 -68
  241. package/dist/main/services/views/native-simulator-view.d.ts +6 -0
  242. package/dist/main/services/views/native-simulator-view.js +47 -40
  243. package/dist/main/services/views/native-view-tree.d.ts +25 -0
  244. package/dist/main/services/views/native-view-tree.js +69 -0
  245. package/dist/main/services/views/overlay-panels-view.d.ts +63 -4
  246. package/dist/main/services/views/overlay-panels-view.js +257 -108
  247. package/dist/main/services/views/placement-reconciler.d.ts +18 -18
  248. package/dist/main/services/views/placement-reconciler.js +91 -29
  249. package/dist/main/services/views/placement-test-driver.d.ts +27 -0
  250. package/dist/main/services/views/placement-test-driver.js +29 -0
  251. package/dist/main/services/views/refresh-styles.d.ts +10 -0
  252. package/dist/main/services/views/refresh-styles.js +57 -0
  253. package/dist/main/services/views/simulator-session-policy.d.ts +1 -27
  254. package/dist/main/services/views/simulator-session-policy.js +1 -98
  255. package/dist/main/services/views/view-manager-devtools-host-test-fixtures.d.ts +76 -0
  256. package/dist/main/services/views/view-manager-devtools-host-test-fixtures.js +184 -0
  257. package/dist/main/services/views/view-manager.d.ts +69 -88
  258. package/dist/main/services/views/view-manager.js +62 -7
  259. package/dist/main/services/views/workbench-view.d.ts +2 -0
  260. package/dist/main/services/views/workbench-view.js +104 -17
  261. package/dist/main/services/window-contexts/context-router.d.ts +36 -0
  262. package/dist/main/services/window-contexts/context-router.js +55 -0
  263. package/dist/main/services/workbench-coi-host.d.ts +52 -0
  264. package/dist/main/services/workbench-coi-host.js +227 -0
  265. package/dist/main/services/workbench-coi-server.d.ts +11 -0
  266. package/dist/main/services/workbench-coi-server.js +126 -126
  267. package/dist/main/services/workbench-coi-shutdown.d.ts +40 -0
  268. package/dist/main/services/workbench-coi-shutdown.js +69 -0
  269. package/dist/main/services/workbench-coi-static.d.ts +23 -0
  270. package/dist/main/services/workbench-coi-static.js +87 -0
  271. package/dist/main/services/workbench-context.d.ts +88 -8
  272. package/dist/main/services/workbench-context.js +54 -6
  273. package/dist/main/services/workspace/compile-log-buffer.d.ts +40 -0
  274. package/dist/main/services/workspace/compile-log-buffer.js +41 -0
  275. package/dist/main/services/workspace/compile-mode-adapter.d.ts +18 -0
  276. package/dist/main/services/workspace/compile-mode-adapter.js +57 -0
  277. package/dist/main/services/workspace/compile-mode-store.d.ts +25 -0
  278. package/dist/main/services/workspace/compile-mode-store.js +71 -0
  279. package/dist/main/services/workspace/open-project-guards.d.ts +16 -0
  280. package/dist/main/services/workspace/open-project-guards.js +42 -0
  281. package/dist/main/services/workspace/rebuild-status.d.ts +37 -0
  282. package/dist/main/services/workspace/rebuild-status.js +36 -0
  283. package/dist/main/services/workspace/session-status-store.d.ts +47 -0
  284. package/dist/main/services/workspace/session-status-store.js +73 -0
  285. package/dist/main/services/workspace/status-tap.d.ts +20 -0
  286. package/dist/main/services/workspace/status-tap.js +32 -0
  287. package/dist/main/services/workspace/workspace-compile-modes.d.ts +59 -0
  288. package/dist/main/services/workspace/workspace-compile-modes.js +93 -0
  289. package/dist/main/services/workspace/workspace-lifecycle-race.testutil.d.ts +22 -0
  290. package/dist/main/services/workspace/workspace-lifecycle-race.testutil.js +62 -0
  291. package/dist/main/services/workspace/workspace-referer.d.ts +17 -0
  292. package/dist/main/services/workspace/workspace-referer.js +26 -0
  293. package/dist/main/services/workspace/workspace-service.d.ts +7 -5
  294. package/dist/main/services/workspace/workspace-service.js +96 -135
  295. package/dist/main/services/workspace/workspace-thumbnails.d.ts +22 -0
  296. package/dist/main/services/workspace/workspace-thumbnails.js +67 -0
  297. package/dist/main/utils/ipc-context-source.d.ts +40 -0
  298. package/dist/main/utils/ipc-context-source.js +23 -0
  299. package/dist/main/utils/ipc-registry.d.ts +46 -21
  300. package/dist/main/utils/ipc-registry.js +166 -76
  301. package/dist/main/utils/paths.d.ts +18 -0
  302. package/dist/main/utils/paths.js +18 -0
  303. package/dist/main/utils/sender-policy.d.ts +10 -1
  304. package/dist/main/utils/sender-policy.js +42 -4
  305. package/dist/main/utils/theme.d.ts +18 -8
  306. package/dist/main/utils/theme.js +19 -9
  307. package/dist/main/windows/internal-devtools-window/index.d.ts +66 -0
  308. package/dist/main/windows/internal-devtools-window/index.js +160 -0
  309. package/dist/main/windows/main-window/create.d.ts +16 -0
  310. package/dist/main/windows/main-window/create.js +19 -11
  311. package/dist/main/windows/main-window/events.d.ts +1 -1
  312. package/dist/main/windows/main-window/events.js +26 -13
  313. package/dist/main/windows/main-window/index.d.ts +1 -1
  314. package/dist/main/windows/main-window/index.js +1 -1
  315. package/dist/main/windows/service-host-window/create.d.ts +1 -92
  316. package/dist/main/windows/service-host-window/create.js +1 -154
  317. package/dist/native-host/common/common.js +173 -53
  318. package/dist/native-host/container/pageFrame.css +1 -1
  319. package/dist/native-host/render/render.js +8278 -3659
  320. package/dist/native-host/service/service.js +2 -2
  321. package/dist/preload/index.d.ts +2 -0
  322. package/dist/preload/index.js +1 -0
  323. package/dist/preload/instrumentation/app-data.d.ts +2 -2
  324. package/dist/preload/instrumentation/app-data.js +1 -1
  325. package/dist/preload/instrumentation/wxml.js +1 -1
  326. package/dist/preload/runtime/bridge.d.ts +3 -3
  327. package/dist/preload/runtime/bridge.js +2 -2
  328. package/dist/preload/runtime/clipboard.d.ts +6 -0
  329. package/dist/preload/runtime/clipboard.js +12 -0
  330. package/dist/preload/runtime/host-dialog-advertiser.d.ts +22 -0
  331. package/dist/preload/runtime/host-dialog-advertiser.js +37 -0
  332. package/dist/preload/runtime/host-dialog-port.d.ts +44 -0
  333. package/dist/preload/runtime/host-dialog-port.js +53 -0
  334. package/dist/preload/runtime/host-dialog-runtime.d.ts +28 -0
  335. package/dist/preload/runtime/host-dialog-runtime.js +36 -0
  336. package/dist/preload/runtime/host-sidebar-advertiser.d.ts +19 -0
  337. package/dist/preload/runtime/host-sidebar-advertiser.js +35 -0
  338. package/dist/preload/runtime/host-sidebar-port.d.ts +44 -0
  339. package/dist/preload/runtime/host-sidebar-port.js +53 -0
  340. package/dist/preload/runtime/host-sidebar-runtime.d.ts +28 -0
  341. package/dist/preload/runtime/host-sidebar-runtime.js +36 -0
  342. package/dist/preload/runtime/host-slot-port-bridge.d.ts +18 -0
  343. package/dist/preload/runtime/host-slot-port-bridge.js +112 -0
  344. package/dist/preload/runtime/host-toolbar-advertiser.d.ts +5 -13
  345. package/dist/preload/runtime/host-toolbar-advertiser.js +18 -38
  346. package/dist/preload/runtime/host-toolbar-port.d.ts +9 -0
  347. package/dist/preload/runtime/host-toolbar-port.js +11 -95
  348. package/dist/preload/runtime/native-host.d.ts +14 -0
  349. package/dist/preload/runtime/native-host.js +5 -8
  350. package/dist/preload/runtime/node-bindings.d.ts +18 -0
  351. package/dist/preload/runtime/node-bindings.js +44 -0
  352. package/dist/preload/runtime/temp-files.js +9 -2
  353. package/dist/preload/runtime/wait-for-slot-root.d.ts +23 -0
  354. package/dist/preload/runtime/wait-for-slot-root.js +80 -0
  355. package/dist/preload/shared/api-compat.js +63 -41
  356. package/dist/preload/windows/host-dialog-runtime.cjs +360 -0
  357. package/dist/preload/windows/host-dialog-runtime.cjs.map +7 -0
  358. package/dist/preload/windows/host-dialog-runtime.d.ts +2 -0
  359. package/dist/preload/windows/host-dialog-runtime.js +13 -0
  360. package/dist/preload/windows/host-sidebar-runtime.cjs +361 -0
  361. package/dist/preload/windows/host-sidebar-runtime.cjs.map +7 -0
  362. package/dist/preload/windows/host-sidebar-runtime.d.ts +2 -0
  363. package/dist/preload/windows/host-sidebar-runtime.js +13 -0
  364. package/dist/preload/windows/host-toolbar-runtime.cjs +142 -52
  365. package/dist/preload/windows/host-toolbar-runtime.cjs.map +3 -3
  366. package/dist/preload/windows/main.cjs +4922 -1246
  367. package/dist/preload/windows/main.cjs.map +4 -4
  368. package/dist/preload/windows/main.css +428 -0
  369. package/dist/preload/windows/main.css.map +7 -0
  370. package/dist/preload/windows/simulator.cjs +376 -322
  371. package/dist/preload/windows/simulator.cjs.map +4 -4
  372. package/dist/preload/windows/simulator.js +376 -322
  373. package/dist/render-host/pageFrame.html +4 -4
  374. package/dist/render-host/preload.cjs +30 -0
  375. package/dist/render-host/render-inspect.js +184 -115
  376. package/dist/renderer/assets/button-CB2MWjHY.js +2 -0
  377. package/dist/renderer/assets/constants-CkoGPQTS.js +2 -0
  378. package/dist/renderer/assets/constants-zQZ2-y21.js +2 -0
  379. package/dist/renderer/assets/createLucideIcon-cZ9FlZZw.js +2 -0
  380. package/dist/renderer/assets/devicePicker-H2eIO4e1.js +2 -0
  381. package/dist/renderer/assets/dialog-pHzEA8Vx.js +46 -0
  382. package/dist/renderer/assets/dist-B5HADirS.js +2 -0
  383. package/dist/renderer/assets/dist-DIFlRMKe.js +2 -0
  384. package/dist/renderer/assets/hostSidebarDefault-DRWh6OCt.js +2 -0
  385. package/dist/renderer/assets/index-CEL_XFge.js +2 -0
  386. package/dist/renderer/assets/input-CAObw95L.js +2 -0
  387. package/dist/renderer/assets/ipc-channels-overlays-gIPUFnqc.js +2 -0
  388. package/dist/renderer/assets/jsx-runtime-DICEQH_0.css +1 -0
  389. package/dist/renderer/assets/jsx-runtime-DIw5wnYl.js +9 -0
  390. package/dist/renderer/assets/plus-BQ9u5EbL.js +2 -0
  391. package/dist/renderer/assets/popover-Cw7G2Ctp.js +2 -0
  392. package/dist/renderer/assets/presets-DMZOb9ay.js +2 -0
  393. package/dist/renderer/assets/project-api-YTOr_Yvo.js +2 -0
  394. package/dist/renderer/assets/projectCreateDialog-BmLqiYxn.js +2 -0
  395. package/dist/renderer/assets/search-BMvuYF48.js +2 -0
  396. package/dist/renderer/assets/select-nFP95TxM.js +2 -0
  397. package/dist/renderer/assets/settings-CnpVfSWt.js +2 -0
  398. package/dist/renderer/assets/settings-api-Ccsf-Nsj.js +2 -0
  399. package/dist/renderer/assets/settings-tab-bar-CAzrv32m.js +2 -0
  400. package/dist/renderer/assets/smartphone-Bb2GdIKy.js +2 -0
  401. package/dist/renderer/assets/tabs-CPKN3Mmq.js +2 -0
  402. package/dist/renderer/assets/tooltip-D6AxXRk5.js +2 -0
  403. package/dist/renderer/assets/types-Bh0hA7El.js +2 -0
  404. package/dist/renderer/assets/updateDialog-CwndJ0Bl.js +2 -0
  405. package/dist/renderer/assets/utils-sEB5OZEQ.js +2 -0
  406. package/dist/renderer/assets/view-api-B-2zPBR5.js +2 -0
  407. package/dist/renderer/assets/view-ids-BfaDVV5P.js +2 -0
  408. package/dist/renderer/assets/workbench-C0Jkdlps.js +5 -0
  409. package/dist/renderer/assets/workbenchSettings-YD0Ctbm_.js +8 -0
  410. package/dist/renderer/entries/device-picker/index.html +28 -0
  411. package/dist/renderer/entries/host-sidebar-default/index.html +22 -0
  412. package/dist/renderer/entries/main/index.html +16 -7
  413. package/dist/renderer/entries/popover/index.html +16 -6
  414. package/dist/renderer/entries/project-create-dialog/index.html +27 -0
  415. package/dist/renderer/entries/settings/index.html +10 -5
  416. package/dist/renderer/entries/tooltip/index.html +21 -0
  417. package/dist/renderer/entries/update-dialog/index.html +25 -0
  418. package/dist/renderer/entries/workbench/index.html +49 -0
  419. package/dist/renderer/entries/workbench-settings/index.html +12 -5
  420. package/dist/service-host/appdata-set-data.cjs +39 -0
  421. package/dist/service-host/host-env-update.cjs +23 -0
  422. package/dist/service-host/preload.cjs +54 -48
  423. package/dist/service-host/service-message-queue.cjs +71 -0
  424. package/dist/service-host/sync-impls/menu-button-geometry.js +16 -5
  425. package/dist/service-host/sync-impls/menu-button.js +5 -3
  426. package/dist/service-host/sync-impls/system-info.js +31 -9
  427. package/dist/shared/bridge-channels.d.ts +1 -416
  428. package/dist/shared/bridge-channels.js +1 -89
  429. package/dist/shared/compile-mode-state.d.ts +73 -0
  430. package/dist/shared/compile-mode-state.js +100 -0
  431. package/dist/shared/compile-modes.d.ts +152 -0
  432. package/dist/shared/compile-modes.js +237 -0
  433. package/dist/shared/constants.d.ts +22 -0
  434. package/dist/shared/constants.js +22 -0
  435. package/dist/shared/dmb-resource-url.d.ts +2 -0
  436. package/dist/shared/dmb-resource-url.js +2 -0
  437. package/dist/shared/ipc-channels-overlays.d.ts +162 -0
  438. package/dist/shared/ipc-channels-overlays.js +203 -0
  439. package/dist/shared/ipc-channels.d.ts +24 -154
  440. package/dist/shared/ipc-channels.js +48 -96
  441. package/dist/shared/ipc-schemas.d.ts +143 -54
  442. package/dist/shared/ipc-schemas.js +137 -45
  443. package/dist/shared/node-bindings.d.ts +2 -0
  444. package/dist/shared/node-bindings.js +2 -0
  445. package/dist/shared/project-window-types.d.ts +42 -0
  446. package/dist/shared/project-window-types.js +2 -0
  447. package/dist/shared/simulator-route.d.ts +8 -0
  448. package/dist/shared/simulator-route.js +15 -0
  449. package/dist/shared/simulator-ui.d.ts +61 -0
  450. package/dist/shared/simulator-ui.js +12 -0
  451. package/dist/shared/types.d.ts +126 -41
  452. package/dist/shared/view-ids.d.ts +10 -0
  453. package/dist/shared/view-ids.js +23 -0
  454. package/dist/simulator/assets/bridge-channels-B3JAmRfl.js +2 -0
  455. package/dist/simulator/assets/device-shell-ATEhHV2_.css +1 -0
  456. package/dist/simulator/assets/device-shell-DucLepkm.js +431 -0
  457. package/dist/simulator/assets/simulator-B4rbcOVt.js +10 -0
  458. package/dist/simulator/assets/simulator-mini-app-DFo7fhi5.js +2 -0
  459. package/dist/simulator/assets/simulator-ui-BupATgKo.css +1 -0
  460. package/dist/simulator/assets/simulator-ui-i3GCc7YJ.js +2 -0
  461. package/dist/simulator/simulator.html +4 -3
  462. package/dist/simulator/temp-files.d.ts +35 -0
  463. package/dist/simulator/temp-files.js +121 -0
  464. package/dist/simulator/types.d.ts +50 -0
  465. package/dist/simulator/types.js +2 -0
  466. package/dist/vscode-workbench/assets/__vite-browser-external-JIkWewFf.js +1 -0
  467. package/dist/vscode-workbench/assets/{dist-TpGpmMGi.js → dist-CXG-u1VB.js} +3 -3
  468. package/dist/vscode-workbench/assets/fs-core-worker-urls-DZ1nod84.js +1 -0
  469. package/dist/vscode-workbench/assets/fs-core.worker-Bnmpp6fo.js +1 -0
  470. package/dist/vscode-workbench/assets/fs-query.worker-cZ-7Fjch.js +2 -0
  471. package/dist/vscode-workbench/assets/{iconv-lite-umd-C9tiCAJa.js → iconv-lite-umd-Dxx9Qyb4.js} +1 -1
  472. package/dist/vscode-workbench/assets/{index-DJ1HyMZ7.js → index-6VJMsaWj.js} +475 -475
  473. package/dist/vscode-workbench/assets/{jschardet-DE1jV513.js → jschardet-Ba3D16vt.js} +1 -1
  474. package/dist/vscode-workbench/index.html +21 -1
  475. package/package.json +23 -13
  476. package/dist/main/services/views/destroy-child-view.d.ts +0 -9
  477. package/dist/main/services/views/destroy-child-view.js +0 -23
  478. package/dist/preload/instrumentation/wxml-extract.d.ts +0 -11
  479. package/dist/preload/instrumentation/wxml-extract.js +0 -382
  480. package/dist/preload/shared/sid-registry.d.ts +0 -11
  481. package/dist/preload/shared/sid-registry.js +0 -38
  482. package/dist/renderer/assets/constants-EAMiwL9_.js +0 -2
  483. package/dist/renderer/assets/index-BMqyDx71.js +0 -49
  484. package/dist/renderer/assets/input-CDAEwpBO.js +0 -2
  485. package/dist/renderer/assets/ipc-transport-B7eFOR68.css +0 -1
  486. package/dist/renderer/assets/ipc-transport-_G1k5V1p.js +0 -9
  487. package/dist/renderer/assets/popover-DEdjK14m.js +0 -2
  488. package/dist/renderer/assets/select-DpKPCh3y.js +0 -2
  489. package/dist/renderer/assets/settings-M5q2elUr.js +0 -2
  490. package/dist/renderer/assets/settings-api-CDlZoHiO.js +0 -2
  491. package/dist/renderer/assets/workbenchSettings-CT_H1WhV.js +0 -8
  492. package/dist/shared/appdata-accumulator.d.ts +0 -95
  493. package/dist/shared/appdata-accumulator.js +0 -218
  494. package/dist/shared/request-core.d.ts +0 -84
  495. package/dist/shared/request-core.js +0 -168
  496. package/dist/shared/simulator-api-metadata.d.ts +0 -26
  497. package/dist/shared/simulator-api-metadata.js +0 -59
  498. package/dist/shared/vpath.d.ts +0 -42
  499. package/dist/shared/vpath.js +0 -105
  500. package/dist/simulator/assets/bridge-channels-zhsumfky.js +0 -2
  501. package/dist/simulator/assets/device-shell-C-wcFq3Z.js +0 -2
  502. package/dist/simulator/assets/device-shell-CS1rqAQz.css +0 -1
  503. package/dist/simulator/assets/jsx-runtime-BDTY6fEq.js +0 -2
  504. package/dist/simulator/assets/simulator-DU3-fS3v.js +0 -10
  505. package/dist/simulator/assets/simulator-mini-app-DzfMfnVM.js +0 -2
  506. package/dist/simulator/device-shell/menu-button-geometry.js +0 -8
  507. package/dist/vscode-workbench/assets/__vite-browser-external-CXi6Kz9W.js +0 -1
@@ -5,14 +5,15 @@ import { handleWindowOpenExternal } from '../../windows/navigation-hardening.js'
5
5
  import { SimulatorCustomApiBridgeChannel } from '../../../shared/ipc-channels.js';
6
6
  import * as layout from '../layout/index.js';
7
7
  import { handleCustomApiBridgeRequest, } from '../simulator/custom-apis.js';
8
+ import { parseGuestPageInsetPolicy } from '../safe-area/index.js';
8
9
  import { configureMiniappSession, miniappPartition } from './miniapp-partition.js';
10
+ import { refreshGuestStylesheets } from './refresh-styles.js';
9
11
  import { parseRoute } from '../../../shared/simulator-route.js';
10
12
  import { SIMULATOR_EVENTS } from '../../../shared/bridge-channels.js';
11
13
  import { VIEW_ID } from '../../../shared/view-ids.js';
12
14
  export function createNativeSimulatorView(ctx, reconciler, deps) {
13
15
  const { safeArea, devtoolsHost, overlayPanels } = deps;
14
16
  let nativeSimulatorView = null;
15
- let nativeSimulatorViewAdded = false;
16
17
  let nativeSimulatorProjectPath = null;
17
18
  let settleNativeSimulatorReady = null;
18
19
  // Whether the CURRENT simulator view's shell finished its first boot (first
@@ -67,35 +68,20 @@ export function createNativeSimulatorView(ctx, reconciler, deps) {
67
68
  * double-dispose. `label` only tags the diagnostic on the async-tail failure.
68
69
  */
69
70
  function tearDownNativeSimulatorView(label) {
70
- if (!nativeSimulatorView)
71
+ const view = nativeSimulatorView;
72
+ if (!view)
71
73
  return;
72
- if (nativeSimulatorViewAdded && !ctx.windows.mainWindow.isDestroyed()) {
73
- try {
74
- ctx.windows.mainWindow.contentView.removeChildView(nativeSimulatorView);
75
- }
76
- catch { /* already removed */ }
77
- }
74
+ ctx.simulatorUiExtensions?.detach(view.webContents);
78
75
  try {
79
- if (!nativeSimulatorView.webContents.isDestroyed()) {
80
- ctx.bridge?.disposeSessionsForSimulator?.(nativeSimulatorView.webContents.id)
76
+ if (!view.webContents.isDestroyed()) {
77
+ ctx.bridge?.disposeSessionsForSimulator?.(view.webContents.id)
81
78
  ?.catch((err) => console.warn(`[view-manager] dispose sessions (${label}) failed:`, err));
82
- nativeSimulatorView.webContents.close();
83
79
  }
84
80
  }
85
81
  catch { /* ignore */ }
82
+ reconciler.destroyView(VIEW_ID.simulator, view);
86
83
  nativeSimulatorView = null;
87
- nativeSimulatorViewAdded = false;
88
84
  nativeSimulatorShellReady = false;
89
- // The instance is being replaced/destroyed — forget its reconciled mount
90
- // state so the NEXT rebuilt view is treated as a fresh attach. Without this,
91
- // the level-triggered reconciler still records `simulator` as `attached`
92
- // (the manual removeChildView above bypasses it), so the next reconcile
93
- // classifies the freshly-built WebContentsView as already-attached, never
94
- // emits the `attach` op, and the new view is never addChildView'd — a sticky
95
- // 100%-invisible simulator after every recompile. Mirrors the hostToolbar
96
- // instance-replacement handling in ensureHostToolbarView.
97
- reconciler.forgetActual(VIEW_ID.simulator);
98
- // The view is gone: gateReadiness now hides it, so reconcile detaches it.
99
85
  reconciler.reconcileNow();
100
86
  }
101
87
  /**
@@ -218,6 +204,8 @@ export function createNativeSimulatorView(ctx, reconciler, deps) {
218
204
  // and the renderer placeholder behind it are all the same color.
219
205
  view.setBackgroundColor(simDeskBg());
220
206
  const simWc = view.webContents;
207
+ // Keep downstream UI bundles bound to this WCV until shared teardown.
208
+ ctx.simulatorUiExtensions?.attach(simWc);
221
209
  // Keep the WCV surface in sync with the active color scheme. The
222
210
  // process-wide installThemeBackgroundSync() re-syncs BrowserWindows on a
223
211
  // theme switch, but this top-level WebContentsView is not a window, so its
@@ -243,23 +231,23 @@ export function createNativeSimulatorView(ctx, reconciler, deps) {
243
231
  // them with contextIsolation/sandbox off so the render runtime + its preload
244
232
  // share the page realm. (A top-level WebContentsView can host these guests; a
245
233
  // `<webview>` guest cannot — that's the whole point of Option A.)
246
- // Page type (`isTab`) of each attaching guest, captured from its render-host
247
- // URL in will-attach (where `params.src` carries the full URL) and consumed
248
- // FIFO in the matching did-attach — `guestWc.getURL()` is still empty there.
234
+ // Inset policy (`navStyle`) of each attaching guest, captured from its
235
+ // render-host URL in will-attach (where `params.src` carries the full
236
+ // URL) and consumed FIFO in the matching did-attach — `guestWc.getURL()` is
237
+ // still empty there.
249
238
  // Per-attach scope: a fresh simWc + handlers are built on every (re)attach.
250
- const pendingGuestIsTab = [];
239
+ // (The guest's `bgColor` query param — WeChat/Android/Harmony white-flash
240
+ // parity — is consumed entirely outside main: device-shell.tsx's `<webview>`
241
+ // CSS background and render-host/preload.cjs both read it directly, since
242
+ // `WebContents` has no `setBackgroundColor` for main to call here.)
243
+ const pendingGuestPages = [];
251
244
  simWc.on('will-attach-webview', (_event, webPreferences, params) => {
252
245
  ;
253
246
  webPreferences.partition = partition;
254
247
  params.partition = partition;
255
248
  webPreferences.contextIsolation = false;
256
249
  webPreferences.sandbox = false;
257
- let isTab = false;
258
- try {
259
- isTab = new URL(params.src).searchParams.get('isTab') === '1';
260
- }
261
- catch { /* keep false */ }
262
- pendingGuestIsTab.push(isTab);
250
+ pendingGuestPages.push(parseGuestPageInsetPolicy(params.src));
263
251
  });
264
252
  simWc.on('did-attach-webview', (_event, guestWc) => {
265
253
  // Scale the nested render-host page with the device zoom. The host WCV is
@@ -273,13 +261,18 @@ export function createNativeSimulatorView(ctx, reconciler, deps) {
273
261
  }
274
262
  catch { /* guest not ready; setNativeSimulatorViewBounds re-applies */ }
275
263
  // Simulate this device's CSS env(safe-area-inset-*) on the fresh guest
276
- // before it paints, so notch-aware page layout resolves correctly. The
277
- // bottom inset is page-type-dependent (see services/safe-area): a tab
278
- // page's content sits above the shell tabBar (bottom 0); a non-tab page
279
- // is full-bleed (real bottom inset). The page type was captured from the
280
- // render-host URL in will-attach (FIFO).
281
- const isTabGuest = pendingGuestIsTab.shift() ?? false;
282
- safeArea.applyToGuest(guestWc, ctx.bridge?.getDevice() ?? null, isTabGuest);
264
+ // before it paints, so notch-aware page layout resolves correctly. Only
265
+ // the top inset depends on the page (see services/safe-area): only a
266
+ // custom-nav page borders the unsafe top zone. The policy was captured
267
+ // from the render-host URL in will-attach (FIFO).
268
+ const guestPage = pendingGuestPages.shift() ?? { isCustomNav: false };
269
+ safeArea.applyToGuest(guestWc, ctx.bridge?.getDevice() ?? null, guestPage);
270
+ // Page-level resource loads (images/fonts/page fetch) run in THIS guest's
271
+ // network stack, never the simulator's — without this, only wx.request
272
+ // (forwarded to the simulator) shows in the Network panel and everything
273
+ // the page itself loads is invisible. Shares the already-attached
274
+ // safe-area debugger session (never a second attach/detach owner).
275
+ ctx.networkForward?.attachRenderGuest(guestWc);
283
276
  guestWc.setWindowOpenHandler(({ url }) => handleWindowOpenExternal(url));
284
277
  guestWc.on('will-navigate', (e, url) => {
285
278
  try {
@@ -377,6 +370,20 @@ export function createNativeSimulatorView(ctx, reconciler, deps) {
377
370
  nativeSimulatorView.webContents.send(SIMULATOR_EVENTS.RELAUNCH, payload);
378
371
  return true;
379
372
  }
373
+ /**
374
+ * Style-only hot swap: cache-bust every render-host stylesheet in place so a
375
+ * recompiled `.css` re-applies against the already-mounted page WITHOUT
376
+ * respawning the DeviceShell — page stack / form state / scroll / focus all
377
+ * survive (unlike `softReloadNativeSimulator`, which reboots the app session).
378
+ * Returns false when the shell isn't ready or no guest is live, so the caller
379
+ * falls back to a full reload rather than silently swallowing the rebuild.
380
+ */
381
+ function refreshSimulatorStyles() {
382
+ const view = nativeSimulatorView;
383
+ if (!view || view.webContents.isDestroyed() || !nativeSimulatorShellReady)
384
+ return false;
385
+ return refreshGuestStylesheets(view);
386
+ }
380
387
  function detachSimulator() {
381
388
  settleNativeSimulatorReady?.();
382
389
  settleNativeSimulatorReady = null;
@@ -407,13 +414,13 @@ export function createNativeSimulatorView(ctx, reconciler, deps) {
407
414
  }
408
415
  reconciler.registerView(VIEW_ID.simulator, {
409
416
  getView: () => nativeSimulatorView,
410
- setAdded: (added) => { nativeSimulatorViewAdded = added; },
411
417
  gateHidden: () => !nativeSimulatorView,
412
418
  applyBounds: (view, bounds, extra) => applyNativeSimulatorBounds(view, bounds, extra?.zoom ?? 1),
413
419
  });
414
420
  return {
415
421
  attachNativeSimulator,
416
422
  softReloadNativeSimulator,
423
+ refreshSimulatorStyles,
417
424
  detachSimulator,
418
425
  getSimulatorWebContentsId: () => simulatorWebContentsId,
419
426
  getSimulatorWebContents: () => {
@@ -0,0 +1,25 @@
1
+ import type { BrowserWindow, WebContentsView } from 'electron';
2
+ import type { ViewSlot } from './placement-reconciler.js';
3
+ /**
4
+ * Single native child-tree owner for devtools. It resolves the current concrete
5
+ * instance dynamically because a stable viewId may be rebuilt, and updates its
6
+ * order ledger only after the corresponding Electron call succeeds.
7
+ */
8
+ interface NativeViewRef {
9
+ readonly id: string;
10
+ }
11
+ export interface NativeViewTreeHost {
12
+ addChildView(ref: NativeViewRef): boolean;
13
+ removeChildView(ref: NativeViewRef): boolean;
14
+ readonly isDestroyed: boolean;
15
+ children(): readonly NativeViewRef[];
16
+ /** Detach and close a concrete instance, then remove it from the ledger. */
17
+ destroyView(viewId: string, view: WebContentsView | null): void;
18
+ }
19
+ export declare function createNativeViewTreeHost(ctx: {
20
+ windows: {
21
+ mainWindow: BrowserWindow;
22
+ };
23
+ }, slots: Map<string, ViewSlot>): NativeViewTreeHost;
24
+ export {};
25
+ //# sourceMappingURL=native-view-tree.d.ts.map
@@ -0,0 +1,69 @@
1
+ export function createNativeViewTreeHost(ctx, slots) {
2
+ const order = [];
3
+ const mounted = new Map();
4
+ function resolve(id) {
5
+ return slots.get(id)?.getView() ?? null;
6
+ }
7
+ return {
8
+ addChildView(ref) {
9
+ const view = resolve(ref.id);
10
+ if (!view || view.webContents.isDestroyed() || ctx.windows.mainWindow.isDestroyed())
11
+ return false;
12
+ try {
13
+ ctx.windows.mainWindow.contentView.addChildView(view);
14
+ }
15
+ catch {
16
+ return false;
17
+ }
18
+ const i = order.indexOf(ref.id);
19
+ if (i >= 0)
20
+ order.splice(i, 1);
21
+ order.push(ref.id);
22
+ mounted.set(ref.id, view);
23
+ return true;
24
+ },
25
+ removeChildView(ref) {
26
+ const view = mounted.get(ref.id) ?? null;
27
+ if (!view || ctx.windows.mainWindow.isDestroyed())
28
+ return false;
29
+ try {
30
+ ctx.windows.mainWindow.contentView.removeChildView(view);
31
+ }
32
+ catch {
33
+ return false;
34
+ }
35
+ const i = order.indexOf(ref.id);
36
+ if (i >= 0)
37
+ order.splice(i, 1);
38
+ mounted.delete(ref.id);
39
+ return true;
40
+ },
41
+ get isDestroyed() {
42
+ return ctx.windows.mainWindow.isDestroyed();
43
+ },
44
+ children: () => order.map((id) => ({ id })),
45
+ destroyView(viewId, view) {
46
+ const isMountedInstance = view !== null && mounted.get(viewId) === view;
47
+ if (view && !ctx.windows.mainWindow.isDestroyed()) {
48
+ try {
49
+ ctx.windows.mainWindow.contentView.removeChildView(view);
50
+ }
51
+ catch { /* detached */ }
52
+ }
53
+ if (isMountedInstance) {
54
+ const i = order.indexOf(viewId);
55
+ if (i >= 0)
56
+ order.splice(i, 1);
57
+ mounted.delete(viewId);
58
+ }
59
+ if (view) {
60
+ try {
61
+ if (!view.webContents.isDestroyed())
62
+ view.webContents.close();
63
+ }
64
+ catch { /* destroyed concurrently */ }
65
+ }
66
+ },
67
+ };
68
+ }
69
+ //# sourceMappingURL=native-view-tree.js.map
@@ -1,9 +1,32 @@
1
1
  import type { WebContents } from 'electron';
2
+ import type { UpdateInfo } from '../../../shared/types.js';
2
3
  import type { PlacementReconciler } from './placement-reconciler.js';
3
4
  import type { ViewManagerContext } from './view-manager.js';
5
+ export interface TooltipShowPayload {
6
+ anchor: {
7
+ x: number;
8
+ y: number;
9
+ width: number;
10
+ height: number;
11
+ };
12
+ text: string;
13
+ }
14
+ /** Payload shown by the project-create-dialog overlay panel (`projectCreate:show`). */
15
+ export interface ProjectCreateShowPayload {
16
+ templates: unknown[];
17
+ defaultBaseDir: string;
18
+ }
19
+ /** Payload shown by the device-picker overlay panel (`devicePicker:show`). */
20
+ export interface DevicePickerShowPayload {
21
+ deviceName: string;
22
+ }
4
23
  /**
5
- * The two main-owned overlay panels: the settings sheet (right-side panel over
6
- * a transparent backdrop) and the transient popover. Their bounds are
24
+ * The main-owned overlay panels: the settings sheet (right-side panel over a
25
+ * transparent backdrop), the transient compile-mode popover, and the tooltip.
26
+ * Each is an `OverlayPanel` (`@dimina-kit/electron-deck/main`) — the shared
27
+ * lazy-create/reuse/destroy WebContentsView lifecycle — wired into THIS
28
+ * module's own placement reconciler (the panel factory owns no z-order/bounds
29
+ * authority itself; see overlay-panel.ts's doc-comment). Bounds are
7
30
  * main-computed and published into the reconciler's `overlayDesired` (top-tier
8
31
  * layers, so a reorder keeps them above every base overlay).
9
32
  */
@@ -12,15 +35,51 @@ export interface OverlayPanelsView {
12
35
  hideSettings(): void;
13
36
  showPopover(data: unknown): void;
14
37
  hidePopover(): void;
15
- /** Re-apply whichever of settings/popover is currently present (window resize / toolbar height change). */
38
+ prepareTooltip(): void;
39
+ showTooltip(data: TooltipShowPayload): void;
40
+ hideTooltip(): void;
41
+ markOverlayReady(webContentsId: number): void;
42
+ applyTooltipMeasurement(webContentsId: number, measurement: {
43
+ requestId: number;
44
+ width: number;
45
+ height: number;
46
+ }): void;
47
+ /** Re-apply whichever of settings/popover is currently present (window resize / toolbar height change). Tooltip excluded — it re-anchors on its own next show, a stale position while hidden doesn't matter. */
16
48
  reapplyPresentOverlays(): void;
17
49
  /** Re-apply the settings overlay only (the resize entry point re-applies settings, not popover). */
18
50
  applySettingsBoundsIfPresent(): void;
19
- /** Destroy the cached settings view (aggregate simulator detach). */
51
+ /** Destroy the cached settings + tooltip views (aggregate simulator detach). */
20
52
  destroySettings(): void;
53
+ /** Destroy the project-create/update dialog panel views (app-level teardown). */
54
+ destroyDialogs(): void;
21
55
  getSettingsWebContents(): WebContents | null;
22
56
  getSettingsWebContentsId(): number | null;
23
57
  getPopoverWebContentsId(): number | null;
58
+ getTooltipWebContentsId(): number | null;
59
+ /**
60
+ * Show the project-create-dialog overlay panel (VIEW_LAYER.dialog) — the
61
+ * real WebContentsView that replaced the Radix `fixed inset-0` DOM portal
62
+ * (see view-ids.ts's VIEW_LAYER doc-comment for why a DOM overlay can't
63
+ * paint above the simulator/host-toolbar/host-sidebar WCVs).
64
+ */
65
+ showProjectCreateDialog(data: ProjectCreateShowPayload): void;
66
+ hideProjectCreateDialog(): void;
67
+ /** Show the update-available overlay panel, fed the discovered update's info. */
68
+ showUpdateDialog(data: UpdateInfo): void;
69
+ hideUpdateDialog(): void;
70
+ /** Forward a download-progress tick into the (already-shown) update overlay. */
71
+ notifyUpdateDownloadProgress(percent: number): void;
72
+ /**
73
+ * Show the simulator toolbar's device picker (VIEW_LAYER.dialog). Same
74
+ * reason as `showProjectCreateDialog`: the simulator WCV overlaps the
75
+ * centred search panel, so it cannot be a DOM dialog in the toolbar's own
76
+ * renderer.
77
+ */
78
+ showDevicePicker(data: DevicePickerShowPayload): void;
79
+ hideDevicePicker(): void;
80
+ getProjectCreateDialogWebContentsId(): number | null;
81
+ getUpdateDialogWebContentsId(): number | null;
82
+ getDevicePickerWebContentsId(): number | null;
24
83
  }
25
84
  export declare function createOverlayPanelsView(ctx: ViewManagerContext, reconciler: PlacementReconciler, deps: {
26
85
  /** The host-toolbar strip height that offsets the overlay top edge. */