import { compose as atCompose } from "./attachment/compose"; import { fragmentFactoryFactory, markFactoryFactory, nodeFactoryFactory, RefsNode } from "./composing"; import { HeadingAttrs, LinkAttr, schema } from "./schema"; export const compose = { doc: nodeFactoryFactory(schema.nodes.doc), at: atCompose, p: nodeFactoryFactory(schema.nodes.p), ul: nodeFactoryFactory(schema.nodes.ul), ol: nodeFactoryFactory(schema.nodes.ol), li: nodeFactoryFactory(schema.nodes.li), hr: nodeFactoryFactory(schema.nodes.hr), bq: nodeFactoryFactory(schema.nodes.bq), tbl: nodeFactoryFactory(schema.nodes.tbl), tr: nodeFactoryFactory(schema.nodes.tr), td: nodeFactoryFactory(schema.nodes.td), th: nodeFactoryFactory(schema.nodes.th), h1: nodeFactoryFactory(schema.nodes.h, { l: 1 } as HeadingAttrs), h2: nodeFactoryFactory(schema.nodes.h, { l: 2 } as HeadingAttrs), br: nodeFactoryFactory(schema.nodes.br), text: (text: string) => new RefsNode(schema.text(text), new Map()), a: (url: string, title?: string) => markFactoryFactory(schema.marks.l, { [LinkAttr.URL]: url, [LinkAttr.TITLE]: title }), b: markFactoryFactory(schema.marks.b), i: markFactoryFactory(schema.marks.i), s: markFactoryFactory(schema.marks.s), u: markFactoryFactory(schema.marks.u), fragment: fragmentFactoryFactory(schema) };