chore: made attachment header & management sheet (#12922)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced file, image, and document attachment support in the input
box, including new UI components for managing and previewing
attachments.
- Added a searchable document picker view and a file attachment header
with interactive management options.
- Enabled an attachment management controller for viewing and deleting
attachments.
- Improved image attachment bar with horizontal scrolling and removal
functionality.
- Enhanced error handling for file attachments, providing user-facing
alerts.

- **Improvements**
  - Updated attachment menus for clearer file type indications.
- Streamlined attachment handling logic and UI updates for a smoother
user experience.

- **Bug Fixes**
- Addressed error notification by replacing console logging with user
alerts when file attachment issues occur.

- **Refactor**
- Replaced and reorganized the input box view model and attachment bar
for better modularity and maintainability.

- **Chores**
- Updated asset catalogs to include new attachment icons for various
file types.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
Lakr
2025-06-25 13:30:00 +08:00
committed by GitHub
parent aa4874a55c
commit c37df9fb94
30 changed files with 1460 additions and 409 deletions

View File

@@ -10,7 +10,7 @@ let package = Package(
.iOS(.v16),
],
products: [
.library(name: "Intelligents", targets: ["Intelligents"]),
.library(name: "Intelligents", type: .dynamic, targets: ["Intelligents"]),
],
dependencies: [
.package(path: "../AffineGraphQL"),
@@ -29,8 +29,8 @@ let package = Package(
.product(name: "Apollo", package: "apollo-ios"),
.product(name: "OrderedCollections", package: "swift-collections"),
], resources: [
.process("Resources/main.metal"),
.process("Interface/View/InputBox/InputBox.xcassets"),
.process("Interface/Controller/AttachmentManagementController/AttachmentIcon.xcassets"),
]),
]
)