gitextract_onxxzun6/ ├── .codefuse/ │ └── skills/ │ └── components/ │ └── SKILL.md ├── .editorconfig ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yml │ │ └── feature_request.yml │ ├── PULL_REQUEST_TEMPLATE.md │ ├── PULL_REQUEST_TEMPLATE_CN.md │ ├── dependabot.yml │ └── workflows/ │ ├── main.yml │ ├── markdown-benchmark.yml │ ├── pr-auto-merge.yml │ ├── pr-contributor-welcome.yml │ ├── preview-build.yml │ ├── preview-deploy.yml │ ├── preview-start.yml │ ├── release-dingtalk.yml │ ├── release-x.yml │ ├── site-deploy.yml │ └── size-limit.yml ├── .gitignore ├── .husky/ │ ├── commit-msg │ └── pre-commit ├── .lintstagedrc.json ├── .npmrc ├── .prettierrc ├── CHANGELOG.en-US.md ├── CHANGELOG.zh-CN.md ├── CNAME ├── README-zh_CN.md ├── README.md ├── biome.json ├── package.json ├── packages/ │ ├── x/ │ │ ├── .dumi/ │ │ │ ├── components/ │ │ │ │ └── SemanticPreview.tsx │ │ │ ├── global.css │ │ │ ├── hooks/ │ │ │ │ ├── use.ts │ │ │ │ ├── useDark.tsx │ │ │ │ ├── useFetch/ │ │ │ │ │ ├── cache.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── useLayoutState.ts │ │ │ │ ├── useLocale.ts │ │ │ │ ├── useLocation.ts │ │ │ │ ├── useLottie.ts │ │ │ │ ├── useMenu.tsx │ │ │ │ ├── useScrollY.ts │ │ │ │ └── useThemeAnimation.ts │ │ │ ├── loading.js │ │ │ ├── pages/ │ │ │ │ ├── 404/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── index/ │ │ │ │ │ ├── common/ │ │ │ │ │ │ ├── Container.tsx │ │ │ │ │ │ ├── CustomizationProvider.tsx │ │ │ │ │ │ ├── CustomizationSender.tsx │ │ │ │ │ │ └── Introduction.tsx │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── CompIntroduction/ │ │ │ │ │ │ │ ├── Customization.tsx │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ ├── DesignBanner.tsx │ │ │ │ │ │ ├── DesignFramework.tsx │ │ │ │ │ │ ├── DesignGuide.tsx │ │ │ │ │ │ ├── Lottie.tsx │ │ │ │ │ │ ├── MainBanner.tsx │ │ │ │ │ │ ├── SceneIntroduction/ │ │ │ │ │ │ │ ├── Assistant.tsx │ │ │ │ │ │ │ ├── Independent.tsx │ │ │ │ │ │ │ ├── Nest.tsx │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ └── SiteContext.ts │ │ │ │ │ └── index.tsx │ │ │ │ └── index-cn/ │ │ │ │ └── index.ts │ │ │ ├── preset/ │ │ │ │ └── .gitkeep │ │ │ ├── rehypeAntd.ts │ │ │ ├── remarkAnchor.ts │ │ │ ├── remarkAntd.ts │ │ │ ├── theme/ │ │ │ │ ├── SiteThemeProvider.tsx │ │ │ │ ├── builtins/ │ │ │ │ │ ├── APITable/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── Antd.tsx │ │ │ │ │ ├── Audio/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── Badge/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── ColorChunk/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── ColorPaletteTool/ │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── ColorPaletteToolDark/ │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── ColorPalettes/ │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── ComponentMeta/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── ComponentOverview/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── ComponentTokenTable/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── Container/ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── style.ts │ │ │ │ │ ├── DemoWrapper/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── IconSearch/ │ │ │ │ │ │ ├── Category.tsx │ │ │ │ │ │ ├── CopyableIcon.tsx │ │ │ │ │ │ ├── IconSearch.tsx │ │ │ │ │ │ ├── fields.ts │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── themeIcons.tsx │ │ │ │ │ ├── ImagePreview/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── InlinePopover/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── InstallDependencies/ │ │ │ │ │ │ ├── bun.tsx │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ ├── npm.tsx │ │ │ │ │ │ ├── pnpm.tsx │ │ │ │ │ │ ├── utoo.tsx │ │ │ │ │ │ └── yarn.tsx │ │ │ │ │ ├── LocaleLink/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── MarkdownPluginsOverView.tsx │ │ │ │ │ ├── Palette/ │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Previewer/ │ │ │ │ │ │ ├── CodeBlockButton.tsx │ │ │ │ │ │ ├── CodePreviewer.tsx │ │ │ │ │ │ ├── DemoFallback.tsx │ │ │ │ │ │ ├── DesignPreviewer.tsx │ │ │ │ │ │ ├── Previewer.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── PromptTemplate.tsx │ │ │ │ │ ├── ResourceCards/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── Sandpack/ │ │ │ │ │ │ ├── Sandpack.ts │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── SkillsOverView.tsx │ │ │ │ │ ├── TokenCompare/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── TokenTable/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ └── VideoPlayer/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── common/ │ │ │ │ │ ├── BehaviorMap/ │ │ │ │ │ │ ├── BehaviorMap.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── BezierVisualizer/ │ │ │ │ │ │ ├── Visualizer.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── BrowserFrame.tsx │ │ │ │ │ ├── ClientOnly.tsx │ │ │ │ │ ├── CodePreview.tsx │ │ │ │ │ ├── Color/ │ │ │ │ │ │ ├── ColorBlock.tsx │ │ │ │ │ │ ├── ColorPaletteTool.tsx │ │ │ │ │ │ ├── ColorPaletteToolDark.tsx │ │ │ │ │ │ ├── ColorPalettes.tsx │ │ │ │ │ │ ├── ColorPatterns.tsx │ │ │ │ │ │ ├── ColorStyle.tsx │ │ │ │ │ │ └── Palette.tsx │ │ │ │ │ ├── CommonHelmet.tsx │ │ │ │ │ ├── ComponentChangelog/ │ │ │ │ │ │ ├── ComponentChangelog.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── EditButton.tsx │ │ │ │ │ ├── GlobalStyles.tsx │ │ │ │ │ ├── Helmet.tsx │ │ │ │ │ ├── JSONEditor/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── Link.tsx │ │ │ │ │ ├── LinkButton.tsx │ │ │ │ │ ├── LiveCode.tsx │ │ │ │ │ ├── Loading.tsx │ │ │ │ │ ├── PrevAndNext.tsx │ │ │ │ │ ├── ThemeSwitch/ │ │ │ │ │ │ ├── ThemeIcon.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ └── styles/ │ │ │ │ │ ├── Common.tsx │ │ │ │ │ ├── Demo.tsx │ │ │ │ │ ├── HeadingAnchor.tsx │ │ │ │ │ ├── Highlight.tsx │ │ │ │ │ ├── InlineCard.tsx │ │ │ │ │ ├── Markdown.tsx │ │ │ │ │ ├── NProgress.tsx │ │ │ │ │ ├── PreviewImage.tsx │ │ │ │ │ ├── Reset.tsx │ │ │ │ │ ├── Responsive.tsx │ │ │ │ │ ├── SearchBar.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── icons/ │ │ │ │ │ ├── CodePenIcon.tsx │ │ │ │ │ ├── CodeSandboxIcon.tsx │ │ │ │ │ ├── DirectionIcon.tsx │ │ │ │ │ └── ExternalLinkIcon.tsx │ │ │ │ ├── layouts/ │ │ │ │ │ ├── DocLayout/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── GlobalLayout.tsx │ │ │ │ │ ├── IndexLayout/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ └── SidebarLayout/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── locales/ │ │ │ │ │ ├── en-US.json │ │ │ │ │ └── zh-CN.json │ │ │ │ ├── plugin.ts │ │ │ │ ├── slots/ │ │ │ │ │ ├── Alert/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── Content/ │ │ │ │ │ │ ├── ColumnCard.tsx │ │ │ │ │ │ ├── ContributorAvatar.tsx │ │ │ │ │ │ ├── Contributors.tsx │ │ │ │ │ │ ├── DocAnchor.tsx │ │ │ │ │ │ ├── DocMeta.tsx │ │ │ │ │ │ ├── InViewSuspense.tsx │ │ │ │ │ │ ├── JuejinLogo.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── ContentTabs/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── DemoContext.ts │ │ │ │ │ ├── Footer/ │ │ │ │ │ │ ├── AdditionalInfo.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── Header/ │ │ │ │ │ │ ├── Actions.tsx │ │ │ │ │ │ ├── Logo.tsx │ │ │ │ │ │ ├── Navigation.tsx │ │ │ │ │ │ ├── SwitchBtn.tsx │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── interface.ts │ │ │ │ │ ├── LiveError/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── Sidebar/ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ └── SiteContext.ts │ │ │ │ ├── static/ │ │ │ │ │ └── style.ts │ │ │ │ ├── themeConfig.ts │ │ │ │ ├── utils/ │ │ │ │ │ ├── __tests__/ │ │ │ │ │ │ ├── runTests.ts │ │ │ │ │ │ └── tsToJs.test.ts │ │ │ │ │ ├── tsToJs.test.ts │ │ │ │ │ └── tsToJs.ts │ │ │ │ └── utils.ts │ │ │ └── tsconfig.json │ │ ├── .dumirc.ts │ │ ├── .fatherrc.ts │ │ ├── .jest.js │ │ ├── .lintstagedrc.json │ │ ├── .surgeignore │ │ ├── BUG_VERSIONS.json │ │ ├── CNAME │ │ ├── LICENSE │ │ ├── README-zh_CN.md │ │ ├── README.md │ │ ├── alias/ │ │ │ └── cssinjs.js │ │ ├── bunfig.toml │ │ ├── components/ │ │ │ ├── _util/ │ │ │ │ ├── __tests__/ │ │ │ │ │ ├── hooks.test.tsx │ │ │ │ │ └── warning.test.tsx │ │ │ │ ├── hooks/ │ │ │ │ │ ├── use-collapsible.ts │ │ │ │ │ ├── use-proxy-imperative-handle.ts │ │ │ │ │ ├── use-shortcut-keys.ts │ │ │ │ │ └── use-x-component-config.ts │ │ │ │ ├── motion.ts │ │ │ │ ├── type.ts │ │ │ │ └── warning.ts │ │ │ ├── actions/ │ │ │ │ ├── ActionsAudio.tsx │ │ │ │ ├── ActionsCopy.tsx │ │ │ │ ├── ActionsFeedback.tsx │ │ │ │ ├── ActionsItem.tsx │ │ │ │ ├── ActionsMenu.tsx │ │ │ │ ├── Item.tsx │ │ │ │ ├── __tests__/ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ ├── demo-extend.test.ts.snap │ │ │ │ │ │ └── demo.test.ts.snap │ │ │ │ │ ├── action-item.test.tsx │ │ │ │ │ ├── audio.test.tsx │ │ │ │ │ ├── copy.test.tsx │ │ │ │ │ ├── demo-extend.test.ts │ │ │ │ │ ├── demo.test.ts │ │ │ │ │ ├── feedback.test.tsx │ │ │ │ │ ├── image.test.ts │ │ │ │ │ └── index.test.tsx │ │ │ │ ├── context.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── _semantic-audio.tsx │ │ │ │ │ ├── _semantic-copy.tsx │ │ │ │ │ ├── _semantic-feedback.tsx │ │ │ │ │ ├── _semantic-item.tsx │ │ │ │ │ ├── _semantic.tsx │ │ │ │ │ ├── basic.md │ │ │ │ │ ├── basic.tsx │ │ │ │ │ ├── fadeIn.md │ │ │ │ │ ├── fadeIn.tsx │ │ │ │ │ ├── preset.md │ │ │ │ │ ├── preset.tsx │ │ │ │ │ ├── sub.md │ │ │ │ │ ├── sub.tsx │ │ │ │ │ ├── variant.md │ │ │ │ │ └── variant.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.tsx │ │ │ │ ├── index.zh-CN.md │ │ │ │ ├── interface.ts │ │ │ │ └── style/ │ │ │ │ ├── audio.tsx │ │ │ │ ├── copy.ts │ │ │ │ ├── feedback.ts │ │ │ │ └── index.ts │ │ │ ├── attachments/ │ │ │ │ ├── DropArea.tsx │ │ │ │ ├── FileList/ │ │ │ │ │ ├── Progress.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── PlaceholderUploader.tsx │ │ │ │ ├── SilentUploader.tsx │ │ │ │ ├── __tests__/ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ ├── demo-extend.test.ts.snap │ │ │ │ │ │ ├── demo.test.tsx.snap │ │ │ │ │ │ └── index.test.tsx.snap │ │ │ │ │ ├── demo-extend.test.ts │ │ │ │ │ ├── demo.test.tsx │ │ │ │ │ ├── drag.test.tsx │ │ │ │ │ ├── image.test.ts │ │ │ │ │ ├── index.test.tsx │ │ │ │ │ └── util.test.ts │ │ │ │ ├── context.tsx │ │ │ │ ├── demo/ │ │ │ │ │ ├── _semantic.tsx │ │ │ │ │ ├── basic.md │ │ │ │ │ ├── basic.tsx │ │ │ │ │ ├── overflow.md │ │ │ │ │ ├── overflow.tsx │ │ │ │ │ ├── placeholder.md │ │ │ │ │ ├── placeholder.tsx │ │ │ │ │ ├── select-files.md │ │ │ │ │ ├── select-files.tsx │ │ │ │ │ ├── with-sender.md │ │ │ │ │ └── with-sender.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.tsx │ │ │ │ ├── index.zh-CN.md │ │ │ │ ├── style/ │ │ │ │ │ └── index.ts │ │ │ │ └── util.ts │ │ │ ├── bubble/ │ │ │ │ ├── Bubble.tsx │ │ │ │ ├── BubbleList.tsx │ │ │ │ ├── Divider.tsx │ │ │ │ ├── EditableContent.tsx │ │ │ │ ├── System.tsx │ │ │ │ ├── TypingContent.tsx │ │ │ │ ├── __tests__/ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ ├── demo-extend.test.ts.snap │ │ │ │ │ │ └── demo.test.ts.snap │ │ │ │ │ ├── demo-extend.test.ts │ │ │ │ │ ├── demo.test.ts │ │ │ │ │ ├── divider.test.tsx │ │ │ │ │ ├── enhanced.test.tsx │ │ │ │ │ ├── image.test.ts │ │ │ │ │ ├── index.test.tsx │ │ │ │ │ ├── list-scroll.test.tsx │ │ │ │ │ ├── list.test.tsx │ │ │ │ │ └── system.test.tsx │ │ │ │ ├── context.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── _semantic-divider.tsx │ │ │ │ │ ├── _semantic-list.tsx │ │ │ │ │ ├── _semantic-system.tsx │ │ │ │ │ ├── _semantic.tsx │ │ │ │ │ ├── animation.md │ │ │ │ │ ├── animation.tsx │ │ │ │ │ ├── basic.md │ │ │ │ │ ├── basic.tsx │ │ │ │ │ ├── custom-content.md │ │ │ │ │ ├── custom-content.tsx │ │ │ │ │ ├── divider.md │ │ │ │ │ ├── divider.tsx │ │ │ │ │ ├── editable.md │ │ │ │ │ ├── editable.tsx │ │ │ │ │ ├── footer.md │ │ │ │ │ ├── footer.tsx │ │ │ │ │ ├── gpt-vis.md │ │ │ │ │ ├── gpt-vis.tsx │ │ │ │ │ ├── header.md │ │ │ │ │ ├── header.tsx │ │ │ │ │ ├── list-extra.md │ │ │ │ │ ├── list-extra.tsx │ │ │ │ │ ├── list-scroll.md │ │ │ │ │ ├── list-scroll.tsx │ │ │ │ │ ├── list.md │ │ │ │ │ ├── list.tsx │ │ │ │ │ ├── loading.md │ │ │ │ │ ├── loading.tsx │ │ │ │ │ ├── markdown.md │ │ │ │ │ ├── markdown.tsx │ │ │ │ │ ├── semantic-list-custom.md │ │ │ │ │ ├── semantic-list-custom.tsx │ │ │ │ │ ├── sider-and-placement.md │ │ │ │ │ ├── sider-and-placement.tsx │ │ │ │ │ ├── stream.md │ │ │ │ │ ├── stream.tsx │ │ │ │ │ ├── system.md │ │ │ │ │ ├── system.tsx │ │ │ │ │ ├── variant-and-shape.md │ │ │ │ │ └── variant-and-shape.tsx │ │ │ │ ├── hooks/ │ │ │ │ │ ├── useCompatibleScroll.ts │ │ │ │ │ └── useTyping.ts │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.tsx │ │ │ │ ├── index.zh-CN.md │ │ │ │ ├── interface.ts │ │ │ │ ├── loading.tsx │ │ │ │ └── style/ │ │ │ │ ├── bubble.ts │ │ │ │ ├── content.ts │ │ │ │ ├── divider.ts │ │ │ │ ├── index.ts │ │ │ │ ├── list.ts │ │ │ │ ├── slot.ts │ │ │ │ └── system.ts │ │ │ ├── code-highlighter/ │ │ │ │ ├── CodeHighlighter.tsx │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.test.tsx │ │ │ │ ├── demo/ │ │ │ │ │ ├── _semantic.tsx │ │ │ │ │ ├── basic.tsx │ │ │ │ │ ├── custom-header.tsx │ │ │ │ │ └── with-xmarkdown.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.tsx │ │ │ │ ├── index.zh-CN.md │ │ │ │ ├── interface.ts │ │ │ │ └── style/ │ │ │ │ └── index.ts │ │ │ ├── conversations/ │ │ │ │ ├── Creation.tsx │ │ │ │ ├── GroupTitle.tsx │ │ │ │ ├── Item.tsx │ │ │ │ ├── __tests__/ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ ├── demo-extend.test.ts.snap │ │ │ │ │ │ ├── demo.test.ts.snap │ │ │ │ │ │ └── index.test.tsx.snap │ │ │ │ │ ├── demo-extend.test.ts │ │ │ │ │ ├── demo.test.ts │ │ │ │ │ ├── image.test.ts │ │ │ │ │ └── index.test.tsx │ │ │ │ ├── demo/ │ │ │ │ │ ├── _semantic.tsx │ │ │ │ │ ├── basic.md │ │ │ │ │ ├── basic.tsx │ │ │ │ │ ├── controlled-collapsible.md │ │ │ │ │ ├── controlled-collapsible.tsx │ │ │ │ │ ├── controlled-mode.md │ │ │ │ │ ├── controlled-mode.tsx │ │ │ │ │ ├── custom-new-chat.md │ │ │ │ │ ├── custom-new-chat.tsx │ │ │ │ │ ├── group-collapsible.md │ │ │ │ │ ├── group-collapsible.tsx │ │ │ │ │ ├── group.md │ │ │ │ │ ├── group.tsx │ │ │ │ │ ├── infinite-load.md │ │ │ │ │ ├── infinite-load.tsx │ │ │ │ │ ├── menu-trigger.md │ │ │ │ │ ├── menu-trigger.tsx │ │ │ │ │ ├── new-chat.md │ │ │ │ │ ├── new-chat.tsx │ │ │ │ │ ├── shortcutKeys.md │ │ │ │ │ ├── shortcutKeys.tsx │ │ │ │ │ ├── with-menu.md │ │ │ │ │ └── with-menu.tsx │ │ │ │ ├── hooks/ │ │ │ │ │ ├── useCreation.tsx │ │ │ │ │ └── useGroupable.ts │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.tsx │ │ │ │ ├── index.zh-CN.md │ │ │ │ ├── interface.ts │ │ │ │ └── style/ │ │ │ │ └── index.ts │ │ │ ├── file-card/ │ │ │ │ ├── FileCard.tsx │ │ │ │ ├── List.tsx │ │ │ │ ├── __tests__/ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ ├── demo-extend.test.ts.snap │ │ │ │ │ │ └── demo.test.ts.snap │ │ │ │ │ ├── demo-extend.test.ts │ │ │ │ │ ├── demo.test.ts │ │ │ │ │ ├── image.test.ts │ │ │ │ │ └── index.test.tsx │ │ │ │ ├── components/ │ │ │ │ │ ├── File.tsx │ │ │ │ │ ├── ImageIcon.tsx │ │ │ │ │ ├── ImageLoading.tsx │ │ │ │ │ └── usePercent.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── _semantic-list.tsx │ │ │ │ │ ├── _semantic.tsx │ │ │ │ │ ├── audio.md │ │ │ │ │ ├── audio.tsx │ │ │ │ │ ├── basic.md │ │ │ │ │ ├── basic.tsx │ │ │ │ │ ├── custom-description.md │ │ │ │ │ ├── custom-description.tsx │ │ │ │ │ ├── icon.md │ │ │ │ │ ├── icon.tsx │ │ │ │ │ ├── image-loading.md │ │ │ │ │ ├── image-loading.tsx │ │ │ │ │ ├── image.md │ │ │ │ │ ├── image.tsx │ │ │ │ │ ├── list.md │ │ │ │ │ ├── list.tsx │ │ │ │ │ ├── mask.md │ │ │ │ │ ├── mask.tsx │ │ │ │ │ ├── overflow.md │ │ │ │ │ ├── overflow.tsx │ │ │ │ │ ├── size.md │ │ │ │ │ └── size.tsx │ │ │ │ ├── icons/ │ │ │ │ │ ├── audio.tsx │ │ │ │ │ └── video.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.tsx │ │ │ │ ├── index.zh-CN.md │ │ │ │ ├── style/ │ │ │ │ │ └── index.ts │ │ │ │ └── utils.ts │ │ │ ├── folder/ │ │ │ │ ├── DirectoryTree.tsx │ │ │ │ ├── FilePreview.tsx │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.test.tsx │ │ │ │ ├── demo/ │ │ │ │ │ ├── _semantic.tsx │ │ │ │ │ ├── basic.md │ │ │ │ │ ├── basic.tsx │ │ │ │ │ ├── custom-icons.md │ │ │ │ │ ├── custom-icons.tsx │ │ │ │ │ ├── custom-service.md │ │ │ │ │ ├── custom-service.tsx │ │ │ │ │ ├── file-controlled.md │ │ │ │ │ ├── file-controlled.tsx │ │ │ │ │ ├── fully-controlled.md │ │ │ │ │ ├── fully-controlled.tsx │ │ │ │ │ ├── preview-render.md │ │ │ │ │ ├── preview-render.tsx │ │ │ │ │ ├── searchable.md │ │ │ │ │ └── searchable.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.tsx │ │ │ │ ├── index.zh-CN.md │ │ │ │ └── style/ │ │ │ │ └── index.tsx │ │ │ ├── index.ts │ │ │ ├── introduce/ │ │ │ │ ├── index.en-US.md │ │ │ │ └── index.zh-CN.md │ │ │ ├── locale/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.test.tsx │ │ │ │ ├── context.ts │ │ │ │ ├── en_US.ts │ │ │ │ ├── index.tsx │ │ │ │ ├── useLocale.ts │ │ │ │ └── zh_CN.ts │ │ │ ├── mermaid/ │ │ │ │ ├── Mermaid.tsx │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.test.tsx │ │ │ │ ├── demo/ │ │ │ │ │ ├── _semantic.tsx │ │ │ │ │ ├── basic.tsx │ │ │ │ │ ├── custom-header.tsx │ │ │ │ │ ├── header-actions.tsx │ │ │ │ │ └── with-xmarkdown.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.tsx │ │ │ │ ├── index.zh-CN.md │ │ │ │ └── style/ │ │ │ │ └── index.ts │ │ │ ├── notification/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.test.tsx │ │ │ │ ├── demo/ │ │ │ │ │ ├── close_tag.md │ │ │ │ │ ├── close_tag.tsx │ │ │ │ │ ├── duration.md │ │ │ │ │ ├── duration.tsx │ │ │ │ │ ├── hooks.md │ │ │ │ │ ├── hooks.tsx │ │ │ │ │ ├── static-method.md │ │ │ │ │ └── static-method.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.tsx │ │ │ │ ├── index.zh-CN.md │ │ │ │ └── interface.ts │ │ │ ├── overview/ │ │ │ │ ├── index.en-US.md │ │ │ │ └── index.zh-CN.md │ │ │ ├── prompts/ │ │ │ │ ├── __tests__/ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ ├── demo-extend.test.ts.snap │ │ │ │ │ │ ├── demo.test.ts.snap │ │ │ │ │ │ └── index.test.tsx.snap │ │ │ │ │ ├── demo-extend.test.ts │ │ │ │ │ ├── demo.test.ts │ │ │ │ │ ├── image.test.ts │ │ │ │ │ └── index.test.tsx │ │ │ │ ├── demo/ │ │ │ │ │ ├── _semantic.tsx │ │ │ │ │ ├── basic.md │ │ │ │ │ ├── basic.tsx │ │ │ │ │ ├── disabled.md │ │ │ │ │ ├── disabled.tsx │ │ │ │ │ ├── fadeIn.md │ │ │ │ │ ├── fadeIn.tsx │ │ │ │ │ ├── flex-vertical.md │ │ │ │ │ ├── flex-vertical.tsx │ │ │ │ │ ├── flex-wrap-fixed.md │ │ │ │ │ ├── flex-wrap-fixed.tsx │ │ │ │ │ ├── flex-wrap.md │ │ │ │ │ ├── flex-wrap.tsx │ │ │ │ │ ├── nest.md │ │ │ │ │ └── nest.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.tsx │ │ │ │ ├── index.zh-CN.md │ │ │ │ └── style/ │ │ │ │ └── index.ts │ │ │ ├── sender/ │ │ │ │ ├── Sender.tsx │ │ │ │ ├── SenderHeader.tsx │ │ │ │ ├── SenderSwitch.tsx │ │ │ │ ├── __tests__/ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ ├── demo-extend.test.ts.snap │ │ │ │ │ │ ├── demo.test.ts.snap │ │ │ │ │ │ ├── header.test.tsx.snap │ │ │ │ │ │ ├── index.test.tsx.snap │ │ │ │ │ │ └── switch.test.tsx.snap │ │ │ │ │ ├── demo-extend.test.ts │ │ │ │ │ ├── demo.test.ts │ │ │ │ │ ├── header.test.tsx │ │ │ │ │ ├── image.test.ts │ │ │ │ │ ├── index.test.tsx │ │ │ │ │ ├── skill.test.tsx │ │ │ │ │ ├── slot.test.tsx │ │ │ │ │ ├── switch.test.tsx │ │ │ │ │ ├── use-cursor.test.tsx │ │ │ │ │ └── use-speech.test.tsx │ │ │ │ ├── components/ │ │ │ │ │ ├── ActionButton.tsx │ │ │ │ │ ├── ClearButton.tsx │ │ │ │ │ ├── LoadingButton/ │ │ │ │ │ │ ├── StopLoading.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── SendButton.tsx │ │ │ │ │ ├── Skill.tsx │ │ │ │ │ ├── SlotTextArea.tsx │ │ │ │ │ ├── SpeechButton/ │ │ │ │ │ │ ├── RecordingIcon.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ └── TextArea.tsx │ │ │ │ ├── context.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── _semantic-switch.tsx │ │ │ │ │ ├── _semantic.tsx │ │ │ │ │ ├── agent.md │ │ │ │ │ ├── agent.tsx │ │ │ │ │ ├── basic.md │ │ │ │ │ ├── basic.tsx │ │ │ │ │ ├── disable-ctrl-slot.md │ │ │ │ │ ├── disable-ctrl-slot.tsx │ │ │ │ │ ├── disable-ctrl.md │ │ │ │ │ ├── disable-ctrl.tsx │ │ │ │ │ ├── footer.md │ │ │ │ │ ├── footer.tsx │ │ │ │ │ ├── header-fixed.md │ │ │ │ │ ├── header-fixed.tsx │ │ │ │ │ ├── header.md │ │ │ │ │ ├── header.tsx │ │ │ │ │ ├── paste-image.md │ │ │ │ │ ├── paste-image.tsx │ │ │ │ │ ├── ref-action.md │ │ │ │ │ ├── ref-action.tsx │ │ │ │ │ ├── send-style.md │ │ │ │ │ ├── send-style.tsx │ │ │ │ │ ├── slot-filling.md │ │ │ │ │ ├── slot-filling.tsx │ │ │ │ │ ├── slot-with-suggestion.md │ │ │ │ │ ├── slot-with-suggestion.tsx │ │ │ │ │ ├── speech-custom.md │ │ │ │ │ ├── speech-custom.tsx │ │ │ │ │ ├── speech.md │ │ │ │ │ ├── speech.tsx │ │ │ │ │ ├── submitType.md │ │ │ │ │ ├── submitType.tsx │ │ │ │ │ ├── suffix.md │ │ │ │ │ ├── suffix.tsx │ │ │ │ │ ├── switch.md │ │ │ │ │ └── switch.tsx │ │ │ │ ├── hooks/ │ │ │ │ │ ├── use-cursor.ts │ │ │ │ │ ├── use-input-height.ts │ │ │ │ │ ├── use-slot-builder.ts │ │ │ │ │ ├── use-slot-config-state.ts │ │ │ │ │ └── use-speech.ts │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.tsx │ │ │ │ ├── index.zh-CN.md │ │ │ │ ├── interface.ts │ │ │ │ └── style/ │ │ │ │ ├── header.ts │ │ │ │ ├── index.ts │ │ │ │ ├── slot-textarea.ts │ │ │ │ └── switch.ts │ │ │ ├── sources/ │ │ │ │ ├── Sources.tsx │ │ │ │ ├── __tests__/ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ ├── demo-extend.test.ts.snap │ │ │ │ │ │ ├── demo.test.ts.snap │ │ │ │ │ │ └── index.test.tsx.snap │ │ │ │ │ ├── demo-extend.test.ts │ │ │ │ │ ├── demo.test.ts │ │ │ │ │ ├── image.test.ts │ │ │ │ │ └── index.test.tsx │ │ │ │ ├── components/ │ │ │ │ │ └── CarouselCard.tsx │ │ │ │ ├── demo/ │ │ │ │ │ ├── _semantic.tsx │ │ │ │ │ ├── basic.md │ │ │ │ │ ├── basic.tsx │ │ │ │ │ ├── expand.md │ │ │ │ │ ├── expand.tsx │ │ │ │ │ ├── icon.md │ │ │ │ │ ├── icon.tsx │ │ │ │ │ ├── inline.md │ │ │ │ │ └── inline.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.tsx │ │ │ │ ├── index.zh-CN.md │ │ │ │ └── style/ │ │ │ │ └── index.ts │ │ │ ├── style/ │ │ │ │ ├── index.ts │ │ │ │ └── motion/ │ │ │ │ ├── blink.ts │ │ │ │ ├── collapse.ts │ │ │ │ ├── fade.ts │ │ │ │ └── init.ts │ │ │ ├── suggestion/ │ │ │ │ ├── __tests__/ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ ├── demo-extend.test.ts.snap │ │ │ │ │ │ ├── demo.test.ts.snap │ │ │ │ │ │ └── index.test.tsx.snap │ │ │ │ │ ├── demo-extend.test.ts │ │ │ │ │ ├── demo.test.ts │ │ │ │ │ ├── image.test.ts │ │ │ │ │ ├── index.test.tsx │ │ │ │ │ └── useActive.test.tsx │ │ │ │ ├── demo/ │ │ │ │ │ ├── _semantic.tsx │ │ │ │ │ ├── basic.md │ │ │ │ │ ├── basic.tsx │ │ │ │ │ ├── block.md │ │ │ │ │ ├── block.tsx │ │ │ │ │ ├── trigger.md │ │ │ │ │ └── trigger.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.tsx │ │ │ │ ├── index.zh-CN.md │ │ │ │ ├── style/ │ │ │ │ │ └── index.ts │ │ │ │ └── useActive.ts │ │ │ ├── theme/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── theme.test.tsx │ │ │ │ ├── context.ts │ │ │ │ ├── genStyleUtils.ts │ │ │ │ ├── interface/ │ │ │ │ │ ├── alias.ts │ │ │ │ │ ├── components.ts │ │ │ │ │ ├── cssinjs-utils.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── maps/ │ │ │ │ │ │ ├── colors.ts │ │ │ │ │ │ ├── font.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── size.ts │ │ │ │ │ │ └── style.ts │ │ │ │ │ ├── presetColors.ts │ │ │ │ │ └── seeds.ts │ │ │ │ ├── themes/ │ │ │ │ │ └── seed.ts │ │ │ │ ├── useToken.ts │ │ │ │ └── util/ │ │ │ │ ├── alias.ts │ │ │ │ └── getAlphaColor.ts │ │ │ ├── think/ │ │ │ │ ├── Think.tsx │ │ │ │ ├── __tests__/ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ ├── demo-extend.test.ts.snap │ │ │ │ │ │ ├── demo.test.ts.snap │ │ │ │ │ │ └── index.test.tsx.snap │ │ │ │ │ ├── demo-extend.test.ts │ │ │ │ │ ├── demo.test.ts │ │ │ │ │ ├── image.test.ts │ │ │ │ │ └── index.test.tsx │ │ │ │ ├── demo/ │ │ │ │ │ ├── _semantic.tsx │ │ │ │ │ ├── basic.md │ │ │ │ │ ├── basic.tsx │ │ │ │ │ ├── expand.md │ │ │ │ │ ├── expand.tsx │ │ │ │ │ ├── status.md │ │ │ │ │ └── status.tsx │ │ │ │ ├── icons/ │ │ │ │ │ └── think.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.tsx │ │ │ │ ├── index.zh-CN.md │ │ │ │ └── style/ │ │ │ │ └── index.ts │ │ │ ├── thought-chain/ │ │ │ │ ├── Item.tsx │ │ │ │ ├── Node.tsx │ │ │ │ ├── Status.tsx │ │ │ │ ├── __tests__/ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ ├── demo-extend.test.ts.snap │ │ │ │ │ │ ├── demo.test.ts.snap │ │ │ │ │ │ ├── index.test.tsx.snap │ │ │ │ │ │ └── item.test.tsx.snap │ │ │ │ │ ├── demo-extend.test.ts │ │ │ │ │ ├── demo.test.ts │ │ │ │ │ ├── image.test.ts │ │ │ │ │ ├── index.test.tsx │ │ │ │ │ └── item.test.tsx │ │ │ │ ├── demo/ │ │ │ │ │ ├── _semantic-item.tsx │ │ │ │ │ ├── _semantic.tsx │ │ │ │ │ ├── basic.md │ │ │ │ │ ├── basic.tsx │ │ │ │ │ ├── collapsible.md │ │ │ │ │ ├── collapsible.tsx │ │ │ │ │ ├── controlled-collapsible.md │ │ │ │ │ ├── controlled-collapsible.tsx │ │ │ │ │ ├── customization.md │ │ │ │ │ ├── customization.tsx │ │ │ │ │ ├── nested.md │ │ │ │ │ ├── nested.tsx │ │ │ │ │ ├── simple.md │ │ │ │ │ ├── simple.tsx │ │ │ │ │ ├── single-row.md │ │ │ │ │ ├── single-row.tsx │ │ │ │ │ ├── status.md │ │ │ │ │ └── status.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.tsx │ │ │ │ ├── index.zh-CN.md │ │ │ │ ├── interface.ts │ │ │ │ └── style/ │ │ │ │ ├── index.ts │ │ │ │ └── item.ts │ │ │ ├── version/ │ │ │ │ └── index.ts │ │ │ ├── welcome/ │ │ │ │ ├── __tests__/ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ ├── demo-extend.test.ts.snap │ │ │ │ │ │ ├── demo.test.ts.snap │ │ │ │ │ │ └── index.test.tsx.snap │ │ │ │ │ ├── demo-extend.test.ts │ │ │ │ │ ├── demo.test.ts │ │ │ │ │ ├── image.test.ts │ │ │ │ │ └── index.test.tsx │ │ │ │ ├── demo/ │ │ │ │ │ ├── _semantic.tsx │ │ │ │ │ ├── background.md │ │ │ │ │ ├── background.tsx │ │ │ │ │ ├── basic.md │ │ │ │ │ ├── basic.tsx │ │ │ │ │ ├── variant.md │ │ │ │ │ └── variant.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.tsx │ │ │ │ ├── index.zh-CN.md │ │ │ │ └── style/ │ │ │ │ └── index.ts │ │ │ └── x-provider/ │ │ │ ├── __tests__/ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── index.test.tsx.snap │ │ │ │ ├── cssVar.test.tsx │ │ │ │ ├── image.test.ts │ │ │ │ └── index.test.tsx │ │ │ ├── context.ts │ │ │ ├── demo/ │ │ │ │ ├── direction.md │ │ │ │ ├── direction.tsx │ │ │ │ ├── locale.md │ │ │ │ ├── locale.tsx │ │ │ │ ├── shortcutKeys.md │ │ │ │ ├── shortcutKeys.tsx │ │ │ │ ├── theme.md │ │ │ │ └── theme.tsx │ │ │ ├── hooks/ │ │ │ │ └── use-x-provider-context.ts │ │ │ ├── index.en-US.md │ │ │ ├── index.tsx │ │ │ └── index.zh-CN.md │ │ ├── docs/ │ │ │ ├── playground/ │ │ │ │ ├── _utils/ │ │ │ │ │ └── local.ts │ │ │ │ ├── agent-tbox.en-US.md │ │ │ │ ├── agent-tbox.tsx │ │ │ │ ├── agent-tbox.zh-CN.md │ │ │ │ ├── copilot.en-US.md │ │ │ │ ├── copilot.tsx │ │ │ │ ├── copilot.zh-CN.md │ │ │ │ ├── independent.en-US.md │ │ │ │ ├── independent.tsx │ │ │ │ ├── independent.zh-CN.md │ │ │ │ ├── ultramodern.en-US.md │ │ │ │ ├── ultramodern.tsx │ │ │ │ └── ultramodern.zh-CN.md │ │ │ ├── react/ │ │ │ │ ├── agent-use-tbox.en-US.md │ │ │ │ ├── agent-use-tbox.zh-CN.md │ │ │ │ ├── common-props.en-US.md │ │ │ │ ├── common-props.zh-CN.md │ │ │ │ ├── compatible-style.en-US.md │ │ │ │ ├── compatible-style.zh-CN.md │ │ │ │ ├── contributing.en-US.md │ │ │ │ ├── contributing.zh-CN.md │ │ │ │ ├── demo/ │ │ │ │ │ ├── qwen-sdk.tsx │ │ │ │ │ ├── qwen.tsx │ │ │ │ │ └── tbox.tsx │ │ │ │ ├── faq.en-US.md │ │ │ │ ├── faq.zh-CN.md │ │ │ │ ├── introduce.en-US.md │ │ │ │ ├── introduce.zh-CN.md │ │ │ │ ├── migration-v2.en-US.md │ │ │ │ ├── migration-v2.zh-CN.md │ │ │ │ ├── model-use-openai.en-US.md │ │ │ │ ├── model-use-openai.zh-CN.md │ │ │ │ ├── model-use-qwen.en-US.md │ │ │ │ ├── model-use-qwen.zh-CN.md │ │ │ │ ├── use-with-create-react-app.en-US.md │ │ │ │ ├── use-with-create-react-app.zh-CN.md │ │ │ │ ├── use-with-next.en-US.md │ │ │ │ ├── use-with-next.zh-CN.md │ │ │ │ ├── use-with-rsbuild.en-US.md │ │ │ │ ├── use-with-rsbuild.zh-CN.md │ │ │ │ ├── use-with-umi.en-US.md │ │ │ │ ├── use-with-umi.zh-CN.md │ │ │ │ ├── use-with-vite.en-US.md │ │ │ │ └── use-with-vite.zh-CN.md │ │ │ ├── spec/ │ │ │ │ ├── authentic-consistent.en-US.md │ │ │ │ ├── authentic-consistent.zh-CN.md │ │ │ │ ├── confirm-generation-process.en-US.md │ │ │ │ ├── confirm-generation-process.zh-CN.md │ │ │ │ ├── confirm.en-US.md │ │ │ │ ├── confirm.zh-CN.md │ │ │ │ ├── conversation-design.en-US.md │ │ │ │ ├── conversation-design.zh-CN.md │ │ │ │ ├── define-intention-type.en-US.md │ │ │ │ ├── define-intention-type.zh-CN.md │ │ │ │ ├── end.en-US.md │ │ │ │ ├── end.zh-CN.md │ │ │ │ ├── error.en-US.md │ │ │ │ ├── error.zh-CN.md │ │ │ │ ├── expression-user-input.en-US.md │ │ │ │ ├── expression-user-input.zh-CN.md │ │ │ │ ├── expression-user-send.en-US.md │ │ │ │ ├── expression-user-send.zh-CN.md │ │ │ │ ├── feedback-result-application.en-US.md │ │ │ │ ├── feedback-result-application.zh-CN.md │ │ │ │ ├── feedback-result-display.en-US.md │ │ │ │ ├── feedback-result-display.zh-CN.md │ │ │ │ ├── follow-up.en-US.md │ │ │ │ ├── follow-up.zh-CN.md │ │ │ │ ├── guide-intention-expression.en-US.md │ │ │ │ ├── guide-intention-expression.zh-CN.md │ │ │ │ ├── hint.en-US.md │ │ │ │ ├── hint.zh-CN.md │ │ │ │ ├── human-touch.en-US.md │ │ │ │ ├── human-touch.zh-CN.md │ │ │ │ ├── hybrid-ui-design.en-US.md │ │ │ │ ├── hybrid-ui-design.zh-CN.md │ │ │ │ ├── intention-introduce.en-US.md │ │ │ │ ├── intention-introduce.zh-CN.md │ │ │ │ ├── introduce.en-US.md │ │ │ │ ├── introduce.zh-CN.md │ │ │ │ ├── provide-intention-expectation.en-US.md │ │ │ │ ├── provide-intention-expectation.zh-CN.md │ │ │ │ ├── role-design.en-US.md │ │ │ │ ├── role-design.zh-CN.md │ │ │ │ ├── smooth-natural.en-US.md │ │ │ │ ├── smooth-natural.zh-CN.md │ │ │ │ ├── start.en-US.md │ │ │ │ ├── start.zh-CN.md │ │ │ │ ├── wake-up-ai-icon.en-US.md │ │ │ │ ├── wake-up-ai-icon.zh-CN.md │ │ │ │ ├── wake-up-welcome-message.en-US.md │ │ │ │ └── wake-up-welcome-message.zh-CN.md │ │ │ ├── x-markdown/ │ │ │ │ ├── chat-enhancement.en-US.md │ │ │ │ ├── chat-enhancement.zh-CN.md │ │ │ │ ├── components.en-US.md │ │ │ │ ├── components.zh-CN.md │ │ │ │ ├── custom-plugin.en-US.md │ │ │ │ ├── custom-plugin.zh-CN.md │ │ │ │ ├── data-display.en-US.md │ │ │ │ ├── data-display.zh-CN.md │ │ │ │ ├── demo/ │ │ │ │ │ ├── _utils/ │ │ │ │ │ │ ├── adx-markdown.ts │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── theme-markdown.ts │ │ │ │ │ ├── codeDemo/ │ │ │ │ │ │ ├── basic.tsx │ │ │ │ │ │ ├── escape-raw-html.tsx │ │ │ │ │ │ ├── link.tsx │ │ │ │ │ │ ├── plugin.tsx │ │ │ │ │ │ ├── renderer.tsx │ │ │ │ │ │ ├── streaming.tsx │ │ │ │ │ │ ├── supersets.tsx │ │ │ │ │ │ ├── tokenizer.tsx │ │ │ │ │ │ ├── walkTokens.tsx │ │ │ │ │ │ └── xss.tsx │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── codeHighlighter.tsx │ │ │ │ │ │ ├── custom.tsx │ │ │ │ │ │ ├── dataChart.tsx │ │ │ │ │ │ ├── infographic.tsx │ │ │ │ │ │ ├── mermaid.tsx │ │ │ │ │ │ ├── sources.tsx │ │ │ │ │ │ └── think.tsx │ │ │ │ │ ├── streaming/ │ │ │ │ │ │ ├── animation.tsx │ │ │ │ │ │ ├── combined.tsx │ │ │ │ │ │ ├── debug.tsx │ │ │ │ │ │ └── format.tsx │ │ │ │ │ ├── supersets/ │ │ │ │ │ │ ├── CustomPlugin/ │ │ │ │ │ │ │ ├── custom.tsx │ │ │ │ │ │ │ ├── marked.tsx │ │ │ │ │ │ │ └── plugin.css │ │ │ │ │ │ └── Latex/ │ │ │ │ │ │ └── basic.tsx │ │ │ │ │ └── themes/ │ │ │ │ │ ├── custom.tsx │ │ │ │ │ ├── dark.tsx │ │ │ │ │ ├── light.tsx │ │ │ │ │ └── switch.tsx │ │ │ │ ├── examples.en-US.md │ │ │ │ ├── examples.zh-CN.md │ │ │ │ ├── introduce.en-US.md │ │ │ │ ├── introduce.zh-CN.md │ │ │ │ ├── playground.en-US.md │ │ │ │ ├── playground.tsx │ │ │ │ ├── playground.zh-CN.md │ │ │ │ ├── plugin-latex.en-US.md │ │ │ │ ├── plugin-latex.zh-CN.md │ │ │ │ ├── plugins.en-US.md │ │ │ │ ├── plugins.zh-CN.md │ │ │ │ ├── rich-text.en-US.md │ │ │ │ ├── rich-text.zh-CN.md │ │ │ │ ├── streaming.en-US.md │ │ │ │ ├── streaming.zh-CN.md │ │ │ │ ├── themes.en-US.md │ │ │ │ └── themes.zh-CN.md │ │ │ ├── x-sdk/ │ │ │ │ ├── chat-provider-custom.en-US.md │ │ │ │ ├── chat-provider-custom.zh-CN.md │ │ │ │ ├── chat-provider-deepseek.en-US.md │ │ │ │ ├── chat-provider-deepseek.zh-CN.md │ │ │ │ ├── chat-provider-open-ai.en-US.md │ │ │ │ ├── chat-provider-open-ai.zh-CN.md │ │ │ │ ├── chat-provider.en-US.md │ │ │ │ ├── chat-provider.zh-CN.md │ │ │ │ ├── demos/ │ │ │ │ │ ├── chat-providers/ │ │ │ │ │ │ ├── custom-provider-width-ui.md │ │ │ │ │ │ ├── custom-provider-width-ui.tsx │ │ │ │ │ │ ├── deep-seek-chat-provider.md │ │ │ │ │ │ ├── deep-seek-chat-provider.tsx │ │ │ │ │ │ ├── default-chat-provider-width-ui.md │ │ │ │ │ │ ├── default-chat-provider-width-ui.tsx │ │ │ │ │ │ ├── default-chat-provider.md │ │ │ │ │ │ ├── default-chat-provider.tsx │ │ │ │ │ │ ├── open-ai-chat-provider.md │ │ │ │ │ │ └── open-ai-chat-provider.tsx │ │ │ │ │ ├── x-chat/ │ │ │ │ │ │ ├── async-defaultMessages.md │ │ │ │ │ │ ├── async-defaultMessages.tsx │ │ │ │ │ │ ├── custom-request-fetch-en.tsx │ │ │ │ │ │ ├── custom-request-fetch.md │ │ │ │ │ │ ├── custom-request-fetch.tsx │ │ │ │ │ │ ├── deepSeek.md │ │ │ │ │ │ ├── deepSeek.tsx │ │ │ │ │ │ ├── defaultMessages.md │ │ │ │ │ │ ├── defaultMessages.tsx │ │ │ │ │ │ ├── developer.md │ │ │ │ │ │ ├── developer.tsx │ │ │ │ │ │ ├── openai-callback.md │ │ │ │ │ │ ├── openai-callback.tsx │ │ │ │ │ │ ├── openai.md │ │ │ │ │ │ ├── openai.tsx │ │ │ │ │ │ ├── request-openai-node.md │ │ │ │ │ │ └── request-openai-node.tsx │ │ │ │ │ ├── x-conversations/ │ │ │ │ │ │ ├── async-defaultMessages.md │ │ │ │ │ │ ├── async-defaultMessages.tsx │ │ │ │ │ │ ├── basic.md │ │ │ │ │ │ ├── basic.tsx │ │ │ │ │ │ ├── multi-instances.md │ │ │ │ │ │ ├── multi-instances.tsx │ │ │ │ │ │ ├── operations.md │ │ │ │ │ │ ├── operations.tsx │ │ │ │ │ │ ├── session-key.md │ │ │ │ │ │ ├── session-key.tsx │ │ │ │ │ │ ├── with-x-chat.md │ │ │ │ │ │ └── with-x-chat.tsx │ │ │ │ │ ├── x-request/ │ │ │ │ │ │ ├── basic.md │ │ │ │ │ │ ├── basic.tsx │ │ │ │ │ │ ├── custom-params-headers.md │ │ │ │ │ │ ├── custom-params-headers.tsx │ │ │ │ │ │ ├── custom-transformer.md │ │ │ │ │ │ ├── custom-transformer.tsx │ │ │ │ │ │ ├── manual.md │ │ │ │ │ │ ├── manual.tsx │ │ │ │ │ │ ├── stream-separator.md │ │ │ │ │ │ ├── stream-separator.tsx │ │ │ │ │ │ ├── stream-timeout.md │ │ │ │ │ │ ├── stream-timeout.tsx │ │ │ │ │ │ ├── timeout.md │ │ │ │ │ │ └── timeout.tsx │ │ │ │ │ └── x-stream/ │ │ │ │ │ ├── custom-protocol.md │ │ │ │ │ ├── custom-protocol.tsx │ │ │ │ │ ├── default-protocol.md │ │ │ │ │ └── default-protocol.tsx │ │ │ │ ├── introduce.en-US.md │ │ │ │ ├── introduce.zh-CN.md │ │ │ │ ├── use-x-chat.en-US.md │ │ │ │ ├── use-x-chat.zh-CN.md │ │ │ │ ├── use-x-conversations.en-US.md │ │ │ │ ├── use-x-conversations.zh-CN.md │ │ │ │ ├── x-request.en-US.md │ │ │ │ ├── x-request.zh-CN.md │ │ │ │ ├── x-stream.en-US.md │ │ │ │ └── x-stream.zh-CN.md │ │ │ └── x-skill/ │ │ │ ├── introduce.en-US.md │ │ │ ├── introduce.zh-CN.md │ │ │ ├── prompt.en-US.md │ │ │ ├── prompt.zh-CN.md │ │ │ ├── skills.en-US.md │ │ │ └── skills.zh-CN.md │ │ ├── index.js │ │ ├── jest-puppeteer.config.js │ │ ├── mako.config.json │ │ ├── package.json │ │ ├── scripts/ │ │ │ ├── __snapshots__/ │ │ │ │ └── check-site.ts.snap │ │ │ ├── check-cssinjs.tsx │ │ │ ├── check-site.ts │ │ │ ├── check-version-md.ts │ │ │ ├── ci-mock-project-build.sh │ │ │ ├── collect-token-statistic.ts │ │ │ ├── generate-authors.ts │ │ │ ├── generate-component-changelog.ts │ │ │ ├── generate-cssinjs.ts │ │ │ ├── generate-token-meta.ts │ │ │ ├── generate-version.ts │ │ │ ├── previewEditor/ │ │ │ │ └── template.html │ │ │ ├── print-changelog.ts │ │ │ ├── set-node-options.ts │ │ │ ├── tsconfig.json │ │ │ └── visual-regression/ │ │ │ ├── build.ts │ │ │ ├── convert.ts │ │ │ ├── report-template.html │ │ │ └── upload.js │ │ ├── tests/ │ │ │ ├── __mocks__/ │ │ │ │ ├── @rc-component/ │ │ │ │ │ ├── trigger.tsx │ │ │ │ │ └── virtual-list.ts │ │ │ │ ├── copy-to-clipboard.ts │ │ │ │ └── mermaid.js │ │ │ ├── __snapshots__/ │ │ │ │ ├── changelog.test.ts.snap │ │ │ │ └── index.test.ts.snap │ │ │ ├── changelog.test.ts │ │ │ ├── dekko/ │ │ │ │ ├── dist.test.ts │ │ │ │ ├── index.test.ts │ │ │ │ ├── lib.test.ts │ │ │ │ └── use-client.test.ts │ │ │ ├── index.html │ │ │ ├── index.test.ts │ │ │ ├── setup-streams.ts │ │ │ ├── setup.ts │ │ │ ├── setupAfterEnv.ts │ │ │ ├── shared/ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── demoTest.tsx.snap │ │ │ │ ├── accessibilityTest.tsx │ │ │ │ ├── demoTest.tsx │ │ │ │ ├── demoTestContext.ts │ │ │ │ ├── excludeWarning.ts │ │ │ │ ├── focusTest.tsx │ │ │ │ ├── imageTest.tsx │ │ │ │ ├── mountTest.tsx │ │ │ │ ├── rootPropsTest.tsx │ │ │ │ ├── rtlTest.tsx │ │ │ │ └── themeTest.tsx │ │ │ └── utils.tsx │ │ ├── tsconfig.json │ │ └── typings/ │ │ ├── custom-typings.d.ts │ │ ├── index.d.ts │ │ └── jest.d.ts │ ├── x-markdown/ │ │ ├── .fatherrc.ts │ │ ├── .jest.js │ │ ├── BUG_VERSIONS.json │ │ ├── LICENSE │ │ ├── README-zh_CN.md │ │ ├── README.md │ │ ├── jest-puppeteer.config.js │ │ ├── mako.config.json │ │ ├── package.json │ │ ├── scripts/ │ │ │ ├── generate-plugin-meta.ts │ │ │ └── generate-version.ts │ │ ├── src/ │ │ │ ├── XMarkdown/ │ │ │ │ ├── AnimationText.tsx │ │ │ │ ├── DebugPanel/ │ │ │ │ │ ├── DebugPanel.css │ │ │ │ │ ├── DebugPanel.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── __benchmark__/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── components/ │ │ │ │ │ │ └── MarkdownRenderer.tsx │ │ │ │ │ ├── playwright/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── playwright-ct.config.ts │ │ │ │ │ ├── scripts/ │ │ │ │ │ │ ├── check-performance.js │ │ │ │ │ │ └── run-benchmark.js │ │ │ │ │ └── tests/ │ │ │ │ │ ├── benchmark.config.ts │ │ │ │ │ ├── performance.spec.tsx │ │ │ │ │ └── test.md │ │ │ │ ├── __tests__/ │ │ │ │ │ ├── AnimationText.test.tsx │ │ │ │ │ ├── DebugPanel.test.tsx │ │ │ │ │ ├── Parser.test.ts │ │ │ │ │ ├── Renderer.test.ts │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ ├── DebugPanel.test.tsx.snap │ │ │ │ │ │ └── index.test.tsx.snap │ │ │ │ │ ├── hooks.test.tsx │ │ │ │ │ └── index.test.tsx │ │ │ │ ├── core/ │ │ │ │ │ ├── Parser.ts │ │ │ │ │ ├── Renderer.ts │ │ │ │ │ ├── detectUnclosedComponentTags.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── hooks/ │ │ │ │ │ ├── index.ts │ │ │ │ │ └── useStreaming.ts │ │ │ │ ├── index.css │ │ │ │ ├── index.tsx │ │ │ │ ├── interface.ts │ │ │ │ └── utils/ │ │ │ │ └── tail.ts │ │ │ ├── index.ts │ │ │ ├── plugins/ │ │ │ │ ├── Latex/ │ │ │ │ │ ├── __tests__/ │ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ │ └── index.test.tsx.snap │ │ │ │ │ │ └── index.test.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── type.ts │ │ │ │ └── version/ │ │ │ │ └── index.ts │ │ │ ├── themes/ │ │ │ │ ├── dark.css │ │ │ │ └── light.css │ │ │ └── version/ │ │ │ └── index.ts │ │ ├── tests/ │ │ │ ├── dekko/ │ │ │ │ ├── dist.test.ts │ │ │ │ ├── index.test.ts │ │ │ │ └── lib.test.ts │ │ │ ├── setup.ts │ │ │ └── setupAfterEnv.ts │ │ ├── tsconfig.json │ │ └── typings/ │ │ ├── custom-typings.d.ts │ │ ├── index.d.ts │ │ └── jest.d.ts │ ├── x-sdk/ │ │ ├── .fatherrc.ts │ │ ├── .jest.js │ │ ├── BUG_VERSIONS.json │ │ ├── LICENSE │ │ ├── README-zh_CN.md │ │ ├── README.md │ │ ├── mako.config.json │ │ ├── package.json │ │ ├── scripts/ │ │ │ └── generate-version.ts │ │ ├── src/ │ │ │ ├── _util/ │ │ │ │ └── type.ts │ │ │ ├── chat-providers/ │ │ │ │ ├── AbstractChatProvider.ts │ │ │ │ ├── DeepSeekChatProvider.ts │ │ │ │ ├── DefaultChatProvider.ts │ │ │ │ ├── OpenAIChatProvider.ts │ │ │ │ ├── __test__/ │ │ │ │ │ └── providers.test.ts │ │ │ │ ├── index.ts │ │ │ │ └── types/ │ │ │ │ └── model.ts │ │ │ ├── index.ts │ │ │ ├── version/ │ │ │ │ └── index.ts │ │ │ ├── x-chat/ │ │ │ │ ├── __test__/ │ │ │ │ │ ├── index.test.tsx │ │ │ │ │ ├── store.test.ts │ │ │ │ │ └── useSyncState.test.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── store.ts │ │ │ │ └── useSyncState.ts │ │ │ ├── x-conversations/ │ │ │ │ ├── __test__/ │ │ │ │ │ └── index.test.tsx │ │ │ │ ├── index.ts │ │ │ │ └── store.ts │ │ │ ├── x-mcp-client/ │ │ │ │ ├── __test__/ │ │ │ │ │ └── index.test.ts │ │ │ │ └── index.ts │ │ │ ├── x-request/ │ │ │ │ ├── __test__/ │ │ │ │ │ ├── abort.test.ts │ │ │ │ │ ├── index.test.ts │ │ │ │ │ └── x-fetch.test.tsx │ │ │ │ ├── index.ts │ │ │ │ └── x-fetch.ts │ │ │ └── x-stream/ │ │ │ ├── __test__/ │ │ │ │ └── index.test.ts │ │ │ └── index.ts │ │ ├── tests/ │ │ │ ├── dekko/ │ │ │ │ ├── dist.test.ts │ │ │ │ ├── index.test.ts │ │ │ │ └── lib.test.ts │ │ │ ├── index.test.ts │ │ │ ├── setup-streams.ts │ │ │ ├── setup.ts │ │ │ └── utils.tsx │ │ ├── tsconfig.json │ │ └── typings/ │ │ ├── custom-typings.d.ts │ │ ├── index.d.ts │ │ └── jest.d.ts │ └── x-skill/ │ ├── .claude-plugin/ │ │ └── marketplace.json │ ├── .fatherrc.ts │ ├── .gitignore │ ├── .skill.json │ ├── LICENSE │ ├── README-zh_CN.md │ ├── README.md │ ├── package.json │ ├── scripts/ │ │ ├── config.ts │ │ ├── dekko.ts │ │ ├── generate-meta.ts │ │ ├── generate-version.ts │ │ ├── skillApi.ts │ │ └── typings/ │ │ └── custom-typings.d.ts │ ├── skills/ │ │ ├── use-x-chat/ │ │ │ ├── SKILL.md │ │ │ └── reference/ │ │ │ ├── API.md │ │ │ ├── CORE.md │ │ │ └── EXAMPLES.md │ │ ├── x-chat-provider/ │ │ │ ├── SKILL.md │ │ │ └── reference/ │ │ │ └── EXAMPLES.md │ │ ├── x-markdown/ │ │ │ ├── SKILL.md │ │ │ └── reference/ │ │ │ ├── API.md │ │ │ ├── CORE.md │ │ │ ├── EXTENSIONS.md │ │ │ └── STREAMING.md │ │ └── x-request/ │ │ ├── SKILL.md │ │ └── reference/ │ │ ├── API.md │ │ ├── CORE.md │ │ └── EXAMPLES_SERVICE_PROVIDER.md │ ├── skills-zh/ │ │ ├── use-x-chat/ │ │ │ ├── SKILL.md │ │ │ └── reference/ │ │ │ ├── API.md │ │ │ ├── CORE.md │ │ │ └── EXAMPLES.md │ │ ├── x-chat-provider/ │ │ │ ├── SKILL.md │ │ │ └── reference/ │ │ │ └── EXAMPLES.md │ │ ├── x-markdown/ │ │ │ ├── SKILL.md │ │ │ └── reference/ │ │ │ ├── API.md │ │ │ ├── CORE.md │ │ │ ├── EXTENSIONS.md │ │ │ └── STREAMING.md │ │ └── x-request/ │ │ ├── SKILL.md │ │ └── reference/ │ │ ├── API.md │ │ ├── CORE.md │ │ └── EXAMPLES_SERVICE_PROVIDER.md │ ├── src/ │ │ ├── getSkillRepo.ts │ │ ├── help.ts │ │ ├── index.ts │ │ ├── locale/ │ │ │ └── index.ts │ │ └── skill-meta.json │ └── tsconfig.json ├── scripts/ │ ├── check-repo.ts │ ├── pre-publish.ts │ └── synchronize-version.ts ├── tsconfig.base.json └── tsconfig.json