From d85e4ac14aee15e8606d6c61036c9da4d8984bdd Mon Sep 17 00:00:00 2001 From: David Montero Crespo Date: Thu, 16 Jul 2026 18:31:20 +0200 Subject: [PATCH] feat(elements): side-effect registrar for all custom elements MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Registers upstream @wokwi/elements, velxio-elements/ and the element classes living next to their React wrappers in velxio-components/ — without pulling any React component graph. Used by pin-metadata introspection in tests/generators (the pro agent's metadata export). --- frontend/src/elements-register.ts | 34 +++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 frontend/src/elements-register.ts diff --git a/frontend/src/elements-register.ts b/frontend/src/elements-register.ts new file mode 100644 index 00000000..57e3ea5a --- /dev/null +++ b/frontend/src/elements-register.ts @@ -0,0 +1,34 @@ +/** + * Side-effect module: register every custom element (upstream wokwi + + * velxio-local) without pulling in any React component. Import this when you + * need `document.createElement('wokwi-…')` to resolve — e.g. pin-metadata + * introspection in tests/generators — but don't want DynamicComponent's + * store/simulation dependency graph. + */ + +import '@wokwi/elements'; +import './velxio-elements'; + +// Element classes that live next to their React wrappers instead of in +// velxio-elements/ (each module self-registers its tags, guarded against +// double-registration and non-DOM environments). +import './components/velxio-components/Attiny85Element'; +import './components/velxio-components/Bmp280Element'; +import './components/velxio-components/DiodeElements'; +import './components/velxio-components/EPaperElement'; +import './components/velxio-components/Esp32Element'; +import './components/velxio-components/FlipFlopElements'; +import './components/velxio-components/IC74HC595'; +import './components/velxio-components/LogicGateElements'; +import './components/velxio-components/LogicICElements'; +import './components/velxio-components/MotorDriverElements'; +import './components/velxio-components/OpAmpElements'; +import './components/velxio-components/PiPicoWElement'; +import './components/velxio-components/PowerElements'; +import './components/velxio-components/RaspberryPi3Element'; +import './components/velxio-components/RaspberryPi4Element'; +import './components/velxio-components/RaspberryPi5Element'; +import './components/velxio-components/RelayElements'; +import './components/velxio-components/Ssd1306I2cElement'; +import './components/velxio-components/Stm32BluePillElement'; +import './components/velxio-components/TransistorElements';