feat(editor): release callout (#13896)

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

* **Refactor**
* Callout is no longer gated as an experimental option — it now
consistently appears in the editor’s slash menu and toolbar where
applicable.

* **Tests**
* End-to-end slash-menu tests updated to expect the Callout item in
search results and adjusted item ordering.

* **Chores**
  * Repository ignore rules updated to exclude .kiro files.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
3720
2025-11-12 14:46:18 +08:00
committed by GitHub
parent 7e6ead4232
commit 6ec1948f62
6 changed files with 25 additions and 33 deletions
+11 -8
View File
@@ -577,9 +577,10 @@ test.describe('slash search', () => {
// search should active the first item
await type(page, 'co');
await expect(slashItems).toHaveCount(3);
await expect(slashItems).toHaveCount(4);
await expect(slashItems.nth(0).locator('.text')).toHaveText(['Copy']);
await expect(slashItems.nth(1).locator('.text')).toHaveText(['Code Block']);
await expect(slashItems.nth(2).locator('.text')).toHaveText(['Callout']);
await expect(slashItems.nth(0)).toHaveAttribute('hover', 'true');
await type(page, 'p');
@@ -588,9 +589,10 @@ test.describe('slash search', () => {
// assert backspace works
await pressBackspace(page);
await expect(slashItems).toHaveCount(3);
await expect(slashItems).toHaveCount(4);
await expect(slashItems.nth(0).locator('.text')).toHaveText(['Copy']);
await expect(slashItems.nth(1).locator('.text')).toHaveText(['Code Block']);
await expect(slashItems.nth(2).locator('.text')).toHaveText(['Callout']);
await expect(slashItems.nth(0)).toHaveAttribute('hover', 'true');
});
@@ -606,14 +608,15 @@ test.describe('slash search', () => {
await expect(slashMenu).toBeVisible();
await type(page, 'c');
await expect(slashItems).toHaveCount(9);
await expect(slashItems).toHaveCount(10);
await expect(slashItems.nth(0).locator('.text')).toHaveText(['Copy']);
await expect(slashItems.nth(1).locator('.text')).toHaveText(['Italic']);
await expect(slashItems.nth(2).locator('.text')).toHaveText(['New Doc']);
await expect(slashItems.nth(3).locator('.text')).toHaveText(['Duplicate']);
await expect(slashItems.nth(4).locator('.text')).toHaveText(['Code Block']);
await expect(slashItems.nth(5).locator('.text')).toHaveText(['Linked Doc']);
await expect(slashItems.nth(6).locator('.text')).toHaveText(['Attachment']);
await expect(slashItems.nth(2).locator('.text')).toHaveText(['Callout']);
await expect(slashItems.nth(3).locator('.text')).toHaveText(['New Doc']);
await expect(slashItems.nth(4).locator('.text')).toHaveText(['Duplicate']);
await expect(slashItems.nth(5).locator('.text')).toHaveText(['Code Block']);
await expect(slashItems.nth(6).locator('.text')).toHaveText(['Linked Doc']);
await expect(slashItems.nth(7).locator('.text')).toHaveText(['Attachment']);
await type(page, 'b');
await expect(slashItems.nth(0).locator('.text')).toHaveText(['Code Block']);
});