@wallavi/widget 1.6.6 → 1.6.7
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 +145 -144
- package/dist/index.mjs +147 -146
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -56,8 +56,9 @@ function styleInject(css, { insertAt } = {}) {
|
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
// src/styles.css
|
|
59
|
-
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");
|
|
60
|
-
var
|
|
59
|
+
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");
|
|
60
|
+
var twMerge = tailwindMerge.extendTailwindMerge({ prefix: "ww-" });
|
|
61
|
+
var cn = (...inputs) => twMerge(clsx.clsx(inputs));
|
|
61
62
|
|
|
62
63
|
// src/types.ts
|
|
63
64
|
function getContrastColor(hex) {
|
|
@@ -609,10 +610,10 @@ function ChatHeader({
|
|
|
609
610
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
610
611
|
"header",
|
|
611
612
|
{
|
|
612
|
-
className: "flex items-center justify-between px-4 py-3 shrink-0",
|
|
613
|
+
className: "ww-flex ww-items-center ww-justify-between ww-px-4 ww-py-3 ww-shrink-0",
|
|
613
614
|
style: { backgroundColor: headerBg, color: headerText, borderBottom: `1px solid ${headerText}18` },
|
|
614
615
|
children: [
|
|
615
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2.5 min-w-0", children: [
|
|
616
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ww-flex ww-items-center ww-gap-2.5 ww-min-w-0", children: [
|
|
616
617
|
/* @__PURE__ */ jsxRuntime.jsx(Avatar, { style: { width: 32, height: 32, border: `2px solid ${headerText}30` }, children: profilePicture ? /* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: profilePicture, alt: title }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
617
618
|
AvatarFallback,
|
|
618
619
|
{
|
|
@@ -620,17 +621,17 @@ function ChatHeader({
|
|
|
620
621
|
children: title.slice(0, 2).toUpperCase()
|
|
621
622
|
}
|
|
622
623
|
) }),
|
|
623
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
|
|
624
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-semibold text-sm truncate leading-tight", children: title }),
|
|
625
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] opacity-70 leading-tight", children: "AI Assistant" })
|
|
624
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ww-min-w-0", children: [
|
|
625
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "ww-font-semibold ww-text-sm ww-truncate ww-leading-tight", children: title }),
|
|
626
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "ww-text-[10px] ww-opacity-70 ww-leading-tight", children: "AI Assistant" })
|
|
626
627
|
] })
|
|
627
628
|
] }),
|
|
628
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1", children: [
|
|
629
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ww-flex ww-items-center ww-gap-1", children: [
|
|
629
630
|
onExpand && /* @__PURE__ */ jsxRuntime.jsx(
|
|
630
631
|
"button",
|
|
631
632
|
{
|
|
632
633
|
onClick: onExpand,
|
|
633
|
-
className: "rounded-full p-1.5 transition-colors hover:bg-white/10",
|
|
634
|
+
className: "ww-rounded-full ww-p-1.5 ww-transition-colors hover:ww-bg-white/10",
|
|
634
635
|
title: expanded ? "Minimize" : "Expand",
|
|
635
636
|
children: expanded ? /* @__PURE__ */ jsxRuntime.jsx(MinimizeIcon, {}) : /* @__PURE__ */ jsxRuntime.jsx(ExpandIcon, {})
|
|
636
637
|
}
|
|
@@ -639,18 +640,18 @@ function ChatHeader({
|
|
|
639
640
|
"button",
|
|
640
641
|
{
|
|
641
642
|
onClick: onReset,
|
|
642
|
-
className: "rounded-full p-1.5 transition-colors hover:bg-white/10",
|
|
643
|
+
className: "ww-rounded-full ww-p-1.5 ww-transition-colors hover:ww-bg-white/10",
|
|
643
644
|
title: "New conversation",
|
|
644
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.RotateCcw, { className: "h-3.5 w-3.5", style: { color: headerText } })
|
|
645
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.RotateCcw, { className: "ww-h-3.5 ww-w-3.5", style: { color: headerText } })
|
|
645
646
|
}
|
|
646
647
|
),
|
|
647
648
|
onClose && /* @__PURE__ */ jsxRuntime.jsx(
|
|
648
649
|
"button",
|
|
649
650
|
{
|
|
650
651
|
onClick: onClose,
|
|
651
|
-
className: "rounded-full p-1.5 transition-colors hover:bg-white/10",
|
|
652
|
+
className: "ww-rounded-full ww-p-1.5 ww-transition-colors hover:ww-bg-white/10",
|
|
652
653
|
title: "Close",
|
|
653
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-3.5 w-3.5", style: { color: headerText } })
|
|
654
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "ww-h-3.5 ww-w-3.5", style: { color: headerText } })
|
|
654
655
|
}
|
|
655
656
|
)
|
|
656
657
|
] })
|
|
@@ -665,8 +666,8 @@ function formatBytes(bytes) {
|
|
|
665
666
|
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
666
667
|
}
|
|
667
668
|
function ChipLeading({ a }) {
|
|
668
|
-
if (a.status === "uploading") return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "h-3 w-3 shrink-0 animate-spin" });
|
|
669
|
-
if (a.status === "error") return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { className: "h-3 w-3 shrink-0" });
|
|
669
|
+
if (a.status === "uploading") return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "ww-h-3 ww-w-3 ww-shrink-0 ww-animate-spin" });
|
|
670
|
+
if (a.status === "error") return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { className: "ww-h-3 ww-w-3 ww-shrink-0" });
|
|
670
671
|
const thumbSrc = a.payload?.url ?? a.payload?.base64;
|
|
671
672
|
if (a.mimeType.startsWith("image/") && thumbSrc) {
|
|
672
673
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -674,38 +675,38 @@ function ChipLeading({ a }) {
|
|
|
674
675
|
{
|
|
675
676
|
src: thumbSrc,
|
|
676
677
|
alt: a.name,
|
|
677
|
-
className: "h-6 w-6 rounded object-cover shrink-0 border border-border/40"
|
|
678
|
+
className: "ww-h-6 ww-w-6 ww-rounded ww-object-cover ww-shrink-0 ww-border ww-border-border/40"
|
|
678
679
|
}
|
|
679
680
|
);
|
|
680
681
|
}
|
|
681
|
-
if (a.mimeType.startsWith("image/")) return /* @__PURE__ */ jsxRuntime.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__ */ jsxRuntime.jsx("span", { className: "text-[8px] font-semibold text-muted-foreground/50", children: "IMG" }) });
|
|
682
|
-
if (a.mimeType === "application/pdf") return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.FileText, { className: "h-3 w-3 shrink-0 text-red-400" });
|
|
682
|
+
if (a.mimeType.startsWith("image/")) return /* @__PURE__ */ jsxRuntime.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__ */ jsxRuntime.jsx("span", { className: "ww-text-[8px] ww-font-semibold ww-text-muted-foreground/50", children: "IMG" }) });
|
|
683
|
+
if (a.mimeType === "application/pdf") return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.FileText, { className: "ww-h-3 ww-w-3 ww-shrink-0 ww-text-red-400" });
|
|
683
684
|
if (a.mimeType.includes("csv") || a.mimeType.includes("spreadsheet") || a.name.endsWith(".csv")) {
|
|
684
|
-
return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.FileSpreadsheet, { className: "h-3 w-3 shrink-0 text-emerald-500" });
|
|
685
|
+
return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.FileSpreadsheet, { className: "ww-h-3 ww-w-3 ww-shrink-0 ww-text-emerald-500" });
|
|
685
686
|
}
|
|
686
|
-
return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.FileText, { className: "h-3 w-3 shrink-0" });
|
|
687
|
+
return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.FileText, { className: "ww-h-3 ww-w-3 ww-shrink-0" });
|
|
687
688
|
}
|
|
688
689
|
function AttachmentChips({ attachments, onRemove }) {
|
|
689
690
|
if (attachments.length === 0) return null;
|
|
690
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1.5 px-1 pb-1.5", children: attachments.map((a) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
691
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ww-flex ww-flex-wrap ww-gap-1.5 ww-px-1 ww-pb-1.5", children: attachments.map((a) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
691
692
|
"div",
|
|
692
693
|
{
|
|
693
694
|
className: cn2(
|
|
694
|
-
"flex items-center gap-1.5 rounded-lg border px-2 py-1 text-[11px] max-w-[200px]",
|
|
695
|
-
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"
|
|
695
|
+
"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]",
|
|
696
|
+
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"
|
|
696
697
|
),
|
|
697
698
|
children: [
|
|
698
699
|
/* @__PURE__ */ jsxRuntime.jsx(ChipLeading, { a }),
|
|
699
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate leading-tight", children: a.status === "error" ? a.errorMessage ?? "Upload failed" : a.name }),
|
|
700
|
-
a.status === "ready" && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 text-muted-foreground/50", children: formatBytes(a.sizeBytes) }),
|
|
700
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ww-truncate ww-leading-tight", children: a.status === "error" ? a.errorMessage ?? "Upload failed" : a.name }),
|
|
701
|
+
a.status === "ready" && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ww-shrink-0 ww-text-muted-foreground/50", children: formatBytes(a.sizeBytes) }),
|
|
701
702
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
702
703
|
"button",
|
|
703
704
|
{
|
|
704
705
|
type: "button",
|
|
705
706
|
onClick: () => onRemove(a.id),
|
|
706
|
-
className: "shrink-0 rounded-full p-0.5 hover:bg-foreground/10 transition-colors ml-0.5",
|
|
707
|
+
className: "ww-shrink-0 ww-rounded-full ww-p-0.5 hover:ww-bg-foreground/10 ww-transition-colors ww-ml-0.5",
|
|
707
708
|
title: "Remove",
|
|
708
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-2.5 w-2.5" })
|
|
709
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "ww-h-2.5 ww-w-2.5" })
|
|
709
710
|
}
|
|
710
711
|
)
|
|
711
712
|
]
|
|
@@ -721,8 +722,8 @@ function SentAttachments({ attachments, contrastColor }) {
|
|
|
721
722
|
const images = attachments.filter((a) => a.contentType === "image");
|
|
722
723
|
const files = attachments.filter((a) => a.contentType !== "image");
|
|
723
724
|
const isDark = contrastColor === "#ffffff" || contrastColor === "#fff";
|
|
724
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-1.5 w-full", children: [
|
|
725
|
-
images.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex gap-1.5 flex-wrap", images.length === 1 && ""), children: images.map((img) => {
|
|
725
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ww-flex ww-flex-col ww-gap-1.5 ww-w-full", children: [
|
|
726
|
+
images.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("ww-flex ww-gap-1.5 ww-flex-wrap", images.length === 1 && ""), children: images.map((img) => {
|
|
726
727
|
const src = img.url ?? img.base64;
|
|
727
728
|
return src ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
728
729
|
"img",
|
|
@@ -730,9 +731,9 @@ function SentAttachments({ attachments, contrastColor }) {
|
|
|
730
731
|
src,
|
|
731
732
|
alt: img.name,
|
|
732
733
|
className: cn(
|
|
733
|
-
"rounded-xl object-cover border",
|
|
734
|
-
images.length === 1 ? "w-full max-h-48" : "h-20 w-20",
|
|
735
|
-
isDark ? "border-white/20" : "border-black/10"
|
|
734
|
+
"ww-rounded-xl ww-object-cover ww-border",
|
|
735
|
+
images.length === 1 ? "ww-w-full ww-max-h-48" : "ww-h-20 ww-w-20",
|
|
736
|
+
isDark ? "ww-border-white/20" : "ww-border-black/10"
|
|
736
737
|
)
|
|
737
738
|
},
|
|
738
739
|
img.id
|
|
@@ -740,24 +741,24 @@ function SentAttachments({ attachments, contrastColor }) {
|
|
|
740
741
|
"div",
|
|
741
742
|
{
|
|
742
743
|
className: cn(
|
|
743
|
-
"h-20 w-20 rounded-xl flex items-center justify-center text-[10px] font-medium",
|
|
744
|
-
isDark ? "bg-white/10 text-white/60" : "bg-black/10 text-black/40"
|
|
744
|
+
"ww-h-20 ww-w-20 ww-rounded-xl ww-flex ww-items-center ww-justify-center ww-text-[10px] ww-font-medium",
|
|
745
|
+
isDark ? "ww-bg-white/10 ww-text-white/60" : "ww-bg-black/10 ww-text-black/40"
|
|
745
746
|
),
|
|
746
747
|
children: "IMG"
|
|
747
748
|
},
|
|
748
749
|
img.id
|
|
749
750
|
);
|
|
750
751
|
}) }),
|
|
751
|
-
files.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1", children: files.map((f) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
752
|
+
files.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ww-flex ww-flex-wrap ww-gap-1", children: files.map((f) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
752
753
|
"div",
|
|
753
754
|
{
|
|
754
755
|
className: cn(
|
|
755
|
-
"flex items-center gap-1 rounded-lg px-2 py-1 text-[11px]",
|
|
756
|
-
isDark ? "bg-white/15 text-white/80" : "bg-black/10 text-black/60"
|
|
756
|
+
"ww-flex ww-items-center ww-gap-1 ww-rounded-lg ww-px-2 ww-py-1 ww-text-[11px]",
|
|
757
|
+
isDark ? "ww-bg-white/15 ww-text-white/80" : "ww-bg-black/10 ww-text-black/60"
|
|
757
758
|
),
|
|
758
759
|
children: [
|
|
759
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate max-w-[120px]", children: f.name }),
|
|
760
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "opacity-60 shrink-0", children: formatBytes(f.sizeBytes) })
|
|
760
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ww-truncate ww-max-w-[120px]", children: f.name }),
|
|
761
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ww-opacity-60 ww-shrink-0", children: formatBytes(f.sizeBytes) })
|
|
761
762
|
]
|
|
762
763
|
},
|
|
763
764
|
f.id
|
|
@@ -765,50 +766,50 @@ function SentAttachments({ attachments, contrastColor }) {
|
|
|
765
766
|
] });
|
|
766
767
|
}
|
|
767
768
|
function PlanStepIcon({ status }) {
|
|
768
|
-
if (status === "executing") return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "h-3 w-3 animate-spin text-primary" });
|
|
769
|
-
if (status === "success") return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "h-3 w-3 text-emerald-500" });
|
|
770
|
-
if (status === "failed") return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { className: "h-3 w-3 text-destructive" });
|
|
771
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-3 w-3 rounded-full border-2 border-muted-foreground/30" });
|
|
769
|
+
if (status === "executing") return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "ww-h-3 ww-w-3 ww-animate-spin ww-text-primary" });
|
|
770
|
+
if (status === "success") return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "ww-h-3 ww-w-3 ww-text-emerald-500" });
|
|
771
|
+
if (status === "failed") return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { className: "ww-h-3 ww-w-3 ww-text-destructive" });
|
|
772
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ww-h-3 ww-w-3 ww-rounded-full ww-border-2 ww-border-muted-foreground/30" });
|
|
772
773
|
}
|
|
773
774
|
function PlanCard({ part }) {
|
|
774
775
|
const successCount = part.steps.filter((s) => s.status === "success").length;
|
|
775
776
|
const hasExecuting = part.steps.some((s) => s.status === "executing");
|
|
776
777
|
const allDone = successCount === part.steps.length && part.steps.length > 0;
|
|
777
778
|
const anyFailed = part.steps.some((s) => s.status === "failed");
|
|
778
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-xl border bg-background overflow-hidden text-xs w-full shadow-sm", children: [
|
|
779
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 px-3 py-2 bg-muted/50 border-b", children: [
|
|
780
|
-
hasExecuting ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "h-3.5 w-3.5 shrink-0 animate-spin text-primary/80" }) : allDone ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "h-3.5 w-3.5 shrink-0 text-emerald-500" }) : anyFailed ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { className: "h-3.5 w-3.5 shrink-0 text-destructive" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Zap, { className: "h-3.5 w-3.5 shrink-0 text-primary/70" }),
|
|
781
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium text-foreground/80 truncate flex-1 leading-snug", children: part.goal }),
|
|
782
|
-
part.steps.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "shrink-0 tabular-nums text-muted-foreground", children: [
|
|
779
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ww-rounded-xl ww-border ww-bg-background ww-overflow-hidden ww-text-xs ww-w-full ww-shadow-sm", children: [
|
|
780
|
+
/* @__PURE__ */ jsxRuntime.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: [
|
|
781
|
+
hasExecuting ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "ww-h-3.5 ww-w-3.5 ww-shrink-0 ww-animate-spin ww-text-primary/80" }) : allDone ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "ww-h-3.5 ww-w-3.5 ww-shrink-0 ww-text-emerald-500" }) : anyFailed ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { className: "ww-h-3.5 ww-w-3.5 ww-shrink-0 ww-text-destructive" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Zap, { className: "ww-h-3.5 ww-w-3.5 ww-shrink-0 ww-text-primary/70" }),
|
|
782
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ww-font-medium ww-text-foreground/80 ww-truncate ww-flex-1 ww-leading-snug", children: part.goal }),
|
|
783
|
+
part.steps.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ww-shrink-0 tabular-nums ww-text-muted-foreground", children: [
|
|
783
784
|
successCount,
|
|
784
785
|
"/",
|
|
785
786
|
part.steps.length
|
|
786
787
|
] })
|
|
787
788
|
] }),
|
|
788
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "divide-y divide-border/40", children: part.steps.map((step) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
789
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "ww-divide-y ww-divide-border/40", children: part.steps.map((step) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
789
790
|
"div",
|
|
790
791
|
{
|
|
791
792
|
className: cn(
|
|
792
|
-
"flex items-start gap-2.5 px-3 py-2 transition-colors duration-200",
|
|
793
|
-
step.status === "executing" && "bg-primary/5"
|
|
793
|
+
"ww-flex ww-items-start ww-gap-2.5 ww-px-3 ww-py-2 ww-transition-colors ww-duration-200",
|
|
794
|
+
step.status === "executing" && "ww-bg-primary/5"
|
|
794
795
|
),
|
|
795
796
|
children: [
|
|
796
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-0.5 shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(PlanStepIcon, { status: step.status }) }),
|
|
797
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "ww-mt-0.5 ww-shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(PlanStepIcon, { status: step.status }) }),
|
|
797
798
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
798
799
|
"span",
|
|
799
800
|
{
|
|
800
801
|
className: cn(
|
|
801
|
-
"leading-relaxed",
|
|
802
|
-
step.status === "pending" && "text-muted-foreground",
|
|
803
|
-
step.status === "executing" && "text-foreground font-medium",
|
|
804
|
-
step.status === "success" && "text-foreground/60 line-through decoration-foreground/20",
|
|
805
|
-
step.status === "failed" && "text-destructive"
|
|
802
|
+
"ww-leading-relaxed",
|
|
803
|
+
step.status === "pending" && "ww-text-muted-foreground",
|
|
804
|
+
step.status === "executing" && "ww-text-foreground ww-font-medium",
|
|
805
|
+
step.status === "success" && "ww-text-foreground/60 ww-line-through ww-decoration-foreground/20",
|
|
806
|
+
step.status === "failed" && "ww-text-destructive"
|
|
806
807
|
),
|
|
807
808
|
children: [
|
|
808
809
|
step.index + 1,
|
|
809
810
|
". ",
|
|
810
811
|
step.description,
|
|
811
|
-
step.error && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "block text-destructive/70 text-[10px] mt-0.5 no-underline", children: step.error })
|
|
812
|
+
step.error && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ww-block ww-text-destructive/70 ww-text-[10px] ww-mt-0.5 ww-no-underline", children: step.error })
|
|
812
813
|
]
|
|
813
814
|
}
|
|
814
815
|
)
|
|
@@ -829,7 +830,7 @@ function ThinkingDots() {
|
|
|
829
830
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
830
831
|
"div",
|
|
831
832
|
{
|
|
832
|
-
className: "bg-muted",
|
|
833
|
+
className: "ww-bg-muted",
|
|
833
834
|
style: {
|
|
834
835
|
display: "inline-flex",
|
|
835
836
|
alignItems: "center",
|
|
@@ -856,33 +857,33 @@ function ThinkingDots() {
|
|
|
856
857
|
] });
|
|
857
858
|
}
|
|
858
859
|
function ToolCallBadge({ part }) {
|
|
859
|
-
return /* @__PURE__ */ jsxRuntime.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: [
|
|
860
|
-
part.status === "running" && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "h-3 w-3 animate-spin" }),
|
|
861
|
-
part.status === "done" && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "h-3 w-3 text-emerald-500" }),
|
|
862
|
-
part.status === "error" && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { className: "h-3 w-3 text-destructive" }),
|
|
860
|
+
return /* @__PURE__ */ jsxRuntime.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: [
|
|
861
|
+
part.status === "running" && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "ww-h-3 ww-w-3 ww-animate-spin" }),
|
|
862
|
+
part.status === "done" && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "ww-h-3 ww-w-3 ww-text-emerald-500" }),
|
|
863
|
+
part.status === "error" && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { className: "ww-h-3 ww-w-3 ww-text-destructive" }),
|
|
863
864
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
864
865
|
part.status === "running" ? "Calling" : part.status === "done" ? "Called" : "Failed",
|
|
865
866
|
" ",
|
|
866
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium text-foreground", children: formatToolName(part.toolName) })
|
|
867
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ww-font-medium ww-text-foreground", children: formatToolName(part.toolName) })
|
|
867
868
|
] })
|
|
868
869
|
] });
|
|
869
870
|
}
|
|
870
871
|
function ReasoningBlock({ text }) {
|
|
871
872
|
const [open, setOpen] = react.useState(false);
|
|
872
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-1", children: [
|
|
873
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ww-mb-1", children: [
|
|
873
874
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
874
875
|
"button",
|
|
875
876
|
{
|
|
876
877
|
onClick: () => setOpen((v) => !v),
|
|
877
|
-
className: "flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors",
|
|
878
|
+
className: "ww-flex ww-items-center ww-gap-1 ww-text-xs ww-text-muted-foreground hover:ww-text-foreground ww-transition-colors",
|
|
878
879
|
children: [
|
|
879
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Zap, { className: "h-3 w-3" }),
|
|
880
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Zap, { className: "ww-h-3 ww-w-3" }),
|
|
880
881
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Reasoning" }),
|
|
881
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: cn("h-3 w-3 transition-transform", open && "rotate-180") })
|
|
882
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: cn("ww-h-3 ww-w-3 ww-transition-transform", open && "ww-rotate-180") })
|
|
882
883
|
]
|
|
883
884
|
}
|
|
884
885
|
),
|
|
885
|
-
open && /* @__PURE__ */ jsxRuntime.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 })
|
|
886
|
+
open && /* @__PURE__ */ jsxRuntime.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 })
|
|
886
887
|
] });
|
|
887
888
|
}
|
|
888
889
|
function PickerSelector({
|
|
@@ -903,12 +904,12 @@ function PickerSelector({
|
|
|
903
904
|
if (!disabled && !isConsumed) onSelect(part.pickerId, part.paramName, opt.value, opt.label);
|
|
904
905
|
};
|
|
905
906
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(
|
|
906
|
-
"flex flex-col gap-2.5 rounded-xl rounded-tl-none border bg-muted/60 p-3",
|
|
907
|
-
"border-border/50"
|
|
907
|
+
"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",
|
|
908
|
+
"ww-border-border/50"
|
|
908
909
|
), children: [
|
|
909
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10.5px] font-semibold uppercase tracking-widest text-muted-foreground/70 leading-none", children: part.label }),
|
|
910
|
-
mode === "list" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
911
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, { className: "absolute left-2.5 top-1/2 -translate-y-1/2 h-3 w-3 text-muted-foreground/50 pointer-events-none" }),
|
|
910
|
+
/* @__PURE__ */ jsxRuntime.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 }),
|
|
911
|
+
mode === "list" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ww-relative", children: [
|
|
912
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.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" }),
|
|
912
913
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
913
914
|
"input",
|
|
914
915
|
{
|
|
@@ -917,11 +918,11 @@ function PickerSelector({
|
|
|
917
918
|
onChange: (e) => setQuery(e.target.value),
|
|
918
919
|
placeholder: "Search\u2026",
|
|
919
920
|
disabled: disabled || isConsumed,
|
|
920
|
-
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"
|
|
921
|
+
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"
|
|
921
922
|
}
|
|
922
923
|
)
|
|
923
924
|
] }),
|
|
924
|
-
mode === "pills" && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1.5", children: part.options.map((opt) => {
|
|
925
|
+
mode === "pills" && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ww-flex ww-flex-wrap ww-gap-1.5", children: part.options.map((opt) => {
|
|
925
926
|
const sel = part.selectedValue === opt.value;
|
|
926
927
|
const faded = isConsumed && !sel;
|
|
927
928
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -930,19 +931,19 @@ function PickerSelector({
|
|
|
930
931
|
disabled: disabled || isConsumed,
|
|
931
932
|
onClick: () => handleClick(opt),
|
|
932
933
|
className: cn(
|
|
933
|
-
"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",
|
|
934
|
-
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",
|
|
935
|
-
disabled && !isConsumed && "opacity-60 pointer-events-none"
|
|
934
|
+
"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",
|
|
935
|
+
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",
|
|
936
|
+
disabled && !isConsumed && "ww-opacity-60 ww-pointer-events-none"
|
|
936
937
|
),
|
|
937
938
|
children: [
|
|
938
|
-
sel && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "h-3 w-3 shrink-0" }),
|
|
939
|
+
sel && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "ww-h-3 ww-w-3 ww-shrink-0" }),
|
|
939
940
|
opt.label
|
|
940
941
|
]
|
|
941
942
|
},
|
|
942
943
|
opt.value
|
|
943
944
|
);
|
|
944
945
|
}) }),
|
|
945
|
-
mode === "grid" && /* @__PURE__ */ jsxRuntime.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) => {
|
|
946
|
+
mode === "grid" && /* @__PURE__ */ jsxRuntime.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) => {
|
|
946
947
|
const sel = part.selectedValue === opt.value;
|
|
947
948
|
const faded = isConsumed && !sel;
|
|
948
949
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -951,20 +952,20 @@ function PickerSelector({
|
|
|
951
952
|
disabled: disabled || isConsumed,
|
|
952
953
|
onClick: () => handleClick(opt),
|
|
953
954
|
className: cn(
|
|
954
|
-
"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",
|
|
955
|
-
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",
|
|
956
|
-
disabled && !isConsumed && "opacity-60 pointer-events-none"
|
|
955
|
+
"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",
|
|
956
|
+
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",
|
|
957
|
+
disabled && !isConsumed && "ww-opacity-60 ww-pointer-events-none"
|
|
957
958
|
),
|
|
958
959
|
children: [
|
|
959
|
-
sel ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "h-3 w-3 shrink-0" }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "h-3 w-3 shrink-0" }),
|
|
960
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children: opt.label })
|
|
960
|
+
sel ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "ww-h-3 ww-w-3 ww-shrink-0" }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ww-h-3 ww-w-3 ww-shrink-0" }),
|
|
961
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ww-truncate", children: opt.label })
|
|
961
962
|
]
|
|
962
963
|
},
|
|
963
964
|
opt.value
|
|
964
965
|
);
|
|
965
966
|
}) }),
|
|
966
|
-
mode === "list" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-0.5 max-h-[180px] overflow-y-auto pr-0.5", children: [
|
|
967
|
-
filtered.length === 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "py-3 text-center text-xs text-muted-foreground/50", children: "No results" }),
|
|
967
|
+
mode === "list" && /* @__PURE__ */ jsxRuntime.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: [
|
|
968
|
+
filtered.length === 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ww-py-3 ww-text-center ww-text-xs ww-text-muted-foreground/50", children: "No results" }),
|
|
968
969
|
filtered.map((opt) => {
|
|
969
970
|
const sel = part.selectedValue === opt.value;
|
|
970
971
|
const faded = isConsumed && !sel;
|
|
@@ -974,16 +975,16 @@ function PickerSelector({
|
|
|
974
975
|
disabled: disabled || isConsumed,
|
|
975
976
|
onClick: () => handleClick(opt),
|
|
976
977
|
className: cn(
|
|
977
|
-
"flex items-center gap-2 rounded-lg px-2.5 py-2 text-[12.5px] text-left transition-all duration-100 select-none",
|
|
978
|
-
sel ? "bg-foreground text-background font-medium" : faded ? "opacity-30 cursor-default" : "hover:bg-background text-foreground cursor-pointer",
|
|
979
|
-
disabled && !isConsumed && "opacity-60 pointer-events-none"
|
|
978
|
+
"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",
|
|
979
|
+
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",
|
|
980
|
+
disabled && !isConsumed && "ww-opacity-60 ww-pointer-events-none"
|
|
980
981
|
),
|
|
981
982
|
children: [
|
|
982
983
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(
|
|
983
|
-
"flex h-4 w-4 shrink-0 items-center justify-center rounded-full border text-[10px]",
|
|
984
|
-
sel ? "border-background bg-background/20" : "border-border/50"
|
|
985
|
-
), children: sel && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "h-2.5 w-2.5" }) }),
|
|
986
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children: opt.label })
|
|
984
|
+
"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]",
|
|
985
|
+
sel ? "ww-border-background ww-bg-background/20" : "ww-border-border/50"
|
|
986
|
+
), children: sel && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "ww-h-2.5 ww-w-2.5" }) }),
|
|
987
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ww-truncate", children: opt.label })
|
|
987
988
|
]
|
|
988
989
|
},
|
|
989
990
|
opt.value
|
|
@@ -1009,10 +1010,10 @@ function MessageBubble({
|
|
|
1009
1010
|
const planParts = message.parts.filter((p) => p.type === "plan");
|
|
1010
1011
|
const contrastColor = getContrastColor(userColor);
|
|
1011
1012
|
if (isUser) {
|
|
1012
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-end", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1013
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ww-flex ww-justify-end", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1013
1014
|
"div",
|
|
1014
1015
|
{
|
|
1015
|
-
className: "max-w-[78%] rounded-2xl rounded-tr-sm px-4 py-2.5 text-sm leading-relaxed flex flex-col gap-2",
|
|
1016
|
+
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",
|
|
1016
1017
|
style: { backgroundColor: userColor, color: contrastColor },
|
|
1017
1018
|
children: [
|
|
1018
1019
|
message.attachments && message.attachments.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(SentAttachments, { attachments: message.attachments, contrastColor }),
|
|
@@ -1023,9 +1024,9 @@ function MessageBubble({
|
|
|
1023
1024
|
}
|
|
1024
1025
|
const visibleToolParts = showThinking ? toolParts : [];
|
|
1025
1026
|
const isEmpty = !textPart?.text && visibleToolParts.length === 0 && pickerParts.length === 0;
|
|
1026
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2.5 items-start", children: [
|
|
1027
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ww-flex ww-gap-2.5 ww-items-start", children: [
|
|
1027
1028
|
/* @__PURE__ */ jsxRuntime.jsx(Avatar2, { style: { width: 28, height: 28, marginTop: 2, border: "1px solid rgba(0,0,0,0.08)" }, children: profilePicture ? /* @__PURE__ */ jsxRuntime.jsx(AvatarImage2, { src: profilePicture, alt: agentName }) : /* @__PURE__ */ jsxRuntime.jsx(AvatarFallback2, { style: { fontSize: 10, fontWeight: 600, backgroundColor: "var(--primary, #19191c)", color: "var(--primary-foreground, #fff)" }, children: agentName.slice(0, 2).toUpperCase() }) }),
|
|
1028
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-1.5 min-w-0 max-w-[82%]", children: [
|
|
1029
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ww-flex ww-flex-col ww-gap-1.5 ww-min-w-0 ww-max-w-[82%]", children: [
|
|
1029
1030
|
showThinking && reasoningPart && /* @__PURE__ */ jsxRuntime.jsx(ReasoningBlock, { text: reasoningPart.text }),
|
|
1030
1031
|
planParts.map((p) => /* @__PURE__ */ jsxRuntime.jsx(PlanCard, { part: p }, p.planId)),
|
|
1031
1032
|
visibleToolParts.map((t) => /* @__PURE__ */ jsxRuntime.jsx(ToolCallBadge, { part: t }, t.toolCallId)),
|
|
@@ -1039,7 +1040,7 @@ function MessageBubble({
|
|
|
1039
1040
|
},
|
|
1040
1041
|
p.pickerId
|
|
1041
1042
|
)),
|
|
1042
|
-
isEmpty && isStreaming ? /* @__PURE__ */ jsxRuntime.jsx(ThinkingDots, {}) : textPart?.text ? /* @__PURE__ */ jsxRuntime.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: [
|
|
1043
|
+
isEmpty && isStreaming ? /* @__PURE__ */ jsxRuntime.jsx(ThinkingDots, {}) : textPart?.text ? /* @__PURE__ */ jsxRuntime.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: [
|
|
1043
1044
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1044
1045
|
ReactMarkdown,
|
|
1045
1046
|
{
|
|
@@ -1066,14 +1067,14 @@ function MessageBubble({
|
|
|
1066
1067
|
children: textPart.text
|
|
1067
1068
|
}
|
|
1068
1069
|
),
|
|
1069
|
-
isStreaming && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-block w-0.5 h-3.5 bg-foreground/60 ml-0.5 animate-pulse align-middle" })
|
|
1070
|
+
isStreaming && /* @__PURE__ */ jsxRuntime.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" })
|
|
1070
1071
|
] }) : null
|
|
1071
1072
|
] })
|
|
1072
1073
|
] });
|
|
1073
1074
|
}
|
|
1074
|
-
var Avatar3 = ({ className, ...p }) => /* @__PURE__ */ jsxRuntime.jsx(AvatarPrimitive__namespace.Root, { className: ["relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full", className].filter(Boolean).join(" "), ...p });
|
|
1075
|
+
var Avatar3 = ({ className, ...p }) => /* @__PURE__ */ jsxRuntime.jsx(AvatarPrimitive__namespace.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 });
|
|
1075
1076
|
var AvatarImage3 = AvatarPrimitive__namespace.Image;
|
|
1076
|
-
var AvatarFallback3 = ({ className, ...p }) => /* @__PURE__ */ jsxRuntime.jsx(AvatarPrimitive__namespace.Fallback, { className: ["flex h-full w-full items-center justify-center rounded-full bg-muted", className].filter(Boolean).join(" "), ...p });
|
|
1077
|
+
var AvatarFallback3 = ({ className, ...p }) => /* @__PURE__ */ jsxRuntime.jsx(AvatarPrimitive__namespace.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 });
|
|
1077
1078
|
function ChatMessages({
|
|
1078
1079
|
messages,
|
|
1079
1080
|
streaming,
|
|
@@ -1091,13 +1092,13 @@ function ChatMessages({
|
|
|
1091
1092
|
react.useEffect(() => {
|
|
1092
1093
|
bottomRef.current?.scrollIntoView({ behavior: "smooth" });
|
|
1093
1094
|
}, [messages]);
|
|
1094
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 flex flex-col overflow-y-auto overscroll-contain", children: [
|
|
1095
|
-
showGreeting && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2.5 items-start px-4 pt-5", children: [
|
|
1096
|
-
/* @__PURE__ */ jsxRuntime.jsx(Avatar3, { className: "h-7 w-7 shrink-0 mt-0.5 border", children: profilePicture ? /* @__PURE__ */ jsxRuntime.jsx(AvatarImage3, { src: profilePicture, alt: agentName }) : /* @__PURE__ */ jsxRuntime.jsx(AvatarFallback3, { className: "text-[10px] font-semibold bg-primary text-primary-foreground", children: agentName.slice(0, 2).toUpperCase() }) }),
|
|
1097
|
-
/* @__PURE__ */ jsxRuntime.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?" })
|
|
1095
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ww-flex-1 ww-flex ww-flex-col ww-overflow-y-auto ww-overscroll-contain", children: [
|
|
1096
|
+
showGreeting && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ww-flex ww-gap-2.5 ww-items-start ww-px-4 ww-pt-5", children: [
|
|
1097
|
+
/* @__PURE__ */ jsxRuntime.jsx(Avatar3, { className: "ww-h-7 ww-w-7 ww-shrink-0 ww-mt-0.5 ww-border", children: profilePicture ? /* @__PURE__ */ jsxRuntime.jsx(AvatarImage3, { src: profilePicture, alt: agentName }) : /* @__PURE__ */ jsxRuntime.jsx(AvatarFallback3, { className: "ww-text-[10px] ww-font-semibold ww-bg-primary ww-text-primary-foreground", children: agentName.slice(0, 2).toUpperCase() }) }),
|
|
1098
|
+
/* @__PURE__ */ jsxRuntime.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?" })
|
|
1098
1099
|
] }),
|
|
1099
|
-
showGreeting && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1" }),
|
|
1100
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-4 px-4 py-4", children: messages.map((msg, i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1100
|
+
showGreeting && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ww-flex-1" }),
|
|
1101
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "ww-flex ww-flex-col ww-gap-4 ww-px-4 ww-py-4", children: messages.map((msg, i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1101
1102
|
MessageBubble,
|
|
1102
1103
|
{
|
|
1103
1104
|
message: msg,
|
|
@@ -1110,12 +1111,12 @@ function ChatMessages({
|
|
|
1110
1111
|
},
|
|
1111
1112
|
msg.id
|
|
1112
1113
|
)) }),
|
|
1113
|
-
showGreeting && suggestedMessages.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-2 px-4 pb-4", children: suggestedMessages.map((msg, i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1114
|
+
showGreeting && suggestedMessages.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ww-flex ww-flex-wrap ww-gap-2 ww-px-4 ww-pb-4", children: suggestedMessages.map((msg, i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1114
1115
|
"button",
|
|
1115
1116
|
{
|
|
1116
1117
|
onClick: () => onSuggest(msg),
|
|
1117
1118
|
disabled: streaming,
|
|
1118
|
-
className: "text-xs border rounded-full px-3 py-1.5 hover:bg-muted transition-colors text-left disabled:opacity-50",
|
|
1119
|
+
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",
|
|
1119
1120
|
children: msg
|
|
1120
1121
|
},
|
|
1121
1122
|
i
|
|
@@ -1162,21 +1163,21 @@ function ChatInput({
|
|
|
1162
1163
|
}
|
|
1163
1164
|
};
|
|
1164
1165
|
const hasText = input.trim().length > 0;
|
|
1165
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "shrink-0 border-t bg-background px-3 py-2.5", children: [
|
|
1166
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ww-shrink-0 ww-border-t ww-bg-background ww-px-3 ww-py-2.5", children: [
|
|
1166
1167
|
canRegenerate && onRegenerate && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1167
1168
|
"button",
|
|
1168
1169
|
{
|
|
1169
1170
|
onClick: onRegenerate,
|
|
1170
1171
|
disabled: streaming,
|
|
1171
|
-
className: "flex items-center gap-1 text-[11px] text-muted-foreground hover:text-foreground transition-colors mb-2 disabled:opacity-40",
|
|
1172
|
+
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",
|
|
1172
1173
|
children: [
|
|
1173
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.RotateCcw, { className: "h-3 w-3" }),
|
|
1174
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.RotateCcw, { className: "ww-h-3 ww-w-3" }),
|
|
1174
1175
|
"Regenerate response"
|
|
1175
1176
|
]
|
|
1176
1177
|
}
|
|
1177
1178
|
),
|
|
1178
|
-
/* @__PURE__ */ jsxRuntime.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: [
|
|
1179
|
-
hasAttachments && attachments && attachments.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-2 pt-2", children: /* @__PURE__ */ jsxRuntime.jsx(AttachmentChips, { attachments, onRemove: (id) => onRemoveAttachment?.(id) }) }),
|
|
1179
|
+
/* @__PURE__ */ jsxRuntime.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: [
|
|
1180
|
+
hasAttachments && attachments && attachments.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ww-px-2 ww-pt-2", children: /* @__PURE__ */ jsxRuntime.jsx(AttachmentChips, { attachments, onRemove: (id) => onRemoveAttachment?.(id) }) }),
|
|
1180
1181
|
hasAttachments && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1181
1182
|
"input",
|
|
1182
1183
|
{
|
|
@@ -1184,7 +1185,7 @@ function ChatInput({
|
|
|
1184
1185
|
type: "file",
|
|
1185
1186
|
multiple: true,
|
|
1186
1187
|
accept: ".csv,.txt,.tsv,.pdf,text/plain,text/csv,application/pdf,image/jpeg,image/png,image/webp,image/gif",
|
|
1187
|
-
className: "hidden",
|
|
1188
|
+
className: "ww-hidden",
|
|
1188
1189
|
onChange: (e) => {
|
|
1189
1190
|
if (e.target.files?.length) {
|
|
1190
1191
|
onAttach(e.target.files);
|
|
@@ -1193,14 +1194,14 @@ function ChatInput({
|
|
|
1193
1194
|
}
|
|
1194
1195
|
}
|
|
1195
1196
|
),
|
|
1196
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-end gap-2 px-3 py-2", children: [
|
|
1197
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ww-flex ww-items-end ww-gap-2 ww-px-3 ww-py-2", children: [
|
|
1197
1198
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1198
1199
|
"textarea",
|
|
1199
1200
|
{
|
|
1200
1201
|
id: "wallavi-chat-input",
|
|
1201
1202
|
ref: textareaRef,
|
|
1202
1203
|
rows: 1,
|
|
1203
|
-
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",
|
|
1204
|
+
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",
|
|
1204
1205
|
placeholder: placeholder ?? "Send a message\u2026",
|
|
1205
1206
|
value: input,
|
|
1206
1207
|
onChange: (e) => {
|
|
@@ -1233,13 +1234,13 @@ function ChatInput({
|
|
|
1233
1234
|
disabled: streaming || voiceState === "transcribing",
|
|
1234
1235
|
title: voiceState === "recording" ? "Stop recording" : "Record voice message",
|
|
1235
1236
|
className: cn3(
|
|
1236
|
-
"h-7 w-7 shrink-0 rounded-xl flex items-center justify-center transition-all duration-200",
|
|
1237
|
-
voiceState === "recording" && "animate-pulse",
|
|
1238
|
-
voiceState === "error" ? "text-red-500 opacity-80" : "text-muted-foreground hover:text-foreground",
|
|
1239
|
-
(streaming || voiceState === "transcribing") && "opacity-40 pointer-events-none"
|
|
1237
|
+
"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",
|
|
1238
|
+
voiceState === "recording" && "ww-animate-pulse",
|
|
1239
|
+
voiceState === "error" ? "ww-text-red-500 ww-opacity-80" : "ww-text-muted-foreground hover:ww-text-foreground",
|
|
1240
|
+
(streaming || voiceState === "transcribing") && "ww-opacity-40 ww-pointer-events-none"
|
|
1240
1241
|
),
|
|
1241
1242
|
style: voiceState === "recording" ? { color: accentColor } : void 0,
|
|
1242
|
-
children: voiceState === "transcribing" ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "h-3.5 w-3.5 animate-spin" }) : voiceState === "recording" ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Square, { className: "h-3.5 w-3.5 fill-current" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Mic, { className: "h-3.5 w-3.5" })
|
|
1243
|
+
children: voiceState === "transcribing" ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "ww-h-3.5 ww-w-3.5 ww-animate-spin" }) : voiceState === "recording" ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Square, { className: "ww-h-3.5 ww-w-3.5 ww-fill-current" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Mic, { className: "ww-h-3.5 ww-w-3.5" })
|
|
1243
1244
|
}
|
|
1244
1245
|
),
|
|
1245
1246
|
hasAttachments && /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1250,11 +1251,11 @@ function ChatInput({
|
|
|
1250
1251
|
disabled: streaming || isUploading,
|
|
1251
1252
|
title: "Attach file (CSV, image\u2026)",
|
|
1252
1253
|
className: cn3(
|
|
1253
|
-
"h-7 w-7 shrink-0 rounded-xl flex items-center justify-center transition-all duration-200",
|
|
1254
|
-
"text-muted-foreground hover:text-foreground",
|
|
1255
|
-
(streaming || isUploading) && "opacity-40 pointer-events-none"
|
|
1254
|
+
"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",
|
|
1255
|
+
"ww-text-muted-foreground hover:ww-text-foreground",
|
|
1256
|
+
(streaming || isUploading) && "ww-opacity-40 ww-pointer-events-none"
|
|
1256
1257
|
),
|
|
1257
|
-
children: isUploading ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "h-3.5 w-3.5 animate-spin" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Paperclip, { className: "h-3.5 w-3.5" })
|
|
1258
|
+
children: isUploading ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "ww-h-3.5 ww-w-3.5 ww-animate-spin" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Paperclip, { className: "ww-h-3.5 ww-w-3.5" })
|
|
1258
1259
|
}
|
|
1259
1260
|
),
|
|
1260
1261
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1263,11 +1264,11 @@ function ChatInput({
|
|
|
1263
1264
|
onClick: onSend,
|
|
1264
1265
|
disabled: streaming || !hasText || voiceState === "recording" || voiceState === "transcribing",
|
|
1265
1266
|
className: cn3(
|
|
1266
|
-
"h-7 w-7 shrink-0 rounded-xl flex items-center justify-center transition-all duration-200",
|
|
1267
|
-
hasText || streaming ? "opacity-100 shadow-sm" : "opacity-30"
|
|
1267
|
+
"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",
|
|
1268
|
+
hasText || streaming ? "ww-opacity-100 ww-shadow-sm" : "ww-opacity-30"
|
|
1268
1269
|
),
|
|
1269
1270
|
style: hasText || streaming ? { backgroundColor: accentColor, color: getContrastColor(accentColor) } : { backgroundColor: "transparent", color: "currentColor" },
|
|
1270
|
-
children: streaming ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "h-3.5 w-3.5 animate-spin" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowUp, { className: "h-3.5 w-3.5" })
|
|
1271
|
+
children: streaming ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "ww-h-3.5 ww-w-3.5 ww-animate-spin" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowUp, { className: "ww-h-3.5 ww-w-3.5" })
|
|
1271
1272
|
}
|
|
1272
1273
|
)
|
|
1273
1274
|
] })
|
|
@@ -1285,7 +1286,7 @@ function ChatWidget({
|
|
|
1285
1286
|
suggestedMessages = [],
|
|
1286
1287
|
messagePlaceholder,
|
|
1287
1288
|
watermark = true,
|
|
1288
|
-
watermarkLogoUrl = "https
|
|
1289
|
+
watermarkLogoUrl = "https:ww-//app.wallavi.com/wallavi.svg",
|
|
1289
1290
|
footer,
|
|
1290
1291
|
theme,
|
|
1291
1292
|
showThinking = false,
|
|
@@ -1380,8 +1381,8 @@ function ChatWidget({
|
|
|
1380
1381
|
"div",
|
|
1381
1382
|
{
|
|
1382
1383
|
className: cn(
|
|
1383
|
-
"wallavi-widget flex flex-col overflow-hidden rounded-2xl border shadow-xl bg-background h-full relative",
|
|
1384
|
-
isDragOver && "ring-2 ring-inset ring-primary/60",
|
|
1384
|
+
"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",
|
|
1385
|
+
isDragOver && "ww-ring-2 ww-ring-inset ww-ring-primary/60",
|
|
1385
1386
|
className
|
|
1386
1387
|
),
|
|
1387
1388
|
style: cssVars,
|
|
@@ -1390,10 +1391,10 @@ function ChatWidget({
|
|
|
1390
1391
|
onDragLeave: handleDragLeave,
|
|
1391
1392
|
onDrop: handleDrop,
|
|
1392
1393
|
children: [
|
|
1393
|
-
isDragOver && enableAttachments && /* @__PURE__ */ jsxRuntime.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: [
|
|
1394
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.UploadCloud, { className: "h-8 w-8 text-primary/70" }),
|
|
1395
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium text-foreground/70", children: "Drop files to attach" }),
|
|
1396
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-muted-foreground", children: "CSV, TXT, PDF, JPG, PNG, WebP" })
|
|
1394
|
+
isDragOver && enableAttachments && /* @__PURE__ */ jsxRuntime.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: [
|
|
1395
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.UploadCloud, { className: "ww-h-8 ww-w-8 ww-text-primary/70" }),
|
|
1396
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ww-text-sm ww-font-medium ww-text-foreground/70", children: "Drop files to attach" }),
|
|
1397
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ww-text-xs ww-text-muted-foreground", children: "CSV, TXT, PDF, JPG, PNG, WebP" })
|
|
1397
1398
|
] }),
|
|
1398
1399
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1399
1400
|
ChatHeader,
|
|
@@ -1447,14 +1448,14 @@ function ChatWidget({
|
|
|
1447
1448
|
} : {}
|
|
1448
1449
|
}
|
|
1449
1450
|
),
|
|
1450
|
-
watermark && /* @__PURE__ */ jsxRuntime.jsxs("footer", { className: "shrink-0 flex items-center justify-center gap-1.5 bg-muted/50 py-1.5 border-t", children: [
|
|
1451
|
+
watermark && /* @__PURE__ */ jsxRuntime.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: [
|
|
1451
1452
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1452
1453
|
"a",
|
|
1453
1454
|
{
|
|
1454
|
-
href: "https
|
|
1455
|
+
href: "https:ww-//wallavi.com",
|
|
1455
1456
|
target: "_blank",
|
|
1456
1457
|
rel: "noopener noreferrer",
|
|
1457
|
-
className: "flex items-center gap-1 text-[10px] text-muted-foreground hover:text-foreground transition-colors",
|
|
1458
|
+
className: "ww-flex ww-items-center ww-gap-1 ww-text-[10px] ww-text-muted-foreground hover:ww-text-foreground ww-transition-colors",
|
|
1458
1459
|
children: [
|
|
1459
1460
|
/* @__PURE__ */ jsxRuntime.jsx("img", { src: watermarkLogoUrl, alt: "Wallavi", width: 12, height: 12 }),
|
|
1460
1461
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Powered by Wallavi" })
|
|
@@ -1462,8 +1463,8 @@ function ChatWidget({
|
|
|
1462
1463
|
}
|
|
1463
1464
|
),
|
|
1464
1465
|
footer && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1465
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground/40 text-[10px]", children: "\xB7" }),
|
|
1466
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-muted-foreground", children: footer })
|
|
1466
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ww-text-muted-foreground/40 ww-text-[10px]", children: "\xB7" }),
|
|
1467
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ww-text-[10px] ww-text-muted-foreground", children: footer })
|
|
1467
1468
|
] })
|
|
1468
1469
|
] })
|
|
1469
1470
|
]
|
|
@@ -1670,7 +1671,7 @@ function BubbleWidget({
|
|
|
1670
1671
|
onClose: handleClose,
|
|
1671
1672
|
onExpand: toggleExpanded,
|
|
1672
1673
|
expanded,
|
|
1673
|
-
className: cn("shadow-2xl h-full", panelClassName)
|
|
1674
|
+
className: cn("ww-shadow-2xl ww-h-full", panelClassName)
|
|
1674
1675
|
}
|
|
1675
1676
|
)
|
|
1676
1677
|
}
|