Mixins / foldkit-mixins-ui

Select

namespace · packages/mixins-ui/src/select.ts:1

export * as Select from './select.js'

In the guides

Members

Select.resolve

function · packages/mixins-ui/src/select.ts:29

function resolve<Input, Message>(
  attributes: SelectAttributes<Message>,
  mixins: MixinList<Message>,
  context: ResolveContext<Input, Message>,
): ResolvedSelect<Message>

Applies mixins to the select's bundles.

Select.ResolvedSelect

type · packages/mixins-ui/src/select.ts:22

type ResolvedSelect<Message> = Resolved<
  SelectAttributes<Message>,
  typeof SelectSlots,
  Message
>

The select's bundles with the attached Mixins applied.

Select.SelectSlots

const · packages/mixins-ui/src/select.ts:11

const SelectSlots: Slots.Contract<{
  readonly select: Slot.UnnamedSlot<
    Capability.Capability<
      'Interactive',
      readonly [Capability.Capability<'Base', readonly []>]
    >,
    readonly [Event.EventToken<'change'>],
    readonly [
      Attr.AttrToken<'aria-label'>,
      Attr.AttrToken<'aria-invalid'>,
      Attr.AttrToken<'disabled'>,
      Attr.AttrToken<'value'>,
    ],
    readonly Slot.RequirementName[],
    boolean
  >
  readonly label: 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 description: Slot.UnnamedSlot<
    Capability.Capability<
      'Container',
      readonly [
        Capability.Capability<
          'Interactive',
          readonly [Capability.Capability<'Base', readonly []>]
        >,
      ]
    >,
    readonly Slot.EventName[],
    readonly Slot.AttributeName[],
    readonly Slot.RequirementName[],
    boolean
  >
}>

The base bundle installs OnChange only when onChange is configured and the control is enabled, so a Behavior that adds its own handler is a conflict rather than a second silent owner.

Select.toView

function · packages/mixins-ui/src/select.ts:36

function toView<Message>(
  mixins: MixinList<Message>,
  context: ResolveContext<unknown, Message>,
  draw: (resolved: ResolvedSelect<Message>) => Html,
): (attributes: SelectAttributes<Message>) => Html

The select's toView: draw receives its bundles with mixins applied.