/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
import{u as f,v as g}from"./DVG3NA3H.js";import"./OAOQ5BXS.js";import{E as b,F as h,G as p,H as m,S as u,g as d,h as n}from"./PGOMURMZ.js";var v={section:"section"},x={titleGroup:"title-group"},y=d`:host{display:flex;flex-direction:column;background-color:var(--calcite-tab-background-color, var(--calcite-color-transparent))}:host([bordered]){box-shadow:inset 0 1px 0 var(--calcite-tab-border-color, var(--calcite-color-border-1));background-color:var(--calcite-tab-background-color, var(--calcite-color-foreground-1))}:host([bordered]) section{border-color:var(--calcite-tab-border-color, var(--calcite-color-border-1));border-style:solid}section{display:flex;flex-grow:1;overflow:hidden;border-width:1px;border-block-start-style:solid;border-block-start-color:var(--calcite-tab-border-color, var(--calcite-color-border-1))}:host([bordered][position=bottom]){box-shadow:inset 0 1px 0 var(--calcite-tab-border-color, var(--calcite-color-border-1)),inset 0 -1px 0 var(--calcite-tab-border-color, var(--calcite-color-border-1))}:host([bordered]:not([position=bottom])) ::slotted(calcite-tab-nav){margin-block-end:-1px}:host([position=bottom]){flex-direction:column-reverse}:host([position=bottom]) section{flex-direction:column-reverse;border-block-start-width:0px;border-block-end-width:1px}:host([bordered][scale=s]) section{padding:.75rem}:host([bordered][scale=m]) section{padding:.5rem}:host([bordered][scale=l]) section{padding:1rem}:host([position=bottom]:not([bordered])) section{border-block-end-style:solid;border-block-end-color:var(--calcite-tab-border-color, var(--calcite-color-border-1))}@media(forced-colors:active){:host([bordered]) section{border-block-start-width:0px;border-block-end-width:1px}:host([position=bottom][bordered]) section{border-block-start-width:1px;border-block-end-width:0px}}:host([hidden]){display:none}[hidden]{display:none}`,c=class extends p{constructor(){super(),this.slotRef=b(),this.tabs=[],this.titles=[],this.bordered=!1,this.layout="inline",this.position="top",this.scale="m",this.listen("calciteInternalTabNavSlotChange",this.calciteInternalTabNavSlotChangeHandler)}static{this.properties={tabs:[16,{},{state:!0}],titles:[16,{},{state:!0}],bordered:[5,{},{type:Boolean}],layout:[3,{},{reflect:!0}],position:[3,{},{reflect:!0}],scale:[3,{},{reflect:!0}]}}static{this.styles=y}connectedCallback(){super.connectedCallback(),this.updateItems()}load(){this.updateItems()}willUpdate(e){(e.has("position")&&(this.hasUpdated||this.position!=="top")||e.has("scale")&&(this.hasUpdated||this.scale!=="m"))&&this.updateItems(),(e.has("titles")||e.has("tabs"))&&this.hasUpdated&&this.titles?.length>0&&this.tabs?.length>0&&(this.updateAriaSettings(),this.updateItems())}calciteInternalTabNavSlotChangeHandler(e){e.stopPropagation(),e.detail.length!==this.titles.length&&(this.titles=e.detail)}defaultSlotChangeHandler(e){this.tabs=f(e,"calcite-tab")}async updateAriaSettings(){if(await this.componentOnReady(),!this.slotRef.value)return;let e,s,r=g(this.slotRef.value,"calcite-tab");if(await Promise.all([...r,...this.titles].map(t=>t.componentOnReady())),r.some(t=>t.tab)||this.titles.some(t=>t.tab))e=r.sort((t,o)=>t.tab&&o.tab?t.tab.localeCompare(o.tab):0).map(t=>t.id),s=this.titles.sort((t,o)=>t.tab.localeCompare(o.tab)).map(t=>t.id);else{let t=await Promise.all(r.map(a=>a.getTabIndex())),o=await Promise.all(this.titles.map(a=>a.getTabIndex()));e=t.reduce((a,i,l)=>(a[i]=r[l].id,a),[]),s=o.reduce((a,i,l)=>(a[i]=this.titles[l].id,a),[])}r.forEach(t=>t._updateAriaInfo(e,s)),this.titles.forEach(t=>t._updateAriaInfo(e,s))}updateItems(){let{position:e,scale:s}=this,r=this.el.querySelector("calcite-tab-nav");r&&(r.position=e,r.scale=s),Array.from(this.el.querySelectorAll("calcite-tab")).forEach(o=>{o.parentElement===this.el&&(o.scale=s)});let t=this.el.querySelectorAll("calcite-tab-nav > calcite-tab-title");Array.from(t).forEach(o=>{o.position=e,o.scale=s})}render(){return n`<slot name=${x.titleGroup}></slot><section class=${m(v.section)}><slot @slotchange=${this.defaultSlotChangeHandler} ${h(this.slotRef)}></slot></section>`}};u("calcite-tabs",c);export{c as Tabs};
