Rules for working in packages/shared-components, a Stencil.js Web Component library.
.tsx, onto-* tags, @State/@Prop, ServiceProvider, SubscriptionList.npm run generate..tsx files using JSX-based render() methods.@Component({ tag: 'onto-*' }) — all tags are prefixed onto-.@State() for reactive internal state and @Prop() for inputs.ServiceProvider.get(ServiceClass) / service() (no Angular DI — see architecture).SubscriptionList in connectedCallback / disconnectedCallback.on<Event> (onMouseOver, onMouseLeave) and make it a class method.@State or the model and let Stencil re-render. Never add a dummy state field to
force a render.innerHTML is only for sanitized translations and static SVG.Reference example: packages/shared-components/src/components/onto-header/onto-header.tsx
Run inside packages/shared-components:
npm run generate