### TL:DR
fix: cannot input space at the beginning of a blank paragraph
> CLOSE BS-3427
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Improved space key handling in the editor: pressing space on an empty AI input now hides the AI panel and inserts a space character back into the editor.
- **Bug Fixes**
- Prevented the AI panel from processing empty input when space is pressed, ensuring smoother user experience.
- **Tests**
- Added an end-to-end test verifying that pressing space on an empty AI input hides the AI panel and inserts a space.
- **Refactor**
- Streamlined event handling logic for space key detection in the editor.
- **Chores**
- Enhanced editor content retrieval to optionally preserve whitespace while removing invisible characters.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
### TL;DR
Refactor space-triggered AI Widget activation logic from `keydown` to `keypress` event listeners
### Background
The `keydown` event triggered by a space may originate from:
1. Normal space insertion
2. Space triggered by input method confirming candidate words
In scenarios like (2), some browsers (see [ISSUE](https://github.com/toeverything/AFFiNE/issues/11541)) and input method callbacks produce events identical to scenario (1),making it impossible to distinguish between the two.
To fix this, the space-activated AI listener uses the `keypress` event:
In scenario 2, `event.which !== 32` (may be `30430` or other values) can be used to differentiate from scenario 1.
> CLOSE BS-3081