@opencx/widget-react 4.0.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/README.md +5 -0
- package/dist/WidgetPopoverAnchor.d.ts +2 -0
- package/dist/WidgetPopoverContent.d.ts +3 -0
- package/dist/WidgetPopoverTrigger.d.ts +3 -0
- package/dist/components/AgentOrBotAvatar.d.ts +6 -0
- package/dist/components/AttachmentPreview.d.ts +7 -0
- package/dist/components/BotOrAgentMessage.d.ts +7 -0
- package/dist/components/BotOrAgentMessageGroup.d.ts +7 -0
- package/dist/components/Header.d.ts +3 -0
- package/dist/components/MightSolveUserIssueSuggestedReplies.d.ts +2 -0
- package/dist/components/PoweredByOpen.d.ts +4 -0
- package/dist/components/SuggestedReplyButton.d.ts +5 -0
- package/dist/components/UserMessage.d.ts +8 -0
- package/dist/components/UserMessageGroup.d.ts +5 -0
- package/dist/components/custom-components/BotOrAgentTextResponse.component.d.ts +16 -0
- package/dist/components/custom-components/Fallback.component.d.ts +6 -0
- package/dist/components/custom-components/Handoff.component.d.ts +3 -0
- package/dist/components/custom-components/Loading.component.d.ts +6 -0
- package/dist/components/lib/DynamicIcon.d.ts +6 -0
- package/dist/components/lib/LoadingSpinner.d.ts +4 -0
- package/dist/components/lib/MotionDiv.d.ts +19 -0
- package/dist/components/lib/avatar.d.ts +6 -0
- package/dist/components/lib/button.d.ts +11 -0
- package/dist/components/lib/dialog.d.ts +24 -0
- package/dist/components/lib/dropdown-menu.d.ts +27 -0
- package/dist/components/lib/input.d.ts +4 -0
- package/dist/components/lib/popover.d.ts +8 -0
- package/dist/components/lib/skeleton.d.ts +3 -0
- package/dist/components/lib/switch.d.ts +4 -0
- package/dist/components/lib/tooltip.d.ts +10 -0
- package/dist/components/lib/utils/cn.d.ts +2 -0
- package/dist/components/lib/widget-portal.d.ts +9 -0
- package/dist/components/lib/wobble.d.ts +26 -0
- package/dist/components/markdown.d.ts +3 -0
- package/dist/components/svg/ChatBubbleSvg.d.ts +5 -0
- package/dist/components/svg/OpenLogoSvg.d.ts +4 -0
- package/dist/hooks/useCanvas.d.ts +3 -0
- package/dist/hooks/useIsSmallScreen.d.ts +3 -0
- package/dist/hooks/useLocale.d.ts +6 -0
- package/dist/hooks/useSetWidgetSize.d.ts +8 -0
- package/dist/hooks/useTheme.d.ts +62 -0
- package/dist/hooks/useWidgetContentHeight.d.ts +3 -0
- package/dist/index.cjs +51 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +2778 -0
- package/dist/index.js.map +1 -0
- package/dist/screens/chat/ChatCanvas.d.ts +2 -0
- package/dist/screens/chat/ChatFooter.d.ts +2 -0
- package/dist/screens/chat/ChatMain.d.ts +2 -0
- package/dist/screens/chat/index.d.ts +2 -0
- package/dist/screens/index.d.ts +2 -0
- package/dist/screens/sessions/index.d.ts +2 -0
- package/dist/screens/welcome/index.d.ts +2 -0
- package/dist/translation/ar.locale.d.ts +2 -0
- package/dist/translation/de.locale.d.ts +2 -0
- package/dist/translation/en.locale.d.ts +2 -0
- package/dist/translation/es.locale.d.ts +2 -0
- package/dist/translation/fr.locale.d.ts +2 -0
- package/dist/translation/index.d.ts +16 -0
- package/dist/translation/nl.locale.d.ts +2 -0
- package/dist/translation/pt.locale.d.ts +2 -0
- package/dist/translation/tr.locale.d.ts +2 -0
- package/dist/translation/translation.types.d.ts +4 -0
- package/dist/utils/data-component.d.ts +7 -0
- package/dist/utils/group-messages-by-type.d.ts +5 -0
- package/dist-embed/script.js +365 -0
- package/dist-embed/script.js.map +1 -0
- package/package.json +75 -0
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),ft=require("@radix-ui/react-popover"),w=require("react"),i=require("@opencx/widget-react-headless"),Ue=require("rehype-raw"),Ve=require("remark-gfm"),xt=require("@radix-ui/react-dialog"),m=require("lucide-react"),vt=require("clsx"),bt=require("tailwind-merge"),yt=require("react-dom"),ce=require("@uiw/react-iframe"),jt=require("@radix-ui/react-slot"),kt=require("class-variance-authority"),Ct=require("react-markdown"),D=require("@opencx/widget-core"),N=require("framer-motion"),zt=require("@radix-ui/react-avatar"),Nt=require("@radix-ui/react-tooltip"),Le=require("tinycolor2"),St=require("react-dropzone"),_t=require("react-use/lib/useAsyncFn"),re=require("zod");function V(t){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const o in t)if(o!=="default"){const r=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(s,o,r.get?r:{enumerable:!0,get:()=>t[o]})}}return s.default=t,Object.freeze(s)}const te=V(ft),E=V(w),R=V(xt),$=V(zt),K=V(Nt);function u(t){return{"data-component":t}}function d(...t){return bt.twMerge(vt.clsx(t))}const Ke="opencx-widget-portal";function se(){return null}function It({children:t}){var o,r;const s=(r=(o=ce.useFrame())==null?void 0:o.document)==null?void 0:r.getElementById(Ke);return s?yt.createPortal(t,s):(console.error("Portal container not found!"),null)}function Tt(){return e.jsx("div",{id:Ke,className:"absolute size-full top-0 left-0"})}se.Portal=It;se.Container=Tt;const L={x:2,y:2},F=w.memo(w.forwardRef(({children:t,className:s,scale:o=1.02,off:r=!1},n)=>{const[a,l]=w.useState(!1),[c,p]=w.useState({x:0,y:0});if(r||/translate/.test(t.props.className||""))return t;const y=g=>{var b,C;const{clientX:f,clientY:I}=g,j=g.currentTarget.getBoundingClientRect(),T=f-(j.left+j.width/2),M=I-(j.top+j.height/2),O=Math.max(-1,Math.min(1,T/(j.width/2))),W=Math.max(-1,Math.min(1,M/(j.height/2))),A=O*L.x,P=W*L.y;p({x:A,y:P}),(C=(b=t.props).onMouseMove)==null||C.call(b,g)},z=()=>{var g,f;l(!0),(f=(g=t.props).onMouseEnter)==null||f.call(g)},v=()=>{var g,f;l(!1),p({x:0,y:0}),(f=(g=t.props).onMouseLeave)==null||f.call(g)},h={"--wobble-x":a?`${c.x}px`:"0px","--wobble-y":a?`${c.y}px`:"0px","--scale":1-(o-1)};return w.cloneElement(t,{ref:n,onMouseMove:y,onMouseEnter:z,onMouseLeave:v,style:{...h,...t.props.style},className:d("translate-x-[var(--wobble-x)]","translate-y-[var(--wobble-y)]","hover:scale-[var(--scale)] active:hover:scale-[calc(var(--scale)-0.02)]",s,t.props.className,"transition-all ease-out")})}));F.displayName="Wobble";const Mt=kt.cva(d("inline-flex shrink-0 items-center justify-center gap-2","text-sm font-medium whitespace-nowrap","ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:pointer-events-none disabled:opacity-50","active:scale-95 hover:active:scale-95","rounded-xl","transition"),{variants:{variant:{default:"bg-primary text-primary-foreground",destructive:"bg-destructive text-destructive-foreground",outline:"bg-background",secondary:"bg-secondary text-secondary-foreground",ghost:"hover:bg-secondary",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"py-2 px-3.5 text-xs",lg:"min-h-12 px-4 rounded-[20px]",icon:"h-10 w-10",fit:"size-fit p-2",free:"p-2",selfless:"p-0"}},defaultVariants:{variant:"default",size:"default"}}),S=E.forwardRef(({className:t,variant:s="default",size:o,asChild:r=!1,...n},a)=>{const l=r?jt.Slot:"button";return e.jsx(F,{ref:a,children:e.jsx(l,{...u("ui_lib/btn"),"data-variant":s,className:d(Mt({variant:s,size:o,className:t})),...n})})});S.displayName="Button";const Ge=R.Root,Ze=R.Trigger,Je=E.forwardRef(({className:t,...s},o)=>e.jsx(R.Overlay,{ref:o,className:d("fixed inset-0 z-50 bg-black/60 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",t),...s}));Je.displayName=R.Overlay.displayName;const de=E.forwardRef(({className:t,children:s,withClose:o=!1,...r},n)=>e.jsxs(se.Portal,{children:[e.jsx(Je,{}),e.jsxs(R.Content,{ref:n,className:d("fixed left-[50%] top-[50%] z-50 flex flex-col space-y-4 w-full max-w-[61.8%] translate-x-[-50%] translate-y-[-50%] border bg-background p-4 duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] rounded-3xl",t),...r,children:[s,o&&e.jsx(R.Close,{asChild:!0,className:"absolute right-4 top-4 opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:e.jsxs(S,{size:"fit",className:"rounded-full",variant:"secondary",children:[e.jsx(m.X,{className:"h-4 w-4"}),e.jsx("span",{className:"sr-only",children:"Close"})]})})]})]}));de.displayName=R.Content.displayName;const Qe=({className:t,...s})=>e.jsx("div",{className:d("flex flex-col gap-2 text-center pt-2",t),...s});Qe.displayName="DialogHeader";const et=({className:t,...s})=>e.jsx("div",{className:d("flex flex-col gap-2 text-center",t),...s});et.displayName="DialogBody";const tt=({className:t,...s})=>e.jsx("div",{className:d("flex flex-col gap-2",t),...s});tt.displayName="DialogFooter";const pe=E.forwardRef(({className:t,...s},o)=>e.jsx(R.Title,{ref:o,className:d("text-lg font-semibold leading-none tracking-tight",t),...s}));pe.displayName=R.Title.displayName;const st=E.forwardRef(({className:t,...s},o)=>e.jsx(R.Description,{ref:o,className:d("text-sm text-muted-foreground",t),...s}));st.displayName=R.Description.displayName;function ot({attachment:t}){const{name:s,size:o,type:r,url:n}=t,a=r.startsWith("image/"),l=r.startsWith("video/"),c=r.startsWith("audio/");return c?e.jsx(F,{children:e.jsx("div",{className:"w-full shrink-0 overflow-hidden",children:e.jsxs("audio",{controls:!0,className:"w-full",children:[e.jsx("source",{src:n,type:r}),"Your browser does not support the audio tag."]})})}):l?e.jsx(F,{children:e.jsx("div",{className:"w-full border shrink-0 rounded-2xl overflow-hidden",children:e.jsxs("video",{controls:!0,children:[e.jsx("source",{src:n,type:r}),"Your browser does not support the video tag."]})})}):!a&&!l&&!c?e.jsx(F,{children:e.jsx("div",{className:"size-fit border shrink-0 rounded-2xl overflow-hidden",children:e.jsxs("div",{className:"flex items-end gap-2 p-2",children:[e.jsx("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:d("text-xs text-blue-500 line-clamp-2 underline hover:text-blue-600","break-words [word-break:break-word]"),children:s}),e.jsxs("span",{className:"text-xs text-muted-foreground whitespace-nowrap",children:[(o/1024).toFixed(2)," KB"]})]})})}):e.jsxs(Ge,{children:[e.jsx(F,{children:e.jsx(Ze,{children:e.jsx("div",{className:"size-fit border shrink-0 rounded-2xl overflow-hidden",children:a&&e.jsx("img",{src:n,className:"object-cover size-16",alt:s})})})}),e.jsxs(de,{"aria-describedby":void 0,className:"size-full max-w-full rounded-3xl flex items-center justify-center bg-transparent border-none gap-0",withClose:!0,children:[e.jsx(pe,{className:"sr-only",children:"Image preview"}),a&&e.jsx("div",{className:"size-fit shrink-0 rounded-2xl overflow-hidden max-h-full",children:e.jsx("img",{src:n,className:"object-cover size-auto",alt:s})})]})]})}const rt=w.memo(Ct,(t,s)=>t.children===s.children&&t.className===s.className);function ee({data:t,id:s,type:o,attachments:r,isFirstInGroup:n,isLastInGroup:a,isAloneInGroup:l,dataComponentNames:c,classNames:p}){const{anchorTarget:k}=i.useConfig(),{message:y,variant:z="default"}=t;return z==="error"?e.jsx("div",{children:e.jsx("div",{className:"flex flex-row flex-wrap items-center justify-start",children:e.jsx("div",{className:"leading-snug text-sm text-destructive",children:y})})}):e.jsxs("div",{...u((c==null?void 0:c.messageContainer)??"chat/agent_msg/root"),className:d("w-5/6 flex flex-col items-start gap-1",p==null?void 0:p.messageContainer),children:[r&&r.length>0&&e.jsx("div",{className:"w-full gap-1 flex flex-row flex-wrap items-center justify-start",children:r==null?void 0:r.map(v=>e.jsx(ot,{attachment:v},v.id))}),y.length>0&&e.jsx("div",{...u((c==null?void 0:c.message)??"chat/agent_msg/msg"),"data-first":n,"data-last":a,"data-alone":l,className:d("transition-all","w-fit py-3 px-4 rounded-3xl bg-secondary text-secondary-foreground","leading-snug text-sm prose prose-sm prose-a:decoration-primary prose-a:underline","break-words [word-break:break-word]",n&&!l&&"rounded-bl-md",a&&!l&&"rounded-tl-md",!n&&!a&&!l&&"rounded-l-md",p==null?void 0:p.message),children:e.jsx(rt,{"data-type":o,"data-id":s,remarkPlugins:[Ve],rehypePlugins:[Ue],components:{a:({children:v,...h})=>e.jsx("a",{target:k??"_top",...h,children:v})},children:y})})]})}function Dt(t){return e.jsx("div",{className:"w-full max-w-full overflow-auto shrink-0",children:e.jsx("pre",{dir:"auto",className:"text-xs leading-tight whitespace-pre-wrap break-word",children:JSON.stringify(t,null,1)})})}const he=E.forwardRef(({className:t,...s},o)=>e.jsx($.Root,{ref:o,className:d("relative flex size-6 aspect-square shrink-0 overflow-hidden rounded-full bg-secondary",t),...s}));he.displayName=$.Root.displayName;const me=E.forwardRef(({className:t,...s},o)=>e.jsx($.Image,{ref:o,className:d("aspect-square h-full w-full",t),...s}));me.displayName=$.Image.displayName;const ge=E.forwardRef(({className:t,...s},o)=>e.jsx($.Fallback,{ref:o,className:d("flex size-full text-xs items-center justify-center rounded-lg",t),...s}));ge.displayName=$.Fallback.displayName;function ae({agent:t,...s}){var o,r;return e.jsxs(he,{...s,children:[e.jsx(me,{src:(t==null?void 0:t.avatar)??"",alt:"Agent Icon"}),(t==null?void 0:t.name)&&e.jsx(ge,{children:(r=(o=t==null?void 0:t.name)==null?void 0:o.slice(0,1))==null?void 0:r.toUpperCase()})]})}const Rt=10,Pt=(t,s,o)=>({initial:{opacity:0,x:-t,...s.initial},animate:{opacity:1,x:0,...s.animate,transition:{delay:o}},exit:{opacity:0,x:t,...s.exit}}),Et=(t,s,o)=>({initial:{opacity:0,x:t,...s.initial},animate:{opacity:1,x:0,...s.animate,transition:{delay:o}},exit:{opacity:0,x:-t,...s.exit}}),Ot=(t,s,o)=>({initial:{opacity:0,y:t,...s.initial},animate:{opacity:1,y:0,...s.animate,transition:{delay:o}},exit:{opacity:0,y:-t,...s.exit}}),Wt=(t,s,o)=>({initial:{opacity:0,y:-t,...s.initial},animate:{opacity:1,y:0,...s.animate,transition:{delay:o}},exit:{opacity:0,y:t,...s.exit}}),At={right:Pt,left:Et,up:Ot,down:Wt},x=w.forwardRef(({fadeIn:t="down",distance:s=Rt,children:o,snapExit:r=!1,overrides:n={},delay:a=0,...l},c)=>{const p=t?At[t](s,n,a):{};return r&&p.exit&&typeof p.exit=="object"&&!Array.isArray(p.exit)&&(p.exit.transition={duration:0}),e.jsx(N.motion.div,{ref:c,...l,...p,children:o})});x.displayName="MotionDiv";function Ft({agent:t}){return e.jsx(N.AnimatePresence,{children:e.jsxs(x,{...u("chat/bot_loading/root"),className:"flex flex-row items-end w-full gap-2 animate-pulse",children:[e.jsx(ae,{agent:t}),e.jsxs("div",{...u("chat/bot_loading/bouncing_dots_container"),className:d("flex items-center [&_span]:bg-secondary-foreground [&_span]:size-1 gap-1 p-2 rounded-xl bg-secondary"),children:[e.jsx(N.motion.span,{className:"rounded-full animate-bounce [animation-delay:-0.3s]"}),e.jsx(N.motion.span,{className:"rounded-full animate-bounce [animation-delay:-0.15s]"}),e.jsx(N.motion.span,{className:"rounded-full animate-bounce"})]})]})})}const nt='@import"https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..700;1,14..32,100..700&display=swap";@import"https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap";*,:before,:after{--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: rgb(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: rgb(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: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){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,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}*{-ms-overflow-style:none;scrollbar-width:none}*::-webkit-scrollbar{display:none}*{border-color:hsl(var(--opencx-border))}.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}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%),0 3px rgb(var(--tw-prose-kbd-shadows) / 10%);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body: #374151;--tw-prose-headings: #111827;--tw-prose-lead: #4b5563;--tw-prose-links: #111827;--tw-prose-bold: #111827;--tw-prose-counters: #6b7280;--tw-prose-bullets: #d1d5db;--tw-prose-hr: #e5e7eb;--tw-prose-quotes: #111827;--tw-prose-quote-borders: #e5e7eb;--tw-prose-captions: #6b7280;--tw-prose-kbd: #111827;--tw-prose-kbd-shadows: 17 24 39;--tw-prose-code: #111827;--tw-prose-pre-code: #e5e7eb;--tw-prose-pre-bg: #1f2937;--tw-prose-th-borders: #d1d5db;--tw-prose-td-borders: #e5e7eb;--tw-prose-invert-body: #d1d5db;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #9ca3af;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #9ca3af;--tw-prose-invert-bullets: #4b5563;--tw-prose-invert-hr: #374151;--tw-prose-invert-quotes: #f3f4f6;--tw-prose-invert-quote-borders: #374151;--tw-prose-invert-captions: #9ca3af;--tw-prose-invert-kbd: #fff;--tw-prose-invert-kbd-shadows: 255 255 255;--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d1d5db;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #4b5563;--tw-prose-invert-td-borders: #374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-sm{font-size:.875rem;line-height:1.7142857}.prose-sm :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em;margin-bottom:1.1428571em}.prose-sm :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2857143em;line-height:1.5555556;margin-top:.8888889em;margin-bottom:.8888889em}.prose-sm :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em;padding-inline-start:1.1111111em}.prose-sm :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.1428571em;margin-top:0;margin-bottom:.8em;line-height:1.2}.prose-sm :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.4285714em;margin-top:1.6em;margin-bottom:.8em;line-height:1.4}.prose-sm :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2857143em;margin-top:1.5555556em;margin-bottom:.4444444em;line-height:1.5555556}.prose-sm :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.4285714em;margin-bottom:.5714286em;line-height:1.4285714}.prose-sm :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7142857em;margin-bottom:1.7142857em}.prose-sm :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7142857em;margin-bottom:1.7142857em}.prose-sm :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-sm :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7142857em;margin-bottom:1.7142857em}.prose-sm :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;border-radius:.3125rem;padding-top:.1428571em;padding-inline-end:.3571429em;padding-bottom:.1428571em;padding-inline-start:.3571429em}.prose-sm :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em}.prose-sm :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em}.prose-sm :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em}.prose-sm :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;line-height:1.6666667;margin-top:1.6666667em;margin-bottom:1.6666667em;border-radius:.25rem;padding-top:.6666667em;padding-inline-end:1em;padding-bottom:.6666667em;padding-inline-start:1em}.prose-sm :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em;margin-bottom:1.1428571em;padding-inline-start:1.5714286em}.prose-sm :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em;margin-bottom:1.1428571em;padding-inline-start:1.5714286em}.prose-sm :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.2857143em;margin-bottom:.2857143em}.prose-sm :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4285714em}.prose-sm :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4285714em}.prose-sm :where(.prose-sm>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5714286em;margin-bottom:.5714286em}.prose-sm :where(.prose-sm>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(.prose-sm>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em}.prose-sm :where(.prose-sm>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(.prose-sm>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em}.prose-sm :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5714286em;margin-bottom:.5714286em}.prose-sm :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em;margin-bottom:1.1428571em}.prose-sm :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.2857143em;padding-inline-start:1.5714286em}.prose-sm :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2.8571429em;margin-bottom:2.8571429em}.prose-sm :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;line-height:1.5}.prose-sm :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:1em;padding-bottom:.6666667em;padding-inline-start:1em}.prose-sm :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-sm :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-sm :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.6666667em;padding-inline-end:1em;padding-bottom:.6666667em;padding-inline-start:1em}.prose-sm :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-sm :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-sm :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7142857em;margin-bottom:1.7142857em}.prose-sm :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-sm :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;line-height:1.3333333;margin-top:.6666667em}.prose-sm :where(.prose-sm>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(.prose-sm>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.bottom-0{bottom:0}.left-0{left:0}.left-2{left:.5rem}.left-\\[50\\%\\]{left:50%}.right-4{right:1rem}.right-6{right:1.5rem}.top-0{top:0}.top-4{top:1rem}.top-6{top:1.5rem}.top-\\[50\\%\\]{top:50%}.isolate{isolation:isolate}.z-10{z-index:10}.z-50{z-index:50}.m-2{margin:.5rem}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.ml-auto{margin-left:auto}.mt-0\\.5{margin-top:.125rem}.mt-auto{margin-top:auto}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.contents{display:contents}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.size-10{width:2.5rem;height:2.5rem}.size-12{width:3rem;height:3rem}.size-16{width:4rem;height:4rem}.size-3{width:.75rem;height:.75rem}.size-4{width:1rem;height:1rem}.size-6{width:1.5rem;height:1.5rem}.size-8{width:2rem;height:2rem}.size-auto{width:auto;height:auto}.size-fit{width:fit-content;height:fit-content}.size-full{width:100%;height:100%}.h-10{height:2.5rem}.h-2{height:.5rem}.h-3\\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-8{height:2rem}.h-full{height:100%}.h-px{height:1px}.max-h-16{max-height:4rem}.max-h-full{max-height:100%}.min-h-12{min-height:3rem}.w-0{width:0px}.w-1\\/2{width:50%}.w-10{width:2.5rem}.w-2{width:.5rem}.w-2\\/5{width:40%}.w-3\\.5{width:.875rem}.w-3\\/5{width:60%}.w-4{width:1rem}.w-5\\/6{width:83.333333%}.w-60{width:15rem}.w-9{width:2.25rem}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.min-w-\\[8rem\\]{min-width:8rem}.max-w-\\[61\\.8\\%\\]{max-width:61.8%}.max-w-full{max-width:100%}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.translate-x-\\[-50\\%\\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\\[var\\(--wobble-x\\)\\]{--tw-translate-x: var(--wobble-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\\[-50\\%\\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\\[var\\(--wobble-y\\)\\]{--tw-translate-y: var(--wobble-y);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.resize-none{resize:none}.resize{resize:both}.flex-row{flex-direction:row}.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}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-\\[1px\\]{gap:1px}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.scroll-smooth{scroll-behavior:smooth}.text-ellipsis{text-overflow:ellipsis}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\\[20px\\]{border-radius:20px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-l-md{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.rounded-bl-md{border-bottom-left-radius:.375rem}.rounded-br-md{border-bottom-right-radius:.375rem}.rounded-tl-md{border-top-left-radius:.375rem}.rounded-tr-md{border-top-right-radius:.375rem}.border{border-width:1px}.border-2{border-width:2px}.border-none{border-style:none}.border-transparent{border-color:transparent}.bg-\\[white\\]{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--opencx-background))}.bg-black\\/50{background-color:#00000080}.bg-black\\/60{background-color:#0009}.bg-destructive{background-color:hsl(var(--opencx-destructive))}.bg-muted{background-color:hsl(var(--opencx-muted))}.bg-primary{background-color:hsl(var(--opencx-primary))}.bg-secondary{background-color:hsl(var(--opencx-secondary))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-\\[radial-gradient\\(ellipse_at_top_left\\,hsl\\(var\\(--opencx-primary\\)\\)\\,transparent\\)\\,radial-gradient\\(ellipse_at_top_right\\,hsl\\(var\\(--opencx-primary\\)\\)\\,transparent\\)\\]{background-image:radial-gradient(ellipse at top left,hsl(var(--opencx-primary)),transparent),radial-gradient(ellipse at top right,hsl(var(--opencx-primary)),transparent)}.fill-current{fill:currentColor}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-4{padding:1rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3\\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.py-1\\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.pb-0{padding-bottom:0}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pr-4{padding-right:1rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.text-center{text-align:center}.text-start{text-align:start}.align-middle{vertical-align:middle}.text-\\[1\\.75rem\\]{font-size:1.75rem}.text-\\[10px\\]{font-size:10px}.text-\\[16px\\]{font-size:16px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-none{line-height:1}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-widest{letter-spacing:.1em}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-destructive{color:hsl(var(--opencx-destructive))}.text-destructive-foreground{color:hsl(var(--opencx-destructive-foreground))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--opencx-foreground))}.text-muted-foreground{color:hsl(var(--opencx-muted-foreground))}.text-muted-foreground\\/70{color:hsl(var(--opencx-muted-foreground) / .7)}.text-muted-foreground\\/75{color:hsl(var(--opencx-muted-foreground) / .75)}.text-primary{color:hsl(var(--opencx-primary))}.text-primary-foreground{color:hsl(var(--opencx-primary-foreground))}.text-secondary-foreground{color:hsl(var(--opencx-secondary-foreground))}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-95{opacity:.95}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;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 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.outline-8{outline-width:8px}.outline-background{outline-color:hsl(var(--opencx-background))}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-offset-background{--tw-ring-offset-color: hsl(var(--opencx-background))}.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);-webkit-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);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{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.fade-in-0{--tw-enter-opacity: 0}.zoom-in-95{--tw-enter-scale: .95}.duration-200{animation-duration:.2s}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.\\[animation-delay\\:-0\\.15s\\]{animation-delay:-.15s}.\\[animation-delay\\:-0\\.3s\\]{animation-delay:-.3s}.\\[field-sizing\\:content\\;\\],.\\[field-sizing\\:content\\]{field-sizing:content}.\\[word-break\\:break-word\\]{word-break:break-word}.required:after{content:" *";color:red}.file\\:border-0::file-selector-button{border-width:0px}.file\\:bg-transparent::file-selector-button{background-color:transparent}.file\\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\\:font-medium::file-selector-button{font-weight:500}.file\\:text-primary-foreground::file-selector-button{color:hsl(var(--opencx-primary-foreground))}.placeholder\\:text-muted-foreground::placeholder{color:hsl(var(--opencx-muted-foreground))}.placeholder\\:text-muted-foreground\\/75::placeholder{color:hsl(var(--opencx-muted-foreground) / .75)}.focus-within\\:border-primary:focus-within{border-color:hsl(var(--opencx-primary))}.hover\\:scale-\\[var\\(--scale\\)\\]:hover{--tw-scale-x: var(--scale);--tw-scale-y: var(--scale);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\\:border-primary:hover{border-color:hsl(var(--opencx-primary))}.hover\\:bg-secondary:hover{background-color:hsl(var(--opencx-secondary))}.hover\\:text-blue-600:hover{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.hover\\:text-primary:hover{color:hsl(var(--opencx-primary))}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:opacity-100:hover{opacity:1}.focus\\:bg-accent:focus{background-color:hsl(var(--opencx-accent))}.focus\\:text-accent-foreground:focus{color:hsl(var(--opencx-accent-foreground))}.focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.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-ring:focus{--tw-ring-color: hsl(var(--opencx-ring))}.focus\\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--opencx-ring))}.focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\\:ring-offset-background:focus-visible{--tw-ring-offset-color: hsl(var(--opencx-background))}.active\\:scale-95:active{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\\:hover\\:scale-\\[calc\\(var\\(--scale\\)-0\\.02\\)\\]:hover:active{--tw-scale-x: calc(var(--scale) - .02);--tw-scale-y: calc(var(--scale) - .02);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\\:active\\:scale-95:active:hover{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.disabled\\:pointer-events-none:disabled{pointer-events:none}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\\:opacity-100{opacity:1}.group:hover .group-hover\\:active\\:scale-90:active,.group:active .group-active\\:scale-90{--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\\[disabled\\]\\:pointer-events-none[data-disabled]{pointer-events:none}.data-\\[state\\=checked\\]\\:translate-x-4[data-state=checked]{--tw-translate-x: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\\[state\\=unchecked\\]\\:translate-x-0[data-state=unchecked]{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\\[state\\=checked\\]\\:bg-primary[data-state=checked]{background-color:hsl(var(--opencx-primary))}.data-\\[state\\=open\\]\\:bg-accent[data-state=open]{background-color:hsl(var(--opencx-accent))}.data-\\[state\\=unchecked\\]\\:bg-input[data-state=unchecked]{background-color:hsl(var(--opencx-input))}.data-\\[state\\=open\\]\\:text-muted-foreground[data-state=open]{color:hsl(var(--opencx-muted-foreground))}.data-\\[disabled\\]\\:opacity-50[data-disabled]{opacity:.5}.data-\\[state\\=open\\]\\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\\[state\\=closed\\]\\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\\[state\\=closed\\]\\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\\[state\\=open\\]\\:fade-in-0[data-state=open]{--tw-enter-opacity: 0}.data-\\[state\\=closed\\]\\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\\[state\\=open\\]\\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\\[side\\=bottom\\]\\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\\[side\\=left\\]\\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\\[side\\=right\\]\\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\\[side\\=top\\]\\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\\[state\\=closed\\]\\:slide-out-to-left-1\\/2[data-state=closed]{--tw-exit-translate-x: -50%}.data-\\[state\\=closed\\]\\:slide-out-to-top-\\[48\\%\\][data-state=closed]{--tw-exit-translate-y: -48%}.data-\\[state\\=open\\]\\:slide-in-from-left-1\\/2[data-state=open]{--tw-enter-translate-x: -50%}.data-\\[state\\=open\\]\\:slide-in-from-top-\\[48\\%\\][data-state=open]{--tw-enter-translate-y: -48%}.prose-a\\:underline :is(:where(a):not(:where([class~=not-prose],[class~=not-prose] *))){text-decoration-line:underline}.prose-a\\:decoration-primary :is(:where(a):not(:where([class~=not-prose],[class~=not-prose] *))){text-decoration-color:hsl(var(--opencx-primary))}.rtl\\:-scale-100:where([dir=rtl],[dir=rtl] *){--tw-scale-x: -1;--tw-scale-y: -1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\\:text-right:where([dir=rtl],[dir=rtl] *){text-align:right}.rtl\\:placeholder\\:text-right:where([dir=rtl],[dir=rtl] *)::placeholder{text-align:right}.\\[\\&_span\\]\\:size-1 span{width:.25rem;height:.25rem}.\\[\\&_span\\]\\:bg-secondary-foreground span{background-color:hsl(var(--opencx-secondary-foreground))}.\\[\\&_svg\\]\\:pointer-events-none svg{pointer-events:none}.\\[\\&_svg\\]\\:size-4 svg{width:1rem;height:1rem}.\\[\\&_svg\\]\\:shrink-0 svg{flex-shrink:0}.\\[\\&_svg\\]\\:text-muted-foreground\\/70 svg{color:hsl(var(--opencx-muted-foreground) / .7)}.\\[\\&_svg\\]\\:hover\\:text-primary:hover svg{color:hsl(var(--opencx-primary))}',Ht=K.Provider,qt=K.Root,Bt=K.Trigger,at=E.forwardRef(({className:t,sideOffset:s=4,...o},r)=>e.jsx(K.Content,{ref:r,sideOffset:s,className:d("z-50 overflow-hidden max-w-xs rounded-xl bg-primary border text-primary-foreground p-2 text-center align-middle text-xs animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",t),...o}));at.displayName=K.Content.displayName;function X({children:t,content:s,side:o,align:r}){const{disableTooltips:n}=i.useConfig();return!s||n?t:e.jsxs(qt,{children:[e.jsx(Bt,{asChild:!0,children:t}),e.jsx(at,{side:o,align:r,collisionPadding:8,avoidCollisions:!0,children:s})]})}const $e=450;function H(){const[t,s]=w.useState(()=>(window.top||window).innerWidth<$e);return w.useEffect(()=>{const o=window.top||window,r=()=>{s(o.innerWidth<$e)};return r(),o.addEventListener("resize",r),()=>{o.removeEventListener("resize",r)}},[]),{isSmallScreen:t}}const J={transitionTimingFunction:"cubic-bezier(0.16, 1, 0.3, 1)",transitionDuration:"1000ms"};function B(){var k,y,z,v,h,g,f,I,j,T,M,O,W,A,P,b,C,_,q,Z,xe,ve,be,ye,je,ke,Ce,ze,Ne,Se,_e,Ie,Te,Me,De,Re,Pe,Ee,Oe,We,Ae,Fe,He,qe,Be;const{isSmallScreen:t}=H(),{theme:s,inline:o}=i.useConfig(),r=Y=>o?"100%":Y,n=(Y,oe)=>t?`100dv${Y}`:oe,a=(Y,oe)=>r(n(Y,oe)),l={zIndex:((k=s==null?void 0:s.widgetTrigger)==null?void 0:k.zIndex)??1e7,offset:{bottom:((z=(y=s==null?void 0:s.widgetTrigger)==null?void 0:y.offset)==null?void 0:z.bottom)??20,right:((h=(v=s==null?void 0:s.widgetTrigger)==null?void 0:v.offset)==null?void 0:h.right)??20},size:{button:((f=(g=s==null?void 0:s.widgetTrigger)==null?void 0:g.size)==null?void 0:f.button)??48,icon:((j=(I=s==null?void 0:s.widgetTrigger)==null?void 0:I.size)==null?void 0:j.icon)??24}},c={palette:(s==null?void 0:s.palette)??"neutral",primaryColor:(s==null?void 0:s.primaryColor)??"hsl(0 0% 9%)",widgetTrigger:l,widgetContentContainer:{borderRadius:t?"0px":((T=s==null?void 0:s.widgetContentContainer)==null?void 0:T.borderRadius)??"32px",zIndex:((M=s==null?void 0:s.widgetContentContainer)==null?void 0:M.zIndex)??l.zIndex+1,outline:((O=s==null?void 0:s.widgetContentContainer)==null?void 0:O.outline)??"none",outlineColor:((W=s==null?void 0:s.widgetContentContainer)==null?void 0:W.outlineColor)??"hsl(0 0% 50% / .5)",boxShadow:((A=s==null?void 0:s.widgetContentContainer)==null?void 0:A.boxShadow)??"0 0px 100px 0px rgb(0 0 0 / 0.25)",transitionProperty:((P=s==null?void 0:s.widgetContentContainer)==null?void 0:P.transitionProperty)??"all",transitionTimingFunction:((b=s==null?void 0:s.widgetContentContainer)==null?void 0:b.transitionTimingFunction)??J.transitionTimingFunction,transitionDuration:((C=s==null?void 0:s.widgetContentContainer)==null?void 0:C.transitionDuration)??J.transitionDuration,offset:{side:t?0:l.offset.bottom+l.size.button+L.y*2+(((q=(_=s==null?void 0:s.widgetContentContainer)==null?void 0:_.offset)==null?void 0:q.side)??10),align:t?0:l.offset.right+(((xe=(Z=s==null?void 0:s.widgetContentContainer)==null?void 0:Z.offset)==null?void 0:xe.align)??0)}},screens:{welcome:{width:a("w",((be=(ve=s==null?void 0:s.screens)==null?void 0:ve.welcome)==null?void 0:be.width)??"400px"),minHeight:a("h",((je=(ye=s==null?void 0:s.screens)==null?void 0:ye.welcome)==null?void 0:je.minHeight)??"1px")},sessions:{width:a("w",((Ce=(ke=s==null?void 0:s.screens)==null?void 0:ke.sessions)==null?void 0:Ce.width)??"450px"),height:a("h",((Ne=(ze=s==null?void 0:s.screens)==null?void 0:ze.sessions)==null?void 0:Ne.height)??"600px")},chat:{width:a("w",((_e=(Se=s==null?void 0:s.screens)==null?void 0:Se.chat)==null?void 0:_e.width)??"525px"),height:a("h",((Te=(Ie=s==null?void 0:s.screens)==null?void 0:Ie.chat)==null?void 0:Te.height)??"700px"),withCanvas:{width:a("w",((Re=(De=(Me=s==null?void 0:s.screens)==null?void 0:Me.chat)==null?void 0:De.withCanvas)==null?void 0:Re.width)??"min(1050px, 100vw)"),height:a("h",((Oe=(Ee=(Pe=s==null?void 0:s.screens)==null?void 0:Pe.chat)==null?void 0:Ee.withCanvas)==null?void 0:Oe.height)??"min(800px, 100vh)"),transitionTimingFunction:((Fe=(Ae=(We=s==null?void 0:s.screens)==null?void 0:We.chat)==null?void 0:Ae.withCanvas)==null?void 0:Fe.transitionTimingFunction)??J.transitionTimingFunction,transitionDuration:((Be=(qe=(He=s==null?void 0:s.screens)==null?void 0:He.chat)==null?void 0:qe.withCanvas)==null?void 0:Be.transitionDuration)??J.transitionDuration}}}},p={maxHeight:a("h",`calc(
|
|
2
|
+
100vh
|
|
3
|
+
- ${c.widgetTrigger.offset.bottom}px
|
|
4
|
+
- ${c.widgetContentContainer.offset.side}px
|
|
5
|
+
- ${L.y*2}px
|
|
6
|
+
)`),maxWidth:a("w",`calc(
|
|
7
|
+
100vw
|
|
8
|
+
- ${c.widgetTrigger.offset.right*2}px
|
|
9
|
+
)`),minHeight:a("h",`min(
|
|
10
|
+
${c.screens.welcome.minHeight},
|
|
11
|
+
${c.screens.sessions.height},
|
|
12
|
+
${c.screens.chat.height}
|
|
13
|
+
)`),minWidth:a("w",`min(
|
|
14
|
+
${c.screens.welcome.width},
|
|
15
|
+
${c.screens.sessions.width},
|
|
16
|
+
${c.screens.chat.width}
|
|
17
|
+
)`)};return{theme:c,computed:p,cssVars:Lt({palette:c.palette,primary:c.primaryColor})}}function Lt({palette:t,primary:s}){const o=it(t),r=Le(s).toHsl(),n=Le(s).isLight()?o[950]:o[50];return{"--opencx-primary":`${r.h} ${r.s*100}% ${r.l*100}%`,"--opencx-primary-foreground":n,"--opencx-background":o[100],"--opencx-foreground":o[950],"--opencx-destructive":"0 72.2% 50.6%","--opencx-destructive-foreground":o[50],"--opencx-accent":o[200],"--opencx-accent-foreground":"var(--opencx-foreground)","--opencx-secondary":o[200],"--opencx-secondary-foreground":"var(--opencx-foreground)","--opencx-muted":o[200],"--opencx-muted-foreground":o[500],"--opencx-input":o[300],"--opencx-border":o[300],"--opencx-ring":"var(--opencx-foreground)"}}function it(t){const s={50:"0 0% 98%",100:"0 0% 96.1%",200:"0 0% 89.8%",300:"0 0% 83.1%",400:"0 0% 63.9%",500:"0 0% 45.1%",600:"0 0% 32.2%",700:"0 0% 25.1%",800:"0 0% 14.9%",900:"0 0% 9%",950:"0 0% 3.9%"},o={50:"60 9.1% 97.8%",100:"60 4.8% 95.9%",200:"20 5.9% 90%",300:"24 5.7% 82.9%",400:"24 5.4% 63.9%",500:"25 5.3% 44.7%",600:"33.3 5.5% 32.4%",700:"30 6.3% 25.1%",800:"12 6.5% 15.1%",900:"24 9.8% 10%",950:"20 14.3% 4.1%"},r={50:"0 0% 98%",100:"240 4.8% 95.9%",200:"240 5.9% 90%",300:"240 4.9% 83.9%",400:"240 5% 64.9%",500:"240 3.8% 46.1%",600:"240 5.2% 33.9%",700:"240 5.3% 26.1%",800:"240 3.7% 15.9%",900:"240 5.9% 10%",950:"240 10% 3.9%"},n={50:"210 40% 98%",100:"210 40% 96.1%",200:"214.3 31.8% 91.4%",300:"212.7 26.8% 83.9%",400:"215 20.2% 65.1%",500:"215.4 16.3% 46.9%",600:"215.3 19.3% 34.5%",700:"215.3 25% 26.7%",800:"217.2 32.6% 17.5%",900:"222.2 47.4% 11.2%",950:"222.2 84% 4.9%"};switch(t){case"neutral":return s;case"stone":return o;case"zinc":return r;case"slate":return n;default:return D.isExhaustive(t,it.name),s}}function lt(){const{contentIframeRef:t}=i.useWidget(),{inline:s}=i.useConfig();return{setWidth:o=>{var r;(r=t==null?void 0:t.current)==null||r.style.setProperty("--opencx-widget-width",s?"100%":o)},setHeight:o=>{var r;(r=t==null?void 0:t.current)==null||r.style.setProperty("--opencx-widget-height",s?"100%":o)}}}function ue({width:t,height:s}){const{isSmallScreen:o}=H(),{setWidth:r,setHeight:n}=lt();w.useEffect(()=>{t&&r(t),s&&n(s)},[o,s,t,r,n])}const Ye=m.CircleDashedIcon;function U({name:t,className:s}){const o=(()=>{switch(t){case"Check":return m.CheckIcon;case"CheckCheck":return m.CheckCheckIcon;case"CircleCheck":return m.CircleCheckIcon;case"CircleCheckBig":return m.CircleCheckBigIcon;case"CircleX":return m.CircleXIcon;case"Expand":return m.ExpandIcon;case"Maximize":return m.MaximizeIcon;case"Maximize2":return m.Maximize2Icon;case"Minimize":return m.MinimizeIcon;case"Minimize2":return m.Minimize2Icon;case"Shrink":return m.ShrinkIcon;case"SquareCheck":return m.SquareCheckIcon;case"SquareCheckBig":return m.SquareCheckBigIcon;case"SquareX":return m.SquareXIcon;case"X":return m.XIcon;case void 0:return Ye;default:return D.isExhaustive(t,U.name),Ye}})();return e.jsx(o,{className:d("size-4",s)})}function ct({className:t,...s}){return e.jsx("div",{className:d("animate-pulse rounded-md bg-secondary",t),...s})}function we(){var n;const{data:t}=i.usePreludeData(),{routerState:{screen:s}}=i.useWidgetRouter(),{textContent:o}=i.useConfig();return(()=>{var a,l;switch(s){case"chat":return(a=o==null?void 0:o.chatScreen)==null?void 0:a.headerTitle;case"sessions":return(l=o==null?void 0:o.sessionsScreen)==null?void 0:l.headerTitle;case"welcome":return;default:D.isExhaustive(s,we.name);return}})()??((n=t==null?void 0:t.data)==null?void 0:n.organizationName)??"Chat"}function $t(t){switch(t){case"chat":return u("chat/header");case"sessions":return u("sessions/header");case"welcome":return;default:D.isExhaustive(t,we.name);return}}function Yt(){const{router:t}=i.useConfig(),{routerState:{screen:s},toSessionsScreen:o}=i.useWidgetRouter();return s!=="chat"||t!=null&&t.chatScreenOnly?null:e.jsx(S,{variant:"ghost",size:"fit",className:"rounded-full",onClick:o,children:e.jsx(m.ChevronLeftIcon,{className:"size-4"})})}function Xt({button:t}){const{setIsOpen:s}=i.useWidgetTrigger(),{isSmallScreen:o}=H();return o&&t.hideOnSmallScreen||!o&&t.hideOnLargeScreen?null:e.jsx(S,{variant:"ghost",size:"fit",className:"rounded-full",onClick:()=>s(!1),children:e.jsx(U,{name:t.icon})})}function ie({button:t}){const[s,o]=w.useState(!1),{routerState:{screen:r}}=i.useWidgetRouter(),{isSmallScreen:n}=H(),{theme:a}=B(),{setWidth:l,setHeight:c}=lt();if(r!=="chat"&&r!=="sessions")return null;const p=(()=>{switch(r){case"chat":return a.screens.chat.height;case"sessions":return a.screens.sessions.height;default:return D.isExhaustive(r,ie.name),a.screens.chat.height}})(),k=(()=>{switch(r){case"chat":return a.screens.chat.width;case"sessions":return a.screens.sessions.width;default:return D.isExhaustive(r,ie.name),a.screens.chat.width}})(),y=()=>{o(z=>{const v=!z;return c(v?"100vh":p),l(v?`max(40vw, ${k})`:k),v})};return n&&t.hideOnSmallScreen||!n&&t.hideOnLargeScreen?null:e.jsx(S,{variant:"ghost",size:"fit",className:"rounded-full",onClick:y,children:e.jsx(U,{name:t.icon||(s?t.shrinkIcon:t.expandIcon)})})}function dt({button:t}){var I,j;const[s,o]=w.useState(!1),{widgetCtx:r}=i.useWidget(),{setIsOpen:n}=i.useWidgetTrigger(),{resolveSession:a,sessionState:l}=i.useSessions(),{isSmallScreen:c}=H(),p=!l.session,k=((I=l.session)==null?void 0:I.isOpened)===!1,y=t.onResolved||"stay-in-chat",z=t.behaviorBeforeSessionCreation||"disabled",v=t.behaviorIfSessionIsResolved||"disabled",h=!!(l.isResolvingSession||p&&z==="disabled"||k&&v==="disabled"),g=async()=>{const{success:T,error:M}=await a();if(o(!1),!T)return console.error(M);switch(y){case"stay-in-chat":return;case"close-widget":n(!1);break;case"reset-chat":r.resetChat();break;case"reset-chat-and-close-widget":n(!1),r.resetChat();break;default:D.isExhaustive(y,dt.name);break}},f=()=>{if(p)switch(z){case"disabled":return;case"close-widget":n(!1);break;default:D.isExhaustive(z,f.name)}if(k)switch(v){case"disabled":return;case"close-widget":n(!1);break;case"reset-chat":r.resetChat();break;case"reset-chat-and-close-widget":n(!1),r.resetChat();break;default:D.isExhaustive(v,f.name)}};return c&&t.hideOnSmallScreen||!c&&t.hideOnLargeScreen?null:((j=t.confirmation)==null?void 0:j.type)==="modal"&&!k&&!p?e.jsxs(Ge,{open:s,onOpenChange:o,children:[e.jsx(Ze,{asChild:!0,children:e.jsx(S,{variant:"ghost",size:"fit",className:"rounded-full",disabled:h,children:e.jsx(U,{name:t.icon})})}),e.jsxs(de,{children:[e.jsx(Qe,{children:e.jsx(pe,{children:t.confirmation.title||"Close conversation"})}),e.jsx(et,{children:e.jsx(st,{children:t.confirmation.description||"Are you sure you want to close this conversation?"})}),e.jsxs(tt,{children:[e.jsx(S,{variant:"secondary",onClick:()=>o(!1),disabled:l.isResolvingSession,children:t.confirmation.cancelButtonText||"No"}),e.jsx(S,{variant:"destructive",onClick:g,disabled:l.isResolvingSession,children:t.confirmation.confirmButtonText||"Yes"})]})]})]}):e.jsx(S,{variant:"ghost",size:"fit",className:"rounded-full",onClick:k||p?f:g,disabled:h,children:e.jsx(U,{name:t.icon})})}function le({button:t}){switch(t.functionality){case"close-widget":return e.jsx(Xt,{button:t});case"expand-shrink":return e.jsx(ie,{button:t});case"resolve-session":return e.jsx(dt,{button:t});default:return D.isExhaustive(t,le.name),null}}const Ut={functionality:"close-widget",hideOnLargeScreen:!0,icon:"X"};function Vt(){const{routerState:{screen:t}}=i.useWidgetRouter(),{headerButtons:s}=i.useConfig(),o=t==="chat"?s==null?void 0:s.chatScreen:t==="sessions"?s==null?void 0:s.sessionsScreen:[];return!o||o.length===0?e.jsx(le,{button:Ut}):e.jsx(e.Fragment,{children:o.map(r=>e.jsx(le,{button:r},`${r.functionality}-${r.icon}`))})}function pt(){const{routerState:{screen:t}}=i.useWidgetRouter(),{isLoading:s}=i.usePreludeData(),o=i.useDocumentDir(),r=$t(t),n=we();return e.jsx("header",{...r,className:"py-2 px-4 shrink-0",children:e.jsxs("div",{dir:o,className:"flex items-center gap-2",children:[e.jsx(Yt,{}),e.jsx("div",{className:d("flex-1 h-8 flex items-center",t==="sessions"&&"pl-2"),children:e.jsx(N.AnimatePresence,{mode:"wait",children:s?e.jsx(x,{snapExit:!0,children:e.jsx(ct,{className:"h-5 w-1/2"})},"skeleton"):e.jsx(x,{children:e.jsx("h2",{className:"font-semibold",children:n})},"organization-name")})}),e.jsx(Vt,{})]})})}function ht({className:t}){return e.jsx(m.LoaderIcon,{className:d("size-4 animate-spin",t)})}function Kt(){const{messagesState:{isInitialFetchLoading:t}}=i.useMessages(),{isSmallScreen:s}=H(),{activeMode:o,Component:r}=i.useModes();return{isCanvasOpen:!t&&!s&&!!o&&!!r}}function Gt(){const{activeMode:t,Component:s}=i.useModes(),{sendMessage:o}=i.useMessages(),{createStateCheckpoint:r}=i.useSessions(),[n,a]=w.useState(!1),l=async c=>{try{a(!0),await o(c)}catch(p){console.error(p)}finally{a(!1)}};return!t||!s?null:e.jsx(s,{react:w,mode:t,createStateCheckpoint:r,sendMessage:l,isSendingMessage:n})}const Zt={"write-a-message":"اكتب رسالة...","session-closed-lead":"تم حل مشكلتك!","new-conversation":"محادثة جديدة","welcome-title":"مرحبًا بك في دردشة الدعم الخاصة بنا","welcome-description":"نحن هنا للمساعدة! ابدأ محادثة وسنرد عليك في أقرب وقت ممكن.","your-name":"اسمك","your-email":"عنوان بريدك الإلكتروني","start-chat":"تحدث إلى الدعم","starting-chat":"جاري الاتصال...","i-need-more-help":"أحتاج المزيد من المساعدة","this-was-helpful":"كان هذا مفيدًا",optional:"اختياري","no-conversations-yet":"لا يوجد محادثات","back-to-conversations":"العودة إلى المحادثات","closed-conversations":"المحادثات المغلقة"},Jt={"write-a-message":"Nachricht schreiben...","session-closed-lead":"Ihr Problem wurde gelöst!","new-conversation":"Neue Konversation","welcome-title":"Willkommen in unserem Support-Chat","welcome-description":"Wir sind hier, um zu helfen! Beginnen Sie ein Gesprách und wir werden so schnell wie mogelijk antworten.","your-name":"Ihr Name","your-email":"Ihre E-Mail-Adresse","start-chat":"Mit dem Support sprechen","starting-chat":"Verbindung wird hergestellt...","i-need-more-help":"Ich brauche weitere Hilfe","this-was-helpful":"Dies war hilfreich",optional:"Optional","no-conversations-yet":"noch keine Gespräche","back-to-conversations":"Zurück zur Konversationen","closed-conversations":"Geschlossene Konversationen"},Qt={"write-a-message":"Write a message...","session-closed-lead":"Your issue has been resolved!","new-conversation":"New conversation","welcome-title":"Welcome to our support chat","welcome-description":"We're here to help! Start a conversation and we'll get back to you as soon as possible.","your-name":"Your name","your-email":"Your email address","start-chat":"Talk to support","starting-chat":"Connecting...","i-need-more-help":"I need more help","this-was-helpful":"This was helpful",optional:"Optional","no-conversations-yet":"No conversations yet","back-to-conversations":"Back to conversations","closed-conversations":"Closed conversations"},es={"write-a-message":"Écrivez un message...","session-closed-lead":"Votre problème a été résolu !","new-conversation":"Nouvelle conversation","welcome-title":"Bienvenue dans notre chat de support","welcome-description":"Nous sommes là pour vous aider ! Commencez une conversation et nous vous répondrons dès que possible.","your-name":"Votre nom","your-email":"Votre adresse e-mail","start-chat":"Parler au support","starting-chat":"Connexion...","i-need-more-help":"Je besoin d'aide plus","this-was-helpful":"C'était utile",optional:"Optionnel","no-conversations-yet":"Aucune conversation pour le moment","back-to-conversations":"Retour aux conversations","closed-conversations":"Conversations fermées"},ts={"write-a-message":"Schrijf een bericht...","session-closed-lead":"Uw probleem is opgelost!","new-conversation":"Nieuw gesprek","welcome-title":"Welkom bij onze supportchat","welcome-description":"We zijn hier om te helpen! Begin een gesprek en we nemen zo snel mogelijk contact met u op.","your-name":"Uw naam","your-email":"Uw e-mailadres","start-chat":"Praat met ondersteuning","starting-chat":"Verbinding maken...","i-need-more-help":"Ik heb nog meer hulp nodig","this-was-helpful":"Mijn vraag is opgelost",optional:"Optioneel","no-conversations-yet":"Nog geen gesprekken","back-to-conversations":"Terug naar gesprekken","closed-conversations":"Afgesloten gesprekken"},ss={"write-a-message":"Escreva uma mensagem...","session-closed-lead":"Seu problema foi resolvido!","new-conversation":"Nova conversa","welcome-title":"Bem-vindo ao nosso chat de suporte","welcome-description":"Estamos aqui para ajudar! Inicie uma conversa e responderemos o mais rápido possível.","your-name":"Seu nome","your-email":"Seu endereço de email","start-chat":"Falar com o suporte","starting-chat":"Conectando...","i-need-more-help":"preciso de mais ajuda","this-was-helpful":"Isso foi útil",optional:"Opcional","no-conversations-yet":"Nenhuma conversa ainda","back-to-conversations":"Voltar para conversas","closed-conversations":"Conversas fechadas"},os={"write-a-message":"Escribe un mensaje...","session-closed-lead":"¡Tu problema fue resuelto!","new-conversation":"Nueva conversación","welcome-title":"Bienvenido a nuestro chat de soporte","welcome-description":"¡Estamos aquí para ayudarte! Inicia una conversación y responderemos lo antes posible.","your-name":"Tu nombre","your-email":"Tu correo electrónico","start-chat":"Hablar con soporte","starting-chat":"Conectando...","i-need-more-help":"Necesito más ayuda","this-was-helpful":"Esto fue útil",optional:"Opcional","no-conversations-yet":"Sin conversaciones aún","back-to-conversations":"Volver a conversaciones","closed-conversations":"Conversaciones cerradas"},rs={"write-a-message":"Bir mesaj yazın...","session-closed-lead":"Sorununuz çözüldü!","new-conversation":"Yeni konuşma","welcome-title":"Destek sohbetimize hoş geldiniz","welcome-description":"Yardım etmek için buradayız! Bir konuşma başlatın, en kısa sürede size geri döneceğiz.","your-name":"Adınız","your-email":"E-posta adresiniz","start-chat":"Destekle konuş","starting-chat":"Bağlanıyor...","i-need-more-help":"Daha fazla yardıma ihtiyacım var","this-was-helpful":"Bu yardımcı oldu",optional:"İsteğe bağlı","no-conversations-yet":"Henüz konuşma yok","back-to-conversations":"Konuşmalara geri dön","closed-conversations":"Kapatılan konuşmalar"},mt={en:Qt,ar:Zt,nl:ts,fr:es,de:Jt,pt:ss,es:os,tr:rs},ns=Object.keys(mt),as=t=>ns.includes(t);function is(t,s){const o=mt[s];return o&&o[t]||""}function G(){const{widgetCtx:{config:t}}=i.useWidget();return w.useMemo(()=>{const o=as(t.language)?t.language:"en";return{get:r=>is(r,o),lang:o}},[t.language])}function fe({suggestion:t,className:s,...o}){const{sendMessage:r}=i.useMessages(),n=()=>{const a=t.trim();a&&r({content:a})};return e.jsx(S,{...u("chat/suggested_reply_btn"),size:"sm",className:d("rounded-xl w-fit",s),...o,onClick:n,children:t})}function ls(){const t=G(),s=[t.get("i-need-more-help"),t.get("this-was-helpful")];return e.jsx("div",{...u("chat/might_solve_user_issue_suggested_replies_container"),className:"flex items-center gap-2 p-2 pb-0 flex-wrap",children:s.map(o=>e.jsx(fe,{suggestion:o,className:"flex-1"},o))})}function cs({file:{status:t,file:s,error:o},onCancel:r}){const[n,a]=w.useState(null);w.useEffect(()=>{if(!s.type.startsWith("image/"))return;const p=new FileReader;return p.onload=()=>a(p.result),p.onerror=()=>console.error("Error reading file"),p.readAsDataURL(s),()=>p.abort()},[s]);const l=()=>{switch(t){case"uploading":return e.jsx(m.Loader2,{className:"size-4 animate-spin"});case"error":return e.jsx(m.AlertCircle,{className:"size-4 text-destructive"});default:return null}},c=()=>{const p=s.type.split("/")[0];return p==="image"&&n?e.jsx("img",{src:typeof n=="string"?n:"",className:"object-cover bg-secondary size-full",alt:s.name}):p==="audio"?e.jsx(m.FileAudio2Icon,{}):p==="video"?e.jsx(m.FileVideo2Icon,{}):e.jsx(m.FileIcon,{})};return e.jsx(X,{side:"bottom",content:t==="error"?e.jsxs("span",{className:"text-destructive",children:["Failed to upload: ",o]}):s.name,children:e.jsxs("div",{className:d(t==="uploading"&&"opacity-50","group","size-12 border rounded-2xl overflow-hidden relative","flex items-center justify-center shrink-0"),children:[e.jsx("div",{className:"absolute inset-0 flex items-center justify-center",children:l()}),e.jsx("button",{type:"button",className:d("absolute bg-black/50 inset-0 size-full z-10 opacity-0","flex items-center justify-center","opacity-0 group-hover:opacity-100 transition"),onClick:r,children:e.jsx(m.XIcon,{className:"size-4 text-primary-foreground"})}),e.jsx(c,{})]})})}function ds(){var P;const{isSmallScreen:t}=H(),s=w.useRef(null),{sendMessage:o}=i.useMessages(),{sessionState:r}=i.useSessions(),n=G(),a=i.useDocumentDir(),[l,c]=w.useState(""),{allFiles:p,emptyTheFiles:k,handleCancelUpload:y,appendFiles:z,isUploading:v,successFiles:h}=i.useUploadFiles(),g=!!((P=r.session)!=null&&P.isHandedOff),{isAwaitingBotReply:f}=i.useIsAwaitingBotReply(),I=b=>{z(b)},j=!l.trim()&&h.length===0,T=async()=>{if(f||j)return;v&&console.info("please wait for the file(s) to upload");const b=l.trim();o({content:b,attachments:h.flatMap(C=>C.fileUrl?[{url:C.fileUrl,type:C.file.type,name:C.file.name,id:C.id,size:C.file.size}]:[])}),c(""),k()},{getRootProps:M,getInputProps:O,open:W}=St.useDropzone({onDrop:I,noClick:!0,onDropRejected(){console.error("unsupported file type, or the file is too large")},maxSize:5*1024*1024,accept:g?{"text/*":[".txt"],"image/*":[".png",".jpg",".jpeg",".gif"],"application/pdf":[".pdf"]}:{"image/png":[".png"],"image/jpeg":[".jpg",".jpeg"],"image/gif":[".gif"],"image/webp":[".webp"]}}),A=b=>{const C=b.clipboardData;C&&C.files.length>0&&I(Array.from(C.files))};return e.jsxs("div",{...u("chat/input_box/root"),className:"p-2 relative space-y-1",...M(),children:[e.jsx("input",{...O()}),e.jsxs("div",{...u("chat/input_box/inner_root"),className:d("transition-all","bg-white","relative rounded-3xl flex flex-col gap-2 p-2","hover:border-primary focus-within:border-primary"),children:[e.jsxs("div",{...u("chat/input_box/textarea_and_attachments_container"),className:"flex flex-col gap-2",children:[p.length>0&&e.jsx("div",{...u("chat/input_box/attachments_container"),className:"flex items-center gap-1",children:e.jsx(N.AnimatePresence,{mode:"popLayout",children:p.map(b=>e.jsx(x,{snapExit:!0,children:e.jsx(cs,{onCancel:()=>y(b.id),file:b})},b.id))})}),e.jsx("textarea",{...u("chat/input_box/textarea"),onPaste:A,ref:s,id:"chat-input",dir:a,value:l,rows:3,className:d("max-h-16 [field-sizing:content]","w-full resize-none px-2",p.length===0&&"pt-1","bg-transparent outline-none","placeholder:text-muted-foreground","rtl:placeholder:text-right",t?"text-[16px]":"text-sm"),onChange:b=>c(b.target.value),onKeyDown:async b=>{b.key==="Enter"&&!b.shiftKey&&(b.preventDefault(),T())},placeholder:n.get("write-a-message")})]}),e.jsxs("div",{dir:a,className:"gap-2 flex justify-between rtl:text-right",children:[e.jsx(X,{side:"top",align:"start",content:"attach files, (maximum size 5mb)",children:e.jsx(S,{onClick:W,size:"fit",variant:"ghost",className:d("rounded-full size-8 flex items-center justify-center p-0 overflow-hidden"),children:e.jsx(N.AnimatePresence,{mode:"wait",children:g?e.jsx(x,{children:e.jsx(m.PaperclipIcon,{className:"size-4"})},"paper-clip"):e.jsx(x,{children:e.jsx(m.ImageIcon,{className:"size-4"})},"image-icon")})})}),e.jsx(X,{content:"send message",side:"top",align:"end",children:e.jsx(S,{size:"fit",onClick:T,disabled:f||v||j,className:"rounded-full size-8 flex items-center justify-center p-0",children:e.jsx(N.AnimatePresence,{mode:"wait",children:f||v?e.jsx(x,{snapExit:!0,children:e.jsx(m.CircleDashed,{className:"size-4 animate-spin animate-iteration-infinite"})},"loading"):e.jsx(x,{snapExit:!0,children:e.jsx(m.ArrowUpIcon,{className:"size-4"})},"send")})})})]})]})]})}function ps(){const{widgetCtx:t}=i.useWidget(),{router:s}=i.useConfig(),{canCreateNewSession:o}=i.useSessions(),{toSessionsScreen:r}=i.useWidgetRouter(),n=G();return e.jsx("div",{className:"p-2",children:e.jsxs("div",{className:"p-2 bg-muted rounded-3xl space-y-2",children:[e.jsxs("div",{className:"pl-2 flex items-center gap-1",children:[e.jsx(m.CircleCheckIcon,{className:"size-4 text-emerald-600"}),e.jsx("h2",{className:"text-sm font-medium",dir:"auto",children:n.get("session-closed-lead")})]}),e.jsx("div",{children:o||s!=null&&s.chatScreenOnly?e.jsx(S,{onClick:t.resetChat,className:"rounded-2xl w-full",children:n.get("new-conversation")}):e.jsx(S,{onClick:r,className:"rounded-2xl w-full",children:n.get("back-to-conversations")})})]})})}function hs(){var l;const{initialQuestions:t,initialQuestionsPosition:s,thisWasHelpfulOrNot:o}=i.useConfig(),{sessionState:r}=i.useSessions(),{messagesState:n}=i.useMessages(),a=n.messages.length===0;return e.jsx("footer",{children:e.jsx("div",{children:e.jsx(N.AnimatePresence,{mode:"wait",children:r.session&&!((l=r.session)!=null&&l.isOpened)?e.jsx(x,{className:"overflow-hidden",overrides:{initial:{height:0},animate:{height:"auto"},exit:{height:0}},children:e.jsx(ps,{})},"session-closed"):e.jsxs(x,{className:"overflow-hidden",overrides:{initial:{height:0},animate:{height:"auto"},exit:{height:0}},children:[n.lastAIResMightSolveUserIssue&&(o==null?void 0:o.enabled)!==!1&&e.jsx(ls,{}),a&&t&&s!=="below-initial-messages"&&e.jsx("div",{className:"flex items-center flex-row justify-end gap-2 flex-wrap px-2",children:t==null?void 0:t.map((c,p)=>e.jsx(fe,{suggestion:c},`${c}-${p}`))}),e.jsx(ds,{})]},"chat-input")})})})}function ms({isFirstInGroup:t,isLastInGroup:s,isAloneInGroup:o,...r}){const{componentStore:n}=i.useWidget();if(r.data.action){const l=n.getComponent(r.data.action.name);if(l)return e.jsx(l,{...r,id:r.id,isFirstInGroup:t,isLastInGroup:s,isAloneInGroup:o})}const a=n.getComponent(r.component);return a?e.jsx(a,{...r,id:r.id,isFirstInGroup:t,isLastInGroup:s,isAloneInGroup:o}):e.jsx(ee,{...r,isFirstInGroup:t,isLastInGroup:s,isAloneInGroup:o})}function ne({messages:t,agent:s,suggestedReplies:o}){return e.jsxs("div",{...u("chat/agent_msg_group/root"),className:d("flex items-end gap-2"),children:[e.jsx(X,{content:s==null?void 0:s.name,side:"right",align:"end",children:e.jsx(ae,{...u("chat/agent_msg_group/root/avatar"),agent:s,className:"hidden"})}),e.jsxs("div",{className:d("flex-1 flex flex-col gap-2"),children:[e.jsxs("div",{...u("chat/agent_msg_group/avatar_and_msgs/root"),className:d("flex items-end gap-2"),children:[e.jsx(X,{content:s==null?void 0:s.name,side:"right",align:"end",children:e.jsx(ae,{...u("chat/agent_msg_group/avatar_and_msgs/avatar"),agent:s})}),e.jsx("div",{...u("chat/agent_msg_group/avatar_and_msgs/msgs"),className:d("flex-1 flex flex-col gap-1"),children:t.map((r,n,a)=>e.jsx(ms,{isFirstInGroup:n===0,isLastInGroup:n===a.length-1,isAloneInGroup:a.length===1,...r},r.id))})]}),o&&o.length>0&&e.jsx("div",{...u("chat/agent_msg_group/suggestions"),className:d("flex flex-col gap-1 pl-8"),children:o==null?void 0:o.map((r,n)=>e.jsx(fe,{suggestion:r},`${r}-${n}`))})]})]})}function gs({message:t,isFirstInGroup:s,isLastInGroup:o,isAloneInGroup:r}){var n;return e.jsxs("div",{...u("chat/user_msg/root"),className:"w-5/6 flex flex-col items-end gap-1",children:[t.attachments&&t.attachments.length>0&&e.jsx("div",{className:"w-full flex gap-1 flex-wrap justify-end",children:(n=t.attachments)==null?void 0:n.map(a=>e.jsx(ot,{attachment:a},a.id))}),t.content.length>0&&e.jsx("div",{...u("chat/user_msg/msg"),"data-first":s,"data-last":o,"data-alone":r,className:d("transition-all","w-fit py-3 px-4 rounded-3xl text-sm","bg-primary text-primary-foreground","break-words [word-break:break-word]","whitespace-pre-wrap",s&&!r&&"rounded-br-md",o&&!r&&"rounded-tr-md",!s&&!o&&!r&&"rounded-r-md"),children:t.content})]})}function us({messages:t}){return e.jsx("div",{...u("chat/user_msg_group/root"),className:d("group","flex flex-col gap-1 justify-end items-end"),children:t.map((s,o,r)=>e.jsx(gs,{message:s,isFirstInGroup:o===0,isLastInGroup:o===r.length-1,isAloneInGroup:r.length===1},s.id))})}function ws(t){const s=[];let o=null;return t.forEach(r=>{var n,a,l,c;(!o||((n=o[0])==null?void 0:n.type)!==r.type)&&(o=[],s.push(o)),((a=o[0])==null?void 0:a.type)==="FROM_AGENT"&&r.type==="FROM_AGENT"&&((l=r.agent)==null?void 0:l.id)!==((c=o[0].agent)==null?void 0:c.id)&&(o=[],s.push(o)),o.push(r)}),s}function fs(t){var s;return((s=t==null?void 0:t[0])==null?void 0:s.type)==="FROM_USER"}function xs(t){var s;return((s=t==null?void 0:t[0])==null?void 0:s.type)==="FROM_BOT"}function vs(t){var s;return((s=t==null?void 0:t[0])==null?void 0:s.type)==="FROM_AGENT"}function bs(){const{messagesState:{messages:t}}=i.useMessages(),{isAwaitingBotReply:s}=i.useIsAwaitingBotReply(),{componentStore:o}=i.useWidget(),r=i.useConfig(),{initialQuestions:n,initialQuestionsPosition:a}=r,l=w.useMemo(()=>ws(t),[t]),c=r.persistentInitialMessages||[],p=(()=>{var h;return t.length?((h=r.advancedInitialMessages)==null?void 0:h.filter(g=>!!g.persistent))||[]:r.advancedInitialMessages||[]})(),k=(()=>{var h;return p.length?[]:t.length?[]:(h=r.initialMessages)!=null&&h.length?r.initialMessages:["Hello, how can I help you?"]})(),y=o.getComponent("loading"),z=w.useRef(null);function v(){setTimeout(()=>{const h=z.current;h&&(h.scrollTop=h.scrollHeight)},0)}return w.useEffect(()=>{v()},[t]),e.jsxs("div",{...u("chat/msgs/root"),ref:z,className:"max-h-full scroll-smooth relative flex-1 py-2 px-4 flex flex-col gap-2 overflow-auto",children:[e.jsx("div",{...u("chat/persistent_initial_msgs/root"),children:c.map((h,g,f)=>e.jsx(ee,{component:"bot_message",data:{message:h},id:h,type:"FROM_BOT",timestamp:Date.now().toString(),dataComponentNames:{messageContainer:"chat/persistent_initial_msg/root",message:"chat/persistent_initial_msg/msg"},classNames:{messageContainer:d("w-full flex flex-col items-center text-center"),message:"w-full bg-transparent border-none shadow-none text-xs"},isFirstInGroup:g===0,isLastInGroup:g===f.length-1,isAloneInGroup:f.length===1},`${h}-${g}`))}),p.length>0&&e.jsx(ne,{messages:p.map(({message:h},g)=>({component:"bot_message",data:{message:h},id:`${g}-${h}`,type:"FROM_BOT",timestamp:Date.now().toString()})),suggestedReplies:t.length===0&&a==="below-initial-messages"?n:void 0,agent:r.bot?{...r.bot,isAi:!0,id:null}:void 0}),t.length===0&&k.length>0&&e.jsx(ne,{messages:k.map((h,g)=>({component:"bot_message",data:{message:h},id:`${g}-${h}`,type:"FROM_BOT",timestamp:Date.now().toString()})),suggestedReplies:a==="below-initial-messages"?n:void 0,agent:r.bot?{...r.bot,isAi:!0,id:null}:void 0}),l.map(h=>{var I,j,T;const g=(I=h==null?void 0:h[0])==null?void 0:I.type,f=(j=h[0])==null?void 0:j.id;if(!g||!f)return null;if(fs(h))return e.jsx(us,{messages:h},f);if(xs(h)||vs(h)){const M=(T=h[0])==null?void 0:T.agent;return e.jsx(ne,{messages:h,agent:M},f)}return null}),s&&y&&e.jsx(y,{agent:r.bot})]})}function ys(){const{messagesState:{isInitialFetchLoading:t}}=i.useMessages(),{sessionState:{session:s}}=i.useSessions(),{isCanvasOpen:o}=Kt(),{theme:r}=B();ue({width:o?r.screens.chat.withCanvas.width:r.screens.chat.width,height:o?r.screens.chat.withCanvas.height:r.screens.chat.height});const n=w.useRef((s==null?void 0:s.id)||"chat").current;return e.jsx("div",{...u("chat/root"),className:d("flex flex-col overflow-hidden"),style:{width:"100vw",maxWidth:"100vw",height:"100vh",maxHeight:"100vh"},children:e.jsxs("div",{className:"size-full justify-between flex flex-col",children:[e.jsx(pt,{}),e.jsx(N.AnimatePresence,{mode:"wait",children:t?e.jsx(x,{className:"flex flex-col items-center justify-center w-full flex-1",children:e.jsx(ht,{})},"loading"):e.jsxs(x,{className:"flex items-start h-full flex-1 overflow-auto",snapExit:!0,children:[e.jsxs("div",{...u("chat/main/root"),className:d("flex flex-col h-full overflow-auto transition-all",o?"w-2/5":"w-full"),style:{transitionTimingFunction:r.screens.chat.withCanvas.transitionTimingFunction,transitionDuration:r.screens.chat.withCanvas.transitionDuration},children:[e.jsx(bs,{}),e.jsx(hs,{})]}),e.jsx("div",{...u("chat/canvas/root"),className:d("h-full overflow-auto transition-all",o?"w-3/5":"w-0"),style:{transitionTimingFunction:r.screens.chat.withCanvas.transitionTimingFunction,transitionDuration:r.screens.chat.withCanvas.transitionDuration},children:e.jsx(Gt,{})})]},n)})]})})}function js({className:t}){return e.jsx("svg",{width:"26",height:"32",viewBox:"0 0 26 32",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:d("text-primary-foreground",t),children:e.jsx("path",{d:"M1.34103 25.6132H5.44245C5.74203 25.6228 6.02673 25.7462 6.23867 25.9582C6.45062 26.1703 6.5739 26.4551 6.58348 26.7548V30.8584C6.59305 31.1581 6.71634 31.443 6.92828 31.655C7.14023 31.8671 7.42492 31.9904 7.7245 32H18.2894C18.589 31.9904 18.8737 31.8671 19.0856 31.655C19.2976 31.443 19.4209 31.1581 19.4304 30.8584V26.7548C19.4401 26.4545 19.5638 26.1692 19.7765 25.957C19.9892 25.7449 20.2748 25.6219 20.5749 25.6132H24.659C24.9586 25.6036 25.2433 25.4803 25.4552 25.2682C25.6671 25.0562 25.7904 24.7713 25.8 24.4716V7.52839C25.7904 7.22865 25.6671 6.94381 25.4552 6.73176C25.2433 6.5197 24.9586 6.39635 24.659 6.38677H20.561C20.2603 6.37802 19.9742 6.25457 19.7614 6.04169C19.5487 5.82881 19.4253 5.54261 19.4165 5.24168V1.14161C19.4072 0.84419 19.2858 0.561291 19.0768 0.349589C18.8678 0.137887 18.5865 0.0130193 18.2894 0L7.7245 0C7.42492 0.00957792 7.14023 0.132929 6.92828 0.344983C6.71634 0.557036 6.59305 0.841878 6.58348 1.14161V5.24168C6.57477 5.54203 6.45187 5.82773 6.23983 6.04052C6.0278 6.25331 5.74262 6.37715 5.44245 6.38677H1.34103C1.04144 6.39635 0.756749 6.5197 0.544805 6.73176C0.332861 6.94381 0.209574 7.22865 0.200001 7.52839V24.4716C0.209574 24.7713 0.332861 25.0562 0.544805 25.2682C0.756749 25.4803 1.04144 25.6036 1.34103 25.6132ZM6.58348 24.4716V7.52839C6.59305 7.22865 6.71634 6.94381 6.92828 6.73176C7.14023 6.5197 7.42492 6.39635 7.7245 6.38677H18.2894C18.589 6.39635 18.8737 6.5197 19.0856 6.73176C19.2976 6.94381 19.4209 7.22865 19.4304 7.52839V24.4716C19.4209 24.7713 19.2976 25.0562 19.0856 25.2682C18.8737 25.4803 18.589 25.6036 18.2894 25.6132H7.7245C7.42492 25.6036 7.14023 25.4803 6.92828 25.2682C6.71634 25.0562 6.59305 24.7713 6.58348 24.4716Z",fill:"currentColor"})})}function gt({className:t}){const{token:s}=i.useConfig();return e.jsx("div",{className:d("flex items-center justify-center gap-2 p-2 pt-0",t),children:e.jsx(F,{children:e.jsxs("a",{href:`https://open.cx/?ref=${s}`,target:"_blank",rel:"noreferrer",className:d("text-[10px] flex items-center","text-muted-foreground/70 [&_svg]:text-muted-foreground/70","hover:text-primary [&_svg]:hover:text-primary"),children:[e.jsx("span",{children:"Powered by"}),e.jsx("span",{children:" "}),e.jsxs("span",{className:"flex items-center gap-[1px]",children:[e.jsx("span",{children:e.jsx(js,{className:"size-3 inline-block"})}),e.jsx("span",{className:"font-semibold",children:"open"})]})]})})})}function ks({children:t}){return e.jsx("p",{className:"pl-4 text-xs text-muted-foreground/75 uppercase font-semibold tracking-tight",children:t})}function Xe({session:t,className:s}){const{bot:o}=i.useConfig(),{toChatScreen:r}=i.useWidgetRouter(),n=t.assignee.kind==="human"?t.assignee.name||"Support Agent":(o==null?void 0:o.name)||"AI Support Agent",a=t.assignee.kind==="human"?t.assignee.avatarUrl||"":(o==null?void 0:o.avatar)||"";return e.jsxs(S,{variant:"ghost",size:"lg",className:d("rounded-full p-2 pr-4 flex text-start justify-between w-full whitespace-normal",s),onClick:()=>r(t.id),children:[e.jsxs("div",{className:"flex-1 flex gap-2 items-center",children:[e.jsx(N.AnimatePresence,{mode:"wait",children:e.jsx(x,{snapExit:!0,children:e.jsxs(he,{className:"size-10",children:[e.jsx(me,{src:a,alt:"Agent Icon"}),e.jsx(ge,{children:e.jsx(m.UserRoundIcon,{className:"size-4"})})]})})}),e.jsxs("div",{className:"flex-1",children:[e.jsx(N.AnimatePresence,{mode:"wait",children:e.jsx(x,{snapExit:!0,children:n},n)}),e.jsx(N.AnimatePresence,{mode:"wait",children:t.lastMessage?e.jsx(x,{snapExit:!0,children:e.jsx(rt,{remarkPlugins:[Ve],rehypePlugins:[Ue],className:"line-clamp-1 overflow-hidden text-ellipsis text-xs text-muted-foreground",children:t.lastMessage})},t.lastMessage||"content"):e.jsx(x,{className:"w-1/2",snapExit:!0,children:e.jsx(ct,{className:"h-4 w-full"})},"skeleton")})]})]}),e.jsx(m.ChevronRightIcon,{className:"size-4 text-muted-foreground shrink-0"})]})}function Cs(){const t=G(),{toChatScreen:s}=i.useWidgetRouter(),{sessionsState:{data:o,isInitialFetchLoading:r},openSessions:n,closedSessions:a,canCreateNewSession:l}=i.useSessions();return e.jsx("div",{className:"flex-1 flex flex-col overflow-scroll py-2 px-2",children:e.jsx(N.AnimatePresence,{mode:"wait",children:r?e.jsx(x,{className:"flex-1 flex items-center justify-center",children:e.jsx(ht,{})},"loading"):e.jsx(x,{className:"flex-1 flex flex-col gap-2 relative",children:o.length?e.jsxs(e.Fragment,{children:[e.jsxs(N.AnimatePresence,{children:[n.length>0&&e.jsx(x,{fadeIn:"up",delay:.2,className:"space-y-2",snapExit:!0,children:n.map(c=>e.jsx(Xe,{session:c},c.id))},"open-sessions"),a.length>0&&e.jsxs(x,{className:"space-y-2",delay:.2,snapExit:!0,children:[e.jsx(ks,{children:t.get("closed-conversations")}),a.map(c=>e.jsx(Xe,{session:c,className:"opacity-50 hover:opacity-100"},c.id))]},"closed-sessions")]}),l&&e.jsx("div",{className:"mt-auto w-full rounded-3xl sticky bottom-0 outline outline-8 outline-background bg-background",children:w.createElement(S,{...u("sessions/new_conversation_btn"),size:"lg",key:"new-session",className:"w-full",onClick:()=>s()},t.get("new-conversation"))})]}):e.jsxs("div",{className:"flex-1 flex flex-col gap-2 items-center",children:[e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsx("p",{className:"text-muted-foreground",children:t.get("no-conversations-yet")})}),w.createElement(S,{...u("sessions/new_conversation_btn"),size:"lg",key:"new-session",className:"w-full",onClick:()=>s()},t.get("new-conversation"))]})},"sessions")})})}function zs(){const{theme:t}=B();return ue({width:t.screens.sessions.width,height:t.screens.sessions.height}),e.jsx("div",{...u("sessions/root"),className:d("flex flex-col overflow-hidden bg-background"),style:{width:"100vw",maxWidth:"100vw",height:"100vh",maxHeight:"100vh"},children:e.jsxs("div",{className:"size-full flex flex-col",children:[e.jsx(pt,{}),e.jsx(Cs,{}),e.jsx(gt,{})]})})}const Q=E.forwardRef(({className:t,type:s,...o},r)=>{const{isSmallScreen:n}=H(),a=i.useDocumentDir();return e.jsx(F,{ref:r,children:e.jsx("input",{dir:a,type:s,className:d(n?"text-[16px]":"text-sm","flex w-full rounded-xl p-2 ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-primary-foreground placeholder:text-muted-foreground/75 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 transition","rtl:placeholder:text-right","rounded-2xl px-4","border shadow-sm",t),...o})})});Q.displayName="Input";function Ns(){const{contentIframeRef:t}=i.useWidget(),{inline:s}=i.useConfig(),o=w.useRef(null);return w.useEffect(()=>{const r=t==null?void 0:t.current;if(r&&o.current){const n=o.current;let a;const l=new ResizeObserver(()=>{a=requestAnimationFrame(()=>{const c=n.offsetHeight;r.style.setProperty("--opencx-widget-height",s?"100%":`${c.toFixed(1)}px`)})});return l.observe(n),()=>{cancelAnimationFrame(a),l.unobserve(n)}}},[t,s]),{observedElementRef:o}}const Ss=re.z.object({name:re.z.string().min(2),email:re.z.string().email()});function _s(){var j,T,M,O,W,A,P,b,C;const{setIsOpen:t}=i.useWidgetTrigger(),{createUnverifiedContact:s}=i.useContact(),{isSmallScreen:o}=H(),r=i.useConfig(),{theme:n}=B(),a=G(),{data:l}=i.usePreludeData(),{observedElementRef:c}=Ns();ue({height:void 0,width:n.screens.welcome.width});const[p,k]=w.useState(((j=r.prefillUserData)==null?void 0:j.name)||""),[y,z]=w.useState(((T=r.prefillUserData)==null?void 0:T.email)||""),v=(r.extraDataCollectionFields||[]).filter(_=>_!=="name"&&_!=="email"&&!!_),[h,g]=w.useState({}),[f,I]=_t(async _=>{_.preventDefault();const q=Ss.safeParse({name:p,email:y});q.success&&await s({email:q.data.email,non_verified_name:q.data.name},Object.values(h).filter(Boolean).length?h:void 0)},[p,y,h]);return e.jsx("div",{style:{width:"100vw",maxWidth:"100vw",minHeight:n.screens.welcome.minHeight,height:"100vh",maxHeight:"100vh",overflowY:"auto"},children:e.jsxs("div",{ref:c,className:d("flex flex-col",o&&"h-full","bg-[radial-gradient(ellipse_at_top_left,hsl(var(--opencx-primary)),transparent),radial-gradient(ellipse_at_top_right,hsl(var(--opencx-primary)),transparent)]"),children:[e.jsxs("div",{dir:"auto",className:d("flex-1 flex flex-col px-4 py-12 text-start space-y-4 relative z-10","text-primary-foreground"),children:[o&&e.jsx(x,{className:"absolute top-6 right-6",children:e.jsx(S,{size:"selfless",onClick:()=>t(!1),children:e.jsx(m.XIcon,{className:"size-4"})})}),e.jsx("div",{className:"flex items-center justify-between w-full mb-2",children:(M=r.assets)!=null&&M.organizationLogo?e.jsx("img",{src:(O=r.assets)==null?void 0:O.organizationLogo,alt:"Company Logo",className:"h-8 w-auto object-contain"}):e.jsx("h2",{className:"font-bold text-sm",dir:"auto",children:(W=l==null?void 0:l.data)==null?void 0:W.organizationName})}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("h1",{className:"text-[1.75rem] font-semibold tracking-tight leading-none",dir:"auto",children:((P=(A=r.textContent)==null?void 0:A.welcomeScreen)==null?void 0:P.title)||a.get("welcome-title")}),e.jsx("p",{className:"text-sm",dir:"auto",children:((C=(b=r.textContent)==null?void 0:b.welcomeScreen)==null?void 0:C.description)||a.get("welcome-description")})]})]}),e.jsxs("div",{className:d("z-10 m-2 px-2 pt-2 bp-0 space-y-2","bg-[white]","border shadow","rounded-3xl"),dir:"auto",children:[e.jsxs("form",{onSubmit:I,className:"space-y-2",children:[e.jsx(Q,{value:p,onChange:_=>k(_.target.value),required:!0,placeholder:a.get("your-name"),name:"name"}),e.jsx(Q,{required:!0,value:y,onChange:_=>z(_.target.value),type:"email",placeholder:a.get("your-email"),name:"email"}),v.map(_=>e.jsx(Q,{value:h[_],onChange:q=>g(Z=>({...Z,[_]:q.target.value})),placeholder:`${_} (${a.get("optional")})`},_)),e.jsxs(S,{disabled:f.loading,className:"w-full",size:"lg",children:[f.loading?a.get("starting-chat"):a.get("start-chat"),e.jsx(m.SendHorizontal,{className:"size-4 rtl:-scale-100"})]})]}),e.jsx(gt,{})]})]})})}function ut(){i.usePreludeData();const{routerState:{screen:t}}=i.useWidgetRouter();return e.jsxs("div",{className:"relative bg-background size-full",children:[e.jsx(se.Container,{}),e.jsx(N.AnimatePresence,{mode:"wait",children:(()=>{switch(t){case"welcome":return e.jsx(x,{fadeIn:"right",className:"size-full",snapExit:!0,children:e.jsx(_s,{})},t);case"sessions":return e.jsx(x,{fadeIn:"right",className:"size-full",snapExit:!0,children:e.jsx(zs,{})},t);case"chat":return e.jsx(x,{fadeIn:"right",className:"size-full",snapExit:!0,children:e.jsx(ys,{})},t);default:return D.isExhaustive(t,ut.name),null}})()})]})}const Is=`<!DOCTYPE html>
|
|
18
|
+
<html>
|
|
19
|
+
<head>
|
|
20
|
+
<style>
|
|
21
|
+
${nt}
|
|
22
|
+
html, body {
|
|
23
|
+
height: 100%;
|
|
24
|
+
width: 100%;
|
|
25
|
+
margin: 0;
|
|
26
|
+
padding: 0;
|
|
27
|
+
font-size: 16px;
|
|
28
|
+
}
|
|
29
|
+
</style>
|
|
30
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, interactive-widget=resizes-content">
|
|
31
|
+
</head>
|
|
32
|
+
<body>
|
|
33
|
+
</body>
|
|
34
|
+
</html>`;function wt(){const{isOpen:t}=i.useWidgetTrigger(),{version:s,contentIframeRef:o}=i.useWidget(),{cssOverrides:r,inline:n}=i.useConfig(),{theme:a,cssVars:l,computed:c}=B();return e.jsx(N.motion.div,{animate:t?"visible":"hidden",initial:"hidden",variants:{hidden:{opacity:0,y:8,transitionEnd:{display:"none"},transition:{duration:.15}},visible:{opacity:1,y:0,display:"block",height:n?"100%":void 0}},children:e.jsxs(ce,{ref:o,initialContent:Is,allowFullScreen:!0,title:"OpenCX Live Chat",style:{"--opencx-widget-width":c.minWidth,"--opencx-widget-height":c.minHeight,minWidth:c.minWidth,width:"var(--opencx-widget-width)",maxWidth:c.maxWidth,minHeight:c.minHeight,height:"var(--opencx-widget-height)",maxHeight:c.maxHeight,overflow:"hidden",outline:a.widgetContentContainer.outline,outlineColor:a.widgetContentContainer.outlineColor,borderRadius:a.widgetContentContainer.borderRadius,boxShadow:a.widgetContentContainer.boxShadow,transitionProperty:a.widgetContentContainer.transitionProperty,transitionTimingFunction:a.widgetContentContainer.transitionTimingFunction,transitionDuration:a.widgetContentContainer.transitionDuration,boxSizing:"border-box",borderWidth:"0px"},children:[r&&e.jsx("style",{children:r}),e.jsx(Ht,{delayDuration:200,disableHoverableContent:!0,children:e.jsx("div",{style:{display:"contents"},children:e.jsx("div",{style:{...l},"data-version":s,className:d("antialiased font-sans size-full overflow-hidden isolate relative text-secondary-foreground"),children:e.jsx(ut,{})})})})]})})}function Ts(){const{theme:t}=B();return e.jsx(te.Content,{onInteractOutside:s=>s.preventDefault(),forceMount:!0,style:{zIndex:t.widgetContentContainer.zIndex,fontSize:"16px"},side:"top",align:"end",sideOffset:t.widgetContentContainer.offset.side,alignOffset:t.widgetContentContainer.offset.align,avoidCollisions:!1,asChild:!0,children:e.jsx(wt,{})})}function Ms({className:t,style:s}){return e.jsxs("svg",{width:"32",height:"30",viewBox:"0 0 32 30",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:d("text-primary-foreground",t),style:s,children:[e.jsx("path",{d:"M0 6.94263C0 3.62892 2.68629 0.942627 6 0.942627H26C29.3137 0.942627 32 3.62892 32 6.94263V17.9426C32 21.2563 29.3137 23.9426 26 23.9426H6C2.68629 23.9426 0 21.2563 0 17.9426V6.94263Z",fill:"currentColor"}),e.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M19.9945 23.8935L26.237 23.8934C26.1982 24.3557 26.1712 25.2778 26.1704 26.2318C26.1688 28.2839 26.1376 28.7041 25.974 28.868C25.583 29.2598 25.2686 29.0967 24.0616 27.8754C23.4162 27.2222 22.1141 25.9522 21.1682 25.0531L19.9945 23.8935Z",fill:"currentColor"})]})}const Ds=`<!DOCTYPE html>
|
|
35
|
+
<html>
|
|
36
|
+
<head>
|
|
37
|
+
<style>
|
|
38
|
+
${nt}
|
|
39
|
+
html, body {
|
|
40
|
+
height: 100%;
|
|
41
|
+
width: 100%;
|
|
42
|
+
margin: 0;
|
|
43
|
+
padding: 0;
|
|
44
|
+
font-size: 16px;
|
|
45
|
+
}
|
|
46
|
+
</style>
|
|
47
|
+
</head>
|
|
48
|
+
<body>
|
|
49
|
+
</body>
|
|
50
|
+
</html>`;function Rs(){var a,l;const{isOpen:t}=i.useWidgetTrigger(),{cssOverrides:s,assets:o}=i.useConfig(),{theme:r,cssVars:n}=B();return e.jsxs(ce,{initialContent:Ds,style:{height:`calc(${r.widgetTrigger.size.button}px + ${L.x*2}px)`,width:`calc(${r.widgetTrigger.size.button}px + ${L.y*2}px)`,fontSize:"16px",position:"fixed",zIndex:r.widgetTrigger.zIndex,right:r.widgetTrigger.offset.right,bottom:r.widgetTrigger.offset.bottom,boxSizing:"border-box",borderWidth:"0px"},children:[s&&e.jsx("style",{children:s}),e.jsx("div",{style:{...n,width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center"},children:e.jsx(te.PopoverTrigger,{className:d("font-sans flex items-center justify-center rounded-full"),style:{height:r.widgetTrigger.size.button,width:r.widgetTrigger.size.button},children:e.jsx(F,{children:e.jsx("div",{...u("trigger/btn"),className:d("relative size-full rounded-full","flex items-center justify-center","overflow-hidden","transition-all","bg-primary","text-primary-foreground"),children:e.jsx(N.AnimatePresence,{mode:"wait",children:t?e.jsx(x,{snapExit:!0,fadeIn:"up",overrides:{initial:{rotate:45},animate:{rotate:0}},children:(a=o==null?void 0:o.widgetTrigger)!=null&&a.closeIcon?e.jsx("img",{src:o.widgetTrigger.closeIcon,alt:"Widget trigger close icon",style:{width:r.widgetTrigger.size.icon,height:r.widgetTrigger.size.icon}}):e.jsx(m.ChevronDownIcon,{style:{width:r.widgetTrigger.size.icon,height:r.widgetTrigger.size.icon}})},"x-icon"):e.jsx(x,{snapExit:!0,overrides:{initial:{rotate:45},animate:{rotate:0}},children:(l=o==null?void 0:o.widgetTrigger)!=null&&l.openIcon?e.jsx("img",{src:o.widgetTrigger.openIcon,alt:"Widget trigger open icon",style:{width:r.widgetTrigger.size.icon,height:r.widgetTrigger.size.icon}}):e.jsx(Ms,{style:{width:r.widgetTrigger.size.icon,height:r.widgetTrigger.size.icon},className:"mt-0.5 opacity-95"})},"message-icon")})})})})})]})}function Ps(){return e.jsx(te.Anchor,{style:{position:"fixed",right:0,bottom:0}})}function Es(){const{isOpen:t,setIsOpen:s}=i.useWidgetTrigger();return e.jsxs(te.Root,{open:t,onOpenChange:s,children:[e.jsx(Ps,{}),e.jsx(Rs,{}),e.jsx(Ts,{})]})}const Os=[{key:"loading",component:Ft},{key:"fallback",component:Dt},{key:"bot_message",component:ee},{key:"agent_message",component:ee}],Ws={get:async t=>localStorage.getItem(t),set:async(t,s)=>{localStorage.setItem(t,s)},remove:async t=>{localStorage.removeItem(t)}};function As({options:t,components:s=[],loadingComponent:o}){return e.jsx(i.WidgetProvider,{components:[...Os,...s],options:t,storage:Ws,loadingComponent:o,children:e.jsx(i.WidgetTriggerProvider,{children:t.inline?e.jsx(wt,{}):e.jsx(Es,{})})})}exports.Widget=As;
|
|
51
|
+
//# sourceMappingURL=index.cjs.map
|