Mixins / foldkit-mixins-ui

Kbd

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

export * as Kbd from './kbd.js'

In the guides

Members

Kbd.KbdSlots

const · packages/mixins-ui/src/kbd.ts:9

const KbdSlots: Slots.Contract<{
  readonly key: Slot.UnnamedSlot<
    Capability.Capability<
      'Container',
      readonly [
        Capability.Capability<
          'Interactive',
          readonly [Capability.Capability<'Base', readonly []>]
        >,
      ]
    >,
    readonly Slot.EventName[],
    readonly Slot.AttributeName[],
    readonly Slot.RequirementName[],
    boolean
  >
}>

A keyboard key publishes one slot; it owns no state, messages, or bundles. It names the key to press, never an action: pair it with words.

Kbd.KbdView

interface · packages/mixins-ui/src/kbd.ts:17

interface KbdView<Message = never> {
  readonly key: string
  readonly style?: NamedStyle<typeof KbdSlots> | undefined
  readonly mixins?: MixinList<Message> | undefined
}

A key in one call: the key it names, a style for its slot, and mixins beside the style. No upstream component stands behind it.

Kbd.view

function · packages/mixins-ui/src/kbd.ts:25

function view<Message = never>(
  options: KbdView<Message>,
  h: HtmlBuilder<Message>,
): Html