Elements

参考

提及 Mentions

Mentions:提及建议。候选内容显示为浮动卡片。锚点是虚拟的,来自宿主输入框的实时矩形,因此宿主可以保留自己的结构(textarea 放在宿主指定的位置),卡片仍指向正确位置。检测状态通过 `useMentions` 与宿主共享。

Option · Popup · Root · Textarea

#MentionsVessel

Mentions:提及建议。候选内容显示为浮动卡片。锚点是虚拟的,来自宿主输入框的实时矩形,因此宿主可以保留自己的结构(textarea 放在宿主指定的位置),卡片仍指向正确位置。检测状态通过 useMentions 与宿主共享。

属性类型默认值描述
openBooleanfalse—
matchesArray as PropType<MentionEntry[]>() => []—
activeNumber0—
anchorObject as PropType<HTMLTextAreaElement | null>null—
sizeString as PropType<"sm" | "md" | "lg">"md"宿主输入框的尺寸档位,让选项行与输入框保持一致
事件载荷
insert(_entry: MentionEntry) => true
update:active(_index: number) => true
update:open(_open: boolean) => true

#Mentions

@ 提及组件基于普通 textarea:当插入符前的文本以触发字符和已输入片段结尾时,会在锚定容器中显示匹配候选;选择候选后,片段会替换为 trigger + label,并通过 update:modelValue 返回整段文本,方向键移动候选,Enter 插入,Escape 关闭。输入框复用 Field.Textarea,自动获得字段能力(label id、invalid 状态、autoresize);候选容器通过弹出层状态机锚定到整个字段而不是插入符坐标,因为常见字段尺寸下按插入符定位需要第二套定位系统,收益有限;保留自定义输入结构的组件(如 AI 提示输入)可不用这层外壳,直接接入 useMentions 和 MentionsVessel。

属性类型默认值描述
itemsArray as PropType<MentionEntry[]>() => []—
modelValueStringundefined—
triggerString"@"—
placeholderStringundefined—
autoresizeBooleanfalse—
invalidBooleanfalse—
sizeString as PropType<"sm" | "md" | "lg">"md"输入框使用的控件高度档位