UNPKG

@assistant-ui/react

Version:

React components for AI chat.

222 lines (164 loc) 5.65 kB
/* thread */ .aui-thread-root { @apply bg-aui-background box-border h-full; @apply [&>.aui-thread-viewport]:bg-inherit; } .aui-thread-viewport { @apply bg-aui-background flex h-full flex-col items-center overflow-y-scroll scroll-smooth px-4 pt-8; } .aui-thread-viewport-footer { @apply sticky bottom-0 mt-3 flex w-full max-w-2xl flex-col items-center justify-end rounded-t-lg bg-inherit pb-4; } .aui-thread-scroll-to-bottom { @apply absolute -top-8 rounded-full disabled:invisible; } .aui-thread-followup-suggestions { @apply flex min-h-8 items-center justify-center gap-2; } .aui-thread-followup-suggestion { @apply bg-aui-background hover:bg-aui-muted/80 rounded-full border px-3 py-1 text-sm transition-colors ease-in; } /* thread welcome */ .aui-thread-welcome-root { @apply flex w-full max-w-2xl flex-grow flex-col; } .aui-thread-welcome-center { @apply flex w-full flex-grow flex-col items-center justify-center; } .aui-thread-welcome-message { @apply mt-4 font-medium; } .aui-thread-welcome-suggestion-container { @apply mt-3 flex w-full items-stretch justify-center gap-4; } .aui-thread-welcome-suggestion { @apply hover:bg-aui-muted/80 flex max-w-sm grow basis-0 flex-col items-center justify-center rounded-lg border p-3 transition-colors ease-in; } .aui-thread-welcome-suggestion-text { @apply line-clamp-2 text-ellipsis text-sm font-semibold; } /* thread composer */ .aui-composer-root { @apply focus-within:border-aui-ring/20 flex w-full flex-wrap items-end rounded-lg border bg-inherit px-2.5 shadow-sm transition-colors ease-in; } .aui-composer-input { @apply placeholder:text-aui-muted-foreground max-h-40 flex-grow resize-none border-none bg-transparent px-2 py-4 text-sm outline-none focus:ring-0 disabled:cursor-not-allowed; } .aui-composer-send, .aui-composer-cancel, .aui-composer-attach { @apply my-2.5 size-8 p-2 transition-opacity ease-in; } .aui-composer-attachments { @apply flex w-full flex-row gap-3 px-10; } /* attachment */ .aui-attachment-root { @apply relative mt-3 flex h-12 w-40 items-center justify-center gap-2 rounded-lg border p-1; } .aui-attachment-preview-trigger { @apply hover:bg-aui-accent/50 cursor-pointer transition-colors; } .aui-attachment-thumb { @apply bg-aui-muted flex size-10 items-center justify-center rounded border text-sm; } .aui-attachment-text { @apply flex-grow basis-0; } .aui-attachment-name { @apply text-aui-muted-foreground line-clamp-1 text-ellipsis text-xs font-bold; } .aui-attachment-type { @apply text-aui-muted-foreground text-xs; } .aui-attachment-remove { @apply text-aui-muted-foreground [&>svg]:bg-aui-background absolute -right-3 -top-3 size-6 [&>svg]:size-4 [&>svg]:rounded-full; } /* user message */ .aui-user-message-root { @apply grid auto-rows-auto grid-cols-[minmax(72px,1fr)_auto] gap-y-2 [&>*]:col-start-2; @apply w-full max-w-2xl py-4; } :where(.aui-user-message-root) > .aui-user-action-bar-root { @apply col-start-1 row-start-2 mr-3 mt-2.5; } :where(.aui-user-message-root) > .aui-user-message-attachments { @apply col-span-full col-start-1 row-start-1; @apply justify-end; } :where(.aui-user-message-root) > .aui-user-message-content { @apply col-start-2 row-start-2; } :where(.aui-user-message-root) > .aui-branch-picker-root { @apply col-span-full col-start-1 row-start-3; @apply -mr-1 justify-end; } .aui-user-message-content { @apply bg-aui-muted text-aui-foreground max-w-xl break-words rounded-3xl px-5 py-2.5; } .aui-user-message-attachments { @apply flex w-full flex-row gap-3; } /* user action bar */ .aui-user-action-bar-root { @apply flex flex-col items-end; } /* edit composer */ .aui-edit-composer-root { @apply bg-aui-muted my-4 flex w-full max-w-2xl flex-col gap-2 rounded-xl; } .aui-edit-composer-input { @apply text-aui-foreground flex h-8 w-full resize-none bg-transparent p-4 pb-0 outline-none; } .aui-edit-composer-footer { @apply mx-3 mb-3 flex items-center justify-center gap-2 self-end; } /* assistant message */ .aui-assistant-message-root { @apply grid grid-cols-[auto_auto_1fr] grid-rows-[auto_1fr]; @apply relative w-full max-w-2xl py-4; } :where(.aui-assistant-message-root) > .aui-avatar-root { @apply col-start-1 row-span-full row-start-1 mr-4; } :where(.aui-assistant-message-root) > .aui-branch-picker-root { @apply col-start-2 row-start-2; @apply -ml-2 mr-2; } :where(.aui-assistant-message-root) > .aui-assistant-action-bar-root { @apply col-start-3 row-start-2; @apply -ml-1; } :where(.aui-assistant-message-root) > .aui-assistant-message-content { @apply col-span-2 col-start-2 row-start-1 my-1.5; } .aui-assistant-message-content { @apply text-aui-foreground max-w-xl break-words leading-7; } /* assistant action bar */ .aui-assistant-action-bar-root { @apply text-aui-muted-foreground flex gap-1; } :where(.aui-assistant-action-bar-root)[data-floating] { @apply bg-aui-background absolute rounded-md border p-1 shadow-sm; } :where(.aui-assistant-action-bar-feedback-positive)[data-submitted] { @apply text-green-600 hover:text-green-700 dark:text-green-500 dark:hover:text-green-400; } :where(.aui-assistant-action-bar-feedback-negative)[data-submitted] { @apply text-red-600 hover:text-red-700 dark:text-red-500 dark:hover:text-red-400; } /* branch picker */ .aui-branch-picker-root { @apply text-aui-muted-foreground inline-flex items-center text-xs; } .aui-branch-picker-state { @apply font-medium; } /* text */ .aui-text { @apply whitespace-pre-line; } .aui-text-running::after { @apply animate-pulse font-sans content-['\25CF'] ltr:ml-1 rtl:mr-1; }