Fix Workbench package resolution and runtime dependencies
>>> [!note] Migrated issue <!-- Drupal.org comment --> <!-- Migrated from issue #3580581. --> Reported by: [balintbrews](https://www.drupal.org/user/613760) Related to !776 >>> <h3>Overview</h3> <p>Installing <code>@drupal-canvas/workbench</code> in an external project exposes several packaging and runtime issues:</p> <ul> <li>Workbench aliases <code>react</code>, <code>react-dom</code>, and JSX runtime imports to hardcoded package-local <code>node_modules</code> paths, which breaks when npm hoists or lays out dependencies differently.</li> <li>The published client CSS imports <code>shadcn/tailwind.css</code>, which is not a reliable runtime dependency for consumers and fails in installed projects.</li> <li>Base UI pulls <code>use-sync-external-store/shim</code> CommonJS subpaths from ESM files, and Workbench does not force Vite to prebundle them, which causes browser-side named export errors.</li> <li>Workbench can end up mixing incompatible <code>react</code> and <code>react-dom</code> versions at runtime, triggering React&rsquo;s exact-version check.</li> </ul> <h3>Proposed resolution</h3> <ul> <li>Resolve React package roots with package resolution logic instead of hardcoded filesystem paths.</li> <li>Keep Workbench&rsquo;s React runtime self-contained and pin <code>react</code> and <code>react-dom</code> to the same exact version.</li> <li>Vendor the required shadcn Tailwind helper CSS into Workbench and import the local file in the published client CSS.</li> <li>Add the required <code>optimizeDeps.include</code> entries so Vite prebundles the <code>use-sync-external-store</code> shim subpaths.</li> <li>Bump the Workbench package version after these fixes.</li> </ul> <h3>User interface changes</h3> <p>n/a</p>
issue