Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@kimteayon
Copy link
Collaborator

@kimteayon kimteayon commented Dec 8, 2025

中文版模板 / Chinese template

🤔 This is a ...

  • 🆕 New feature
  • 🐞 Bug fix
  • 📝 Site / documentation improvement
  • 📽️ Demo improvement
  • 💄 Component style improvement
  • 🤖 TypeScript definition improvement
  • 📦 Bundle size optimization
  • ⚡️ Performance optimization
  • ⭐️ Feature enhancement
  • 🌐 Internationalization
  • 🛠 Refactoring
  • 🎨 Code style optimization
  • ✅ Test Case
  • 🔀 Branch merge
  • ⏩ Workflow
  • ⌨️ Accessibility improvement
  • ❓ Other (about what?)

🔗 Related Issues

  • Describe the source of related requirements, such as links to relevant issue discussions.
  • For example: close #xxxx, fix #xxxx

💡 Background and Solution

  • The specific problem to be addressed.
  • List the final API implementation and usage if needed.
  • If there are UI/interaction changes, consider providing screenshots or GIFs.

📝 Change Log

Language Changelog
🇺🇸 English
🇨🇳 Chinese 修复发送快捷键 enter 和 shift + enter 未受 disable 控制的问题,修复 onSubmit 点击按钮参数缺失问题, 以及补充submit disable 示例

Summary by CodeRabbit

  • 新功能

    • 统一触发发送机制,新增提交禁用状态以按需允许/阻止发送;发送控件可暴露并同步该状态供定制。
  • 重构

    • 发送上下文与动作上下文扩展了可见值以支持新提交流程;输入区键盘提交逻辑合并及 IME 兼容优化。
  • 文档

    • 新增两套示例演示可自定义禁用发送与插槽配置;术语与示例位置更新;槽配置文本属性由 text 改为 value。
  • 样式

    • 重构样式选择器与根类名构建,改善样式作用域一致性。
  • 测试

    • 更新测试以适配发送回调的新参数约定。

✏️ Tip: You can customize this high-level summary in your review settings.

@github-actions
Copy link
Contributor

github-actions bot commented Dec 8, 2025

Preview failed

@dosubot dosubot bot added the bug Something isn't working label Dec 8, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 8, 2025

Note

Other AI code review bot(s) detected

CodeRabbit 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.

📝 Walkthrough

Walkthrough

在 Sender 中引入并传播提交控制信号 submitDisabled 与统一触发函数 triggerSend;输入组件改为基于上下文决定提交并调用 triggerSend;ActionButton 可向上汇报禁用状态;样式、示例与文档相应更新,测试断言调整以匹配新 onSubmit 签名。

Changes

