AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Superdoc React

skill-superdoc-dev-agent-skills-superdoc-react · by superdoc-dev

React integration guidelines for SuperDoc document editor. Use when adding document editing capabilities to React or Next.js applications, working with DOCX files, or implementing collaboration features. Triggers on tasks involving document editors, DOCX handling, or SuperDoc integration.

No reviews yet
0 installs
0 views
view→install

Install

$ agentstack add skill-superdoc-dev-agent-skills-superdoc-react

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access Used
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-superdoc-dev-agent-skills-superdoc-react)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Superdoc React? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

SuperDoc React Integration

Official React wrapper for SuperDoc - the document editing and rendering library for the web. Provides component-based API with proper lifecycle management and React Strict Mode compatibility.

When to Apply

Reference these guidelines when:

  • Adding document editing to a React application
  • Integrating SuperDoc with Next.js
  • Implementing DOCX file upload/export
  • Setting up real-time collaboration
  • Building document viewers or editors

Installation

npm install @superdoc-dev/react

> superdoc is included as a dependency - no separate installation needed.

Quick Start

import { SuperDocEditor } from '@superdoc-dev/react';
import '@superdoc-dev/react/style.css';

function App() {
  return (
     console.log('Editor ready!')}
    />
  );
}

Component API

Document Props

| Prop | Type | Default | Description | |------|------|---------|-------------| | document | File \| Blob \| string \| object | required | Document to load | | documentMode | 'editing' \| 'viewing' \| 'suggesting' | 'editing' | Editing mode | | role | 'editor' \| 'viewer' \| 'suggester' | 'editor' | User permissions |

User Props

| Prop | Type | Description | |------|------|-------------| | user | { name, email?, image? } | Current user info | | users | Array | All users (for @-mentions) |

UI Props

| Prop | Type | Default | Description | |------|------|---------|-------------| | id | string | auto-generated | Custom container ID | | hideToolbar | boolean | false | Hide the toolbar | | rulers | boolean | - | Show/hide rulers | | className | string | - | CSS class for wrapper | | style | CSSProperties | - | Inline styles | | renderLoading | () => ReactNode | - | Custom loading UI |

Event Callbacks

| Prop | Type | Description | |------|------|-------------| | onReady | ({ superdoc }) => void | Editor initialized | | onEditorCreate | ({ editor }) => void | ProseMirror editor created | | onEditorDestroy | () => void | Editor destroyed | | onEditorUpdate | ({ editor }) => void | Content changed | | onContentError | (event) => void | Document parsing error | | onException | ({ error }) => void | Runtime error |

Advanced Props

| Prop | Type | Description | |------|------|-------------| | modules | object | Configure collaboration, AI, comments |

Ref API

Access SuperDoc methods via ref:

import { useRef } from 'react';
import { SuperDocEditor, SuperDocRef } from '@superdoc-dev/react';

function Editor() {
  const editorRef = useRef(null);

  const handleExport = async () => {
    await editorRef.current?.getInstance()?.export({ triggerDownload: true });
  };

  return ;
}

Available Methods

| Method | Returns | Description | |--------|---------|-------------| | getInstance() | SuperDoc \| null | Access underlying instance | | setDocumentMode(mode) | void | Change mode without rebuild | | export(options?) | Promise | Export as DOCX | | getHTML(options?) | string[] | Get document as HTML | | focus() | void | Focus the editor | | search(text) | SearchResult[] | Search document | | goToSearchResult(match) | void | Navigate to result | | setLocked(locked) | void | Lock/unlock editing | | toggleRuler() | void | Toggle ruler visibility |

Common Patterns

Document Mode Switching

The component handles documentMode prop changes efficiently without rebuilding:

function Editor() {
  const [mode, setMode] = useState('editing');

  return (
    <>
       setMode('viewing')}>View
       setMode('editing')}>Edit
      
    
  );
}

File Upload

function FileEditor() {
  const [file, setFile] = useState(null);

  return (
    <>
       setFile(e.target.files?.[0] || null)}
      />
      {file && }
    
  );
}

Loading State

 Loading...}
  onReady={() => console.log('Ready!')}
/>

View-Only Mode

With User Info

Next.js Integration

The React wrapper handles SSR automatically (renders null or renderLoading() on server, initializes after hydration).

App Router (Next.js 13+)

// app/editor/page.tsx
'use client';

import { SuperDocEditor } from '@superdoc-dev/react';
import '@superdoc-dev/react/style.css';

export default function EditorPage() {
  return (
    
  );
}

Pages Router

// pages/editor.tsx
import { SuperDocEditor } from '@superdoc-dev/react';
import '@superdoc-dev/react/style.css';

export default function EditorPage() {
  return (
    
  );
}

With Dynamic Import (Optional)

For custom loading UI during SSR:

'use client';

import dynamic from 'next/dynamic';

const SuperDocEditor = dynamic(
  () => import('@superdoc-dev/react').then(mod => mod.SuperDocEditor),
  {
    ssr: false,
    loading: () => Loading editor...
  }
);

CSS Import in Layout

Import styles once in your layout:

// app/layout.tsx
import '@superdoc-dev/react/style.css';

export default function RootLayout({ children }) {
  return (
    
      {children}
    
  );
}

Collaboration Setup

import * as Y from 'yjs';
import { WebsocketProvider } from 'y-websocket';

function CollaborativeEditor() {
  const ydoc = useMemo(() => new Y.Doc(), []);
  const provider = useMemo(
    () => new WebsocketProvider('wss://your-server.com', 'doc-id', ydoc),
    [ydoc]
  );

  return (
    
  );
}

Props That Trigger Rebuild

These props trigger a full instance rebuild when changed:

| Prop | Reason | |------|--------| | document | New document to load | | user | User identity changed | | users | Users list changed | | modules | Module configuration changed | | role | Permission level changed | | hideToolbar | Toolbar DOM structure changed |

Other props like documentMode and callbacks are handled efficiently without rebuild.

TypeScript

import type {
  SuperDocEditorProps,
  SuperDocRef,
  DocumentMode,
  UserRole,
  SuperDocUser,
  SuperDocModules,
  SuperDocConfig,
  SuperDocInstance,
} from '@superdoc-dev/react';

Types are extracted from the superdoc package, ensuring they stay in sync.

Requirements

| Requirement | Version | |-------------|---------| | React | 16.8.0+ | | Node.js | 16+ |

Examples

| Example | Description | |---------|-------------| | React + TypeScript | File upload, mode switching, export | | Next.js SSR | App Router with SSR support |

Links

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.