Compare commits

...

5 Commits

Author SHA1 Message Date
bc5fcb1fa9 chore(tour):取消Tour,因为没有和平台信息绑定 2026-06-15 09:44:44 +08:00
f14d0fe6fd feat(suggestion): 背景色变化 2026-06-15 09:41:29 +08:00
015313cb83 chore: 去除字体放大的多余部分 2026-06-15 09:28:00 +08:00
39eb29d54e fix(brand): 修复品牌根选择器变量覆盖
将品牌类选择器调整为 :root.brand-*,确保品牌变量能够稳定覆盖默认 :root 变量。\n补充品牌选择器测试,校验品牌块中包含 surface elevated 颜色变量。
2026-06-15 09:26:30 +08:00
6adc8cbedf feat(suggestionList): 仅在xclaw中显示 2026-06-15 09:08:18 +08:00
5 changed files with 15 additions and 12 deletions

View File

@ -68,7 +68,7 @@ export const Suggestion = ({
className={cn( className={cn(
"cursor-pointer w-[216px] rounded-full px-[20px] py-[15px] text-sm font-normal", "cursor-pointer w-[216px] rounded-full px-[20px] py-[15px] text-sm font-normal",
"border-none bg-ws-surface-subtle text-ws-text-muted", "border-none bg-ws-surface-subtle text-ws-text-muted",
"hover:bg-ws-surface-elevated hover:text-ws-base-1", "hover:bg-ws-interactive-hover hover:text-ws-base-1",
className, className,
)} )}
onClick={handleClick} onClick={handleClick}

View File

@ -1807,9 +1807,6 @@ export const ArtifactZoomSelector = ({
className="w-52 p-[20px]" className="w-52 p-[20px]"
> >
<div className="mb-2 flex items-center justify-between"> <div className="mb-2 flex items-center justify-between">
<span className="text-muted-foreground text-xs">
{ZOOM_LEVELS[0]}%
</span>
<span className="text-foreground text-xs font-medium"> <span className="text-foreground text-xs font-medium">
{value}% {value}%
</span> </span>

View File

@ -85,6 +85,7 @@ import {
} from "@/core/threads/reference-events"; } from "@/core/threads/reference-events";
import { useIframeSkill } from "@/hooks/use-iframe-skill"; import { useIframeSkill } from "@/hooks/use-iframe-skill";
import { cn } from "@/lib/utils"; import { cn } from "@/lib/utils";
import { useBrand } from "@/core/brand/provider";
import { import {
ModelSelector, ModelSelector,
@ -306,6 +307,8 @@ export function InputBox({
} }
}, [mentionOpen, refetchReferenceFiles]); }, [mentionOpen, refetchReferenceFiles]);
const{ brand } = useBrand()
// Welcome 态下禁用收缩,始终保持展开 // Welcome 态下禁用收缩,始终保持展开
const effectiveIsFocused = const effectiveIsFocused =
(showWelcomeStyle ?? false) || isFocused || memoryPanelOpen; (showWelcomeStyle ?? false) || isFocused || memoryPanelOpen;
@ -799,7 +802,7 @@ export function InputBox({
}} }}
className="relative w-full" className="relative w-full"
> >
<Tour {/* <Tour
open={isInputToolsTourOpen} open={isInputToolsTourOpen}
onClose={closeInputToolsTour} onClose={closeInputToolsTour}
onFinish={finishInputToolsTour} onFinish={finishInputToolsTour}
@ -811,7 +814,7 @@ export function InputBox({
color: 'rgba(255,255,255, .8)', color: 'rgba(255,255,255, .8)',
}} }}
steps={inputToolsTourSteps} steps={inputToolsTourSteps}
/> /> */}
<AttachmentPreviewBar <AttachmentPreviewBar
references={references} references={references}
threadId={threadId} threadId={threadId}
@ -1106,14 +1109,13 @@ export function InputBox({
status={status} status={status}
/> />
</PromptInput> </PromptInput>
{/* TODO: 需要在sxwz中隐藏 */} {brand === "xclaw" && shouldShowSuggestionList && (
{/* {shouldShowSuggestionList && (
<SuggestionListContainer <SuggestionListContainer
ref={suggestionListTourRef} ref={suggestionListTourRef}
bootstrapAndLockSkills={iframeSkill.bootstrapAndLockSkills} bootstrapAndLockSkills={iframeSkill.bootstrapAndLockSkills}
isBootstrapping={iframeSkill.isBootstrapping} isBootstrapping={iframeSkill.isBootstrapping}
/> />
)} */} )}
{!disabled && {!disabled &&
!showWelcomeStyle && !showWelcomeStyle &&

View File

@ -10,4 +10,6 @@ const globalsCss = readFileSync(path.join(currentDir, "globals.css"), "utf8");
void test("brand selectors target :root to outrank default root variables", () => { void test("brand selectors target :root to outrank default root variables", () => {
assert.match(globalsCss, /:root\.brand-xclaw\s*\{/); assert.match(globalsCss, /:root\.brand-xclaw\s*\{/);
assert.match(globalsCss, /:root\.brand-sxwz\s*\{/); assert.match(globalsCss, /:root\.brand-sxwz\s*\{/);
assert.match(globalsCss, /:root\.brand-xclaw\s*\{[\s\S]*--ws-color-surface-elevated\s*:/);
assert.match(globalsCss, /:root\.brand-sxwz\s*\{[\s\S]*--ws-color-surface-elevated\s*:/);
}); });

View File

@ -68,16 +68,18 @@
@source inline("bg-{background,muted,primary,secondary,accent}"); @source inline("bg-{background,muted,primary,secondary,accent}");
@source inline("border-{border,input}"); @source inline("border-{border,input}");
.brand-xclaw { :root.brand-xclaw {
--brand-color-primary: #150033; --brand-color-primary: #150033;
--brand-color-primary-10: #1500331a; --brand-color-primary-10: #1500331a;
--brand-color-primary-60: #15003399; --brand-color-primary-60: #15003399;
--ws-color-surface-elevated: #fbfafc;
} }
.brand-sxwz { :root.brand-sxwz {
--brand-color-primary: #000f33; --brand-color-primary: #000f33;
--brand-color-primary-10: #000f331a; --brand-color-primary-10: #000f331a;
--brand-color-primary-60: #000f3399; --brand-color-primary-60: #000f3399;
--ws-color-surface-elevated: #f8f9fa;
} }
@custom-variant dark (&:is(.dark *)); @custom-variant dark (&:is(.dark *));
@ -647,7 +649,7 @@ code {
.workspace-code-editor .ͼ4k, .workspace-code-editor .ͼ4k,
.workspace-code-editor .ͼ4s, .workspace-code-editor .ͼ4s,
.workspace-code-editor .ͼ4q .workspace-code-editor .ͼ4q,
.workspace-code-editor .ͼ4r { .workspace-code-editor .ͼ4r {
color: var(--ws-color-fg-primary); color: var(--ws-color-fg-primary);
} }