CtrlK
CommunityDocumentationLog inGet started
Tessl Logo

tessl/npm-remirror--react

Hooks and components for consuming remirror with your fave framework React.

Overall
score

36%

Evaluation36%

1.09x

Agent success when using this tile

Overview
Eval results
Files

ui-components.mddocs/

UI Components

Pre-built React components for common editor functionality including formatting buttons, toolbars, and specialized UI elements.

Capabilities

Formatting Buttons

Ready-to-use buttons for text formatting operations.

/**
 * Button to toggle bold formatting
 */
interface ToggleBoldButton extends React.Component {}

/**
 * Button to toggle italic formatting
 */
interface ToggleItalicButton extends React.Component {}

/**
 * Button to toggle underline formatting
 */
interface ToggleUnderlineButton extends React.Component {}

/**
 * Button to toggle strikethrough formatting
 */
interface ToggleStrikeButton extends React.Component {}

/**
 * Button to toggle inline code formatting
 */
interface ToggleCodeButton extends React.Component {}

/**
 * Button to toggle subscript formatting
 */
interface ToggleSubscriptButton extends React.Component {}

/**
 * Button to toggle superscript formatting
 */
interface ToggleSuperscriptButton extends React.Component {}

Usage Example:

import React from 'react';
import { 
  ToggleBoldButton, 
  ToggleItalicButton, 
  ToggleUnderlineButton 
} from '@remirror/react';

function FormattingToolbar() {
  return (
    <div>
      <ToggleBoldButton />
      <ToggleItalicButton />
      <ToggleUnderlineButton />
    </div>
  );
}

Block Element Buttons

Buttons for managing block-level elements and structures.

/**
 * Button to toggle heading levels
 */
interface ToggleHeadingButton extends React.Component {}

/**
 * Button to toggle blockquote
 */
interface ToggleBlockquoteButton extends React.Component {}

/**
 * Button to toggle code block
 */
interface ToggleCodeBlockButton extends React.Component {}

/**
 * Button to toggle callout blocks
 */
interface ToggleCalloutButton extends React.Component {}

/**
 * Button to toggle whitespace display
 */
interface ToggleWhitespaceButton extends React.Component {}

List Management Buttons

Buttons for creating and managing different types of lists.

/**
 * Button to toggle bullet lists
 */
interface ToggleBulletListButton extends React.Component {}

/**
 * Button to toggle ordered lists
 */
interface ToggleOrderedListButton extends React.Component {}

/**
 * Button to toggle task lists
 */
interface ToggleTaskListButton extends React.Component {}

/**
 * Button to increase list indentation
 */
interface IncreaseIndentButton extends React.Component {}

/**
 * Button to decrease list indentation
 */
interface DecreaseIndentButton extends React.Component {}

Text Alignment Buttons

Buttons for controlling text alignment.

/**
 * Button to left align text
 */
interface LeftAlignButton extends React.Component {}

/**
 * Button to center align text
 */
interface CenterAlignButton extends React.Component {}

/**
 * Button to right align text
 */
interface RightAlignButton extends React.Component {}

/**
 * Button to justify align text
 */
interface JustifyAlignButton extends React.Component {}

Content Insertion Buttons

Buttons for inserting various content types.

/**
 * Button to insert horizontal rule
 */
interface InsertHorizontalRuleButton extends React.Component {}

/**
 * Button to create table
 */
interface CreateTableButton extends React.Component {}

/**
 * Button to toggle column layout
 */
interface ToggleColumnsButton extends React.Component {}

Font Size Buttons

Buttons for adjusting font size.

/**
 * Button to increase font size
 */
interface IncreaseFontSizeButton extends React.Component {}

/**
 * Button to decrease font size
 */
interface DecreaseFontSizeButton extends React.Component {}

History Buttons

Buttons for undo/redo operations.

/**
 * Button to undo last action
 */
interface UndoButton extends React.Component {}

/**
 * Button to redo last action
 */
interface RedoButton extends React.Component {}

Data Transfer Buttons

Buttons for clipboard operations.

/**
 * Button to copy content
 */
interface CopyButton extends React.Component {}

/**
 * Button to cut content
 */
interface CutButton extends React.Component {}

/**
 * Button to paste content
 */
interface PasteButton extends React.Component {}

Generic Buttons

General-purpose button components.

/**
 * Generic command button
 */
interface CommandButton extends React.Component {}

/**
 * Dropdown button component
 */
interface DropdownButton extends React.Component {}

Button Groups

Pre-configured groups of related buttons for common use cases.

/**
 * Basic formatting buttons (bold, italic, underline)
 */
interface BasicFormattingButtonGroup extends React.Component {}

/**
 * Extended formatting buttons
 */
interface FormattingButtonGroup extends React.Component {}

/**
 * List-related buttons
 */
interface ListButtonGroup extends React.Component {}

/**
 * Heading level buttons
 */
interface HeadingLevelButtonGroup extends React.Component {}

/**
 * Text alignment buttons
 */
interface TextAlignmentButtonGroup extends React.Component {}

/**
 * Undo/redo buttons
 */
interface HistoryButtonGroup extends React.Component {}

/**
 * Copy/cut/paste buttons
 */
