|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to this project will be documented in this file. |
| 4 | + |
| 5 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), |
| 6 | +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 7 | + |
| 8 | +## [1.0.0] - 2026-01-25 |
| 9 | + |
| 10 | +### Added |
| 11 | + |
| 12 | +#### Core Editor (`@labbs/openblock-core`) |
| 13 | +- **Public ProseMirror API** - Full access to ProseMirror internals via `editor.pm.*` |
| 14 | +- **Block-based JSON document format** - Notion-like structure with full TypeScript support |
| 15 | +- **Schema System** |
| 16 | + - Block nodes: paragraph, heading (h1-h6), blockquote, callout, codeBlock, divider, bulletList, orderedList, listItem, checkList, checkListItem, columnList, column, table, tableRow, tableCell, tableHeader, image, embed |
| 17 | + - Mark types: bold, italic, underline, strikethrough, code, link, textColor, backgroundColor |
| 18 | +- **Plugin System** |
| 19 | + - Slash menu plugin (`/` command palette) |
| 20 | + - Bubble menu plugin (floating toolbar) |
| 21 | + - Drag & drop plugin for block reordering |
| 22 | + - Table plugin with row/column manipulation |
| 23 | + - Media menu plugin for image/video controls |
| 24 | + - Keyboard shortcuts plugin |
| 25 | + - Input rules for auto-formatting (markdown shortcuts) |
| 26 | + - Block ID management plugin |
| 27 | + - Checklist plugin |
| 28 | + - Multi-block selection plugin |
| 29 | +- **Table Commands** - addRowAfter, addRowBefore, deleteRow, addColumnAfter, addColumnBefore, deleteColumn, deleteTable, goToNextCell, goToPreviousCell |
| 30 | +- **Document Operations** - getDocument, setDocument, getBlock, insertBlocks, updateBlock, removeBlocks |
| 31 | +- **Text Formatting Commands** - toggleBold, toggleItalic, toggleUnderline, toggleStrikethrough, toggleCode, setTextColor, setBackgroundColor |
| 32 | +- **History Support** - Undo/redo via ProseMirror history |
| 33 | +- **CSS Auto-injection** - Automatic style injection with opt-out support |
| 34 | + |
| 35 | +#### React Package (`@labbs/openblock-react`) |
| 36 | +- **Hooks** |
| 37 | + - `useOpenBlock` - Create and manage editor instances |
| 38 | + - `useEditorContent` - Subscribe to document changes |
| 39 | + - `useEditorSelection` - Track selection changes |
| 40 | + - `useEditorFocus` - Monitor focus state |
| 41 | + - `useCustomSlashMenuItems` - Generate menu items from custom blocks |
| 42 | +- **Components** |
| 43 | + - `OpenBlockView` - Main editor view component |
| 44 | + - `SlashMenu` - Command palette UI |
| 45 | + - `BubbleMenu` - Floating formatting toolbar |
| 46 | + - `TableHandles` - Row/column manipulation handles |
| 47 | + - `TableMenu` - Table cell operations menu |
| 48 | + - `MediaMenu` - Image/video controls |
| 49 | + - `ColorPicker` - Color selection UI |
| 50 | + - `LinkPopover` - Link editing popover |
| 51 | +- **Custom Blocks API** - `createReactBlockSpec` for creating React-based custom blocks |
| 52 | +- **Custom Block Hooks** - `useBlockEditor` and `useUpdateBlock` for custom block implementations |
| 53 | + |
| 54 | +### Documentation |
| 55 | +- React integration guide |
| 56 | +- Custom blocks guide |
| 57 | +- Custom marks guide |
| 58 | +- Plugins guide |
| 59 | +- Styling and theming guide |
| 60 | +- Comprehensive README with API reference |
| 61 | + |
| 62 | +--- |
| 63 | + |
| 64 | +## [0.0.1] - 2026-01-17 |
| 65 | + |
| 66 | +### Added |
| 67 | +- Initial project setup |
| 68 | +- Basic editor functionality |
| 69 | +- ProseMirror integration |
| 70 | +- React bindings foundation |
0 commit comments