{
  "name": "react-sample-sample-doc-full",
  "title": "react-sample-sample-doc-full",
  "type": "registry:component",
  "description": "",
  "registryDependencies": [],
  "dependencies": [
    "prosekit@^0.22.0"
  ],
  "files": [
    {
      "path": "registry/src/react/sample/sample-doc-full.ts",
      "type": "registry:component",
      "target": "components/editor/sample/sample-doc-full.ts",
      "content": "import type { NodeJSON } from 'prosekit/core'\n\nconst EULER_IDENTITY = String.raw`e^{i\\pi} + 1 = 0`\n\nconst GAUSSIAN_INTEGRAL = String.raw`\\int_{-\\infty}^{\\infty} e^{-x^2} \\, dx = \\sqrt{\\pi}`\n\nexport const sampleContent: NodeJSON = {\n  type: 'doc',\n  content: [\n    {\n      type: 'heading',\n      attrs: { level: 1 },\n      content: [{ type: 'text', text: 'The editor that thinks like you' }],\n    },\n    {\n      type: 'paragraph',\n      content: [\n        {\n          type: 'text',\n          text: 'Every keystroke flows naturally. Every feature appears exactly when you need it. This is ',\n        },\n        { type: 'text', marks: [{ type: 'bold' }], text: 'writing without barriers' },\n        { type: 'text', text: '.' },\n      ],\n    },\n    {\n      type: 'heading',\n      attrs: { level: 2 },\n      content: [{ type: 'text', text: 'Text that shines.' }],\n    },\n    {\n      type: 'paragraph',\n      content: [\n        { type: 'text', text: 'Make your words ' },\n        { type: 'text', marks: [{ type: 'bold' }], text: 'bold' },\n        { type: 'text', text: ', ' },\n        { type: 'text', marks: [{ type: 'italic' }], text: 'italic' },\n        { type: 'text', text: ', ' },\n        { type: 'text', marks: [{ type: 'underline' }], text: 'underlined' },\n        { type: 'text', text: ', or ' },\n        { type: 'text', marks: [{ type: 'strike' }], text: 'crossed out' },\n        { type: 'text', text: '. Add ' },\n        { type: 'text', marks: [{ type: 'code' }], text: 'inline code' },\n        { type: 'text', text: ' that stands out. Create ' },\n        {\n          type: 'text',\n          marks: [{ type: 'link', attrs: { href: 'https://prosekit.dev' } }],\n          text: 'links',\n        },\n        { type: 'text', text: ' that connect.' },\n      ],\n    },\n    {\n      type: 'paragraph',\n      content: [\n        { type: 'text', text: 'Select any text to format it. Type ' },\n        { type: 'text', marks: [{ type: 'code' }], text: '@' },\n        { type: 'text', text: ' to mention ' },\n        { type: 'mention', attrs: { id: '39', value: '@someone', kind: 'user' } },\n        { type: 'text', text: ' or ' },\n        { type: 'text', marks: [{ type: 'code' }], text: '#' },\n        { type: 'text', text: ' for ' },\n        { type: 'mention', attrs: { id: '1', value: '#topics', kind: 'tag' } },\n        { type: 'text', text: '. Press ' },\n        { type: 'text', marks: [{ type: 'code' }], text: '/' },\n        { type: 'text', text: \" and discover what's possible.\" },\n      ],\n    },\n    {\n      type: 'heading',\n      attrs: { level: 2 },\n      content: [{ type: 'text', text: 'Lists that organize.' }],\n    },\n    {\n      type: 'list',\n      attrs: { kind: 'bullet', order: null, checked: false, collapsed: false },\n      content: [\n        {\n          type: 'paragraph',\n          content: [{ type: 'text', text: 'Bullet points that guide thoughts' }],\n        },\n      ],\n    },\n    {\n      type: 'list',\n      attrs: { kind: 'bullet', order: null, checked: false, collapsed: false },\n      content: [\n        { type: 'paragraph', content: [{ type: 'text', text: 'Nested lists for complex ideas' }] },\n        {\n          type: 'list',\n          attrs: { kind: 'bullet', order: null, checked: false, collapsed: false },\n          content: [\n            { type: 'paragraph', content: [{ type: 'text', text: 'Sub-points flow naturally' }] },\n          ],\n        },\n      ],\n    },\n    {\n      type: 'list',\n      attrs: { kind: 'bullet', order: null, checked: false, collapsed: false },\n      content: [\n        { type: 'paragraph', content: [{ type: 'text', text: 'Tasks that focus' }] },\n        {\n          type: 'list',\n          attrs: { kind: 'task', order: null, checked: true, collapsed: false },\n          content: [{ type: 'paragraph', content: [{ type: 'text', text: 'Done feels good' }] }],\n        },\n        {\n          type: 'list',\n          attrs: { kind: 'task', order: null, checked: false, collapsed: false },\n          content: [{ type: 'paragraph', content: [{ type: 'text', text: 'Todo drives action' }] }],\n        },\n      ],\n    },\n    {\n      type: 'list',\n      attrs: { kind: 'ordered', order: null, checked: false, collapsed: false },\n      content: [{ type: 'paragraph', content: [{ type: 'text', text: 'Numbered steps' }] }],\n    },\n    {\n      type: 'list',\n      attrs: { kind: 'ordered', order: null, checked: false, collapsed: false },\n      content: [{ type: 'paragraph', content: [{ type: 'text', text: 'Sequential thinking' }] }],\n    },\n    {\n      type: 'list',\n      attrs: { kind: 'ordered', order: null, checked: false, collapsed: false },\n      content: [{ type: 'paragraph', content: [{ type: 'text', text: 'Clear progress' }] }],\n    },\n    {\n      type: 'heading',\n      attrs: { level: 2 },\n      content: [{ type: 'text', text: 'Code that inspires.' }],\n    },\n    {\n      type: 'codeBlock',\n      attrs: { language: 'javascript' },\n      content: [\n        {\n          type: 'text',\n          text: '// Code that reads like poetry\\nconst magic = createEditor()\\nmagic.transform(thoughts)\\n',\n        },\n      ],\n    },\n    {\n      type: 'heading',\n      attrs: { level: 2 },\n      content: [{ type: 'text', text: 'Images that captivate.' }],\n    },\n    {\n      type: 'image',\n      attrs: {\n        src: 'https://static.photos/season/320x240/107',\n      },\n    },\n    {\n      type: 'paragraph',\n      content: [{ type: 'text', text: 'Drag the handle in the bottom right corner to resize.' }],\n    },\n    {\n      type: 'heading',\n      attrs: { level: 2 },\n      content: [{ type: 'text', text: 'Tables that structure.' }],\n    },\n    {\n      type: 'table',\n      content: [\n        {\n          type: 'tableRow',\n          content: [\n            {\n              type: 'tableCell',\n              attrs: {},\n              content: [\n                {\n                  type: 'paragraph',\n                  content: [{ type: 'text', marks: [{ type: 'bold' }], text: 'Feature' }],\n                },\n              ],\n            },\n            {\n              type: 'tableCell',\n              attrs: {},\n              content: [\n                {\n                  type: 'paragraph',\n                  content: [{ type: 'text', marks: [{ type: 'bold' }], text: 'How to use' }],\n                },\n              ],\n            },\n            {\n              type: 'tableCell',\n              attrs: {},\n              content: [\n                {\n                  type: 'paragraph',\n                  content: [{ type: 'text', marks: [{ type: 'bold' }], text: 'Result' }],\n                },\n              ],\n            },\n          ],\n        },\n        {\n          type: 'tableRow',\n          content: [\n            {\n              type: 'tableCell',\n              attrs: {},\n              content: [{ type: 'paragraph', content: [{ type: 'text', text: 'Format text' }] }],\n            },\n            {\n              type: 'tableCell',\n              attrs: {},\n              content: [\n                { type: 'paragraph', content: [{ type: 'text', text: 'Select and choose' }] },\n              ],\n            },\n            {\n              type: 'tableCell',\n              attrs: {},\n              content: [\n                { type: 'paragraph', content: [{ type: 'text', text: 'Perfect styling' }] },\n              ],\n            },\n          ],\n        },\n        {\n          type: 'tableRow',\n          content: [\n            {\n              type: 'tableCell',\n              attrs: {},\n              content: [{ type: 'paragraph', content: [{ type: 'text', text: 'Add mentions' }] }],\n            },\n            {\n              type: 'tableCell',\n              attrs: {},\n              content: [\n                { type: 'paragraph', content: [{ type: 'text', text: 'Type @ and name' }] },\n              ],\n            },\n            {\n              type: 'tableCell',\n              attrs: {},\n              content: [\n                { type: 'paragraph', content: [{ type: 'text', text: 'Connected ideas' }] },\n              ],\n            },\n          ],\n        },\n        {\n          type: 'tableRow',\n          content: [\n            {\n              type: 'tableCell',\n              attrs: {},\n              content: [\n                { type: 'paragraph', content: [{ type: 'text', text: 'Insert anything' }] },\n              ],\n            },\n            {\n              type: 'tableCell',\n              attrs: {},\n              content: [\n                { type: 'paragraph', content: [{ type: 'text', text: 'Press / for menu' }] },\n              ],\n            },\n            {\n              type: 'tableCell',\n              attrs: {},\n              content: [\n                { type: 'paragraph', content: [{ type: 'text', text: 'Endless possibilities' }] },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n    {\n      type: 'heading',\n      attrs: { level: 2 },\n      content: [{ type: 'text', text: 'Math that renders.' }],\n    },\n    {\n      type: 'paragraph',\n      content: [\n        { type: 'text', text: 'Inline math like ' },\n        { type: 'mathInline', content: [{ type: 'text', text: EULER_IDENTITY }] },\n        { type: 'text', text: ' appears within text. Type ' },\n        { type: 'text', marks: [{ type: 'code' }], text: '$...$' },\n        { type: 'text', text: ' to insert an inline equation.' },\n      ],\n    },\n    {\n      type: 'mathBlock',\n      content: [{ type: 'text', text: GAUSSIAN_INTEGRAL }],\n    },\n    {\n      type: 'paragraph',\n      content: [\n        { type: 'text', text: 'Type ' },\n        { type: 'text', marks: [{ type: 'code' }], text: '$$' },\n        { type: 'text', text: ' in a new line and press Enter to create a block equation.' },\n      ],\n    },\n    {\n      type: 'heading',\n      attrs: { level: 2 },\n      content: [{ type: 'text', text: 'Quotes that inspire.' }],\n    },\n    {\n      type: 'blockquote',\n      content: [\n        {\n          type: 'paragraph',\n          content: [\n            {\n              type: 'text',\n              text: '\"This is not just an editor. This is how writing should feel.\"',\n            },\n          ],\n        },\n      ],\n    },\n    { type: 'horizontalRule' },\n    {\n      type: 'paragraph',\n      content: [{ type: 'text', text: 'Start typing. Everything else just flows.' }],\n    },\n  ],\n}\n"
    }
  ],
  "meta": {
    "hasIcons": false,
    "hidden": false,
    "story": "",
    "framework": "react",
    "accumulatedFiles": [
      "registry/src/react/sample/sample-doc-full.ts"
    ],
    "internalDependencies": []
  },
  "$schema": "https://ui.shadcn.com/schema/registry-item.json"
}
