@wallavi/widget 1.6.6 → 1.6.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +167 -144
- package/dist/index.mjs +169 -146
- package/package.json +7 -3
package/dist/index.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) {
|
|
@@ -124,7 +125,7 @@ function useChat({
|
|
|
124
125
|
const [streaming, setStreaming] = react.useState(false);
|
|
125
126
|
const [threadId, setThreadId] = react.useState(() => {
|
|
126
127
|
if (persistKey && typeof window !== "undefined") {
|
|
127
|
-
const saved =
|
|
128
|
+
const saved = localStorage.getItem(`${persistKey}_tid`);
|
|
128
129
|
if (saved) return saved;
|
|
129
130
|
}
|
|
130
131
|
return crypto.randomUUID();
|
|
@@ -140,10 +141,31 @@ function useChat({
|
|
|
140
141
|
react.useEffect(() => {
|
|
141
142
|
if (!persistKey) return;
|
|
142
143
|
try {
|
|
143
|
-
|
|
144
|
+
localStorage.setItem(`${persistKey}_tid`, threadId);
|
|
144
145
|
} catch {
|
|
145
146
|
}
|
|
146
147
|
}, [persistKey, threadId]);
|
|
148
|
+
react.useEffect(() => {
|
|
149
|
+
if (!persistKey || typeof window === "undefined") return;
|
|
150
|
+
if (messages.length > 0) return;
|
|
151
|
+
void (async () => {
|
|
152
|
+
try {
|
|
153
|
+
const res = await fetch(
|
|
154
|
+
`${API_URL}/api/chat/messages?agentId=${encodeURIComponent(agentId)}&threadId=${encodeURIComponent(threadId)}`
|
|
155
|
+
);
|
|
156
|
+
if (!res.ok) return;
|
|
157
|
+
const { data } = await res.json();
|
|
158
|
+
if (!data?.length) return;
|
|
159
|
+
const restored = data.map((m) => ({
|
|
160
|
+
id: m.id,
|
|
161
|
+
role: m.role,
|
|
162
|
+
parts: m.parts.filter((p) => p?.type)
|
|
163
|
+
})).filter((m) => m.parts.length > 0);
|
|
164
|
+
if (restored.length > 0) setMessages(restored);
|
|
165
|
+
} catch {
|
|
166
|
+
}
|
|
167
|
+
})();
|
|
168
|
+
}, []);
|
|
147
169
|
const reset = react.useCallback(() => {
|
|
148
170
|
setMessages([]);
|
|
149
171
|
setInput("");
|
|
@@ -154,6 +176,7 @@ function useChat({
|
|
|
154
176
|
try {
|
|
155
177
|
sessionStorage.removeItem(`${persistKey}_msgs`);
|
|
156
178
|
sessionStorage.removeItem(`${persistKey}_tid`);
|
|
179
|
+
localStorage.removeItem(`${persistKey}_tid`);
|
|
157
180
|
} catch {
|
|
158
181
|
}
|
|
159
182
|
}
|
|
@@ -609,10 +632,10 @@ function ChatHeader({
|
|
|
609
632
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
610
633
|
"header",
|
|
611
634
|
{
|
|
612
|
-
className: "flex items-center justify-between px-4 py-3 shrink-0",
|
|
635
|
+
className: "ww-flex ww-items-center ww-justify-between ww-px-4 ww-py-3 ww-shrink-0",
|
|
613
636
|
style: { backgroundColor: headerBg, color: headerText, borderBottom: `1px solid ${headerText}18` },
|
|
614
637
|
children: [
|
|
615
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2.5 min-w-0", children: [
|
|
638
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ww-flex ww-items-center ww-gap-2.5 ww-min-w-0", children: [
|
|
616
639
|
/* @__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
640
|
AvatarFallback,
|
|
618
641
|
{
|
|
@@ -620,17 +643,17 @@ function ChatHeader({
|
|
|
620
643
|
children: title.slice(0, 2).toUpperCase()
|
|
621
644
|
}
|
|
622
645
|
) }),
|
|
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" })
|
|
646
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ww-min-w-0", children: [
|
|
647
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "ww-font-semibold ww-text-sm ww-truncate ww-leading-tight", children: title }),
|
|
648
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "ww-text-[10px] ww-opacity-70 ww-leading-tight", children: "AI Assistant" })
|
|
626
649
|
] })
|
|
627
650
|
] }),
|
|
628
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1", children: [
|
|
651
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ww-flex ww-items-center ww-gap-1", children: [
|
|
629
652
|
onExpand && /* @__PURE__ */ jsxRuntime.jsx(
|
|
630
653
|
"button",
|
|
631
654
|
{
|
|
632
655
|
onClick: onExpand,
|
|
633
|
-
className: "rounded-full p-1.5 transition-colors hover:bg-white/10",
|
|
656
|
+
className: "ww-rounded-full ww-p-1.5 ww-transition-colors hover:ww-bg-white/10",
|
|
634
657
|
title: expanded ? "Minimize" : "Expand",
|
|
635
658
|
children: expanded ? /* @__PURE__ */ jsxRuntime.jsx(MinimizeIcon, {}) : /* @__PURE__ */ jsxRuntime.jsx(ExpandIcon, {})
|
|
636
659
|
}
|
|
@@ -639,18 +662,18 @@ function ChatHeader({
|
|
|
639
662
|
"button",
|
|
640
663
|
{
|
|
641
664
|
onClick: onReset,
|
|
642
|
-
className: "rounded-full p-1.5 transition-colors hover:bg-white/10",
|
|
665
|
+
className: "ww-rounded-full ww-p-1.5 ww-transition-colors hover:ww-bg-white/10",
|
|
643
666
|
title: "New conversation",
|
|
644
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.RotateCcw, { className: "h-3.5 w-3.5", style: { color: headerText } })
|
|
667
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.RotateCcw, { className: "ww-h-3.5 ww-w-3.5", style: { color: headerText } })
|
|
645
668
|
}
|
|
646
669
|
),
|
|
647
670
|
onClose && /* @__PURE__ */ jsxRuntime.jsx(
|
|
648
671
|
"button",
|
|
649
672
|
{
|
|
650
673
|
onClick: onClose,
|
|
651
|
-
className: "rounded-full p-1.5 transition-colors hover:bg-white/10",
|
|
674
|
+
className: "ww-rounded-full ww-p-1.5 ww-transition-colors hover:ww-bg-white/10",
|
|
652
675
|
title: "Close",
|
|
653
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-3.5 w-3.5", style: { color: headerText } })
|
|
676
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "ww-h-3.5 ww-w-3.5", style: { color: headerText } })
|
|
654
677
|
}
|
|
655
678
|
)
|
|
656
679
|
] })
|
|
@@ -665,8 +688,8 @@ function formatBytes(bytes) {
|
|
|
665
688
|
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
666
689
|
}
|
|
667
690
|
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" });
|
|
691
|
+
if (a.status === "uploading") return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "ww-h-3 ww-w-3 ww-shrink-0 ww-animate-spin" });
|
|
692
|
+
if (a.status === "error") return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { className: "ww-h-3 ww-w-3 ww-shrink-0" });
|
|
670
693
|
const thumbSrc = a.payload?.url ?? a.payload?.base64;
|
|
671
694
|
if (a.mimeType.startsWith("image/") && thumbSrc) {
|
|
672
695
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -674,38 +697,38 @@ function ChipLeading({ a }) {
|
|
|
674
697
|
{
|
|
675
698
|
src: thumbSrc,
|
|
676
699
|
alt: a.name,
|
|
677
|
-
className: "h-6 w-6 rounded object-cover shrink-0 border border-border/40"
|
|
700
|
+
className: "ww-h-6 ww-w-6 ww-rounded ww-object-cover ww-shrink-0 ww-border ww-border-border/40"
|
|
678
701
|
}
|
|
679
702
|
);
|
|
680
703
|
}
|
|
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" });
|
|
704
|
+
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" }) });
|
|
705
|
+
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
706
|
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" });
|
|
707
|
+
return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.FileSpreadsheet, { className: "ww-h-3 ww-w-3 ww-shrink-0 ww-text-emerald-500" });
|
|
685
708
|
}
|
|
686
|
-
return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.FileText, { className: "h-3 w-3 shrink-0" });
|
|
709
|
+
return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.FileText, { className: "ww-h-3 ww-w-3 ww-shrink-0" });
|
|
687
710
|
}
|
|
688
711
|
function AttachmentChips({ attachments, onRemove }) {
|
|
689
712
|
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(
|
|
713
|
+
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
714
|
"div",
|
|
692
715
|
{
|
|
693
716
|
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"
|
|
717
|
+
"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]",
|
|
718
|
+
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
719
|
),
|
|
697
720
|
children: [
|
|
698
721
|
/* @__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) }),
|
|
722
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ww-truncate ww-leading-tight", children: a.status === "error" ? a.errorMessage ?? "Upload failed" : a.name }),
|
|
723
|
+
a.status === "ready" && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ww-shrink-0 ww-text-muted-foreground/50", children: formatBytes(a.sizeBytes) }),
|
|
701
724
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
702
725
|
"button",
|
|
703
726
|
{
|
|
704
727
|
type: "button",
|
|
705
728
|
onClick: () => onRemove(a.id),
|
|
706
|
-
className: "shrink-0 rounded-full p-0.5 hover:bg-foreground/10 transition-colors ml-0.5",
|
|
729
|
+
className: "ww-shrink-0 ww-rounded-full ww-p-0.5 hover:ww-bg-foreground/10 ww-transition-colors ww-ml-0.5",
|
|
707
730
|
title: "Remove",
|
|
708
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-2.5 w-2.5" })
|
|
731
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "ww-h-2.5 ww-w-2.5" })
|
|
709
732
|
}
|
|
710
733
|
)
|
|
711
734
|
]
|
|
@@ -721,8 +744,8 @@ function SentAttachments({ attachments, contrastColor }) {
|
|
|
721
744
|
const images = attachments.filter((a) => a.contentType === "image");
|
|
722
745
|
const files = attachments.filter((a) => a.contentType !== "image");
|
|
723
746
|
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) => {
|
|
747
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ww-flex ww-flex-col ww-gap-1.5 ww-w-full", children: [
|
|
748
|
+
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
749
|
const src = img.url ?? img.base64;
|
|
727
750
|
return src ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
728
751
|
"img",
|
|
@@ -730,9 +753,9 @@ function SentAttachments({ attachments, contrastColor }) {
|
|
|
730
753
|
src,
|
|
731
754
|
alt: img.name,
|
|
732
755
|
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"
|
|
756
|
+
"ww-rounded-xl ww-object-cover ww-border",
|
|
757
|
+
images.length === 1 ? "ww-w-full ww-max-h-48" : "ww-h-20 ww-w-20",
|
|
758
|
+
isDark ? "ww-border-white/20" : "ww-border-black/10"
|
|
736
759
|
)
|
|
737
760
|
},
|
|
738
761
|
img.id
|
|
@@ -740,24 +763,24 @@ function SentAttachments({ attachments, contrastColor }) {
|
|
|
740
763
|
"div",
|
|
741
764
|
{
|
|
742
765
|
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"
|
|
766
|
+
"ww-h-20 ww-w-20 ww-rounded-xl ww-flex ww-items-center ww-justify-center ww-text-[10px] ww-font-medium",
|
|
767
|
+
isDark ? "ww-bg-white/10 ww-text-white/60" : "ww-bg-black/10 ww-text-black/40"
|
|
745
768
|
),
|
|
746
769
|
children: "IMG"
|
|
747
770
|
},
|
|
748
771
|
img.id
|
|
749
772
|
);
|
|
750
773
|
}) }),
|
|
751
|
-
files.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1", children: files.map((f) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
774
|
+
files.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ww-flex ww-flex-wrap ww-gap-1", children: files.map((f) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
752
775
|
"div",
|
|
753
776
|
{
|
|
754
777
|
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"
|
|
778
|
+
"ww-flex ww-items-center ww-gap-1 ww-rounded-lg ww-px-2 ww-py-1 ww-text-[11px]",
|
|
779
|
+
isDark ? "ww-bg-white/15 ww-text-white/80" : "ww-bg-black/10 ww-text-black/60"
|
|
757
780
|
),
|
|
758
781
|
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) })
|
|
782
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ww-truncate ww-max-w-[120px]", children: f.name }),
|
|
783
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ww-opacity-60 ww-shrink-0", children: formatBytes(f.sizeBytes) })
|
|
761
784
|
]
|
|
762
785
|
},
|
|
763
786
|
f.id
|
|
@@ -765,50 +788,50 @@ function SentAttachments({ attachments, contrastColor }) {
|
|
|
765
788
|
] });
|
|
766
789
|
}
|
|
767
790
|
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" });
|
|
791
|
+
if (status === "executing") return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "ww-h-3 ww-w-3 ww-animate-spin ww-text-primary" });
|
|
792
|
+
if (status === "success") return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "ww-h-3 ww-w-3 ww-text-emerald-500" });
|
|
793
|
+
if (status === "failed") return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { className: "ww-h-3 ww-w-3 ww-text-destructive" });
|
|
794
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ww-h-3 ww-w-3 ww-rounded-full ww-border-2 ww-border-muted-foreground/30" });
|
|
772
795
|
}
|
|
773
796
|
function PlanCard({ part }) {
|
|
774
797
|
const successCount = part.steps.filter((s) => s.status === "success").length;
|
|
775
798
|
const hasExecuting = part.steps.some((s) => s.status === "executing");
|
|
776
799
|
const allDone = successCount === part.steps.length && part.steps.length > 0;
|
|
777
800
|
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: [
|
|
801
|
+
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: [
|
|
802
|
+
/* @__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: [
|
|
803
|
+
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" }),
|
|
804
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ww-font-medium ww-text-foreground/80 ww-truncate ww-flex-1 ww-leading-snug", children: part.goal }),
|
|
805
|
+
part.steps.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ww-shrink-0 tabular-nums ww-text-muted-foreground", children: [
|
|
783
806
|
successCount,
|
|
784
807
|
"/",
|
|
785
808
|
part.steps.length
|
|
786
809
|
] })
|
|
787
810
|
] }),
|
|
788
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "divide-y divide-border/40", children: part.steps.map((step) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
811
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "ww-divide-y ww-divide-border/40", children: part.steps.map((step) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
789
812
|
"div",
|
|
790
813
|
{
|
|
791
814
|
className: cn(
|
|
792
|
-
"flex items-start gap-2.5 px-3 py-2 transition-colors duration-200",
|
|
793
|
-
step.status === "executing" && "bg-primary/5"
|
|
815
|
+
"ww-flex ww-items-start ww-gap-2.5 ww-px-3 ww-py-2 ww-transition-colors ww-duration-200",
|
|
816
|
+
step.status === "executing" && "ww-bg-primary/5"
|
|
794
817
|
),
|
|
795
818
|
children: [
|
|
796
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-0.5 shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(PlanStepIcon, { status: step.status }) }),
|
|
819
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "ww-mt-0.5 ww-shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(PlanStepIcon, { status: step.status }) }),
|
|
797
820
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
798
821
|
"span",
|
|
799
822
|
{
|
|
800
823
|
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"
|
|
824
|
+
"ww-leading-relaxed",
|
|
825
|
+
step.status === "pending" && "ww-text-muted-foreground",
|
|
826
|
+
step.status === "executing" && "ww-text-foreground ww-font-medium",
|
|
827
|
+
step.status === "success" && "ww-text-foreground/60 ww-line-through ww-decoration-foreground/20",
|
|
828
|
+
step.status === "failed" && "ww-text-destructive"
|
|
806
829
|
),
|
|
807
830
|
children: [
|
|
808
831
|
step.index + 1,
|
|
809
832
|
". ",
|
|
810
833
|
step.description,
|
|
811
|
-
step.error && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "block text-destructive/70 text-[10px] mt-0.5 no-underline", children: step.error })
|
|
834
|
+
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
835
|
]
|
|
813
836
|
}
|
|
814
837
|
)
|
|
@@ -829,7 +852,7 @@ function ThinkingDots() {
|
|
|
829
852
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
830
853
|
"div",
|
|
831
854
|
{
|
|
832
|
-
className: "bg-muted",
|
|
855
|
+
className: "ww-bg-muted",
|
|
833
856
|
style: {
|
|
834
857
|
display: "inline-flex",
|
|
835
858
|
alignItems: "center",
|
|
@@ -856,33 +879,33 @@ function ThinkingDots() {
|
|
|
856
879
|
] });
|
|
857
880
|
}
|
|
858
881
|
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" }),
|
|
882
|
+
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: [
|
|
883
|
+
part.status === "running" && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "ww-h-3 ww-w-3 ww-animate-spin" }),
|
|
884
|
+
part.status === "done" && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "ww-h-3 ww-w-3 ww-text-emerald-500" }),
|
|
885
|
+
part.status === "error" && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { className: "ww-h-3 ww-w-3 ww-text-destructive" }),
|
|
863
886
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
864
887
|
part.status === "running" ? "Calling" : part.status === "done" ? "Called" : "Failed",
|
|
865
888
|
" ",
|
|
866
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium text-foreground", children: formatToolName(part.toolName) })
|
|
889
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ww-font-medium ww-text-foreground", children: formatToolName(part.toolName) })
|
|
867
890
|
] })
|
|
868
891
|
] });
|
|
869
892
|
}
|
|
870
893
|
function ReasoningBlock({ text }) {
|
|
871
894
|
const [open, setOpen] = react.useState(false);
|
|
872
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-1", children: [
|
|
895
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ww-mb-1", children: [
|
|
873
896
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
874
897
|
"button",
|
|
875
898
|
{
|
|
876
899
|
onClick: () => setOpen((v) => !v),
|
|
877
|
-
className: "flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors",
|
|
900
|
+
className: "ww-flex ww-items-center ww-gap-1 ww-text-xs ww-text-muted-foreground hover:ww-text-foreground ww-transition-colors",
|
|
878
901
|
children: [
|
|
879
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Zap, { className: "h-3 w-3" }),
|
|
902
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Zap, { className: "ww-h-3 ww-w-3" }),
|
|
880
903
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Reasoning" }),
|
|
881
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: cn("h-3 w-3 transition-transform", open && "rotate-180") })
|
|
904
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: cn("ww-h-3 ww-w-3 ww-transition-transform", open && "ww-rotate-180") })
|
|
882
905
|
]
|
|
883
906
|
}
|
|
884
907
|
),
|
|
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 })
|
|
908
|
+
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
909
|
] });
|
|
887
910
|
}
|
|
888
911
|
function PickerSelector({
|
|
@@ -903,12 +926,12 @@ function PickerSelector({
|
|
|
903
926
|
if (!disabled && !isConsumed) onSelect(part.pickerId, part.paramName, opt.value, opt.label);
|
|
904
927
|
};
|
|
905
928
|
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"
|
|
929
|
+
"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",
|
|
930
|
+
"ww-border-border/50"
|
|
908
931
|
), 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" }),
|
|
932
|
+
/* @__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 }),
|
|
933
|
+
mode === "list" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ww-relative", children: [
|
|
934
|
+
/* @__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
935
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
913
936
|
"input",
|
|
914
937
|
{
|
|
@@ -917,11 +940,11 @@ function PickerSelector({
|
|
|
917
940
|
onChange: (e) => setQuery(e.target.value),
|
|
918
941
|
placeholder: "Search\u2026",
|
|
919
942
|
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"
|
|
943
|
+
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
944
|
}
|
|
922
945
|
)
|
|
923
946
|
] }),
|
|
924
|
-
mode === "pills" && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1.5", children: part.options.map((opt) => {
|
|
947
|
+
mode === "pills" && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ww-flex ww-flex-wrap ww-gap-1.5", children: part.options.map((opt) => {
|
|
925
948
|
const sel = part.selectedValue === opt.value;
|
|
926
949
|
const faded = isConsumed && !sel;
|
|
927
950
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -930,19 +953,19 @@ function PickerSelector({
|
|
|
930
953
|
disabled: disabled || isConsumed,
|
|
931
954
|
onClick: () => handleClick(opt),
|
|
932
955
|
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"
|
|
956
|
+
"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",
|
|
957
|
+
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",
|
|
958
|
+
disabled && !isConsumed && "ww-opacity-60 ww-pointer-events-none"
|
|
936
959
|
),
|
|
937
960
|
children: [
|
|
938
|
-
sel && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "h-3 w-3 shrink-0" }),
|
|
961
|
+
sel && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "ww-h-3 ww-w-3 ww-shrink-0" }),
|
|
939
962
|
opt.label
|
|
940
963
|
]
|
|
941
964
|
},
|
|
942
965
|
opt.value
|
|
943
966
|
);
|
|
944
967
|
}) }),
|
|
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) => {
|
|
968
|
+
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
969
|
const sel = part.selectedValue === opt.value;
|
|
947
970
|
const faded = isConsumed && !sel;
|
|
948
971
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -951,20 +974,20 @@ function PickerSelector({
|
|
|
951
974
|
disabled: disabled || isConsumed,
|
|
952
975
|
onClick: () => handleClick(opt),
|
|
953
976
|
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"
|
|
977
|
+
"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",
|
|
978
|
+
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",
|
|
979
|
+
disabled && !isConsumed && "ww-opacity-60 ww-pointer-events-none"
|
|
957
980
|
),
|
|
958
981
|
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 })
|
|
982
|
+
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" }),
|
|
983
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ww-truncate", children: opt.label })
|
|
961
984
|
]
|
|
962
985
|
},
|
|
963
986
|
opt.value
|
|
964
987
|
);
|
|
965
988
|
}) }),
|
|
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" }),
|
|
989
|
+
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: [
|
|
990
|
+
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
991
|
filtered.map((opt) => {
|
|
969
992
|
const sel = part.selectedValue === opt.value;
|
|
970
993
|
const faded = isConsumed && !sel;
|
|
@@ -974,16 +997,16 @@ function PickerSelector({
|
|
|
974
997
|
disabled: disabled || isConsumed,
|
|
975
998
|
onClick: () => handleClick(opt),
|
|
976
999
|
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"
|
|
1000
|
+
"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",
|
|
1001
|
+
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",
|
|
1002
|
+
disabled && !isConsumed && "ww-opacity-60 ww-pointer-events-none"
|
|
980
1003
|
),
|
|
981
1004
|
children: [
|
|
982
1005
|
/* @__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 })
|
|
1006
|
+
"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]",
|
|
1007
|
+
sel ? "ww-border-background ww-bg-background/20" : "ww-border-border/50"
|
|
1008
|
+
), children: sel && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "ww-h-2.5 ww-w-2.5" }) }),
|
|
1009
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ww-truncate", children: opt.label })
|
|
987
1010
|
]
|
|
988
1011
|
},
|
|
989
1012
|
opt.value
|
|
@@ -1009,10 +1032,10 @@ function MessageBubble({
|
|
|
1009
1032
|
const planParts = message.parts.filter((p) => p.type === "plan");
|
|
1010
1033
|
const contrastColor = getContrastColor(userColor);
|
|
1011
1034
|
if (isUser) {
|
|
1012
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-end", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1035
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ww-flex ww-justify-end", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1013
1036
|
"div",
|
|
1014
1037
|
{
|
|
1015
|
-
className: "max-w-[78%] rounded-2xl rounded-tr-sm px-4 py-2.5 text-sm leading-relaxed flex flex-col gap-2",
|
|
1038
|
+
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
1039
|
style: { backgroundColor: userColor, color: contrastColor },
|
|
1017
1040
|
children: [
|
|
1018
1041
|
message.attachments && message.attachments.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(SentAttachments, { attachments: message.attachments, contrastColor }),
|
|
@@ -1023,9 +1046,9 @@ function MessageBubble({
|
|
|
1023
1046
|
}
|
|
1024
1047
|
const visibleToolParts = showThinking ? toolParts : [];
|
|
1025
1048
|
const isEmpty = !textPart?.text && visibleToolParts.length === 0 && pickerParts.length === 0;
|
|
1026
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2.5 items-start", children: [
|
|
1049
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ww-flex ww-gap-2.5 ww-items-start", children: [
|
|
1027
1050
|
/* @__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: [
|
|
1051
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ww-flex ww-flex-col ww-gap-1.5 ww-min-w-0 ww-max-w-[82%]", children: [
|
|
1029
1052
|
showThinking && reasoningPart && /* @__PURE__ */ jsxRuntime.jsx(ReasoningBlock, { text: reasoningPart.text }),
|
|
1030
1053
|
planParts.map((p) => /* @__PURE__ */ jsxRuntime.jsx(PlanCard, { part: p }, p.planId)),
|
|
1031
1054
|
visibleToolParts.map((t) => /* @__PURE__ */ jsxRuntime.jsx(ToolCallBadge, { part: t }, t.toolCallId)),
|
|
@@ -1039,7 +1062,7 @@ function MessageBubble({
|
|
|
1039
1062
|
},
|
|
1040
1063
|
p.pickerId
|
|
1041
1064
|
)),
|
|
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: [
|
|
1065
|
+
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
1066
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1044
1067
|
ReactMarkdown,
|
|
1045
1068
|
{
|
|
@@ -1066,14 +1089,14 @@ function MessageBubble({
|
|
|
1066
1089
|
children: textPart.text
|
|
1067
1090
|
}
|
|
1068
1091
|
),
|
|
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" })
|
|
1092
|
+
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
1093
|
] }) : null
|
|
1071
1094
|
] })
|
|
1072
1095
|
] });
|
|
1073
1096
|
}
|
|
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 });
|
|
1097
|
+
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
1098
|
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 });
|
|
1099
|
+
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
1100
|
function ChatMessages({
|
|
1078
1101
|
messages,
|
|
1079
1102
|
streaming,
|
|
@@ -1091,13 +1114,13 @@ function ChatMessages({
|
|
|
1091
1114
|
react.useEffect(() => {
|
|
1092
1115
|
bottomRef.current?.scrollIntoView({ behavior: "smooth" });
|
|
1093
1116
|
}, [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?" })
|
|
1117
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ww-flex-1 ww-flex ww-flex-col ww-overflow-y-auto ww-overscroll-contain", children: [
|
|
1118
|
+
showGreeting && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ww-flex ww-gap-2.5 ww-items-start ww-px-4 ww-pt-5", children: [
|
|
1119
|
+
/* @__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() }) }),
|
|
1120
|
+
/* @__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
1121
|
] }),
|
|
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(
|
|
1122
|
+
showGreeting && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ww-flex-1" }),
|
|
1123
|
+
/* @__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
1124
|
MessageBubble,
|
|
1102
1125
|
{
|
|
1103
1126
|
message: msg,
|
|
@@ -1110,12 +1133,12 @@ function ChatMessages({
|
|
|
1110
1133
|
},
|
|
1111
1134
|
msg.id
|
|
1112
1135
|
)) }),
|
|
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(
|
|
1136
|
+
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
1137
|
"button",
|
|
1115
1138
|
{
|
|
1116
1139
|
onClick: () => onSuggest(msg),
|
|
1117
1140
|
disabled: streaming,
|
|
1118
|
-
className: "text-xs border rounded-full px-3 py-1.5 hover:bg-muted transition-colors text-left disabled:opacity-50",
|
|
1141
|
+
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
1142
|
children: msg
|
|
1120
1143
|
},
|
|
1121
1144
|
i
|
|
@@ -1162,21 +1185,21 @@ function ChatInput({
|
|
|
1162
1185
|
}
|
|
1163
1186
|
};
|
|
1164
1187
|
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: [
|
|
1188
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ww-shrink-0 ww-border-t ww-bg-background ww-px-3 ww-py-2.5", children: [
|
|
1166
1189
|
canRegenerate && onRegenerate && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1167
1190
|
"button",
|
|
1168
1191
|
{
|
|
1169
1192
|
onClick: onRegenerate,
|
|
1170
1193
|
disabled: streaming,
|
|
1171
|
-
className: "flex items-center gap-1 text-[11px] text-muted-foreground hover:text-foreground transition-colors mb-2 disabled:opacity-40",
|
|
1194
|
+
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
1195
|
children: [
|
|
1173
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.RotateCcw, { className: "h-3 w-3" }),
|
|
1196
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.RotateCcw, { className: "ww-h-3 ww-w-3" }),
|
|
1174
1197
|
"Regenerate response"
|
|
1175
1198
|
]
|
|
1176
1199
|
}
|
|
1177
1200
|
),
|
|
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) }) }),
|
|
1201
|
+
/* @__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: [
|
|
1202
|
+
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
1203
|
hasAttachments && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1181
1204
|
"input",
|
|
1182
1205
|
{
|
|
@@ -1184,7 +1207,7 @@ function ChatInput({
|
|
|
1184
1207
|
type: "file",
|
|
1185
1208
|
multiple: true,
|
|
1186
1209
|
accept: ".csv,.txt,.tsv,.pdf,text/plain,text/csv,application/pdf,image/jpeg,image/png,image/webp,image/gif",
|
|
1187
|
-
className: "hidden",
|
|
1210
|
+
className: "ww-hidden",
|
|
1188
1211
|
onChange: (e) => {
|
|
1189
1212
|
if (e.target.files?.length) {
|
|
1190
1213
|
onAttach(e.target.files);
|
|
@@ -1193,14 +1216,14 @@ function ChatInput({
|
|
|
1193
1216
|
}
|
|
1194
1217
|
}
|
|
1195
1218
|
),
|
|
1196
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-end gap-2 px-3 py-2", children: [
|
|
1219
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ww-flex ww-items-end ww-gap-2 ww-px-3 ww-py-2", children: [
|
|
1197
1220
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1198
1221
|
"textarea",
|
|
1199
1222
|
{
|
|
1200
1223
|
id: "wallavi-chat-input",
|
|
1201
1224
|
ref: textareaRef,
|
|
1202
1225
|
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",
|
|
1226
|
+
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
1227
|
placeholder: placeholder ?? "Send a message\u2026",
|
|
1205
1228
|
value: input,
|
|
1206
1229
|
onChange: (e) => {
|
|
@@ -1233,13 +1256,13 @@ function ChatInput({
|
|
|
1233
1256
|
disabled: streaming || voiceState === "transcribing",
|
|
1234
1257
|
title: voiceState === "recording" ? "Stop recording" : "Record voice message",
|
|
1235
1258
|
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"
|
|
1259
|
+
"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",
|
|
1260
|
+
voiceState === "recording" && "ww-animate-pulse",
|
|
1261
|
+
voiceState === "error" ? "ww-text-red-500 ww-opacity-80" : "ww-text-muted-foreground hover:ww-text-foreground",
|
|
1262
|
+
(streaming || voiceState === "transcribing") && "ww-opacity-40 ww-pointer-events-none"
|
|
1240
1263
|
),
|
|
1241
1264
|
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" })
|
|
1265
|
+
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
1266
|
}
|
|
1244
1267
|
),
|
|
1245
1268
|
hasAttachments && /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1250,11 +1273,11 @@ function ChatInput({
|
|
|
1250
1273
|
disabled: streaming || isUploading,
|
|
1251
1274
|
title: "Attach file (CSV, image\u2026)",
|
|
1252
1275
|
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"
|
|
1276
|
+
"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",
|
|
1277
|
+
"ww-text-muted-foreground hover:ww-text-foreground",
|
|
1278
|
+
(streaming || isUploading) && "ww-opacity-40 ww-pointer-events-none"
|
|
1256
1279
|
),
|
|
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" })
|
|
1280
|
+
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
1281
|
}
|
|
1259
1282
|
),
|
|
1260
1283
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1263,11 +1286,11 @@ function ChatInput({
|
|
|
1263
1286
|
onClick: onSend,
|
|
1264
1287
|
disabled: streaming || !hasText || voiceState === "recording" || voiceState === "transcribing",
|
|
1265
1288
|
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"
|
|
1289
|
+
"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",
|
|
1290
|
+
hasText || streaming ? "ww-opacity-100 ww-shadow-sm" : "ww-opacity-30"
|
|
1268
1291
|
),
|
|
1269
1292
|
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" })
|
|
1293
|
+
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
1294
|
}
|
|
1272
1295
|
)
|
|
1273
1296
|
] })
|
|
@@ -1380,8 +1403,8 @@ function ChatWidget({
|
|
|
1380
1403
|
"div",
|
|
1381
1404
|
{
|
|
1382
1405
|
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",
|
|
1406
|
+
"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",
|
|
1407
|
+
isDragOver && "ww-ring-2 ww-ring-inset ww-ring-primary/60",
|
|
1385
1408
|
className
|
|
1386
1409
|
),
|
|
1387
1410
|
style: cssVars,
|
|
@@ -1390,10 +1413,10 @@ function ChatWidget({
|
|
|
1390
1413
|
onDragLeave: handleDragLeave,
|
|
1391
1414
|
onDrop: handleDrop,
|
|
1392
1415
|
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" })
|
|
1416
|
+
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: [
|
|
1417
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.UploadCloud, { className: "ww-h-8 ww-w-8 ww-text-primary/70" }),
|
|
1418
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ww-text-sm ww-font-medium ww-text-foreground/70", children: "Drop files to attach" }),
|
|
1419
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ww-text-xs ww-text-muted-foreground", children: "CSV, TXT, PDF, JPG, PNG, WebP" })
|
|
1397
1420
|
] }),
|
|
1398
1421
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1399
1422
|
ChatHeader,
|
|
@@ -1447,14 +1470,14 @@ function ChatWidget({
|
|
|
1447
1470
|
} : {}
|
|
1448
1471
|
}
|
|
1449
1472
|
),
|
|
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: [
|
|
1473
|
+
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
1474
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1452
1475
|
"a",
|
|
1453
1476
|
{
|
|
1454
1477
|
href: "https://wallavi.com",
|
|
1455
1478
|
target: "_blank",
|
|
1456
1479
|
rel: "noopener noreferrer",
|
|
1457
|
-
className: "flex items-center gap-1 text-[10px] text-muted-foreground hover:text-foreground transition-colors",
|
|
1480
|
+
className: "ww-flex ww-items-center ww-gap-1 ww-text-[10px] ww-text-muted-foreground hover:ww-text-foreground ww-transition-colors",
|
|
1458
1481
|
children: [
|
|
1459
1482
|
/* @__PURE__ */ jsxRuntime.jsx("img", { src: watermarkLogoUrl, alt: "Wallavi", width: 12, height: 12 }),
|
|
1460
1483
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Powered by Wallavi" })
|
|
@@ -1462,8 +1485,8 @@ function ChatWidget({
|
|
|
1462
1485
|
}
|
|
1463
1486
|
),
|
|
1464
1487
|
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 })
|
|
1488
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ww-text-muted-foreground/40 ww-text-[10px]", children: "\xB7" }),
|
|
1489
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ww-text-[10px] ww-text-muted-foreground", children: footer })
|
|
1467
1490
|
] })
|
|
1468
1491
|
] })
|
|
1469
1492
|
]
|
|
@@ -1670,7 +1693,7 @@ function BubbleWidget({
|
|
|
1670
1693
|
onClose: handleClose,
|
|
1671
1694
|
onExpand: toggleExpanded,
|
|
1672
1695
|
expanded,
|
|
1673
|
-
className: cn("shadow-2xl h-full", panelClassName)
|
|
1696
|
+
className: cn("ww-shadow-2xl ww-h-full", panelClassName)
|
|
1674
1697
|
}
|
|
1675
1698
|
)
|
|
1676
1699
|
}
|