Closes: [BS-3555](https://linear.app/affine-design/issue/BS-3555/ui-attachment-loading-变量更新)
Closes: [BS-3559](https://linear.app/affine-design/issue/BS-3559/ui-图片-loading-变量更新)
### Dark
<img width="625" alt="Screenshot 2025-05-26 at 20 32 36" src="https://github.com/user-attachments/assets/93501e3d-8fc6-45f9-84a0-ac147e5c5f9f" />
### Light
<img width="623" alt="Screenshot 2025-05-26 at 20 32 25" src="https://github.com/user-attachments/assets/7d5bc128-6667-45b5-982d-dab3a22706a7" />
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Loading icons are now invoked as functions, allowing for more flexible and customizable rendering with parameters like size and progress.
- **Refactor**
- Replaced theme-dependent and static loading icon references with a unified `LoadingIcon()` component across multiple components and blocks.
- Removed legacy icon variants and simplified icon import statements, centralizing icon rendering logic.
- **Style**
- Updated styles for loading and reload buttons to use theme-aware CSS variables.
- Enlarged and repositioned loading indicators in image blocks for better visibility.
- **Bug Fixes**
- Achieved consistent loading icon rendering across various blocks and components by standardizing icon invocation.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3438](https://linear.app/affine-design/issue/BS-3438/attachment-embed-view-中的-status-组件)
Closes: [BS-3447](https://linear.app/affine-design/issue/BS-3447/触发-litportal-re-render)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a visual status indicator for embedded attachments with reload capability.
- Added a new resource status component to display error messages and reload actions.
- **Improvements**
- Enhanced attachment rendering flow with reactive state and unified embed handling.
- Simplified resource state and blob URL lifecycle management.
- Added status visibility flags for PDF and video embeds.
- **Bug Fixes**
- Improved error handling and refresh support for embedded content including PDFs, videos, and audio.
- **Style**
- Added styles for the attachment embed status indicator positioning.
- **Refactor**
- Streamlined attachment and resource controller implementations for better maintainability.
- **Tests**
- Added end-to-end test verifying PDF viewer reload and re-rendering in embed mode.
<!-- 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 -->
Related to: [BS-3143](https://linear.app/affine-design/issue/BS-3143/更新-loading-和错误样式)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a unified resource controller for managing image and attachment resources, providing improved loading, error, and state handling.
- Added a visual loading indicator overlay to image blocks for better feedback during image loading.
- **Improvements**
- Simplified and centralized image and attachment state management, reducing redundant properties and manual state tracking.
- Updated fallback UI for image blocks with clearer titles, descriptions, and improved layout.
- Enhanced batch image block creation and download handling for improved efficiency.
- Refined image block accessibility with improved alt text and streamlined rendering logic.
- Centralized target model selection for image insertion in AI actions.
- Reordered CSS declarations without affecting styling.
- Improved reactive state tracking for blob upload/download operations in mock server.
- **Bug Fixes**
- Improved cleanup of object URLs to prevent resource leaks.
- Adjusted toolbar logic to more accurately reflect available actions based on image state.
- **Tests**
- Updated end-to-end tests to match new UI text and behaviors for image loading and error states.
- **Chores**
- Refactored internal logic and updated comments for clarity and maintainability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3398](https://linear.app/affine-design/issue/BS-3398/实现资源控制器)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
## Summary by CodeRabbit
- **New Features**
- Introduced a ResourceController for centralized and reactive management of attachment resource states, improving error handling, loading indicators, and UI state resolution for attachments.
- Added public access to resource management utilities via new export paths.
- **Refactor**
- Streamlined attachment state management by replacing manual state tracking with the new ResourceController, simplifying code and enhancing maintainability.
- Updated rendering logic for attachments to use unified state objects for clearer UI feedback.
- Centralized blob URL creation and download state management within the ResourceController.
- **Chores**
- Updated dependencies and internal references to reflect the new resource management approach, ensuring consistency across packages.
<!-- 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 unified loading spinner icon that adapts to light or dark themes automatically.
- **Refactor**
- Streamlined loading icon usage across the app by replacing multiple theme-based icons with a single helper function for consistent and simplified icon management.
- **Chores**
- Removed an unused dependency to improve package management.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3379](https://linear.app/affine-design/issue/BS-3379/恢复在-loading-或错误时-attachments-的背景色)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Style**
- Updated the background color of attachment cards in loading and error states for a more consistent appearance.
- **Bug Fixes**
- Improved the handling and display of loading and uploading states for attachment cards to better reflect their current status.
- **Chores**
- Added new workspace dependencies and project references to enhance synchronization capabilities across related modules.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3359](https://linear.app/affine-design/issue/BS-3359/重构-filesizelimitservice-支持-handle-文件超出限制)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added an "Upgrade" button to attachment blocks that appears when file size limits are exceeded, enabling users to view storage plans and upgrade.
- **Refactor**
- Unified file size limit handling across attachments and images for consistency.
- Redesigned file size limit service with improved integration and dependency injection.
- **Chores**
- Updated service registrations and dependency management for file size limit enforcement.
- Integrated a new file size limit extension that triggers storage plan dialogs and tracking events on limit exceedance.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3122](https://linear.app/affine-design/issue/BS-3122/footnote-definition-adapter-适配)
Closes: [BS-3123](https://linear.app/affine-design/issue/BS-3123/几个-block-card-view-适配-footnote-态)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a new citation card component and web element for displaying citations.
- Added support for citation-style rendering in attachment, bookmark, and linked document blocks.
- Enabled citation parsing from footnote definitions in markdown for attachments, bookmarks, and linked docs.
- Added a feature flag to enable or disable citation features.
- Provided new toolbar logic to disable downloads for citation-style attachments.
- **Improvements**
- Updated block models and properties to support citation identifiers.
- Added localization and settings for the citation experimental feature.
- Enhanced markdown adapters to recognize and process citation footnotes.
- Included new constants and styles for citation card display.
- **Bug Fixes**
- Ensured readonly state is respected in block interactions and rendering for citation blocks.
- **Documentation**
- Added exports and effects for new citation components and features.
- **Tests**
- Updated snapshots to include citation-related properties in block data.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Closes: [BS-3143](https://linear.app/affine-design/issue/BS-3143/更新-attachment-错误样式)
Closes: [BS-3341](https://linear.app/affine-design/issue/BS-3341/attachment-select状态ui调整)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Improved attachment block with unified reactive state handling for loading, errors, and downloads.
- Enhanced card layouts with modular rendering and dynamic buttons based on state.
- **Bug Fixes**
- Fixed UI state for "Embed view" action, now correctly disabled when not embedded.
- Resolved attachment card styling issues and text overflow with new utility classes.
- **Refactor**
- Streamlined attachment block rendering and state management for better performance and maintainability.
- Updated toolbar configuration for consistent parameter naming.
- Simplified embedded and open methods for improved clarity.
- Made internal functions private to reduce exported API surface.
- **Chores**
- Removed unused icon export and legacy upload tracking functions.
- Updated attachment utilities to use reactive state, added data refresh, and improved error handling.
- Refined image dimension handling for consistent resizing behavior.
- Improved test selectors to target focused attachment containers for better reliability.
- Refactored CSS to separate container and card styling and adopt theme-based colors consistently.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->