Mixins / foldkit-mixins-ui

Disclosure

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

export * as Disclosure from './disclosure.js'

Members

Disclosure.DisclosureSlots

const · packages/mixins-ui/src/disclosure.ts:6

const DisclosureSlots: Slots.Contract<{
  readonly button: Slot.UnnamedSlot<
    Capability.Capability<
      'Interactive',
      readonly [Capability.Capability<'Base', readonly []>]
    >,
    readonly [Event.EventToken<'click'>],
    readonly [
      Attr.AttrToken<'role'>,
      Attr.AttrToken<'aria-expanded'>,
      Attr.AttrToken<'aria-disabled'>,
      Attr.AttrToken<'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 Slot.AttributeName[],
    readonly Slot.RequirementName[],
    boolean
  >
}>

Disclosure.resolve

function · packages/mixins-ui/src/disclosure.ts:23

function resolve<Input, Message>(
  attributes: DisclosureAttributes<Message>,
  mixins: MixinList<Message>,
  context: ResolveContext<Input, Message>,
): ResolvedDisclosure<Message>

animatePanel is not an attribute bundle, so it passes through unchanged.

Disclosure.ResolvedDisclosure

type · packages/mixins-ui/src/disclosure.ts:16

type ResolvedDisclosure<Message> = Resolved<
  DisclosureAttributes<Message>,
  typeof DisclosureSlots,
  Message
>

The disclosure's bundles with the attached Mixins applied.

Disclosure.toView

function · packages/mixins-ui/src/disclosure.ts:30

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

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