feat: tweak color and input styles (#627)

This commit is contained in:
Jeremy 2024-12-17 15:36:51 +05:30 committed by GitHub
parent 9778631d6f
commit f7a10d3813
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 48 additions and 25 deletions

View file

@ -30,9 +30,9 @@
--card-foreground: 240 10% 3.9%; --card-foreground: 240 10% 3.9%;
--popover: 0 0% 100%; --popover: 0 0% 100%;
--popover-foreground: 240 10% 3.9%; --popover-foreground: 240 10% 3.9%;
--primary: 217 100% 45%; --primary: 240 5.9% 10%;
--primary-foreground: 0 0% 98%; --primary-foreground: 0 0% 98%;
--secondary: 213 100% 96%; --secondary: 240 4.8% 95.9%;
--secondary-foreground: 240 5.9% 10%; --secondary-foreground: 240 5.9% 10%;
--muted: 240 4.8% 95.9%; --muted: 240 4.8% 95.9%;
--muted-foreground: 240 3.8% 46.1%; --muted-foreground: 240 3.8% 46.1%;
@ -40,7 +40,7 @@
--accent-foreground: 240 5.9% 10%; --accent-foreground: 240 5.9% 10%;
--destructive: 0 84.2% 60.2%; --destructive: 0 84.2% 60.2%;
--destructive-foreground: 0 0% 98%; --destructive-foreground: 0 0% 98%;
--border: 214 32% 91%; --border: 240 5.9% 90%;
--input: 240 5.9% 90%; --input: 240 5.9% 90%;
--ring: 240 10% 3.9%; --ring: 240 10% 3.9%;
--chart-1: 12 76% 61%; --chart-1: 12 76% 61%;
@ -65,8 +65,8 @@
--card-foreground: 0 0% 98%; --card-foreground: 0 0% 98%;
--popover: 240 10% 3.9%; --popover: 240 10% 3.9%;
--popover-foreground: 0 0% 98%; --popover-foreground: 0 0% 98%;
--primary: 208.69 100% 24.18%; --primary: 0 0% 98%;
--primary-foreground: 207 100% 96%; --primary-foreground: 240 5.9% 10%;
--secondary: 240 3.7% 15.9%; --secondary: 240 3.7% 15.9%;
--secondary-foreground: 0 0% 98%; --secondary-foreground: 0 0% 98%;
--muted: 240 3.7% 15.9%; --muted: 240 3.7% 15.9%;

View file

@ -1083,3 +1083,22 @@ export const LogsIcon = ({ size = 16 }: { size?: number }) => {
</svg> </svg>
); );
}; };
export const ImageIcon = ({ size = 16 }: { size?: number }) => {
return (
<svg
height={size}
strokeLinejoin="round"
viewBox="0 0 16 16"
width={size}
style={{ color: 'currentcolor' }}
>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M14.5 2.5H1.5V9.18933L2.96966 7.71967L3.18933 7.5H3.49999H6.63001H6.93933L6.96966 7.46967L10.4697 3.96967L11.5303 3.96967L14.5 6.93934V2.5ZM8.00066 8.55999L9.53034 10.0897L10.0607 10.62L9.00001 11.6807L8.46968 11.1503L6.31935 9H3.81065L1.53032 11.2803L1.5 11.3106V12.5C1.5 13.0523 1.94772 13.5 2.5 13.5H13.5C14.0523 13.5 14.5 13.0523 14.5 12.5V9.06066L11 5.56066L8.03032 8.53033L8.00066 8.55999ZM4.05312e-06 10.8107V12.5C4.05312e-06 13.8807 1.11929 15 2.5 15H13.5C14.8807 15 16 13.8807 16 12.5V9.56066L16.5607 9L16.0303 8.46967L16 8.43934V2.5V1H14.5H1.5H4.05312e-06V2.5V10.6893L-0.0606689 10.75L4.05312e-06 10.8107Z"
fill="currentColor"
></path>
</svg>
);
};

View file

@ -67,7 +67,7 @@ export function ModelSelector({
</div> </div>
)} )}
</div> </div>
<div className="text-primary dark:text-primary-foreground opacity-0 group-data-[active=true]/item:opacity-100"> <div className="text-foreground dark:text-foreground opacity-0 group-data-[active=true]/item:opacity-100">
<CheckCircleFillIcon /> <CheckCircleFillIcon />
</div> </div>
</DropdownMenuItem> </DropdownMenuItem>

