@ews-admin/global-design-system 1.35.0 → 1.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assistant/index.d.ts +5 -0
- package/dist/assistant/index.d.ts.map +1 -0
- package/dist/assistant/store.d.ts +17 -0
- package/dist/assistant/store.d.ts.map +1 -0
- package/dist/assistant/transport.d.ts +20 -0
- package/dist/assistant/transport.d.ts.map +1 -0
- package/dist/components/AssistantChat/AssistantChat.d.ts +15 -0
- package/dist/components/AssistantChat/AssistantChat.d.ts.map +1 -0
- package/dist/components/AssistantChat/AssistantChat.types.d.ts +173 -0
- package/dist/components/AssistantChat/AssistantChat.types.d.ts.map +1 -0
- package/dist/components/AssistantChat/AssistantComposer.d.ts +24 -0
- package/dist/components/AssistantChat/AssistantComposer.d.ts.map +1 -0
- package/dist/components/AssistantChat/AssistantConfirmationCard.d.ts +20 -0
- package/dist/components/AssistantChat/AssistantConfirmationCard.d.ts.map +1 -0
- package/dist/components/AssistantChat/AssistantConversationList.d.ts +19 -0
- package/dist/components/AssistantChat/AssistantConversationList.d.ts.map +1 -0
- package/dist/components/AssistantChat/AssistantMessages.d.ts +21 -0
- package/dist/components/AssistantChat/AssistantMessages.d.ts.map +1 -0
- package/dist/components/AssistantChat/AssistantSuggestionCard.d.ts +12 -0
- package/dist/components/AssistantChat/AssistantSuggestionCard.d.ts.map +1 -0
- package/dist/components/AssistantChat/assistantMarkdown.d.ts +14 -0
- package/dist/components/AssistantChat/assistantMarkdown.d.ts.map +1 -0
- package/dist/components/AssistantChat/index.d.ts +15 -0
- package/dist/components/AssistantChat/index.d.ts.map +1 -0
- package/dist/components/AssistantLauncher/AssistantLauncher.d.ts +58 -0
- package/dist/components/AssistantLauncher/AssistantLauncher.d.ts.map +1 -0
- package/dist/components/AssistantLauncher/index.d.ts +3 -0
- package/dist/components/AssistantLauncher/index.d.ts.map +1 -0
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/useSpeechRecognition.d.ts +40 -0
- package/dist/hooks/useSpeechRecognition.d.ts.map +1 -0
- package/dist/index.css +1 -1
- package/dist/index.d.ts +418 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.css +1 -1
- package/dist/index.esm.js +732 -2
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +751 -0
- package/dist/index.js.map +1 -1
- package/dist/utils/env-config.d.ts +3 -0
- package/dist/utils/env-config.d.ts.map +1 -1
- package/package.json +2 -1
- package/src/assistant/index.ts +11 -0
- package/src/assistant/store.ts +77 -0
- package/src/assistant/transport.ts +159 -0
- package/src/components/AssistantChat/AssistantChat.tsx +390 -0
- package/src/components/AssistantChat/AssistantChat.types.ts +171 -0
- package/src/components/AssistantChat/AssistantComposer.tsx +134 -0
- package/src/components/AssistantChat/AssistantConfirmationCard.tsx +58 -0
- package/src/components/AssistantChat/AssistantConversationList.tsx +85 -0
- package/src/components/AssistantChat/AssistantMessages.tsx +123 -0
- package/src/components/AssistantChat/AssistantSuggestionCard.tsx +48 -0
- package/src/components/AssistantChat/assistantMarkdown.tsx +105 -0
- package/src/components/AssistantChat/index.ts +25 -0
- package/src/components/AssistantLauncher/AssistantLauncher.tsx +408 -0
- package/src/components/AssistantLauncher/index.ts +2 -0
- package/src/hooks/index.ts +2 -0
- package/src/hooks/useSpeechRecognition.ts +95 -0
- package/src/index.ts +50 -0
- package/src/utils/env-config.ts +6 -0
package/dist/index.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap");
|
|
2
2
|
/* ! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com */html{font-family:Inter,system-ui,sans-serif}body{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity,1));color:rgb(23 23 23/var(--tw-text-opacity,1))}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{--tw-bg-opacity:1;background-color:rgb(245 245 245/var(--tw-bg-opacity,1))}::-webkit-scrollbar-thumb{--tw-bg-opacity:1;background-color:rgb(212 212 212/var(--tw-bg-opacity,1));border-radius:9999px}::-webkit-scrollbar-thumb:hover{--tw-bg-opacity:1;background-color:rgb(163 163 163/var(--tw-bg-opacity,1))}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInFromLeft{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInFromRight{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}[tabindex]:focus,button:focus,input:focus,select:focus,textarea:focus{outline:none!important}.ews-select-trigger:focus{border-color:var(--ews-primary)!important;box-shadow:0 0 0 2px var(--ews-primary)!important;outline:none!important}.ews-select-trigger:focus-visible{border-color:var(--ews-primary)!important;box-shadow:0 0 0 2px var(--ews-primary)!important;outline:none!important}.ews-select-trigger:focus,.ews-select-trigger:focus-visible,.ews-select-trigger:focus-within{border:1px solid var(--ews-primary)!important;box-shadow:0 0 0 2px var(--ews-primary)!important;outline:none!important}div[tabindex]:focus{border-color:var(--ews-primary)!important;box-shadow:0 0 0 2px var(--ews-primary)!important;outline:none!important}:root{--ews-primary:#21596c;--ews-primary-hover:#1a4756;--ews-primary-light:#c0d0d4;--ews-secondary:#3ba1a1;--ews-secondary-hover:#308181;--ews-success:#059669;--ews-success-hover:#047857;--ews-warning:#d97706;--ews-warning-hover:#b45309;--ews-error:#dc2626;--ews-error-hover:#b91c1c;--ews-white:#fff;--ews-gray-50:#f8fafc;--ews-gray-100:#f1f5f9;--ews-gray-200:#e2e8f0;--ews-gray-300:#cbd5e1;--ews-gray-400:#94a3b8;--ews-gray-500:#64748b;--ews-gray-600:#475569;--ews-gray-700:#334155;--ews-gray-800:#1e293b;--ews-gray-900:#0f172a;--ews-space-1:0.25rem;--ews-space-2:0.5rem;--ews-space-3:0.75rem;--ews-space-4:1rem;--ews-space-5:1.25rem;--ews-space-6:1.5rem;--ews-space-8:2rem;--ews-space-10:2.5rem;--ews-space-12:3rem;--ews-radius-sm:0.25rem;--ews-radius-md:0.375rem;--ews-radius-lg:0.5rem;--ews-radius-xl:0.75rem;--ews-font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;--ews-font-mono:"SF Mono","Monaco","Inconsolata","Roboto Mono","Oxygen Mono","Ubuntu Monospace","Source Code Pro","Fira Code","Droid Sans Mono","Courier New",monospace;--ews-text-xs:0.75rem;--ews-text-sm:0.875rem;--ews-text-base:1rem;--ews-text-lg:1.125rem;--ews-text-xl:1.25rem;--ews-text-2xl:1.5rem;--ews-text-3xl:1.875rem;--ews-shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--ews-shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--ews-shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1)}.ews-sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}*,: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: }/*
|
|
3
3
|
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
|
|
4
|
-
*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:Inter,system-ui,sans-serif;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}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-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height: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{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pointer-events-none{pointer-events:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-y-0{bottom:0;top:0}.bottom-0{bottom:0}.bottom-2{bottom:.5rem}.bottom-full{bottom:100%}.left-0{left:0}.left-3{left:.75rem}.right-0{right:0}.right-1{right:.25rem}.top-0{top:0}.top-1\/2{top:50%}.top-10{top:2.5rem}.top-full{top:100%}.z-10{z-index:10}.z-50{z-index:50}.z-\[1000\]{z-index:1000}.col-span-4{grid-column:span 4/span 4}.m-8{margin:2rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.-ml-1{margin-left:-.25rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-24{height:6rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-80{height:20rem}.h-full{height:100%}.max-h-48{max-height:12rem}.max-h-60{max-height:15rem}.max-h-64{max-height:16rem}.min-h-\[1\.25rem\]{min-height:1.25rem}.min-h-\[33vh\]{min-height:33vh}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-96{width:24rem}.w-\[480px\]{width:480px}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-0{min-width:0}.min-w-40{min-width:10rem}.min-w-\[120px\]{min-width:120px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-\[400px\]{max-width:400px}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-y-1\/2{--tw-translate-y:-50%}.-translate-y-1\/2,.rotate-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-0{--tw-rotate:0deg}.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 pin-shake{0%,to{transform:translateX(0)}20%,60%{transform:translateX(-8px)}40%,80%{transform:translateX(8px)}}.animate-pin-shake{animation:pin-shake .4s ease-in-out}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-10{gap:2.5rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.gap-y-4{row-gap:1rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.25rem*var(--tw-space-x-reverse))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.75rem*var(--tw-space-x-reverse))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1.5rem*var(--tw-space-x-reverse))}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(2rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(2rem*var(--tw-space-x-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2rem*var(--tw-space-y-reverse));margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(229 231 235/var(--tw-divide-opacity,1))}.self-start{align-self:flex-start}.justify-self-center{justify-self:center}.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}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:1rem}.rounded-b-md{border-bottom-left-radius:.375rem;border-bottom-right-radius:.375rem}.rounded-b-none{border-bottom-left-radius:0;border-bottom-right-radius:0}.rounded-l-md{border-bottom-left-radius:.375rem;border-top-left-radius:.375rem}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-4{border-width:4px}.border-b{border-bottom-width:1px}.border-b-0{border-bottom-width:0}.border-b-2{border-bottom-width:2px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-0{border-top-width:0}.border-dashed{border-style:dashed}.border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.border-ews-error{border-color:var(--ews-error)}.border-ews-gray-200{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity,1))}.border-ews-gray-300{--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity,1))}.border-ews-primary{border-color:var(--ews-primary)}.border-ews-success{border-color:var(--ews-success)}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.border-neutral-200{--tw-border-opacity:1;border-color:rgb(229 229 229/var(--tw-border-opacity,1))}.border-purple-200{--tw-border-opacity:1;border-color:rgb(233 213 255/var(--tw-border-opacity,1))}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.border-t-green-500{--tw-border-opacity:1;border-top-color:rgb(34 197 94/var(--tw-border-opacity,1))}.bg-black\/50{background-color:rgba(0,0,0,.5)}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.bg-ews-error{background-color:var(--ews-error)}.bg-ews-gray-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-ews-gray-50{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.bg-ews-primary{background-color:var(--ews-primary)}.bg-ews-primary-light{background-color:var(--ews-primary-light)}.bg-ews-secondary{background-color:var(--ews-secondary)}.bg-ews-success{background-color:var(--ews-success)}.bg-ews-warning{background-color:var(--ews-warning)}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.bg-green-400{--tw-bg-opacity:1;background-color:rgb(74 222 128/var(--tw-bg-opacity,1))}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-neutral-50{--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.bg-purple-100{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.bg-purple-50{--tw-bg-opacity:1;background-color:rgb(250 245 255/var(--tw-bg-opacity,1))}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.bg-teal-600{--tw-bg-opacity:1;background-color:rgb(13 148 136/var(--tw-bg-opacity,1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/10{background-color:hsla(0,0%,100%,.1)}.bg-yellow-200{--tw-bg-opacity:1;background-color:rgb(254 240 138/var(--tw-bg-opacity,1))}.bg-yellow-50{--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity,1))}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-l{background-image:linear-gradient(to left,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-red-600{--tw-gradient-from:#dc2626 var(--tw-gradient-from-position);--tw-gradient-to:rgba(220,38,38,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-red-700{--tw-gradient-to:#b91c1c var(--tw-gradient-to-position)}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-8{padding-bottom:2rem;padding-top:2rem}.pb-5{padding-bottom:1.25rem}.pb-8{padding-bottom:2rem}.pl-1{padding-left:.25rem}.pl-10{padding-left:2.5rem}.pl-16{padding-left:4rem}.pl-24{padding-left:6rem}.pl-3{padding-left:.75rem}.pr-10{padding-right:2.5rem}.pr-16{padding-right:4rem}.pr-3{padding-right:.75rem}.pt-0{padding-top:0}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-\[0\.5em\]{letter-spacing:.5em}.tracking-wide{letter-spacing:.025em}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.text-ews-error{color:var(--ews-error)}.text-ews-gray-300{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.text-ews-gray-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.text-ews-gray-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-ews-gray-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.text-ews-gray-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.text-ews-gray-900{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.text-ews-primary{color:var(--ews-primary)}.text-ews-primary-light{color:var(--ews-primary-light)}.text-ews-secondary{color:var(--ews-secondary)}.text-ews-success{color:var(--ews-success)}.text-ews-warning{color:var(--ews-warning)}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.text-indigo-700{--tw-text-opacity:1;color:rgb(67 56 202/var(--tw-text-opacity,1))}.text-neutral-400{--tw-text-opacity:1;color:rgb(163 163 163/var(--tw-text-opacity,1))}.text-neutral-500{--tw-text-opacity:1;color:rgb(115 115 115/var(--tw-text-opacity,1))}.text-neutral-900{--tw-text-opacity:1;color:rgb(23 23 23/var(--tw-text-opacity,1))}.text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.text-purple-700{--tw-text-opacity:1;color:rgb(126 34 206/var(--tw-text-opacity,1))}.text-purple-800{--tw-text-opacity:1;color:rgb(107 33 168/var(--tw-text-opacity,1))}.text-red-100{--tw-text-opacity:1;color:rgb(254 226 226/var(--tw-text-opacity,1))}.text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.text-teal-700{--tw-text-opacity:1;color:rgb(15 118 110/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-white\/80{color:hsla(0,0%,100%,.8)}.text-yellow-800{--tw-text-opacity:1;color:rgb(133 77 14/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.accent-ews-primary{accent-color:var(--ews-primary)}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-90{opacity:.9}.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-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.shadow-none,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-1{--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)}.ring-blue-400{--tw-ring-opacity:1;--tw-ring-color:rgb(96 165 250/var(--tw-ring-opacity,1))}.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)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.hover\:border-ews-gray-400:hover{--tw-border-opacity:1;border-color:rgb(148 163 184/var(--tw-border-opacity,1))}.hover\:border-ews-primary:hover{border-color:var(--ews-primary)}.hover\:bg-blue-600:hover{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.hover\:bg-ews-error-hover:hover{background-color:var(--ews-error-hover)}.hover\:bg-ews-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.hover\:bg-ews-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.hover\:bg-ews-primary:hover{background-color:var(--ews-primary)}.hover\:bg-ews-primary-hover:hover{background-color:var(--ews-primary-hover)}.hover\:bg-ews-secondary:hover{background-color:var(--ews-secondary)}.hover\:bg-ews-secondary-hover:hover{background-color:var(--ews-secondary-hover)}.hover\:bg-ews-success-hover:hover{background-color:var(--ews-success-hover)}.hover\:bg-ews-warning-hover:hover{background-color:var(--ews-warning-hover)}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.hover\:bg-green-600:hover{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.hover\:bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.hover\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.hover\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.hover\:bg-white\/20:hover{background-color:hsla(0,0%,100%,.2)}.hover\:text-ews-gray-600:hover{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.hover\:text-ews-primary:hover{color:var(--ews-primary)}.hover\:text-gray-500:hover{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.hover\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.hover\:text-gray-900:hover{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.hover\:text-neutral-600:hover{--tw-text-opacity:1;color:rgb(82 82 82/var(--tw-text-opacity,1))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.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\:border-blue-500:focus{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.focus\:border-ews-error:focus{border-color:var(--ews-error)}.focus\:border-ews-primary:focus{border-color:var(--ews-primary)}.focus\:border-ews-success:focus{border-color:var(--ews-success)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-0:focus,.focus\:ring-1:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(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\:ring-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.focus\:ring-ews-error:focus{--tw-ring-color:var(--ews-error)}.focus\:ring-ews-primary:focus{--tw-ring-color:var(--ews-primary)}.focus\:ring-ews-success:focus{--tw-ring-color:var(--ews-success)}.focus\:ring-teal-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(20 184 166/var(--tw-ring-opacity,1))}.focus\:ring-offset-0:focus{--tw-ring-offset-width:0px}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:underline:focus-visible{text-decoration-line:underline}.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-ews-primary:focus-visible{--tw-ring-color:var(--ews-primary)}.active\:bg-ews-gray-200:active{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity,1))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:border-gray-400:disabled{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity,1))}.disabled\:bg-ews-gray-50:disabled{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.disabled\:text-ews-gray-500:disabled{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.disabled\:text-gray-400:disabled{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:hover\:bg-transparent:hover:disabled{background-color:transparent}@media (min-width:640px){.sm\:mt-4{margin-top:1rem}.sm\:min-h-0{min-height:0}.sm\:w-auto{width:auto}.sm\:min-w-\[22rem\]{min-width:22rem}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:gap-4{gap:1rem}.sm\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(0px*var(--tw-space-y-reverse));margin-top:calc(0px*(1 - var(--tw-space-y-reverse)))}.sm\:self-auto{align-self:auto}.sm\:rounded-2xl{border-radius:1.5rem}.sm\:bg-ews-gray-900\/50{background-color:rgba(15,23,42,.5)}.sm\:bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.sm\:px-10{padding-left:2.5rem;padding-right:2.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:px-8{padding-left:2rem;padding-right:2rem}.sm\:py-10{padding-bottom:2.5rem;padding-top:2.5rem}.sm\:pb-8{padding-bottom:2rem}.sm\:shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.sm\:backdrop-blur-sm{--tw-backdrop-blur:blur(4px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}}@media (min-width:768px){.md\:flex{display:flex}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:1024px){.lg\:px-8{padding-left:2rem;padding-right:2rem}}
|
|
4
|
+
*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:Inter,system-ui,sans-serif;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}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-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height: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{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.\!visible{visibility:visible!important}.visible{visibility:visible}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-y-0{bottom:0;top:0}.bottom-0{bottom:0}.bottom-2{bottom:.5rem}.bottom-full{bottom:100%}.end-0{inset-inline-end:0}.left-0{left:0}.left-3{left:.75rem}.right-0{right:0}.right-1{right:.25rem}.top-0{top:0}.top-1\/2{top:50%}.top-10{top:2.5rem}.top-full{top:100%}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[1000\]{z-index:1000}.z-\[90\]{z-index:90}.col-span-4{grid-column:span 4/span 4}.m-8{margin:2rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-bottom:.5rem;margin-top:.5rem}.-ml-1{margin-left:-.25rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-24{height:6rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-80{height:20rem}.h-full{height:100%}.max-h-40{max-height:10rem}.max-h-48{max-height:12rem}.max-h-60{max-height:15rem}.max-h-64{max-height:16rem}.min-h-0{min-height:0}.min-h-\[1\.25rem\]{min-height:1.25rem}.min-h-\[2\.5rem\]{min-height:2.5rem}.min-h-\[33vh\]{min-height:33vh}.min-h-\[36rem\]{min-height:36rem}.min-h-\[40rem\]{min-height:40rem}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-96{width:24rem}.w-\[480px\]{width:480px}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-0{min-width:0}.min-w-40{min-width:10rem}.min-w-\[120px\]{min-width:120px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-\[400px\]{max-width:400px}.max-w-\[85\%\]{max-width:85%}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-y-1\/2{--tw-translate-y:-50%}.-translate-y-1\/2,.rotate-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-0{--tw-rotate:0deg}.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 pin-shake{0%,to{transform:translateX(0)}20%,60%{transform:translateX(-8px)}40%,80%{transform:translateX(8px)}}.animate-pin-shake{animation:pin-shake .4s ease-in-out}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.resize-none{resize:none}.resize{resize:both}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.gap-1{gap:.25rem}.gap-10{gap:2.5rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.gap-y-1{row-gap:.25rem}.gap-y-4{row-gap:1rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.25rem*var(--tw-space-x-reverse))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.75rem*var(--tw-space-x-reverse))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1.5rem*var(--tw-space-x-reverse))}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(2rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(2rem*var(--tw-space-x-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2rem*var(--tw-space-y-reverse));margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(229 231 235/var(--tw-divide-opacity,1))}.self-start{align-self:flex-start}.justify-self-center{justify-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:1rem}.rounded-b-md{border-bottom-left-radius:.375rem;border-bottom-right-radius:.375rem}.rounded-b-none{border-bottom-left-radius:0;border-bottom-right-radius:0}.rounded-l-md{border-bottom-left-radius:.375rem;border-top-left-radius:.375rem}.rounded-ee-md{border-end-end-radius:.375rem}.rounded-es-md{border-end-start-radius:.375rem}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-4{border-width:4px}.border-b{border-bottom-width:1px}.border-b-0{border-bottom-width:0}.border-b-2{border-bottom-width:2px}.border-e{border-inline-end-width:1px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-0{border-top-width:0}.border-dashed{border-style:dashed}.border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.border-ews-error{border-color:var(--ews-error)}.border-ews-gray-100{--tw-border-opacity:1;border-color:rgb(241 245 249/var(--tw-border-opacity,1))}.border-ews-gray-200{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity,1))}.border-ews-gray-300{--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity,1))}.border-ews-primary{border-color:var(--ews-primary)}.border-ews-success{border-color:var(--ews-success)}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.border-neutral-200{--tw-border-opacity:1;border-color:rgb(229 229 229/var(--tw-border-opacity,1))}.border-purple-200{--tw-border-opacity:1;border-color:rgb(233 213 255/var(--tw-border-opacity,1))}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.border-t-green-500{--tw-border-opacity:1;border-top-color:rgb(34 197 94/var(--tw-border-opacity,1))}.bg-black\/20{background-color:rgba(0,0,0,.2)}.bg-black\/40{background-color:rgba(0,0,0,.4)}.bg-black\/50{background-color:rgba(0,0,0,.5)}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.bg-ews-error{background-color:var(--ews-error)}.bg-ews-gray-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-ews-gray-50{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.bg-ews-primary{background-color:var(--ews-primary)}.bg-ews-primary-light{background-color:var(--ews-primary-light)}.bg-ews-secondary{background-color:var(--ews-secondary)}.bg-ews-success{background-color:var(--ews-success)}.bg-ews-warning{background-color:var(--ews-warning)}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.bg-green-400{--tw-bg-opacity:1;background-color:rgb(74 222 128/var(--tw-bg-opacity,1))}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-neutral-50{--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.bg-purple-100{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.bg-purple-50{--tw-bg-opacity:1;background-color:rgb(250 245 255/var(--tw-bg-opacity,1))}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.bg-teal-600{--tw-bg-opacity:1;background-color:rgb(13 148 136/var(--tw-bg-opacity,1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/10{background-color:hsla(0,0%,100%,.1)}.bg-yellow-200{--tw-bg-opacity:1;background-color:rgb(254 240 138/var(--tw-bg-opacity,1))}.bg-yellow-50{--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity,1))}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-l{background-image:linear-gradient(to left,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-ews-primary{--tw-gradient-from:var(--ews-primary) 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-red-600{--tw-gradient-from:#dc2626 var(--tw-gradient-from-position);--tw-gradient-to:rgba(220,38,38,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-ews-primary-hover{--tw-gradient-to:var(--ews-primary-hover) var(--tw-gradient-to-position)}.to-red-700{--tw-gradient-to:#b91c1c var(--tw-gradient-to-position)}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.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}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.py-10{padding-bottom:2.5rem;padding-top:2.5rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.py-8{padding-bottom:2rem;padding-top:2rem}.pb-3{padding-bottom:.75rem}.pb-5{padding-bottom:1.25rem}.pb-8{padding-bottom:2rem}.pe-2{padding-inline-end:.5rem}.pl-1{padding-left:.25rem}.pl-10{padding-left:2.5rem}.pl-16{padding-left:4rem}.pl-24{padding-left:6rem}.pl-3{padding-left:.75rem}.pr-10{padding-right:2.5rem}.pr-16{padding-right:4rem}.pr-3{padding-right:.75rem}.ps-3{padding-inline-start:.75rem}.ps-5{padding-inline-start:1.25rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-start{text-align:start}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-\[0\.5em\]{letter-spacing:.5em}.tracking-wide{letter-spacing:.025em}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.text-ews-error{color:var(--ews-error)}.text-ews-gray-300{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.text-ews-gray-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.text-ews-gray-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-ews-gray-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.text-ews-gray-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.text-ews-gray-800{--tw-text-opacity:1;color:rgb(30 41 59/var(--tw-text-opacity,1))}.text-ews-gray-900{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.text-ews-primary{color:var(--ews-primary)}.text-ews-primary-light{color:var(--ews-primary-light)}.text-ews-secondary{color:var(--ews-secondary)}.text-ews-success{color:var(--ews-success)}.text-ews-warning{color:var(--ews-warning)}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.text-indigo-700{--tw-text-opacity:1;color:rgb(67 56 202/var(--tw-text-opacity,1))}.text-neutral-400{--tw-text-opacity:1;color:rgb(163 163 163/var(--tw-text-opacity,1))}.text-neutral-500{--tw-text-opacity:1;color:rgb(115 115 115/var(--tw-text-opacity,1))}.text-neutral-900{--tw-text-opacity:1;color:rgb(23 23 23/var(--tw-text-opacity,1))}.text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.text-purple-700{--tw-text-opacity:1;color:rgb(126 34 206/var(--tw-text-opacity,1))}.text-purple-800{--tw-text-opacity:1;color:rgb(107 33 168/var(--tw-text-opacity,1))}.text-red-100{--tw-text-opacity:1;color:rgb(254 226 226/var(--tw-text-opacity,1))}.text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.text-teal-700{--tw-text-opacity:1;color:rgb(15 118 110/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-white\/80{color:hsla(0,0%,100%,.8)}.text-yellow-800{--tw-text-opacity:1;color:rgb(133 77 14/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.accent-ews-primary{accent-color:var(--ews-primary)}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-90{opacity:.9}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-2xl,.shadow-\[0_8px_30px_rgba\(15\2c 23\2c 42\2c 0\.14\)\]{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0_8px_30px_rgba\(15\2c 23\2c 42\2c 0\.14\)\]{--tw-shadow:0 8px 30px rgba(15,23,42,.14);--tw-shadow-colored:0 8px 30px var(--tw-shadow-color)}.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-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.shadow-none,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-1{--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)}.ring-blue-400{--tw-ring-opacity:1;--tw-ring-color:rgb(96 165 250/var(--tw-ring-opacity,1))}.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)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition-\[width\2c max-width\]{transition-duration:.15s;transition-property:width,max-width;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.placeholder\:text-ews-gray-400::-moz-placeholder{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.placeholder\:text-ews-gray-400::placeholder{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.first\:mt-0:first-child{margin-top:0}.last\:mb-0:last-child{margin-bottom:0}.focus-within\:border-ews-primary:focus-within{border-color:var(--ews-primary)}.focus-within\:ring-2: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(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)}.hover\:border-ews-gray-400:hover{--tw-border-opacity:1;border-color:rgb(148 163 184/var(--tw-border-opacity,1))}.hover\:border-ews-primary:hover{border-color:var(--ews-primary)}.hover\:bg-blue-600:hover{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.hover\:bg-ews-error-hover:hover{background-color:var(--ews-error-hover)}.hover\:bg-ews-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.hover\:bg-ews-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity,1))}.hover\:bg-ews-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.hover\:bg-ews-primary:hover{background-color:var(--ews-primary)}.hover\:bg-ews-primary-hover:hover{background-color:var(--ews-primary-hover)}.hover\:bg-ews-secondary:hover{background-color:var(--ews-secondary)}.hover\:bg-ews-secondary-hover:hover{background-color:var(--ews-secondary-hover)}.hover\:bg-ews-success-hover:hover{background-color:var(--ews-success-hover)}.hover\:bg-ews-warning-hover:hover{background-color:var(--ews-warning-hover)}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.hover\:bg-green-600:hover{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.hover\:bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.hover\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.hover\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.hover\:bg-white:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.hover\:bg-white\/20:hover{background-color:hsla(0,0%,100%,.2)}.hover\:text-ews-gray-600:hover{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.hover\:text-ews-gray-900:hover{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.hover\:text-ews-primary:hover{color:var(--ews-primary)}.hover\:text-ews-primary-hover:hover{color:var(--ews-primary-hover)}.hover\:text-gray-500:hover{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.hover\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.hover\:text-gray-900:hover{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.hover\:text-neutral-600:hover{--tw-text-opacity:1;color:rgb(82 82 82/var(--tw-text-opacity,1))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.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\:border-blue-500:focus{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.focus\:border-ews-error:focus{border-color:var(--ews-error)}.focus\:border-ews-primary:focus{border-color:var(--ews-primary)}.focus\:border-ews-success:focus{border-color:var(--ews-success)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-0:focus,.focus\:ring-1:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(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\:ring-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.focus\:ring-ews-error:focus{--tw-ring-color:var(--ews-error)}.focus\:ring-ews-primary:focus{--tw-ring-color:var(--ews-primary)}.focus\:ring-ews-success:focus{--tw-ring-color:var(--ews-success)}.focus\:ring-teal-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(20 184 166/var(--tw-ring-opacity,1))}.focus\:ring-offset-0:focus{--tw-ring-offset-width:0px}.focus\:ring-offset-1:focus{--tw-ring-offset-width:1px}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:underline:focus-visible{text-decoration-line:underline}.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-ews-primary:focus-visible{--tw-ring-color:var(--ews-primary)}.active\:bg-ews-gray-200:active{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity,1))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:border-gray-400:disabled{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity,1))}.disabled\:bg-ews-gray-50:disabled{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.disabled\:text-ews-gray-500:disabled{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.disabled\:text-gray-400:disabled{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:hover\:bg-transparent:hover:disabled{background-color:transparent}@media (min-width:640px){.sm\:mt-4{margin-top:1rem}.sm\:min-h-0{min-height:0}.sm\:w-auto{width:auto}.sm\:min-w-\[22rem\]{min-width:22rem}.sm\:max-w-md{max-width:28rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:gap-4{gap:1rem}.sm\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(0px*var(--tw-space-y-reverse));margin-top:calc(0px*(1 - var(--tw-space-y-reverse)))}.sm\:self-auto{align-self:auto}.sm\:rounded-2xl{border-radius:1.5rem}.sm\:bg-ews-gray-900\/50{background-color:rgba(15,23,42,.5)}.sm\:bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.sm\:px-10{padding-left:2.5rem;padding-right:2.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:px-8{padding-left:2rem;padding-right:2rem}.sm\:py-10{padding-bottom:2.5rem;padding-top:2.5rem}.sm\:pb-8{padding-bottom:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.sm\:backdrop-blur-sm{--tw-backdrop-blur:blur(4px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}}@media (min-width:768px){.md\:flex{display:flex}.md\:inline-flex{display:inline-flex}.md\:w-\[max\(50vw\2c 40rem\)\]{width:max(50vw,40rem)}.md\:max-w-none{max-width:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-\[16rem_1fr\]{grid-template-columns:16rem 1fr}}@media (min-width:1024px){.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:px-8{padding-left:2rem;padding-right:2rem}}.rtl\:-scale-x-100:where([dir=rtl],[dir=rtl] *){--tw-scale-x:-1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}
|
package/dist/index.d.ts
CHANGED
|
@@ -657,6 +657,380 @@ interface PinCodeInputProps {
|
|
|
657
657
|
*/
|
|
658
658
|
declare const PinCodeInput: ({ length, onComplete, onChange, masked, autoComplete, autoFocus, disabled, invalid, resetKey, digitLabel, groupLabel, className, }: PinCodeInputProps) => React__default.JSX.Element;
|
|
659
659
|
|
|
660
|
+
/** Languages the assistant speaks; `ar` renders right-to-left. */
|
|
661
|
+
type AssistantLanguage = "fr" | "en" | "ar";
|
|
662
|
+
/**
|
|
663
|
+
* Events streamed by the assistant BFF for one answer
|
|
664
|
+
* (projects/medecine360-mcp/docs/assistant-api-contract.md).
|
|
665
|
+
*/
|
|
666
|
+
type AssistantEvent = {
|
|
667
|
+
type: "message_start";
|
|
668
|
+
messageId: string;
|
|
669
|
+
} | {
|
|
670
|
+
type: "text_delta";
|
|
671
|
+
text: string;
|
|
672
|
+
} | {
|
|
673
|
+
type: "tool_call";
|
|
674
|
+
name: string;
|
|
675
|
+
status: "started" | "done" | "failed";
|
|
676
|
+
label: string;
|
|
677
|
+
} | {
|
|
678
|
+
type: "citation";
|
|
679
|
+
title: string;
|
|
680
|
+
url: string;
|
|
681
|
+
} | {
|
|
682
|
+
type: "message_end";
|
|
683
|
+
messageId: string;
|
|
684
|
+
usage?: {
|
|
685
|
+
inputTokens: number;
|
|
686
|
+
outputTokens: number;
|
|
687
|
+
};
|
|
688
|
+
} | {
|
|
689
|
+
type: "error";
|
|
690
|
+
code: "MODEL_UNAVAILABLE" | "RATE_LIMITED" | "CONVERSATION_NOT_FOUND" | "INVALID_MESSAGE" | "NETWORK" | string;
|
|
691
|
+
message: string;
|
|
692
|
+
retryAfterSeconds?: number;
|
|
693
|
+
};
|
|
694
|
+
interface AssistantCitation {
|
|
695
|
+
title: string;
|
|
696
|
+
url: string;
|
|
697
|
+
}
|
|
698
|
+
interface AssistantMessage {
|
|
699
|
+
id: string;
|
|
700
|
+
role: "user" | "assistant";
|
|
701
|
+
content: string;
|
|
702
|
+
citations?: AssistantCitation[];
|
|
703
|
+
/** Streaming state of an assistant message. */
|
|
704
|
+
status?: "streaming" | "done" | "error";
|
|
705
|
+
/** Set when `status` is `error`: what to show, and whether a retry makes sense. */
|
|
706
|
+
error?: {
|
|
707
|
+
message: string;
|
|
708
|
+
retryAfterSeconds?: number;
|
|
709
|
+
};
|
|
710
|
+
}
|
|
711
|
+
interface AssistantConversationSummary {
|
|
712
|
+
id: string;
|
|
713
|
+
title: string;
|
|
714
|
+
createdAt: string;
|
|
715
|
+
}
|
|
716
|
+
/**
|
|
717
|
+
* The transport is the app's job: the component never knows a URL. The
|
|
718
|
+
* async iterable returned by `sendMessage` must end after `message_end` or
|
|
719
|
+
* `error`; a thrown error is treated as a network failure.
|
|
720
|
+
*/
|
|
721
|
+
interface AssistantTransport {
|
|
722
|
+
startConversation(language: AssistantLanguage): Promise<{
|
|
723
|
+
id: string;
|
|
724
|
+
}>;
|
|
725
|
+
sendMessage(conversationId: string, content: string, options?: {
|
|
726
|
+
signal?: AbortSignal;
|
|
727
|
+
}): AsyncIterable<AssistantEvent>;
|
|
728
|
+
getConversation?(conversationId: string): Promise<{
|
|
729
|
+
id: string;
|
|
730
|
+
messages: AssistantMessage[];
|
|
731
|
+
}>;
|
|
732
|
+
}
|
|
733
|
+
interface AssistantSuggestion {
|
|
734
|
+
id: string;
|
|
735
|
+
title: string;
|
|
736
|
+
description?: string;
|
|
737
|
+
/** What is sent when the card is clicked. */
|
|
738
|
+
prompt: string;
|
|
739
|
+
icon?: ReactNode;
|
|
740
|
+
/** Marks the "example question" card of the mockup. */
|
|
741
|
+
kind?: "action" | "example";
|
|
742
|
+
}
|
|
743
|
+
/** Every string the component shows; the app translates them. */
|
|
744
|
+
interface AssistantChatTexts {
|
|
745
|
+
brandName: string;
|
|
746
|
+
online: string;
|
|
747
|
+
newConversation: string;
|
|
748
|
+
recentConversations: string;
|
|
749
|
+
signIn: string;
|
|
750
|
+
signInHint: string;
|
|
751
|
+
heroTitle: string;
|
|
752
|
+
heroSubtitle: string;
|
|
753
|
+
composerPlaceholder: string;
|
|
754
|
+
composerHint: string;
|
|
755
|
+
send: string;
|
|
756
|
+
/** Mic button: hold to talk. */
|
|
757
|
+
holdToTalk: string;
|
|
758
|
+
listening: string;
|
|
759
|
+
thinking: string;
|
|
760
|
+
retry: string;
|
|
761
|
+
rateLimited: (seconds: number) => string;
|
|
762
|
+
genericError: string;
|
|
763
|
+
sources: string;
|
|
764
|
+
exampleLabel: string;
|
|
765
|
+
confirm: string;
|
|
766
|
+
cancel: string;
|
|
767
|
+
/** The history button of the panel layout; falls back to `recentConversations`. */
|
|
768
|
+
history?: string;
|
|
769
|
+
}
|
|
770
|
+
interface AssistantConfirmation {
|
|
771
|
+
id: string;
|
|
772
|
+
title: string;
|
|
773
|
+
details: Array<{
|
|
774
|
+
label: string;
|
|
775
|
+
value: string;
|
|
776
|
+
}>;
|
|
777
|
+
}
|
|
778
|
+
interface AssistantChatProps {
|
|
779
|
+
transport: AssistantTransport;
|
|
780
|
+
language: AssistantLanguage;
|
|
781
|
+
texts: AssistantChatTexts;
|
|
782
|
+
suggestions: AssistantSuggestion[];
|
|
783
|
+
/** Conversations the app remembers (local storage or account). */
|
|
784
|
+
conversations?: AssistantConversationSummary[];
|
|
785
|
+
activeConversationId?: string | null;
|
|
786
|
+
/** Messages of the active conversation, when the app restores one. */
|
|
787
|
+
initialMessages?: AssistantMessage[];
|
|
788
|
+
onConversationCreated?: (conversation: AssistantConversationSummary) => void;
|
|
789
|
+
onSelectConversation?: (conversationId: string) => void;
|
|
790
|
+
onNewConversation?: () => void;
|
|
791
|
+
/** Where "Se connecter" goes. Hidden when absent. */
|
|
792
|
+
signInHref?: string;
|
|
793
|
+
/** Rendered in the header, right side (e.g. "Réserver un appel"). */
|
|
794
|
+
headerAction?: ReactNode;
|
|
795
|
+
/** Rendered under the composer (sources, no medical advice, privacy link). */
|
|
796
|
+
disclaimer?: ReactNode;
|
|
797
|
+
/** Decorative image or gradient behind the hero. */
|
|
798
|
+
heroBackground?: ReactNode;
|
|
799
|
+
/** Push-to-talk through the browser speech API. Default true; hidden anyway where unsupported. */
|
|
800
|
+
voice?: boolean;
|
|
801
|
+
/** Phase 2: a confirmation the assistant asks before a write. */
|
|
802
|
+
pendingConfirmation?: AssistantConfirmation | null;
|
|
803
|
+
onConfirm?: (confirmation: AssistantConfirmation) => void;
|
|
804
|
+
onCancelConfirmation?: (confirmation: AssistantConfirmation) => void;
|
|
805
|
+
/**
|
|
806
|
+
* `page` (default): the chat home with the conversation list beside the
|
|
807
|
+
* thread. `panel` (MED-1787): one narrow column for a slide-over, the
|
|
808
|
+
* conversation list behind a history button, a "new conversation" button
|
|
809
|
+
* in the header. `wide`: the expanded slide-over, list beside the thread.
|
|
810
|
+
*/
|
|
811
|
+
layout?: "page" | "panel" | "wide";
|
|
812
|
+
/** Panel layout: the conversation list is shown over the thread. */
|
|
813
|
+
historyOpen?: boolean;
|
|
814
|
+
onHistoryOpenChange?: (open: boolean) => void;
|
|
815
|
+
/**
|
|
816
|
+
* MED-1787: a message typed outside the chat (the launcher bar) to send as
|
|
817
|
+
* soon as possible. Each `id` is sent once; a new id sends again.
|
|
818
|
+
*/
|
|
819
|
+
queuedPrompt?: {
|
|
820
|
+
id: string;
|
|
821
|
+
content: string;
|
|
822
|
+
} | null;
|
|
823
|
+
/**
|
|
824
|
+
* Called when a link in an answer is clicked. Return true when the host
|
|
825
|
+
* navigated itself (e.g. its router): the browser then does not follow the
|
|
826
|
+
* link. Links to other origins always open in a new tab.
|
|
827
|
+
*/
|
|
828
|
+
onNavigate?: (href: string) => boolean | void;
|
|
829
|
+
className?: string;
|
|
830
|
+
}
|
|
831
|
+
|
|
832
|
+
/** A conversation title is its first message, cut like the mockup's sidebar. */
|
|
833
|
+
declare function conversationTitle(firstMessage: string, max?: number): string;
|
|
834
|
+
/**
|
|
835
|
+
* The chat home of the Medecine360 assistant (MED-1783, mockup med1):
|
|
836
|
+
* conversation list, header with brand badge, hero with suggestion cards,
|
|
837
|
+
* streamed thread, composer with push-to-talk. UI only: the app provides the
|
|
838
|
+
* transport, the texts, the conversation memory and the links.
|
|
839
|
+
*
|
|
840
|
+
* Server-rendering safe: nothing touches `window` at render time, the
|
|
841
|
+
* speech API is detected after mount.
|
|
842
|
+
*/
|
|
843
|
+
declare const AssistantChat: React__default.FC<AssistantChatProps>;
|
|
844
|
+
|
|
845
|
+
interface AssistantComposerProps {
|
|
846
|
+
language: AssistantLanguage;
|
|
847
|
+
onSend: (content: string) => void;
|
|
848
|
+
disabled?: boolean;
|
|
849
|
+
/** Mic button; hidden anyway where the browser has no speech API. */
|
|
850
|
+
voice?: boolean;
|
|
851
|
+
texts: {
|
|
852
|
+
placeholder: string;
|
|
853
|
+
hint: string;
|
|
854
|
+
send: string;
|
|
855
|
+
holdToTalk: string;
|
|
856
|
+
listening: string;
|
|
857
|
+
};
|
|
858
|
+
className?: string;
|
|
859
|
+
}
|
|
860
|
+
declare const MAX_MESSAGE_LENGTH = 2000;
|
|
861
|
+
/**
|
|
862
|
+
* The composer of the mockup: textarea, hint, push-to-talk mic (hold to
|
|
863
|
+
* record, release to send) and a send button. Enter sends, Shift+Enter breaks.
|
|
864
|
+
*/
|
|
865
|
+
declare const AssistantComposer: React__default.FC<AssistantComposerProps>;
|
|
866
|
+
|
|
867
|
+
interface AssistantConfirmationCardProps {
|
|
868
|
+
confirmation: AssistantConfirmation;
|
|
869
|
+
onConfirm: (confirmation: AssistantConfirmation) => void;
|
|
870
|
+
onCancel: (confirmation: AssistantConfirmation) => void;
|
|
871
|
+
texts: {
|
|
872
|
+
confirm: string;
|
|
873
|
+
cancel: string;
|
|
874
|
+
};
|
|
875
|
+
busy?: boolean;
|
|
876
|
+
className?: string;
|
|
877
|
+
}
|
|
878
|
+
/**
|
|
879
|
+
* Reserved for phase 2 (MED-1779): the card the assistant shows before a
|
|
880
|
+
* write (booking, cancellation). Title, details, confirm and cancel wired to
|
|
881
|
+
* the app, so phase 2 needs no component change.
|
|
882
|
+
*/
|
|
883
|
+
declare const AssistantConfirmationCard: React__default.FC<AssistantConfirmationCardProps>;
|
|
884
|
+
|
|
885
|
+
interface AssistantConversationListProps {
|
|
886
|
+
conversations: AssistantConversationSummary[];
|
|
887
|
+
activeConversationId?: string | null;
|
|
888
|
+
onSelect?: (conversationId: string) => void;
|
|
889
|
+
onNew?: () => void;
|
|
890
|
+
texts: {
|
|
891
|
+
newConversation: string;
|
|
892
|
+
recentConversations: string;
|
|
893
|
+
signIn: string;
|
|
894
|
+
signInHint: string;
|
|
895
|
+
};
|
|
896
|
+
signInHref?: string;
|
|
897
|
+
className?: string;
|
|
898
|
+
}
|
|
899
|
+
/** Left column of the mockup: new discussion, recent ones, sign-in prompt at the bottom. */
|
|
900
|
+
declare const AssistantConversationList: React__default.FC<AssistantConversationListProps>;
|
|
901
|
+
|
|
902
|
+
interface AssistantMarkdownOptions {
|
|
903
|
+
/**
|
|
904
|
+
* Called when a link is clicked, before the browser follows it. Call
|
|
905
|
+
* `event.preventDefault()` to navigate otherwise (e.g. the host router).
|
|
906
|
+
*/
|
|
907
|
+
onLinkClick?: (href: string, event: React__default.MouseEvent<HTMLAnchorElement>) => void;
|
|
908
|
+
/** Whether a link leaves the current site; such links open in a new tab. */
|
|
909
|
+
isExternal?: (href: string) => boolean;
|
|
910
|
+
}
|
|
911
|
+
/** Absolute URL on another origin. Without a window (server rendering) every absolute URL counts as external. */
|
|
912
|
+
declare function isExternalLink(href: string): boolean;
|
|
913
|
+
declare function renderAssistantMarkdown(content: string, options?: AssistantMarkdownOptions): React__default.ReactNode[];
|
|
914
|
+
|
|
915
|
+
interface AssistantMessagesProps {
|
|
916
|
+
messages: AssistantMessage[];
|
|
917
|
+
/** The tool activity line shown under the streaming answer, e.g. "Recherche de médecins…". */
|
|
918
|
+
activity?: string | null;
|
|
919
|
+
onRetry?: (message: AssistantMessage) => void;
|
|
920
|
+
texts: {
|
|
921
|
+
thinking: string;
|
|
922
|
+
retry: string;
|
|
923
|
+
sources: string;
|
|
924
|
+
brandName: string;
|
|
925
|
+
};
|
|
926
|
+
/** Link handling of the answers (same-tab navigation through the host router). */
|
|
927
|
+
linkOptions?: AssistantMarkdownOptions;
|
|
928
|
+
className?: string;
|
|
929
|
+
}
|
|
930
|
+
/** The thread: user bubbles on the end side, assistant answers on the start side, auto-scrolled. */
|
|
931
|
+
declare const AssistantMessages: React__default.FC<AssistantMessagesProps>;
|
|
932
|
+
|
|
933
|
+
interface AssistantSuggestionCardProps {
|
|
934
|
+
suggestion: AssistantSuggestion;
|
|
935
|
+
onSelect: (suggestion: AssistantSuggestion) => void;
|
|
936
|
+
exampleLabel: string;
|
|
937
|
+
disabled?: boolean;
|
|
938
|
+
className?: string;
|
|
939
|
+
}
|
|
940
|
+
/** One of the cards under the hero (mockup med1): title, description, sent as a prompt on click. */
|
|
941
|
+
declare const AssistantSuggestionCard: React__default.FC<AssistantSuggestionCardProps>;
|
|
942
|
+
|
|
943
|
+
interface AssistantLauncherTexts {
|
|
944
|
+
/** Placeholder of the bar ("Posez une question…"); also the dialog's accessible name. */
|
|
945
|
+
open: string;
|
|
946
|
+
/** The close button of the panel. */
|
|
947
|
+
close: string;
|
|
948
|
+
/** The voice button of the bar; falls back to `open`. */
|
|
949
|
+
voice?: string;
|
|
950
|
+
/** The expand / collapse button of the panel; fall back to `open` / `close`. */
|
|
951
|
+
expand?: string;
|
|
952
|
+
collapse?: string;
|
|
953
|
+
/** The history button of the panel; falls back to `texts.recentConversations`. */
|
|
954
|
+
history?: string;
|
|
955
|
+
}
|
|
956
|
+
interface AssistantLauncherProps extends Omit<AssistantChatProps, "className" | "layout" | "queuedPrompt" | "historyOpen" | "onHistoryOpenChange"> {
|
|
957
|
+
launcherTexts: AssistantLauncherTexts;
|
|
958
|
+
/** Controlled open state; the launcher manages it when absent. */
|
|
959
|
+
open?: boolean;
|
|
960
|
+
defaultOpen?: boolean;
|
|
961
|
+
onOpenChange?: (open: boolean) => void;
|
|
962
|
+
/** Controlled expanded (wide) state; the launcher manages it when absent. */
|
|
963
|
+
expanded?: boolean;
|
|
964
|
+
defaultExpanded?: boolean;
|
|
965
|
+
onExpandedChange?: (expanded: boolean) => void;
|
|
966
|
+
/**
|
|
967
|
+
* Pixels between the bar and the bottom of the viewport, so the bar sits
|
|
968
|
+
* above a host bottom navigation. Default 16.
|
|
969
|
+
*/
|
|
970
|
+
bottomOffset?: number;
|
|
971
|
+
/** Renders nothing at all (e.g. a feature toggle off). */
|
|
972
|
+
hidden?: boolean;
|
|
973
|
+
/** Extra classes on the bar. */
|
|
974
|
+
className?: string;
|
|
975
|
+
/** Extra classes on the panel (e.g. a wider max width). */
|
|
976
|
+
panelClassName?: string;
|
|
977
|
+
}
|
|
978
|
+
/**
|
|
979
|
+
* MED-1787: the in-app entry to the assistant for Medecine360-ui and the
|
|
980
|
+
* dashboard. A floating bar at the bottom of the page (brand badge, a text
|
|
981
|
+
* field "Posez une question…", push-to-talk mic, voice button, send) opens a
|
|
982
|
+
* slide-over panel hosting AssistantChat in its `panel` layout; clicking the
|
|
983
|
+
* field opens the panel too, a spoken question is sent as it opens. From
|
|
984
|
+
* tablets up the panel can be expanded to a dashboard reaching the middle of
|
|
985
|
+
* the screen, with the conversation list beside the thread; in the narrow
|
|
986
|
+
* layout a history button shows that list over the thread.
|
|
987
|
+
*
|
|
988
|
+
* Conversation history is managed here with the shared browser store unless
|
|
989
|
+
* the host passes `conversations` itself: new conversations are remembered,
|
|
990
|
+
* selecting one loads it through `transport.getConversation`.
|
|
991
|
+
*
|
|
992
|
+
* The chat stays mounted while the panel is closed, so the conversation in
|
|
993
|
+
* progress survives open/close. Escape and the overlay close the panel; focus
|
|
994
|
+
* goes to the composer on open and back to the bar on close. In Arabic the
|
|
995
|
+
* panel slides from the left (`end-0` follows `dir`).
|
|
996
|
+
*/
|
|
997
|
+
declare const AssistantLauncher: React__default.FC<AssistantLauncherProps>;
|
|
998
|
+
|
|
999
|
+
/**
|
|
1000
|
+
* The assistant BFF client shared by every app (MED-1787; contract in
|
|
1001
|
+
* projects/medecine360-mcp/docs/assistant-api-contract.md). Fetch rather than
|
|
1002
|
+
* EventSource: the message endpoint is a POST. Requests carry the platform
|
|
1003
|
+
* session cookie (`credentials: "include"`) so the assistant BFF can derive
|
|
1004
|
+
* the persona server-side once it supports it.
|
|
1005
|
+
*/
|
|
1006
|
+
interface AssistantTransportOptions {
|
|
1007
|
+
/** Base URL up to and including /api/v1 (createEnvConfig().assistantBffUrl). */
|
|
1008
|
+
baseUrl: string;
|
|
1009
|
+
/** Stable browser identifier, for rate limiting and conversation listing. */
|
|
1010
|
+
clientId: string;
|
|
1011
|
+
language: AssistantLanguage;
|
|
1012
|
+
fetchImpl?: typeof fetch;
|
|
1013
|
+
}
|
|
1014
|
+
/** Turns one SSE text stream into assistant events; frames may arrive split across chunks. */
|
|
1015
|
+
declare function parseAssistantEventStream(body: ReadableStream<Uint8Array>): AsyncGenerator<AssistantEvent>;
|
|
1016
|
+
declare function createAssistantTransport({ baseUrl, clientId, language, fetchImpl, }: AssistantTransportOptions): AssistantTransport;
|
|
1017
|
+
|
|
1018
|
+
/**
|
|
1019
|
+
* Anonymous memory of the assistant, in the browser only (MED-1784, shared by
|
|
1020
|
+
* every app since MED-1787): a stable client id and the conversations started
|
|
1021
|
+
* here, newest first. Nothing is sent to a server to list them; signing in
|
|
1022
|
+
* (phase 2) will attach them to the account.
|
|
1023
|
+
*/
|
|
1024
|
+
declare const ASSISTANT_CLIENT_ID_KEY = "assistant.clientId";
|
|
1025
|
+
declare const ASSISTANT_CONVERSATIONS_KEY = "assistant.conversations";
|
|
1026
|
+
declare const ASSISTANT_MAX_CONVERSATIONS = 20;
|
|
1027
|
+
type AssistantStorage = Pick<Storage, "getItem" | "setItem">;
|
|
1028
|
+
/** The browser's client id, created on first use. A fresh id per page when storage is unavailable. */
|
|
1029
|
+
declare function getAssistantClientId(store?: AssistantStorage | null): string;
|
|
1030
|
+
declare function listAssistantConversations(store?: AssistantStorage | null): AssistantConversationSummary[];
|
|
1031
|
+
/** Adds or refreshes a conversation at the top of the list, capped at ASSISTANT_MAX_CONVERSATIONS. */
|
|
1032
|
+
declare function saveAssistantConversation(conversation: AssistantConversationSummary, store?: AssistantStorage | null): AssistantConversationSummary[];
|
|
1033
|
+
|
|
660
1034
|
type LockScreenMode = "create" | "unlock" | "change" | "reset";
|
|
661
1035
|
/** Every text of the lock screen, already translated by the app. */
|
|
662
1036
|
interface LockScreenTexts {
|
|
@@ -805,6 +1179,7 @@ type Environment = "local" | "dev" | "qa" | "prod";
|
|
|
805
1179
|
interface EnvConfigOverrides {
|
|
806
1180
|
bffUrl?: string;
|
|
807
1181
|
loginBffUrl?: string;
|
|
1182
|
+
assistantBffUrl?: string;
|
|
808
1183
|
appUrl?: string;
|
|
809
1184
|
loginUrl?: string;
|
|
810
1185
|
dashboardUrl?: string;
|
|
@@ -814,6 +1189,8 @@ interface EnvConfig {
|
|
|
814
1189
|
env: Environment;
|
|
815
1190
|
bffUrl: string;
|
|
816
1191
|
loginBffUrl: string;
|
|
1192
|
+
/** MED-1783: the assistant BFF (medecine360-assistant-bff), base path included. */
|
|
1193
|
+
assistantBffUrl: string;
|
|
817
1194
|
appUrl: string;
|
|
818
1195
|
loginUrl: string;
|
|
819
1196
|
dashboardUrl: string;
|
|
@@ -1061,6 +1438,45 @@ declare function useSelectField<TFieldValues extends FieldValues = FieldValues,
|
|
|
1061
1438
|
invalid: boolean;
|
|
1062
1439
|
};
|
|
1063
1440
|
|
|
1441
|
+
/** The subset of the Web Speech API the hook uses; browsers expose it unprefixed or as webkit*. */
|
|
1442
|
+
interface SpeechRecognitionLike {
|
|
1443
|
+
lang: string;
|
|
1444
|
+
interimResults: boolean;
|
|
1445
|
+
continuous: boolean;
|
|
1446
|
+
onresult: ((event: {
|
|
1447
|
+
results: ArrayLike<ArrayLike<{
|
|
1448
|
+
transcript: string;
|
|
1449
|
+
}>>;
|
|
1450
|
+
}) => void) | null;
|
|
1451
|
+
onerror: ((event: {
|
|
1452
|
+
error?: string;
|
|
1453
|
+
}) => void) | null;
|
|
1454
|
+
onend: (() => void) | null;
|
|
1455
|
+
start(): void;
|
|
1456
|
+
stop(): void;
|
|
1457
|
+
abort(): void;
|
|
1458
|
+
}
|
|
1459
|
+
type SpeechRecognitionCtor = new () => SpeechRecognitionLike;
|
|
1460
|
+
declare function getSpeechRecognition(): SpeechRecognitionCtor | undefined;
|
|
1461
|
+
interface UseSpeechRecognitionOptions {
|
|
1462
|
+
/** `fr`, `en`, `ar` or a BCP 47 tag. */
|
|
1463
|
+
language: string;
|
|
1464
|
+
/** Called with the final transcript when recognition stops. */
|
|
1465
|
+
onResult: (transcript: string) => void;
|
|
1466
|
+
/** Called with interim text while the user speaks. */
|
|
1467
|
+
onInterim?: (transcript: string) => void;
|
|
1468
|
+
}
|
|
1469
|
+
/**
|
|
1470
|
+
* Push-to-talk on the browser speech API (MED-1783). `supported` is false on
|
|
1471
|
+
* the server and in browsers without the API, so the app can hide the mic.
|
|
1472
|
+
*/
|
|
1473
|
+
declare function useSpeechRecognition({ language, onResult, onInterim, }: UseSpeechRecognitionOptions): {
|
|
1474
|
+
supported: boolean;
|
|
1475
|
+
listening: boolean;
|
|
1476
|
+
start: () => void;
|
|
1477
|
+
stop: () => void;
|
|
1478
|
+
};
|
|
1479
|
+
|
|
1064
1480
|
type Theme = "PROMED" | "MED";
|
|
1065
1481
|
interface ThemeConfig {
|
|
1066
1482
|
name: Theme;
|
|
@@ -1091,5 +1507,5 @@ interface ThemeProviderProps {
|
|
|
1091
1507
|
declare const ThemeProvider: React__default.FC<ThemeProviderProps>;
|
|
1092
1508
|
declare const useTheme: () => ThemeContextType;
|
|
1093
1509
|
|
|
1094
|
-
export { BLOOD_TYPES, BloodType, Button, COUNTRY_CODES, DoctorIcon, DropdownMultiSelect, Icon, ImageCropModal, Input, LockScreen, Logo, Modal, MultiSearchAutocomplete, PatientIcon, PaymentDueBanner, PhoneInput, PinCodeInput, PinPad, ProfileImageUpload, RegionSelect, SearchAutocomplete, SecureLoader, Select, SpecialtySearchAutocomplete, SupportedCountry, Tag, TagList, ThemeDebugger, ThemeProvider, ThemeToggle, UserIcon, cn, createEnvConfig, debounce, extractCountryCodeFromPhoneNumber, formatCurrency, formatDate, formatNumeric, formatPhoneNumberForDisplay, formatPhoneNumberWithCountryCode, generateId, getDefaultCountryCode, getRegionOptions, getRegionsByCountry, isValidPhoneNumber, parseDateSafe, useDebounce, useDebouncedCallback, useIdleLock, useMediaQuery, useSelectField, useTheme };
|
|
1095
|
-
export type { AcceptedImageMimeType, ButtonProps, CountryCodeOption, CountryCodeSelectProps, DropdownMultiSelectProps, EnvConfig, EnvConfigOverrides, Environment, ErrorField, ErrorObject, FormatDateOptions, IconProps, ImageCropModalProps, InputProps, LockScreenMode, LockScreenProps, LockScreenTexts, LogoProps, ModalProps, PaymentDueBannerProps, PhoneInputProps, PinCodeInputProps, PinPadProps, ProfileImageUploadProps, RegionSelectProps, SearchableEntity, SecureLoaderProps, SelectOption, SelectProps, SimpleIconProps, Specialty, SpecialtySearchAutocompleteProps, TagListProps, TagProps, Theme, ThemeConfig, ThemeContextType, ThemeDebuggerProps, ThemeToggleProps, UseIdleLockOptions, UseIdleLockResult, UseSelectFieldProps };
|
|
1510
|
+
export { ASSISTANT_CLIENT_ID_KEY, ASSISTANT_CONVERSATIONS_KEY, ASSISTANT_MAX_CONVERSATIONS, AssistantChat, AssistantComposer, AssistantConfirmationCard, AssistantConversationList, AssistantLauncher, AssistantMessages, AssistantSuggestionCard, BLOOD_TYPES, BloodType, Button, COUNTRY_CODES, DoctorIcon, DropdownMultiSelect, Icon, ImageCropModal, Input, LockScreen, Logo, MAX_MESSAGE_LENGTH, Modal, MultiSearchAutocomplete, PatientIcon, PaymentDueBanner, PhoneInput, PinCodeInput, PinPad, ProfileImageUpload, RegionSelect, SearchAutocomplete, SecureLoader, Select, SpecialtySearchAutocomplete, SupportedCountry, Tag, TagList, ThemeDebugger, ThemeProvider, ThemeToggle, UserIcon, cn, conversationTitle, createAssistantTransport, createEnvConfig, debounce, extractCountryCodeFromPhoneNumber, formatCurrency, formatDate, formatNumeric, formatPhoneNumberForDisplay, formatPhoneNumberWithCountryCode, generateId, getAssistantClientId, getDefaultCountryCode, getRegionOptions, getRegionsByCountry, getSpeechRecognition, isExternalLink, isValidPhoneNumber, listAssistantConversations, parseAssistantEventStream, parseDateSafe, renderAssistantMarkdown, saveAssistantConversation, useDebounce, useDebouncedCallback, useIdleLock, useMediaQuery, useSelectField, useSpeechRecognition, useTheme };
|
|
1511
|
+
export type { AcceptedImageMimeType, AssistantChatProps, AssistantChatTexts, AssistantCitation, AssistantComposerProps, AssistantConfirmation, AssistantConfirmationCardProps, AssistantConversationListProps, AssistantConversationSummary, AssistantEvent, AssistantLanguage, AssistantLauncherProps, AssistantLauncherTexts, AssistantMarkdownOptions, AssistantMessage, AssistantMessagesProps, AssistantStorage, AssistantSuggestion, AssistantSuggestionCardProps, AssistantTransport, AssistantTransportOptions, ButtonProps, CountryCodeOption, CountryCodeSelectProps, DropdownMultiSelectProps, EnvConfig, EnvConfigOverrides, Environment, ErrorField, ErrorObject, FormatDateOptions, IconProps, ImageCropModalProps, InputProps, LockScreenMode, LockScreenProps, LockScreenTexts, LogoProps, ModalProps, PaymentDueBannerProps, PhoneInputProps, PinCodeInputProps, PinPadProps, ProfileImageUploadProps, RegionSelectProps, SearchableEntity, SecureLoaderProps, SelectOption, SelectProps, SimpleIconProps, Specialty, SpecialtySearchAutocompleteProps, TagListProps, TagProps, Theme, ThemeConfig, ThemeContextType, ThemeDebuggerProps, ThemeToggleProps, UseIdleLockOptions, UseIdleLockResult, UseSelectFieldProps, UseSpeechRecognitionOptions };
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAErE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAExE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAE/E,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,YAAY,EACV,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,YAAY,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAEjF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,YAAY,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,YAAY,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAErE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAExE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAE/E,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,YAAY,EACV,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,YAAY,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAEjF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,YAAY,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,YAAY,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGnE,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,yBAAyB,EACzB,yBAAyB,EACzB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,8BAA8B,EAC9B,8BAA8B,EAC9B,4BAA4B,EAC5B,cAAc,EACd,iBAAiB,EACjB,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,4BAA4B,EAC5B,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,YAAY,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACrG,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,2BAA2B,EAC3B,wBAAwB,EACxB,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE/E,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,YAAY,EACV,cAAc,EACd,eAAe,EACf,eAAe,GAChB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC1D,YAAY,EAAE,SAAS,EAAE,gCAAgC,EAAE,MAAM,aAAa,CAAC;AAG/E,cAAc,SAAS,CAAC;AACxB,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG1D,OAAO,EACL,WAAW,EACX,SAAS,EACT,EAAE,EACF,aAAa,EACb,eAAe,EACf,QAAQ,EACR,iCAAiC,EACjC,cAAc,EACd,UAAU,EACV,KAAK,iBAAiB,EACtB,aAAa,EACb,2BAA2B,EAC3B,gCAAgC,EAChC,UAAU,EACV,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,gBAAgB,GACjB,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,iBAAiB,EACjB,sBAAsB,EACtB,SAAS,EACT,kBAAkB,EAClB,WAAW,GACZ,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAChE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAG1E,OAAO,oBAAoB,CAAC;AAC5B,OAAO,uBAAuB,CAAC"}
|