Skip to content

Headless Source File Reference (Developer)

Headless Source File Reference (Developer)

Section titled “Headless Source File Reference (Developer)”

This is the canonical per-file reference for packages/headless.

FilePurpose
packages/headless/package.jsonPackage metadata, exports, scripts, peer dependencies (lexical, @lexical/*, react, react-dom) and optional dependency (highlight.js).
packages/headless/tsup.config.tsBuild output configuration for ESM package artifacts and declarations.
packages/headless/tsconfig.jsonTypeScript settings for package compilation and editor diagnostics.
packages/headless/eslint.config.jsLinting rules for package source quality and consistency.
packages/headless/src/index.tsTop-level barrel that re-exports core, extensions, and utils.
FileWhat it does
src/core/createEditorSystem.tsxCreates typed Provider and useEditor; aggregates extension commands, state queries, nodes, plugins, lifecycle hooks, and import/export APIs.
src/core/createExtension.tsFunctional extension factory that builds extension instances without class inheritance boilerplate.
src/core/index.tsRe-exports runtime, theme helpers, and core types.
src/core/theme.tsDefines LuthorTheme, default theme object, theme merge helper, and runtime shape guard.
src/core/types.tsCore-side type contracts and compatibility exports for editor config/context typing.
FileWhat it does
src/extensions/types.tsCanonical extension generics and extract-utility types for typed command/state composition.
src/extensions/index.tsMaster barrel for all extension categories.
FileWhat it does
src/extensions/base/BaseExtension.tsAbstract extension base class with configurable defaults and extension lifecycle hooks.
src/extensions/base/TextFormatExtension.tsShared implementation for text-format toggles and active-state queries (bold/italic/etc.).
src/extensions/base/index.tsBarrel exports for base extension primitives.
FileWhat it does
src/extensions/core/CommandPaletteExtension.tsxRegisters executable command palette items, command registry state, and execution helpers.
src/extensions/core/ContextMenuExtension.tsxHeadless context-menu provider/renderer system with portal-based rendering.
src/extensions/core/DraggableBlockExtension.tsxImplements draggable block handles, drop indicators, and block-move commands.
src/extensions/core/EmojiExtension.tsxEmoji insertion and emoji picker/suggestion command/state surface.
src/extensions/core/EnterKeyBehaviorExtension.tsOverrides Enter behavior contextually for code blocks, quotes, and tables.
src/extensions/core/FloatingToolbarExtension.tsxSelection-anchored floating toolbar framework and state model.
src/extensions/core/HistoryExtension.tsxUndo/redo integration via Lexical history plugin and typed commands.
src/extensions/core/RichTextExtension.tsxBaseline rich text plugin wiring, content editable, placeholder, and error boundary behavior.
src/extensions/core/SlashCommandExtension.tsxSlash-trigger command menu registration and execution flow.
src/extensions/core/TabIndentExtension.tsxTab / Shift+Tab indent-outdent handling for relevant node contexts.
src/extensions/core/index.tsBarrel for all core UX extensions and related types.
FileWhat it does
src/extensions/custom/CustomNodeExtension.tsxFactory for custom DecoratorNode-based extensions with React rendering hooks.
src/extensions/custom/index.tsBarrel for custom extension APIs.

Formatting Extensions (src/extensions/formatting)

Section titled “Formatting Extensions (src/extensions/formatting)”
FileWhat it does
src/extensions/formatting/BlockFormatExtension.tsxHeading/paragraph/quote toggles and text alignment commands/state.
src/extensions/formatting/BoldExtension.tsxBold text format specialization.
src/extensions/formatting/CodeExtension.tsxBlock code-node support, highlighting integration, and code block command behaviors.
src/extensions/formatting/CodeFormatExtension.tsxInline code text-format specialization.
src/extensions/formatting/CodeIntelligenceExtension.tsLanguage-aware code-block helpers (detection, language controls, markdown shortcuts).
src/extensions/formatting/FontFamilyExtension.tsxWhitelisted font-family options with command/query APIs and CSS loading strategies.
src/extensions/formatting/FontSizeExtension.tsxWhitelisted font-size options with command/query APIs.
src/extensions/formatting/HorizontalRuleExtension.tsxHorizontal-rule insertion and markdown transformer integration.
src/extensions/formatting/ItalicExtension.tsxItalic text format specialization.
src/extensions/formatting/LineHeightExtension.tsxWhitelisted line-height options with command/query APIs.
src/extensions/formatting/LinkExtension.tsxLink insertion/removal, validation, and optional autolink/paste behavior.
src/extensions/formatting/ListExtension.tsxOrdered, unordered, and checklist commands/state with list node integration.
src/extensions/formatting/StrikethroughExtension.tsxStrikethrough text format specialization.
src/extensions/formatting/SubscriptExtension.tsxSubscript text format specialization.
src/extensions/formatting/SuperscriptExtension.tsxSuperscript text format specialization.
src/extensions/formatting/TableExtension.tsxRich table operations (rows/cols/headers/merge) and optional contextual table UI.
src/extensions/formatting/TextColorExtension.tsxWhitelisted text-color options with command/query APIs.
src/extensions/formatting/TextHighlightExtension.tsxWhitelisted text-highlight options with command/query APIs.
src/extensions/formatting/UnderlineExtension.tsxUnderline text format specialization and markdown transformer support.
src/extensions/formatting/index.tsBarrel exports for formatting extensions and related configuration types.
FileWhat it does
src/extensions/media/types.tsShared media model types (alignment, payloads, image extension contracts).
src/extensions/media/ImageTranslator.tsSerialization and DOM translation utilities for image nodes.
src/extensions/media/ImageExtension.tsxImage node, insert/update commands, upload integration, markdown transformer, selection UX.
src/extensions/media/IframeEmbedExtension.tsxGeneric iframe embed node and command/state APIs with validation and sizing controls.
src/extensions/media/YouTubeEmbedExtension.tsxYouTube-specific embed node, URL parsing, and player option handling.
src/extensions/media/index.tsBarrel for media extension surface.
FileWhat it does
src/utils/index.tsUtility barrel for package-level helper exports.
  • Keep this document updated whenever files are added, removed, renamed, or significantly repurposed.
  • Any new extension file must document: commands, state queries, config shape, and integration dependencies.