<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Improved history and undo/redo management across the app by introducing a dedicated history extension. Undo/redo operations now use a more focused undo manager, resulting in clearer and more consistent behavior.
- **Documentation**
- Updated API documentation to reflect changes in history management, including revised method signatures and removal of outdated event references.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Unified internal data access by replacing all references from `doc` to `store` across all components, blocks, widgets, and utilities. This affects how readonly state, block operations, and service retrieval are handled throughout the application.
- **Tests**
- Updated all test utilities and test cases to use `store` instead of `doc` for document-related operations.
- **Chores**
- Updated context providers and property names to reflect the change from `doc` to `store` for improved consistency and maintainability.
No user-facing features or behaviors have changed.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a preview mode for code blocks, allowing users to toggle between code and rendered previews (e.g., HTML output) directly within the editor.
- Added a preview toggle button to the code block toolbar for supported languages.
- Enabled dynamic rendering of code block previews using a shared WebContainer, allowing live HTML previews in an embedded iframe.
- Added HTML preview support with loading and error states for enhanced user feedback.
- Integrated the preview feature as a view extension provider for seamless framework support.
- **Bug Fixes**
- Improved toolbar layout and button alignment for a cleaner user interface.
- **Tests**
- Added end-to-end tests to verify the new code block preview functionality and language switching behavior.
- **Chores**
- Updated development server configuration to include enhanced security headers.
- Added a new runtime dependency for WebContainer support.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Improved mobile experience by disabling certain toolbars and slash menu features on mobile devices.
- Introduced new modular extension classes for editor and view customization, enabling more flexible configuration of themes, AI features, and editor enhancements.
- Added clipboard adapter configurations for a wide range of data types, improving clipboard compatibility.
- Added a new theme extension specifically for preview scenarios.
- Provided new hooks for block scope management in document modules.
- **Refactor**
- Streamlined editor extension setup, consolidating options and reducing complexity for better maintainability.
- Reorganized mobile-specific extension exports for clearer usage.
- Refined React-to-Lit rendering API by introducing a typed alias and updating related function signatures.
- Simplified extension registration by splitting monolithic view extension into separate common and editor view extensions.
- **Bug Fixes**
- Corrected naming inconsistencies in internal effect tracking.
- **Chores**
- Updated type exports and documentation comments for improved clarity and consistency.
- Removed unused or redundant exports and functions to clean up the codebase.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Fixed compat error for new built-in template with test updated.

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added an option to enable or disable bitmap rendering in the renderer settings.
- Introduced a cooldown period after zooming before block optimization resumes, improving rendering performance and stability.
- **Bug Fixes**
- Improved handling of cases where block components may be missing, preventing potential runtime errors.
- **Tests**
- Expanded and refined tests to verify zooming behavior, bitmap caching, and internal state transitions for enhanced reliability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
### TL;DR
Refactored extension registration to follow a more modular approach by moving extensions to their respective block packages.
### What changed?
- Removed centralized registration of several extensions from `store.ts` in the main package
- Moved the following extensions to their respective block packages:
- `CodeMarkdownPreprocessorExtension` to the code block package
- `LatexMarkdownPreprocessorExtension` to the latex block package
- `EmbedIframeConfigExtensions` and `EmbedIframeService` to the embed block package
- `ImageStoreSpec` removed from central registration
- Cleaned up unused arrays and imports in the main store file
- Removed empty `defaultBlockPlainTextAdapterMatchers` array
### How to test?
1. Verify that markdown preprocessing for code and latex blocks still works correctly
2. Check that iframe embeds function properly
3. Ensure image handling continues to work as expected
4. Test import/export functionality for all affected block types
### Why make this change?
This change improves code organization by following a more modular architecture where each block package is responsible for registering its own extensions. This approach reduces coupling between packages, makes the codebase more maintainable, and follows the principle that extensions should be registered where they are defined.