Mixins / foldkit-mixins-ui

Skeleton

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

export * as Skeleton from './skeleton.js'

In the guides

Members

Skeleton.SkeletonSlots

const · packages/mixins-ui/src/skeleton.ts:10

const SkeletonSlots: Slots.Contract<{
  readonly bar: 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 loading placeholder publishes one slot; it owns no state, messages, or bundles. Stack several for multi-line content; each bar pulses on its own. The bar reports through status: what it stands in for arrives separately.

Skeleton.SkeletonView

interface · packages/mixins-ui/src/skeleton.ts:18

interface SkeletonView<Message = never> {
  readonly label?: string | undefined
  readonly style?: NamedStyle<typeof SkeletonSlots> | undefined
  readonly mixins?: MixinList<Message> | undefined
}

One shimmering bar in one call: what it stands in for, a style for its slot, and mixins beside the style. No upstream component stands behind it.

Skeleton.view

function · packages/mixins-ui/src/skeleton.ts:27

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