{"version":3,"sources":["../src/parse-quill-delta.ts"],"names":["listGrouper","tableGrouper","codeBlockGrouper","blockMerger","DEFAULT_BLOCK_ATTRIBUTES","parseDelta","applyTransformers"],"mappings":";;;;;;AAmDA,SAAS,0BAA0B,YAAA,EAAyD;AAC1F,EAAA,MAAM,YAAA,GAA8B,CAACA,6BAAA,EAAaC,8BAAA,EAAcC,kCAAgB,CAAA;AAChF,EAAA,IAAI,iBAAiB,KAAA,EAAO;AAC1B,IAAA,YAAA,CAAa,IAAA,CAAKC,6BAAA,CAAY,YAAY,CAAC,CAAA;AAAA,EAC7C;AACA,EAAA,OAAO,YAAA;AACT;AA8BO,SAAS,eAAA,CAAgB,OAAc,OAAA,EAAyC;AACrF,EAAA,MAAM,MAAA,GAAuB;AAAA,IAC3B,eAAA,EAAiB;AAAA,MACf,GAAGC,0CAAA;AAAA,MACH,GAAG,OAAA,EAAS;AAAA,KACd;AAAA,IACA,WAAA,EAAa,OAAA,EAAS,WAAA,IAAe,CAAC,OAAO;AAAA,GAC/C;AAEA,EAAA,MAAM,MAAA,GAASC,4BAAA,CAAW,KAAA,EAAO,MAAM,CAAA;AAEvC,EAAA,MAAM,YAAA,GAAe,SAAS,YAAA,IAAgB;AAAA,IAC5C,GAAG,yBAAA,CAA0B,OAAA,EAAS,WAAW,CAAA;AAAA,IACjD,GAAI,OAAA,EAAS,iBAAA,IAAqB;AAAC,GACrC;AAEA,EAAA,OAAOC,mCAAA,CAAkB,QAAQ,YAAY,CAAA;AAC/C","file":"chunk-6IFAHNOY.cjs","sourcesContent":["import { DEFAULT_BLOCK_ATTRIBUTES } from './common/default-block-attributes';\nimport type { BlockMergerConfig } from './common/transformers/block-merger';\nimport { blockMerger } from './common/transformers/block-merger';\nimport { codeBlockGrouper } from './common/transformers/code-block-grouper';\nimport { listGrouper } from './common/transformers/list-grouper';\nimport { tableGrouper } from './common/transformers/table-grouper';\nimport type { Delta, ParserConfig, TNode, Transformer } from './core/ast-types';\nimport { parseDelta } from './core/parser';\nimport { applyTransformers } from './core/transformer';\n\n/**\n * Options for {@link parseQuillDelta}.\n */\nexport interface ParseQuillDeltaOptions {\n  /**\n   * Additional block attribute handlers merged on top of the defaults.\n   * Use this to support custom block-level formats.\n   */\n  extraBlockAttributes?: ParserConfig['blockAttributes'];\n\n  /**\n   * Embed types that are block-level (rendered as standalone blocks\n   * instead of being placed inside a paragraph).\n   * @default ['video']\n   */\n  blockEmbeds?: string[];\n\n  /**\n   * Configuration for the {@link blockMerger} transformer that merges\n   * consecutive same-style blocks (paragraphs, blockquotes, headers,\n   * code blocks) into single blocks with `<br/>` separators.\n   *\n   * Pass `false` to disable the block merger entirely.\n   *\n   * @default { multiLineParagraph: true, multiLineBlockquote: true, multiLineHeader: true, multiLineCodeblock: true }\n   */\n  blockMerger?: BlockMergerConfig | false;\n\n  /**\n   * Additional transformers appended after the standard ones\n   * (listGrouper, tableGrouper, codeBlockGrouper, blockMerger).\n   */\n  extraTransformers?: Transformer[];\n\n  /**\n   * Replace the standard transformer pipeline entirely.\n   * When provided, `extraTransformers` is ignored.\n   */\n  transformers?: Transformer[];\n}\n\nfunction buildStandardTransformers(mergerConfig?: BlockMergerConfig | false): Transformer[] {\n  const transformers: Transformer[] = [listGrouper, tableGrouper, codeBlockGrouper];\n  if (mergerConfig !== false) {\n    transformers.push(blockMerger(mergerConfig));\n  }\n  return transformers;\n}\n\n/**\n * One-call convenience function: parses a Quill Delta into a fully\n * transformed AST ready for rendering.\n *\n * Bundles `DEFAULT_BLOCK_ATTRIBUTES`, `listGrouper`, `tableGrouper`,\n * `codeBlockGrouper`, and `blockMerger` so the 80% use case is a single\n * function call.\n *\n * @example\n * ```ts\n * import { parseQuillDelta } from 'quill-delta-renderer';\n * import { SemanticHtmlRenderer } from 'quill-delta-renderer/html';\n *\n * const ast = parseQuillDelta(delta);\n * const html = new SemanticHtmlRenderer().render(ast);\n * ```\n *\n * @example\n * ```ts\n * // With custom block attributes and extra transformers\n * const ast = parseQuillDelta(delta, {\n *   extraBlockAttributes: {\n *     'my-widget': (value) => ({ blockType: 'widget', blockAttrs: { widgetId: value } }),\n *   },\n *   extraTransformers: [myCustomGrouper],\n * });\n * ```\n */\nexport function parseQuillDelta(delta: Delta, options?: ParseQuillDeltaOptions): TNode {\n  const config: ParserConfig = {\n    blockAttributes: {\n      ...DEFAULT_BLOCK_ATTRIBUTES,\n      ...options?.extraBlockAttributes,\n    },\n    blockEmbeds: options?.blockEmbeds ?? ['video'],\n  };\n\n  const rawAst = parseDelta(delta, config);\n\n  const transformers = options?.transformers ?? [\n    ...buildStandardTransformers(options?.blockMerger),\n    ...(options?.extraTransformers ?? []),\n  ];\n\n  return applyTransformers(rawAst, transformers);\n}\n"]}