Composition / foldkit-mixins-builder

BuilderLike

interface · packages/mixins-builder/src/index.ts:235

interface BuilderLike {
  readonly name: string
  readonly catalog: Catalog
  readonly renderer: Renderer<any, never>
  readonly offered: ReadonlyArray<string>
  readonly document: (model: Pick<Model, 'page'>) => Document
  placeFor(
    document: Document,
    selected: Option.Option<NodeId>,
    block: string,
  ): Option.Option<Position>
  readonly patternAt: (
    document: Document,
    selected: Option.Option<NodeId>,
    pattern: string,
  ) => Option.Option<Position>
  readonly commands: ReadonlyArray<BuilderCommand>
  readonly inspecting: (
    model: Pick<Model, 'page' | 'selected' | 'inspector'>,
  ) => Option.Option<Inspecting>
  readonly keyCommand: (
    model: Pick<Model, 'page' | 'selected' | 'editing'>,
    key: string,
    modifiers: KeyboardModifiers,
  ) => Option.Option<Message>
  readonly keyPressed: (
    model: Pick<Model, 'editing'>,
    key: string,
    modifiers: KeyboardModifiers,
  ) => Option.Option<Message>
}

What BuilderView.define needs of a Builder: what Builder.make returns has all of it.

Members

BuilderLike.name

property · packages/mixins-builder/src/index.ts:236

readonly name: string

BuilderLike.catalog

property · packages/mixins-builder/src/index.ts:237

readonly catalog: Catalog

BuilderLike.renderer

property · packages/mixins-builder/src/index.ts:239

readonly renderer: Renderer<any, never>

BuilderLike.offered

property · packages/mixins-builder/src/index.ts:240

readonly offered: ReadonlyArray<string>

BuilderLike.document

property · packages/mixins-builder/src/index.ts:241

readonly document: (model: Pick<Model, 'page'>) => Document

BuilderLike.placeFor

method · packages/mixins-builder/src/index.ts:243

placeFor(
  document: Document,
  selected: Option.Option<NodeId>,
  block: string,
): Option.Option<Position>

BuilderLike.patternAt

property · packages/mixins-builder/src/index.ts:249

readonly patternAt: (
  document: Document,
  selected: Option.Option<NodeId>,
  pattern: string,
) => Option.Option<Position>

Where a pattern goes, as placeFor places its root's Block.

BuilderLike.commands

property · packages/mixins-builder/src/index.ts:255

readonly commands: ReadonlyArray<BuilderCommand>

What a key, a node's action and the toolbar run.

BuilderLike.inspecting

property · packages/mixins-builder/src/index.ts:256

readonly inspecting: (
  model: Pick<Model, 'page' | 'selected' | 'inspector'>,
) => Option.Option<Inspecting>

BuilderLike.keyCommand

property · packages/mixins-builder/src/index.ts:259

readonly keyCommand: (
  model: Pick<Model, 'page' | 'selected' | 'editing'>,
  key: string,
  modifiers: KeyboardModifiers,
) => Option.Option<Message>

BuilderLike.keyPressed

property · packages/mixins-builder/src/index.ts:264

readonly keyPressed: (
  model: Pick<Model, 'editing'>,
  key: string,
  modifiers: KeyboardModifiers,
) => Option.Option<Message>