Mixins / foldkit-mixins-ui

ThinkingIndicator

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

export * as ThinkingIndicator from './thinkingIndicator.js'

In the guides

Members

ThinkingIndicator.ThinkingIndicatorSlots

const · packages/mixins-ui/src/thinkingIndicator.ts:13

const ThinkingIndicatorSlots: Slots.Contract<{ readonly root: 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 mark: 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 dot: 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 icon: 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 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 detail: Slot.UnnamedSlot<Capability.Capability<"Container", readonly [Capability.Capability<"Interactive" …;

An assistant at work, as ChatGPT's and Claude's "Thinking…": a mark (three dots, or the view's own icon), the words, and a second line saying what it is doing. The root is a polite status drawn always: with active false it is an empty region, so it is in the page before it speaks, and the words that arrive in it are announced. The mark is hidden from assistive technology; the words carry the status. It owns no state or messages.

ThinkingIndicator.ThinkingIndicatorView

interface · packages/mixins-ui/src/thinkingIndicator.ts:23

interface ThinkingIndicatorView<Message = never> {
  readonly label?: string | undefined
  readonly detail?: string | undefined
  readonly active?: boolean | undefined
  readonly icon?: Html | undefined
  readonly style?: NamedStyle<typeof ThinkingIndicatorSlots> | undefined
  readonly mixins?: MixinList<Message> | undefined
}

ThinkingIndicator.view

function · packages/mixins-ui/src/thinkingIndicator.ts:43

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