@@ -104,7 +104,7 @@ export class TabContainerElement extends HTMLElement {
104104 }
105105
106106 get #tabListTabWrapper( ) {
107- return this . shadowRoot ! . querySelector < HTMLSlotElement > ( 'div [part="tablist-tab-wrapper"]' ) !
107+ return this . shadowRoot ! . querySelector < HTMLSlotElement > ( 'slot [part="tablist-tab-wrapper"]' ) !
108108 }
109109
110110 get #beforeTabsSlot( ) {
@@ -165,8 +165,9 @@ export class TabContainerElement extends HTMLElement {
165165 const tabListContainer = document . createElement ( 'div' )
166166 tabListContainer . style . display = 'flex'
167167 tabListContainer . setAttribute ( 'part' , 'tablist-wrapper' )
168- const tabListTabWrapper = document . createElement ( 'div ' )
168+ const tabListTabWrapper = document . createElement ( 'slot ' )
169169 tabListTabWrapper . setAttribute ( 'part' , 'tablist-tab-wrapper' )
170+ tabListTabWrapper . setAttribute ( 'name' , 'tablist-tab-wrapper' )
170171 const tabListSlot = document . createElement ( 'slot' )
171172 tabListSlot . setAttribute ( 'part' , 'tablist' )
172173 tabListSlot . setAttribute ( 'name' , 'tablist' )
@@ -275,7 +276,14 @@ export class TabContainerElement extends HTMLElement {
275276 if ( ! this . #setupComplete) {
276277 const tabListSlot = this . #tabListSlot
277278 const customTabList = this . querySelector ( '[role=tablist]' )
278- if ( customTabList && customTabList . closest ( this . tagName ) === this ) {
279+ const customTabListWrapper = this . querySelector ( '[slot=tablist-tab-wrapper]' )
280+ if ( customTabListWrapper && customTabListWrapper . closest ( this . tagName ) === this ) {
281+ if ( manualSlotsSupported ) {
282+ tabListSlot . assign ( customTabListWrapper )
283+ } else {
284+ customTabListWrapper . setAttribute ( 'slot' , 'tablist' )
285+ }
286+ } else if ( customTabList && customTabList . closest ( this . tagName ) === this ) {
279287 if ( manualSlotsSupported ) {
280288 tabListSlot . assign ( customTabList )
281289 } else {
@@ -302,7 +310,11 @@ export class TabContainerElement extends HTMLElement {
302310 const afterSlotted : Element [ ] = [ ]
303311 let autoSlotted = beforeSlotted
304312 for ( const child of this . children ) {
305- if ( child . getAttribute ( 'role' ) === 'tab' || child . getAttribute ( 'role' ) === 'tablist' ) {
313+ if (
314+ child . getAttribute ( 'role' ) === 'tab' ||
315+ child . getAttribute ( 'role' ) === 'tablist' ||
316+ child . getAttribute ( 'slot' ) === 'tablist-tab-wrapper'
317+ ) {
306318 autoSlotted = afterTabSlotted
307319 continue
308320 }
0 commit comments