Cohort / File(s) 变更摘要
上下文与入口
packages/x/components/sender/context.ts, packages/x/components/sender/index.tsx
扩展 SenderContext 值为包含 submitDisabled?: booleantriggerSend: () => void;入口新增并维护 submitDisabledtriggerSendsetSubmitDisabled,并在相关 Context Provider 中传递。
输入与提交处理
packages/x/components/sender/TextArea.tsx, packages/x/components/sender/SlotTextArea.tsx
从上下文读取 submitDisabledtriggerSend;统一键盘提交判断(shouldSubmit),在 submitDisabled 为真时阻止提交,为假时调用 triggerSend;保留 IME 合成输入检查。
操作按钮与上下文回连
packages/x/components/sender/components/ActionButton.tsx
ActionButtonContextProps 中新增可选 setSubmitDisabled?: (disabled: boolean) => void;计算合并 disabled 并在 useEffect 中对 onSend 操作调用 setSubmitDisabled 向上汇报合并后的 disabled 状态。
Header 与样式重构
packages/x/components/sender/SenderHeader.tsx, packages/x/components/sender/style/header.ts, packages/x/components/sender/style/index.ts
SenderHeader 根元素 class 列表加入 prefixCls;将嵌套选择器替换为显式计算的类名(如 `${headerCls}-content` 等),将 motion 样式提升为顶层并重组样式结构。
示例与文档
packages/x/components/sender/demo/disable-ctrl.tsx, packages/x/components/sender/demo/disable-ctrl-slot.tsx, packages/x/components/sender/demo/*.md, packages/x/components/sender/index.en-US.md, packages/x/components/sender/index.zh-CN.md
新增“禁用控制”示例与双语文档;将文档中若干 “actions” 描述替换为 “suffix”;在索引中加入新示例;更新 onSubmit 文档签名(slotConfig 由可选改为必需)并将 SlotConfigTypetext 字段改为 value
测试
packages/x/components/sender/__tests__/index.test.tsx
更新测试断言以匹配 onSubmit 回调参数变化(增加 slot 与额外参数),例如由 onSubmit('bamboo') 改为 onSubmit('bamboo', [], undefined)
其他小改动
packages/x/components/sender/SenderHeader.tsx
根元素 classNames 中加入计算的 prefixCls(样式作用域调整,逻辑不变)。

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
Loading

Estimated code review effort

🎯 3 (中等) | ⏱️ ~20-30 分钟

需要额外关注:

  • packages/x/components/sender/index.tsxsubmitDisabled 的初始值、更新时机与相关依赖(可能的同步/竞态问题)。
  • TextArea.tsx / SlotTextArea.tsx 中 shouldSubmit 对修饰键与 IME 场景的覆盖与边界条件。
  • ActionButton.tsxuseEffect 依赖列表与 setSubmitDisabled 调用频率,避免引入额外渲染或循环更新。
  • 样式重构(style/header.tsstyle/index.ts)是否严格保留原有选择器优先级,防止样式回归。
  • 测试调整是否覆盖所有受影响的断言与新签名参数。

Poem

🐰 轻敲键盘问候声,阻发信号细又灵,
上下文里藏条令,按下去或留空行。
按钮回报把门锁,示例文档新又晴。

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 标题准确总结了PR的主要变更:修复了提交禁用状态和提交参数问题,与代码改动完全对应。
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch sender-disable

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @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 submitDisabled mechanism, integrating it into the component context and updating keyboard event handlers to ensure that submission is properly prevented when disabled. The changes also include new demo examples to guide developers on how to implement custom disable sending logic.

Highlights

  • Bug Fix: Keyboard Submission Control: Resolved an issue where 'Enter' and 'Shift + Enter' keyboard shortcuts would bypass the disabled state of the submit functionality, ensuring that these shortcuts now correctly respect the submitDisabled flag.
  • New submitDisabled Prop and Context: Introduced a new submitDisabled property within the SenderContext to propagate the disabled state across relevant components like SlotTextArea and TextArea, allowing for centralized control over submission.
  • Enhanced Keyboard Event Handling: Updated the onKeyDown logic in SlotTextArea and TextArea components to explicitly check the submitDisabled state before processing any submission attempts via keyboard shortcuts.
  • Action Button Integration: Modified the ActionButtonContext to include a setSubmitDisabled function, enabling action buttons to dynamically update the submission disabled state based on their own conditions.
  • New Demo Examples: Added two new demo files (disable-ctrl.md/.tsx and disable-ctrl-slot.md/.tsx) to showcase how to implement and customize the disable sending logic, including scenarios with slot configurations.
  • Minor Styling and Refactoring: Performed minor adjustments to CSS class naming conventions in SenderHeader and related style files, and refactored the Sender component's triggerSend logic and context property names for clarity and consistency.
Using Gemini Code Assist

The 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 /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

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 .gemini/ folder in the base of the repository. Detailed instructions can be found here.

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

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@kimteayon kimteayon linked an issue Dec 8, 2025 that may be closed by this pull request
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a 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.

@codecov
Copy link

codecov bot commented Dec 8, 2025

Bundle Report

Changes will increase total bundle size by 1.21MB (38.74%) ⬆️⚠️, exceeding the configured threshold of 5%.

Bundle name Size Change
antdx-array-push 2.97MB 1.21MB (68.93%) ⬆️⚠️

Affected Assets, Files, and Routes:

view changes for bundle: antdx-array-push

Assets Changed:

Asset Name Size Change Total Size Change (%)
antdx.js (New) 2.97MB 2.97MB 100.0% 🚀
antdx.min.js (Deleted) -1.76MB 0 bytes -100.0% 🗑️

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Dec 8, 2025

Deploying ant-design-x with  Cloudflare Pages  Cloudflare Pages

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

View logs

Copy link
Contributor

@coderabbitai coderabbitai bot left a 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` propertyAdjust 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 with slotConfig.” 也能理解,但建议略作调整,例如:

  • “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 上下文字段,作为“真实禁用态”。
  • useEffectmergedDisabled 透传给 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,边缘组合下可能出现行为不一致

当前 submitDisableduseState(!innerValue) 初始化,后续仅通过 ActionButton 中的 setSubmitDisabled(mergedDisabled) 更新,这有几个潜在影响:

  1. 没有渲染 SendButton 时的快捷键行为
    如果调用方通过 suffix={false} 或自定义 suffix 完全不使用内置 SendButton / ActionButton,则:

    • setSubmitDisabled 永远不会被调用;
    • submitDisabled 固定为首次 render 的 !innerValue
    • TextArea / SlotTextArea 的 Enter/Shift+Enter 快捷键会一直按这个初始值启用或禁用,而不会随 innerValue 变化。
  2. 其他 ActionButton 可能“污染”提交禁用状态
    所有基于 ActionButton 的按钮(Clear/Cancel/Speech)都会调用 setSubmitDisabled(mergedDisabled)。一旦某些按钮在自定义时传入了特定的 disabled,就有可能覆盖掉原本用于“是否允许提交”的状态。

这两个问题在常规用法(保留内置 SendButton 且不对其他按钮做特殊 disabled 控制)下通常不会暴露,但在高级自定义时会变成难以察觉的行为差异。

可以考虑的改进方向(可选):

  • 只允许发送按钮驱动 submitDisabled
    setSubmitDisabled 的调用从通用 ActionButton 移到 SendButton 内部,这样 Clear/Cancel/Speech 不会影响提交快捷键。

  • 提供一个基于 innerValue 的兜底逻辑
    例如在 innerValueloading/disabled 变化时,如果近期没有显式 setSubmitDisabled 调用,则自动将 submitDisabled 同步为 !innerValue || loading || disabled,以保证在“无行动按钮”的场景下仍然有直观行为。

上述调整不影响本 PR 的主要修复效果,但能让 submitDisabled 在更多组合情况下保持可预期。

Also applies to: 248-296

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8d0f477 and 709f0e9.

📒 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: 文案与 suffix API 行为一致

中英文都明确了“通过 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 的改动,理论上 SendButtondisabled 应该会同步到 context,从而让 Enter / Shift+Enter 的快捷键也被禁止。

建议在本地重点验证该 demo 的以下行为是否符合预期:

  • submitDisabled === true 时,点击按钮不会发送,按 Enter / Shift+Enter 也不会触发提交;
  • submitDisabled === falseSenderProps.disabled !== true 时,按钮和快捷键都可以正常发送。

如果上述行为已经验证通过,可以在 PR 说明里简单强调一下这一点,方便后续 review。

packages/x/components/sender/SenderHeader.tsx (1)

82-84: 根节点补充 prefixCls className 有利于样式覆盖

将根 <div>className 从仅包含 headerCls 扩展为同时包含 prefixClsheaderCls

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 的限制是合理的。

Copy link
Contributor

@coderabbitai coderabbitai bot left a 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 函数在每次渲染时都会重新创建,导致 contextValueuseMemo 依赖项变化,触发不必要的上下文更新和子组件重渲染。

+  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

📥 Commits

Reviewing files that changed from the base of the PR and between 709f0e9 and 3876f8e.

📒 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 正确解构了 triggerSendsubmitDisabled,与更新后的上下文类型保持一致。

packages/x/components/sender/TextArea.tsx (1)

43-44: LGTM!

正确从 SenderContext 解构了 submitDisabledtriggerSend

packages/x/components/sender/index.tsx (2)

176-181: LGTM!

triggerSend 现在通过 inputRef.current.getValue() 获取输入值,正确传递了 valueslotConfigskillonSubmit


328-328: LGTM!

ActionButtonContext.Provider 正确使用了重命名后的 actionsContextProps,包含了 setSubmitDisabled 以支持外部控制提交禁用状态。

@kimteayon kimteayon changed the title fix: submit disabled fix: submit disabled & submit params Dec 8, 2025
Copy link
Contributor

@coderabbitai coderabbitai bot left a 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 属性的控制。但是,当前测试文件中没有验证此行为的新测试用例。

建议添加测试用例以验证:

  1. disabled={true} 时,按 Enter 键不应触发 onSubmit
  2. 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

📥 Commits

Reviewing files that changed from the base of the PR and between 3876f8e and 3390c3e.

📒 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

@kimteayon kimteayon changed the title fix: submit disabled & submit params fix(Sender): submit disabled & submit params Dec 8, 2025
@github-actions
Copy link
Contributor

github-actions bot commented Dec 8, 2025

size-limit report 📦

Path Size
packages/x/dist/antdx.min.js 439.6 KB (+12 B 🔺)
packages/x-sdk/dist/x-sdk.min.js 7.37 KB
packages/x-markdown/dist/x-markdown.min.js 28.83 KB
packages/x-markdown/dist/plugins/latex.min.js 61.95 KB

Copy link
Contributor

@coderabbitai coderabbitai bot left a 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 每次渲染都会创建新的函数引用,导致 contextValueuseMemo 无法有效缓存(因为依赖项中包含了 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

📥 Commits

Reviewing files that changed from the base of the PR and between bf82207 and 891c935.

⛔ Files ignored due to path filters (8)
  • packages/x/components/attachments/__tests__/__snapshots__/demo-extend.test.ts.snap is excluded by !**/*.snap
  • packages/x/components/attachments/__tests__/__snapshots__/demo.test.tsx.snap is excluded by !**/*.snap
  • packages/x/components/sender/__tests__/__snapshots__/demo-extend.test.ts.snap is excluded by !**/*.snap
  • packages/x/components/sender/__tests__/__snapshots__/demo.test.ts.snap is excluded by !**/*.snap
  • packages/x/components/sender/__tests__/__snapshots__/header.test.tsx.snap is excluded by !**/*.snap
  • packages/x/components/sender/__tests__/__snapshots__/index.test.tsx.snap is excluded by !**/*.snap
  • packages/x/components/suggestion/__tests__/__snapshots__/demo-extend.test.ts.snap is excluded by !**/*.snap
  • packages/x/components/suggestion/__tests__/__snapshots__/demo.test.ts.snap is 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}-main class 保持一致,层级结构清晰。

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}-main class 与样式文件对齐。

style/index.ts 中新增的 &${componentCls}-main 样式规则配合,确保边框、阴影等样式正确应用。


250-299: Context 值扩展包含 triggerSendsubmitDisabled

新增的 triggerSendsubmitDisabled 使子组件能够统一触发提交并感知禁用状态,符合本次 PR 修复键盘快捷键受 disabled 控制的目标。

@codecov
Copy link

codecov bot commented Dec 8, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.79%. Comparing base (996e080) to head (b1ebeff).
⚠️ Report is 1 commits behind head on main.

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.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@dosubot dosubot bot added the lgtm This PR has been approved by a maintainer label Dec 8, 2025
@kimteayon kimteayon merged commit 4b904f6 into main Dec 8, 2025
16 checks passed
@kimteayon kimteayon deleted the sender-disable branch December 8, 2025 07:33
@coderabbitai coderabbitai bot mentioned this pull request Dec 13, 2025
17 tasks
kimteayon added a commit that referenced this pull request Dec 30, 2025
* 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…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working lgtm This PR has been approved by a maintainer

Projects

None yet

Development

Successfully merging this pull request may close these issues.

只上传文件不输入内容时无法发送消息

3 participants