@smartspace/chat-ui 1.14.4-dev.88aea18 → 1.14.4-dev.b35149c
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.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +147 -1
- package/dist/index.js +1288 -489
- package/dist/index.js.map +1 -1
- package/package.json +4 -1
package/dist/index.css
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
|
|
2
2
|
|
|
3
|
-
/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border-width:0;border-style:solid;border-color:hsl(var(--border))}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media (min-width:1400px){.container{max-width:1400px}}.\!visible{visibility:visible!important}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-x-0{left:0;right:0}.-right-2{right:-.5rem}.-top-2{top:-.5rem}.bottom-1{bottom:.25rem}.right-1{right:.25rem}.right-2{right:.5rem}.top-1{top:.25rem}.top-2{top:.5rem}.z-50{z-index:50}.m-0{margin:0}.-my-1{margin-top:-.25rem;margin-bottom:-.25rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-6{margin-bottom:1.5rem}.mb-auto{margin-bottom:auto}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mt-0\.5{margin-top:.125rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.h-1{height:.25rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-20{height:5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[58px\]{height:58px}.h-full{height:100%}.max-h-60{max-height:15rem}.max-h-72{max-height:18rem}.max-h-\[400px\]{max-height:400px}.max-h-\[60\%\]{max-height:60%}.min-h-0{min-height:0}.w-10{width:2.5rem}.w-14{width:3.5rem}.w-2\.5{width:.625rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[180px\]{width:180px}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-0{min-width:0}.min-w-\[16px\]{min-width:16px}.min-w-\[180px\]{min-width:180px}.max-w-2xl{max-width:42rem}.max-w-\[9rem\]{max-width:9rem}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.rotate-180{--tw-rotate:180deg}.rotate-180,.transform{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 pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem*var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-border{border-color:hsl(var(--border))}.border-border\/60{border-color:hsl(var(--border)/.6)}.border-border\/70{border-color:hsl(var(--border)/.7)}.border-destructive{border-color:hsl(var(--destructive))}.border-destructive\/30{border-color:hsl(var(--destructive)/.3)}.border-emerald-200{--tw-border-opacity:1;border-color:rgb(167 243 208/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-input{border-color:hsl(var(--input))}.border-muted-foreground\/30{border-color:hsl(var(--muted-foreground)/.3)}.border-primary\/30{border-color:hsl(var(--primary)/.3)}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-transparent{border-color:transparent}.border-l-transparent{border-left-color:transparent}.border-t-foreground\/60{border-top-color:hsl(var(--foreground)/.6)}.bg-amber-500\/10{background-color:rgba(245,158,11,.1)}.bg-background{background-color:hsl(var(--background))}.bg-background\/90{background-color:hsl(var(--background)/.9)}.bg-border{background-color:hsl(var(--border))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive)/.1)}.bg-emerald-100{--tw-bg-opacity:1;background-color:rgb(209 250 229/var(--tw-bg-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/10{background-color:hsl(var(--muted)/.1)}.bg-muted\/20{background-color:hsl(var(--muted)/.2)}.bg-muted\/30{background-color:hsl(var(--muted)/.3)}.bg-muted\/5{background-color:hsl(var(--muted)/.05)}.bg-muted\/60{background-color:hsl(var(--muted)/.6)}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary)/.1)}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/60{background-color:hsl(var(--secondary)/.6)}.bg-transparent{background-color:transparent}.via-blue-500\/5{--tw-gradient-to:rgba(59,130,246,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(59,130,246,.05) var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-emerald-500\/5{--tw-gradient-to:rgba(16,185,129,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(16,185,129,.05) var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-primary\/5{--tw-gradient-to:hsl(var(--primary)/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),hsl(var(--primary)/0.05) var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-red-500\/5{--tw-gradient-to:rgba(239,68,68,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(239,68,68,.05) var(--tw-gradient-via-position),var(--tw-gradient-to)}.to-blue-500\/10{--tw-gradient-to:rgba(59,130,246,.1) var(--tw-gradient-to-position)}.to-emerald-500\/10{--tw-gradient-to:rgba(16,185,129,.1) var(--tw-gradient-to-position)}.to-primary\/10{--tw-gradient-to:hsl(var(--primary)/0.1) var(--tw-gradient-to-position)}.to-red-500\/10{--tw-gradient-to:rgba(239,68,68,.1) var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[1px\]{padding:1px}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-px{padding-top:1px;padding-bottom:1px}.pb-1{padding-bottom:.25rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.font-sans{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.normal-case{text-transform:none}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.leading-snug{line-height:1.375}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity,1))}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-emerald-700{--tw-text-opacity:1;color:rgb(4 120 87/var(--tw-text-opacity,1))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/80{color:hsl(var(--foreground)/.8)}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/70{color:hsl(var(--muted-foreground)/.7)}.text-muted-foreground\/80{color:hsl(var(--muted-foreground)/.8)}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.no-underline{text-decoration-line:none}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-40{opacity:.4}.opacity-60{opacity:.6}.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);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring{--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(3px + 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)}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.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}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@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))}}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.running{animation-play-state:running}.paused{animation-play-state:paused}@layer chat-ui-defaults{:root{--background:30 25% 99%;--foreground:222 47% 11%;--card:0 0% 100%;--card-foreground:222 47% 11%;--popover:0 0% 100%;--popover-foreground:222 47% 11%;--brand-accent:194.25 90.91% 34.51%;--primary:var(--brand-accent);--primary-foreground:0 0% 100%;--secondary:30 15% 95%;--secondary-foreground:222 47% 11%;--muted:30 15% 95%;--muted-foreground:215 16% 47%;--accent:var(--brand-accent);--accent-foreground:0 0% 100%;--destructive:0 84% 60%;--destructive-foreground:0 0% 100%;--border:30 15% 90%;--input:30 15% 90%;--ring:var(--brand-accent);--radius:0.75rem;--chat-area-bg:30 25% 99%;--surface-raised:0 0% 100%;--surface-hairline:30 15% 88%;--bubble-user-bg:30 15% 95%;--bubble-user-fg:222 47% 18%;--composer-shadow:0 8px 24px hsla(30,15%,70%,.18),0 1px 2px hsla(30,15%,70%,.1);--scrollbar-thumb:30 10% 78%;--star:40 90% 55%;--notification:0 80% 55%;--sidebar-background:220 43% 7%;--sidebar-foreground:0 0% 98%;--sidebar-primary:189 81% 49%;--sidebar-primary-foreground:0 0% 100%;--sidebar-accent:232 17% 18%;--sidebar-accent-foreground:0 0% 98%;--sidebar-border:232 17% 20%;--sidebar-ring:189 81% 49%}.dark{--background:222 35% 7%;--foreground:210 20% 92%;--card:224 30% 12%;--card-foreground:210 20% 92%;--popover:224 30% 12%;--popover-foreground:210 20% 92%;--brand-accent:189 81% 49%;--primary:var(--brand-accent);--primary-foreground:0 0% 100%;--secondary:224 30% 12%;--secondary-foreground:210 20% 92%;--muted:222 25% 10%;--muted-foreground:215 16% 60%;--accent:var(--brand-accent);--accent-foreground:0 0% 100%;--destructive:0 63% 31%;--destructive-foreground:210 40% 98%;--border:222 20% 22%;--input:222 20% 22%;--ring:var(--brand-accent);--radius:0.75rem;--chat-area-bg:222 35% 7%;--surface-raised:224 30% 12%;--surface-hairline:222 20% 25%;--bubble-user-bg:224 30% 12%;--bubble-user-fg:210 20% 88%;--composer-shadow:0 8px 24px rgba(0,0,0,.35);--scrollbar-thumb:222 20% 26%}}.chat-main{background-color:hsl(var(--chat-area-bg))}.chat-scroll{mask-image:linear-gradient(180deg,transparent 0,#000 32px,#000 calc(100% - 12px),transparent);-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 32px,#000 calc(100% - 12px),transparent)}.chat-column{max-width:48rem;margin-left:auto;margin-right:auto}.chat-turns>*+*{margin-top:1.75rem}.chat-bubble-user{background-color:hsl(var(--bubble-user-bg));border:1px solid hsl(var(--surface-hairline));border-radius:1rem;border-top-right-radius:.25rem;box-shadow:0 1px 2px hsla(30,15%,80%,.25);color:hsl(var(--bubble-user-fg));padding:.875rem 1.25rem}.dark .chat-bubble-user{box-shadow:0 1px 2px rgba(0,0,0,.3)}.chat-composer{background-color:hsl(var(--surface-raised));border:1px solid hsl(var(--surface-hairline));border-radius:1rem;box-shadow:var(--composer-shadow);transition:border-color .15s ease-out,box-shadow .15s ease-out}.chat-composer:focus-within{border-color:hsl(var(--brand-accent)/.5);box-shadow:0 8px 24px hsl(var(--brand-accent)/.1),0 0 0 4px hsl(var(--brand-accent)/.08)}.dark .chat-composer:focus-within{box-shadow:0 8px 24px rgba(0,0,0,.4),0 0 0 4px hsl(var(--brand-accent)/.12)}.chat-send{background-color:hsl(var(--brand-accent));color:#fff;box-shadow:0 2px 8px hsl(var(--brand-accent)/.35)}.chat-send:disabled{background-color:hsl(var(--muted));color:hsl(var(--muted-foreground));box-shadow:none}.ss-composer__actions .jsonforms-compact .ss-jsonforms-grid{gap:4px;align-items:center}.ss-composer__actions .jsonforms-compact .compact-field,.ss-composer__actions .jsonforms-compact .ss-jsonforms-textarea{width:auto;flex:0 0 auto;min-width:0}.ss-composer__actions .jsonforms-compact .w-full{width:auto}.ss-composer__actions .jsonforms-compact .justify-center{justify-content:flex-start}.chat-prose{font-size:.875rem;line-height:1.65;color:hsl(var(--foreground));overflow-wrap:break-word;word-break:break-word}.chat-prose>*+*{margin-top:.75rem}.chat-prose p{margin:0}.chat-prose strong{color:hsl(var(--foreground));font-weight:600}.chat-prose p:has(>strong:only-child){margin-top:1.1rem;margin-bottom:.15rem}.chat-prose p:has(>strong:only-child)>strong{display:inline-block;font-size:.875rem;font-weight:600;letter-spacing:-.005em}.chat-prose h1,.chat-prose h2,.chat-prose h3,.chat-prose h4{font-size:.875rem;font-weight:600;letter-spacing:-.005em;color:hsl(var(--foreground));margin-top:1.1rem;margin-bottom:.15rem;line-height:1.4}.chat-prose ol,.chat-prose ul{margin:.35rem 0 0;padding-left:0;list-style:none}.chat-prose ol+*,.chat-prose ul+*{margin-top:.85rem}.chat-prose li{position:relative;padding-left:1.5rem;margin-top:.2rem;line-height:1.5}.chat-prose li:first-child{margin-top:0}.chat-prose ul>li:before{content:"";position:absolute;left:.5rem;top:.6em;width:3px;height:3px;border-radius:50%;background:hsl(var(--muted-foreground))}.chat-prose ol{counter-reset:chat-ol}.chat-prose ol>li{counter-increment:chat-ol}.chat-prose ol>li:before{content:counter(chat-ol) ".";position:absolute;left:0;top:0;font-size:.875rem;font-weight:500;font-variant-numeric:tabular-nums;color:hsl(var(--muted-foreground));width:1.1rem;text-align:right;line-height:1.5}.chat-prose li>ol,.chat-prose li>ul{margin-top:.2rem}.chat-prose-table-wrap{margin:1rem 0;border-radius:12px;border:1px solid hsl(var(--border));background:hsl(var(--card));overflow-x:auto;max-width:100%;box-shadow:0 1px 2px hsla(30,15%,80%,.18)}.chat-prose table{width:100%;border-collapse:collapse;font-size:.8125rem}.chat-prose th{background:hsl(var(--brand-accent)/.07);font-weight:600;text-align:left;border-bottom:1px solid hsl(var(--border));letter-spacing:-.005em}.chat-prose td,.chat-prose th{color:hsl(var(--foreground));padding:.625rem .875rem}.chat-prose td{border-bottom:1px solid hsl(var(--border)/.6)}.chat-prose tr:last-child td{border-bottom:none}.chat-prose tr:hover td{background:hsl(var(--brand-accent)/.03)}.dark .chat-prose-table-wrap{box-shadow:0 1px 2px rgba(0,0,0,.35)}.chat-prose :not(pre)>code{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8125em;padding:.125rem .375rem;border-radius:4px;background:hsl(var(--brand-accent)/.08);color:hsl(var(--brand-accent));border:1px solid hsl(var(--brand-accent)/.15)}.chat-prose pre{margin:1rem 0;padding:1rem 1.125rem;border-radius:12px;background:#0c0f18;border:1px solid #2d3443;overflow-x:auto;max-width:100%;font-size:.8125rem;line-height:1.6}.chat-prose pre code{background:none;border:none;padding:0;color:#dae0e7;font-size:inherit;white-space:pre}.chat-prose a{color:hsl(var(--brand-accent));text-decoration:none;border-bottom:1px solid hsl(var(--brand-accent)/.3);transition:border-color .15s ease-out}.chat-prose a:hover{border-bottom-color:hsl(var(--brand-accent))}.chat-prose blockquote{margin:1rem 0;padding:.5rem 0 .5rem 1rem;border-left:2px solid hsl(var(--brand-accent)/.4);color:hsl(var(--muted-foreground));font-style:italic}.chat-prose hr{border:none;border-top:1px solid hsl(var(--border));margin:1.5rem 0}@keyframes chat-stream-clip{0%{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}.chat-streaming{animation:chat-stream-clip 1.8s cubic-bezier(.22,1,.36,1) forwards;-webkit-mask-image:linear-gradient(180deg,#000 0,#000 calc(100% - 28px),rgba(0,0,0,.4) calc(100% - 8px),transparent);mask-image:linear-gradient(180deg,#000 0,#000 calc(100% - 28px),rgba(0,0,0,.4) calc(100% - 8px),transparent)}@keyframes chat-caret-blink{0%,49%{opacity:1}50%,to{opacity:.15}}.chat-streaming>:last-child:after{content:"";display:inline-block;width:7px;height:1em;margin-left:4px;vertical-align:-2px;background:hsl(var(--brand-accent));border-radius:1px;animation:chat-caret-blink .85s steps(2,start) infinite;box-shadow:0 0 6px hsl(var(--brand-accent)/.55)}.chat-streaming>.chat-prose-table-wrap:last-child:after{display:block;margin:.5rem 0 0 2px}@keyframes chat-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.chat-thinking-shimmer{background-image:linear-gradient(90deg,hsl(var(--muted-foreground)) 0,hsl(var(--muted-foreground)) 35%,hsl(var(--brand-accent)) 50%,hsl(var(--muted-foreground)) 65%,hsl(var(--muted-foreground)) 100%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:chat-shimmer 2.2s linear infinite;letter-spacing:-.005em}@keyframes chat-dot-wave{0%,60%,to{transform:translateY(0);opacity:.35}30%{transform:translateY(-3px);opacity:1}}.chat-thinking-dots{display:inline-flex;align-items:flex-end;gap:3px}.chat-thinking-dots>span{width:4px;height:4px;border-radius:50%;background:hsl(var(--brand-accent));animation:chat-dot-wave 1.1s ease-in-out infinite}.chat-thinking-dots>span:nth-child(2){animation-delay:.15s}.chat-thinking-dots>span:nth-child(3){animation-delay:.3s}@media (prefers-reduced-motion:reduce){.chat-streaming,.chat-thinking-dots>span,.chat-thinking-shimmer{animation:none!important}.chat-streaming{clip-path:none;mask-image:none;-webkit-mask-image:none}}.jsonforms-compact .ss-jsonforms-grid{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start}.jsonforms-compact .ss-jsonforms-cell{flex:0 0 auto;min-width:0}.jsonforms-compact .ss-jsonforms-textarea{flex:1 1 100%}.jsonforms-compact .compact-field{width:280px;max-width:100%}@media (max-width:480px){.jsonforms-compact .compact-field{width:100%}}.md-editor,.ss-attach{position:relative}.ss-attach{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;border-radius:8px;background:hsl(var(--muted,0 0% 96%));border:1px solid hsl(var(--border,0 0% 89%));overflow:hidden;min-width:32px;min-height:32px}.ss-attach--image{padding:2px}.ss-attach__img{display:block;-o-object-fit:contain;object-fit:contain;border-radius:6px}.ss-attach__spinner{position:absolute;top:50%;left:50%;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;border:2px solid hsl(var(--muted-foreground,0 0% 40%)/.25);border-top-color:hsl(var(--foreground,0 0% 10%));animation:ss-attach-spin .7s linear infinite;pointer-events:none;z-index:1;box-sizing:border-box}@keyframes ss-attach-spin{to{transform:rotate(1turn)}}.ss-attach__remove{position:absolute;top:4px;right:4px;width:20px;height:20px;padding:0;border-radius:50%;border:1px solid hsl(var(--border,0 0% 89%));background:hsla(0,0%,100%,.95);color:hsl(var(--muted-foreground,0 0% 40%));cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:1;font:inherit;opacity:0;transition:opacity .15s ease,color .15s ease,background .15s ease;z-index:2;box-shadow:0 1px 2px rgba(0,0,0,.08)}.ss-attach:hover .ss-attach__remove,.ss-attach__remove:focus-visible{opacity:1}.ss-attach__remove:hover{color:#dc2626;background:#fff}.ss-attach__remove svg{width:12px;height:12px;display:block}.md-editor .ProseMirror{min-height:var(--md-min-height,1.6em);max-height:var(--md-max-height,none);overflow:auto;--md-pad-v:12px;--md-pad-h:14px;padding:var(--md-pad-v) var(--md-pad-h);border:1px solid #e3e3e3;border-radius:10px;line-height:1.6;outline:none}.md-editor .ProseMirror:focus{border-color:#b9d6ff;box-shadow:0 0 0 3px rgba(70,128,255,.15)}.md-editor.md-editor--readonly .ProseMirror{border:none;padding:0;box-shadow:none}.md-editor.md-editor--bare .ProseMirror{border:none;padding:0;box-shadow:none;--md-pad-v:0px;--md-pad-h:0px}.md-editor .ProseMirror a{color:#2563eb;text-decoration:underline;cursor:pointer}.ss-markdown .ss-attach__img[data-error]{background:rgba(220,38,38,.08)}.file-tag{display:inline-block;padding:0 6px;border-radius:6px;border:1px solid #a7b7e9;background:#eef2ff;font-size:.9em;color:#2b3a8a;-webkit-user-select:text;-moz-user-select:text;user-select:text;white-space:nowrap}.md-editor__ghost{position:absolute;top:var(--md-pad-v);left:var(--md-pad-h);right:var(--md-pad-h);color:#9aa2af;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:inherit;line-height:inherit}.md-editor .ProseMirror>:first-child{margin-top:0}.mention{background:#f0f9ff;border:1px solid #bae6fd;border-radius:6px;padding:0 6px;color:#0369a1}.md-editor .ss-code-block,.ss-markdown .ss-code-block{border:1px solid var(--border,#e5e7eb);border-radius:8px;background:#0b1020;color:#e6edf3;margin:.75em 0;overflow:hidden}.md-editor .ss-code-block__header,.ss-markdown .ss-code-block__header{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:hsla(0,0%,100%,.06);border-bottom:1px solid hsla(0,0%,100%,.08);font-size:12px;line-height:1}.md-editor .ss-code-block__lang,.ss-markdown .ss-code-block__lang{text-transform:uppercase;letter-spacing:.04em;color:#9ba3af;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.md-editor .ss-code-block__actions,.ss-markdown .ss-code-block__actions{display:flex;align-items:center;gap:6px}.md-editor .ss-code-block__copy,.md-editor .ss-code-block__toggle,.ss-markdown .ss-code-block__copy,.ss-markdown .ss-code-block__toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:hsla(0,0%,100%,.1);color:#e6edf3;border:1px solid hsla(0,0%,100%,.15);border-radius:6px;padding:4px 10px;font-size:12px;cursor:pointer;font-family:inherit;line-height:1}.md-editor .ss-code-block__copy:hover,.md-editor .ss-code-block__toggle:hover,.ss-markdown .ss-code-block__copy:hover,.ss-markdown .ss-code-block__toggle:hover{background:hsla(0,0%,100%,.18)}.md-editor .ss-code-block pre,.ss-markdown .ss-code-block pre{margin:0;padding:12px 14px;background:transparent;color:inherit;overflow-x:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.5;white-space:pre}.md-editor .ss-code-block pre code,.ss-markdown .ss-code-block pre code{background:transparent;color:inherit;padding:0;font:inherit}.md-editor .ss-code-block__iframe,.ss-markdown .ss-code-block__iframe{display:block;width:100%;height:500px;border:0;background:#fff;vertical-align:top;transition:opacity .2s ease}.ss-markdown .ss-code-block__preview{position:relative}.ss-markdown .ss-code-block__loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;z-index:1;color:#6b7280;font-size:12px;letter-spacing:.02em;background-color:#fff;background-image:linear-gradient(100deg,transparent 30%,rgba(0,0,0,.05) 50%,transparent 70%);background-size:200% 100%;animation:ss-code-block-shimmer 1.4s ease-in-out infinite}.ss-markdown .ss-code-block__spinner{width:22px;height:22px;border:2.5px solid rgba(0,0,0,.12);border-top-color:rgba(0,0,0,.5);border-radius:50%;animation:ss-code-block-spin .8s linear infinite}@keyframes ss-code-block-spin{to{transform:rotate(1turn)}}@keyframes ss-code-block-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.ss-markdown .ss-code-block__loading{animation:none}.ss-markdown .ss-code-block__spinner{animation-duration:1.6s}.ss-markdown .ss-code-block__iframe{transition:none}}.ss-markdown :not(pre)>code{background:hsla(44,6%,50%,.15);color:#c7254e;padding:1px 5px;border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}.ss-markdown a{color:#2563eb;text-decoration:underline}.ss-markdown details{margin:.75em 0}.ss-markdown summary{cursor:pointer;font-weight:600}.md-editor .ProseMirror :not(pre)>code{background:hsla(44,6%,50%,.15);color:#c7254e;padding:1px 5px;border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}.md-mention-menu{background:hsl(var(--background,0 0% 100%));color:var(--foreground,#111);border:1px solid var(--border,#e5e7eb);border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.12);min-width:220px;max-width:320px;overflow:hidden;z-index:1000}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.first\:mt-0:first-child{margin-top:0}.focus-within\:border-primary\/40:focus-within{border-color:hsl(var(--primary)/.4)}.hover\:border-border:hover{border-color:hsl(var(--border))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/40:hover{background-color:hsl(var(--muted)/.4)}.hover\:bg-muted\/60:hover{background-color:hsl(var(--muted)/.6)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary)/.9)}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/60:hover{background-color:hsl(var(--secondary)/.6)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary)/.8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:underline:hover{text-decoration-line:underline}.focus\:border-primary\/40:focus{border-color:hsl(var(--primary)/.4)}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\: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\:ring-primary:focus-visible{--tw-ring-color:hsl(var(--primary))}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:opacity-100{opacity:1}.dark\:via-emerald-400\/10:is(.dark *){--tw-gradient-to:rgba(52,211,153,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(52,211,153,.1) var(--tw-gradient-via-position),var(--tw-gradient-to)}.dark\:via-primary\/10:is(.dark *){--tw-gradient-to:hsl(var(--primary)/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),hsl(var(--primary)/0.1) var(--tw-gradient-via-position),var(--tw-gradient-to)}.dark\:via-red-400\/10:is(.dark *){--tw-gradient-to:hsla(0,91%,71%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),hsla(0,91%,71%,.1) var(--tw-gradient-via-position),var(--tw-gradient-to)}.dark\:to-emerald-400\/20:is(.dark *){--tw-gradient-to:rgba(52,211,153,.2) var(--tw-gradient-to-position)}.dark\:to-primary\/20:is(.dark *){--tw-gradient-to:hsl(var(--primary)/0.2) var(--tw-gradient-to-position)}.dark\:to-red-400\/20:is(.dark *){--tw-gradient-to:hsla(0,91%,71%,.2) var(--tw-gradient-to-position)}.dark\:text-amber-400:is(.dark *){--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}@media not all and (min-width:640px){.max-sm\:hidden{display:none}.max-sm\:max-w-\[180px\]{max-width:180px}}@media (min-width:640px){.sm\:inline{display:inline}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:768px){.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.\[\&\>button\]\:h-6>button{height:1.5rem}.\[\&\>button\]\:w-6>button{width:1.5rem}.\[\&\>div\]\:\!block>div{display:block!important}@media(hover:hover){.\[\@media\(hover\:hover\)\]\:opacity-0{opacity:0}.group:hover .\[\@media\(hover\:hover\)\]\:group-hover\:opacity-100{opacity:1}}
|
|
3
|
+
/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border-width:0;border-style:solid;border-color:hsl(var(--border))}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media (min-width:1400px){.container{max-width:1400px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-x-0{left:0;right:0}.-right-2{right:-.5rem}.-top-2{top:-.5rem}.bottom-1{bottom:.25rem}.right-1{right:.25rem}.right-2{right:.5rem}.top-1{top:.25rem}.top-2{top:.5rem}.z-50{z-index:50}.m-0{margin:0}.-my-1{margin-top:-.25rem;margin-bottom:-.25rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-6{margin-bottom:1.5rem}.mb-auto{margin-bottom:auto}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.h-1{height:.25rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-20{height:5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[58px\]{height:58px}.h-full{height:100%}.max-h-60{max-height:15rem}.max-h-72{max-height:18rem}.max-h-\[400px\]{max-height:400px}.max-h-\[60\%\]{max-height:60%}.min-h-0{min-height:0}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-14{width:3.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[180px\]{width:180px}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-0{min-width:0}.min-w-\[16px\]{min-width:16px}.min-w-\[180px\]{min-width:180px}.max-w-2xl{max-width:42rem}.max-w-\[9rem\]{max-width:9rem}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.translate-x-0{--tw-translate-x:0px}.translate-x-0,.translate-x-5{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))}.translate-x-5{--tw-translate-x:1.25rem}.rotate-180{--tw-rotate:180deg}.rotate-180,.transform{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 ping{75%,to{transform:scale(2);opacity:0}}.animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-y{resize:vertical}.resize{resize:both}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem*var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.rounded{border-radius:.25rem}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-border{border-color:hsl(var(--border))}.border-border\/60{border-color:hsl(var(--border)/.6)}.border-border\/70{border-color:hsl(var(--border)/.7)}.border-destructive{border-color:hsl(var(--destructive))}.border-destructive\/30{border-color:hsl(var(--destructive)/.3)}.border-emerald-200{--tw-border-opacity:1;border-color:rgb(167 243 208/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-input{border-color:hsl(var(--input))}.border-muted-foreground\/30{border-color:hsl(var(--muted-foreground)/.3)}.border-primary\/30{border-color:hsl(var(--primary)/.3)}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-transparent{border-color:transparent}.border-l-transparent{border-left-color:transparent}.border-t-current{border-top-color:currentColor}.border-t-foreground\/60{border-top-color:hsl(var(--foreground)/.6)}.bg-amber-500\/10{background-color:rgba(245,158,11,.1)}.bg-background{background-color:hsl(var(--background))}.bg-background\/90{background-color:hsl(var(--background)/.9)}.bg-border{background-color:hsl(var(--border))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive)/.1)}.bg-destructive\/30{background-color:hsl(var(--destructive)/.3)}.bg-emerald-100{--tw-bg-opacity:1;background-color:rgb(209 250 229/var(--tw-bg-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-input{background-color:hsl(var(--input))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/10{background-color:hsl(var(--muted)/.1)}.bg-muted\/20{background-color:hsl(var(--muted)/.2)}.bg-muted\/30{background-color:hsl(var(--muted)/.3)}.bg-muted\/5{background-color:hsl(var(--muted)/.05)}.bg-muted\/60{background-color:hsl(var(--muted)/.6)}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary)/.1)}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/60{background-color:hsl(var(--secondary)/.6)}.bg-transparent{background-color:transparent}.via-blue-500\/5{--tw-gradient-to:rgba(59,130,246,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(59,130,246,.05) var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-emerald-500\/5{--tw-gradient-to:rgba(16,185,129,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(16,185,129,.05) var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-primary\/5{--tw-gradient-to:hsl(var(--primary)/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),hsl(var(--primary)/0.05) var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-red-500\/5{--tw-gradient-to:rgba(239,68,68,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(239,68,68,.05) var(--tw-gradient-via-position),var(--tw-gradient-to)}.to-blue-500\/10{--tw-gradient-to:rgba(59,130,246,.1) var(--tw-gradient-to-position)}.to-emerald-500\/10{--tw-gradient-to:rgba(16,185,129,.1) var(--tw-gradient-to-position)}.to-primary\/10{--tw-gradient-to:hsl(var(--primary)/0.1) var(--tw-gradient-to-position)}.to-red-500\/10{--tw-gradient-to:rgba(239,68,68,.1) var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[1px\]{padding:1px}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-px{padding-top:1px;padding-bottom:1px}.pb-1{padding-bottom:.25rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.font-sans{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.normal-case{text-transform:none}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-4{line-height:1rem}.leading-none{line-height:1}.leading-snug{line-height:1.375}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity,1))}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-emerald-700{--tw-text-opacity:1;color:rgb(4 120 87/var(--tw-text-opacity,1))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/80{color:hsl(var(--foreground)/.8)}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/70{color:hsl(var(--muted-foreground)/.7)}.text-muted-foreground\/80{color:hsl(var(--muted-foreground)/.8)}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.no-underline{text-decoration-line:none}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.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);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring{--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(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring,.ring-0{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.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)}.ring-ring{--tw-ring-color:hsl(var(--ring))}.ring-offset-2{--tw-ring-offset-width:2px}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.blur{--tw-blur:blur(8px)}.blur,.invert{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert:invert(100%)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.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}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@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))}}.running{animation-play-state:running}.paused{animation-play-state:paused}@layer chat-ui-defaults{:root{--background:30 25% 99%;--foreground:222 47% 11%;--card:0 0% 100%;--card-foreground:222 47% 11%;--popover:0 0% 100%;--popover-foreground:222 47% 11%;--brand-accent:194.25 90.91% 34.51%;--primary:var(--brand-accent);--primary-foreground:0 0% 100%;--secondary:30 15% 95%;--secondary-foreground:222 47% 11%;--muted:30 15% 95%;--muted-foreground:215 16% 47%;--accent:var(--brand-accent);--accent-foreground:0 0% 100%;--destructive:0 84% 60%;--destructive-foreground:0 0% 100%;--border:30 15% 90%;--input:30 15% 90%;--ring:var(--brand-accent);--radius:0.75rem;--chat-area-bg:30 25% 99%;--surface-raised:0 0% 100%;--surface-hairline:30 15% 88%;--bubble-user-bg:30 15% 95%;--bubble-user-fg:222 47% 18%;--composer-shadow:0 8px 24px hsla(30,15%,70%,.18),0 1px 2px hsla(30,15%,70%,.1);--scrollbar-thumb:30 10% 78%;--star:40 90% 55%;--notification:0 80% 55%;--sidebar-background:220 43% 7%;--sidebar-foreground:0 0% 98%;--sidebar-primary:189 81% 49%;--sidebar-primary-foreground:0 0% 100%;--sidebar-accent:232 17% 18%;--sidebar-accent-foreground:0 0% 98%;--sidebar-border:232 17% 20%;--sidebar-ring:189 81% 49%}.dark{--background:222 35% 7%;--foreground:210 20% 92%;--card:224 30% 12%;--card-foreground:210 20% 92%;--popover:224 30% 12%;--popover-foreground:210 20% 92%;--brand-accent:189 81% 49%;--primary:var(--brand-accent);--primary-foreground:0 0% 100%;--secondary:224 30% 12%;--secondary-foreground:210 20% 92%;--muted:222 25% 10%;--muted-foreground:215 16% 60%;--accent:var(--brand-accent);--accent-foreground:0 0% 100%;--destructive:0 63% 31%;--destructive-foreground:210 40% 98%;--border:222 20% 22%;--input:222 20% 22%;--ring:var(--brand-accent);--radius:0.75rem;--chat-area-bg:222 35% 7%;--surface-raised:224 30% 12%;--surface-hairline:222 20% 25%;--bubble-user-bg:224 30% 12%;--bubble-user-fg:210 20% 88%;--composer-shadow:0 8px 24px rgba(0,0,0,.35);--scrollbar-thumb:222 20% 26%}}.chat-main{background-color:hsl(var(--chat-area-bg))}.chat-scroll{mask-image:linear-gradient(180deg,transparent 0,#000 32px,#000 calc(100% - 12px),transparent);-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 32px,#000 calc(100% - 12px),transparent)}.chat-column{max-width:48rem;margin-left:auto;margin-right:auto}.chat-turns>*+*{margin-top:1.75rem}.chat-bubble-user{background-color:hsl(var(--bubble-user-bg));border:1px solid hsl(var(--surface-hairline));border-radius:1rem;border-top-right-radius:.25rem;box-shadow:0 1px 2px hsla(30,15%,80%,.25);color:hsl(var(--bubble-user-fg));padding:.875rem 1.25rem}.dark .chat-bubble-user{box-shadow:0 1px 2px rgba(0,0,0,.3)}.chat-composer{background-color:hsl(var(--surface-raised));border:1px solid hsl(var(--surface-hairline));border-radius:1rem;box-shadow:var(--composer-shadow);transition:border-color .15s ease-out,box-shadow .15s ease-out}.chat-composer:focus-within{border-color:hsl(var(--brand-accent)/.5);box-shadow:0 8px 24px hsl(var(--brand-accent)/.1),0 0 0 4px hsl(var(--brand-accent)/.08)}.dark .chat-composer:focus-within{box-shadow:0 8px 24px rgba(0,0,0,.4),0 0 0 4px hsl(var(--brand-accent)/.12)}.chat-send{background-color:hsl(var(--brand-accent));color:#fff;box-shadow:0 2px 8px hsl(var(--brand-accent)/.35)}.chat-send:disabled{background-color:hsl(var(--muted));color:hsl(var(--muted-foreground));box-shadow:none}.ss-composer__actions .jsonforms-compact .ss-jsonforms-grid{gap:4px;align-items:center}.ss-composer__actions .jsonforms-compact .compact-field,.ss-composer__actions .jsonforms-compact .ss-jsonforms-textarea{width:auto;flex:0 0 auto;min-width:0}.ss-composer__actions .jsonforms-compact .w-full{width:auto}.ss-composer__actions .jsonforms-compact .justify-center{justify-content:flex-start}.ss-variables-panel .jsonforms-compact .ss-jsonforms-grid{flex-direction:column;align-items:stretch;gap:12px}.ss-variables-panel .jsonforms-compact .compact-field,.ss-variables-panel .jsonforms-compact .ss-jsonforms-cell{width:100%}.control.root input,.control.root select,.control.root textarea{display:block;width:100%;padding:.5rem .75rem;font-size:.875rem;color:hsl(var(--foreground));background-color:hsl(var(--background));border:1px solid hsl(var(--input));border-radius:.5rem;outline:none;transition:border-color .15s ease-out,box-shadow .15s ease-out}.control.root input:focus,.control.root select:focus,.control.root textarea:focus{border-color:hsl(var(--brand-accent)/.5);box-shadow:0 0 0 3px hsl(var(--brand-accent)/.12)}.control.root input:disabled,.control.root select:disabled,.control.root textarea:disabled{opacity:.6;cursor:not-allowed}.control.root input.invalid,.control.root select.invalid,.control.root textarea.invalid{border-color:hsl(var(--destructive))}.control.root .validation.input-description{margin-top:.25rem;font-size:.75rem;color:hsl(var(--muted-foreground))}.chat-prose{font-size:.875rem;line-height:1.65;color:hsl(var(--foreground));overflow-wrap:break-word;word-break:break-word}.chat-prose>*+*{margin-top:.75rem}.chat-prose p{margin:0}.chat-prose strong{color:hsl(var(--foreground));font-weight:600}.chat-prose p:has(>strong:only-child){margin-top:1.1rem;margin-bottom:.15rem}.chat-prose p:has(>strong:only-child)>strong{display:inline-block;font-size:.875rem;font-weight:600;letter-spacing:-.005em}.chat-prose h1,.chat-prose h2,.chat-prose h3,.chat-prose h4{font-size:.875rem;font-weight:600;letter-spacing:-.005em;color:hsl(var(--foreground));margin-top:1.1rem;margin-bottom:.15rem;line-height:1.4}.chat-prose ol,.chat-prose ul{margin:.35rem 0 0;padding-left:0;list-style:none}.chat-prose ol+*,.chat-prose ul+*{margin-top:.85rem}.chat-prose li{position:relative;padding-left:1.5rem;margin-top:.2rem;line-height:1.5}.chat-prose li:first-child{margin-top:0}.chat-prose ul>li:before{content:"";position:absolute;left:.5rem;top:.6em;width:3px;height:3px;border-radius:50%;background:hsl(var(--muted-foreground))}.chat-prose ol{counter-reset:chat-ol}.chat-prose ol>li{counter-increment:chat-ol}.chat-prose ol>li:before{content:counter(chat-ol) ".";position:absolute;left:0;top:0;font-size:.875rem;font-weight:500;font-variant-numeric:tabular-nums;color:hsl(var(--muted-foreground));width:1.1rem;text-align:right;line-height:1.5}.chat-prose li>ol,.chat-prose li>ul{margin-top:.2rem}.chat-prose-table-wrap{margin:1rem 0;border-radius:12px;border:1px solid hsl(var(--border));background:hsl(var(--card));overflow-x:auto;max-width:100%;box-shadow:0 1px 2px hsla(30,15%,80%,.18)}.chat-prose table{width:100%;border-collapse:collapse;font-size:.8125rem}.chat-prose th{background:hsl(var(--brand-accent)/.07);font-weight:600;text-align:left;border-bottom:1px solid hsl(var(--border));letter-spacing:-.005em}.chat-prose td,.chat-prose th{color:hsl(var(--foreground));padding:.625rem .875rem}.chat-prose td{border-bottom:1px solid hsl(var(--border)/.6)}.chat-prose tr:last-child td{border-bottom:none}.chat-prose tr:hover td{background:hsl(var(--brand-accent)/.03)}.dark .chat-prose-table-wrap{box-shadow:0 1px 2px rgba(0,0,0,.35)}.chat-prose :not(pre)>code{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8125em;padding:.125rem .375rem;border-radius:4px;background:hsl(var(--brand-accent)/.08);color:hsl(var(--brand-accent));border:1px solid hsl(var(--brand-accent)/.15)}.chat-prose pre{margin:1rem 0;padding:1rem 1.125rem;border-radius:12px;background:#0c0f18;border:1px solid #2d3443;overflow-x:auto;max-width:100%;font-size:.8125rem;line-height:1.6}.chat-prose pre code{background:none;border:none;padding:0;color:#dae0e7;font-size:inherit;white-space:pre}.chat-prose a{color:hsl(var(--brand-accent));text-decoration:none;border-bottom:1px solid hsl(var(--brand-accent)/.3);transition:border-color .15s ease-out}.chat-prose a:hover{border-bottom-color:hsl(var(--brand-accent))}.chat-prose blockquote{margin:1rem 0;padding:.5rem 0 .5rem 1rem;border-left:2px solid hsl(var(--brand-accent)/.4);color:hsl(var(--muted-foreground));font-style:italic}.chat-prose hr{border:none;border-top:1px solid hsl(var(--border));margin:1.5rem 0}@keyframes chat-stream-clip{0%{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}.chat-streaming{animation:chat-stream-clip 1.8s cubic-bezier(.22,1,.36,1) forwards;-webkit-mask-image:linear-gradient(180deg,#000 0,#000 calc(100% - 28px),rgba(0,0,0,.4) calc(100% - 8px),transparent);mask-image:linear-gradient(180deg,#000 0,#000 calc(100% - 28px),rgba(0,0,0,.4) calc(100% - 8px),transparent)}@keyframes chat-caret-blink{0%,49%{opacity:1}50%,to{opacity:.15}}.chat-streaming>:last-child:after{content:"";display:inline-block;width:7px;height:1em;margin-left:4px;vertical-align:-2px;background:hsl(var(--brand-accent));border-radius:1px;animation:chat-caret-blink .85s steps(2,start) infinite;box-shadow:0 0 6px hsl(var(--brand-accent)/.55)}.chat-streaming>.chat-prose-table-wrap:last-child:after{display:block;margin:.5rem 0 0 2px}@keyframes chat-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.chat-thinking-shimmer{background-image:linear-gradient(90deg,hsl(var(--muted-foreground)) 0,hsl(var(--muted-foreground)) 35%,hsl(var(--brand-accent)) 50%,hsl(var(--muted-foreground)) 65%,hsl(var(--muted-foreground)) 100%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:chat-shimmer 2.2s linear infinite;letter-spacing:-.005em}@keyframes chat-dot-wave{0%,60%,to{transform:translateY(0);opacity:.35}30%{transform:translateY(-3px);opacity:1}}.chat-thinking-dots{display:inline-flex;align-items:flex-end;gap:3px}.chat-thinking-dots>span{width:4px;height:4px;border-radius:50%;background:hsl(var(--brand-accent));animation:chat-dot-wave 1.1s ease-in-out infinite}.chat-thinking-dots>span:nth-child(2){animation-delay:.15s}.chat-thinking-dots>span:nth-child(3){animation-delay:.3s}@media (prefers-reduced-motion:reduce){.chat-streaming,.chat-thinking-dots>span,.chat-thinking-shimmer{animation:none!important}.chat-streaming{clip-path:none;mask-image:none;-webkit-mask-image:none}}.jsonforms-compact .ss-jsonforms-grid{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start}.jsonforms-compact .ss-jsonforms-cell{flex:0 0 auto;min-width:0}.jsonforms-compact .ss-jsonforms-textarea{flex:1 1 100%}.jsonforms-compact .compact-field{width:280px;max-width:100%}@media (max-width:480px){.jsonforms-compact .compact-field{width:100%}}.md-editor,.ss-attach{position:relative}.ss-attach{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;border-radius:8px;background:hsl(var(--muted,0 0% 96%));border:1px solid hsl(var(--border,0 0% 89%));overflow:hidden;min-width:32px;min-height:32px}.ss-attach--image{padding:2px}.ss-attach__img{display:block;-o-object-fit:contain;object-fit:contain;border-radius:6px}.ss-attach__spinner{position:absolute;top:50%;left:50%;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;border:2px solid hsl(var(--muted-foreground,0 0% 40%)/.25);border-top-color:hsl(var(--foreground,0 0% 10%));animation:ss-attach-spin .7s linear infinite;pointer-events:none;z-index:1;box-sizing:border-box}@keyframes ss-attach-spin{to{transform:rotate(1turn)}}.ss-attach__remove{position:absolute;top:4px;right:4px;width:20px;height:20px;padding:0;border-radius:50%;border:1px solid hsl(var(--border,0 0% 89%));background:hsla(0,0%,100%,.95);color:hsl(var(--muted-foreground,0 0% 40%));cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:1;font:inherit;opacity:0;transition:opacity .15s ease,color .15s ease,background .15s ease;z-index:2;box-shadow:0 1px 2px rgba(0,0,0,.08)}.ss-attach:hover .ss-attach__remove,.ss-attach__remove:focus-visible{opacity:1}.ss-attach__remove:hover{color:#dc2626;background:#fff}.ss-attach__remove svg{width:12px;height:12px;display:block}.md-editor .ProseMirror{min-height:var(--md-min-height,1.6em);max-height:var(--md-max-height,none);overflow:auto;--md-pad-v:12px;--md-pad-h:14px;padding:var(--md-pad-v) var(--md-pad-h);border:1px solid #e3e3e3;border-radius:10px;line-height:1.6;outline:none}.md-editor .ProseMirror:focus{border-color:#b9d6ff;box-shadow:0 0 0 3px rgba(70,128,255,.15)}.md-editor.md-editor--readonly .ProseMirror{border:none;padding:0;box-shadow:none}.md-editor.md-editor--bare .ProseMirror{border:none;padding:0;box-shadow:none;--md-pad-v:0px;--md-pad-h:0px}.md-editor .ProseMirror a{color:#2563eb;text-decoration:underline;cursor:pointer}.ss-markdown .ss-attach__img[data-error]{background:rgba(220,38,38,.08)}.file-tag{display:inline-block;padding:0 6px;border-radius:6px;border:1px solid #a7b7e9;background:#eef2ff;font-size:.9em;color:#2b3a8a;-webkit-user-select:text;-moz-user-select:text;user-select:text;white-space:nowrap}.md-editor__ghost{position:absolute;top:var(--md-pad-v);left:var(--md-pad-h);right:var(--md-pad-h);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.md-editor__dictation-ghost,.md-editor__ghost{color:#9aa2af;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;font:inherit;line-height:inherit}.md-editor__dictation-ghost{white-space:pre-wrap}.md-editor__dictation-dots{display:inline-flex;align-items:center;gap:3px;margin-left:4px;line-height:0;vertical-align:middle}.md-editor__dictation-dots>span{width:4px;height:4px;border-radius:50%;background:currentColor;animation:chat-dot-wave 1.1s ease-in-out infinite}.md-editor__dictation-dots>span:nth-child(2){animation-delay:.15s}.md-editor__dictation-dots>span:nth-child(3){animation-delay:.3s}.md-editor .ProseMirror>:first-child{margin-top:0}.mention{background:#f0f9ff;border:1px solid #bae6fd;border-radius:6px;padding:0 6px;color:#0369a1}.md-editor .ss-code-block,.ss-markdown .ss-code-block{border:1px solid var(--border,#e5e7eb);border-radius:8px;background:#0b1020;color:#e6edf3;margin:.75em 0;overflow:hidden}.md-editor .ss-code-block__header,.ss-markdown .ss-code-block__header{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:hsla(0,0%,100%,.06);border-bottom:1px solid hsla(0,0%,100%,.08);font-size:12px;line-height:1}.md-editor .ss-code-block__lang,.ss-markdown .ss-code-block__lang{text-transform:uppercase;letter-spacing:.04em;color:#9ba3af;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.md-editor .ss-code-block__actions,.ss-markdown .ss-code-block__actions{display:flex;align-items:center;gap:6px}.md-editor .ss-code-block__copy,.md-editor .ss-code-block__toggle,.ss-markdown .ss-code-block__copy,.ss-markdown .ss-code-block__toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:hsla(0,0%,100%,.1);color:#e6edf3;border:1px solid hsla(0,0%,100%,.15);border-radius:6px;padding:4px 10px;font-size:12px;cursor:pointer;font-family:inherit;line-height:1}.md-editor .ss-code-block__copy:hover,.md-editor .ss-code-block__toggle:hover,.ss-markdown .ss-code-block__copy:hover,.ss-markdown .ss-code-block__toggle:hover{background:hsla(0,0%,100%,.18)}.md-editor .ss-code-block pre,.ss-markdown .ss-code-block pre{margin:0;padding:12px 14px;background:transparent;color:inherit;overflow-x:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.5;white-space:pre}.md-editor .ss-code-block pre code,.ss-markdown .ss-code-block pre code{background:transparent;color:inherit;padding:0;font:inherit}.md-editor .ss-code-block__iframe,.ss-markdown .ss-code-block__iframe{display:block;width:100%;height:500px;border:0;background:#fff;vertical-align:top;transition:opacity .2s ease}.ss-markdown .ss-code-block__preview{position:relative}.ss-markdown .ss-code-block__loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;z-index:1;color:#6b7280;font-size:12px;letter-spacing:.02em;background-color:#fff;background-image:linear-gradient(100deg,transparent 30%,rgba(0,0,0,.05) 50%,transparent 70%);background-size:200% 100%;animation:ss-code-block-shimmer 1.4s ease-in-out infinite}.ss-markdown .ss-code-block__spinner{width:22px;height:22px;border:2.5px solid rgba(0,0,0,.12);border-top-color:rgba(0,0,0,.5);border-radius:50%;animation:ss-code-block-spin .8s linear infinite}@keyframes ss-code-block-spin{to{transform:rotate(1turn)}}@keyframes ss-code-block-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.ss-markdown .ss-code-block__loading{animation:none}.ss-markdown .ss-code-block__spinner{animation-duration:1.6s}.ss-markdown .ss-code-block__iframe{transition:none}}.ss-markdown :not(pre)>code{background:hsla(44,6%,50%,.15);color:#c7254e;padding:1px 5px;border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}.ss-markdown a{color:#2563eb;text-decoration:underline}.ss-markdown details{margin:.75em 0}.ss-markdown summary{cursor:pointer;font-weight:600}.md-editor .ProseMirror :not(pre)>code{background:hsla(44,6%,50%,.15);color:#c7254e;padding:1px 5px;border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}.md-mention-menu{background:hsl(var(--background,0 0% 100%));color:var(--foreground,#111);border:1px solid var(--border,#e5e7eb);border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.12);min-width:220px;max-width:320px;overflow:hidden;z-index:1250}.md-editor__has-dictation-ghost br.ProseMirror-trailingBreak{display:none}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.first\:mt-0:first-child{margin-top:0}.hover\:border-border:hover{border-color:hsl(var(--border))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/40:hover{background-color:hsl(var(--muted)/.4)}.hover\:bg-muted\/60:hover{background-color:hsl(var(--muted)/.6)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary)/.9)}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/60:hover{background-color:hsl(var(--secondary)/.6)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary)/.8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:underline:hover{text-decoration-line:underline}.focus\:border-primary\/40:focus{border-color:hsl(var(--primary)/.4)}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\: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\:ring-primary:focus-visible{--tw-ring-color:hsl(var(--primary))}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:hsl(var(--background))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.group:hover .group-hover\:opacity-100{opacity:1}.dark\:via-emerald-400\/10:is(.dark *){--tw-gradient-to:rgba(52,211,153,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(52,211,153,.1) var(--tw-gradient-via-position),var(--tw-gradient-to)}.dark\:via-primary\/10:is(.dark *){--tw-gradient-to:hsl(var(--primary)/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),hsl(var(--primary)/0.1) var(--tw-gradient-via-position),var(--tw-gradient-to)}.dark\:via-red-400\/10:is(.dark *){--tw-gradient-to:hsla(0,91%,71%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),hsla(0,91%,71%,.1) var(--tw-gradient-via-position),var(--tw-gradient-to)}.dark\:to-emerald-400\/20:is(.dark *){--tw-gradient-to:rgba(52,211,153,.2) var(--tw-gradient-to-position)}.dark\:to-primary\/20:is(.dark *){--tw-gradient-to:hsl(var(--primary)/0.2) var(--tw-gradient-to-position)}.dark\:to-red-400\/20:is(.dark *){--tw-gradient-to:hsla(0,91%,71%,.2) var(--tw-gradient-to-position)}.dark\:text-amber-400:is(.dark *){--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}@media not all and (min-width:640px){.max-sm\:hidden{display:none}.max-sm\:max-w-\[180px\]{max-width:180px}}@media (min-width:640px){.sm\:inline{display:inline}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:768px){.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.\[\&\>button\]\:h-6>button{height:1.5rem}.\[\&\>button\]\:w-6>button{width:1.5rem}.\[\&\>div\]\:\!block>div{display:block!important}@media(hover:hover){.\[\@media\(hover\:hover\)\]\:opacity-0{opacity:0}.group:hover .\[\@media\(hover\:hover\)\]\:group-hover\:opacity-100{opacity:1}}
|
package/dist/index.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/shared/markdown/styles.css","../src/chat-variables/VariablesForm.css"],"sourcesContent":["/* Base editor container */\n.md-editor {\n position: relative;\n}\n\n.ss-attach {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n vertical-align: middle;\n border-radius: 8px;\n background: hsl(var(--muted, 0 0% 96%));\n border: 1px solid hsl(var(--border, 0 0% 89%));\n overflow: hidden;\n min-width: 32px;\n min-height: 32px;\n}\n\n.ss-attach--image {\n padding: 2px;\n}\n\n.ss-attach__img {\n display: block;\n -o-object-fit: contain;\n object-fit: contain;\n border-radius: 6px;\n}\n\n/* Loading spinner overlay shared by Milkdown node view and read-only renderer */\n.ss-attach__spinner {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 22px;\n height: 22px;\n margin: -11px 0 0 -11px;\n border-radius: 50%;\n border: 2px solid hsl(var(--muted-foreground, 0 0% 40%) / 0.25);\n border-top-color: hsl(var(--foreground, 0 0% 10%));\n animation: ss-attach-spin 0.7s linear infinite;\n pointer-events: none;\n z-index: 1;\n box-sizing: border-box;\n}\n\n@keyframes ss-attach-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n/* Remove (X) button — only present in editable Milkdown node view. */\n.ss-attach__remove {\n position: absolute;\n top: 4px;\n right: 4px;\n width: 20px;\n height: 20px;\n padding: 0;\n border-radius: 50%;\n border: 1px solid hsl(var(--border, 0 0% 89%));\n background: rgba(255, 255, 255, 0.95);\n color: hsl(var(--muted-foreground, 0 0% 40%));\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n line-height: 1;\n font: inherit;\n opacity: 0;\n transition: opacity 0.15s ease, color 0.15s ease, background 0.15s ease;\n z-index: 2;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);\n}\n\n.ss-attach:hover .ss-attach__remove,\n.ss-attach__remove:focus-visible {\n opacity: 1;\n}\n\n.ss-attach__remove:hover {\n color: #dc2626;\n background: #fff;\n}\n\n.ss-attach__remove svg {\n width: 12px;\n height: 12px;\n display: block;\n}\n\n.md-editor .ProseMirror {\n /* Height controls via CSS variables set on the root element */\n min-height: var(--md-min-height, 1.6em);\n max-height: var(--md-max-height, none);\n overflow: auto; /* will only scroll when max-height is exceeded */\n /* Expose padding as variables for consistent placeholder alignment */\n --md-pad-v: 12px;\n --md-pad-h: 14px;\n padding: var(--md-pad-v) var(--md-pad-h);\n border: 1px solid #e3e3e3;\n border-radius: 10px;\n line-height: 1.6;\n outline: none;\n}\n\n/* Focus ring */\n.md-editor .ProseMirror:focus {\n border-color: #b9d6ff;\n box-shadow: 0 0 0 3px rgba(70, 128, 255, 0.15);\n}\n\n/* Readonly appearance: remove border and padding to blend into bubbles */\n.md-editor.md-editor--readonly .ProseMirror {\n border: none;\n padding: 0;\n box-shadow: none;\n}\n\n/* Bare composer appearance (no border or padding regardless of editable) */\n.md-editor.md-editor--bare .ProseMirror {\n border: none;\n padding: 0;\n box-shadow: none;\n /* Ensure placeholder aligns to the start of content when bare */\n --md-pad-v: 0px;\n --md-pad-h: 0px;\n}\n\n/* Links (autolinked bare URLs and markdown-syntax links) */\n.md-editor .ProseMirror a {\n color: #2563eb;\n text-decoration: underline;\n cursor: pointer;\n}\n\n/* Read-only: error state for ss-file image attachments. The SsImage renderer\n sets `data-error` when the file resolver hook rejects. */\n.ss-markdown .ss-attach__img[data-error] {\n background: rgba(220, 38, 38, 0.08);\n}\n\n/* Custom inline file-tag */\n.file-tag {\n display: inline-block;\n padding: 0 6px;\n border-radius: 6px;\n border: 1px solid #a7b7e9;\n background: #eef2ff;\n font-size: 0.9em;\n color: #2b3a8a;\n -webkit-user-select: text;\n -moz-user-select: text;\n user-select: text; /* allow selection across it */\n white-space: nowrap;\n}\n\n/* Ghost placeholder for empty editable state */\n.md-editor__ghost {\n position: absolute;\n top: var(--md-pad-v); /* align with ProseMirror padding */\n left: var(--md-pad-h); /* align with ProseMirror padding */\n right: var(--md-pad-h);\n color: #9aa2af;\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font: inherit;\n line-height: inherit;\n}\n\n/* Normalize top margin so caret height is consistent when empty */\n.md-editor .ProseMirror > :first-child {\n margin-top: 0;\n}\n\n/* Mention (placeholder) – tweak as desired */\n.mention {\n background: #f0f9ff;\n border: 1px solid #bae6fd;\n border-radius: 6px;\n padding: 0 6px;\n color: #0369a1;\n}\n\n/* Code block wrapper — shared by the Milkdown editor node view\n (`.md-editor` scope) and the react-markdown read-only renderer\n (`.ss-markdown` scope). Keep selectors in sync. */\n.md-editor .ss-code-block,\n.ss-markdown .ss-code-block {\n border: 1px solid var(--border, #e5e7eb);\n border-radius: 8px;\n background: #0b1020;\n color: #e6edf3;\n margin: 0.75em 0;\n overflow: hidden;\n}\n\n.md-editor .ss-code-block__header,\n.ss-markdown .ss-code-block__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 6px 10px;\n background: rgba(255, 255, 255, 0.06);\n border-bottom: 1px solid rgba(255, 255, 255, 0.08);\n font-size: 12px;\n line-height: 1;\n}\n\n.md-editor .ss-code-block__lang,\n.ss-markdown .ss-code-block__lang {\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: #9ba3af;\n font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n}\n\n.md-editor .ss-code-block__actions,\n.ss-markdown .ss-code-block__actions {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.md-editor .ss-code-block__toggle,\n.md-editor .ss-code-block__copy,\n.ss-markdown .ss-code-block__toggle,\n.ss-markdown .ss-code-block__copy {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background: rgba(255, 255, 255, 0.1);\n color: #e6edf3;\n border: 1px solid rgba(255, 255, 255, 0.15);\n border-radius: 6px;\n padding: 4px 10px;\n font-size: 12px;\n cursor: pointer;\n font-family: inherit;\n line-height: 1;\n}\n\n.md-editor .ss-code-block__toggle:hover,\n.md-editor .ss-code-block__copy:hover,\n.ss-markdown .ss-code-block__toggle:hover,\n.ss-markdown .ss-code-block__copy:hover {\n background: rgba(255, 255, 255, 0.18);\n}\n\n.md-editor .ss-code-block pre,\n.ss-markdown .ss-code-block pre {\n margin: 0;\n padding: 12px 14px;\n background: transparent;\n color: inherit;\n overflow-x: auto;\n font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n font-size: 13px;\n line-height: 1.5;\n white-space: pre;\n}\n\n.md-editor .ss-code-block pre code,\n.ss-markdown .ss-code-block pre code {\n background: transparent;\n color: inherit;\n padding: 0;\n font: inherit;\n}\n\n.md-editor .ss-code-block__iframe,\n.ss-markdown .ss-code-block__iframe {\n display: block;\n width: 100%;\n /* Initial height before the height reporter postMessages in the real size\n (capped in JS by MAX_IFRAME_HEIGHT). */\n height: 500px;\n border: 0;\n background: #ffffff;\n /* Kill the baseline gap under replaced elements (iframe is inline by\n default), which otherwise adds ~4px of empty space below the preview. */\n vertical-align: top;\n /* Fade in once the rendered preview replaces the loading shimmer. */\n transition: opacity 0.2s ease;\n}\n\n/* Loading state shown while the previewed HTML is still streaming in or the\n iframe hasn't reported its measured height yet. Sits on a white backdrop so\n there's no dark flash before a (white) chart appears, and is covered by an\n absolutely-positioned shimmer so the box keeps a stable size. */\n.ss-markdown .ss-code-block__preview {\n position: relative;\n}\n\n.ss-markdown .ss-code-block__loading {\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 10px;\n z-index: 1;\n color: #6b7280;\n font-size: 12px;\n letter-spacing: 0.02em;\n background-color: #ffffff;\n background-image: linear-gradient(\n 100deg,\n rgba(0, 0, 0, 0) 30%,\n rgba(0, 0, 0, 0.05) 50%,\n rgba(0, 0, 0, 0) 70%\n );\n background-size: 200% 100%;\n animation: ss-code-block-shimmer 1.4s ease-in-out infinite;\n}\n\n.ss-markdown .ss-code-block__spinner {\n width: 22px;\n height: 22px;\n border: 2.5px solid rgba(0, 0, 0, 0.12);\n border-top-color: rgba(0, 0, 0, 0.5);\n border-radius: 50%;\n animation: ss-code-block-spin 0.8s linear infinite;\n}\n\n@keyframes ss-code-block-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes ss-code-block-shimmer {\n 0% {\n background-position: 200% 0;\n }\n 100% {\n background-position: -200% 0;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .ss-markdown .ss-code-block__loading {\n animation: none;\n }\n .ss-markdown .ss-code-block__spinner {\n animation-duration: 1.6s;\n }\n .ss-markdown .ss-code-block__iframe {\n transition: none;\n }\n}\n\n/* Inline code in read-only messages — matches the Milkdown editor's\n inline code treatment. */\n.ss-markdown :not(pre) > code {\n background: rgba(135, 131, 120, 0.15);\n color: #c7254e;\n padding: 1px 5px;\n border-radius: 4px;\n font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n font-size: 0.9em;\n}\n\n/* Read-only: anchors should feel clickable. */\n.ss-markdown a {\n color: #2563eb;\n text-decoration: underline;\n}\n\n/* Read-only: give <details>/<summary> sensible defaults. Most browser UAs\n already render the triangle, but we tidy spacing. */\n.ss-markdown details {\n margin: 0.75em 0;\n}\n\n.ss-markdown summary {\n cursor: pointer;\n font-weight: 600;\n}\n\n/* Inline code */\n.md-editor .ProseMirror :not(pre) > code {\n background: rgba(135, 131, 120, 0.15);\n color: #c7254e;\n padding: 1px 5px;\n border-radius: 4px;\n font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n font-size: 0.9em;\n}\n\n/* Mentions popup */\n.md-mention-menu {\n background: hsl(var(--background, 0 0% 100%));\n color: var(--foreground, #111);\n border: 1px solid var(--border, #e5e7eb);\n border-radius: 8px;\n box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);\n min-width: 220px;\n max-width: 320px;\n overflow: hidden;\n z-index: 1000;\n}\n","/* Horizontal wrap layout for variables (no forced stretching).\n The gap matches the reference composer's action bar, where the pills sit 4px\n apart; the larger row gap only shows once they wrap onto a second line. */\n.jsonforms-compact .ss-jsonforms-grid {\n display: flex;\n flex-wrap: wrap;\n gap: 6px 4px;\n align-items: center;\n}\n\n/* Each variable is its own flex item */\n.jsonforms-compact .ss-jsonforms-cell {\n flex: 0 0 auto;\n min-width: 0;\n}\n\n/* Let long/tall fields take a full row when present */\n.jsonforms-compact .ss-jsonforms-textarea {\n flex: 1 1 100%;\n}\n\n/* Keep compact fields at a comfortable fixed width */\n.jsonforms-compact .compact-field {\n width: 280px;\n max-width: 100%;\n}\n\n/* On very small screens, let it shrink gracefully */\n@media (max-width: 480px) {\n .jsonforms-compact .compact-field {\n width: 100%; /* full width on phones */\n }\n}\n"],"mappings":";AACA,CAAC;AACC,YAAU;AACZ;AAEA,CAAC;AACC,YAAU;AACV,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,kBAAgB;AAChB,iBAAe;AACf,cAAY,IAAI,IAAI,OAAO,EAAE,EAAE,GAAG;AAClC,UAAQ,IAAI,MAAM,IAAI,IAAI,QAAQ,EAAE,EAAE,GAAG;AACzC,YAAU;AACV,aAAW;AACX,cAAY;AACd;AAEA,CAAC;AACC,WAAS;AACX;AAEA,CAAC;AACC,WAAS;AACT,iBAAe;AACZ,cAAY;AACf,iBAAe;AACjB;AAGA,CAAC;AACC,YAAU;AACV,OAAK;AACL,QAAM;AACN,SAAO;AACP,UAAQ;AACR,UAAQ,MAAM,EAAE,EAAE;AAClB,iBAAe;AACf,UAAQ,IAAI,MAAM,IAAI,IAAI,kBAAkB,EAAE,EAAE,GAAG,KAAK,EAAE;AAC1D,oBAAkB,IAAI,IAAI,YAAY,EAAE,EAAE,GAAG;AAC7C,aAAW,eAAe,KAAK,OAAO;AACtC,kBAAgB;AAChB,WAAS;AACT,cAAY;AACd;AAEA,WANa;AAOX;AACE,eAAW,OAAO;AACpB;AACF;AAGA,CAAC;AACC,YAAU;AACV,OAAK;AACL,SAAO;AACP,SAAO;AACP,UAAQ;AACR,WAAS;AACT,iBAAe;AACf,UAAQ,IAAI,MAAM,IAAI,IAAI,QAAQ,EAAE,EAAE,GAAG;AACzC,cAAY,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAChC,SAAO,IAAI,IAAI,kBAAkB,EAAE,EAAE,GAAG;AACxC,UAAQ;AACR,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,eAAa;AACb,QAAM;AACN,WAAS;AACT;AAAA,IAAY,QAAQ,MAAM,IAAI;AAAA,IAAE,MAAM,MAAM,IAAI;AAAA,IAAE,WAAW,MAAM;AACnE,WAAS;AACT,cAAY,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACtC;AAEA,CAxEC,SAwES,OAAO,CAvBhB;AAwBD,CAxBC,iBAwBiB;AAChB,WAAS;AACX;AAEA,CA5BC,iBA4BiB;AAChB,SAAO;AACP,cAAY;AACd;AAEA,CAjCC,kBAiCkB;AACjB,SAAO;AACP,UAAQ;AACR,WAAS;AACX;AAEA,CA5FC,UA4FU,CAAC;AAEV,cAAY,IAAI,eAAe,EAAE;AACjC,cAAY,IAAI,eAAe,EAAE;AACjC,YAAU;AAEV,cAAY;AACZ,cAAY;AACZ,WAAS,IAAI,YAAY,IAAI;AAC7B,UAAQ,IAAI,MAAM;AAClB,iBAAe;AACf,eAAa;AACb,WAAS;AACX;AAGA,CA5GC,UA4GU,CAhBC,WAgBW;AACrB,gBAAc;AACd,cAAY,EAAE,EAAE,EAAE,IAAI,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE;AAC3C;AAGA,CAlHC,SAkHS,CAAC,oBAAoB,CAtBnB;AAuBV,UAAQ;AACR,WAAS;AACT,cAAY;AACd;AAGA,CAzHC,SAyHS,CAAC,gBAAgB,CA7Bf;AA8BV,UAAQ;AACR,WAAS;AACT,cAAY;AAEZ,cAAY;AACZ,cAAY;AACd;AAGA,CAnIC,UAmIU,CAvCC,YAuCY;AACtB,SAAO;AACP,mBAAiB;AACjB,UAAQ;AACV;AAIA,CAAC,YAAY,CArHZ,cAqH2B,CAAC;AAC3B,cAAY,KAAK,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE;AAChC;AAGA,CAAC;AACC,WAAS;AACT,WAAS,EAAE;AACX,iBAAe;AACf,UAAQ,IAAI,MAAM;AAClB,cAAY;AACZ,aAAW;AACX,SAAO;AACP,uBAAqB;AAClB,oBAAkB;AACb,eAAa;AACrB,eAAa;AACf;AAGA,CAAC;AACC,YAAU;AACV,OAAK,IAAI;AACT,QAAM,IAAI;AACV,SAAO,IAAI;AACX,SAAO;AACP,kBAAgB;AAChB,uBAAqB;AAClB,oBAAkB;AACb,eAAa;AACrB,eAAa;AACb,YAAU;AACV,iBAAe;AACf,QAAM;AACN,eAAa;AACf;AAGA,CAjLC,UAiLU,CArFC,YAqFY,EAAE;AACxB,cAAY;AACd;AAGA,CAAC;AACC,cAAY;AACZ,UAAQ,IAAI,MAAM;AAClB,iBAAe;AACf,WAAS,EAAE;AACX,SAAO;AACT;AAKA,CAjMC,UAiMU,CAAC;AACZ,CAvDC,YAuDY,CADD;AAEV,UAAQ,IAAI,MAAM,IAAI,QAAQ,EAAE;AAChC,iBAAe;AACf,cAAY;AACZ,SAAO;AACP,UAAQ,OAAO;AACf,YAAU;AACZ;AAEA,CA3MC,UA2MU,CAAC;AACZ,CAjEC,YAiEY,CADD;AAEV,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,WAAS,IAAI;AACb,cAAY,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAChC,iBAAe,IAAI,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAC7C,aAAW;AACX,eAAa;AACf;AAEA,CAvNC,UAuNU,CAAC;AACZ,CA7EC,YA6EY,CADD;AAEV,kBAAgB;AAChB,kBAAgB;AAChB,SAAO;AACP;AAAA,IAAa,YAAY;AAAA,IAAE,cAAc;AAAA,IAAE,KAAK;AAAA,IAAE,QAAQ;AAAA,IAAE;AAC9D;AAEA,CA/NC,UA+NU,CAAC;AACZ,CArFC,YAqFY,CADD;AAEV,WAAS;AACT,eAAa;AACb,OAAK;AACP;AAEA,CAtOC,UAsOU,CAAC;AACZ,CAvOC,UAuOU,CAAC;AACZ,CA7FC,YA6FY,CAFD;AAGZ,CA9FC,YA8FY,CAFD;AAGV,sBAAoB;AACjB,mBAAiB;AACZ,cAAY;AACpB,cAAY,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAChC,SAAO;AACP,UAAQ,IAAI,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AACtC,iBAAe;AACf,WAAS,IAAI;AACb,aAAW;AACX,UAAQ;AACR,eAAa;AACb,eAAa;AACf;AAEA,CAxPC,UAwPU,CAlBC,qBAkBqB;AACjC,CAzPC,UAyPU,CAlBC,mBAkBmB;AAC/B,CA/GC,YA+GY,CApBD,qBAoBuB;AACnC,CAhHC,YAgHY,CApBD,mBAoBqB;AAC/B,cAAY,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAClC;AAEA,CA/PC,UA+PU,CA9DC,cA8Dc;AAC1B,CArHC,YAqHY,CA/DD,cA+DgB;AAC1B,UAAQ;AACR,WAAS,KAAK;AACd,cAAY;AACZ,SAAO;AACP,cAAY;AACZ;AAAA,IAAa,YAAY;AAAA,IAAE,cAAc;AAAA,IAAE,KAAK;AAAA,IAAE,QAAQ;AAAA,IAAE;AAC5D,aAAW;AACX,eAAa;AACb,eAAa;AACf;AAEA,CA5QC,UA4QU,CA3EC,cA2Ec,IAAI;AAC9B,CAlIC,YAkIY,CA5ED,cA4EgB,IAAI;AAC9B,cAAY;AACZ,SAAO;AACP,WAAS;AACT,QAAM;AACR;AAEA,CApRC,UAoRU,CAAC;AACZ,CA1IC,YA0IY,CADD;AAEV,WAAS;AACT,SAAO;AAGP,UAAQ;AACR,UAAQ;AACR,cAAY;AAGZ,kBAAgB;AAEhB,cAAY,QAAQ,KAAK;AAC3B;AAMA,CA7JC,YA6JY,CAAC;AACZ,YAAU;AACZ;AAEA,CAjKC,YAiKY,CAAC;AACZ,YAAU;AACV,SAAO;AACP,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,mBAAiB;AACjB,OAAK;AACL,WAAS;AACT,SAAO;AACP,aAAW;AACX,kBAAgB;AAChB,oBAAkB;AAClB;AAAA,IAAkB;AAAA,MAChB,MADgB;AAAA,MAEhB,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,GAFD;AAAA,MAGhB,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,GAHJ;AAAA,MAIhB,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG;AAEnB,mBAAiB,KAAK;AACtB,aAAW,sBAAsB,KAAK,YAAY;AACpD;AAEA,CAxLC,YAwLY,CAAC;AACZ,SAAO;AACP,UAAQ;AACR,UAAQ,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAClC,oBAAkB,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAChC,iBAAe;AACf,aAAW,mBAAmB,KAAK,OAAO;AAC5C;AAEA,WAHa;AAIX;AACE,eAAW,OAAO;AACpB;AACF;AAEA,WAlBa;AAmBX;AACE,yBAAqB,KAAK;AAC5B;AACA;AACE,yBAAqB,MAAM;AAC7B;AACF;AAEA,QAAO,wBAAyB;AAC9B,GAjND,YAiNc,CAhDD;AAiDV,eAAW;AACb;AACA,GApND,YAoNc,CA5BD;AA6BV,wBAAoB;AACtB;AACA,GAvND,YAuNc,CA9EH;AA+ER,gBAAY;AACd;AACF;AAIA,CA9NC,YA8NY,KAAK,KAAK,EAAE;AACvB,cAAY,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAChC,SAAO;AACP,WAAS,IAAI;AACb,iBAAe;AACf;AAAA,IAAa,YAAY;AAAA,IAAE,cAAc;AAAA,IAAE,KAAK;AAAA,IAAE,QAAQ;AAAA,IAAE;AAC5D,aAAW;AACb;AAGA,CAxOC,YAwOY;AACX,SAAO;AACP,mBAAiB;AACnB;AAIA,CA/OC,YA+OY;AACX,UAAQ,OAAO;AACjB;AAEA,CAnPC,YAmPY;AACX,UAAQ;AACR,eAAa;AACf;AAGA,CApYC,UAoYU,CAxSC,YAwSY,KAAK,KAAK,EAAE;AAClC,cAAY,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAChC,SAAO;AACP,WAAS,IAAI;AACb,iBAAe;AACf;AAAA,IAAa,YAAY;AAAA,IAAE,cAAc;AAAA,IAAE,KAAK;AAAA,IAAE,QAAQ;AAAA,IAAE;AAC5D,aAAW;AACb;AAGA,CAAC;AACC,cAAY,IAAI,IAAI,YAAY,EAAE,EAAE,GAAG;AACvC,SAAO,IAAI,YAAY,EAAE;AACzB,UAAQ,IAAI,MAAM,IAAI,QAAQ,EAAE;AAChC,iBAAe;AACf,cAAY,EAAE,KAAK,KAAK,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACtC,aAAW;AACX,aAAW;AACX,YAAU;AACV,WAAS;AACX;;;ACtZA,CAAC,kBAAkB,CAAC;AAClB,WAAS;AACT,aAAW;AACX,OAAK,IAAI;AACT,eAAa;AACf;AAGA,CARC,kBAQkB,CAAC;AAClB,QAAM,EAAE,EAAE;AACV,aAAW;AACb;AAGA,CAdC,kBAckB,CAAC;AAClB,QAAM,EAAE,EAAE;AACZ;AAGA,CAnBC,kBAmBkB,CAAC;AAClB,SAAO;AACP,aAAW;AACb;AAGA,QAAO,WAAY;AACjB,GA1BD,kBA0BoB,CAPD;AAQhB,WAAO;AACT;AACF;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/shared/markdown/styles.css","../src/chat-variables/VariablesForm.css"],"sourcesContent":["/* Base editor container */\n.md-editor {\n position: relative;\n}\n\n.ss-attach {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n vertical-align: middle;\n border-radius: 8px;\n background: hsl(var(--muted, 0 0% 96%));\n border: 1px solid hsl(var(--border, 0 0% 89%));\n overflow: hidden;\n min-width: 32px;\n min-height: 32px;\n}\n\n.ss-attach--image {\n padding: 2px;\n}\n\n.ss-attach__img {\n display: block;\n -o-object-fit: contain;\n object-fit: contain;\n border-radius: 6px;\n}\n\n/* Loading spinner overlay shared by Milkdown node view and read-only renderer */\n.ss-attach__spinner {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 22px;\n height: 22px;\n margin: -11px 0 0 -11px;\n border-radius: 50%;\n border: 2px solid hsl(var(--muted-foreground, 0 0% 40%) / 0.25);\n border-top-color: hsl(var(--foreground, 0 0% 10%));\n animation: ss-attach-spin 0.7s linear infinite;\n pointer-events: none;\n z-index: 1;\n box-sizing: border-box;\n}\n\n@keyframes ss-attach-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n/* Remove (X) button — only present in editable Milkdown node view. */\n.ss-attach__remove {\n position: absolute;\n top: 4px;\n right: 4px;\n width: 20px;\n height: 20px;\n padding: 0;\n border-radius: 50%;\n border: 1px solid hsl(var(--border, 0 0% 89%));\n background: rgba(255, 255, 255, 0.95);\n color: hsl(var(--muted-foreground, 0 0% 40%));\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n line-height: 1;\n font: inherit;\n opacity: 0;\n transition: opacity 0.15s ease, color 0.15s ease, background 0.15s ease;\n z-index: 2;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);\n}\n\n.ss-attach:hover .ss-attach__remove,\n.ss-attach__remove:focus-visible {\n opacity: 1;\n}\n\n.ss-attach__remove:hover {\n color: #dc2626;\n background: #fff;\n}\n\n.ss-attach__remove svg {\n width: 12px;\n height: 12px;\n display: block;\n}\n\n.md-editor .ProseMirror {\n /* Height controls via CSS variables set on the root element */\n min-height: var(--md-min-height, 1.6em);\n max-height: var(--md-max-height, none);\n overflow: auto; /* will only scroll when max-height is exceeded */\n /* Expose padding as variables for consistent placeholder alignment */\n --md-pad-v: 12px;\n --md-pad-h: 14px;\n padding: var(--md-pad-v) var(--md-pad-h);\n border: 1px solid #e3e3e3;\n border-radius: 10px;\n line-height: 1.6;\n outline: none;\n}\n\n/* Focus ring */\n.md-editor .ProseMirror:focus {\n border-color: #b9d6ff;\n box-shadow: 0 0 0 3px rgba(70, 128, 255, 0.15);\n}\n\n/* Readonly appearance: remove border and padding to blend into bubbles */\n.md-editor.md-editor--readonly .ProseMirror {\n border: none;\n padding: 0;\n box-shadow: none;\n}\n\n/* Bare composer appearance (no border or padding regardless of editable) */\n.md-editor.md-editor--bare .ProseMirror {\n border: none;\n padding: 0;\n box-shadow: none;\n /* Ensure placeholder aligns to the start of content when bare */\n --md-pad-v: 0px;\n --md-pad-h: 0px;\n}\n\n/* Links (autolinked bare URLs and markdown-syntax links) */\n.md-editor .ProseMirror a {\n color: #2563eb;\n text-decoration: underline;\n cursor: pointer;\n}\n\n/* Read-only: error state for ss-file image attachments. The SsImage renderer\n sets `data-error` when the file resolver hook rejects. */\n.ss-markdown .ss-attach__img[data-error] {\n background: rgba(220, 38, 38, 0.08);\n}\n\n/* Custom inline file-tag */\n.file-tag {\n display: inline-block;\n padding: 0 6px;\n border-radius: 6px;\n border: 1px solid #a7b7e9;\n background: #eef2ff;\n font-size: 0.9em;\n color: #2b3a8a;\n -webkit-user-select: text;\n -moz-user-select: text;\n user-select: text; /* allow selection across it */\n white-space: nowrap;\n}\n\n/* Ghost placeholder for empty editable state */\n.md-editor__ghost {\n position: absolute;\n top: var(--md-pad-v); /* align with ProseMirror padding */\n left: var(--md-pad-h); /* align with ProseMirror padding */\n right: var(--md-pad-h);\n color: #9aa2af;\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font: inherit;\n line-height: inherit;\n}\n\n/* Normalize top margin so caret height is consistent when empty */\n.md-editor .ProseMirror > :first-child {\n margin-top: 0;\n}\n\n/* Mention (placeholder) – tweak as desired */\n.mention {\n background: #f0f9ff;\n border: 1px solid #bae6fd;\n border-radius: 6px;\n padding: 0 6px;\n color: #0369a1;\n}\n\n/* Code block wrapper — shared by the Milkdown editor node view\n (`.md-editor` scope) and the react-markdown read-only renderer\n (`.ss-markdown` scope). Keep selectors in sync. */\n.md-editor .ss-code-block,\n.ss-markdown .ss-code-block {\n border: 1px solid var(--border, #e5e7eb);\n border-radius: 8px;\n background: #0b1020;\n color: #e6edf3;\n margin: 0.75em 0;\n overflow: hidden;\n}\n\n.md-editor .ss-code-block__header,\n.ss-markdown .ss-code-block__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 6px 10px;\n background: rgba(255, 255, 255, 0.06);\n border-bottom: 1px solid rgba(255, 255, 255, 0.08);\n font-size: 12px;\n line-height: 1;\n}\n\n.md-editor .ss-code-block__lang,\n.ss-markdown .ss-code-block__lang {\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: #9ba3af;\n font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n}\n\n.md-editor .ss-code-block__actions,\n.ss-markdown .ss-code-block__actions {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.md-editor .ss-code-block__toggle,\n.md-editor .ss-code-block__copy,\n.ss-markdown .ss-code-block__toggle,\n.ss-markdown .ss-code-block__copy {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background: rgba(255, 255, 255, 0.1);\n color: #e6edf3;\n border: 1px solid rgba(255, 255, 255, 0.15);\n border-radius: 6px;\n padding: 4px 10px;\n font-size: 12px;\n cursor: pointer;\n font-family: inherit;\n line-height: 1;\n}\n\n.md-editor .ss-code-block__toggle:hover,\n.md-editor .ss-code-block__copy:hover,\n.ss-markdown .ss-code-block__toggle:hover,\n.ss-markdown .ss-code-block__copy:hover {\n background: rgba(255, 255, 255, 0.18);\n}\n\n.md-editor .ss-code-block pre,\n.ss-markdown .ss-code-block pre {\n margin: 0;\n padding: 12px 14px;\n background: transparent;\n color: inherit;\n overflow-x: auto;\n font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n font-size: 13px;\n line-height: 1.5;\n white-space: pre;\n}\n\n.md-editor .ss-code-block pre code,\n.ss-markdown .ss-code-block pre code {\n background: transparent;\n color: inherit;\n padding: 0;\n font: inherit;\n}\n\n.md-editor .ss-code-block__iframe,\n.ss-markdown .ss-code-block__iframe {\n display: block;\n width: 100%;\n /* Initial height before the height reporter postMessages in the real size\n (capped in JS by MAX_IFRAME_HEIGHT). */\n height: 500px;\n border: 0;\n background: #ffffff;\n /* Kill the baseline gap under replaced elements (iframe is inline by\n default), which otherwise adds ~4px of empty space below the preview. */\n vertical-align: top;\n /* Fade in once the rendered preview replaces the loading shimmer. */\n transition: opacity 0.2s ease;\n}\n\n/* Loading state shown while the previewed HTML is still streaming in or the\n iframe hasn't reported its measured height yet. Sits on a white backdrop so\n there's no dark flash before a (white) chart appears, and is covered by an\n absolutely-positioned shimmer so the box keeps a stable size. */\n.ss-markdown .ss-code-block__preview {\n position: relative;\n}\n\n.ss-markdown .ss-code-block__loading {\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 10px;\n z-index: 1;\n color: #6b7280;\n font-size: 12px;\n letter-spacing: 0.02em;\n background-color: #ffffff;\n background-image: linear-gradient(\n 100deg,\n rgba(0, 0, 0, 0) 30%,\n rgba(0, 0, 0, 0.05) 50%,\n rgba(0, 0, 0, 0) 70%\n );\n background-size: 200% 100%;\n animation: ss-code-block-shimmer 1.4s ease-in-out infinite;\n}\n\n.ss-markdown .ss-code-block__spinner {\n width: 22px;\n height: 22px;\n border: 2.5px solid rgba(0, 0, 0, 0.12);\n border-top-color: rgba(0, 0, 0, 0.5);\n border-radius: 50%;\n animation: ss-code-block-spin 0.8s linear infinite;\n}\n\n@keyframes ss-code-block-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes ss-code-block-shimmer {\n 0% {\n background-position: 200% 0;\n }\n 100% {\n background-position: -200% 0;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .ss-markdown .ss-code-block__loading {\n animation: none;\n }\n .ss-markdown .ss-code-block__spinner {\n animation-duration: 1.6s;\n }\n .ss-markdown .ss-code-block__iframe {\n transition: none;\n }\n}\n\n/* Inline code in read-only messages — matches the Milkdown editor's\n inline code treatment. */\n.ss-markdown :not(pre) > code {\n background: rgba(135, 131, 120, 0.15);\n color: #c7254e;\n padding: 1px 5px;\n border-radius: 4px;\n font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n font-size: 0.9em;\n}\n\n/* Read-only: anchors should feel clickable. */\n.ss-markdown a {\n color: #2563eb;\n text-decoration: underline;\n}\n\n/* Read-only: give <details>/<summary> sensible defaults. Most browser UAs\n already render the triangle, but we tidy spacing. */\n.ss-markdown details {\n margin: 0.75em 0;\n}\n\n.ss-markdown summary {\n cursor: pointer;\n font-weight: 600;\n}\n\n/* Inline code */\n.md-editor .ProseMirror :not(pre) > code {\n background: rgba(135, 131, 120, 0.15);\n color: #c7254e;\n padding: 1px 5px;\n border-radius: 4px;\n font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n font-size: 0.9em;\n}\n\n/* Mentions popup */\n.md-mention-menu {\n background: hsl(var(--background, 0 0% 100%));\n color: var(--foreground, #111);\n border: 1px solid var(--border, #e5e7eb);\n border-radius: 8px;\n box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);\n min-width: 220px;\n max-width: 320px;\n overflow: hidden;\n /* Must outrank MUI's Drawer (z-index 1200), which the comments panel\n becomes on narrow windows — otherwise the drawer's own content paints\n over this popup even though it's positioned correctly on screen. Kept\n below MUI's Modal/Snackbar/Tooltip tiers (1300/1400/1500) rather than\n jumping above all of them. */\n z-index: 1250;\n}\n\n/* Provisional dictation text at the caret. Display-only: it is a ProseMirror\n widget decoration, never document content, so it cannot be selected, copied,\n or serialised into the sent message. It reads grey while the service is still\n revising, and is replaced by real black text when the phrase finalises. */\n.md-editor__dictation-ghost {\n color: #9aa2af;\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n white-space: pre-wrap;\n font: inherit;\n /* `font: inherit` does not reliably carry line-height, and a span whose\n line-height differs from the editor's grows the line box the moment ghost\n text appears - which reads as the composer jumping taller mid-sentence.\n The sibling .md-editor__ghost rule sets this for the same reason. */\n line-height: inherit;\n}\n.md-editor__dictation-dots {\n display: inline-flex;\n align-items: center;\n gap: 3px;\n margin-left: 4px;\n /* Contribute no leading of its own, and centre the 4px dots on the text\n rather than hanging them off the baseline, so the dots cannot make the\n line taller either. */\n line-height: 0;\n vertical-align: middle;\n}\n.md-editor__dictation-dots > span {\n width: 4px;\n height: 4px;\n border-radius: 50%;\n background: currentColor;\n animation: chat-dot-wave 1.1s ease-in-out infinite;\n}\n.md-editor__dictation-dots > span:nth-child(2) {\n animation-delay: 0.15s;\n}\n.md-editor__dictation-dots > span:nth-child(3) {\n animation-delay: 0.3s;\n}\n\n/* While provisional dictation text is showing, hide ProseMirror's empty-block\n placeholder break. The ghost is a decoration, not document content, so the\n block still counts as empty and keeps its trailing <br> - which would put the\n ghost on one line and the break on the next, growing the composer by a line. */\n.md-editor__has-dictation-ghost br.ProseMirror-trailingBreak {\n display: none;\n}\n","/* Horizontal wrap layout for variables (no forced stretching).\n The gap matches the reference composer's action bar, where the pills sit 4px\n apart; the larger row gap only shows once they wrap onto a second line. */\n.jsonforms-compact .ss-jsonforms-grid {\n display: flex;\n flex-wrap: wrap;\n gap: 6px 4px;\n align-items: center;\n}\n\n/* Each variable is its own flex item */\n.jsonforms-compact .ss-jsonforms-cell {\n flex: 0 0 auto;\n min-width: 0;\n}\n\n/* Let long/tall fields take a full row when present */\n.jsonforms-compact .ss-jsonforms-textarea {\n flex: 1 1 100%;\n}\n\n/* Keep compact fields at a comfortable fixed width */\n.jsonforms-compact .compact-field {\n width: 280px;\n max-width: 100%;\n}\n\n/* On very small screens, let it shrink gracefully */\n@media (max-width: 480px) {\n .jsonforms-compact .compact-field {\n width: 100%; /* full width on phones */\n }\n}\n"],"mappings":"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","names":[]}
|
package/dist/index.d.ts
CHANGED
|
@@ -80,6 +80,104 @@ declare const ChatVariablesForm: React.ForwardRefExoticComponent<ChatVariablesFo
|
|
|
80
80
|
setVariables: (variables: Record<string, unknown>) => void;
|
|
81
81
|
} & React.RefAttributes<ChatVariablesFormRef>>;
|
|
82
82
|
|
|
83
|
+
/**
|
|
84
|
+
* What the backend tells the composer about speech-to-text (dictation).
|
|
85
|
+
* `region` is the Azure region of the Speech resource, e.g. `australiaeast`.
|
|
86
|
+
* The SDK needs the region rather than the account's custom-domain URL: the
|
|
87
|
+
* recognition path only exists on the regional host, and that is what the
|
|
88
|
+
* issued token is scoped to. Absent when speech isn't configured.
|
|
89
|
+
*/
|
|
90
|
+
type SpeechConfig = {
|
|
91
|
+
enabled: boolean;
|
|
92
|
+
region?: string | null;
|
|
93
|
+
/** BCP-47 locale to recognise when the client doesn't ask for one. */
|
|
94
|
+
defaultLocale: string;
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* A short-lived token from the Speech resource's own token service, scoped to
|
|
98
|
+
* recognition in one region and good for about ten minutes. Handed to the SDK
|
|
99
|
+
* as-is; the backend owns how it is minted.
|
|
100
|
+
*/
|
|
101
|
+
type SpeechToken = {
|
|
102
|
+
token: string;
|
|
103
|
+
/** ISO-8601 instant. */
|
|
104
|
+
expiresOn: string;
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
type DictationState = 'idle' | 'starting' | 'listening';
|
|
108
|
+
type DictationError = 'permission-denied' | 'no-microphone' | 'network'
|
|
109
|
+
/** Worth another go: the install is fine, this attempt wasn't. */
|
|
110
|
+
| 'unavailable-temporarily'
|
|
111
|
+
/** Don't keep asking: this install can't do dictation. */
|
|
112
|
+
| 'unavailable' | 'unknown';
|
|
113
|
+
type UseDictationOptions = {
|
|
114
|
+
/** Azure region from `SpeechConfig`; dictation is unavailable without it. */
|
|
115
|
+
region?: string | null;
|
|
116
|
+
/** BCP-47 recognition locale (server default unless the user chose one). */
|
|
117
|
+
locale: string;
|
|
118
|
+
/** From the ChatService; dictation is unavailable without it. */
|
|
119
|
+
getToken?: () => Promise<SpeechToken>;
|
|
120
|
+
/** A final recognised phrase — insert it into the editor. */
|
|
121
|
+
onPhrase: (text: string) => void;
|
|
122
|
+
/**
|
|
123
|
+
* Provisional text, revised several times a second. Rendered as greyed ghost
|
|
124
|
+
* text at the caret. Deliberately a callback rather than hook state: holding it
|
|
125
|
+
* in state would re-render the whole composer on every partial result.
|
|
126
|
+
*/
|
|
127
|
+
onInterim?: (text: string) => void;
|
|
128
|
+
/**
|
|
129
|
+
* Hard stop, so a forgotten mic can't run for an hour. Keep it under the
|
|
130
|
+
* token's ~10 minute life: the token is never refreshed once the session is
|
|
131
|
+
* running, so a longer cap would end the session on an auth failure.
|
|
132
|
+
*/
|
|
133
|
+
maxDurationMs?: number;
|
|
134
|
+
/** Stop after this long without any speech. */
|
|
135
|
+
idleTimeoutMs?: number;
|
|
136
|
+
};
|
|
137
|
+
/**
|
|
138
|
+
* Streams microphone audio to Azure AI Speech and hands back recognised
|
|
139
|
+
* phrases. Owns the whole session: mic permission + stream, SDK loading,
|
|
140
|
+
* recogniser lifecycle, idle/max timers, and teardown on stop or unmount.
|
|
141
|
+
* Interim (not yet final) text goes to `onInterim` for display only; only final
|
|
142
|
+
* phrases reach `onPhrase`.
|
|
143
|
+
*/
|
|
144
|
+
declare function useDictation({ region, locale, getToken, onPhrase, onInterim, maxDurationMs, idleTimeoutMs, }: UseDictationOptions): {
|
|
145
|
+
supported: boolean;
|
|
146
|
+
available: boolean;
|
|
147
|
+
state: DictationState;
|
|
148
|
+
error: DictationError | null;
|
|
149
|
+
/** Name of the microphone in use, once a session is live. May be ''. */
|
|
150
|
+
deviceLabel: string;
|
|
151
|
+
/** Listening, but the microphone has produced no sound for a while. */
|
|
152
|
+
silent: boolean;
|
|
153
|
+
start: () => Promise<void>;
|
|
154
|
+
stop: () => void;
|
|
155
|
+
toggle: () => void;
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
type DictationButtonProps = {
|
|
159
|
+
state: DictationState;
|
|
160
|
+
error: DictationError | null;
|
|
161
|
+
disabled?: boolean;
|
|
162
|
+
onToggle: () => void;
|
|
163
|
+
/**
|
|
164
|
+
* Microphone in use. Shown while listening because the browser picks the
|
|
165
|
+
* device, not us, and picking the wrong one is otherwise invisible: the
|
|
166
|
+
* session looks perfectly healthy and simply transcribes nothing.
|
|
167
|
+
*/
|
|
168
|
+
deviceLabel?: string;
|
|
169
|
+
/** Icon/button sizing to match the surrounding toolbar. */
|
|
170
|
+
size?: 'sm' | 'md';
|
|
171
|
+
};
|
|
172
|
+
/**
|
|
173
|
+
* The composer's microphone, which carries the dictation state itself rather than
|
|
174
|
+
* relying on text elsewhere: a spinning ring while the session is starting, and a
|
|
175
|
+
* filled stop square while it is listening — the same shape Send takes during a
|
|
176
|
+
* run, because the button's job is the same at that point. The transcript appears
|
|
177
|
+
* in the composer at the caret, so nothing is reported in two places.
|
|
178
|
+
*/
|
|
179
|
+
declare function DictationButton({ state, error, disabled, onToggle, deviceLabel, size, }: DictationButtonProps): react_jsx_runtime.JSX.Element;
|
|
180
|
+
|
|
83
181
|
type MentionUserLike = {
|
|
84
182
|
id: string;
|
|
85
183
|
displayName: string;
|
|
@@ -97,6 +195,19 @@ type MarkdownEditorHandle = {
|
|
|
97
195
|
* Callers that need the freshest text (e.g. sending on Enter) should read from here.
|
|
98
196
|
*/
|
|
99
197
|
getMarkdown: () => string;
|
|
198
|
+
/**
|
|
199
|
+
* Inserts plain text at the caret (dictation, snippets), replacing any
|
|
200
|
+
* selection. Prepends a space when the caret directly follows a
|
|
201
|
+
* non-whitespace character so successive inserts read as prose. No-op when
|
|
202
|
+
* the editor isn't editable.
|
|
203
|
+
*/
|
|
204
|
+
insertText: (text: string) => void;
|
|
205
|
+
/**
|
|
206
|
+
* Shows provisional dictation text greyed at the caret. Display-only — it never
|
|
207
|
+
* enters the document, so it cannot be serialised, undone, or sent. Pass '' to
|
|
208
|
+
* clear; inserting the final text via `insertText` clears it too.
|
|
209
|
+
*/
|
|
210
|
+
setDictationGhost: (text: string) => void;
|
|
100
211
|
/**
|
|
101
212
|
* Returns mention users currently present in the editor document.
|
|
102
213
|
* Useful for building API payloads (e.g. comments.mentionedUsers).
|
|
@@ -376,6 +487,19 @@ interface ChatService {
|
|
|
376
487
|
* compiling — the composer only shows a Stop button when it is provided.
|
|
377
488
|
*/
|
|
378
489
|
cancelFlowRun?(flowRunId: string): Promise<void>;
|
|
490
|
+
/**
|
|
491
|
+
* Speech-to-text (composer dictation). Both are optional so existing
|
|
492
|
+
* service implementations keep compiling — the composer renders a
|
|
493
|
+
* microphone only when both are provided AND the config says enabled.
|
|
494
|
+
* `getSpeechConfig` is read once per session. `getSpeechToken` is called
|
|
495
|
+
* when a dictation session starts (in parallel with the mic permission
|
|
496
|
+
* prompt — and again if that token aged out while the prompt sat open). The
|
|
497
|
+
* token is handed to the SDK as-is and never refreshed mid-session, so a
|
|
498
|
+
* session is capped to stay inside its life. No caching wanted: a stale
|
|
499
|
+
* token cannot be renewed.
|
|
500
|
+
*/
|
|
501
|
+
getSpeechConfig?(): Promise<SpeechConfig>;
|
|
502
|
+
getSpeechToken?(): Promise<SpeechToken>;
|
|
379
503
|
}
|
|
380
504
|
|
|
381
505
|
type ChatIdentity = {
|
|
@@ -440,6 +564,7 @@ declare const messagesResponseSchema: z.ZodObject<{
|
|
|
440
564
|
value: z.ZodOptional<z.ZodNullable<z.ZodAny>>;
|
|
441
565
|
}, z.core.$strip>>;
|
|
442
566
|
}, z.core.$strip>>;
|
|
567
|
+
scoped: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
443
568
|
total: z.ZodNumber;
|
|
444
569
|
}, z.core.$strip>;
|
|
445
570
|
type MessagesResponseDto = z.infer<typeof messagesResponseSchema>;
|
|
@@ -552,6 +677,7 @@ declare const threadsListResponseSchema: z.ZodObject<{
|
|
|
552
677
|
totalMessages: z.ZodNumber;
|
|
553
678
|
workSpaceId: z.ZodString;
|
|
554
679
|
}, z.core.$strip>>;
|
|
680
|
+
scoped: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
555
681
|
total: z.ZodNumber;
|
|
556
682
|
}, z.core.$strip>;
|
|
557
683
|
declare const threadResponseSchema: z.ZodObject<{
|
|
@@ -666,6 +792,7 @@ declare const workspaceResponseSchema: z.ZodObject<{
|
|
|
666
792
|
path: z.ZodString;
|
|
667
793
|
}, z.core.$strip>;
|
|
668
794
|
flowId: z.ZodString;
|
|
795
|
+
honourSourceDeletes: z.ZodBoolean;
|
|
669
796
|
id: z.ZodString;
|
|
670
797
|
inputName: z.ZodString;
|
|
671
798
|
type: z.ZodEnum<{
|
|
@@ -908,6 +1035,7 @@ declare const workspacesListResponseSchema: z.ZodObject<{
|
|
|
908
1035
|
path: z.ZodString;
|
|
909
1036
|
}, z.core.$strip>;
|
|
910
1037
|
flowId: z.ZodString;
|
|
1038
|
+
honourSourceDeletes: z.ZodBoolean;
|
|
911
1039
|
id: z.ZodString;
|
|
912
1040
|
inputName: z.ZodString;
|
|
913
1041
|
type: z.ZodEnum<{
|
|
@@ -1055,6 +1183,7 @@ declare const workspacesListResponseSchema: z.ZodObject<{
|
|
|
1055
1183
|
schema: z.ZodRecord<z.ZodString, z.ZodAny>;
|
|
1056
1184
|
}, z.core.$strip>>;
|
|
1057
1185
|
}, z.core.$strip>>;
|
|
1186
|
+
scoped: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
1058
1187
|
total: z.ZodNumber;
|
|
1059
1188
|
}, z.core.$strip>;
|
|
1060
1189
|
type WorkspaceDto = z.infer<typeof workspaceResponseSchema>;
|
|
@@ -1260,6 +1389,11 @@ declare const modelsKeys: {
|
|
|
1260
1389
|
}];
|
|
1261
1390
|
};
|
|
1262
1391
|
|
|
1392
|
+
declare const speechKeys: {
|
|
1393
|
+
all: readonly ["speech"];
|
|
1394
|
+
config: () => readonly ["speech", "config"];
|
|
1395
|
+
};
|
|
1396
|
+
|
|
1263
1397
|
declare const messagesListOptions: (service: ChatService, threadId: string, opts?: {
|
|
1264
1398
|
take?: number;
|
|
1265
1399
|
skip?: number;
|
|
@@ -1422,4 +1556,16 @@ declare function useModels({ search, take, skip, }?: {
|
|
|
1422
1556
|
total: number;
|
|
1423
1557
|
}, Error>;
|
|
1424
1558
|
|
|
1425
|
-
|
|
1559
|
+
/**
|
|
1560
|
+
* Whether dictation is available on this install and how to connect. Read once
|
|
1561
|
+
* per app session — it only changes with a deploy — and disabled entirely for
|
|
1562
|
+
* services that don't implement speech, in which case the composer renders no
|
|
1563
|
+
* microphone.
|
|
1564
|
+
*
|
|
1565
|
+
* A definitive answer (including a 404 from an older backend) is cached for the
|
|
1566
|
+
* session; a transient failure is retried, because otherwise one blip on load
|
|
1567
|
+
* would silently disable the mic until the page is reloaded.
|
|
1568
|
+
*/
|
|
1569
|
+
declare function useSpeechConfig(): _tanstack_react_query.UseQueryResult<SpeechConfig, Error>;
|
|
1570
|
+
|
|
1571
|
+
export { type ChatContextIds, type ChatIdentity, ChatProvider, type ChatProviderProps, type ChatService, ChatVariablesForm, DRAFT_THREAD_PREFIX, DateFromApi, DictationButton, type DictationButtonProps, type DictationError, type DictationState, type FileInfo$1 as FileInfo, type FileScope, type FlowRunVariables, MarkdownEditor, type MarkdownEditorHandle, type MentionUser, type Message, MessageComposer, type MessageComposerProps, type MessageContentItem, type MessageError, type MessageErrorLike, MessageList, type MessageListProps, MessageListSkeleton, MessageMarkdown, type MessageThread, type MessageValue, MessageValueType, type Model, type ModelProperty, NEW_THREAD_ID, type RetryStatus, type SpeechConfig, type SpeechToken, THREAD_LIST_PAGE_SIZE, type ThreadsResponse, type UseDictationOptions, type Variables, type Workspace, applyDeltaToMessage, applyThreadToCache, createDraftThreadId, createThreadId, downloadFileBlobOptions, filesKeys, flowRunsKeys, getMessageErrorText, getModelIcon, getRetryStatusText, getThreadPlaceholderFromListCache, getUserPhotoUrl, invalidateWorkspaceThreadLists, isDraftThreadId, mapFileInfoDtoToModel, mapMentionUserDtoToModel, mapMessageDtoToModel, mapMessageErrorDtoToModel, mapMessageValueDtoToModel, mapMessagesDtoToModels, mapSignalRThreadSummaryToModel, mapThreadDtoToModel, mapThreadsResponseDtoToModel, mapWorkspaceDtoToModel, mapWorkspacesDtoToModels, markDraftThreadId, messagesKeys, messagesListOptions, messagesMutationsKeys, modelsKeys, parseDateTime, parseDateTimeHuman, parseRetryStatus, randomUUID, setThreadOptimisticRunning, setThreadRunningInLists, speechKeys, taggableUsersOptions, threadDetailOptions, threadsKeys, unmarkDraftThreadId, useAddInputToMessage, useChatContext, useChatIdentity, useChatService, useDictation, useDownloadFileBlobQuery, useFileMutations, useFlowRunVariables, useIsDraftThreadId, useMessages, useModels, useSendMessage, useSpeechConfig, useTaggableWorkspaceUsers, useThread, useThreadIsRunning, useUpdateFlowRunVariable, useWorkspace, utcDate, workspaceDetailOptions, workspaceKeys };
|