{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "basic-blocks-docs",
  "title": "Basic Blocks",
  "description": "Paragraphs, headings, blockquotes, and horizontal rules.",
  "files": [
    {
      "path": "../../content/docs/(plugins)/(elements)/basic-blocks.mdx",
      "content": "---\ntitle: Basic Blocks\ndescription: Paragraphs, headings, blockquotes, and horizontal rules.\ndocs:\n  - route: /docs/components/paragraph-node\n    title: Paragraph Element\n  - route: /docs/components/heading-node\n    title: Heading Element\n  - route: /docs/components/blockquote-node\n    title: Blockquote Element\n  - route: /docs/components/hr-node\n    title: Horizontal Rule Element\n---\n\nBasic Blocks is the registry kit for the common structural blocks in a Plate editor. It wires paragraphs, six heading levels, blockquotes, and horizontal rules to Plate UI components. Use the leaf docs when you need the behavior details for one block type.\n\n<Cards>\n\n<Card icon=\"heading\" title=\"Heading\" href=\"/docs/heading\">\nStructure content with H1 through H6 blocks.\n</Card>\n\n<Card icon=\"blockquote\" title=\"Blockquote\" href=\"/docs/blockquote\">\nWrap quoted or emphasized content in a blockquote.\n</Card>\n\n<Card icon=\"horizontal-rule\" title=\"Horizontal Rule\" href=\"/docs/horizontal-rule\">\nInsert a void divider between sections.\n</Card>\n\n</Cards>\n\n<ComponentPreview name=\"basic-blocks-demo\" />\n\n<PackageInfo>\n\n## Features\n\n- Paragraph, H1-H6, blockquote, and horizontal rule components.\n- Markdown shortcuts for headings, blockquotes, and horizontal rules.\n- Keyboard shortcuts for heading toggles and blockquote toggling.\n- Static rendering companion through `basic-blocks-base-kit`.\n- Leaf docs for block-specific setup and API details.\n\n</PackageInfo>\n\n## Fast Path\n\n<Steps>\n\n### Add The Kit\n\n`BasicBlocksKit` is the normal app/editor kit. It installs the React plugins and the matching registry UI components.\n\n<ComponentSource name=\"basic-blocks-kit\" />\n\n```tsx\nimport { createPlateEditor } from 'platejs/react';\n\nimport { BasicBlocksKit } from '@/components/editor/plugins/basic-blocks-kit';\n\nexport const editor = createPlateEditor({\n  plugins: BasicBlocksKit,\n});\n```\n\n### Add Static Rendering\n\nUse `BaseBasicBlocksKit` in static or server-safe rendering paths.\n\n<ComponentSource name=\"basic-blocks-base-kit\" />\n\n```tsx\nimport { createStaticEditor } from 'platejs';\n\nimport { BaseBasicBlocksKit } from '@/components/editor/plugins/basic-blocks-base-kit';\n\nconst value = [\n  {\n    children: [{ text: 'Static content' }],\n    type: 'p',\n  },\n];\n\nexport const staticEditor = createStaticEditor({\n  plugins: BaseBasicBlocksKit,\n  value,\n});\n```\n\n</Steps>\n\n## Ownership\n\n| Layer | Owner | What It Does |\n|-------|-------|--------------|\n| `platejs/react` | Package | Exports `ParagraphPlugin`. |\n| `@platejs/basic-nodes` | Package | Exports block rules and base block plugins. |\n| `@platejs/basic-nodes/react` | Package | Exports `BlockquotePlugin`, `HeadingPlugin`, `H1Plugin` through `H6Plugin`, `HorizontalRulePlugin`, and `BasicBlocksPlugin`. |\n| `basic-blocks-kit` | Registry | Adds React UI components, input rules, break rules, and shortcuts. |\n| `basic-blocks-base-kit` | Registry | Adds static UI components for static rendering. |\n| Leaf pages | Docs | Own block-specific behavior: [`Heading`](/docs/heading), [`Blockquote`](/docs/blockquote), and [`Horizontal Rule`](/docs/horizontal-rule). |\n\n`BasicBlocksPlugin` is a package-level grouping plugin. It does not install the registry UI components; use `BasicBlocksKit` when you want Plate UI rendering.\n\n## Included Plugins\n\n| Block | Plugin | Registry Component | Notes |\n|-------|--------|--------------------|-------|\n| Paragraph | `ParagraphPlugin` | `ParagraphElement` | Comes from `platejs/react`; the registry kit adds the UI component. |\n| Heading 1-6 | `H1Plugin` through `H6Plugin` | `H1Element` through `H6Element` | Each level gets a markdown rule and `mod+alt+<level>` shortcut. |\n| Blockquote | `BlockquotePlugin` | `BlockquoteElement` | Uses a wrapping transform and `mod+shift+period`. |\n| Horizontal rule | `HorizontalRulePlugin` | `HrElement` | Void block; supports dash and underscore markdown rules. |\n\n## Markdown Shortcuts\n\n| Shortcut | Result |\n|----------|--------|\n| `# ` through `###### ` | Converts the current paragraph into H1 through H6. |\n| `> ` | Wraps the current block in a blockquote. |\n| `---` | Converts the current block into a horizontal rule, then inserts a paragraph after it. |\n| `___ ` | Converts the current block into a horizontal rule, then inserts a paragraph after it. |\n\nSee [`Plugin Input Rules`](/docs/plugin-input-rules) for the rule engine and trigger model.\n\n## Manual Setup\n\nUse manual setup when you want the package plugins without the registry kit.\n\n```bash\nnpm install @platejs/basic-nodes\n```\n\n```tsx\nimport {\n  BlockquoteRules,\n  HeadingRules,\n  HorizontalRuleRules,\n} from '@platejs/basic-nodes';\nimport {\n  BlockquotePlugin,\n  H1Plugin,\n  H2Plugin,\n  H3Plugin,\n  H4Plugin,\n  H5Plugin,\n  H6Plugin,\n  HorizontalRulePlugin,\n} from '@platejs/basic-nodes/react';\nimport { createPlateEditor, ParagraphPlugin } from 'platejs/react';\n\nexport const editor = createPlateEditor({\n  plugins: [\n    ParagraphPlugin,\n    H1Plugin.configure({\n      inputRules: [HeadingRules.markdown()],\n      shortcuts: { toggle: { keys: 'mod+alt+1' } },\n    }),\n    H2Plugin.configure({\n      inputRules: [HeadingRules.markdown()],\n      shortcuts: { toggle: { keys: 'mod+alt+2' } },\n    }),\n    H3Plugin.configure({\n      inputRules: [HeadingRules.markdown()],\n      shortcuts: { toggle: { keys: 'mod+alt+3' } },\n    }),\n    H4Plugin.configure({\n      inputRules: [HeadingRules.markdown()],\n      shortcuts: { toggle: { keys: 'mod+alt+4' } },\n    }),\n    H5Plugin.configure({\n      inputRules: [HeadingRules.markdown()],\n      shortcuts: { toggle: { keys: 'mod+alt+5' } },\n    }),\n    H6Plugin.configure({\n      inputRules: [HeadingRules.markdown()],\n      shortcuts: { toggle: { keys: 'mod+alt+6' } },\n    }),\n    BlockquotePlugin.configure({\n      inputRules: [BlockquoteRules.markdown()],\n      shortcuts: { toggle: { keys: 'mod+shift+period' } },\n    }),\n    HorizontalRulePlugin.configure({\n      inputRules: [\n        HorizontalRuleRules.markdown({ variant: '-' }),\n        HorizontalRuleRules.markdown({ variant: '_' }),\n      ],\n    }),\n  ],\n});\n```\n\n## API Reference\n\n| API | Use |\n|-----|-----|\n| `BasicBlocksPlugin` | Package grouping plugin for blockquote, heading, and horizontal rule behavior. |\n| `BaseBasicBlocksPlugin` | Static/headless grouping plugin for blockquote, heading, and horizontal rule behavior. |\n| `HeadingRules.markdown()` | Creates heading input rules based on the configured H1-H6 plugin key. |\n| `BlockquoteRules.markdown()` | Creates the `> ` block-start rule. |\n| `HorizontalRuleRules.markdown({ variant })` | Creates dash or underscore thematic-break rules. |\n",
      "type": "registry:file",
      "target": "content/docs/plate/(plugins)/(elements)/basic-blocks.mdx"
    }
  ],
  "type": "registry:file"
}