diff --git a/.changeset/hip-buses-itch.md b/.changeset/hip-buses-itch.md new file mode 100644 index 000000000..d20551882 --- /dev/null +++ b/.changeset/hip-buses-itch.md @@ -0,0 +1,5 @@ +--- +'@lion/tabs': patch +--- + +tabs: allow to be initialized withhout children diff --git a/packages/tabs/src/LionTabs.js b/packages/tabs/src/LionTabs.js index c3d31391e..9be49617b 100644 --- a/packages/tabs/src/LionTabs.js +++ b/packages/tabs/src/LionTabs.js @@ -164,7 +164,7 @@ export class LionTabs extends LitElement { firstUpdated(changedProperties) { super.firstUpdated(changedProperties); this.__setupSlots(); - if (this.tabs[0].disabled) { + if (this.tabs[0]?.disabled) { this.selectedIndex = this.tabs.findIndex(tab => !tab.disabled); } } diff --git a/packages/tabs/test/lion-tabs.test.js b/packages/tabs/test/lion-tabs.test.js index 99584f952..4d0378de4 100644 --- a/packages/tabs/test/lion-tabs.test.js +++ b/packages/tabs/test/lion-tabs.test.js @@ -112,6 +112,11 @@ describe('', () => { ); expect(selectedTab.textContent).to.equal('tab 2'); }); + + it('can initially be instantiated without children', async () => { + const el = /** @type {LionTabs} */ (await fixture(html` `)); + expect(el.tabs).to.eql([]); + }); }); describe('Tabs ([slot=tab])', () => {