diff --git a/tabs/internal/tab.ts b/tabs/internal/tab.ts index b7731dd3c..579c18422 100644 --- a/tabs/internal/tab.ts +++ b/tabs/internal/tab.ts @@ -35,6 +35,13 @@ export class Tab extends LitElement { setupHostAria(Tab); } + /** + * Indicates that the element is a tab for ``. Useful when + * clients implement their own custom `md-tab` components. + * @nocollapse + */ + static readonly isTab = true; + /** * Whether or not the tab is selected. **/ diff --git a/tabs/internal/tabs.ts b/tabs/internal/tabs.ts index 8fa166689..be45d7b28 100644 --- a/tabs/internal/tabs.ts +++ b/tabs/internal/tabs.ts @@ -307,5 +307,6 @@ export class Tabs extends LitElement { } function isTab(element: unknown): element is Tab { - return element instanceof Tab; + if (!element) return false; + return 'isTab' in element.constructor && element.constructor.isTab === true; }