@usecrow/ui 0.1.7 → 0.1.9

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.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(styles2) {
937
+ function stylesToCSSVariables(styles) {
957
938
  return {
958
939
  // Colors
959
- "--crow-color-primary": styles2.colors.primary,
960
- "--crow-color-background": styles2.colors.background,
961
- "--crow-color-text": styles2.colors.text,
962
- "--crow-color-border": styles2.colors.border,
963
- "--crow-color-bot-bubble": styles2.colors.botBubble,
964
- "--crow-color-bot-text": styles2.colors.botText,
965
- "--crow-color-user-bubble": styles2.colors.userBubble,
966
- "--crow-color-user-text": styles2.colors.userText,
967
- "--crow-color-user-border": styles2.colors.userBorder,
968
- "--crow-color-messages-bg": styles2.colors.messagesBackground,
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": styles2.typography.fontFamily,
971
- "--crow-font-size": `${styles2.typography.fontSize}px`,
972
- "--crow-header-font-size": `${styles2.typography.headerFontSize}px`,
973
- "--crow-font-weight": `${styles2.typography.fontWeight}`,
974
- "--crow-line-height": `${styles2.typography.lineHeight}`,
975
- "--crow-letter-spacing": `${styles2.typography.letterSpacing}px`,
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": `${styles2.animations.duration}s`,
978
- "--crow-animation-easing": styles2.animations.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 styles2 = mergeWidgetStyles(dbStyles, propStyles);
1019
+ const styles = mergeWidgetStyles(dbStyles, propStyles);
1039
1020
  return {
1040
- styles: styles2,
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 styles2 = mergeCopilotStyles(dbStyles, propStyles);
1073
+ const styles = mergeCopilotStyles(dbStyles, propStyles);
1093
1074
  return {
1094
- styles: styles2,
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: styles2,
1102
+ styles,
1122
1103
  agentName = "Assistant",
1123
1104
  isLoading = false,
1124
1105
  variant = "floating"
1125
1106
  }) {
1126
1107
  const value = useMemo(
1127
- () => ({ styles: styles2, agentName, isLoading, variant }),
1128
- [styles2, agentName, isLoading, variant]
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: styles2,
1129
+ styles,
1149
1130
  agentName = "Assistant",
1150
1131
  isLoading = false
1151
1132
  }) {
1152
1133
  const value = useMemo(
1153
- () => ({ styles: styles2, agentName, isLoading }),
1154
- [styles2, agentName, isLoading]
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: styles2 } = useWidgetStyleContext();
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: styles2.bubble.size,
1180
- height: styles2.bubble.size,
1181
- right: styles2.position.bubbleRight,
1182
- bottom: styles2.position.bubbleBottom,
1183
- background: styles2.colors.bubbleBackground,
1184
- borderColor: styles2.colors.bubbleBorder,
1185
- boxShadow: styles2.shadows.bubble,
1186
- color: styles2.colors.bubbleIcon
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: styles2.bubble.iconSize, strokeWidth: 2 }) : /* @__PURE__ */ jsx(MessageCircle, { size: styles2.bubble.iconSize, strokeWidth: 2 })
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: styles2, variant } = useWidgetStyleContext();
1206
+ const { styles, variant } = useWidgetStyleContext();
1221
1207
  useEffect(() => {
1222
- const fontParam = GOOGLE_FONTS_MAP[styles2.typography.fontFamily];
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
- }, [styles2.typography.fontFamily]);
1217
+ }, [styles.typography.fontFamily]);
1232
1218
  const baseStyle = {
1233
- borderRadius: styles2.dimensions.borderRadius,
1234
- padding: styles2.dimensions.padding,
1235
- background: styles2.colors.background,
1236
- borderColor: styles2.colors.border,
1237
- color: styles2.colors.text,
1238
- boxShadow: styles2.shadows.widget,
1239
- fontFamily: styles2.typography.fontFamily,
1240
- fontSize: styles2.typography.fontSize,
1241
- fontWeight: styles2.typography.fontWeight,
1242
- lineHeight: styles2.typography.lineHeight,
1243
- letterSpacing: styles2.typography.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
- GlassCard,
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(${styles2.dimensions.width}px, calc(100vw - 32px))`,
1254
- height: `min(${styles2.dimensions.maxHeight}px, calc(100vh - 120px))`
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
- GlassCard,
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(${styles2.dimensions.width}px, calc(100vw - 32px))`,
1268
- height: `min(${styles2.dimensions.maxHeight}px, calc(100vh - 120px))`,
1269
- right: styles2.position.right,
1270
- bottom: styles2.position.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: styles2 } = useWidgetStyleContext();
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: styles2.colors.border },
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: styles2.colors.text,
1300
- fontSize: styles2.typography.headerFontSize
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 styles2 = useWidgetStyles2();
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: styles2.colors.botBubble,
1630
- color: styles2.colors.botText
1615
+ background: styles.colors.botBubble,
1616
+ color: styles.colors.botText
1631
1617
  } : {
1632
- background: styles2.colors.userBubble,
1633
- color: styles2.colors.userText,
1634
- border: `1px solid ${styles2.colors.userBorder}`
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, maxHeight }, ref) => {
1699
- const styles2 = useWidgetStyles2();
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: styles2.animations.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 styles2 = useWidgetStyles2();
1818
- const branding = styles2.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", color: "white" } }) : /* @__PURE__ */ jsx(ArrowUp, { className: "crow-h-3.5 crow-w-3.5", style: { color: hasContent ? "#ffffff" : "#9ca3af" } })
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,20 +2137,146 @@ 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 = "",
2184
2266
  variant = "floating",
2185
2267
  styles: propStyles,
2186
2268
  previewMode = false,
2187
- onReady
2269
+ onReady,
2270
+ onIdentify,
2271
+ tools
2188
2272
  }) {
2189
- const { styles: styles2, isLoading: isLoadingStyles, agentName } = useWidgetStyles({
2273
+ const { styles, isLoading: isLoadingStyles, agentName } = useWidgetStyles({
2190
2274
  productId,
2191
2275
  apiUrl,
2192
2276
  propStyles,
2193
2277
  skip: previewMode
2194
2278
  });
2279
+ const cssVars = stylesToCssVars(styles);
2195
2280
  const messagesContainerRef = useRef(null);
2196
2281
  const executeClientToolRef = useRef(null);
2197
2282
  const submitToolResultRef = useRef(null);
@@ -2316,6 +2401,23 @@ function CrowWidget({
2316
2401
  onReady?.();
2317
2402
  }
2318
2403
  }, [isLoadingStyles, onReady]);
2404
+ useEffect(() => {
2405
+ if (!isLoadingStyles && onIdentify) {
2406
+ const identify = (data) => {
2407
+ if (!data.token) {
2408
+ console.error("[Crow] identify() requires a token");
2409
+ return;
2410
+ }
2411
+ window.crow?.("identify", data);
2412
+ };
2413
+ onIdentify(identify);
2414
+ }
2415
+ }, [isLoadingStyles, onIdentify]);
2416
+ useEffect(() => {
2417
+ if (tools && Object.keys(tools).length > 0) {
2418
+ window.crow?.("registerTools", tools);
2419
+ }
2420
+ }, [tools]);
2319
2421
  const handleSend = (message) => {
2320
2422
  if (!message.trim()) return;
2321
2423
  setIsCollapsed(false);
@@ -2350,118 +2452,71 @@ function CrowWidget({
2350
2452
  const handleBubbleClick = () => {
2351
2453
  setIsCollapsed(!isCollapsed);
2352
2454
  };
2353
- return /* @__PURE__ */ jsxs(
2455
+ const renderWidgetContent = () => /* @__PURE__ */ jsxs(Fragment, { children: [
2456
+ /* @__PURE__ */ jsx(
2457
+ WidgetHeader,
2458
+ {
2459
+ isVerifiedUser,
2460
+ showConversationList,
2461
+ onNewChat: handleNewChat,
2462
+ onToggleHistory: handleToggleHistory
2463
+ }
2464
+ ),
2465
+ /* @__PURE__ */ jsx(AnimatePresence, { children: showConversationList && isVerifiedUser && /* @__PURE__ */ jsx(
2466
+ ConversationList,
2467
+ {
2468
+ conversations: conversations.conversations,
2469
+ currentConversationId: chat.conversationId,
2470
+ onSelect: handleSelectConversation,
2471
+ onClose: handleCloseConversationList
2472
+ }
2473
+ ) }),
2474
+ /* @__PURE__ */ jsx(AnimatePresence, { children: activeWorkflow && /* @__PURE__ */ jsx(
2475
+ WorkflowPanel,
2476
+ {
2477
+ workflow: activeWorkflow,
2478
+ onExit: handleExitWorkflow
2479
+ }
2480
+ ) }),
2481
+ /* @__PURE__ */ jsx(AnimatePresence, { children: (chat.messages.length > 0 || conversations.isLoadingHistory) && /* @__PURE__ */ jsx(MessagesContainer, { ref: messagesContainerRef, children: /* @__PURE__ */ jsx(
2482
+ MessageList,
2483
+ {
2484
+ messages: chat.messages,
2485
+ activeToolCalls: chat.activeToolCalls,
2486
+ isLoadingHistory: conversations.isLoadingHistory,
2487
+ isGenerating: chat.isLoading
2488
+ }
2489
+ ) }) }),
2490
+ /* @__PURE__ */ jsxs("div", { className: "crow-mt-auto crow-w-full", children: [
2491
+ /* @__PURE__ */ jsx(PoweredByBadge, { apiUrl }),
2492
+ /* @__PURE__ */ jsx(
2493
+ PromptInputBox,
2494
+ {
2495
+ onSend: handleSend,
2496
+ onStop: chat.stopGeneration,
2497
+ placeholder: "Type your message...",
2498
+ isLoading: chat.isLoading,
2499
+ className: "crow-backdrop-blur-md"
2500
+ }
2501
+ )
2502
+ ] })
2503
+ ] });
2504
+ return /* @__PURE__ */ jsx(ShadowContainer, { styles: WIDGET_CSS, children: /* @__PURE__ */ jsx("div", { className: "crow-widget-root", style: cssVars, children: /* @__PURE__ */ jsxs(
2354
2505
  WidgetStyleProvider,
2355
2506
  {
2356
- styles: styles2,
2507
+ styles,
2357
2508
  agentName,
2358
2509
  isLoading: isLoadingStyles,
2359
2510
  variant,
2360
2511
  children: [
2361
2512
  variant === "floating" && /* @__PURE__ */ jsxs(Fragment, { children: [
2362
2513
  /* @__PURE__ */ jsx(ChatBubble, { isExpanded: !isCollapsed, onClick: handleBubbleClick }),
2363
- !isCollapsed && /* @__PURE__ */ jsxs(WidgetShell, { children: [
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
- ] })
2514
+ !isCollapsed && /* @__PURE__ */ jsx(WidgetShell, { children: renderWidgetContent() })
2412
2515
  ] }),
2413
- variant === "embedded" && /* @__PURE__ */ jsxs(WidgetShell, { children: [
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
- ] })
2516
+ variant === "embedded" && /* @__PURE__ */ jsx(WidgetShell, { children: renderWidgetContent() })
2462
2517
  ]
2463
2518
  }
2464
- );
2519
+ ) }) });
2465
2520
  }
2466
2521
  function CrowCopilot({
2467
2522
  productId,
@@ -2476,7 +2531,7 @@ function CrowCopilot({
2476
2531
  className,
2477
2532
  onReady
2478
2533
  }) {
2479
- const { styles: styles2, isLoading: isLoadingStyles, agentName } = useCopilotStyles({
2534
+ const { styles, isLoading: isLoadingStyles, agentName } = useCopilotStyles({
2480
2535
  productId,
2481
2536
  apiUrl,
2482
2537
  propStyles,
@@ -2565,7 +2620,7 @@ function CrowCopilot({
2565
2620
  return /* @__PURE__ */ jsx(
2566
2621
  CopilotStyleProvider,
2567
2622
  {
2568
- styles: styles2,
2623
+ styles,
2569
2624
  agentName: agentName || title,
2570
2625
  isLoading: isLoadingStyles,
2571
2626
  children: /* @__PURE__ */ jsxs(
@@ -2574,13 +2629,13 @@ function CrowCopilot({
2574
2629
  className: `crow-flex crow-flex-col crow-h-full ${position === "left" ? "crow-border-r" : "crow-border-l"} ${className || ""}`,
2575
2630
  style: {
2576
2631
  width: widthStyle,
2577
- fontFamily: styles2.typography.fontFamily,
2578
- fontSize: styles2.typography.fontSize,
2579
- fontWeight: styles2.typography.fontWeight,
2580
- lineHeight: styles2.typography.lineHeight,
2581
- letterSpacing: styles2.typography.letterSpacing,
2582
- background: styles2.colors.background,
2583
- borderColor: styles2.colors.border
2632
+ fontFamily: styles.typography.fontFamily,
2633
+ fontSize: styles.typography.fontSize,
2634
+ fontWeight: styles.typography.fontWeight,
2635
+ lineHeight: styles.typography.lineHeight,
2636
+ letterSpacing: styles.typography.letterSpacing,
2637
+ background: styles.colors.background,
2638
+ borderColor: styles.colors.border
2584
2639
  },
2585
2640
  children: [
2586
2641
  /* @__PURE__ */ jsxs(
@@ -2588,8 +2643,8 @@ function CrowCopilot({
2588
2643
  {
2589
2644
  className: "crow-flex crow-items-center crow-justify-between crow-px-4 crow-py-3 crow-border-b",
2590
2645
  style: {
2591
- height: styles2.dimensions.headerHeight,
2592
- borderColor: styles2.colors.border
2646
+ height: styles.dimensions.headerHeight,
2647
+ borderColor: styles.colors.border
2593
2648
  },
2594
2649
  children: [
2595
2650
  /* @__PURE__ */ jsx(
@@ -2597,8 +2652,8 @@ function CrowCopilot({
2597
2652
  {
2598
2653
  className: "crow-font-semibold",
2599
2654
  style: {
2600
- color: styles2.colors.text,
2601
- fontSize: styles2.typography.headerFontSize
2655
+ color: styles.colors.text,
2656
+ fontSize: styles.typography.headerFontSize
2602
2657
  },
2603
2658
  children: agentName || title
2604
2659
  }
@@ -2655,8 +2710,8 @@ function CrowCopilot({
2655
2710
  isGenerating: chat.isLoading
2656
2711
  }
2657
2712
  ) }),
2658
- /* @__PURE__ */ jsxs("div", { className: "crow-p-3 crow-border-t", style: { borderColor: styles2.colors.border }, children: [
2659
- styles2.branding.showPoweredBy && /* @__PURE__ */ jsx(PoweredByBadge, { apiUrl }),
2713
+ /* @__PURE__ */ jsxs("div", { className: "crow-p-3 crow-border-t", style: { borderColor: styles.colors.border }, children: [
2714
+ styles.branding.showPoweredBy && /* @__PURE__ */ jsx(PoweredByBadge, { apiUrl }),
2660
2715
  /* @__PURE__ */ jsx(
2661
2716
  PromptInputBox,
2662
2717
  {
@@ -2758,6 +2813,6 @@ function CrowProvider({
2758
2813
  return /* @__PURE__ */ jsx(CrowContext.Provider, { value, children });
2759
2814
  }
2760
2815
 
2761
- export { AVAILABLE_MODELS, ChatBubble, ConversationList, CopilotStyleProvider, CrowCopilot, CrowProvider, CrowWidget, DEFAULT_COPILOT_STYLES, DEFAULT_MODEL, DEFAULT_WELCOME_MESSAGE, DEFAULT_WIDGET_STYLES, GlassCard, LoadingHistory, MESSAGES_CONTAINER_ID, MessageBubble, MessageList, MessagesContainer, ModelSelector, PoweredByBadge, PromptInputBox, ReasoningTrace, StreamingText, ThinkingIndicator, WidgetHeader, WidgetShell, WidgetStyleProvider, WorkflowPanel, clearStyleCache, mergeCopilotStyles, mergeWidgetStyles, stylesToCSSVariables, useChat, useConversations, useCopilotStyleContext, useCopilotStyles, useCopilotStyles2 as useCopilotStylesContext, useCrowAPI, usePreviewCopilotStyles, usePreviewWidgetStyles, useWidgetStyleContext, useWidgetStyles, useWidgetStyles2 as useWidgetStylesContext, useWorkflow };
2816
+ 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
2817
  //# sourceMappingURL=index.js.map
2763
2818
  //# sourceMappingURL=index.js.map