View file

@ -23,7 +23,7 @@ import { useLocalStorage, useWindowSize } from 'usehooks-ts';
import { sanitizeUIMessages } from '@/lib/utils'; import { sanitizeUIMessages } from '@/lib/utils';
import { ArrowUpIcon, PaperclipIcon, StopIcon } from './icons'; import { ArrowUpIcon, ImageIcon, PaperclipIcon, StopIcon } from './icons';
import { PreviewAttachment } from './preview-attachment'; import { PreviewAttachment } from './preview-attachment';
import { Button } from './ui/button'; import { Button } from './ui/button';
import { Textarea } from './ui/textarea'; import { Textarea } from './ui/textarea';
@ -228,10 +228,10 @@ function PureMultimodalInput({
value={input} value={input}
onChange={handleInput} onChange={handleInput}
className={cx( className={cx(
'min-h-[24px] max-h-[calc(75dvh)] overflow-hidden resize-none rounded-xl !text-base bg-muted', 'min-h-[24px] max-h-[calc(75dvh)] overflow-hidden resize-none rounded-2xl !text-base bg-muted pb-10 dark:border-zinc-700',
className, className,
)} )}
rows={3} rows={2}
autoFocus autoFocus
onKeyDown={(event) => { onKeyDown={(event) => {
if (event.key === 'Enter' && !event.shiftKey) { if (event.key === 'Enter' && !event.shiftKey) {
@ -246,17 +246,21 @@ function PureMultimodalInput({
}} }}
/> />
{isLoading ? ( <div className="absolute bottom-0 p-2 w-fit flex flex-row justify-start">
<StopButton stop={stop} setMessages={setMessages} /> <AttachmentsButton fileInputRef={fileInputRef} isLoading={isLoading} />
) : ( </div>
<SendButton
input={input}
submitForm={submitForm}
uploadQueue={uploadQueue}
/>
)}
<AttachmentsButton fileInputRef={fileInputRef} isLoading={isLoading} /> <div className="absolute bottom-0 right-0 p-2 w-fit flex flex-row justify-end">
{isLoading ? (
<StopButton stop={stop} setMessages={setMessages} />
) : (
<SendButton
input={input}
submitForm={submitForm}
uploadQueue={uploadQueue}
/>
)}
</div>
</div> </div>
); );
} }
@ -281,15 +285,15 @@ function PureAttachmentsButton({
}) { }) {
return ( return (
<Button <Button
className="rounded-full p-1.5 h-fit absolute bottom-2 right-11 m-0.5 dark:border-zinc-700" className="rounded-md rounded-bl-lg p-[7px] h-fit dark:border-zinc-700 hover:dark:bg-zinc-900 hover:bg-zinc-200"
onClick={(event) => { onClick={(event) => {
event.preventDefault(); event.preventDefault();
fileInputRef.current?.click(); fileInputRef.current?.click();
}} }}
variant="outline"
disabled={isLoading} disabled={isLoading}
variant="ghost"
> >
<PaperclipIcon size={14} /> <ImageIcon size={14} />
</Button> </Button>
); );
} }
@ -305,7 +309,7 @@ function PureStopButton({
}) { }) {
return ( return (
<Button <Button
className="rounded-full p-1.5 h-fit absolute bottom-2 right-2 m-0.5 border dark:border-zinc-600" className="rounded-full p-1.5 h-fit border dark:border-zinc-600"
onClick={(event) => { onClick={(event) => {
event.preventDefault(); event.preventDefault();
stop(); stop();
@ -330,7 +334,7 @@ function PureSendButton({
}) { }) {
return ( return (
<Button <Button
className="rounded-full p-1.5 h-fit absolute bottom-2 right-2 m-0.5 border dark:border-zinc-600" className="rounded-full p-1.5 h-fit border dark:border-zinc-600"
onClick={(event) => { onClick={(event) => {
event.preventDefault(); event.preventDefault();
submitForm(); submitForm();

View file

@ -98,7 +98,7 @@ export function VisibilitySelector({
</div> </div>
)} )}
</div> </div>
<div className="text-primary dark:text-primary-foreground opacity-0 group-data-[active=true]/item:opacity-100"> <div className="text-foreground dark:text-foreground opacity-0 group-data-[active=true]/item:opacity-100">
<CheckCircleFillIcon /> <CheckCircleFillIcon />
</div> </div>
</DropdownMenuItem> </DropdownMenuItem>