Mixins / foldkit-mixins-ui
TabsSlots
const · packages/mixins-ui/src/tabs.ts:20
const TabsSlots: Slots.Contract<{
readonly tablist: Slot.UnnamedSlot<
Capability.Capability<
'Container',
readonly [
Capability.Capability<
'Interactive',
readonly [Capability.Capability<'Base', readonly []>]
>,
]
>,
readonly Slot.EventName[],
readonly [Attr.AttrToken<'role'>],
readonly Slot.RequirementName[],
boolean
>
readonly tab: Slot.UnnamedSlot<
Capability.Capability<
'Interactive',
readonly [Capability.Capability<'Base', readonly []>]
>,
readonly [Event.EventToken<'click'>],
readonly [
Attr.AttrToken<'role'>,
Attr.AttrToken<'aria-selected'>,
Attr.AttrToken<'disabled'>,
Attr.AttrToken<'aria-disabled'>,
],
readonly Slot.RequirementName[],
boolean
>
readonly panel: Slot.UnnamedSlot<
Capability.Capability<
'Container',
readonly [
Capability.Capability<
'Interactive',
readonly [Capability.Capability<'Base', readonly []>]
>,
]
>,
readonly Slot.EventName[],
readonly [Attr.AttrToken<'role'>],
readonly Slot.RequirementName[],
boolean
>
readonly indicator: Slot.UnnamedSlot<
Capability.Capability<
'Container',
readonly [
Capability.Capability<
'Interactive',
readonly [Capability.Capability<'Base', readonly []>]
>,
]
>,
readonly Slot.EventName[],
readonly Slot.AttributeName[],
readonly Slot.RequirementName[],
boolean
>
readonly highlight: Slot.UnnamedSlot<
Capability.Capability<
'Container',
readonly [
Capability.Capability<
'Interactive',
readonly [Capability.Capability<'Base', readonly []>]
>,
]
>,
readonly Slot.EventName[],
readonly Slot.AttributeName[],
readonly Slot.RequirementName[],
boolean
>
}>Tabs is a nested Submodel: one tablist group plus a tab/panel pair per
item, so the resolver runs once per group and each base ChildAttribute
bundle passes through by identity.
Enabled tabs own click through the base OnClick; a Behavior adding its
own click handler is a conflict rather than a second silent owner. Disabled
tabs publish no click, so the contract still lists it as allowed.
indicator and highlight have no upstream bundle: they are this
package's, drawn first in the tablist, for the marker under the chosen tab
and the hover that follows the pointer, which fluid moves.