@wallavi/widget 1.6.6 → 1.6.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.js +167 -144
- package/dist/index.mjs +169 -146
- package/package.json +7 -3
package/dist/index.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useRef, useEffect, useState, useCallback, useMemo } from 'react';
|
|
2
2
|
import { UploadCloud, X, RotateCcw, Loader2, Square, Mic, Paperclip, ArrowUp, Zap, ChevronDown, CheckCircle2, AlertCircle, Search, Check, FileText, FileSpreadsheet } from 'lucide-react';
|
|
3
3
|
import { clsx } from 'clsx';
|
|
4
|
-
import { twMerge } from 'tailwind-merge';
|
|
4
|
+
import { extendTailwindMerge, twMerge as twMerge$1 } from 'tailwind-merge';
|
|
5
5
|
import * as AvatarPrimitive from '@radix-ui/react-avatar';
|
|
6
6
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
7
7
|
import ReactMarkdownLib from 'react-markdown';
|
|
@@ -30,7 +30,8 @@ function styleInject(css, { insertAt } = {}) {
|
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
// src/styles.css
|
|
33
|
-
styleInject(".container {\n width: 100%;\n}\n@media (min-width: 640px) {\n .container {\n max-width: 640px;\n }\n}\n@media (min-width: 768px) {\n .container {\n max-width: 768px;\n }\n}\n@media (min-width: 1024px) {\n .container {\n max-width: 1024px;\n }\n}\n@media (min-width: 1280px) {\n .container {\n max-width: 1280px;\n }\n}\n@media (min-width: 1536px) {\n .container {\n max-width: 1536px;\n }\n}\n.pointer-events-none {\n pointer-events: none;\n}\n.visible {\n visibility: visible;\n}\n.collapse {\n visibility: collapse;\n}\n.static {\n position: static;\n}\n.fixed {\n position: fixed;\n}\n.absolute {\n position: absolute;\n}\n.relative {\n position: relative;\n}\n.inset-0 {\n inset: 0px;\n}\n.left-2\\.5 {\n left: 0.625rem;\n}\n.top-1\\/2 {\n top: 50%;\n}\n.z-50 {\n z-index: 50;\n}\n.mb-1 {\n margin-bottom: 0.25rem;\n}\n.mb-2 {\n margin-bottom: 0.5rem;\n}\n.ml-0\\.5 {\n margin-left: 0.125rem;\n}\n.mt-0\\.5 {\n margin-top: 0.125rem;\n}\n.mt-1 {\n margin-top: 0.25rem;\n}\n.block {\n display: block;\n}\n.inline-block {\n display: inline-block;\n}\n.flex {\n display: flex;\n}\n.inline-flex {\n display: inline-flex;\n}\n.table {\n display: table;\n}\n.grid {\n display: grid;\n}\n.hidden {\n display: none;\n}\n.h-10 {\n height: 2.5rem;\n}\n.h-2\\.5 {\n height: 0.625rem;\n}\n.h-20 {\n height: 5rem;\n}\n.h-3 {\n height: 0.75rem;\n}\n.h-3\\.5 {\n height: 0.875rem;\n}\n.h-4 {\n height: 1rem;\n}\n.h-6 {\n height: 1.5rem;\n}\n.h-7 {\n height: 1.75rem;\n}\n.h-8 {\n height: 2rem;\n}\n.h-full {\n height: 100%;\n}\n.max-h-32 {\n max-height: 8rem;\n}\n.max-h-48 {\n max-height: 12rem;\n}\n.max-h-\\[168px\\] {\n max-height: 168px;\n}\n.max-h-\\[180px\\] {\n max-height: 180px;\n}\n.w-0\\.5 {\n width: 0.125rem;\n}\n.w-10 {\n width: 2.5rem;\n}\n.w-2\\.5 {\n width: 0.625rem;\n}\n.w-20 {\n width: 5rem;\n}\n.w-3 {\n width: 0.75rem;\n}\n.w-3\\.5 {\n width: 0.875rem;\n}\n.w-4 {\n width: 1rem;\n}\n.w-6 {\n width: 1.5rem;\n}\n.w-7 {\n width: 1.75rem;\n}\n.w-8 {\n width: 2rem;\n}\n.w-fit {\n width: -moz-fit-content;\n width: fit-content;\n}\n.w-full {\n width: 100%;\n}\n.min-w-0 {\n min-width: 0px;\n}\n.max-w-\\[120px\\] {\n max-width: 120px;\n}\n.max-w-\\[200px\\] {\n max-width: 200px;\n}\n.max-w-\\[78\\%\\] {\n max-width: 78%;\n}\n.max-w-\\[82\\%\\] {\n max-width: 82%;\n}\n.max-w-none {\n max-width: none;\n}\n.flex-1 {\n flex: 1 1 0%;\n}\n.shrink-0 {\n flex-shrink: 0;\n}\n.-translate-y-1\\/2 {\n --tw-translate-y: -50%;\n 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));\n}\n.rotate-180 {\n --tw-rotate: 180deg;\n 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));\n}\n.transform {\n 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));\n}\n@keyframes pulse {\n 50% {\n opacity: .5;\n }\n}\n.animate-pulse {\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n.animate-spin {\n animation: spin 1s linear infinite;\n}\n.cursor-default {\n cursor: default;\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.select-none {\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n.resize-none {\n resize: none;\n}\n.grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.flex-col {\n flex-direction: column;\n}\n.flex-wrap {\n flex-wrap: wrap;\n}\n.items-start {\n align-items: flex-start;\n}\n.items-end {\n align-items: flex-end;\n}\n.items-center {\n align-items: center;\n}\n.justify-end {\n justify-content: flex-end;\n}\n.justify-center {\n justify-content: center;\n}\n.justify-between {\n justify-content: space-between;\n}\n.gap-0\\.5 {\n gap: 0.125rem;\n}\n.gap-1 {\n gap: 0.25rem;\n}\n.gap-1\\.5 {\n gap: 0.375rem;\n}\n.gap-2 {\n gap: 0.5rem;\n}\n.gap-2\\.5 {\n gap: 0.625rem;\n}\n.gap-4 {\n gap: 1rem;\n}\n.divide-y > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-y-reverse: 0;\n border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\n border-bottom-width: calc(1px * var(--tw-divide-y-reverse));\n}\n.divide-border\\/40 > :not([hidden]) ~ :not([hidden]) {\n border-color: hsl(var(--border) / 0.4);\n}\n.overflow-hidden {\n overflow: hidden;\n}\n.overflow-y-auto {\n overflow-y: auto;\n}\n.overscroll-contain {\n overscroll-behavior: contain;\n}\n.truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.whitespace-pre-wrap {\n white-space: pre-wrap;\n}\n.rounded {\n border-radius: 0.25rem;\n}\n.rounded-2xl {\n border-radius: 1rem;\n}\n.rounded-full {\n border-radius: 9999px;\n}\n.rounded-lg {\n border-radius: var(--radius);\n}\n.rounded-xl {\n border-radius: 0.75rem;\n}\n.rounded-tl-none {\n border-top-left-radius: 0px;\n}\n.rounded-tl-sm {\n border-top-left-radius: calc(var(--radius) - 4px);\n}\n.rounded-tr-sm {\n border-top-right-radius: calc(var(--radius) - 4px);\n}\n.border {\n border-width: 1px;\n}\n.border-2 {\n border-width: 2px;\n}\n.border-b {\n border-bottom-width: 1px;\n}\n.border-l-2 {\n border-left-width: 2px;\n}\n.border-t {\n border-top-width: 1px;\n}\n.border-background {\n border-color: hsl(var(--background));\n}\n.border-black\\/10 {\n border-color: rgb(0 0 0 / 0.1);\n}\n.border-border {\n border-color: hsl(var(--border));\n}\n.border-border\\/30 {\n border-color: hsl(var(--border) / 0.3);\n}\n.border-border\\/40 {\n border-color: hsl(var(--border) / 0.4);\n}\n.border-border\\/50 {\n border-color: hsl(var(--border) / 0.5);\n}\n.border-border\\/60 {\n border-color: hsl(var(--border) / 0.6);\n}\n.border-border\\/70 {\n border-color: hsl(var(--border) / 0.7);\n}\n.border-muted {\n border-color: hsl(var(--muted));\n}\n.border-muted-foreground\\/30 {\n border-color: hsl(var(--muted-foreground) / 0.3);\n}\n.border-red-200 {\n --tw-border-opacity: 1;\n border-color: rgb(254 202 202 / var(--tw-border-opacity, 1));\n}\n.border-white\\/20 {\n border-color: rgb(255 255 255 / 0.2);\n}\n.bg-background {\n background-color: hsl(var(--background));\n}\n.bg-background\\/20 {\n background-color: hsl(var(--background) / 0.2);\n}\n.bg-background\\/40 {\n background-color: hsl(var(--background) / 0.4);\n}\n.bg-background\\/50 {\n background-color: hsl(var(--background) / 0.5);\n}\n.bg-background\\/90 {\n background-color: hsl(var(--background) / 0.9);\n}\n.bg-black\\/10 {\n background-color: rgb(0 0 0 / 0.1);\n}\n.bg-foreground {\n background-color: hsl(var(--foreground));\n}\n.bg-foreground\\/60 {\n background-color: hsl(var(--foreground) / 0.6);\n}\n.bg-muted {\n background-color: hsl(var(--muted));\n}\n.bg-muted-foreground\\/10 {\n background-color: hsl(var(--muted-foreground) / 0.1);\n}\n.bg-muted\\/50 {\n background-color: hsl(var(--muted) / 0.5);\n}\n.bg-muted\\/60 {\n background-color: hsl(var(--muted) / 0.6);\n}\n.bg-primary {\n background-color: hsl(var(--primary));\n}\n.bg-primary\\/5 {\n background-color: hsl(var(--primary) / 0.05);\n}\n.bg-red-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));\n}\n.bg-transparent {\n background-color: transparent;\n}\n.bg-white\\/10 {\n background-color: rgb(255 255 255 / 0.1);\n}\n.bg-white\\/15 {\n background-color: rgb(255 255 255 / 0.15);\n}\n.fill-current {\n fill: currentColor;\n}\n.object-cover {\n -o-object-fit: cover;\n object-fit: cover;\n}\n.p-0\\.5 {\n padding: 0.125rem;\n}\n.p-1\\.5 {\n padding: 0.375rem;\n}\n.p-3 {\n padding: 0.75rem;\n}\n.px-1 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.px-2\\.5 {\n padding-left: 0.625rem;\n padding-right: 0.625rem;\n}\n.px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.px-3\\.5 {\n padding-left: 0.875rem;\n padding-right: 0.875rem;\n}\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.py-0\\.5 {\n padding-top: 0.125rem;\n padding-bottom: 0.125rem;\n}\n.py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n.py-1\\.5 {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n}\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.py-2\\.5 {\n padding-top: 0.625rem;\n padding-bottom: 0.625rem;\n}\n.py-3 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n.py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n.pb-1\\.5 {\n padding-bottom: 0.375rem;\n}\n.pb-4 {\n padding-bottom: 1rem;\n}\n.pl-2 {\n padding-left: 0.5rem;\n}\n.pl-7 {\n padding-left: 1.75rem;\n}\n.pr-0\\.5 {\n padding-right: 0.125rem;\n}\n.pr-3 {\n padding-right: 0.75rem;\n}\n.pt-2 {\n padding-top: 0.5rem;\n}\n.pt-5 {\n padding-top: 1.25rem;\n}\n.text-left {\n text-align: left;\n}\n.text-center {\n text-align: center;\n}\n.text-start {\n text-align: start;\n}\n.text-end {\n text-align: end;\n}\n.align-middle {\n vertical-align: middle;\n}\n.text-\\[10\\.5px\\] {\n font-size: 10.5px;\n}\n.text-\\[10px\\] {\n font-size: 10px;\n}\n.text-\\[11px\\] {\n font-size: 11px;\n}\n.text-\\[12\\.5px\\] {\n font-size: 12.5px;\n}\n.text-\\[12px\\] {\n font-size: 12px;\n}\n.text-\\[8px\\] {\n font-size: 8px;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.font-medium {\n font-weight: 500;\n}\n.font-semibold {\n font-weight: 600;\n}\n.uppercase {\n text-transform: uppercase;\n}\n.tabular-nums {\n --tw-numeric-spacing: tabular-nums;\n font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);\n}\n.leading-none {\n line-height: 1;\n}\n.leading-relaxed {\n line-height: 1.625;\n}\n.leading-snug {\n line-height: 1.375;\n}\n.leading-tight {\n line-height: 1.25;\n}\n.tracking-widest {\n letter-spacing: 0.1em;\n}\n.text-background {\n color: hsl(var(--background));\n}\n.text-black\\/40 {\n color: rgb(0 0 0 / 0.4);\n}\n.text-black\\/60 {\n color: rgb(0 0 0 / 0.6);\n}\n.text-destructive {\n color: hsl(var(--destructive));\n}\n.text-destructive\\/70 {\n color: hsl(var(--destructive) / 0.7);\n}\n.text-emerald-500 {\n --tw-text-opacity: 1;\n color: rgb(16 185 129 / var(--tw-text-opacity, 1));\n}\n.text-foreground {\n color: hsl(var(--foreground));\n}\n.text-foreground\\/60 {\n color: hsl(var(--foreground) / 0.6);\n}\n.text-foreground\\/70 {\n color: hsl(var(--foreground) / 0.7);\n}\n.text-foreground\\/80 {\n color: hsl(var(--foreground) / 0.8);\n}\n.text-muted-foreground {\n color: hsl(var(--muted-foreground));\n}\n.text-muted-foreground\\/40 {\n color: hsl(var(--muted-foreground) / 0.4);\n}\n.text-muted-foreground\\/50 {\n color: hsl(var(--muted-foreground) / 0.5);\n}\n.text-muted-foreground\\/70 {\n color: hsl(var(--muted-foreground) / 0.7);\n}\n.text-muted-foreground\\/80 {\n color: hsl(var(--muted-foreground) / 0.8);\n}\n.text-primary {\n color: hsl(var(--primary));\n}\n.text-primary-foreground {\n color: hsl(var(--primary-foreground));\n}\n.text-primary\\/70 {\n color: hsl(var(--primary) / 0.7);\n}\n.text-primary\\/80 {\n color: hsl(var(--primary) / 0.8);\n}\n.text-red-400 {\n --tw-text-opacity: 1;\n color: rgb(248 113 113 / var(--tw-text-opacity, 1));\n}\n.text-red-500 {\n --tw-text-opacity: 1;\n color: rgb(239 68 68 / var(--tw-text-opacity, 1));\n}\n.text-red-600 {\n --tw-text-opacity: 1;\n color: rgb(220 38 38 / var(--tw-text-opacity, 1));\n}\n.text-white\\/60 {\n color: rgb(255 255 255 / 0.6);\n}\n.text-white\\/80 {\n color: rgb(255 255 255 / 0.8);\n}\n.underline {\n text-decoration-line: underline;\n}\n.line-through {\n text-decoration-line: line-through;\n}\n.no-underline {\n text-decoration-line: none;\n}\n.decoration-foreground\\/20 {\n text-decoration-color: hsl(var(--foreground) / 0.2);\n}\n.opacity-100 {\n opacity: 1;\n}\n.opacity-30 {\n opacity: 0.3;\n}\n.opacity-35 {\n opacity: 0.35;\n}\n.opacity-40 {\n opacity: 0.4;\n}\n.opacity-60 {\n opacity: 0.6;\n}\n.opacity-70 {\n opacity: 0.7;\n}\n.opacity-80 {\n opacity: 0.8;\n}\n.shadow-2xl {\n --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);\n --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-sm {\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-xl {\n --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.outline-none {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.ring-2 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.ring-inset {\n --tw-ring-inset: inset;\n}\n.ring-primary\\/60 {\n --tw-ring-color: hsl(var(--primary) / 0.6);\n}\n.filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.backdrop-blur-sm {\n --tw-backdrop-blur: blur(4px);\n 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);\n}\n.transition {\n transition-property:\n color,\n background-color,\n border-color,\n text-decoration-color,\n fill,\n stroke,\n opacity,\n box-shadow,\n transform,\n filter,\n backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-colors {\n transition-property:\n color,\n background-color,\n border-color,\n text-decoration-color,\n fill,\n stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-shadow {\n transition-property: box-shadow;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-transform {\n transition-property: transform;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.duration-100 {\n transition-duration: 100ms;\n}\n.duration-150 {\n transition-duration: 150ms;\n}\n.duration-200 {\n transition-duration: 200ms;\n}\n@keyframes enter {\n from {\n opacity: var(--tw-enter-opacity, 1);\n transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));\n }\n}\n@keyframes exit {\n to {\n opacity: var(--tw-exit-opacity, 1);\n transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));\n }\n}\n.duration-100 {\n animation-duration: 100ms;\n}\n.duration-150 {\n animation-duration: 150ms;\n}\n.duration-200 {\n animation-duration: 200ms;\n}\n.running {\n animation-play-state: running;\n}\n.wallavi-widget *,\n.wallavi-widget *::before,\n.wallavi-widget *::after {\n box-sizing: border-box;\n border-width: 0;\n border-style: solid;\n}\n.wallavi-widget button {\n cursor: pointer;\n}\n.wallavi-widget img,\n.wallavi-widget video {\n max-width: 100%;\n height: auto;\n}\n.placeholder\\:text-muted-foreground\\/40::-moz-placeholder {\n color: hsl(var(--muted-foreground) / 0.4);\n}\n.placeholder\\:text-muted-foreground\\/40::placeholder {\n color: hsl(var(--muted-foreground) / 0.4);\n}\n.placeholder\\:text-muted-foreground\\/50::-moz-placeholder {\n color: hsl(var(--muted-foreground) / 0.5);\n}\n.placeholder\\:text-muted-foreground\\/50::placeholder {\n color: hsl(var(--muted-foreground) / 0.5);\n}\n.focus-within\\:ring-1:focus-within {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.focus-within\\:ring-ring\\/40:focus-within {\n --tw-ring-color: hsl(var(--ring) / 0.4);\n}\n.hover\\:border-foreground\\/25:hover {\n border-color: hsl(var(--foreground) / 0.25);\n}\n.hover\\:border-foreground\\/30:hover {\n border-color: hsl(var(--foreground) / 0.3);\n}\n.hover\\:bg-background:hover {\n background-color: hsl(var(--background));\n}\n.hover\\:bg-foreground\\/10:hover {\n background-color: hsl(var(--foreground) / 0.1);\n}\n.hover\\:bg-muted:hover {\n background-color: hsl(var(--muted));\n}\n.hover\\:bg-white\\/10:hover {\n background-color: rgb(255 255 255 / 0.1);\n}\n.hover\\:text-foreground:hover {\n color: hsl(var(--foreground));\n}\n.focus\\:ring-1:focus {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.focus\\:ring-ring\\/40:focus {\n --tw-ring-color: hsl(var(--ring) / 0.4);\n}\n.disabled\\:opacity-40:disabled {\n opacity: 0.4;\n}\n.disabled\\:opacity-50:disabled {\n opacity: 0.5;\n}\n.dark\\:border-red-800:is(.dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(153 27 27 / var(--tw-border-opacity, 1));\n}\n.dark\\:bg-red-950:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(69 10 10 / var(--tw-bg-opacity, 1));\n}\n.dark\\:text-red-400:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(248 113 113 / var(--tw-text-opacity, 1));\n}\n");
|
|
33
|
+
styleInject(".ww-pointer-events-none {\n pointer-events: none;\n}\n.ww-absolute {\n position: absolute;\n}\n.ww-relative {\n position: relative;\n}\n.ww-inset-0 {\n inset: 0px;\n}\n.ww-left-2\\.5 {\n left: 0.625rem;\n}\n.ww-top-1\\/2 {\n top: 50%;\n}\n.ww-z-50 {\n z-index: 50;\n}\n.ww-mb-1 {\n margin-bottom: 0.25rem;\n}\n.ww-mb-2 {\n margin-bottom: 0.5rem;\n}\n.ww-ml-0\\.5 {\n margin-left: 0.125rem;\n}\n.ww-mt-0\\.5 {\n margin-top: 0.125rem;\n}\n.ww-mt-1 {\n margin-top: 0.25rem;\n}\n.ww-block {\n display: block;\n}\n.ww-inline-block {\n display: inline-block;\n}\n.ww-flex {\n display: flex;\n}\n.ww-inline-flex {\n display: inline-flex;\n}\n.ww-grid {\n display: grid;\n}\n.ww-hidden {\n display: none;\n}\n.ww-h-10 {\n height: 2.5rem;\n}\n.ww-h-2\\.5 {\n height: 0.625rem;\n}\n.ww-h-20 {\n height: 5rem;\n}\n.ww-h-3 {\n height: 0.75rem;\n}\n.ww-h-3\\.5 {\n height: 0.875rem;\n}\n.ww-h-4 {\n height: 1rem;\n}\n.ww-h-6 {\n height: 1.5rem;\n}\n.ww-h-7 {\n height: 1.75rem;\n}\n.ww-h-8 {\n height: 2rem;\n}\n.ww-h-full {\n height: 100%;\n}\n.ww-max-h-32 {\n max-height: 8rem;\n}\n.ww-max-h-48 {\n max-height: 12rem;\n}\n.ww-max-h-\\[168px\\] {\n max-height: 168px;\n}\n.ww-max-h-\\[180px\\] {\n max-height: 180px;\n}\n.ww-w-0\\.5 {\n width: 0.125rem;\n}\n.ww-w-10 {\n width: 2.5rem;\n}\n.ww-w-2\\.5 {\n width: 0.625rem;\n}\n.ww-w-20 {\n width: 5rem;\n}\n.ww-w-3 {\n width: 0.75rem;\n}\n.ww-w-3\\.5 {\n width: 0.875rem;\n}\n.ww-w-4 {\n width: 1rem;\n}\n.ww-w-6 {\n width: 1.5rem;\n}\n.ww-w-7 {\n width: 1.75rem;\n}\n.ww-w-8 {\n width: 2rem;\n}\n.ww-w-fit {\n width: -moz-fit-content;\n width: fit-content;\n}\n.ww-w-full {\n width: 100%;\n}\n.ww-min-w-0 {\n min-width: 0px;\n}\n.ww-max-w-\\[120px\\] {\n max-width: 120px;\n}\n.ww-max-w-\\[200px\\] {\n max-width: 200px;\n}\n.ww-max-w-\\[78\\%\\] {\n max-width: 78%;\n}\n.ww-max-w-\\[82\\%\\] {\n max-width: 82%;\n}\n.ww-max-w-none {\n max-width: none;\n}\n.ww-flex-1 {\n flex: 1 1 0%;\n}\n.ww-shrink-0 {\n flex-shrink: 0;\n}\n.ww-rotate-180 {\n --tw-rotate: 180deg;\n 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));\n}\n@keyframes ww-pulse {\n 50% {\n opacity: .5;\n }\n}\n.ww-animate-pulse {\n animation: ww-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n}\n@keyframes ww-spin {\n to {\n transform: rotate(360deg);\n }\n}\n.ww-animate-spin {\n animation: ww-spin 1s linear infinite;\n}\n.ww-cursor-default {\n cursor: default;\n}\n.ww-cursor-pointer {\n cursor: pointer;\n}\n.ww-select-none {\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n.ww-resize-none {\n resize: none;\n}\n.ww-grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.ww-flex-col {\n flex-direction: column;\n}\n.ww-flex-wrap {\n flex-wrap: wrap;\n}\n.ww-items-start {\n align-items: flex-start;\n}\n.ww-items-end {\n align-items: flex-end;\n}\n.ww-items-center {\n align-items: center;\n}\n.ww-justify-end {\n justify-content: flex-end;\n}\n.ww-justify-center {\n justify-content: center;\n}\n.ww-justify-between {\n justify-content: space-between;\n}\n.ww-gap-0\\.5 {\n gap: 0.125rem;\n}\n.ww-gap-1 {\n gap: 0.25rem;\n}\n.ww-gap-1\\.5 {\n gap: 0.375rem;\n}\n.ww-gap-2 {\n gap: 0.5rem;\n}\n.ww-gap-2\\.5 {\n gap: 0.625rem;\n}\n.ww-gap-4 {\n gap: 1rem;\n}\n.ww-divide-y > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-y-reverse: 0;\n border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\n border-bottom-width: calc(1px * var(--tw-divide-y-reverse));\n}\n.ww-divide-border\\/40 > :not([hidden]) ~ :not([hidden]) {\n border-color: hsl(var(--border) / 0.4);\n}\n.ww-overflow-hidden {\n overflow: hidden;\n}\n.ww-overflow-y-auto {\n overflow-y: auto;\n}\n.ww-overscroll-contain {\n overscroll-behavior: contain;\n}\n.ww-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ww-whitespace-pre-wrap {\n white-space: pre-wrap;\n}\n.ww-rounded {\n border-radius: 0.25rem;\n}\n.ww-rounded-2xl {\n border-radius: 1rem;\n}\n.ww-rounded-full {\n border-radius: 9999px;\n}\n.ww-rounded-lg {\n border-radius: var(--radius);\n}\n.ww-rounded-xl {\n border-radius: 0.75rem;\n}\n.ww-rounded-tl-none {\n border-top-left-radius: 0px;\n}\n.ww-rounded-tl-sm {\n border-top-left-radius: calc(var(--radius) - 4px);\n}\n.ww-rounded-tr-sm {\n border-top-right-radius: calc(var(--radius) - 4px);\n}\n.ww-border {\n border-width: 1px;\n}\n.ww-border-2 {\n border-width: 2px;\n}\n.ww-border-b {\n border-bottom-width: 1px;\n}\n.ww-border-l-2 {\n border-left-width: 2px;\n}\n.ww-border-t {\n border-top-width: 1px;\n}\n.ww-border-background {\n border-color: hsl(var(--background));\n}\n.ww-border-black\\/10 {\n border-color: rgb(0 0 0 / 0.1);\n}\n.ww-border-border {\n border-color: hsl(var(--border));\n}\n.ww-border-border\\/30 {\n border-color: hsl(var(--border) / 0.3);\n}\n.ww-border-border\\/40 {\n border-color: hsl(var(--border) / 0.4);\n}\n.ww-border-border\\/50 {\n border-color: hsl(var(--border) / 0.5);\n}\n.ww-border-border\\/60 {\n border-color: hsl(var(--border) / 0.6);\n}\n.ww-border-border\\/70 {\n border-color: hsl(var(--border) / 0.7);\n}\n.ww-border-muted {\n border-color: hsl(var(--muted));\n}\n.ww-border-muted-foreground\\/30 {\n border-color: hsl(var(--muted-foreground) / 0.3);\n}\n.ww-border-red-200 {\n --tw-border-opacity: 1;\n border-color: rgb(254 202 202 / var(--tw-border-opacity, 1));\n}\n.ww-border-white\\/20 {\n border-color: rgb(255 255 255 / 0.2);\n}\n.ww-bg-background {\n background-color: hsl(var(--background));\n}\n.ww-bg-background\\/20 {\n background-color: hsl(var(--background) / 0.2);\n}\n.ww-bg-background\\/40 {\n background-color: hsl(var(--background) / 0.4);\n}\n.ww-bg-background\\/50 {\n background-color: hsl(var(--background) / 0.5);\n}\n.ww-bg-background\\/90 {\n background-color: hsl(var(--background) / 0.9);\n}\n.ww-bg-black\\/10 {\n background-color: rgb(0 0 0 / 0.1);\n}\n.ww-bg-foreground {\n background-color: hsl(var(--foreground));\n}\n.ww-bg-foreground\\/60 {\n background-color: hsl(var(--foreground) / 0.6);\n}\n.ww-bg-muted {\n background-color: hsl(var(--muted));\n}\n.ww-bg-muted-foreground\\/10 {\n background-color: hsl(var(--muted-foreground) / 0.1);\n}\n.ww-bg-muted\\/50 {\n background-color: hsl(var(--muted) / 0.5);\n}\n.ww-bg-muted\\/60 {\n background-color: hsl(var(--muted) / 0.6);\n}\n.ww-bg-primary {\n background-color: hsl(var(--primary));\n}\n.ww-bg-primary\\/5 {\n background-color: hsl(var(--primary) / 0.05);\n}\n.ww-bg-red-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));\n}\n.ww-bg-transparent {\n background-color: transparent;\n}\n.ww-bg-white\\/10 {\n background-color: rgb(255 255 255 / 0.1);\n}\n.ww-bg-white\\/15 {\n background-color: rgb(255 255 255 / 0.15);\n}\n.ww-fill-current {\n fill: currentColor;\n}\n.ww-object-cover {\n -o-object-fit: cover;\n object-fit: cover;\n}\n.ww-p-0\\.5 {\n padding: 0.125rem;\n}\n.ww-p-1\\.5 {\n padding: 0.375rem;\n}\n.ww-p-3 {\n padding: 0.75rem;\n}\n.ww-px-1 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n.ww-px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.ww-px-2\\.5 {\n padding-left: 0.625rem;\n padding-right: 0.625rem;\n}\n.ww-px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.ww-px-3\\.5 {\n padding-left: 0.875rem;\n padding-right: 0.875rem;\n}\n.ww-px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.ww-py-0\\.5 {\n padding-top: 0.125rem;\n padding-bottom: 0.125rem;\n}\n.ww-py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n.ww-py-1\\.5 {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n}\n.ww-py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.ww-py-2\\.5 {\n padding-top: 0.625rem;\n padding-bottom: 0.625rem;\n}\n.ww-py-3 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n.ww-py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n.ww-pb-1\\.5 {\n padding-bottom: 0.375rem;\n}\n.ww-pb-4 {\n padding-bottom: 1rem;\n}\n.ww-pl-2 {\n padding-left: 0.5rem;\n}\n.ww-pl-7 {\n padding-left: 1.75rem;\n}\n.ww-pr-0\\.5 {\n padding-right: 0.125rem;\n}\n.ww-pr-3 {\n padding-right: 0.75rem;\n}\n.ww-pt-2 {\n padding-top: 0.5rem;\n}\n.ww-pt-5 {\n padding-top: 1.25rem;\n}\n.ww-text-left {\n text-align: left;\n}\n.ww-text-center {\n text-align: center;\n}\n.ww-align-middle {\n vertical-align: middle;\n}\n.ww-text-\\[10\\.5px\\] {\n font-size: 10.5px;\n}\n.ww-text-\\[10px\\] {\n font-size: 10px;\n}\n.ww-text-\\[11px\\] {\n font-size: 11px;\n}\n.ww-text-\\[12\\.5px\\] {\n font-size: 12.5px;\n}\n.ww-text-\\[12px\\] {\n font-size: 12px;\n}\n.ww-text-\\[8px\\] {\n font-size: 8px;\n}\n.ww-text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.ww-text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.ww-font-medium {\n font-weight: 500;\n}\n.ww-font-semibold {\n font-weight: 600;\n}\n.ww-uppercase {\n text-transform: uppercase;\n}\n.ww-leading-none {\n line-height: 1;\n}\n.ww-leading-relaxed {\n line-height: 1.625;\n}\n.ww-leading-snug {\n line-height: 1.375;\n}\n.ww-leading-tight {\n line-height: 1.25;\n}\n.ww-tracking-widest {\n letter-spacing: 0.1em;\n}\n.ww-text-background {\n color: hsl(var(--background));\n}\n.ww-text-black\\/40 {\n color: rgb(0 0 0 / 0.4);\n}\n.ww-text-black\\/60 {\n color: rgb(0 0 0 / 0.6);\n}\n.ww-text-destructive {\n color: hsl(var(--destructive));\n}\n.ww-text-destructive\\/70 {\n color: hsl(var(--destructive) / 0.7);\n}\n.ww-text-emerald-500 {\n --tw-text-opacity: 1;\n color: rgb(16 185 129 / var(--tw-text-opacity, 1));\n}\n.ww-text-foreground {\n color: hsl(var(--foreground));\n}\n.ww-text-foreground\\/60 {\n color: hsl(var(--foreground) / 0.6);\n}\n.ww-text-foreground\\/70 {\n color: hsl(var(--foreground) / 0.7);\n}\n.ww-text-foreground\\/80 {\n color: hsl(var(--foreground) / 0.8);\n}\n.ww-text-muted-foreground {\n color: hsl(var(--muted-foreground));\n}\n.ww-text-muted-foreground\\/40 {\n color: hsl(var(--muted-foreground) / 0.4);\n}\n.ww-text-muted-foreground\\/50 {\n color: hsl(var(--muted-foreground) / 0.5);\n}\n.ww-text-muted-foreground\\/70 {\n color: hsl(var(--muted-foreground) / 0.7);\n}\n.ww-text-muted-foreground\\/80 {\n color: hsl(var(--muted-foreground) / 0.8);\n}\n.ww-text-primary {\n color: hsl(var(--primary));\n}\n.ww-text-primary-foreground {\n color: hsl(var(--primary-foreground));\n}\n.ww-text-primary\\/70 {\n color: hsl(var(--primary) / 0.7);\n}\n.ww-text-primary\\/80 {\n color: hsl(var(--primary) / 0.8);\n}\n.ww-text-red-400 {\n --tw-text-opacity: 1;\n color: rgb(248 113 113 / var(--tw-text-opacity, 1));\n}\n.ww-text-red-500 {\n --tw-text-opacity: 1;\n color: rgb(239 68 68 / var(--tw-text-opacity, 1));\n}\n.ww-text-red-600 {\n --tw-text-opacity: 1;\n color: rgb(220 38 38 / var(--tw-text-opacity, 1));\n}\n.ww-text-white\\/60 {\n color: rgb(255 255 255 / 0.6);\n}\n.ww-text-white\\/80 {\n color: rgb(255 255 255 / 0.8);\n}\n.ww-line-through {\n text-decoration-line: line-through;\n}\n.ww-no-underline {\n text-decoration-line: none;\n}\n.ww-decoration-foreground\\/20 {\n text-decoration-color: hsl(var(--foreground) / 0.2);\n}\n.ww-opacity-100 {\n opacity: 1;\n}\n.ww-opacity-30 {\n opacity: 0.3;\n}\n.ww-opacity-35 {\n opacity: 0.35;\n}\n.ww-opacity-40 {\n opacity: 0.4;\n}\n.ww-opacity-60 {\n opacity: 0.6;\n}\n.ww-opacity-70 {\n opacity: 0.7;\n}\n.ww-opacity-80 {\n opacity: 0.8;\n}\n.ww-shadow-2xl {\n --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);\n --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.ww-shadow-sm {\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.ww-shadow-xl {\n --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.ww-outline-none {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.ww-ring-2 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.ww-ring-inset {\n --tw-ring-inset: inset;\n}\n.ww-ring-primary\\/60 {\n --tw-ring-color: hsl(var(--primary) / 0.6);\n}\n.ww-backdrop-blur-sm {\n --tw-backdrop-blur: blur(4px);\n 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);\n}\n.ww-transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.ww-transition-colors {\n transition-property:\n color,\n background-color,\n border-color,\n text-decoration-color,\n fill,\n stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.ww-transition-shadow {\n transition-property: box-shadow;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.ww-transition-transform {\n transition-property: transform;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.ww-duration-100 {\n transition-duration: 100ms;\n}\n.ww-duration-150 {\n transition-duration: 150ms;\n}\n.ww-duration-200 {\n transition-duration: 200ms;\n}\n@keyframes enter {\n from {\n opacity: var(--tw-enter-opacity, 1);\n transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));\n }\n}\n@keyframes exit {\n to {\n opacity: var(--tw-exit-opacity, 1);\n transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));\n }\n}\n.ww-duration-100 {\n animation-duration: 100ms;\n}\n.ww-duration-150 {\n animation-duration: 150ms;\n}\n.ww-duration-200 {\n animation-duration: 200ms;\n}\n.wallavi-widget *,\n.wallavi-widget *::before,\n.wallavi-widget *::after {\n box-sizing: border-box;\n border-width: 0;\n border-style: solid;\n}\n.wallavi-widget button {\n cursor: pointer;\n}\n.wallavi-widget img,\n.wallavi-widget video {\n max-width: 100%;\n height: auto;\n}\n.placeholder\\:ww-text-muted-foreground\\/40::-moz-placeholder {\n color: hsl(var(--muted-foreground) / 0.4);\n}\n.placeholder\\:ww-text-muted-foreground\\/40::placeholder {\n color: hsl(var(--muted-foreground) / 0.4);\n}\n.placeholder\\:ww-text-muted-foreground\\/50::-moz-placeholder {\n color: hsl(var(--muted-foreground) / 0.5);\n}\n.placeholder\\:ww-text-muted-foreground\\/50::placeholder {\n color: hsl(var(--muted-foreground) / 0.5);\n}\n.focus-within\\:ww-ring-1:focus-within {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.focus-within\\:ww-ring-ring\\/40:focus-within {\n --tw-ring-color: hsl(var(--ring) / 0.4);\n}\n.hover\\:ww-border-foreground\\/25:hover {\n border-color: hsl(var(--foreground) / 0.25);\n}\n.hover\\:ww-border-foreground\\/30:hover {\n border-color: hsl(var(--foreground) / 0.3);\n}\n.hover\\:ww-bg-background:hover {\n background-color: hsl(var(--background));\n}\n.hover\\:ww-bg-foreground\\/10:hover {\n background-color: hsl(var(--foreground) / 0.1);\n}\n.hover\\:ww-bg-muted:hover {\n background-color: hsl(var(--muted));\n}\n.hover\\:ww-bg-white\\/10:hover {\n background-color: rgb(255 255 255 / 0.1);\n}\n.hover\\:ww-text-foreground:hover {\n color: hsl(var(--foreground));\n}\n.focus\\:ww-ring-1:focus {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.focus\\:ww-ring-ring\\/40:focus {\n --tw-ring-color: hsl(var(--ring) / 0.4);\n}\n.disabled\\:ww-opacity-40:disabled {\n opacity: 0.4;\n}\n.disabled\\:ww-opacity-50:disabled {\n opacity: 0.5;\n}\n.dark\\:ww-border-red-800:is(.ww-dark *) {\n --tw-border-opacity: 1;\n border-color: rgb(153 27 27 / var(--tw-border-opacity, 1));\n}\n.dark\\:ww-bg-red-950:is(.ww-dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(69 10 10 / var(--tw-bg-opacity, 1));\n}\n.dark\\:ww-text-red-400:is(.ww-dark *) {\n --tw-text-opacity: 1;\n color: rgb(248 113 113 / var(--tw-text-opacity, 1));\n}\n");
|
|
34
|
+
var twMerge = extendTailwindMerge({ prefix: "ww-" });
|
|
34
35
|
var cn = (...inputs) => twMerge(clsx(inputs));
|
|
35
36
|
|
|
36
37
|
// src/types.ts
|
|
@@ -98,7 +99,7 @@ function useChat({
|
|
|
98
99
|
const [streaming, setStreaming] = useState(false);
|
|
99
100
|
const [threadId, setThreadId] = useState(() => {
|
|
100
101
|
if (persistKey && typeof window !== "undefined") {
|
|
101
|
-
const saved =
|
|
102
|
+
const saved = localStorage.getItem(`${persistKey}_tid`);
|
|
102
103
|
if (saved) return saved;
|
|
103
104
|
}
|
|
104
105
|
return crypto.randomUUID();
|
|
@@ -114,10 +115,31 @@ function useChat({
|
|
|
114
115
|
useEffect(() => {
|
|
115
116
|
if (!persistKey) return;
|
|
116
117
|
try {
|
|
117
|
-
|
|
118
|
+
localStorage.setItem(`${persistKey}_tid`, threadId);
|
|
118
119
|
} catch {
|
|
119
120
|
}
|
|
120
121
|
}, [persistKey, threadId]);
|
|
122
|
+
useEffect(() => {
|
|
123
|
+
if (!persistKey || typeof window === "undefined") return;
|
|
124
|
+
if (messages.length > 0) return;
|
|
125
|
+
void (async () => {
|
|
126
|
+
try {
|
|
127
|
+
const res = await fetch(
|
|
128
|
+
`${API_URL}/api/chat/messages?agentId=${encodeURIComponent(agentId)}&threadId=${encodeURIComponent(threadId)}`
|
|
129
|
+
);
|
|
130
|
+
if (!res.ok) return;
|
|
131
|
+
const { data } = await res.json();
|
|
132
|
+
if (!data?.length) return;
|
|
133
|
+
const restored = data.map((m) => ({
|
|
134
|
+
id: m.id,
|
|
135
|
+
role: m.role,
|
|
136
|
+
parts: m.parts.filter((p) => p?.type)
|
|
137
|
+
})).filter((m) => m.parts.length > 0);
|
|
138
|
+
if (restored.length > 0) setMessages(restored);
|
|
139
|
+
} catch {
|
|
140
|
+
}
|
|
141
|
+
})();
|
|
142
|
+
}, []);
|
|
121
143
|
const reset = useCallback(() => {
|
|
122
144
|
setMessages([]);
|
|
123
145
|
setInput("");
|
|
@@ -128,6 +150,7 @@ function useChat({
|
|
|
128
150
|
try {
|
|
129
151
|
sessionStorage.removeItem(`${persistKey}_msgs`);
|
|
130
152
|
sessionStorage.removeItem(`${persistKey}_tid`);
|
|
153
|
+
localStorage.removeItem(`${persistKey}_tid`);
|
|
131
154
|
} catch {
|
|
132
155
|
}
|
|
133
156
|
}
|
|
@@ -583,10 +606,10 @@ function ChatHeader({
|
|
|
583
606
|
return /* @__PURE__ */ jsxs(
|
|
584
607
|
"header",
|
|
585
608
|
{
|
|
586
|
-
className: "flex items-center justify-between px-4 py-3 shrink-0",
|
|
609
|
+
className: "ww-flex ww-items-center ww-justify-between ww-px-4 ww-py-3 ww-shrink-0",
|
|
587
610
|
style: { backgroundColor: headerBg, color: headerText, borderBottom: `1px solid ${headerText}18` },
|
|
588
611
|
children: [
|
|
589
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2.5 min-w-0", children: [
|
|
612
|
+
/* @__PURE__ */ jsxs("div", { className: "ww-flex ww-items-center ww-gap-2.5 ww-min-w-0", children: [
|
|
590
613
|
/* @__PURE__ */ jsx(Avatar, { style: { width: 32, height: 32, border: `2px solid ${headerText}30` }, children: profilePicture ? /* @__PURE__ */ jsx(AvatarImage, { src: profilePicture, alt: title }) : /* @__PURE__ */ jsx(
|
|
591
614
|
AvatarFallback,
|
|
592
615
|
{
|
|
@@ -594,17 +617,17 @@ function ChatHeader({
|
|
|
594
617
|
children: title.slice(0, 2).toUpperCase()
|
|
595
618
|
}
|
|
596
619
|
) }),
|
|
597
|
-
/* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
|
|
598
|
-
/* @__PURE__ */ jsx("p", { className: "font-semibold text-sm truncate leading-tight", children: title }),
|
|
599
|
-
/* @__PURE__ */ jsx("p", { className: "text-[10px] opacity-70 leading-tight", children: "AI Assistant" })
|
|
620
|
+
/* @__PURE__ */ jsxs("div", { className: "ww-min-w-0", children: [
|
|
621
|
+
/* @__PURE__ */ jsx("p", { className: "ww-font-semibold ww-text-sm ww-truncate ww-leading-tight", children: title }),
|
|
622
|
+
/* @__PURE__ */ jsx("p", { className: "ww-text-[10px] ww-opacity-70 ww-leading-tight", children: "AI Assistant" })
|
|
600
623
|
] })
|
|
601
624
|
] }),
|
|
602
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
|
|
625
|
+
/* @__PURE__ */ jsxs("div", { className: "ww-flex ww-items-center ww-gap-1", children: [
|
|
603
626
|
onExpand && /* @__PURE__ */ jsx(
|
|
604
627
|
"button",
|
|
605
628
|
{
|
|
606
629
|
onClick: onExpand,
|
|
607
|
-
className: "rounded-full p-1.5 transition-colors hover:bg-white/10",
|
|
630
|
+
className: "ww-rounded-full ww-p-1.5 ww-transition-colors hover:ww-bg-white/10",
|
|
608
631
|
title: expanded ? "Minimize" : "Expand",
|
|
609
632
|
children: expanded ? /* @__PURE__ */ jsx(MinimizeIcon, {}) : /* @__PURE__ */ jsx(ExpandIcon, {})
|
|
610
633
|
}
|
|
@@ -613,18 +636,18 @@ function ChatHeader({
|
|
|
613
636
|
"button",
|
|
614
637
|
{
|
|
615
638
|
onClick: onReset,
|
|
616
|
-
className: "rounded-full p-1.5 transition-colors hover:bg-white/10",
|
|
639
|
+
className: "ww-rounded-full ww-p-1.5 ww-transition-colors hover:ww-bg-white/10",
|
|
617
640
|
title: "New conversation",
|
|
618
|
-
children: /* @__PURE__ */ jsx(RotateCcw, { className: "h-3.5 w-3.5", style: { color: headerText } })
|
|
641
|
+
children: /* @__PURE__ */ jsx(RotateCcw, { className: "ww-h-3.5 ww-w-3.5", style: { color: headerText } })
|
|
619
642
|
}
|
|
620
643
|
),
|
|
621
644
|
onClose && /* @__PURE__ */ jsx(
|
|
622
645
|
"button",
|
|
623
646
|
{
|
|
624
647
|
onClick: onClose,
|
|
625
|
-
className: "rounded-full p-1.5 transition-colors hover:bg-white/10",
|
|
648
|
+
className: "ww-rounded-full ww-p-1.5 ww-transition-colors hover:ww-bg-white/10",
|
|
626
649
|
title: "Close",
|
|
627
|
-
children: /* @__PURE__ */ jsx(X, { className: "h-3.5 w-3.5", style: { color: headerText } })
|
|
650
|
+
children: /* @__PURE__ */ jsx(X, { className: "ww-h-3.5 ww-w-3.5", style: { color: headerText } })
|
|
628
651
|
}
|
|
629
652
|
)
|
|
630
653
|
] })
|
|
@@ -632,15 +655,15 @@ function ChatHeader({
|
|
|
632
655
|
}
|
|
633
656
|
);
|
|
634
657
|
}
|
|
635
|
-
var cn2 = (...inputs) => twMerge(clsx(inputs));
|
|
658
|
+
var cn2 = (...inputs) => twMerge$1(clsx(inputs));
|
|
636
659
|
function formatBytes(bytes) {
|
|
637
660
|
if (bytes < 1024) return `${bytes} B`;
|
|
638
661
|
if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(0)} KB`;
|
|
639
662
|
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
640
663
|
}
|
|
641
664
|
function ChipLeading({ a }) {
|
|
642
|
-
if (a.status === "uploading") return /* @__PURE__ */ jsx(Loader2, { className: "h-3 w-3 shrink-0 animate-spin" });
|
|
643
|
-
if (a.status === "error") return /* @__PURE__ */ jsx(AlertCircle, { className: "h-3 w-3 shrink-0" });
|
|
665
|
+
if (a.status === "uploading") return /* @__PURE__ */ jsx(Loader2, { className: "ww-h-3 ww-w-3 ww-shrink-0 ww-animate-spin" });
|
|
666
|
+
if (a.status === "error") return /* @__PURE__ */ jsx(AlertCircle, { className: "ww-h-3 ww-w-3 ww-shrink-0" });
|
|
644
667
|
const thumbSrc = a.payload?.url ?? a.payload?.base64;
|
|
645
668
|
if (a.mimeType.startsWith("image/") && thumbSrc) {
|
|
646
669
|
return /* @__PURE__ */ jsx(
|
|
@@ -648,38 +671,38 @@ function ChipLeading({ a }) {
|
|
|
648
671
|
{
|
|
649
672
|
src: thumbSrc,
|
|
650
673
|
alt: a.name,
|
|
651
|
-
className: "h-6 w-6 rounded object-cover shrink-0 border border-border/40"
|
|
674
|
+
className: "ww-h-6 ww-w-6 ww-rounded ww-object-cover ww-shrink-0 ww-border ww-border-border/40"
|
|
652
675
|
}
|
|
653
676
|
);
|
|
654
677
|
}
|
|
655
|
-
if (a.mimeType.startsWith("image/")) return /* @__PURE__ */ jsx("div", { className: "h-6 w-6 rounded bg-muted-foreground/10 border border-border/30 shrink-0 flex items-center justify-center", children: /* @__PURE__ */ jsx("span", { className: "text-[8px] font-semibold text-muted-foreground/50", children: "IMG" }) });
|
|
656
|
-
if (a.mimeType === "application/pdf") return /* @__PURE__ */ jsx(FileText, { className: "h-3 w-3 shrink-0 text-red-400" });
|
|
678
|
+
if (a.mimeType.startsWith("image/")) return /* @__PURE__ */ jsx("div", { className: "ww-h-6 ww-w-6 ww-rounded ww-bg-muted-foreground/10 ww-border ww-border-border/30 ww-shrink-0 ww-flex ww-items-center ww-justify-center", children: /* @__PURE__ */ jsx("span", { className: "ww-text-[8px] ww-font-semibold ww-text-muted-foreground/50", children: "IMG" }) });
|
|
679
|
+
if (a.mimeType === "application/pdf") return /* @__PURE__ */ jsx(FileText, { className: "ww-h-3 ww-w-3 ww-shrink-0 ww-text-red-400" });
|
|
657
680
|
if (a.mimeType.includes("csv") || a.mimeType.includes("spreadsheet") || a.name.endsWith(".csv")) {
|
|
658
|
-
return /* @__PURE__ */ jsx(FileSpreadsheet, { className: "h-3 w-3 shrink-0 text-emerald-500" });
|
|
681
|
+
return /* @__PURE__ */ jsx(FileSpreadsheet, { className: "ww-h-3 ww-w-3 ww-shrink-0 ww-text-emerald-500" });
|
|
659
682
|
}
|
|
660
|
-
return /* @__PURE__ */ jsx(FileText, { className: "h-3 w-3 shrink-0" });
|
|
683
|
+
return /* @__PURE__ */ jsx(FileText, { className: "ww-h-3 ww-w-3 ww-shrink-0" });
|
|
661
684
|
}
|
|
662
685
|
function AttachmentChips({ attachments, onRemove }) {
|
|
663
686
|
if (attachments.length === 0) return null;
|
|
664
|
-
return /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1.5 px-1 pb-1.5", children: attachments.map((a) => /* @__PURE__ */ jsxs(
|
|
687
|
+
return /* @__PURE__ */ jsx("div", { className: "ww-flex ww-flex-wrap ww-gap-1.5 ww-px-1 ww-pb-1.5", children: attachments.map((a) => /* @__PURE__ */ jsxs(
|
|
665
688
|
"div",
|
|
666
689
|
{
|
|
667
690
|
className: cn2(
|
|
668
|
-
"flex items-center gap-1.5 rounded-lg border px-2 py-1 text-[11px] max-w-[200px]",
|
|
669
|
-
a.status === "error" ? "border-red-200 bg-red-50 text-red-600 dark:border-red-800 dark:bg-red-950 dark:text-red-400" : "border-border bg-muted/60 text-muted-foreground"
|
|
691
|
+
"ww-flex ww-items-center ww-gap-1.5 ww-rounded-lg ww-border ww-px-2 ww-py-1 ww-text-[11px] ww-max-w-[200px]",
|
|
692
|
+
a.status === "error" ? "ww-border-red-200 ww-bg-red-50 ww-text-red-600 dark:ww-border-red-800 dark:ww-bg-red-950 dark:ww-text-red-400" : "ww-border-border ww-bg-muted/60 ww-text-muted-foreground"
|
|
670
693
|
),
|
|
671
694
|
children: [
|
|
672
695
|
/* @__PURE__ */ jsx(ChipLeading, { a }),
|
|
673
|
-
/* @__PURE__ */ jsx("span", { className: "truncate leading-tight", children: a.status === "error" ? a.errorMessage ?? "Upload failed" : a.name }),
|
|
674
|
-
a.status === "ready" && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-muted-foreground/50", children: formatBytes(a.sizeBytes) }),
|
|
696
|
+
/* @__PURE__ */ jsx("span", { className: "ww-truncate ww-leading-tight", children: a.status === "error" ? a.errorMessage ?? "Upload failed" : a.name }),
|
|
697
|
+
a.status === "ready" && /* @__PURE__ */ jsx("span", { className: "ww-shrink-0 ww-text-muted-foreground/50", children: formatBytes(a.sizeBytes) }),
|
|
675
698
|
/* @__PURE__ */ jsx(
|
|
676
699
|
"button",
|
|
677
700
|
{
|
|
678
701
|
type: "button",
|
|
679
702
|
onClick: () => onRemove(a.id),
|
|
680
|
-
className: "shrink-0 rounded-full p-0.5 hover:bg-foreground/10 transition-colors ml-0.5",
|
|
703
|
+
className: "ww-shrink-0 ww-rounded-full ww-p-0.5 hover:ww-bg-foreground/10 ww-transition-colors ww-ml-0.5",
|
|
681
704
|
title: "Remove",
|
|
682
|
-
children: /* @__PURE__ */ jsx(X, { className: "h-2.5 w-2.5" })
|
|
705
|
+
children: /* @__PURE__ */ jsx(X, { className: "ww-h-2.5 ww-w-2.5" })
|
|
683
706
|
}
|
|
684
707
|
)
|
|
685
708
|
]
|
|
@@ -695,8 +718,8 @@ function SentAttachments({ attachments, contrastColor }) {
|
|
|
695
718
|
const images = attachments.filter((a) => a.contentType === "image");
|
|
696
719
|
const files = attachments.filter((a) => a.contentType !== "image");
|
|
697
720
|
const isDark = contrastColor === "#ffffff" || contrastColor === "#fff";
|
|
698
|
-
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1.5 w-full", children: [
|
|
699
|
-
images.length > 0 && /* @__PURE__ */ jsx("div", { className: cn("flex gap-1.5 flex-wrap", images.length === 1 && ""), children: images.map((img) => {
|
|
721
|
+
return /* @__PURE__ */ jsxs("div", { className: "ww-flex ww-flex-col ww-gap-1.5 ww-w-full", children: [
|
|
722
|
+
images.length > 0 && /* @__PURE__ */ jsx("div", { className: cn("ww-flex ww-gap-1.5 ww-flex-wrap", images.length === 1 && ""), children: images.map((img) => {
|
|
700
723
|
const src = img.url ?? img.base64;
|
|
701
724
|
return src ? /* @__PURE__ */ jsx(
|
|
702
725
|
"img",
|
|
@@ -704,9 +727,9 @@ function SentAttachments({ attachments, contrastColor }) {
|
|
|
704
727
|
src,
|
|
705
728
|
alt: img.name,
|
|
706
729
|
className: cn(
|
|
707
|
-
"rounded-xl object-cover border",
|
|
708
|
-
images.length === 1 ? "w-full max-h-48" : "h-20 w-20",
|
|
709
|
-
isDark ? "border-white/20" : "border-black/10"
|
|
730
|
+
"ww-rounded-xl ww-object-cover ww-border",
|
|
731
|
+
images.length === 1 ? "ww-w-full ww-max-h-48" : "ww-h-20 ww-w-20",
|
|
732
|
+
isDark ? "ww-border-white/20" : "ww-border-black/10"
|
|
710
733
|
)
|
|
711
734
|
},
|
|
712
735
|
img.id
|
|
@@ -714,24 +737,24 @@ function SentAttachments({ attachments, contrastColor }) {
|
|
|
714
737
|
"div",
|
|
715
738
|
{
|
|
716
739
|
className: cn(
|
|
717
|
-
"h-20 w-20 rounded-xl flex items-center justify-center text-[10px] font-medium",
|
|
718
|
-
isDark ? "bg-white/10 text-white/60" : "bg-black/10 text-black/40"
|
|
740
|
+
"ww-h-20 ww-w-20 ww-rounded-xl ww-flex ww-items-center ww-justify-center ww-text-[10px] ww-font-medium",
|
|
741
|
+
isDark ? "ww-bg-white/10 ww-text-white/60" : "ww-bg-black/10 ww-text-black/40"
|
|
719
742
|
),
|
|
720
743
|
children: "IMG"
|
|
721
744
|
},
|
|
722
745
|
img.id
|
|
723
746
|
);
|
|
724
747
|
}) }),
|
|
725
|
-
files.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1", children: files.map((f) => /* @__PURE__ */ jsxs(
|
|
748
|
+
files.length > 0 && /* @__PURE__ */ jsx("div", { className: "ww-flex ww-flex-wrap ww-gap-1", children: files.map((f) => /* @__PURE__ */ jsxs(
|
|
726
749
|
"div",
|
|
727
750
|
{
|
|
728
751
|
className: cn(
|
|
729
|
-
"flex items-center gap-1 rounded-lg px-2 py-1 text-[11px]",
|
|
730
|
-
isDark ? "bg-white/15 text-white/80" : "bg-black/10 text-black/60"
|
|
752
|
+
"ww-flex ww-items-center ww-gap-1 ww-rounded-lg ww-px-2 ww-py-1 ww-text-[11px]",
|
|
753
|
+
isDark ? "ww-bg-white/15 ww-text-white/80" : "ww-bg-black/10 ww-text-black/60"
|
|
731
754
|
),
|
|
732
755
|
children: [
|
|
733
|
-
/* @__PURE__ */ jsx("span", { className: "truncate max-w-[120px]", children: f.name }),
|
|
734
|
-
/* @__PURE__ */ jsx("span", { className: "opacity-60 shrink-0", children: formatBytes(f.sizeBytes) })
|
|
756
|
+
/* @__PURE__ */ jsx("span", { className: "ww-truncate ww-max-w-[120px]", children: f.name }),
|
|
757
|
+
/* @__PURE__ */ jsx("span", { className: "ww-opacity-60 ww-shrink-0", children: formatBytes(f.sizeBytes) })
|
|
735
758
|
]
|
|
736
759
|
},
|
|
737
760
|
f.id
|
|
@@ -739,50 +762,50 @@ function SentAttachments({ attachments, contrastColor }) {
|
|
|
739
762
|
] });
|
|
740
763
|
}
|
|
741
764
|
function PlanStepIcon({ status }) {
|
|
742
|
-
if (status === "executing") return /* @__PURE__ */ jsx(Loader2, { className: "h-3 w-3 animate-spin text-primary" });
|
|
743
|
-
if (status === "success") return /* @__PURE__ */ jsx(CheckCircle2, { className: "h-3 w-3 text-emerald-500" });
|
|
744
|
-
if (status === "failed") return /* @__PURE__ */ jsx(AlertCircle, { className: "h-3 w-3 text-destructive" });
|
|
745
|
-
return /* @__PURE__ */ jsx("div", { className: "h-3 w-3 rounded-full border-2 border-muted-foreground/30" });
|
|
765
|
+
if (status === "executing") return /* @__PURE__ */ jsx(Loader2, { className: "ww-h-3 ww-w-3 ww-animate-spin ww-text-primary" });
|
|
766
|
+
if (status === "success") return /* @__PURE__ */ jsx(CheckCircle2, { className: "ww-h-3 ww-w-3 ww-text-emerald-500" });
|
|
767
|
+
if (status === "failed") return /* @__PURE__ */ jsx(AlertCircle, { className: "ww-h-3 ww-w-3 ww-text-destructive" });
|
|
768
|
+
return /* @__PURE__ */ jsx("div", { className: "ww-h-3 ww-w-3 ww-rounded-full ww-border-2 ww-border-muted-foreground/30" });
|
|
746
769
|
}
|
|
747
770
|
function PlanCard({ part }) {
|
|
748
771
|
const successCount = part.steps.filter((s) => s.status === "success").length;
|
|
749
772
|
const hasExecuting = part.steps.some((s) => s.status === "executing");
|
|
750
773
|
const allDone = successCount === part.steps.length && part.steps.length > 0;
|
|
751
774
|
const anyFailed = part.steps.some((s) => s.status === "failed");
|
|
752
|
-
return /* @__PURE__ */ jsxs("div", { className: "rounded-xl border bg-background overflow-hidden text-xs w-full shadow-sm", children: [
|
|
753
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 px-3 py-2 bg-muted/50 border-b", children: [
|
|
754
|
-
hasExecuting ? /* @__PURE__ */ jsx(Loader2, { className: "h-3.5 w-3.5 shrink-0 animate-spin text-primary/80" }) : allDone ? /* @__PURE__ */ jsx(CheckCircle2, { className: "h-3.5 w-3.5 shrink-0 text-emerald-500" }) : anyFailed ? /* @__PURE__ */ jsx(AlertCircle, { className: "h-3.5 w-3.5 shrink-0 text-destructive" }) : /* @__PURE__ */ jsx(Zap, { className: "h-3.5 w-3.5 shrink-0 text-primary/70" }),
|
|
755
|
-
/* @__PURE__ */ jsx("span", { className: "font-medium text-foreground/80 truncate flex-1 leading-snug", children: part.goal }),
|
|
756
|
-
part.steps.length > 0 && /* @__PURE__ */ jsxs("span", { className: "shrink-0 tabular-nums text-muted-foreground", children: [
|
|
775
|
+
return /* @__PURE__ */ jsxs("div", { className: "ww-rounded-xl ww-border ww-bg-background ww-overflow-hidden ww-text-xs ww-w-full ww-shadow-sm", children: [
|
|
776
|
+
/* @__PURE__ */ jsxs("div", { className: "ww-flex ww-items-center ww-gap-2 ww-px-3 ww-py-2 ww-bg-muted/50 ww-border-b", children: [
|
|
777
|
+
hasExecuting ? /* @__PURE__ */ jsx(Loader2, { className: "ww-h-3.5 ww-w-3.5 ww-shrink-0 ww-animate-spin ww-text-primary/80" }) : allDone ? /* @__PURE__ */ jsx(CheckCircle2, { className: "ww-h-3.5 ww-w-3.5 ww-shrink-0 ww-text-emerald-500" }) : anyFailed ? /* @__PURE__ */ jsx(AlertCircle, { className: "ww-h-3.5 ww-w-3.5 ww-shrink-0 ww-text-destructive" }) : /* @__PURE__ */ jsx(Zap, { className: "ww-h-3.5 ww-w-3.5 ww-shrink-0 ww-text-primary/70" }),
|
|
778
|
+
/* @__PURE__ */ jsx("span", { className: "ww-font-medium ww-text-foreground/80 ww-truncate ww-flex-1 ww-leading-snug", children: part.goal }),
|
|
779
|
+
part.steps.length > 0 && /* @__PURE__ */ jsxs("span", { className: "ww-shrink-0 tabular-nums ww-text-muted-foreground", children: [
|
|
757
780
|
successCount,
|
|
758
781
|
"/",
|
|
759
782
|
part.steps.length
|
|
760
783
|
] })
|
|
761
784
|
] }),
|
|
762
|
-
/* @__PURE__ */ jsx("div", { className: "divide-y divide-border/40", children: part.steps.map((step) => /* @__PURE__ */ jsxs(
|
|
785
|
+
/* @__PURE__ */ jsx("div", { className: "ww-divide-y ww-divide-border/40", children: part.steps.map((step) => /* @__PURE__ */ jsxs(
|
|
763
786
|
"div",
|
|
764
787
|
{
|
|
765
788
|
className: cn(
|
|
766
|
-
"flex items-start gap-2.5 px-3 py-2 transition-colors duration-200",
|
|
767
|
-
step.status === "executing" && "bg-primary/5"
|
|
789
|
+
"ww-flex ww-items-start ww-gap-2.5 ww-px-3 ww-py-2 ww-transition-colors ww-duration-200",
|
|
790
|
+
step.status === "executing" && "ww-bg-primary/5"
|
|
768
791
|
),
|
|
769
792
|
children: [
|
|
770
|
-
/* @__PURE__ */ jsx("div", { className: "mt-0.5 shrink-0", children: /* @__PURE__ */ jsx(PlanStepIcon, { status: step.status }) }),
|
|
793
|
+
/* @__PURE__ */ jsx("div", { className: "ww-mt-0.5 ww-shrink-0", children: /* @__PURE__ */ jsx(PlanStepIcon, { status: step.status }) }),
|
|
771
794
|
/* @__PURE__ */ jsxs(
|
|
772
795
|
"span",
|
|
773
796
|
{
|
|
774
797
|
className: cn(
|
|
775
|
-
"leading-relaxed",
|
|
776
|
-
step.status === "pending" && "text-muted-foreground",
|
|
777
|
-
step.status === "executing" && "text-foreground font-medium",
|
|
778
|
-
step.status === "success" && "text-foreground/60 line-through decoration-foreground/20",
|
|
779
|
-
step.status === "failed" && "text-destructive"
|
|
798
|
+
"ww-leading-relaxed",
|
|
799
|
+
step.status === "pending" && "ww-text-muted-foreground",
|
|
800
|
+
step.status === "executing" && "ww-text-foreground ww-font-medium",
|
|
801
|
+
step.status === "success" && "ww-text-foreground/60 ww-line-through ww-decoration-foreground/20",
|
|
802
|
+
step.status === "failed" && "ww-text-destructive"
|
|
780
803
|
),
|
|
781
804
|
children: [
|
|
782
805
|
step.index + 1,
|
|
783
806
|
". ",
|
|
784
807
|
step.description,
|
|
785
|
-
step.error && /* @__PURE__ */ jsx("span", { className: "block text-destructive/70 text-[10px] mt-0.5 no-underline", children: step.error })
|
|
808
|
+
step.error && /* @__PURE__ */ jsx("span", { className: "ww-block ww-text-destructive/70 ww-text-[10px] ww-mt-0.5 ww-no-underline", children: step.error })
|
|
786
809
|
]
|
|
787
810
|
}
|
|
788
811
|
)
|
|
@@ -803,7 +826,7 @@ function ThinkingDots() {
|
|
|
803
826
|
/* @__PURE__ */ jsx(
|
|
804
827
|
"div",
|
|
805
828
|
{
|
|
806
|
-
className: "bg-muted",
|
|
829
|
+
className: "ww-bg-muted",
|
|
807
830
|
style: {
|
|
808
831
|
display: "inline-flex",
|
|
809
832
|
alignItems: "center",
|
|
@@ -830,33 +853,33 @@ function ThinkingDots() {
|
|
|
830
853
|
] });
|
|
831
854
|
}
|
|
832
855
|
function ToolCallBadge({ part }) {
|
|
833
|
-
return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 text-xs text-muted-foreground bg-muted/60 border rounded-full px-3 py-1 w-fit", children: [
|
|
834
|
-
part.status === "running" && /* @__PURE__ */ jsx(Loader2, { className: "h-3 w-3 animate-spin" }),
|
|
835
|
-
part.status === "done" && /* @__PURE__ */ jsx(CheckCircle2, { className: "h-3 w-3 text-emerald-500" }),
|
|
836
|
-
part.status === "error" && /* @__PURE__ */ jsx(AlertCircle, { className: "h-3 w-3 text-destructive" }),
|
|
856
|
+
return /* @__PURE__ */ jsxs("div", { className: "ww-flex ww-items-center ww-gap-1.5 ww-text-xs ww-text-muted-foreground ww-bg-muted/60 ww-border ww-rounded-full ww-px-3 ww-py-1 ww-w-fit", children: [
|
|
857
|
+
part.status === "running" && /* @__PURE__ */ jsx(Loader2, { className: "ww-h-3 ww-w-3 ww-animate-spin" }),
|
|
858
|
+
part.status === "done" && /* @__PURE__ */ jsx(CheckCircle2, { className: "ww-h-3 ww-w-3 ww-text-emerald-500" }),
|
|
859
|
+
part.status === "error" && /* @__PURE__ */ jsx(AlertCircle, { className: "ww-h-3 ww-w-3 ww-text-destructive" }),
|
|
837
860
|
/* @__PURE__ */ jsxs("span", { children: [
|
|
838
861
|
part.status === "running" ? "Calling" : part.status === "done" ? "Called" : "Failed",
|
|
839
862
|
" ",
|
|
840
|
-
/* @__PURE__ */ jsx("span", { className: "font-medium text-foreground", children: formatToolName(part.toolName) })
|
|
863
|
+
/* @__PURE__ */ jsx("span", { className: "ww-font-medium ww-text-foreground", children: formatToolName(part.toolName) })
|
|
841
864
|
] })
|
|
842
865
|
] });
|
|
843
866
|
}
|
|
844
867
|
function ReasoningBlock({ text }) {
|
|
845
868
|
const [open, setOpen] = useState(false);
|
|
846
|
-
return /* @__PURE__ */ jsxs("div", { className: "mb-1", children: [
|
|
869
|
+
return /* @__PURE__ */ jsxs("div", { className: "ww-mb-1", children: [
|
|
847
870
|
/* @__PURE__ */ jsxs(
|
|
848
871
|
"button",
|
|
849
872
|
{
|
|
850
873
|
onClick: () => setOpen((v) => !v),
|
|
851
|
-
className: "flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors",
|
|
874
|
+
className: "ww-flex ww-items-center ww-gap-1 ww-text-xs ww-text-muted-foreground hover:ww-text-foreground ww-transition-colors",
|
|
852
875
|
children: [
|
|
853
|
-
/* @__PURE__ */ jsx(Zap, { className: "h-3 w-3" }),
|
|
876
|
+
/* @__PURE__ */ jsx(Zap, { className: "ww-h-3 ww-w-3" }),
|
|
854
877
|
/* @__PURE__ */ jsx("span", { children: "Reasoning" }),
|
|
855
|
-
/* @__PURE__ */ jsx(ChevronDown, { className: cn("h-3 w-3 transition-transform", open && "rotate-180") })
|
|
878
|
+
/* @__PURE__ */ jsx(ChevronDown, { className: cn("ww-h-3 ww-w-3 ww-transition-transform", open && "ww-rotate-180") })
|
|
856
879
|
]
|
|
857
880
|
}
|
|
858
881
|
),
|
|
859
|
-
open && /* @__PURE__ */ jsx("p", { className: "mt-1 text-xs text-muted-foreground/80 whitespace-pre-wrap border-l-2 border-muted pl-2 leading-relaxed", children: text })
|
|
882
|
+
open && /* @__PURE__ */ jsx("p", { className: "ww-mt-1 ww-text-xs ww-text-muted-foreground/80 ww-whitespace-pre-wrap ww-border-l-2 ww-border-muted ww-pl-2 ww-leading-relaxed", children: text })
|
|
860
883
|
] });
|
|
861
884
|
}
|
|
862
885
|
function PickerSelector({
|
|
@@ -877,12 +900,12 @@ function PickerSelector({
|
|
|
877
900
|
if (!disabled && !isConsumed) onSelect(part.pickerId, part.paramName, opt.value, opt.label);
|
|
878
901
|
};
|
|
879
902
|
return /* @__PURE__ */ jsxs("div", { className: cn(
|
|
880
|
-
"flex flex-col gap-2.5 rounded-xl rounded-tl-none border bg-muted/60 p-3",
|
|
881
|
-
"border-border/50"
|
|
903
|
+
"ww-flex ww-flex-col ww-gap-2.5 ww-rounded-xl ww-rounded-tl-none ww-border ww-bg-muted/60 ww-p-3",
|
|
904
|
+
"ww-border-border/50"
|
|
882
905
|
), children: [
|
|
883
|
-
/* @__PURE__ */ jsx("p", { className: "text-[10.5px] font-semibold uppercase tracking-widest text-muted-foreground/70 leading-none", children: part.label }),
|
|
884
|
-
mode === "list" && /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
885
|
-
/* @__PURE__ */ jsx(Search, { className: "absolute left-2.5 top-1/2 -translate-y-1/2 h-3 w-3 text-muted-foreground/50 pointer-events-none" }),
|
|
906
|
+
/* @__PURE__ */ jsx("p", { className: "ww-text-[10.5px] ww-font-semibold ww-uppercase ww-tracking-widest ww-text-muted-foreground/70 ww-leading-none", children: part.label }),
|
|
907
|
+
mode === "list" && /* @__PURE__ */ jsxs("div", { className: "ww-relative", children: [
|
|
908
|
+
/* @__PURE__ */ jsx(Search, { className: "ww-absolute ww-left-2.5 ww-top-1/2 -translate-y-1/2 ww-h-3 ww-w-3 ww-text-muted-foreground/50 ww-pointer-events-none" }),
|
|
886
909
|
/* @__PURE__ */ jsx(
|
|
887
910
|
"input",
|
|
888
911
|
{
|
|
@@ -891,11 +914,11 @@ function PickerSelector({
|
|
|
891
914
|
onChange: (e) => setQuery(e.target.value),
|
|
892
915
|
placeholder: "Search\u2026",
|
|
893
916
|
disabled: disabled || isConsumed,
|
|
894
|
-
className: "w-full rounded-lg border bg-background pl-7 pr-3 py-1.5 text-xs outline-none focus:ring-1 focus:ring-ring/40 placeholder:text-muted-foreground/40 disabled:opacity-50"
|
|
917
|
+
className: "ww-w-full ww-rounded-lg ww-border ww-bg-background ww-pl-7 ww-pr-3 ww-py-1.5 ww-text-xs ww-outline-none focus:ww-ring-1 focus:ww-ring-ring/40 placeholder:ww-text-muted-foreground/40 disabled:ww-opacity-50"
|
|
895
918
|
}
|
|
896
919
|
)
|
|
897
920
|
] }),
|
|
898
|
-
mode === "pills" && /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1.5", children: part.options.map((opt) => {
|
|
921
|
+
mode === "pills" && /* @__PURE__ */ jsx("div", { className: "ww-flex ww-flex-wrap ww-gap-1.5", children: part.options.map((opt) => {
|
|
899
922
|
const sel = part.selectedValue === opt.value;
|
|
900
923
|
const faded = isConsumed && !sel;
|
|
901
924
|
return /* @__PURE__ */ jsxs(
|
|
@@ -904,19 +927,19 @@ function PickerSelector({
|
|
|
904
927
|
disabled: disabled || isConsumed,
|
|
905
928
|
onClick: () => handleClick(opt),
|
|
906
929
|
className: cn(
|
|
907
|
-
"inline-flex items-center gap-1 rounded-full px-3.5 py-1.5 text-[12.5px] font-medium transition-all duration-150 select-none",
|
|
908
|
-
sel ? "bg-foreground text-background shadow-sm" : faded ? "bg-background/50 text-muted-foreground opacity-35 cursor-default" : "bg-background border border-border/70 text-foreground hover:border-foreground/30 hover:bg-background cursor-pointer",
|
|
909
|
-
disabled && !isConsumed && "opacity-60 pointer-events-none"
|
|
930
|
+
"ww-inline-flex ww-items-center ww-gap-1 ww-rounded-full ww-px-3.5 ww-py-1.5 ww-text-[12.5px] ww-font-medium ww-transition-all ww-duration-150 ww-select-none",
|
|
931
|
+
sel ? "ww-bg-foreground ww-text-background ww-shadow-sm" : faded ? "ww-bg-background/50 ww-text-muted-foreground ww-opacity-35 ww-cursor-default" : "ww-bg-background ww-border ww-border-border/70 ww-text-foreground hover:ww-border-foreground/30 hover:ww-bg-background ww-cursor-pointer",
|
|
932
|
+
disabled && !isConsumed && "ww-opacity-60 ww-pointer-events-none"
|
|
910
933
|
),
|
|
911
934
|
children: [
|
|
912
|
-
sel && /* @__PURE__ */ jsx(Check, { className: "h-3 w-3 shrink-0" }),
|
|
935
|
+
sel && /* @__PURE__ */ jsx(Check, { className: "ww-h-3 ww-w-3 ww-shrink-0" }),
|
|
913
936
|
opt.label
|
|
914
937
|
]
|
|
915
938
|
},
|
|
916
939
|
opt.value
|
|
917
940
|
);
|
|
918
941
|
}) }),
|
|
919
|
-
mode === "grid" && /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 gap-1.5 max-h-[168px] overflow-y-auto pr-0.5 scrollbar-thin", children: part.options.map((opt) => {
|
|
942
|
+
mode === "grid" && /* @__PURE__ */ jsx("div", { className: "ww-grid ww-grid-cols-2 ww-gap-1.5 ww-max-h-[168px] ww-overflow-y-auto ww-pr-0.5 scrollbar-thin", children: part.options.map((opt) => {
|
|
920
943
|
const sel = part.selectedValue === opt.value;
|
|
921
944
|
const faded = isConsumed && !sel;
|
|
922
945
|
return /* @__PURE__ */ jsxs(
|
|
@@ -925,20 +948,20 @@ function PickerSelector({
|
|
|
925
948
|
disabled: disabled || isConsumed,
|
|
926
949
|
onClick: () => handleClick(opt),
|
|
927
950
|
className: cn(
|
|
928
|
-
"flex items-center gap-1.5 rounded-lg px-2.5 py-1.5 text-[12px] font-medium text-left transition-all duration-150 select-none truncate",
|
|
929
|
-
sel ? "bg-foreground text-background" : faded ? "bg-background/40 text-muted-foreground opacity-35 cursor-default" : "bg-background border border-border/60 text-foreground hover:border-foreground/25 cursor-pointer",
|
|
930
|
-
disabled && !isConsumed && "opacity-60 pointer-events-none"
|
|
951
|
+
"ww-flex ww-items-center ww-gap-1.5 ww-rounded-lg ww-px-2.5 ww-py-1.5 ww-text-[12px] ww-font-medium ww-text-left ww-transition-all ww-duration-150 ww-select-none ww-truncate",
|
|
952
|
+
sel ? "ww-bg-foreground ww-text-background" : faded ? "ww-bg-background/40 ww-text-muted-foreground ww-opacity-35 ww-cursor-default" : "ww-bg-background ww-border ww-border-border/60 ww-text-foreground hover:ww-border-foreground/25 ww-cursor-pointer",
|
|
953
|
+
disabled && !isConsumed && "ww-opacity-60 ww-pointer-events-none"
|
|
931
954
|
),
|
|
932
955
|
children: [
|
|
933
|
-
sel ? /* @__PURE__ */ jsx(Check, { className: "h-3 w-3 shrink-0" }) : /* @__PURE__ */ jsx("span", { className: "h-3 w-3 shrink-0" }),
|
|
934
|
-
/* @__PURE__ */ jsx("span", { className: "truncate", children: opt.label })
|
|
956
|
+
sel ? /* @__PURE__ */ jsx(Check, { className: "ww-h-3 ww-w-3 ww-shrink-0" }) : /* @__PURE__ */ jsx("span", { className: "ww-h-3 ww-w-3 ww-shrink-0" }),
|
|
957
|
+
/* @__PURE__ */ jsx("span", { className: "ww-truncate", children: opt.label })
|
|
935
958
|
]
|
|
936
959
|
},
|
|
937
960
|
opt.value
|
|
938
961
|
);
|
|
939
962
|
}) }),
|
|
940
|
-
mode === "list" && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-0.5 max-h-[180px] overflow-y-auto pr-0.5", children: [
|
|
941
|
-
filtered.length === 0 && /* @__PURE__ */ jsx("p", { className: "py-3 text-center text-xs text-muted-foreground/50", children: "No results" }),
|
|
963
|
+
mode === "list" && /* @__PURE__ */ jsxs("div", { className: "ww-flex ww-flex-col ww-gap-0.5 ww-max-h-[180px] ww-overflow-y-auto ww-pr-0.5", children: [
|
|
964
|
+
filtered.length === 0 && /* @__PURE__ */ jsx("p", { className: "ww-py-3 ww-text-center ww-text-xs ww-text-muted-foreground/50", children: "No results" }),
|
|
942
965
|
filtered.map((opt) => {
|
|
943
966
|
const sel = part.selectedValue === opt.value;
|
|
944
967
|
const faded = isConsumed && !sel;
|
|
@@ -948,16 +971,16 @@ function PickerSelector({
|
|
|
948
971
|
disabled: disabled || isConsumed,
|
|
949
972
|
onClick: () => handleClick(opt),
|
|
950
973
|
className: cn(
|
|
951
|
-
"flex items-center gap-2 rounded-lg px-2.5 py-2 text-[12.5px] text-left transition-all duration-100 select-none",
|
|
952
|
-
sel ? "bg-foreground text-background font-medium" : faded ? "opacity-30 cursor-default" : "hover:bg-background text-foreground cursor-pointer",
|
|
953
|
-
disabled && !isConsumed && "opacity-60 pointer-events-none"
|
|
974
|
+
"ww-flex ww-items-center ww-gap-2 ww-rounded-lg ww-px-2.5 ww-py-2 ww-text-[12.5px] ww-text-left ww-transition-all ww-duration-100 ww-select-none",
|
|
975
|
+
sel ? "ww-bg-foreground ww-text-background ww-font-medium" : faded ? "ww-opacity-30 ww-cursor-default" : "hover:ww-bg-background ww-text-foreground ww-cursor-pointer",
|
|
976
|
+
disabled && !isConsumed && "ww-opacity-60 ww-pointer-events-none"
|
|
954
977
|
),
|
|
955
978
|
children: [
|
|
956
979
|
/* @__PURE__ */ jsx("span", { className: cn(
|
|
957
|
-
"flex h-4 w-4 shrink-0 items-center justify-center rounded-full border text-[10px]",
|
|
958
|
-
sel ? "border-background bg-background/20" : "border-border/50"
|
|
959
|
-
), children: sel && /* @__PURE__ */ jsx(Check, { className: "h-2.5 w-2.5" }) }),
|
|
960
|
-
/* @__PURE__ */ jsx("span", { className: "truncate", children: opt.label })
|
|
980
|
+
"ww-flex ww-h-4 ww-w-4 ww-shrink-0 ww-items-center ww-justify-center ww-rounded-full ww-border ww-text-[10px]",
|
|
981
|
+
sel ? "ww-border-background ww-bg-background/20" : "ww-border-border/50"
|
|
982
|
+
), children: sel && /* @__PURE__ */ jsx(Check, { className: "ww-h-2.5 ww-w-2.5" }) }),
|
|
983
|
+
/* @__PURE__ */ jsx("span", { className: "ww-truncate", children: opt.label })
|
|
961
984
|
]
|
|
962
985
|
},
|
|
963
986
|
opt.value
|
|
@@ -983,10 +1006,10 @@ function MessageBubble({
|
|
|
983
1006
|
const planParts = message.parts.filter((p) => p.type === "plan");
|
|
984
1007
|
const contrastColor = getContrastColor(userColor);
|
|
985
1008
|
if (isUser) {
|
|
986
|
-
return /* @__PURE__ */ jsx("div", { className: "flex justify-end", children: /* @__PURE__ */ jsxs(
|
|
1009
|
+
return /* @__PURE__ */ jsx("div", { className: "ww-flex ww-justify-end", children: /* @__PURE__ */ jsxs(
|
|
987
1010
|
"div",
|
|
988
1011
|
{
|
|
989
|
-
className: "max-w-[78%] rounded-2xl rounded-tr-sm px-4 py-2.5 text-sm leading-relaxed flex flex-col gap-2",
|
|
1012
|
+
className: "ww-max-w-[78%] ww-rounded-2xl ww-rounded-tr-sm ww-px-4 ww-py-2.5 ww-text-sm ww-leading-relaxed ww-flex ww-flex-col ww-gap-2",
|
|
990
1013
|
style: { backgroundColor: userColor, color: contrastColor },
|
|
991
1014
|
children: [
|
|
992
1015
|
message.attachments && message.attachments.length > 0 && /* @__PURE__ */ jsx(SentAttachments, { attachments: message.attachments, contrastColor }),
|
|
@@ -997,9 +1020,9 @@ function MessageBubble({
|
|
|
997
1020
|
}
|
|
998
1021
|
const visibleToolParts = showThinking ? toolParts : [];
|
|
999
1022
|
const isEmpty = !textPart?.text && visibleToolParts.length === 0 && pickerParts.length === 0;
|
|
1000
|
-
return /* @__PURE__ */ jsxs("div", { className: "flex gap-2.5 items-start", children: [
|
|
1023
|
+
return /* @__PURE__ */ jsxs("div", { className: "ww-flex ww-gap-2.5 ww-items-start", children: [
|
|
1001
1024
|
/* @__PURE__ */ jsx(Avatar2, { style: { width: 28, height: 28, marginTop: 2, border: "1px solid rgba(0,0,0,0.08)" }, children: profilePicture ? /* @__PURE__ */ jsx(AvatarImage2, { src: profilePicture, alt: agentName }) : /* @__PURE__ */ jsx(AvatarFallback2, { style: { fontSize: 10, fontWeight: 600, backgroundColor: "var(--primary, #19191c)", color: "var(--primary-foreground, #fff)" }, children: agentName.slice(0, 2).toUpperCase() }) }),
|
|
1002
|
-
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1.5 min-w-0 max-w-[82%]", children: [
|
|
1025
|
+
/* @__PURE__ */ jsxs("div", { className: "ww-flex ww-flex-col ww-gap-1.5 ww-min-w-0 ww-max-w-[82%]", children: [
|
|
1003
1026
|
showThinking && reasoningPart && /* @__PURE__ */ jsx(ReasoningBlock, { text: reasoningPart.text }),
|
|
1004
1027
|
planParts.map((p) => /* @__PURE__ */ jsx(PlanCard, { part: p }, p.planId)),
|
|
1005
1028
|
visibleToolParts.map((t) => /* @__PURE__ */ jsx(ToolCallBadge, { part: t }, t.toolCallId)),
|
|
@@ -1013,7 +1036,7 @@ function MessageBubble({
|
|
|
1013
1036
|
},
|
|
1014
1037
|
p.pickerId
|
|
1015
1038
|
)),
|
|
1016
|
-
isEmpty && isStreaming ? /* @__PURE__ */ jsx(ThinkingDots, {}) : textPart?.text ? /* @__PURE__ */ jsxs("div", { className: "rounded-2xl rounded-tl-sm bg-muted px-4 py-2.5 text-sm leading-relaxed overflow-hidden prose prose-sm max-w-none prose-p:my-1 prose-headings:font-semibold prose-headings:my-1.5 prose-ul:my-1 prose-li:my-0.5 prose-strong:font-semibold", children: [
|
|
1039
|
+
isEmpty && isStreaming ? /* @__PURE__ */ jsx(ThinkingDots, {}) : textPart?.text ? /* @__PURE__ */ jsxs("div", { className: "ww-rounded-2xl ww-rounded-tl-sm ww-bg-muted ww-px-4 ww-py-2.5 ww-text-sm ww-leading-relaxed ww-overflow-hidden ww-prose ww-prose-sm ww-max-w-none prose-p:ww-my-1 prose-headings:ww-font-semibold prose-headings:ww-my-1.5 prose-ul:ww-my-1 prose-li:ww-my-0.5 prose-strong:ww-font-semibold", children: [
|
|
1017
1040
|
/* @__PURE__ */ jsx(
|
|
1018
1041
|
ReactMarkdown,
|
|
1019
1042
|
{
|
|
@@ -1040,14 +1063,14 @@ function MessageBubble({
|
|
|
1040
1063
|
children: textPart.text
|
|
1041
1064
|
}
|
|
1042
1065
|
),
|
|
1043
|
-
isStreaming && /* @__PURE__ */ jsx("span", { className: "inline-block w-0.5 h-3.5 bg-foreground/60 ml-0.5 animate-pulse align-middle" })
|
|
1066
|
+
isStreaming && /* @__PURE__ */ jsx("span", { className: "ww-inline-block ww-w-0.5 ww-h-3.5 ww-bg-foreground/60 ww-ml-0.5 ww-animate-pulse ww-align-middle" })
|
|
1044
1067
|
] }) : null
|
|
1045
1068
|
] })
|
|
1046
1069
|
] });
|
|
1047
1070
|
}
|
|
1048
|
-
var Avatar3 = ({ className, ...p }) => /* @__PURE__ */ jsx(AvatarPrimitive.Root, { className: ["relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full", className].filter(Boolean).join(" "), ...p });
|
|
1071
|
+
var Avatar3 = ({ className, ...p }) => /* @__PURE__ */ jsx(AvatarPrimitive.Root, { className: ["ww-relative ww-flex ww-h-10 ww-w-10 ww-shrink-0 ww-overflow-hidden ww-rounded-full", className].filter(Boolean).join(" "), ...p });
|
|
1049
1072
|
var AvatarImage3 = AvatarPrimitive.Image;
|
|
1050
|
-
var AvatarFallback3 = ({ className, ...p }) => /* @__PURE__ */ jsx(AvatarPrimitive.Fallback, { className: ["flex h-full w-full items-center justify-center rounded-full bg-muted", className].filter(Boolean).join(" "), ...p });
|
|
1073
|
+
var AvatarFallback3 = ({ className, ...p }) => /* @__PURE__ */ jsx(AvatarPrimitive.Fallback, { className: ["ww-flex ww-h-full ww-w-full ww-items-center ww-justify-center ww-rounded-full ww-bg-muted", className].filter(Boolean).join(" "), ...p });
|
|
1051
1074
|
function ChatMessages({
|
|
1052
1075
|
messages,
|
|
1053
1076
|
streaming,
|
|
@@ -1065,13 +1088,13 @@ function ChatMessages({
|
|
|
1065
1088
|
useEffect(() => {
|
|
1066
1089
|
bottomRef.current?.scrollIntoView({ behavior: "smooth" });
|
|
1067
1090
|
}, [messages]);
|
|
1068
|
-
return /* @__PURE__ */ jsxs("div", { className: "flex-1 flex flex-col overflow-y-auto overscroll-contain", children: [
|
|
1069
|
-
showGreeting && /* @__PURE__ */ jsxs("div", { className: "flex gap-2.5 items-start px-4 pt-5", children: [
|
|
1070
|
-
/* @__PURE__ */ jsx(Avatar3, { className: "h-7 w-7 shrink-0 mt-0.5 border", children: profilePicture ? /* @__PURE__ */ jsx(AvatarImage3, { src: profilePicture, alt: agentName }) : /* @__PURE__ */ jsx(AvatarFallback3, { className: "text-[10px] font-semibold bg-primary text-primary-foreground", children: agentName.slice(0, 2).toUpperCase() }) }),
|
|
1071
|
-
/* @__PURE__ */ jsx("div", { className: "rounded-2xl rounded-tl-sm bg-muted px-4 py-2.5 text-sm leading-relaxed max-w-[82%]", children: initialMessages[0] ?? "Hello! How can I help you today?" })
|
|
1091
|
+
return /* @__PURE__ */ jsxs("div", { className: "ww-flex-1 ww-flex ww-flex-col ww-overflow-y-auto ww-overscroll-contain", children: [
|
|
1092
|
+
showGreeting && /* @__PURE__ */ jsxs("div", { className: "ww-flex ww-gap-2.5 ww-items-start ww-px-4 ww-pt-5", children: [
|
|
1093
|
+
/* @__PURE__ */ jsx(Avatar3, { className: "ww-h-7 ww-w-7 ww-shrink-0 ww-mt-0.5 ww-border", children: profilePicture ? /* @__PURE__ */ jsx(AvatarImage3, { src: profilePicture, alt: agentName }) : /* @__PURE__ */ jsx(AvatarFallback3, { className: "ww-text-[10px] ww-font-semibold ww-bg-primary ww-text-primary-foreground", children: agentName.slice(0, 2).toUpperCase() }) }),
|
|
1094
|
+
/* @__PURE__ */ jsx("div", { className: "ww-rounded-2xl ww-rounded-tl-sm ww-bg-muted ww-px-4 ww-py-2.5 ww-text-sm ww-leading-relaxed ww-max-w-[82%]", children: initialMessages[0] ?? "Hello! How can I help you today?" })
|
|
1072
1095
|
] }),
|
|
1073
|
-
showGreeting && /* @__PURE__ */ jsx("div", { className: "flex-1" }),
|
|
1074
|
-
/* @__PURE__ */ jsx("div", { className: "flex flex-col gap-4 px-4 py-4", children: messages.map((msg, i) => /* @__PURE__ */ jsx(
|
|
1096
|
+
showGreeting && /* @__PURE__ */ jsx("div", { className: "ww-flex-1" }),
|
|
1097
|
+
/* @__PURE__ */ jsx("div", { className: "ww-flex ww-flex-col ww-gap-4 ww-px-4 ww-py-4", children: messages.map((msg, i) => /* @__PURE__ */ jsx(
|
|
1075
1098
|
MessageBubble,
|
|
1076
1099
|
{
|
|
1077
1100
|
message: msg,
|
|
@@ -1084,12 +1107,12 @@ function ChatMessages({
|
|
|
1084
1107
|
},
|
|
1085
1108
|
msg.id
|
|
1086
1109
|
)) }),
|
|
1087
|
-
showGreeting && suggestedMessages.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-2 px-4 pb-4", children: suggestedMessages.map((msg, i) => /* @__PURE__ */ jsx(
|
|
1110
|
+
showGreeting && suggestedMessages.length > 0 && /* @__PURE__ */ jsx("div", { className: "ww-flex ww-flex-wrap ww-gap-2 ww-px-4 ww-pb-4", children: suggestedMessages.map((msg, i) => /* @__PURE__ */ jsx(
|
|
1088
1111
|
"button",
|
|
1089
1112
|
{
|
|
1090
1113
|
onClick: () => onSuggest(msg),
|
|
1091
1114
|
disabled: streaming,
|
|
1092
|
-
className: "text-xs border rounded-full px-3 py-1.5 hover:bg-muted transition-colors text-left disabled:opacity-50",
|
|
1115
|
+
className: "ww-text-xs ww-border ww-rounded-full ww-px-3 ww-py-1.5 hover:ww-bg-muted ww-transition-colors ww-text-left disabled:ww-opacity-50",
|
|
1093
1116
|
children: msg
|
|
1094
1117
|
},
|
|
1095
1118
|
i
|
|
@@ -1097,7 +1120,7 @@ function ChatMessages({
|
|
|
1097
1120
|
/* @__PURE__ */ jsx("div", { ref: bottomRef })
|
|
1098
1121
|
] });
|
|
1099
1122
|
}
|
|
1100
|
-
var cn3 = (...inputs) => twMerge(clsx(inputs));
|
|
1123
|
+
var cn3 = (...inputs) => twMerge$1(clsx(inputs));
|
|
1101
1124
|
function ChatInput({
|
|
1102
1125
|
input,
|
|
1103
1126
|
setInput,
|
|
@@ -1136,21 +1159,21 @@ function ChatInput({
|
|
|
1136
1159
|
}
|
|
1137
1160
|
};
|
|
1138
1161
|
const hasText = input.trim().length > 0;
|
|
1139
|
-
return /* @__PURE__ */ jsxs("div", { className: "shrink-0 border-t bg-background px-3 py-2.5", children: [
|
|
1162
|
+
return /* @__PURE__ */ jsxs("div", { className: "ww-shrink-0 ww-border-t ww-bg-background ww-px-3 ww-py-2.5", children: [
|
|
1140
1163
|
canRegenerate && onRegenerate && /* @__PURE__ */ jsxs(
|
|
1141
1164
|
"button",
|
|
1142
1165
|
{
|
|
1143
1166
|
onClick: onRegenerate,
|
|
1144
1167
|
disabled: streaming,
|
|
1145
|
-
className: "flex items-center gap-1 text-[11px] text-muted-foreground hover:text-foreground transition-colors mb-2 disabled:opacity-40",
|
|
1168
|
+
className: "ww-flex ww-items-center ww-gap-1 ww-text-[11px] ww-text-muted-foreground hover:ww-text-foreground ww-transition-colors ww-mb-2 disabled:ww-opacity-40",
|
|
1146
1169
|
children: [
|
|
1147
|
-
/* @__PURE__ */ jsx(RotateCcw, { className: "h-3 w-3" }),
|
|
1170
|
+
/* @__PURE__ */ jsx(RotateCcw, { className: "ww-h-3 ww-w-3" }),
|
|
1148
1171
|
"Regenerate response"
|
|
1149
1172
|
]
|
|
1150
1173
|
}
|
|
1151
1174
|
),
|
|
1152
|
-
/* @__PURE__ */ jsxs("div", { className: "flex flex-col rounded-2xl border bg-background shadow-sm focus-within:ring-1 focus-within:ring-ring/40 transition-shadow", children: [
|
|
1153
|
-
hasAttachments && attachments && attachments.length > 0 && /* @__PURE__ */ jsx("div", { className: "px-2 pt-2", children: /* @__PURE__ */ jsx(AttachmentChips, { attachments, onRemove: (id) => onRemoveAttachment?.(id) }) }),
|
|
1175
|
+
/* @__PURE__ */ jsxs("div", { className: "ww-flex ww-flex-col ww-rounded-2xl ww-border ww-bg-background ww-shadow-sm focus-within:ww-ring-1 focus-within:ww-ring-ring/40 ww-transition-shadow", children: [
|
|
1176
|
+
hasAttachments && attachments && attachments.length > 0 && /* @__PURE__ */ jsx("div", { className: "ww-px-2 ww-pt-2", children: /* @__PURE__ */ jsx(AttachmentChips, { attachments, onRemove: (id) => onRemoveAttachment?.(id) }) }),
|
|
1154
1177
|
hasAttachments && /* @__PURE__ */ jsx(
|
|
1155
1178
|
"input",
|
|
1156
1179
|
{
|
|
@@ -1158,7 +1181,7 @@ function ChatInput({
|
|
|
1158
1181
|
type: "file",
|
|
1159
1182
|
multiple: true,
|
|
1160
1183
|
accept: ".csv,.txt,.tsv,.pdf,text/plain,text/csv,application/pdf,image/jpeg,image/png,image/webp,image/gif",
|
|
1161
|
-
className: "hidden",
|
|
1184
|
+
className: "ww-hidden",
|
|
1162
1185
|
onChange: (e) => {
|
|
1163
1186
|
if (e.target.files?.length) {
|
|
1164
1187
|
onAttach(e.target.files);
|
|
@@ -1167,14 +1190,14 @@ function ChatInput({
|
|
|
1167
1190
|
}
|
|
1168
1191
|
}
|
|
1169
1192
|
),
|
|
1170
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-end gap-2 px-3 py-2", children: [
|
|
1193
|
+
/* @__PURE__ */ jsxs("div", { className: "ww-flex ww-items-end ww-gap-2 ww-px-3 ww-py-2", children: [
|
|
1171
1194
|
/* @__PURE__ */ jsx(
|
|
1172
1195
|
"textarea",
|
|
1173
1196
|
{
|
|
1174
1197
|
id: "wallavi-chat-input",
|
|
1175
1198
|
ref: textareaRef,
|
|
1176
1199
|
rows: 1,
|
|
1177
|
-
className: "flex-1 resize-none bg-transparent text-sm outline-none placeholder:text-muted-foreground/50 leading-relaxed max-h-32 overflow-y-auto py-0.5",
|
|
1200
|
+
className: "ww-flex-1 ww-resize-none ww-bg-transparent ww-text-sm ww-outline-none placeholder:ww-text-muted-foreground/50 ww-leading-relaxed ww-max-h-32 ww-overflow-y-auto ww-py-0.5",
|
|
1178
1201
|
placeholder: placeholder ?? "Send a message\u2026",
|
|
1179
1202
|
value: input,
|
|
1180
1203
|
onChange: (e) => {
|
|
@@ -1207,13 +1230,13 @@ function ChatInput({
|
|
|
1207
1230
|
disabled: streaming || voiceState === "transcribing",
|
|
1208
1231
|
title: voiceState === "recording" ? "Stop recording" : "Record voice message",
|
|
1209
1232
|
className: cn3(
|
|
1210
|
-
"h-7 w-7 shrink-0 rounded-xl flex items-center justify-center transition-all duration-200",
|
|
1211
|
-
voiceState === "recording" && "animate-pulse",
|
|
1212
|
-
voiceState === "error" ? "text-red-500 opacity-80" : "text-muted-foreground hover:text-foreground",
|
|
1213
|
-
(streaming || voiceState === "transcribing") && "opacity-40 pointer-events-none"
|
|
1233
|
+
"ww-h-7 ww-w-7 ww-shrink-0 ww-rounded-xl ww-flex ww-items-center ww-justify-center ww-transition-all ww-duration-200",
|
|
1234
|
+
voiceState === "recording" && "ww-animate-pulse",
|
|
1235
|
+
voiceState === "error" ? "ww-text-red-500 ww-opacity-80" : "ww-text-muted-foreground hover:ww-text-foreground",
|
|
1236
|
+
(streaming || voiceState === "transcribing") && "ww-opacity-40 ww-pointer-events-none"
|
|
1214
1237
|
),
|
|
1215
1238
|
style: voiceState === "recording" ? { color: accentColor } : void 0,
|
|
1216
|
-
children: voiceState === "transcribing" ? /* @__PURE__ */ jsx(Loader2, { className: "h-3.5 w-3.5 animate-spin" }) : voiceState === "recording" ? /* @__PURE__ */ jsx(Square, { className: "h-3.5 w-3.5 fill-current" }) : /* @__PURE__ */ jsx(Mic, { className: "h-3.5 w-3.5" })
|
|
1239
|
+
children: voiceState === "transcribing" ? /* @__PURE__ */ jsx(Loader2, { className: "ww-h-3.5 ww-w-3.5 ww-animate-spin" }) : voiceState === "recording" ? /* @__PURE__ */ jsx(Square, { className: "ww-h-3.5 ww-w-3.5 ww-fill-current" }) : /* @__PURE__ */ jsx(Mic, { className: "ww-h-3.5 ww-w-3.5" })
|
|
1217
1240
|
}
|
|
1218
1241
|
),
|
|
1219
1242
|
hasAttachments && /* @__PURE__ */ jsx(
|
|
@@ -1224,11 +1247,11 @@ function ChatInput({
|
|
|
1224
1247
|
disabled: streaming || isUploading,
|
|
1225
1248
|
title: "Attach file (CSV, image\u2026)",
|
|
1226
1249
|
className: cn3(
|
|
1227
|
-
"h-7 w-7 shrink-0 rounded-xl flex items-center justify-center transition-all duration-200",
|
|
1228
|
-
"text-muted-foreground hover:text-foreground",
|
|
1229
|
-
(streaming || isUploading) && "opacity-40 pointer-events-none"
|
|
1250
|
+
"ww-h-7 ww-w-7 ww-shrink-0 ww-rounded-xl ww-flex ww-items-center ww-justify-center ww-transition-all ww-duration-200",
|
|
1251
|
+
"ww-text-muted-foreground hover:ww-text-foreground",
|
|
1252
|
+
(streaming || isUploading) && "ww-opacity-40 ww-pointer-events-none"
|
|
1230
1253
|
),
|
|
1231
|
-
children: isUploading ? /* @__PURE__ */ jsx(Loader2, { className: "h-3.5 w-3.5 animate-spin" }) : /* @__PURE__ */ jsx(Paperclip, { className: "h-3.5 w-3.5" })
|
|
1254
|
+
children: isUploading ? /* @__PURE__ */ jsx(Loader2, { className: "ww-h-3.5 ww-w-3.5 ww-animate-spin" }) : /* @__PURE__ */ jsx(Paperclip, { className: "ww-h-3.5 ww-w-3.5" })
|
|
1232
1255
|
}
|
|
1233
1256
|
),
|
|
1234
1257
|
/* @__PURE__ */ jsx(
|
|
@@ -1237,11 +1260,11 @@ function ChatInput({
|
|
|
1237
1260
|
onClick: onSend,
|
|
1238
1261
|
disabled: streaming || !hasText || voiceState === "recording" || voiceState === "transcribing",
|
|
1239
1262
|
className: cn3(
|
|
1240
|
-
"h-7 w-7 shrink-0 rounded-xl flex items-center justify-center transition-all duration-200",
|
|
1241
|
-
hasText || streaming ? "opacity-100 shadow-sm" : "opacity-30"
|
|
1263
|
+
"ww-h-7 ww-w-7 ww-shrink-0 ww-rounded-xl ww-flex ww-items-center ww-justify-center ww-transition-all ww-duration-200",
|
|
1264
|
+
hasText || streaming ? "ww-opacity-100 ww-shadow-sm" : "ww-opacity-30"
|
|
1242
1265
|
),
|
|
1243
1266
|
style: hasText || streaming ? { backgroundColor: accentColor, color: getContrastColor(accentColor) } : { backgroundColor: "transparent", color: "currentColor" },
|
|
1244
|
-
children: streaming ? /* @__PURE__ */ jsx(Loader2, { className: "h-3.5 w-3.5 animate-spin" }) : /* @__PURE__ */ jsx(ArrowUp, { className: "h-3.5 w-3.5" })
|
|
1267
|
+
children: streaming ? /* @__PURE__ */ jsx(Loader2, { className: "ww-h-3.5 ww-w-3.5 ww-animate-spin" }) : /* @__PURE__ */ jsx(ArrowUp, { className: "ww-h-3.5 ww-w-3.5" })
|
|
1245
1268
|
}
|
|
1246
1269
|
)
|
|
1247
1270
|
] })
|
|
@@ -1354,8 +1377,8 @@ function ChatWidget({
|
|
|
1354
1377
|
"div",
|
|
1355
1378
|
{
|
|
1356
1379
|
className: cn(
|
|
1357
|
-
"wallavi-widget flex flex-col overflow-hidden rounded-2xl border shadow-xl bg-background h-full relative",
|
|
1358
|
-
isDragOver && "ring-2 ring-inset ring-primary/60",
|
|
1380
|
+
"wallavi-widget ww-flex ww-flex-col ww-overflow-hidden ww-rounded-2xl ww-border ww-shadow-xl ww-bg-background ww-h-full ww-relative",
|
|
1381
|
+
isDragOver && "ww-ring-2 ww-ring-inset ww-ring-primary/60",
|
|
1359
1382
|
className
|
|
1360
1383
|
),
|
|
1361
1384
|
style: cssVars,
|
|
@@ -1364,10 +1387,10 @@ function ChatWidget({
|
|
|
1364
1387
|
onDragLeave: handleDragLeave,
|
|
1365
1388
|
onDrop: handleDrop,
|
|
1366
1389
|
children: [
|
|
1367
|
-
isDragOver && enableAttachments && /* @__PURE__ */ jsxs("div", { className: "absolute inset-0 z-50 flex flex-col items-center justify-center gap-2 rounded-2xl bg-background/90 backdrop-blur-sm pointer-events-none", children: [
|
|
1368
|
-
/* @__PURE__ */ jsx(UploadCloud, { className: "h-8 w-8 text-primary/70" }),
|
|
1369
|
-
/* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-foreground/70", children: "Drop files to attach" }),
|
|
1370
|
-
/* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground", children: "CSV, TXT, PDF, JPG, PNG, WebP" })
|
|
1390
|
+
isDragOver && enableAttachments && /* @__PURE__ */ jsxs("div", { className: "ww-absolute ww-inset-0 ww-z-50 ww-flex ww-flex-col ww-items-center ww-justify-center ww-gap-2 ww-rounded-2xl ww-bg-background/90 ww-backdrop-blur-sm ww-pointer-events-none", children: [
|
|
1391
|
+
/* @__PURE__ */ jsx(UploadCloud, { className: "ww-h-8 ww-w-8 ww-text-primary/70" }),
|
|
1392
|
+
/* @__PURE__ */ jsx("span", { className: "ww-text-sm ww-font-medium ww-text-foreground/70", children: "Drop files to attach" }),
|
|
1393
|
+
/* @__PURE__ */ jsx("span", { className: "ww-text-xs ww-text-muted-foreground", children: "CSV, TXT, PDF, JPG, PNG, WebP" })
|
|
1371
1394
|
] }),
|
|
1372
1395
|
/* @__PURE__ */ jsx(
|
|
1373
1396
|
ChatHeader,
|
|
@@ -1421,14 +1444,14 @@ function ChatWidget({
|
|
|
1421
1444
|
} : {}
|
|
1422
1445
|
}
|
|
1423
1446
|
),
|
|
1424
|
-
watermark && /* @__PURE__ */ jsxs("footer", { className: "shrink-0 flex items-center justify-center gap-1.5 bg-muted/50 py-1.5 border-t", children: [
|
|
1447
|
+
watermark && /* @__PURE__ */ jsxs("footer", { className: "ww-shrink-0 ww-flex ww-items-center ww-justify-center ww-gap-1.5 ww-bg-muted/50 ww-py-1.5 ww-border-t", children: [
|
|
1425
1448
|
/* @__PURE__ */ jsxs(
|
|
1426
1449
|
"a",
|
|
1427
1450
|
{
|
|
1428
1451
|
href: "https://wallavi.com",
|
|
1429
1452
|
target: "_blank",
|
|
1430
1453
|
rel: "noopener noreferrer",
|
|
1431
|
-
className: "flex items-center gap-1 text-[10px] text-muted-foreground hover:text-foreground transition-colors",
|
|
1454
|
+
className: "ww-flex ww-items-center ww-gap-1 ww-text-[10px] ww-text-muted-foreground hover:ww-text-foreground ww-transition-colors",
|
|
1432
1455
|
children: [
|
|
1433
1456
|
/* @__PURE__ */ jsx("img", { src: watermarkLogoUrl, alt: "Wallavi", width: 12, height: 12 }),
|
|
1434
1457
|
/* @__PURE__ */ jsx("span", { children: "Powered by Wallavi" })
|
|
@@ -1436,8 +1459,8 @@ function ChatWidget({
|
|
|
1436
1459
|
}
|
|
1437
1460
|
),
|
|
1438
1461
|
footer && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1439
|
-
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground/40 text-[10px]", children: "\xB7" }),
|
|
1440
|
-
/* @__PURE__ */ jsx("span", { className: "text-[10px] text-muted-foreground", children: footer })
|
|
1462
|
+
/* @__PURE__ */ jsx("span", { className: "ww-text-muted-foreground/40 ww-text-[10px]", children: "\xB7" }),
|
|
1463
|
+
/* @__PURE__ */ jsx("span", { className: "ww-text-[10px] ww-text-muted-foreground", children: footer })
|
|
1441
1464
|
] })
|
|
1442
1465
|
] })
|
|
1443
1466
|
]
|
|
@@ -1644,7 +1667,7 @@ function BubbleWidget({
|
|
|
1644
1667
|
onClose: handleClose,
|
|
1645
1668
|
onExpand: toggleExpanded,
|
|
1646
1669
|
expanded,
|
|
1647
|
-
className: cn("shadow-2xl h-full", panelClassName)
|
|
1670
|
+
className: cn("ww-shadow-2xl ww-h-full", panelClassName)
|
|
1648
1671
|
}
|
|
1649
1672
|
)
|
|
1650
1673
|
}
|