I logged an issue but, it also seems likely it's just something I'm doing wrong ..
I have a component (CoolComponent or <cool-component>) that I have defined inside a library and that is derived from another component (BaseComponent or <base-component>).
CoolComponent.vue looks like:
<template>
<div class="cool-component">
<BaseComponent message="This is the message">
<template v-slot:something>
This is something!!
</template>
</BaseComponent>
</div>
</template>
The problem is that when I use a <cool-component> component in a project, only the items inside the CoolComponent class are rendered. The BaseComponent component is rendered as a literal tag (<basecomponent> - no hyphen). I am assuming that because it's translating to <basecomponent> that Vue doesn't know how to render the base component.
The console contains the following warning: [Vue warn]: resolveComponent can only be used in render() or setup().
Not really sure what I've done wrong with setup or whether this is a bug.
Reproduction (repo) here: https://github.com/lukef/vue-component-repro.