@wallavi/widget 1.12.3 → 1.12.5
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.d.mts +4 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.js +254 -16
- package/dist/index.mjs +254 -16
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -315,6 +315,9 @@ interface CommandPanelProps {
|
|
|
315
315
|
mode: "sidebar" | "inline";
|
|
316
316
|
pageUrl?: string;
|
|
317
317
|
pageTitle?: string;
|
|
318
|
+
pageParams?: Record<string, string>;
|
|
319
|
+
pageVars?: Record<string, unknown>;
|
|
320
|
+
metadata?: Record<string, unknown>;
|
|
318
321
|
clientActions?: any[];
|
|
319
322
|
ragTopics?: RagTopicInfo[];
|
|
320
323
|
ragDocuments?: RagDocumentInfo[];
|
|
@@ -327,7 +330,7 @@ interface CommandPanelProps {
|
|
|
327
330
|
footer?: string | null;
|
|
328
331
|
locale?: "en" | "es" | null;
|
|
329
332
|
}
|
|
330
|
-
declare function CommandPanel({ mode, pageUrl, pageTitle, clientActions, ragTopics, ragDocuments, onSend, onExecuteAction, accentColor, watermark, watermarkLogoUrl, footer, locale, }: CommandPanelProps): react_jsx_runtime.JSX.Element | null;
|
|
333
|
+
declare function CommandPanel({ mode, pageUrl, pageTitle, pageParams, pageVars, metadata, clientActions, ragTopics, ragDocuments, onSend, onExecuteAction, accentColor, watermark, watermarkLogoUrl, footer, locale, }: CommandPanelProps): react_jsx_runtime.JSX.Element | null;
|
|
331
334
|
|
|
332
335
|
interface UseChatOptions {
|
|
333
336
|
agentId: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -315,6 +315,9 @@ interface CommandPanelProps {
|
|
|
315
315
|
mode: "sidebar" | "inline";
|
|
316
316
|
pageUrl?: string;
|
|
317
317
|
pageTitle?: string;
|
|
318
|
+
pageParams?: Record<string, string>;
|
|
319
|
+
pageVars?: Record<string, unknown>;
|
|
320
|
+
metadata?: Record<string, unknown>;
|
|
318
321
|
clientActions?: any[];
|
|
319
322
|
ragTopics?: RagTopicInfo[];
|
|
320
323
|
ragDocuments?: RagDocumentInfo[];
|
|
@@ -327,7 +330,7 @@ interface CommandPanelProps {
|
|
|
327
330
|
footer?: string | null;
|
|
328
331
|
locale?: "en" | "es" | null;
|
|
329
332
|
}
|
|
330
|
-
declare function CommandPanel({ mode, pageUrl, pageTitle, clientActions, ragTopics, ragDocuments, onSend, onExecuteAction, accentColor, watermark, watermarkLogoUrl, footer, locale, }: CommandPanelProps): react_jsx_runtime.JSX.Element | null;
|
|
333
|
+
declare function CommandPanel({ mode, pageUrl, pageTitle, pageParams, pageVars, metadata, clientActions, ragTopics, ragDocuments, onSend, onExecuteAction, accentColor, watermark, watermarkLogoUrl, footer, locale, }: CommandPanelProps): react_jsx_runtime.JSX.Element | null;
|
|
331
334
|
|
|
332
335
|
interface UseChatOptions {
|
|
333
336
|
agentId: string;
|
package/dist/index.js
CHANGED
|
@@ -58,7 +58,7 @@ function styleInject(css, { insertAt } = {}) {
|
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
// src/styles.css
|
|
61
|
-
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-inset-4 {\n inset: 1rem;\n}\n.ww-inset-8 {\n inset: 2rem;\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-z-\\[100\\] {\n z-index: 100;\n}\n.ww-mx-0\\.5 {\n margin-left: 0.125rem;\n margin-right: 0.125rem;\n}\n.ww-mb-1 {\n margin-bottom: 0.25rem;\n}\n.ww-mb-12 {\n margin-bottom: 3rem;\n}\n.ww-mb-2 {\n margin-bottom: 0.5rem;\n}\n.ww-mb-2\\.5 {\n margin-bottom: 0.625rem;\n}\n.ww-ml-0\\.5 {\n margin-left: 0.125rem;\n}\n.ww-ml-1 {\n margin-left: 0.25rem;\n}\n.ww-mt-0\\.5 {\n margin-top: 0.125rem;\n}\n.ww-mt-1 {\n margin-top: 0.25rem;\n}\n.ww-mt-1\\.5 {\n margin-top: 0.375rem;\n}\n.ww-line-clamp-1 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n}\n.ww-line-clamp-2 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\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-1\\.5 {\n height: 0.375rem;\n}\n.ww-h-10 {\n height: 2.5rem;\n}\n.ww-h-16 {\n height: 4rem;\n}\n.ww-h-2 {\n height: 0.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-40 {\n height: 10rem;\n}\n.ww-h-48 {\n height: 12rem;\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-min-h-\\[22px\\] {\n min-height: 22px;\n}\n.ww-w-0\\.5 {\n width: 0.125rem;\n}\n.ww-w-1\\.5 {\n width: 0.375rem;\n}\n.ww-w-10 {\n width: 2.5rem;\n}\n.ww-w-16 {\n width: 4rem;\n}\n.ww-w-2 {\n width: 0.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-48 {\n width: 12rem;\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-\\[300px\\] {\n width: 300px;\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-\\[170px\\] {\n max-width: 170px;\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-translate-x-\\[-4px\\] {\n --tw-translate-x: -4px;\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.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.ww-scale-100 {\n --tw-scale-x: 1;\n --tw-scale-y: 1;\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.ww-scale-105 {\n --tw-scale-x: 1.05;\n --tw-scale-y: 1.05;\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.ww-scale-110 {\n --tw-scale-x: 1.1;\n --tw-scale-y: 1.1;\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.ww-scale-90 {\n --tw-scale-x: .9;\n --tw-scale-y: .9;\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-ping {\n 75%, 100% {\n transform: scale(2);\n opacity: 0;\n }\n}\n.ww-animate-ping {\n animation: ww-ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;\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-touch-none {\n touch-action: none;\n}\n.ww-select-none {\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n.ww-select-all {\n -webkit-user-select: all;\n -moz-user-select: all;\n user-select: all;\n}\n.ww-grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.ww-flex-row {\n flex-direction: row;\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-3\\.5 {\n gap: 0.875rem;\n}\n.ww-gap-4 {\n gap: 1rem;\n}\n.ww-gap-5 {\n gap: 1.25rem;\n}\n.ww-gap-6 {\n gap: 1.5rem;\n}\n.ww-gap-8 {\n gap: 2rem;\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-overscroll-none {\n overscroll-behavior: none;\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-full {\n border-radius: 9999px !important;\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-md {\n border-radius: calc(var(--radius) - 2px);\n}\n.ww-rounded-xl {\n border-radius: 0.75rem;\n}\n.ww-rounded-br-2xl {\n border-bottom-right-radius: 1rem;\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 {\n border-left-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\\/80 {\n border-color: hsl(var(--border) / 0.8);\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-primary\\/10 {\n border-color: hsl(var(--primary) / 0.1);\n}\n.ww-border-primary\\/20 {\n border-color: hsl(var(--primary) / 0.2);\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-transparent {\n border-color: transparent;\n}\n.ww-border-white\\/20 {\n border-color: rgb(255 255 255 / 0.2);\n}\n.ww-border-white\\/30 {\n border-color: rgb(255 255 255 / 0.3);\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\\/90 {\n background-color: hsl(var(--background) / 0.9);\n}\n.ww-bg-background\\/95 {\n background-color: hsl(var(--background) / 0.95);\n}\n.ww-bg-black\\/10 {\n background-color: rgb(0 0 0 / 0.1);\n}\n.ww-bg-emerald-400 {\n --tw-bg-opacity: 1;\n background-color: rgb(52 211 153 / var(--tw-bg-opacity, 1));\n}\n.ww-bg-emerald-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(16 185 129 / var(--tw-bg-opacity, 1));\n}\n.ww-bg-emerald-500\\/10 {\n background-color: rgb(16 185 129 / 0.1);\n}\n.ww-bg-emerald-500\\/20 {\n background-color: rgb(16 185 129 / 0.2);\n}\n.ww-bg-foreground\\/20 {\n background-color: hsl(var(--foreground) / 0.2);\n}\n.ww-bg-foreground\\/5 {\n background-color: hsl(var(--foreground) / 0.05);\n}\n.ww-bg-foreground\\/60 {\n background-color: hsl(var(--foreground) / 0.6);\n}\n.ww-bg-indigo-500\\/10 {\n background-color: rgb(99 102 241 / 0.1);\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\\/10 {\n background-color: hsl(var(--muted) / 0.1);\n}\n.ww-bg-muted\\/30 {\n background-color: hsl(var(--muted) / 0.3);\n}\n.ww-bg-muted\\/40 {\n background-color: hsl(var(--muted) / 0.4);\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\\/10 {\n background-color: hsl(var(--primary) / 0.1);\n}\n.ww-bg-primary\\/5 {\n background-color: hsl(var(--primary) / 0.05);\n}\n.ww-bg-purple-500\\/20 {\n background-color: rgb(168 85 247 / 0.2);\n}\n.ww-bg-purple-500\\/30 {\n background-color: rgb(168 85 247 / 0.3);\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 {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\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-bg-white\\/20 {\n background-color: rgb(255 255 255 / 0.2);\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-p-3\\.5 {\n padding: 0.875rem;\n}\n.ww-px-1 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n.ww-px-1\\.5 {\n padding-left: 0.375rem;\n padding-right: 0.375rem;\n}\n.ww-px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\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-2 {\n padding-bottom: 0.5rem;\n}\n.ww-pb-3 {\n padding-bottom: 0.75rem;\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-0\\.5 {\n padding-top: 0.125rem;\n}\n.ww-pt-2 {\n padding-top: 0.5rem;\n}\n.ww-pt-2\\.5 {\n padding-top: 0.625rem;\n}\n.ww-pt-4 {\n padding-top: 1rem;\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-baseline {\n vertical-align: baseline;\n}\n.ww-align-middle {\n vertical-align: middle;\n}\n.ww-font-mono {\n font-family:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n "Liberation Mono",\n "Courier New",\n monospace;\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-\\[13px\\] {\n font-size: 13px;\n}\n.ww-text-\\[8px\\] {\n font-size: 8px;\n}\n.ww-text-\\[9px\\] {\n font-size: 9px;\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-bold {\n font-weight: 700;\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-normal {\n line-height: 1.5;\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-\\[0\\.06em\\] {\n letter-spacing: 0.06em;\n}\n.ww-tracking-\\[0\\.12em\\] {\n letter-spacing: 0.12em;\n}\n.ww-tracking-wide {\n letter-spacing: 0.025em;\n}\n.ww-tracking-wider {\n letter-spacing: 0.05em;\n}\n.ww-tracking-widest {\n letter-spacing: 0.1em;\n}\n.ww-text-amber-500 {\n --tw-text-opacity: 1;\n color: rgb(245 158 11 / var(--tw-text-opacity, 1));\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-indigo-500 {\n --tw-text-opacity: 1;\n color: rgb(99 102 241 / var(--tw-text-opacity, 1));\n}\n.ww-text-inherit {\n color: inherit;\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\\/45 {\n color: hsl(var(--muted-foreground) / 0.45);\n}\n.ww-text-muted-foreground\\/50 {\n color: hsl(var(--muted-foreground) / 0.5);\n}\n.ww-text-muted-foreground\\/60 {\n color: hsl(var(--muted-foreground) / 0.6);\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\\/60 {\n color: hsl(var(--primary) / 0.6);\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 {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / 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-underline {\n text-decoration-line: underline;\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-0 {\n opacity: 0;\n}\n.ww-opacity-100 {\n opacity: 1;\n}\n.ww-opacity-25 {\n opacity: 0.25;\n}\n.ww-opacity-30 {\n opacity: 0.3;\n}\n.ww-opacity-40 {\n opacity: 0.4;\n}\n.ww-opacity-55 {\n opacity: 0.55;\n}\n.ww-opacity-60 {\n opacity: 0.6;\n}\n.ww-opacity-70 {\n opacity: 0.7;\n}\n.ww-opacity-75 {\n opacity: 0.75;\n}\n.ww-opacity-80 {\n opacity: 0.8;\n}\n.ww-opacity-90 {\n opacity: 0.9;\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-\\[0_-4px_20px_rgba\\(0\\,0\\,0\\,0\\.02\\)\\] {\n --tw-shadow: 0 -4px 20px rgba(0,0,0,0.02);\n --tw-shadow-colored: 0 -4px 20px 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-\\[0_1px_2px_rgba\\(0\\,0\\,0\\,0\\.03\\)\\] {\n --tw-shadow: 0 1px 2px rgba(0,0,0,0.03);\n --tw-shadow-colored: 0 1px 2px 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-lg {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px 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-md {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px 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\\/20 {\n --tw-ring-color: hsl(var(--primary) / 0.2);\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-backdrop-blur-xl {\n --tw-backdrop-blur: blur(24px);\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-opacity {\n transition-property: opacity;\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-1000 {\n transition-duration: 1000ms;\n}\n.ww-duration-200 {\n transition-duration: 200ms;\n}\n.ww-duration-300 {\n transition-duration: 300ms;\n}\n.ww-duration-500 {\n transition-duration: 500ms;\n}\n.ww-duration-700 {\n transition-duration: 700ms;\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-animate-in {\n animation-name: enter;\n animation-duration: 150ms;\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n}\n.ww-fade-in {\n --tw-enter-opacity: 0;\n}\n.ww-slide-in-from-bottom-1 {\n --tw-enter-translate-y: 0.25rem;\n}\n.ww-slide-in-from-bottom-2 {\n --tw-enter-translate-y: 0.5rem;\n}\n.ww-slide-in-from-right-2 {\n --tw-enter-translate-x: 0.5rem;\n}\n.ww-duration-1000 {\n animation-duration: 1000ms;\n}\n.ww-duration-200 {\n animation-duration: 200ms;\n}\n.ww-duration-300 {\n animation-duration: 300ms;\n}\n.ww-duration-500 {\n animation-duration: 500ms;\n}\n.ww-duration-700 {\n animation-duration: 700ms;\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 -moz-appearance: none;\n appearance: none;\n -webkit-appearance: none;\n background: transparent;\n border: none;\n cursor: pointer;\n}\n.wallavi-widget textarea,\n.wallavi-widget input,\n.wallavi-widget select {\n font-family: inherit;\n font-size: inherit;\n}\n.wallavi-widget img,\n.wallavi-widget video {\n max-width: 100%;\n height: auto;\n}\n.wallavi-widget .lk-control-bar {\n background: transparent !important;\n border: none !important;\n box-shadow: none !important;\n padding: 0 !important;\n gap: 1.5rem !important;\n justify-content: center !important;\n}\n.wallavi-widget .lk-button {\n background: rgba(25, 25, 28, 0.05) !important;\n border-radius: 9999px !important;\n padding: 1.25rem !important;\n color: var(--ww-fg, #19191c) !important;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;\n border: 1px solid rgba(25, 25, 28, 0.1) !important;\n}\n.wallavi-widget .lk-button:hover {\n background: rgba(25, 25, 28, 0.1) !important;\n transform: scale(1.05) !important;\n}\n.wallavi-widget .lk-disconnect-button {\n background: #ef4444 !important;\n color: white !important;\n border: none !important;\n}\n.wallavi-widget .lk-disconnect-button:hover {\n background: #dc2626 !important;\n}\n.wallavi-widget .lk-device-menu {\n bottom: 100% !important;\n top: auto !important;\n margin-bottom: 1rem !important;\n max-width: 250px !important;\n width: -moz-max-content !important;\n width: max-content !important;\n left: 50% !important;\n transform: translateX(-50%) !important;\n background: #ffffff !important;\n border-radius: 16px !important;\n box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.15), 0 10px 20px -10px rgba(0, 0, 0, 0.1) !important;\n z-index: 1000 !important;\n overflow: hidden !important;\n border: 1px solid rgba(0, 0, 0, 0.05) !important;\n padding: 0.5rem !important;\n}\n.wallavi-widget .lk-device-menu > li {\n padding: 0.75rem 1rem !important;\n font-size: 0.875rem !important;\n color: #19191c !important;\n white-space: nowrap !important;\n overflow: hidden !important;\n text-overflow: ellipsis !important;\n border-radius: 8px !important;\n transition: background 0.15s !important;\n}\n.wallavi-widget .lk-device-menu > li:hover {\n background: rgba(0, 0, 0, 0.05) !important;\n}\n.wallavi-widget .lk-device-menu > li.lk-active {\n background: rgba(0, 0, 0, 0.08) !important;\n font-weight: 600 !important;\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.hover\\:-ww-translate-y-1:hover {\n --tw-translate-y: -0.25rem;\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.hover\\:ww-scale-105:hover {\n --tw-scale-x: 1.05;\n --tw-scale-y: 1.05;\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.hover\\:ww-scale-110:hover {\n --tw-scale-x: 1.1;\n --tw-scale-y: 1.1;\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.hover\\:ww-border-border\\/80:hover {\n border-color: hsl(var(--border) / 0.8);\n}\n.hover\\:ww-border-primary\\/40:hover {\n border-color: hsl(var(--primary) / 0.4);\n}\n.hover\\:ww-bg-accent:hover {\n background-color: hsl(var(--accent));\n}\n.hover\\:ww-bg-foreground\\/10:hover {\n background-color: hsl(var(--foreground) / 0.1);\n}\n.hover\\:ww-bg-foreground\\/30:hover {\n background-color: hsl(var(--foreground) / 0.3);\n}\n.hover\\:ww-bg-muted:hover {\n background-color: hsl(var(--muted));\n}\n.hover\\:ww-bg-muted\\/20:hover {\n background-color: hsl(var(--muted) / 0.2);\n}\n.hover\\:ww-bg-muted\\/70:hover {\n background-color: hsl(var(--muted) / 0.7);\n}\n.hover\\:ww-bg-primary\\/10:hover {\n background-color: hsl(var(--primary) / 0.1);\n}\n.hover\\:ww-bg-white\\/10:hover {\n background-color: rgb(255 255 255 / 0.1);\n}\n.hover\\:ww-text-accent-foreground:hover {\n color: hsl(var(--accent-foreground));\n}\n.hover\\:ww-text-foreground:hover {\n color: hsl(var(--foreground));\n}\n.hover\\:ww-text-primary:hover {\n color: hsl(var(--primary));\n}\n.hover\\:ww-opacity-80:hover {\n opacity: 0.8;\n}\n.hover\\:ww-opacity-85:hover {\n opacity: 0.85;\n}\n.hover\\:ww-shadow-md:hover {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px 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.hover\\:ww-shadow-sm:hover {\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.hover\\:ww-shadow-xl:hover {\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.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.focus-visible\\:ww-outline-none:focus-visible {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.focus-visible\\:ww-ring-2:focus-visible {\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.focus-visible\\:ww-ring-ring\\/40:focus-visible {\n --tw-ring-color: hsl(var(--ring) / 0.4);\n}\n.active\\:ww-scale-95:active {\n --tw-scale-x: .95;\n --tw-scale-y: .95;\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.active\\:ww-scale-\\[0\\.98\\]:active {\n --tw-scale-x: 0.98;\n --tw-scale-y: 0.98;\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.disabled\\:ww-pointer-events-none:disabled {\n pointer-events: none;\n}\n.disabled\\:ww-opacity-40:disabled {\n opacity: 0.4;\n}\n.disabled\\:ww-opacity-50:disabled {\n opacity: 0.5;\n}\n.ww-group:hover .group-hover\\:ww-translate-x-0 {\n --tw-translate-x: 0px;\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.ww-group:hover .group-hover\\:ww-rotate-12 {\n --tw-rotate: 12deg;\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.ww-group:hover .group-hover\\:ww-scale-105 {\n --tw-scale-x: 1.05;\n --tw-scale-y: 1.05;\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.ww-group:hover .group-hover\\:ww-scale-110 {\n --tw-scale-x: 1.1;\n --tw-scale-y: 1.1;\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.ww-group:hover .group-hover\\:ww-opacity-100 {\n opacity: 1;\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-indigo-400\\/10:is(.ww-dark *) {\n background-color: rgb(129 140 248 / 0.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-indigo-400:is(.ww-dark *) {\n --tw-text-opacity: 1;\n color: rgb(129 140 248 / var(--tw-text-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');
|
|
61
|
+
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-inset-4 {\n inset: 1rem;\n}\n.ww-inset-8 {\n inset: 2rem;\n}\n.ww-bottom-\\[72px\\] {\n bottom: 72px;\n}\n.ww-left-2\\.5 {\n left: 0.625rem;\n}\n.ww-left-4 {\n left: 1rem;\n}\n.ww-right-4 {\n right: 1rem;\n}\n.ww-top-1\\/2 {\n top: 50%;\n}\n.ww-z-50 {\n z-index: 50;\n}\n.ww-z-\\[100\\] {\n z-index: 100;\n}\n.ww-mx-0\\.5 {\n margin-left: 0.125rem;\n margin-right: 0.125rem;\n}\n.ww-mb-1 {\n margin-bottom: 0.25rem;\n}\n.ww-mb-12 {\n margin-bottom: 3rem;\n}\n.ww-mb-2 {\n margin-bottom: 0.5rem;\n}\n.ww-mb-2\\.5 {\n margin-bottom: 0.625rem;\n}\n.ww-ml-0\\.5 {\n margin-left: 0.125rem;\n}\n.ww-ml-1 {\n margin-left: 0.25rem;\n}\n.ww-mt-0\\.5 {\n margin-top: 0.125rem;\n}\n.ww-mt-1 {\n margin-top: 0.25rem;\n}\n.ww-mt-1\\.5 {\n margin-top: 0.375rem;\n}\n.ww-line-clamp-1 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n}\n.ww-line-clamp-2 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\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-1\\.5 {\n height: 0.375rem;\n}\n.ww-h-10 {\n height: 2.5rem;\n}\n.ww-h-16 {\n height: 4rem;\n}\n.ww-h-2 {\n height: 0.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-40 {\n height: 10rem;\n}\n.ww-h-48 {\n height: 12rem;\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-max-h-\\[220px\\] {\n max-height: 220px;\n}\n.ww-min-h-\\[22px\\] {\n min-height: 22px;\n}\n.ww-w-0\\.5 {\n width: 0.125rem;\n}\n.ww-w-1\\.5 {\n width: 0.375rem;\n}\n.ww-w-10 {\n width: 2.5rem;\n}\n.ww-w-16 {\n width: 4rem;\n}\n.ww-w-2 {\n width: 0.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-48 {\n width: 12rem;\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-\\[300px\\] {\n width: 300px;\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-\\[170px\\] {\n max-width: 170px;\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-translate-x-\\[-4px\\] {\n --tw-translate-x: -4px;\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.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.ww-scale-100 {\n --tw-scale-x: 1;\n --tw-scale-y: 1;\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.ww-scale-105 {\n --tw-scale-x: 1.05;\n --tw-scale-y: 1.05;\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.ww-scale-110 {\n --tw-scale-x: 1.1;\n --tw-scale-y: 1.1;\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.ww-scale-90 {\n --tw-scale-x: .9;\n --tw-scale-y: .9;\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.ww-scale-\\[0\\.99\\] {\n --tw-scale-x: 0.99;\n --tw-scale-y: 0.99;\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-ping {\n 75%, 100% {\n transform: scale(2);\n opacity: 0;\n }\n}\n.ww-animate-ping {\n animation: ww-ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;\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-touch-none {\n touch-action: none;\n}\n.ww-select-none {\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n.ww-select-all {\n -webkit-user-select: all;\n -moz-user-select: all;\n user-select: all;\n}\n.ww-grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.ww-flex-row {\n flex-direction: row;\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-3\\.5 {\n gap: 0.875rem;\n}\n.ww-gap-4 {\n gap: 1rem;\n}\n.ww-gap-5 {\n gap: 1.25rem;\n}\n.ww-gap-6 {\n gap: 1.5rem;\n}\n.ww-gap-8 {\n gap: 2rem;\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-self-center {\n align-self: center;\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-overscroll-none {\n overscroll-behavior: none;\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-full {\n border-radius: 9999px !important;\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-md {\n border-radius: calc(var(--radius) - 2px);\n}\n.ww-rounded-xl {\n border-radius: 0.75rem;\n}\n.ww-rounded-br-2xl {\n border-bottom-right-radius: 1rem;\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 {\n border-left-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\\/80 {\n border-color: hsl(var(--border) / 0.8);\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-primary\\/10 {\n border-color: hsl(var(--primary) / 0.1);\n}\n.ww-border-primary\\/20 {\n border-color: hsl(var(--primary) / 0.2);\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-transparent {\n border-color: transparent;\n}\n.ww-border-white\\/20 {\n border-color: rgb(255 255 255 / 0.2);\n}\n.ww-border-white\\/30 {\n border-color: rgb(255 255 255 / 0.3);\n}\n.ww-bg-amber-500\\/10 {\n background-color: rgb(245 158 11 / 0.1);\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\\/90 {\n background-color: hsl(var(--background) / 0.9);\n}\n.ww-bg-background\\/95 {\n background-color: hsl(var(--background) / 0.95);\n}\n.ww-bg-black\\/10 {\n background-color: rgb(0 0 0 / 0.1);\n}\n.ww-bg-emerald-400 {\n --tw-bg-opacity: 1;\n background-color: rgb(52 211 153 / var(--tw-bg-opacity, 1));\n}\n.ww-bg-emerald-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(16 185 129 / var(--tw-bg-opacity, 1));\n}\n.ww-bg-emerald-500\\/10 {\n background-color: rgb(16 185 129 / 0.1);\n}\n.ww-bg-emerald-500\\/20 {\n background-color: rgb(16 185 129 / 0.2);\n}\n.ww-bg-foreground\\/20 {\n background-color: hsl(var(--foreground) / 0.2);\n}\n.ww-bg-foreground\\/5 {\n background-color: hsl(var(--foreground) / 0.05);\n}\n.ww-bg-foreground\\/60 {\n background-color: hsl(var(--foreground) / 0.6);\n}\n.ww-bg-indigo-500\\/10 {\n background-color: rgb(99 102 241 / 0.1);\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\\/10 {\n background-color: hsl(var(--muted) / 0.1);\n}\n.ww-bg-muted\\/30 {\n background-color: hsl(var(--muted) / 0.3);\n}\n.ww-bg-muted\\/40 {\n background-color: hsl(var(--muted) / 0.4);\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-muted\\/90 {\n background-color: hsl(var(--muted) / 0.9);\n}\n.ww-bg-primary {\n background-color: hsl(var(--primary));\n}\n.ww-bg-primary\\/10 {\n background-color: hsl(var(--primary) / 0.1);\n}\n.ww-bg-primary\\/5 {\n background-color: hsl(var(--primary) / 0.05);\n}\n.ww-bg-purple-500\\/20 {\n background-color: rgb(168 85 247 / 0.2);\n}\n.ww-bg-purple-500\\/30 {\n background-color: rgb(168 85 247 / 0.3);\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 {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\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-bg-white\\/20 {\n background-color: rgb(255 255 255 / 0.2);\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-2 {\n padding: 0.5rem;\n}\n.ww-p-3 {\n padding: 0.75rem;\n}\n.ww-p-3\\.5 {\n padding: 0.875rem;\n}\n.ww-px-1 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n.ww-px-1\\.5 {\n padding-left: 0.375rem;\n padding-right: 0.375rem;\n}\n.ww-px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\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-2 {\n padding-bottom: 0.5rem;\n}\n.ww-pb-3 {\n padding-bottom: 0.75rem;\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-0\\.5 {\n padding-top: 0.125rem;\n}\n.ww-pt-2 {\n padding-top: 0.5rem;\n}\n.ww-pt-2\\.5 {\n padding-top: 0.625rem;\n}\n.ww-pt-4 {\n padding-top: 1rem;\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-baseline {\n vertical-align: baseline;\n}\n.ww-align-middle {\n vertical-align: middle;\n}\n.ww-font-mono {\n font-family:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n "Liberation Mono",\n "Courier New",\n monospace;\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-\\[13px\\] {\n font-size: 13px;\n}\n.ww-text-\\[8px\\] {\n font-size: 8px;\n}\n.ww-text-\\[9px\\] {\n font-size: 9px;\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-bold {\n font-weight: 700;\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-normal {\n line-height: 1.5;\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-\\[0\\.06em\\] {\n letter-spacing: 0.06em;\n}\n.ww-tracking-\\[0\\.12em\\] {\n letter-spacing: 0.12em;\n}\n.ww-tracking-wide {\n letter-spacing: 0.025em;\n}\n.ww-tracking-wider {\n letter-spacing: 0.05em;\n}\n.ww-tracking-widest {\n letter-spacing: 0.1em;\n}\n.ww-text-amber-500 {\n --tw-text-opacity: 1;\n color: rgb(245 158 11 / var(--tw-text-opacity, 1));\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-foreground\\/90 {\n color: hsl(var(--foreground) / 0.9);\n}\n.ww-text-indigo-500 {\n --tw-text-opacity: 1;\n color: rgb(99 102 241 / var(--tw-text-opacity, 1));\n}\n.ww-text-inherit {\n color: inherit;\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\\/45 {\n color: hsl(var(--muted-foreground) / 0.45);\n}\n.ww-text-muted-foreground\\/50 {\n color: hsl(var(--muted-foreground) / 0.5);\n}\n.ww-text-muted-foreground\\/60 {\n color: hsl(var(--muted-foreground) / 0.6);\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\\/60 {\n color: hsl(var(--primary) / 0.6);\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 {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / 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-underline {\n text-decoration-line: underline;\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-0 {\n opacity: 0;\n}\n.ww-opacity-100 {\n opacity: 1;\n}\n.ww-opacity-25 {\n opacity: 0.25;\n}\n.ww-opacity-30 {\n opacity: 0.3;\n}\n.ww-opacity-40 {\n opacity: 0.4;\n}\n.ww-opacity-55 {\n opacity: 0.55;\n}\n.ww-opacity-60 {\n opacity: 0.6;\n}\n.ww-opacity-70 {\n opacity: 0.7;\n}\n.ww-opacity-75 {\n opacity: 0.75;\n}\n.ww-opacity-80 {\n opacity: 0.8;\n}\n.ww-opacity-90 {\n opacity: 0.9;\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-\\[0_-4px_20px_rgba\\(0\\,0\\,0\\,0\\.02\\)\\] {\n --tw-shadow: 0 -4px 20px rgba(0,0,0,0.02);\n --tw-shadow-colored: 0 -4px 20px 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-\\[0_1px_2px_rgba\\(0\\,0\\,0\\,0\\.03\\)\\] {\n --tw-shadow: 0 1px 2px rgba(0,0,0,0.03);\n --tw-shadow-colored: 0 1px 2px 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-lg {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px 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-md {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px 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\\/20 {\n --tw-ring-color: hsl(var(--primary) / 0.2);\n}\n.ww-ring-primary\\/60 {\n --tw-ring-color: hsl(var(--primary) / 0.6);\n}\n.ww-backdrop-blur-md {\n --tw-backdrop-blur: blur(12px);\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-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-backdrop-blur-xl {\n --tw-backdrop-blur: blur(24px);\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-opacity {\n transition-property: opacity;\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-1000 {\n transition-duration: 1000ms;\n}\n.ww-duration-150 {\n transition-duration: 150ms;\n}\n.ww-duration-200 {\n transition-duration: 200ms;\n}\n.ww-duration-300 {\n transition-duration: 300ms;\n}\n.ww-duration-500 {\n transition-duration: 500ms;\n}\n.ww-duration-700 {\n transition-duration: 700ms;\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-animate-in {\n animation-name: enter;\n animation-duration: 150ms;\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n}\n.ww-fade-in {\n --tw-enter-opacity: 0;\n}\n.ww-slide-in-from-bottom-1 {\n --tw-enter-translate-y: 0.25rem;\n}\n.ww-slide-in-from-bottom-2 {\n --tw-enter-translate-y: 0.5rem;\n}\n.ww-slide-in-from-right-2 {\n --tw-enter-translate-x: 0.5rem;\n}\n.ww-duration-1000 {\n animation-duration: 1000ms;\n}\n.ww-duration-150 {\n animation-duration: 150ms;\n}\n.ww-duration-200 {\n animation-duration: 200ms;\n}\n.ww-duration-300 {\n animation-duration: 300ms;\n}\n.ww-duration-500 {\n animation-duration: 500ms;\n}\n.ww-duration-700 {\n animation-duration: 700ms;\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 -moz-appearance: none;\n appearance: none;\n -webkit-appearance: none;\n background: transparent;\n border: none;\n cursor: pointer;\n}\n.wallavi-widget textarea,\n.wallavi-widget input,\n.wallavi-widget select {\n font-family: inherit;\n font-size: inherit;\n}\n.wallavi-widget img,\n.wallavi-widget video {\n max-width: 100%;\n height: auto;\n}\n.wallavi-widget .lk-control-bar {\n background: transparent !important;\n border: none !important;\n box-shadow: none !important;\n padding: 0 !important;\n gap: 1.5rem !important;\n justify-content: center !important;\n}\n.wallavi-widget .lk-button {\n background: rgba(25, 25, 28, 0.05) !important;\n border-radius: 9999px !important;\n padding: 1.25rem !important;\n color: var(--ww-fg, #19191c) !important;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;\n border: 1px solid rgba(25, 25, 28, 0.1) !important;\n}\n.wallavi-widget .lk-button:hover {\n background: rgba(25, 25, 28, 0.1) !important;\n transform: scale(1.05) !important;\n}\n.wallavi-widget .lk-disconnect-button {\n background: #ef4444 !important;\n color: white !important;\n border: none !important;\n}\n.wallavi-widget .lk-disconnect-button:hover {\n background: #dc2626 !important;\n}\n.wallavi-widget .lk-device-menu {\n bottom: 100% !important;\n top: auto !important;\n margin-bottom: 1rem !important;\n max-width: 250px !important;\n width: -moz-max-content !important;\n width: max-content !important;\n left: 50% !important;\n transform: translateX(-50%) !important;\n background: #ffffff !important;\n border-radius: 16px !important;\n box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.15), 0 10px 20px -10px rgba(0, 0, 0, 0.1) !important;\n z-index: 1000 !important;\n overflow: hidden !important;\n border: 1px solid rgba(0, 0, 0, 0.05) !important;\n padding: 0.5rem !important;\n}\n.wallavi-widget .lk-device-menu > li {\n padding: 0.75rem 1rem !important;\n font-size: 0.875rem !important;\n color: #19191c !important;\n white-space: nowrap !important;\n overflow: hidden !important;\n text-overflow: ellipsis !important;\n border-radius: 8px !important;\n transition: background 0.15s !important;\n}\n.wallavi-widget .lk-device-menu > li:hover {\n background: rgba(0, 0, 0, 0.05) !important;\n}\n.wallavi-widget .lk-device-menu > li.lk-active {\n background: rgba(0, 0, 0, 0.08) !important;\n font-weight: 600 !important;\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.hover\\:-ww-translate-y-1:hover {\n --tw-translate-y: -0.25rem;\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.hover\\:ww-scale-105:hover {\n --tw-scale-x: 1.05;\n --tw-scale-y: 1.05;\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.hover\\:ww-scale-110:hover {\n --tw-scale-x: 1.1;\n --tw-scale-y: 1.1;\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.hover\\:ww-border-border\\/80:hover {\n border-color: hsl(var(--border) / 0.8);\n}\n.hover\\:ww-border-primary\\/40:hover {\n border-color: hsl(var(--primary) / 0.4);\n}\n.hover\\:ww-bg-accent:hover {\n background-color: hsl(var(--accent));\n}\n.hover\\:ww-bg-foreground\\/10:hover {\n background-color: hsl(var(--foreground) / 0.1);\n}\n.hover\\:ww-bg-foreground\\/30:hover {\n background-color: hsl(var(--foreground) / 0.3);\n}\n.hover\\:ww-bg-muted:hover {\n background-color: hsl(var(--muted));\n}\n.hover\\:ww-bg-muted\\/20:hover {\n background-color: hsl(var(--muted) / 0.2);\n}\n.hover\\:ww-bg-muted\\/40:hover {\n background-color: hsl(var(--muted) / 0.4);\n}\n.hover\\:ww-bg-muted\\/70:hover {\n background-color: hsl(var(--muted) / 0.7);\n}\n.hover\\:ww-bg-primary\\/10:hover {\n background-color: hsl(var(--primary) / 0.1);\n}\n.hover\\:ww-bg-white\\/10:hover {\n background-color: rgb(255 255 255 / 0.1);\n}\n.hover\\:ww-text-accent-foreground:hover {\n color: hsl(var(--accent-foreground));\n}\n.hover\\:ww-text-foreground:hover {\n color: hsl(var(--foreground));\n}\n.hover\\:ww-text-primary:hover {\n color: hsl(var(--primary));\n}\n.hover\\:ww-opacity-80:hover {\n opacity: 0.8;\n}\n.hover\\:ww-opacity-85:hover {\n opacity: 0.85;\n}\n.hover\\:ww-shadow-md:hover {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px 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.hover\\:ww-shadow-sm:hover {\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.hover\\:ww-shadow-xl:hover {\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.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.focus-visible\\:ww-outline-none:focus-visible {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.focus-visible\\:ww-ring-2:focus-visible {\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.focus-visible\\:ww-ring-ring\\/40:focus-visible {\n --tw-ring-color: hsl(var(--ring) / 0.4);\n}\n.active\\:ww-scale-95:active {\n --tw-scale-x: .95;\n --tw-scale-y: .95;\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.active\\:ww-scale-\\[0\\.98\\]:active {\n --tw-scale-x: 0.98;\n --tw-scale-y: 0.98;\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.disabled\\:ww-pointer-events-none:disabled {\n pointer-events: none;\n}\n.disabled\\:ww-opacity-40:disabled {\n opacity: 0.4;\n}\n.disabled\\:ww-opacity-50:disabled {\n opacity: 0.5;\n}\n.ww-group:hover .group-hover\\:ww-translate-x-0 {\n --tw-translate-x: 0px;\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.ww-group:hover .group-hover\\:ww-rotate-12 {\n --tw-rotate: 12deg;\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.ww-group:hover .group-hover\\:ww-scale-105 {\n --tw-scale-x: 1.05;\n --tw-scale-y: 1.05;\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.ww-group:hover .group-hover\\:ww-scale-110 {\n --tw-scale-x: 1.1;\n --tw-scale-y: 1.1;\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.ww-group:hover .group-hover\\:ww-opacity-100 {\n opacity: 1;\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-indigo-400\\/10:is(.ww-dark *) {\n background-color: rgb(129 140 248 / 0.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-indigo-400:is(.ww-dark *) {\n --tw-text-opacity: 1;\n color: rgb(129 140 248 / var(--tw-text-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');
|
|
62
62
|
var twMerge = tailwindMerge.extendTailwindMerge({ prefix: "ww-" });
|
|
63
63
|
var cn = (...inputs) => twMerge(clsx.clsx(inputs));
|
|
64
64
|
async function getFreshClerkToken() {
|
|
@@ -2385,7 +2385,8 @@ function ChatInput({
|
|
|
2385
2385
|
isUploading = false,
|
|
2386
2386
|
selectedContext,
|
|
2387
2387
|
onClearContext,
|
|
2388
|
-
locale
|
|
2388
|
+
locale,
|
|
2389
|
+
onKeyDown
|
|
2389
2390
|
}) {
|
|
2390
2391
|
const hasVoice = onVoiceStart !== void 0;
|
|
2391
2392
|
const hasAttachments = onAttach !== void 0;
|
|
@@ -2486,6 +2487,10 @@ function ChatInput({
|
|
|
2486
2487
|
}
|
|
2487
2488
|
}, [streaming]);
|
|
2488
2489
|
const handleKeyDown = (e) => {
|
|
2490
|
+
if (onKeyDown) {
|
|
2491
|
+
onKeyDown(e);
|
|
2492
|
+
if (e.defaultPrevented) return;
|
|
2493
|
+
}
|
|
2489
2494
|
if (e.key === "Enter" && !e.shiftKey) {
|
|
2490
2495
|
e.preventDefault();
|
|
2491
2496
|
onSend();
|
|
@@ -2929,6 +2934,114 @@ function topicToQuestion(topic, locale) {
|
|
|
2929
2934
|
if (name.endsWith("?")) return name;
|
|
2930
2935
|
return getWidgetTranslation("tellMeAbout", locale, { name });
|
|
2931
2936
|
}
|
|
2937
|
+
function getContextKeywords(pageUrl, pageTitle, pageParams, pageVars, metadata) {
|
|
2938
|
+
const texts = [];
|
|
2939
|
+
if (pageUrl) {
|
|
2940
|
+
try {
|
|
2941
|
+
const path = pageUrl.replace(/https?:\/\/[^/]+/, "");
|
|
2942
|
+
texts.push(...path.split(/[/?#&=-]/));
|
|
2943
|
+
} catch {
|
|
2944
|
+
texts.push(pageUrl);
|
|
2945
|
+
}
|
|
2946
|
+
}
|
|
2947
|
+
if (pageTitle) {
|
|
2948
|
+
texts.push(pageTitle);
|
|
2949
|
+
}
|
|
2950
|
+
if (pageParams) {
|
|
2951
|
+
for (const val of Object.values(pageParams)) {
|
|
2952
|
+
if (typeof val === "string") texts.push(val);
|
|
2953
|
+
}
|
|
2954
|
+
}
|
|
2955
|
+
if (pageVars) {
|
|
2956
|
+
for (const val of Object.values(pageVars)) {
|
|
2957
|
+
if (typeof val === "string") texts.push(val);
|
|
2958
|
+
}
|
|
2959
|
+
}
|
|
2960
|
+
if (metadata) {
|
|
2961
|
+
for (const val of Object.values(metadata)) {
|
|
2962
|
+
if (typeof val === "string") texts.push(val);
|
|
2963
|
+
}
|
|
2964
|
+
}
|
|
2965
|
+
const stopWords = /* @__PURE__ */ new Set([
|
|
2966
|
+
"the",
|
|
2967
|
+
"a",
|
|
2968
|
+
"an",
|
|
2969
|
+
"and",
|
|
2970
|
+
"or",
|
|
2971
|
+
"but",
|
|
2972
|
+
"in",
|
|
2973
|
+
"on",
|
|
2974
|
+
"at",
|
|
2975
|
+
"to",
|
|
2976
|
+
"for",
|
|
2977
|
+
"of",
|
|
2978
|
+
"with",
|
|
2979
|
+
"el",
|
|
2980
|
+
"la",
|
|
2981
|
+
"los",
|
|
2982
|
+
"las",
|
|
2983
|
+
"un",
|
|
2984
|
+
"una",
|
|
2985
|
+
"unos",
|
|
2986
|
+
"unas",
|
|
2987
|
+
"y",
|
|
2988
|
+
"o",
|
|
2989
|
+
"pero",
|
|
2990
|
+
"en",
|
|
2991
|
+
"de",
|
|
2992
|
+
"para",
|
|
2993
|
+
"con",
|
|
2994
|
+
"por",
|
|
2995
|
+
"del",
|
|
2996
|
+
"al",
|
|
2997
|
+
"wallavi",
|
|
2998
|
+
"depot",
|
|
2999
|
+
"os",
|
|
3000
|
+
"dashboard",
|
|
3001
|
+
"agent",
|
|
3002
|
+
"studio"
|
|
3003
|
+
]);
|
|
3004
|
+
const rawTokens = texts.join(" ").toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "").split(/[^a-z0-9]/);
|
|
3005
|
+
const keywords = /* @__PURE__ */ new Set();
|
|
3006
|
+
for (const token of rawTokens) {
|
|
3007
|
+
const clean = token.trim();
|
|
3008
|
+
if (clean.length > 2 && !stopWords.has(clean)) {
|
|
3009
|
+
keywords.add(clean);
|
|
3010
|
+
if (clean.endsWith("s")) {
|
|
3011
|
+
keywords.add(clean.slice(0, -1));
|
|
3012
|
+
if (clean.endsWith("es") && clean.length > 4) {
|
|
3013
|
+
keywords.add(clean.slice(0, -2));
|
|
3014
|
+
}
|
|
3015
|
+
}
|
|
3016
|
+
}
|
|
3017
|
+
}
|
|
3018
|
+
return Array.from(keywords);
|
|
3019
|
+
}
|
|
3020
|
+
function computeRelevanceScore(item, keywords, pageUrl) {
|
|
3021
|
+
let score = 0;
|
|
3022
|
+
if (item.url && pageUrl) {
|
|
3023
|
+
score += urlRelevance(item.url, pageUrl);
|
|
3024
|
+
}
|
|
3025
|
+
const itemName = (item.name || "").toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "");
|
|
3026
|
+
const itemDesc = (item.description || item.summary || "").toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "");
|
|
3027
|
+
const itemUrl = (item.url || "").toLowerCase();
|
|
3028
|
+
const nameWords = itemName.split(/[^a-z0-9]/).filter(Boolean);
|
|
3029
|
+
for (const keyword of keywords) {
|
|
3030
|
+
if (itemName.includes(keyword)) {
|
|
3031
|
+
score += 30;
|
|
3032
|
+
if (nameWords.includes(keyword)) {
|
|
3033
|
+
score += 20;
|
|
3034
|
+
}
|
|
3035
|
+
}
|
|
3036
|
+
if (itemDesc.includes(keyword)) {
|
|
3037
|
+
score += 15;
|
|
3038
|
+
}
|
|
3039
|
+
if (itemUrl.includes(keyword)) {
|
|
3040
|
+
score += 20;
|
|
3041
|
+
}
|
|
3042
|
+
}
|
|
3043
|
+
return score;
|
|
3044
|
+
}
|
|
2932
3045
|
var STAGGER_MS = 50;
|
|
2933
3046
|
var cardBase = "ww-group ww-w-full ww-rounded-xl ww-border ww-border-border ww-bg-background ww-text-left ww-shadow-[0_1px_2px_rgba(0,0,0,0.03)] hover:ww-bg-muted/20 hover:ww-border-border/80 hover:ww-shadow-md active:ww-scale-[0.98] ww-transition-all ww-duration-200 ww-animate-in ww-fade-in ww-slide-in-from-bottom-1 focus-visible:ww-ring-2 focus-visible:ww-ring-ring/40 focus-visible:ww-outline-none";
|
|
2934
3047
|
function SectionLabel({ children }) {
|
|
@@ -3083,6 +3196,9 @@ function CommandPanel({
|
|
|
3083
3196
|
mode,
|
|
3084
3197
|
pageUrl = "",
|
|
3085
3198
|
pageTitle,
|
|
3199
|
+
pageParams,
|
|
3200
|
+
pageVars,
|
|
3201
|
+
metadata,
|
|
3086
3202
|
clientActions = [],
|
|
3087
3203
|
ragTopics = [],
|
|
3088
3204
|
ragDocuments = [],
|
|
@@ -3095,17 +3211,31 @@ function CommandPanel({
|
|
|
3095
3211
|
locale
|
|
3096
3212
|
}) {
|
|
3097
3213
|
const relevantDocs = react.useMemo(() => {
|
|
3098
|
-
|
|
3099
|
-
|
|
3100
|
-
|
|
3101
|
-
|
|
3102
|
-
|
|
3103
|
-
|
|
3104
|
-
|
|
3105
|
-
|
|
3106
|
-
|
|
3107
|
-
|
|
3108
|
-
|
|
3214
|
+
const keywords = getContextKeywords(pageUrl, pageTitle, pageParams, pageVars, metadata);
|
|
3215
|
+
const scored = ragDocuments.map((doc) => ({
|
|
3216
|
+
...doc,
|
|
3217
|
+
score: computeRelevanceScore(doc, keywords, pageUrl)
|
|
3218
|
+
}));
|
|
3219
|
+
return scored.sort((a, b) => b.score - a.score).slice(0, 5);
|
|
3220
|
+
}, [ragDocuments, pageUrl, pageTitle, pageParams, pageVars, metadata]);
|
|
3221
|
+
const topicQuestions = react.useMemo(() => {
|
|
3222
|
+
const keywords = getContextKeywords(pageUrl, pageTitle, pageParams, pageVars, metadata);
|
|
3223
|
+
const scored = ragTopics.map((topic) => ({
|
|
3224
|
+
...topic,
|
|
3225
|
+
score: computeRelevanceScore(topic, keywords),
|
|
3226
|
+
question: topicToQuestion(topic, locale)
|
|
3227
|
+
}));
|
|
3228
|
+
return scored.sort((a, b) => b.score - a.score).slice(0, 5);
|
|
3229
|
+
}, [ragTopics, pageUrl, pageTitle, pageParams, pageVars, metadata, locale]);
|
|
3230
|
+
const sortedActions = react.useMemo(() => {
|
|
3231
|
+
const keywords = getContextKeywords(pageUrl, pageTitle, pageParams, pageVars, metadata);
|
|
3232
|
+
const scored = clientActions.map((action) => ({
|
|
3233
|
+
...action,
|
|
3234
|
+
score: computeRelevanceScore(action, keywords)
|
|
3235
|
+
}));
|
|
3236
|
+
return scored.sort((a, b) => b.score - a.score);
|
|
3237
|
+
}, [clientActions, pageUrl, pageTitle, pageParams, pageVars, metadata]);
|
|
3238
|
+
const hasActions = sortedActions.length > 0;
|
|
3109
3239
|
const hasDocs = relevantDocs.length > 0;
|
|
3110
3240
|
const hasTopics = topicQuestions.length > 0;
|
|
3111
3241
|
const hasContent = hasActions || hasDocs || hasTopics;
|
|
@@ -3118,7 +3248,7 @@ function CommandPanel({
|
|
|
3118
3248
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ww-flex-1 ww-overflow-y-auto ww-px-4 ww-pb-4 ww-flex ww-flex-col ww-gap-5", children: [
|
|
3119
3249
|
hasActions && /* @__PURE__ */ jsxRuntime.jsxs("section", { children: [
|
|
3120
3250
|
/* @__PURE__ */ jsxRuntime.jsx(SectionLabel, { children: getWidgetTranslation("quickActions", locale) }),
|
|
3121
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "ww-flex ww-flex-col ww-gap-2", children:
|
|
3251
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "ww-flex ww-flex-col ww-gap-2", children: sortedActions.map((action, i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
3122
3252
|
ActionCard,
|
|
3123
3253
|
{
|
|
3124
3254
|
action,
|
|
@@ -3190,7 +3320,7 @@ function CommandPanel({
|
|
|
3190
3320
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ww-px-4 ww-pt-2 ww-pb-3 ww-flex ww-flex-col ww-gap-4 ww-animate-in ww-fade-in ww-duration-300", children: [
|
|
3191
3321
|
hasActions && /* @__PURE__ */ jsxRuntime.jsxs("section", { children: [
|
|
3192
3322
|
/* @__PURE__ */ jsxRuntime.jsx(SectionLabel, { children: getWidgetTranslation("quickActions", locale) }),
|
|
3193
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "ww-grid ww-grid-cols-2 ww-gap-2", children:
|
|
3323
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "ww-grid ww-grid-cols-2 ww-gap-2", children: sortedActions.slice(0, 4).map((action, i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
3194
3324
|
ActionCardCompact,
|
|
3195
3325
|
{
|
|
3196
3326
|
action,
|
|
@@ -3281,6 +3411,16 @@ function ChatWidget({
|
|
|
3281
3411
|
window.addEventListener("resize", checkSize);
|
|
3282
3412
|
return () => window.removeEventListener("resize", checkSize);
|
|
3283
3413
|
}, []);
|
|
3414
|
+
react.useEffect(() => {
|
|
3415
|
+
if (typeof window === "undefined") return;
|
|
3416
|
+
const handleMessage = (e) => {
|
|
3417
|
+
if (e.data?.type === "wallavi:focusInput") {
|
|
3418
|
+
document.querySelector("#wallavi-chat-input")?.focus();
|
|
3419
|
+
}
|
|
3420
|
+
};
|
|
3421
|
+
window.addEventListener("message", handleMessage);
|
|
3422
|
+
return () => window.removeEventListener("message", handleMessage);
|
|
3423
|
+
}, []);
|
|
3284
3424
|
const chat = useChat({
|
|
3285
3425
|
agentId,
|
|
3286
3426
|
workspaceId,
|
|
@@ -3406,9 +3546,63 @@ function ChatWidget({
|
|
|
3406
3546
|
},
|
|
3407
3547
|
[onNavigate]
|
|
3408
3548
|
);
|
|
3549
|
+
const [activeActionIndex, setActiveActionIndex] = react.useState(-1);
|
|
3550
|
+
const query = chat.input.toLowerCase().trim();
|
|
3551
|
+
const matchingActions = react.useMemo(() => {
|
|
3552
|
+
if (!query || !showQuickActions || clientActions.length === 0) return [];
|
|
3553
|
+
const queryWords = query.normalize("NFD").replace(/[\u0300-\u036f]/g, "").split(/\s+/).filter(Boolean);
|
|
3554
|
+
if (queryWords.length === 0) return [];
|
|
3555
|
+
return clientActions.filter((action) => {
|
|
3556
|
+
const name = (action.name || "").toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "");
|
|
3557
|
+
const desc = (action.description || "").toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "");
|
|
3558
|
+
return queryWords.every((word) => {
|
|
3559
|
+
const variants = [word];
|
|
3560
|
+
if (word.endsWith("s")) {
|
|
3561
|
+
variants.push(word.slice(0, -1));
|
|
3562
|
+
if (word.endsWith("es") && word.length > 4) {
|
|
3563
|
+
variants.push(word.slice(0, -2));
|
|
3564
|
+
}
|
|
3565
|
+
}
|
|
3566
|
+
return variants.some((variant) => name.includes(variant) || desc.includes(variant));
|
|
3567
|
+
});
|
|
3568
|
+
});
|
|
3569
|
+
}, [clientActions, query, showQuickActions]);
|
|
3570
|
+
react.useEffect(() => {
|
|
3571
|
+
if (matchingActions.length === 0) {
|
|
3572
|
+
setActiveActionIndex(-1);
|
|
3573
|
+
} else {
|
|
3574
|
+
setActiveActionIndex(0);
|
|
3575
|
+
}
|
|
3576
|
+
}, [matchingActions]);
|
|
3577
|
+
const handleInputKeyDown = react.useCallback(
|
|
3578
|
+
(e) => {
|
|
3579
|
+
if (matchingActions.length === 0) return;
|
|
3580
|
+
if (e.key === "ArrowDown") {
|
|
3581
|
+
e.preventDefault();
|
|
3582
|
+
setActiveActionIndex((prev) => (prev + 1) % matchingActions.length);
|
|
3583
|
+
} else if (e.key === "ArrowUp") {
|
|
3584
|
+
e.preventDefault();
|
|
3585
|
+
setActiveActionIndex((prev) => (prev - 1 + matchingActions.length) % matchingActions.length);
|
|
3586
|
+
} else if (e.key === "Enter") {
|
|
3587
|
+
e.preventDefault();
|
|
3588
|
+
const selectedAction = matchingActions[activeActionIndex];
|
|
3589
|
+
if (selectedAction) {
|
|
3590
|
+
handleExecuteAction(selectedAction.steps);
|
|
3591
|
+
chat.setInput("");
|
|
3592
|
+
}
|
|
3593
|
+
} else if (e.key === "Escape") {
|
|
3594
|
+
e.preventDefault();
|
|
3595
|
+
chat.setInput("");
|
|
3596
|
+
}
|
|
3597
|
+
},
|
|
3598
|
+
[matchingActions, activeActionIndex, handleExecuteAction, chat]
|
|
3599
|
+
);
|
|
3409
3600
|
const commandPanelProps = {
|
|
3410
3601
|
pageUrl: userContext?.pageContext?.url,
|
|
3411
3602
|
pageTitle: userContext?.pageContext?.title,
|
|
3603
|
+
pageParams: userContext?.pageContext?.params,
|
|
3604
|
+
pageVars: userContext?.pageContext?.vars,
|
|
3605
|
+
metadata: userContext?.metadata,
|
|
3412
3606
|
clientActions: showQuickActions ? clientActions : [],
|
|
3413
3607
|
ragTopics: showRagTopics ? ragTopics : [],
|
|
3414
3608
|
ragDocuments: showRagDocuments ? ragDocuments : [],
|
|
@@ -3603,6 +3797,49 @@ function ChatWidget({
|
|
|
3603
3797
|
]
|
|
3604
3798
|
}
|
|
3605
3799
|
) }),
|
|
3800
|
+
matchingActions.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ww-absolute ww-bottom-[72px] ww-left-4 ww-right-4 ww-bg-background/90 ww-backdrop-blur-md ww-border ww-border-border ww-rounded-xl ww-shadow-xl ww-z-50 ww-overflow-hidden ww-flex ww-flex-col ww-max-h-[220px] ww-animate-in ww-fade-in ww-slide-in-from-bottom-2 ww-duration-200", children: [
|
|
3801
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ww-px-3 ww-py-2 ww-bg-muted/40 ww-border-b ww-border-border/60 ww-flex ww-items-center ww-justify-between", children: [
|
|
3802
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ww-text-[10px] ww-font-bold ww-text-muted-foreground/80 ww-uppercase ww-tracking-wider ww-flex ww-items-center ww-gap-1.5", children: [
|
|
3803
|
+
/* @__PURE__ */ jsxRuntime.jsx("svg", { className: "ww-w-3 ww-h-3 ww-text-amber-500", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M13 2L3 14h9l-1 8 10-12h-9l1-8z" }) }),
|
|
3804
|
+
locale === "es" ? "Acciones R\xE1pidas Disponibles" : "Available Quick Actions"
|
|
3805
|
+
] }),
|
|
3806
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ww-text-[9px] ww-text-muted-foreground/80", children: locale === "es" ? "\u2191\u2193 para mover, Enter para ejecutar" : "\u2191\u2193 to navigate, Enter to run" })
|
|
3807
|
+
] }),
|
|
3808
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "ww-overflow-y-auto ww-p-1.5 ww-flex ww-flex-col ww-gap-1", children: matchingActions.map((action, index) => {
|
|
3809
|
+
const isSelected = index === activeActionIndex;
|
|
3810
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3811
|
+
"button",
|
|
3812
|
+
{
|
|
3813
|
+
onClick: () => {
|
|
3814
|
+
handleExecuteAction(action.steps);
|
|
3815
|
+
chat.setInput("");
|
|
3816
|
+
},
|
|
3817
|
+
className: cn(
|
|
3818
|
+
"ww-w-full ww-flex ww-items-start ww-gap-2.5 ww-p-2 ww-rounded-lg ww-text-left ww-transition-all ww-duration-150",
|
|
3819
|
+
isSelected ? "ww-bg-muted/90 ww-border-primary/20 ww-shadow-sm ww-scale-[0.99]" : "hover:ww-bg-muted/40"
|
|
3820
|
+
),
|
|
3821
|
+
children: [
|
|
3822
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3823
|
+
"div",
|
|
3824
|
+
{
|
|
3825
|
+
className: "ww-shrink-0 ww-w-6 ww-h-6 ww-rounded-md ww-flex ww-items-center ww-justify-center ww-bg-amber-500/10 ww-text-amber-500",
|
|
3826
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("svg", { className: "ww-w-3.5 ww-h-3.5", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M13 2L3 14h9l-1 8 10-12h-9l1-8z" }) })
|
|
3827
|
+
}
|
|
3828
|
+
),
|
|
3829
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ww-flex-1 ww-min-w-0", children: [
|
|
3830
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(
|
|
3831
|
+
"ww-text-[12px] ww-font-medium ww-block ww-truncate",
|
|
3832
|
+
isSelected ? "ww-text-foreground ww-font-semibold" : "ww-text-foreground/90"
|
|
3833
|
+
), children: action.name }),
|
|
3834
|
+
action.description && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ww-text-[10px] ww-block ww-truncate ww-text-muted-foreground", children: action.description })
|
|
3835
|
+
] }),
|
|
3836
|
+
isSelected && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ww-shrink-0 ww-text-[10px] ww-font-mono ww-bg-background ww-border ww-border-border ww-text-muted-foreground ww-px-1.5 ww-py-0.5 ww-rounded-md ww-self-center ww-opacity-90", children: "ENTER" })
|
|
3837
|
+
]
|
|
3838
|
+
},
|
|
3839
|
+
action.name
|
|
3840
|
+
);
|
|
3841
|
+
}) })
|
|
3842
|
+
] }),
|
|
3606
3843
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3607
3844
|
ChatInput,
|
|
3608
3845
|
{
|
|
@@ -3617,6 +3854,7 @@ function ChatWidget({
|
|
|
3617
3854
|
onRegenerate: () => void chat.regenerate(),
|
|
3618
3855
|
selectedContext: chat.selectedContext,
|
|
3619
3856
|
onClearContext: () => chat.setSelectedContext(null),
|
|
3857
|
+
onKeyDown: handleInputKeyDown,
|
|
3620
3858
|
...enableVoice && voice.isSupported ? {
|
|
3621
3859
|
voiceState: voice.voiceState,
|
|
3622
3860
|
onVoiceStart: () => void voice.start(),
|
|
@@ -4243,7 +4481,7 @@ function BubbleWidget({
|
|
|
4243
4481
|
react.useEffect(() => {
|
|
4244
4482
|
if (!open) return;
|
|
4245
4483
|
const t = setTimeout(
|
|
4246
|
-
() => panelRef.current?.querySelector("
|
|
4484
|
+
() => panelRef.current?.querySelector("#wallavi-chat-input")?.focus(),
|
|
4247
4485
|
50
|
|
4248
4486
|
);
|
|
4249
4487
|
return () => clearTimeout(t);
|
package/dist/index.mjs
CHANGED
|
@@ -32,7 +32,7 @@ function styleInject(css, { insertAt } = {}) {
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
// src/styles.css
|
|
35
|
-
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-inset-4 {\n inset: 1rem;\n}\n.ww-inset-8 {\n inset: 2rem;\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-z-\\[100\\] {\n z-index: 100;\n}\n.ww-mx-0\\.5 {\n margin-left: 0.125rem;\n margin-right: 0.125rem;\n}\n.ww-mb-1 {\n margin-bottom: 0.25rem;\n}\n.ww-mb-12 {\n margin-bottom: 3rem;\n}\n.ww-mb-2 {\n margin-bottom: 0.5rem;\n}\n.ww-mb-2\\.5 {\n margin-bottom: 0.625rem;\n}\n.ww-ml-0\\.5 {\n margin-left: 0.125rem;\n}\n.ww-ml-1 {\n margin-left: 0.25rem;\n}\n.ww-mt-0\\.5 {\n margin-top: 0.125rem;\n}\n.ww-mt-1 {\n margin-top: 0.25rem;\n}\n.ww-mt-1\\.5 {\n margin-top: 0.375rem;\n}\n.ww-line-clamp-1 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n}\n.ww-line-clamp-2 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\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-1\\.5 {\n height: 0.375rem;\n}\n.ww-h-10 {\n height: 2.5rem;\n}\n.ww-h-16 {\n height: 4rem;\n}\n.ww-h-2 {\n height: 0.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-40 {\n height: 10rem;\n}\n.ww-h-48 {\n height: 12rem;\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-min-h-\\[22px\\] {\n min-height: 22px;\n}\n.ww-w-0\\.5 {\n width: 0.125rem;\n}\n.ww-w-1\\.5 {\n width: 0.375rem;\n}\n.ww-w-10 {\n width: 2.5rem;\n}\n.ww-w-16 {\n width: 4rem;\n}\n.ww-w-2 {\n width: 0.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-48 {\n width: 12rem;\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-\\[300px\\] {\n width: 300px;\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-\\[170px\\] {\n max-width: 170px;\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-translate-x-\\[-4px\\] {\n --tw-translate-x: -4px;\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.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.ww-scale-100 {\n --tw-scale-x: 1;\n --tw-scale-y: 1;\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.ww-scale-105 {\n --tw-scale-x: 1.05;\n --tw-scale-y: 1.05;\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.ww-scale-110 {\n --tw-scale-x: 1.1;\n --tw-scale-y: 1.1;\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.ww-scale-90 {\n --tw-scale-x: .9;\n --tw-scale-y: .9;\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-ping {\n 75%, 100% {\n transform: scale(2);\n opacity: 0;\n }\n}\n.ww-animate-ping {\n animation: ww-ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;\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-touch-none {\n touch-action: none;\n}\n.ww-select-none {\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n.ww-select-all {\n -webkit-user-select: all;\n -moz-user-select: all;\n user-select: all;\n}\n.ww-grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.ww-flex-row {\n flex-direction: row;\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-3\\.5 {\n gap: 0.875rem;\n}\n.ww-gap-4 {\n gap: 1rem;\n}\n.ww-gap-5 {\n gap: 1.25rem;\n}\n.ww-gap-6 {\n gap: 1.5rem;\n}\n.ww-gap-8 {\n gap: 2rem;\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-overscroll-none {\n overscroll-behavior: none;\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-full {\n border-radius: 9999px !important;\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-md {\n border-radius: calc(var(--radius) - 2px);\n}\n.ww-rounded-xl {\n border-radius: 0.75rem;\n}\n.ww-rounded-br-2xl {\n border-bottom-right-radius: 1rem;\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 {\n border-left-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\\/80 {\n border-color: hsl(var(--border) / 0.8);\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-primary\\/10 {\n border-color: hsl(var(--primary) / 0.1);\n}\n.ww-border-primary\\/20 {\n border-color: hsl(var(--primary) / 0.2);\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-transparent {\n border-color: transparent;\n}\n.ww-border-white\\/20 {\n border-color: rgb(255 255 255 / 0.2);\n}\n.ww-border-white\\/30 {\n border-color: rgb(255 255 255 / 0.3);\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\\/90 {\n background-color: hsl(var(--background) / 0.9);\n}\n.ww-bg-background\\/95 {\n background-color: hsl(var(--background) / 0.95);\n}\n.ww-bg-black\\/10 {\n background-color: rgb(0 0 0 / 0.1);\n}\n.ww-bg-emerald-400 {\n --tw-bg-opacity: 1;\n background-color: rgb(52 211 153 / var(--tw-bg-opacity, 1));\n}\n.ww-bg-emerald-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(16 185 129 / var(--tw-bg-opacity, 1));\n}\n.ww-bg-emerald-500\\/10 {\n background-color: rgb(16 185 129 / 0.1);\n}\n.ww-bg-emerald-500\\/20 {\n background-color: rgb(16 185 129 / 0.2);\n}\n.ww-bg-foreground\\/20 {\n background-color: hsl(var(--foreground) / 0.2);\n}\n.ww-bg-foreground\\/5 {\n background-color: hsl(var(--foreground) / 0.05);\n}\n.ww-bg-foreground\\/60 {\n background-color: hsl(var(--foreground) / 0.6);\n}\n.ww-bg-indigo-500\\/10 {\n background-color: rgb(99 102 241 / 0.1);\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\\/10 {\n background-color: hsl(var(--muted) / 0.1);\n}\n.ww-bg-muted\\/30 {\n background-color: hsl(var(--muted) / 0.3);\n}\n.ww-bg-muted\\/40 {\n background-color: hsl(var(--muted) / 0.4);\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\\/10 {\n background-color: hsl(var(--primary) / 0.1);\n}\n.ww-bg-primary\\/5 {\n background-color: hsl(var(--primary) / 0.05);\n}\n.ww-bg-purple-500\\/20 {\n background-color: rgb(168 85 247 / 0.2);\n}\n.ww-bg-purple-500\\/30 {\n background-color: rgb(168 85 247 / 0.3);\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 {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\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-bg-white\\/20 {\n background-color: rgb(255 255 255 / 0.2);\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-p-3\\.5 {\n padding: 0.875rem;\n}\n.ww-px-1 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n.ww-px-1\\.5 {\n padding-left: 0.375rem;\n padding-right: 0.375rem;\n}\n.ww-px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\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-2 {\n padding-bottom: 0.5rem;\n}\n.ww-pb-3 {\n padding-bottom: 0.75rem;\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-0\\.5 {\n padding-top: 0.125rem;\n}\n.ww-pt-2 {\n padding-top: 0.5rem;\n}\n.ww-pt-2\\.5 {\n padding-top: 0.625rem;\n}\n.ww-pt-4 {\n padding-top: 1rem;\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-baseline {\n vertical-align: baseline;\n}\n.ww-align-middle {\n vertical-align: middle;\n}\n.ww-font-mono {\n font-family:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n "Liberation Mono",\n "Courier New",\n monospace;\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-\\[13px\\] {\n font-size: 13px;\n}\n.ww-text-\\[8px\\] {\n font-size: 8px;\n}\n.ww-text-\\[9px\\] {\n font-size: 9px;\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-bold {\n font-weight: 700;\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-normal {\n line-height: 1.5;\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-\\[0\\.06em\\] {\n letter-spacing: 0.06em;\n}\n.ww-tracking-\\[0\\.12em\\] {\n letter-spacing: 0.12em;\n}\n.ww-tracking-wide {\n letter-spacing: 0.025em;\n}\n.ww-tracking-wider {\n letter-spacing: 0.05em;\n}\n.ww-tracking-widest {\n letter-spacing: 0.1em;\n}\n.ww-text-amber-500 {\n --tw-text-opacity: 1;\n color: rgb(245 158 11 / var(--tw-text-opacity, 1));\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-indigo-500 {\n --tw-text-opacity: 1;\n color: rgb(99 102 241 / var(--tw-text-opacity, 1));\n}\n.ww-text-inherit {\n color: inherit;\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\\/45 {\n color: hsl(var(--muted-foreground) / 0.45);\n}\n.ww-text-muted-foreground\\/50 {\n color: hsl(var(--muted-foreground) / 0.5);\n}\n.ww-text-muted-foreground\\/60 {\n color: hsl(var(--muted-foreground) / 0.6);\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\\/60 {\n color: hsl(var(--primary) / 0.6);\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 {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / 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-underline {\n text-decoration-line: underline;\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-0 {\n opacity: 0;\n}\n.ww-opacity-100 {\n opacity: 1;\n}\n.ww-opacity-25 {\n opacity: 0.25;\n}\n.ww-opacity-30 {\n opacity: 0.3;\n}\n.ww-opacity-40 {\n opacity: 0.4;\n}\n.ww-opacity-55 {\n opacity: 0.55;\n}\n.ww-opacity-60 {\n opacity: 0.6;\n}\n.ww-opacity-70 {\n opacity: 0.7;\n}\n.ww-opacity-75 {\n opacity: 0.75;\n}\n.ww-opacity-80 {\n opacity: 0.8;\n}\n.ww-opacity-90 {\n opacity: 0.9;\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-\\[0_-4px_20px_rgba\\(0\\,0\\,0\\,0\\.02\\)\\] {\n --tw-shadow: 0 -4px 20px rgba(0,0,0,0.02);\n --tw-shadow-colored: 0 -4px 20px 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-\\[0_1px_2px_rgba\\(0\\,0\\,0\\,0\\.03\\)\\] {\n --tw-shadow: 0 1px 2px rgba(0,0,0,0.03);\n --tw-shadow-colored: 0 1px 2px 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-lg {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px 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-md {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px 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\\/20 {\n --tw-ring-color: hsl(var(--primary) / 0.2);\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-backdrop-blur-xl {\n --tw-backdrop-blur: blur(24px);\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-opacity {\n transition-property: opacity;\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-1000 {\n transition-duration: 1000ms;\n}\n.ww-duration-200 {\n transition-duration: 200ms;\n}\n.ww-duration-300 {\n transition-duration: 300ms;\n}\n.ww-duration-500 {\n transition-duration: 500ms;\n}\n.ww-duration-700 {\n transition-duration: 700ms;\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-animate-in {\n animation-name: enter;\n animation-duration: 150ms;\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n}\n.ww-fade-in {\n --tw-enter-opacity: 0;\n}\n.ww-slide-in-from-bottom-1 {\n --tw-enter-translate-y: 0.25rem;\n}\n.ww-slide-in-from-bottom-2 {\n --tw-enter-translate-y: 0.5rem;\n}\n.ww-slide-in-from-right-2 {\n --tw-enter-translate-x: 0.5rem;\n}\n.ww-duration-1000 {\n animation-duration: 1000ms;\n}\n.ww-duration-200 {\n animation-duration: 200ms;\n}\n.ww-duration-300 {\n animation-duration: 300ms;\n}\n.ww-duration-500 {\n animation-duration: 500ms;\n}\n.ww-duration-700 {\n animation-duration: 700ms;\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 -moz-appearance: none;\n appearance: none;\n -webkit-appearance: none;\n background: transparent;\n border: none;\n cursor: pointer;\n}\n.wallavi-widget textarea,\n.wallavi-widget input,\n.wallavi-widget select {\n font-family: inherit;\n font-size: inherit;\n}\n.wallavi-widget img,\n.wallavi-widget video {\n max-width: 100%;\n height: auto;\n}\n.wallavi-widget .lk-control-bar {\n background: transparent !important;\n border: none !important;\n box-shadow: none !important;\n padding: 0 !important;\n gap: 1.5rem !important;\n justify-content: center !important;\n}\n.wallavi-widget .lk-button {\n background: rgba(25, 25, 28, 0.05) !important;\n border-radius: 9999px !important;\n padding: 1.25rem !important;\n color: var(--ww-fg, #19191c) !important;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;\n border: 1px solid rgba(25, 25, 28, 0.1) !important;\n}\n.wallavi-widget .lk-button:hover {\n background: rgba(25, 25, 28, 0.1) !important;\n transform: scale(1.05) !important;\n}\n.wallavi-widget .lk-disconnect-button {\n background: #ef4444 !important;\n color: white !important;\n border: none !important;\n}\n.wallavi-widget .lk-disconnect-button:hover {\n background: #dc2626 !important;\n}\n.wallavi-widget .lk-device-menu {\n bottom: 100% !important;\n top: auto !important;\n margin-bottom: 1rem !important;\n max-width: 250px !important;\n width: -moz-max-content !important;\n width: max-content !important;\n left: 50% !important;\n transform: translateX(-50%) !important;\n background: #ffffff !important;\n border-radius: 16px !important;\n box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.15), 0 10px 20px -10px rgba(0, 0, 0, 0.1) !important;\n z-index: 1000 !important;\n overflow: hidden !important;\n border: 1px solid rgba(0, 0, 0, 0.05) !important;\n padding: 0.5rem !important;\n}\n.wallavi-widget .lk-device-menu > li {\n padding: 0.75rem 1rem !important;\n font-size: 0.875rem !important;\n color: #19191c !important;\n white-space: nowrap !important;\n overflow: hidden !important;\n text-overflow: ellipsis !important;\n border-radius: 8px !important;\n transition: background 0.15s !important;\n}\n.wallavi-widget .lk-device-menu > li:hover {\n background: rgba(0, 0, 0, 0.05) !important;\n}\n.wallavi-widget .lk-device-menu > li.lk-active {\n background: rgba(0, 0, 0, 0.08) !important;\n font-weight: 600 !important;\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.hover\\:-ww-translate-y-1:hover {\n --tw-translate-y: -0.25rem;\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.hover\\:ww-scale-105:hover {\n --tw-scale-x: 1.05;\n --tw-scale-y: 1.05;\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.hover\\:ww-scale-110:hover {\n --tw-scale-x: 1.1;\n --tw-scale-y: 1.1;\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.hover\\:ww-border-border\\/80:hover {\n border-color: hsl(var(--border) / 0.8);\n}\n.hover\\:ww-border-primary\\/40:hover {\n border-color: hsl(var(--primary) / 0.4);\n}\n.hover\\:ww-bg-accent:hover {\n background-color: hsl(var(--accent));\n}\n.hover\\:ww-bg-foreground\\/10:hover {\n background-color: hsl(var(--foreground) / 0.1);\n}\n.hover\\:ww-bg-foreground\\/30:hover {\n background-color: hsl(var(--foreground) / 0.3);\n}\n.hover\\:ww-bg-muted:hover {\n background-color: hsl(var(--muted));\n}\n.hover\\:ww-bg-muted\\/20:hover {\n background-color: hsl(var(--muted) / 0.2);\n}\n.hover\\:ww-bg-muted\\/70:hover {\n background-color: hsl(var(--muted) / 0.7);\n}\n.hover\\:ww-bg-primary\\/10:hover {\n background-color: hsl(var(--primary) / 0.1);\n}\n.hover\\:ww-bg-white\\/10:hover {\n background-color: rgb(255 255 255 / 0.1);\n}\n.hover\\:ww-text-accent-foreground:hover {\n color: hsl(var(--accent-foreground));\n}\n.hover\\:ww-text-foreground:hover {\n color: hsl(var(--foreground));\n}\n.hover\\:ww-text-primary:hover {\n color: hsl(var(--primary));\n}\n.hover\\:ww-opacity-80:hover {\n opacity: 0.8;\n}\n.hover\\:ww-opacity-85:hover {\n opacity: 0.85;\n}\n.hover\\:ww-shadow-md:hover {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px 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.hover\\:ww-shadow-sm:hover {\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.hover\\:ww-shadow-xl:hover {\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.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.focus-visible\\:ww-outline-none:focus-visible {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.focus-visible\\:ww-ring-2:focus-visible {\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.focus-visible\\:ww-ring-ring\\/40:focus-visible {\n --tw-ring-color: hsl(var(--ring) / 0.4);\n}\n.active\\:ww-scale-95:active {\n --tw-scale-x: .95;\n --tw-scale-y: .95;\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.active\\:ww-scale-\\[0\\.98\\]:active {\n --tw-scale-x: 0.98;\n --tw-scale-y: 0.98;\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.disabled\\:ww-pointer-events-none:disabled {\n pointer-events: none;\n}\n.disabled\\:ww-opacity-40:disabled {\n opacity: 0.4;\n}\n.disabled\\:ww-opacity-50:disabled {\n opacity: 0.5;\n}\n.ww-group:hover .group-hover\\:ww-translate-x-0 {\n --tw-translate-x: 0px;\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.ww-group:hover .group-hover\\:ww-rotate-12 {\n --tw-rotate: 12deg;\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.ww-group:hover .group-hover\\:ww-scale-105 {\n --tw-scale-x: 1.05;\n --tw-scale-y: 1.05;\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.ww-group:hover .group-hover\\:ww-scale-110 {\n --tw-scale-x: 1.1;\n --tw-scale-y: 1.1;\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.ww-group:hover .group-hover\\:ww-opacity-100 {\n opacity: 1;\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-indigo-400\\/10:is(.ww-dark *) {\n background-color: rgb(129 140 248 / 0.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-indigo-400:is(.ww-dark *) {\n --tw-text-opacity: 1;\n color: rgb(129 140 248 / var(--tw-text-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');
|
|
35
|
+
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-inset-4 {\n inset: 1rem;\n}\n.ww-inset-8 {\n inset: 2rem;\n}\n.ww-bottom-\\[72px\\] {\n bottom: 72px;\n}\n.ww-left-2\\.5 {\n left: 0.625rem;\n}\n.ww-left-4 {\n left: 1rem;\n}\n.ww-right-4 {\n right: 1rem;\n}\n.ww-top-1\\/2 {\n top: 50%;\n}\n.ww-z-50 {\n z-index: 50;\n}\n.ww-z-\\[100\\] {\n z-index: 100;\n}\n.ww-mx-0\\.5 {\n margin-left: 0.125rem;\n margin-right: 0.125rem;\n}\n.ww-mb-1 {\n margin-bottom: 0.25rem;\n}\n.ww-mb-12 {\n margin-bottom: 3rem;\n}\n.ww-mb-2 {\n margin-bottom: 0.5rem;\n}\n.ww-mb-2\\.5 {\n margin-bottom: 0.625rem;\n}\n.ww-ml-0\\.5 {\n margin-left: 0.125rem;\n}\n.ww-ml-1 {\n margin-left: 0.25rem;\n}\n.ww-mt-0\\.5 {\n margin-top: 0.125rem;\n}\n.ww-mt-1 {\n margin-top: 0.25rem;\n}\n.ww-mt-1\\.5 {\n margin-top: 0.375rem;\n}\n.ww-line-clamp-1 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n}\n.ww-line-clamp-2 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\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-1\\.5 {\n height: 0.375rem;\n}\n.ww-h-10 {\n height: 2.5rem;\n}\n.ww-h-16 {\n height: 4rem;\n}\n.ww-h-2 {\n height: 0.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-40 {\n height: 10rem;\n}\n.ww-h-48 {\n height: 12rem;\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-max-h-\\[220px\\] {\n max-height: 220px;\n}\n.ww-min-h-\\[22px\\] {\n min-height: 22px;\n}\n.ww-w-0\\.5 {\n width: 0.125rem;\n}\n.ww-w-1\\.5 {\n width: 0.375rem;\n}\n.ww-w-10 {\n width: 2.5rem;\n}\n.ww-w-16 {\n width: 4rem;\n}\n.ww-w-2 {\n width: 0.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-48 {\n width: 12rem;\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-\\[300px\\] {\n width: 300px;\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-\\[170px\\] {\n max-width: 170px;\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-translate-x-\\[-4px\\] {\n --tw-translate-x: -4px;\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.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.ww-scale-100 {\n --tw-scale-x: 1;\n --tw-scale-y: 1;\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.ww-scale-105 {\n --tw-scale-x: 1.05;\n --tw-scale-y: 1.05;\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.ww-scale-110 {\n --tw-scale-x: 1.1;\n --tw-scale-y: 1.1;\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.ww-scale-90 {\n --tw-scale-x: .9;\n --tw-scale-y: .9;\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.ww-scale-\\[0\\.99\\] {\n --tw-scale-x: 0.99;\n --tw-scale-y: 0.99;\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-ping {\n 75%, 100% {\n transform: scale(2);\n opacity: 0;\n }\n}\n.ww-animate-ping {\n animation: ww-ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;\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-touch-none {\n touch-action: none;\n}\n.ww-select-none {\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n.ww-select-all {\n -webkit-user-select: all;\n -moz-user-select: all;\n user-select: all;\n}\n.ww-grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.ww-flex-row {\n flex-direction: row;\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-3\\.5 {\n gap: 0.875rem;\n}\n.ww-gap-4 {\n gap: 1rem;\n}\n.ww-gap-5 {\n gap: 1.25rem;\n}\n.ww-gap-6 {\n gap: 1.5rem;\n}\n.ww-gap-8 {\n gap: 2rem;\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-self-center {\n align-self: center;\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-overscroll-none {\n overscroll-behavior: none;\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-full {\n border-radius: 9999px !important;\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-md {\n border-radius: calc(var(--radius) - 2px);\n}\n.ww-rounded-xl {\n border-radius: 0.75rem;\n}\n.ww-rounded-br-2xl {\n border-bottom-right-radius: 1rem;\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 {\n border-left-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\\/80 {\n border-color: hsl(var(--border) / 0.8);\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-primary\\/10 {\n border-color: hsl(var(--primary) / 0.1);\n}\n.ww-border-primary\\/20 {\n border-color: hsl(var(--primary) / 0.2);\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-transparent {\n border-color: transparent;\n}\n.ww-border-white\\/20 {\n border-color: rgb(255 255 255 / 0.2);\n}\n.ww-border-white\\/30 {\n border-color: rgb(255 255 255 / 0.3);\n}\n.ww-bg-amber-500\\/10 {\n background-color: rgb(245 158 11 / 0.1);\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\\/90 {\n background-color: hsl(var(--background) / 0.9);\n}\n.ww-bg-background\\/95 {\n background-color: hsl(var(--background) / 0.95);\n}\n.ww-bg-black\\/10 {\n background-color: rgb(0 0 0 / 0.1);\n}\n.ww-bg-emerald-400 {\n --tw-bg-opacity: 1;\n background-color: rgb(52 211 153 / var(--tw-bg-opacity, 1));\n}\n.ww-bg-emerald-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(16 185 129 / var(--tw-bg-opacity, 1));\n}\n.ww-bg-emerald-500\\/10 {\n background-color: rgb(16 185 129 / 0.1);\n}\n.ww-bg-emerald-500\\/20 {\n background-color: rgb(16 185 129 / 0.2);\n}\n.ww-bg-foreground\\/20 {\n background-color: hsl(var(--foreground) / 0.2);\n}\n.ww-bg-foreground\\/5 {\n background-color: hsl(var(--foreground) / 0.05);\n}\n.ww-bg-foreground\\/60 {\n background-color: hsl(var(--foreground) / 0.6);\n}\n.ww-bg-indigo-500\\/10 {\n background-color: rgb(99 102 241 / 0.1);\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\\/10 {\n background-color: hsl(var(--muted) / 0.1);\n}\n.ww-bg-muted\\/30 {\n background-color: hsl(var(--muted) / 0.3);\n}\n.ww-bg-muted\\/40 {\n background-color: hsl(var(--muted) / 0.4);\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-muted\\/90 {\n background-color: hsl(var(--muted) / 0.9);\n}\n.ww-bg-primary {\n background-color: hsl(var(--primary));\n}\n.ww-bg-primary\\/10 {\n background-color: hsl(var(--primary) / 0.1);\n}\n.ww-bg-primary\\/5 {\n background-color: hsl(var(--primary) / 0.05);\n}\n.ww-bg-purple-500\\/20 {\n background-color: rgb(168 85 247 / 0.2);\n}\n.ww-bg-purple-500\\/30 {\n background-color: rgb(168 85 247 / 0.3);\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 {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\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-bg-white\\/20 {\n background-color: rgb(255 255 255 / 0.2);\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-2 {\n padding: 0.5rem;\n}\n.ww-p-3 {\n padding: 0.75rem;\n}\n.ww-p-3\\.5 {\n padding: 0.875rem;\n}\n.ww-px-1 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n.ww-px-1\\.5 {\n padding-left: 0.375rem;\n padding-right: 0.375rem;\n}\n.ww-px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\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-2 {\n padding-bottom: 0.5rem;\n}\n.ww-pb-3 {\n padding-bottom: 0.75rem;\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-0\\.5 {\n padding-top: 0.125rem;\n}\n.ww-pt-2 {\n padding-top: 0.5rem;\n}\n.ww-pt-2\\.5 {\n padding-top: 0.625rem;\n}\n.ww-pt-4 {\n padding-top: 1rem;\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-baseline {\n vertical-align: baseline;\n}\n.ww-align-middle {\n vertical-align: middle;\n}\n.ww-font-mono {\n font-family:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n "Liberation Mono",\n "Courier New",\n monospace;\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-\\[13px\\] {\n font-size: 13px;\n}\n.ww-text-\\[8px\\] {\n font-size: 8px;\n}\n.ww-text-\\[9px\\] {\n font-size: 9px;\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-bold {\n font-weight: 700;\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-normal {\n line-height: 1.5;\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-\\[0\\.06em\\] {\n letter-spacing: 0.06em;\n}\n.ww-tracking-\\[0\\.12em\\] {\n letter-spacing: 0.12em;\n}\n.ww-tracking-wide {\n letter-spacing: 0.025em;\n}\n.ww-tracking-wider {\n letter-spacing: 0.05em;\n}\n.ww-tracking-widest {\n letter-spacing: 0.1em;\n}\n.ww-text-amber-500 {\n --tw-text-opacity: 1;\n color: rgb(245 158 11 / var(--tw-text-opacity, 1));\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-foreground\\/90 {\n color: hsl(var(--foreground) / 0.9);\n}\n.ww-text-indigo-500 {\n --tw-text-opacity: 1;\n color: rgb(99 102 241 / var(--tw-text-opacity, 1));\n}\n.ww-text-inherit {\n color: inherit;\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\\/45 {\n color: hsl(var(--muted-foreground) / 0.45);\n}\n.ww-text-muted-foreground\\/50 {\n color: hsl(var(--muted-foreground) / 0.5);\n}\n.ww-text-muted-foreground\\/60 {\n color: hsl(var(--muted-foreground) / 0.6);\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\\/60 {\n color: hsl(var(--primary) / 0.6);\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 {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / 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-underline {\n text-decoration-line: underline;\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-0 {\n opacity: 0;\n}\n.ww-opacity-100 {\n opacity: 1;\n}\n.ww-opacity-25 {\n opacity: 0.25;\n}\n.ww-opacity-30 {\n opacity: 0.3;\n}\n.ww-opacity-40 {\n opacity: 0.4;\n}\n.ww-opacity-55 {\n opacity: 0.55;\n}\n.ww-opacity-60 {\n opacity: 0.6;\n}\n.ww-opacity-70 {\n opacity: 0.7;\n}\n.ww-opacity-75 {\n opacity: 0.75;\n}\n.ww-opacity-80 {\n opacity: 0.8;\n}\n.ww-opacity-90 {\n opacity: 0.9;\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-\\[0_-4px_20px_rgba\\(0\\,0\\,0\\,0\\.02\\)\\] {\n --tw-shadow: 0 -4px 20px rgba(0,0,0,0.02);\n --tw-shadow-colored: 0 -4px 20px 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-\\[0_1px_2px_rgba\\(0\\,0\\,0\\,0\\.03\\)\\] {\n --tw-shadow: 0 1px 2px rgba(0,0,0,0.03);\n --tw-shadow-colored: 0 1px 2px 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-lg {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px 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-md {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px 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\\/20 {\n --tw-ring-color: hsl(var(--primary) / 0.2);\n}\n.ww-ring-primary\\/60 {\n --tw-ring-color: hsl(var(--primary) / 0.6);\n}\n.ww-backdrop-blur-md {\n --tw-backdrop-blur: blur(12px);\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-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-backdrop-blur-xl {\n --tw-backdrop-blur: blur(24px);\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-opacity {\n transition-property: opacity;\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-1000 {\n transition-duration: 1000ms;\n}\n.ww-duration-150 {\n transition-duration: 150ms;\n}\n.ww-duration-200 {\n transition-duration: 200ms;\n}\n.ww-duration-300 {\n transition-duration: 300ms;\n}\n.ww-duration-500 {\n transition-duration: 500ms;\n}\n.ww-duration-700 {\n transition-duration: 700ms;\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-animate-in {\n animation-name: enter;\n animation-duration: 150ms;\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n}\n.ww-fade-in {\n --tw-enter-opacity: 0;\n}\n.ww-slide-in-from-bottom-1 {\n --tw-enter-translate-y: 0.25rem;\n}\n.ww-slide-in-from-bottom-2 {\n --tw-enter-translate-y: 0.5rem;\n}\n.ww-slide-in-from-right-2 {\n --tw-enter-translate-x: 0.5rem;\n}\n.ww-duration-1000 {\n animation-duration: 1000ms;\n}\n.ww-duration-150 {\n animation-duration: 150ms;\n}\n.ww-duration-200 {\n animation-duration: 200ms;\n}\n.ww-duration-300 {\n animation-duration: 300ms;\n}\n.ww-duration-500 {\n animation-duration: 500ms;\n}\n.ww-duration-700 {\n animation-duration: 700ms;\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 -moz-appearance: none;\n appearance: none;\n -webkit-appearance: none;\n background: transparent;\n border: none;\n cursor: pointer;\n}\n.wallavi-widget textarea,\n.wallavi-widget input,\n.wallavi-widget select {\n font-family: inherit;\n font-size: inherit;\n}\n.wallavi-widget img,\n.wallavi-widget video {\n max-width: 100%;\n height: auto;\n}\n.wallavi-widget .lk-control-bar {\n background: transparent !important;\n border: none !important;\n box-shadow: none !important;\n padding: 0 !important;\n gap: 1.5rem !important;\n justify-content: center !important;\n}\n.wallavi-widget .lk-button {\n background: rgba(25, 25, 28, 0.05) !important;\n border-radius: 9999px !important;\n padding: 1.25rem !important;\n color: var(--ww-fg, #19191c) !important;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;\n border: 1px solid rgba(25, 25, 28, 0.1) !important;\n}\n.wallavi-widget .lk-button:hover {\n background: rgba(25, 25, 28, 0.1) !important;\n transform: scale(1.05) !important;\n}\n.wallavi-widget .lk-disconnect-button {\n background: #ef4444 !important;\n color: white !important;\n border: none !important;\n}\n.wallavi-widget .lk-disconnect-button:hover {\n background: #dc2626 !important;\n}\n.wallavi-widget .lk-device-menu {\n bottom: 100% !important;\n top: auto !important;\n margin-bottom: 1rem !important;\n max-width: 250px !important;\n width: -moz-max-content !important;\n width: max-content !important;\n left: 50% !important;\n transform: translateX(-50%) !important;\n background: #ffffff !important;\n border-radius: 16px !important;\n box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.15), 0 10px 20px -10px rgba(0, 0, 0, 0.1) !important;\n z-index: 1000 !important;\n overflow: hidden !important;\n border: 1px solid rgba(0, 0, 0, 0.05) !important;\n padding: 0.5rem !important;\n}\n.wallavi-widget .lk-device-menu > li {\n padding: 0.75rem 1rem !important;\n font-size: 0.875rem !important;\n color: #19191c !important;\n white-space: nowrap !important;\n overflow: hidden !important;\n text-overflow: ellipsis !important;\n border-radius: 8px !important;\n transition: background 0.15s !important;\n}\n.wallavi-widget .lk-device-menu > li:hover {\n background: rgba(0, 0, 0, 0.05) !important;\n}\n.wallavi-widget .lk-device-menu > li.lk-active {\n background: rgba(0, 0, 0, 0.08) !important;\n font-weight: 600 !important;\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.hover\\:-ww-translate-y-1:hover {\n --tw-translate-y: -0.25rem;\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.hover\\:ww-scale-105:hover {\n --tw-scale-x: 1.05;\n --tw-scale-y: 1.05;\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.hover\\:ww-scale-110:hover {\n --tw-scale-x: 1.1;\n --tw-scale-y: 1.1;\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.hover\\:ww-border-border\\/80:hover {\n border-color: hsl(var(--border) / 0.8);\n}\n.hover\\:ww-border-primary\\/40:hover {\n border-color: hsl(var(--primary) / 0.4);\n}\n.hover\\:ww-bg-accent:hover {\n background-color: hsl(var(--accent));\n}\n.hover\\:ww-bg-foreground\\/10:hover {\n background-color: hsl(var(--foreground) / 0.1);\n}\n.hover\\:ww-bg-foreground\\/30:hover {\n background-color: hsl(var(--foreground) / 0.3);\n}\n.hover\\:ww-bg-muted:hover {\n background-color: hsl(var(--muted));\n}\n.hover\\:ww-bg-muted\\/20:hover {\n background-color: hsl(var(--muted) / 0.2);\n}\n.hover\\:ww-bg-muted\\/40:hover {\n background-color: hsl(var(--muted) / 0.4);\n}\n.hover\\:ww-bg-muted\\/70:hover {\n background-color: hsl(var(--muted) / 0.7);\n}\n.hover\\:ww-bg-primary\\/10:hover {\n background-color: hsl(var(--primary) / 0.1);\n}\n.hover\\:ww-bg-white\\/10:hover {\n background-color: rgb(255 255 255 / 0.1);\n}\n.hover\\:ww-text-accent-foreground:hover {\n color: hsl(var(--accent-foreground));\n}\n.hover\\:ww-text-foreground:hover {\n color: hsl(var(--foreground));\n}\n.hover\\:ww-text-primary:hover {\n color: hsl(var(--primary));\n}\n.hover\\:ww-opacity-80:hover {\n opacity: 0.8;\n}\n.hover\\:ww-opacity-85:hover {\n opacity: 0.85;\n}\n.hover\\:ww-shadow-md:hover {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px 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.hover\\:ww-shadow-sm:hover {\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.hover\\:ww-shadow-xl:hover {\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.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.focus-visible\\:ww-outline-none:focus-visible {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.focus-visible\\:ww-ring-2:focus-visible {\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.focus-visible\\:ww-ring-ring\\/40:focus-visible {\n --tw-ring-color: hsl(var(--ring) / 0.4);\n}\n.active\\:ww-scale-95:active {\n --tw-scale-x: .95;\n --tw-scale-y: .95;\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.active\\:ww-scale-\\[0\\.98\\]:active {\n --tw-scale-x: 0.98;\n --tw-scale-y: 0.98;\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.disabled\\:ww-pointer-events-none:disabled {\n pointer-events: none;\n}\n.disabled\\:ww-opacity-40:disabled {\n opacity: 0.4;\n}\n.disabled\\:ww-opacity-50:disabled {\n opacity: 0.5;\n}\n.ww-group:hover .group-hover\\:ww-translate-x-0 {\n --tw-translate-x: 0px;\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.ww-group:hover .group-hover\\:ww-rotate-12 {\n --tw-rotate: 12deg;\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.ww-group:hover .group-hover\\:ww-scale-105 {\n --tw-scale-x: 1.05;\n --tw-scale-y: 1.05;\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.ww-group:hover .group-hover\\:ww-scale-110 {\n --tw-scale-x: 1.1;\n --tw-scale-y: 1.1;\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.ww-group:hover .group-hover\\:ww-opacity-100 {\n opacity: 1;\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-indigo-400\\/10:is(.ww-dark *) {\n background-color: rgb(129 140 248 / 0.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-indigo-400:is(.ww-dark *) {\n --tw-text-opacity: 1;\n color: rgb(129 140 248 / var(--tw-text-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');
|
|
36
36
|
var twMerge = extendTailwindMerge({ prefix: "ww-" });
|
|
37
37
|
var cn = (...inputs) => twMerge(clsx(inputs));
|
|
38
38
|
async function getFreshClerkToken() {
|
|
@@ -2359,7 +2359,8 @@ function ChatInput({
|
|
|
2359
2359
|
isUploading = false,
|
|
2360
2360
|
selectedContext,
|
|
2361
2361
|
onClearContext,
|
|
2362
|
-
locale
|
|
2362
|
+
locale,
|
|
2363
|
+
onKeyDown
|
|
2363
2364
|
}) {
|
|
2364
2365
|
const hasVoice = onVoiceStart !== void 0;
|
|
2365
2366
|
const hasAttachments = onAttach !== void 0;
|
|
@@ -2460,6 +2461,10 @@ function ChatInput({
|
|
|
2460
2461
|
}
|
|
2461
2462
|
}, [streaming]);
|
|
2462
2463
|
const handleKeyDown = (e) => {
|
|
2464
|
+
if (onKeyDown) {
|
|
2465
|
+
onKeyDown(e);
|
|
2466
|
+
if (e.defaultPrevented) return;
|
|
2467
|
+
}
|
|
2463
2468
|
if (e.key === "Enter" && !e.shiftKey) {
|
|
2464
2469
|
e.preventDefault();
|
|
2465
2470
|
onSend();
|
|
@@ -2903,6 +2908,114 @@ function topicToQuestion(topic, locale) {
|
|
|
2903
2908
|
if (name.endsWith("?")) return name;
|
|
2904
2909
|
return getWidgetTranslation("tellMeAbout", locale, { name });
|
|
2905
2910
|
}
|
|
2911
|
+
function getContextKeywords(pageUrl, pageTitle, pageParams, pageVars, metadata) {
|
|
2912
|
+
const texts = [];
|
|
2913
|
+
if (pageUrl) {
|
|
2914
|
+
try {
|
|
2915
|
+
const path = pageUrl.replace(/https?:\/\/[^/]+/, "");
|
|
2916
|
+
texts.push(...path.split(/[/?#&=-]/));
|
|
2917
|
+
} catch {
|
|
2918
|
+
texts.push(pageUrl);
|
|
2919
|
+
}
|
|
2920
|
+
}
|
|
2921
|
+
if (pageTitle) {
|
|
2922
|
+
texts.push(pageTitle);
|
|
2923
|
+
}
|
|
2924
|
+
if (pageParams) {
|
|
2925
|
+
for (const val of Object.values(pageParams)) {
|
|
2926
|
+
if (typeof val === "string") texts.push(val);
|
|
2927
|
+
}
|
|
2928
|
+
}
|
|
2929
|
+
if (pageVars) {
|
|
2930
|
+
for (const val of Object.values(pageVars)) {
|
|
2931
|
+
if (typeof val === "string") texts.push(val);
|
|
2932
|
+
}
|
|
2933
|
+
}
|
|
2934
|
+
if (metadata) {
|
|
2935
|
+
for (const val of Object.values(metadata)) {
|
|
2936
|
+
if (typeof val === "string") texts.push(val);
|
|
2937
|
+
}
|
|
2938
|
+
}
|
|
2939
|
+
const stopWords = /* @__PURE__ */ new Set([
|
|
2940
|
+
"the",
|
|
2941
|
+
"a",
|
|
2942
|
+
"an",
|
|
2943
|
+
"and",
|
|
2944
|
+
"or",
|
|
2945
|
+
"but",
|
|
2946
|
+
"in",
|
|
2947
|
+
"on",
|
|
2948
|
+
"at",
|
|
2949
|
+
"to",
|
|
2950
|
+
"for",
|
|
2951
|
+
"of",
|
|
2952
|
+
"with",
|
|
2953
|
+
"el",
|
|
2954
|
+
"la",
|
|
2955
|
+
"los",
|
|
2956
|
+
"las",
|
|
2957
|
+
"un",
|
|
2958
|
+
"una",
|
|
2959
|
+
"unos",
|
|
2960
|
+
"unas",
|
|
2961
|
+
"y",
|
|
2962
|
+
"o",
|
|
2963
|
+
"pero",
|
|
2964
|
+
"en",
|
|
2965
|
+
"de",
|
|
2966
|
+
"para",
|
|
2967
|
+
"con",
|
|
2968
|
+
"por",
|
|
2969
|
+
"del",
|
|
2970
|
+
"al",
|
|
2971
|
+
"wallavi",
|
|
2972
|
+
"depot",
|
|
2973
|
+
"os",
|
|
2974
|
+
"dashboard",
|
|
2975
|
+
"agent",
|
|
2976
|
+
"studio"
|
|
2977
|
+
]);
|
|
2978
|
+
const rawTokens = texts.join(" ").toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "").split(/[^a-z0-9]/);
|
|
2979
|
+
const keywords = /* @__PURE__ */ new Set();
|
|
2980
|
+
for (const token of rawTokens) {
|
|
2981
|
+
const clean = token.trim();
|
|
2982
|
+
if (clean.length > 2 && !stopWords.has(clean)) {
|
|
2983
|
+
keywords.add(clean);
|
|
2984
|
+
if (clean.endsWith("s")) {
|
|
2985
|
+
keywords.add(clean.slice(0, -1));
|
|
2986
|
+
if (clean.endsWith("es") && clean.length > 4) {
|
|
2987
|
+
keywords.add(clean.slice(0, -2));
|
|
2988
|
+
}
|
|
2989
|
+
}
|
|
2990
|
+
}
|
|
2991
|
+
}
|
|
2992
|
+
return Array.from(keywords);
|
|
2993
|
+
}
|
|
2994
|
+
function computeRelevanceScore(item, keywords, pageUrl) {
|
|
2995
|
+
let score = 0;
|
|
2996
|
+
if (item.url && pageUrl) {
|
|
2997
|
+
score += urlRelevance(item.url, pageUrl);
|
|
2998
|
+
}
|
|
2999
|
+
const itemName = (item.name || "").toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "");
|
|
3000
|
+
const itemDesc = (item.description || item.summary || "").toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "");
|
|
3001
|
+
const itemUrl = (item.url || "").toLowerCase();
|
|
3002
|
+
const nameWords = itemName.split(/[^a-z0-9]/).filter(Boolean);
|
|
3003
|
+
for (const keyword of keywords) {
|
|
3004
|
+
if (itemName.includes(keyword)) {
|
|
3005
|
+
score += 30;
|
|
3006
|
+
if (nameWords.includes(keyword)) {
|
|
3007
|
+
score += 20;
|
|
3008
|
+
}
|
|
3009
|
+
}
|
|
3010
|
+
if (itemDesc.includes(keyword)) {
|
|
3011
|
+
score += 15;
|
|
3012
|
+
}
|
|
3013
|
+
if (itemUrl.includes(keyword)) {
|
|
3014
|
+
score += 20;
|
|
3015
|
+
}
|
|
3016
|
+
}
|
|
3017
|
+
return score;
|
|
3018
|
+
}
|
|
2906
3019
|
var STAGGER_MS = 50;
|
|
2907
3020
|
var cardBase = "ww-group ww-w-full ww-rounded-xl ww-border ww-border-border ww-bg-background ww-text-left ww-shadow-[0_1px_2px_rgba(0,0,0,0.03)] hover:ww-bg-muted/20 hover:ww-border-border/80 hover:ww-shadow-md active:ww-scale-[0.98] ww-transition-all ww-duration-200 ww-animate-in ww-fade-in ww-slide-in-from-bottom-1 focus-visible:ww-ring-2 focus-visible:ww-ring-ring/40 focus-visible:ww-outline-none";
|
|
2908
3021
|
function SectionLabel({ children }) {
|
|
@@ -3057,6 +3170,9 @@ function CommandPanel({
|
|
|
3057
3170
|
mode,
|
|
3058
3171
|
pageUrl = "",
|
|
3059
3172
|
pageTitle,
|
|
3173
|
+
pageParams,
|
|
3174
|
+
pageVars,
|
|
3175
|
+
metadata,
|
|
3060
3176
|
clientActions = [],
|
|
3061
3177
|
ragTopics = [],
|
|
3062
3178
|
ragDocuments = [],
|
|
@@ -3069,17 +3185,31 @@ function CommandPanel({
|
|
|
3069
3185
|
locale
|
|
3070
3186
|
}) {
|
|
3071
3187
|
const relevantDocs = useMemo(() => {
|
|
3072
|
-
|
|
3073
|
-
|
|
3074
|
-
|
|
3075
|
-
|
|
3076
|
-
|
|
3077
|
-
|
|
3078
|
-
|
|
3079
|
-
|
|
3080
|
-
|
|
3081
|
-
|
|
3082
|
-
|
|
3188
|
+
const keywords = getContextKeywords(pageUrl, pageTitle, pageParams, pageVars, metadata);
|
|
3189
|
+
const scored = ragDocuments.map((doc) => ({
|
|
3190
|
+
...doc,
|
|
3191
|
+
score: computeRelevanceScore(doc, keywords, pageUrl)
|
|
3192
|
+
}));
|
|
3193
|
+
return scored.sort((a, b) => b.score - a.score).slice(0, 5);
|
|
3194
|
+
}, [ragDocuments, pageUrl, pageTitle, pageParams, pageVars, metadata]);
|
|
3195
|
+
const topicQuestions = useMemo(() => {
|
|
3196
|
+
const keywords = getContextKeywords(pageUrl, pageTitle, pageParams, pageVars, metadata);
|
|
3197
|
+
const scored = ragTopics.map((topic) => ({
|
|
3198
|
+
...topic,
|
|
3199
|
+
score: computeRelevanceScore(topic, keywords),
|
|
3200
|
+
question: topicToQuestion(topic, locale)
|
|
3201
|
+
}));
|
|
3202
|
+
return scored.sort((a, b) => b.score - a.score).slice(0, 5);
|
|
3203
|
+
}, [ragTopics, pageUrl, pageTitle, pageParams, pageVars, metadata, locale]);
|
|
3204
|
+
const sortedActions = useMemo(() => {
|
|
3205
|
+
const keywords = getContextKeywords(pageUrl, pageTitle, pageParams, pageVars, metadata);
|
|
3206
|
+
const scored = clientActions.map((action) => ({
|
|
3207
|
+
...action,
|
|
3208
|
+
score: computeRelevanceScore(action, keywords)
|
|
3209
|
+
}));
|
|
3210
|
+
return scored.sort((a, b) => b.score - a.score);
|
|
3211
|
+
}, [clientActions, pageUrl, pageTitle, pageParams, pageVars, metadata]);
|
|
3212
|
+
const hasActions = sortedActions.length > 0;
|
|
3083
3213
|
const hasDocs = relevantDocs.length > 0;
|
|
3084
3214
|
const hasTopics = topicQuestions.length > 0;
|
|
3085
3215
|
const hasContent = hasActions || hasDocs || hasTopics;
|
|
@@ -3092,7 +3222,7 @@ function CommandPanel({
|
|
|
3092
3222
|
/* @__PURE__ */ jsxs("div", { className: "ww-flex-1 ww-overflow-y-auto ww-px-4 ww-pb-4 ww-flex ww-flex-col ww-gap-5", children: [
|
|
3093
3223
|
hasActions && /* @__PURE__ */ jsxs("section", { children: [
|
|
3094
3224
|
/* @__PURE__ */ jsx(SectionLabel, { children: getWidgetTranslation("quickActions", locale) }),
|
|
3095
|
-
/* @__PURE__ */ jsx("div", { className: "ww-flex ww-flex-col ww-gap-2", children:
|
|
3225
|
+
/* @__PURE__ */ jsx("div", { className: "ww-flex ww-flex-col ww-gap-2", children: sortedActions.map((action, i) => /* @__PURE__ */ jsx(
|
|
3096
3226
|
ActionCard,
|
|
3097
3227
|
{
|
|
3098
3228
|
action,
|
|
@@ -3164,7 +3294,7 @@ function CommandPanel({
|
|
|
3164
3294
|
return /* @__PURE__ */ jsxs("div", { className: "ww-px-4 ww-pt-2 ww-pb-3 ww-flex ww-flex-col ww-gap-4 ww-animate-in ww-fade-in ww-duration-300", children: [
|
|
3165
3295
|
hasActions && /* @__PURE__ */ jsxs("section", { children: [
|
|
3166
3296
|
/* @__PURE__ */ jsx(SectionLabel, { children: getWidgetTranslation("quickActions", locale) }),
|
|
3167
|
-
/* @__PURE__ */ jsx("div", { className: "ww-grid ww-grid-cols-2 ww-gap-2", children:
|
|
3297
|
+
/* @__PURE__ */ jsx("div", { className: "ww-grid ww-grid-cols-2 ww-gap-2", children: sortedActions.slice(0, 4).map((action, i) => /* @__PURE__ */ jsx(
|
|
3168
3298
|
ActionCardCompact,
|
|
3169
3299
|
{
|
|
3170
3300
|
action,
|
|
@@ -3255,6 +3385,16 @@ function ChatWidget({
|
|
|
3255
3385
|
window.addEventListener("resize", checkSize);
|
|
3256
3386
|
return () => window.removeEventListener("resize", checkSize);
|
|
3257
3387
|
}, []);
|
|
3388
|
+
useEffect(() => {
|
|
3389
|
+
if (typeof window === "undefined") return;
|
|
3390
|
+
const handleMessage = (e) => {
|
|
3391
|
+
if (e.data?.type === "wallavi:focusInput") {
|
|
3392
|
+
document.querySelector("#wallavi-chat-input")?.focus();
|
|
3393
|
+
}
|
|
3394
|
+
};
|
|
3395
|
+
window.addEventListener("message", handleMessage);
|
|
3396
|
+
return () => window.removeEventListener("message", handleMessage);
|
|
3397
|
+
}, []);
|
|
3258
3398
|
const chat = useChat({
|
|
3259
3399
|
agentId,
|
|
3260
3400
|
workspaceId,
|
|
@@ -3380,9 +3520,63 @@ function ChatWidget({
|
|
|
3380
3520
|
},
|
|
3381
3521
|
[onNavigate]
|
|
3382
3522
|
);
|
|
3523
|
+
const [activeActionIndex, setActiveActionIndex] = useState(-1);
|
|
3524
|
+
const query = chat.input.toLowerCase().trim();
|
|
3525
|
+
const matchingActions = useMemo(() => {
|
|
3526
|
+
if (!query || !showQuickActions || clientActions.length === 0) return [];
|
|
3527
|
+
const queryWords = query.normalize("NFD").replace(/[\u0300-\u036f]/g, "").split(/\s+/).filter(Boolean);
|
|
3528
|
+
if (queryWords.length === 0) return [];
|
|
3529
|
+
return clientActions.filter((action) => {
|
|
3530
|
+
const name = (action.name || "").toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "");
|
|
3531
|
+
const desc = (action.description || "").toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "");
|
|
3532
|
+
return queryWords.every((word) => {
|
|
3533
|
+
const variants = [word];
|
|
3534
|
+
if (word.endsWith("s")) {
|
|
3535
|
+
variants.push(word.slice(0, -1));
|
|
3536
|
+
if (word.endsWith("es") && word.length > 4) {
|
|
3537
|
+
variants.push(word.slice(0, -2));
|
|
3538
|
+
}
|
|
3539
|
+
}
|
|
3540
|
+
return variants.some((variant) => name.includes(variant) || desc.includes(variant));
|
|
3541
|
+
});
|
|
3542
|
+
});
|
|
3543
|
+
}, [clientActions, query, showQuickActions]);
|
|
3544
|
+
useEffect(() => {
|
|
3545
|
+
if (matchingActions.length === 0) {
|
|
3546
|
+
setActiveActionIndex(-1);
|
|
3547
|
+
} else {
|
|
3548
|
+
setActiveActionIndex(0);
|
|
3549
|
+
}
|
|
3550
|
+
}, [matchingActions]);
|
|
3551
|
+
const handleInputKeyDown = useCallback(
|
|
3552
|
+
(e) => {
|
|
3553
|
+
if (matchingActions.length === 0) return;
|
|
3554
|
+
if (e.key === "ArrowDown") {
|
|
3555
|
+
e.preventDefault();
|
|
3556
|
+
setActiveActionIndex((prev) => (prev + 1) % matchingActions.length);
|
|
3557
|
+
} else if (e.key === "ArrowUp") {
|
|
3558
|
+
e.preventDefault();
|
|
3559
|
+
setActiveActionIndex((prev) => (prev - 1 + matchingActions.length) % matchingActions.length);
|
|
3560
|
+
} else if (e.key === "Enter") {
|
|
3561
|
+
e.preventDefault();
|
|
3562
|
+
const selectedAction = matchingActions[activeActionIndex];
|
|
3563
|
+
if (selectedAction) {
|
|
3564
|
+
handleExecuteAction(selectedAction.steps);
|
|
3565
|
+
chat.setInput("");
|
|
3566
|
+
}
|
|
3567
|
+
} else if (e.key === "Escape") {
|
|
3568
|
+
e.preventDefault();
|
|
3569
|
+
chat.setInput("");
|
|
3570
|
+
}
|
|
3571
|
+
},
|
|
3572
|
+
[matchingActions, activeActionIndex, handleExecuteAction, chat]
|
|
3573
|
+
);
|
|
3383
3574
|
const commandPanelProps = {
|
|
3384
3575
|
pageUrl: userContext?.pageContext?.url,
|
|
3385
3576
|
pageTitle: userContext?.pageContext?.title,
|
|
3577
|
+
pageParams: userContext?.pageContext?.params,
|
|
3578
|
+
pageVars: userContext?.pageContext?.vars,
|
|
3579
|
+
metadata: userContext?.metadata,
|
|
3386
3580
|
clientActions: showQuickActions ? clientActions : [],
|
|
3387
3581
|
ragTopics: showRagTopics ? ragTopics : [],
|
|
3388
3582
|
ragDocuments: showRagDocuments ? ragDocuments : [],
|
|
@@ -3577,6 +3771,49 @@ function ChatWidget({
|
|
|
3577
3771
|
]
|
|
3578
3772
|
}
|
|
3579
3773
|
) }),
|
|
3774
|
+
matchingActions.length > 0 && /* @__PURE__ */ jsxs("div", { className: "ww-absolute ww-bottom-[72px] ww-left-4 ww-right-4 ww-bg-background/90 ww-backdrop-blur-md ww-border ww-border-border ww-rounded-xl ww-shadow-xl ww-z-50 ww-overflow-hidden ww-flex ww-flex-col ww-max-h-[220px] ww-animate-in ww-fade-in ww-slide-in-from-bottom-2 ww-duration-200", children: [
|
|
3775
|
+
/* @__PURE__ */ jsxs("div", { className: "ww-px-3 ww-py-2 ww-bg-muted/40 ww-border-b ww-border-border/60 ww-flex ww-items-center ww-justify-between", children: [
|
|
3776
|
+
/* @__PURE__ */ jsxs("span", { className: "ww-text-[10px] ww-font-bold ww-text-muted-foreground/80 ww-uppercase ww-tracking-wider ww-flex ww-items-center ww-gap-1.5", children: [
|
|
3777
|
+
/* @__PURE__ */ jsx("svg", { className: "ww-w-3 ww-h-3 ww-text-amber-500", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", children: /* @__PURE__ */ jsx("path", { d: "M13 2L3 14h9l-1 8 10-12h-9l1-8z" }) }),
|
|
3778
|
+
locale === "es" ? "Acciones R\xE1pidas Disponibles" : "Available Quick Actions"
|
|
3779
|
+
] }),
|
|
3780
|
+
/* @__PURE__ */ jsx("span", { className: "ww-text-[9px] ww-text-muted-foreground/80", children: locale === "es" ? "\u2191\u2193 para mover, Enter para ejecutar" : "\u2191\u2193 to navigate, Enter to run" })
|
|
3781
|
+
] }),
|
|
3782
|
+
/* @__PURE__ */ jsx("div", { className: "ww-overflow-y-auto ww-p-1.5 ww-flex ww-flex-col ww-gap-1", children: matchingActions.map((action, index) => {
|
|
3783
|
+
const isSelected = index === activeActionIndex;
|
|
3784
|
+
return /* @__PURE__ */ jsxs(
|
|
3785
|
+
"button",
|
|
3786
|
+
{
|
|
3787
|
+
onClick: () => {
|
|
3788
|
+
handleExecuteAction(action.steps);
|
|
3789
|
+
chat.setInput("");
|
|
3790
|
+
},
|
|
3791
|
+
className: cn(
|
|
3792
|
+
"ww-w-full ww-flex ww-items-start ww-gap-2.5 ww-p-2 ww-rounded-lg ww-text-left ww-transition-all ww-duration-150",
|
|
3793
|
+
isSelected ? "ww-bg-muted/90 ww-border-primary/20 ww-shadow-sm ww-scale-[0.99]" : "hover:ww-bg-muted/40"
|
|
3794
|
+
),
|
|
3795
|
+
children: [
|
|
3796
|
+
/* @__PURE__ */ jsx(
|
|
3797
|
+
"div",
|
|
3798
|
+
{
|
|
3799
|
+
className: "ww-shrink-0 ww-w-6 ww-h-6 ww-rounded-md ww-flex ww-items-center ww-justify-center ww-bg-amber-500/10 ww-text-amber-500",
|
|
3800
|
+
children: /* @__PURE__ */ jsx("svg", { className: "ww-w-3.5 ww-h-3.5", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", children: /* @__PURE__ */ jsx("path", { d: "M13 2L3 14h9l-1 8 10-12h-9l1-8z" }) })
|
|
3801
|
+
}
|
|
3802
|
+
),
|
|
3803
|
+
/* @__PURE__ */ jsxs("div", { className: "ww-flex-1 ww-min-w-0", children: [
|
|
3804
|
+
/* @__PURE__ */ jsx("span", { className: cn(
|
|
3805
|
+
"ww-text-[12px] ww-font-medium ww-block ww-truncate",
|
|
3806
|
+
isSelected ? "ww-text-foreground ww-font-semibold" : "ww-text-foreground/90"
|
|
3807
|
+
), children: action.name }),
|
|
3808
|
+
action.description && /* @__PURE__ */ jsx("span", { className: "ww-text-[10px] ww-block ww-truncate ww-text-muted-foreground", children: action.description })
|
|
3809
|
+
] }),
|
|
3810
|
+
isSelected && /* @__PURE__ */ jsx("span", { className: "ww-shrink-0 ww-text-[10px] ww-font-mono ww-bg-background ww-border ww-border-border ww-text-muted-foreground ww-px-1.5 ww-py-0.5 ww-rounded-md ww-self-center ww-opacity-90", children: "ENTER" })
|
|
3811
|
+
]
|
|
3812
|
+
},
|
|
3813
|
+
action.name
|
|
3814
|
+
);
|
|
3815
|
+
}) })
|
|
3816
|
+
] }),
|
|
3580
3817
|
/* @__PURE__ */ jsx(
|
|
3581
3818
|
ChatInput,
|
|
3582
3819
|
{
|
|
@@ -3591,6 +3828,7 @@ function ChatWidget({
|
|
|
3591
3828
|
onRegenerate: () => void chat.regenerate(),
|
|
3592
3829
|
selectedContext: chat.selectedContext,
|
|
3593
3830
|
onClearContext: () => chat.setSelectedContext(null),
|
|
3831
|
+
onKeyDown: handleInputKeyDown,
|
|
3594
3832
|
...enableVoice && voice.isSupported ? {
|
|
3595
3833
|
voiceState: voice.voiceState,
|
|
3596
3834
|
onVoiceStart: () => void voice.start(),
|
|
@@ -4217,7 +4455,7 @@ function BubbleWidget({
|
|
|
4217
4455
|
useEffect(() => {
|
|
4218
4456
|
if (!open) return;
|
|
4219
4457
|
const t = setTimeout(
|
|
4220
|
-
() => panelRef.current?.querySelector("
|
|
4458
|
+
() => panelRef.current?.querySelector("#wallavi-chat-input")?.focus(),
|
|
4221
4459
|
50
|
|
4222
4460
|
);
|
|
4223
4461
|
return () => clearTimeout(t);
|
package/dist/styles.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.ww-pointer-events-none{pointer-events:none}.ww-absolute{position:absolute}.ww-relative{position:relative}.ww-inset-0{inset:0}.ww-inset-4{inset:1rem}.ww-inset-8{inset:2rem}.ww-left-2\.5{left:.625rem}.ww-top-1\/2{top:50%}.ww-z-50{z-index:50}.ww-z-\[100\]{z-index:100}.ww-mx-0\.5{margin-left:.125rem;margin-right:.125rem}.ww-mb-1{margin-bottom:.25rem}.ww-mb-12{margin-bottom:3rem}.ww-mb-2{margin-bottom:.5rem}.ww-mb-2\.5{margin-bottom:.625rem}.ww-ml-0\.5{margin-left:.125rem}.ww-ml-1{margin-left:.25rem}.ww-mt-0\.5{margin-top:.125rem}.ww-mt-1{margin-top:.25rem}.ww-mt-1\.5{margin-top:.375rem}.ww-line-clamp-1{-webkit-line-clamp:1}.ww-line-clamp-1,.ww-line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.ww-line-clamp-2{-webkit-line-clamp:2}.ww-block{display:block}.ww-inline-block{display:inline-block}.ww-flex{display:flex}.ww-inline-flex{display:inline-flex}.ww-grid{display:grid}.ww-hidden{display:none}.ww-h-1\.5{height:.375rem}.ww-h-10{height:2.5rem}.ww-h-16{height:4rem}.ww-h-2{height:.5rem}.ww-h-2\.5{height:.625rem}.ww-h-20{height:5rem}.ww-h-3{height:.75rem}.ww-h-3\.5{height:.875rem}.ww-h-4{height:1rem}.ww-h-40{height:10rem}.ww-h-48{height:12rem}.ww-h-6{height:1.5rem}.ww-h-7{height:1.75rem}.ww-h-8{height:2rem}.ww-h-full{height:100%}.ww-max-h-32{max-height:8rem}.ww-max-h-48{max-height:12rem}.ww-max-h-\[168px\]{max-height:168px}.ww-max-h-\[180px\]{max-height:180px}.ww-min-h-\[22px\]{min-height:22px}.ww-w-0\.5{width:.125rem}.ww-w-1\.5{width:.375rem}.ww-w-10{width:2.5rem}.ww-w-16{width:4rem}.ww-w-2{width:.5rem}.ww-w-2\.5{width:.625rem}.ww-w-20{width:5rem}.ww-w-3{width:.75rem}.ww-w-3\.5{width:.875rem}.ww-w-4{width:1rem}.ww-w-48{width:12rem}.ww-w-6{width:1.5rem}.ww-w-7{width:1.75rem}.ww-w-8{width:2rem}.ww-w-\[300px\]{width:300px}.ww-w-fit{width:-moz-fit-content;width:fit-content}.ww-w-full{width:100%}.ww-min-w-0{min-width:0}.ww-max-w-\[120px\]{max-width:120px}.ww-max-w-\[170px\]{max-width:170px}.ww-max-w-\[200px\]{max-width:200px}.ww-max-w-\[78\%\]{max-width:78%}.ww-max-w-\[82\%\]{max-width:82%}.ww-max-w-none{max-width:none}.ww-flex-1{flex:1 1 0%}.ww-shrink-0{flex-shrink:0}.ww-translate-x-\[-4px\]{--tw-translate-x:-4px}.ww-rotate-180,.ww-translate-x-\[-4px\]{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))}.ww-rotate-180{--tw-rotate:180deg}.ww-scale-100{--tw-scale-x:1;--tw-scale-y:1}.ww-scale-100,.ww-scale-105{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))}.ww-scale-105{--tw-scale-x:1.05;--tw-scale-y:1.05}.ww-scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1}.ww-scale-110,.ww-scale-90{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))}.ww-scale-90{--tw-scale-x:.9;--tw-scale-y:.9}@keyframes ww-ping{75%,to{transform:scale(2);opacity:0}}.ww-animate-ping{animation:ww-ping 1s cubic-bezier(0,0,.2,1) infinite}@keyframes ww-pulse{50%{opacity:.5}}.ww-animate-pulse{animation:ww-pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes ww-spin{to{transform:rotate(1turn)}}.ww-animate-spin{animation:ww-spin 1s linear infinite}.ww-cursor-default{cursor:default}.ww-cursor-pointer{cursor:pointer}.ww-touch-none{touch-action:none}.ww-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.ww-select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.ww-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.ww-flex-row{flex-direction:row}.ww-flex-col{flex-direction:column}.ww-flex-wrap{flex-wrap:wrap}.ww-items-start{align-items:flex-start}.ww-items-end{align-items:flex-end}.ww-items-center{align-items:center}.ww-justify-end{justify-content:flex-end}.ww-justify-center{justify-content:center}.ww-justify-between{justify-content:space-between}.ww-gap-0\.5{gap:.125rem}.ww-gap-1{gap:.25rem}.ww-gap-1\.5{gap:.375rem}.ww-gap-2{gap:.5rem}.ww-gap-2\.5{gap:.625rem}.ww-gap-3\.5{gap:.875rem}.ww-gap-4{gap:1rem}.ww-gap-5{gap:1.25rem}.ww-gap-6{gap:1.5rem}.ww-gap-8{gap:2rem}.ww-divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.ww-divide-border\/40>:not([hidden])~:not([hidden]){border-color:hsl(var(--border)/.4)}.ww-overflow-hidden{overflow:hidden}.ww-overflow-y-auto{overflow-y:auto}.ww-overscroll-contain{overscroll-behavior:contain}.ww-overscroll-none{overscroll-behavior:none}.ww-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ww-whitespace-pre-wrap{white-space:pre-wrap}.\!ww-rounded-full{border-radius:9999px!important}.ww-rounded{border-radius:.25rem}.ww-rounded-2xl{border-radius:1rem}.ww-rounded-full{border-radius:9999px}.ww-rounded-lg{border-radius:var(--radius)}.ww-rounded-md{border-radius:calc(var(--radius) - 2px)}.ww-rounded-xl{border-radius:.75rem}.ww-rounded-br-2xl{border-bottom-right-radius:1rem}.ww-rounded-tl-none{border-top-left-radius:0}.ww-rounded-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}.ww-rounded-tr-sm{border-top-right-radius:calc(var(--radius) - 4px)}.ww-border{border-width:1px}.ww-border-2{border-width:2px}.ww-border-b{border-bottom-width:1px}.ww-border-l{border-left-width:1px}.ww-border-l-2{border-left-width:2px}.ww-border-t{border-top-width:1px}.ww-border-background{border-color:hsl(var(--background))}.ww-border-black\/10{border-color:rgba(0,0,0,.1)}.ww-border-border{border-color:hsl(var(--border))}.ww-border-border\/30{border-color:hsl(var(--border)/.3)}.ww-border-border\/40{border-color:hsl(var(--border)/.4)}.ww-border-border\/50{border-color:hsl(var(--border)/.5)}.ww-border-border\/60{border-color:hsl(var(--border)/.6)}.ww-border-border\/80{border-color:hsl(var(--border)/.8)}.ww-border-muted{border-color:hsl(var(--muted))}.ww-border-muted-foreground\/30{border-color:hsl(var(--muted-foreground)/.3)}.ww-border-primary\/10{border-color:hsl(var(--primary)/.1)}.ww-border-primary\/20{border-color:hsl(var(--primary)/.2)}.ww-border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.ww-border-transparent{border-color:transparent}.ww-border-white\/20{border-color:hsla(0,0%,100%,.2)}.ww-border-white\/30{border-color:hsla(0,0%,100%,.3)}.ww-bg-background{background-color:hsl(var(--background))}.ww-bg-background\/20{background-color:hsl(var(--background)/.2)}.ww-bg-background\/90{background-color:hsl(var(--background)/.9)}.ww-bg-background\/95{background-color:hsl(var(--background)/.95)}.ww-bg-black\/10{background-color:rgba(0,0,0,.1)}.ww-bg-emerald-400{--tw-bg-opacity:1;background-color:rgb(52 211 153/var(--tw-bg-opacity,1))}.ww-bg-emerald-500{--tw-bg-opacity:1;background-color:rgb(16 185 129/var(--tw-bg-opacity,1))}.ww-bg-emerald-500\/10{background-color:rgba(16,185,129,.1)}.ww-bg-emerald-500\/20{background-color:rgba(16,185,129,.2)}.ww-bg-foreground\/20{background-color:hsl(var(--foreground)/.2)}.ww-bg-foreground\/5{background-color:hsl(var(--foreground)/.05)}.ww-bg-foreground\/60{background-color:hsl(var(--foreground)/.6)}.ww-bg-indigo-500\/10{background-color:rgba(99,102,241,.1)}.ww-bg-muted{background-color:hsl(var(--muted))}.ww-bg-muted-foreground\/10{background-color:hsl(var(--muted-foreground)/.1)}.ww-bg-muted\/10{background-color:hsl(var(--muted)/.1)}.ww-bg-muted\/30{background-color:hsl(var(--muted)/.3)}.ww-bg-muted\/40{background-color:hsl(var(--muted)/.4)}.ww-bg-muted\/50{background-color:hsl(var(--muted)/.5)}.ww-bg-muted\/60{background-color:hsl(var(--muted)/.6)}.ww-bg-primary{background-color:hsl(var(--primary))}.ww-bg-primary\/10{background-color:hsl(var(--primary)/.1)}.ww-bg-primary\/5{background-color:hsl(var(--primary)/.05)}.ww-bg-purple-500\/20{background-color:rgba(168,85,247,.2)}.ww-bg-purple-500\/30{background-color:rgba(168,85,247,.3)}.ww-bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.ww-bg-transparent{background-color:transparent}.ww-bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.ww-bg-white\/10{background-color:hsla(0,0%,100%,.1)}.ww-bg-white\/15{background-color:hsla(0,0%,100%,.15)}.ww-bg-white\/20{background-color:hsla(0,0%,100%,.2)}.ww-fill-current{fill:currentColor}.ww-object-cover{-o-object-fit:cover;object-fit:cover}.ww-p-0\.5{padding:.125rem}.ww-p-1\.5{padding:.375rem}.ww-p-3{padding:.75rem}.ww-p-3\.5{padding:.875rem}.ww-px-1{padding-left:.25rem;padding-right:.25rem}.ww-px-1\.5{padding-left:.375rem;padding-right:.375rem}.ww-px-2{padding-left:.5rem;padding-right:.5rem}.ww-px-3{padding-left:.75rem;padding-right:.75rem}.ww-px-3\.5{padding-left:.875rem;padding-right:.875rem}.ww-px-4{padding-left:1rem;padding-right:1rem}.ww-py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.ww-py-1{padding-top:.25rem;padding-bottom:.25rem}.ww-py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.ww-py-2{padding-top:.5rem;padding-bottom:.5rem}.ww-py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.ww-py-3{padding-top:.75rem;padding-bottom:.75rem}.ww-py-4{padding-top:1rem;padding-bottom:1rem}.ww-pb-1\.5{padding-bottom:.375rem}.ww-pb-2{padding-bottom:.5rem}.ww-pb-3{padding-bottom:.75rem}.ww-pb-4{padding-bottom:1rem}.ww-pl-2{padding-left:.5rem}.ww-pl-7{padding-left:1.75rem}.ww-pr-0\.5{padding-right:.125rem}.ww-pr-3{padding-right:.75rem}.ww-pt-0\.5{padding-top:.125rem}.ww-pt-2{padding-top:.5rem}.ww-pt-2\.5{padding-top:.625rem}.ww-pt-4{padding-top:1rem}.ww-pt-5{padding-top:1.25rem}.ww-text-left{text-align:left}.ww-text-center{text-align:center}.ww-align-baseline{vertical-align:baseline}.ww-align-middle{vertical-align:middle}.ww-font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.ww-text-\[10\.5px\]{font-size:10.5px}.ww-text-\[10px\]{font-size:10px}.ww-text-\[11px\]{font-size:11px}.ww-text-\[12\.5px\]{font-size:12.5px}.ww-text-\[12px\]{font-size:12px}.ww-text-\[13px\]{font-size:13px}.ww-text-\[8px\]{font-size:8px}.ww-text-\[9px\]{font-size:9px}.ww-text-sm{font-size:.875rem;line-height:1.25rem}.ww-text-xs{font-size:.75rem;line-height:1rem}.ww-font-bold{font-weight:700}.ww-font-medium{font-weight:500}.ww-font-semibold{font-weight:600}.ww-uppercase{text-transform:uppercase}.ww-leading-none{line-height:1}.ww-leading-normal{line-height:1.5}.ww-leading-relaxed{line-height:1.625}.ww-leading-snug{line-height:1.375}.ww-leading-tight{line-height:1.25}.ww-tracking-\[0\.06em\]{letter-spacing:.06em}.ww-tracking-\[0\.12em\]{letter-spacing:.12em}.ww-tracking-wide{letter-spacing:.025em}.ww-tracking-wider{letter-spacing:.05em}.ww-tracking-widest{letter-spacing:.1em}.ww-text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.ww-text-black\/40{color:rgba(0,0,0,.4)}.ww-text-black\/60{color:rgba(0,0,0,.6)}.ww-text-destructive{color:hsl(var(--destructive))}.ww-text-destructive\/70{color:hsl(var(--destructive)/.7)}.ww-text-emerald-500{--tw-text-opacity:1;color:rgb(16 185 129/var(--tw-text-opacity,1))}.ww-text-foreground{color:hsl(var(--foreground))}.ww-text-foreground\/60{color:hsl(var(--foreground)/.6)}.ww-text-foreground\/70{color:hsl(var(--foreground)/.7)}.ww-text-foreground\/80{color:hsl(var(--foreground)/.8)}.ww-text-indigo-500{--tw-text-opacity:1;color:rgb(99 102 241/var(--tw-text-opacity,1))}.ww-text-inherit{color:inherit}.ww-text-muted-foreground{color:hsl(var(--muted-foreground))}.ww-text-muted-foreground\/40{color:hsl(var(--muted-foreground)/.4)}.ww-text-muted-foreground\/45{color:hsl(var(--muted-foreground)/.45)}.ww-text-muted-foreground\/50{color:hsl(var(--muted-foreground)/.5)}.ww-text-muted-foreground\/60{color:hsl(var(--muted-foreground)/.6)}.ww-text-muted-foreground\/70{color:hsl(var(--muted-foreground)/.7)}.ww-text-muted-foreground\/80{color:hsl(var(--muted-foreground)/.8)}.ww-text-primary{color:hsl(var(--primary))}.ww-text-primary-foreground{color:hsl(var(--primary-foreground))}.ww-text-primary\/60{color:hsl(var(--primary)/.6)}.ww-text-primary\/70{color:hsl(var(--primary)/.7)}.ww-text-primary\/80{color:hsl(var(--primary)/.8)}.ww-text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.ww-text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.ww-text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.ww-text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.ww-text-white\/60{color:hsla(0,0%,100%,.6)}.ww-text-white\/80{color:hsla(0,0%,100%,.8)}.ww-underline{text-decoration-line:underline}.ww-line-through{text-decoration-line:line-through}.ww-no-underline{text-decoration-line:none}.ww-decoration-foreground\/20{text-decoration-color:hsl(var(--foreground)/.2)}.ww-opacity-0{opacity:0}.ww-opacity-100{opacity:1}.ww-opacity-25{opacity:.25}.ww-opacity-30{opacity:.3}.ww-opacity-40{opacity:.4}.ww-opacity-55{opacity:.55}.ww-opacity-60{opacity:.6}.ww-opacity-70{opacity:.7}.ww-opacity-75{opacity:.75}.ww-opacity-80{opacity:.8}.ww-opacity-90{opacity:.9}.ww-shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.ww-shadow-2xl,.ww-shadow-\[0_-4px_20px_rgba\(0\,0\,0\,0\.02\)\]{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.ww-shadow-\[0_-4px_20px_rgba\(0\,0\,0\,0\.02\)\]{--tw-shadow:0 -4px 20px rgba(0,0,0,.02);--tw-shadow-colored:0 -4px 20px var(--tw-shadow-color)}.ww-shadow-\[0_1px_2px_rgba\(0\,0\,0\,0\.03\)\]{--tw-shadow:0 1px 2px rgba(0,0,0,.03);--tw-shadow-colored:0 1px 2px var(--tw-shadow-color)}.ww-shadow-\[0_1px_2px_rgba\(0\,0\,0\,0\.03\)\],.ww-shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.ww-shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.ww-shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.ww-shadow-md,.ww-shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.ww-shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.ww-shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.ww-outline-none{outline:2px solid transparent;outline-offset:2px}.ww-ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ww-ring-inset{--tw-ring-inset:inset}.ww-ring-primary\/20{--tw-ring-color:hsl(var(--primary)/0.2)}.ww-ring-primary\/60{--tw-ring-color:hsl(var(--primary)/0.6)}.ww-backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.ww-backdrop-blur-sm,.ww-backdrop-blur-xl{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)}.ww-backdrop-blur-xl{--tw-backdrop-blur:blur(24px)}.ww-transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ww-transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ww-transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ww-transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ww-duration-1000{transition-duration:1s}.ww-duration-200{transition-duration:.2s}.ww-duration-300{transition-duration:.3s}.ww-duration-500{transition-duration:.5s}.ww-duration-700{transition-duration:.7s}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);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))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);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))}}.ww-animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.ww-fade-in{--tw-enter-opacity:0}.ww-slide-in-from-bottom-1{--tw-enter-translate-y:0.25rem}.ww-slide-in-from-bottom-2{--tw-enter-translate-y:0.5rem}.ww-slide-in-from-right-2{--tw-enter-translate-x:0.5rem}.ww-duration-1000{animation-duration:1s}.ww-duration-200{animation-duration:.2s}.ww-duration-300{animation-duration:.3s}.ww-duration-500{animation-duration:.5s}.ww-duration-700{animation-duration:.7s}.wallavi-widget *,.wallavi-widget :after,.wallavi-widget :before{box-sizing:border-box;border-width:0;border-style:solid}.wallavi-widget button{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:transparent;border:none;cursor:pointer}.wallavi-widget input,.wallavi-widget select,.wallavi-widget textarea{font-family:inherit;font-size:inherit}.wallavi-widget img,.wallavi-widget video{max-width:100%;height:auto}.wallavi-widget .lk-control-bar{background:transparent!important;border:none!important;box-shadow:none!important;padding:0!important;gap:1.5rem!important;justify-content:center!important}.wallavi-widget .lk-button{background:rgba(25,25,28,.05)!important;border-radius:9999px!important;padding:1.25rem!important;color:var(--ww-fg,#19191c)!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important;border:1px solid rgba(25,25,28,.1)!important}.wallavi-widget .lk-button:hover{background:rgba(25,25,28,.1)!important;transform:scale(1.05)!important}.wallavi-widget .lk-disconnect-button{background:#ef4444!important;color:#fff!important;border:none!important}.wallavi-widget .lk-disconnect-button:hover{background:#dc2626!important}.wallavi-widget .lk-device-menu{bottom:100%!important;top:auto!important;margin-bottom:1rem!important;max-width:250px!important;width:-moz-max-content!important;width:max-content!important;left:50%!important;transform:translateX(-50%)!important;background:#fff!important;border-radius:16px!important;box-shadow:0 20px 40px -10px rgba(0,0,0,.15),0 10px 20px -10px rgba(0,0,0,.1)!important;z-index:1000!important;overflow:hidden!important;border:1px solid rgba(0,0,0,.05)!important;padding:.5rem!important}.wallavi-widget .lk-device-menu>li{padding:.75rem 1rem!important;font-size:.875rem!important;color:#19191c!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;border-radius:8px!important;transition:background .15s!important}.wallavi-widget .lk-device-menu>li:hover{background:rgba(0,0,0,.05)!important}.wallavi-widget .lk-device-menu>li.lk-active{background:rgba(0,0,0,.08)!important;font-weight:600!important}.placeholder\:ww-text-muted-foreground\/40::-moz-placeholder{color:hsl(var(--muted-foreground)/.4)}.placeholder\:ww-text-muted-foreground\/40::placeholder{color:hsl(var(--muted-foreground)/.4)}.hover\:-ww-translate-y-1:hover{--tw-translate-y:-0.25rem}.hover\:-ww-translate-y-1:hover,.hover\:ww-scale-105:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:ww-scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05}.hover\:ww-scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:ww-border-border\/80:hover{border-color:hsl(var(--border)/.8)}.hover\:ww-border-primary\/40:hover{border-color:hsl(var(--primary)/.4)}.hover\:ww-bg-accent:hover{background-color:hsl(var(--accent))}.hover\:ww-bg-foreground\/10:hover{background-color:hsl(var(--foreground)/.1)}.hover\:ww-bg-foreground\/30:hover{background-color:hsl(var(--foreground)/.3)}.hover\:ww-bg-muted:hover{background-color:hsl(var(--muted))}.hover\:ww-bg-muted\/20:hover{background-color:hsl(var(--muted)/.2)}.hover\:ww-bg-muted\/70:hover{background-color:hsl(var(--muted)/.7)}.hover\:ww-bg-primary\/10:hover{background-color:hsl(var(--primary)/.1)}.hover\:ww-bg-white\/10:hover{background-color:hsla(0,0%,100%,.1)}.hover\:ww-text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:ww-text-foreground:hover{color:hsl(var(--foreground))}.hover\:ww-text-primary:hover{color:hsl(var(--primary))}.hover\:ww-opacity-80:hover{opacity:.8}.hover\:ww-opacity-85:hover{opacity:.85}.hover\:ww-shadow-md:hover{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.hover\:ww-shadow-md:hover,.hover\:ww-shadow-sm:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:ww-shadow-sm:hover{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.hover\:ww-shadow-xl:hover{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\:ww-ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ww-ring-ring\/40:focus{--tw-ring-color:hsl(var(--ring)/0.4)}.focus-visible\:ww-outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ww-ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ww-ring-ring\/40:focus-visible{--tw-ring-color:hsl(var(--ring)/0.4)}.active\:ww-scale-95:active{--tw-scale-x:.95;--tw-scale-y:.95}.active\:ww-scale-95:active,.active\:ww-scale-\[0\.98\]:active{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))}.active\:ww-scale-\[0\.98\]:active{--tw-scale-x:0.98;--tw-scale-y:0.98}.disabled\:ww-pointer-events-none:disabled{pointer-events:none}.disabled\:ww-opacity-40:disabled{opacity:.4}.disabled\:ww-opacity-50:disabled{opacity:.5}.ww-group:hover .group-hover\:ww-translate-x-0{--tw-translate-x:0px}.ww-group:hover .group-hover\:ww-rotate-12,.ww-group:hover .group-hover\:ww-translate-x-0{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))}.ww-group:hover .group-hover\:ww-rotate-12{--tw-rotate:12deg}.ww-group:hover .group-hover\:ww-scale-105{--tw-scale-x:1.05;--tw-scale-y:1.05}.ww-group:hover .group-hover\:ww-scale-105,.ww-group:hover .group-hover\:ww-scale-110{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))}.ww-group:hover .group-hover\:ww-scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1}.ww-group:hover .group-hover\:ww-opacity-100{opacity:1}.dark\:ww-border-red-800:is(.ww-dark *){--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.dark\:ww-bg-indigo-400\/10:is(.ww-dark *){background-color:rgba(129,140,248,.1)}.dark\:ww-bg-red-950:is(.ww-dark *){--tw-bg-opacity:1;background-color:rgb(69 10 10/var(--tw-bg-opacity,1))}.dark\:ww-text-indigo-400:is(.ww-dark *){--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.dark\:ww-text-red-400:is(.ww-dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}
|
|
1
|
+
.ww-pointer-events-none{pointer-events:none}.ww-absolute{position:absolute}.ww-relative{position:relative}.ww-inset-0{inset:0}.ww-inset-4{inset:1rem}.ww-inset-8{inset:2rem}.ww-bottom-\[72px\]{bottom:72px}.ww-left-2\.5{left:.625rem}.ww-left-4{left:1rem}.ww-right-4{right:1rem}.ww-top-1\/2{top:50%}.ww-z-50{z-index:50}.ww-z-\[100\]{z-index:100}.ww-mx-0\.5{margin-left:.125rem;margin-right:.125rem}.ww-mb-1{margin-bottom:.25rem}.ww-mb-12{margin-bottom:3rem}.ww-mb-2{margin-bottom:.5rem}.ww-mb-2\.5{margin-bottom:.625rem}.ww-ml-0\.5{margin-left:.125rem}.ww-ml-1{margin-left:.25rem}.ww-mt-0\.5{margin-top:.125rem}.ww-mt-1{margin-top:.25rem}.ww-mt-1\.5{margin-top:.375rem}.ww-line-clamp-1{-webkit-line-clamp:1}.ww-line-clamp-1,.ww-line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.ww-line-clamp-2{-webkit-line-clamp:2}.ww-block{display:block}.ww-inline-block{display:inline-block}.ww-flex{display:flex}.ww-inline-flex{display:inline-flex}.ww-grid{display:grid}.ww-hidden{display:none}.ww-h-1\.5{height:.375rem}.ww-h-10{height:2.5rem}.ww-h-16{height:4rem}.ww-h-2{height:.5rem}.ww-h-2\.5{height:.625rem}.ww-h-20{height:5rem}.ww-h-3{height:.75rem}.ww-h-3\.5{height:.875rem}.ww-h-4{height:1rem}.ww-h-40{height:10rem}.ww-h-48{height:12rem}.ww-h-6{height:1.5rem}.ww-h-7{height:1.75rem}.ww-h-8{height:2rem}.ww-h-full{height:100%}.ww-max-h-32{max-height:8rem}.ww-max-h-48{max-height:12rem}.ww-max-h-\[168px\]{max-height:168px}.ww-max-h-\[180px\]{max-height:180px}.ww-max-h-\[220px\]{max-height:220px}.ww-min-h-\[22px\]{min-height:22px}.ww-w-0\.5{width:.125rem}.ww-w-1\.5{width:.375rem}.ww-w-10{width:2.5rem}.ww-w-16{width:4rem}.ww-w-2{width:.5rem}.ww-w-2\.5{width:.625rem}.ww-w-20{width:5rem}.ww-w-3{width:.75rem}.ww-w-3\.5{width:.875rem}.ww-w-4{width:1rem}.ww-w-48{width:12rem}.ww-w-6{width:1.5rem}.ww-w-7{width:1.75rem}.ww-w-8{width:2rem}.ww-w-\[300px\]{width:300px}.ww-w-fit{width:-moz-fit-content;width:fit-content}.ww-w-full{width:100%}.ww-min-w-0{min-width:0}.ww-max-w-\[120px\]{max-width:120px}.ww-max-w-\[170px\]{max-width:170px}.ww-max-w-\[200px\]{max-width:200px}.ww-max-w-\[78\%\]{max-width:78%}.ww-max-w-\[82\%\]{max-width:82%}.ww-max-w-none{max-width:none}.ww-flex-1{flex:1 1 0%}.ww-shrink-0{flex-shrink:0}.ww-translate-x-\[-4px\]{--tw-translate-x:-4px}.ww-rotate-180,.ww-translate-x-\[-4px\]{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))}.ww-rotate-180{--tw-rotate:180deg}.ww-scale-100{--tw-scale-x:1;--tw-scale-y:1}.ww-scale-100,.ww-scale-105{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))}.ww-scale-105{--tw-scale-x:1.05;--tw-scale-y:1.05}.ww-scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1}.ww-scale-110,.ww-scale-90{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))}.ww-scale-90{--tw-scale-x:.9;--tw-scale-y:.9}.ww-scale-\[0\.99\]{--tw-scale-x:0.99;--tw-scale-y:0.99;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))}@keyframes ww-ping{75%,to{transform:scale(2);opacity:0}}.ww-animate-ping{animation:ww-ping 1s cubic-bezier(0,0,.2,1) infinite}@keyframes ww-pulse{50%{opacity:.5}}.ww-animate-pulse{animation:ww-pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes ww-spin{to{transform:rotate(1turn)}}.ww-animate-spin{animation:ww-spin 1s linear infinite}.ww-cursor-default{cursor:default}.ww-cursor-pointer{cursor:pointer}.ww-touch-none{touch-action:none}.ww-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.ww-select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.ww-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.ww-flex-row{flex-direction:row}.ww-flex-col{flex-direction:column}.ww-flex-wrap{flex-wrap:wrap}.ww-items-start{align-items:flex-start}.ww-items-end{align-items:flex-end}.ww-items-center{align-items:center}.ww-justify-end{justify-content:flex-end}.ww-justify-center{justify-content:center}.ww-justify-between{justify-content:space-between}.ww-gap-0\.5{gap:.125rem}.ww-gap-1{gap:.25rem}.ww-gap-1\.5{gap:.375rem}.ww-gap-2{gap:.5rem}.ww-gap-2\.5{gap:.625rem}.ww-gap-3\.5{gap:.875rem}.ww-gap-4{gap:1rem}.ww-gap-5{gap:1.25rem}.ww-gap-6{gap:1.5rem}.ww-gap-8{gap:2rem}.ww-divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.ww-divide-border\/40>:not([hidden])~:not([hidden]){border-color:hsl(var(--border)/.4)}.ww-self-center{align-self:center}.ww-overflow-hidden{overflow:hidden}.ww-overflow-y-auto{overflow-y:auto}.ww-overscroll-contain{overscroll-behavior:contain}.ww-overscroll-none{overscroll-behavior:none}.ww-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ww-whitespace-pre-wrap{white-space:pre-wrap}.\!ww-rounded-full{border-radius:9999px!important}.ww-rounded{border-radius:.25rem}.ww-rounded-2xl{border-radius:1rem}.ww-rounded-full{border-radius:9999px}.ww-rounded-lg{border-radius:var(--radius)}.ww-rounded-md{border-radius:calc(var(--radius) - 2px)}.ww-rounded-xl{border-radius:.75rem}.ww-rounded-br-2xl{border-bottom-right-radius:1rem}.ww-rounded-tl-none{border-top-left-radius:0}.ww-rounded-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}.ww-rounded-tr-sm{border-top-right-radius:calc(var(--radius) - 4px)}.ww-border{border-width:1px}.ww-border-2{border-width:2px}.ww-border-b{border-bottom-width:1px}.ww-border-l{border-left-width:1px}.ww-border-l-2{border-left-width:2px}.ww-border-t{border-top-width:1px}.ww-border-background{border-color:hsl(var(--background))}.ww-border-black\/10{border-color:rgba(0,0,0,.1)}.ww-border-border{border-color:hsl(var(--border))}.ww-border-border\/30{border-color:hsl(var(--border)/.3)}.ww-border-border\/40{border-color:hsl(var(--border)/.4)}.ww-border-border\/50{border-color:hsl(var(--border)/.5)}.ww-border-border\/60{border-color:hsl(var(--border)/.6)}.ww-border-border\/80{border-color:hsl(var(--border)/.8)}.ww-border-muted{border-color:hsl(var(--muted))}.ww-border-muted-foreground\/30{border-color:hsl(var(--muted-foreground)/.3)}.ww-border-primary\/10{border-color:hsl(var(--primary)/.1)}.ww-border-primary\/20{border-color:hsl(var(--primary)/.2)}.ww-border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.ww-border-transparent{border-color:transparent}.ww-border-white\/20{border-color:hsla(0,0%,100%,.2)}.ww-border-white\/30{border-color:hsla(0,0%,100%,.3)}.ww-bg-amber-500\/10{background-color:rgba(245,158,11,.1)}.ww-bg-background{background-color:hsl(var(--background))}.ww-bg-background\/20{background-color:hsl(var(--background)/.2)}.ww-bg-background\/90{background-color:hsl(var(--background)/.9)}.ww-bg-background\/95{background-color:hsl(var(--background)/.95)}.ww-bg-black\/10{background-color:rgba(0,0,0,.1)}.ww-bg-emerald-400{--tw-bg-opacity:1;background-color:rgb(52 211 153/var(--tw-bg-opacity,1))}.ww-bg-emerald-500{--tw-bg-opacity:1;background-color:rgb(16 185 129/var(--tw-bg-opacity,1))}.ww-bg-emerald-500\/10{background-color:rgba(16,185,129,.1)}.ww-bg-emerald-500\/20{background-color:rgba(16,185,129,.2)}.ww-bg-foreground\/20{background-color:hsl(var(--foreground)/.2)}.ww-bg-foreground\/5{background-color:hsl(var(--foreground)/.05)}.ww-bg-foreground\/60{background-color:hsl(var(--foreground)/.6)}.ww-bg-indigo-500\/10{background-color:rgba(99,102,241,.1)}.ww-bg-muted{background-color:hsl(var(--muted))}.ww-bg-muted-foreground\/10{background-color:hsl(var(--muted-foreground)/.1)}.ww-bg-muted\/10{background-color:hsl(var(--muted)/.1)}.ww-bg-muted\/30{background-color:hsl(var(--muted)/.3)}.ww-bg-muted\/40{background-color:hsl(var(--muted)/.4)}.ww-bg-muted\/50{background-color:hsl(var(--muted)/.5)}.ww-bg-muted\/60{background-color:hsl(var(--muted)/.6)}.ww-bg-muted\/90{background-color:hsl(var(--muted)/.9)}.ww-bg-primary{background-color:hsl(var(--primary))}.ww-bg-primary\/10{background-color:hsl(var(--primary)/.1)}.ww-bg-primary\/5{background-color:hsl(var(--primary)/.05)}.ww-bg-purple-500\/20{background-color:rgba(168,85,247,.2)}.ww-bg-purple-500\/30{background-color:rgba(168,85,247,.3)}.ww-bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.ww-bg-transparent{background-color:transparent}.ww-bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.ww-bg-white\/10{background-color:hsla(0,0%,100%,.1)}.ww-bg-white\/15{background-color:hsla(0,0%,100%,.15)}.ww-bg-white\/20{background-color:hsla(0,0%,100%,.2)}.ww-fill-current{fill:currentColor}.ww-object-cover{-o-object-fit:cover;object-fit:cover}.ww-p-0\.5{padding:.125rem}.ww-p-1\.5{padding:.375rem}.ww-p-2{padding:.5rem}.ww-p-3{padding:.75rem}.ww-p-3\.5{padding:.875rem}.ww-px-1{padding-left:.25rem;padding-right:.25rem}.ww-px-1\.5{padding-left:.375rem;padding-right:.375rem}.ww-px-2{padding-left:.5rem;padding-right:.5rem}.ww-px-3{padding-left:.75rem;padding-right:.75rem}.ww-px-3\.5{padding-left:.875rem;padding-right:.875rem}.ww-px-4{padding-left:1rem;padding-right:1rem}.ww-py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.ww-py-1{padding-top:.25rem;padding-bottom:.25rem}.ww-py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.ww-py-2{padding-top:.5rem;padding-bottom:.5rem}.ww-py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.ww-py-3{padding-top:.75rem;padding-bottom:.75rem}.ww-py-4{padding-top:1rem;padding-bottom:1rem}.ww-pb-1\.5{padding-bottom:.375rem}.ww-pb-2{padding-bottom:.5rem}.ww-pb-3{padding-bottom:.75rem}.ww-pb-4{padding-bottom:1rem}.ww-pl-2{padding-left:.5rem}.ww-pl-7{padding-left:1.75rem}.ww-pr-0\.5{padding-right:.125rem}.ww-pr-3{padding-right:.75rem}.ww-pt-0\.5{padding-top:.125rem}.ww-pt-2{padding-top:.5rem}.ww-pt-2\.5{padding-top:.625rem}.ww-pt-4{padding-top:1rem}.ww-pt-5{padding-top:1.25rem}.ww-text-left{text-align:left}.ww-text-center{text-align:center}.ww-align-baseline{vertical-align:baseline}.ww-align-middle{vertical-align:middle}.ww-font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.ww-text-\[10\.5px\]{font-size:10.5px}.ww-text-\[10px\]{font-size:10px}.ww-text-\[11px\]{font-size:11px}.ww-text-\[12\.5px\]{font-size:12.5px}.ww-text-\[12px\]{font-size:12px}.ww-text-\[13px\]{font-size:13px}.ww-text-\[8px\]{font-size:8px}.ww-text-\[9px\]{font-size:9px}.ww-text-sm{font-size:.875rem;line-height:1.25rem}.ww-text-xs{font-size:.75rem;line-height:1rem}.ww-font-bold{font-weight:700}.ww-font-medium{font-weight:500}.ww-font-semibold{font-weight:600}.ww-uppercase{text-transform:uppercase}.ww-leading-none{line-height:1}.ww-leading-normal{line-height:1.5}.ww-leading-relaxed{line-height:1.625}.ww-leading-snug{line-height:1.375}.ww-leading-tight{line-height:1.25}.ww-tracking-\[0\.06em\]{letter-spacing:.06em}.ww-tracking-\[0\.12em\]{letter-spacing:.12em}.ww-tracking-wide{letter-spacing:.025em}.ww-tracking-wider{letter-spacing:.05em}.ww-tracking-widest{letter-spacing:.1em}.ww-text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.ww-text-black\/40{color:rgba(0,0,0,.4)}.ww-text-black\/60{color:rgba(0,0,0,.6)}.ww-text-destructive{color:hsl(var(--destructive))}.ww-text-destructive\/70{color:hsl(var(--destructive)/.7)}.ww-text-emerald-500{--tw-text-opacity:1;color:rgb(16 185 129/var(--tw-text-opacity,1))}.ww-text-foreground{color:hsl(var(--foreground))}.ww-text-foreground\/60{color:hsl(var(--foreground)/.6)}.ww-text-foreground\/70{color:hsl(var(--foreground)/.7)}.ww-text-foreground\/80{color:hsl(var(--foreground)/.8)}.ww-text-foreground\/90{color:hsl(var(--foreground)/.9)}.ww-text-indigo-500{--tw-text-opacity:1;color:rgb(99 102 241/var(--tw-text-opacity,1))}.ww-text-inherit{color:inherit}.ww-text-muted-foreground{color:hsl(var(--muted-foreground))}.ww-text-muted-foreground\/40{color:hsl(var(--muted-foreground)/.4)}.ww-text-muted-foreground\/45{color:hsl(var(--muted-foreground)/.45)}.ww-text-muted-foreground\/50{color:hsl(var(--muted-foreground)/.5)}.ww-text-muted-foreground\/60{color:hsl(var(--muted-foreground)/.6)}.ww-text-muted-foreground\/70{color:hsl(var(--muted-foreground)/.7)}.ww-text-muted-foreground\/80{color:hsl(var(--muted-foreground)/.8)}.ww-text-primary{color:hsl(var(--primary))}.ww-text-primary-foreground{color:hsl(var(--primary-foreground))}.ww-text-primary\/60{color:hsl(var(--primary)/.6)}.ww-text-primary\/70{color:hsl(var(--primary)/.7)}.ww-text-primary\/80{color:hsl(var(--primary)/.8)}.ww-text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.ww-text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.ww-text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.ww-text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.ww-text-white\/60{color:hsla(0,0%,100%,.6)}.ww-text-white\/80{color:hsla(0,0%,100%,.8)}.ww-underline{text-decoration-line:underline}.ww-line-through{text-decoration-line:line-through}.ww-no-underline{text-decoration-line:none}.ww-decoration-foreground\/20{text-decoration-color:hsl(var(--foreground)/.2)}.ww-opacity-0{opacity:0}.ww-opacity-100{opacity:1}.ww-opacity-25{opacity:.25}.ww-opacity-30{opacity:.3}.ww-opacity-40{opacity:.4}.ww-opacity-55{opacity:.55}.ww-opacity-60{opacity:.6}.ww-opacity-70{opacity:.7}.ww-opacity-75{opacity:.75}.ww-opacity-80{opacity:.8}.ww-opacity-90{opacity:.9}.ww-shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.ww-shadow-2xl,.ww-shadow-\[0_-4px_20px_rgba\(0\,0\,0\,0\.02\)\]{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.ww-shadow-\[0_-4px_20px_rgba\(0\,0\,0\,0\.02\)\]{--tw-shadow:0 -4px 20px rgba(0,0,0,.02);--tw-shadow-colored:0 -4px 20px var(--tw-shadow-color)}.ww-shadow-\[0_1px_2px_rgba\(0\,0\,0\,0\.03\)\]{--tw-shadow:0 1px 2px rgba(0,0,0,.03);--tw-shadow-colored:0 1px 2px var(--tw-shadow-color)}.ww-shadow-\[0_1px_2px_rgba\(0\,0\,0\,0\.03\)\],.ww-shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.ww-shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.ww-shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.ww-shadow-md,.ww-shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.ww-shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.ww-shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.ww-outline-none{outline:2px solid transparent;outline-offset:2px}.ww-ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ww-ring-inset{--tw-ring-inset:inset}.ww-ring-primary\/20{--tw-ring-color:hsl(var(--primary)/0.2)}.ww-ring-primary\/60{--tw-ring-color:hsl(var(--primary)/0.6)}.ww-backdrop-blur-md{--tw-backdrop-blur:blur(12px)}.ww-backdrop-blur-md,.ww-backdrop-blur-sm{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.ww-backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.ww-backdrop-blur-xl{--tw-backdrop-blur:blur(24px);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)}.ww-transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ww-transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ww-transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ww-transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ww-duration-1000{transition-duration:1s}.ww-duration-150{transition-duration:.15s}.ww-duration-200{transition-duration:.2s}.ww-duration-300{transition-duration:.3s}.ww-duration-500{transition-duration:.5s}.ww-duration-700{transition-duration:.7s}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);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))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);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))}}.ww-animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.ww-fade-in{--tw-enter-opacity:0}.ww-slide-in-from-bottom-1{--tw-enter-translate-y:0.25rem}.ww-slide-in-from-bottom-2{--tw-enter-translate-y:0.5rem}.ww-slide-in-from-right-2{--tw-enter-translate-x:0.5rem}.ww-duration-1000{animation-duration:1s}.ww-duration-150{animation-duration:.15s}.ww-duration-200{animation-duration:.2s}.ww-duration-300{animation-duration:.3s}.ww-duration-500{animation-duration:.5s}.ww-duration-700{animation-duration:.7s}.wallavi-widget *,.wallavi-widget :after,.wallavi-widget :before{box-sizing:border-box;border-width:0;border-style:solid}.wallavi-widget button{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:transparent;border:none;cursor:pointer}.wallavi-widget input,.wallavi-widget select,.wallavi-widget textarea{font-family:inherit;font-size:inherit}.wallavi-widget img,.wallavi-widget video{max-width:100%;height:auto}.wallavi-widget .lk-control-bar{background:transparent!important;border:none!important;box-shadow:none!important;padding:0!important;gap:1.5rem!important;justify-content:center!important}.wallavi-widget .lk-button{background:rgba(25,25,28,.05)!important;border-radius:9999px!important;padding:1.25rem!important;color:var(--ww-fg,#19191c)!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important;border:1px solid rgba(25,25,28,.1)!important}.wallavi-widget .lk-button:hover{background:rgba(25,25,28,.1)!important;transform:scale(1.05)!important}.wallavi-widget .lk-disconnect-button{background:#ef4444!important;color:#fff!important;border:none!important}.wallavi-widget .lk-disconnect-button:hover{background:#dc2626!important}.wallavi-widget .lk-device-menu{bottom:100%!important;top:auto!important;margin-bottom:1rem!important;max-width:250px!important;width:-moz-max-content!important;width:max-content!important;left:50%!important;transform:translateX(-50%)!important;background:#fff!important;border-radius:16px!important;box-shadow:0 20px 40px -10px rgba(0,0,0,.15),0 10px 20px -10px rgba(0,0,0,.1)!important;z-index:1000!important;overflow:hidden!important;border:1px solid rgba(0,0,0,.05)!important;padding:.5rem!important}.wallavi-widget .lk-device-menu>li{padding:.75rem 1rem!important;font-size:.875rem!important;color:#19191c!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;border-radius:8px!important;transition:background .15s!important}.wallavi-widget .lk-device-menu>li:hover{background:rgba(0,0,0,.05)!important}.wallavi-widget .lk-device-menu>li.lk-active{background:rgba(0,0,0,.08)!important;font-weight:600!important}.placeholder\:ww-text-muted-foreground\/40::-moz-placeholder{color:hsl(var(--muted-foreground)/.4)}.placeholder\:ww-text-muted-foreground\/40::placeholder{color:hsl(var(--muted-foreground)/.4)}.hover\:-ww-translate-y-1:hover{--tw-translate-y:-0.25rem}.hover\:-ww-translate-y-1:hover,.hover\:ww-scale-105:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:ww-scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05}.hover\:ww-scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:ww-border-border\/80:hover{border-color:hsl(var(--border)/.8)}.hover\:ww-border-primary\/40:hover{border-color:hsl(var(--primary)/.4)}.hover\:ww-bg-accent:hover{background-color:hsl(var(--accent))}.hover\:ww-bg-foreground\/10:hover{background-color:hsl(var(--foreground)/.1)}.hover\:ww-bg-foreground\/30:hover{background-color:hsl(var(--foreground)/.3)}.hover\:ww-bg-muted:hover{background-color:hsl(var(--muted))}.hover\:ww-bg-muted\/20:hover{background-color:hsl(var(--muted)/.2)}.hover\:ww-bg-muted\/40:hover{background-color:hsl(var(--muted)/.4)}.hover\:ww-bg-muted\/70:hover{background-color:hsl(var(--muted)/.7)}.hover\:ww-bg-primary\/10:hover{background-color:hsl(var(--primary)/.1)}.hover\:ww-bg-white\/10:hover{background-color:hsla(0,0%,100%,.1)}.hover\:ww-text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:ww-text-foreground:hover{color:hsl(var(--foreground))}.hover\:ww-text-primary:hover{color:hsl(var(--primary))}.hover\:ww-opacity-80:hover{opacity:.8}.hover\:ww-opacity-85:hover{opacity:.85}.hover\:ww-shadow-md:hover{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.hover\:ww-shadow-md:hover,.hover\:ww-shadow-sm:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:ww-shadow-sm:hover{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.hover\:ww-shadow-xl:hover{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\:ww-ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ww-ring-ring\/40:focus{--tw-ring-color:hsl(var(--ring)/0.4)}.focus-visible\:ww-outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ww-ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ww-ring-ring\/40:focus-visible{--tw-ring-color:hsl(var(--ring)/0.4)}.active\:ww-scale-95:active{--tw-scale-x:.95;--tw-scale-y:.95}.active\:ww-scale-95:active,.active\:ww-scale-\[0\.98\]:active{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))}.active\:ww-scale-\[0\.98\]:active{--tw-scale-x:0.98;--tw-scale-y:0.98}.disabled\:ww-pointer-events-none:disabled{pointer-events:none}.disabled\:ww-opacity-40:disabled{opacity:.4}.disabled\:ww-opacity-50:disabled{opacity:.5}.ww-group:hover .group-hover\:ww-translate-x-0{--tw-translate-x:0px}.ww-group:hover .group-hover\:ww-rotate-12,.ww-group:hover .group-hover\:ww-translate-x-0{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))}.ww-group:hover .group-hover\:ww-rotate-12{--tw-rotate:12deg}.ww-group:hover .group-hover\:ww-scale-105{--tw-scale-x:1.05;--tw-scale-y:1.05}.ww-group:hover .group-hover\:ww-scale-105,.ww-group:hover .group-hover\:ww-scale-110{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))}.ww-group:hover .group-hover\:ww-scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1}.ww-group:hover .group-hover\:ww-opacity-100{opacity:1}.dark\:ww-border-red-800:is(.ww-dark *){--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.dark\:ww-bg-indigo-400\/10:is(.ww-dark *){background-color:rgba(129,140,248,.1)}.dark\:ww-bg-red-950:is(.ww-dark *){--tw-bg-opacity:1;background-color:rgb(69 10 10/var(--tw-bg-opacity,1))}.dark\:ww-text-indigo-400:is(.ww-dark *){--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.dark\:ww-text-red-400:is(.ww-dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}
|
package/package.json
CHANGED
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
},
|
|
43
43
|
"private": false,
|
|
44
44
|
"types": "./dist/index.d.ts",
|
|
45
|
-
"version": "1.12.
|
|
45
|
+
"version": "1.12.5",
|
|
46
46
|
"scripts": {
|
|
47
47
|
"build": "tsup && pnpm build:css",
|
|
48
48
|
"build:css": "tailwindcss -i ./src/styles.css -o ./dist/styles.css --config tailwind.config.cjs --minify",
|