# 浮动菜单
浮动菜单指的是当用户选择一段文字时,弹出的 UI 菜单,如下图所示:

## 菜单配置
在 AIEditor 中,我们可以通过 `textSelectionBubbleMenu` 来配置浮动菜单,示例代码如下:
```typescript
new LinwitDocEditor({
element: "#aiEditor",
placeholder: "点击输入内容...",
content: 'LinwitDocEditor 是一个面向 AI 的开源富文本编辑器。 ',
textSelectionBubbleMenu: {
enable: true,
items: ["ai", "Bold", "Italic", "Underline", "Strike", "code", "comment"],
},
})
```
- **enable**: 是否启用
- **items**: 浮动菜单的菜单项(配置不区分大小写)
> 注意:以上 **items** 的 "comment" 的配置,只有 Pro 版本支持(开源版暂不支持)。
## 自定义浮动菜单
可以通过以上 **items**,只需要传入一个 `BubbleMenuItem` 配置即可,示例代码如下:
```ts
new LinwitDocEditor({
element: "#aiEditor",
placeholder: "点击输入内容...",
content: 'LinwitDocEditor 是一个面向 AI 的开源富文本编辑器。 ',
textSelectionBubbleMenu: {
enable: true,
items: ["ai", "Bold", "Italic", {
id: "visit",
title: "visit-link",
icon: "",
onClick: (editor) => {
window.open("https://aieditor.dev", "_blank")
}
}],
},
})
```
`BubbleMenuItem` 配置说明:
- **id**: 当前菜单项的 ID,全局唯一,
- **title**: 当鼠标移动上去显示的标题,支持国际化配置。国际化配置参考 [国际化](./i18n.md) 章节。
- **icon**: 菜单项的 icon 或者 html 内容。 icon 建议使用 https://remixicon.com 下的图标,已和 AIEditor 保持一致。
- **onClick**: 监听点击事件
## AI 浮动菜单 💪
AI 浮动菜单只有在 `商业Pro版` 本中进行支持,点击配置的浮动菜单后,直接弹出 AI 对话内容。
其配置如下:
```ts
new LinwitDocEditor({
element: "#aiEditor",
placeholder: "点击输入内容...",
content: 'LinwitDocEditor 是一个面向 AI 的开源富文本编辑器。 ',
textSelectionBubbleMenu: {
enable: true,
items: ["ai", "Bold", "Italic", {
id:"translate",
icon:" ",
type:"ai",
prompt:"帮我翻译以下内容为英文: {content} "
}],
},
})
```
> 注意:以上配置中,`type: "ai"` 为固定值,不能修改为其他内容,否则会和 `自定义浮动菜单` 冲突。