Самый близкий подход к тому, что я пытался описать, может быть достигнут путем использования коллекции Mixins, которую предоставляет Elix. Они предоставляют базовый класс (ReactiveElement), который включает в себя большую часть базовых c функций, на которые опирается Elix, таких как управление состоянием и методы обновления шаблонов, однако эти функциональные возможности могут быть добавлены в виде миксинов. Так что, возможно, это решение, использующее LitElement в качестве базового класса root:
const Base = AriaListMixin(
GenericMixin(
SlotItemsMixin(
ShadowTemplateMixin(
ReactiveMixin(LitElement))))
);
@customElement('md-list')
export class List extends Base {/** all my personal prop and render needs */}