feat(frontend): host les fenêtres plugin et l'API publique windows.open

Ajoute la vue window host qui charge le layout plugin dans une fenêtre OS
détachée, expose react/react-dom/jsx-runtime hébergés sous
frontend/public/plugin-host pour que le runtime SDK y résolve React, et
câble services.windows.open() côté runtime plugin (loader/services/registry).

npm test -- --run src/adapters/window.test.ts src/app/ViewWindow.test.tsx
  src/plugins/runtime/loader.test.ts src/plugins/runtime/services.test.ts : 39/39
npm run typecheck : OK
npm run build : OK

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-08-04 00:39:50 +02:00
parent 551eb09ad2
commit d8df466fba
20 changed files with 678 additions and 10 deletions

View File

@ -0,0 +1,16 @@
const ReactDom = globalThis.__IDEA_PLUGIN_HOST_REACT_DOM__;
export default ReactDom;
export const createPortal = ReactDom.createPortal;
export const flushSync = ReactDom.flushSync;
export const preconnect = ReactDom.preconnect;
export const prefetchDNS = ReactDom.prefetchDNS;
export const preinit = ReactDom.preinit;
export const preinitModule = ReactDom.preinitModule;
export const preload = ReactDom.preload;
export const preloadModule = ReactDom.preloadModule;
export const requestFormReset = ReactDom.requestFormReset;
export const unstable_batchedUpdates = ReactDom.unstable_batchedUpdates;
export const useFormState = ReactDom.useFormState;
export const useFormStatus = ReactDom.useFormStatus;
export const version = ReactDom.version;