@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
@@ -1,150 +1,299 @@
1
1
  import { WebContentsView } from 'electron';
2
- import path from 'path';
2
+ import { createOverlayPanel } from '@dimina-kit/electron-deck/main';
3
3
  import { mainPreloadPath } from '../../utils/paths.js';
4
4
  import { applyNavigationHardening } from '../../windows/navigation-hardening.js';
5
5
  import * as layout from '../layout/index.js';
6
6
  import { HEADER_H } from '../../../shared/constants.js';
7
7
  import { VIEW_ID, VIEW_LAYER } from '../../../shared/view-ids.js';
8
- import { destroyChildView } from './destroy-child-view.js';
8
+ import { UpdateChannel } from '../../../shared/ipc-channels-overlays.js';
9
9
  export function createOverlayPanelsView(ctx, reconciler, deps) {
10
- let settingsView = null;
11
- let popoverView = null;
12
10
  function overlayHeaderHeight() {
13
11
  return HEADER_H + deps.getHostToolbarHeight();
14
12
  }
15
- // settings/popover bounds are main-computed; publish them into overlayDesired
16
- // and let the reconciler place them (they are top-tier layers, so a reorder
17
- // keeps them above every base overlay — the old raiseTopOverlays is gone).
18
- function applySettingsBounds() {
19
- if (!settingsView || ctx.windows.mainWindow.isDestroyed())
20
- return;
21
- const [w = 0, h = 0] = ctx.windows.mainWindow.getContentSize();
22
- reconciler.setOverlayDesired(VIEW_ID.settings, {
23
- viewId: VIEW_ID.settings,
24
- placement: {
25
- visible: true,
26
- bounds: layout.computeSettingsBounds(w, h, overlayHeaderHeight()),
27
- },
28
- layer: VIEW_LAYER.settings,
29
- });
30
- reconciler.reconcileNow();
13
+ function overlayDesiredSetter(viewId, layer) {
14
+ return (bounds) => {
15
+ if (bounds === null) {
16
+ reconciler.deleteOverlayDesired(viewId);
17
+ }
18
+ else {
19
+ reconciler.setOverlayDesired(viewId, {
20
+ viewId,
21
+ placement: { visible: true, bounds },
22
+ layer,
23
+ });
24
+ }
25
+ reconciler.reconcileNow();
26
+ };
31
27
  }
32
- function applyPopoverBounds() {
33
- if (!popoverView || ctx.windows.mainWindow.isDestroyed())
34
- return;
35
- const [w = 0, h = 0] = ctx.windows.mainWindow.getContentSize();
36
- reconciler.setOverlayDesired(VIEW_ID.popover, {
37
- viewId: VIEW_ID.popover,
38
- placement: {
39
- visible: true,
40
- bounds: layout.computePopoverBounds(w, h, overlayHeaderHeight()),
41
- },
42
- layer: VIEW_LAYER.popover,
43
- });
44
- reconciler.reconcileNow();
28
+ const settingsPanel = createOverlayPanel({
29
+ electron: { createWebContentsView: (opts) => new WebContentsView(opts) },
30
+ rendererDir: ctx.rendererDir,
31
+ entry: 'entries/settings/index.html',
32
+ webPreferences: {
33
+ nodeIntegration: false,
34
+ contextIsolation: true,
35
+ sandbox: false,
36
+ preload: mainPreloadPath,
37
+ },
38
+ hardenNavigation: (wc) => applyNavigationHardening(wc, ctx.rendererDir),
39
+ setDesired: overlayDesiredSetter(VIEW_ID.settings, VIEW_LAYER.settings),
40
+ registerView: (getView) => reconciler.registerView(VIEW_ID.settings, { getView }),
41
+ destroyView: (view) => reconciler.destroyView(VIEW_ID.settings, view),
42
+ readyMode: 'manual',
43
+ });
44
+ const popoverPanel = createOverlayPanel({
45
+ electron: { createWebContentsView: (opts) => new WebContentsView(opts) },
46
+ rendererDir: ctx.rendererDir,
47
+ entry: 'entries/popover/index.html',
48
+ webPreferences: {
49
+ nodeIntegration: false,
50
+ contextIsolation: true,
51
+ sandbox: false,
52
+ preload: mainPreloadPath,
53
+ },
54
+ hardenNavigation: (wc) => applyNavigationHardening(wc, ctx.rendererDir),
55
+ setDesired: overlayDesiredSetter(VIEW_ID.popover, VIEW_LAYER.popover),
56
+ registerView: (getView) => reconciler.registerView(VIEW_ID.popover, { getView }),
57
+ destroyView: (view) => reconciler.destroyView(VIEW_ID.popover, view),
58
+ pushData: (view, data) => ctx.notify.popoverInit(view, data),
59
+ readyMode: 'manual',
60
+ });
61
+ const tooltipPanel = createOverlayPanel({
62
+ electron: { createWebContentsView: (opts) => new WebContentsView(opts) },
63
+ rendererDir: ctx.rendererDir,
64
+ entry: 'entries/tooltip/index.html',
65
+ webPreferences: {
66
+ nodeIntegration: false,
67
+ contextIsolation: true,
68
+ sandbox: false,
69
+ preload: mainPreloadPath,
70
+ },
71
+ hardenNavigation: (wc) => applyNavigationHardening(wc, ctx.rendererDir),
72
+ setDesired: overlayDesiredSetter(VIEW_ID.tooltip, VIEW_LAYER.tooltip),
73
+ registerView: (getView) => reconciler.registerView(VIEW_ID.tooltip, { getView }),
74
+ prepareView: (view) => {
75
+ const [width = 0, height = 0] = ctx.windows.mainWindow.getContentSize();
76
+ reconciler.prepareView(VIEW_ID.tooltip, view, {
77
+ x: 0,
78
+ y: 0,
79
+ width: Math.max(1, width),
80
+ height: Math.max(1, height),
81
+ });
82
+ },
83
+ destroyView: (view) => reconciler.destroyView(VIEW_ID.tooltip, view),
84
+ pushData: (view, data) => ctx.notify.tooltipInit(view, data),
85
+ readyMode: 'manual',
86
+ });
87
+ /**
88
+ * Both devtools-owned dialog panels occupy the full main-window content
89
+ * rect (they render their own centered card + backdrop), so unlike
90
+ * settings/popover/tooltip they need no anchor-derived bounds computation —
91
+ * just the window's current content size, recomputed on every show/resize.
92
+ */
93
+ function fullWindowBounds() {
94
+ const [width = 0, height = 0] = ctx.windows.mainWindow.getContentSize();
95
+ return { x: 0, y: 0, width: Math.max(1, width), height: Math.max(1, height) };
45
96
  }
97
+ const projectCreateDialogPanel = createOverlayPanel({
98
+ electron: { createWebContentsView: (opts) => new WebContentsView(opts) },
99
+ rendererDir: ctx.rendererDir,
100
+ entry: 'entries/project-create-dialog/index.html',
101
+ webPreferences: {
102
+ nodeIntegration: false,
103
+ contextIsolation: true,
104
+ sandbox: false,
105
+ preload: mainPreloadPath,
106
+ },
107
+ hardenNavigation: (wc) => applyNavigationHardening(wc, ctx.rendererDir),
108
+ setDesired: overlayDesiredSetter(VIEW_ID.projectCreateDialog, VIEW_LAYER.dialog),
109
+ registerView: (getView) => reconciler.registerView(VIEW_ID.projectCreateDialog, { getView }),
110
+ destroyView: (view) => reconciler.destroyView(VIEW_ID.projectCreateDialog, view),
111
+ pushData: (view, data) => ctx.notify.projectCreateInit(view, data),
112
+ readyMode: 'manual',
113
+ });
114
+ const updateDialogPanel = createOverlayPanel({
115
+ electron: { createWebContentsView: (opts) => new WebContentsView(opts) },
116
+ rendererDir: ctx.rendererDir,
117
+ entry: 'entries/update-dialog/index.html',
118
+ webPreferences: {
119
+ nodeIntegration: false,
120
+ contextIsolation: true,
121
+ sandbox: false,
122
+ preload: mainPreloadPath,
123
+ },
124
+ hardenNavigation: (wc) => applyNavigationHardening(wc, ctx.rendererDir),
125
+ setDesired: overlayDesiredSetter(VIEW_ID.updateDialog, VIEW_LAYER.dialog),
126
+ registerView: (getView) => reconciler.registerView(VIEW_ID.updateDialog, { getView }),
127
+ destroyView: (view) => reconciler.destroyView(VIEW_ID.updateDialog, view),
128
+ pushData: (view, data) => ctx.notify.updateAvailable(view, data),
129
+ readyMode: 'manual',
130
+ });
131
+ const devicePickerPanel = createOverlayPanel({
132
+ electron: { createWebContentsView: (opts) => new WebContentsView(opts) },
133
+ rendererDir: ctx.rendererDir,
134
+ entry: 'entries/device-picker/index.html',
135
+ webPreferences: {
136
+ nodeIntegration: false,
137
+ contextIsolation: true,
138
+ sandbox: false,
139
+ preload: mainPreloadPath,
140
+ },
141
+ hardenNavigation: (wc) => applyNavigationHardening(wc, ctx.rendererDir),
142
+ setDesired: overlayDesiredSetter(VIEW_ID.devicePicker, VIEW_LAYER.dialog),
143
+ registerView: (getView) => reconciler.registerView(VIEW_ID.devicePicker, { getView }),
144
+ destroyView: (view) => reconciler.destroyView(VIEW_ID.devicePicker, view),
145
+ pushData: (view, data) => ctx.notify.devicePickerInit(view, data),
146
+ readyMode: 'manual',
147
+ });
148
+ let tooltipRequestId = 0;
149
+ let activeTooltip = null;
46
150
  async function showSettings() {
47
- if (!settingsView) {
48
- settingsView = new WebContentsView({
49
- webPreferences: {
50
- nodeIntegration: false,
51
- contextIsolation: true,
52
- sandbox: false,
53
- preload: mainPreloadPath,
54
- },
55
- });
56
- // Overlay loads mainPreloadPath, so the same navigation rules as the
57
- // main window apply — see navigation-hardening.ts.
58
- applyNavigationHardening(settingsView.webContents, ctx.rendererDir);
59
- // Transparent backing: the settings view now spans the whole content area
60
- // (computeSettingsBounds) and its renderer paints a transparent backdrop +
61
- // an opaque right-side panel, so the underlying editor/simulator show
62
- // through and a backdrop click closes the overlay (mirrors the popover).
63
- settingsView.setBackgroundColor('#00000000');
64
- await settingsView.webContents.loadFile(path.join(ctx.rendererDir, 'entries/settings/index.html'));
65
- }
66
- applySettingsBounds();
151
+ const [w = 0, h = 0] = ctx.windows.mainWindow.getContentSize();
152
+ settingsPanel.show(undefined, layout.computeSettingsBounds(w, h, overlayHeaderHeight()));
153
+ await settingsPanel.whenReady();
67
154
  }
68
155
  function hideSettings() {
69
- reconciler.deleteOverlayDesired(VIEW_ID.settings);
70
- reconciler.reconcileNow();
156
+ settingsPanel.hide();
71
157
  }
72
158
  function showPopover(data) {
159
+ // Popover carries no state across opens (always fresh init data) — force a
160
+ // brand-new instance rather than reusing/repositioning a live one (and
161
+ // notify like any other close, via the shared hidePopover()).
73
162
  hidePopover();
74
- const popover = new WebContentsView({
75
- webPreferences: {
76
- nodeIntegration: false,
77
- contextIsolation: true,
78
- sandbox: false,
79
- preload: mainPreloadPath,
80
- },
81
- });
82
- // Popover overlay loads mainPreloadPath — same navigation rules apply.
83
- applyNavigationHardening(popover.webContents, ctx.rendererDir);
84
- popoverView = popover;
85
- popover.setBackgroundColor('#00000000');
86
- applyPopoverBounds();
87
- popover.webContents.once('did-finish-load', () => {
88
- ctx.notify.popoverInit(popover, data);
89
- });
90
- popover.webContents.loadFile(path.join(ctx.rendererDir, 'entries/popover/index.html'));
163
+ const [w = 0, h = 0] = ctx.windows.mainWindow.getContentSize();
164
+ popoverPanel.show(data, layout.computePopoverBounds(w, h, overlayHeaderHeight()));
91
165
  }
92
166
  function hidePopover() {
93
- if (!popoverView)
167
+ if (!popoverPanel.isPresent())
94
168
  return;
169
+ popoverPanel.destroy();
95
170
  reconciler.deleteOverlayDesired(VIEW_ID.popover);
96
- // Destroy the WCV first (removeChildView + close), THEN reconcile: the detach
97
- // op then finds the view already gone and does not double-removeChildView.
98
- destroyChildView(ctx.windows.mainWindow, popoverView);
99
- popoverView = null;
100
171
  reconciler.reconcileNow();
101
172
  ctx.notify.popoverClosed();
102
173
  }
174
+ function prepareTooltip() {
175
+ tooltipPanel.prepare();
176
+ }
177
+ function showTooltip(data) {
178
+ const requestId = ++tooltipRequestId;
179
+ activeTooltip = { requestId, anchor: data.anchor };
180
+ const [contentWidth = 0] = ctx.windows.mainWindow.getContentSize();
181
+ tooltipPanel.show({
182
+ requestId,
183
+ text: data.text,
184
+ maxWidth: layout.computeTooltipMaxWidth(contentWidth),
185
+ }, null);
186
+ }
187
+ function hideTooltip() {
188
+ activeTooltip = null;
189
+ tooltipPanel.hide();
190
+ }
191
+ function showProjectCreateDialog(data) {
192
+ projectCreateDialogPanel.show(data, fullWindowBounds());
193
+ }
194
+ function hideProjectCreateDialog() {
195
+ projectCreateDialogPanel.hide();
196
+ }
197
+ function showUpdateDialog(data) {
198
+ updateDialogPanel.show(data, fullWindowBounds());
199
+ }
200
+ function hideUpdateDialog() {
201
+ updateDialogPanel.hide();
202
+ }
203
+ function showDevicePicker(data) {
204
+ devicePickerPanel.show(data, fullWindowBounds());
205
+ }
206
+ function hideDevicePicker() {
207
+ devicePickerPanel.hide();
208
+ }
209
+ function notifyUpdateDownloadProgress(percent) {
210
+ const wc = updateDialogPanel.getWebContents();
211
+ if (!wc)
212
+ return;
213
+ wc.send(UpdateChannel.DownloadProgress, { percent });
214
+ }
215
+ function markOverlayReady(webContentsId) {
216
+ settingsPanel.markReady(webContentsId);
217
+ popoverPanel.markReady(webContentsId);
218
+ tooltipPanel.markReady(webContentsId);
219
+ projectCreateDialogPanel.markReady(webContentsId);
220
+ updateDialogPanel.markReady(webContentsId);
221
+ devicePickerPanel.markReady(webContentsId);
222
+ }
223
+ function applyTooltipMeasurement(webContentsId, measurement) {
224
+ const active = activeTooltip;
225
+ if (!active || active.requestId !== measurement.requestId)
226
+ return;
227
+ if (tooltipPanel.getWebContentsId() !== webContentsId)
228
+ return;
229
+ const [w = 0, h = 0] = ctx.windows.mainWindow.getContentSize();
230
+ tooltipPanel.reposition(layout.computeTooltipBounds(active.anchor, w, h, measurement));
231
+ }
103
232
  function reapplyPresentOverlays() {
104
- if (reconciler.hasOverlayDesired(VIEW_ID.settings))
105
- applySettingsBounds();
106
- if (reconciler.hasOverlayDesired(VIEW_ID.popover))
107
- applyPopoverBounds();
233
+ // Fire-and-forget re-trigger — a crash between this call and the panel
234
+ // becoming ready now rejects whenReady() (see overlay-panel.ts teardown);
235
+ // handleViewBroken() already logs it, nothing more to do here.
236
+ if (settingsPanel.isPresent() && reconciler.hasOverlayDesired(VIEW_ID.settings)) {
237
+ showSettings().catch(() => { });
238
+ }
239
+ if (popoverPanel.isPresent() && reconciler.hasOverlayDesired(VIEW_ID.popover)) {
240
+ const [w = 0, h = 0] = ctx.windows.mainWindow.getContentSize();
241
+ popoverPanel.reposition(layout.computePopoverBounds(w, h, overlayHeaderHeight()));
242
+ }
243
+ if (projectCreateDialogPanel.isPresent() && reconciler.hasOverlayDesired(VIEW_ID.projectCreateDialog)) {
244
+ projectCreateDialogPanel.reposition(fullWindowBounds());
245
+ }
246
+ if (updateDialogPanel.isPresent() && reconciler.hasOverlayDesired(VIEW_ID.updateDialog)) {
247
+ updateDialogPanel.reposition(fullWindowBounds());
248
+ }
249
+ if (devicePickerPanel.isPresent() && reconciler.hasOverlayDesired(VIEW_ID.devicePicker)) {
250
+ devicePickerPanel.reposition(fullWindowBounds());
251
+ }
108
252
  }
109
253
  function applySettingsBoundsIfPresent() {
110
- if (reconciler.hasOverlayDesired(VIEW_ID.settings))
111
- applySettingsBounds();
254
+ // See reapplyPresentOverlays() above for why this swallows a rejection.
255
+ if (settingsPanel.isPresent() && reconciler.hasOverlayDesired(VIEW_ID.settings)) {
256
+ showSettings().catch(() => { });
257
+ }
112
258
  }
113
259
  function destroySettings() {
114
- destroyChildView(ctx.windows.mainWindow, settingsView);
115
- settingsView = null;
260
+ activeTooltip = null;
261
+ settingsPanel.destroy();
262
+ tooltipPanel.destroy();
263
+ }
264
+ function destroyDialogs() {
265
+ projectCreateDialogPanel.destroy();
266
+ updateDialogPanel.destroy();
267
+ devicePickerPanel.destroy();
116
268
  }
117
- reconciler.registerView(VIEW_ID.settings, { getView: () => settingsView });
118
- reconciler.registerView(VIEW_ID.popover, { getView: () => popoverView });
119
269
  return {
120
270
  showSettings,
121
271
  hideSettings,
122
272
  showPopover,
123
273
  hidePopover,
274
+ prepareTooltip,
275
+ showTooltip,
276
+ hideTooltip,
277
+ markOverlayReady,
278
+ applyTooltipMeasurement,
279
+ showProjectCreateDialog,
280
+ hideProjectCreateDialog,
281
+ showUpdateDialog,
282
+ hideUpdateDialog,
283
+ notifyUpdateDownloadProgress,
284
+ showDevicePicker,
285
+ hideDevicePicker,
124
286
  reapplyPresentOverlays,
125
287
  applySettingsBoundsIfPresent,
126
288
  destroySettings,
127
- getSettingsWebContents: () => {
128
- if (!settingsView)
129
- return null;
130
- if (settingsView.webContents.isDestroyed())
131
- return null;
132
- return settingsView.webContents;
133
- },
134
- getSettingsWebContentsId: () => {
135
- if (!settingsView)
136
- return null;
137
- if (settingsView.webContents.isDestroyed())
138
- return null;
139
- return settingsView.webContents.id;
140
- },
141
- getPopoverWebContentsId: () => {
142
- if (!popoverView)
143
- return null;
144
- if (popoverView.webContents.isDestroyed())
145
- return null;
146
- return popoverView.webContents.id;
147
- },
289
+ destroyDialogs,
290
+ getSettingsWebContents: () => settingsPanel.getWebContents(),
291
+ getSettingsWebContentsId: () => settingsPanel.getWebContentsId(),
292
+ getPopoverWebContentsId: () => popoverPanel.getWebContentsId(),
293
+ getTooltipWebContentsId: () => tooltipPanel.getWebContentsId(),
294
+ getProjectCreateDialogWebContentsId: () => projectCreateDialogPanel.getWebContentsId(),
295
+ getUpdateDialogWebContentsId: () => updateDialogPanel.getWebContentsId(),
296
+ getDevicePickerWebContentsId: () => devicePickerPanel.getWebContentsId(),
148
297
  };
149
298
  }
150
299
  //# sourceMappingURL=overlay-panels-view.js.map
@@ -12,8 +12,6 @@ import type { ViewManagerContext } from './view-manager.js';
12
12
  export interface ViewSlot {
13
13
  /** The live WebContentsView for this slot, or null when not yet created. */
14
14
  getView(): WebContentsView | null;
15
- /** Record whether the view is currently added to the contentView. */
16
- setAdded?(added: boolean): void;
17
15
  /**
18
16
  * When true, force the desired placement to hidden — the view-creation site
19
17
  * has not produced the WCV yet, so the reconciler must never record an attach
@@ -21,12 +19,6 @@ export interface ViewSlot {
21
19
  * to re-open the gate.
22
20
  */
23
21
  gateHidden?(): boolean;
24
- /**
25
- * Run before the generic attach. Return true when the slot fully handled the
26
- * attach itself (e.g. a lazy async load that adds the view on completion), so
27
- * the reconciler must NOT addChildView here.
28
- */
29
- beforeAttach?(): boolean;
30
22
  /** Lazily create the view on attach (host-toolbar); used instead of getView. */
31
23
  ensureView?(): WebContentsView | null;
32
24
  /** Domain-specific setBounds (simulator zoom rides here). */
@@ -44,8 +36,10 @@ export interface ViewSlot {
44
36
  * settings/popover are main-owned and live in `overlayDesired`. Any change
45
37
  * merges the two, runs the pure reconcile core, and applies the ordered ops
46
38
  * through `viewTarget`. `epochCounter` is a single monotonic tick — main is the
47
- * only (serial) reconcile caller, so the core's stale guard passes by
48
- * construction; `rendererGeneration` still drives the reset on renderer restart.
39
+ * only (serial) reconcile caller, so the core's stale-epoch guard passes by
40
+ * construction; `rendererGeneration` is the high-water mark that drives both
41
+ * the reset on a genuinely newer generation and the hard rejection of a
42
+ * snapshot from behind it (see `setPlacementSnapshot`).
49
43
  */
50
44
  export interface PlacementReconciler {
51
45
  registerView(viewId: string, slot: ViewSlot): void;
@@ -55,19 +49,25 @@ export interface PlacementReconciler {
55
49
  * truth for every managed native view's bounds/visibility/z-order.
56
50
  */
57
51
  setPlacementSnapshot(snapshot: PlacementSnapshot<DevtoolsExtra>): void;
58
- /**
59
- * Forget a view's reconciled mount state so the NEXT rebuilt view is treated
60
- * as a fresh attach. Required wherever a view instance is replaced/destroyed
61
- * via a manual removeChildView that bypasses the reconciler (otherwise the
62
- * level-triggered core still records the old instance as attached and never
63
- * emits the attach op for the replacement — a sticky invisible view).
64
- */
65
- forgetActual(viewId: string): void;
52
+ /** Size a detached view for renderer-side intrinsic measurement. */
53
+ prepareView(viewId: string, view: WebContentsView, bounds: layout.Bounds): void;
54
+ /** Detach and close one concrete view instance through the native-tree owner. */
55
+ destroyView(viewId: string, view: WebContentsView | null): void;
66
56
  setBaseDesired(viewId: string, desired: DesiredView<DevtoolsExtra>): void;
67
57
  deleteBaseDesired(viewId: string): void;
68
58
  setOverlayDesired(viewId: string, desired: DesiredView<DevtoolsExtra>): void;
69
59
  deleteOverlayDesired(viewId: string): void;
70
60
  hasOverlayDesired(viewId: string): boolean;
61
+ /**
62
+ * Hand out a fresh generation seed for a renderer bootstrap (see
63
+ * renderer-placement-generation.ts). Strictly exceeds both the current
64
+ * high-water mark (`rendererGeneration`, which a full renderer reload does
65
+ * NOT reset — this reconciler lives in the long-lived main process) and
66
+ * every previously allocated seed, so a reload that races ahead of its own
67
+ * previous session's accepted snapshots can never be handed a value that
68
+ * `setPlacementSnapshot` would reject as stale.
69
+ */
70
+ allocateGeneration(): number;
71
71
  }
72
72
  export declare function createPlacementReconciler(ctx: ViewManagerContext): PlacementReconciler;
73
73
  //# sourceMappingURL=placement-reconciler.d.ts.map