@smartspace/chat-ui 1.13.1-dev.c6d0f32 → 1.13.1-dev.cbd3240

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Smartspace.ai
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
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:0 solid #e5e7eb}: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:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;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}:root{--background:0 0% 100%;--foreground:250.59 54.84% 6.08%;--primary:252.13 88.59% 57.45%;--primary-foreground:254.27 90% 96.08%;--card:247.5 80% 98.04%;--card-foreground:250.59 54.84% 6.08%;--popover:0 0% 100%;--popover-foreground:250.59 54.84% 6.08%;--secondary:252.48 86.67% 94.12%;--secondary-foreground:0 0% 0%;--muted:254.27 90% 96.08%;--muted-foreground:0 0% 40%;--accent:254.27 90% 96.08%;--accent-foreground:252.05 57.45% 9.22%;--destructive:0 84.2% 60.2%;--destructive-foreground:210 40% 98%;--border:252.61 90% 92.16%;--input:251.85 25% 82.75%;--ring:252.13 88.59% 57.45%;--radius:0.5rem;--sidebar-background:252.13 100% 99.22%;--sidebar-foreground:250.59 54.84% 6.08%;--sidebar-primary:252.13 88.59% 57.45%;--sidebar-primary-foreground:254.27 90% 96.08%;--sidebar-accent:252.13 88.59% 57.45%;--sidebar-accent-foreground:254.27 90% 96.08%;--sidebar-border:252.61 90% 92.16%;--sidebar-ring:252.13 88.59% 57.45%}.dark{--background:0 0% 0%;--foreground:252.48 86.67% 94.12%;--primary:252.13 88.59% 57.45%;--primary-foreground:254.27 90% 96.08%;--card:257.14 22.58% 6.08%;--card-foreground:252.48 86.67% 94.12%;--popover:0 0% 0%;--popover-foreground:252.48 86.67% 94.12%;--secondary:252.55 57.41% 21.18%;--secondary-foreground:0 0% 100%;--muted:0 0% 9.8%;--muted-foreground:0 0% 50.2%;--accent:252.55 57.41% 21.18%;--accent-foreground:252.48 86.67% 94.12%;--destructive:0 84.2% 60.2%;--destructive-foreground:210 40% 98%;--border:252.61 58.06% 12.16%;--input:250 16.67% 21.18%;--ring:252.13 88.59% 57.45%}.\!visible{visibility:visible!important}.visible{visibility:visible}.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}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.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}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-2{height:.5rem}.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-\[400px\]{max-height:400px}.max-h-\[60\%\]{max-height:60%}.min-h-3{min-height:.75rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-2{width:.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-8{width:2rem}.w-9{width:2.25rem}.w-\[180px\]{width:180px}.w-full{width:100%}.min-w-0{min-width:0}.min-w-\[16px\]{min-width:16px}.min-w-\[180px\]{min-width:180px}.max-w-3xl{max-width:48rem}.max-w-\[220px\]{max-width:220px}.max-w-\[360px\]{max-width:360px}.max-w-\[70\%\]{max-width:70%}.max-w-\[90\%\]{max-width:90%}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.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 bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s 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}.list-none{list-style-type:none}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*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))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.self-end{align-self:flex-end}.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)}.border{border-width:1px}.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-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-gray-50{--tw-border-opacity:1;border-color:rgb(249 250 251/var(--tw-border-opacity,1))}.border-input{border-color:hsl(var(--input))}.border-muted{border-color:hsl(var(--muted))}.border-muted-foreground\/30{border-color:hsl(var(--muted-foreground)/.3)}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-l-transparent{border-left-color:transparent}.border-t-foreground\/60{border-top-color:hsl(var(--foreground)/.6)}.bg-accent{background-color:hsl(var(--accent))}.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-indigo-500{--tw-bg-opacity:1;background-color:rgb(99 102 241/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\/50{background-color:hsl(var(--muted)/.5)}.bg-muted\/60{background-color:hsl(var(--muted)/.6)}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/40{background-color:hsl(var(--primary)/.4)}.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-sidebar{background-color:hsl(var(--sidebar-background))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.from-white{--tw-gradient-from:#fff var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-10\%{--tw-gradient-from-position:10%}.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)}.via-40\%{--tw-gradient-via-position:40%}.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)}.to-100\%{--tw-gradient-to-position:100%}.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-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[1px\]{padding:1px}.\!px-4{padding-left:1rem!important;padding-right:1rem!important}.\!py-3{padding-top:.75rem!important;padding-bottom:.75rem!important}.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-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-0\.5{padding-top:.125rem;padding-bottom:.125rem}.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-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-1{padding-bottom:.25rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-\[10px\]{font-size:10px}.text-lg{font-size:1.125rem;line-height:1.75rem}.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}.normal-case{text-transform:none}.italic{font-style:italic}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.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-foreground\/90{color:hsl(var(--foreground)/.9)}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/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-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))}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.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)}.shadow-lg,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 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{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-\[max-width\]{transition-property:max-width;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-shadow{transition-property:box-shadow;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)}.duration-150,.transition-transform{transition-duration:.15s}.duration-300{transition-duration:.3s}.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))}}.duration-150{animation-duration:.15s}.duration-300{animation-duration:.3s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.running{animation-play-state:running}.\[animation-delay\:-0\.15s\]{animation-delay:-.15s}.\[animation-delay\:-0\.3s\]{animation-delay:-.3s}.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{position:relative}.ss-attach{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;border-radius:6px;background:color-mix(in srgb,var(--muted),#fff 80%);border:1px solid var(--border);overflow:hidden}.ss-attach--image{padding:2px}.ss-attach__img{display:block;-o-object-fit:contain;object-fit:contain}.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}.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}.last\:mb-0:last-child{margin-bottom:0}.last\:border-b-0:last-child{border-bottom-width:0}.focus-within\:ring-1:focus-within{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-within\:ring-ring\/50:focus-within{--tw-ring-color:hsl(var(--ring)/0.5)}.focus-within\:ring-offset-0:focus-within{--tw-ring-offset-width:0px}.hover\:\!bg-gray-50:hover{--tw-bg-opacity:1!important;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))!important}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-accent\/80:hover{background-color:hsl(var(--accent)/.8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted)/.5)}.hover\:bg-muted\/70:hover{background-color:hsl(var(--muted)/.7)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary)/.9)}.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\:text-muted-foreground:hover{color:hsl(var(--muted-foreground))}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.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)}@media (min-width:640px){.sm\:max-w-xs{max-width:20rem}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:px-3{padding-left:.75rem;padding-right:.75rem}}@media (min-width:768px){.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:px-4{padding-left:1rem;padding-right:1rem}}
3
+ /*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}: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:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;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}:root{--background:0 0% 100%;--foreground:250.59 54.84% 6.08%;--primary:252.13 88.59% 57.45%;--primary-foreground:254.27 90% 96.08%;--card:247.5 80% 98.04%;--card-foreground:250.59 54.84% 6.08%;--popover:0 0% 100%;--popover-foreground:250.59 54.84% 6.08%;--secondary:252.48 86.67% 94.12%;--secondary-foreground:0 0% 0%;--muted:254.27 90% 96.08%;--muted-foreground:0 0% 40%;--accent:254.27 90% 96.08%;--accent-foreground:252.05 57.45% 9.22%;--destructive:0 84.2% 60.2%;--destructive-foreground:210 40% 98%;--border:252.61 90% 92.16%;--input:251.85 25% 82.75%;--ring:252.13 88.59% 57.45%;--radius:0.5rem;--sidebar-background:252.13 100% 99.22%;--sidebar-foreground:250.59 54.84% 6.08%;--sidebar-primary:252.13 88.59% 57.45%;--sidebar-primary-foreground:254.27 90% 96.08%;--sidebar-accent:252.13 88.59% 57.45%;--sidebar-accent-foreground:254.27 90% 96.08%;--sidebar-border:252.61 90% 92.16%;--sidebar-ring:252.13 88.59% 57.45%}.dark{--background:0 0% 0%;--foreground:252.48 86.67% 94.12%;--primary:252.13 88.59% 57.45%;--primary-foreground:254.27 90% 96.08%;--card:257.14 22.58% 6.08%;--card-foreground:252.48 86.67% 94.12%;--popover:0 0% 0%;--popover-foreground:252.48 86.67% 94.12%;--secondary:252.55 57.41% 21.18%;--secondary-foreground:0 0% 100%;--muted:0 0% 9.8%;--muted-foreground:0 0% 50.2%;--accent:252.55 57.41% 21.18%;--accent-foreground:252.48 86.67% 94.12%;--destructive:0 84.2% 60.2%;--destructive-foreground:210 40% 98%;--border:252.61 58.06% 12.16%;--input:250 16.67% 21.18%;--ring:252.13 88.59% 57.45%}.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}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.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}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-2{height:.5rem}.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-\[400px\]{max-height:400px}.max-h-\[60\%\]{max-height:60%}.min-h-3{min-height:.75rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-2{width:.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-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-3xl{max-width:48rem}.max-w-\[220px\]{max-width:220px}.max-w-\[360px\]{max-width:360px}.max-w-\[70\%\]{max-width:70%}.max-w-\[90\%\]{max-width:90%}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.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 bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s 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-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-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*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))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.self-end{align-self:flex-end}.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)}.border{border-width:1px}.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-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-gray-50{--tw-border-opacity:1;border-color:rgb(249 250 251/var(--tw-border-opacity,1))}.border-input{border-color:hsl(var(--input))}.border-muted{border-color:hsl(var(--muted))}.border-muted-foreground\/30{border-color:hsl(var(--muted-foreground)/.3)}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-l-transparent{border-left-color:transparent}.border-t-foreground\/60{border-top-color:hsl(var(--foreground)/.6)}.bg-accent{background-color:hsl(var(--accent))}.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-indigo-500{--tw-bg-opacity:1;background-color:rgb(99 102 241/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\/50{background-color:hsl(var(--muted)/.5)}.bg-muted\/60{background-color:hsl(var(--muted)/.6)}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/40{background-color:hsl(var(--primary)/.4)}.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-sidebar{background-color:hsl(var(--sidebar-background))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.from-white{--tw-gradient-from:#fff var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-10\%{--tw-gradient-from-position:10%}.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)}.via-40\%{--tw-gradient-via-position:40%}.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)}.to-100\%{--tw-gradient-to-position:100%}.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-8{padding:2rem}.p-\[1px\]{padding:1px}.\!px-4{padding-left:1rem!important;padding-right:1rem!important}.\!py-3{padding-top:.75rem!important;padding-bottom:.75rem!important}.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-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-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-px{padding-top:1px;padding-bottom:1px}.pb-1{padding-bottom:.25rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-\[10px\]{font-size:10px}.text-lg{font-size:1.125rem;line-height:1.75rem}.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}.italic{font-style:italic}.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-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.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-foreground\/90{color:hsl(var(--foreground)/.9)}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/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-50{opacity:.5}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.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)}.shadow-lg,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 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{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-\[max-width\]{transition-property:max-width;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-shadow{transition-property:box-shadow;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)}.duration-150,.transition-transform{transition-duration:.15s}.duration-300{transition-duration:.3s}.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))}}.duration-150{animation-duration:.15s}.duration-300{animation-duration:.3s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.running{animation-play-state:running}.\[animation-delay\:-0\.15s\]{animation-delay:-.15s}.\[animation-delay\:-0\.3s\]{animation-delay:-.3s}.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}.last\:mb-0:last-child{margin-bottom:0}.last\:border-b-0:last-child{border-bottom-width:0}.focus-within\:ring-1:focus-within{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-within\:ring-ring\/50:focus-within{--tw-ring-color:hsl(var(--ring)/0.5)}.focus-within\:ring-offset-0:focus-within{--tw-ring-offset-width:0px}.hover\:border-border:hover{border-color:hsl(var(--border))}.hover\:\!bg-gray-50:hover{--tw-bg-opacity:1!important;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))!important}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-accent\/80:hover{background-color:hsl(var(--accent)/.8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-muted\/40:hover{background-color:hsl(var(--muted)/.4)}.hover\:bg-muted\/60:hover{background-color:hsl(var(--muted)/.6)}.hover\:bg-muted\/70:hover{background-color:hsl(var(--muted)/.7)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary)/.9)}.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\:text-muted-foreground:hover{color:hsl(var(--muted-foreground))}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.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 (min-width:640px){.sm\:max-w-xs{max-width:20rem}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:px-3{padding-left:.75rem;padding-right:.75rem}}@media (min-width:768px){.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:px-4{padding-left:1rem;padding-right:1rem}}
@@ -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 display: inline-flex;\n align-items: center;\n justify-content: center;\n vertical-align: middle;\n border-radius: 6px;\n background: color-mix(in srgb, var(--muted), white 80%);\n border: 1px solid var(--border);\n overflow: hidden;\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}\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}\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.jsonforms-compact .ss-jsonforms-grid {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n align-items: flex-start;\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,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,kBAAgB;AAChB,iBAAe;AACf,cAAY,UAAU,GAAG,IAAI,EAAE,IAAI,QAAQ,EAAE,MAAM;AACnD,UAAQ,IAAI,MAAM,IAAI;AACtB,YAAU;AACZ;AAEA,CAAC;AACC,WAAS;AACX;AAEA,CAAC;AACC,WAAS;AACT,iBAAe;AACZ,cAAY;AACjB;AAEA,CAzBC,UAyBU,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,CAzCC,UAyCU,CAhBC,WAgBW;AACrB,gBAAc;AACd,cAAY,EAAE,EAAE,EAAE,IAAI,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE;AAC3C;AAGA,CA/CC,SA+CS,CAAC,oBAAoB,CAtBnB;AAuBV,UAAQ;AACR,WAAS;AACT,cAAY;AACd;AAGA,CAtDC,SAsDS,CAAC,gBAAgB,CA7Bf;AA8BV,UAAQ;AACR,WAAS;AACT,cAAY;AAEZ,cAAY;AACZ,cAAY;AACd;AAGA,CAhEC,UAgEU,CAvCC,YAuCY;AACtB,SAAO;AACP,mBAAiB;AACjB,UAAQ;AACV;AAIA,CAAC,YAAY,CArDZ,cAqD2B,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,CA9GC,UA8GU,CArFC,YAqFY,EAAE;AACxB,cAAY;AACd;AAGA,CAAC;AACC,cAAY;AACZ,UAAQ,IAAI,MAAM;AAClB,iBAAe;AACf,WAAS,EAAE;AACX,SAAO;AACT;AAKA,CA9HC,UA8HU,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,CAxIC,UAwIU,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,CApJC,UAoJU,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,CA5JC,UA4JU,CAAC;AACZ,CArFC,YAqFY,CADD;AAEV,WAAS;AACT,eAAa;AACb,OAAK;AACP;AAEA,CAnKC,UAmKU,CAAC;AACZ,CApKC,UAoKU,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,CArLC,UAqLU,CAlBC,qBAkBqB;AACjC,CAtLC,UAsLU,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,CA5LC,UA4LU,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,CAzMC,UAyMU,CA3EC,cA2Ec,IAAI;AAC9B,CAlIC,YAkIY,CA5ED,cA4EgB,IAAI;AAC9B,cAAY;AACZ,SAAO;AACP,WAAS;AACT,QAAM;AACR;AAEA,CAjNC,UAiNU,CAAC;AACZ,CA1IC,YA0IY,CADD;AAEV,WAAS;AACT,SAAO;AAGP,UAAQ;AACR,UAAQ;AACR,cAAY;AAGZ,kBAAgB;AAClB;AAIA,CAzJC,YAyJY,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,CAnKC,YAmKY;AACX,SAAO;AACP,mBAAiB;AACnB;AAIA,CA1KC,YA0KY;AACX,UAAQ,OAAO;AACjB;AAEA,CA9KC,YA8KY;AACX,UAAQ;AACR,eAAa;AACf;AAGA,CA5PC,UA4PU,CAnOC,YAmOY,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;;;AChRA,CAAC,kBAAkB,CAAC;AAClB,WAAS;AACT,aAAW;AACX,OAAK;AACL,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 z-index: 1000;\n}\n","/* Horizontal wrap layout for variables (no forced stretching) */\n.jsonforms-compact .ss-jsonforms-grid {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n align-items: flex-start;\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
@@ -238,6 +238,14 @@ type MessageThread = {
238
238
  totalMessages: number;
239
239
  pinned: boolean;
240
240
  workSpaceId: string;
241
+ /**
242
+ * Monotonic version of when this summary was emitted (epoch ms). Used by
243
+ * `applyThreadToCache` to reject stale writes — e.g. a SignalR summary
244
+ * landing after a fresher SSE thread frame because the server's DB write
245
+ * lagged Redis. Mappers derive this from `lastUpdatedAt`; client-side
246
+ * writers like `ensureDraftThread` use `Date.now()`.
247
+ */
248
+ summaryEmittedAt: number;
241
249
  };
242
250
  type ThreadsResponse = {
243
251
  data: MessageThread[];
@@ -251,28 +259,29 @@ type Variables = Record<string, {
251
259
  }>;
252
260
  type MentionUser = {
253
261
  id: string;
262
+ /** AppUser id (the principal id used by thread-membership endpoints). */
263
+ userId: string;
254
264
  displayName: string;
255
265
  initials: string;
256
266
  };
257
267
  type Workspace = {
258
268
  id: string;
259
269
  name: string;
260
- tags?: string[];
261
- showSources?: boolean;
262
- dataSpaces?: unknown[];
270
+ tags: string[];
271
+ showSources: boolean;
272
+ dataSpaces: unknown[];
263
273
  createdByUserId?: string;
264
274
  createdAt?: Date;
265
275
  modifiedByUserId?: string;
266
276
  modifiedAt?: Date;
267
277
  favorited: boolean;
268
- summary?: string;
269
- firstPrompt?: string;
278
+ summary: string;
279
+ firstPrompt: string;
270
280
  outputSchema?: unknown;
271
- isPromptAndResponseLoggingEnabled?: boolean;
272
281
  inputs?: unknown;
273
282
  variables: Variables;
274
283
  sandBoxThreadId?: string;
275
- supportsFiles?: boolean;
284
+ supportsFiles: boolean;
276
285
  avatarName: string;
277
286
  };
278
287
 
@@ -395,6 +404,7 @@ declare const messagesResponseSchema: z.ZodObject<{
395
404
  blockId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
396
405
  code: z.ZodNumber;
397
406
  data: z.ZodOptional<z.ZodNullable<z.ZodAny>>;
407
+ errorCode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
398
408
  message: z.ZodOptional<z.ZodNullable<z.ZodString>>;
399
409
  }, z.core.$strip>>;
400
410
  hasComments: z.ZodBoolean;
@@ -551,6 +561,7 @@ declare const workspaceResponseSchema: z.ZodObject<{
551
561
  }, z.core.$strip>;
552
562
  }, z.core.$strip>>>>;
553
563
  constants: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodObject<{
564
+ secret: z.ZodBoolean;
554
565
  value: z.ZodOptional<z.ZodNullable<z.ZodAny>>;
555
566
  }, z.core.$strip>>>>;
556
567
  inputs: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodObject<{
@@ -575,6 +586,11 @@ declare const workspaceResponseSchema: z.ZodObject<{
575
586
  triggers: z.ZodArray<z.ZodObject<{
576
587
  dataSourceContainer: z.ZodObject<{
577
588
  dataSourceId: z.ZodString;
589
+ filters: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
590
+ operator: z.ZodString;
591
+ propertyName: z.ZodString;
592
+ value: z.ZodString;
593
+ }, z.core.$strip>>>>;
578
594
  id: z.ZodString;
579
595
  name: z.ZodString;
580
596
  path: z.ZodString;
@@ -615,7 +631,6 @@ declare const workspaceResponseSchema: z.ZodObject<{
615
631
  inputs: z.ZodRecord<z.ZodString, z.ZodObject<{
616
632
  schema: z.ZodRecord<z.ZodString, z.ZodAny>;
617
633
  }, z.core.$strip>>;
618
- isPromptAndResponseLoggingEnabled: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
619
634
  modelConfigurations: z.ZodArray<z.ZodObject<{
620
635
  frequencyPenalty: z.ZodNumber;
621
636
  model: z.ZodObject<{
@@ -782,6 +797,7 @@ declare const workspacesListResponseSchema: z.ZodObject<{
782
797
  }, z.core.$strip>;
783
798
  }, z.core.$strip>>>>;
784
799
  constants: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodObject<{
800
+ secret: z.ZodBoolean;
785
801
  value: z.ZodOptional<z.ZodNullable<z.ZodAny>>;
786
802
  }, z.core.$strip>>>>;
787
803
  inputs: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodObject<{
@@ -806,6 +822,11 @@ declare const workspacesListResponseSchema: z.ZodObject<{
806
822
  triggers: z.ZodArray<z.ZodObject<{
807
823
  dataSourceContainer: z.ZodObject<{
808
824
  dataSourceId: z.ZodString;
825
+ filters: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
826
+ operator: z.ZodString;
827
+ propertyName: z.ZodString;
828
+ value: z.ZodString;
829
+ }, z.core.$strip>>>>;
809
830
  id: z.ZodString;
810
831
  name: z.ZodString;
811
832
  path: z.ZodString;
@@ -846,7 +867,6 @@ declare const workspacesListResponseSchema: z.ZodObject<{
846
867
  inputs: z.ZodRecord<z.ZodString, z.ZodObject<{
847
868
  schema: z.ZodRecord<z.ZodString, z.ZodAny>;
848
869
  }, z.core.$strip>>;
849
- isPromptAndResponseLoggingEnabled: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
850
870
  modelConfigurations: z.ZodArray<z.ZodObject<{
851
871
  frequencyPenalty: z.ZodNumber;
852
872
  model: z.ZodObject<{
@@ -969,20 +989,6 @@ declare function mapMentionUserDtoToModel(dto: MentionUserDto): MentionUser;
969
989
  declare function mapWorkspaceDtoToModel(dto: WorkspaceDto): Workspace;
970
990
  declare const mapWorkspacesDtoToModels: (arr: WorkspacesListItemDto[]) => Workspace[];
971
991
 
972
- /**
973
- * Write a freshly-observed thread (from SignalR or an SSE thread frame)
974
- * directly into the relevant query caches so subscribers paint without a
975
- * refetch roundtrip.
976
- *
977
- * - Merges into `threadsKeys.detail(workspaceId, thread.id)`.
978
- * - Splices into every threads-list cache for the workspace, handling both
979
- * finite `ThreadsResponse` and infinite `{ pages, pageParams }` shapes.
980
- *
981
- * Returns `true` when the thread was found in at least one list cache.
982
- * Callers that need to surface brand-new threads (e.g. another user just
983
- * created one) can fall back to invalidating the list queries when this
984
- * returns `false`.
985
- */
986
992
  declare function applyThreadToCache(qc: QueryClient, thread: MessageThread): boolean;
987
993
  /**
988
994
  * Invalidate every threads-list cache for a workspace. Use as a fallback when
@@ -1019,6 +1025,36 @@ declare function unmarkDraftThreadId(threadId: string): void;
1019
1025
  declare function isDraftThreadId(threadId?: string | null): boolean;
1020
1026
  declare function createDraftThreadId(): string;
1021
1027
 
1028
+ /**
1029
+ * Safe wrapper around `crypto.randomUUID()` with a timestamp-based fallback
1030
+ * for environments that don't expose the Web Crypto API (e.g. non-secure
1031
+ * contexts, old Node test runners, JSDOM without the flag).
1032
+ *
1033
+ * The fallback is intentionally detectable: IDs start with the current
1034
+ * millisecond timestamp, making it trivially obvious in logs/tests when the
1035
+ * real API is unavailable. It is not cryptographically strong — use it only
1036
+ * for transient optimistic-UI identifiers that are discarded once the server
1037
+ * responds.
1038
+ */
1039
+ declare function randomUUID(): string;
1040
+
1041
+ /**
1042
+ * Treat an API date string as UTC even when it lacks a trailing "Z".
1043
+ * If already a Date, returns it as-is (Date stores UTC internally).
1044
+ */
1045
+ declare function utcDate(value: string | Date): Date;
1046
+ /**
1047
+ * Zod schema that coerces a Date, ISO string, or numeric timestamp
1048
+ * from the API into a Date object, ensuring timezone-less strings
1049
+ * are treated as UTC.
1050
+ */
1051
+ declare const DateFromApi: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodCoercedDate<unknown>>;
1052
+
1053
+ declare function parseDateTime(date: Date | string, customFormat?: string): string;
1054
+ declare function parseDateTimeHuman(date: Date | string): string;
1055
+
1056
+ declare function getUserPhotoUrl(userId: string | null | undefined): string | undefined;
1057
+
1022
1058
  declare const messagesKeys: {
1023
1059
  all: readonly ["messages"];
1024
1060
  lists: () => readonly ["messages", "list"];
@@ -1147,11 +1183,7 @@ declare const messagesListOptions: (service: ChatService, threadId: string, opts
1147
1183
  [dataTagErrorSymbol]: Error;
1148
1184
  };
1149
1185
  };
1150
- declare function useMessages(threadId: string, opts?: {
1151
- take?: number;
1152
- skip?: number;
1153
- skipWhenNewThread?: boolean;
1154
- }): _tanstack_react_query.UseQueryResult<Message[], Error>;
1186
+ declare function useMessages(threadId: string): _tanstack_react_query.UseQueryResult<Message[], Error>;
1155
1187
 
1156
1188
  declare const useFileMutations: (scope: FileScope) => {
1157
1189
  uploadFilesMutation: _tanstack_react_query.UseMutationResult<FileInfo$1[], Error, File[], unknown>;
@@ -1204,7 +1236,9 @@ type AddInputArgs = {
1204
1236
  channels: Record<string, number> | null;
1205
1237
  };
1206
1238
  declare function useAddInputToMessage(): {
1207
- addInputToMessageMutation: _tanstack_react_query.UseMutationResult<Message, Error, AddInputArgs, unknown>;
1239
+ addInputToMessageMutation: _tanstack_react_query.UseMutationResult<Message, Error, AddInputArgs, {
1240
+ previousMessages: Message[];
1241
+ }>;
1208
1242
  };
1209
1243
 
1210
1244
  declare const threadDetailOptions: ({ service, workspaceId, threadId, }: {
@@ -1305,4 +1339,4 @@ declare function useModels({ search, take, skip, }?: {
1305
1339
  total: number;
1306
1340
  }, Error>;
1307
1341
 
1308
- export { type ChatContextIds, type ChatIdentity, ChatProvider, type ChatProviderProps, type ChatService, ChatVariablesForm, DRAFT_THREAD_PREFIX, type FileInfo$1 as FileInfo, type FileScope, type FlowRunVariables, MarkdownEditor, type MarkdownEditorHandle, type MentionUser, type Message, MessageComposer, type MessageComposerProps, type MessageContentItem, type MessageError, MessageList, type MessageListProps, MessageListSkeleton, MessageMarkdown, type MessageThread, type MessageValue, MessageValueType, type Model, type ModelProperty, NEW_THREAD_ID, THREAD_LIST_PAGE_SIZE, type ThreadsResponse, type Variables, type Workspace, applyDeltaToMessage, applyThreadToCache, createDraftThreadId, createThreadId, downloadFileBlobOptions, filesKeys, flowRunsKeys, getModelIcon, getThreadPlaceholderFromListCache, invalidateWorkspaceThreadLists, isDraftThreadId, mapFileInfoDtoToModel, mapMentionUserDtoToModel, mapMessageDtoToModel, mapMessageErrorDtoToModel, mapMessageValueDtoToModel, mapMessagesDtoToModels, mapSignalRThreadSummaryToModel, mapThreadDtoToModel, mapThreadsResponseDtoToModel, mapWorkspaceDtoToModel, mapWorkspacesDtoToModels, markDraftThreadId, messagesKeys, messagesListOptions, messagesMutationsKeys, modelsKeys, setThreadOptimisticRunning, setThreadRunningInLists, taggableUsersOptions, threadDetailOptions, threadsKeys, unmarkDraftThreadId, useAddInputToMessage, useChatContext, useChatIdentity, useChatService, useDownloadFileBlobQuery, useFileMutations, useFlowRunVariables, useMessages, useModels, useSendMessage, useTaggableWorkspaceUsers, useThread, useThreadIsRunning, useUpdateFlowRunVariable, useWorkspace, workspaceDetailOptions, workspaceKeys };
1342
+ export { type ChatContextIds, type ChatIdentity, ChatProvider, type ChatProviderProps, type ChatService, ChatVariablesForm, DRAFT_THREAD_PREFIX, DateFromApi, type FileInfo$1 as FileInfo, type FileScope, type FlowRunVariables, MarkdownEditor, type MarkdownEditorHandle, type MentionUser, type Message, MessageComposer, type MessageComposerProps, type MessageContentItem, type MessageError, MessageList, type MessageListProps, MessageListSkeleton, MessageMarkdown, type MessageThread, type MessageValue, MessageValueType, type Model, type ModelProperty, NEW_THREAD_ID, THREAD_LIST_PAGE_SIZE, type ThreadsResponse, type Variables, type Workspace, applyDeltaToMessage, applyThreadToCache, createDraftThreadId, createThreadId, downloadFileBlobOptions, filesKeys, flowRunsKeys, getModelIcon, getThreadPlaceholderFromListCache, getUserPhotoUrl, invalidateWorkspaceThreadLists, isDraftThreadId, mapFileInfoDtoToModel, mapMentionUserDtoToModel, mapMessageDtoToModel, mapMessageErrorDtoToModel, mapMessageValueDtoToModel, mapMessagesDtoToModels, mapSignalRThreadSummaryToModel, mapThreadDtoToModel, mapThreadsResponseDtoToModel, mapWorkspaceDtoToModel, mapWorkspacesDtoToModels, markDraftThreadId, messagesKeys, messagesListOptions, messagesMutationsKeys, modelsKeys, parseDateTime, parseDateTimeHuman, randomUUID, setThreadOptimisticRunning, setThreadRunningInLists, taggableUsersOptions, threadDetailOptions, threadsKeys, unmarkDraftThreadId, useAddInputToMessage, useChatContext, useChatIdentity, useChatService, useDownloadFileBlobQuery, useFileMutations, useFlowRunVariables, useMessages, useModels, useSendMessage, useTaggableWorkspaceUsers, useThread, useThreadIsRunning, useUpdateFlowRunVariable, useWorkspace, utcDate, workspaceDetailOptions, workspaceKeys };