{"version":3,"sources":["../src/lib/BaseBasicElementsPlugin.ts","../src/lib/BaseBlockquotePlugin.ts","../src/lib/BaseHeadingPlugin.ts","../src/lib/BaseHorizontalRulePlugin.ts"],"sourcesContent":["import { createSlatePlugin } from '@udecode/plate';\n\nimport { BaseBlockquotePlugin } from './BaseBlockquotePlugin';\nimport { BaseHeadingPlugin } from './BaseHeadingPlugin';\nimport { BaseHorizontalRulePlugin } from './BaseHorizontalRulePlugin';\n\nexport const BaseBasicElementsPlugin = createSlatePlugin({\n  plugins: [BaseBlockquotePlugin, BaseHeadingPlugin, BaseHorizontalRulePlugin],\n});\n","import { createSlatePlugin, KEYS } from '@udecode/plate';\n\n/** Enables support for block quotes, useful for quotations and passages. */\nexport const BaseBlockquotePlugin = createSlatePlugin({\n  key: KEYS.blockquote,\n  node: { isElement: true },\n  parsers: {\n    html: {\n      deserializer: {\n        rules: [\n          {\n            validNodeName: 'BLOCKQUOTE',\n          },\n        ],\n      },\n    },\n  },\n  render: { as: 'blockquote' },\n});\n","import {\n  type PluginConfig,\n  type SlatePlugin,\n  createTSlatePlugin,\n} from '@udecode/plate';\n\nexport type HeadingConfig = PluginConfig<\n  'heading',\n  {\n    /** Heading levels supported from 1 to `levels` */\n    levels?: HeadingLevel | HeadingLevel[];\n  }\n>;\n\nexport type HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;\n\nexport const BaseH1Plugin = createTSlatePlugin({\n  key: 'h1',\n  node: { isElement: true },\n  parsers: { html: { deserializer: { rules: [{ validNodeName: 'H1' }] } } },\n  render: { as: 'h1' },\n}).extendTransforms(({ editor, type }) => ({\n  toggle: () => {\n    editor.tf.toggleBlock(type);\n  },\n}));\n\nexport const BaseH2Plugin = createTSlatePlugin({\n  key: 'h2',\n  node: { isElement: true },\n  parsers: { html: { deserializer: { rules: [{ validNodeName: 'H2' }] } } },\n  render: { as: 'h2' },\n}).extendTransforms(({ editor, type }) => ({\n  toggle: () => {\n    editor.tf.toggleBlock(type);\n  },\n}));\n\nexport const BaseH3Plugin = createTSlatePlugin({\n  key: 'h3',\n  node: { isElement: true },\n  parsers: { html: { deserializer: { rules: [{ validNodeName: 'H3' }] } } },\n  render: { as: 'h3' },\n}).extendTransforms(({ editor, type }) => ({\n  toggle: () => {\n    editor.tf.toggleBlock(type);\n  },\n}));\n\nexport const BaseH4Plugin = createTSlatePlugin({\n  key: 'h4',\n  node: { isElement: true },\n  parsers: { html: { deserializer: { rules: [{ validNodeName: 'H4' }] } } },\n  render: { as: 'h4' },\n}).extendTransforms(({ editor, type }) => ({\n  toggle: () => {\n    editor.tf.toggleBlock(type);\n  },\n}));\n\nexport const BaseH5Plugin = createTSlatePlugin({\n  key: 'h5',\n  node: { isElement: true },\n  parsers: { html: { deserializer: { rules: [{ validNodeName: 'H5' }] } } },\n  render: { as: 'h5' },\n}).extendTransforms(({ editor, type }) => ({\n  toggle: () => {\n    editor.tf.toggleBlock(type);\n  },\n}));\n\nexport const BaseH6Plugin = createTSlatePlugin({\n  key: 'h6',\n  node: { isElement: true },\n  parsers: { html: { deserializer: { rules: [{ validNodeName: 'H6' }] } } },\n  render: { as: 'h6' },\n}).extendTransforms(({ editor, type }) => ({\n  toggle: () => {\n    editor.tf.toggleBlock(type);\n  },\n}));\n\n/** Enables support for headings with configurable levels (from 1 to 6). */\nexport const BaseHeadingPlugin = createTSlatePlugin<HeadingConfig>({\n  key: 'heading',\n  options: {\n    levels: [1, 2, 3, 4, 5, 6],\n  },\n}).extend(({ plugin }) => {\n  const {\n    options: { levels },\n  } = plugin;\n\n  // Map of heading levels to their corresponding plugins\n  const headingPlugins = {\n    1: BaseH1Plugin,\n    2: BaseH2Plugin,\n    3: BaseH3Plugin,\n    4: BaseH4Plugin,\n    5: BaseH5Plugin,\n    6: BaseH6Plugin,\n  };\n\n  const headingLevels = Array.isArray(levels)\n    ? levels\n    : Array.from({ length: levels || 6 }, (_, i) => (i + 1) as HeadingLevel);\n\n  const plugins: SlatePlugin[] = headingLevels.map(\n    (level) => headingPlugins[level] as any\n  );\n\n  return { plugins };\n});\n","import { createSlatePlugin, KEYS } from '@udecode/plate';\n\nexport const BaseHorizontalRulePlugin = createSlatePlugin({\n  key: KEYS.hr,\n  node: { isElement: true, isVoid: true },\n  parsers: {\n    html: {\n      deserializer: {\n        rules: [\n          {\n            validNodeName: 'HR',\n          },\n        ],\n      },\n    },\n  },\n  render: { as: 'hr' },\n});\n"],"mappings":"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","names":["createSlatePlugin","createSlatePlugin","KEYS","createSlatePlugin"]}