interface DataTransferButtonGroup extends React.Component {}

/**
 * Indentation buttons
 */
interface IndentationButtonGroup extends React.Component {}

/**
 * Callout type buttons
 */
interface CalloutTypeButtonGroup extends React.Component {}

/**
 * Command button group
 */
interface CommandButtonGroup extends React.Component {}

/**
 * Baseline button group
 */
interface BaselineButtonGroup extends React.Component {}

Usage Example:

import React from 'react';
import { 
  BasicFormattingButtonGroup, 
  ListButtonGroup, 
  HistoryButtonGroup 
} from '@remirror/react';

function CompactToolbar() {
  return (
    <div>
      <BasicFormattingButtonGroup />
      <ListButtonGroup />
      <HistoryButtonGroup />
    </div>
  );
}

Menu Components

Interactive menu components for various editor functions.

/**
 * Command menu item
 */
interface CommandMenuItem extends React.Component {}

/**
 * Toggle callout menu item
 */
interface ToggleCalloutMenuItem extends React.Component {}

/**
 * Toggle heading menu item
 */
interface ToggleHeadingMenuItem extends React.Component {}

Toolbar Components

Complete toolbar solutions for different editor modes.

/**
 * Base toolbar component
 */
interface BaseToolbar extends React.Component {}

/**
 * Floating toolbar that appears near selection
 */
interface FloatingToolbar extends React.Component {}

/**
 * Markdown-specific toolbar
 */
interface MarkdownToolbar extends React.Component {}

/**
 * WYSIWYG toolbar
 */
interface WysiwygToolbar extends React.Component {}

/**
 * Vertical divider for toolbars
 */
interface VerticalDivider extends React.Component {}

Usage Example:

import React from 'react';
import { Remirror, useRemirror, FloatingToolbar } from '@remirror/react';

function EditorWithFloatingToolbar() {
  const { manager, state } = useRemirror({
    extensions: () => [/* your extensions */],
  });

  return (
    <Remirror manager={manager} initialContent={state}>
      <FloatingToolbar />
      {/* Toolbar will appear when text is selected */}
    </Remirror>
  );
}

Popup Components

Specialized popup components for enhanced editing features.

/**
 * Emoji picker popup
 */
interface EmojiPopupComponent extends React.Component {}

/**
 * Mention popup component
 */
interface MentionAtomPopupComponent extends React.Component {}

Floating Components

Components for floating UI elements with positioning.

/**
 * Wrapper for floating UI elements with positioning
 */
interface FloatingWrapper extends React.Component<{
  /** Child components to render */
  children: React.ReactNode;
  /** Positioning options */
  placement?: Placement;
  /** Whether to show/hide the floating element */
  enabled?: boolean;
}> {}

/**
 * Portal for rendering components into editor's positioner widget
 */
interface PositionerPortal extends React.Component<{
  /** Components to render in the portal */
  children: React.ReactNode;
  /** Positioner instance to use */
  positioner?: Positioner;
}> {}

Feature Components

Complete feature implementations as single components.

/**
 * Complete find and replace UI
 */
interface FindReplaceComponent extends React.Component<{
  /** Whether the component is visible */
  visible?: boolean;
  /** Callback when visibility changes */
  onVisibilityChange?: (visible: boolean) => void;
}> {}

Usage Example:

import React, { useState } from 'react';
import { Remirror, useRemirror, FindReplaceComponent } from '@remirror/react';

function EditorWithFindReplace() {
  const [showFindReplace, setShowFindReplace] = useState(false);
  const { manager, state } = useRemirror({
    extensions: () => [/* your extensions */],
  });

  return (
    <div>
      <button onClick={() => setShowFindReplace(true)}>
        Find & Replace
      </button>
      <Remirror manager={manager} initialContent={state}>
        <FindReplaceComponent 
          visible={showFindReplace}
          onVisibilityChange={setShowFindReplace}
        />
      </Remirror>
    </div>
  );
}

Provider Components

Context providers for theming and configuration.

/**
 * Theme context provider for styling components
 */
interface ThemeProvider extends React.Component<{
  /** Theme configuration object */
  theme?: Theme;
  /** Child components */
  children: React.ReactNode;
}> {}

interface Theme {
  /** Color scheme */
  colors?: Record<string, string>;
  /** Typography settings */
  typography?: Record<string, string | number>;
  /** Component-specific styles */
  components?: Record<string, any>;
}

Icon System

Icon components and utilities for consistent iconography.

/**
 * Base icon component and icon system utilities
 * Includes various predefined icons for editor actions
 */
interface IconSystem {
  /** Base icon component */
  Icon: React.ComponentType<{
    name: string;
    size?: number;
    color?: string;
  }>;
  /** Icon registration utilities */
  registerIcon: (name: string, component: React.ComponentType) => void;
  /** Available icon names */
  availableIcons: string[];
}

Install with Tessl CLI

npx tessl i tessl/npm-remirror--react@2.0.0
What are skills?

docs

advanced-hooks.md

component-extensions.md

content-rendering.md

core-integration.md

editor-hooks.md

index.md

table-extensions.md

ui-components.md

utilities.md

tile.json