-
-
Notifications
You must be signed in to change notification settings - Fork 998
fix(Sender): submit disabled & submit params #1472
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Note Other AI code review bot(s) detectedCodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review. 📝 WalkthroughWalkthrough在 Sender 中引入并传播提交控制信号 Changes
Sequence Diagram(s)sequenceDiagram
participant User as 用户
participant Input as TextArea / SlotTextArea
participant Sender as Sender (index.tsx)
participant ActionBtn as ActionButton
participant App as onSubmit (应用)
Note over User,Input: 用户按回车或点击发送
User->>Input: keydown / click
Input->>Sender: 读取上下文 (submitDisabled, triggerSend)
alt submitDisabled == true
Input-->>User: preventDefault(阻止提交)
else submitDisabled == false
Input->>Sender: 调用 triggerSend()
Sender->>ActionBtn: 提供 ActionButtonContext(含 setSubmitDisabled)
ActionBtn->>Sender: 通过 setSubmitDisabled 上报 merged disabled
Sender->>App: 调用 onSubmit(value, slotConfig, skill)
App-->>Sender: 返回(可触发 loading/清理)
end
Estimated code review effort🎯 3 (中等) | ⏱️ ~20-30 分钟 需要额外关注:
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary of ChangesHello @kimteayon, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request primarily fixes a bug where keyboard shortcuts for submission were not respecting the disabled state of the submit button. It introduces a new Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request addresses an issue where keyboard shortcuts for submission didn't respect the disabled state. The fix introduces a submitDisabled state that is propagated via context to the text area components. This allows for more granular control over when submission is enabled, which is also demonstrated in the new demo files. The changes are generally good, but I've identified a potential bug in ActionButton.tsx where the submitDisabled state could be incorrectly influenced by buttons other than the send button. I've also suggested some refactoring in SlotTextArea.tsx and TextArea.tsx to improve code clarity and maintainability by reducing redundant logic.
Bundle ReportChanges will increase total bundle size by 1.21MB (38.74%) ⬆️
Affected Assets, Files, and Routes:view changes for bundle: antdx-array-pushAssets Changed:
|
Deploying ant-design-x with
|
| Latest commit: |
b1ebeff
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://9c5e9685.ant-design-x.pages.dev |
| Branch Preview URL: | https://sender-disable.ant-design-x.pages.dev |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
packages/x/components/sender/TextArea.tsx (1)
43-49: 修复 TS6133 未使用变量,同时确认 submitDisabled 逻辑
- 在
onInternalKeyDown中解构了target但从未使用,正是流水线报错的 TS6133:'target' is declared but its value is never read。这是编译级错误,需要处理。- Enter 提交逻辑本身是合理的:先排除 IME 组合输入和非 Enter/外部返回
false的情况,再根据submitType与修饰键计算shouldSubmit,并用submitDisabled决定是否真正触发提交或只阻止默认行为,和SlotTextArea保持一致。建议修改如下以修复 TS 错误并保持现有行为不变:
- const onInternalKeyDown: React.KeyboardEventHandler<HTMLTextAreaElement> = (e) => { - const eventRes = onKeyDown?.(e); - const { key, target, shiftKey, ctrlKey, altKey, metaKey } = e; + const onInternalKeyDown: React.KeyboardEventHandler<HTMLTextAreaElement> = (e) => { + const eventRes = onKeyDown?.(e); + const { key, shiftKey, ctrlKey, altKey, metaKey } = e; @@ - // 处理Enter键提交 - if (key === 'Enter') { + // 处理 Enter 键提交 + if (key === 'Enter') { const isModifierPressed = ctrlKey || altKey || metaKey; const shouldSubmit = (submitType === 'enter' && !shiftKey && !isModifierPressed) || (submitType === 'shiftEnter' && shiftKey && !isModifierPressed); @@ if (shouldSubmit && submitDisabled) { e.preventDefault(); return; } }这样可以消除编译错误,同时保留本次对快捷键禁用控制的修复。
Also applies to: 114-139
🧹 Nitpick comments (9)
packages/x/components/sender/demo/send-style.md (1)
3-3: 术语更新一致,但英文表述可进一步优化。两个语言版本的术语变更(从 "actions" 改为 "suffix")已保持一致,中文表述清晰准确。英文部分虽然表达可理解,但存在冗余:
Adjust \suffix` by customizing the suffix中对 "suffix" 的重复提及可优化为更简洁的表述,例如Customize the `suffix` property或Adjust the component by customizing the `suffix`。`建议改进英文表述以提高clarity,但如果当前的说法与组件文档的整体风格保持一致,可保持原样。
Also applies to: 7-7
packages/x/components/sender/index.en-US.md (1)
28-28: 示例接入正确,可考虑微调文案示例路径和 demo 文件一致,接入方式没有问题。
从终端用户角度,“Disable Ctrl” 含义略抽象,如果更追求可读性,可以考虑改成类似 “Disable Send” / “Submit Disable Example” 这样的标题(保持文件名不变即可),但目前写法也可接受。packages/x/components/sender/demo/disable-ctrl.md (1)
1-7: 英文描述可略作润色中文 “自定义禁用发送逻辑。” 表达清晰。
英文 “Customize the disable sending logic.” 语法上能读懂,但稍显别扭,建议考虑改为:
- “Customize the logic for disabling sending.”
- 或 “Customize send disabling logic.”
只是文案层面的小优化,可选。
packages/x/components/sender/demo/disable-ctrl-slot.md (1)
1-7: slot 示例文案清楚,可顺带优化英文句式中文 “自定义禁用发送逻辑,并使用
slotConfig配置插槽。” 很清晰。
英文 “Customize the disable sending logic and configure slots withslotConfig.” 也能理解,但建议略作调整,例如:
- “Customize the logic for disabling sending and configure slots with
slotConfig.”- 或 “Customize send disabling logic and configure slots with
slotConfig.”提升一点可读性即可,非必改。
packages/x/components/sender/demo/disable-ctrl-slot.tsx (1)
43-57: 预览用的 blob URL 仅在“覆盖”时释放,删除文件时可能残留当前
onChange中会在同一个文件多次更新时,先revokeObjectURL(item.url)再创建新的 URL,这是正确的;但当用户删除文件时,对应的旧 blob URL 不会被显式revokeObjectURL,在长时间、大量上传/删除的场景下可能产生一些不必要的内存占用(虽然后者在 demo 中问题不大)。如果希望更严谨,可以在检测到文件被移除时也尝试释放 URL,例如(伪代码,需按实际
Attachments的 change 结构调整):- onChange={({ file, fileList }) => { - const updatedFileList = fileList.map((item) => { - if (item.uid === file.uid && file.status !== 'removed' && item.originFileObj) { + onChange={({ file, fileList }) => { + const updatedFileList = fileList.map((item) => { + if (item.uid === file.uid && file.status === 'removed' && item.url?.startsWith('blob:')) { + URL.revokeObjectURL(item.url); + } + + if (item.uid === file.uid && file.status !== 'removed' && item.originFileObj) { // clear URL if (item.url?.startsWith('blob:')) { URL.revokeObjectURL(item.url); } // create new preview URL return { ...item, url: URL.createObjectURL(item.originFileObj), }; } return item; });在 demo 场景可以按需要选择是否加这块逻辑。
packages/x/components/sender/SlotTextArea.tsx (1)
579-597: Enter/Shift+Enter 现在正确受 submitDisabled 控制新逻辑先计算
shouldSubmit(根据submitType+ Shift/修饰键),然后:
shouldSubmit && !submitDisabled时:阻止默认行为、触发onSubmit;shouldSubmit && submitDisabled时:只阻止默认行为,不提交。这样可以保证:
- 未禁用时,行为与之前一致;
- 禁用时,快捷键不会误触发提交,也不会插入换行。
如果产品期望“禁用提交时仍然插入换行”(而不是完全无动作),可以在
submitDisabled分支里改为不preventDefault(),这点可以根据交互稿再确认。packages/x/components/sender/components/ActionButton.tsx (1)
3-35: 通过 ActionButton 同步 disabled 到 submitDisabled 的实现是合理的
mergedDisabled综合了按钮自身disabled、Sender 根级disabled以及${action}Disabled上下文字段,作为“真实禁用态”。useEffect将mergedDisabled透传给setSubmitDisabled,从而让 Enter/Shift+Enter 的快捷键与按钮禁用态保持一致,这符合 PR 目标。需要注意的是:当前所有使用
ActionButton的动作(包括 Clear/Cancel/Speech)都会调用setSubmitDisabled。如果后续有场景只希望“发送按钮”的禁用状态影响快捷键,可以考虑在SendButton内部单独调用setSubmitDisabled,而不是在通用的ActionButton里调用(属可选优化,不影响本次修复)。packages/x/components/sender/demo/disable-ctrl.tsx (1)
8-105: 示例逻辑清晰,可考虑补充 blob URL 清理(可选)
- 通过本地
submitDisabled计算并传给<SendButton disabled={submitDisabled} />,结合内部setSubmitDisabled,可以很好地演示“无输入 & 无附件时禁用发送和快捷键”的目标场景。onChange中已经在同一个文件重新上传时对旧的blob:URL 调用了URL.revokeObjectURL,但当文件被移除或组件卸载时,仍可能残留一些 blob URL。如果希望示例更完整,可以在组件卸载或
items变化时统一清理所有blob:URL,例如在useEffect清理函数里遍历旧的items调用URL.revokeObjectURL(仅作为示例优化,并非本 PR 必须修改)。packages/x/components/sender/index.tsx (1)
229-245: submitDisabled 状态完全依赖 ActionButton,边缘组合下可能出现行为不一致当前
submitDisabled由useState(!innerValue)初始化,后续仅通过ActionButton中的setSubmitDisabled(mergedDisabled)更新,这有几个潜在影响:
没有渲染 SendButton 时的快捷键行为
如果调用方通过suffix={false}或自定义suffix完全不使用内置SendButton/ActionButton,则:
setSubmitDisabled永远不会被调用;submitDisabled固定为首次 render 的!innerValue;- TextArea / SlotTextArea 的 Enter/Shift+Enter 快捷键会一直按这个初始值启用或禁用,而不会随
innerValue变化。其他 ActionButton 可能“污染”提交禁用状态
所有基于ActionButton的按钮(Clear/Cancel/Speech)都会调用setSubmitDisabled(mergedDisabled)。一旦某些按钮在自定义时传入了特定的disabled,就有可能覆盖掉原本用于“是否允许提交”的状态。这两个问题在常规用法(保留内置 SendButton 且不对其他按钮做特殊
disabled控制)下通常不会暴露,但在高级自定义时会变成难以察觉的行为差异。可以考虑的改进方向(可选):
只允许发送按钮驱动 submitDisabled:
将setSubmitDisabled的调用从通用ActionButton移到SendButton内部,这样 Clear/Cancel/Speech 不会影响提交快捷键。提供一个基于 innerValue 的兜底逻辑:
例如在innerValue或loading/disabled变化时,如果近期没有显式setSubmitDisabled调用,则自动将submitDisabled同步为!innerValue || loading || disabled,以保证在“无行动按钮”的场景下仍然有直观行为。上述调整不影响本 PR 的主要修复效果,但能让
submitDisabled在更多组合情况下保持可预期。Also applies to: 248-296
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (16)
packages/x/components/sender/SenderHeader.tsx(1 hunks)packages/x/components/sender/SlotTextArea.tsx(2 hunks)packages/x/components/sender/TextArea.tsx(2 hunks)packages/x/components/sender/components/ActionButton.tsx(3 hunks)packages/x/components/sender/context.ts(1 hunks)packages/x/components/sender/demo/disable-ctrl-slot.md(1 hunks)packages/x/components/sender/demo/disable-ctrl-slot.tsx(1 hunks)packages/x/components/sender/demo/disable-ctrl.md(1 hunks)packages/x/components/sender/demo/disable-ctrl.tsx(1 hunks)packages/x/components/sender/demo/send-style.md(1 hunks)packages/x/components/sender/demo/suffix.md(1 hunks)packages/x/components/sender/index.en-US.md(1 hunks)packages/x/components/sender/index.tsx(7 hunks)packages/x/components/sender/index.zh-CN.md(1 hunks)packages/x/components/sender/style/header.ts(2 hunks)packages/x/components/sender/style/index.ts(0 hunks)
💤 Files with no reviewable changes (1)
- packages/x/components/sender/style/index.ts
🧰 Additional context used
🧬 Code graph analysis (2)
packages/x/components/sender/context.ts (1)
packages/x/components/sender/interface.ts (1)
SenderProps(124-158)
packages/x/components/sender/index.tsx (1)
packages/x/components/sender/components/ActionButton.tsx (1)
ActionButtonContext(20-20)
🪛 GitHub Actions: ✅ test
packages/x/components/sender/TextArea.tsx
[error] 116-116: TS6133: 'target' is declared but its value is never read.
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: size
- GitHub Check: build preview
- GitHub Check: Cloudflare Pages
🔇 Additional comments (8)
packages/x/components/sender/index.zh-CN.md (1)
29-30: 新增示例引用与 demo 文件保持一致
disable-ctrl/disable-ctrl-slot的路径和命名与实际 TSX 文件一致,示例放在提交方式、后缀示例附近也比较合理,没有发现问题。packages/x/components/sender/demo/suffix.md (1)
3-7: 文案与suffixAPI 行为一致中英文都明确了“通过
suffix属性自定义发送按钮行为”,与SenderProps['suffix']的设计一致,能够避免之前与 actions 命名的混淆,没有问题。packages/x/components/sender/demo/disable-ctrl-slot.tsx (1)
75-116: 确认该 demo 中 disabled 状态也能阻止 Enter / Shift+Enter 发送这个示例通过:
const submitDisabled = items.length === 0 && !value && !loading; // ... const node = <SendButton disabled={submitDisabled} />;来控制发送按钮的禁用状态。结合本 PR 对
submitDisabled/SenderContext/TextArea的改动,理论上SendButton的disabled应该会同步到 context,从而让 Enter / Shift+Enter 的快捷键也被禁止。建议在本地重点验证该 demo 的以下行为是否符合预期:
submitDisabled === true时,点击按钮不会发送,按 Enter / Shift+Enter 也不会触发提交;submitDisabled === false且SenderProps.disabled !== true时,按钮和快捷键都可以正常发送。如果上述行为已经验证通过,可以在 PR 说明里简单强调一下这一点,方便后续 review。
packages/x/components/sender/SenderHeader.tsx (1)
82-84: 根节点补充prefixClsclassName 有利于样式覆盖将根
<div>的className从仅包含headerCls扩展为同时包含prefixCls与headerCls:className={classNames(prefixCls, headerCls, motionClassName, className, { [`${headerCls}-rtl`]: direction === 'rtl', })}这样外部就可以通过顶层
prefixCls或更精确的prefixCls-header去做样式覆盖,整体逻辑简单清晰,没有副作用。packages/x/components/sender/context.ts (1)
1-3: 扩展 SenderContext 类型以包含submitDisabled合理将
SenderContext的泛型从SenderProps扩展为SenderProps & { submitDisabled?: boolean },使得消费方可以在类型层面安全读取submitDisabled,与本次修复“提交禁用”行为的目标一致。当前
SenderProps中字段基本都是可选,createContext({})仍然是类型安全的默认值,没有问题;后续如果给SenderProps新增必填字段时,记得同步检查一下这里的默认值即可。packages/x/components/sender/style/header.ts (1)
11-60: 样式选择器展开方式合理,逻辑保持不变
headerCls相关选择器改为用完整类名键(${ headerCls },${headerCls}-header,${headerCls}-content,${headerCls}-motion),在[componentCls]作用域下生成的组合选择器与原先的&-xxx语义一致,同时 motion 区块单独抽出更清晰,没有看到兼容性风险。packages/x/components/sender/SlotTextArea.tsx (1)
48-70: 从 SenderContext 读取 submitDisabled 的方式是安全的
submitDisabled作为可选字段从SenderContext解构,当 Provider 未提供时为undefined,在后续逻辑里只在布尔判断中使用(!submitDisabled/submitDisabled),默认行为等价于“未禁用提交”,不会破坏现有用法。packages/x/components/sender/index.tsx (1)
176-180: 放开 triggerSend 对 innerValue 非空的限制符合新 submitDisabled 设计
triggerSend改为只判断onSubmit && !loading,不再强制innerValue为真,这样:
- 是否允许点击发送按钮,主要由
onSendDisabled/ 按钮disabled(进而驱动submitDisabled)来控制;- 可以支持“仅附件也能发送”的场景,比如本 PR 新增的附件示例。
键盘 Enter/Shift+Enter 提交路径直接走
onSubmit,并通过submitDisabled控制是否允许提交,因此放开这里对innerValue的限制是合理的。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
♻️ Duplicate comments (1)
packages/x/components/sender/SlotTextArea.tsx (1)
586-595: 可简化提交逻辑以减少冗余。
e.preventDefault()在两个分支中都被调用,可以合并为一个if (shouldSubmit)块。- if (shouldSubmit && !submitDisabled) { - e.preventDefault(); - keyLockRef.current = true; - triggerSend?.(); - return; - } - if (shouldSubmit && submitDisabled) { + if (shouldSubmit) { e.preventDefault(); + if (!submitDisabled) { + keyLockRef.current = true; + triggerSend?.(); + } return; }
🧹 Nitpick comments (1)
packages/x/components/sender/index.tsx (1)
266-271: 建议使用useCallback包装triggerSend以保持引用稳定。
triggerSend函数在每次渲染时都会重新创建,导致contextValue的useMemo依赖项变化,触发不必要的上下文更新和子组件重渲染。+ const triggerSend = React.useCallback(() => { + if (inputRef?.current && onSubmit && !loading) { + const inputValue = inputRef.current.getValue(); + onSubmit(inputValue.value, inputValue.slotConfig, inputValue.skill); + } + }, [onSubmit, loading]); + - const triggerSend = () => { - if (inputRef?.current && onSubmit && !loading) { - const inputValue = inputRef.current.getValue(); - onSubmit(inputValue.value, inputValue.slotConfig, inputValue.skill); - } - };
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
packages/x/components/sender/SlotTextArea.tsx(2 hunks)packages/x/components/sender/TextArea.tsx(2 hunks)packages/x/components/sender/context.ts(1 hunks)packages/x/components/sender/index.tsx(7 hunks)
🧰 Additional context used
🧬 Code graph analysis (2)
packages/x/components/sender/context.ts (1)
packages/x/components/sender/interface.ts (1)
SenderProps(124-158)
packages/x/components/sender/index.tsx (1)
packages/x/components/sender/components/ActionButton.tsx (1)
ActionButtonContext(20-20)
🪛 GitHub Actions: ✅ test
packages/x/components/sender/context.ts
[error] 5-5: Argument of type '{}' is not assignable to parameter of type 'SenderProps & { submitDisabled?: boolean | undefined; triggerSend: () => void; }'. Property 'triggerSend' is missing in type '{}' but required in type '{ submitDisabled?: boolean | undefined; triggerSend: () => void; }'.
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: build preview
- GitHub Check: size
- GitHub Check: Cloudflare Pages
🔇 Additional comments (4)
packages/x/components/sender/SlotTextArea.tsx (1)
62-70: LGTM!从
SenderContext正确解构了triggerSend和submitDisabled,与更新后的上下文类型保持一致。packages/x/components/sender/TextArea.tsx (1)
43-44: LGTM!正确从
SenderContext解构了submitDisabled和triggerSend。packages/x/components/sender/index.tsx (2)
176-181: LGTM!
triggerSend现在通过inputRef.current.getValue()获取输入值,正确传递了value、slotConfig和skill给onSubmit。
328-328: LGTM!
ActionButtonContext.Provider正确使用了重命名后的actionsContextProps,包含了setSubmitDisabled以支持外部控制提交禁用状态。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
packages/x/components/sender/__tests__/index.test.tsx (1)
139-159: 验证 disabled 状态是否阻止键盘提交PR 的主要修复是确保键盘快捷键(Enter 和 Shift+Enter)受到
disabled属性的控制。但是,当前测试文件中没有验证此行为的新测试用例。建议添加测试用例以验证:
- 当
disabled={true}时,按 Enter 键不应触发onSubmit- 当
disabled={true}且submitType="shiftEnter"时,按 Shift+Enter 不应触发onSubmit是否需要我生成测试用例来验证此修复?
参考示例:
it('should not submit on Enter when disabled', () => { const onSubmit = jest.fn(); const { container } = render(<Sender value="bamboo" onSubmit={onSubmit} disabled />); act(() => { fireEvent.keyDown(container.querySelector('textarea')!, { key: 'Enter', shiftKey: false }); }); expect(onSubmit).not.toHaveBeenCalled(); }); it('should not submit on Shift+Enter when disabled with submitType="shiftEnter"', () => { const onSubmit = jest.fn(); const { container } = render( <Sender value="bamboo" onSubmit={onSubmit} submitType="shiftEnter" disabled />, ); act(() => { fireEvent.keyDown(container.querySelector('textarea')!, { key: 'Enter', shiftKey: true }); }); expect(onSubmit).not.toHaveBeenCalled(); });
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
packages/x/components/sender/__tests__/index.test.tsx(4 hunks)packages/x/components/sender/index.en-US.md(2 hunks)packages/x/components/sender/index.zh-CN.md(2 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
- packages/x/components/sender/index.zh-CN.md
- packages/x/components/sender/index.en-US.md
🧰 Additional context used
🪛 GitHub Actions: ✅ test
packages/x/components/sender/__tests__/index.test.tsx
[error] 1-1: TS6133: 'unwatchFile' is declared but its value is never read.
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: size
- GitHub Check: build preview
- GitHub Check: Cloudflare Pages
🔇 Additional comments (1)
packages/x/components/sender/__tests__/index.test.tsx (1)
113-113: 测试断言正确反映了 API 变更这些测试断言已正确更新以匹配新的
onSubmit签名,现在接受三个参数:值字符串、slot 数组和可选的 extra 参数。Also applies to: 146-146, 157-157
size-limit report 📦
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
♻️ Duplicate comments (1)
packages/x/components/sender/index.tsx (1)
231-232:submitDisabled状态与innerValue未同步。根据之前的评审讨论,作者提到后续会更新。当前
submitDisabled仅在初始化时基于!innerValue设置,用户输入后不会自动更新。请确认此问题是否会在后续 PR 中修复,或在此 PR 中添加同步逻辑。
🧹 Nitpick comments (1)
packages/x/components/sender/index.tsx (1)
177-182:triggerSend函数缺少useCallback包裹,可能导致性能问题。
triggerSend每次渲染都会创建新的函数引用,导致contextValue的useMemo无法有效缓存(因为依赖项中包含了triggerSend)。建议使用
useCallback包裹:- const triggerSend = () => { + const triggerSend = React.useCallback(() => { if (inputRef?.current && onSubmit && !loading) { const inputValue = inputRef.current.getValue(); onSubmit(inputValue.value, inputValue.slotConfig, inputValue.skill); } - }; + }, [onSubmit, loading]);
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (8)
packages/x/components/attachments/__tests__/__snapshots__/demo-extend.test.ts.snapis excluded by!**/*.snappackages/x/components/attachments/__tests__/__snapshots__/demo.test.tsx.snapis excluded by!**/*.snappackages/x/components/sender/__tests__/__snapshots__/demo-extend.test.ts.snapis excluded by!**/*.snappackages/x/components/sender/__tests__/__snapshots__/demo.test.ts.snapis excluded by!**/*.snappackages/x/components/sender/__tests__/__snapshots__/header.test.tsx.snapis excluded by!**/*.snappackages/x/components/sender/__tests__/__snapshots__/index.test.tsx.snapis excluded by!**/*.snappackages/x/components/suggestion/__tests__/__snapshots__/demo-extend.test.ts.snapis excluded by!**/*.snappackages/x/components/suggestion/__tests__/__snapshots__/demo.test.ts.snapis excluded by!**/*.snap
📒 Files selected for processing (3)
packages/x/components/sender/index.tsx(8 hunks)packages/x/components/sender/style/header.ts(2 hunks)packages/x/components/sender/style/index.ts(1 hunks)
🧰 Additional context used
🧬 Code graph analysis (1)
packages/x/components/sender/index.tsx (1)
packages/x/components/sender/components/ActionButton.tsx (1)
ActionButtonContext(20-20)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
- GitHub Check: build preview
- GitHub Check: size
- GitHub Check: test
- GitHub Check: test
- GitHub Check: Cloudflare Pages
🔇 Additional comments (4)
packages/x/components/sender/style/index.ts (1)
68-82: 样式结构重构合理。将样式嵌套在
&${componentCls}-main下,与组件中新增的${prefixCls}-mainclass 保持一致,层级结构清晰。packages/x/components/sender/style/header.ts (1)
14-58: Header 样式选择器重构合理。将嵌套的
&-header、&-content、&-motion选择器改为显式计算键(如${headerCls}-header),提高了选择器的可读性和特异性控制。Motion 动画规则正确保留。packages/x/components/sender/index.tsx (2)
131-136: 新增${prefixCls}-mainclass 与样式文件对齐。与
style/index.ts中新增的&${componentCls}-main样式规则配合,确保边框、阴影等样式正确应用。
250-299: Context 值扩展包含triggerSend和submitDisabled。新增的
triggerSend和submitDisabled使子组件能够统一触发提交并感知禁用状态,符合本次 PR 修复键盘快捷键受disabled控制的目标。
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1472 +/- ##
=======================================
Coverage 94.79% 94.79%
=======================================
Files 137 137
Lines 3897 3901 +4
Branches 1092 1111 +19
=======================================
+ Hits 3694 3698 +4
Misses 200 200
Partials 3 3 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
* ci(pr): add pr-contributor-welcome workflow * chore: merge * fix: setMessages did not refresh component (#1450) * fix: setMessages did not refresh component * fix: setMessages did not refresh component * fix: revert test code * fix: lint error * fix: set error * refactor: use symbol --------- Co-authored-by: Mickey <[email protected]> * chore: merge * fix(XMarkdown): replace useStreaming regex to avoid compatibility issues (#1457) * fix: fix ios 16.3 compatibility * fix: fix cr * chore: merge feature to main (#1458) * chore: feature merge main (#1369) * feat: theme * docs: add custom components * feat: theme * feat: theme * feat: add theme * feat: antd * fix: fix test case * feat(XMarkdown): Support openLinksInNewTab (#1164) * feat: add openLinksInNewTab & docs change & xss * fix: fix CR * fix: fix CR * fix: fix CR * feat: xmarkdown default less * feat: default less * feat: theme * docs: add custom components * feat: theme * feat: theme * feat: add theme * feat: antd * fix: fix test case * test: less --------- Co-authored-by: jinyang <[email protected]> Co-authored-by: Mickey <[email protected]> * feat(use-x-chat): add updating status (#833) * feat(use-x-chat): add updating status * test(use-x-chat): fix test error about on-update callback * docs(use-x-chat): add loading for stream demo * fix(use-x-chat): always set loadingMsg when init * fix(use-x-chat): set placeholderMsg default value to empty string * test(use-x-chat): fix check filed for case about loading placeholder msg --------- Co-authored-by: Mickey <[email protected]> * fix(ThoughtChain): fix the issue where title block-level elements cannot be displayed when collapsible is enabled (#1172) * fix(thought-chain): 修改title的结构 * fix(thought-chain): 修改title部分结构,满足传递ReactNode * chore: update snapShot * update docs case * update docs case * update checkTextOverflow * chore: update snapShot * fix: replace span with div and update snapShot * chore: changelog of 1.6.1 (#1173) * chore: changelog of 1.6.1 * chore: changelog of 1.6.1 * chore: changelog of 1.6.1 * chore: net merge main * chore: next merge main * chore: next merge main * chore: next merge main * chore: next merge main * chore: next merge main * chore: next merge main * chore: next merge main * chore: next merge main * fix: fix Mermaid render * feat: remove console * fix: fix build error * docs: remove performance docs * fix: fix test error * chore: changelog of 2.0.0-alpha.7 & fixed Semantic of Xmardown (#1178) * chore: changelog of 2.0.0-alpha.7 * chore: update * docs: 更新antdx文档 * docs: 更新changelog文档位置 * docs: 更新changelog文档位置 * feat: site * feat: markdown Semantic * chore: version * chore: changelog of alpha7 * fix: markdown * fix: lint * fix: lint * fix:dekkp * fix:dekkp * fix: update snapshot * docs: remove numbers in footnote * fix: markdown theme & Unified Type Naming (#1182) * feat: css * feat: ts * feat: ts * docs: repair the type error in the useXChat document (#1183) * feat: container * docs: 移除非必要的 return * chore: update playground (#1184) * feat: css * feat: ts * feat: ts * chore: toolIdList * chore: playground * feat: plugins type modify * docs: 依赖 antd & docs * fix: fix lint error * chore: update site config (#1186) * feat: css * feat: ts * feat: ts * chore: toolIdList * chore: playground * chore: update site config * chore: markdown * chore: markdown * feat: update antd version * feat: 依赖调整 * chore: bump ora from 8.2.0 to 9.0.0 (#1189) Bumps [ora](https://github.com/sindresorhus/ora) from 8.2.0 to 9.0.0. - [Release notes](https://github.com/sindresorhus/ora/releases) - [Commits](https://github.com/sindresorhus/ora/compare/v8.2.0...v9.0.0) --- updated-dependencies: - dependency-name: ora dependency-version: 9.0.0 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: bump jsdom from 26.1.0 to 27.0.0 (#1180) Bumps [jsdom](https://github.com/jsdom/jsdom) from 26.1.0 to 27.0.0. - [Release notes](https://github.com/jsdom/jsdom/releases) - [Changelog](https://github.com/jsdom/jsdom/blob/main/Changelog.md) - [Commits](https://github.com/jsdom/jsdom/compare/26.1.0...27.0.0) --- updated-dependencies: - dependency-name: jsdom dependency-version: 27.0.0 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add comprehensive FAQ questions with Chinese and English versions covering markdown, Vue, think tags, and mobile adaptation (#1117) * Initial plan * Add FAQ questions about markdown, Vue, think tags, and mobile adaptation Co-authored-by: afc163 <[email protected]> * Update FAQ with 2.0 info and add English translations Co-authored-by: afc163 <[email protected]> * Add PR link to Think component announcement in FAQ Co-authored-by: afc163 <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: afc163 <[email protected]> Co-authored-by: afc163 <[email protected]> * docs & type: fix lint error * chore: update tbox website (#1191) * chore: update tbox website * chore: update tbox website * chore: update tbox website next (#1192) * chore: update tbox website next * chore: update tbox website next * chore: update tbox website * feat: revert version * chore: update og:image (#1193) * feat: css * feat: ts * feat: ts * chore: toolIdList * chore: playground * chore: update site config * chore: markdown * chore: markdown * chore: 删除title * chore: 删除title * chore: 删除title * chore: 删除title * chore: 删除title * chore: 删除title * feat: scroll * feat: modify dompurify config and user config * feat: update antd version * feat: all update antd alpha3 * fix: update playground & fix Actions Semantic & update OpenAI model (#1194) * feat: bubble info * feat: scroll * feat: scroll * feat: ahooks * feat: ahooks * feat: ahooks * chore: 更新open ai模型 * chore: update * chore: update * chore: update * Feat(XMarkdown): 类型调整 & 文档补充 & 依赖 antd (#1187) * feat: plugins type modify * docs: 依赖 antd & docs * fix: fix lint error * feat: update antd version * feat: 依赖调整 * docs & type: fix lint error * feat: revert version * feat: modify dompurify config and user config * feat: update antd version * feat: all update antd alpha3 --------- Co-authored-by: jinyang <[email protected]> Co-authored-by: Mickey <[email protected]> * feat: animation 调整 & 类型修改 * fix: fix ts lint * feat: remove html tags * fix: fix lint error * type: modify type * fix: fix lint error * fix: fix lint error * fix: fix lint error * fix: fix lint error * fix: fix CR * docs: change * Feature(XMarkdown):动画调整 & 导出类型修改 (#1198) * feat: plugins type modify * docs: 依赖 antd & docs * fix: fix lint error * feat: update antd version * feat: 依赖调整 * docs & type: fix lint error * feat: revert version * feat: modify dompurify config and user config * feat: update antd version * feat: all update antd alpha3 * feat: animation 调整 & 类型修改 * fix: fix ts lint * feat: remove html tags * fix: fix lint error * type: modify type * fix: fix lint error * fix: fix lint error * fix: fix lint error * fix: fix lint error * fix: fix CR * docs: change --------- Co-authored-by: jinyang <[email protected]> Co-authored-by: Mickey <[email protected]> * docs: component docs * Docs(XMarkdown): Component Docs (#1199) * feat: plugins type modify * docs: 依赖 antd & docs * fix: fix lint error * feat: update antd version * feat: 依赖调整 * docs & type: fix lint error * feat: revert version * feat: modify dompurify config and user config * feat: update antd version * feat: all update antd alpha3 * feat: animation 调整 & 类型修改 * fix: fix ts lint * feat: remove html tags * fix: fix lint error * type: modify type * fix: fix lint error * fix: fix lint error * fix: fix lint error * fix: fix lint error * fix: fix CR * docs: change * docs: component docs --------- Co-authored-by: jinyang <[email protected]> Co-authored-by: Mickey <[email protected]> * chore(ci): use setup-utoo (#1197) * chore: setup utoo * chore: remove @ant-design/x-markdown dev deps * chore: default value * fix: antd deps --------- Co-authored-by: Mickey <[email protected]> * chore: bump tbox-nodejs-sdk from 0.0.14 to 0.0.17 (#1190) Bumps [tbox-nodejs-sdk](https://github.com/tbox/tbox-nodejs-sdk) from 0.0.14 to 0.0.17. - [Commits](https://github.com/tbox/tbox-nodejs-sdk/commits) --- updated-dependencies: - dependency-name: tbox-nodejs-sdk dependency-version: 0.0.17 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat: add Bubble extra & update playground & useXChat setMessage can use fun (#1195) * feat: appid * feat: bubble extra data * feat: bubble extra data * feat: bubble extra data * fix: css * feat: bubble * feat: bubble * feat: x-sdk * feat: x-sdk useXChat * feat: x-sdk useXChat * feat: test * feat: test * feat: test * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: modify animation * docs: format * feat: change startWith to indexOf * fix: fix test case * docs: 更换图标 (#1205) * fix: fix lint error * docs: change docs * feat: change style * Feature(XMarkdown):Animation (#1204) * feat: plugins type modify * docs: 依赖 antd & docs * fix: fix lint error * feat: update antd version * feat: 依赖调整 * docs & type: fix lint error * feat: revert version * feat: modify dompurify config and user config * feat: update antd version * feat: all update antd alpha3 * feat: animation 调整 & 类型修改 * fix: fix ts lint * feat: remove html tags * fix: fix lint error * type: modify type * fix: fix lint error * fix: fix lint error * fix: fix lint error * fix: fix lint error * fix: fix CR * docs: change * docs: component docs * feat: modify animation * docs: format * feat: change startWith to indexOf * fix: fix test case * fix: fix lint error * docs: change docs * feat: change style --------- Co-authored-by: jinyang <[email protected]> Co-authored-by: Mickey <[email protected]> * chore: bump tbox-nodejs-sdk from 0.0.17 to 0.0.18 (#1206) Bumps [tbox-nodejs-sdk](https://github.com/tbox/tbox-nodejs-sdk) from 0.0.17 to 0.0.18. - [Commits](https://github.com/tbox/tbox-nodejs-sdk/commits) --- updated-dependencies: - dependency-name: tbox-nodejs-sdk dependency-version: 0.0.18 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: bump actions/github-script from 7 to 8 (#1159) Bumps [actions/github-script](https://github.com/actions/github-script) from 7 to 8. - [Release notes](https://github.com/actions/github-script/releases) - [Commits](https://github.com/actions/github-script/compare/v7...v8) --- updated-dependencies: - dependency-name: actions/github-script dependency-version: '8' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * docs: Update README (#1208) * docs: Update README Signed-off-by: afc163 <[email protected]> * Update README-zh_CN.md Signed-off-by: afc163 <[email protected]> --------- Signed-off-by: afc163 <[email protected]> * docs: add packages badges (#1209) * docs: add packages badges Signed-off-by: afc163 <[email protected]> * Fix formatting in README.md Signed-off-by: afc163 <[email protected]> * Update README-zh_CN.md Signed-off-by: afc163 <[email protected]> * Update README-zh_CN.md Signed-off-by: afc163 <[email protected]> * Update README-zh_CN.md Signed-off-by: afc163 <[email protected]> * Update README-zh_CN.md Signed-off-by: afc163 <[email protected]> * Update npm version badge to alpha version Signed-off-by: afc163 <[email protected]> * Update README to include GitHub contributors badge Signed-off-by: afc163 <[email protected]> --------- Signed-off-by: afc163 <[email protected]> * feat: 支持遍历children * fix: fix cr * feat: animation support div and remove table style * feat: changelog * docs: revert changelog * chore: changelog of 2.0.0-alpha.9 (#1214) * docs: alpha9 changelog * chore: update version * chore: changelog * chore: merge next-alpha to next (#1210) * docs: 更换图标 * docs: 更换图标 * docs: 删除多余句号 * 透传CascaderProps其他参数 (#1110) * feat: 透传CascaderProps其他参数 * feat: onOpenChange和onDropdownVisibleChange也排除 * fix: 重复的全部排除 * fix: 调整顺序 --------- Co-authored-by: 彭星 <[email protected]> Co-authored-by: Mickey <[email protected]> * docs: 中英文空格 * chore: x-markdown path modify * chore: editbutton url * fix(docs): fixed the incorrect Semantic DOM component names in the think component (#1218) * docs: update the XProvider theme demo (#1216) * docs: 更新主题demo * fix: think * fix: think * chore: change x-sdk path * docs: fix docs cr * feat: Sender focus add slot (#1221) * feat: Sender focus add slot * feat: Sender focus add slot * feat: Sender focus add slot * feat: Sender focus add slot * test: snapshots * test: snapshots * test: sender * feat: Semantic type of Attachments and FileCard (#1220) * feat: update components semantic * feat: update components semantic * test: sender * test: sender * docs: seeConf * docs: seeConf * docs: SeeConf link (#1224) * docs: seeConf * docs: seeConf * chore: bump peter-evans/commit-comment from 3 to 4 (#1230) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: bump @types/jsdom from 21.1.7 to 27.0.0 (#1229) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: bump father from 4.6.3 to 4.6.5 (#1181) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: afc163 <[email protected]> * chore: bump @happy-dom/jest-environment from 18.0.1 to 19.0.2 (#1228) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: bump happy-dom from 18.0.1 to 19.0.2 (#1227) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * docs: update site home page (#1233) * feat: site home lottie * feat: site home lottie * test: snap * test: snap * chore: lazy site compontents * fix: site home * feat: image and json * feat: image and json * docs: fix the component names in semanticDom (#1232) * chore: bump @happy-dom/jest-environment from 19.0.2 to 20.0.0 (#1236) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: bump happy-dom from 19.0.2 to 20.0.0 (#1237) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix: Optimize sender input parameters: onPasteFile (#1242) * fix: update onPasteFile * feat: update * fix: Fix document references to internationalization & Add internationalization to SVG (#1243) * fix: fix the local config * fix: fix the local config * chore: ignore scripts (#1247) * fix: antd-token-previewer updated (#1246) * feat(FileCaed): support jfif format (#1248) * fix: x-sdk requestFallback error (#1244) * fix: x-sdk requestFallback error * fix: x-sdk requestFallback error * test: 新增测试用例 * test: 新增测试用例 * test: 新增测试用例 * test: 新增测试用例 * feat: update isStreaming * feat: Bubble.System & Bubble.Divider (#1239) * feat: Bubble.System & Bubble.Divider * docs: Bubble * feat: Bubble.List support Bubble.System and Bubble.Divider * fix: lint * fix: test * test: snapshot * fix(Bubble): semantic of Bubble * fix: lint * feat: bubble * feat: agent * test: 新增测试用例 * test: 新增测试用例 * test: 新增测试用例 --------- Co-authored-by: Mickey <[email protected]> * feat: add sources component (#1250) * feat: add sources component * fix: lint fix * fix: lint fix * fix: add display * fix: update test * fix: test fix * fix: test fix * fix: add test * fix: update doc cover * fix: update test --------- Co-authored-by: jiyang.hy <[email protected]> Co-authored-by: Mickey <[email protected]> * feat: add and update SDK demos & add useXConversations activeConversationKey (#1252) * docs: x-sdk * docs: x-sdk * docs: x-sdk * fix: md eror * feat: activeConversationKey * feat: activeConversationKey * feat: activeConversationKey * feat: activeConversationKey * feat: activeConversationKey * feat: activeConversationKey * feat: activeConversationKey * docs: 更新文档 * fix(XMarkdown): openLinksInNewTab 属性配置失效 (#1253) * fxi: fix openLinksInNewTab is filtered by dompurify * fix: fix ci --------- Co-authored-by: Mickey <[email protected]> * fix: onRequest messages& isResqesting & requestPlaceholder & requestFallback (#1254) * docs: x-sdk * docs: x-sdk * docs: x-sdk * fix: md eror * feat: activeConversationKey * feat: activeConversationKey * feat: activeConversationKey * feat: activeConversationKey * feat: activeConversationKey * feat: activeConversationKey * feat: activeConversationKey * docs: 更新文档 * fix: 修复onrequest 数据处理 * test: 修改测试用例 * feat: add * feat(XMarkdown): 支持通过组件匹配未完成的Markdown语法 (#1223) * feat: support map incomplete image and link to components * chore: change x-markdown docs * feat: 移除对 emphasis 语法的缓存,避免误识别导致的异常 * fix: fix lint error * feat: modify useStreaming cache * feat: modify useStreaming cache * feat: modify streamging way * feat: 基础功能完成 * fix: test cases and demo * feat: beatify code * docs: modify docs --------- Co-authored-by: Mickey <[email protected]> * fix(XMarkdown): 动画重复渲染 (#1255) * docs: docs change * fix: 移除支持动画标签,避免闪动 * fix: fix animation flash and remove useanimation * feat: support config animation * feat: beatify code and modify test case * feat(XMarkdown): latex support (#1256) * feat: inline katex support 19761\n..\n19761 formart * feat: support inline \[ \] math * chore: docs and test case * fix(XMarkdown):格式缓存 (#1257) * fix: fix list inner empahsis * fix: fix regex * feat: Sender supports SlotConfig changes & Sender supports the function of inserting and replacing characters (#1259) * docs: 更换图标 * docs: 更换图标 * docs: 删除多余句号 * chore: chengelog of 2.0.0-alpha.10 * feat: date * feat: dumi * feat: dumi * feat: sender * feat: sender * feat: sender * test: lint * test: lint * fix: tbox * test: snapshots * test: snapshots * test:slot test * test:slot test * test:slot test * test: snapshots * test:slot * test:slot * test:slot * test:slot * test:slot * test:slot * fix: skip render animation text when parent is custom component (#1260) * feat: The source reference component implements the current data functionality (#1261) * feat: 来源引用组件 * feat: 来源引用组件 * feat: 来源引用组件 * feat: CustomParagraph * feat: CustomParagraph * feat: CustomParagraph * feat: CustomParagraph * docs: 新增 markdown 文档示例 (#1262) * docs: 新增docs * docs: 新增docs * feat: Bubble list scroll (#1263) * feat: lit scroll * docs: update text * bubble.list * feat: bubble.lost * feat: bubble.list * feat: bubble.list * feat: bubble.lost * feat: bubble.lost * feat: bubble.lost * feat(XMarkdown): default KaTeX to silent error mode (#1265) * feat: set latex default throwOnError is false and aviod redos * feat: set default inline displayMode true and overrride css * fix: fix cr * fix: fix cr * chore: chengelog of 2.0.0-alpha.11 (#1264) * feat: bubble.lost * feat: css * docs:更新change log * feat: Attachments add ref fun: select to select files & fix maxcount error (#1266) * feat: attachments * feat: attachments * chore: lint * feat: attachments * chore: test * docs: fix used Bubble.List demo error (#1269) * docs: site update * docs: site update * chore: lint * chore: lint * chore: test * docs: Chinese Link Processing (#1270) * docs: Chinese Link Processing * docs: Chinese Link Processing * fix: fix key repeat (#1273) Co-authored-by: jinyang <[email protected]> * feat(XMarkdown): add block and streamstatus to code component (#1272) * feat: code token support block and streamStatus * fix: fix lint * fix: fix cr * docs: api desc --------- Co-authored-by: jinyang <[email protected]> Co-authored-by: Mickey <[email protected]> * docs: Organize and optimize documents of chat provider (#1274) * docs: site update * docs: site update * chore: lint * chore: lint * chore: test * docs: Chinese Link Processing * docs: Chinese Link Processing * docs: Chinese Link Processing * chore: changelog of 2.0.0-alpha.12 (#1275) * feat: bubble.lost * feat: css * docs:更新change log * chore: changelog of 2.0.0-alpha.12 * chore: changelog of 2.0.0-alpha.12 * fix: fix user code paragraph link renderer not work (#1276) Co-authored-by: jinyang <[email protected]> * feat: ThoughtChain & Think add blink (#1278) * feat: add * fix: css * feat: blink * feat: blink * feat: blink * feat: blink * feat: blink * feat: blink * feat: blink * feat: blink * feat: add blink to ThoughtChain (#1286) * feat: add * fix: css * feat: blink * feat: blink * feat: blink * feat: blink * feat: blink * feat: blink * feat: blink * feat: blink * feat: thoughtchain 闪动 * feat: thoughtchain 闪动 * feat: 更新文档 * feat: Actions fade in (#1288) * feat: Actions fade in * feat: Actions fade in * feat: Actions fade in * feat: 更新文档 * feat: delete Bubble.List suffix (#1285) * feat: blink * feat: test * feat: 更新文档 * feat: 更新文档 * feat: update * feat: 更新测试用例 * docs: the style with ComponentChangelog in the site (#1290) * feat: 修复更新日志样式问题 * fix: code reivew comment --------- Co-authored-by: Mickey <[email protected]> * feat: Actions motions & prompts motions (#1289) * feat: Actions fade in * feat: Actions fade in * feat: Actions fade in * feat: 更新文档 * feat: action motion * feat: 更新测试用例 * feat: 更新测试用例 * feat: 更新测试用例 * feat: 更新测试用例 * chore: changelog of 2.0.0-alpha.13 (#1292) * feat: bubble.lost * feat: css * docs:更新change log * chore: changelog of 2.0.0-alpha.12 * chore: changelog of 2.0.0-alpha.12 * chore: changelog of 2.0.0-alpha.13 * chore: changelog of 2.0.0-alpha.13 * chore: changelog of 2.0.0-alpha.13 * chore: changelog of 2.0.0-alpha.13 * fix: fix dompurifyConfig ALLOWED_TAGS wrong merge to ADD_TAGS * fix: fix fenced code streamStatus set wrong * fix: fix ci * feat: peer dependece antd * chore: overrides antd * chore: overrides * chore: antd * fix: fix ci * chore: antd version * chore: antd * chore: update antd 6.00-alpha.4 (#1300) * feat: link docs * feat: link docs * feat: link docs * feat: link docs * chore: update antdv6 * chore: update antdv6 * chore: update antdv6 * chore: update antdv6 * chore: update antdv6 * chore: update antdv6 * chore: update antdv6 * feat: link docs * chore: update antdv6 * chore: revert antd 6.0.0alpha.4 type change * refactor(types): rename SteamingOption to StreamingOption and modify docs * docs: api description * docs: document update error (#1303) * feat: markdown theme (#1305) * chore: 整理文件 * chore: 整理文件 * chore: css * feat: link docs * feat: link * feat: link * fix: fix set code streamStastus wrong when code after \n\n (#1307) Co-authored-by: jinyang <[email protected]> * style(XMarkdown): migrate component styles from Less to CSS (#1306) * style: covert .less to .css * fix: fix style * fix: fix css build error --------- Co-authored-by: jinyang <[email protected]> * feat: token of blinkMotion (#1318) * feat: token of blinkMotion * test: lint * feat: lint * chore: changelog of 2.0.0-alpha.15 (#1310) * chore: version * feat: update markdown * feat: update * feat: push * chore:changelog of 2.0.0-alpha.15 * chore:changelog of 2.0.0-alpha.15 * feat: FileCard image load (#1311) * feat: card file image loading * feat: card file image loading * feat: card file image loading * feat: token of blinkMotion * feat: card file image loading * test: file-card * feat: lint * feat(XMarkdown): cache incomplete table & HTML tokens in useStreaming (#1322) * feat: useStreaming support cache table and support incomplete-html * docs: format docs config * docs: streaming syntax docs * fix: fix code review * feat: stream incomplete regex avoid redos attack * feat: change function type --------- Co-authored-by: Mickey <[email protected]> * fix(XMarkdown): deafult table style (#1324) * fix: table can scroll when content width over width * fix: fix cr * feat(XMarkdown): 全类型缓存映射 & 透传缓存原文本 & 文档优化 (#1325) * feat: pass cache raw data to incomplete-token and map all cache token to incomplete-token * feat: modify testcase --------- Co-authored-by: Mickey <[email protected]> * chore(XMarkdown): modify theme style and format docs (#1326) * docs: modify docs style * chore: modify demo and css * feat(XMarkdown): pass true when disabled and checked props exist (#1328) * feat: pass true when checkbox disabled and checked exist * fix: fix test * chore: Added notification capability and configured WearFox notifications (#1329) * feat: wearfox * feat: wearfox * feat: wearfox * feat: wearfox * feat: wearfox * feat: test * feat: test * feat: remove unnessary heading cache and modify demo * docs: format docs * chore: test case * docs: modify custom plugin docs * docs: format html skeleton width * docs: update Doc model from siliconcloud to bigmodel (#1335) * docs: update docs * feat: updatemodel * feat: updatemodel * perf(XMarkdown): use useMemo to optimize docs render & reduce useless calc (#1337) * feat: performance and docs * docs: basic demo * fix: fix ci * refactoring: bubble delete components props & internal props enhancement (#1338) * refactor: delete components props & internal props enhancement * feat: updatemodel * test: snapshots update * feat: 1 * feat: docs * docs: Change demo image URL in README (#1340) * chore: next merge next-alpha (#1339) * chore: version * feat: update markdown * feat: update * feat: push * chore:changelog of 2.0.0-alpha.15 * chore:changelog of 2.0.0-alpha.15 * docs: xmarkdown theme * chore: changelog of 2.0.0-alpha.16 * chore: changelog of 2.0.0-alpha.16 * feat: updatemodel * feat: updatemodel * feat: updatemodel * feat: updatemodel * docs: update docs * docs: update docs * docs: update docs * fix: pathname * feat: updatemodel * feat: docs * feat: docs * fix: fix lint * docs: update * docs: update demo (#1341) * feat: 1 * feat: docs * docs: update * docs: update demo * docs: update demo * feat: Replace the operation icons of HighlightCode and Mermaid in XMarkdown (#1344) * chore: remove unused devDependencies (#1350) * chore: Update workflow to use test-utoo.yml (#1351) Signed-off-by: afc163 <[email protected]> * docs: update demo * chore: bump actions/checkout from 5 to 6 (#1353) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: bump webpack-bundle-analyzer from 4.10.2 to 5.0.0 (#1333) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump happy-dom (#1354) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: changelog of 2.0.0 (#1355) * chore: changelog 2.0.0 * chore: changelog 2.0.0 * chore: fix wrong of merge (#1359) * feat: site * feat: site * feat: site * chore: fix site home (#1361) * feat: site * feat: site * feat: site * feat: site * feat: site * docs: update badges in README.md (#1360) * chore: fix main site (#1362) * feat: site * feat: site * feat: site * feat: site * feat: site * feat: site * chore: update site-deploy (#1363) * feat: site * feat: site * feat: site * feat: site * feat: site * feat: site * feat: site * feat: site * feat: site * feat: site --------- Signed-off-by: dependabot[bot] <[email protected]> Signed-off-by: afc163 <[email protected]> Co-authored-by: jinyang <[email protected]> Co-authored-by: Div627 <[email protected]> Co-authored-by: wzc520pyfm <[email protected]> Co-authored-by: doki- <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Div627 <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Copilot <[email protected]> Co-authored-by: afc163 <[email protected]> Co-authored-by: afc163 <[email protected]> Co-authored-by: iamkun-2 <[email protected]> Co-authored-by: elrrrrrrr <[email protected]> Co-authored-by: anxLiang <[email protected]> Co-authored-by: guxingke201 <[email protected]> Co-authored-by: 彭星 <[email protected]> Co-authored-by: HongYang <[email protected]> Co-authored-by: jiyang.hy <[email protected]> Co-authored-by: Rain120 <[email protected]> Co-authored-by: BuHao <[email protected]> * feat: Sender word slot mode adds content editing and skill selection capabilities (#1377) * chore: changelog of 2.0.0-alpha.7 & fixed Semantic of Xmardown (#1178) * chore: changelog of 2.0.0-alpha.7 * chore: update * docs: 更新antdx文档 * docs: 更新changelog文档位置 * docs: 更新changelog文档位置 * feat: site * feat: markdown Semantic * chore: version * chore: changelog of alpha7 * fix: markdown * fix: lint * fix: lint * fix:dekkp * fix:dekkp * fix: update snapshot * docs: remove numbers in footnote * fix: markdown theme & Unified Type Naming (#1182) * feat: css * feat: ts * feat: ts * docs: repair the type error in the useXChat document (#1183) * feat: container * docs: 移除非必要的 return * chore: update playground (#1184) * feat: css * feat: ts * feat: ts * chore: toolIdList * chore: playground * feat: plugins type modify * docs: 依赖 antd & docs * fix: fix lint error * chore: update site config (#1186) * feat: css * feat: ts * feat: ts * chore: toolIdList * chore: playground * chore: update site config * chore: markdown * chore: markdown * feat: update antd version * feat: 依赖调整 * chore: bump ora from 8.2.0 to 9.0.0 (#1189) Bumps [ora](https://github.com/sindresorhus/ora) from 8.2.0 to 9.0.0. - [Release notes](https://github.com/sindresorhus/ora/releases) - [Commits](https://github.com/sindresorhus/ora/compare/v8.2.0...v9.0.0) --- updated-dependencies: - dependency-name: ora dependency-version: 9.0.0 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: bump jsdom from 26.1.0 to 27.0.0 (#1180) Bumps [jsdom](https://github.com/jsdom/jsdom) from 26.1.0 to 27.0.0. - [Release notes](https://github.com/jsdom/jsdom/releases) - [Changelog](https://github.com/jsdom/jsdom/blob/main/Changelog.md) - [Commits](https://github.com/jsdom/jsdom/compare/26.1.0...27.0.0) --- updated-dependencies: - dependency-name: jsdom dependency-version: 27.0.0 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add comprehensive FAQ questions with Chinese and English versions covering markdown, Vue, think tags, and mobile adaptation (#1117) * Initial plan * Add FAQ questions about markdown, Vue, think tags, and mobile adaptation Co-authored-by: afc163 <[email protected]> * Update FAQ with 2.0 info and add English translations Co-authored-by: afc163 <[email protected]> * Add PR link to Think component announcement in FAQ Co-authored-by: afc163 <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: afc163 <[email protected]> Co-authored-by: afc163 <[email protected]> * docs & type: fix lint error * chore: update tbox website (#1191) * chore: update tbox website * chore: update tbox website * chore: update tbox website next (#1192) * chore: update tbox website next * chore: update tbox website next * chore: update tbox website * feat: revert version * chore: update og:image (#1193) * feat: css * feat: ts * feat: ts * chore: toolIdList * chore: playground * chore: update site config * chore: markdown * chore: markdown * chore: 删除title * chore: 删除title * chore: 删除title * chore: 删除title * chore: 删除title * chore: 删除title * feat: scroll * feat: modify dompurify config and user config * feat: update antd version * feat: all update antd alpha3 * fix: update playground & fix Actions Semantic & update OpenAI model (#1194) * feat: bubble info * feat: scroll * feat: scroll * feat: ahooks * feat: ahooks * feat: ahooks * chore: 更新open ai模型 * chore: update * chore: update * chore: update * Feat(XMarkdown): 类型调整 & 文档补充 & 依赖 antd (#1187) * feat: plugins type modify * docs: 依赖 antd & docs * fix: fix lint error * feat: update antd version * feat: 依赖调整 * docs & type: fix lint error * feat: revert version * feat: modify dompurify config and user config * feat: update antd version * feat: all update antd alpha3 --------- Co-authored-by: jinyang <[email protected]> Co-authored-by: Mickey <[email protected]> * feat: animation 调整 & 类型修改 * fix: fix ts lint * feat: remove html tags * fix: fix lint error * type: modify type * fix: fix lint error * fix: fix lint error * fix: fix lint error * fix: fix lint error * fix: fix CR * docs: change * Feature(XMarkdown):动画调整 & 导出类型修改 (#1198) * feat: plugins type modify * docs: 依赖 antd & docs * fix: fix lint error * feat: update antd version * feat: 依赖调整 * docs & type: fix lint error * feat: revert version * feat: modify dompurify config and user config * feat: update antd version * feat: all update antd alpha3 * feat: animation 调整 & 类型修改 * fix: fix ts lint * feat: remove html tags * fix: fix lint error * type: modify type * fix: fix lint error * fix: fix lint error * fix: fix lint error * fix: fix lint error * fix: fix CR * docs: change --------- Co-authored-by: jinyang <[email protected]> Co-authored-by: Mickey <[email protected]> * docs: component docs * Docs(XMarkdown): Component Docs (#1199) * feat: plugins type modify * docs: 依赖 antd & docs * fix: fix lint error * feat: update antd version * feat: 依赖调整 * docs & type: fix lint error * feat: revert version * feat: modify dompurify config and user config * feat: update antd version * feat: all update antd alpha3 * feat: animation 调整 & 类型修改 * fix: fix ts lint * feat: remove html tags * fix: fix lint error * type: modify type * fix: fix lint error * fix: fix lint error * fix: fix lint error * fix: fix lint error * fix: fix CR * docs: change * docs: component docs --------- Co-authored-by: jinyang <[email protected]> Co-authored-by: Mickey <[email protected]> * chore(ci): use setup-utoo (#1197) * chore: setup utoo * chore: remove @ant-design/x-markdown dev deps * chore: default value * fix: antd deps --------- Co-authored-by: Mickey <[email protected]> * chore: bump tbox-nodejs-sdk from 0.0.14 to 0.0.17 (#1190) Bumps [tbox-nodejs-sdk](https://github.com/tbox/tbox-nodejs-sdk) from 0.0.14 to 0.0.17. - [Commits](https://github.com/tbox/tbox-nodejs-sdk/commits) --- updated-dependencies: - dependency-name: tbox-nodejs-sdk dependency-version: 0.0.17 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat: add Bubble extra & update playground & useXChat setMessage can use fun (#1195) * feat: appid * feat: bubble extra data * feat: bubble extra data * feat: bubble extra data * fix: css * feat: bubble * feat: bubble * feat: x-sdk * feat: x-sdk useXChat * feat: x-sdk useXChat * feat: test * feat: test * feat: test * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: playground * feat: modify animation * docs: format * feat: change startWith to indexOf * fix: fix test case * docs: 更换图标 (#1205) * fix: fix lint error * docs: change docs * feat: change style * Feature(XMarkdown):Animation (#1204) * feat: plugins type modify * docs: 依赖 antd & docs * fix: fix lint error * feat: update antd version * feat: 依赖调整 * docs & type: fix lint error * feat: revert version * feat: modify dompurify config and user config * feat: update antd version * feat: all update antd alpha3 * feat: animation 调整 & 类型修改 * fix: fix ts lint * feat: remove html tags * fix: fix lint error * type: modify type * fix: fix lint error * fix: fix lint error * fix: fix lint error * fix: fix lint error * fix: fix CR * docs: change * docs: component docs * feat: modify animation * docs: format * feat: change startWith to indexOf * fix: fix test case * fix: fix lint error * docs: change docs * feat: change style --------- Co-authored-by: jinyang <[email protected]> Co-authored-by: Mickey <[email protected]> * chore: bump tbox-nodejs-sdk from 0.0.17 to 0.0.18 (#1206) Bumps [tbox-nodejs-sdk](https://github.com/tbox/tbox-nodejs-sdk) from 0.0.17 to 0.0.18. - [Commits](https://github.com/tbox/tbox-nodejs-sdk/commits) --- updated-dependencies: - dependency-name: tbox-nodejs-sdk dependency-version: 0.0.18 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: bump actions/github-script from 7 to 8 (#1159) Bumps [actions/github-script](https://github.com/actions/github-script) from 7 to 8. - [Release notes](https://github.com/actions/github-script/releases) - [Commits](https://github.com/actions/github-script/compare/v7...v8) --- updated-dependencies: - dependency-name: actions/github-script dependency-version: '8' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * docs: Update README (#1208) * docs: Update README Signed-off-by: afc163 <[email protected]> * Update README-zh_CN.md Signed-off-by: afc163 <[email protected]> --------- Signed-off-by: afc163 <[email protected]> * docs: add packages badges (#1209) * docs: add packages badges Signed-off-by: afc163 <[email protected]> * Fix formatting in README.md Signed-off-by: afc163 <[email protected]> * Update README-zh_CN.md Signed-off-by: afc163 <[email protected]> * Update README-zh_CN.md Signed-off-by: afc163 <[email protected]> * Update README-zh_CN.md Signed-off-by: afc163 <[email protected]> * Update README-zh_CN.md Signed-off-by: afc163 <[email protected]> * Update npm version badge to alpha version Signed-off-by: afc163 <[email protected]> * Update README to include GitHub contributors badge Signed-off-by: afc163 <[email protected]> --------- Signed-off-by: afc163 <[email protected]> * feat: 支持遍历children * fix: fix cr * feat: animation support div and remove table style * feat: changelog * docs: revert changelog * chore: changelog of 2.0.0-alpha.9 (#1214) * docs: alpha9 changelog * chore: update version * chore: changelog * chore: merge next-alpha to next (#1210) * docs: 更换图标 * docs: 更换图标 * docs: 删除多余句号 * 透传CascaderProps其他参数 (#1110) * feat: 透传CascaderProps其他参数 * feat: onOpenChange和onDropdownVisibleChange也排除 * fix: 重复的全部排除 * fix: 调整顺序 --------- Co-authored-by: 彭星 <[email protected]> Co-authored-by: Mickey <[email protected]> * docs: 中英文空格 * chore: x-markdown path modify * chore: editbutton url * fix(docs): fixed the incorrect Semantic DOM component names in the think component (#1218) * docs: update the XProvider theme demo (#1216) * docs: 更新主题demo * fix: think * fix: think * chore: change x-sdk path * docs: fix docs cr * feat: Sender focus add slot (#1221) * feat: Sender focus add slot * feat: Sender focus add slot * feat: Sender focus add slot * feat: Sender focus add slot * test: snapshots * test: snapshots * test: sender * feat: Semantic type of Attachments and FileCard (#1220) * feat: update components semantic * feat: update components semantic * test: sender * test: sender * docs: seeConf * docs: seeConf * docs: SeeConf link (#1224) * docs: seeConf * docs: seeConf * chore: bump peter-evans/commit-comment from 3 to 4 (#1230) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: bump @types/jsdom from 21.1.7 to 27.0.0 (#1229) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: bump father from 4.6.3 to 4.6.5 (#1181) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: afc163 <[email protected]> * chore: bump @happy-dom/jest-environment from 18.0.1 to 19.0.2 (#1228) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: bump happy-dom from 18.0.1 to 19.0.2 (#1227) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * docs: update site home page (#1233) * feat: site home lottie * feat: site home lottie * test: snap * test: snap * chore: lazy site compontents * fix: site home * feat: image and json * feat: image and json * docs: fix the component names in semanticDom (#1232) * chore: bump @happy-dom/jest-environment from 19.0.2 to 20.0.0 (#1236) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: bump happy-dom from 19.0.2 to 20.0.0 (#1237) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix: Optimize sender input parameters: onPasteFile (#1242) * fix: update onPasteFile * feat: update * fix: Fix document references to internationalization & Add internationalization to SVG (#1243) * fix: fix the local config * fix: fix the local config * chore: ignore scripts (#1247) * fix: antd-token-previewer updated (#1246) * feat(FileCaed): support jfif format (#1248) * fix: x-sdk requestFallback error (#1244) * fix: x-sdk requestFallback error * fix: x-sdk requestFallback error * test: 新增测试用例 * test: 新增测试用例 * test: 新增测试用例 * test: 新增测试用例 * feat: update isStreaming * feat: Bubble.System & Bubble.Divider (#1239) * feat: Bubble.System & Bubble.Divider * docs: Bubble * feat: Bubble.List support Bubble.System and Bubble.Divider * fix: lint * fix: test * test: snapshot * fix(Bubble): semantic of Bubble * fix: lint * feat: bubble * feat: agent * test: 新增测试用例 * test: 新增测试用例 * test: 新增测试用例 --------- Co-authored-by: Mickey <[email protected]> * feat: add sources component (#1250) * feat: add sources component * fix: lint fix * fix: lint fix * fix: add display * fix: update test * fix: test fix * fix: test fix * fix: add test * fix: update doc cover * fix: update test --------- Co-authored-by: jiyang.hy <[email protected]> Co-authored-by: Mickey <[email protected]> * feat: add and update SDK demos & add useXConversations activeConversationKey (#1252) * docs: x-sdk * docs: x-sdk * docs: x-sdk * fix: md eror * feat: activeConversationKey * feat: activeConversationKey * feat: activeConversationKey * feat: activeConversationKey * feat: activeConversationKey * feat: activeConversationKey * feat: activeConversationKey * docs: 更新文档 * fix(XMarkdown): openLinksInNewTab 属性配置失效 (#1253) * fxi: fix openLinksInNewTab is filtered by dompurify * fix: fix ci --------- Co-authored-by: Mickey <[email protected]> * fix: onRequest messages& isResqesting & requestPlaceholder & requestFallback (#1254) * docs: x-sdk * docs: x-sdk * docs: x-sdk * fix: md eror * feat: activeConversationKey * feat: activeConversationKey * feat: activeConversationKey * feat: activeConversationKey * feat: activeConversationKey * feat: activeConversationKey * feat: activeConversationKey * docs: 更新文档 * fix: 修复onrequest 数据处理 * test: 修改测试用例 * feat: add * feat(XMarkdown): 支持通过组件匹配未完成的Markdown语法 (#1223) * feat: support map incomplete image and link to components * chore: change x-markdown docs * feat: 移除对 emphasis 语法的缓存,避免误识别导致的异常 * fix: fix lint error * feat: modify useStreaming cache * feat: modify useStreaming cache * feat: modify streamging way * feat: 基础功能完成 * fix: test cases and demo * feat: beatify code * docs: modify docs --------- Co-authored-by: Mickey <[email protected]> * fix(XMarkdown): 动画重复渲染 (#1255) * docs: docs change * fix: 移除支持动画标签,避免闪动 * fix: fix animation flash and remove useanimation * feat: support config animation * feat: beatify code and modify test case * feat(XMarkdown): latex support (#1256) * feat: inline katex support 19761\n..\n19761 formart * feat: support inline \[ \] math * chore: docs and test case * fix(XMarkdown):格式缓存 (#1257) * fix: fix list inner empahsis * fix: fix regex * feat: Sender supports SlotConfig changes & Sender supports the function of inserting and replacing characters (#1259) * docs: 更换图标 * docs: 更换图标 * docs: 删除多余句号 * chore: chengelog of 2.0.0-alpha.10 * feat: date * feat: dumi * feat: dumi * feat: sender * feat: sender * feat: sender * test: lint * test: lint * fix: tbox * test: snapshots * test: snapshots * test:slot test * test:slot test * test:slot test * test: snapshots * test:slot * test:slot * test:slot * test:slot * test:slot * test:slot * fix: skip render animation text when parent is custom component (#1260) * feat: The source reference component implements the current data functionality (#1261) * feat: 来源引用组件 * feat: 来源引用组件 * feat: 来源引用组件 * feat: CustomParagraph * feat: CustomParagraph * feat: CustomParagraph * feat: CustomParagraph * docs: 新增 markdown 文档示例 (#1262) * docs: 新增docs * docs: 新增docs * feat: Bubble list scroll (#1263) * feat: lit scroll * docs: update text * bubble.list * feat: bubble.lost * feat: bubble.list * feat: bubble.list * feat: bubble.lost * feat: bubble.lost * feat: bubble.lost * feat(XMarkdown): default KaTeX to silent error mode (#1265) * feat: set latex default throwOnError is false and aviod redos * feat: set default inline displayMode true and overrride css * fix: fix cr * fix: fix cr * chore: chengelog of 2.0.0-alpha.11 (#1264) * feat: bubble.lost * feat: css * docs:更新change log * feat: Attachments add ref fun: select to select files & fix maxcount error (#1266) * feat: attachments * feat: attachments * chore: lint * feat: attachments * chore: test * docs: fix used Bubble.List demo error (#1269) * docs: site update * docs: site update * chore: lint * chore: lint * chore: test * docs: Chinese Link Processing (#1270) * docs: Chinese Link Processing * docs: Chinese Link Processing * fix: fix key repeat (#1273) Co-authored-by: jinyang <[email protected]> * feat(XMarkdown): add block and streamstatus to code component (#1272) * feat: code token support block and streamStatus * fix: fix lint * fix: fix cr * docs: api desc --------- Co-authored-by: jinyang <[email protected]> Co-authored-by: Mickey <[email protected]> * docs: Organize and optimize documents of chat provider (#1274) * docs: site update * docs: site update * chore: lint * chore: lint * chore: test * docs: Chinese Link Processing * docs: Chinese Link Processing * docs: Chinese Link Processing * chore: changelog of 2.0.0-alpha.12 (#1275) * feat: bubble.lost * feat: css * docs:更新change log * chore: changelog of 2.0.0-alpha.12 * chore: changelog of 2.0.0-alpha.12 * fix: fix user code paragraph link renderer not work (#1276) Co-authored-by: jinyang <[email protected]> * feat: ThoughtChain & Think add blink (#1278) * feat: add * fix: css * feat: blink * feat: blink * feat: blink * feat: blink * feat: blink * feat: blink * feat: blink * feat: blink * feat: add blink to ThoughtChain (#1286) * feat: add * fix: css * feat: blink * feat: blink * feat: blink * feat: blink * feat: blink * feat: blink * feat: blink * feat: blink * feat: thoughtchain 闪动 * feat: thoughtchain 闪动 * feat: 更新文档 * feat: Actions fade in (#1288) * feat: Actions fade in * feat: Actions fade in * feat: Actions fade in * feat: 更新文档 * feat: delete Bubble.List suffix (#1285) * feat: blink * feat: test * feat: 更新文档 * feat: 更新文档 * feat: update * feat: 更新测试用例 * docs: the style with ComponentChangelog in the site (#1290) * feat: 修复更新日志样式问题 * fix: code reivew comment --------- Co-authored-by: Mickey <[email protected]> * feat: Actions motions & prompts motions (#1289) * feat: Actions fade in * feat: Actions fade in * feat: Actions fade in * feat: 更新文档 * feat: action motion * feat: 更新测试用例 * feat: 更新测试用例 * feat: 更新测试用例 * feat: 更新测试用例 * chore: changelog of 2.0.0-alpha.13 (#1292) * feat: bubble.lost * feat: css * docs:更新change log * chore: changelog of 2.0.0-alpha.12 * chore: changelog of 2.0.0-alpha.12 * chore: changelog of 2.0.0-alpha.13 * chore: changelog of 2.0.0-alpha.13 * chore: changelog of 2.0.0-alpha.13 * chore: changelog of 2.0.0-alpha.13 * fix: fix dompurifyConfig ALLOWED_TAGS wrong merge to ADD_TAGS * fix: fix fenced code streamStatus set wrong * fix: fix ci * feat: peer dependece antd * chore: overrides antd * chore: overrides * chore: antd * fix: fix ci * chore: antd version * chore: antd * chore: update antd 6.00-alpha.4 (#1300) * feat: link docs * feat: link docs * feat: link docs * feat: link docs * chore: update antdv6 * chore: update antdv6 * chore: update antdv6 * chore: update antdv6 * chore: update antdv6 * chore: update antdv6 * chore: update antdv6 * feat: link docs * chore: update antdv6 * chore: revert antd 6.0.0alpha.4 type change * refactor(types): rename SteamingOption to StreamingOption and modify docs * docs: api description * docs: document update error (#1303) * feat: markdown theme (#1305) * chore: 整理文件 * chore: 整理文件 * chore: css * feat: link docs * feat: link * feat: link * fix: fix set code streamStastus wrong when code after \n\n (#1307) Co-authored-by: jinyang <[email protected]> * style(XMarkdown): migrate component styles from Less to CSS (#1306) * style: covert .less to .css * fix: fix style * fix: fix css build error --------- Co-authored-by: jinyang <[email protected]> * feat: commit * feat: token of blinkMotion (#1318) * feat: token of blinkMotion * test: lint * feat: lint * chore: changelog of 2.0.0-alpha.15 (#1310) * chore: version * feat: update markdown * feat: update * feat: push * chore:changelog of 2.0.0-alpha.15 * chore:changelog of 2.0.0-alpha.15 * feat: FileCard image load (#1311) * feat: card file image loading * feat: card file image loading * feat: card file image loading * feat: token of blinkMotion * feat: card file image loading * test: file-card * feat: lint * feat(XMarkdown): cache incomplete table & HTML tokens in useStreaming (#1322) * feat: useStreaming support cache table and support incomplete-html * docs: format docs config * docs: streaming syntax docs * fix: fix code review * feat: stream incomplete regex avoid redos attack * feat: change function type --------- Co-authored-by: Mickey <[email protected]> * feat: lint * feat: lint * fix(XMarkdown): deafult table style (#1324) * fix: table can scroll when content width over width * fix: fix cr * feat(XMarkdown): 全类型缓存映射 & 透传缓存原文本 & 文档优化 (#1325) * feat: pass cache raw data to incomplete-token and map all cache token to incomplete-token * feat: modify testcase --------- Co-authored-by: Mickey <[email protected]> * chore(XMarkdown): modify theme style and format docs (#1326) * docs: modify docs style * chore: modify demo and css * feat: edit * feat: sop * feat: sop * chore: changelog of 2.0.0-alpha.16 * feat: agent * feat(XMarkdown): pass true when disabled and checked props exist (#1328) * feat: pass true when checkbox disabled and checked exist * fix: fix test * chore: Added notification capability and configured WearFox notifications (#1329) * feat: wearfox * feat: wearfox * feat: wearfox * feat: wearfox * feat: wearfox * feat: test * feat: test * feat: sender * feat: sender * feat: remove unnessary heading cache and modify demo * docs: format docs * chore: test case * docs: modify custom plugin docs * docs: format html skeleton width * docs: update Doc model from siliconcloud to bigmodel (#1335) * docs: update docs * feat: updatemodel * feat: updatemodel * perf(XMarkdown): use useMemo to optimize docs render & reduce useless calc (#1337) * feat: performance and docs * docs: basic demo * fix: fix ci * refactoring: bubble delete components props & internal props enhancement (#1338) * refactor: delete components props & internal props enhancement * feat: updatemodel * test: snapshots update * feat: 1 * feat: docs * docs: Change demo image URL in README (#1340) * chore: next merge next-alpha (#1339) * chore: version * feat: update markdown * feat: update * feat: push * chore:changelog of 2.0.0-alpha.15 * chore:changelog of 2.0.0-alpha.15 * docs: xmarkdown theme * chore: changelog of 2.0.0-alpha.16 * chore: changelog of 2.0.0-alpha.16 * feat: updatemodel * feat: updatemodel * feat: updatemodel * feat: updatemodel * docs: update docs * docs: update docs * docs: update docs * fix: pathname * feat: updatemodel * feat: docs * feat: docs * fix: fix lint * docs: update * docs: update demo (#1341) * feat: 1 * feat: docs * docs: update * docs: update demo * docs: update demo * feat: Replace the operation icons of HighlightCode and Mermaid in XMarkdown (#1344) * chore: remove unused devDependencies (#1350) * feat: sender * feat: sender * feat: sender * feat: sender * feat: sender * feat: sender * feat: skill * feat: skill * feat: sender * feat: sender * feat: sender * fix: sender * fix: sender lint * fix: sender lint * feat: update tsconfig * feat: cnavas * feat: cnavas * feat: cnavas * feat: cnavas * feat: cnavas * test: slote test * feat: cnavas * test: speech 覆盖率 * test: speech 覆盖率 * test: sender * test: sender * test: sender * test: sender * feat: test * feat: test * test: sende * test: sende * test: sende * test: sende * test: sendee --------- Signed-off-by: dependabot[bot] <[email protected]> Signed-off-by: afc163 <[email protected]> Co-authored-by: jinyang <[email protected]> Co-authored-by: doki- <[email protected]> Co-authored-by: Div627 <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Copilot <[email protected]> Co-authored-by: afc163 <[email protected]> Co-authored-by: afc163 <[email protected]> Co-authored-by: iamkun-2 <[email protected]> Co-authored-by: elrrrrrrr <[email protected]> Co-authored-by: anxLiang <[email protected]> Co-authored-by: div627 <[email protected]> Co-authored-by: guxingke201 <[email protected]> Co-authored-by: 彭星 <[email protected]> Co-authored-by: HongYang <[email protected]> Co-authored-by: jiyang.hy <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Rain120 <[email protected]> Co-authored-by: BuHao <[email protected]> * fix(XMarkdown): fix truncated-emoji encoding error & strip incomplete HTML * fix: test case * feat: test * feat: css * feat: css * feat: css * feat: css * feat: css * feat: css * feat: test * test: use-speech * feat: add semantic for suggestion & remove redundant 'Enter' to trigger the submit logic & onSelect add selectedOptions params (#1406) * fix: attachments show extension * feat: test * feat: semantic * test: snap * feat: test * feat: test * feat: test * feat: test * feat: suggestion * test: suggestion * test: suggestion * test: use-active * feat: test * test: use-active * test: use-active * test: use-active * test: use-active * test: suggestion * test: suggestion * feat: semantic of actions (#1433) * feat: semantic * feat: actions * feat: actions * test: snapshots updated * fix: class * feat: deepseek * feat: deepseek * fest: Actions.Item * fest: Actions.Item * refactor(XMarkdown): move mermaid & highlight to standalone components, drop x-markdown dependency (#1402) * feat: move code highlighter to x components * feat: move x-markdown mermaid and highlight to components and remove x-markdown's dependence * fix: remove console * chore: remove x-markdown css and token script * fix: fix cr * fix: use Actions.copy instead of navigator.clipboard to prevent compatibility issues * chore: modify codeHighlighter and mermaid locale config * fix: fix build preview * chore: modify x-markdown father build config * fix: fix ci * fix: fix ci * fix: fix ci * fix: fix ci * fix: fix ci * fix: fix ci * fix: fix ci * fix: modify build config * docs: description * fix: fix test case * fix: fix ci * fix: fix ci * fix: fix ci * docs: modify mermaid code highlighter sources docs * style: use componentCls instead of & avoid css loss * docs: mermaid and code highlighter cover * feat: mermaid add onRenderTypeChange props and mofidy semantic * feat: change mermaid to peerDependece and lazy log * fix: fix ci * fix: fix ci * fix: fix ci * fix: fix ci * chore: remove declare module * fix: fix ci * fix: mermaid size * fix: change package size limit --------- Co-authored-by: Div627 <[email protected]> Co-authored-by: Mickey <[email protected]> * docs: version identification of component documents (#1444) * docs: add tag * feat: doc * docs: tag for components * docs(XMarkdown): remove redundant docs, lock demo height, and add Components FAQ for block-level HTML truncation (#1451) * docs: add FAQ explain block html tag not properyly closed * docs: set docs height * docs: sources docs * docs: change source demo height * fix: fix cr * chore: merge * chore: merge * chore: merge --------- Signed-off-by: dependabot[bot] <[email protected]> Signed-off-by: afc163 <[email protected]> Co-authored-by: jinyang <[email protected]> Co-authored-by: Div627 <[email protected]> Co-authored-by: wzc520pyfm <[email protected]> Co-authored-by: doki- <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Div627 <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Copilot <[email protected]> Co-authored-by: afc163 <[email protected]> Co-authored-by: afc163 <[email protected]> Co-authored-by: iamkun-2 <[email protected]> Co-authored-by: elrrrrrrr <[email protected]> Co-authored-by: anxLiang <[email protected]> Co-authored-by: guxingke201 <[email protected]> Co-authored-by: 彭星 <[email protected]> Co-authored-by: HongYang <[email protected]> Co-authored-by: jiyang.hy <[email protected]> Co-authored-by: Rain120 <[email protected]> Co-authored-by: BuHao <[email protected]> * chore(deps-dev): bump @happy-dom/jest-environment from 18.0.1 to 20.0.11 (#1423) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump typescript from 5.8.3 to 5.9.3 (#1421) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump sharp from 0.33.5 to 0.34.5 (#1374) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @npmcli/run-script from 9.1.0 to 10.0.3 (#1373) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: bump actions/upload-artifact from 4 to 5 (#1267) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: afc163 <[email protected]> * chore(deps-dev): bump open from 10.2.0 to 11.0.0 (#1422) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix: declare dependence (#1459) Co-authored-by: Mickey <[email protected]> * chore: changelog of 2.1.0 (#1461) * chore: changelog * chore: changelog of 2.1.0 * chore: changelog of 2.1.0 * chore: changelog of 2.1.0 * docs(prompts): modify semanticType (#1464) * docs(prompts): modify semanticType * docs(prompts): delete semanticType * fix(Sender): submit disabled & submit params (#1472) * fix: submit disabled * fix: submit disabled * feat: update * feat: update * test: css * fix: sideEffects avoid css dropped in webpack * fix: correct scripts tsconfig typeRoots (#1483) * fix: correct scripts tsconfig typeRoots * chore: remove redundant typeRoots * docs(Suggestion): The custom demo for the suggestion section fixes the issue where tags weren't generated after losing focus following input. (#1463) * fix(Suggestion): The custom demo for the suggestion section fixes the issue where tags weren't generated after losing focus following input. * fix(Suggestion): The custom demo for the suggestion section fixes the issue where tags weren't generated after losing focus following input. * docs(Suggestion): Demo bug fixes --------- Co-authored-by: shida <[email protected]> Co-authored-by: Mickey <[email protected]> * fix(Sender): Sender onchange & slot skill placeholder (#1477) * fix: submit disabled * fix: submit disabled * feat: update * feat: update * test: css * fix: onchange * fix: onchange * fix: sender onchange * fix: sender onchange * feat: sender * feat: sender * fix: sender onchange * fix: sender * test: sender * test: snap * test: snap * test: snap * test: actions * fix: relying on mermaid to fix umi MFSU checks (#1475) * fix: depend…

中文版模板 / Chinese template
🤔 This is a ...
🔗 Related Issues
💡 Background and Solution
📝 Change Log
Summary by CodeRabbit
新功能
重构
文档
样式
测试
✏️ Tip: You can customize this high-level summary in your review settings.