Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions apps/mobile/src/components/ui/AppSymbol.ios.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import IconGitPullRequestDraft from "@tabler/icons-react-native/IconGitPullReque
import type { SFSymbol } from "expo-symbols";
import IconGitPullRequest from "@tabler/icons-react-native/IconGitPullRequest";
import IconFileDiff from "@tabler/icons-react-native/IconFileDiff";
import IconRobot from "@tabler/icons-react-native/IconRobot";
import { SymbolView as ExpoSymbolView } from "expo-symbols";
import { withUniwind } from "uniwind";
import type { AppSymbolViewProps } from "./AppSymbol";
Expand All @@ -22,6 +23,7 @@ const CUSTOM_ICONS = {
"git.pull-request.closed": IconGitPullRequestClosed,
"git.pull-request.draft": IconGitPullRequestDraft,
"git.commit": IconGitCommit,
robot: IconRobot,
};

function AppSymbolView(props: AppSymbolViewProps) {
Expand Down
19 changes: 17 additions & 2 deletions apps/mobile/src/components/ui/AppSymbol.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ import IconListNumbers from "@tabler/icons-react-native/IconListNumbers";
import IconMenu2 from "@tabler/icons-react-native/IconMenu2";
import IconMessageCircleQuestion from "@tabler/icons-react-native/IconMessageCircleQuestion";
import IconMessage from "@tabler/icons-react-native/IconMessage";
import IconMessageDots from "@tabler/icons-react-native/IconMessageDots";
import IconMessagePlus from "@tabler/icons-react-native/IconMessagePlus";
import IconMinus from "@tabler/icons-react-native/IconMinus";
import IconMoon from "@tabler/icons-react-native/IconMoon";
Expand All @@ -105,6 +106,7 @@ import IconPlayerStopFilled from "@tabler/icons-react-native/IconPlayerStopFille
import IconPlus from "@tabler/icons-react-native/IconPlus";
import IconQrcode from "@tabler/icons-react-native/IconQrcode";
import IconRefresh from "@tabler/icons-react-native/IconRefresh";
import IconRobot from "@tabler/icons-react-native/IconRobot";
import IconSearch from "@tabler/icons-react-native/IconSearch";
import IconShare from "@tabler/icons-react-native/IconShare";
import IconServer from "@tabler/icons-react-native/IconServer";
Expand Down Expand Up @@ -273,6 +275,8 @@ const ANDROID_ICON_BY_SF_SYMBOL = {
"bubble.left": IconMessage,
sparkles: IconSparkles,
"plus.bubble": IconMessagePlus,
"ellipsis.bubble": IconMessageDots,
robot: IconRobot,
"text.word.spacing": IconLetterSpacing,
"textformat.size": IconTypography,
"textformat.size.larger": IconTextIncrease,
Expand All @@ -281,17 +285,28 @@ const ANDROID_ICON_BY_SF_SYMBOL = {
trash: IconTrash,
wifi: IconWifi,
"wifi.slash": IconWifiOff,
"wrench.and.screwdriver": IconTool,
xmark: IconX,
"xmark.circle.fill": IconCircleXFilled,
} satisfies Partial<
Record<
SFSymbol | "git.pull-request.closed" | "git.pull-request.draft" | "git.commit" | "file.diff",
| SFSymbol
| "git.pull-request.closed"
| "git.pull-request.draft"
| "git.commit"
| "file.diff"
| "robot",
Icon
>
>;
const SF_ICON_LOOKUP: Partial<
Record<
SFSymbol | "git.pull-request.closed" | "git.pull-request.draft" | "git.commit" | "file.diff",
| SFSymbol
| "git.pull-request.closed"
| "git.pull-request.draft"
| "git.commit"
| "file.diff"
| "robot",
Icon
>
> = ANDROID_ICON_BY_SF_SYMBOL;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ export function PullRequestAgentRow(props: {
const row = (
<PullRequestCardRow
title={props.title ?? action.title}
icon="sparkles"
icon="hammer"
accessibilityLabel={props.title ?? action.title}
menu={agent.threads.length > 1}
onPress={
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ export function PullRequestActionToolbar(props: {
>
<View pointerEvents="none">
<IconButton
icon="sparkles"
icon="ellipsis.bubble"
accessibilityLabel={`${shortLabel} agent actions`}
disabled={agent.disabled}
/>
Expand Down Expand Up @@ -247,7 +247,7 @@ export function PullRequestActionToolbar(props: {
const agentControl = showAgentControls ? (
<Toolbar.Menu
identifier="pull-request-agent"
icon="sparkles"
icon="ellipsis.bubble"
title="AI helpers"
accessibilityLabel={`${shortLabel} agent actions`}
disabled={agent.disabled}
Expand Down
10 changes: 1 addition & 9 deletions apps/mobile/src/features/threads/ThreadFeed.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -861,21 +861,13 @@ function ArtifactTemplateCard(props: {
}) {
return (
<View className="my-2 min-w-0 flex-row items-center gap-3 rounded-2xl border border-border bg-card px-3 py-3">
<View className="relative h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-border bg-subtle">
<View className="h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-border bg-subtle">
<SymbolView
name={ARTIFACT_TEMPLATE_SYMBOL_BY_KIND[props.template.artifactKind]}
size={20}
tintColorClassName="accent-foreground-muted"
type="monochrome"
/>
<View className="absolute -right-1 -bottom-1 h-4 w-4 items-center justify-center rounded-full bg-fuchsia-500">
<SymbolView
name={{ ios: "sparkles", android: "auto_awesome" }}
size={9}
tintColor="white"
type="monochrome"
/>
</View>
</View>
<View className="min-w-0 flex-1">
<Text className="font-t3-bold text-sm text-foreground" numberOfLines={1}>
Expand Down
4 changes: 2 additions & 2 deletions apps/mobile/src/features/threads/thread-work-log.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -386,7 +386,7 @@ export function ShimmeringWorkContent(props: {
function workRowSymbolName(icon: ThreadFeedActivity["icon"]): WorkContentIcon {
switch (icon) {
case "agent":
return { ios: "sparkles", android: "auto_awesome" };
return "robot";
case "alert":
return { ios: "exclamationmark.triangle", android: "error" };
case "browser":
Expand Down Expand Up @@ -1529,7 +1529,7 @@ function toolGroupSummarySymbolName(kind: ToolGroupSummaryKind): AppSymbolName {
case "reasoning":
return { ios: "brain", android: "psychology" };
case "agent-tool":
return { ios: "sparkles", android: "auto_awesome" };
return "robot";
case "tone-tool":
return { ios: "bolt", android: "bolt" };
case "dynamic-tool":
Expand Down
6 changes: 1 addition & 5 deletions apps/web/src/components/ChatMarkdown.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ import {
MessageSquareWarningIcon,
OctagonAlertIcon,
PresentationIcon,
SparklesIcon,
TriangleAlertIcon,
type LucideIcon,
} from "lucide-react";
Expand Down Expand Up @@ -286,11 +285,8 @@ function CodexArtifactTemplateCard(props: {
data-skill-name={props.template.skillName}
>
<div className="flex min-w-0 flex-1 items-center gap-3">
<span className="relative flex size-9 shrink-0 items-center justify-center rounded-lg border border-border/70 bg-background text-muted-foreground shadow-xs">
<span className="flex size-9 shrink-0 items-center justify-center rounded-lg border border-border/70 bg-background text-muted-foreground shadow-xs">
<Icon aria-hidden className="size-5" />
<span className="absolute -right-1 -bottom-1 flex size-4 items-center justify-center rounded-full border border-background bg-primary text-primary-foreground shadow-xs">
<SparklesIcon aria-hidden className="size-2.5" />
</span>
</span>
<div className="min-w-0">
<div className="truncate text-sm font-medium text-foreground">
Expand Down
10 changes: 8 additions & 2 deletions apps/web/src/components/chat/runtimeModeConfig.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
import type { RuntimeMode } from "@t3tools/contracts";
import { type LucideIcon, LockIcon, PenLineIcon, ShieldOffIcon, SparklesIcon } from "lucide-react";
import {
type LucideIcon,
LockIcon,
PenLineIcon,
ShieldCheckIcon,
ShieldOffIcon,
} from "lucide-react";

export const runtimeModeConfig: Record<
RuntimeMode,
Expand All @@ -18,7 +24,7 @@ export const runtimeModeConfig: Record<
auto: {
label: "Auto",
description: "Supported providers approve routine actions; others still ask.",
icon: SparklesIcon,
icon: ShieldCheckIcon,
},
"full-access": {
label: "Full access",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import {
MessageCircleQuestionIcon,
MoreHorizontalIcon,
RotateCcwIcon,
SparklesIcon,
ScrollTextIcon,
Trash2Icon,
} from "lucide-react";
import { useId, useState } from "react";
Expand Down Expand Up @@ -272,7 +272,7 @@ export function PullRequestActionsMenu({
</MenuItem>
{canWriteGuide ? (
<MenuItem disabled={guideRunning} onClick={writeGuide}>
<SparklesIcon className="size-3.5" />
<ScrollTextIcon className="size-3.5" />
{guideRunning ? "Writing guide..." : !guideWritten ? "Write guide" : "Rewrite guide"}
</MenuItem>
) : null}
Expand Down
4 changes: 2 additions & 2 deletions apps/web/src/components/pullRequest/PullRequestGuideTab.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import type { EnvironmentId, PullRequestRef, PullRequestReviewGuideStop } from "@t3tools/contracts";
import { SparklesIcon, TriangleAlertIcon } from "lucide-react";
import { ScrollTextIcon, TriangleAlertIcon } from "lucide-react";
import { useEffect, useEffectEvent } from "react";

import type { ReviewCommentContext } from "~/reviewCommentContext";
Expand Down Expand Up @@ -90,7 +90,7 @@ export function PullRequestGuideTab({
const writeButton = (label: string, size: "sm" | "xs") =>
canWrite ? (
<Button size={size} variant="outline" disabled={running} onClick={() => void write()}>
{running ? <Spinner /> : <SparklesIcon aria-hidden className="size-3.5" />}
{running ? <Spinner /> : <ScrollTextIcon aria-hidden className="size-3.5" />}
{running ? "Reading the change..." : label}
</Button>
) : null;
Expand Down
Loading