import { FluentComponent } from '../core/fluent-component' import { createUniversalComponent } from '../core/component-factory' class FluentTabsInternal extends FluentComponent { static tag = 'fluent-tabs' static override get observedAttributes() { return ['selected'] } override connectedCallback() { super.connectedCallback() this.addEventListener('click', (e) => { const t = e.target as HTMLElement if (t.matches('.tab')) this.setAttribute('selected', t.dataset.key || '0') }) } render() { this.shadowRootRef.innerHTML = `
` } constructor() { super() this.recipe = { base: { display: 'block' }, selectors: { '.tablist': { display: 'flex', gap: '0.5rem', 'border-bottom': '1px solid var(--fluent-color-neutral-200)' }, '.tab': { padding: '0.5rem 0.75rem', background: 'transparent', border: 'none', cursor: 'pointer' }, '.tabpanel': { display: 'none', padding: '0.75rem 0' }, ':host([selected="0"]) .tabpanel[data-key="0"]': { display: 'block' }, ':host([selected="1"]) .tabpanel[data-key="1"]': { display: 'block' } } } } } export const FluentTabs = createUniversalComponent({ tag: 'fluent-tabs', class: FluentTabsInternal, events: ['change'] }) if (typeof window !== 'undefined') { if (!customElements.get(FluentTabsInternal.tag)) { customElements.define(FluentTabsInternal.tag, FluentTabsInternal) } }