@usecrow/ui 0.1.7 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +313 -272
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +122 -10
- package/dist/index.d.ts +122 -10
- package/dist/index.js +308 -272
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,31 +1,12 @@
|
|
|
1
1
|
import React3, { createContext, forwardRef, useEffect, useRef, useCallback, useContext, useState, useMemo, useLayoutEffect } from 'react';
|
|
2
2
|
import { motion, AnimatePresence } from 'framer-motion';
|
|
3
3
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
4
|
+
import { createPortal } from 'react-dom';
|
|
4
5
|
import { Square, ArrowUp, ChevronDown, Check, MessageCircle, Plus, History, ChevronUp, Brain, ChevronRight, Loader2, X } from 'lucide-react';
|
|
5
6
|
import ReactMarkdown from 'react-markdown';
|
|
6
7
|
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
7
8
|
import { CrowClient } from '@usecrow/client';
|
|
8
9
|
|
|
9
|
-
// src/styles/inject.ts
|
|
10
|
-
var STYLE_ID = "crow-ui-styles";
|
|
11
|
-
var CSS_CONTENT = `*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
|
|
12
|
-
|
|
13
|
-
/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.crow-pointer-events-none{pointer-events:none}.crow-pointer-events-auto{pointer-events:auto}.crow-fixed{position:fixed}.crow-absolute{position:absolute}.crow-relative{position:relative}.crow-sticky{position:sticky}.crow-bottom-0{bottom:0}.crow-bottom-full{bottom:100%}.crow-left-0{left:0}.crow-right-0{right:0}.crow-top-0{top:0}.crow-z-50{z-index:50}.crow-z-\\[999999\\]{z-index:999999}.crow-m-0{margin:0}.crow-my-1{margin-top:.25rem}.crow-mb-1,.crow-my-1{margin-bottom:.25rem}.crow-mb-2{margin-bottom:.5rem}.crow-mb-3{margin-bottom:.75rem}.crow-ml-0{margin-left:0}.crow-ml-0\\.5{margin-left:.125rem}.crow-ml-2{margin-left:.5rem}.crow-ml-4{margin-left:1rem}.crow-mt-0{margin-top:0}.crow-mt-0\\.5{margin-top:.125rem}.crow-mt-1{margin-top:.25rem}.crow-mt-2{margin-top:.5rem}.crow-mt-auto{margin-top:auto}.crow-inline-block{display:inline-block}.crow-flex{display:flex}.crow-inline-flex{display:inline-flex}.crow-h-10{height:2.5rem}.crow-h-12{height:3rem}.crow-h-2{height:.5rem}.crow-h-3{height:.75rem}.crow-h-3\\.5{height:.875rem}.crow-h-4{height:1rem}.crow-h-7{height:1.75rem}.crow-h-8{height:2rem}.crow-h-full{height:100%}.crow-max-h-32{max-height:8rem}.crow-max-h-\\[200px\\]{max-height:200px}.crow-min-h-0{min-height:0}.crow-min-h-\\[32px\\]{min-height:32px}.crow-w-0{width:0}.crow-w-0\\.5{width:.125rem}.crow-w-2{width:.5rem}.crow-w-3{width:.75rem}.crow-w-3\\.5{width:.875rem}.crow-w-4{width:1rem}.crow-w-7{width:1.75rem}.crow-w-8{width:2rem}.crow-w-full{width:100%}.crow-min-w-0{min-width:0}.crow-min-w-\\[180px\\]{min-width:180px}.crow-max-w-\\[80\\%\\]{max-width:80%}.crow-max-w-\\[90\\%\\]{max-width:90%}.crow-max-w-full{max-width:100%}.crow-flex-1{flex:1 1 0%}.crow-flex-shrink-0{flex-shrink:0}.crow-rotate-180{--tw-rotate:180deg}.crow-rotate-180,.crow-scale-100{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.crow-scale-100{--tw-scale-x:1;--tw-scale-y:1}.crow-scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.crow-animate-fade-in{animation:crow-fadeIn .2s ease-out}.crow-animate-pulse{animation:crow-pulse 2s cubic-bezier(.4,0,.6,1) infinite}.crow-animate-slide-up{animation:crow-slideUp .3s ease-out}@keyframes crow-spin{to{transform:rotate(1turn)}}.crow-animate-spin{animation:crow-spin 1s linear infinite}.crow-cursor-default{cursor:default}.crow-cursor-not-allowed{cursor:not-allowed}.crow-cursor-pointer{cursor:pointer}.crow-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.crow-resize-none{resize:none}.crow-list-decimal{list-style-type:decimal}.crow-list-disc{list-style-type:disc}.crow-flex-row{flex-direction:row}.crow-flex-col{flex-direction:column}.crow-items-start{align-items:flex-start}.crow-items-end{align-items:flex-end}.crow-items-center{align-items:center}.crow-justify-start{justify-content:flex-start}.crow-justify-end{justify-content:flex-end}.crow-justify-center{justify-content:center}.crow-justify-between{justify-content:space-between}.crow-gap-1{gap:.25rem}.crow-gap-1\\.5{gap:.375rem}.crow-gap-2{gap:.5rem}.crow-gap-3{gap:.75rem}.crow-gap-4{gap:1rem}.crow-gap-6{gap:1.5rem}.crow-space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.crow-space-y-1\\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.crow-space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.crow-space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.crow-space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.crow-overflow-hidden{overflow:hidden}.crow-overflow-visible{overflow:visible}.crow-overflow-x-auto{overflow-x:auto}.crow-overflow-y-auto{overflow-y:auto}.crow-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crow-whitespace-pre-wrap{white-space:pre-wrap}.crow-break-words{overflow-wrap:break-word}.crow-rounded{border-radius:.25rem}.crow-rounded-2xl{border-radius:1rem}.crow-rounded-3xl{border-radius:1.5rem}.crow-rounded-full{border-radius:9999px}.crow-rounded-lg{border-radius:.5rem}.crow-rounded-md{border-radius:.375rem}.crow-rounded-xl{border-radius:.75rem}.crow-border{border-width:1px}.crow-border-b{border-bottom-width:1px}.crow-border-l{border-left-width:1px}.crow-border-l-2{border-left-width:2px}.crow-border-r{border-right-width:1px}.crow-border-t{border-top-width:1px}.crow-border-none{border-style:none}.crow-border-gray-100{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity,1))}.crow-border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.crow-border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.crow-border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.crow-bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.crow-bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.crow-bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.crow-bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.crow-bg-gray-400{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity,1))}.crow-bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.crow-bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.crow-bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.crow-bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.crow-bg-transparent{background-color:transparent}.crow-bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.crow-p-0{padding:0}.crow-p-1{padding:.25rem}.crow-p-1\\.5{padding:.375rem}.crow-p-2{padding:.5rem}.crow-p-3{padding:.75rem}.crow-p-4{padding:1rem}.crow-p-6{padding:1.5rem}.crow-px-1{padding-left:.25rem;padding-right:.25rem}.crow-px-2{padding-left:.5rem;padding-right:.5rem}.crow-px-3{padding-left:.75rem;padding-right:.75rem}.crow-px-4{padding-left:1rem;padding-right:1rem}.crow-px-6{padding-left:1.5rem;padding-right:1.5rem}.crow-py-0{padding-top:0;padding-bottom:0}.crow-py-0\\.5{padding-top:.125rem;padding-bottom:.125rem}.crow-py-1{padding-top:.25rem;padding-bottom:.25rem}.crow-py-1\\.5{padding-top:.375rem;padding-bottom:.375rem}.crow-py-2{padding-top:.5rem;padding-bottom:.5rem}.crow-py-3{padding-top:.75rem;padding-bottom:.75rem}.crow-py-6{padding-top:1.5rem;padding-bottom:1.5rem}.crow-py-8{padding-top:2rem;padding-bottom:2rem}.crow-pb-2{padding-bottom:.5rem}.crow-pl-3{padding-left:.75rem}.crow-pl-4{padding-left:1rem}.crow-pl-5{padding-left:1.25rem}.crow-pr-4{padding-right:1rem}.crow-pt-1{padding-top:.25rem}.crow-text-left{text-align:left}.crow-text-center{text-align:center}.crow-text-right{text-align:right}.crow-align-text-bottom{vertical-align:text-bottom}.crow-font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.crow-text-base{font-size:1rem;line-height:1.5rem}.crow-text-lg{font-size:1.125rem;line-height:1.75rem}.crow-text-sm{font-size:.875rem;line-height:1.25rem}.crow-text-xs{font-size:.75rem;line-height:1rem}.crow-font-bold{font-weight:700}.crow-font-medium{font-weight:500}.crow-font-semibold{font-weight:600}.crow-uppercase{text-transform:uppercase}.crow-leading-relaxed{line-height:1.625}.crow-tracking-wide{letter-spacing:.025em}.crow-text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.crow-text-blue-300{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.crow-text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.crow-text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.crow-text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.crow-text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.crow-text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.crow-text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.crow-text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.crow-text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.crow-text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.crow-text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.crow-underline{text-decoration-line:underline}.crow-opacity-0{opacity:0}.crow-opacity-100{opacity:1}.crow-opacity-50{opacity:.5}.crow-opacity-60{opacity:.6}.crow-shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.crow-shadow-2xl,.crow-shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.crow-shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.crow-shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.crow-backdrop-blur-md{--tw-backdrop-blur:blur(12px)}.crow-backdrop-blur-md,.crow-backdrop-blur-sm{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.crow-backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.crow-transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.crow-transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.crow-transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.crow-transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.crow-transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.crow-duration-150{transition-duration:.15s}.crow-duration-200{transition-duration:.2s}.crow-duration-300{transition-duration:.3s}.crow-duration-500{transition-duration:.5s}.crow-ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.crow-animate-fade-in{animation:crow-fadeIn .2s ease-out}.crow-animate-slide-up{animation:crow-slideUp .3s ease-out}.crow-animate-pulse{animation:crow-pulse 1.5s ease-in-out infinite}.crow-animation-delay-100{animation-delay:.1s}.crow-animation-delay-200{animation-delay:.2s}@keyframes crow-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes crow-slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes crow-pulse{0%,to{opacity:1}50%{opacity:.4}}.crow-overflow-y-auto::-webkit-scrollbar{width:6px}.crow-overflow-y-auto::-webkit-scrollbar-track{background:transparent}.crow-overflow-y-auto::-webkit-scrollbar-thumb{background-color:#d1d5db;border-radius:3px}.crow-overflow-y-auto::-webkit-scrollbar-thumb:hover{background-color:#9ca3af}.crow-focus-visible\\:crow-outline-none:focus-visible{outline:none}.crow-focus-visible\\:crow-ring-2:focus-visible{box-shadow:0 0 0 2px var(--crow-primary,#6366f1)}:root{--crow-primary:#6366f1;--crow-primary-dark:#4f46e5;--crow-secondary:#f1f5f9;--crow-accent:#10b981}@media (prefers-color-scheme:dark){:root{--crow-primary:#818cf8;--crow-primary-dark:#6366f1}}.placeholder\\:crow-text-gray-500::-moz-placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.placeholder\\:crow-text-gray-500::placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.last\\:crow-mb-0:last-child{margin-bottom:0}.last\\:crow-border-0:last-child{border-width:0}.hover\\:crow-scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\\:crow-bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\\:crow-bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.hover\\:crow-bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.hover\\:crow-bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.hover\\:crow-text-blue-300:hover{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.hover\\:crow-text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.hover\\:crow-text-gray-800:hover{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.hover\\:crow-opacity-100:hover{opacity:1}.focus\\:crow-outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\\:crow-ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\\:crow-ring-0:focus,.focus\\:crow-ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\\:crow-ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\\:crow-ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\\:crow-outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\\:crow-ring-0:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.disabled\\:crow-pointer-events-none:disabled{pointer-events:none}.disabled\\:crow-cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:crow-opacity-50:disabled{opacity:.5}`;
|
|
14
|
-
var injected = false;
|
|
15
|
-
function injectStyles() {
|
|
16
|
-
if (injected || typeof document === "undefined") return;
|
|
17
|
-
if (document.getElementById(STYLE_ID)) {
|
|
18
|
-
injected = true;
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
const style = document.createElement("style");
|
|
22
|
-
style.id = STYLE_ID;
|
|
23
|
-
style.textContent = CSS_CONTENT;
|
|
24
|
-
document.head.appendChild(style);
|
|
25
|
-
injected = true;
|
|
26
|
-
}
|
|
27
|
-
injectStyles();
|
|
28
|
-
|
|
29
10
|
// src/utils.ts
|
|
30
11
|
var cn = (...classes) => classes.filter(Boolean).join(" ");
|
|
31
12
|
var formatTime = (date) => date.toLocaleTimeString("en-US", {
|
|
@@ -953,29 +934,29 @@ function mergeCopilotStyles(dbStyles, propStyles) {
|
|
|
953
934
|
}
|
|
954
935
|
return result;
|
|
955
936
|
}
|
|
956
|
-
function stylesToCSSVariables(
|
|
937
|
+
function stylesToCSSVariables(styles) {
|
|
957
938
|
return {
|
|
958
939
|
// Colors
|
|
959
|
-
"--crow-color-primary":
|
|
960
|
-
"--crow-color-background":
|
|
961
|
-
"--crow-color-text":
|
|
962
|
-
"--crow-color-border":
|
|
963
|
-
"--crow-color-bot-bubble":
|
|
964
|
-
"--crow-color-bot-text":
|
|
965
|
-
"--crow-color-user-bubble":
|
|
966
|
-
"--crow-color-user-text":
|
|
967
|
-
"--crow-color-user-border":
|
|
968
|
-
"--crow-color-messages-bg":
|
|
940
|
+
"--crow-color-primary": styles.colors.primary,
|
|
941
|
+
"--crow-color-background": styles.colors.background,
|
|
942
|
+
"--crow-color-text": styles.colors.text,
|
|
943
|
+
"--crow-color-border": styles.colors.border,
|
|
944
|
+
"--crow-color-bot-bubble": styles.colors.botBubble,
|
|
945
|
+
"--crow-color-bot-text": styles.colors.botText,
|
|
946
|
+
"--crow-color-user-bubble": styles.colors.userBubble,
|
|
947
|
+
"--crow-color-user-text": styles.colors.userText,
|
|
948
|
+
"--crow-color-user-border": styles.colors.userBorder,
|
|
949
|
+
"--crow-color-messages-bg": styles.colors.messagesBackground,
|
|
969
950
|
// Typography
|
|
970
|
-
"--crow-font-family":
|
|
971
|
-
"--crow-font-size": `${
|
|
972
|
-
"--crow-header-font-size": `${
|
|
973
|
-
"--crow-font-weight": `${
|
|
974
|
-
"--crow-line-height": `${
|
|
975
|
-
"--crow-letter-spacing": `${
|
|
951
|
+
"--crow-font-family": styles.typography.fontFamily,
|
|
952
|
+
"--crow-font-size": `${styles.typography.fontSize}px`,
|
|
953
|
+
"--crow-header-font-size": `${styles.typography.headerFontSize}px`,
|
|
954
|
+
"--crow-font-weight": `${styles.typography.fontWeight}`,
|
|
955
|
+
"--crow-line-height": `${styles.typography.lineHeight}`,
|
|
956
|
+
"--crow-letter-spacing": `${styles.typography.letterSpacing}px`,
|
|
976
957
|
// Animations
|
|
977
|
-
"--crow-animation-duration": `${
|
|
978
|
-
"--crow-animation-easing":
|
|
958
|
+
"--crow-animation-duration": `${styles.animations.duration}s`,
|
|
959
|
+
"--crow-animation-easing": styles.animations.easing
|
|
979
960
|
};
|
|
980
961
|
}
|
|
981
962
|
|
|
@@ -1035,9 +1016,9 @@ function useWidgetStyles({
|
|
|
1035
1016
|
hasFetchedRef.current = true;
|
|
1036
1017
|
fetchStyles();
|
|
1037
1018
|
}, [productId, apiUrl, skip, key]);
|
|
1038
|
-
const
|
|
1019
|
+
const styles = mergeWidgetStyles(dbStyles, propStyles);
|
|
1039
1020
|
return {
|
|
1040
|
-
styles
|
|
1021
|
+
styles,
|
|
1041
1022
|
isLoading,
|
|
1042
1023
|
error,
|
|
1043
1024
|
agentName,
|
|
@@ -1089,9 +1070,9 @@ function useCopilotStyles({
|
|
|
1089
1070
|
hasFetchedRef.current = true;
|
|
1090
1071
|
fetchStyles();
|
|
1091
1072
|
}, [productId, apiUrl, skip, key]);
|
|
1092
|
-
const
|
|
1073
|
+
const styles = mergeCopilotStyles(dbStyles, propStyles);
|
|
1093
1074
|
return {
|
|
1094
|
-
styles
|
|
1075
|
+
styles,
|
|
1095
1076
|
isLoading,
|
|
1096
1077
|
error,
|
|
1097
1078
|
agentName,
|
|
@@ -1118,14 +1099,14 @@ function usePreviewCopilotStyles(previewStyles) {
|
|
|
1118
1099
|
var WidgetStyleContext = createContext(null);
|
|
1119
1100
|
function WidgetStyleProvider({
|
|
1120
1101
|
children,
|
|
1121
|
-
styles
|
|
1102
|
+
styles,
|
|
1122
1103
|
agentName = "Assistant",
|
|
1123
1104
|
isLoading = false,
|
|
1124
1105
|
variant = "floating"
|
|
1125
1106
|
}) {
|
|
1126
1107
|
const value = useMemo(
|
|
1127
|
-
() => ({ styles
|
|
1128
|
-
[
|
|
1108
|
+
() => ({ styles, agentName, isLoading, variant }),
|
|
1109
|
+
[styles, agentName, isLoading, variant]
|
|
1129
1110
|
);
|
|
1130
1111
|
return /* @__PURE__ */ jsx(WidgetStyleContext.Provider, { value, children });
|
|
1131
1112
|
}
|
|
@@ -1145,13 +1126,13 @@ function useWidgetStyles2() {
|
|
|
1145
1126
|
var CopilotStyleContext = createContext(null);
|
|
1146
1127
|
function CopilotStyleProvider({
|
|
1147
1128
|
children,
|
|
1148
|
-
styles
|
|
1129
|
+
styles,
|
|
1149
1130
|
agentName = "Assistant",
|
|
1150
1131
|
isLoading = false
|
|
1151
1132
|
}) {
|
|
1152
1133
|
const value = useMemo(
|
|
1153
|
-
() => ({ styles
|
|
1154
|
-
[
|
|
1134
|
+
() => ({ styles, agentName, isLoading }),
|
|
1135
|
+
[styles, agentName, isLoading]
|
|
1155
1136
|
);
|
|
1156
1137
|
return /* @__PURE__ */ jsx(CopilotStyleContext.Provider, { value, children });
|
|
1157
1138
|
}
|
|
@@ -1168,46 +1149,51 @@ function useCopilotStyles2() {
|
|
|
1168
1149
|
const context = useContext(CopilotStyleContext);
|
|
1169
1150
|
return context?.styles ?? DEFAULT_COPILOT_STYLES;
|
|
1170
1151
|
}
|
|
1152
|
+
function ShadowContainer({
|
|
1153
|
+
children,
|
|
1154
|
+
styles,
|
|
1155
|
+
hostId = "crow-widget-host",
|
|
1156
|
+
hostClassName
|
|
1157
|
+
}) {
|
|
1158
|
+
const hostRef = useRef(null);
|
|
1159
|
+
const [shadowRoot, setShadowRoot] = useState(null);
|
|
1160
|
+
useEffect(() => {
|
|
1161
|
+
if (hostRef.current && !hostRef.current.shadowRoot) {
|
|
1162
|
+
const shadow = hostRef.current.attachShadow({ mode: "open" });
|
|
1163
|
+
setShadowRoot(shadow);
|
|
1164
|
+
}
|
|
1165
|
+
}, []);
|
|
1166
|
+
return /* @__PURE__ */ jsx("div", { ref: hostRef, id: hostId, className: hostClassName, children: shadowRoot && createPortal(
|
|
1167
|
+
/* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1168
|
+
/* @__PURE__ */ jsx("style", { children: styles }),
|
|
1169
|
+
children
|
|
1170
|
+
] }),
|
|
1171
|
+
shadowRoot
|
|
1172
|
+
) });
|
|
1173
|
+
}
|
|
1174
|
+
ShadowContainer.displayName = "ShadowContainer";
|
|
1171
1175
|
function ChatBubble({ isExpanded, onClick }) {
|
|
1172
|
-
const { styles
|
|
1176
|
+
const { styles } = useWidgetStyleContext();
|
|
1173
1177
|
return /* @__PURE__ */ jsx(
|
|
1174
1178
|
"button",
|
|
1175
1179
|
{
|
|
1176
1180
|
onClick,
|
|
1177
1181
|
className: "crow-fixed crow-z-[999999] crow-rounded-full crow-flex crow-items-center crow-justify-center crow-shadow-2xl hover:crow-scale-110 crow-transition-all crow-duration-500 crow-border crow-backdrop-blur-md",
|
|
1178
1182
|
style: {
|
|
1179
|
-
width:
|
|
1180
|
-
height:
|
|
1181
|
-
right:
|
|
1182
|
-
bottom:
|
|
1183
|
-
background:
|
|
1184
|
-
borderColor:
|
|
1185
|
-
boxShadow:
|
|
1186
|
-
color:
|
|
1183
|
+
width: styles.bubble.size,
|
|
1184
|
+
height: styles.bubble.size,
|
|
1185
|
+
right: styles.position.bubbleRight,
|
|
1186
|
+
bottom: styles.position.bubbleBottom,
|
|
1187
|
+
background: styles.colors.bubbleBackground,
|
|
1188
|
+
borderColor: styles.colors.bubbleBorder,
|
|
1189
|
+
boxShadow: styles.shadows.bubble,
|
|
1190
|
+
color: styles.colors.bubbleIcon
|
|
1187
1191
|
},
|
|
1188
1192
|
"aria-label": isExpanded ? "Close Chat" : "Open Chat",
|
|
1189
|
-
children: isExpanded ? /* @__PURE__ */ jsx(ChevronDown, { size:
|
|
1193
|
+
children: isExpanded ? /* @__PURE__ */ jsx(ChevronDown, { size: styles.bubble.iconSize, strokeWidth: 2 }) : /* @__PURE__ */ jsx(MessageCircle, { size: styles.bubble.iconSize, strokeWidth: 2 })
|
|
1190
1194
|
}
|
|
1191
1195
|
);
|
|
1192
1196
|
}
|
|
1193
|
-
var GlassCard = forwardRef(
|
|
1194
|
-
({ className, children, ...props }, ref) => {
|
|
1195
|
-
return /* @__PURE__ */ jsx(
|
|
1196
|
-
"div",
|
|
1197
|
-
{
|
|
1198
|
-
ref,
|
|
1199
|
-
className: cn(
|
|
1200
|
-
"crow-border crow-flex crow-flex-col crow-gap-6 crow-rounded-2xl crow-py-6 crow-backdrop-blur-md",
|
|
1201
|
-
className
|
|
1202
|
-
),
|
|
1203
|
-
style: { background: "rgba(255, 255, 255, 0.3)", borderColor: "rgba(229, 231, 235, 0.3)", ...props.style },
|
|
1204
|
-
...props,
|
|
1205
|
-
children
|
|
1206
|
-
}
|
|
1207
|
-
);
|
|
1208
|
-
}
|
|
1209
|
-
);
|
|
1210
|
-
GlassCard.displayName = "GlassCard";
|
|
1211
1197
|
var GOOGLE_FONTS_MAP = {
|
|
1212
1198
|
'"Inter", sans-serif': "Inter:wght@300;400;500;600;700",
|
|
1213
1199
|
'"Roboto", sans-serif': "Roboto:wght@300;400;500;700",
|
|
@@ -1217,9 +1203,9 @@ var GOOGLE_FONTS_MAP = {
|
|
|
1217
1203
|
};
|
|
1218
1204
|
var WidgetShell = forwardRef(
|
|
1219
1205
|
({ children, className }, ref) => {
|
|
1220
|
-
const { styles
|
|
1206
|
+
const { styles, variant } = useWidgetStyleContext();
|
|
1221
1207
|
useEffect(() => {
|
|
1222
|
-
const fontParam = GOOGLE_FONTS_MAP[
|
|
1208
|
+
const fontParam = GOOGLE_FONTS_MAP[styles.typography.fontFamily];
|
|
1223
1209
|
if (!fontParam) return;
|
|
1224
1210
|
const linkId = `crow-google-font-${fontParam.split(":")[0]}`;
|
|
1225
1211
|
if (document.getElementById(linkId)) return;
|
|
@@ -1228,46 +1214,46 @@ var WidgetShell = forwardRef(
|
|
|
1228
1214
|
link.rel = "stylesheet";
|
|
1229
1215
|
link.href = `https://fonts.googleapis.com/css2?family=${fontParam}&display=swap`;
|
|
1230
1216
|
document.head.appendChild(link);
|
|
1231
|
-
}, [
|
|
1217
|
+
}, [styles.typography.fontFamily]);
|
|
1232
1218
|
const baseStyle = {
|
|
1233
|
-
borderRadius:
|
|
1234
|
-
padding:
|
|
1235
|
-
background:
|
|
1236
|
-
borderColor:
|
|
1237
|
-
color:
|
|
1238
|
-
boxShadow:
|
|
1239
|
-
fontFamily:
|
|
1240
|
-
fontSize:
|
|
1241
|
-
fontWeight:
|
|
1242
|
-
lineHeight:
|
|
1243
|
-
letterSpacing:
|
|
1219
|
+
borderRadius: styles.dimensions.borderRadius,
|
|
1220
|
+
padding: styles.dimensions.padding,
|
|
1221
|
+
background: styles.colors.background,
|
|
1222
|
+
borderColor: styles.colors.border,
|
|
1223
|
+
color: styles.colors.text,
|
|
1224
|
+
boxShadow: styles.shadows.widget,
|
|
1225
|
+
fontFamily: styles.typography.fontFamily,
|
|
1226
|
+
fontSize: styles.typography.fontSize,
|
|
1227
|
+
fontWeight: styles.typography.fontWeight,
|
|
1228
|
+
lineHeight: styles.typography.lineHeight,
|
|
1229
|
+
letterSpacing: styles.typography.letterSpacing
|
|
1244
1230
|
};
|
|
1245
1231
|
if (variant === "embedded") {
|
|
1246
1232
|
return /* @__PURE__ */ jsx(
|
|
1247
|
-
|
|
1233
|
+
"div",
|
|
1248
1234
|
{
|
|
1249
1235
|
ref,
|
|
1250
|
-
className: `crow-flex crow-flex-col crow-shadow-2xl crow-gap-3 ${className ?? ""}`,
|
|
1236
|
+
className: `crow-flex crow-flex-col crow-shadow-2xl crow-gap-3 crow-border crow-backdrop-blur-md crow-overflow-hidden ${className ?? ""}`,
|
|
1251
1237
|
style: {
|
|
1252
1238
|
...baseStyle,
|
|
1253
|
-
width: `min(${
|
|
1254
|
-
height: `min(${
|
|
1239
|
+
width: `min(${styles.dimensions.width}px, calc(100vw - 32px))`,
|
|
1240
|
+
height: `min(${styles.dimensions.maxHeight}px, calc(100vh - 120px))`
|
|
1255
1241
|
},
|
|
1256
1242
|
children
|
|
1257
1243
|
}
|
|
1258
1244
|
);
|
|
1259
1245
|
}
|
|
1260
1246
|
return /* @__PURE__ */ jsx(
|
|
1261
|
-
|
|
1247
|
+
"div",
|
|
1262
1248
|
{
|
|
1263
1249
|
ref,
|
|
1264
|
-
className: `crow-fixed crow-z-[999999] crow-shadow-2xl crow-gap-3 crow-transition-all crow-duration-500 crow-flex crow-flex-col ${className ?? ""}`,
|
|
1250
|
+
className: `crow-fixed crow-z-[999999] crow-shadow-2xl crow-gap-3 crow-transition-all crow-duration-500 crow-flex crow-flex-col crow-border crow-backdrop-blur-md crow-overflow-hidden ${className ?? ""}`,
|
|
1265
1251
|
style: {
|
|
1266
1252
|
...baseStyle,
|
|
1267
|
-
width: `min(${
|
|
1268
|
-
height: `min(${
|
|
1269
|
-
right:
|
|
1270
|
-
bottom:
|
|
1253
|
+
width: `min(${styles.dimensions.width}px, calc(100vw - 32px))`,
|
|
1254
|
+
height: `min(${styles.dimensions.maxHeight}px, calc(100vh - 120px))`,
|
|
1255
|
+
right: styles.position.right,
|
|
1256
|
+
bottom: styles.position.bottom
|
|
1271
1257
|
},
|
|
1272
1258
|
children
|
|
1273
1259
|
}
|
|
@@ -1284,20 +1270,20 @@ function WidgetHeader({
|
|
|
1284
1270
|
isMinimized = false,
|
|
1285
1271
|
onToggleMinimize
|
|
1286
1272
|
}) {
|
|
1287
|
-
const { agentName, styles
|
|
1273
|
+
const { agentName, styles } = useWidgetStyleContext();
|
|
1288
1274
|
return /* @__PURE__ */ jsxs(
|
|
1289
1275
|
"div",
|
|
1290
1276
|
{
|
|
1291
1277
|
className: "crow-flex crow-items-center crow-justify-between crow-mb-3 crow-pb-2 crow-border-b",
|
|
1292
|
-
style: { borderColor:
|
|
1278
|
+
style: { borderColor: styles.colors.border },
|
|
1293
1279
|
children: [
|
|
1294
1280
|
/* @__PURE__ */ jsx("div", { className: "crow-flex crow-items-center crow-gap-2", children: /* @__PURE__ */ jsx(
|
|
1295
1281
|
"span",
|
|
1296
1282
|
{
|
|
1297
1283
|
className: "crow-text-sm crow-font-semibold",
|
|
1298
1284
|
style: {
|
|
1299
|
-
color:
|
|
1300
|
-
fontSize:
|
|
1285
|
+
color: styles.colors.text,
|
|
1286
|
+
fontSize: styles.typography.headerFontSize
|
|
1301
1287
|
},
|
|
1302
1288
|
children: agentName
|
|
1303
1289
|
}
|
|
@@ -1599,7 +1585,7 @@ function MessageBubble({
|
|
|
1599
1585
|
toolCalls = [],
|
|
1600
1586
|
isLoading = false
|
|
1601
1587
|
}) {
|
|
1602
|
-
const
|
|
1588
|
+
const styles = useWidgetStyles2();
|
|
1603
1589
|
const isWaiting = message.content === "Thinking..." || message.isBot && isLoading && !message.content;
|
|
1604
1590
|
const hasThinking = message.isBot && message.thinking;
|
|
1605
1591
|
const hasContent = message.content && message.content !== "Thinking...";
|
|
@@ -1626,12 +1612,12 @@ function MessageBubble({
|
|
|
1626
1612
|
{
|
|
1627
1613
|
className: "crow-max-w-[80%] crow-rounded-2xl crow-px-4 crow-py-2 crow-transition-all crow-duration-150",
|
|
1628
1614
|
style: message.isBot ? {
|
|
1629
|
-
background:
|
|
1630
|
-
color:
|
|
1615
|
+
background: styles.colors.botBubble,
|
|
1616
|
+
color: styles.colors.botText
|
|
1631
1617
|
} : {
|
|
1632
|
-
background:
|
|
1633
|
-
color:
|
|
1634
|
-
border: `1px solid ${
|
|
1618
|
+
background: styles.colors.userBubble,
|
|
1619
|
+
color: styles.colors.userText,
|
|
1620
|
+
border: `1px solid ${styles.colors.userBorder}`
|
|
1635
1621
|
},
|
|
1636
1622
|
children: [
|
|
1637
1623
|
/* @__PURE__ */ jsx("div", { className: "crow-whitespace-pre-wrap", children: message.isBot ? /* @__PURE__ */ jsx(
|
|
@@ -1695,8 +1681,8 @@ function MessageList({
|
|
|
1695
1681
|
)) });
|
|
1696
1682
|
}
|
|
1697
1683
|
var MessagesContainer = forwardRef(
|
|
1698
|
-
({ children
|
|
1699
|
-
const
|
|
1684
|
+
({ children }, ref) => {
|
|
1685
|
+
const styles = useWidgetStyles2();
|
|
1700
1686
|
const internalRef = useRef(null);
|
|
1701
1687
|
const lastScrollHeightRef = useRef(0);
|
|
1702
1688
|
const isUserScrollingRef = useRef(false);
|
|
@@ -1744,12 +1730,9 @@ var MessagesContainer = forwardRef(
|
|
|
1744
1730
|
initial: { opacity: 0 },
|
|
1745
1731
|
animate: { opacity: 1 },
|
|
1746
1732
|
exit: { opacity: 0 },
|
|
1747
|
-
transition: { duration:
|
|
1733
|
+
transition: { duration: styles.animations.duration },
|
|
1748
1734
|
className: "crow-relative crow-flex-1 crow-min-h-0 crow-rounded-2xl crow-mb-3 crow-overflow-y-auto crow-p-4 crow-space-y-3 crow-pointer-events-auto",
|
|
1749
|
-
style: {
|
|
1750
|
-
background: styles2.colors.messagesBackground,
|
|
1751
|
-
...maxHeight && { maxHeight }
|
|
1752
|
-
},
|
|
1735
|
+
style: { background: styles.colors.messagesBackground },
|
|
1753
1736
|
children
|
|
1754
1737
|
}
|
|
1755
1738
|
);
|
|
@@ -1814,8 +1797,8 @@ function WorkflowPanel({ workflow, onExit }) {
|
|
|
1814
1797
|
);
|
|
1815
1798
|
}
|
|
1816
1799
|
function PoweredByBadge({ apiUrl = "" }) {
|
|
1817
|
-
const
|
|
1818
|
-
const branding =
|
|
1800
|
+
const styles = useWidgetStyles2();
|
|
1801
|
+
const branding = styles.branding;
|
|
1819
1802
|
if (!branding.showPoweredBy) return null;
|
|
1820
1803
|
const logoUrl = branding.logoUrl?.startsWith("http") ? branding.logoUrl : `${apiUrl}${branding.logoUrl}`;
|
|
1821
1804
|
return /* @__PURE__ */ jsxs("div", { className: "crow-flex crow-items-center crow-justify-center crow-gap-1.5 crow-mb-3 crow-text-xs crow-text-gray-400", children: [
|
|
@@ -1906,30 +1889,6 @@ var ModelSelector = ({
|
|
|
1906
1889
|
] }, provider)) })
|
|
1907
1890
|
] });
|
|
1908
1891
|
};
|
|
1909
|
-
var styles = `
|
|
1910
|
-
*:focus-visible {
|
|
1911
|
-
outline-offset: 0 !important;
|
|
1912
|
-
--ring-offset: 0 !important;
|
|
1913
|
-
}
|
|
1914
|
-
textarea::-webkit-scrollbar {
|
|
1915
|
-
width: 6px;
|
|
1916
|
-
}
|
|
1917
|
-
textarea::-webkit-scrollbar-track {
|
|
1918
|
-
background: transparent;
|
|
1919
|
-
}
|
|
1920
|
-
textarea::-webkit-scrollbar-thumb {
|
|
1921
|
-
background-color: #d1d5db;
|
|
1922
|
-
border-radius: 3px;
|
|
1923
|
-
}
|
|
1924
|
-
textarea::-webkit-scrollbar-thumb:hover {
|
|
1925
|
-
background-color: #9ca3af;
|
|
1926
|
-
}
|
|
1927
|
-
`;
|
|
1928
|
-
if (typeof document !== "undefined") {
|
|
1929
|
-
const styleSheet = document.createElement("style");
|
|
1930
|
-
styleSheet.innerText = styles;
|
|
1931
|
-
document.head.appendChild(styleSheet);
|
|
1932
|
-
}
|
|
1933
1892
|
var Textarea = React3.forwardRef(
|
|
1934
1893
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1935
1894
|
"textarea",
|
|
@@ -1954,10 +1913,9 @@ var TooltipContent = React3.forwardRef(({ className, sideOffset = 4, ...props },
|
|
|
1954
1913
|
ref,
|
|
1955
1914
|
sideOffset,
|
|
1956
1915
|
className: cn(
|
|
1957
|
-
"crow-z-50 crow-overflow-hidden crow-rounded-md crow-border crow-px-3 crow-py-1.5 crow-text-sm crow-shadow-md",
|
|
1916
|
+
"crow-z-50 crow-overflow-hidden crow-rounded-md crow-border crow-border-gray-300 crow-bg-white crow-text-gray-900 crow-px-3 crow-py-1.5 crow-text-sm crow-shadow-md",
|
|
1958
1917
|
className
|
|
1959
1918
|
),
|
|
1960
|
-
style: { borderColor: "#d1d5db", background: "#ffffff", color: "#111827" },
|
|
1961
1919
|
...props
|
|
1962
1920
|
}
|
|
1963
1921
|
));
|
|
@@ -2039,11 +1997,10 @@ var PromptInput = React3.forwardRef(
|
|
|
2039
1997
|
{
|
|
2040
1998
|
ref,
|
|
2041
1999
|
className: cn(
|
|
2042
|
-
"crow-rounded-3xl crow-border crow-p-1.5 crow-shadow-lg crow-transition-all crow-duration-300",
|
|
2000
|
+
"crow-rounded-3xl crow-border crow-border-gray-300 crow-bg-white crow-p-1.5 crow-shadow-lg crow-transition-all crow-duration-300",
|
|
2043
2001
|
isLoading && "crow-border-red-500",
|
|
2044
2002
|
className
|
|
2045
2003
|
),
|
|
2046
|
-
style: { borderColor: isLoading ? void 0 : "#d1d5db", background: "#ffffff" },
|
|
2047
2004
|
children
|
|
2048
2005
|
}
|
|
2049
2006
|
)
|
|
@@ -2153,12 +2110,11 @@ var PromptInputBox = React3.forwardRef(
|
|
|
2153
2110
|
variant: "default",
|
|
2154
2111
|
size: "icon",
|
|
2155
2112
|
className: cn(
|
|
2156
|
-
"crow-h-7 crow-w-7 crow-rounded-full crow-transition-all crow-duration-200"
|
|
2113
|
+
"crow-h-7 crow-w-7 crow-rounded-full crow-transition-all crow-duration-200",
|
|
2114
|
+
isLoading && "crow-bg-red-500 hover:crow-bg-red-500",
|
|
2115
|
+
hasContent && !isLoading && "crow-bg-black hover:crow-bg-gray-800",
|
|
2116
|
+
!hasContent && !isLoading && "crow-bg-transparent"
|
|
2157
2117
|
),
|
|
2158
|
-
style: {
|
|
2159
|
-
background: isLoading ? "#ef4444" : hasContent ? "#000000" : "transparent",
|
|
2160
|
-
color: isLoading ? "#ffffff" : "#ffffff"
|
|
2161
|
-
},
|
|
2162
2118
|
onClick: () => {
|
|
2163
2119
|
if (isLoading && onStop) {
|
|
2164
2120
|
onStop();
|
|
@@ -2166,7 +2122,10 @@ var PromptInputBox = React3.forwardRef(
|
|
|
2166
2122
|
handleSubmit();
|
|
2167
2123
|
}
|
|
2168
2124
|
},
|
|
2169
|
-
children: isLoading ? /* @__PURE__ */ jsx(Square, { className: "crow-h-3.5 crow-w-3.5", style: { fill: "white"
|
|
2125
|
+
children: isLoading ? /* @__PURE__ */ jsx(Square, { className: "crow-h-3.5 crow-w-3.5 crow-text-white", style: { fill: "white" } }) : /* @__PURE__ */ jsx(ArrowUp, { className: cn(
|
|
2126
|
+
"crow-h-3.5 crow-w-3.5",
|
|
2127
|
+
hasContent ? "crow-text-white" : "crow-text-gray-400"
|
|
2128
|
+
) })
|
|
2170
2129
|
}
|
|
2171
2130
|
)
|
|
2172
2131
|
}
|
|
@@ -2178,6 +2137,129 @@ var PromptInputBox = React3.forwardRef(
|
|
|
2178
2137
|
}
|
|
2179
2138
|
);
|
|
2180
2139
|
PromptInputBox.displayName = "PromptInputBox";
|
|
2140
|
+
|
|
2141
|
+
// src/styles/cssVars.ts
|
|
2142
|
+
var CSS_VAR_NAMES = {
|
|
2143
|
+
// Colors
|
|
2144
|
+
colors: {
|
|
2145
|
+
primary: "--crow-colors-primary",
|
|
2146
|
+
background: "--crow-colors-background",
|
|
2147
|
+
border: "--crow-colors-border",
|
|
2148
|
+
text: "--crow-colors-text",
|
|
2149
|
+
botBubble: "--crow-colors-bot-bubble",
|
|
2150
|
+
botText: "--crow-colors-bot-text",
|
|
2151
|
+
userBubble: "--crow-colors-user-bubble",
|
|
2152
|
+
userText: "--crow-colors-user-text",
|
|
2153
|
+
userBorder: "--crow-colors-user-border",
|
|
2154
|
+
messagesBackground: "--crow-colors-messages-background",
|
|
2155
|
+
bubbleBackground: "--crow-colors-bubble-background",
|
|
2156
|
+
bubbleBorder: "--crow-colors-bubble-border",
|
|
2157
|
+
bubbleIcon: "--crow-colors-bubble-icon"
|
|
2158
|
+
},
|
|
2159
|
+
// Dimensions
|
|
2160
|
+
dimensions: {
|
|
2161
|
+
width: "--crow-dimensions-width",
|
|
2162
|
+
maxHeight: "--crow-dimensions-max-height",
|
|
2163
|
+
messagesMaxHeight: "--crow-dimensions-messages-max-height",
|
|
2164
|
+
borderRadius: "--crow-dimensions-border-radius",
|
|
2165
|
+
padding: "--crow-dimensions-padding"
|
|
2166
|
+
},
|
|
2167
|
+
// Typography
|
|
2168
|
+
typography: {
|
|
2169
|
+
fontFamily: "--crow-typography-font-family",
|
|
2170
|
+
fontSize: "--crow-typography-font-size",
|
|
2171
|
+
headerFontSize: "--crow-typography-header-font-size",
|
|
2172
|
+
fontWeight: "--crow-typography-font-weight",
|
|
2173
|
+
lineHeight: "--crow-typography-line-height",
|
|
2174
|
+
letterSpacing: "--crow-typography-letter-spacing"
|
|
2175
|
+
},
|
|
2176
|
+
// Position
|
|
2177
|
+
position: {
|
|
2178
|
+
right: "--crow-position-right",
|
|
2179
|
+
bottom: "--crow-position-bottom",
|
|
2180
|
+
bubbleRight: "--crow-position-bubble-right",
|
|
2181
|
+
bubbleBottom: "--crow-position-bubble-bottom"
|
|
2182
|
+
},
|
|
2183
|
+
// Bubble
|
|
2184
|
+
bubble: {
|
|
2185
|
+
size: "--crow-bubble-size",
|
|
2186
|
+
iconSize: "--crow-bubble-icon-size"
|
|
2187
|
+
},
|
|
2188
|
+
// Shadows
|
|
2189
|
+
shadows: {
|
|
2190
|
+
widget: "--crow-shadows-widget",
|
|
2191
|
+
bubble: "--crow-shadows-bubble"
|
|
2192
|
+
},
|
|
2193
|
+
// Animations
|
|
2194
|
+
animations: {
|
|
2195
|
+
duration: "--crow-animations-duration"
|
|
2196
|
+
}
|
|
2197
|
+
};
|
|
2198
|
+
function stylesToCssVars(styles) {
|
|
2199
|
+
const vars = {};
|
|
2200
|
+
vars[CSS_VAR_NAMES.colors.primary] = styles.colors.primary;
|
|
2201
|
+
vars[CSS_VAR_NAMES.colors.background] = styles.colors.background;
|
|
2202
|
+
vars[CSS_VAR_NAMES.colors.border] = styles.colors.border;
|
|
2203
|
+
vars[CSS_VAR_NAMES.colors.text] = styles.colors.text;
|
|
2204
|
+
vars[CSS_VAR_NAMES.colors.botBubble] = styles.colors.botBubble;
|
|
2205
|
+
vars[CSS_VAR_NAMES.colors.botText] = styles.colors.botText;
|
|
2206
|
+
vars[CSS_VAR_NAMES.colors.userBubble] = styles.colors.userBubble;
|
|
2207
|
+
vars[CSS_VAR_NAMES.colors.userText] = styles.colors.userText;
|
|
2208
|
+
vars[CSS_VAR_NAMES.colors.userBorder] = styles.colors.userBorder;
|
|
2209
|
+
vars[CSS_VAR_NAMES.colors.messagesBackground] = styles.colors.messagesBackground;
|
|
2210
|
+
vars[CSS_VAR_NAMES.colors.bubbleBackground] = styles.colors.bubbleBackground;
|
|
2211
|
+
vars[CSS_VAR_NAMES.colors.bubbleBorder] = styles.colors.bubbleBorder;
|
|
2212
|
+
vars[CSS_VAR_NAMES.colors.bubbleIcon] = styles.colors.bubbleIcon;
|
|
2213
|
+
vars[CSS_VAR_NAMES.dimensions.width] = `${styles.dimensions.width}px`;
|
|
2214
|
+
vars[CSS_VAR_NAMES.dimensions.maxHeight] = `${styles.dimensions.maxHeight}px`;
|
|
2215
|
+
vars[CSS_VAR_NAMES.dimensions.messagesMaxHeight] = `${styles.dimensions.messagesMaxHeight}px`;
|
|
2216
|
+
vars[CSS_VAR_NAMES.dimensions.borderRadius] = `${styles.dimensions.borderRadius}px`;
|
|
2217
|
+
vars[CSS_VAR_NAMES.dimensions.padding] = `${styles.dimensions.padding}px`;
|
|
2218
|
+
vars[CSS_VAR_NAMES.typography.fontFamily] = styles.typography.fontFamily;
|
|
2219
|
+
vars[CSS_VAR_NAMES.typography.fontSize] = `${styles.typography.fontSize}px`;
|
|
2220
|
+
vars[CSS_VAR_NAMES.typography.headerFontSize] = `${styles.typography.headerFontSize}px`;
|
|
2221
|
+
vars[CSS_VAR_NAMES.typography.fontWeight] = String(styles.typography.fontWeight);
|
|
2222
|
+
vars[CSS_VAR_NAMES.typography.lineHeight] = String(styles.typography.lineHeight);
|
|
2223
|
+
vars[CSS_VAR_NAMES.typography.letterSpacing] = `${styles.typography.letterSpacing}px`;
|
|
2224
|
+
vars[CSS_VAR_NAMES.position.right] = `${styles.position.right}px`;
|
|
2225
|
+
vars[CSS_VAR_NAMES.position.bottom] = `${styles.position.bottom}px`;
|
|
2226
|
+
vars[CSS_VAR_NAMES.position.bubbleRight] = `${styles.position.bubbleRight}px`;
|
|
2227
|
+
vars[CSS_VAR_NAMES.position.bubbleBottom] = `${styles.position.bubbleBottom}px`;
|
|
2228
|
+
vars[CSS_VAR_NAMES.bubble.size] = `${styles.bubble.size}px`;
|
|
2229
|
+
vars[CSS_VAR_NAMES.bubble.iconSize] = `${styles.bubble.iconSize}px`;
|
|
2230
|
+
vars[CSS_VAR_NAMES.shadows.widget] = styles.shadows.widget;
|
|
2231
|
+
vars[CSS_VAR_NAMES.shadows.bubble] = styles.shadows.bubble;
|
|
2232
|
+
vars[CSS_VAR_NAMES.animations.duration] = `${styles.animations.duration}s`;
|
|
2233
|
+
return vars;
|
|
2234
|
+
}
|
|
2235
|
+
function getCssVar(varName, element = document.documentElement) {
|
|
2236
|
+
return getComputedStyle(element).getPropertyValue(varName).trim();
|
|
2237
|
+
}
|
|
2238
|
+
|
|
2239
|
+
// src/styles/inject.ts
|
|
2240
|
+
var STYLE_ID = "crow-ui-styles";
|
|
2241
|
+
var WIDGET_CSS = `*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
|
|
2242
|
+
|
|
2243
|
+
/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.crow-pointer-events-none{pointer-events:none}.crow-pointer-events-auto{pointer-events:auto}.crow-fixed{position:fixed}.crow-absolute{position:absolute}.crow-relative{position:relative}.crow-sticky{position:sticky}.crow-bottom-0{bottom:0}.crow-bottom-full{bottom:100%}.crow-left-0{left:0}.crow-right-0{right:0}.crow-top-0{top:0}.crow-z-50{z-index:50}.crow-z-\\[999999\\]{z-index:999999}.crow-m-0{margin:0}.crow-my-1{margin-top:.25rem}.crow-mb-1,.crow-my-1{margin-bottom:.25rem}.crow-mb-2{margin-bottom:.5rem}.crow-mb-3{margin-bottom:.75rem}.crow-ml-0{margin-left:0}.crow-ml-0\\.5{margin-left:.125rem}.crow-ml-2{margin-left:.5rem}.crow-ml-4{margin-left:1rem}.crow-mt-0{margin-top:0}.crow-mt-0\\.5{margin-top:.125rem}.crow-mt-1{margin-top:.25rem}.crow-mt-2{margin-top:.5rem}.crow-mt-auto{margin-top:auto}.crow-inline-block{display:inline-block}.crow-flex{display:flex}.crow-inline-flex{display:inline-flex}.crow-h-10{height:2.5rem}.crow-h-12{height:3rem}.crow-h-2{height:.5rem}.crow-h-3{height:.75rem}.crow-h-3\\.5{height:.875rem}.crow-h-4{height:1rem}.crow-h-7{height:1.75rem}.crow-h-8{height:2rem}.crow-h-full{height:100%}.crow-max-h-32{max-height:8rem}.crow-max-h-\\[200px\\]{max-height:200px}.crow-min-h-0{min-height:0}.crow-min-h-\\[32px\\]{min-height:32px}.crow-w-0{width:0}.crow-w-0\\.5{width:.125rem}.crow-w-2{width:.5rem}.crow-w-3{width:.75rem}.crow-w-3\\.5{width:.875rem}.crow-w-4{width:1rem}.crow-w-7{width:1.75rem}.crow-w-8{width:2rem}.crow-w-full{width:100%}.crow-min-w-0{min-width:0}.crow-min-w-\\[180px\\]{min-width:180px}.crow-max-w-\\[80\\%\\]{max-width:80%}.crow-max-w-\\[90\\%\\]{max-width:90%}.crow-max-w-full{max-width:100%}.crow-flex-1{flex:1 1 0%}.crow-flex-shrink-0{flex-shrink:0}.crow-rotate-180{--tw-rotate:180deg}.crow-rotate-180,.crow-scale-100{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.crow-scale-100{--tw-scale-x:1;--tw-scale-y:1}.crow-scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.crow-animate-fade-in{animation:crow-fadeIn .2s ease-out}.crow-animate-pulse{animation:crow-pulse 2s cubic-bezier(.4,0,.6,1) infinite}.crow-animate-slide-up{animation:crow-slideUp .3s ease-out}@keyframes crow-spin{to{transform:rotate(1turn)}}.crow-animate-spin{animation:crow-spin 1s linear infinite}.crow-cursor-default{cursor:default}.crow-cursor-not-allowed{cursor:not-allowed}.crow-cursor-pointer{cursor:pointer}.crow-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.crow-resize-none{resize:none}.crow-list-decimal{list-style-type:decimal}.crow-list-disc{list-style-type:disc}.crow-flex-row{flex-direction:row}.crow-flex-col{flex-direction:column}.crow-items-start{align-items:flex-start}.crow-items-end{align-items:flex-end}.crow-items-center{align-items:center}.crow-justify-start{justify-content:flex-start}.crow-justify-end{justify-content:flex-end}.crow-justify-center{justify-content:center}.crow-justify-between{justify-content:space-between}.crow-gap-1{gap:.25rem}.crow-gap-1\\.5{gap:.375rem}.crow-gap-2{gap:.5rem}.crow-gap-3{gap:.75rem}.crow-gap-4{gap:1rem}.crow-gap-6{gap:1.5rem}.crow-space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.crow-space-y-1\\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.crow-space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.crow-space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.crow-space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.crow-overflow-hidden{overflow:hidden}.crow-overflow-visible{overflow:visible}.crow-overflow-x-auto{overflow-x:auto}.crow-overflow-y-auto{overflow-y:auto}.crow-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crow-whitespace-pre-wrap{white-space:pre-wrap}.crow-break-words{overflow-wrap:break-word}.crow-rounded{border-radius:.25rem}.crow-rounded-2xl{border-radius:1rem}.crow-rounded-3xl{border-radius:1.5rem}.crow-rounded-full{border-radius:9999px}.crow-rounded-lg{border-radius:.5rem}.crow-rounded-md{border-radius:.375rem}.crow-rounded-xl{border-radius:.75rem}.crow-border{border-width:1px}.crow-border-b{border-bottom-width:1px}.crow-border-l{border-left-width:1px}.crow-border-l-2{border-left-width:2px}.crow-border-r{border-right-width:1px}.crow-border-t{border-top-width:1px}.crow-border-none{border-style:none}.crow-border-gray-100{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity,1))}.crow-border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.crow-border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.crow-border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.crow-bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.crow-bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.crow-bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.crow-bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.crow-bg-gray-400{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity,1))}.crow-bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.crow-bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.crow-bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.crow-bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.crow-bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.crow-bg-transparent{background-color:transparent}.crow-bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.crow-p-0{padding:0}.crow-p-1{padding:.25rem}.crow-p-1\\.5{padding:.375rem}.crow-p-2{padding:.5rem}.crow-p-3{padding:.75rem}.crow-p-4{padding:1rem}.crow-p-6{padding:1.5rem}.crow-px-1{padding-left:.25rem;padding-right:.25rem}.crow-px-2{padding-left:.5rem;padding-right:.5rem}.crow-px-3{padding-left:.75rem;padding-right:.75rem}.crow-px-4{padding-left:1rem;padding-right:1rem}.crow-px-6{padding-left:1.5rem;padding-right:1.5rem}.crow-py-0{padding-top:0;padding-bottom:0}.crow-py-0\\.5{padding-top:.125rem;padding-bottom:.125rem}.crow-py-1{padding-top:.25rem;padding-bottom:.25rem}.crow-py-1\\.5{padding-top:.375rem;padding-bottom:.375rem}.crow-py-2{padding-top:.5rem;padding-bottom:.5rem}.crow-py-3{padding-top:.75rem;padding-bottom:.75rem}.crow-py-6{padding-top:1.5rem;padding-bottom:1.5rem}.crow-py-8{padding-top:2rem;padding-bottom:2rem}.crow-pb-2{padding-bottom:.5rem}.crow-pl-3{padding-left:.75rem}.crow-pl-4{padding-left:1rem}.crow-pl-5{padding-left:1.25rem}.crow-pr-4{padding-right:1rem}.crow-pt-1{padding-top:.25rem}.crow-text-left{text-align:left}.crow-text-center{text-align:center}.crow-text-right{text-align:right}.crow-align-text-bottom{vertical-align:text-bottom}.crow-font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.crow-text-base{font-size:1rem;line-height:1.5rem}.crow-text-lg{font-size:1.125rem;line-height:1.75rem}.crow-text-sm{font-size:.875rem;line-height:1.25rem}.crow-text-xs{font-size:.75rem;line-height:1rem}.crow-font-bold{font-weight:700}.crow-font-medium{font-weight:500}.crow-font-semibold{font-weight:600}.crow-uppercase{text-transform:uppercase}.crow-leading-relaxed{line-height:1.625}.crow-tracking-wide{letter-spacing:.025em}.crow-text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.crow-text-blue-300{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.crow-text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.crow-text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.crow-text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.crow-text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.crow-text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.crow-text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.crow-text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.crow-text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.crow-text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.crow-text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.crow-underline{text-decoration-line:underline}.crow-opacity-0{opacity:0}.crow-opacity-100{opacity:1}.crow-opacity-50{opacity:.5}.crow-opacity-60{opacity:.6}.crow-shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.crow-shadow-2xl,.crow-shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.crow-shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.crow-shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.crow-backdrop-blur-md{--tw-backdrop-blur:blur(12px)}.crow-backdrop-blur-md,.crow-backdrop-blur-sm{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.crow-backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.crow-transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.crow-transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.crow-transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.crow-transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.crow-transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.crow-duration-150{transition-duration:.15s}.crow-duration-200{transition-duration:.2s}.crow-duration-300{transition-duration:.3s}.crow-duration-500{transition-duration:.5s}.crow-ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.crow-animate-fade-in{animation:crow-fadeIn .2s ease-out}.crow-animate-slide-up{animation:crow-slideUp .3s ease-out}.crow-animate-pulse{animation:crow-pulse 1.5s ease-in-out infinite}.crow-animation-delay-100{animation-delay:.1s}.crow-animation-delay-200{animation-delay:.2s}@keyframes crow-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes crow-slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes crow-pulse{0%,to{opacity:1}50%{opacity:.4}}.crow-overflow-y-auto::-webkit-scrollbar{width:6px}.crow-overflow-y-auto::-webkit-scrollbar-track{background:transparent}.crow-overflow-y-auto::-webkit-scrollbar-thumb{background-color:#d1d5db;border-radius:3px}.crow-overflow-y-auto::-webkit-scrollbar-thumb:hover{background-color:#9ca3af}.crow-focus-visible\\:crow-outline-none:focus-visible{outline:none}.crow-focus-visible\\:crow-ring-2:focus-visible{box-shadow:0 0 0 2px var(--crow-primary,#6366f1)}:host{--crow-primary:#6366f1;--crow-primary-dark:#4f46e5;--crow-secondary:#f1f5f9;--crow-accent:#10b981}@media (prefers-color-scheme:dark){:host{--crow-primary:#818cf8;--crow-primary-dark:#6366f1}}.placeholder\\:crow-text-gray-500::-moz-placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.placeholder\\:crow-text-gray-500::placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.last\\:crow-mb-0:last-child{margin-bottom:0}.last\\:crow-border-0:last-child{border-width:0}.hover\\:crow-scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\\:crow-bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\\:crow-bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.hover\\:crow-bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.hover\\:crow-bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.hover\\:crow-bg-red-500:hover{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.hover\\:crow-text-blue-300:hover{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.hover\\:crow-text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.hover\\:crow-text-gray-800:hover{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.hover\\:crow-opacity-100:hover{opacity:1}.focus\\:crow-outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\\:crow-ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\\:crow-ring-0:focus,.focus\\:crow-ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\\:crow-ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\\:crow-ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\\:crow-outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\\:crow-ring-0:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.disabled\\:crow-pointer-events-none:disabled{pointer-events:none}.disabled\\:crow-cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:crow-opacity-50:disabled{opacity:.5}`;
|
|
2244
|
+
var injected = false;
|
|
2245
|
+
function injectStyles(target = document) {
|
|
2246
|
+
if (target === document && injected) return;
|
|
2247
|
+
if (typeof document === "undefined") return;
|
|
2248
|
+
const existingStyle = target === document ? document.getElementById(STYLE_ID) : target.querySelector(`#${STYLE_ID}`);
|
|
2249
|
+
if (existingStyle) {
|
|
2250
|
+
if (target === document) injected = true;
|
|
2251
|
+
return;
|
|
2252
|
+
}
|
|
2253
|
+
const style = document.createElement("style");
|
|
2254
|
+
style.id = STYLE_ID;
|
|
2255
|
+
style.textContent = WIDGET_CSS;
|
|
2256
|
+
if (target === document) {
|
|
2257
|
+
document.head.appendChild(style);
|
|
2258
|
+
injected = true;
|
|
2259
|
+
} else {
|
|
2260
|
+
target.prepend(style);
|
|
2261
|
+
}
|
|
2262
|
+
}
|
|
2181
2263
|
function CrowWidget({
|
|
2182
2264
|
productId,
|
|
2183
2265
|
apiUrl = "",
|
|
@@ -2186,12 +2268,13 @@ function CrowWidget({
|
|
|
2186
2268
|
previewMode = false,
|
|
2187
2269
|
onReady
|
|
2188
2270
|
}) {
|
|
2189
|
-
const { styles
|
|
2271
|
+
const { styles, isLoading: isLoadingStyles, agentName } = useWidgetStyles({
|
|
2190
2272
|
productId,
|
|
2191
2273
|
apiUrl,
|
|
2192
2274
|
propStyles,
|
|
2193
2275
|
skip: previewMode
|
|
2194
2276
|
});
|
|
2277
|
+
const cssVars = stylesToCssVars(styles);
|
|
2195
2278
|
const messagesContainerRef = useRef(null);
|
|
2196
2279
|
const executeClientToolRef = useRef(null);
|
|
2197
2280
|
const submitToolResultRef = useRef(null);
|
|
@@ -2350,118 +2433,71 @@ function CrowWidget({
|
|
|
2350
2433
|
const handleBubbleClick = () => {
|
|
2351
2434
|
setIsCollapsed(!isCollapsed);
|
|
2352
2435
|
};
|
|
2353
|
-
|
|
2436
|
+
const renderWidgetContent = () => /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2437
|
+
/* @__PURE__ */ jsx(
|
|
2438
|
+
WidgetHeader,
|
|
2439
|
+
{
|
|
2440
|
+
isVerifiedUser,
|
|
2441
|
+
showConversationList,
|
|
2442
|
+
onNewChat: handleNewChat,
|
|
2443
|
+
onToggleHistory: handleToggleHistory
|
|
2444
|
+
}
|
|
2445
|
+
),
|
|
2446
|
+
/* @__PURE__ */ jsx(AnimatePresence, { children: showConversationList && isVerifiedUser && /* @__PURE__ */ jsx(
|
|
2447
|
+
ConversationList,
|
|
2448
|
+
{
|
|
2449
|
+
conversations: conversations.conversations,
|
|
2450
|
+
currentConversationId: chat.conversationId,
|
|
2451
|
+
onSelect: handleSelectConversation,
|
|
2452
|
+
onClose: handleCloseConversationList
|
|
2453
|
+
}
|
|
2454
|
+
) }),
|
|
2455
|
+
/* @__PURE__ */ jsx(AnimatePresence, { children: activeWorkflow && /* @__PURE__ */ jsx(
|
|
2456
|
+
WorkflowPanel,
|
|
2457
|
+
{
|
|
2458
|
+
workflow: activeWorkflow,
|
|
2459
|
+
onExit: handleExitWorkflow
|
|
2460
|
+
}
|
|
2461
|
+
) }),
|
|
2462
|
+
/* @__PURE__ */ jsx(AnimatePresence, { children: (chat.messages.length > 0 || conversations.isLoadingHistory) && /* @__PURE__ */ jsx(MessagesContainer, { ref: messagesContainerRef, children: /* @__PURE__ */ jsx(
|
|
2463
|
+
MessageList,
|
|
2464
|
+
{
|
|
2465
|
+
messages: chat.messages,
|
|
2466
|
+
activeToolCalls: chat.activeToolCalls,
|
|
2467
|
+
isLoadingHistory: conversations.isLoadingHistory,
|
|
2468
|
+
isGenerating: chat.isLoading
|
|
2469
|
+
}
|
|
2470
|
+
) }) }),
|
|
2471
|
+
/* @__PURE__ */ jsxs("div", { className: "crow-mt-auto crow-w-full", children: [
|
|
2472
|
+
/* @__PURE__ */ jsx(PoweredByBadge, { apiUrl }),
|
|
2473
|
+
/* @__PURE__ */ jsx(
|
|
2474
|
+
PromptInputBox,
|
|
2475
|
+
{
|
|
2476
|
+
onSend: handleSend,
|
|
2477
|
+
onStop: chat.stopGeneration,
|
|
2478
|
+
placeholder: "Type your message...",
|
|
2479
|
+
isLoading: chat.isLoading,
|
|
2480
|
+
className: "crow-backdrop-blur-md"
|
|
2481
|
+
}
|
|
2482
|
+
)
|
|
2483
|
+
] })
|
|
2484
|
+
] });
|
|
2485
|
+
return /* @__PURE__ */ jsx(ShadowContainer, { styles: WIDGET_CSS, children: /* @__PURE__ */ jsx("div", { className: "crow-widget-root", style: cssVars, children: /* @__PURE__ */ jsxs(
|
|
2354
2486
|
WidgetStyleProvider,
|
|
2355
2487
|
{
|
|
2356
|
-
styles
|
|
2488
|
+
styles,
|
|
2357
2489
|
agentName,
|
|
2358
2490
|
isLoading: isLoadingStyles,
|
|
2359
2491
|
variant,
|
|
2360
2492
|
children: [
|
|
2361
2493
|
variant === "floating" && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2362
2494
|
/* @__PURE__ */ jsx(ChatBubble, { isExpanded: !isCollapsed, onClick: handleBubbleClick }),
|
|
2363
|
-
!isCollapsed && /* @__PURE__ */
|
|
2364
|
-
/* @__PURE__ */ jsx(
|
|
2365
|
-
WidgetHeader,
|
|
2366
|
-
{
|
|
2367
|
-
isVerifiedUser,
|
|
2368
|
-
showConversationList,
|
|
2369
|
-
onNewChat: handleNewChat,
|
|
2370
|
-
onToggleHistory: handleToggleHistory
|
|
2371
|
-
}
|
|
2372
|
-
),
|
|
2373
|
-
/* @__PURE__ */ jsx(AnimatePresence, { children: showConversationList && isVerifiedUser && /* @__PURE__ */ jsx(
|
|
2374
|
-
ConversationList,
|
|
2375
|
-
{
|
|
2376
|
-
conversations: conversations.conversations,
|
|
2377
|
-
currentConversationId: chat.conversationId,
|
|
2378
|
-
onSelect: handleSelectConversation,
|
|
2379
|
-
onClose: handleCloseConversationList
|
|
2380
|
-
}
|
|
2381
|
-
) }),
|
|
2382
|
-
/* @__PURE__ */ jsx(AnimatePresence, { children: activeWorkflow && /* @__PURE__ */ jsx(
|
|
2383
|
-
WorkflowPanel,
|
|
2384
|
-
{
|
|
2385
|
-
workflow: activeWorkflow,
|
|
2386
|
-
onExit: handleExitWorkflow
|
|
2387
|
-
}
|
|
2388
|
-
) }),
|
|
2389
|
-
/* @__PURE__ */ jsx(AnimatePresence, { children: (chat.messages.length > 0 || conversations.isLoadingHistory) && /* @__PURE__ */ jsx(MessagesContainer, { ref: messagesContainerRef, maxHeight: styles2.dimensions.messagesMaxHeight, children: /* @__PURE__ */ jsx(
|
|
2390
|
-
MessageList,
|
|
2391
|
-
{
|
|
2392
|
-
messages: chat.messages,
|
|
2393
|
-
activeToolCalls: chat.activeToolCalls,
|
|
2394
|
-
isLoadingHistory: conversations.isLoadingHistory,
|
|
2395
|
-
isGenerating: chat.isLoading
|
|
2396
|
-
}
|
|
2397
|
-
) }) }),
|
|
2398
|
-
/* @__PURE__ */ jsxs("div", { className: "crow-mt-auto", children: [
|
|
2399
|
-
/* @__PURE__ */ jsx(PoweredByBadge, { apiUrl }),
|
|
2400
|
-
/* @__PURE__ */ jsx(
|
|
2401
|
-
PromptInputBox,
|
|
2402
|
-
{
|
|
2403
|
-
onSend: handleSend,
|
|
2404
|
-
onStop: chat.stopGeneration,
|
|
2405
|
-
placeholder: "Type your message...",
|
|
2406
|
-
isLoading: chat.isLoading,
|
|
2407
|
-
className: "crow-backdrop-blur-md"
|
|
2408
|
-
}
|
|
2409
|
-
)
|
|
2410
|
-
] })
|
|
2411
|
-
] })
|
|
2495
|
+
!isCollapsed && /* @__PURE__ */ jsx(WidgetShell, { children: renderWidgetContent() })
|
|
2412
2496
|
] }),
|
|
2413
|
-
variant === "embedded" && /* @__PURE__ */
|
|
2414
|
-
/* @__PURE__ */ jsx(
|
|
2415
|
-
WidgetHeader,
|
|
2416
|
-
{
|
|
2417
|
-
isVerifiedUser,
|
|
2418
|
-
showConversationList,
|
|
2419
|
-
onNewChat: handleNewChat,
|
|
2420
|
-
onToggleHistory: handleToggleHistory
|
|
2421
|
-
}
|
|
2422
|
-
),
|
|
2423
|
-
/* @__PURE__ */ jsx(AnimatePresence, { children: showConversationList && isVerifiedUser && /* @__PURE__ */ jsx(
|
|
2424
|
-
ConversationList,
|
|
2425
|
-
{
|
|
2426
|
-
conversations: conversations.conversations,
|
|
2427
|
-
currentConversationId: chat.conversationId,
|
|
2428
|
-
onSelect: handleSelectConversation,
|
|
2429
|
-
onClose: handleCloseConversationList
|
|
2430
|
-
}
|
|
2431
|
-
) }),
|
|
2432
|
-
/* @__PURE__ */ jsx(AnimatePresence, { children: activeWorkflow && /* @__PURE__ */ jsx(
|
|
2433
|
-
WorkflowPanel,
|
|
2434
|
-
{
|
|
2435
|
-
workflow: activeWorkflow,
|
|
2436
|
-
onExit: handleExitWorkflow
|
|
2437
|
-
}
|
|
2438
|
-
) }),
|
|
2439
|
-
/* @__PURE__ */ jsx(AnimatePresence, { children: (chat.messages.length > 0 || conversations.isLoadingHistory) && /* @__PURE__ */ jsx(MessagesContainer, { ref: messagesContainerRef, maxHeight: styles2.dimensions.messagesMaxHeight, children: /* @__PURE__ */ jsx(
|
|
2440
|
-
MessageList,
|
|
2441
|
-
{
|
|
2442
|
-
messages: chat.messages,
|
|
2443
|
-
activeToolCalls: chat.activeToolCalls,
|
|
2444
|
-
isLoadingHistory: conversations.isLoadingHistory,
|
|
2445
|
-
isGenerating: chat.isLoading
|
|
2446
|
-
}
|
|
2447
|
-
) }) }),
|
|
2448
|
-
/* @__PURE__ */ jsxs("div", { className: "crow-mt-auto", children: [
|
|
2449
|
-
/* @__PURE__ */ jsx(PoweredByBadge, { apiUrl }),
|
|
2450
|
-
/* @__PURE__ */ jsx(
|
|
2451
|
-
PromptInputBox,
|
|
2452
|
-
{
|
|
2453
|
-
onSend: handleSend,
|
|
2454
|
-
onStop: chat.stopGeneration,
|
|
2455
|
-
placeholder: "Type your message...",
|
|
2456
|
-
isLoading: chat.isLoading,
|
|
2457
|
-
className: "crow-backdrop-blur-md"
|
|
2458
|
-
}
|
|
2459
|
-
)
|
|
2460
|
-
] })
|
|
2461
|
-
] })
|
|
2497
|
+
variant === "embedded" && /* @__PURE__ */ jsx(WidgetShell, { children: renderWidgetContent() })
|
|
2462
2498
|
]
|
|
2463
2499
|
}
|
|
2464
|
-
);
|
|
2500
|
+
) }) });
|
|
2465
2501
|
}
|
|
2466
2502
|
function CrowCopilot({
|
|
2467
2503
|
productId,
|
|
@@ -2476,7 +2512,7 @@ function CrowCopilot({
|
|
|
2476
2512
|
className,
|
|
2477
2513
|
onReady
|
|
2478
2514
|
}) {
|
|
2479
|
-
const { styles
|
|
2515
|
+
const { styles, isLoading: isLoadingStyles, agentName } = useCopilotStyles({
|
|
2480
2516
|
productId,
|
|
2481
2517
|
apiUrl,
|
|
2482
2518
|
propStyles,
|
|
@@ -2565,7 +2601,7 @@ function CrowCopilot({
|
|
|
2565
2601
|
return /* @__PURE__ */ jsx(
|
|
2566
2602
|
CopilotStyleProvider,
|
|
2567
2603
|
{
|
|
2568
|
-
styles
|
|
2604
|
+
styles,
|
|
2569
2605
|
agentName: agentName || title,
|
|
2570
2606
|
isLoading: isLoadingStyles,
|
|
2571
2607
|
children: /* @__PURE__ */ jsxs(
|
|
@@ -2574,13 +2610,13 @@ function CrowCopilot({
|
|
|
2574
2610
|
className: `crow-flex crow-flex-col crow-h-full ${position === "left" ? "crow-border-r" : "crow-border-l"} ${className || ""}`,
|
|
2575
2611
|
style: {
|
|
2576
2612
|
width: widthStyle,
|
|
2577
|
-
fontFamily:
|
|
2578
|
-
fontSize:
|
|
2579
|
-
fontWeight:
|
|
2580
|
-
lineHeight:
|
|
2581
|
-
letterSpacing:
|
|
2582
|
-
background:
|
|
2583
|
-
borderColor:
|
|
2613
|
+
fontFamily: styles.typography.fontFamily,
|
|
2614
|
+
fontSize: styles.typography.fontSize,
|
|
2615
|
+
fontWeight: styles.typography.fontWeight,
|
|
2616
|
+
lineHeight: styles.typography.lineHeight,
|
|
2617
|
+
letterSpacing: styles.typography.letterSpacing,
|
|
2618
|
+
background: styles.colors.background,
|
|
2619
|
+
borderColor: styles.colors.border
|
|
2584
2620
|
},
|
|
2585
2621
|
children: [
|
|
2586
2622
|
/* @__PURE__ */ jsxs(
|
|
@@ -2588,8 +2624,8 @@ function CrowCopilot({
|
|
|
2588
2624
|
{
|
|
2589
2625
|
className: "crow-flex crow-items-center crow-justify-between crow-px-4 crow-py-3 crow-border-b",
|
|
2590
2626
|
style: {
|
|
2591
|
-
height:
|
|
2592
|
-
borderColor:
|
|
2627
|
+
height: styles.dimensions.headerHeight,
|
|
2628
|
+
borderColor: styles.colors.border
|
|
2593
2629
|
},
|
|
2594
2630
|
children: [
|
|
2595
2631
|
/* @__PURE__ */ jsx(
|
|
@@ -2597,8 +2633,8 @@ function CrowCopilot({
|
|
|
2597
2633
|
{
|
|
2598
2634
|
className: "crow-font-semibold",
|
|
2599
2635
|
style: {
|
|
2600
|
-
color:
|
|
2601
|
-
fontSize:
|
|
2636
|
+
color: styles.colors.text,
|
|
2637
|
+
fontSize: styles.typography.headerFontSize
|
|
2602
2638
|
},
|
|
2603
2639
|
children: agentName || title
|
|
2604
2640
|
}
|
|
@@ -2655,8 +2691,8 @@ function CrowCopilot({
|
|
|
2655
2691
|
isGenerating: chat.isLoading
|
|
2656
2692
|
}
|
|
2657
2693
|
) }),
|
|
2658
|
-
/* @__PURE__ */ jsxs("div", { className: "crow-p-3 crow-border-t", style: { borderColor:
|
|
2659
|
-
|
|
2694
|
+
/* @__PURE__ */ jsxs("div", { className: "crow-p-3 crow-border-t", style: { borderColor: styles.colors.border }, children: [
|
|
2695
|
+
styles.branding.showPoweredBy && /* @__PURE__ */ jsx(PoweredByBadge, { apiUrl }),
|
|
2660
2696
|
/* @__PURE__ */ jsx(
|
|
2661
2697
|
PromptInputBox,
|
|
2662
2698
|
{
|
|
@@ -2758,6 +2794,6 @@ function CrowProvider({
|
|
|
2758
2794
|
return /* @__PURE__ */ jsx(CrowContext.Provider, { value, children });
|
|
2759
2795
|
}
|
|
2760
2796
|
|
|
2761
|
-
export { AVAILABLE_MODELS, ChatBubble, ConversationList, CopilotStyleProvider, CrowCopilot, CrowProvider, CrowWidget, DEFAULT_COPILOT_STYLES, DEFAULT_MODEL, DEFAULT_WELCOME_MESSAGE, DEFAULT_WIDGET_STYLES,
|
|
2797
|
+
export { AVAILABLE_MODELS, CSS_VAR_NAMES, ChatBubble, ConversationList, CopilotStyleProvider, CrowCopilot, CrowProvider, CrowWidget, DEFAULT_COPILOT_STYLES, DEFAULT_MODEL, DEFAULT_WELCOME_MESSAGE, DEFAULT_WIDGET_STYLES, LoadingHistory, MESSAGES_CONTAINER_ID, MessageBubble, MessageList, MessagesContainer, ModelSelector, PoweredByBadge, PromptInputBox, ReasoningTrace, ShadowContainer, StreamingText, ThinkingIndicator, WIDGET_CSS, WidgetHeader, WidgetShell, WidgetStyleProvider, WorkflowPanel, clearStyleCache, getCssVar, injectStyles, mergeCopilotStyles, mergeWidgetStyles, stylesToCSSVariables, stylesToCssVars, useChat, useConversations, useCopilotStyleContext, useCopilotStyles, useCopilotStyles2 as useCopilotStylesContext, useCrowAPI, usePreviewCopilotStyles, usePreviewWidgetStyles, useWidgetStyleContext, useWidgetStyles, useWidgetStyles2 as useWidgetStylesContext, useWorkflow };
|
|
2762
2798
|
//# sourceMappingURL=index.js.map
|
|
2763
2799
|
//# sourceMappingURL=index.js.map
|