@embedreach/components 0.3.10 → 0.3.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/index.js +56 -42
- package/dist/index.umd.js +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/dist/index.umd.js
CHANGED
|
@@ -89,7 +89,7 @@ function C4(e,a){return e?function(e){return"function"==typeof e&&(()=>{const a=
|
|
|
89
89
|
*
|
|
90
90
|
* This source code is licensed under the MIT license found in the
|
|
91
91
|
* LICENSE file in the root directory of this source tree.
|
|
92
|
-
*/Iwe.exports="production"===process.env.NODE_ENV?function(){if(Hwe)return Gwe;Hwe=1;var e="function"==typeof Object.is?Object.is:function(e,a){return e===a&&(0!==e||1/e==1/a)||e!=e&&a!=a},n=a.useState,t=a.useEffect,i=a.useLayoutEffect,r=a.useDebugValue;function o(a){var n=a.getSnapshot;a=a.value;try{var t=n();return!e(a,t)}catch(i){return!0}}var s="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,a){return a()}:function(e,a){var s=a(),l=n({inst:{value:s,getSnapshot:a}}),u=l[0].inst,c=l[1];return i((function(){u.value=s,u.getSnapshot=a,o(u)&&c({inst:u})}),[e,s,a]),t((function(){return o(u)&&c({inst:u}),e((function(){o(u)&&c({inst:u})}))}),[e]),r(s),s};return Gwe.useSyncExternalStore=void 0!==a.useSyncExternalStore?a.useSyncExternalStore:s,Gwe}():(Fwe||(Fwe=1,"production"!==process.env.NODE_ENV&&function(){function e(e){var a=e.getSnapshot;e=e.value;try{var n=a();return!t(e,n)}catch(i){return!0}}"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var n=a,t="function"==typeof Object.is?Object.is:function(e,a){return e===a&&(0!==e||1/e==1/a)||e!=e&&a!=a},i=n.useState,r=n.useEffect,o=n.useLayoutEffect,s=n.useDebugValue,l=!1,u=!1,c="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,a){return a()}:function(a,c){l||void 0===n.startTransition||(l=!0);var d=c();if(!u){var m=c();t(d,m)||(u=!0)}var h=(m=i({inst:{value:d,getSnapshot:c}}))[0].inst,p=m[1];return o((function(){h.value=d,h.getSnapshot=c,e(h)&&p({inst:h})}),[a,d,c]),r((function(){return e(h)&&p({inst:h}),a((function(){e(h)&&p({inst:h})}))}),[a]),s(d),d};Vwe.useSyncExternalStore=void 0!==n.useSyncExternalStore?n.useSyncExternalStore:c,"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())}()),Vwe);var Jwe=Iwe.exports,Uwe='[cmdk-group=""]',Wwe='[cmdk-group-items=""]',qwe='[cmdk-item=""]',Zwe=`${qwe}:not([aria-disabled="true"])`,$we="cmdk-item-select",Ywe="data-value",Qwe=(e,a,n)=>Kwe(e,a,n),Xwe=r.createContext(void 0),eMe=()=>r.useContext(Xwe),aMe=r.createContext(void 0),nMe=()=>r.useContext(aMe),tMe=r.createContext(void 0),iMe=r.forwardRef(((e,a)=>{let n=yMe((()=>{var a,n;return{search:"",value:null!=(n=null!=(a=e.value)?a:e.defaultValue)?n:"",filtered:{count:0,items:new Map,groups:new Set}}})),t=yMe((()=>new Set)),i=yMe((()=>new Map)),o=yMe((()=>new Map)),s=yMe((()=>new Set)),l=fMe(e),{label:u,children:c,value:d,onValueChange:m,filter:h,shouldFilter:p,loop:g,disablePointerSelection:f=!1,vimBindings:v=!0,...y}=e,k=m5(),b=m5(),S=m5(),A=r.useRef(null),w=AMe();vMe((()=>{if(void 0!==d){let e=d.trim();n.current.value=e,M.emit()}}),[d]),vMe((()=>{w(6,_)}),[]);let M=r.useMemo((()=>({subscribe:e=>(s.current.add(e),()=>s.current.delete(e)),snapshot:()=>n.current,setState:(e,a,t)=>{var i,r,o;if(!Object.is(n.current[e],a)){if(n.current[e]=a,"search"===e)E(),x(),w(1,N);else if("value"===e&&(t||w(5,_),void 0!==(null==(i=l.current)?void 0:i.value))){return void(null==(o=(r=l.current).onValueChange)||o.call(r,null!=a?a:""))}M.emit()}},emit:()=>{s.current.forEach((e=>e()))}})),[]),C=r.useMemo((()=>({value:(e,a,t)=>{var i;a!==(null==(i=o.current.get(e))?void 0:i.value)&&(o.current.set(e,{value:a,keywords:t}),n.current.filtered.items.set(e,T(a,t)),w(2,(()=>{x(),M.emit()})))},item:(e,a)=>(t.current.add(e),a&&(i.current.has(a)?i.current.get(a).add(e):i.current.set(a,new Set([e]))),w(3,(()=>{E(),x(),n.current.value||N(),M.emit()})),()=>{o.current.delete(e),t.current.delete(e),n.current.filtered.items.delete(e);let a=P();w(4,(()=>{E(),(null==a?void 0:a.getAttribute("id"))===e&&N(),M.emit()}))}),group:e=>(i.current.has(e)||i.current.set(e,new Set),()=>{o.current.delete(e),i.current.delete(e)}),filter:()=>l.current.shouldFilter,label:u||e["aria-label"],getDisablePointerSelection:()=>l.current.disablePointerSelection,listId:k,inputId:S,labelId:b,listInnerRef:A})),[]);function T(e,a){var t,i;let r=null!=(i=null==(t=l.current)?void 0:t.filter)?i:Qwe;return e?r(e,n.current.search,a):0}function x(){if(!n.current.search||!1===l.current.shouldFilter)return;let e=n.current.filtered.items,a=[];n.current.filtered.groups.forEach((n=>{let t=i.current.get(n),r=0;t.forEach((a=>{let n=e.get(a);r=Math.max(n,r)})),a.push([n,r])}));let t=A.current;j().sort(((a,n)=>{var t,i;let r=a.getAttribute("id"),o=n.getAttribute("id");return(null!=(t=e.get(o))?t:0)-(null!=(i=e.get(r))?i:0)})).forEach((e=>{let a=e.closest(Wwe);a?a.appendChild(e.parentElement===a?e:e.closest(`${Wwe} > *`)):t.appendChild(e.parentElement===t?e:e.closest(`${Wwe} > *`))})),a.sort(((e,a)=>a[1]-e[1])).forEach((e=>{var a;let n=null==(a=A.current)?void 0:a.querySelector(`${Uwe}[${Ywe}="${encodeURIComponent(e[0])}"]`);null==n||n.parentElement.appendChild(n)}))}function N(){let e=j().find((e=>"true"!==e.getAttribute("aria-disabled"))),a=null==e?void 0:e.getAttribute(Ywe);M.setState("value",a||void 0)}function E(){var e,a,r,s;if(!n.current.search||!1===l.current.shouldFilter)return void(n.current.filtered.count=t.current.size);n.current.filtered.groups=new Set;let u=0;for(let i of t.current){let t=T(null!=(a=null==(e=o.current.get(i))?void 0:e.value)?a:"",null!=(s=null==(r=o.current.get(i))?void 0:r.keywords)?s:[]);n.current.filtered.items.set(i,t),t>0&&u++}for(let[t,o]of i.current)for(let e of o)if(n.current.filtered.items.get(e)>0){n.current.filtered.groups.add(t);break}n.current.filtered.count=u}function _(){var e,a,n;let t=P();t&&((null==(e=t.parentElement)?void 0:e.firstChild)===t&&(null==(n=null==(a=t.closest(Uwe))?void 0:a.querySelector('[cmdk-group-heading=""]'))||n.scrollIntoView({block:"nearest"})),t.scrollIntoView({block:"nearest"}))}function P(){var e;return null==(e=A.current)?void 0:e.querySelector(`${qwe}[aria-selected="true"]`)}function j(){var e;return Array.from((null==(e=A.current)?void 0:e.querySelectorAll(Zwe))||[])}function L(e){let a=j()[e];a&&M.setState("value",a.getAttribute(Ywe))}function B(e){var a;let n=P(),t=j(),i=t.findIndex((e=>e===n)),r=t[i+e];null!=(a=l.current)&&a.loop&&(r=i+e<0?t[t.length-1]:i+e===t.length?t[0]:t[i+e]),r&&M.setState("value",r.getAttribute(Ywe))}function R(e){let a,n=P(),t=null==n?void 0:n.closest(Uwe);for(;t&&!a;)t=e>0?pMe(t,Uwe):gMe(t,Uwe),a=null==t?void 0:t.querySelector(Zwe);a?M.setState("value",a.getAttribute(Ywe)):B(e)}let z=()=>L(j().length-1),D=e=>{e.preventDefault(),e.metaKey?z():e.altKey?R(1):B(1)},O=e=>{e.preventDefault(),e.metaKey?L(0):e.altKey?R(-1):B(-1)};return r.createElement(z4.div,{ref:a,tabIndex:-1,...y,"cmdk-root":"",onKeyDown:e=>{var a;if(null==(a=y.onKeyDown)||a.call(y,e),!e.defaultPrevented)switch(e.key){case"n":case"j":v&&e.ctrlKey&&D(e);break;case"ArrowDown":D(e);break;case"p":case"k":v&&e.ctrlKey&&O(e);break;case"ArrowUp":O(e);break;case"Home":e.preventDefault(),L(0);break;case"End":e.preventDefault(),z();break;case"Enter":if(!e.nativeEvent.isComposing&&229!==e.keyCode){e.preventDefault();let a=P();if(a){let e=new Event($we);a.dispatchEvent(e)}}}}},r.createElement("label",{"cmdk-label":"",htmlFor:C.inputId,id:C.labelId,style:MMe},u),wMe(e,(e=>r.createElement(aMe.Provider,{value:M},r.createElement(Xwe.Provider,{value:C},e)))))})),rMe=r.forwardRef(((e,a)=>{var n,t;let i=m5(),o=r.useRef(null),s=r.useContext(tMe),l=eMe(),u=fMe(e),c=null!=(t=null==(n=u.current)?void 0:n.forceMount)?t:null==s?void 0:s.forceMount;vMe((()=>{if(!c)return l.item(i,null==s?void 0:s.id)}),[c]);let d=SMe(i,o,[e.value,e.children,o],e.keywords),m=nMe(),h=bMe((e=>e.value&&e.value===d.current)),p=bMe((e=>!(!c&&!1!==l.filter())||(!e.search||e.filtered.items.get(i)>0)));function g(){var e,a;f(),null==(a=(e=u.current).onSelect)||a.call(e,d.current)}function f(){m.setState("value",d.current,!0)}if(r.useEffect((()=>{let a=o.current;if(a&&!e.disabled)return a.addEventListener($we,g),()=>a.removeEventListener($we,g)}),[p,e.onSelect,e.disabled]),!p)return null;let{disabled:v,value:y,onSelect:k,forceMount:b,keywords:S,...A}=e;return r.createElement(z4.div,{ref:kMe([o,a]),...A,id:i,"cmdk-item":"",role:"option","aria-disabled":!!v,"aria-selected":!!h,"data-disabled":!!v,"data-selected":!!h,onPointerMove:v||l.getDisablePointerSelection()?void 0:f,onClick:v?void 0:g},e.children)})),oMe=r.forwardRef(((e,a)=>{let{heading:n,children:t,forceMount:i,...o}=e,s=m5(),l=r.useRef(null),u=r.useRef(null),c=m5(),d=eMe(),m=bMe((e=>!(!i&&!1!==d.filter())||(!e.search||e.filtered.groups.has(s))));vMe((()=>d.group(s)),[]),SMe(s,l,[e.value,e.heading,u]);let h=r.useMemo((()=>({id:s,forceMount:i})),[i]);return r.createElement(z4.div,{ref:kMe([l,a]),...o,"cmdk-group":"",role:"presentation",hidden:!m||void 0},n&&r.createElement("div",{ref:u,"cmdk-group-heading":"","aria-hidden":!0,id:c},n),wMe(e,(e=>r.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?c:void 0},r.createElement(tMe.Provider,{value:h},e)))))})),sMe=r.forwardRef(((e,a)=>{let{alwaysRender:n,...t}=e,i=r.useRef(null),o=bMe((e=>!e.search));return n||o?r.createElement(z4.div,{ref:kMe([i,a]),...t,"cmdk-separator":"",role:"separator"}):null})),lMe=r.forwardRef(((e,a)=>{let{onValueChange:n,...t}=e,i=null!=e.value,o=nMe(),s=bMe((e=>e.search)),l=bMe((e=>e.value)),u=eMe(),c=r.useMemo((()=>{var e;let a=null==(e=u.listInnerRef.current)?void 0:e.querySelector(`${qwe}[${Ywe}="${encodeURIComponent(l)}"]`);return null==a?void 0:a.getAttribute("id")}),[]);return r.useEffect((()=>{null!=e.value&&o.setState("search",e.value)}),[e.value]),r.createElement(z4.input,{ref:a,...t,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":u.listId,"aria-labelledby":u.labelId,"aria-activedescendant":c,id:u.inputId,type:"text",value:i?e.value:s,onChange:e=>{i||o.setState("search",e.target.value),null==n||n(e.target.value)}})})),uMe=r.forwardRef(((e,a)=>{let{children:n,label:t="Suggestions",...i}=e,o=r.useRef(null),s=r.useRef(null),l=eMe();return r.useEffect((()=>{if(s.current&&o.current){let e,a=s.current,n=o.current,t=new ResizeObserver((()=>{e=requestAnimationFrame((()=>{n.style.setProperty("--cmdk-list-height",a.offsetHeight.toFixed(1)+"px")}))}));return t.observe(a),()=>{cancelAnimationFrame(e),t.unobserve(a)}}}),[]),r.createElement(z4.div,{ref:kMe([o,a]),...i,"cmdk-list":"",role:"listbox","aria-label":t,id:l.listId},wMe(e,(e=>r.createElement("div",{ref:kMe([s,l.listInnerRef]),"cmdk-list-sizer":""},e))))})),cMe=r.forwardRef(((e,a)=>{let{open:n,onOpenChange:t,overlayClassName:i,contentClassName:o,container:s,...l}=e;return r.createElement($W,{open:n,onOpenChange:t},r.createElement(QW,{container:s},r.createElement(XW,{"cmdk-overlay":"",className:i}),r.createElement(eq,{"aria-label":e.label,"cmdk-dialog":"",className:o},r.createElement(iMe,{ref:a,...l}))))})),dMe=r.forwardRef(((e,a)=>bMe((e=>0===e.filtered.count))?r.createElement(z4.div,{ref:a,...e,"cmdk-empty":"",role:"presentation"}):null)),mMe=r.forwardRef(((e,a)=>{let{progress:n,children:t,label:i="Loading...",...o}=e;return r.createElement(z4.div,{ref:a,...o,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":i},wMe(e,(e=>r.createElement("div",{"aria-hidden":!0},e))))})),hMe=Object.assign(iMe,{List:uMe,Item:rMe,Input:lMe,Group:oMe,Separator:sMe,Dialog:cMe,Empty:dMe,Loading:mMe});function pMe(e,a){let n=e.nextElementSibling;for(;n;){if(n.matches(a))return n;n=n.nextElementSibling}}function gMe(e,a){let n=e.previousElementSibling;for(;n;){if(n.matches(a))return n;n=n.previousElementSibling}}function fMe(e){let a=r.useRef(e);return vMe((()=>{a.current=e})),a}var vMe="undefined"==typeof window?r.useEffect:r.useLayoutEffect;function yMe(e){let a=r.useRef();return void 0===a.current&&(a.current=e()),a}function kMe(e){return a=>{e.forEach((e=>{"function"==typeof e?e(a):null!=e&&(e.current=a)}))}}function bMe(e){let a=nMe(),n=()=>e(a.snapshot());return Jwe.useSyncExternalStore(a.subscribe,n,n)}function SMe(e,a,n,t=[]){let i=r.useRef(),o=eMe();return vMe((()=>{var r;let s=(()=>{var e;for(let a of n){if("string"==typeof a)return a.trim();if("object"==typeof a&&"current"in a)return a.current?null==(e=a.current.textContent)?void 0:e.trim():i.current}})(),l=t.map((e=>e.trim()));o.value(e,s,l),null==(r=a.current)||r.setAttribute(Ywe,s),i.current=s})),i}var AMe=()=>{let[e,a]=r.useState(),n=yMe((()=>new Map));return vMe((()=>{n.current.forEach((e=>e())),n.current=new Map}),[e]),(e,t)=>{n.current.set(e,t),a({})}};function wMe({asChild:e,children:a},n){return e&&r.isValidElement(a)?r.cloneElement(function(e){let a=e.type;return"function"==typeof a?a(e.props):"render"in a?a.render(e.props):e}(a),{ref:a.ref},n(a.props.children)):n(a)}var MMe={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const CMe=r.forwardRef((({className:e,...a},t)=>n.jsx(hMe,{ref:t,className:oz("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",e),...a})));CMe.displayName=hMe.displayName;const TMe=r.forwardRef((({className:e,searchIcon:a,...t},i)=>n.jsxs("div",{className:"flex items-center border-b px-3",children:[a||n.jsx(UB,{className:"mr-2 h-4 w-4 shrink-0 opacity-50 "}),n.jsx(hMe.Input,{ref:i,className:oz("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",e),...t})]})));TMe.displayName=hMe.Input.displayName;const xMe=r.forwardRef((({className:e,...a},t)=>n.jsx(hMe.List,{ref:t,className:oz("max-h-[300px] overflow-y-auto overflow-x-hidden",e),...a})));xMe.displayName=hMe.List.displayName;const NMe=r.forwardRef(((e,a)=>n.jsx(hMe.Empty,{ref:a,className:"py-6 text-center text-sm",...e})));NMe.displayName=hMe.Empty.displayName;const EMe=r.forwardRef((({className:e,...a},t)=>n.jsx(hMe.Group,{ref:t,className:oz("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",e),...a})));EMe.displayName=hMe.Group.displayName;r.forwardRef((({className:e,...a},t)=>n.jsx(hMe.Separator,{ref:t,className:oz("-mx-1 h-px bg-border",e),...a}))).displayName=hMe.Separator.displayName;const _Me=r.forwardRef((({className:e,...a},t)=>n.jsx(hMe.Item,{ref:t,className:oz("relative flex cursor-pointer gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",e),...a})));function PMe(e,a){if("function"==typeof e)return e(a);null!=e&&(e.current=a)}function jMe(...e){return a=>{let n=!1;const t=e.map((e=>{const t=PMe(e,a);return n||"function"!=typeof t||(n=!0),t}));if(n)return()=>{for(let a=0;a<t.length;a++){const n=t[a];"function"==typeof n?n():PMe(e[a],null)}}}}function LMe(...e){return r.useCallback(jMe(...e),e)}function BMe(e){const a=RMe(e),t=r.forwardRef(((e,t)=>{const{children:i,...o}=e,s=r.Children.toArray(i),l=s.find(DMe);if(l){const e=l.props.children,i=s.map((a=>a===l?r.Children.count(e)>1?r.Children.only(null):r.isValidElement(e)?e.props.children:null:a));return n.jsx(a,{...o,ref:t,children:r.isValidElement(e)?r.cloneElement(e,void 0,i):null})}return n.jsx(a,{...o,ref:t,children:i})}));return t.displayName=`${e}.Slot`,t}function RMe(e){const a=r.forwardRef(((e,a)=>{const{children:n,...t}=e;if(r.isValidElement(n)){const e=function(e){let a=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=a&&"isReactWarning"in a&&a.isReactWarning;if(n)return e.ref;if(a=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=a&&"isReactWarning"in a&&a.isReactWarning,n)return e.props.ref;return e.props.ref||e.ref}(n),i=function(e,a){const n={...a};for(const t in a){const i=e[t],r=a[t];/^on[A-Z]/.test(t)?i&&r?n[t]=(...e)=>{const a=r(...e);return i(...e),a}:i&&(n[t]=i):"style"===t?n[t]={...i,...r}:"className"===t&&(n[t]=[i,r].filter(Boolean).join(" "))}return{...e,...n}}(t,n.props);return n.type!==r.Fragment&&(i.ref=a?jMe(a,e):e),r.cloneElement(n,i)}return r.Children.count(n)>1?r.Children.only(null):null}));return a.displayName=`${e}.SlotClone`,a}_Me.displayName=hMe.Item.displayName;var zMe=Symbol("radix.slottable");function DMe(e){return r.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===zMe}var OMe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce(((e,a)=>{const t=BMe(`Primitive.${a}`),i=r.forwardRef(((e,i)=>{const{asChild:r,...o}=e,s=r?t:a;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),n.jsx(s,{...o,ref:i})}));return i.displayName=`Primitive.${a}`,{...e,[a]:i}}),{}),KMe=globalThis?.document?r.useLayoutEffect:()=>{};var HMe=e=>{const{present:a,children:n}=e,t=function(e){const[a,n]=r.useState(),t=r.useRef(null),i=r.useRef(e),o=r.useRef("none"),s=e?"mounted":"unmounted",[l,u]=function(e,a){return r.useReducer(((e,n)=>a[e][n]??e),e)}(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return r.useEffect((()=>{const e=IMe(t.current);o.current="mounted"===l?e:"none"}),[l]),KMe((()=>{const a=t.current,n=i.current;if(n!==e){const t=o.current,r=IMe(a);if(e)u("MOUNT");else if("none"===r||"none"===a?.display)u("UNMOUNT");else{u(n&&t!==r?"ANIMATION_OUT":"UNMOUNT")}i.current=e}}),[e,u]),KMe((()=>{if(a){let e;const n=a.ownerDocument.defaultView??window,r=r=>{const o=IMe(t.current).includes(r.animationName);if(r.target===a&&o&&(u("ANIMATION_END"),!i.current)){const t=a.style.animationFillMode;a.style.animationFillMode="forwards",e=n.setTimeout((()=>{"forwards"===a.style.animationFillMode&&(a.style.animationFillMode=t)}))}},s=e=>{e.target===a&&(o.current=IMe(t.current))};return a.addEventListener("animationstart",s),a.addEventListener("animationcancel",r),a.addEventListener("animationend",r),()=>{n.clearTimeout(e),a.removeEventListener("animationstart",s),a.removeEventListener("animationcancel",r),a.removeEventListener("animationend",r)}}u("ANIMATION_END")}),[a,u]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:r.useCallback((e=>{t.current=e?getComputedStyle(e):null,n(e)}),[])}}(a),i="function"==typeof n?n({present:t.isPresent}):r.Children.only(n),o=LMe(t.ref,function(e){let a=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=a&&"isReactWarning"in a&&a.isReactWarning;if(n)return e.ref;if(a=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=a&&"isReactWarning"in a&&a.isReactWarning,n)return e.props.ref;return e.props.ref||e.ref}(i));return"function"==typeof n||t.isPresent?r.cloneElement(i,{ref:o}):null};function IMe(e){return e?.animationName||"none"}function GMe(...e){const a=e[0];if(1===e.length)return a;const n=()=>{const n=e.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(e){const t=n.reduce(((a,{useScope:n,scopeName:t})=>({...a,...n(e)[`__scope${t}`]})),{});return r.useMemo((()=>({[`__scope${a.scopeName}`]:t})),[t])}};return n.scopeName=a.scopeName,n}function FMe(e){const a=r.useRef(e);return r.useEffect((()=>{a.current=e})),r.useMemo((()=>(...e)=>a.current?.(...e)),[])}HMe.displayName="Presence";var VMe=r.createContext(void 0);function JMe(e,a,{checkForDefaultPrevented:n=!0}={}){return function(t){if(e?.(t),!1===n||!t.defaultPrevented)return a?.(t)}}var UMe="ScrollArea",[WMe,qMe]=function(e,a=[]){let t=[];const i=()=>{const a=t.map((e=>r.createContext(e)));return function(n){const t=n?.[e]||a;return r.useMemo((()=>({[`__scope${e}`]:{...n,[e]:t}})),[n,t])}};return i.scopeName=e,[function(a,i){const o=r.createContext(i),s=t.length;t=[...t,i];const l=a=>{const{scope:t,children:i,...l}=a,u=t?.[e]?.[s]||o,c=r.useMemo((()=>l),Object.values(l));return n.jsx(u.Provider,{value:c,children:i})};return l.displayName=a+"Provider",[l,function(n,t){const l=r.useContext(t?.[e]?.[s]||o);if(l)return l;if(void 0!==i)return i;throw new Error(`\`${n}\` must be used within \`${a}\``)}]},GMe(i,...a)]}(UMe),[ZMe,$Me]=WMe(UMe),YMe=r.forwardRef(((e,a)=>{const{__scopeScrollArea:t,type:i="hover",dir:o,scrollHideDelay:s=600,...l}=e,[u,c]=r.useState(null),[d,m]=r.useState(null),[h,p]=r.useState(null),[g,f]=r.useState(null),[v,y]=r.useState(null),[k,b]=r.useState(0),[S,A]=r.useState(0),[w,M]=r.useState(!1),[C,T]=r.useState(!1),x=LMe(a,(e=>c(e))),N=function(e){const a=r.useContext(VMe);return e||a||"ltr"}(o);return n.jsx(ZMe,{scope:t,type:i,dir:N,scrollHideDelay:s,scrollArea:u,viewport:d,onViewportChange:m,content:h,onContentChange:p,scrollbarX:g,onScrollbarXChange:f,scrollbarXEnabled:w,onScrollbarXEnabledChange:M,scrollbarY:v,onScrollbarYChange:y,scrollbarYEnabled:C,onScrollbarYEnabledChange:T,onCornerWidthChange:b,onCornerHeightChange:A,children:n.jsx(OMe.div,{dir:N,...l,ref:x,style:{position:"relative","--radix-scroll-area-corner-width":k+"px","--radix-scroll-area-corner-height":S+"px",...e.style}})})}));YMe.displayName=UMe;var QMe="ScrollAreaViewport",XMe=r.forwardRef(((e,a)=>{const{__scopeScrollArea:t,children:i,nonce:o,...s}=e,l=$Me(QMe,t),u=LMe(a,r.useRef(null),l.onViewportChange);return n.jsxs(n.Fragment,{children:[n.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:o}),n.jsx(OMe.div,{"data-radix-scroll-area-viewport":"",...s,ref:u,style:{overflowX:l.scrollbarXEnabled?"scroll":"hidden",overflowY:l.scrollbarYEnabled?"scroll":"hidden",...e.style},children:n.jsx("div",{ref:l.onContentChange,style:{minWidth:"100%",display:"table"},children:i})})]})}));XMe.displayName=QMe;var eCe="ScrollAreaScrollbar",aCe=r.forwardRef(((e,a)=>{const{forceMount:t,...i}=e,o=$Me(eCe,e.__scopeScrollArea),{onScrollbarXEnabledChange:s,onScrollbarYEnabledChange:l}=o,u="horizontal"===e.orientation;return r.useEffect((()=>(u?s(!0):l(!0),()=>{u?s(!1):l(!1)})),[u,s,l]),"hover"===o.type?n.jsx(nCe,{...i,ref:a,forceMount:t}):"scroll"===o.type?n.jsx(tCe,{...i,ref:a,forceMount:t}):"auto"===o.type?n.jsx(iCe,{...i,ref:a,forceMount:t}):"always"===o.type?n.jsx(rCe,{...i,ref:a}):null}));aCe.displayName=eCe;var nCe=r.forwardRef(((e,a)=>{const{forceMount:t,...i}=e,o=$Me(eCe,e.__scopeScrollArea),[s,l]=r.useState(!1);return r.useEffect((()=>{const e=o.scrollArea;let a=0;if(e){const n=()=>{window.clearTimeout(a),l(!0)},t=()=>{a=window.setTimeout((()=>l(!1)),o.scrollHideDelay)};return e.addEventListener("pointerenter",n),e.addEventListener("pointerleave",t),()=>{window.clearTimeout(a),e.removeEventListener("pointerenter",n),e.removeEventListener("pointerleave",t)}}}),[o.scrollArea,o.scrollHideDelay]),n.jsx(HMe,{present:t||s,children:n.jsx(iCe,{"data-state":s?"visible":"hidden",...i,ref:a})})})),tCe=r.forwardRef(((e,a)=>{const{forceMount:t,...i}=e,o=$Me(eCe,e.__scopeScrollArea),s="horizontal"===e.orientation,l=MCe((()=>c("SCROLL_END")),100),[u,c]=(d={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},r.useReducer(((e,a)=>d[e][a]??e),"hidden"));var d;return r.useEffect((()=>{if("idle"===u){const e=window.setTimeout((()=>c("HIDE")),o.scrollHideDelay);return()=>window.clearTimeout(e)}}),[u,o.scrollHideDelay,c]),r.useEffect((()=>{const e=o.viewport,a=s?"scrollLeft":"scrollTop";if(e){let n=e[a];const t=()=>{const t=e[a];n!==t&&(c("SCROLL"),l()),n=t};return e.addEventListener("scroll",t),()=>e.removeEventListener("scroll",t)}}),[o.viewport,s,c,l]),n.jsx(HMe,{present:t||"hidden"!==u,children:n.jsx(rCe,{"data-state":"hidden"===u?"hidden":"visible",...i,ref:a,onPointerEnter:JMe(e.onPointerEnter,(()=>c("POINTER_ENTER"))),onPointerLeave:JMe(e.onPointerLeave,(()=>c("POINTER_LEAVE")))})})})),iCe=r.forwardRef(((e,a)=>{const t=$Me(eCe,e.__scopeScrollArea),{forceMount:i,...o}=e,[s,l]=r.useState(!1),u="horizontal"===e.orientation,c=MCe((()=>{if(t.viewport){l(u?t.viewport.offsetWidth<t.viewport.scrollWidth:t.viewport.offsetHeight<t.viewport.scrollHeight)}}),10);return CCe(t.viewport,c),CCe(t.content,c),n.jsx(HMe,{present:i||s,children:n.jsx(rCe,{"data-state":s?"visible":"hidden",...o,ref:a})})})),rCe=r.forwardRef(((e,a)=>{const{orientation:t="vertical",...i}=e,o=$Me(eCe,e.__scopeScrollArea),s=r.useRef(null),l=r.useRef(0),[u,c]=r.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),d=yCe(u.viewport,u.content),m={...i,sizes:u,onSizesChange:c,hasThumb:Boolean(d>0&&d<1),onThumbChange:e=>s.current=e,onThumbPointerUp:()=>l.current=0,onThumbPointerDown:e=>l.current=e};function h(e,a){return function(e,a,n,t="ltr"){const i=kCe(n),r=i/2,o=a||r,s=n.scrollbar.paddingStart+o,l=n.scrollbar.size-n.scrollbar.paddingEnd-(i-o),u=n.content-n.viewport,c="ltr"===t?[0,u]:[-1*u,0];return SCe([s,l],c)(e)}(e,l.current,u,a)}return"horizontal"===t?n.jsx(oCe,{...m,ref:a,onThumbPositionChange:()=>{if(o.viewport&&s.current){const e=bCe(o.viewport.scrollLeft,u,o.dir);s.current.style.transform=`translate3d(${e}px, 0, 0)`}},onWheelScroll:e=>{o.viewport&&(o.viewport.scrollLeft=e)},onDragScroll:e=>{o.viewport&&(o.viewport.scrollLeft=h(e,o.dir))}}):"vertical"===t?n.jsx(sCe,{...m,ref:a,onThumbPositionChange:()=>{if(o.viewport&&s.current){const e=bCe(o.viewport.scrollTop,u);s.current.style.transform=`translate3d(0, ${e}px, 0)`}},onWheelScroll:e=>{o.viewport&&(o.viewport.scrollTop=e)},onDragScroll:e=>{o.viewport&&(o.viewport.scrollTop=h(e))}}):null})),oCe=r.forwardRef(((e,a)=>{const{sizes:t,onSizesChange:i,...o}=e,s=$Me(eCe,e.__scopeScrollArea),[l,u]=r.useState(),c=r.useRef(null),d=LMe(a,c,s.onScrollbarXChange);return r.useEffect((()=>{c.current&&u(getComputedStyle(c.current))}),[c]),n.jsx(cCe,{"data-orientation":"horizontal",...o,ref:d,sizes:t,style:{bottom:0,left:"rtl"===s.dir?"var(--radix-scroll-area-corner-width)":0,right:"ltr"===s.dir?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":kCe(t)+"px",...e.style},onThumbPointerDown:a=>e.onThumbPointerDown(a.x),onDragScroll:a=>e.onDragScroll(a.x),onWheelScroll:(a,n)=>{if(s.viewport){const t=s.viewport.scrollLeft+a.deltaX;e.onWheelScroll(t),ACe(t,n)&&a.preventDefault()}},onResize:()=>{c.current&&s.viewport&&l&&i({content:s.viewport.scrollWidth,viewport:s.viewport.offsetWidth,scrollbar:{size:c.current.clientWidth,paddingStart:vCe(l.paddingLeft),paddingEnd:vCe(l.paddingRight)}})}})})),sCe=r.forwardRef(((e,a)=>{const{sizes:t,onSizesChange:i,...o}=e,s=$Me(eCe,e.__scopeScrollArea),[l,u]=r.useState(),c=r.useRef(null),d=LMe(a,c,s.onScrollbarYChange);return r.useEffect((()=>{c.current&&u(getComputedStyle(c.current))}),[c]),n.jsx(cCe,{"data-orientation":"vertical",...o,ref:d,sizes:t,style:{top:0,right:"ltr"===s.dir?0:void 0,left:"rtl"===s.dir?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":kCe(t)+"px",...e.style},onThumbPointerDown:a=>e.onThumbPointerDown(a.y),onDragScroll:a=>e.onDragScroll(a.y),onWheelScroll:(a,n)=>{if(s.viewport){const t=s.viewport.scrollTop+a.deltaY;e.onWheelScroll(t),ACe(t,n)&&a.preventDefault()}},onResize:()=>{c.current&&s.viewport&&l&&i({content:s.viewport.scrollHeight,viewport:s.viewport.offsetHeight,scrollbar:{size:c.current.clientHeight,paddingStart:vCe(l.paddingTop),paddingEnd:vCe(l.paddingBottom)}})}})})),[lCe,uCe]=WMe(eCe),cCe=r.forwardRef(((e,a)=>{const{__scopeScrollArea:t,sizes:i,hasThumb:o,onThumbChange:s,onThumbPointerUp:l,onThumbPointerDown:u,onThumbPositionChange:c,onDragScroll:d,onWheelScroll:m,onResize:h,...p}=e,g=$Me(eCe,t),[f,v]=r.useState(null),y=LMe(a,(e=>v(e))),k=r.useRef(null),b=r.useRef(""),S=g.viewport,A=i.content-i.viewport,w=FMe(m),M=FMe(c),C=MCe(h,10);function T(e){if(k.current){d({x:e.clientX-k.current.left,y:e.clientY-k.current.top})}}return r.useEffect((()=>{const e=e=>{const a=e.target,n=f?.contains(a);n&&w(e,A)};return document.addEventListener("wheel",e,{passive:!1}),()=>document.removeEventListener("wheel",e,{passive:!1})}),[S,f,A,w]),r.useEffect(M,[i,M]),CCe(f,C),CCe(g.content,C),n.jsx(lCe,{scope:t,scrollbar:f,hasThumb:o,onThumbChange:FMe(s),onThumbPointerUp:FMe(l),onThumbPositionChange:M,onThumbPointerDown:FMe(u),children:n.jsx(OMe.div,{...p,ref:y,style:{position:"absolute",...p.style},onPointerDown:JMe(e.onPointerDown,(e=>{if(0===e.button){e.target.setPointerCapture(e.pointerId),k.current=f.getBoundingClientRect(),b.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",g.viewport&&(g.viewport.style.scrollBehavior="auto"),T(e)}})),onPointerMove:JMe(e.onPointerMove,T),onPointerUp:JMe(e.onPointerUp,(e=>{const a=e.target;a.hasPointerCapture(e.pointerId)&&a.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=b.current,g.viewport&&(g.viewport.style.scrollBehavior=""),k.current=null}))})})})),dCe="ScrollAreaThumb",mCe=r.forwardRef(((e,a)=>{const{forceMount:t,...i}=e,r=uCe(dCe,e.__scopeScrollArea);return n.jsx(HMe,{present:t||r.hasThumb,children:n.jsx(hCe,{ref:a,...i})})})),hCe=r.forwardRef(((e,a)=>{const{__scopeScrollArea:t,style:i,...o}=e,s=$Me(dCe,t),l=uCe(dCe,t),{onThumbPositionChange:u}=l,c=LMe(a,(e=>l.onThumbChange(e))),d=r.useRef(void 0),m=MCe((()=>{d.current&&(d.current(),d.current=void 0)}),100);return r.useEffect((()=>{const e=s.viewport;if(e){const a=()=>{if(m(),!d.current){const a=wCe(e,u);d.current=a,u()}};return u(),e.addEventListener("scroll",a),()=>e.removeEventListener("scroll",a)}}),[s.viewport,m,u]),n.jsx(OMe.div,{"data-state":l.hasThumb?"visible":"hidden",...o,ref:c,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...i},onPointerDownCapture:JMe(e.onPointerDownCapture,(e=>{const a=e.target.getBoundingClientRect();l.onThumbPointerDown({x:e.clientX-a.left,y:e.clientY-a.top})})),onPointerUp:JMe(e.onPointerUp,l.onThumbPointerUp)})}));mCe.displayName=dCe;var pCe="ScrollAreaCorner",gCe=r.forwardRef(((e,a)=>{const t=$Me(pCe,e.__scopeScrollArea),i=Boolean(t.scrollbarX&&t.scrollbarY);return"scroll"!==t.type&&i?n.jsx(fCe,{...e,ref:a}):null}));gCe.displayName=pCe;var fCe=r.forwardRef(((e,a)=>{const{__scopeScrollArea:t,...i}=e,o=$Me(pCe,t),[s,l]=r.useState(0),[u,c]=r.useState(0),d=Boolean(s&&u);return CCe(o.scrollbarX,(()=>{const e=o.scrollbarX?.offsetHeight||0;o.onCornerHeightChange(e),c(e)})),CCe(o.scrollbarY,(()=>{const e=o.scrollbarY?.offsetWidth||0;o.onCornerWidthChange(e),l(e)})),d?n.jsx(OMe.div,{...i,ref:a,style:{width:s,height:u,position:"absolute",right:"ltr"===o.dir?0:void 0,left:"rtl"===o.dir?0:void 0,bottom:0,...e.style}}):null}));function vCe(e){return e?parseInt(e,10):0}function yCe(e,a){const n=e/a;return isNaN(n)?0:n}function kCe(e){const a=yCe(e.viewport,e.content);return Math.max((e.scrollbar.size-(e.scrollbar.paddingStart+e.scrollbar.paddingEnd))*a,18)}function bCe(e,a,n="ltr"){const t=kCe(a),i=a.content-a.viewport,r=a.scrollbar.size-(a.scrollbar.paddingStart+a.scrollbar.paddingEnd)-t,o=function(e,[a,n]){return Math.min(n,Math.max(a,e))}(e,"ltr"===n?[0,i]:[-1*i,0]);return SCe([0,i],[0,r])(o)}function SCe(e,a){return n=>{if(e[0]===e[1]||a[0]===a[1])return a[0];return a[0]+(a[1]-a[0])/(e[1]-e[0])*(n-e[0])}}function ACe(e,a){return e>0&&e<a}var wCe=(e,a=()=>{})=>{let n={left:e.scrollLeft,top:e.scrollTop},t=0;return function i(){const r={left:e.scrollLeft,top:e.scrollTop};(n.left!==r.left||n.top!==r.top)&&a(),n=r,t=window.requestAnimationFrame(i)}(),()=>window.cancelAnimationFrame(t)};function MCe(e,a){const n=FMe(e),t=r.useRef(0);return r.useEffect((()=>()=>window.clearTimeout(t.current)),[]),r.useCallback((()=>{window.clearTimeout(t.current),t.current=window.setTimeout(n,a)}),[n,a])}function CCe(e,a){const n=FMe(a);KMe((()=>{let a=0;if(e){const t=new ResizeObserver((()=>{cancelAnimationFrame(a),a=window.requestAnimationFrame(n)}));return t.observe(e),()=>{window.cancelAnimationFrame(a),t.unobserve(e)}}}),[e,n])}var TCe=YMe,xCe=XMe,NCe=gCe;const ECe=r.forwardRef((({className:e,children:a,...t},i)=>n.jsxs(TCe,{ref:i,className:hq("relative overflow-hidden",e),...t,children:[n.jsx(xCe,{className:"h-full w-full rounded-[inherit]",children:a}),n.jsx(_Ce,{}),n.jsx(NCe,{})]})));ECe.displayName=TCe.displayName;const _Ce=r.forwardRef((({className:e,orientation:a="vertical",...t},i)=>n.jsx(aCe,{ref:i,orientation:a,className:hq("flex touch-none select-none transition-colors","vertical"===a&&"h-full w-2.5 border-l border-l-transparent p-[1px]","horizontal"===a&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",e),...t,children:n.jsx(mCe,{className:"relative flex-1 rounded-full bg-border"})})));_Ce.displayName=aCe.displayName;var PCe=r.forwardRef(((e,a)=>{const{children:t,...i}=e,o=r.Children.toArray(t),s=o.find(BCe);if(s){const e=s.props.children,t=o.map((a=>a===s?r.Children.count(e)>1?r.Children.only(null):r.isValidElement(e)?e.props.children:null:a));return n.jsx(jCe,{...i,ref:a,children:r.isValidElement(e)?r.cloneElement(e,void 0,t):null})}return n.jsx(jCe,{...i,ref:a,children:t})}));PCe.displayName="Slot";var jCe=r.forwardRef(((e,a)=>{const{children:n,...t}=e;if(r.isValidElement(n)){const e=function(e){let a=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=a&&"isReactWarning"in a&&a.isReactWarning;if(n)return e.ref;if(a=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=a&&"isReactWarning"in a&&a.isReactWarning,n)return e.props.ref;return e.props.ref||e.ref}(n),i=function(e,a){const n={...a};for(const t in a){const i=e[t],r=a[t];/^on[A-Z]/.test(t)?i&&r?n[t]=(...e)=>{r(...e),i(...e)}:i&&(n[t]=i):"style"===t?n[t]={...i,...r}:"className"===t&&(n[t]=[i,r].filter(Boolean).join(" "))}return{...e,...n}}(t,n.props);return n.type!==r.Fragment&&(i.ref=a?rq(a,e):e),r.cloneElement(n,i)}return r.Children.count(n)>1?r.Children.only(null):null}));jCe.displayName="SlotClone";var LCe=({children:e})=>n.jsx(n.Fragment,{children:e});function BCe(e){return r.isValidElement(e)&&e.type===LCe}var RCe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce(((e,a)=>{const t=r.forwardRef(((e,t)=>{const{asChild:i,...r}=e,o=i?PCe:a;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),n.jsx(o,{...r,ref:t})}));return t.displayName=`Primitive.${a}`,{...e,[a]:t}}),{}),zCe="horizontal",DCe=["horizontal","vertical"],OCe=r.forwardRef(((e,a)=>{const{decorative:t,orientation:i=zCe,...r}=e,o=function(e){return DCe.includes(e)}(i)?i:zCe;return n.jsx(RCe.div,{"data-orientation":o,...t?{role:"none"}:{"aria-orientation":"vertical"===o?o:void 0,role:"separator"},...r,ref:a})}));OCe.displayName="Separator";var KCe=OCe;const HCe=r.forwardRef((({className:e,orientation:a="horizontal",decorative:t=!0,...i},r)=>n.jsx(KCe,{ref:r,decorative:t,orientation:a,className:oz("shrink-0 bg-border","horizontal"===a?"h-[1px] w-full":"h-full w-[1px]",e),...i})));function ICe({options:e,onValueChange:a,selectedValues:t,setSelectedValues:i,maxCount:o,placeholder:s="Select options",title:l="Select Items",searchPlaceholder:u="Search items...",emptyMessage:c="No items found",extraCommandItems:d=[],canOpen:m=!0,singleSelect:h=!1}){const[p,g]=r.useState(!1),[f,v]=r.useState(""),[y,k]=r.useState(t),b=r.useMemo((()=>Array.from(new Map([...e].filter((e=>e&&"string"==typeof e.value&&"string"==typeof e.label&&""!==e.value.trim()&&""!==e.label.trim())).map((e=>[e.value,e]))).values())),[e]),S=r.useMemo((()=>{if(!f)return b;return[...b.filter((e=>y.includes(e.value))),...b.filter((e=>!y.includes(e.value))).filter((e=>e.label.toLowerCase().includes(f.toLowerCase())))]}),[b,f,y]),A=r.useCallback((()=>t.map((a=>{const n=e.find((e=>e.value===a));return{value:a,label:n?.label||a}}))),[t,e]),w=e=>{if(h)return k([e]),a([e]),i([e]),void g(!1);k((a=>a.includes(e)?a.filter((a=>a!==e)):o&&a.length>=o?a:[...a,e]))};r.useEffect((()=>{p&&(k(t),v(""))}),[p,t]);const M=y.length,C=S.filter((e=>y.includes(e.value))).length,T=A(),x=!o||y.length<o,N=r.useMemo((()=>S.filter((e=>y.includes(e.value)))),[S,y]),E=r.useMemo((()=>S.filter((e=>!y.includes(e.value)))),[S,y]);return n.jsxs(pq,{open:p&&m,onOpenChange:m?g:void 0,children:[n.jsx(gq,{asChild:!0,children:n.jsxs(i3,{variant:"outline",disabled:!m,className:oz("w-full justify-between text-left font-normal h-9 p-3",!m&&"opacity-50 cursor-not-allowed"),children:[n.jsx("div",{className:"flex flex-nowrap items-center gap-1 max-w-[70%]",children:0===T.length?n.jsx("span",{className:"text-muted-foreground",children:s}):h?n.jsx(k3,{variant:"secondary",className:"text-xs whitespace-nowrap",children:T[0].label}):T.length<=2?T.map((e=>n.jsx(k3,{variant:"secondary",className:"text-xs whitespace-nowrap",children:e.label},e.value))):n.jsxs(n.Fragment,{children:[n.jsx(k3,{variant:"secondary",className:"text-xs whitespace-nowrap",children:T[0].label},T[0].value),n.jsxs(k3,{variant:"secondary",className:"text-xs whitespace-nowrap",children:["+",T.length-1," more"]})]})}),n.jsx(l3.DropdownMenuTrigger,{className:"h-4 w-4 opacity-50 ml-2 flex-shrink-0"})]})}),n.jsxs(yq,{className:"max-w-md w-full max-h-[80vh] p-0",children:[n.jsx(kq,{className:"p-6 pb-4",children:n.jsxs(Sq,{className:"flex items-center gap-2 text-xl",children:[n.jsx(l3.UsersIcon,{className:"h-5 w-5 text-primary"}),l]})}),n.jsx("div",{className:"px-6 pb-4",children:n.jsxs("div",{className:"relative",children:[n.jsx(l3.SearchIcon,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-muted-foreground"}),n.jsx(L7,{placeholder:u,value:f,onChange:e=>v(e.target.value),className:"pl-10 h-11"})]})}),!h&&n.jsx("div",{className:"px-6 pb-4",children:n.jsxs("div",{className:"flex items-center justify-between text-sm",children:[n.jsxs("span",{className:"text-muted-foreground",children:[M," of ",b.length," selected",o&&` (max ${o})`]}),n.jsxs("div",{className:"flex gap-2",children:[n.jsx(i3,{variant:"ghost",size:"sm",onClick:()=>{const e=S.filter((e=>!y.includes(e.value))),a=o?e.slice(0,o-y.length):e;k((e=>[...e,...a.map((e=>e.value))]))},disabled:!x||C===S.length,className:"h-8 text-xs",children:"Select All"}),n.jsx(i3,{variant:"ghost",size:"sm",onClick:()=>{const e=new Set(S.map((e=>e.value)));k((a=>a.filter((a=>!e.has(a)))))},disabled:0===C,className:"h-8 text-xs",children:"Clear All"})]})]})}),n.jsx(HCe,{}),n.jsx(ECe,{className:"flex-1 max-h-[300px]",children:n.jsx(CMe,{className:"rounded-none border-none",children:n.jsxs(EMe,{children:[d.length>0&&n.jsxs(n.Fragment,{children:[d.map(((e,a)=>n.jsx("div",{className:"px-3 py-2",children:e(g)},`extra-command-${a}`))),n.jsx(HCe,{className:"my-2"})]}),0===S.length?n.jsxs("div",{className:"text-center py-8 text-muted-foreground",children:[n.jsx(l3.SearchIcon,{className:"h-8 w-8 mx-auto mb-2 opacity-50"}),n.jsx("p",{children:c})]}):n.jsxs(n.Fragment,{children:[!h&&N.length>0&&n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"px-3 pt-2 pb-1 text-xs font-semibold text-muted-foreground tracking-wide uppercase",children:["Selected (",N.length,")"]}),N.map((e=>n.jsxs(_Me,{onSelect:()=>w(e.value),className:"flex items-center space-x-3 p-3 rounded-lg transition-colors hover:bg-muted/50 cursor-pointer",children:[n.jsx(Pwe,{checked:!0,disabled:!1,onChange:()=>w(e.value),className:"flex-shrink-0"}),n.jsx("div",{className:"flex-1 min-w-0",children:n.jsx("div",{className:"font-medium text-sm truncate",children:e.label})}),n.jsx(l3.CheckIcon,{className:"h-4 w-4 text-primary flex-shrink-0"})]},e.value))),n.jsx(HCe,{className:"my-2"})]}),n.jsx("div",{className:"px-3 pt-2 pb-1 text-xs font-semibold text-muted-foreground tracking-wide uppercase",children:h?"Options":`Available (${E.length})`}),E.map((e=>{const a=y.includes(e.value),t=!h&&!x;return n.jsxs(_Me,{onSelect:()=>!t&&w(e.value),className:"flex items-center space-x-3 p-3 rounded-lg transition-colors "+(t?"opacity-50 cursor-not-allowed":"hover:bg-muted/50 cursor-pointer"),children:[!h&&n.jsx(Pwe,{checked:a,disabled:t,onChange:()=>!t&&w(e.value),className:"flex-shrink-0"}),n.jsx("div",{className:"flex-1 min-w-0",children:n.jsx("div",{className:"font-medium text-sm truncate",children:e.label})}),a&&n.jsx(l3.CheckIcon,{className:"h-4 w-4 text-primary flex-shrink-0"})]},e.value)}))]})]})})}),!h&&n.jsxs(n.Fragment,{children:[n.jsx(HCe,{}),n.jsx("div",{className:"p-6 pt-4",children:n.jsxs("div",{className:"flex gap-3",children:[n.jsx(i3,{variant:"outline",onClick:()=>{k(t),v(""),g(!1)},className:"flex-1",children:"Cancel"}),n.jsxs(i3,{onClick:()=>{a(y),i(y),g(!1)},className:"flex-1 bg-primary hover:bg-primary/90",children:["Apply (",M,")"]})]})})]})]})]})}HCe.displayName=KCe.displayName;const GCe=({isSaving:e,isLoading:a,savingText:t="Saving...",loadingText:i="Loading...",className:r,size:o="sm",textSize:s="xs"})=>{const l=e?t:i;if(!(e||a))return null;return n.jsxs("div",{className:oz("flex items-center space-x-2 text-muted-foreground",{xs:"text-xs",sm:"text-sm",md:"text-base"}[s],r),children:[n.jsx(EB,{className:oz("animate-spin",{xs:"h-3 w-3",sm:"h-4 w-4",md:"h-5 w-5",lg:"h-6 w-6"}[o])}),n.jsx("span",{children:l})]})},FCe=e=>n.jsx(_ge,{as:"span",className:"inline-flex items-center px-1 py-0.5 rounded text-xs bg-blue-100 text-blue-800 font-medium border border-blue-200",children:e.node.attrs.displayName}),VCe=Xpe.create({name:"mergeField",group:"inline",inline:!0,atom:!0,addAttributes:()=>({templateName:{default:null,parseHTML:e=>e.getAttribute("data-template-name")},displayName:{default:null,parseHTML:e=>e.getAttribute("data-display-name")}}),parseHTML:()=>[{tag:"span[data-merge-field]"}],renderHTML:({HTMLAttributes:e})=>["span",Khe(e,{"data-merge-field":"true"})],renderText:({node:e})=>e.attrs.templateName,addNodeView:()=>Rge(FCe)}),JCe=({value:e,onChange:t,maxLength:i,mergeFieldsResponse:r,editorRef:o,imagePreview:s,onAddImage:l,onRemoveImage:u,isRemovingImage:c,isUpdatingCommunicationGroup:d,initialImageUrls:m,imageBase64:h,isUpdating:p,hasUnsavedChanges:g})=>{const[f,v]=a.useState(0),y=a.useMemo((()=>r?.mergeFields?.flatMap((e=>e.entries))??[]),[r]),k=a.useCallback((e=>{if(!e)return"";return e.replace(/\{\{.*?\}\}/g,(e=>{const a=y.find((a=>a.value===e));return a?`<span class="inline-flex items-center px-1 py-0.5 rounded text-xs bg-blue-100 text-blue-800 font-medium border border-blue-200" data-merge-field="true" data-template-name="${a.value}" data-display-name="${a.label}">${a.label}</span>`:e}))}),[y]),b=Nge({extensions:[Wfe,VCe],content:"",editorProps:{attributes:{class:"min-h-[300px] p-3 border border-gray-200 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent resize-none prose prose-sm max-w-none"}},onUpdate:({editor:e})=>{const a=e.getText();v(a.length),t(a)}});a.useEffect((()=>{if(b&&e){if(b.getText()!==e){const a=k(e);b.commands.setContent(a,!1),v(e.length)}}}),[b,e,k]);const S=a.useCallback((e=>{if(e.length>0&&b){const a=y.find((a=>a.value===e[0]));a&&b.chain().focus().insertContent({type:"mergeField",attrs:{templateName:a.value,displayName:a.label}}).run()}}),[b,y]),A=a.useMemo((()=>y.map((e=>({label:e.label,value:e.value})))),[y]),w=((e,a)=>({colorClass:e>=a?"text-red-500":e>320?"text-amber-500":"text-gray-500",text:`${e}/${a} characters`}))(f,i);return b?n.jsxs("div",{className:"space-y-4",children:[n.jsx("div",{ref:o,children:n.jsx(hge,{editor:b})}),n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(i3,s?{variant:"outline",onClick:u,disabled:c||d,children:"Remove Image"}:{variant:"outline",onClick:l,disabled:(m?.length||0)>=1||c||null!==h||d,children:"Add Image"}),n.jsx(ICe,{options:A,selectedValues:[],setSelectedValues:()=>{},onValueChange:S,placeholder:"Add merge field",title:"Merge Fields",searchPlaceholder:"Search merge fields...",emptyMessage:"No merge fields found",singleSelect:!0}),n.jsx(cse,{title:"Merge Fields"})]}),n.jsxs("div",{className:`flex items-center gap-2 text-sm transition-colors duration-300 ${w.colorClass}`,children:[n.jsx(GCe,{isSaving:!(!p&&!g),savingText:p||g?"Saving...":"Autosave enabled",size:"xs",textSize:"xs"}),w.text,f>Xke&&n.jsx(cse,{title:"The maximum number of characters for an SMS is 1500. This includes the company name, if you have one, and the merge fields. The recommended limit is 320 characters for best delivery rates. Click to learn more",onClick:()=>{window.open("https://help.twilio.com/articles/360033806753-Maximum-Message-Length-with-Twilio-Programmable-Messaging","_blank")},link:{url:"https://help.twilio.com/articles/360033806753-Maximum-Message-Length-with-Twilio-Programmable-Messaging",text:"The maximum number of characters for an SMS is 1500. This includes the company name, if you have one, and the merge fields. The recommended limit is 320 characters for best delivery rates. Click to learn more"}})]})]})]}):n.jsx("div",{children:"Loading editor..."})},UCe=a.memo((({communicationGroupId:e,initialSenderId:t,companyName:i,modalType:r="popover",align:o="end",trigger:s})=>{const l=a.useRef({communicationGroupId:e,initialSenderId:t,companyName:i}),[u,c]=a.useState(null),[d,m]=a.useState(null),[h,p]=a.useState(!1),[g,f]=a.useState(!1),v=Vke(d,250),{channelSenders:y}=ate(),{channelAccounts:k}=Qne(),{data:b}=rte(),{updateCommunicationGroup:S,isUpdating:A}=Qe(),w=a.useMemo((()=>Kre({channelSenders:y?.results??[],channelAccounts:k?.results??[],smsApplication:b})),[y?.results,k?.results,b]);a.useEffect((()=>{!g&&w.length>0&&(c(l.current.initialSenderId),m(l.current.companyName),f(!0))}),[g,w.length]);const M=a.useCallback((e=>{c(e),S({groupId:l.current.communicationGroupId,params:{smsChannelSenderId:e}})}),[S]),C=a.useCallback((e=>{m(e.target.value)}),[]);a.useEffect((()=>{g&&void 0!==v&&S({groupId:l.current.communicationGroupId,params:{textMessageCompanyName:v||null}})}),[v,g,S]);const T=a.useCallback((e=>{p(e)}),[]),x=a.useMemo((()=>g?n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{className:"space-y-2",children:[n.jsx(sve,{htmlFor:"sender-select",className:"text-sm font-medium",children:"From"}),n.jsxs(zke,{value:u||"",onValueChange:M,children:[n.jsx(Kke,{id:"sender-select",className:"w-full",children:n.jsx(Oke,{placeholder:"Select a sender"})}),n.jsx(Gke,{children:w.map((e=>n.jsx(Fke,{value:e.channelSender.id,children:n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx("span",{children:e.channelSender.channelSenderMetadata.friendlyName||e.channelSender.channelSenderMetadata.from}),e.smsApplication?.status===Ore.APPROVED&&n.jsx(sB,{className:"h-3 w-3 text-green-500"})]})},e.channelSender.id)))})]})]}),n.jsxs("div",{className:"space-y-2",children:[n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(sve,{htmlFor:"company-name",className:"text-sm font-medium",children:"Company Name"}),n.jsx(cse,{title:"Company name will be included in the SMS message",size:"small"})]}),n.jsx(L7,{id:"company-name",value:d||"",onChange:C,placeholder:"Enter company name",className:"w-full"}),n.jsx("div",{className:"h-6",children:n.jsx(GCe,{isSaving:A})})]})]}):n.jsx("div",{className:"flex items-center justify-center p-4",children:n.jsx(GCe,{isLoading:!0,loadingText:"Loading...",size:"sm",textSize:"sm"})})),[g,u,d,A,w,M,C]);return"popover"===r?n.jsxs(Hne,{open:h,onOpenChange:T,children:[n.jsx(Ine,{asChild:!0,children:s||n.jsxs(i3,{variant:"outline",size:"sm",className:oz("flex items-center space-x-2",h&&"bg-accent"),children:[n.jsx("span",{children:"Edit Sender & Company"}),n.jsx(lB,{className:"h-3 w-3"})]})}),n.jsx(Gne,{align:o,className:"w-96",children:x})]}):"dialog"===r?n.jsxs(pq,{open:h,onOpenChange:T,children:[n.jsx(gq,{asChild:!0,children:s||n.jsxs(i3,{variant:"outline",size:"sm",className:"flex items-center space-x-2",children:[n.jsx("span",{children:"Edit Sender & Company"}),n.jsx(lB,{className:"h-3 w-3"})]})}),n.jsxs(yq,{className:"min-w-[700px]",children:[n.jsx(kq,{children:n.jsx(Sq,{children:"Edit Sender & Company"})}),x]})]}):n.jsx("div",{className:"w-full",children:x})}),(()=>!0));UCe.displayName="SMSSenderAndCompanyEditor";const WCe=a.memo((({communicationGroupId:e,initialSenderId:a,companyName:t})=>n.jsx(UCe,{communicationGroupId:e,initialSenderId:a||null,companyName:t||null,modalType:"dialog"}))),qCe=({communicationGroupId:e,initialMessage:t="",initialImageUrls:i=[],companyName:r,initialSenderId:o,onSave:s,className:l})=>{const{toast:u}=Je(),{updateCommunicationGroup:c,isUpdating:d}=Qe(),{getMergeFields:m}=Xe(e),[h,p]=a.useState(t),[g,f]=a.useState(i.length>0?i[0]:null),[v,y]=a.useState(null),[k,b]=a.useState(!1),[S,A]=a.useState(!1),[w,M]=a.useState(!1),[C,T]=a.useState(!1),x=a.useRef(null),N=a.useRef(r),E=a.useRef(),_=a.useRef(!0),P=a.useRef({message:t}),j=Vke(h,1e3),L=a.useCallback((async()=>{if(_.current)return;const a=j||"";if(a.length>1500)return void u({title:"SMS is too long",description:"Please shorten your message",variant:"destructive"});if(a!==P.current.message&&0!==a.length)try{await c({groupId:e,params:{smsMessageBody:a}}),P.current={message:a},M(!1),s?.()}catch(n){u({title:"Autosave failed",description:"Your changes may not have been saved",variant:"destructive"})}}),[j,e,c,u,s]);E.current=L,a.useEffect((()=>{if(!C)return;j!==P.current.message&&!d&&(M(!0),E.current?.())}),[j,d,C]),a.useEffect((()=>{if(!C)return;M(h!==t)}),[h,t,C]),a.useEffect((()=>{t&&p(t),i.length>0?(f(i[0]),b(!1)):(f(null),y(null),b(!1)),P.current={message:t},T(!0);const e=setTimeout((()=>{_.current=!1}),2e3);return()=>clearTimeout(e)}),[t,i]);const B=a.useCallback((async()=>{if(e&&!k){b(!0);try{await c({groupId:e,params:{textMessageMedia:[]}}),f(null),y(null),u({title:"Image removed",description:"The image has been removed from your SMS"})}catch(a){u({title:"Failed to remove image",description:"Please try again",variant:"destructive"})}finally{b(!1)}}}),[e,c,u,k]),R=a.useCallback((async a=>{const n=a.target.files?.[0];if(n&&e&&!S){x.current&&(x.current.value=""),A(!0);try{const a=new FileReader;a.onloadend=async()=>{try{const n=await async function(e){if(!mwe)throw new Error("Image conversion is only supported in browser environments");return new Promise(((a,n)=>{try{const t=new window.Image;t.crossOrigin="anonymous",t.onload=()=>{try{const e=document.createElement("canvas");e.width=t.naturalWidth,e.height=t.naturalHeight;const i=e.getContext("2d");if(!i)return void n(new Error("Failed to get canvas context"));i.drawImage(t,0,0);const r=e.toDataURL("image/png",1);a(r)}catch(e){n(e)}},t.onerror=()=>{n(new Error("Failed to load image"))},t.src=e}catch(t){n(t)}}))}(a.result),t=hwe(n);await c({groupId:e,params:{textMessageMedia:[t]}}),y(t),f(n),b(!1),u({title:"Image uploaded",description:"The image has been added to your SMS"})}catch(n){u({title:"Error uploading image",description:"Failed to process or upload the image",variant:"destructive"})}finally{A(!1)}},a.readAsDataURL(n)}catch(t){u({title:"Error reading file",description:"Please try again",variant:"destructive"}),A(!1)}}}),[e,c,u,S]),z=a.useCallback((()=>{x.current?.click()}),[]);return m?n.jsxs("div",{className:oz("w-full @container",l),children:[n.jsxs("div",{className:"flex items-center justify-between mb-6",children:[n.jsxs("div",{children:[n.jsx("h3",{className:"text-sm font-medium text-gray-700 mb-2",children:"Live Preview"}),n.jsx("div",{className:"text-xs text-gray-500",children:"See how your message will appear to customers"})]}),n.jsx(WCe,{communicationGroupId:e,initialSenderId:o||null,companyName:N.current||null})]}),n.jsxs("div",{className:"flex flex-col lg:flex-row gap-6 h-full",children:[n.jsxs("div",{className:"flex-1 min-w-0",children:[g&&n.jsx("div",{className:"flex justify-center mb-6",children:n.jsx("div",{className:"relative group w-fit",children:n.jsx("img",{src:g,alt:"SMS attachment preview",className:"max-h-48 max-w-xs rounded-xl shadow-lg border border-gray-200 object-contain bg-white transition-transform duration-200",style:{boxShadow:"0 4px 24px 0 rgba(0,0,0,0.08)"}})})}),n.jsx("input",{type:"file",ref:x,onChange:R,accept:"image/*",className:"hidden"}),n.jsx(JCe,{value:h,onChange:p,maxLength:1500,mergeFieldsResponse:m,imagePreview:g,onAddImage:z,onRemoveImage:B,isRemovingImage:k,isUpdatingCommunicationGroup:d||S,initialImageUrls:i,imageBase64:v,isUpdating:d||S,hasUnsavedChanges:w})]}),n.jsx("div",{className:"hidden @lg:block flex-1 min-w-0",children:n.jsx("div",{className:"sticky top-4",children:n.jsx("div",{className:"bg-gray-50 rounded-xl p-4 border border-gray-200",children:n.jsx(fwe,{body:dwe({companyName:r||void 0,smsBody:h}),imageUrls:g?[g]:[]})})})})]})]}):n.jsx("div",{className:"flex justify-center items-center p-8",children:n.jsx("div",{className:"text-sm text-muted-foreground",children:"Loading editor..."})})},ZCe=()=>{const e=X2(),{channelSenders:a}=ate(),{channelAccounts:t}=Qne(),{data:i}=rte(),{getMergeFields:r,isGetting:o}=Xe(e?.id??void 0),s=Kre({channelSenders:a?.results??[],channelAccounts:t?.results??[],smsApplication:i}),l=e?.textMessageMediaUrls??[],u=e?.smsMessageBody||"",c=s.length>0;return o||!r?n.jsx("div",{className:"flex justify-center items-center flex-1 h-full bg-white rounded-2xl w-full border border-gray-200 p-6 space-y-4 relative",children:n.jsx(Tq,{text:["Fetching Content..."]})}):n.jsxs("div",{className:"bg-white rounded-2xl w-full border border-gray-200 p-6 space-y-4 relative",children:[n.jsx(hbe,{title:"SMS Campaign",type:$ke.SMS}),n.jsx("div",!1===c?{className:"w-full pt-8 mx-auto",children:n.jsx(cwe,{})}:{className:"space-y-6",children:n.jsx(qCe,{communicationGroupId:e?.id,initialMessage:u,initialImageUrls:l,companyName:e?.textMessageCompanyName,initialSenderId:e?.smsChannelSenderId,onSave:()=>{},className:"max-w-7xl mx-auto"})})]})},$Ce=e=>e.friendlyName||e.from||e.messageServiceSid||"Unknown Sender";function YCe(e,a,{checkForDefaultPrevented:n=!0}={}){return function(t){if(e?.(t),!1===n||!t.defaultPrevented)return a?.(t)}}function QCe(e,a=[]){let t=[];const i=()=>{const a=t.map((e=>r.createContext(e)));return function(n){const t=n?.[e]||a;return r.useMemo((()=>({[`__scope${e}`]:{...n,[e]:t}})),[n,t])}};return i.scopeName=e,[function(a,i){const o=r.createContext(i),s=t.length;t=[...t,i];const l=a=>{const{scope:t,children:i,...l}=a,u=t?.[e]?.[s]||o,c=r.useMemo((()=>l),Object.values(l));return n.jsx(u.Provider,{value:c,children:i})};return l.displayName=a+"Provider",[l,function(n,t){const l=r.useContext(t?.[e]?.[s]||o);if(l)return l;if(void 0!==i)return i;throw new Error(`\`${n}\` must be used within \`${a}\``)}]},XCe(i,...a)]}function XCe(...e){const a=e[0];if(1===e.length)return a;const n=()=>{const n=e.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(e){const t=n.reduce(((a,{useScope:n,scopeName:t})=>({...a,...n(e)[`__scope${t}`]})),{});return r.useMemo((()=>({[`__scope${a.scopeName}`]:t})),[t])}};return n.scopeName=a.scopeName,n}function eTe(e,a){if("function"==typeof e)return e(a);null!=e&&(e.current=a)}function aTe(...e){return a=>{let n=!1;const t=e.map((e=>{const t=eTe(e,a);return n||"function"!=typeof t||(n=!0),t}));if(n)return()=>{for(let a=0;a<t.length;a++){const n=t[a];"function"==typeof n?n():eTe(e[a],null)}}}}function nTe(...e){return r.useCallback(aTe(...e),e)}function tTe(e){const a=iTe(e),t=r.forwardRef(((e,t)=>{const{children:i,...o}=e,s=r.Children.toArray(i),l=s.find(oTe);if(l){const e=l.props.children,i=s.map((a=>a===l?r.Children.count(e)>1?r.Children.only(null):r.isValidElement(e)?e.props.children:null:a));return n.jsx(a,{...o,ref:t,children:r.isValidElement(e)?r.cloneElement(e,void 0,i):null})}return n.jsx(a,{...o,ref:t,children:i})}));return t.displayName=`${e}.Slot`,t}function iTe(e){const a=r.forwardRef(((e,a)=>{const{children:n,...t}=e;if(r.isValidElement(n)){const e=function(e){let a=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=a&&"isReactWarning"in a&&a.isReactWarning;if(n)return e.ref;if(a=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=a&&"isReactWarning"in a&&a.isReactWarning,n)return e.props.ref;return e.props.ref||e.ref}(n),i=function(e,a){const n={...a};for(const t in a){const i=e[t],r=a[t];/^on[A-Z]/.test(t)?i&&r?n[t]=(...e)=>{r(...e),i(...e)}:i&&(n[t]=i):"style"===t?n[t]={...i,...r}:"className"===t&&(n[t]=[i,r].filter(Boolean).join(" "))}return{...e,...n}}(t,n.props);return n.type!==r.Fragment&&(i.ref=a?aTe(a,e):e),r.cloneElement(n,i)}return r.Children.count(n)>1?r.Children.only(null):null}));return a.displayName=`${e}.SlotClone`,a}var rTe=Symbol("radix.slottable");function oTe(e){return r.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===rTe}var sTe=globalThis?.document?r.useLayoutEffect:()=>{},lTe=r[" useId ".trim().toString()]||(()=>{}),uTe=0;function cTe(e){const[a,n]=r.useState(lTe());return sTe((()=>{n((e=>e??String(uTe++)))}),[e]),e||(a?`radix-${a}`:"")}var dTe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce(((e,a)=>{const t=tTe(`Primitive.${a}`),i=r.forwardRef(((e,i)=>{const{asChild:r,...o}=e,s=r?t:a;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),n.jsx(s,{...o,ref:i})}));return i.displayName=`Primitive.${a}`,{...e,[a]:i}}),{});var mTe=r[" useInsertionEffect ".trim().toString()]||sTe;function hTe({prop:e,defaultProp:a,onChange:n=()=>{},caller:t}){const[i,o,s]=function({defaultProp:e,onChange:a}){const[n,t]=r.useState(e),i=r.useRef(n),o=r.useRef(a);return mTe((()=>{o.current=a}),[a]),r.useEffect((()=>{i.current!==n&&(o.current?.(n),i.current=n)}),[n,i]),[n,t,o]}({defaultProp:a,onChange:n}),l=void 0!==e,u=l?e:i;{const a=r.useRef(void 0!==e);r.useEffect((()=>{const e=a.current;if(e!==l){}a.current=l}),[l,t])}const c=r.useCallback((a=>{if(l){const n=function(e){return"function"==typeof e}(a)?a(e):a;n!==e&&s.current?.(n)}else o(a)}),[l,e,o,s]);return[u,c]}var pTe=r.createContext(void 0);function gTe(e){const a=r.useContext(pTe);return e||a||"ltr"}var fTe="rovingFocusGroup.onEntryFocus",vTe={bubbles:!1,cancelable:!0},yTe="RovingFocusGroup",[kTe,bTe,STe]=function(e){const t=e+"CollectionProvider",[i,r]=QCe(t),[o,s]=i(t,{collectionRef:{current:null},itemMap:new Map}),l=e=>{const{scope:t,children:i}=e,r=a.useRef(null),s=a.useRef(new Map).current;return n.jsx(o,{scope:t,itemMap:s,collectionRef:r,children:i})};l.displayName=t;const u=e+"CollectionSlot",c=tTe(u),d=a.forwardRef(((e,a)=>{const{scope:t,children:i}=e,r=nTe(a,s(u,t).collectionRef);return n.jsx(c,{ref:r,children:i})}));d.displayName=u;const m=e+"CollectionItemSlot",h="data-radix-collection-item",p=tTe(m),g=a.forwardRef(((e,t)=>{const{scope:i,children:r,...o}=e,l=a.useRef(null),u=nTe(t,l),c=s(m,i);return a.useEffect((()=>(c.itemMap.set(l,{ref:l,...o}),()=>{c.itemMap.delete(l)}))),n.jsx(p,{[h]:"",ref:u,children:r})}));return g.displayName=m,[{Provider:l,Slot:d,ItemSlot:g},function(n){const t=s(e+"CollectionConsumer",n);return a.useCallback((()=>{const e=t.collectionRef.current;if(!e)return[];const a=Array.from(e.querySelectorAll(`[${h}]`));return Array.from(t.itemMap.values()).sort(((e,n)=>a.indexOf(e.ref.current)-a.indexOf(n.ref.current)))}),[t.collectionRef,t.itemMap])},r]}(yTe),[ATe,wTe]=QCe(yTe,[STe]),[MTe,CTe]=ATe(yTe),TTe=r.forwardRef(((e,a)=>n.jsx(kTe.Provider,{scope:e.__scopeRovingFocusGroup,children:n.jsx(kTe.Slot,{scope:e.__scopeRovingFocusGroup,children:n.jsx(xTe,{...e,ref:a})})})));TTe.displayName=yTe;var xTe=r.forwardRef(((e,a)=>{const{__scopeRovingFocusGroup:t,orientation:i,loop:o=!1,dir:s,currentTabStopId:l,defaultCurrentTabStopId:u,onCurrentTabStopIdChange:c,onEntryFocus:d,preventScrollOnEntryFocus:m=!1,...h}=e,p=r.useRef(null),g=nTe(a,p),f=gTe(s),[v,y]=hTe({prop:l,defaultProp:u??null,onChange:c,caller:yTe}),[k,b]=r.useState(!1),S=function(e){const a=r.useRef(e);return r.useEffect((()=>{a.current=e})),r.useMemo((()=>(...e)=>a.current?.(...e)),[])}(d),A=bTe(t),w=r.useRef(!1),[M,C]=r.useState(0);return r.useEffect((()=>{const e=p.current;if(e)return e.addEventListener(fTe,S),()=>e.removeEventListener(fTe,S)}),[S]),n.jsx(MTe,{scope:t,orientation:i,dir:f,loop:o,currentTabStopId:v,onItemFocus:r.useCallback((e=>y(e)),[y]),onItemShiftTab:r.useCallback((()=>b(!0)),[]),onFocusableItemAdd:r.useCallback((()=>C((e=>e+1))),[]),onFocusableItemRemove:r.useCallback((()=>C((e=>e-1))),[]),children:n.jsx(dTe.div,{tabIndex:k||0===M?-1:0,"data-orientation":i,...h,ref:g,style:{outline:"none",...e.style},onMouseDown:YCe(e.onMouseDown,(()=>{w.current=!0})),onFocus:YCe(e.onFocus,(e=>{if(e.target===e.currentTarget&&!w.current&&!k){const a=new CustomEvent(fTe,vTe);if(e.currentTarget.dispatchEvent(a),!a.defaultPrevented){const e=A().filter((e=>e.focusable));PTe([e.find((e=>e.active)),e.find((e=>e.id===v)),...e].filter(Boolean).map((e=>e.ref.current)),m)}}w.current=!1})),onBlur:YCe(e.onBlur,(()=>b(!1)))})})})),NTe="RovingFocusGroupItem",ETe=r.forwardRef(((e,a)=>{const{__scopeRovingFocusGroup:t,focusable:i=!0,active:o=!1,tabStopId:s,children:l,...u}=e,c=cTe(),d=s||c,m=CTe(NTe,t),h=m.currentTabStopId===d,p=bTe(t),{onFocusableItemAdd:g,onFocusableItemRemove:f,currentTabStopId:v}=m;return r.useEffect((()=>{if(i)return g(),()=>f()}),[i,g,f]),n.jsx(kTe.ItemSlot,{scope:t,id:d,focusable:i,active:o,children:n.jsx(dTe.span,{tabIndex:h?0:-1,"data-orientation":m.orientation,...u,ref:a,onMouseDown:YCe(e.onMouseDown,(e=>{i?m.onItemFocus(d):e.preventDefault()})),onFocus:YCe(e.onFocus,(()=>m.onItemFocus(d))),onKeyDown:YCe(e.onKeyDown,(e=>{if("Tab"===e.key&&e.shiftKey)return void m.onItemShiftTab();if(e.target!==e.currentTarget)return;const a=function(e,a,n){const t=function(e,a){return"rtl"!==a?e:"ArrowLeft"===e?"ArrowRight":"ArrowRight"===e?"ArrowLeft":e}(e.key,n);return"vertical"===a&&["ArrowLeft","ArrowRight"].includes(t)||"horizontal"===a&&["ArrowUp","ArrowDown"].includes(t)?void 0:_Te[t]}(e,m.orientation,m.dir);if(void 0!==a){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let i=p().filter((e=>e.focusable)).map((e=>e.ref.current));if("last"===a)i.reverse();else if("prev"===a||"next"===a){"prev"===a&&i.reverse();const r=i.indexOf(e.currentTarget);i=m.loop?(t=r+1,(n=i).map(((e,a)=>n[(t+a)%n.length]))):i.slice(r+1)}setTimeout((()=>PTe(i)))}var n,t})),children:"function"==typeof l?l({isCurrentTabStop:h,hasTabStop:null!=v}):l})})}));ETe.displayName=NTe;var _Te={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function PTe(e,a=!1){const n=document.activeElement;for(const t of e){if(t===n)return;if(t.focus({preventScroll:a}),document.activeElement!==n)return}}var jTe=TTe,LTe=ETe;var BTe=e=>{const{present:a,children:n}=e,t=function(e){const[a,n]=r.useState(),t=r.useRef(null),i=r.useRef(e),o=r.useRef("none"),s=e?"mounted":"unmounted",[l,u]=function(e,a){return r.useReducer(((e,n)=>a[e][n]??e),e)}(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return r.useEffect((()=>{const e=RTe(t.current);o.current="mounted"===l?e:"none"}),[l]),sTe((()=>{const a=t.current,n=i.current;if(n!==e){const t=o.current,r=RTe(a);if(e)u("MOUNT");else if("none"===r||"none"===a?.display)u("UNMOUNT");else{u(n&&t!==r?"ANIMATION_OUT":"UNMOUNT")}i.current=e}}),[e,u]),sTe((()=>{if(a){let e;const n=a.ownerDocument.defaultView??window,r=r=>{const o=RTe(t.current).includes(r.animationName);if(r.target===a&&o&&(u("ANIMATION_END"),!i.current)){const t=a.style.animationFillMode;a.style.animationFillMode="forwards",e=n.setTimeout((()=>{"forwards"===a.style.animationFillMode&&(a.style.animationFillMode=t)}))}},s=e=>{e.target===a&&(o.current=RTe(t.current))};return a.addEventListener("animationstart",s),a.addEventListener("animationcancel",r),a.addEventListener("animationend",r),()=>{n.clearTimeout(e),a.removeEventListener("animationstart",s),a.removeEventListener("animationcancel",r),a.removeEventListener("animationend",r)}}u("ANIMATION_END")}),[a,u]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:r.useCallback((e=>{t.current=e?getComputedStyle(e):null,n(e)}),[])}}(a),i="function"==typeof n?n({present:t.isPresent}):r.Children.only(n),o=nTe(t.ref,function(e){let a=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=a&&"isReactWarning"in a&&a.isReactWarning;if(n)return e.ref;if(a=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=a&&"isReactWarning"in a&&a.isReactWarning,n)return e.props.ref;return e.props.ref||e.ref}(i));return"function"==typeof n||t.isPresent?r.cloneElement(i,{ref:o}):null};function RTe(e){return e?.animationName||"none"}BTe.displayName="Presence";var zTe="Tabs",[DTe,OTe]=QCe(zTe,[wTe]),KTe=wTe(),[HTe,ITe]=DTe(zTe),GTe=r.forwardRef(((e,a)=>{const{__scopeTabs:t,value:i,onValueChange:r,defaultValue:o,orientation:s="horizontal",dir:l,activationMode:u="automatic",...c}=e,d=gTe(l),[m,h]=hTe({prop:i,onChange:r,defaultProp:o??"",caller:zTe});return n.jsx(HTe,{scope:t,baseId:cTe(),value:m,onValueChange:h,orientation:s,dir:d,activationMode:u,children:n.jsx(dTe.div,{dir:d,"data-orientation":s,...c,ref:a})})}));GTe.displayName=zTe;var FTe="TabsList",VTe=r.forwardRef(((e,a)=>{const{__scopeTabs:t,loop:i=!0,...r}=e,o=ITe(FTe,t),s=KTe(t);return n.jsx(jTe,{asChild:!0,...s,orientation:o.orientation,dir:o.dir,loop:i,children:n.jsx(dTe.div,{role:"tablist","aria-orientation":o.orientation,...r,ref:a})})}));VTe.displayName=FTe;var JTe="TabsTrigger",UTe=r.forwardRef(((e,a)=>{const{__scopeTabs:t,value:i,disabled:r=!1,...o}=e,s=ITe(JTe,t),l=KTe(t),u=ZTe(s.baseId,i),c=$Te(s.baseId,i),d=i===s.value;return n.jsx(LTe,{asChild:!0,...l,focusable:!r,active:d,children:n.jsx(dTe.button,{type:"button",role:"tab","aria-selected":d,"aria-controls":c,"data-state":d?"active":"inactive","data-disabled":r?"":void 0,disabled:r,id:u,...o,ref:a,onMouseDown:YCe(e.onMouseDown,(e=>{r||0!==e.button||!1!==e.ctrlKey?e.preventDefault():s.onValueChange(i)})),onKeyDown:YCe(e.onKeyDown,(e=>{[" ","Enter"].includes(e.key)&&s.onValueChange(i)})),onFocus:YCe(e.onFocus,(()=>{d||r||!("manual"!==s.activationMode)||s.onValueChange(i)}))})})}));UTe.displayName=JTe;var WTe="TabsContent",qTe=r.forwardRef(((e,a)=>{const{__scopeTabs:t,value:i,forceMount:o,children:s,...l}=e,u=ITe(WTe,t),c=ZTe(u.baseId,i),d=$Te(u.baseId,i),m=i===u.value,h=r.useRef(m);return r.useEffect((()=>{const e=requestAnimationFrame((()=>h.current=!1));return()=>cancelAnimationFrame(e)}),[]),n.jsx(BTe,{present:o||m,children:({present:t})=>n.jsx(dTe.div,{"data-state":m?"active":"inactive","data-orientation":u.orientation,role:"tabpanel","aria-labelledby":c,hidden:!t,id:d,tabIndex:0,...l,ref:a,style:{...e.style,animationDuration:h.current?"0s":void 0},children:t&&s})})}));function ZTe(e,a){return`${e}-trigger-${a}`}function $Te(e,a){return`${e}-content-${a}`}qTe.displayName=WTe;var YTe=VTe,QTe=UTe,XTe=qTe;const exe=GTe,axe=r.forwardRef((({className:e,...a},t)=>n.jsx(YTe,{ref:t,className:oz("inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",e),...a})));axe.displayName=YTe.displayName;const nxe=r.forwardRef((({className:e,...a},t)=>n.jsx(QTe,{ref:t,className:oz("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",e),...a})));nxe.displayName=QTe.displayName;const txe=r.forwardRef((({className:e,...a},t)=>n.jsx(XTe,{ref:t,className:oz("ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e),...a})));txe.displayName=XTe.displayName;const ixe=({type:e})=>{const t=X2(),i=Q2(),{toast:r}=Je(),[o,s]=a.useState(!1),{resetCommunicationGroupToDefault:l,isPending:u}=aa(),c=e===$ke.EMAIL?"Email":"SMS";return n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"flex items-center justify-between",children:n.jsx("div",{className:"flex items-center gap-2",children:!!t&&(t.type===cbe.MANAGED&&(e===$ke.SMS?t.updatedFromDefault?.text_message_body:t.updatedFromDefault?.email_text_body||t.updatedFromDefault?.email_html_body))&&n.jsx(n.Fragment,{children:u?n.jsx(Tq,{}):n.jsx(i3,{variant:"outline",size:"sm",disabled:u,onClick:()=>s(!0),children:"Reset To Default"})})})}),n.jsx(pq,{open:o,onOpenChange:s,children:n.jsxs(yq,{className:"sm:max-w-[425px]",children:[n.jsxs(kq,{children:[n.jsx(Sq,{className:"text-xl font-semibold",children:"Reset To Default"}),n.jsxs(Aq,{className:"text-base text-muted-foreground",children:["Are you sure you want to reset this ",c.toLowerCase()," ","template to its default state? This action cannot be undone."]})]}),n.jsxs(bq,{className:"flex flex-row justify-end gap-3 mt-6",children:[n.jsx(i3,{variant:"outline",onClick:()=>s(!1),children:"Cancel"}),n.jsx(i3,{variant:"destructive",onClick:async()=>{t&&i?l({communicationGroupId:t.id,automationId:i.id,type:e===$ke.EMAIL?"email":"sms"},{onSuccess:()=>{r({title:TD("engage:success.communication_reset","Communication reset to default!")}),s(!1)},onSettled:()=>{s(!1)},onError:()=>{r({title:"Error updating",description:"No sender found",variant:"destructive"})}}):r({title:"Error updating",description:"No sender found",variant:"destructive"})},disabled:u,children:"Reset To Default"})]})]})})]})},rxe=({children:e})=>n.jsx("div",{className:"rounded-lg p-6 bg-background flex-1 min-h-0 flex items-center justify-center overflow-y-auto",children:e}),oxe=({emailBody:e})=>n.jsx(rxe,{children:n.jsx(abe,{html:e})}),sxe=({onOpenChange:e})=>n.jsx("div",{role:"button",tabIndex:0,"aria-label":"Close dialog",onClick:()=>e(!1),onKeyDown:a=>{"Enter"!==a.key&&" "!==a.key||e(!1)},className:"absolute top-3 right-3 z-20 rounded-full p-2 bg-white/80 shadow-lg border border-gray-200 hover:bg-primary/90 hover:text-white active:bg-primary/95 transition-all duration-200 focus:outline-none focus:ring-4 focus:ring-primary/30 focus:ring-offset-2 group cursor-pointer",style:{boxShadow:"0 4px 24px 0 rgba(0,0,0,0.10)"},children:n.jsx(l3.CloseButton,{className:"w-5 h-5 text-primary group-hover:text-primary-foreground group-active:text-primary-foreground transition-colors duration-200"})}),lxe=({expandDialogContent:e})=>{const[t,i]=a.useState(!1);return n.jsxs(n.Fragment,{children:[n.jsx(pq,{open:t,onOpenChange:i,children:n.jsxs(yq,{hideCloseButton:!0,className:"w-[80vw] h-[80vh] max-h-none bg-transparent border-none max-w-screen-lg ",children:[n.jsxs(mq,{children:[n.jsx(Sq,{children:"Expanded Preview"}),n.jsx(Aq,{children:"Expanded view of communication content"})]}),n.jsxs("div",{className:"h-full flex flex-col overflow-hidden rounded-xl",children:[n.jsx(sxe,{onOpenChange:i}),e]})]})}),n.jsx(i3,{size:"sm",variant:"outline",onClick:()=>i(!0),children:n.jsx(l3.ExpandIcon,{className:"w-3 h-3"})})]})},uxe="reach-styles-module__base___r-a1U",cxe=qL([uxe],{variants:{variant:{default:"reach-styles-module__default___vu2Rt",primary:"reach-styles-module__primary___mGKjo",success:"reach-styles-module__success___xn1Y1",warning:"reach-styles-module__warning___jdyU9",error:"reach-styles-module__error___Z-3IS"},size:{default:"reach-styles-module__sizeDefault___oS6W2",sm:"reach-styles-module__sizeSm___GI826",lg:"reach-styles-module__sizeLg___J--WF"},position:{default:"reach-styles-module__positionDefault___visr6",top:"reach-styles-module__positionTop___y6h-n",bottom:"reach-styles-module__positionBottom___vYLkd",inline:"reach-styles-module__positionInline___NjZsw"}},defaultVariants:{variant:"default",size:"default",position:"default"}}),dxe=({channelType:e,title:a,description:t,className:i})=>{const r=("email"===e?"Email":"SMS")+" Channel Disabled",o=`The ${e} channel is currently disabled. To send ${e} messages, please enable the channel on the left sidebar.`;return n.jsx("div",{className:"px-4 w-full",children:n.jsx("div",{className:"max-w-2xl mx-auto",children:n.jsx("div",{className:oz(cxe({variant:"warning",size:"default",position:"inline"}),uxe,"p-4 relative",i),role:"alert",children:n.jsxs("div",{className:"flex items-start",children:[n.jsx("div",{className:"mr-3 shrink-0 pt-0.5",children:n.jsx(oR,{className:"h-5 w-5"})}),n.jsxs("div",{className:"flex-grow",children:[n.jsx("h5",{className:"text-sm font-medium mb-1",children:a||r}),n.jsx("div",{className:"text-sm",children:t||o})]})]})})})})},mxe=({label:e,value:a,className:t})=>n.jsxs("div",{className:"flex items-center gap-1 min-w-0 max-w-full flex-shrink",children:[n.jsxs("span",{className:"sr-only",children:[e,":"]}),n.jsx("span",{className:oz("truncate",t),children:a})]}),hxe=({mergeFieldsResponse:e})=>{const t=Q2(),i=X2(),r=(()=>{const{channelSenders:e}=ate(),{channelAccounts:n}=Qne();return a.useMemo((()=>e?.results&&n?.results?e.results.filter((e=>e.channelSenderMetadata.userPart)).flatMap((e=>{const a=n.results.find((a=>a.id===e.channelAccountId));return!a?.channelAccountMetadata||a.channelAccountMetadata.type!==Xne.REACH_MANAGED&&a.channelAccountMetadata.type!==Xne.REACH_MANAGED_SES?[]:[{channelSenderId:e.id,fullDomain:`${e.channelSenderMetadata.userPart}@${e.channelSenderMetadata.baseDomain}`,channelSenderMetadata:e.channelSenderMetadata}]})):[]),[e?.results,n?.results])})(),{channelSenders:o}=ate(),{updateCommunicationGroup:s}=Qe(),[l,u]=a.useState(!1),{state:{replyToSettingsText:c,replyToSettingsLink:d,fromNameSettingsText:m,fromNameSettingsLink:h}}=a.useContext(wq),[p,g]=a.useState(!1),[f,v]=a.useState(i?.emailChannelSenderId||null),[y,k]=a.useState(i?.emailSubject||null),[b,S]=a.useState(i?.emailPreviewText||null),[A,w]=a.useState(""),[M,C]=a.useState(""),[T,x]=a.useState(!0),[N,E]=a.useState(!1),[_,P]=a.useState(null),[j,L]=a.useState(i?.emailSubject||null),B=Vke(y,500),R=Vke(b,500);if(a.useEffect((()=>{if(o?.results&&f){const e=o.results.find((e=>e.id===f));e&&(N&&!T||C(e.channelSenderMetadata.emailReplyTo),T&&w(e.channelSenderMetadata.emailFromName),x(!1))}}),[o?.results,f,N,T]),a.useEffect((()=>{i?.emailChannelSenderId&&!f&&v(i.emailChannelSenderId),i&&null!==i.emailSubject&&null===y&&(k(i.emailSubject),L(i.emailSubject)),i&&null!==i.emailPreviewText&&null===b&&S(i.emailPreviewText)}),[i,f,y,b]),a.useEffect((()=>{if(f&&B&&i?.id&&!T){g(!0);(async()=>{try{await s({groupId:i.id,params:{emailChannelSenderId:f,emailSubject:B,...R&&{emailPreviewText:R}}})}catch(e){}finally{g(!1)}})()}}),[f,B,R,i?.id,s,T]),!t||!i||!i.emailChannelSenderId)return null;const z=r.find((e=>e.channelSenderId===i.emailChannelSenderId)),D=A||z?.fullDomain,O=y,K=b;return n.jsx("div",{className:"w-full bg-background rounded-lg p-3",children:n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs("div",{className:"flex items-center gap-2 overflow-hidden flex-1",children:[D&&n.jsx(mxe,{label:"From",value:D,className:"font-bold"}),O&&n.jsx(mxe,{label:"Subject",value:n.jsx(gwe,{content:O,mergeFieldsResponse:e,variant:"minimal",className:"font-normal"}),className:"font-normal"}),K&&n.jsx(mxe,{label:"Preview",value:n.jsx(gwe,{content:K,mergeFieldsResponse:e,variant:"minimal",className:"text-muted-foreground/50 italic"}),className:"text-muted-foreground/50 italic"})]}),n.jsxs(Hne,{open:l,onOpenChange:e=>{u(e),""===y?.trim()&&j&&!1===e&&(k(j),P(null))},children:[n.jsx(Ine,{asChild:!0,children:n.jsxs(i3,{size:"sm",variant:"outline",disabled:t.status!==pa.DRAFT,children:[n.jsx(l3.EditIcon,{className:"w-3 h-3"}),"Edit"]})}),n.jsx(Gne,{className:"w-96",align:"end",children:n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{className:"space-y-2",children:[n.jsx(sve,{className:"text-sm font-medium text-foreground",children:"From Email"}),n.jsxs(zke,{onValueChange:e=>{v(e),x(!0),E(!1)},value:f??void 0,disabled:p,children:[n.jsx(Kke,{className:"bg-background hover:bg-accent/50 focus:bg-accent/50 data-[state=open]:bg-accent/50 transition-colors",children:n.jsx(Oke,{placeholder:"Select email",className:"text-muted-foreground",children:f?r?.find((e=>e.channelSenderId===f))?.fullDomain:""})}),n.jsx(Gke,{children:r?.map((e=>n.jsx(Fke,{value:e.channelSenderId,children:e.fullDomain},e.channelSenderId)))})]})]}),n.jsxs("div",{className:"space-y-2",children:[n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(sve,{className:"text-sm font-medium text-foreground",children:"From Name"}),n.jsx(cse,{title:m||"From name can be configured under settings in the home screen",link:h?{url:h}:void 0})]}),n.jsx("div",{className:"px-3 py-2 text-sm text-muted-foreground bg-muted/50 rounded-md",children:A||n.jsx("span",{className:"italic text-muted-foreground/70",children:"Not set"})})]}),n.jsxs("div",{className:"space-y-2",children:[n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(sve,{className:"text-sm font-medium text-foreground",children:"Reply-To"}),n.jsx(cse,{title:c||"Reply to email can be configured under settings in the home screen",link:d?{url:d}:void 0})]}),n.jsx("div",{className:"px-3 py-2 text-sm text-muted-foreground bg-muted/50 rounded-md",children:M||(f?r?.find((e=>e.channelSenderId===f))?.fullDomain:"")||n.jsx("span",{className:"italic text-muted-foreground/70",children:"Not set"})})]}),n.jsxs("div",{className:"space-y-2",children:[n.jsxs("div",{className:"flex items-center gap-1",children:[n.jsx(sve,{className:"text-sm font-medium text-foreground",children:"Subject"}),n.jsx("span",{className:"text-xs text-red-500 ml-0.5",children:"*"})]}),n.jsx($fe,{value:y,onChange:k,mergeFieldsResponse:e,placeholder:"Enter email subject",className:"bg-background hover:bg-accent/50 focus:bg-accent transition-colors placeholder:text-muted-foreground/50 "+(_?"border-red-300 focus:border-red-500":""),ariaLabel:"Insert merge field into subject"}),_&&n.jsx("p",{className:"text-xs text-red-500 animate-pulse",children:_})]}),n.jsxs("div",{className:"space-y-2",children:[n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(sve,{className:"text-sm font-medium text-foreground",children:"Preview Text"}),n.jsx(cse,{title:"This text will be used for the preview text of the email in the inbox"})]}),n.jsx($fe,{value:b,onChange:S,mergeFieldsResponse:e})]})]})})]})]})})},pxe=({type:e,disablePreviewSubtext:a=!1})=>{const t="sms"===e?"SMS":"Email";return n.jsx("div",{className:"flex flex-1 w-full h-full items-center justify-center",children:n.jsxs("div",{className:"flex flex-col items-center justify-center bg-zinc-50/80 border border-zinc-100 rounded-2xl shadow-md px-6 py-12 max-w-[90vw] w-full sm:max-w-md mx-auto text-center",style:{containerType:"inline-size"},children:[n.jsx("sms"===e?l3.SmsIcon:l3.EmailIcon,{className:"w-12 h-12 text-zinc-500 mb-4"}),n.jsxs("h2",{className:"text-xl font-semibold text-zinc-800 mb-2",children:["No ",t," Content Yet"]}),!a&&n.jsxs("p",{className:"text-zinc-500 text-base mb-1",children:["Click"," ",n.jsx("span",{className:"font-medium text-zinc-700",children:"Edit content"})," to start crafting your ",t," message."]})]})})},gxe=a.forwardRef((({onClick:e},a)=>n.jsxs(i3,{ref:a,variant:"outline",size:"sm",className:"rounded-lg px-3 py-2 flex items-center gap-2 shadow-sm bg-white/80 hover:bg-zinc-100 border border-zinc-200",onClick:e,children:[n.jsx(l3.PreviewButton,{className:"w-4 h-4"}),n.jsx("span",{className:"font-medium text-sm",children:"Test"})]})));gxe.displayName="PreviewButton";const fxe=e=>/^[^\s@.]+(?:\.[^\s@.]+)*@[^\s@.]+(?:\.[^\s@.]+)+$/.test(e),vxe=e=>{if(!/^[0-9\s()+.-]+$/.test(e))return!1;const a=e.replace(/\D/g,"");return e.startsWith("+")?a.length>=10&&a.length<=15:10===a.length||!(11!==a.length||!a.startsWith("1"))},yxe=e=>{const a=e.replace(/\D/g,"");if(10===a.length)return`(${a.slice(0,3)}) ${a.slice(3,6)}-${a.slice(6)}`;if(11===a.length&&a.startsWith("1"))return`+1 (${a.slice(1,4)}) ${a.slice(4,7)}-${a.slice(7)}`;if(a.length>0){const n=e.startsWith("+")?"+":"",t=a.slice((e.startsWith("+"),0));return`${n}${t.match(/.{1,4}/g)?.join("-")||t}`}return e},kxe=({automation:e,type:t,setOpenSendPreviewPopup:i,open:r})=>{const[o,s]=a.useState(""),[l,u]=a.useState(""),[c,d]=a.useState(null),[m,h]=a.useState(!1),[p,g]=a.useState(""),[f,v]=a.useState(!1),{sendTestCommunication:y,sendError:k,isSendSuccess:b}=ea(),{toast:S}=Je(),A=e.actionData?.find((e=>"send_communication"===e.actionType)),w=A?.actionMetadata.communicationGroupId,{communicationGroup:M,isGetting:C}=Ye(w??void 0),{data:T}=J2({includeSegments:e.includeSegmentIds,excludeSegments:e.excludeSegmentIds,automationId:e.id}),x=a.useRef(null),N=a.useMemo((()=>[...T?.recipients??[]].filter((e=>!(!e.firstName||!e.lastName)&&(!("email"===t&&!e.email)&&!("sms"===t&&!e.phone))))),[T?.recipients,t]),E=a.useCallback((()=>{if(!w)return Promise.resolve(null);if(!M)return Promise.reject(new Error("Communication group not loaded"));switch(t){case"email":return Promise.resolve(M.emailChannelSenderId);case"sms":return Promise.resolve(M.smsChannelSenderId);default:return Promise.reject(new Error(`Unsupported type: ${t}`))}}),[M,t,w]);a.useEffect((()=>{(async()=>{try{const e=await E();d(e)}catch(e){d(null)}finally{h(!0)}})()}),[E]),a.useEffect((()=>{b&&(S({title:"Success",description:`Preview ${"email"===t?"email":"SMS"} sent successfully!`}),i(!1))}),[b,t,i,S]),a.useEffect((()=>{k&&(S({title:"Error",description:`Failed to send preview: ${k.message}`,variant:"destructive"}),i(!1))}),[k,S,i]),a.useEffect((()=>{r&&(s(""),u(""),g(""),v(!1))}),[r]),a.useEffect((()=>{!r&&f&&setTimeout((()=>{document.body.style.pointerEvents=""}),0)}),[r,f]);const _="email"===t?"email address":"phone number",P="email"===t?"email":"text";if(!m||C||!T)return n.jsx("div",{className:"flex justify-center items-center h-full",children:n.jsx(Tq,{text:["Fetching sender data","Fetching recipients"]})});if(!c)return n.jsx("div",{className:"flex justify-center items-center h-full",children:n.jsxs("div",{className:"text-center flex flex-col justify-center items-center gap-2",children:[n.jsx(l3.AlertCircleIcon,{className:"h-12 w-12 text-gray-400 mb-4"}),n.jsx("h3",{className:"text-lg font-semibold text-gray-700 mb-2",children:"No sender found"}),n.jsx("p",{className:"text-gray-500",children:"Please update the automation to include a sender for this type"})]})});const j="email"===t&&(null===M?.emailSubject||null===M?.emailChannelSenderId);return n.jsxs("div",{className:"",ref:x,children:[n.jsxs("h3",{className:"text-xl font-semibold text-gray-900 mb-4",children:["Send Test ",P]}),n.jsx(L7,{type:"email"===t?"email":"tel",placeholder:`Enter ${_}`,value:o,onChange:e=>{s(e.target.value),u("")},className:"w-full px-3 py-3 border border-gray-300 rounded-lg text-base \n focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent\n placeholder-gray-400"}),n.jsxs("p",{className:"text-sm text-muted-foreground mt-1.5",children:["Enter a ",_," to preview this ",P,"."]}),n.jsx("div",{className:"my-4 border-t border-gray-200"}),n.jsxs("div",{className:"mb-4",children:[n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsxs(zke,{value:p,onValueChange:e=>{g(e)},onOpenChange:e=>{v(e),!e&&x.current&&x.current.focus()},children:[n.jsx(Kke,{className:"w-full bg-white border border-gray-300 rounded-lg text-base\n focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent",children:n.jsx(Oke,{children:p?T?.recipients.find((e=>e.id===p))?.firstName+" "+T?.recipients.find((e=>e.id===p))?.lastName:"Preview as"})}),n.jsx(Gke,{position:"popper",className:"z-[100]",children:n.jsx(Dke,{children:N.map((e=>n.jsx(Fke,{value:e.id,className:"cursor-pointer hover:bg-gray-50",children:n.jsxs("div",{className:"flex flex-col",children:[n.jsxs("span",{className:"font-medium",children:[e.firstName," ",e.lastName]}),n.jsxs("span",{className:"text-sm text-muted-foreground",children:[e.email&&`Email: ${e.email}`,e.email&&e.phone&&" • ",e.phone&&`Phone: ${e.phone}`]})]})},`${e.firstName}-${e.lastName}`)))})})]}),p&&n.jsxs(n.Fragment,{children:[n.jsx(i3,{variant:"ghost",size:"icon",onClick:()=>g(""),disabled:j,className:`h-10 w-10 rounded-lg hover:bg-gray-100 ${j&&"cursor-not-allowed"}`,title:"Clear selection",children:n.jsx(l3.CloseButton,{className:"h-4 w-4 text-gray-500"})}),j&&n.jsx("p",{className:"text-xs text-amber-600 mt-1",children:"Please select a sender and subject first"})]})]}),n.jsxs("p",{className:"text-sm text-muted-foreground mt-1.5",children:["Test using real customer data to preview how merge tags (like name) will appear. If left blank, you'll see raw placeholders (e.g."," ","{{First Name}}",")."]}),n.jsx("p",{className:"text-xs text-muted-foreground mt-1.5",children:"Note: Any merge fields that can only be calculated at send time will be empty"})]}),l&&n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"my-4 border-t border-gray-200"}),n.jsx("p",{className:"text-red-500 text-sm mb-4 -mt-2",children:l})]}),n.jsx(i3,{onClick:()=>{if(!("email"===t?fxe(o):vxe(o)))return void u(`Please enter a ${_}`);if(!c)return void u("No sender found, please update the automation first!");const a=e.actionData?.find((e=>"send_communication"===e.actionType)),n=a?.actionMetadata.communicationGroupId;if(!n)return Promise.resolve(null);y({id:n,params:"email"===t?{emailAddress:o,previewAsRecipientId:p}:{phoneNumber:o,previewAsRecipientId:p}})},disabled:!o,className:"w-full disabled:cursor-not-allowed",children:"Send Test"})]})},bxe=({open:e,onOpenChange:a,automation:t})=>n.jsx(pq,{open:e,onOpenChange:a,children:n.jsxs(yq,{children:[n.jsxs(mq,{children:[n.jsx(Sq,{children:"Send Preview Email"}),n.jsx(Aq,{children:"Send a preview email to the automation."})]}),n.jsx(kxe,{automation:t,type:"email",setOpenSendPreviewPopup:a,open:e})]})}),Sxe=({disablePreview:e=!1,disableEditContent:t=!1,disablePreviewSubtext:i=!1})=>{const r=Q2(),o=X2(),{channelSenders:s}=ate(),{channelAccounts:l}=Qne(),{data:u,isLoading:c}=qke(),{state:{selectedActionId:d}}=a.useContext(K2),[m,h]=a.useState(!1),[p,g]=a.useState(!1),[f,v]=a.useState(null),[y,k]=a.useState(!1),[b,S]=a.useState(!1),[A,w]=a.useState({width:0,height:0}),{getMergeFields:M}=Xe(o?.id??void 0);a.useEffect((()=>{null===f&&u&&p&&(u?.uiDefaults||v(!0),u?.uiDefaults?.emailHelpDialogShow&&!f&&v(!0))}),[u,f,p]),a.useEffect((()=>{const e=()=>{w({width:window.innerWidth,height:window.innerHeight})};return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[]);if(!r||!o||void 0===s||void 0===l||!d||c)return null;const C=o.emailCompiledHtml||o.emailHtmlBody||"",T=C.length&&C.length>0,x=pbe({channelSenders:s?.results??[],channelAccounts:l?.results??[]}),N=o.emailChannelSenderId?o.emailSubject?o.emailHtmlBody?null:"Please first ensure you have an email content":"Please first ensure you have an email subject":"Please first select an email sender",E=r.status===pa.DRAFT&&!t,_=!e&&T,P=!o.emailChannelSenderId||0===x.length,j=()=>{const e=n.jsxs(i3,{size:"sm",variant:"outline",disabled:!E,className:oz(!E&&"cursor-not-allowed"),onClick:()=>g(!0),children:[n.jsx(l3.EditIcon,{className:"w-3 h-3"}),"Edit"]});return E?e:n.jsx(cse,{alertText:"You can only edit the content if we are in the draft state.",asChild:!0,className:"cursor-not-allowed",children:n.jsx("div",{className:"inline-block cursor-not-allowed",children:e})})},L=()=>{const e=n.jsx(gxe,{onClick:()=>h(!0)});return N?n.jsx(cse,{alertText:"Unable to send preview",title:"There was an error preparing the preview. Please check your automation configuration.",className:"inline-block",asChild:!0,children:e}):e};return n.jsxs("div",{className:"flex-1 flex flex-col items-center pt-4",children:[n.jsx(pq,{open:null!==f&&f,onOpenChange:v,children:n.jsxs(yq,{className:"max-h-[86vh] gap-0 overflow-visible max-w-3xl w-full h-full",children:[n.jsxs(mq,{children:[n.jsx(Sq,{children:"Email Preview Help"}),n.jsx(Aq,{children:"Learn more about the email preview and how to use it to create your email."})]}),n.jsx(tbe,{})]})}),n.jsx(pq,{open:p,onOpenChange:g,children:n.jsxs(yq,{className:"min-w-[100vw] min-h-[100vh]",hideCloseButton:!0,onEscapeKeyDown:e=>{e.preventDefault()},children:[n.jsxs(mq,{children:[n.jsx(Sq,{children:"Email Editor"}),n.jsx(Aq,{children:"Edit your email content using the visual editor. Use the details section above to modify sender and subject settings."})]}),n.jsxs("div",{className:"w-full h-full",children:[n.jsxs("div",{className:"flex justify-between items-center p-1 border-b",children:[n.jsx("div",{className:"flex items-center gap-2",children:n.jsx(i3,{size:"sm",onClick:()=>v(!0),children:n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx("span",{className:"font-medium text-sm",children:"Help"}),n.jsx(l3.InfoIcon,{className:"w-4 h-4"})]})})}),n.jsx("div",{className:"flex items-center gap-2",children:n.jsx(Yfe,{})}),n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(i3,{variant:"destructive",onClick:()=>{S(!0)},className:"text-sm px-3 py-1 rounded",children:"Cancel"}),n.jsx(i3,{onClick:()=>k(!0),className:"text-sm px-3 py-1 rounded",children:"Save"})]})]}),r&&M&&n.jsx(lbe,{cancelClicked:b,setCancelClicked:S,showStripoEditor:p,automation:r,setShowStripoEditor:g,saveClicked:y,setSaveClicked:k,stripoDialogDimensions:A,mergeFieldsResponse:M,actionId:d})]})]})}),x.length>0&&n.jsx(bxe,{open:m,onOpenChange:h,automation:r}),P&&n.jsx(dxe,{channelType:"email"}),T?n.jsx("div",{className:"relative flex-1 w-full flex flex-col overflow-hidden",children:n.jsx("div",{className:"absolute inset-0 overflow-y-auto flex flex-col",children:n.jsxs("div",{className:"flex flex-col space-y-4 px-4 pb-20",children:[n.jsx("div",{className:"w-full flex-shrink-0 max-w-2xl mx-auto rounded-md",children:n.jsx(hxe,{mergeFieldsResponse:M})}),n.jsxs("div",{className:"rounded-lg bg-background flex-1 min-h-0 flex flex-col items-center max-w-2xl mx-auto w-full",children:[n.jsxs("div",{className:"flex items-center space-x-2 w-full justify-end p-3",children:[n.jsx(ixe,{type:$ke.EMAIL}),n.jsx(j,{}),_&&n.jsx(L,{}),T&&n.jsx(lxe,{expandDialogContent:n.jsx(oxe,{emailBody:C})})]}),n.jsx(abe,{html:C})]}),n.jsx("p",{className:"text-center text-sm text-muted-foreground flex-shrink-0 pt-4",children:"These previews show generally how your messages will appear to your customers"})]})})}):n.jsxs(n.Fragment,{children:[P&&n.jsx(dxe,{channelType:"email",className:"pt-4"}),n.jsx(pxe,{type:"email",disablePreviewSubtext:i})]})]})},Axe=({smsBody:e,imageUrls:a})=>n.jsx(rxe,{children:n.jsx(fwe,{body:e,imageUrls:a})}),wxe=({open:e,onOpenChange:a,automation:t})=>n.jsx(pq,{open:e,onOpenChange:a,children:n.jsxs(yq,{children:[n.jsxs(mq,{children:[n.jsx(Sq,{children:"Send Preview SMS"}),n.jsx(Aq,{children:"Send a preview SMS to the automation."})]}),n.jsx(kxe,{automation:t,type:"sms",setOpenSendPreviewPopup:a,open:e})]})}),Mxe=({label:e,value:a,className:t})=>n.jsxs("div",{className:"flex items-center gap-1 min-w-0 max-w-full flex-shrink",children:[n.jsxs("span",{className:"sr-only",children:[e,":"]}),n.jsx("span",{className:oz("truncate",t),children:a})]}),Cxe=a.memo(a.forwardRef(((e,a)=>n.jsxs(i3,{size:"sm",variant:"outline",ref:a,...e,children:[n.jsx(l3.EditIcon,{className:"w-3 h-3"}),"Edit"]})))),Txe=a.memo((({trigger:e,communicationGroupId:a,initialSenderId:t,companyName:i})=>n.jsx(UCe,{communicationGroupId:a,initialSenderId:t,companyName:i,trigger:e}))),xxe=()=>{const e=Q2(),t=X2(),{channelSenders:i}=ate(),{channelAccounts:r}=Qne(),{data:o}=rte(),s=t?.smsMessageBody||null,l=a.useMemo((()=>Kre({channelSenders:i?.results??[],channelAccounts:r?.results??[],smsApplication:o})),[i?.results,r?.results,o]),u=l?.find((e=>e.channelSender.id===t?.smsChannelSenderId)),c=u?.channelSender.channelSenderMetadata.from&&null!==u.channelSender.channelSenderMetadata.from?u.channelSender.channelSenderMetadata.from:null,d=u?.channelSender.channelSenderMetadata.friendlyName??(c&&null!==c?yxe(c??""):u?.channelSender.channelSenderMetadata.messageServiceSid);if(!(e&&t&&i&&r&&l&&(void 0!==o||u)))return null;const m=s?s.length>50?s.substring(0,50)+"...":s:null;return n.jsx("div",{className:"w-full bg-background rounded-lg p-3",children:n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs("div",{className:"flex items-center gap-2 overflow-hidden flex-1",children:[d&&n.jsx(Mxe,{label:"From",value:d,className:"font-bold"}),t?.textMessageCompanyName&&n.jsx(Mxe,{label:"Company",value:t.textMessageCompanyName,className:"font-normal"}),m&&n.jsx(Mxe,{label:"Message",value:m,className:"text-muted-foreground/50 italic"})]}),n.jsx(Txe,{trigger:n.jsx(Cxe,{}),communicationGroupId:t.id,initialSenderId:t.smsChannelSenderId,companyName:t.textMessageCompanyName})]})})},Nxe=({disablePreview:e=!1,disableEditContent:t=!1})=>{const[i,r]=a.useState(!1),{channelSenders:o}=ate(),{data:l}=ye({queryKey:["business"],queryFn:async()=>(await Be(s)).data,staleTime:1/0,gcTime:1/0,refetchOnMount:!1,refetchOnWindowFocus:!1,refetchOnReconnect:!1}),{channelAccounts:u}=Qne(),c=Q2(),d=X2(),[m,h]=a.useState(!1),{data:p}=rte(),g=a.useRef(!1),{updateCommunicationGroup:f,isUpdating:v}=Qe(),y=Kre({channelSenders:o?.results??[],channelAccounts:u?.results??[],smsApplication:p}),k=y.find((e=>e.channelSender.id===d?.smsChannelSenderId)),b=a.useMemo((()=>d?.textMessageMediaUrls??[]),[d?.textMessageMediaUrls]),S=d?.smsMessageBody||"",A=y.length>0;if(a.useEffect((()=>{if(!g.current&&!0===A&&d?.id&&void 0!==l&&void 0!==d&&!1===v){let e={};void 0===d?.textMessageCompanyName&&l?.name&&(e.textMessageCompanyName=l.name),0===S.length&&(e.smsMessageBody="Hello 👋!"),void 0===d?.smsChannelSenderId&&y[0]?.channelSender?.id&&(e.smsChannelSenderId=y[0].channelSender.id),Object.keys(e).length>0?(g.current=!0,f({groupId:d.id,params:e})):g.current=!0}}),[d?.id,d?.textMessageCompanyName,d?.smsMessageBody,A,S,f,l,d?.smsChannelSenderId,y,d,v]),!c||void 0===o)return null;const w=!k?.smsApplication||k.smsApplication.status===Ore.APPROVED,M=dwe({companyName:d?.textMessageCompanyName??void 0,smsBody:S});let C=null;d?.smsChannelSenderId||(C="Please first select a sms sender"),d?.smsMessageBody||(C="Please first ensure you have a sms content");const T=c.status===pa.DRAFT&&!t,x=!e&&w,N=!d?.smsChannelSenderId||0===y.length,E=()=>{const e=n.jsxs(i3,{size:"sm",variant:"outline",disabled:!T,className:oz(!T&&"cursor-not-allowed"),onClick:()=>{h(!0)},children:[n.jsx(l3.EditIcon,{className:"w-3 h-3"}),"Edit"]});return T?e:n.jsx(cse,{alertText:"You can only edit the content if we are in the draft state.",asChild:!0,className:"cursor-not-allowed",children:n.jsx("div",{className:"inline-block cursor-not-allowed",children:e})})},_=()=>{const e=n.jsx(gxe,{onClick:()=>r(!0)});return C?n.jsx(cse,{alertText:"Unable to send preview",title:"There was an error preparing the preview. Please check your automation configuration.",className:"inline-block",asChild:!0,children:e}):e};return n.jsx("div",{className:"h-full",children:!1===A?n.jsx("div",{className:"w-full pt-8 mx-auto",children:n.jsx(cwe,{})}):n.jsxs(M2.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},transition:{duration:.3,ease:[.16,1,.3,1]},className:"flex-1 flex flex-col items-center h-full",children:[n.jsx(wxe,{open:i,onOpenChange:r,automation:c}),n.jsx(pq,{open:m,onOpenChange:h,children:n.jsxs(yq,{hideCloseButton:!0,className:"max-w-[90vw] @container",children:[n.jsxs(mq,{children:[n.jsx(Sq,{children:"SMS Editor"}),n.jsx(Aq,{children:"Learn more about the SMS editor and how to use it to create your SMS."})]}),n.jsx(qCe,{communicationGroupId:d?.id||"",initialMessage:S,initialImageUrls:b,companyName:d?.textMessageCompanyName,initialSenderId:d?.smsChannelSenderId}),n.jsx("div",{className:"flex justify-end mt-6",children:n.jsx(i3,{variant:"outline",onClick:()=>h(!1),disabled:v,className:"px-4",children:"Close"})})]})}),N&&n.jsx(dxe,{channelType:"sms"}),A?n.jsx("div",{className:"relative flex-1 w-full flex flex-col overflow-hidden h-full",children:n.jsx("div",{className:"absolute inset-0 overflow-y-auto flex flex-col",children:n.jsxs("div",{className:"flex flex-col space-y-4 px-4 pt-4 pb-20",children:[n.jsx("div",{className:"w-full flex-shrink-0 max-w-2xl mx-auto rounded-md",children:n.jsx(xxe,{})}),n.jsxs("div",{className:"rounded-lg bg-background flex-1 min-h-0 flex flex-col items-center max-w-2xl mx-auto w-full",children:[n.jsxs("div",{className:"flex items-center space-x-2 w-full justify-end p-3",children:[n.jsx(ixe,{type:$ke.SMS}),n.jsx(E,{}),x&&n.jsx(_,{}),A&&n.jsx(lxe,{expandDialogContent:n.jsx(Axe,{smsBody:M,imageUrls:b})})]}),n.jsx(fwe,{body:M,imageUrls:b})]}),n.jsx("p",{className:"text-center text-sm text-muted-foreground flex-shrink-0 pt-4",children:"These previews show generally how your messages will appear to your customers"})]})})}):n.jsxs(n.Fragment,{children:[N&&n.jsx(dxe,{channelType:"sms",className:"pt-4"}),n.jsx(pxe,{type:$ke.SMS})]})]})})},Exe=({disablePreview:e=!1,disableEditContent:t=!1,disablePreviewSubtext:i=!1})=>{const[r,o]=a.useState(null),s=X2(),{channelAccounts:l}=Qne(),{state:{hideSms:u}}=a.useContext(wq),{channelSenders:c}=ate(),{data:d}=rte(),m=a.useMemo((()=>Kre({channelSenders:c?.results??[],channelAccounts:l?.results??[],smsApplication:d})),[c?.results,l?.results,d]);if(a.useEffect((()=>{r||o(s?.emailChannelSenderId?"email":"sms")}),[s?.emailChannelSenderId,r]),!s||!c||!r)return n.jsx("div",{className:"flex flex-col gap-4 pt-4 flex-1 bg-muted rounded-md",children:n.jsx(Tq,{text:["Loading..."]})});const h=!s?.smsChannelSenderId||u,p=!s?.emailChannelSenderId,g=0===m.length&&!d;return n.jsxs(exe,{defaultValue:"email",value:r,onValueChange:e=>o("email"===e?"email":"sms"),className:"flex flex-col gap-4 flex-1 bg-muted rounded-md",children:[n.jsx("div",{className:"max-w-[640px] mx-auto w-full",children:n.jsxs(axe,{className:"grid w-full "+(h||p?"grid-cols-1":"grid-cols-2"),children:[!p&&n.jsx(nxe,{value:"email",className:"group data-[state=active]:bg-white",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx(l3.EmailIcon,{className:"w-4 h-4 mr-2 hidden group-data-[state=active]:block text-primary"}),n.jsx(l3.EmailIcon,{className:"w-4 h-4 mr-2 block group-data-[state=active]:hidden text-gray-400"}),n.jsx("span",{children:"Email"})]})}),!h&&n.jsx(nxe,{value:"sms",className:"group data-[state=active]:bg-white",children:n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(l3.SmsIcon,{className:"w-4 h-4 mr-2 hidden group-data-[state=active]:block text-primary"}),n.jsx(l3.SmsIcon,{className:"w-4 h-4 mr-2 block group-data-[state=active]:hidden text-gray-400"}),n.jsx("span",{children:"SMS"}),g&&n.jsx(cse,{title:"To enable SMS, please complete your business information and request approval from Twilio"})]})})]})}),n.jsx(txe,{value:"email",children:n.jsx(Sxe,{disablePreview:e,disableEditContent:t,disablePreviewSubtext:i})}),n.jsx(txe,{value:"sms",children:n.jsx(Nxe,{disablePreview:e,disableEditContent:t})})]})},_xe="reach-styles-module__h2___J-48W",Pxe="reach-styles-module__h3___QiFj-",jxe="reach-styles-module__minorText___1TEN6",Lxe=({children:e,className:a})=>n.jsx("h2",{className:oz(_xe,a),children:e}),Bxe=({children:e,className:a})=>n.jsx("h3",{className:oz(Pxe,a),children:e}),Rxe=({children:e,className:a})=>n.jsx("p",{className:oz(jxe,a),children:e}),zxe=({title:e,children:a,headerActions:t})=>n.jsxs("div",{className:"max-w-[1000px] mx-auto w-full flex-1 flex flex-col gap-4 pt-4",children:[n.jsxs("div",{className:"px-4 flex",children:[n.jsx(Lxe,{className:"text-primary",children:e}),t&&n.jsx("div",{className:"ml-auto",children:t})]}),a]}),Dxe=()=>n.jsx(zxe,{title:"Preview & Schedule",children:n.jsx(Exe,{disablePreview:!0,disableEditContent:!0,disablePreviewSubtext:!0})}),Oxe=()=>{const e=Q2(),t=X2(),{channelSenders:i}=ate(),{channelAccounts:r}=Qne(),{data:o}=rte(),[s,l]=a.useState(null),[u,c]=a.useState(null),[d,m]=a.useState(null),[h,p]=a.useState(null);return a.useEffect((()=>{i&&m(i),r&&p(r)}),[i,r]),a.useEffect((()=>{if(t&&d&&h){const e=t.emailChannelSenderId,a=t.smsChannelSenderId,n=d.results.find((a=>a.id===e)),i=d.results.find((e=>e.id===a));if(n&&t.emailSubject&&t.emailHtmlBody){const e=n.channelSenderMetadata?.userPart,a=h.results.find((e=>e.id===n.channelAccountId));if(a)switch(a.channelAccountMetadata.type){case Xne.REACH_MANAGED:l({fromEmail:`${e}@${a.channelAccountMetadata.baseDomain}.embedreach.com`,fromName:n.channelSenderMetadata?.emailFromName,subject:t.emailSubject,previewText:t.emailPreviewText,body:t.emailHtmlBody});break;case Xne.REACH_MANAGED_SES:l({fromEmail:`${e}@${a.channelAccountMetadata.baseDomain}.embedreach.com`,fromName:n.channelSenderMetadata?.emailFromName,subject:t.emailSubject,previewText:t.emailPreviewText,body:t.emailHtmlBody});break;case Xne.TWILLIO:break;default:throw Fne(a.channelAccountMetadata.type,Xne)}}(o||i)&&t.smsMessageBody&&c({fromPhone:i?$Ce(i.channelSenderMetadata):"",body:t.smsMessageBody,companyName:t.textMessageCompanyName})}}),[t,d,h,o]),e?n.jsx("div",s||u?{className:"w-full",children:n.jsx("div",{className:"flex flex-col gap-4 w-full",children:n.jsx(Dxe,{})})}:{className:"flex justify-center items-center h-full",children:n.jsx("div",{children:"No preview data Please complete previous steps"})}):n.jsx(Tq,{text:["Loading..."]})};function Kxe(e){return(Kxe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Hxe(e){if(null===e||!0===e||!1===e)return NaN;var a=Number(e);return isNaN(a)?a:a<0?Math.ceil(a):Math.floor(a)}function Ixe(e,a){if(a.length<e)throw new TypeError(e+" argument"+(e>1?"s":"")+" required, but only "+a.length+" present")}function Gxe(e){Ixe(1,arguments);var a=Object.prototype.toString.call(e);return e instanceof Date||"object"===Kxe(e)&&"[object Date]"===a?new Date(e.getTime()):"number"==typeof e||"[object Number]"===a?new Date(e):new Date(NaN)}function Fxe(e,a){Ixe(2,arguments);var n=Gxe(e),t=Hxe(a);return isNaN(t)?new Date(NaN):t?(n.setDate(n.getDate()+t),n):n}function Vxe(e,a){Ixe(2,arguments);var n=Gxe(e),t=Hxe(a);if(isNaN(t))return new Date(NaN);if(!t)return n;var i=n.getDate(),r=new Date(n.getTime());return r.setMonth(n.getMonth()+t+1,0),i>=r.getDate()?r:(n.setFullYear(r.getFullYear(),r.getMonth(),i),n)}var Jxe={};function Uxe(){return Jxe}function Wxe(e,a){var n,t,i,r,o,s,l,u;Ixe(1,arguments);var c=Uxe(),d=Hxe(null!==(n=null!==(t=null!==(i=null!==(r=null==a?void 0:a.weekStartsOn)&&void 0!==r?r:null==a||null===(o=a.locale)||void 0===o||null===(s=o.options)||void 0===s?void 0:s.weekStartsOn)&&void 0!==i?i:c.weekStartsOn)&&void 0!==t?t:null===(l=c.locale)||void 0===l||null===(u=l.options)||void 0===u?void 0:u.weekStartsOn)&&void 0!==n?n:0);if(!(d>=0&&d<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var m=Gxe(e),h=m.getDay(),p=(h<d?7:0)+h-d;return m.setDate(m.getDate()-p),m.setHours(0,0,0,0),m}function qxe(e){return Ixe(1,arguments),Wxe(e,{weekStartsOn:1})}function Zxe(e){Ixe(1,arguments);var a=function(e){Ixe(1,arguments);var a=Gxe(e),n=a.getFullYear(),t=new Date(0);t.setFullYear(n+1,0,4),t.setHours(0,0,0,0);var i=qxe(t),r=new Date(0);r.setFullYear(n,0,4),r.setHours(0,0,0,0);var o=qxe(r);return a.getTime()>=i.getTime()?n+1:a.getTime()>=o.getTime()?n:n-1}(e),n=new Date(0);return n.setFullYear(a,0,4),n.setHours(0,0,0,0),qxe(n)}function $xe(e){var a=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return a.setUTCFullYear(e.getFullYear()),e.getTime()-a.getTime()}function Yxe(e){Ixe(1,arguments);var a=Gxe(e);return a.setHours(0,0,0,0),a}function Qxe(e,a){Ixe(2,arguments);var n=Yxe(e),t=Yxe(a),i=n.getTime()-$xe(n),r=t.getTime()-$xe(t);return Math.round((i-r)/864e5)}function Xxe(e,a){return Ixe(2,arguments),Fxe(e,7*Hxe(a))}function eNe(e,a){return Ixe(2,arguments),Vxe(e,12*Hxe(a))}function aNe(e,a){Ixe(2,arguments);var n=Yxe(e),t=Yxe(a);return n.getTime()===t.getTime()}function nNe(e){return Ixe(1,arguments),e instanceof Date||"object"===Kxe(e)&&"[object Date]"===Object.prototype.toString.call(e)}function tNe(e,a){Ixe(2,arguments);var n=Gxe(e),t=Gxe(a);return 12*(n.getFullYear()-t.getFullYear())+(n.getMonth()-t.getMonth())}function iNe(e){Ixe(1,arguments);var a=Gxe(e),n=a.getMonth();return a.setFullYear(a.getFullYear(),n+1,0),a.setHours(23,59,59,999),a}function rNe(e){Ixe(1,arguments);var a=Gxe(e);return a.setDate(1),a.setHours(0,0,0,0),a}function oNe(e){Ixe(1,arguments);var a=Gxe(e),n=new Date(0);return n.setFullYear(a.getFullYear(),0,1),n.setHours(0,0,0,0),n}function sNe(e,a){var n,t,i,r,o,s,l,u;Ixe(1,arguments);var c=Uxe(),d=Hxe(null!==(n=null!==(t=null!==(i=null!==(r=null==a?void 0:a.weekStartsOn)&&void 0!==r?r:null==a||null===(o=a.locale)||void 0===o||null===(s=o.options)||void 0===s?void 0:s.weekStartsOn)&&void 0!==i?i:c.weekStartsOn)&&void 0!==t?t:null===(l=c.locale)||void 0===l||null===(u=l.options)||void 0===u?void 0:u.weekStartsOn)&&void 0!==n?n:0);if(!(d>=0&&d<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var m=Gxe(e),h=m.getDay(),p=6+(h<d?-7:0)-(h-d);return m.setDate(m.getDate()+p),m.setHours(23,59,59,999),m}function lNe(e){return Ixe(1,arguments),sNe(e,{weekStartsOn:1})}function uNe(e,a){return Ixe(2,arguments),function(e,a){Ixe(2,arguments);var n=Gxe(e).getTime(),t=Hxe(a);return new Date(n+t)}(e,-Hxe(a))}function cNe(e){Ixe(1,arguments);var a=Gxe(e),n=a.getUTCDay(),t=(n<1?7:0)+n-1;return a.setUTCDate(a.getUTCDate()-t),a.setUTCHours(0,0,0,0),a}function dNe(e){Ixe(1,arguments);var a=Gxe(e),n=a.getUTCFullYear(),t=new Date(0);t.setUTCFullYear(n+1,0,4),t.setUTCHours(0,0,0,0);var i=cNe(t),r=new Date(0);r.setUTCFullYear(n,0,4),r.setUTCHours(0,0,0,0);var o=cNe(r);return a.getTime()>=i.getTime()?n+1:a.getTime()>=o.getTime()?n:n-1}function mNe(e){Ixe(1,arguments);var a=Gxe(e),n=cNe(a).getTime()-function(e){Ixe(1,arguments);var a=dNe(e),n=new Date(0);return n.setUTCFullYear(a,0,4),n.setUTCHours(0,0,0,0),cNe(n)}(a).getTime();return Math.round(n/6048e5)+1}function hNe(e,a){var n,t,i,r,o,s,l,u;Ixe(1,arguments);var c=Uxe(),d=Hxe(null!==(n=null!==(t=null!==(i=null!==(r=null==a?void 0:a.weekStartsOn)&&void 0!==r?r:null==a||null===(o=a.locale)||void 0===o||null===(s=o.options)||void 0===s?void 0:s.weekStartsOn)&&void 0!==i?i:c.weekStartsOn)&&void 0!==t?t:null===(l=c.locale)||void 0===l||null===(u=l.options)||void 0===u?void 0:u.weekStartsOn)&&void 0!==n?n:0);if(!(d>=0&&d<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var m=Gxe(e),h=m.getUTCDay(),p=(h<d?7:0)+h-d;return m.setUTCDate(m.getUTCDate()-p),m.setUTCHours(0,0,0,0),m}function pNe(e,a){var n,t,i,r,o,s,l,u;Ixe(1,arguments);var c=Gxe(e),d=c.getUTCFullYear(),m=Uxe(),h=Hxe(null!==(n=null!==(t=null!==(i=null!==(r=null==a?void 0:a.firstWeekContainsDate)&&void 0!==r?r:null==a||null===(o=a.locale)||void 0===o||null===(s=o.options)||void 0===s?void 0:s.firstWeekContainsDate)&&void 0!==i?i:m.firstWeekContainsDate)&&void 0!==t?t:null===(l=m.locale)||void 0===l||null===(u=l.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==n?n:1);if(!(h>=1&&h<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var p=new Date(0);p.setUTCFullYear(d+1,0,h),p.setUTCHours(0,0,0,0);var g=hNe(p,a),f=new Date(0);f.setUTCFullYear(d,0,h),f.setUTCHours(0,0,0,0);var v=hNe(f,a);return c.getTime()>=g.getTime()?d+1:c.getTime()>=v.getTime()?d:d-1}function gNe(e,a){Ixe(1,arguments);var n=Gxe(e),t=hNe(n,a).getTime()-function(e,a){var n,t,i,r,o,s,l,u;Ixe(1,arguments);var c=Uxe(),d=Hxe(null!==(n=null!==(t=null!==(i=null!==(r=null==a?void 0:a.firstWeekContainsDate)&&void 0!==r?r:null==a||null===(o=a.locale)||void 0===o||null===(s=o.options)||void 0===s?void 0:s.firstWeekContainsDate)&&void 0!==i?i:c.firstWeekContainsDate)&&void 0!==t?t:null===(l=c.locale)||void 0===l||null===(u=l.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==n?n:1),m=pNe(e,a),h=new Date(0);return h.setUTCFullYear(m,0,d),h.setUTCHours(0,0,0,0),hNe(h,a)}(n,a).getTime();return Math.round(t/6048e5)+1}function fNe(e,a){for(var n=e<0?"-":"",t=Math.abs(e).toString();t.length<a;)t="0"+t;return n+t}var vNe=function(e,a){var n=e.getUTCFullYear(),t=n>0?n:1-n;return fNe("yy"===a?t%100:t,a.length)},yNe=function(e,a){var n=e.getUTCMonth();return"M"===a?String(n+1):fNe(n+1,2)},kNe=function(e,a){return fNe(e.getUTCDate(),a.length)},bNe=function(e,a){return fNe(e.getUTCHours()%12||12,a.length)},SNe=function(e,a){return fNe(e.getUTCHours(),a.length)},ANe=function(e,a){return fNe(e.getUTCMinutes(),a.length)},wNe=function(e,a){return fNe(e.getUTCSeconds(),a.length)},MNe=function(e,a){var n=a.length,t=e.getUTCMilliseconds();return fNe(Math.floor(t*Math.pow(10,n-3)),a.length)},CNe="midnight",TNe="noon",xNe="morning",NNe="afternoon",ENe="evening",_Ne="night",PNe={G:function(e,a,n){var t=e.getUTCFullYear()>0?1:0;switch(a){case"G":case"GG":case"GGG":return n.era(t,{width:"abbreviated"});case"GGGGG":return n.era(t,{width:"narrow"});default:return n.era(t,{width:"wide"})}},y:function(e,a,n){if("yo"===a){var t=e.getUTCFullYear();return n.ordinalNumber(t>0?t:1-t,{unit:"year"})}return vNe(e,a)},Y:function(e,a,n,t){var i=pNe(e,t),r=i>0?i:1-i;return"YY"===a?fNe(r%100,2):"Yo"===a?n.ordinalNumber(r,{unit:"year"}):fNe(r,a.length)},R:function(e,a){return fNe(dNe(e),a.length)},u:function(e,a){return fNe(e.getUTCFullYear(),a.length)},Q:function(e,a,n){var t=Math.ceil((e.getUTCMonth()+1)/3);switch(a){case"Q":return String(t);case"QQ":return fNe(t,2);case"Qo":return n.ordinalNumber(t,{unit:"quarter"});case"QQQ":return n.quarter(t,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(t,{width:"narrow",context:"formatting"});default:return n.quarter(t,{width:"wide",context:"formatting"})}},q:function(e,a,n){var t=Math.ceil((e.getUTCMonth()+1)/3);switch(a){case"q":return String(t);case"qq":return fNe(t,2);case"qo":return n.ordinalNumber(t,{unit:"quarter"});case"qqq":return n.quarter(t,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(t,{width:"narrow",context:"standalone"});default:return n.quarter(t,{width:"wide",context:"standalone"})}},M:function(e,a,n){var t=e.getUTCMonth();switch(a){case"M":case"MM":return yNe(e,a);case"Mo":return n.ordinalNumber(t+1,{unit:"month"});case"MMM":return n.month(t,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(t,{width:"narrow",context:"formatting"});default:return n.month(t,{width:"wide",context:"formatting"})}},L:function(e,a,n){var t=e.getUTCMonth();switch(a){case"L":return String(t+1);case"LL":return fNe(t+1,2);case"Lo":return n.ordinalNumber(t+1,{unit:"month"});case"LLL":return n.month(t,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(t,{width:"narrow",context:"standalone"});default:return n.month(t,{width:"wide",context:"standalone"})}},w:function(e,a,n,t){var i=gNe(e,t);return"wo"===a?n.ordinalNumber(i,{unit:"week"}):fNe(i,a.length)},I:function(e,a,n){var t=mNe(e);return"Io"===a?n.ordinalNumber(t,{unit:"week"}):fNe(t,a.length)},d:function(e,a,n){return"do"===a?n.ordinalNumber(e.getUTCDate(),{unit:"date"}):kNe(e,a)},D:function(e,a,n){var t=function(e){Ixe(1,arguments);var a=Gxe(e),n=a.getTime();a.setUTCMonth(0,1),a.setUTCHours(0,0,0,0);var t=a.getTime();return Math.floor((n-t)/864e5)+1}(e);return"Do"===a?n.ordinalNumber(t,{unit:"dayOfYear"}):fNe(t,a.length)},E:function(e,a,n){var t=e.getUTCDay();switch(a){case"E":case"EE":case"EEE":return n.day(t,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(t,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(t,{width:"short",context:"formatting"});default:return n.day(t,{width:"wide",context:"formatting"})}},e:function(e,a,n,t){var i=e.getUTCDay(),r=(i-t.weekStartsOn+8)%7||7;switch(a){case"e":return String(r);case"ee":return fNe(r,2);case"eo":return n.ordinalNumber(r,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(e,a,n,t){var i=e.getUTCDay(),r=(i-t.weekStartsOn+8)%7||7;switch(a){case"c":return String(r);case"cc":return fNe(r,a.length);case"co":return n.ordinalNumber(r,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(e,a,n){var t=e.getUTCDay(),i=0===t?7:t;switch(a){case"i":return String(i);case"ii":return fNe(i,a.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(t,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(t,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(t,{width:"short",context:"formatting"});default:return n.day(t,{width:"wide",context:"formatting"})}},a:function(e,a,n){var t=e.getUTCHours()/12>=1?"pm":"am";switch(a){case"a":case"aa":return n.dayPeriod(t,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(t,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(t,{width:"narrow",context:"formatting"});default:return n.dayPeriod(t,{width:"wide",context:"formatting"})}},b:function(e,a,n){var t,i=e.getUTCHours();switch(t=12===i?TNe:0===i?CNe:i/12>=1?"pm":"am",a){case"b":case"bb":return n.dayPeriod(t,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(t,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(t,{width:"narrow",context:"formatting"});default:return n.dayPeriod(t,{width:"wide",context:"formatting"})}},B:function(e,a,n){var t,i=e.getUTCHours();switch(t=i>=17?ENe:i>=12?NNe:i>=4?xNe:_Ne,a){case"B":case"BB":case"BBB":return n.dayPeriod(t,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(t,{width:"narrow",context:"formatting"});default:return n.dayPeriod(t,{width:"wide",context:"formatting"})}},h:function(e,a,n){if("ho"===a){var t=e.getUTCHours()%12;return 0===t&&(t=12),n.ordinalNumber(t,{unit:"hour"})}return bNe(e,a)},H:function(e,a,n){return"Ho"===a?n.ordinalNumber(e.getUTCHours(),{unit:"hour"}):SNe(e,a)},K:function(e,a,n){var t=e.getUTCHours()%12;return"Ko"===a?n.ordinalNumber(t,{unit:"hour"}):fNe(t,a.length)},k:function(e,a,n){var t=e.getUTCHours();return 0===t&&(t=24),"ko"===a?n.ordinalNumber(t,{unit:"hour"}):fNe(t,a.length)},m:function(e,a,n){return"mo"===a?n.ordinalNumber(e.getUTCMinutes(),{unit:"minute"}):ANe(e,a)},s:function(e,a,n){return"so"===a?n.ordinalNumber(e.getUTCSeconds(),{unit:"second"}):wNe(e,a)},S:function(e,a){return MNe(e,a)},X:function(e,a,n,t){var i=(t._originalDate||e).getTimezoneOffset();if(0===i)return"Z";switch(a){case"X":return LNe(i);case"XXXX":case"XX":return BNe(i);default:return BNe(i,":")}},x:function(e,a,n,t){var i=(t._originalDate||e).getTimezoneOffset();switch(a){case"x":return LNe(i);case"xxxx":case"xx":return BNe(i);default:return BNe(i,":")}},O:function(e,a,n,t){var i=(t._originalDate||e).getTimezoneOffset();switch(a){case"O":case"OO":case"OOO":return"GMT"+jNe(i,":");default:return"GMT"+BNe(i,":")}},z:function(e,a,n,t){var i=(t._originalDate||e).getTimezoneOffset();switch(a){case"z":case"zz":case"zzz":return"GMT"+jNe(i,":");default:return"GMT"+BNe(i,":")}},t:function(e,a,n,t){return fNe(Math.floor((t._originalDate||e).getTime()/1e3),a.length)},T:function(e,a,n,t){return fNe((t._originalDate||e).getTime(),a.length)}};function jNe(e,a){var n=e>0?"-":"+",t=Math.abs(e),i=Math.floor(t/60),r=t%60;if(0===r)return n+String(i);var o=a;return n+String(i)+o+fNe(r,2)}function LNe(e,a){return e%60==0?(e>0?"-":"+")+fNe(Math.abs(e)/60,2):BNe(e,a)}function BNe(e,a){var n=a||"",t=e>0?"-":"+",i=Math.abs(e);return t+fNe(Math.floor(i/60),2)+n+fNe(i%60,2)}var RNe=function(e,a){switch(e){case"P":return a.date({width:"short"});case"PP":return a.date({width:"medium"});case"PPP":return a.date({width:"long"});default:return a.date({width:"full"})}},zNe=function(e,a){switch(e){case"p":return a.time({width:"short"});case"pp":return a.time({width:"medium"});case"ppp":return a.time({width:"long"});default:return a.time({width:"full"})}},DNe={p:zNe,P:function(e,a){var n,t=e.match(/(P+)(p+)?/)||[],i=t[1],r=t[2];if(!r)return RNe(e,a);switch(i){case"P":n=a.dateTime({width:"short"});break;case"PP":n=a.dateTime({width:"medium"});break;case"PPP":n=a.dateTime({width:"long"});break;default:n=a.dateTime({width:"full"})}return n.replace("{{date}}",RNe(i,a)).replace("{{time}}",zNe(r,a))}},ONe=["D","DD"],KNe=["YY","YYYY"];function HNe(e,a,n){if("YYYY"===e)throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(a,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("YY"===e)throw new RangeError("Use `yy` instead of `YY` (in `".concat(a,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("D"===e)throw new RangeError("Use `d` instead of `D` (in `".concat(a,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("DD"===e)throw new RangeError("Use `dd` instead of `DD` (in `".concat(a,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}var INe={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function GNe(e){return function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=a.width?String(a.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}var FNe={date:GNe({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:GNe({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:GNe({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},VNe={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function JNe(e){return function(a,n){var t;if("formatting"===(null!=n&&n.context?String(n.context):"standalone")&&e.formattingValues){var i=e.defaultFormattingWidth||e.defaultWidth,r=null!=n&&n.width?String(n.width):i;t=e.formattingValues[r]||e.formattingValues[i]}else{var o=e.defaultWidth,s=null!=n&&n.width?String(n.width):e.defaultWidth;t=e.values[s]||e.values[o]}return t[e.argumentCallback?e.argumentCallback(a):a]}}var UNe={ordinalNumber:function(e,a){var n=Number(e),t=n%100;if(t>20||t<10)switch(t%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:JNe({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:JNe({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:JNe({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:JNe({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:JNe({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})};function WNe(e){return function(a){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=n.width,i=a.match(t&&e.matchPatterns[t]||e.matchPatterns[e.defaultMatchWidth]);if(!i)return null;var r,o=i[0],s=t&&e.parsePatterns[t]||e.parsePatterns[e.defaultParseWidth],l=Array.isArray(s)?function(e,a){for(var n=0;n<e.length;n++)if(a(e[n]))return n;return}(s,(function(e){return e.test(o)})):function(e,a){for(var n in e)if(e.hasOwnProperty(n)&&a(e[n]))return n;return}(s,(function(e){return e.test(o)}));return r=e.valueCallback?e.valueCallback(l):l,{value:r=n.valueCallback?n.valueCallback(r):r,rest:a.slice(o.length)}}}var qNe={ordinalNumber:function(e){return function(a){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=a.match(e.matchPattern);if(!t)return null;var i=t[0],r=a.match(e.parsePattern);if(!r)return null;var o=e.valueCallback?e.valueCallback(r[0]):r[0];return{value:o=n.valueCallback?n.valueCallback(o):o,rest:a.slice(i.length)}}}({matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(e){return parseInt(e,10)}}),era:WNe({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:WNe({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:WNe({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:WNe({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:WNe({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},ZNe={code:"en-US",formatDistance:function(e,a,n){var t,i=INe[e];return t="string"==typeof i?i:1===a?i.one:i.other.replace("{{count}}",a.toString()),null!=n&&n.addSuffix?n.comparison&&n.comparison>0?"in "+t:t+" ago":t},formatLong:FNe,formatRelative:function(e,a,n,t){return VNe[e]},localize:UNe,match:qNe,options:{weekStartsOn:0,firstWeekContainsDate:1}},$Ne=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,YNe=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,QNe=/^'([^]*?)'?$/,XNe=/''/g,eEe=/[a-zA-Z]/;function aEe(e,a,n){var t,i,r,o,s,l,u,c,d,m,h,p,g,f,v,y,k,b;Ixe(2,arguments);var S=String(a),A=Uxe(),w=null!==(t=null!==(i=null==n?void 0:n.locale)&&void 0!==i?i:A.locale)&&void 0!==t?t:ZNe,M=Hxe(null!==(r=null!==(o=null!==(s=null!==(l=null==n?void 0:n.firstWeekContainsDate)&&void 0!==l?l:null==n||null===(u=n.locale)||void 0===u||null===(c=u.options)||void 0===c?void 0:c.firstWeekContainsDate)&&void 0!==s?s:A.firstWeekContainsDate)&&void 0!==o?o:null===(d=A.locale)||void 0===d||null===(m=d.options)||void 0===m?void 0:m.firstWeekContainsDate)&&void 0!==r?r:1);if(!(M>=1&&M<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var C=Hxe(null!==(h=null!==(p=null!==(g=null!==(f=null==n?void 0:n.weekStartsOn)&&void 0!==f?f:null==n||null===(v=n.locale)||void 0===v||null===(y=v.options)||void 0===y?void 0:y.weekStartsOn)&&void 0!==g?g:A.weekStartsOn)&&void 0!==p?p:null===(k=A.locale)||void 0===k||null===(b=k.options)||void 0===b?void 0:b.weekStartsOn)&&void 0!==h?h:0);if(!(C>=0&&C<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!w.localize)throw new RangeError("locale must contain localize property");if(!w.formatLong)throw new RangeError("locale must contain formatLong property");var T=Gxe(e);if(!function(e){if(Ixe(1,arguments),!nNe(e)&&"number"!=typeof e)return!1;var a=Gxe(e);return!isNaN(Number(a))}(T))throw new RangeError("Invalid time value");var x=uNe(T,$xe(T)),N={firstWeekContainsDate:M,weekStartsOn:C,locale:w,_originalDate:T};return S.match(YNe).map((function(e){var a=e[0];return"p"===a||"P"===a?(0,DNe[a])(e,w.formatLong):e})).join("").match($Ne).map((function(t){if("''"===t)return"'";var i=t[0];if("'"===i)return function(e){var a=e.match(QNe);if(!a)return e;return a[1].replace(XNe,"'")}(t);var r=PNe[i];if(r)return null!=n&&n.useAdditionalWeekYearTokens||-1===KNe.indexOf(t)||HNe(t,a,String(e)),null!=n&&n.useAdditionalDayOfYearTokens||!function(e){return-1!==ONe.indexOf(e)}(t)||HNe(t,a,String(e)),r(x,t,w.localize,N);if(i.match(eEe))throw new RangeError("Format string contains an unescaped latin alphabet character `"+i+"`");return t})).join("")}function nEe(e){return Ixe(1,arguments),Math.floor(function(e){return Ixe(1,arguments),Gxe(e).getTime()}(e)/1e3)}function tEe(e,a){var n,t,i,r,o,s,l,u;Ixe(1,arguments);var c=Uxe(),d=Hxe(null!==(n=null!==(t=null!==(i=null!==(r=null==a?void 0:a.firstWeekContainsDate)&&void 0!==r?r:null==a||null===(o=a.locale)||void 0===o||null===(s=o.options)||void 0===s?void 0:s.firstWeekContainsDate)&&void 0!==i?i:c.firstWeekContainsDate)&&void 0!==t?t:null===(l=c.locale)||void 0===l||null===(u=l.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==n?n:1),m=function(e,a){var n,t,i,r,o,s,l,u;Ixe(1,arguments);var c=Gxe(e),d=c.getFullYear(),m=Uxe(),h=Hxe(null!==(n=null!==(t=null!==(i=null!==(r=null==a?void 0:a.firstWeekContainsDate)&&void 0!==r?r:null==a||null===(o=a.locale)||void 0===o||null===(s=o.options)||void 0===s?void 0:s.firstWeekContainsDate)&&void 0!==i?i:m.firstWeekContainsDate)&&void 0!==t?t:null===(l=m.locale)||void 0===l||null===(u=l.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==n?n:1);if(!(h>=1&&h<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var p=new Date(0);p.setFullYear(d+1,0,h),p.setHours(0,0,0,0);var g=Wxe(p,a),f=new Date(0);f.setFullYear(d,0,h),f.setHours(0,0,0,0);var v=Wxe(f,a);return c.getTime()>=g.getTime()?d+1:c.getTime()>=v.getTime()?d:d-1}(e,a),h=new Date(0);return h.setFullYear(m,0,d),h.setHours(0,0,0,0),Wxe(h,a)}function iEe(e,a){return Ixe(1,arguments),function(e,a,n){Ixe(2,arguments);var t=Wxe(e,n),i=Wxe(a,n),r=t.getTime()-$xe(t),o=i.getTime()-$xe(i);return Math.round((r-o)/6048e5)}(function(e){Ixe(1,arguments);var a=Gxe(e),n=a.getMonth();return a.setFullYear(a.getFullYear(),n+1,0),a.setHours(0,0,0,0),a}(e),rNe(e),a)+1}function rEe(e,a){Ixe(2,arguments);var n=Gxe(e),t=Gxe(a);return n.getTime()>t.getTime()}function oEe(e,a){Ixe(2,arguments);var n=Gxe(e),t=Gxe(a);return n.getTime()<t.getTime()}function sEe(e,a){Ixe(2,arguments);var n=Gxe(e),t=Gxe(a);return n.getFullYear()===t.getFullYear()&&n.getMonth()===t.getMonth()}function lEe(e,a){return Ixe(2,arguments),Fxe(e,-Hxe(a))}function uEe(e,a){Ixe(2,arguments);var n=Gxe(e),t=Hxe(a),i=n.getFullYear(),r=n.getDate(),o=new Date(0);o.setFullYear(i,t,15),o.setHours(0,0,0,0);var s=function(e){Ixe(1,arguments);var a=Gxe(e),n=a.getFullYear(),t=a.getMonth(),i=new Date(0);return i.setFullYear(n,t+1,0),i.setHours(0,0,0,0),i.getDate()}(o);return n.setMonth(t,Math.min(r,s)),n}function cEe(e,a){Ixe(2,arguments);var n=Gxe(e),t=Hxe(a);return isNaN(n.getTime())?new Date(NaN):(n.setFullYear(t),n)}var dEe=function(){return dEe=Object.assign||function(e){for(var a,n=1,t=arguments.length;n<t;n++)for(var i in a=arguments[n])Object.prototype.hasOwnProperty.call(a,i)&&(e[i]=a[i]);return e},dEe.apply(this,arguments)};function mEe(e,a,n){for(var t,i=0,r=a.length;i<r;i++)!t&&i in a||(t||(t=Array.prototype.slice.call(a,0,i)),t[i]=a[i]);return e.concat(t||Array.prototype.slice.call(a))}function hEe(e){return"multiple"===e.mode}function pEe(e){return"range"===e.mode}function gEe(e){return"single"===e.mode}"function"==typeof SuppressedError&&SuppressedError;var fEe={root:"rdp",multiple_months:"rdp-multiple_months",with_weeknumber:"rdp-with_weeknumber",vhidden:"rdp-vhidden",button_reset:"rdp-button_reset",button:"rdp-button",caption:"rdp-caption",caption_start:"rdp-caption_start",caption_end:"rdp-caption_end",caption_between:"rdp-caption_between",caption_label:"rdp-caption_label",caption_dropdowns:"rdp-caption_dropdowns",dropdown:"rdp-dropdown",dropdown_month:"rdp-dropdown_month",dropdown_year:"rdp-dropdown_year",dropdown_icon:"rdp-dropdown_icon",months:"rdp-months",month:"rdp-month",table:"rdp-table",tbody:"rdp-tbody",tfoot:"rdp-tfoot",head:"rdp-head",head_row:"rdp-head_row",head_cell:"rdp-head_cell",nav:"rdp-nav",nav_button:"rdp-nav_button",nav_button_previous:"rdp-nav_button_previous",nav_button_next:"rdp-nav_button_next",nav_icon:"rdp-nav_icon",row:"rdp-row",weeknumber:"rdp-weeknumber",cell:"rdp-cell",day:"rdp-day",day_today:"rdp-day_today",day_outside:"rdp-day_outside",day_selected:"rdp-day_selected",day_disabled:"rdp-day_disabled",day_hidden:"rdp-day_hidden",day_range_start:"rdp-day_range_start",day_range_end:"rdp-day_range_end",day_range_middle:"rdp-day_range_middle"};var vEe=Object.freeze({__proto__:null,formatCaption:function(e,a){return aEe(e,"LLLL y",a)},formatDay:function(e,a){return aEe(e,"d",a)},formatMonthCaption:function(e,a){return aEe(e,"LLLL",a)},formatWeekNumber:function(e){return"".concat(e)},formatWeekdayName:function(e,a){return aEe(e,"cccccc",a)},formatYearCaption:function(e,a){return aEe(e,"yyyy",a)}}),yEe=Object.freeze({__proto__:null,labelDay:function(e,a,n){return aEe(e,"do MMMM (EEEE)",n)},labelMonthDropdown:function(){return"Month: "},labelNext:function(){return"Go to next month"},labelPrevious:function(){return"Go to previous month"},labelWeekNumber:function(e){return"Week n. ".concat(e)},labelWeekday:function(e,a){return aEe(e,"cccc",a)},labelYearDropdown:function(){return"Year: "}});var kEe=a.createContext(void 0);function bEe(e){var a,t,i=e.initialProps,r={captionLayout:"buttons",classNames:fEe,formatters:vEe,labels:yEe,locale:ZNe,modifiersClassNames:{},modifiers:{},numberOfMonths:1,styles:{},today:new Date,mode:"default"},o=function(e){var a=e.fromYear,n=e.toYear,t=e.fromMonth,i=e.toMonth,r=e.fromDate,o=e.toDate;return t?r=rNe(t):a&&(r=new Date(a,0,1)),i?o=iNe(i):n&&(o=new Date(n,11,31)),{fromDate:r?Yxe(r):void 0,toDate:o?Yxe(o):void 0}}(i),s=o.fromDate,l=o.toDate,u=null!==(a=i.captionLayout)&&void 0!==a?a:r.captionLayout;"buttons"===u||s&&l||(u="buttons"),(gEe(i)||hEe(i)||pEe(i))&&(t=i.onSelect);var c=dEe(dEe(dEe({},r),i),{captionLayout:u,classNames:dEe(dEe({},r.classNames),i.classNames),components:dEe({},i.components),formatters:dEe(dEe({},r.formatters),i.formatters),fromDate:s,labels:dEe(dEe({},r.labels),i.labels),mode:i.mode||r.mode,modifiers:dEe(dEe({},r.modifiers),i.modifiers),modifiersClassNames:dEe(dEe({},r.modifiersClassNames),i.modifiersClassNames),onSelect:t,styles:dEe(dEe({},r.styles),i.styles),toDate:l});return n.jsx(kEe.Provider,{value:c,children:e.children})}function SEe(){var e=a.useContext(kEe);if(!e)throw new Error("useDayPicker must be used within a DayPickerProvider.");return e}function AEe(e){var a=SEe();return n.jsx("div",{className:a.classNames.caption_label,style:a.styles.caption_label,"aria-live":"polite",role:"presentation",id:e.id,children:(0,a.formatters.formatCaption)(e.displayMonth,{locale:a.locale})})}function wEe(e){return n.jsx("svg",dEe({width:"8px",height:"8px",viewBox:"0 0 120 120","data-testid":"iconDropdown"},e,{children:n.jsx("path",{d:"M4.22182541,48.2218254 C8.44222828,44.0014225 15.2388494,43.9273804 19.5496459,47.9996989 L19.7781746,48.2218254 L60,88.443 L100.221825,48.2218254 C104.442228,44.0014225 111.238849,43.9273804 115.549646,47.9996989 L115.778175,48.2218254 C119.998577,52.4422283 120.07262,59.2388494 116.000301,63.5496459 L115.778175,63.7781746 L67.7781746,111.778175 C63.5577717,115.998577 56.7611506,116.07262 52.4503541,112.000301 L52.2218254,111.778175 L4.22182541,63.7781746 C-0.0739418023,59.4824074 -0.0739418023,52.5175926 4.22182541,48.2218254 Z",fill:"currentColor",fillRule:"nonzero"})}))}function MEe(e){var a,t,i=e.onChange,r=e.value,o=e.children,s=e.caption,l=e.className,u=e.style,c=SEe(),d=null!==(t=null===(a=c.components)||void 0===a?void 0:a.IconDropdown)&&void 0!==t?t:wEe;return n.jsxs("div",{className:l,style:u,children:[n.jsx("span",{className:c.classNames.vhidden,children:e["aria-label"]}),n.jsx("select",{name:e.name,"aria-label":e["aria-label"],className:c.classNames.dropdown,style:c.styles.dropdown,value:r,onChange:i,children:o}),n.jsxs("div",{className:c.classNames.caption_label,style:c.styles.caption_label,"aria-hidden":"true",children:[s,n.jsx(d,{className:c.classNames.dropdown_icon,style:c.styles.dropdown_icon})]})]})}function CEe(e){var a,t=SEe(),i=t.fromDate,r=t.toDate,o=t.styles,s=t.locale,l=t.formatters.formatMonthCaption,u=t.classNames,c=t.components,d=t.labels.labelMonthDropdown;if(!i)return n.jsx(n.Fragment,{});if(!r)return n.jsx(n.Fragment,{});var m=[];if(function(e,a){Ixe(2,arguments);var n=Gxe(e),t=Gxe(a);return n.getFullYear()===t.getFullYear()}(i,r))for(var h=rNe(i),p=i.getMonth();p<=r.getMonth();p++)m.push(uEe(h,p));else for(h=rNe(new Date),p=0;p<=11;p++)m.push(uEe(h,p));var g=null!==(a=null==c?void 0:c.Dropdown)&&void 0!==a?a:MEe;return n.jsx(g,{name:"months","aria-label":d(),className:u.dropdown_month,style:o.dropdown_month,onChange:function(a){var n=Number(a.target.value),t=uEe(rNe(e.displayMonth),n);e.onChange(t)},value:e.displayMonth.getMonth(),caption:l(e.displayMonth,{locale:s}),children:m.map((function(e){return n.jsx("option",{value:e.getMonth(),children:l(e,{locale:s})},e.getMonth())}))})}function TEe(e){var a,t=e.displayMonth,i=SEe(),r=i.fromDate,o=i.toDate,s=i.locale,l=i.styles,u=i.classNames,c=i.components,d=i.formatters.formatYearCaption,m=i.labels.labelYearDropdown,h=[];if(!r)return n.jsx(n.Fragment,{});if(!o)return n.jsx(n.Fragment,{});for(var p=r.getFullYear(),g=o.getFullYear(),f=p;f<=g;f++)h.push(cEe(oNe(new Date),f));var v=null!==(a=null==c?void 0:c.Dropdown)&&void 0!==a?a:MEe;return n.jsx(v,{name:"years","aria-label":m(),className:u.dropdown_year,style:l.dropdown_year,onChange:function(a){var n=cEe(rNe(t),Number(a.target.value));e.onChange(n)},value:t.getFullYear(),caption:d(t,{locale:s}),children:h.map((function(e){return n.jsx("option",{value:e.getFullYear(),children:d(e,{locale:s})},e.getFullYear())}))})}function xEe(){var e=SEe(),n=function(e){var a=e.month||e.defaultMonth||e.today||new Date,n=e.toDate,t=e.fromDate,i=e.numberOfMonths,r=void 0===i?1:i;return n&&tNe(n,a)<0&&(a=Vxe(n,-1*(r-1))),t&&tNe(a,t)<0&&(a=t),rNe(a)}(e),t=function(e,n){var t=a.useState(e);return[void 0===n?t[0]:n,t[1]]}(n,e.month),i=t[1];return[t[0],function(a){var n;if(!e.disableNavigation){var t=rNe(a);i(t),null===(n=e.onMonthChange)||void 0===n||n.call(e,t)}}]}var NEe=a.createContext(void 0);function EEe(e){var a=SEe(),t=xEe(),i=t[0],r=t[1],o=function(e,a){for(var n=a.reverseMonths,t=a.numberOfMonths,i=rNe(e),r=tNe(rNe(Vxe(i,t)),i),o=[],s=0;s<r;s++){var l=Vxe(i,s);o.push(l)}return n&&(o=o.reverse()),o}(i,a),s=function(e,a){if(!a.disableNavigation){var n=a.toDate,t=a.numberOfMonths,i=void 0===t?1:t,r=a.pagedNavigation?i:1,o=rNe(e);if(!n)return Vxe(o,r);if(!(tNe(n,e)<i))return Vxe(o,r)}}(i,a),l=function(e,a){if(!a.disableNavigation){var n=a.fromDate,t=a.numberOfMonths,i=a.pagedNavigation?void 0===t?1:t:1,r=rNe(e);if(!n)return Vxe(r,-i);if(!(tNe(r,n)<=0))return Vxe(r,-i)}}(i,a),u=function(e){return o.some((function(a){return sEe(e,a)}))};return n.jsx(NEe.Provider,{value:{currentMonth:i,displayMonths:o,goToMonth:r,goToDate:function(e,n){u(e)||(n&&oEe(e,n)?r(Vxe(e,1+-1*a.numberOfMonths)):r(e))},previousMonth:l,nextMonth:s,isDateDisplayed:u},children:e.children})}function _Ee(){var e=a.useContext(NEe);if(!e)throw new Error("useNavigation must be used within a NavigationProvider");return e}function PEe(e){var a,t=SEe(),i=t.classNames,r=t.styles,o=t.components,s=_Ee().goToMonth,l=function(a){s(Vxe(a,e.displayIndex?-e.displayIndex:0))},u=null!==(a=null==o?void 0:o.CaptionLabel)&&void 0!==a?a:AEe,c=n.jsx(u,{id:e.id,displayMonth:e.displayMonth});return n.jsxs("div",{className:i.caption_dropdowns,style:r.caption_dropdowns,children:[n.jsx("div",{className:i.vhidden,children:c}),n.jsx(CEe,{onChange:l,displayMonth:e.displayMonth}),n.jsx(TEe,{onChange:l,displayMonth:e.displayMonth})]})}function jEe(e){return n.jsx("svg",dEe({width:"16px",height:"16px",viewBox:"0 0 120 120"},e,{children:n.jsx("path",{d:"M69.490332,3.34314575 C72.6145263,0.218951416 77.6798462,0.218951416 80.8040405,3.34314575 C83.8617626,6.40086786 83.9268205,11.3179931 80.9992143,14.4548388 L80.8040405,14.6568542 L35.461,60 L80.8040405,105.343146 C83.8617626,108.400868 83.9268205,113.317993 80.9992143,116.454839 L80.8040405,116.656854 C77.7463184,119.714576 72.8291931,119.779634 69.6923475,116.852028 L69.490332,116.656854 L18.490332,65.6568542 C15.4326099,62.5991321 15.367552,57.6820069 18.2951583,54.5451612 L18.490332,54.3431458 L69.490332,3.34314575 Z",fill:"currentColor",fillRule:"nonzero"})}))}function LEe(e){return n.jsx("svg",dEe({width:"16px",height:"16px",viewBox:"0 0 120 120"},e,{children:n.jsx("path",{d:"M49.8040405,3.34314575 C46.6798462,0.218951416 41.6145263,0.218951416 38.490332,3.34314575 C35.4326099,6.40086786 35.367552,11.3179931 38.2951583,14.4548388 L38.490332,14.6568542 L83.8333725,60 L38.490332,105.343146 C35.4326099,108.400868 35.367552,113.317993 38.2951583,116.454839 L38.490332,116.656854 C41.5480541,119.714576 46.4651794,119.779634 49.602025,116.852028 L49.8040405,116.656854 L100.804041,65.6568542 C103.861763,62.5991321 103.926821,57.6820069 100.999214,54.5451612 L100.804041,54.3431458 L49.8040405,3.34314575 Z",fill:"currentColor"})}))}var BEe=a.forwardRef((function(e,a){var t=SEe(),i=t.classNames,r=t.styles,o=[i.button_reset,i.button];e.className&&o.push(e.className);var s=o.join(" "),l=dEe(dEe({},r.button_reset),r.button);return e.style&&Object.assign(l,e.style),n.jsx("button",dEe({},e,{ref:a,type:"button",className:s,style:l}))}));function REe(e){var a,t,i=SEe(),r=i.dir,o=i.locale,s=i.classNames,l=i.styles,u=i.labels,c=u.labelPrevious,d=u.labelNext,m=i.components;if(!e.nextMonth&&!e.previousMonth)return n.jsx(n.Fragment,{});var h=c(e.previousMonth,{locale:o}),p=[s.nav_button,s.nav_button_previous].join(" "),g=d(e.nextMonth,{locale:o}),f=[s.nav_button,s.nav_button_next].join(" "),v=null!==(a=null==m?void 0:m.IconRight)&&void 0!==a?a:LEe,y=null!==(t=null==m?void 0:m.IconLeft)&&void 0!==t?t:jEe;return n.jsxs("div",{className:s.nav,style:l.nav,children:[!e.hidePrevious&&n.jsx(BEe,{name:"previous-month","aria-label":h,className:p,style:l.nav_button_previous,disabled:!e.previousMonth,onClick:e.onPreviousClick,children:n.jsx("rtl"===r?v:y,{className:s.nav_icon,style:l.nav_icon})}),!e.hideNext&&n.jsx(BEe,{name:"next-month","aria-label":g,className:f,style:l.nav_button_next,disabled:!e.nextMonth,onClick:e.onNextClick,children:n.jsx("rtl"===r?y:v,{className:s.nav_icon,style:l.nav_icon})})]})}function zEe(e){var a=SEe().numberOfMonths,t=_Ee(),i=t.previousMonth,r=t.nextMonth,o=t.goToMonth,s=t.displayMonths,l=s.findIndex((function(a){return sEe(e.displayMonth,a)})),u=0===l,c=l===s.length-1;return n.jsx(REe,{displayMonth:e.displayMonth,hideNext:a>1&&(u||!c),hidePrevious:a>1&&(c||!u),nextMonth:r,previousMonth:i,onPreviousClick:function(){i&&o(i)},onNextClick:function(){r&&o(r)}})}function DEe(e){var a,t,i=SEe(),r=i.classNames,o=i.styles,s=i.captionLayout,l=i.components,u=null!==(a=null==l?void 0:l.CaptionLabel)&&void 0!==a?a:AEe;return t=i.disableNavigation?n.jsx(u,{id:e.id,displayMonth:e.displayMonth}):"dropdown"===s?n.jsx(PEe,{displayMonth:e.displayMonth,id:e.id}):n.jsxs(n.Fragment,"dropdown-buttons"===s?{children:[n.jsx(PEe,{displayMonth:e.displayMonth,displayIndex:e.displayIndex,id:e.id}),n.jsx(zEe,{displayMonth:e.displayMonth,displayIndex:e.displayIndex,id:e.id})]}:{children:[n.jsx(u,{id:e.id,displayMonth:e.displayMonth,displayIndex:e.displayIndex}),n.jsx(zEe,{displayMonth:e.displayMonth,id:e.id})]}),n.jsx("div",{className:r.caption,style:o.caption,children:t})}function OEe(e){var a=SEe(),t=a.footer;return t?n.jsx("tfoot",{className:a.classNames.tfoot,style:a.styles.tfoot,children:n.jsx("tr",{children:n.jsx("td",{colSpan:8,children:t})})}):n.jsx(n.Fragment,{})}function KEe(){var e=SEe(),a=e.classNames,t=e.styles,i=e.showWeekNumber,r=e.locale,o=e.formatters.formatWeekdayName,s=e.labels.labelWeekday,l=function(e,a,n){for(var t=n?qxe(new Date):Wxe(new Date,{locale:e,weekStartsOn:a}),i=[],r=0;r<7;r++){var o=Fxe(t,r);i.push(o)}return i}(r,e.weekStartsOn,e.ISOWeek);return n.jsxs("tr",{style:t.head_row,className:a.head_row,children:[i&&n.jsx("td",{style:t.head_cell,className:a.head_cell}),l.map((function(e,i){return n.jsx("th",{scope:"col",className:a.head_cell,style:t.head_cell,"aria-label":s(e,{locale:r}),children:o(e,{locale:r})},i)}))]})}function HEe(){var e,a=SEe(),t=a.components,i=null!==(e=null==t?void 0:t.HeadRow)&&void 0!==e?e:KEe;return n.jsx("thead",{style:a.styles.head,className:a.classNames.head,children:n.jsx(i,{})})}function IEe(e){var a=SEe();return n.jsx(n.Fragment,{children:(0,a.formatters.formatDay)(e.date,{locale:a.locale})})}var GEe=a.createContext(void 0);function FEe(e){if(!hEe(e.initialProps)){return n.jsx(GEe.Provider,{value:{selected:void 0,modifiers:{disabled:[]}},children:e.children})}return n.jsx(VEe,{initialProps:e.initialProps,children:e.children})}function VEe(e){var a=e.initialProps,t=e.children,i=a.selected,r=a.min,o=a.max,s={disabled:[]};return i&&s.disabled.push((function(e){var a=o&&i.length>o-1,n=i.some((function(a){return aNe(a,e)}));return Boolean(a&&!n)})),n.jsx(GEe.Provider,{value:{selected:i,onDayClick:function(e,n,t){var s,l;if((null===(s=a.onDayClick)||void 0===s||s.call(a,e,n,t),!Boolean(n.selected&&r&&(null==i?void 0:i.length)===r))&&!Boolean(!n.selected&&o&&(null==i?void 0:i.length)===o)){var u=i?mEe([],i):[];if(n.selected){var c=u.findIndex((function(a){return aNe(e,a)}));u.splice(c,1)}else u.push(e);null===(l=a.onSelect)||void 0===l||l.call(a,u,e,n,t)}},modifiers:s},children:t})}function JEe(){var e=a.useContext(GEe);if(!e)throw new Error("useSelectMultiple must be used within a SelectMultipleProvider");return e}var UEe,WEe,qEe=a.createContext(void 0);function ZEe(e){if(!pEe(e.initialProps)){return n.jsx(qEe.Provider,{value:{selected:void 0,modifiers:{range_start:[],range_end:[],range_middle:[],disabled:[]}},children:e.children})}return n.jsx($Ee,{initialProps:e.initialProps,children:e.children})}function $Ee(e){var a=e.initialProps,t=e.children,i=a.selected,r=i||{},o=r.from,s=r.to,l=a.min,u=a.max,c={range_start:[],range_end:[],range_middle:[],disabled:[]};if(o?(c.range_start=[o],s?(c.range_end=[s],aNe(o,s)||(c.range_middle=[{after:o,before:s}])):c.range_end=[o]):s&&(c.range_start=[s],c.range_end=[s]),l&&(o&&!s&&c.disabled.push({after:lEe(o,l-1),before:Fxe(o,l-1)}),o&&s&&c.disabled.push({after:o,before:Fxe(o,l-1)}),!o&&s&&c.disabled.push({after:lEe(s,l-1),before:Fxe(s,l-1)})),u){if(o&&!s&&(c.disabled.push({before:Fxe(o,1-u)}),c.disabled.push({after:Fxe(o,u-1)})),o&&s){var d=u-(Qxe(s,o)+1);c.disabled.push({before:lEe(o,d)}),c.disabled.push({after:Fxe(s,d)})}!o&&s&&(c.disabled.push({before:Fxe(s,1-u)}),c.disabled.push({after:Fxe(s,u-1)}))}return n.jsx(qEe.Provider,{value:{selected:i,onDayClick:function(e,n,t){var r,o;null===(r=a.onDayClick)||void 0===r||r.call(a,e,n,t);var s=function(e,a){var n=a||{},t=n.from,i=n.to;if(t&&i){if(aNe(i,e)&&aNe(t,e))return;if(aNe(i,e))return{from:i,to:void 0};if(aNe(t,e))return;return rEe(t,e)?{from:e,to:i}:{from:t,to:e}}return i?rEe(e,i)?{from:i,to:e}:{from:e,to:i}:t?oEe(e,t)?{from:e,to:t}:{from:t,to:e}:{from:e,to:void 0}}(e,i);null===(o=a.onSelect)||void 0===o||o.call(a,s,e,n,t)},modifiers:c},children:t})}function YEe(){var e=a.useContext(qEe);if(!e)throw new Error("useSelectRange must be used within a SelectRangeProvider");return e}function QEe(e){return Array.isArray(e)?mEe([],e):void 0!==e?[e]:[]}(WEe=UEe||(UEe={})).Outside="outside",WEe.Disabled="disabled",WEe.Selected="selected",WEe.Hidden="hidden",WEe.Today="today",WEe.RangeStart="range_start",WEe.RangeEnd="range_end",WEe.RangeMiddle="range_middle";var XEe=UEe.Selected,e_e=UEe.Disabled,a_e=UEe.Hidden,n_e=UEe.Today,t_e=UEe.RangeEnd,i_e=UEe.RangeMiddle,r_e=UEe.RangeStart,o_e=UEe.Outside;var s_e=a.createContext(void 0);function l_e(e){var a=SEe(),t=function(e,a,n){var t,i=((t={})[XEe]=QEe(e.selected),t[e_e]=QEe(e.disabled),t[a_e]=QEe(e.hidden),t[n_e]=[e.today],t[t_e]=[],t[i_e]=[],t[r_e]=[],t[o_e]=[],t);return e.fromDate&&i[e_e].push({before:e.fromDate}),e.toDate&&i[e_e].push({after:e.toDate}),hEe(e)?i[e_e]=i[e_e].concat(a.modifiers[e_e]):pEe(e)&&(i[e_e]=i[e_e].concat(n.modifiers[e_e]),i[r_e]=n.modifiers[r_e],i[i_e]=n.modifiers[i_e],i[t_e]=n.modifiers[t_e]),i}(a,JEe(),YEe()),i=function(e){var a={};return Object.entries(e).forEach((function(e){a[e[0]]=QEe(e[1])})),a}(a.modifiers),r=dEe(dEe({},t),i);return n.jsx(s_e.Provider,{value:r,children:e.children})}function u_e(){var e=a.useContext(s_e);if(!e)throw new Error("useModifiers must be used within a ModifiersProvider");return e}function c_e(e,a){return a.some((function(a){if("boolean"==typeof a)return a;if(nNe(a))return aNe(e,a);var n,t,i,r,o;if(function(e){return Array.isArray(e)&&e.every(nNe)}(a))return a.includes(e);if(function(e){return Boolean(e&&"object"==typeof e&&"from"in e)}(a))return n=e,o=(t=a).to,(r=t.from)&&o?(Qxe(o,r)<0&&(r=(i=[o,r])[0],o=i[1]),Qxe(n,r)>=0&&Qxe(o,n)>=0):o?aNe(o,n):!!r&&aNe(r,n);if(function(e){return Boolean(e&&"object"==typeof e&&"dayOfWeek"in e)}(a))return a.dayOfWeek.includes(e.getDay());if(function(e){return Boolean(e&&"object"==typeof e&&"before"in e&&"after"in e)}(a)){var s=Qxe(a.before,e)>0,l=Qxe(a.after,e)<0;return rEe(a.before,a.after)?l&&s:s||l}return function(e){return Boolean(e&&"object"==typeof e&&"after"in e)}(a)?Qxe(e,a.after)>0:function(e){return Boolean(e&&"object"==typeof e&&"before"in e)}(a)?Qxe(a.before,e)>0:"function"==typeof a&&a(e)}))}function d_e(e,a,n){var t=Object.keys(a).reduce((function(n,t){return c_e(e,a[t])&&n.push(t),n}),[]),i={};return t.forEach((function(e){return i[e]=!0})),n&&!sEe(e,n)&&(i.outside=!0),i}function m_e(e,a){var n=a.moveBy,t=a.direction,i=a.context,r=a.modifiers,o=a.retry,s=void 0===o?{count:0,lastFocused:e}:o,l=i.weekStartsOn,u=i.fromDate,c=i.toDate,d=i.locale,m={day:Fxe,week:Xxe,month:Vxe,year:eNe,startOfWeek:function(e){return i.ISOWeek?qxe(e):Wxe(e,{locale:d,weekStartsOn:l})},endOfWeek:function(e){return i.ISOWeek?lNe(e):sNe(e,{locale:d,weekStartsOn:l})}}[n](e,"after"===t?1:-1);"before"===t&&u?m=function(e){var a,n;if(Ixe(1,arguments),e&&"function"==typeof e.forEach)a=e;else{if("object"!==Kxe(e)||null===e)return new Date(NaN);a=Array.prototype.slice.call(e)}return a.forEach((function(e){var a=Gxe(e);(void 0===n||n<a||isNaN(Number(a)))&&(n=a)})),n||new Date(NaN)}([u,m]):"after"===t&&c&&(m=function(e){var a,n;if(Ixe(1,arguments),e&&"function"==typeof e.forEach)a=e;else{if("object"!==Kxe(e)||null===e)return new Date(NaN);a=Array.prototype.slice.call(e)}return a.forEach((function(e){var a=Gxe(e);(void 0===n||n>a||isNaN(a.getDate()))&&(n=a)})),n||new Date(NaN)}([c,m]));var h=!0;if(r){var p=d_e(m,r);h=!p.disabled&&!p.hidden}return h?m:s.count>365?s.lastFocused:m_e(m,{moveBy:n,direction:t,context:i,modifiers:r,retry:dEe(dEe({},s),{count:s.count+1})})}var h_e=a.createContext(void 0);function p_e(e){var t=_Ee(),i=u_e(),r=a.useState(),o=r[0],s=r[1],l=a.useState(),u=l[0],c=l[1],d=function(e,a){for(var n,t,i=rNe(e[0]),r=iNe(e[e.length-1]),o=i;o<=r;){var s=d_e(o,a);if(s.disabled||s.hidden)o=Fxe(o,1);else{if(s.selected)return o;s.today&&!t&&(t=o),n||(n=o),o=Fxe(o,1)}}return t||n}(t.displayMonths,i),m=(null!=o?o:u&&t.isDateDisplayed(u))?u:d,h=function(e){s(e)},p=SEe(),g=function(e,a){if(o){var n=m_e(o,{moveBy:e,direction:a,context:p,modifiers:i});aNe(o,n)||(t.goToDate(n,o),h(n))}};return n.jsx(h_e.Provider,{value:{focusedDay:o,focusTarget:m,blur:function(){c(o),s(void 0)},focus:h,focusDayAfter:function(){return g("day","after")},focusDayBefore:function(){return g("day","before")},focusWeekAfter:function(){return g("week","after")},focusWeekBefore:function(){return g("week","before")},focusMonthBefore:function(){return g("month","before")},focusMonthAfter:function(){return g("month","after")},focusYearBefore:function(){return g("year","before")},focusYearAfter:function(){return g("year","after")},focusStartOfWeek:function(){return g("startOfWeek","before")},focusEndOfWeek:function(){return g("endOfWeek","after")}},children:e.children})}function g_e(){var e=a.useContext(h_e);if(!e)throw new Error("useFocusContext must be used within a FocusProvider");return e}var f_e=a.createContext(void 0);function v_e(e){if(!gEe(e.initialProps)){return n.jsx(f_e.Provider,{value:{selected:void 0},children:e.children})}return n.jsx(y_e,{initialProps:e.initialProps,children:e.children})}function y_e(e){var a=e.initialProps;return n.jsx(f_e.Provider,{value:{selected:a.selected,onDayClick:function(e,n,t){var i,r,o;null===(i=a.onDayClick)||void 0===i||i.call(a,e,n,t),!n.selected||a.required?null===(o=a.onSelect)||void 0===o||o.call(a,e,e,n,t):null===(r=a.onSelect)||void 0===r||r.call(a,void 0,e,n,t)}},children:e.children})}function k_e(){var e=a.useContext(f_e);if(!e)throw new Error("useSelectSingle must be used within a SelectSingleProvider");return e}function b_e(e,a){var n=[e.classNames.day];return Object.keys(a).forEach((function(a){var t=e.modifiersClassNames[a];if(t)n.push(t);else if(function(e){return Object.values(UEe).includes(e)}(a)){var i=e.classNames["day_".concat(a)];i&&n.push(i)}})),n}function S_e(e,t,i){var r,o,s,l=SEe(),u=g_e(),c=function(e,a){return d_e(e,u_e(),a)}(e,t),d=function(e,a){var n=SEe(),t=k_e(),i=JEe(),r=YEe(),o=g_e(),s=o.focusDayAfter,l=o.focusDayBefore,u=o.focusWeekAfter,c=o.focusWeekBefore,d=o.blur,m=o.focus,h=o.focusMonthBefore,p=o.focusMonthAfter,g=o.focusYearBefore,f=o.focusYearAfter,v=o.focusStartOfWeek,y=o.focusEndOfWeek;return{onClick:function(o){var s,l,u,c;gEe(n)?null===(s=t.onDayClick)||void 0===s||s.call(t,e,a,o):hEe(n)?null===(l=i.onDayClick)||void 0===l||l.call(i,e,a,o):pEe(n)?null===(u=r.onDayClick)||void 0===u||u.call(r,e,a,o):null===(c=n.onDayClick)||void 0===c||c.call(n,e,a,o)},onFocus:function(t){var i;m(e),null===(i=n.onDayFocus)||void 0===i||i.call(n,e,a,t)},onBlur:function(t){var i;d(),null===(i=n.onDayBlur)||void 0===i||i.call(n,e,a,t)},onKeyDown:function(t){var i;switch(t.key){case"ArrowLeft":t.preventDefault(),t.stopPropagation(),"rtl"===n.dir?s():l();break;case"ArrowRight":t.preventDefault(),t.stopPropagation(),"rtl"===n.dir?l():s();break;case"ArrowDown":t.preventDefault(),t.stopPropagation(),u();break;case"ArrowUp":t.preventDefault(),t.stopPropagation(),c();break;case"PageUp":t.preventDefault(),t.stopPropagation(),t.shiftKey?g():h();break;case"PageDown":t.preventDefault(),t.stopPropagation(),t.shiftKey?f():p();break;case"Home":t.preventDefault(),t.stopPropagation(),v();break;case"End":t.preventDefault(),t.stopPropagation(),y()}null===(i=n.onDayKeyDown)||void 0===i||i.call(n,e,a,t)},onKeyUp:function(t){var i;null===(i=n.onDayKeyUp)||void 0===i||i.call(n,e,a,t)},onMouseEnter:function(t){var i;null===(i=n.onDayMouseEnter)||void 0===i||i.call(n,e,a,t)},onMouseLeave:function(t){var i;null===(i=n.onDayMouseLeave)||void 0===i||i.call(n,e,a,t)},onPointerEnter:function(t){var i;null===(i=n.onDayPointerEnter)||void 0===i||i.call(n,e,a,t)},onPointerLeave:function(t){var i;null===(i=n.onDayPointerLeave)||void 0===i||i.call(n,e,a,t)},onTouchCancel:function(t){var i;null===(i=n.onDayTouchCancel)||void 0===i||i.call(n,e,a,t)},onTouchEnd:function(t){var i;null===(i=n.onDayTouchEnd)||void 0===i||i.call(n,e,a,t)},onTouchMove:function(t){var i;null===(i=n.onDayTouchMove)||void 0===i||i.call(n,e,a,t)},onTouchStart:function(t){var i;null===(i=n.onDayTouchStart)||void 0===i||i.call(n,e,a,t)}}}(e,c),m=function(){var e=SEe(),a=k_e(),n=JEe(),t=YEe();return gEe(e)?a.selected:hEe(e)?n.selected:pEe(e)?t.selected:void 0}(),h=Boolean(l.onDayClick||"default"!==l.mode);a.useEffect((function(){var a;c.outside||u.focusedDay&&h&&aNe(u.focusedDay,e)&&(null===(a=i.current)||void 0===a||a.focus())}),[u.focusedDay,e,i,h,c.outside]);var p=b_e(l,c).join(" "),g=function(e,a){var n=dEe({},e.styles.day);return Object.keys(a).forEach((function(a){var t;n=dEe(dEe({},n),null===(t=e.modifiersStyles)||void 0===t?void 0:t[a])})),n}(l,c),f=Boolean(c.outside&&!l.showOutsideDays||c.hidden),v=null!==(s=null===(o=l.components)||void 0===o?void 0:o.DayContent)&&void 0!==s?s:IEe,y={style:g,className:p,children:n.jsx(v,{date:e,displayMonth:t,activeModifiers:c}),role:"gridcell"},k=u.focusTarget&&aNe(u.focusTarget,e)&&!c.outside,b=u.focusedDay&&aNe(u.focusedDay,e),S=dEe(dEe(dEe({},y),((r={disabled:c.disabled,role:"gridcell"})["aria-selected"]=c.selected,r.tabIndex=b||k?0:-1,r)),d);return{isButton:h,isHidden:f,activeModifiers:c,selectedDays:m,buttonProps:S,divProps:y}}function A_e(e){var t=a.useRef(null),i=S_e(e.date,e.displayMonth,t);return i.isHidden?n.jsx("div",{role:"gridcell"}):i.isButton?n.jsx(BEe,dEe({name:"day",ref:t},i.buttonProps)):n.jsx("div",dEe({},i.divProps))}function w_e(e){var a=e.number,t=e.dates,i=SEe(),r=i.onWeekNumberClick,o=i.styles,s=i.classNames,l=i.locale,u=i.labels.labelWeekNumber,c=(0,i.formatters.formatWeekNumber)(Number(a),{locale:l});if(!r)return n.jsx("span",{className:s.weeknumber,style:o.weeknumber,children:c});var d=u(Number(a),{locale:l});return n.jsx(BEe,{name:"week-number","aria-label":d,className:s.weeknumber,style:o.weeknumber,onClick:function(e){r(a,t,e)},children:c})}function M_e(e){var a,t,i,r=SEe(),o=r.styles,s=r.classNames,l=r.components,u=null!==(a=null==l?void 0:l.Day)&&void 0!==a?a:A_e,c=null!==(t=null==l?void 0:l.WeekNumber)&&void 0!==t?t:w_e;return r.showWeekNumber&&(i=n.jsx("td",{className:s.cell,style:o.cell,children:n.jsx(c,{number:e.weekNumber,dates:e.dates})})),n.jsxs("tr",{className:s.row,style:o.row,children:[i,e.dates.map((function(a){return n.jsx("td",{className:s.cell,style:o.cell,role:"presentation",children:n.jsx(u,{displayMonth:e.displayMonth,date:a})},nEe(a))}))]})}function C_e(e,a,n){for(var t=(null==n?void 0:n.ISOWeek)?lNe(a):sNe(a,n),i=(null==n?void 0:n.ISOWeek)?qxe(e):Wxe(e,n),r=Qxe(t,i),o=[],s=0;s<=r;s++)o.push(Fxe(i,s));var l=o.reduce((function(e,a){var t=(null==n?void 0:n.ISOWeek)?function(e){Ixe(1,arguments);var a=Gxe(e),n=qxe(a).getTime()-Zxe(a).getTime();return Math.round(n/6048e5)+1}(a):function(e,a){Ixe(1,arguments);var n=Gxe(e),t=Wxe(n,a).getTime()-tEe(n,a).getTime();return Math.round(t/6048e5)+1}(a,n),i=e.find((function(e){return e.weekNumber===t}));return i?(i.dates.push(a),e):(e.push({weekNumber:t,dates:[a]}),e)}),[]);return l}function T_e(e){var a,t,i,r=SEe(),o=r.locale,s=r.classNames,l=r.styles,u=r.hideHead,c=r.components,d=r.weekStartsOn,m=r.firstWeekContainsDate,h=r.ISOWeek,p=function(e,a){var n=C_e(rNe(e),iNe(e),a);if(null==a?void 0:a.useFixedWeeks){var t=iEe(e,a);if(t<6){var i=n[n.length-1],r=i.dates[i.dates.length-1],o=Xxe(r,6-t),s=C_e(Xxe(r,1),o,a);n.push.apply(n,s)}}return n}(e.displayMonth,{useFixedWeeks:Boolean(r.fixedWeeks),ISOWeek:h,locale:o,weekStartsOn:d,firstWeekContainsDate:m}),g=null!==(a=null==c?void 0:c.Head)&&void 0!==a?a:HEe,f=null!==(t=null==c?void 0:c.Row)&&void 0!==t?t:M_e,v=null!==(i=null==c?void 0:c.Footer)&&void 0!==i?i:OEe;return n.jsxs("table",{id:e.id,className:s.table,style:l.table,role:"grid","aria-labelledby":e["aria-labelledby"],children:[!u&&n.jsx(g,{}),n.jsx("tbody",{className:s.tbody,style:l.tbody,children:p.map((function(a){return n.jsx(f,{displayMonth:e.displayMonth,dates:a.dates,weekNumber:a.weekNumber},a.weekNumber)}))}),n.jsx(v,{displayMonth:e.displayMonth})]})}var x_e="undefined"!=typeof window&&window.document&&window.document.createElement?a.useLayoutEffect:a.useEffect,N_e=!1,E_e=0;function __e(){return"react-day-picker-".concat(++E_e)}function P_e(e){var t,i,r=SEe(),o=r.dir,s=r.classNames,l=r.styles,u=r.components,c=_Ee().displayMonths,d=function(e){var n,t=null!=e?e:N_e?__e():null,i=a.useState(t),r=i[0],o=i[1];return x_e((function(){null===r&&o(__e())}),[]),a.useEffect((function(){!1===N_e&&(N_e=!0)}),[]),null!==(n=null!=e?e:r)&&void 0!==n?n:void 0}(r.id?"".concat(r.id,"-").concat(e.displayIndex):void 0),m=r.id?"".concat(r.id,"-grid-").concat(e.displayIndex):void 0,h=[s.month],p=l.month,g=0===e.displayIndex,f=e.displayIndex===c.length-1,v=!g&&!f;"rtl"===o&&(f=(t=[g,f])[0],g=t[1]),g&&(h.push(s.caption_start),p=dEe(dEe({},p),l.caption_start)),f&&(h.push(s.caption_end),p=dEe(dEe({},p),l.caption_end)),v&&(h.push(s.caption_between),p=dEe(dEe({},p),l.caption_between));var y=null!==(i=null==u?void 0:u.Caption)&&void 0!==i?i:DEe;return n.jsxs("div",{className:h.join(" "),style:p,children:[n.jsx(y,{id:d,displayMonth:e.displayMonth,displayIndex:e.displayIndex}),n.jsx(T_e,{id:m,"aria-labelledby":d,displayMonth:e.displayMonth})]},e.displayIndex)}function j_e(e){var a=SEe();return n.jsx("div",{className:a.classNames.months,style:a.styles.months,children:e.children})}function L_e(e){var t,i,r=e.initialProps,o=SEe(),s=g_e(),l=_Ee(),u=a.useState(!1),c=u[0],d=u[1];a.useEffect((function(){o.initialFocus&&s.focusTarget&&(c||(s.focus(s.focusTarget),d(!0)))}),[o.initialFocus,c,s.focus,s.focusTarget,s]);var m=[o.classNames.root,o.className];o.numberOfMonths>1&&m.push(o.classNames.multiple_months),o.showWeekNumber&&m.push(o.classNames.with_weeknumber);var h=dEe(dEe({},o.styles.root),o.style),p=Object.keys(r).filter((function(e){return e.startsWith("data-")})).reduce((function(e,a){var n;return dEe(dEe({},e),((n={})[a]=r[a],n))}),{}),g=null!==(i=null===(t=r.components)||void 0===t?void 0:t.Months)&&void 0!==i?i:j_e;return n.jsx("div",dEe({className:m.join(" "),style:h,dir:o.dir,id:o.id,nonce:r.nonce,title:r.title,lang:r.lang},p,{children:n.jsx(g,{children:l.displayMonths.map((function(e,a){return n.jsx(P_e,{displayIndex:a,displayMonth:e},a)}))})}))}function B_e(e){var a=e.children,t=function(e,a){var n={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&a.indexOf(t)<0&&(n[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(t=Object.getOwnPropertySymbols(e);i<t.length;i++)a.indexOf(t[i])<0&&Object.prototype.propertyIsEnumerable.call(e,t[i])&&(n[t[i]]=e[t[i]])}return n}(e,["children"]);return n.jsx(bEe,{initialProps:t,children:n.jsx(EEe,{children:n.jsx(v_e,{initialProps:t,children:n.jsx(FEe,{initialProps:t,children:n.jsx(ZEe,{initialProps:t,children:n.jsx(l_e,{children:n.jsx(p_e,{children:a})})})})})})})}function R_e(e){return n.jsx(B_e,dEe({},e,{children:n.jsx(L_e,{initialProps:e})}))}function z_e({className:e,classNames:a,showOutsideDays:t=!0,...i}){const r={months:"flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0",month:"space-y-4",caption:"flex justify-center pt-1 relative items-center",caption_label:"text-sm font-medium",nav:"space-x-1 flex items-center",nav_button:oz(t3({variant:"outline"}),"h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"),nav_button_previous:"absolute left-1",nav_button_next:"absolute right-1",table:"w-full border-collapse space-y-1",head_row:"flex",head_cell:"text-[#6b7280] rounded-md w-8 font-normal text-[0.8rem]",row:"flex w-full mt-2",cell:"relative p-0 text-center text-sm focus-within:relative focus-within:z-20 [&:has([aria-selected])]:bg-[#f1f5f9] [&:has([aria-selected].day-outside)]:bg-[#f1f5f9]/50 [&:has([aria-selected].day-range-end)]:rounded-r-md",day:oz(t3({variant:"ghost"}),"h-8 w-8 p-0 font-normal aria-selected:opacity-100"),day_range_start:"day-range-start",day_range_end:"day-range-end",day_selected:"!bg-black !text-gray-200 hover:!bg-black hover:!text-gray-200 focus:!bg-black focus:!text-white",day_today:"bg-gray-200 text-black",day_outside:"day-outside text-[#94a3b8] aria-selected:bg-[#f1f5f9]/50 aria-selected:text-[#94a3b8]",day_disabled:"text-[#94a3b8] opacity-50",day_range_middle:"aria-selected:bg-[#f1f5f9] aria-selected:text-black",day_hidden:"invisible",...a};return n.jsx(R_e,{showOutsideDays:t,className:oz("p-3",e),classNames:r,components:{IconLeft:()=>n.jsx(uB,{className:"h-4 w-4"}),IconRight:()=>n.jsx(cB,{className:"h-4 w-4"})},...i})}z_e.displayName="Calendar";const D_e=({setScheduleTime:e,setTimezone:a,timezone:t,scheduleTime:i,setIsDirty:o,canEditScheduleTime:s})=>{const[l,u]=r.useState(s&&i&&i<(new Date).toISOString()?"Please select a time in the future":null),[c,d]=r.useState(i&&"now"!==i?Ooe(new Date(i),"HH:mm"):"00:00"),m=Intl.supportedValuesOf("timeZone").map((e=>({label:e,value:e}))),h=e=>{if(!s)return;const n=new Date(i||(new Date).toISOString()),t=Yre(new Date,15);n<new Date(t.toLocaleString("en-US",{timeZone:e}))?u("Please select a time at least 15 minutes in the future"):(u(null),a(e),o(!0))},p=a=>{if(!s)return;const n=Yre(new Date,15);new Date(a.toLocaleString("en-US",{timeZone:t}))<new Date(n.toLocaleString("en-US",{timeZone:t}))?u("Please select a time at least 15 minutes in the future"):(u(null),e(a.toISOString()),o(!0))};return n.jsx("div",{className:"w-full @container/schedule-time",children:n.jsxs("div",{className:"flex flex-col items-center justify-center h-full",children:[n.jsxs("div",{className:"flex gap-2 w-full @xl/schedule-time:flex-row flex-col items-center justify-center",children:[n.jsxs(Hne,{children:[n.jsx(Ine,{asChild:!0,children:n.jsxs(i3,{variant:"outline",disabled:!s,className:oz("bg-background w-full sm:w-[280px] justify-start text-left font-normal",!i&&"text-muted-foreground",!s&&"opacity-50 cursor-not-allowed"),children:[n.jsx(rB,{className:"mr-2 h-4 w-4"}),i?"now"===i?"Send immediately":Ooe(new Date(i),"PPP"):n.jsx("span",{children:"Pick a date"})]})}),n.jsx(Gne,{className:"w-auto p-0 z-[60] pointer-events-auto",children:n.jsx(z_e,{mode:"single",selected:i?new Date(i):void 0,onSelect:e=>{if(!e||!s)return;const[a,n]=c.split(":").map(Number);e.setHours(a,n),p(e)},disabled:e=>{const a=new Date;return a.setHours(0,0,0,0),e<a||!s},initialFocus:!0})})]}),n.jsx("input",{type:"time",value:c,onChange:e=>{if(s&&(d(e.target.value),i&&e.target.value)){const[a,n]=e.target.value.split(":").map(Number),t=new Date(i);t.setHours(a,n),p(t)}},disabled:!s,className:oz("flex h-9 w-full sm:w-[150px] rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",l&&"border-red-500",!s&&"opacity-50 cursor-not-allowed")}),n.jsx("div",{className:"w-full sm:w-[200px]",children:n.jsx(ICe,{options:m,selectedValues:[t],setSelectedValues:e=>h(e[0]),onValueChange:e=>h(e[0]),placeholder:"Select timezone...",searchPlaceholder:"Search timezone...",emptyMessage:"No timezone found",title:"Select Timezone",singleSelect:!0,canOpen:s})})]}),l&&n.jsxs("p",{className:"text-destructive text-sm mt-2 flex items-center",children:[n.jsx("span",{className:"mr-2",children:"⚠️"}),l]})]})})},O_e=({title:e="Edit Schedule Time"})=>{const t=Q2(),i=ce(),{updateAutomation:r}=oa(t?.id||""),{toast:o}=Je(),[s,l]=a.useState(null),[u,c]=a.useState(t?.triggerMetadata?.triggerType===ca.ONE_TIME?t?.triggerMetadata?.scheduledAt:null),[d,m]=a.useState(t?.triggerMetadata?.triggerType===ca.ONE_TIME&&t?.triggerMetadata?.timezone||"America/New_York"),[h,p]=a.useState(!1),[g,f]=a.useState(null);let v=a.useRef(null);const y=a.useCallback((()=>{t&&("sendNow"===s||"now"===u?r({trigger:{triggerType:ca.ONE_TIME,scheduledAt:"now"}},{onError:()=>{o({title:"Failed to update schedule time",description:"Please try again",variant:"destructive"}),i.invalidateQueries({queryKey:Re.all})}}):u&&d&&r({trigger:{triggerType:ca.ONE_TIME,scheduledAt:u,timezone:d}},{onError:()=>{o({title:"Failed to update schedule time",description:"Please try again",variant:"destructive"}),i.invalidateQueries({queryKey:Re.all})}}))}),[t,s,u,d,r,o,i]);if(a.useEffect((()=>(g&&(v.current&&clearTimeout(v.current),v.current=setTimeout((()=>{o(g),f(null)}),800)),()=>{v.current&&clearTimeout(v.current)})),[g,o]),a.useEffect((()=>{t&&h&&s&&("sendNow"===s||u)&&(y(),p(!1))}),[s,u,d,y,t,h]),a.useEffect((()=>{null===s&&t?.triggerMetadata&&"object"==typeof t.triggerMetadata&&null!==t.triggerMetadata&&"scheduledAt"in t.triggerMetadata&&("now"===t?.triggerMetadata?.scheduledAt&&t?.triggerType===ca.ONE_TIME?l("sendNow"):(t?.triggerMetadata?.scheduledAt&&c(t.triggerMetadata.scheduledAt),t?.triggerMetadata?.timezone&&m(t.triggerMetadata.timezone),l("schedule")))}),[t,s]),!t)return null;const k=t.status===pa.DRAFT,b=TD(t?.triggerType===ca.ONE_TIME?"engage:automation":"engage:broadcast");return n.jsx(zxe,{title:e,headerActions:!k&&n.jsx(cse,{title:"You can only edit the schedule time if the automation is in draft mode"}),children:n.jsx("div",{className:"@container flex-1 mx-4",children:n.jsxs("div",{className:"flex @[1000px]:flex-row flex-col gap-8 items-center",children:[n.jsxs("div",{className:"flex-1 w-full",children:[n.jsxs("div",{className:"grid grid-cols-1 @[480px]:grid-cols-2 gap-4",children:[n.jsx(s3,{selected:"sendNow"===s,title:"Immediately",subtitle:`Messages will be sent within ~2 minutes of starting the ${b.toLowerCase()}. Check the Recipients tab to see who has received a message.`,icon:n.jsx(l3.SendButton,{className:"text-primary"}),onClick:()=>{k&&(l("sendNow"),c("now"),m("America/New_York"),p(!0))},disabled:!k}),n.jsx(s3,{selected:"schedule"===s,title:"Schedule",subtitle:`Choose date and time. Any ${b.toLowerCase()} scheduled more than 2 hours from now can be unscheduled and updated.`,icon:n.jsx(l3.ScheduleButton,{className:"text-primary"}),onClick:()=>{k&&l("schedule")},disabled:!k})]}),n.jsx(Hq,{children:"schedule"===s&&n.jsx(C2,{className:"overflow-hidden mt-8",children:n.jsx("div",{className:"bg-gray-50 rounded-xl p-5 border border-gray-100 flex items-center justify-center",children:n.jsx(D_e,{setScheduleTime:e=>{c(e),p(!0)},setTimezone:e=>{m(e),p(!0)},timezone:d,scheduleTime:u,setIsDirty:p,canEditScheduleTime:k})})})})]}),u&&"now"!==u&&n.jsx(M2.div,{initial:{opacity:0,y:10,scale:.98},animate:{opacity:1,y:0,scale:1},transition:{duration:.6,ease:[.23,1,.32,1],delay:.1},className:"@[1000px]:w-80 max-w-md w-full shrink-0 h-fit p-4 bg-blue-50 rounded-xl border border-blue-100 backdrop-blur-sm",children:n.jsxs(n.Fragment,{children:[n.jsx(M2.p,{initial:{opacity:0},animate:{opacity:.8},transition:{delay:.3,duration:.4},className:"text-sm font-medium text-gray-700",children:"Currently scheduled for:"}),n.jsx(M2.p,{initial:{opacity:0},animate:{opacity:1},transition:{delay:.4,duration:.4},className:"text-md font-bold text-gray-800",children:new Date(u).toLocaleString("en-US",{weekday:"long",month:"long",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit",hour12:!0,timeZoneName:"short",timeZone:d||void 0})})]})})]})})})},K_e=()=>n.jsx("div",{children:n.jsx(O_e,{title:"Set Schedule Time"})});var H_e=(e=>(e.DAYS="days",e))(H_e||{});const I_e=(e,a)=>{switch(e){case $2.EQUALS:return"Equals";case $2.NOT_EQUALS:return"Not Equals";case $2.GREATER_THAN:return a===q2.Date?"Date on or after":"Greater than";case $2.LESS_THAN:return a===q2.Date?"Date on or before":"Less than";case $2.EXISTS:return"Exists";case $2.EQUALS_MONTH_DAY:return"Month and Day Matches";case $2.EQUALS_MONTH_DAY_YEAR:return"Month, Day, and Year Matches";case $2.BETWEEN_MONTH_DAY:return"Between Month Day";case $2.BETWEEN_MONTH_DAY_YEAR:return"Between Month Day Year";case $2.ARRAY_CONTAINS:return"Is One Of";default:return e}},G_e={email:"Email Address",phone:"Phone Number",firstName:"First Name",lastName:"Last Name"},F_e=({options:e,value:a,onChange:t,placeholder:i,className:o="",disableInput:s=!1})=>{const[l,u]=r.useState(!1);return n.jsxs(Hne,{modal:!0,open:l,onOpenChange:u,children:[n.jsx(Ine,{asChild:!0,children:n.jsxs(i3,{"aria-expanded":l,className:oz("w-full overflow-hidden justify-between",o),variant:"outline",children:[a?e.find((e=>e.value===a))?.label:i,n.jsx(mB,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),n.jsx(Gne,{className:oz("w-full min-w-[120px] max-w-[600px] p-0",o),children:n.jsxs(CMe,{children:[!s&&n.jsx(TMe,{placeholder:`${i}...`}),n.jsxs(xMe,{children:[n.jsxs(NMe,{children:["No ",i.toLowerCase()," found."]}),n.jsx(EMe,{children:e.map((e=>n.jsxs(_Me,{value:e.value,onSelect:e=>{t(e===a?"":e),u(!1)},children:[n.jsx(sB,{className:oz("mr-2 h-4 w-4",a===e.value?"opacity-100":"opacity-0")}),e.label]},e.id||e.value)))})]})]})})]})};var V_e="Switch",[J_e,U_e]=x4(V_e),[W_e,q_e]=J_e(V_e),Z_e=r.forwardRef(((e,a)=>{const{__scopeSwitch:t,name:i,checked:o,defaultChecked:s,required:l,disabled:u,value:c="on",onCheckedChange:d,form:m,...h}=e,[p,g]=r.useState(null),f=oq(a,(e=>g(e))),v=r.useRef(!1),y=!p||(m||!!p.closest("form")),[k=!1,b]=_4({prop:o,defaultProp:s,onChange:d});return n.jsxs(W_e,{scope:t,checked:k,disabled:u,children:[n.jsx(z4.button,{type:"button",role:"switch","aria-checked":k,"aria-required":l,"data-state":X_e(k),"data-disabled":u?"":void 0,disabled:u,value:c,...h,ref:f,onClick:T4(e.onClick,(e=>{b((e=>!e)),y&&(v.current=e.isPropagationStopped(),v.current||e.stopPropagation())}))}),y&&n.jsx(Q_e,{control:p,bubbles:!v.current,name:i,value:c,checked:k,required:l,disabled:u,form:m,style:{transform:"translateX(-100%)"}})]})}));Z_e.displayName=V_e;var $_e="SwitchThumb",Y_e=r.forwardRef(((e,a)=>{const{__scopeSwitch:t,...i}=e,r=q_e($_e,t);return n.jsx(z4.span,{"data-state":X_e(r.checked),"data-disabled":r.disabled?"":void 0,...i,ref:a})}));Y_e.displayName=$_e;var Q_e=e=>{const{control:a,checked:t,bubbles:i=!0,...o}=e,s=r.useRef(null),l=vwe(t),u=F6(a);return r.useEffect((()=>{const e=s.current,a=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(a,"checked").set;if(l!==t&&n){const a=new Event("click",{bubbles:i});n.call(e,t),e.dispatchEvent(a)}}),[l,t,i]),n.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:t,...o,tabIndex:-1,ref:s,style:{...e.style,...u,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})};function X_e(e){return e?"checked":"unchecked"}var ePe=Z_e,aPe=Y_e;const nPe=r.forwardRef((({className:e,...a},t)=>n.jsx(ePe,{className:oz("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input/50",e),...a,ref:t,children:n.jsx(aPe,{className:oz("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})})));nPe.displayName=ePe.displayName;const tPe=({onSelect:e,date:a,placeholder:t="Pick a date",monthDayOnly:i=!1})=>n.jsxs(Hne,{modal:!0,children:[n.jsx(Ine,{asChild:!0,children:n.jsxs(i3,{variant:"outline",className:oz("w-[200px] justify-start text-left font-normal h-9",!a&&"text-muted-foreground"),children:[n.jsx(rB,{className:"mr-2 h-4 w-4"}),a?Ooe(a,i?"MMMM d":"PPP"):n.jsx("span",{children:t})]})}),n.jsx(Gne,{className:"w-auto p-0",align:"start",children:n.jsx(z_e,{mode:"single",selected:a,onSelect:e,initialFocus:!0})})]}),iPe=Lre.union([Lre.date(),Lre.string().transform((e=>{if(/^\d{4}-\d{2}-\d{2}$/.test(e)){const[a,n,t]=e.split("-").map(Number);return new Date(a,n-1,t)}return new Date(e)}))]).refine((e=>!isNaN(e.getTime())),{message:"Invalid date"}),rPe=e=>void 0===e.value||!("number"!=typeof e.value||e.value<0)&&(e.unit===H_e.DAYS&&(("before"===e.direction||"after"===e.direction)&&"relative"===e.type)),oPe=e=>{const{date:a,fieldType:n}=e;return n===q2.Date?new Date(Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate(),0,0,0,0)):a},sPe=({fieldType:e,operator:a,value:t,onChange:i,options:o,toast:s})=>{const l=t.length>0&&"object"==typeof t[0]&&"type"in t[0]&&"relative"===t[0].type,u=t.length>0&&"object"==typeof t[0]&&"startDate"in t[0]&&"endDate"in t[0],[c,d]=r.useState((()=>{if((e===q2.Date||e===q2.DateTime)&&t.length>0){const e=iPe.safeParse(t[0]);return e.success?e.data:void 0}})),[m,h]=r.useState(l),[p,g]=r.useState(l?t[0]:{type:"relative",value:0,unit:H_e.DAYS,direction:"before"}),[f,v]=r.useState(u?t[0]:void 0),[y,k]=r.useState(!1);if(r.useEffect((()=>{a!==$2.EQUALS_MONTH_DAY&&a!==$2.EQUALS_MONTH_DAY_YEAR&&m&&(h(!1),i(c?[c]:[]))}),[a,m,c,i]),r.useEffect((()=>{if(u&&f?.startDate){k("object"==typeof f.startDate&&"type"in f.startDate)}}),[u,f]),e===q2.String||e===q2.ReachResource||e===q2.Array)return a===$2.EXISTS?null:n.jsx(ICe,{options:(o||[]).map((e=>({label:e.displayName,value:e.id}))),onValueChange:e=>{i(e)},selectedValues:t.map((e=>{const a=(o||[]).find((a=>a.id===String(e)||a.displayName===String(e)||a.id===a.displayName&&a.id===String(e)));return a?.id||String(e)})),setSelectedValues:e=>{i(e)}});if(e===q2.Date||e===q2.DateTime){const t=a===$2.EQUALS_MONTH_DAY||a===$2.EQUALS_MONTH_DAY_YEAR,r=a===$2.BETWEEN_MONTH_DAY||a===$2.BETWEEN_MONTH_DAY_YEAR,o=e=>{rPe(e)?(g(e),m&&i([e])):s({title:"Invalid relative date",description:"Please enter a valid non-negative number of days.",variant:"destructive"})},l=e=>{const a=e.startDate??f?.startDate,n=e.endDate??f?.endDate,t=a&&"object"==typeof a&&"type"in a,r=n&&"object"==typeof n&&"type"in n;if(a&&n){if(t!==r)return void s({title:"Invalid date range",description:"Both start and end dates must be of the same type (either both absolute or both relative).",variant:"destructive"});if(!t&&!r&&!(e=>!e.finalStartDate||!e.finalEndDate||e.finalStartDate<e.finalEndDate)({finalStartDate:a,finalEndDate:n}))return void s({title:"Invalid date range",description:"Start date must be before end date.",variant:"destructive"});if(t&&(!rPe(a)||!rPe(n)))return void s({title:"Invalid relative date",description:"Please enter valid relative dates.",variant:"destructive"})}v(e),a&&n&&i([{startDate:a,endDate:n}])},u=a=>{a&&(e=>e instanceof Date?!isNaN(e.getTime()):"object"==typeof e&&"type"in e&&"relative"===e.type&&rPe(e))(a)?(d(oPe({date:a,fieldType:e})),i([oPe({date:a,fieldType:e})]),h(!1)):a||(d(void 0),i([]),h(!1))},b=a=>{h(a),i(a?[p]:c?[oPe({date:c,fieldType:e})]:[])};return n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsxs("div",{className:"min-h-[36px] flex items-center",children:[(!m||!t)&&!r&&n.jsx(tPe,{date:c,onSelect:u,monthDayOnly:a===$2.EQUALS_MONTH_DAY}),t&&m&&n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx(L7,{type:"number",value:void 0===p.value?"":p.value,onChange:e=>{const a=""===e.target.value?void 0:parseInt(e.target.value,10);o({...p,value:a})},className:"w-20 h-9",min:"0","aria-label":"Relative days value"}),n.jsxs(zke,{value:p.direction,onValueChange:e=>{o({...p,direction:e})},children:[n.jsx(Kke,{className:"w-[180px] h-9","aria-label":"Relative direction",children:n.jsx(Oke,{placeholder:"Select direction..."})}),n.jsxs(Gke,{children:[n.jsx(Fke,{value:"before",children:"days before today"}),n.jsx(Fke,{value:"after",children:"days after today"})]})]})]}),r&&n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsxs("div",{className:"flex flex-col space-y-2",children:[n.jsx("div",{className:"flex items-center space-x-2",children:y?n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx(L7,{type:"number",value:f?.startDate&&"object"==typeof f.startDate&&"type"in f.startDate?f.startDate.value:"",onChange:e=>{const a={type:"relative",value:""===e.target.value?void 0:parseInt(e.target.value,10),unit:H_e.DAYS,direction:f?.startDate?.direction||"before"};rPe(a)&&(v({...f,startDate:a}),l({...f,startDate:a}))},className:"w-20 h-9",min:"0","aria-label":"Start date relative days"}),n.jsxs(zke,{value:f?.startDate&&"object"==typeof f.startDate&&"type"in f.startDate?f.startDate.direction:"before",onValueChange:e=>{const a={type:"relative",value:f?.startDate?.value,unit:H_e.DAYS,direction:e};rPe(a)&&(v({...f,startDate:a}),l({...f,startDate:a}))},children:[n.jsx(Kke,{className:"w-[180px] h-9",children:n.jsx(Oke,{placeholder:"Select direction..."})}),n.jsxs(Gke,{children:[n.jsx(Fke,{value:"before",children:"days before today"}),n.jsx(Fke,{value:"after",children:"days after today"})]})]}),n.jsx("span",{className:"w-12 text-xs font-medium text-muted-foreground flex-shrink-0",children:"Start"})]}):n.jsx(tPe,{placeholder:"Start date",date:f?.startDate instanceof Date||"string"==typeof f?.startDate?f.startDate instanceof Date?f.startDate:new Date(f.startDate):void 0,monthDayOnly:a===$2.BETWEEN_MONTH_DAY,onSelect:a=>{const n=a;n&&(v({...f,startDate:oPe({date:n,fieldType:e})}),l({...f,startDate:oPe({date:n,fieldType:e})}))}})}),n.jsx("div",{className:"flex items-center space-x-2",children:y?n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx(L7,{type:"number",value:f?.endDate&&"object"==typeof f.endDate&&"type"in f.endDate?f.endDate.value:"",onChange:e=>{const a={type:"relative",value:""===e.target.value?void 0:parseInt(e.target.value,10),unit:H_e.DAYS,direction:f?.endDate?.direction||"before"};rPe(a)&&(v({...f,endDate:a}),l({...f,endDate:a}))},className:"w-20 h-9",min:"0","aria-label":"End date relative days"}),n.jsxs(zke,{value:f?.endDate&&"object"==typeof f.endDate&&"type"in f.endDate?f.endDate.direction:"before",onValueChange:e=>{const a={type:"relative",value:f?.endDate?.value,unit:H_e.DAYS,direction:e};rPe(a)&&(v({...f,endDate:a}),l({...f,endDate:a}))},children:[n.jsx(Kke,{className:"w-[180px] h-9",children:n.jsx(Oke,{placeholder:"Select direction..."})}),n.jsxs(Gke,{children:[n.jsx(Fke,{value:"before",children:"days before today"}),n.jsx(Fke,{value:"after",children:"days after today"})]})]}),n.jsx("span",{className:"w-12 text-xs font-medium text-muted-foreground flex-shrink-0",children:"End"})]}):n.jsx(tPe,{placeholder:"End date",date:f?.endDate instanceof Date||"string"==typeof f?.endDate?f.endDate instanceof Date?f.endDate:new Date(f.endDate):void 0,monthDayOnly:a===$2.BETWEEN_MONTH_DAY,onSelect:a=>{const n=a;n&&(v({...f,endDate:oPe({date:n,fieldType:e})}),l({...f,endDate:oPe({date:n,fieldType:e})}))}})})]}),n.jsxs("div",{className:"flex items-center space-x-1 pl-1",children:[n.jsx(nPe,{id:"between-relative-date-switch",checked:y,onCheckedChange:e=>{if(k(e),e){const e={type:"relative",value:0,unit:H_e.DAYS,direction:"before"},a={type:"relative",value:0,unit:H_e.DAYS,direction:"before"};v({startDate:e,endDate:a}),l({startDate:e,endDate:a})}else{const e=new Date,a=new Date(e);a.setDate(a.getDate()+1),v({startDate:e,endDate:a}),l({startDate:e,endDate:a})}},"aria-label":"Toggle relative date input for between dates"}),n.jsx(sve,{htmlFor:"between-relative-date-switch",className:"text-xs font-normal text-muted-foreground cursor-pointer",children:"Relative"})]})]})]}),t&&n.jsxs("div",{className:"flex items-center space-x-1 pl-1",children:[n.jsx(nPe,{id:"relative-date-switch",checked:m,onCheckedChange:b,"aria-label":"Toggle relative date input"}),n.jsx(sve,{htmlFor:"relative-date-switch",className:"text-xs font-normal text-muted-foreground cursor-pointer",children:"Relative"})]})]})}if(e===q2.Number||e===q2.Integer)return a===$2.EXISTS?null:n.jsx(L7,{type:"number",value:t.length>0?String(t[0]):"",onChange:e=>i([Number(e.target.value)]),className:"w-[200px]"});if(e===q2.Boolean){if(a===$2.EXISTS)return null;const e=t.length>0&&Boolean(t[0]);return n.jsx(nPe,{checked:e,onCheckedChange:e=>i([e])})}return n.jsx(L7,{value:t.length>0?String(t[0]):"",onChange:e=>i([e.target.value]),className:"w-[200px]",disabled:!0})},lPe=({condition:e,onUpdate:t,onDuplicate:i,onDelete:r,segmentsConditions:o})=>{const{toast:s}=Je(),l=(e=>{const a=o.conditions.find((a=>a.field===e));return a||null})(e.field)||{operators:[],type:q2.String,options:void 0},u=l.operators,c=l.type,d=o.conditions.map((e=>e.field)).map((e=>({value:e,label:G_e[e]||e})));return a.useEffect((()=>{setTimeout((()=>document.body.style.pointerEvents=""),0)}),[]),n.jsxs("div",{className:"flex flex-col sm:flex-row items-stretch gap-2 min-w-0 w-full",children:[n.jsxs("div",{className:"flex flex-col sm:flex-row flex-1 items-stretch gap-2 min-w-0 w-full",children:[n.jsx("div",{className:"flex-1 min-w-0 items-center flex",children:n.jsx(F_e,{options:d,value:e.field,onChange:a=>{const n=a,i=o.conditions.find((e=>e.field===n));if(!i)return;const r=i.operators.map((e=>({value:e,label:I_e(e,i.type),fieldType:i.type}))),s=r[0]?.value;let l=[];switch(i.type){case q2.Boolean:l=[!1];break;case q2.Number:l=[0];break;case q2.Date:case q2.DateTime:l=[new Date];break;case q2.String:l=i.options?.length?i.options.map((e=>e.displayName)):[];break;default:l=[]}t({...e,field:n,operator:s,value:l})},placeholder:"Select field",className:"w-full",disableInput:!0})}),n.jsxs("div",{className:"flex-1 min-w-0 max-w-xs flex gap-2 items-center",children:[(e.operator===$2.EQUALS_MONTH_DAY||e.operator===$2.EQUALS_MONTH_DAY_YEAR||e.operator===$2.BETWEEN_MONTH_DAY||e.operator===$2.BETWEEN_MONTH_DAY_YEAR)&&n.jsx("div",{className:"flex items-center",children:(e=>{let a;switch(e){case $2.EQUALS_MONTH_DAY:a="This operator will check if only the month and day are equal. This is useful for things like birthday, where year does not matter";break;case $2.EQUALS_MONTH_DAY_YEAR:a="This operator will check if only the month and day are equal. This is useful for things like appointment dates, where specific day and month is important but year does not matter";break;case $2.BETWEEN_MONTH_DAY:a="This operator will check if the date is between the two dates, but only checking the month and the day, not the year. This is helpful for things like birthday, where year does not matter";break;case $2.BETWEEN_MONTH_DAY_YEAR:a="This operator will check if the date is between the two dates, checking the month, day and year. This is helpful for things like appointment dates, where specific day, month and year is important";break;default:return null}return n.jsx(cse,{title:a})})(e.operator)}),n.jsx(F_e,{options:u.map((e=>({value:e,label:e?I_e(e,c):e}))),value:e.operator,onChange:a=>t({...e,operator:a}),placeholder:"Select operator",className:"w-full",disableInput:!0})]}),n.jsx("div",{className:"flex-1 min-w-0 max-w-full overflow-x-auto",children:n.jsx(sPe,{fieldType:c,operator:e.operator,options:"string"==typeof e.value[0]&&e.value[0]&&Array.isArray(l.options)?[...(l.options||[]).map((e=>({displayName:e.displayName,id:e.id}))),...e.value.filter((e=>!l.options?.some((a=>a.id===e||a.displayName===e)))).map((e=>({displayName:e,id:e})))]:l.options?.map((e=>({displayName:e.displayName,id:e.id}))),value:e.value,onChange:a=>t({...e,value:a}),toast:s})})]}),n.jsxs("div",{className:"flex items-center flex-shrink-0 pl-2",children:[n.jsx(i3,{size:"icon",variant:"ghost",onClick:i,children:n.jsx(AB,{className:"h-4 w-4"})}),n.jsx(i3,{size:"icon",variant:"ghost",onClick:r,children:n.jsx(tR,{className:"h-4 w-4"})})]})]})},uPe=({onSelectStyle:e})=>{const[t,i]=a.useState(null);return n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4 p-4 max-w-4xl mx-auto",children:[n.jsx(s3,{onClick:()=>{i("ai"),e("ai")},title:"Build with AI",subtitle:"Describe your audience in plain language and let AI create the conditions",icon:n.jsx("div",{className:"h-12 w-12 rounded-full bg-primary/10 flex items-center justify-center",children:n.jsx("div",{className:"w-6 h-6 text-[hsl(var(--reach-primary))]",children:n.jsx(eR,{className:"w-full h-full"})})}),selected:"ai"===t}),n.jsx(s3,{onClick:()=>{i("manual"),e("manual")},title:"Build Manually",subtitle:`Create your ${TD("engage:segment")} by configuring conditions directly`,icon:n.jsx("div",{className:"h-12 w-12 rounded-full bg-primary/10 flex items-center justify-center",children:n.jsx("div",{className:"w-6 h-6 text-[hsl(var(--reach-primary))]",children:n.jsx(qB,{className:"w-full h-full"})})}),selected:"manual"===t})]})},cPe=({segmentId:e,setOpen:a,setTextToSegment:t,promptBuilderStyle:i,textToSegment:r})=>n.jsx("div",{children:n.jsx(kq,{className:"",children:n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsx(Sq,{className:"text-3xl font-normal",children:e?`Edit ${TD("engage:segment")}`:`Create ${TD("engage:segment")}`}),n.jsxs("div",{className:"flex items-center gap-2",children:[!1===i&&!1===r&&n.jsx(ine,{children:n.jsxs(rne,{children:[n.jsx(one,{asChild:!0,children:n.jsx(i3,{variant:"outline",size:"sm",onClick:()=>t(!0),children:n.jsx(eR,{className:"h-4 w-3"})})}),n.jsx(sne,{children:n.jsxs("p",{children:["Use AI to create ",TD("engage:segment")," by describing them in natural language"]})})]})}),n.jsx(i3,{variant:"ghost",size:"icon",onClick:()=>{a(!1)},className:"h-8 w-8",children:n.jsx(mR,{className:"h-4 w-4"})})]})]})})}),dPe=r.forwardRef((({className:e,...a},t)=>n.jsx("textarea",{className:oz("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:t,...a})));dPe.displayName="Textarea";const mPe=({setTextToSegment:e,setSegment:t})=>{const[i,r]=a.useState(""),[o,s]=a.useState(!1),{toast:u}=Je();return n.jsxs("div",{className:"flex flex-col gap-6 p-4",children:[n.jsxs("div",{className:"space-y-2",children:[n.jsx("h3",{className:"text-lg font-semibold text-foreground",children:"Describe your audience"}),n.jsx("p",{className:"text-sm text-muted-foreground",children:"Describe the audience you want to target in plain language, and our AI will create the conditions for you."})]}),n.jsxs("div",{className:"space-y-4",children:[n.jsxs(Hq,{children:[o&&n.jsx(C2,{children:n.jsx(Tq,{})}),!o&&n.jsx(C2,{children:n.jsx(dPe,{placeholder:"Describe your target audience...",className:"min-h-[120px] resize-none",value:i,onChange:e=>r(e.target.value)})})]}),n.jsx("div",{className:"flex justify-end gap-2",children:n.jsxs(i3,{onClick:async()=>{if(!i)return void u({title:"Please enter a description",description:"Please enter a description of your target audience",variant:"destructive"});s(!0);const a=await(async e=>{const{userInput:a,userCustomVerb:n}=e;return(await Be(`${l}/text-to-segment`,{method:"POST",body:JSON.stringify({text:a,userCustomVerb:n||"user"})})).data})({userInput:i,userCustomVerb:TD("engage:user")});a.success&&a.conditions?(u({title:`${TD("engage:segment")} conditions built successfully 🚀`,description:`Your ${TD("engage:segment")} conditions have been built successfully`}),t(a.conditions)):u({title:`${TD("engage:segment")} build failed`,description:"Please try again",variant:"destructive"}),e(!1),s(!1)},children:[n.jsx(eR,{className:"h-4 w-4"}),"Generate ",TD("engage:segment")]})})]})]})};function hPe({segmentId:e,setOpen:a,onSegmentUpdated:t}){const{toast:i}=Je(),o=void 0===e,[s,l]=r.useState(!1),[u,c]=r.useState({version:"1.0",id:"",name:"",description:"",logic:"AND",conditions:[]}),{segment:d,isLoading:m}=U2(e||""),{updateSegment:h}=W2(e),{createSegment:p,isCreating:g,segmentsConditions:f}=F2(),[v,y]=r.useState(!1),[k,b]=r.useState(!!o);r.useEffect((()=>{f&&c(d?{version:"1.0",id:d.id,name:d.name,description:d.description,logic:"AND",conditions:d.conditions}:{version:"1.0",id:"",name:"",description:"",logic:"AND",conditions:[{field:f.conditions[0].field,operator:f.conditions[0].operators[0],value:[]}]})}),[d,f]);const S=e=>e.value.some((e=>"object"==typeof e&&"type"in e&&"relative"===e.type)),A=e=>e.value.some((e=>"object"==typeof e&&"startDate"in e&&"endDate"in e));if(!f||m)return n.jsx("div",{className:"flex h-full items-center justify-center",children:n.jsx(Tq,{})});return n.jsxs(n.Fragment,{children:[n.jsx(cPe,{segmentId:e,setOpen:a,setTextToSegment:y,promptBuilderStyle:k,textToSegment:v},"segment-builder-header"),k?n.jsx(C2,{children:n.jsx(uPe,{onSelectStyle:e=>{"ai"===e&&y(!0),b(!1)}})},"prompt-builder-style"):n.jsx(C2,{children:n.jsxs("div",{className:"flex flex-1 flex-col",children:[n.jsx("div",{className:"flex flex-1 flex-col px-8 py-2",children:n.jsx("div",{className:"flex flex-1 flex-col gap-4 overflow-visible",children:n.jsx(Hq,{children:v?n.jsx(C2,{children:n.jsx(mPe,{setTextToSegment:y,setSegment:e=>c({...u,conditions:e})})}):n.jsxs(C2,{children:[n.jsxs("div",{className:"mb-6 grid grid-cols-2 gap-2",children:[n.jsxs("div",{className:"grid gap-2",children:[n.jsxs("div",{className:"flex items-center gap-0",children:[n.jsx(sve,{className:"text-muted-foreground text-xs",children:"Name"}),n.jsx("span",{className:"text-xs text-red-500 ml-1 align-super",children:"*"})]}),n.jsx(L7,{placeholder:`${TD("engage:segment")} name`,value:u.name,onChange:e=>c({...u,name:e.target.value})})]}),n.jsxs("div",{className:"grid gap-2",children:[n.jsx(sve,{className:"text-muted-foreground text-xs",children:"Description"}),n.jsx(L7,{placeholder:`${TD("engage:segment")} description`,value:u.description,onChange:e=>c({...u,description:e.target.value})})]})]}),u.conditions.length>0&&n.jsx("div",{className:"flex-1 overflow-y-auto pb-8",children:n.jsx("div",{className:"grid",children:n.jsx(Hq,{mode:"popLayout",children:u.conditions.map(((e,a)=>n.jsxs(M2.div,{initial:{opacity:0,x:-20},animate:{opacity:1,x:0},exit:{opacity:0,x:20},transition:{type:"spring",stiffness:300,damping:30,mass:.5},children:[a>0&&n.jsxs(M2.div,{className:"relative flex items-center gap-3 py-1",initial:{opacity:0},animate:{opacity:1},transition:{delay:.1},children:[n.jsx(M2.div,{className:"h-px flex-1 bg-border",initial:{scaleX:0},animate:{scaleX:1},transition:{type:"spring",stiffness:300,damping:30,mass:.5}}),n.jsx(M2.span,{className:"text-muted-foreground text-xs",initial:{opacity:0},animate:{opacity:1},transition:{delay:.2},children:"AND"}),n.jsx(M2.div,{className:"h-px flex-1 bg-border",initial:{scaleX:0},animate:{scaleX:1},transition:{type:"spring",stiffness:300,damping:30,mass:.5}})]}),n.jsx(lPe,{condition:e,onUpdate:e=>((e,a)=>{const n=[...u.conditions];n[e]=a,c({...u,conditions:n})})(a,e),segmentsConditions:f,onDuplicate:()=>(e=>{const a=[...u.conditions];a.splice(e+1,0,{...u.conditions[e]}),c({...u,conditions:a})})(a),onDelete:()=>(e=>{const a=u.conditions.filter(((a,n)=>n!==e));c({...u,conditions:a})})(a)})]},`${e.field}-${e.operator}-${a}`)))})})})]})})})}),n.jsx("div",{className:"border-t px-8 py-4",children:n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs(i3,v?{variant:"secondary",onClick:()=>y(!1),children:[n.jsx(qB,{className:"h-4 w-4"}),"Manual Builder"]}:{variant:"secondary",onClick:()=>{c({...u,conditions:[...u.conditions,{field:f.conditions[0].field,operator:f.conditions[0].operators[0],value:[]}]})},children:[n.jsx(VB,{className:"h-4 w-4"}),"Add Condition"]}),n.jsxs("div",{className:"flex gap-2",children:[n.jsx(i3,{variant:"destructive",onClick:()=>a(!1),children:"Cancel"}),n.jsx(i3,{variant:"default",onClick:async()=>{if(!u.name)return void i({title:"Name is required",description:"Please ensure all fields are filled out",variant:"destructive"});const{valid:n,error:r}=(e=>{for(const a of e){if(!a.field||!a.operator)return{valid:!1,error:"Please ensure all fields are filled out for condition"};if(a.operator!==$2.EXISTS&&0===a.value.length)return{valid:!1,error:`Please ensure a value is selected for ${a.field}`};if(a.operator===$2.EXISTS&&a.value.length>0)return{valid:!1,error:`EXISTS operator can only be used with an empty array for ${a.field}`};if(S(a)&&a.operator!==$2.EQUALS_MONTH_DAY&&a.operator!==$2.EQUALS_MONTH_DAY_YEAR)return{valid:!1,error:`Relative dates can only be used with the month and day or month, day, and year operator for ${a.field}`};if(S(a)&&void 0===a.value[0].value)return{valid:!1,error:`Please select a value for the relative date for ${a.field}`};if(A(a)&&a.operator!==$2.BETWEEN_MONTH_DAY&&a.operator!==$2.BETWEEN_MONTH_DAY_YEAR)return{valid:!1,error:`Between dates can only be used with the between month day or between month day year operator for ${a.field}`};if(A(a)&&a.value.length>1)return{valid:!1,error:`Between dates can only have a single value for ${a.field}`};if(A(a)){const e=a.value[0];if(!e.startDate||!e.endDate)return{valid:!1,error:`Please ensure both a start and end date are selected for ${a.field}`};if(e.startDate instanceof Date&&e.endDate instanceof Date&&e.startDate>e.endDate)return{valid:!1,error:`Start date must be before end date for ${a.field}`};if("object"==typeof e.startDate&&"type"in e.startDate&&"relative"===e.startDate.type&&"object"==typeof e.endDate&&"type"in e.endDate&&"relative"===e.endDate.type){if(!e.startDate.value||!e.endDate.value)return{valid:!1,error:`Please ensure both a start and end date are selected for ${a.field}`};if(e.startDate.direction!==e.endDate.direction)return{valid:!1,error:`Start and end date must be of the same direction for ${a.field}`};const n=e=>{if(e.unit===H_e.DAYS)return e.value??0;throw L2(e.unit,H_e)};if("before"===e.startDate.direction&&n(e.startDate)>n(e.endDate))return{valid:!1,error:`Start date must be before end date for ${a.field}`};if("after"===e.startDate.direction&&n(e.startDate)<n(e.endDate))return{valid:!1,error:`Start date must be after end date for ${a.field}`}}}}return{valid:!0,error:void 0}})(u.conditions);if(!n)return void i({title:"Conditions are invalid",description:r??"Please ensure all fields are filled out",variant:"destructive"});const o=u.conditions.map((e=>{const a=f?.conditions.find((a=>a.field===e.field));return a?.type===q2.Date&&(e.value=e.value.map((e=>e instanceof Date?e.toISOString().split("T")[0]:e))),e}));l(!0);try{e&&d?h({name:u.name,description:u.description,conditions:o},{onSuccess:()=>{i({title:`${TD("engage:segment")} updated successfully`}),a(!1),t?.(e)},onError:()=>{i({title:`Error updating ${TD("engage:segment")}`,description:"Please try again",variant:"destructive"}),t?.("error")}}):p({name:u.name,description:u.description,conditions:u.conditions},{onSuccess:e=>{i({title:`${TD("engage:segment")} created successfully`}),t?.(e?.id??!1),a(!1)},onError:()=>{i({title:`Error creating ${TD("engage:segment")}`,description:"Please try again",variant:"destructive"}),t?.("error")}})}catch(s){i({title:`Error saving ${TD("engage:segment")}`,description:"Please try again",variant:"destructive"}),t?.("error")}finally{l(!1)}},disabled:s||g,children:s||g?n.jsxs(n.Fragment,{children:[n.jsx(EB,{className:"mr-2 h-4 w-4 animate-spin"}),e?"Updating...":"Creating..."]}):e?"Update":"Create"})]})]})})]})},"manual-builder-style")]})}function pPe({open:e,setOpen:a,segmentId:t,onSegmentUpdated:i}){return n.jsx(pq,{open:e,onOpenChange:a,children:n.jsxs(yq,{className:"flex max-h-[86vh] flex-col gap-0 overflow-visible max-w-6xl w-full",hideCloseButton:!0,children:[n.jsxs(mq,{children:[n.jsxs(Sq,{children:[TD("engage:segment")," Builder"]}),n.jsxs(Aq,{children:["Build a ",TD("engage:segment")," to target your audience"]})]}),n.jsx(hPe,{segmentId:t,setOpen:a,onSegmentUpdated:e=>{i?.(e),a(!1)}})]})})}const gPe=()=>n.jsx(cse,{title:`These are estimated numbers of ${TD("engage:user",{count:2}).toLocaleLowerCase()} that are matched. The actual count may change at the time of sending. You can see the breakdown of who have opted into email or sms.`}),fPe=({value:e,label:a,percentage:t,variant:i,isLoading:r,selected:o,onClick:s})=>n.jsxs("div",{className:`rounded-md border-2 border-muted-foreground/20 px-2 pt-2 pb-3 duration-300 ease-in-out overflow-x-auto max-w-full min-w-0 ${o?"scale-[1.02] [border-color:hsl(var(--reach-primary))] shadow-lg":""} ${s?"cursor-pointer hover:bg-gray-50/50 transition-colors":""}`,style:{containerType:"inline-size"},"data-card-container":!0,onClick:s,children:[n.jsxs("div",{className:"flex flex-col gap-1 items-start w-full min-w-0",children:[n.jsx("div",{className:"flex items-baseline gap-2 w-full min-w-0 @container/num",children:r?n.jsx("span",{className:"animate-pulse",children:"..."}):n.jsxs(n.Fragment,{children:[n.jsx("span",{className:"font-semibold pl-2 break-words max-w-full min-w-0 truncate\n text-xl @[250px]/card:text-2xl @[350px]/card:text-3xl @[500px]/card:text-4xl text-primary",children:e.toLocaleString()}),void 0!==t&&e.toLocaleString().replace(/,/g,"").length<5&&n.jsxs("span",{className:"text-muted-foreground/50 text-sm hidden @[120px]/num:inline",children:["(",t,"%)"]})]})}),n.jsx("span",{className:`px-2 sm:px-2.5 py-1 text-xs font-medium rounded-lg ${{default:"bg-gray-100/50 text-gray-700",blue:"bg-blue-100/50 text-blue-700",green:"bg-green-100/50 text-green-700"}[i]}`,children:a})]}),n.jsx("p",{className:"text-sm text-muted-fore hidden @[250px]/card:inline mt-1",children:1===e?"contact":"contacts"})]}),vPe=({countResponse:e,selectedFilter:t="all",onFilterChange:i})=>{const r=a.useMemo((()=>e?.recipients?e.recipients.reduce(((a,n)=>({total:e.count,emails:a.emails+(n.email?1:0),phones:a.phones+(n.phone?1:0)})),{total:0,emails:0,phones:0}):{total:0,emails:0,phones:0}),[e]),o=e=>Math.round(e/(r.total||1)*100);return n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(Rxe,{children:"Estimated Matches"}),n.jsx(gPe,{})]}),n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 md:mb-6 w-full gap-4 mt-3 px-1",children:[n.jsx(fPe,{value:r.total,label:"Total",variant:"default",isLoading:void 0===e,selected:"all"===t,onClick:i?()=>i("all"):void 0}),n.jsx(fPe,{value:r.emails,label:"Subscribed to Email",percentage:o(r.emails),variant:"blue",isLoading:void 0===e,selected:"email"===t,onClick:i?()=>i("email"):void 0}),n.jsx(fPe,{value:r.phones,label:"Subscribed to SMS",percentage:o(r.phones),variant:"green",isLoading:void 0===e,selected:"phone"===t,onClick:i?()=>i("phone"):void 0})]})]})},yPe=e=>{const a=`${e.firstName||""} ${e.lastName||""}`.trim();return a||(e.firstName?e.firstName:e.lastName?e.lastName:e.email?e.email:e.phone?e.phone:`Unnamed ${TD("engage:user")}`)},kPe=({recipients:e,filter:a="all"})=>{const t=e?.filter((e=>{const n=!!e.email,t=!!e.phone;if(!n&&!t)return!1;switch(a){case"email":return n;case"phone":return t;default:return!0}}));return t?.length?n.jsx("div",{className:"bg-foreground/5 rounded-lg h-full relative overflow-hidden",children:n.jsx("div",{className:"absolute inset-0 w-full h-full overflow-y-auto",children:n.jsxs("table",{className:"w-full",children:[n.jsx("thead",{className:"sticky top-0 bg-foreground/5 backdrop-blur-sm",children:n.jsxs("tr",{children:[n.jsx("th",{className:"px-3 sm:px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Name"}),n.jsx("th",{className:"px-3 sm:px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Contact"})]})}),n.jsx("tbody",{className:"divide-y divide-gray-200/50",children:t.map(((e,a)=>n.jsxs("tr",{className:"hover:bg-white/50 transition-colors",children:[n.jsx("td",{className:"px-3 sm:px-4 py-3 text-sm text-gray-900",children:yPe(e)}),n.jsx("td",{className:"px-3 sm:px-4 py-3",children:n.jsxs("div",{className:"flex flex-wrap gap-1.5 sm:gap-2",children:[e.email&&n.jsx("span",{className:"px-2 sm:px-2.5 py-1 text-xs font-medium bg-blue-100/50 text-blue-700 rounded-lg",children:"Email"}),e.phone&&n.jsx("span",{className:"px-2 sm:px-2.5 py-1 text-xs font-medium bg-green-100/50 text-green-700 rounded-lg",children:"Phone"})]})})]},a)))})]})})}):null},bPe=({onSelectionChange:e,defaultValue:t="all",canEditAudience:i=!0})=>{const[r,o]=a.useState(t),s=a=>{i&&(o(a),e?.(a))};return n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(Rxe,{children:"Filter"}),!i&&n.jsx(cse,{title:"You cannot edit the audience unless you are in draft mode"})]}),n.jsxs("div",{className:"grid grid-cols-2 gap-4 p-1",children:[n.jsx(s3,{onClick:()=>s("all"),title:`All ${TD("engage:user",{count:2})}`,subtitle:"Send to everyone",icon:n.jsx(l3.UsersIcon,{className:"w-5 h-5 mb-2 text-gray-600"}),selected:"all"===r,disabled:!i}),n.jsx(s3,{onClick:()=>s("segments"),title:`Select ${TD("engage:user",{count:2})}`,subtitle:`Choose from ${TD("engage:segment",{count:2})}`,icon:n.jsx(l3.UserEdit,{className:"w-5 h-5 mb-2 text-gray-600"}),selected:"segments"===r,disabled:!i})]})]})},SPe=({segments:e,allSegments:t,onAddSegment:i,onRemoveSegment:r,setOpenCreateSegmentDialog:o,canEditAudience:s=!0})=>{const[l,u]=a.useState([]),c=t.map((e=>({label:e.name,value:e.id})));return a.useEffect((()=>{u(e)}),[e]),n.jsx("div",{children:n.jsx(ICe,{canOpen:s,selectedValues:l,setSelectedValues:u,options:c,onValueChange:a=>{const n=a.filter((a=>!e.includes(a))),t=e.filter((e=>!a.includes(e)));n.forEach(i),t.forEach(r)},placeholder:"Select segments",maxCount:5,extraCommandItems:[e=>n.jsxs(_Me,{onSelect:()=>{e(!0),o(!0)},className:"cursor-pointer",children:[n.jsx(l3.PlusIcon,{className:"w-4 h-4"}),"New"]},"new-segment")]})})},APe=({includedSegments:e,excludedSegments:t,handleAddSegment:i,handleRemoveSegment:r,setOpenCreateSegmentDialog:o,segments:s,defaultIsExcludeOpen:l=!1,canEditAudience:u=!0})=>{const[c,d]=a.useState(l);return n.jsxs("div",{children:[n.jsx(SPe,{segments:e,allSegments:s||[],onAddSegment:e=>i(e,"include"),onRemoveSegment:e=>r(e,"include"),setOpenCreateSegmentDialog:o,canEditAudience:u}),n.jsx("div",{className:"border-t border-gray-200 my-8"}),n.jsxs("div",{className:"space-y-4",children:[n.jsxs(i3,{onClick:()=>{u&&d(!c)},className:"flex items-center gap-1 transition-colors",size:"sm",children:[n.jsx(M2.div,{animate:{rotate:c?180:0},transition:{duration:.2},children:n.jsx(l3.DropdownMenuTrigger,{className:"w-5 h-5"})}),n.jsx("span",{children:"Don't send to"})]}),n.jsx(Hq,{children:c&&n.jsx(M2.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},transition:{duration:.2,ease:"easeInOut"},children:n.jsx(SPe,{canEditAudience:u,segments:t,allSegments:s||[],onAddSegment:e=>i(e,"exclude"),onRemoveSegment:e=>r(e,"exclude"),setOpenCreateSegmentDialog:o})})})]})]})},wPe=({title:e="Preview Audience"})=>{const t=Q2(),[i,r]=a.useState("all"),[o,s]=a.useState(t?.includeSegmentIds||[]),[l,u]=a.useState(t?.excludeSegmentIds||[]),[c,d]=a.useState(!1),[m,h]=a.useState(!1),[p,g]=a.useState("all"),{segments:f,isLoading:v}=V2(),{updateAutomation:y}=oa(t?.id??""),[k,b]=a.useState(void 0),S=1===o.length&&0===l.length&&void 0!==f?.find((e=>e.type===Z2.ALL_USERS&&e.id===o[0]));a.useEffect((()=>{t&&!m&&!1===v&&(1===o.length&&void 0!==f.find((e=>e.type===Z2.ALL_USERS&&e.id===o[0]))?r("all"):r("segments"),I2({includeSegments:o,excludeSegments:l}).then((e=>{b(e)})),h(!0))}),[t,S,m,o,l,f,v]);a.useEffect((()=>{t&&m&&(JSON.stringify(o)===JSON.stringify(t.includeSegmentIds)&&JSON.stringify(l)===JSON.stringify(t.excludeSegmentIds)||(y({includeSegments:o,excludeSegments:l}),I2({includeSegments:o,excludeSegments:l}).then((e=>{b(e)}))))}),[o,l,t,m,y]);const A=t?.status===pa.DRAFT;return n.jsxs(zxe,{title:e,children:[!v&&f&&m?n.jsxs("div",{className:"flex gap-8 w-full pb-4 px-4",children:[n.jsxs("div",{className:"flex flex-col flex-1 relative overflow-y-auto pb-4 [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]",children:[n.jsx(vPe,{countResponse:k,selectedFilter:p,onFilterChange:g}),n.jsx(bPe,{onSelectionChange:e=>{if(r(e),"all"===e){const e=f?.find((e=>e.type===Z2.ALL_USERS));if(!e)return;s([e.id]),u([])}},defaultValue:i,canEditAudience:A}),n.jsx(Hq,{children:"segments"===i&&n.jsx(M2.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},transition:{duration:.3,ease:"easeInOut"},className:"w-full pt-4",children:n.jsx(APe,{canEditAudience:A,includedSegments:o,excludedSegments:l,handleAddSegment:(e,a)=>{"include"===a?s((a=>[...a,e])):u((a=>[...a,e]))},handleRemoveSegment:(e,a)=>{"include"===a?s((a=>a.filter((a=>a!==e)))):u((a=>a.filter((a=>a!==e))))},setOpenCreateSegmentDialog:d,segments:f,defaultIsExcludeOpen:l.length>0})})})]}),n.jsx("div",{className:"flex flex-col flex-1 relative overflow-hidden",children:k?.recipients&&n.jsx(kPe,{recipients:k.recipients,filter:p})})]}):n.jsx("div",{children:n.jsx(Tq,{text:["Fetching segments","Finishing up"]})}),n.jsx(pPe,{open:c,setOpen:d,onSegmentUpdated:e=>{e&&s((a=>[...a,e]))}})]})},MPe=()=>n.jsx(wPe,{title:"Select Audience"}),CPe=({selectedChannels:e,setSelectedChannels:a,hasEmailChannelSenders:t,automationType:i})=>{const{toast:r}=Je(),o=[...t?[{label:"Email",value:"email",icon:l3.EmailIcon,checked:e.includes("email")}]:[],{label:"SMS",value:"sms",icon:l3.SmsIcon,checked:e.includes("sms")}];return n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{children:[n.jsx("h3",{className:"text-xl font-medium text-foreground",children:"Message Types"}),n.jsxs("p",{className:"text-muted-foreground mb-2 text-sm",children:["Select the channels you want to use in this"," ",i===ca.ONE_TIME?TD("engage:broadcast").toLowerCase():TD("engage:automation").toLowerCase()]})]}),n.jsx("div",{className:"w-full grid grid-cols-2 gap-3",children:o.map((t=>n.jsxs(Ewe,{checked:t.checked,onCheckedChange:()=>{"email"===t.value?e.includes("email")?e.includes("sms")?a(["sms"]):r({title:"Cant Remove Email",description:`At least one channel is required for an ${i===ca.ONE_TIME?TD("engage:broadcast").toLowerCase():TD("engage:automation").toLowerCase()}`,variant:"destructive"}):a([...e,"email"]):e.includes("sms")?e.includes("email")?a(["email"]):r({title:"Cant Remove SMS",description:`At least one channel is required for an ${i===ca.ONE_TIME?TD("engage:broadcast").toLowerCase():TD("engage:automation").toLowerCase()}`,variant:"destructive"}):a([...e,"sms"])},className:"relative ring-[1px] ring-border rounded-lg px-4 py-3 text-start text-muted-foreground data-[state=checked]:ring-2 data-[state=checked]:ring-primary data-[state=checked]:font-medium",children:[n.jsx(t.icon,{className:"mb-3",size:20}),n.jsx("span",{className:"font-medium tracking-tight",children:t.label}),n.jsx(_we,{className:"absolute top-2 right-2",children:n.jsx(gB,{className:"fill-primary text-primary-foreground"})})]},t.value)))})]})},TPe=()=>{const{channelSenders:e}=ate(),{channelAccounts:t}=Qne(),i=X2(),{updateCommunicationGroup:r}=Qe(),{state:{selectedChannels:o},setSelectedChannels:s}=a.useContext(Zne),l=Q2(),{data:u}=rte(),c=a.useCallback((async e=>{s(e),e.includes("email")||i?.id&&r({groupId:i?.id,params:{emailChannelSenderId:null}}),e.includes("sms")||i?.id&&r({groupId:i?.id,params:{smsChannelSenderId:null}})}),[s,r,i?.id]),d=a.useMemo((()=>pbe({channelSenders:e?.results??[],channelAccounts:t?.results??[]})),[e?.results,t?.results]),m=a.useMemo((()=>Kre({channelSenders:e?.results??[],channelAccounts:t?.results??[],smsApplication:u})),[e?.results,t?.results,u]);if(!o||!d||!m)return n.jsx("div",{className:"flex justify-center items-center flex-1 h-full bg-white rounded-2xl w-full border border-gray-200 p-6 space-y-4 relative",children:n.jsx(Tq,{text:["Fetching Content..."]})});const h=d.length>0;return n.jsx("div",{className:"flex flex-col gap-4 flex-shrink-0",children:n.jsx("div",{className:"bg-white rounded-2xl w-full border border-gray-200 p-6 space-y-4 relative",children:n.jsx(CPe,{automationType:l?.triggerMetadata?.triggerType,selectedChannels:o,setSelectedChannels:c,hasEmailChannelSenders:h})})})};var xPe=(e=>(e[e.SelectAudience=1]="SelectAudience",e[e.SelectSenders=2]="SelectSenders",e[e.EditEmailContent=3]="EditEmailContent",e[e.EditSmsContent=4]="EditSmsContent",e[e.Schedule=5]="Schedule",e[e.PreviewAndSend=6]="PreviewAndSend",e))(xPe||{});const NPe="https://assets.embedreach.com/defaults/logo-placeholder-128.png",EPe="You have not uploaded a custom logo. Please make sure to double check your email before sending!",_Pe=()=>{const e=Q2(),n=X2(),{state:{selectedChannels:t}}=a.useContext(Zne),{data:i}=rte(),{channelSenders:r}=ate(),{channelAccounts:o}=Qne(),s=Kre({channelSenders:r?.results??[],channelAccounts:o?.results??[],smsApplication:i}),l=a.useCallback((async a=>e?await(async e=>{const{currentStep:a,automation:n,communicationGroup:t,selectedChannels:i,smsChannelSenders:r}=e;switch(a){case xPe.SelectAudience:return{canMove:n.includeSegmentIds.length>0,errorMessage:"Please ensure you have selected at least one segment"};case xPe.SelectSenders:return{canMove:i.length>0,errorMessage:"Please ensure you have selected at least one channel"};case xPe.EditSmsContent:{const e=n.actionData?.find((e=>"send_communication"===e.actionType));if(!e)return{canMove:!1,errorMessage:"Please ensure you have selected either a email communication or text communication"};if(!t)return{canMove:!1,errorMessage:"Please ensure you have selected a communication group"};const a=r.find((e=>e.channelSender.id===t.smsChannelSenderId));return a?t.smsMessageBody?a.smsApplication&&a.smsApplication.status!==Ore.APPROVED?{canMove:!0,errorMessage:null,warningMessage:"You will only be able to send this message once your SMS application is approved"}:{canMove:!0,errorMessage:null}:{canMove:!1,errorMessage:"Please ensure you have a text body"}:{canMove:!1,errorMessage:"Please ensure you have selected a text sender"}}case xPe.EditEmailContent:{const e=n.actionData?.find((e=>"send_communication"===e.actionType));if(!e)return{canMove:!1,errorMessage:"Please ensure you have selected either a email communication or text communication"};if(!t)return{canMove:!1,errorMessage:"Please ensure you have selected a communication group"};if(!t.emailChannelSenderId)return{canMove:!1,errorMessage:"Please ensure you have selected a email sender"};if(!t.emailHtmlBody||!t.emailSubject)return{canMove:!1,errorMessage:"Please ensure you have a email body and subject"};let a=null;return t.emailChannelSenderId&&t.emailHtmlBody&&t.emailHtmlBody.includes(NPe)&&(a=EPe),{canMove:!0,errorMessage:null,warningMessage:a}}case xPe.Schedule:{if(!n.triggerMetadata)return{canMove:!1,errorMessage:"Please make sure to select a time to send before starting!"};if(n.triggerMetadata.triggerType!==ca.ONE_TIME)return{canMove:Boolean(n.actionData?.some((e=>"send_communication"===e.actionType&&e.actionMetadata.communicationGroupId))),errorMessage:null};if(!n.triggerMetadata?.scheduledAt)return{canMove:!1,errorMessage:`Please ensure you have set a valid future date for your ${TD("engage:broadcast")}`};if(!Boolean(n.triggerMetadata?.scheduledAt&&("now"===n.triggerMetadata.scheduledAt||"now"!==n.triggerMetadata.scheduledAt&&new Date(n.triggerMetadata.scheduledAt)>new Date)))return{canMove:!1,errorMessage:`Please ensure you have set a valid future date for your ${TD("engage:broadcast")}`};if(!Boolean(n.actionData?.some((e=>"send_communication"===e.actionType&&e.actionMetadata.communicationGroupId))))return{canMove:!1,errorMessage:"Please ensure you have set a valid email or sms communication"};const e=n.triggerMetadata;return{canMove:Boolean(e.scheduledAt&&("now"===e.scheduledAt||new Date(e.scheduledAt)>new Date)&&n.actionData?.some((e=>"send_communication"===e.actionType&&e.actionMetadata.communicationGroupId))),errorMessage:`Please ensure you have set a valid future date for your ${TD("engage:broadcast")}`}}case xPe.PreviewAndSend:return{canMove:!0,errorMessage:null};default:Fne(a,xPe)}})({currentStep:a,automation:e,communicationGroup:n,selectedChannels:t,smsChannelSenders:s}):{canMove:!1,errorMessage:`${TD("engage:broadcast")} not loaded`}),[e,n,t,s]);return{validateStep:l}},PPe=({onFinish:e,getExtraMergeFields:t,onBeforeSchedule:i})=>{const r=Q2(),o=X2(),{updateAutomation:s}=oa(r?.id||""),{estimatedMatchesStats:l}=(e=>{const{data:n}=J2({automationId:e?.id??"",includeSegments:e?.includeSegmentIds??[],excludeSegments:e?.excludeSegmentIds??[]}),t=a.useMemo((()=>n?.recipients?n.recipients.reduce(((e,a)=>({emails:e.emails+(a.email?1:0),phones:e.phones+(a.phone?1:0)})),{emails:0,phones:0}):{emails:0,phones:0}),[n?.recipients]);return{estimatedMatches:n,estimatedMatchesStats:t}})(r??void 0),{state:{selectedChannels:u}}=a.useContext(Zne),{validateStep:c}=_Pe(),[d,m]=a.useState([]),{data:h}=rte(),[p,g]=a.useState(!1),{channelSenders:f}=ate(),{channelAccounts:v}=Qne(),{updateCommunicationGroup:y}=Qe(),k=a.useRef(!1),[b,S]=a.useState(xPe.SelectAudience);if(a.useEffect((()=>{if(null!==r&&null!==o){const e=Kre({channelSenders:f?.results??[],channelAccounts:v?.results??[],smsApplication:h});m((({automation:e,communicationGroup:a,selectedChannels:t,smsChannelSenders:i})=>e?[{id:"audience",title:"Audience",step:1,isValid:()=>e.includeSegmentIds.length>0,content:n.jsx(mse,{content:n.jsx(MPe,{})},"audience"),footerConfig:{backText:"Back",nextText:"Next",hideBack:e.triggerType===ca.ONE_TIME,backDisabled:!1,nextDisabled:()=>!1}},{id:"senders",title:"Channels",step:2,isValid:()=>0!==t.length,content:n.jsx(mse,{content:n.jsx(TPe,{})},"audience"),footerConfig:{backText:"Back",nextText:"Next",hideBack:e.triggerType===ca.ONE_TIME,backDisabled:!1,nextDisabled:()=>!1}},...t.includes("email")?[{id:"edit-email-content",title:"Edit Email Content",step:3,isValid:()=>{const n=e.actionData?.find((e=>"send_communication"===e.actionType));return!!n&&!!a.emailChannelSenderId&&!(!a.emailHtmlBody||!a.emailSubject)},content:n.jsx(mse,{content:n.jsx(gbe,{})},"audience"),footerConfig:{backText:"",nextText:"",hideBack:!1,backDisabled:!1,nextDisabled:()=>!1}}]:[],...t.includes("sms")?[{id:"edit-sms-content",title:"Edit SMS Content",step:4,isValid:()=>{const n=e.actionData?.find((e=>"send_communication"===e.actionType));return!!(n&&n.actionMetadata.communicationGroupId&&a.smsChannelSenderId&&a.smsMessageBody)},content:n.jsx(mse,{content:n.jsx(ZCe,{})},"audience"),footerConfig:{backText:"Back",nextText:"Next",hideBack:!1,backDisabled:!1,nextDisabled:()=>!1}}]:[],{id:"schedule",title:"Schedule",step:5,isValid:()=>Boolean(e.triggerMetadata?.triggerType===ca.ONE_TIME&&e.triggerMetadata?.scheduledAt&&("now"===e.triggerMetadata.scheduledAt||"now"!==e.triggerMetadata.scheduledAt&&new Date(e.triggerMetadata.scheduledAt)>new Date)&&e.actionData?.some((e=>"send_communication"===e.actionType&&e.actionMetadata.communicationGroupId))),content:n.jsx(mse,{className:"flex-1",content:n.jsx(K_e,{})},"schedule"),footerConfig:{backText:"Back",nextText:"Next",hideBack:!1,backDisabled:!1,nextDisabled:()=>!1}},{id:"send",title:"Send",step:6,isValid:()=>Boolean(e.triggerMetadata?.triggerType===ca.ONE_TIME&&e.triggerMetadata?.scheduledAt&&("now"===e.triggerMetadata.scheduledAt||"now"!==e.triggerMetadata.scheduledAt&&new Date(e.triggerMetadata.scheduledAt)>new Date(Date.now()+18e4))&&e.actionData?.some((e=>"send_communication"===e.actionType&&e.actionMetadata.communicationGroupId))),content:n.jsx(mse,{className:"flex-1",content:n.jsx(Oxe,{})},"send"),footerConfig:{backText:"Back",nextText:e.triggerMetadata&&"scheduledAt"in e.triggerMetadata&&"now"===e.triggerMetadata.scheduledAt?"Send Now":"Schedule",hideBack:!1,backDisabled:!1,getInfoTooltipTitle:()=>{const e=i.find((e=>e.channelSender.id===a.smsChannelSenderId));if(e&&null!==e.smsApplication&&e.smsApplication?.status!==Ore.APPROVED)return"You cannot send this yet if you have selected a text channel and don't have an approved SMS application. Please save as draft and try again later."},nextDisabled:()=>{const e=i.find((e=>e.channelSender.id===a.smsChannelSenderId));return!(!a.smsChannelSenderId||e&&(null===e.smsApplication||e.smsApplication?.status===Ore.APPROVED))||null===a.smsChannelSenderId&&null===a.emailChannelSenderId}}}]:[])({automation:r,communicationGroup:o,selectedChannels:u,smsChannelSenders:e}))}}),[r,o,t,u,f?.results,v?.results,h]),a.useEffect((()=>{t&&!k.current&&t().then((e=>{o?.id&&(k.current=!0,y({groupId:o?.id,params:{extraMergeFields:e}}))}))}),[t,o,y]),!(r&&b&&o&&d.length))return n.jsx("div",{className:"flex-1 flex flex-col @container justify-center items-center h-[500px]",children:n.jsx(Tq,{text:[`Fetching ${TD("engage:broadcast")} data`,"Finishing up"]})});const A=async()=>{const{canMove:a,errorMessage:n,warningMessage:t}=await c(b);a?(t&&Ve({title:t,variant:"warning"}),b===xPe.PreviewAndSend?await(async()=>{if(null===o.emailChannelSenderId&&null===o.smsChannelSenderId)return void Ve({title:"Oops!",description:"Please select an email sender or sms sender",variant:"destructive"});const a=Kre({channelSenders:f?.results??[],channelAccounts:v?.results??[],smsApplication:h});if(o.smsChannelSenderId){const e=a.find((e=>e.channelSender.id===o.smsChannelSenderId));if(e?.smsApplication?.application&&e?.smsApplication.status!==Ore.APPROVED)return void Ve({title:"Oops!",description:"You cant schedule a communication with a pending sms application. Please save as a draft and re-try once the application is approved."})}if(i)try{const a=await i({estimatedEmailRecipients:l?.emails||0,estimatedSmsRecipients:l?.phones||0});!0===a?s({status:pa.ACTIVE},{onSuccess:()=>{Ve({title:`${TD("engage:broadcast")} scheduled!`}),e()},onError:()=>{Ve({title:"Oops!",description:"Please contact your administrator",variant:"destructive"})}}):Ve({title:"Oops!",description:a,variant:"destructive"})}catch(n){Ve({title:"Oops!",description:"An error occurred while checking scheduling conditions",variant:"destructive"})}else s({status:pa.ACTIVE}),Ve({title:`${TD("engage:broadcast")} scheduled!`}),e()})():S(b===xPe.SelectSenders&&1===u.length&&"sms"===u[0]||b===xPe.EditEmailContent&&1===u.length&&"email"===u[0]?b+2:b+1)):Ve({title:"Oops!",description:n,variant:"destructive"})},w=()=>{b>xPe.SelectAudience&&S(b===xPe.EditSmsContent&&1===u.length&&"sms"===u[0]?b-2:b-1)},M=()=>{e()};return n.jsxs("div",{className:"flex-1 flex flex-col @container h-full min-h-0",children:[n.jsxs("header",{className:"w-full flex items-center gap-4 h-16 px-6",children:[n.jsx("h1",{className:"text-xl font-bold leading-none",children:r.name}),n.jsx("div",{className:"flex items-center gap-4",children:n.jsx(k3,{variant:Foe(r.status),children:Vne({status:r.status,automationType:r.triggerType,vsaasManaged:!1})})})]}),n.jsxs("main",{className:"flex gap-4 flex-1 min-h-0",children:[n.jsx("div",{className:"hidden @[1000px]:block",children:n.jsx("nav",{className:"space-y-0 w-50 self-start pr-6 pl-8 pt-4 ",children:d.map((e=>n.jsx("div",{className:`\n rounded-md transition-colors\n ${e.step===b?"bg-[var(--reach-secondary)] text-[var(--reach-primary-foreground)] font-medium":e.step<b?"text-muted-foreground hover:bg-muted":"text-muted-foreground/60"}\n `,children:n.jsx(E3,{label:e.title,isActive:e.step===b,isCompleted:e.isValid(),onClick:async()=>{if(!p)if(e.step>b){const{canMove:a,errorMessage:n,warningMessages:t}=await(async e=>{if(e<=b)return{canMove:!0,errorMessage:null};g(!0);try{const a=[];for(let n=b;n<e;n++){const{canMove:e,errorMessage:t,warningMessage:i}=await c(n);if(!e)return{canMove:e,errorMessage:t};i&&a.push(i)}return{canMove:!0,errorMessage:null,warningMessages:a}}finally{g(!1)}})(e.step);if(a){if(t&&t.length>0)for(const e of t)Ve({title:e,variant:"warning"});S(e.step)}else n&&Ve({title:"Cannot navigate to this step",description:n,variant:"destructive"})}else S(e.step)}})},e.step)))})}),n.jsx("section",{className:"flex-1 mr-6 w-full relative rounded-xl bg-gray-100 ml-6 @[1000px]:ml-0",children:n.jsx("div",{className:" overflow-y-auto top-0 left-0 right-0 bottom-0 flex-1 h-full flex-col flex",children:n.jsx(C2,{className:"pt-0 h-full",children:d.find((e=>e.step===b))?.content},b)})})]}),n.jsx("footer",{className:"w-full flex justify-end shadow-md z-10 items-center h-16 px-6",children:n.jsx(dse,{handleSkipAndSaveAsDraft:M,handleBack:w,handleNext:A,hideBack:d.find((e=>e.step===b))?.footerConfig.hideBack??!1,backText:d.find((e=>e.step===b))?.footerConfig.backText??"Back",nextText:d.find((e=>e.step===b))?.footerConfig.nextText??"Next",backDisabled:d.find((e=>e.step===b))?.footerConfig.backDisabled??!1,nextDisabled:d.find((e=>e.step===b))?.footerConfig.nextDisabled()??!1,getInfoTooltipTitle:d.find((e=>e.step===b))?.footerConfig.getInfoTooltipTitle??void 0})})]})},jPe=({children:e,actionId:t})=>{const{setActionId:i}=a.useContext(K2);return a.useEffect((()=>{i(t)}),[t,i]),n.jsx("div",{children:n.jsx($ne,{children:e})})},LPe=()=>n.jsxs("div",{children:[n.jsx("div",{className:m3,children:n.jsx(l3.OneTimeBroadcast,{})}),n.jsx("h3",{className:h3,children:TD("engage:broadcast")}),n.jsx("p",{className:p3,children:"Send a single message to your current list, like announcing a sale or newsletter."})]}),BPe=()=>n.jsxs("div",{children:[n.jsx("div",{className:g3,children:"Coming Soon"}),n.jsx("div",{className:m3,children:n.jsx(l3.RealtimeActivity,{})}),n.jsx("h3",{className:h3,children:"Realtime Activity"}),n.jsx("p",{className:p3,children:"Responds to immediate actions your contacts take, like abandoned carts, form submissions, or appointment bookings."})]}),RPe=({selectedType:e,setAutomationName:a,automationName:t,setAutomationDescription:i,automationDescription:r})=>n.jsxs("div",{className:"flex flex-col items-center justify-center p-8 max-w-lg mx-auto",children:[n.jsxs("h2",{className:"text-2xl font-semibold mb-8 text-center",children:["Name Your"," ",TD(e===ca.ONE_TIME?"engage:broadcast":"engage:automation")]}),n.jsxs("div",{className:"w-full space-y-6",children:[n.jsx("div",{className:"bg-gray-50 p-6 rounded-xl items-center justify-center text-center",children:(()=>{switch(e){case ca.ONE_TIME:return n.jsx(LPe,{});case ca.TRIGGER_BASED:return n.jsx(BPe,{});default:throw Fne(e,ca)}})()}),n.jsxs("div",{className:"space-y-6",children:[n.jsxs("div",{children:[n.jsxs("div",{className:"flex items-baseline justify-between mb-2",children:[n.jsx("label",{htmlFor:"automationName",className:"block text-sm font-medium text-gray-900",children:"Name"}),n.jsx("span",{className:"text-xs text-muted-foreground",children:"Only visible to your team"})]}),n.jsx(L7,{id:"automationName",type:"text",value:t,onChange:e=>a(e.target.value),className:"w-full px-4 py-2 border border-gray-300 rounded-md focus:ring-indigo-500 focus:border-indigo-500 shadow-sm",placeholder:"e.g. April Newsletter Campaign",autoFocus:!0})]}),n.jsxs("div",{children:[n.jsxs("div",{className:"flex items-baseline justify-between mb-2",children:[n.jsx("label",{htmlFor:"automationDescription",className:"block text-sm font-medium text-gray-900",children:"Description"}),n.jsx("span",{className:"text-xs text-muted-foreground",children:"Optional"})]}),n.jsx(dPe,{id:"automationDescription",value:r,onChange:e=>i(e.target.value),className:"w-full min-h-[80px] resize-none",placeholder:`Add any helpful context for your team. If left blank, we'll generate one for you when you start the ${TD("engage:broadcast").toLowerCase()}`})]})]})]})]}),zPe=({onClose:e,automationType:t,currentStep:i,setCurrentStep:r,getExtraMergeFields:o,onBeforeSchedule:s})=>{const{createAutomation:l,isCreating:u}=ra(),[c,m]=a.useState(!1),[h,p]=a.useState(void 0),[g,f]=a.useState(void 0),[v,y]=a.useState(!1),[k,b]=a.useState(t?{name:void 0,description:void 0,type:t}:{name:void 0,description:void 0,type:void 0}),S=void 0!==k.name&&void 0!==k.type&&""!==k.name;a.useEffect((()=>{if(k.type&&!k.name&&!v){const e=new Date,a=e.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),n=e.toLocaleDateString([],{month:"long",day:"numeric"}),t=`${TD("engage:broadcast")} ${n} ${a}`,i="";b((e=>({...e,name:t,description:i}))),y(!0)}}),[k,v]);if(u||c)return n.jsx("div",{className:d3,children:n.jsx(Tq,{text:[`Creating ${TD("engage:broadcast")}`,"Finishing up"]})});return n.jsxs("div",{className:hq("relative overflow-y-auto h-full p-8",i===r3.OneTimeWizard?"max-h-[90vh]":"h-full"),children:[n.jsx(Hq,{mode:"wait",children:n.jsx(C2,{className:"h-full",children:(()=>{switch(i){case r3.ChooseAutomationType:return n.jsx(f3,{onNext:e=>{b({...k,type:e}),r(r3.SetAutomationName)}});case r3.SetAutomationName:return k.type?n.jsx(RPe,{selectedType:k.type,setAutomationName:e=>{b({...k,name:e})},automationName:k.name??"",setAutomationDescription:e=>{b({...k,description:e})},automationDescription:k.description??""}):null;case r3.OneTimeWizard:return h&&g?n.jsx(a3,{automationId:h,children:n.jsx(jPe,{actionId:g,children:n.jsx(PPe,{onFinish:()=>{e?.(h)},getExtraMergeFields:o,onBeforeSchedule:s})})}):null;default:throw L2(i,r3)}})()},i)}),i!==r3.OneTimeWizard&&n.jsx("div",{className:"pt-2",children:n.jsx(o3,{onClose:e,currentStep:i,setCurrentStep:r,isDisabled:!S,createAutomation:async()=>{if(!S||!k.name||!k.type)return;m(!0);l({name:k.name,type:k.type,description:k.description},{onSuccess:async a=>{if(a.id){const n=await(async e=>(await Be(`${d}`,{method:"POST",body:JSON.stringify(e)})).data)({}),i=j2().toString();await ze(a.id,{action:[{actionType:"send_communication",actionMetadata:{actionType:"send_communication",communicationGroupId:n.id,currentActionId:i}}]}),p(a.id),await Ze({automationId:a.id,actionId:i}),t===ca.ONE_TIME?(r(r3.OneTimeWizard),f(i),m(!1)):e?.(a.id)}else e?.("error")},onError:()=>{e?.("error")},onSettled:()=>{b({name:void 0,description:void 0,type:void 0})}})},disableBackButton:void 0!==t})})]})};function DPe({open:e,setOpen:t,onClose:i,automationType:r,getExtraMergeFields:o,replyToSettingsText:s,replyToSettingsLink:l,fromNameSettingsText:u,fromNameSettingsLink:c}){const[d,m]=a.useState(r?r3.SetAutomationName:r3.ChooseAutomationType);return a.useEffect((()=>{e&&m(r?r3.SetAutomationName:r3.ChooseAutomationType)}),[e,r]),n.jsx(Mq,{children:n.jsx(Cq,{replyToSettingsText:s,replyToSettingsLink:l,fromNameSettingsText:u,fromNameSettingsLink:c,children:n.jsx(pq,{open:e,onOpenChange:t,children:n.jsxs(yq,{hideCloseButton:d===r3.OneTimeWizard,className:`flex max-h-[86vh] ${d===r3.OneTimeWizard?"max-w-[90vw]":"max-w-4xl"} flex-col gap-0 overflow-visible p-0`,children:[n.jsx(kq,{children:n.jsx("div",{className:"flex items-center justify-between",children:n.jsxs(mq,{children:[n.jsx(Sq,{className:"text-3xl font-normal",children:"Create Automation"}),n.jsx(Aq,{children:"Create a new automation to send messages to your customers."})]})})}),n.jsx(zPe,{onClose:e=>{i?.(e),t(!1)},automationType:r,currentStep:d,setCurrentStep:m,getExtraMergeFields:o})]})})})})}const OPe=({feature:e,onClose:a,className:t})=>{const i={hidden:{opacity:0,y:20},visible:{opacity:1,y:0,transition:{duration:.4,ease:[.4,0,.2,1]}}};return n.jsxs(M2.div,{initial:"hidden",animate:"visible",exit:"exit",variants:{hidden:{opacity:0,y:20},visible:{opacity:1,y:0,transition:{duration:.4,ease:[.4,0,.2,1],staggerChildren:.1}},exit:{opacity:0,y:-20,transition:{duration:.3,ease:[.4,0,1,1]}}},className:oz("flex flex-col items-center text-center w-full max-w-[72ch] rounded-xl p-8 gap-6 border border-border mx-auto","bg-background shadow-sm",t),children:[n.jsx(M2.div,{variants:i,className:"w-20 h-20 rounded-full flex items-center justify-center bg-red-50 border-2 border-red-200",children:n.jsx(kB,{className:"w-10 h-10 text-red-500"})}),n.jsxs(M2.div,{variants:i,className:"space-y-2",children:[n.jsx("h2",{className:"text-xl font-semibold text-foreground",children:"Sandbox Mode Not Supported"}),n.jsxs("p",{className:"text-base font-medium text-muted-foreground",children:[e," is not available in sandbox mode"]})]}),n.jsx(M2.div,{variants:i,className:"max-w-xl mx-auto space-y-4",children:n.jsxs("p",{className:"text-sm text-muted-foreground",children:["To use ",e,", please switch to a production environment or contact your administrator for assistance."]})}),n.jsx(Hq,{children:a&&n.jsx(M2.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},transition:{duration:.2,ease:[.4,0,.2,1]},children:n.jsx(i3,{variant:"outline",onClick:a,className:"bg-background hover:bg-muted",children:"Got it"})})})]})},KPe=({tabs:e,activeTab:t,onTabChange:i,tabsLocation:r="left",secondaryTabs:o=!1})=>{const s=a.useRef([]),[l,u]=a.useState({width:0,left:0});a.useEffect((()=>{const a=s.current[e.findIndex((e=>e.id===t))];a&&u({width:a.offsetWidth,left:a.offsetLeft})}),[t,e]);const c=e.find((e=>e.id===t));return n.jsxs("div",{className:"flex flex-col gap-4 w-full overflow-x-hidden h-full",children:[n.jsx("div",{className:"flex items-center justify-between",children:n.jsxs("div",{className:"relative flex items-center gap-8 "+("left"===r?"w-full justify-start":"w-full justify-center"),children:[n.jsx("div",{className:"absolute bottom-0 h-[1px] rounded-full transition-all duration-300 ease-out\n bg-gradient-to-r from-primary to-primary/90\n shadow-[0_0_8px_rgba(var(--primary-rgb),0.3)]",style:{width:`${l.width}px`,left:`${l.left}px`}}),e.map(((e,a)=>n.jsx("button",{ref:e=>s.current[a]=e,onClick:()=>i(e.id),className:hq("relative px-7 py-3 transition-all duration-200 text-lg",t!==e.id&&"text-muted-foreground",o&&"text-sm"),children:e.label},e.id)))]})}),n.jsx("div",{className:"relative overflow-hidden flex-grow min-h-0",children:n.jsx("div",{className:"relative h-full",children:c?c.content:null})})]})},HPe=({primaryColor:e="var(--primary)"})=>{const a=e;return n.jsxs("div",{className:"space-y-4",children:[n.jsx(WSe,{children:"This is how your brand colors will look on email"}),n.jsx("div",{className:"bg-muted/50 p-6 rounded-lg w-full mx-auto border border-muted",children:n.jsxs("div",{className:"flex flex-col bg-background items-center space-y-4 max-w-md border rounded-lg mx-auto pb-8 overflow-hidden",children:[n.jsx("div",{className:"h-20 w-full -mb-10 bg-secondary"}),n.jsx("div",{className:"w-12 h-12 rounded-lg"}),n.jsxs("div",{className:"w-full space-y-3 flex flex-col items-center px-8 pb-4 max-w-sm",children:[n.jsx("div",{className:"h-2 rounded w-3/4 mx-auto bg-muted-foreground"}),n.jsx("div",{className:"h-2 bg-muted rounded w-full"}),n.jsx("div",{className:"h-2 bg-muted rounded w-2/3"}),n.jsx("div",{className:"h-2 bg-muted rounded w-2/3"})]}),n.jsx(i3,{className:"w-full max-w-[20ch]",style:{backgroundColor:a,borderColor:a},children:"Button"})]})})]})},IPe={all:["website"],content:()=>[...IPe.all,"content"],analyze:()=>[...IPe.all,"analyze"],brandSettings:()=>[...IPe.all,"brand-settings"]},GPe=async()=>(await Be("/web-presence/brand-settings",{method:"POST"})).data,FPe=({isLoading:e,brandSettings:t,onComplete:i})=>{const[r,o]=a.useState(0),s=[{text:"Analyzing your brand palette",icon:HB},{text:"Extracting your visual identity",icon:MB},{text:"Discovering your brand personality",icon:TB},{text:"Crafting your email style",icon:PB},{text:"Finalizing your brand profile",icon:pB}];a.useEffect((()=>{if(!e)return;const a=setInterval((()=>{o((e=>{const n=e+1;return n>=s.length?(clearInterval(a),setTimeout((()=>{i()}),1500),e):n}))}),2500);return()=>clearInterval(a)}),[e,i,s.length]);return n.jsx(M2.div,{className:"flex flex-col items-center justify-center h-full w-full bg-background p-6",initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.6},children:n.jsxs("div",{className:"flex flex-col items-center gap-8 max-w-2xl w-full",children:[n.jsx(M2.div,t?.logoUrl?{className:"w-24 h-24 sm:w-32 sm:h-32 flex items-center justify-center rounded-xl overflow-hidden bg-card shadow-md border",initial:{scale:.9},animate:{scale:1},transition:{scale:{duration:2,repeat:1/0,repeatType:"reverse",ease:"easeInOut"}},children:n.jsx("img",{src:t.logoUrl,alt:"Brand Logo",className:"max-w-full max-h-full object-contain"})}:{className:"w-24 h-24 sm:w-32 sm:h-32 rounded-xl flex items-center justify-center shadow-md border bg-primary",initial:{scale:.9},animate:{scale:1},transition:{scale:{duration:2,repeat:1/0,repeatType:"reverse",ease:"easeInOut"}},children:t?.brandName?n.jsx("span",{className:"text-4xl sm:text-5xl font-bold text-white",children:t.brandName.charAt(0)}):n.jsx(eR,{className:"w-12 h-12 sm:w-16 sm:h-16 text-white"})}),n.jsx(M2.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},transition:{duration:.5},className:"text-xl font-medium text-center text-foreground",children:s[r].text},`loading-${r}`),n.jsx("div",{className:"flex items-center justify-center space-x-8 sm:space-x-12",children:s.map(((e,a)=>{const t=a<=r,i=a===r;return n.jsxs(M2.div,{className:"relative flex items-center justify-center w-12 h-12 rounded-full border-2 "+(t?"bg-card shadow-md border-primary":"bg-muted border-muted-foreground/30"),initial:{scale:.8,opacity:.5},animate:{scale:i?1.1:1,opacity:t?1:.5},transition:{duration:.3},children:[n.jsx(e.icon,{className:"w-5 h-5 "+(t?"text-primary":"text-muted-foreground")}),i&&n.jsx(M2.div,{className:"absolute inset-0 rounded-full border-2 border-primary",initial:{scale:1,opacity:.8},animate:{scale:2.5,opacity:0},transition:{duration:3,repeat:1/0,ease:"easeOut"}})]},`step-${a}`)}))}),n.jsx(M2.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.8,duration:.6},className:"w-full",children:n.jsx("div",{className:"h-[140px] w-full max-w-lg mx-auto p-5 bg-gradient-to-br from-card/70 to-card/40 backdrop-blur-md rounded-2xl border border-border/60 shadow-lg",children:n.jsxs("div",{className:"h-full flex flex-col justify-center",children:[0===r&&n.jsxs("div",{className:"space-y-3",children:[n.jsx("h3",{className:"text-sm font-semibold text-foreground/80 text-center",children:"Extracted Color Palette"}),n.jsx("div",{className:"flex items-center justify-center gap-2 flex-wrap",children:[t?.primaryColor,...t?.secondaryColors||[]]?.slice(0,4).map(((e,a)=>n.jsx("div",{className:"flex flex-col items-center gap-1",children:n.jsx("div",{className:"w-10 h-10 rounded-xl border-2 border-white/50 shadow-md",style:{backgroundColor:e}})},a)))}),n.jsx("div",{className:"text-center text-xs text-muted-foreground",children:"Brand colors identified"})]}),1===r&&n.jsxs("div",{className:"text-center space-y-2",children:[n.jsx("h3",{className:"text-sm font-semibold text-foreground/80",children:"Brand Identity"}),t?.brandName?n.jsxs("div",{className:"space-y-1",children:[n.jsx("div",{className:"text-xl font-bold",children:t.brandName}),t.brandTagline&&n.jsxs("div",{className:"text-sm text-muted-foreground italic px-4",children:['"',t.brandTagline,'"']}),n.jsx("div",{className:"text-xs text-muted-foreground mt-2",children:"Visual identity extracted"})]}):n.jsx("div",{className:"text-sm text-muted-foreground italic",children:"Extracting brand elements..."})]}),2===r&&n.jsxs("div",{className:"text-center space-y-3",children:[n.jsx("h3",{className:"text-sm font-semibold text-foreground/80",children:"Brand Personality"}),t?.brandPersonality?n.jsxs("div",{className:"space-y-2",children:[n.jsxs("div",{className:"flex justify-center gap-4",children:[t.brandPersonality.tone&&n.jsxs("div",{className:"text-center",children:[n.jsx("div",{className:"text-xs text-muted-foreground",children:"Tone"}),n.jsx("div",{className:"text-sm font-medium text-foreground capitalize px-2 py-1 bg-background/50 rounded-md",children:t.brandPersonality.tone})]}),t.brandPersonality.voice&&n.jsxs("div",{className:"text-center",children:[n.jsx("div",{className:"text-xs text-muted-foreground",children:"Voice"}),n.jsx("div",{className:"text-sm font-medium text-foreground capitalize px-2 py-1 bg-background/50 rounded-md",children:t.brandPersonality.voice})]})]}),t.brandPersonality.values&&t.brandPersonality.values.length>0&&n.jsx("div",{className:"flex justify-center gap-1 flex-wrap",children:t.brandPersonality.values.slice(0,3).map(((e,a)=>n.jsx("span",{className:"px-2 py-1 text-xs font-medium rounded-full",children:e},a)))})]}):n.jsx("div",{className:"text-sm text-muted-foreground italic",children:"Analyzing brand tone and voice..."})]}),3===r&&n.jsxs("div",{className:"text-center space-y-3",children:[n.jsx("h3",{className:"text-sm font-semibold text-foreground/80",children:"Email Template Preview"}),n.jsxs("div",{className:"bg-background/60 rounded-lg p-3 border border-border/30",children:[n.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[n.jsx("div",{className:"w-4 h-4 rounded"}),n.jsx("div",{className:"text-xs font-medium text-foreground",children:t?.brandName||"Your Brand"})]}),n.jsxs("div",{className:"text-xs text-muted-foreground text-left",children:["Email styling applied with your brand colors",t?.brandPersonality?.tone&&`, ${t.brandPersonality.tone} tone`,", and visual identity"]})]})]}),4===r&&n.jsxs("div",{className:"text-center space-y-2",children:[n.jsx("h3",{className:"text-sm font-semibold text-foreground/80",children:"Brand Kit Complete"}),n.jsxs("div",{className:"grid grid-cols-3 gap-2 text-center",children:[n.jsxs("div",{className:"bg-background/40 rounded-lg p-2",children:[n.jsx("div",{className:"text-xs text-muted-foreground",children:"Identity"}),n.jsx("div",{className:"text-sm font-medium text-foreground",children:t?.brandName?"✓":"—"})]}),n.jsxs("div",{className:"bg-background/40 rounded-lg p-2",children:[n.jsx("div",{className:"text-xs text-muted-foreground",children:"Colors"}),n.jsx("div",{className:"text-sm font-medium text-foreground",children:t?.primaryColor?"✓":"—"})]}),n.jsxs("div",{className:"bg-background/40 rounded-lg p-2",children:[n.jsx("div",{className:"text-xs text-muted-foreground",children:"Personality"}),n.jsx("div",{className:"text-sm font-medium text-foreground",children:t?.brandPersonality?.tone?"✓":"—"})]})]})]}),(0===r&&!t?.primaryColor&&!t?.colorPalette||1===r&&!t?.brandName||2===r&&!t?.brandPersonality)&&n.jsxs("div",{className:"text-center",children:[n.jsx("div",{className:"text-sm text-muted-foreground italic",children:"Analyzing brand data..."}),n.jsx("div",{className:"flex justify-center gap-1 mt-2",children:[...Array(3)].map(((e,a)=>n.jsx(M2.div,{className:"w-1.5 h-1.5 rounded-full bg-muted-foreground/50",animate:{scale:[1,1.2,1],opacity:[.5,1,.5]},transition:{duration:1,repeat:1/0,delay:.2*a}},a)))})]})]})})},`content-${r}`)]})})},VPe=({setAutoParse:e,onBrandSettingsGenerated:t})=>{const{data:i,updateWebsite:r,isUpdatingWebsite:o}=qke(),s=ke({mutationFn:GPe,mutationKey:IPe.brandSettings(),onSuccess:()=>{Ve({title:"Brand settings generated successfully!",description:"Your brand identity has been analyzed."})},onError:()=>{Ve({title:"Error generating brand settings",description:"Please try again.",variant:"destructive"})}}),[l,u]=a.useState(i?.website||""),[c,d]=a.useState(!1),[m,h]=a.useState(null),[p,g]=a.useState(!1);return n.jsxs("div",{className:"flex flex-col pt-4 pb-12",children:[n.jsx("div",{className:"flex-1 flex flex-col",children:n.jsx("div",{className:"flex-1 p-4 space-y-4",children:n.jsxs(Hq,{mode:"wait",children:[!p&&n.jsx(M2.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"h-full flex flex-col",children:n.jsxs("div",{className:"flex-1 flex flex-col items-center justify-center px-6 space-y-8",children:[n.jsxs("div",{className:"space-y-2 w-full max-w-md",children:[n.jsx("label",{className:"text-sm font-medium text-gray-700 block",children:"Your Website URL"}),n.jsxs("div",{className:"flex flex-col sm:flex-row gap-2 items-center",children:[n.jsx(L7,{type:"url",value:l,onChange:e=>u(e.target.value),placeholder:"https://example.com",className:"flex-1",disabled:!c}),n.jsx(Hq,{mode:"wait",children:c?n.jsxs(M2.div,{initial:{opacity:0,x:20},animate:{opacity:1,x:0},exit:{opacity:0,x:-20},className:"flex gap-2",children:[n.jsx(i3,{variant:"outline",size:"sm",onClick:()=>{d(!1),u(i?.website||"")},className:"w-full sm:w-auto",children:"Cancel"}),n.jsx(i3,{size:"sm",onClick:async()=>{try{r(l),d(!1)}catch(e){}},disabled:o||!l,className:"w-full sm:w-auto",children:o?n.jsx(Tq,{}):"Save Changes"})]},"save"):n.jsx(M2.div,{initial:{opacity:0,x:20},animate:{opacity:1,x:0},exit:{opacity:0,x:-20},children:n.jsx(i3,{variant:"outline",size:"sm",onClick:()=>d(!0),className:"w-full sm:w-auto",children:"Edit URL"})},"edit")})]})]}),n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4 w-full max-w-2xl",children:[n.jsxs("div",{className:"bg-gray-50 p-4 rounded-lg border border-gray-100",children:[n.jsx("h3",{className:"font-medium text-gray-900 mb-2",children:"What we'll analyze"}),n.jsxs("ul",{className:"text-sm text-gray-600 space-y-1",children:[n.jsx("li",{children:"• Your brand colors and color palette"}),n.jsx("li",{children:"• Your logo (if detectable)"}),n.jsx("li",{children:"• Your brand name and tagline"}),n.jsx("li",{children:"• Your brand's tone and personality"})]})]}),n.jsxs("div",{className:"bg-gray-50 p-4 rounded-lg border border-gray-100",children:[n.jsx("h3",{className:"font-medium text-gray-900 mb-2",children:"How it helps you"}),n.jsx("p",{className:"text-sm text-gray-600",children:"Our AI will automatically extract your brand assets to create consistently styled emails that match your website. This helps maintain brand recognition and professionalism in all your communications."})]})]}),n.jsx(M2.p,{initial:{opacity:0},animate:{opacity:1},transition:{delay:.3},className:"text-sm text-muted-foreground max-w-md text-center",children:"We'll use AI to analyze your website and extract your brand elements to create perfectly matched email templates."})]})},"url-confirmation"),p&&m&&n.jsx(M2.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"h-full",children:n.jsx(FPe,{isLoading:p,brandSettings:m,onComplete:()=>{g(!1),Ve({title:"Brand settings generated successfully!",description:"Your brand identity has been analyzed."})}})},"analyzing"),p&&!m&&n.jsx(M2.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"my-12 h-full flex flex-col items-center justify-center",children:n.jsxs(M2.div,{className:"flex flex-col items-center gap-8",initial:{backgroundPosition:"0% 0%"},animate:{backgroundPosition:"100% 100%"},transition:{duration:5,repeat:1/0,repeatType:"reverse"},children:[n.jsxs(M2.div,{className:"relative w-24 h-24 flex items-center justify-center",initial:{scale:.9},animate:{scale:1},transition:{scale:{duration:2,repeat:1/0,repeatType:"reverse",ease:"easeInOut"}},children:[n.jsx(UB,{className:"w-12 h-12 text-primary drop-shadow-md"}),n.jsx(M2.div,{className:"absolute inset-0 rounded-full border-2",style:{borderColor:"var(--primary)"},initial:{scale:.8,opacity:0},animate:{scale:2.5,opacity:[0,.8,0]},transition:{duration:3,repeat:1/0,ease:"easeOut",repeatType:"loop"}})]}),n.jsxs("div",{className:"space-y-2 pt-16 text-center",children:[n.jsx("h3",{className:"text-lg font-semibold",children:"Analyzing your website"}),n.jsx(Hq,{mode:"wait",children:n.jsx(M2.p,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},transition:{duration:.5},className:"text-muted-foreground/50 max-w-md",children:"Generating your brand's unique visual identity and personality"},"loading-message")})]})]})},"pre-analyzing")]})})}),!p&&n.jsxs(bq,{className:"text-center sm:justify-center",children:[n.jsx(i3,{variant:"outline",onClick:()=>{e(!1)},className:"gap-1",children:"Go Back"}),n.jsxs(i3,{onClick:async()=>{try{g(!0);const e=await s.mutateAsync();h(e),t&&t(e)}catch(e){g(!1),h(null),Ve({title:"Error generating brand settings",description:"Please try again.",variant:"destructive"})}},disabled:!l||s.isPending,className:"gap-1",children:[n.jsx(eR,{className:"h-4 w-4 text-amber-500"}),s.isPending?n.jsx(Tq,{}):"Analyze Website"]})]})]})},JPe=()=>{const{data:e,updateWebsite:t,isUpdatingWebsite:i}=qke(),[r,o]=a.useState(e?.website||""),[s,l]=a.useState(!1),{toast:u}=Je();return n.jsx("div",{className:"w-full h-full flex flex-col bg-background rounded-lg",children:n.jsx("div",{className:"flex-1 min-h-0 overflow-y-auto",children:n.jsx(Hq,{mode:"wait",children:n.jsx(M2.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"flex flex-col h-full",children:n.jsx("div",{className:"flex-1 flex flex-col items-center justify-center space-y-8",children:n.jsx("div",{className:"space-y-2 w-full max-w-lg",children:n.jsxs("div",{className:"flex flex-col sm:flex-row gap-2 items-center h-full",children:[n.jsx(L7,{type:"url",value:r,onChange:e=>o(e.target.value),placeholder:"https://example.com",className:"flex-1 m-1",disabled:!s}),n.jsx(Hq,{mode:"wait",children:s?n.jsxs(M2.div,{initial:{opacity:0,x:20},animate:{opacity:1,x:0},exit:{opacity:0,x:-20},className:"flex gap-2 items-center",children:[n.jsx(i3,{variant:"outline",size:"sm",onClick:()=>{l(!1),o(e?.website||"")},className:"w-full sm:w-auto",children:"Cancel"}),n.jsx(i3,{size:"sm",onClick:async()=>{if(Lre.string().url().safeParse(r).success)try{t(r,{onSuccess:()=>{l(!1)}})}catch(e){}else u({title:"Invalid website URL",description:"Please enter a valid website URL (e.g. including http://)",variant:"destructive"})},disabled:i||!r,className:"w-full sm:w-auto",children:i?n.jsx(Tq,{}):"Save Changes"})]},"save"):n.jsx(M2.div,{initial:{opacity:0,x:20},animate:{opacity:1,x:0},exit:{opacity:0,x:-20},children:n.jsx(i3,{variant:"outline",size:"sm",onClick:()=>{l(!0)},className:"w-full sm:w-auto",children:"Edit URL"})},"edit")})]})})})},"url-confirmation")})})})},UPe=({setAutoParse:e})=>{const{isLoading:a}=qke();return n.jsxs("div",{className:"p-6 rounded-xl border-[5px] bg-background flex flex-col gap-3",style:{border:"5px solid transparent",background:"linear-gradient(white, white) padding-box, linear-gradient(164.56deg, rgba(152,194,255,0.6) 1%, rgba(194,177,231,0.6) 99%) border-box"},children:[n.jsxs("div",{className:"px-1 flex flex-col gap-3",children:[n.jsx("h3",{className:"font-medium text-sm leading-none",children:"Automatically add your brand to your emails"}),n.jsx("p",{className:"text-sm text-muted-foreground font-normal leading-none",children:"How your brand expresses itself in communication"})]}),n.jsxs("div",{className:"flex gap-4 items-center",children:[n.jsx(JPe,{}),n.jsxs(i3,{type:"button",onClick:async()=>{e(!0)},disabled:a,className:"flex gap-1 items-center",children:[n.jsx(eR,{className:"h-4 w-4 text-amber-500"}),`${nwe}`]})]})]})},WPe=Lre.object({brandName:Lre.string().min(1,"Brand name is required"),logoUrl:Lre.string().optional(),logoBase64:Lre.string().optional(),primaryColor:Lre.string().regex(/^#[0-9A-F]{6}$/i,"Invalid color format")}),qPe=["#000000","#2563eb","#059669","#dc2626","#9333ea","#ea580c","#0891b2","#be123c","#4338f5","#16a34a"],ZPe=a.forwardRef((({onSubmit:e,defaultValues:t},i)=>{const r=a.useRef(null),[o,s]=a.useState(t?.logoUrl||null),[l,u]=a.useState(null),[c,d]=a.useState(null),[m,h]=a.useState(!1),p=HSe({resolver:PAe(WPe),defaultValues:{brandName:t?.brandName||"",logoUrl:t?.logoUrl||"",primaryColor:t?.primaryColor||qPe[0]},mode:"onBlur"});a.useEffect((()=>{if(t&&null===c){const e={brandName:t.brandName||"",logoUrl:t.logoUrl||"",primaryColor:t.primaryColor||qPe[0]};p.reset(e),d(e),s(t.logoUrl||null)}}),[t,p,c]);const g=e=>{u(null);const a=e.target.files?.[0];if(a){if(!["image/png","image/jpeg"].includes(a.type))return void u("Only PNG and JPEG files are supported. Please upload a valid image.");const e=new FileReader;e.onloadend=()=>{const a=e.result;s(a),p.setValue("logoBase64",hwe(a))},e.readAsDataURL(a)}},f=async a=>{await e(a)};return a.useImperativeHandle(i,(()=>({submit:()=>{p.handleSubmit(f)()},isDirty:()=>{if(!c)return!1;const e=p.getValues();return e.brandName!==c.brandName||e.logoUrl!==c.logoUrl||e.primaryColor!==c.primaryColor}}))),n.jsxs(n.Fragment,{children:[!1===m&&n.jsx("div",{className:"px-8 pt-8",children:n.jsx(UPe,{setAutoParse:h})}),m?n.jsx("div",{className:"px-8",children:n.jsx(VPe,{setAutoParse:h,onBrandSettingsGenerated:e=>{h(!1),p.setValue("brandName",e.brandName||""),p.setValue("logoBase64",e.logoUrl?hwe(e.logoUrl):""),p.setValue("primaryColor",e.primaryColor||qPe[0]),s(e.logoUrl||null)}})}):n.jsx(ISe,{...p,children:n.jsxs("form",{onSubmit:p.handleSubmit(f),className:"space-y-6 p-8",children:[n.jsx(FSe,{control:p.control,name:"brandName",render:({field:e})=>n.jsxs(USe,{children:[n.jsx(WSe,{children:"Brand Name"}),n.jsx(qSe,{children:n.jsx(L7,{placeholder:"Enter your brand name",...e})}),n.jsx(ZSe,{})]})}),n.jsx(FSe,{control:p.control,name:"logoUrl",render:()=>n.jsxs(USe,{children:[n.jsx(WSe,{children:"Brand Logo"}),n.jsx(qSe,{children:n.jsxs("div",{className:"flex items-center gap-4",children:[n.jsx("div",{className:"w-24 h-24 rounded-lg border-2 border-dashed border-border flex items-center justify-center bg-muted overflow-hidden",children:o?n.jsx("img",{src:o,alt:"Brand logo preview",className:"w-full h-full object-contain"}):n.jsx(sR,{className:"h-8 w-8 text-muted-foreground"})}),n.jsxs("div",{className:"flex flex-col gap-2 max-w-xs w-full",children:[n.jsx("input",{type:"file",ref:r,onChange:g,accept:"image/png, image/jpeg",className:"hidden"}),n.jsxs(i3,{type:"button",variant:"outline",onClick:()=>r.current?.click(),disabled:p.formState.isSubmitting,children:[n.jsx(sR,{className:"w-4 h-4 mr-2"}),"Upload Logo"]}),n.jsx("span",{className:"text-xs text-muted-foreground mt-1 break-words whitespace-normal",children:"Upload a square PNG or JPEG (min. 100×100px) with white or transparent background for best results"}),l&&n.jsx("span",{className:"text-xs text-destructive mt-1",children:l})]})]})}),n.jsx(ZSe,{})]})}),n.jsx(FSe,{control:p.control,name:"primaryColor",render:({field:e})=>{const a=e.value||p.getValues("primaryColor");return n.jsxs(USe,{children:[n.jsx(WSe,{children:"Primary Color"}),n.jsx(qSe,{children:n.jsxs("div",{className:"flex-1 max-w-xs space-y-3",children:[n.jsxs("div",{className:"relative",children:[n.jsx(HB,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none z-10"}),n.jsx(L7,{type:"text",value:a,onChange:a=>e.onChange(a.target.value),className:"font-mono text-sm pl-10 pr-12",placeholder:qPe[3],disabled:p.formState.isSubmitting}),n.jsx("input",{type:"color",value:a,onChange:a=>e.onChange(a.target.value),className:"sr-only",disabled:p.formState.isSubmitting,id:"colorPicker"}),n.jsx(i3,{variant:"ghost",size:"sm",onClick:()=>document.getElementById("colorPicker")?.click(),className:"absolute right-2 top-1/2 transform -translate-y-1/2 w-6 h-6 rounded-sm border border-border cursor-pointer hover:border-border/80 transition-colors",style:{backgroundColor:a},disabled:p.formState.isSubmitting})]}),n.jsx("div",{className:"flex gap-3 flex-wrap",children:qPe.map((t=>n.jsx(i3,{type:"button",variant:"ghost",size:"sm",className:"w-4 h-4 p-0 rounded-full border "+(a===t?"ring-2 ring-gray-400":""),style:{backgroundColor:t},onClick:()=>e.onChange(t),disabled:p.formState.isSubmitting},t)))})]})}),n.jsx(ZSe,{})]})}}),n.jsx(HPe,{primaryColor:p.watch("primaryColor")})]})})]})}));ZPe.displayName="BrandSettingsForm";const $Pe=()=>{const{data:e}=qke();return{brandDefaults:{brandName:e?.branding?.brandName||e?.name,brandTagline:e?.branding?.brandTagline,logoUrl:e?.branding?.logoUrl,primaryColor:e?.branding?.primaryColor,secondaryColors:e?.branding?.secondaryColors,brandPersonality:e?.branding?.brandPersonality},businessDefaults:{company:{name:e?.name||"",website:e?.website||"",address1:"",address2:"",city:"",stateProvince:"",zipCode:"",country:"US"},contact:{firstName:"",lastName:"",email:"",phoneNumber:""}},meResponse:e}},YPe=()=>{const{toast:e}=Je(),{updateBrandSettings:a,updateBusinessSettings:n}=qke(),{updateChannelSender:t}=nte(),{channelSenders:i}=ate(),{channelAccounts:r}=Qne();return{handleBrandSubmit:async(n,t)=>{try{a({brandName:n.brandName,primaryColor:n.primaryColor,logoUrl:n.logoUrl,logoBase64:n.logoBase64},{onSuccess:()=>{t?.()}})}catch(i){e({title:"Failed to save brand settings",description:"Please try again",variant:"destructive"})}},handleBusinessSubmit:async(a,t)=>{try{n(a,{onSuccess:()=>{t?.()}})}catch(i){e({title:"Failed to save business settings",description:"Please try again",variant:"destructive"})}},handleEmailSubmit:async(a,n)=>{try{const o=pbe({channelSenders:i?.results??[],channelAccounts:r?.results??[]}).find((e=>e.channelSenderId===a.channelSenderId));if(!o)return;t({toUpdate:{channelSenderMetadata:{...o.channelSender.channelSenderMetadata,emailReplyTo:a.replyToEmail,emailFromName:a.displayName}},id:o.channelSender.id},{onSuccess:()=>{e({title:"Email channel settings saved 🚀"}),n?.()},onError:()=>{e({title:"Failed to save email channel settings",description:"Please try again",variant:"destructive"})}})}catch(o){e({title:"Failed to save email channel settings",description:"Please try again",variant:"destructive"})}},handleSMSSubmit:async a=>{try{await new Promise((e=>setTimeout(e,500))),e({title:"SMS channel settings saved 🚀"}),a?.()}catch(n){e({title:"Failed to save SMS channel settings",description:"Please try again",variant:"destructive"})}}}},QPe=a.createContext(null),XPe=()=>{const e=a.useContext(QPe);if(!e)throw new Error("useEngageSettingsContext must be used within EngageSettingsProvider");return e},eje=({isOnboarding:e=!1,onNext:t,onBack:i,title:r,description:o})=>{const{navigation:s}=XPe(),{isUpdatingBrandSettings:l,isLoading:u}=qke(),{brandDefaults:c}=$Pe(),{handleBrandSubmit:d}=YPe(),m=a.useContext(nAe),h=a.useRef(null),p=t||m?.goToNextStep||s?.goToNextStep||(()=>{});return n.jsx(CAe,{title:r||(e?GAe:OAe),description:o||(e?"Add your logo, colors, and brand voice to match your identity across all communication.":"Configure your brand identity and visual elements."),onBack:i||m?.goToPreviousStep||s?.goToPreviousStep||(()=>{}),onNext:()=>h.current?.submit(),isSubmitting:l,submitLabel:e?void 0:"Save",mode:e?"onboarding":"settings",children:u?n.jsx("div",{className:"flex justify-center items-center h-full py-10",children:n.jsx(Tq,{})}):n.jsx(ZPe,{ref:h,onSubmit:a=>d(a,e?p:void 0),defaultValues:c})})},aje=({schema:e,defaultValues:a,onSubmit:n})=>{const{toast:t}=Je(),i=HSe({resolver:PAe(e),defaultValues:a,mode:"onSubmit",reValidateMode:"onSubmit"});return{form:i,handleSubmit:i.handleSubmit((async e=>{try{await n(e)}catch(a){throw t({title:"Validation Error",description:a instanceof Error?a.message:"Please check your inputs",variant:"destructive"}),a}})),isSubmitting:i.formState.isSubmitting,errors:i.formState.errors}};var nje=(e=>(e.STANDARD="standard",e))(nje||{});const tje=Lre.object({type:Lre.literal("standard"),company:Lre.object({name:Lre.string().describe("The legal name of the company"),address1:Lre.string().optional(),address2:Lre.string().optional(),city:Lre.string().optional(),stateProvince:Lre.string().optional(),zipCode:Lre.string().optional(),country:Lre.string().length(2).optional()})}),ije=Lre.discriminatedUnion("type",[tje]),rje=({isOnboarding:e=!1,onNext:t,onBack:i,onSkip:r,title:o,description:s,showPrefilled:l=!1,prefilledData:u})=>{const{navigation:c}=XPe(),{isUpdatingBusinessSettings:d}=qke(),{businessDefaults:m}=$Pe(),{handleBusinessSubmit:h}=YPe(),p=a.useContext(nAe),g=t||p?.goToNextStep||c?.goToNextStep||(()=>{});return n.jsx(CAe,{title:o||(e?FAe:KAe),description:s||(e?"Configure your business information for SMS toll-free number registration.":"Provide your business details and authorized representative information."),onBack:i||p?.goToPreviousStep||c?.goToPreviousStep||(()=>{}),onNext:()=>{const e=document.querySelector("form");e?.dispatchEvent(new Event("submit",{bubbles:!0,cancelable:!0}))},onSkip:r,isSubmitting:d,submitLabel:e?void 0:"Save",mode:e?"onboarding":"settings",children:n.jsxs("div",{className:"space-y-4",children:[l&&u&&n.jsx(sje,{}),n.jsx(oje,{onSubmit:a=>h(a,e?g:void 0),defaultValues:u||m})]})})},oje=({onSubmit:e,defaultValues:a,context:t="email"})=>{const{form:i,handleSubmit:r}=aje({schema:ije,defaultValues:{type:nje.STANDARD,company:{name:a?.company?.name||"",address1:a?.company?.address1||"",address2:a?.company?.address2||"",city:a?.company?.city||"",stateProvince:a?.company?.stateProvince||"",zipCode:a?.company?.zipCode||"",country:a?.company?.country||""}},onSubmit:e});return n.jsx(ISe,{...i,children:n.jsxs("form",{onSubmit:r,className:"space-y-6 p-8",children:[n.jsx(wAe,{title:"",children:n.jsx(owe,{control:i.control,context:t})}),n.jsx(i3,{type:"submit",className:"sr-only",children:"Submit"})]})})},sje=()=>n.jsx("div",{className:"bg-primary/10 border border-primary/20 rounded-lg p-4 mx-auto",children:n.jsxs("div",{className:"flex items-start gap-3",children:[n.jsx(sB,{className:"w-5 h-5 text-primary flex-shrink-0 mt-0.5"}),n.jsx("p",{className:"text-primary text-sm text-left",children:"Your business information has been automatically filled from your account settings. You can review and edit these details if needed."})]})}),lje=Lre.object({displayName:Lre.string().min(1,"Display name is required"),channelSenderId:Lre.string().min(1,"Channel sender is required"),replyToEmail:Lre.string().email("Please enter a valid email address")}),uje=({onSubmit:e})=>{const{channelSenders:t,isLoading:i}=ate(),{channelAccounts:r,isLoading:o}=Qne(),s=a.useRef(!1),{form:l,handleSubmit:u}=aje({schema:lje,defaultValues:{channelSenderId:"",displayName:"",replyToEmail:""},onSubmit:e}),c=a.useMemo((()=>pbe({channelSenders:t?.results??[],channelAccounts:r?.results??[]})),[t?.results,r?.results]),d=a.useMemo((()=>c.map((e=>({value:e.channelSenderId,label:e.fullDomain,description:e.channelSender.channelSenderMetadata.emailReplyTo||"No reply-to set"})))),[c]);return a.useEffect((()=>{if(c.length>0&&!s.current){s.current=!0;const e=c[0],{emailFromName:a,emailReplyTo:n}=e.channelSender.channelSenderMetadata;l.reset({channelSenderId:e.channelSenderId,displayName:a||"",replyToEmail:n||""})}}),[c,l]),a.useEffect((()=>{const e=l.watch(((e,{name:a})=>{if("channelSenderId"===a&&e.channelSenderId&&s.current){const a=c.find((a=>a.channelSenderId===e.channelSenderId));if(a){const{emailFromName:e,emailReplyTo:n}=a.channelSender.channelSenderMetadata;e&&l.setValue("displayName",e),n&&l.setValue("replyToEmail",n)}}}));return()=>e.unsubscribe()}),[c,l]),i||void 0===t||o||void 0===r?n.jsx("div",{className:"flex justify-center items-center h-full py-10",children:n.jsx(Tq,{})}):n.jsx(ISe,{...l,children:n.jsxs("form",{onSubmit:u,className:"space-y-6 p-8",children:[n.jsxs("div",{className:"space-y-2",children:[n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(sve,{children:"Account Email"}),n.jsx(cse,{title:"This is the address your recipients will see as the sender of the email.",size:"small"})]}),n.jsx(AAe,{control:l.control,name:"channelSenderId",label:"",placeholder:"Select a sender",options:d})]}),n.jsxs("div",{className:"space-y-2",children:[n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(sve,{children:"Display Name"}),n.jsx(cse,{title:"This is the name that appears in the 'From' field alongside your sender email.",size:"small"})]}),n.jsx(SAe,{control:l.control,name:"displayName",label:"",placeholder:"Name that appears in the From field"})]}),n.jsxs("div",{className:"space-y-2",children:[n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(sve,{children:"Reply-to Email"}),n.jsx(cse,{title:"Replies from recipients will go to this email address. It can be different from the default sender address.",size:"small"})]}),n.jsx(SAe,{control:l.control,name:"replyToEmail",label:"",placeholder:"Replies from recipients will go to this email",type:"email"})]}),n.jsx(i3,{type:"submit",className:"sr-only",children:"Submit"})]})})},cje=({isOnboarding:e=!1,onNext:t,onBack:i,title:r,description:o})=>{const{navigation:s}=XPe(),{handleEmailSubmit:l}=YPe(),{isUpdating:u}=nte(),c=a.useContext(nAe),d=t||c?.goToNextStep||s?.goToNextStep||(()=>{});return n.jsx(CAe,{title:r||(e?VAe:HAe),description:o||(e?"Configure your email settings to ensure proper delivery and branding of your email communications.":"Configure your email sending settings and preferences."),onBack:i||c?.goToPreviousStep||s?.goToPreviousStep||(()=>{}),onNext:()=>{const e=document.querySelector("form");e?.dispatchEvent(new Event("submit",{bubbles:!0,cancelable:!0}))},isSubmitting:u,submitLabel:e?void 0:"Save",mode:e?"onboarding":"settings",children:n.jsx(uje,{onSubmit:a=>l(a,e?d:void 0)})})},dje=({hideSubmitButton:e=!1,formRef:t,onNeedsApplicationChange:i,onApplicationSubmit:r,onFormVisibilityChange:o})=>{const[s,l]=a.useState(null),{channelSenders:u}=ate(),{channelAccounts:c}=Qne(),{data:d}=rte(),m=Kre({channelSenders:u?.results??[],channelAccounts:c?.results??[],smsApplication:d});a.useEffect((()=>{if(null!==s||void 0===c||void 0===u)return;m.some((e=>e.smsApplication?.status===Ore.APPROVED||null===e.smsApplication))?(l({sender:m}),i?.(!1)):(l(!1),i?.(!0))}),[m,s,c,u,i]);const h={hidden:{opacity:0,y:20},visible:{opacity:1,y:0,transition:{duration:.4,ease:[.4,0,.2,1]}}};if(null===s)return n.jsx("div",{className:"w-full max-w-4xl mx-auto mt-8",children:n.jsx(Tq,{})});const p=m.some((e=>e.smsApplication?.status===Ore.APPROVED));return n.jsx("div",{className:"w-full max-w-4xl mx-auto mt-8",children:s?n.jsxs(M2.div,{initial:"hidden",animate:"visible",exit:"exit",variants:{hidden:{opacity:0,y:20},visible:{opacity:1,y:0,transition:{duration:.4,ease:[.4,0,.2,1],staggerChildren:.1}},exit:{opacity:0,y:-20,transition:{duration:.3,ease:[.4,0,1,1]}}},className:oz("flex flex-col items-center text-center w-full max-w-[72ch] rounded-xl gap-3 mx-auto bg-background"),children:[n.jsx(M2.div,{variants:h,className:"w-16 h-16 rounded-xl flex items-center justify-center bg-primary/10",children:n.jsx(l3.SmsIcon,{className:"text-primary"})}),n.jsx(M2.h2,{variants:h,className:"text-lg font-medium text-foreground",children:"SMS Sending Number Active"}),n.jsx(M2.div,{variants:h,className:"max-w-xl mx-auto",children:n.jsx("p",p?{className:"text-sm font-normal text-muted-foreground mb-2",children:"Your SMS sending number has been verified and is ready to use. You can now create and send SMS campaigns!"}:{className:"text-sm font-normal text-muted-foreground mb-2",children:"You already have a valid SMS sending number and it is ready to use. You can create and send SMS campaigns!"})}),n.jsxs(M2.div,{variants:h,className:"flex flex-col items-center w-full gap-4",children:[n.jsxs("span",{className:"inline-flex items-center px-4 py-1 rounded-full bg-blue-50 border border-blue-200 text-blue-800 font-medium text-base mb-2",children:[n.jsx("span",{className:"w-2 h-2 bg-blue-500 rounded-full mr-2"}),"Ready to send"]}),n.jsx("div",{className:"w-full flex flex-col gap-3 max-w-md mx-auto",children:m.map((e=>{const a=!!e.channelSender.channelSenderMetadata.friendlyName?.toLowerCase().includes("pending approval"),t=e.channelSender.channelSenderMetadata.friendlyName||e.channelSender.channelSenderMetadata.from||"Unknown Number";return n.jsxs("div",{className:oz("flex items-center justify-between rounded-xl px-4 py-3 border shadow-sm",a?"bg-gray-50 border-gray-200 text-gray-500":"bg-blue-50 border-blue-200 text-blue-900 font-semibold"),children:[n.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[a?n.jsx(l3.AlertCircleIcon,{className:"w-5 h-5 text-yellow-500 shrink-0"}):n.jsx(l3.CheckIcon,{className:"w-5 h-5 text-blue-500 shrink-0"}),n.jsx("span",{className:"truncate",title:t,children:t})]}),!a&&e.channelSender.channelSenderMetadata.from&&e.channelSender.channelSenderMetadata.friendlyName!==e.channelSender.channelSenderMetadata.from&&n.jsx("span",{className:"font-mono text-xs text-blue-700 ml-2",children:e.channelSender.channelSenderMetadata.from})]},e.channelSender.id)}))})]})]}):n.jsx("div",{className:"w-full max-w-4xl mx-auto mt-8 px-4",children:n.jsx(cwe,{hideSubmitButton:e,formRef:t,onApplicationSubmit:r,onFormVisibilityChange:o})})})},mje=({isOnboarding:e=!1,onNext:t,onBack:i,title:r,description:o})=>{const{navigation:s}=XPe(),{handleSMSSubmit:l}=YPe(),{createSmsRegistrationApplication:u,isCreating:c}=ote(),{toast:d}=Je(),m=a.useRef(null),[h,p]=a.useState(!1),[g,f]=a.useState(!1),[v,y]=a.useState(!1),k=a.useContext(nAe),b=t||k?.goToNextStep||s?.goToNextStep||(()=>{});return n.jsx(CAe,{title:r||(e?JAe:IAe),description:o||(e?"Set up your SMS provider to start sending personalized messages to your customers.":"Configure your SMS sending settings and preferences."),onBack:i||k?.goToPreviousStep||s?.goToPreviousStep||(()=>{}),onNext:async()=>{if(h&&g&&m.current)m.current.submit();else{y(!0);try{await l(e?b:void 0)}finally{y(!1)}}},submitLabel:h&&g?e?void 0:"Submit for approval":e?void 0:"Save",isSubmitting:h&&g?c:v,mode:e?"onboarding":"settings",children:n.jsx(dje,{hideSubmitButton:!0,formRef:m,onNeedsApplicationChange:p,onApplicationSubmit:async a=>{try{await u({application:a,onSuccess:()=>{d({title:"SMS application submitted 🚀",description:"Your application has been submitted for approval."}),e&&b()}})}catch(n){d({title:"Failed to submit SMS application",description:"Please try again",variant:"destructive"})}},onFormVisibilityChange:f})})},hje=()=>{const{open:e,setOpen:a,currentStep:t,navigation:i}=XPe();return n.jsx(kAe,{open:e,onOpenChange:e=>{e||a(!1)},title:BAe,description:RAe,sidebarItems:iwe,currentStep:t,onStepChange:i.goToStep,completedSteps:[],mode:"settings",showSidebar:!0,className:"max-w-4xl h-[80vh]",children:{[LAe.BRAND]:n.jsx(eje,{}),[LAe.BUSINESS]:n.jsx(rje,{}),[LAe.EMAIL]:n.jsx(cje,{}),[LAe.SMS]:n.jsx(mje,{})}[t]||null})},pje=({children:e,open:a,setOpen:t})=>{const{navigation:i}=tAe({config:{steps:iwe,initialStep:LAe.BRAND},onClose:()=>t(!1)});return n.jsx(QPe.Provider,{value:{open:a,setOpen:t,currentStep:i.currentStep,navigation:i},children:e})},gje=a.createContext(void 0),fje=()=>{const e=a.useContext(gje);if(!e)throw new Error("useEngageOnboardingContext must be used within EngageOnboardingProvider");return e},vje=[LAe.SPLASH,LAe.BRAND,LAe.EMAIL,LAe.BUSINESS,LAe.BUSINESS_SKIP_INTERSTITIAL,LAe.SMS_INTERSTITIAL,LAe.SMS,LAe.COMPLETION],yje=()=>{const{onClose:e}=fje(),[n,t]=a.useState(!1),[i,r]=a.useState(!1),o=a.useMemo((()=>vje.filter((e=>!(e===LAe.SMS&&n||e===LAe.SMS_INTERSTITIAL&&n||e===LAe.BUSINESS_SKIP_INTERSTITIAL&&i)))),[n,i]),s=a.useMemo((()=>({steps:o.map((e=>({key:e,label:e}))),initialStep:LAe.SPLASH,mode:$Se})),[o]),{navigation:l}=tAe({config:s,onClose:e}),u=a.useCallback((e=>{e===LAe.BUSINESS&&i&&r(!1),l.goToStep(e)}),[i,l]),c=a.useCallback((e=>{t(!e),l.goToStep(e?LAe.SMS:LAe.COMPLETION)}),[l]),d=a.useCallback((()=>{r(!0),l.goToStep(LAe.BUSINESS_SKIP_INTERSTITIAL)}),[l]),m=a.useCallback((()=>{e(),l.goToStep(LAe.SPLASH),t(!1),r(!1)}),[e,l]);return{currentStep:l.currentStep,currentStepIndex:l.currentStepIndex,steps:l.steps,goToNextStep:l.goToNextStep,goToPreviousStep:l.goToPreviousStep,goToStep:u,canGoNext:l.canGoNext,canGoPrevious:l.canGoPrevious,isLastStep:l.isLastStep,isFirstStep:l.isFirstStep,handleSMSChoice:c,handleBusinessSkip:d,handleClose:m}},kje=()=>{const{goToStep:e,goToNextStep:a}=yje();return n.jsxs("div",{className:"h-full flex flex-col",children:[n.jsx("div",{className:"flex-1 overflow-y-auto p-8",children:n.jsxs("div",{className:"max-w-2xl space-y-6 w-full mx-auto",children:[n.jsx("div",{className:"w-16 h-16 bg-amber-100 rounded-2xl flex items-center justify-center",children:n.jsx(SB,{className:"w-8 h-8 text-amber-600"})}),n.jsxs("div",{className:"space-y-2",children:[n.jsx("h1",{className:"text-xl font-medium text-primary",children:"Business information can be added later"}),n.jsx("p",{className:"text-sm text-muted-foreground",children:"You can always return to add your business details when you're ready to get approved for sending."})]}),n.jsx("div",{className:"bg-muted/50 border border-muted rounded-lg p-4",children:n.jsxs("div",{className:"flex items-center gap-3",children:[n.jsx(tB,{className:"w-5 h-5 text-muted-foreground"}),n.jsxs("div",{children:[n.jsx("p",{className:"text-sm font-medium",children:"What you'll miss:"}),n.jsx("p",{className:"text-sm text-muted-foreground",children:"Business approval for higher sending limits and better deliverability"})]})]})})]})}),n.jsx("div",{className:"border-t border-border py-6 px-8 bg-background",children:n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs(i3,{variant:"ghost",onClick:()=>e(LAe.BUSINESS),className:"flex items-center gap-2",children:[n.jsx(eB,{className:"w-4 h-4"}),"Go back to business info"]}),n.jsx(i3,{onClick:a,children:"Continue without business info"})]})})]})},bje=()=>{const{handleClose:e}=yje();return n.jsxs("div",{className:"h-full flex flex-col",children:[n.jsx("div",{className:"flex-1 overflow-y-auto p-8 pt-10 @lg/onboarding-sidebar:pt-16 flex items-center justify-center",children:n.jsxs("div",{className:"max-w-2xl space-y-8",children:[n.jsx("div",{className:"w-24 h-24 mx-auto bg-muted rounded-2xl flex items-center justify-center",children:n.jsx(pB,{className:"w-16 h-16 text-primary"})}),n.jsxs("div",{className:"space-y-10 text-center",children:[n.jsxs("div",{className:"space-y-4",children:[n.jsx("h1",{className:"font-medium text-foreground flex items-center justify-center gap-3 text-2xl",children:"You're Ready to Go 🚀"}),n.jsx("div",{className:"space-y-4 text-muted-foreground",children:n.jsxs("p",{className:"text-sm whitespace-pre-line",children:["Everything's configured — now start sending campaigns and"," ",TD("engage:automation",{count:2})," to engage your audience."]})})]}),n.jsx("div",{className:"bg-primary/10 border border-primary/20 rounded-lg p-4 max-w-md mx-auto",children:n.jsxs("div",{className:"flex items-center gap-3",children:[n.jsx(cse,{title:"You can set up SMS later from the settings menu.",size:"small"}),n.jsx("p",{className:"text-primary text-sm text-left",children:"You can set up SMS later from the settings menu."})]})})]})]})}),n.jsx("div",{className:"border-t border-border py-6 px-8 flex items-center justify-end bg-background gap-4",children:n.jsxs(i3,{onClick:e,className:"flex items-center gap-2 text-sm",children:["Go to dashboard",n.jsx(aB,{className:"w-4 h-4"})]})})]})},Sje=()=>{const{handleSMSChoice:e,goToPreviousStep:a}=yje();return n.jsxs("div",{className:"h-full flex flex-col",children:[n.jsx("div",{className:"flex-1 overflow-y-auto p-8 pt-10 @lg/onboarding-sidebar:pt-16",children:n.jsxs("div",{className:"max-w-2xl text-center space-y-8",children:[n.jsx("div",{className:"w-24 h-24 mx-auto bg-muted rounded-2xl flex items-center justify-center",children:n.jsx(RB,{className:"w-12 h-12 text-muted-foreground"})}),n.jsxs("div",{className:"space-y-4",children:[n.jsx("div",{className:"text-xl font-bold text-foreground",children:"Want to reach your audience via SMS?"}),n.jsx("p",{className:"text-muted-foreground text-sm",children:"Share time-sensitive updates and drive more engagement with verified SMS."})]}),n.jsx("div",{className:"space-y-6",children:n.jsxs("div",{className:"space-y-6 border-2 border-muted rounded-lg mx-auto overflow-hidden",children:[n.jsx("h2",{className:"text-primary font-medium text-base text-center bg-muted p-2",children:"Why set up SMS?"}),n.jsxs("div",{className:"space-y-4 px-6 pb-6",children:[n.jsxs("div",{className:"flex items-center gap-3 text-left",children:[n.jsx("div",{className:"w-8 h-8 rounded-full bg-muted flex items-center justify-center flex-shrink-0 mt-0.5",children:n.jsx(oB,{className:"w-4 h-4"})}),n.jsx("p",{className:"text-sm",children:"SMS messages get 5x more opens than emails"})]}),n.jsxs("div",{className:"flex items-center gap-3 text-left",children:[n.jsx("div",{className:"w-8 h-8 rounded-full bg-muted flex items-center justify-center flex-shrink-0 mt-0.5",children:n.jsx(hR,{className:"w-4 h-4"})}),n.jsx("p",{className:"text-sm",children:"Send urgent updates instantly"})]}),n.jsxs("div",{className:"flex items-center gap-3 text-left",children:[n.jsx("div",{className:"w-8 h-8 rounded-full bg-muted flex items-center justify-center flex-shrink-0 mt-0.5",children:n.jsx(YB,{className:"w-4 h-4"})}),n.jsx("p",{className:"text-sm",children:"Gain trust with verified sender ID"})]})]})]})}),n.jsx("div",{className:"bg-primary/5 border border-primary/20 rounded-lg p-4 max-w-sm mx-auto",children:n.jsxs("div",{className:"flex items-center gap-3",children:[n.jsx(xB,{className:"w-5 h-5 text-primary flex-shrink-0 mt-0.5"}),n.jsx("p",{className:"text-primary text-sm text-left whitespace-pre-line",children:"SMS requires company verification via Twilio. You can skip this step and set it up later."})]})})]})}),n.jsxs("div",{className:"border-t border-border py-6 px-8 flex items-center justify-between bg-background gap-4",children:[n.jsxs(i3,{variant:"outline",onClick:a,className:"flex items-center gap-2 text-sm",children:[n.jsx(uB,{className:"w-4 h-4"}),"Previous Step"]}),n.jsxs("div",{className:"flex items-center gap-4",children:[n.jsx(i3,{onClick:()=>e(!1),variant:"outline",className:"flex items-center gap-2 text-sm",children:"Not now"}),n.jsxs(i3,{onClick:()=>e(!0),className:"flex items-center gap-2 text-sm",children:["Yes, let's setup SMS",n.jsx(aB,{className:"w-4 h-4"})]})]})]})]})},Aje=()=>{const{goToNextStep:e}=yje(),{isPrefilled:t}=(()=>{const{channelSenders:e}=ate(),{channelAccounts:n}=Qne(),{data:t}=rte();return a.useMemo((()=>{if(!e?.results||!n?.results)return{isPrefilled:!1,prefilledData:null};const a=Kre({channelSenders:e.results,channelAccounts:n.results,smsApplication:t}).find((e=>e.smsApplication?.status===Ore.APPROVED));if(!a?.smsApplication?.application)return{isPrefilled:!1,prefilledData:null};const i=a.smsApplication.application;return{isPrefilled:!0,prefilledData:i.type===Bre.TWILIO_TOLL_FREE_NUMBER?{type:nje.STANDARD,company:{name:i.company.name,address1:i.company.address1,address2:i.company.address2,city:i.company.city,stateProvince:i.company.stateProvince,zipCode:i.company.zipCode,country:i.company.country},contact:{firstName:i.contact.firstName,lastName:i.contact.lastName,email:i.contact.email,phoneNumber:i.contact.phoneNumber}}:null}}),[e,n,t])})();return n.jsxs("div",{className:"h-full flex flex-col",children:[n.jsx("div",{className:"flex-1 overflow-y-auto p-8",children:n.jsxs("div",{className:"max-w-2xl space-y-6 w-full mx-auto",children:[n.jsx("div",{className:"w-16 h-16 bg-muted rounded-2xl flex items-center justify-center",children:n.jsx(WB,{className:"w-8 h-8 text-primary"})}),n.jsxs("div",{className:"space-y-2 max-w-lg",children:[n.jsx("h1",{className:"text-xl font-medium text-primary leading-tight",children:"Start sending beautiful, branded emails & SMS"}),n.jsxs("p",{className:"text-sm",children:["Set up branded ",TD("engage:automation",{count:2})," that boost engagement and save you time."]})]}),n.jsxs("div",{className:"space-y-6 border-2 border-muted rounded-lg mx-auto overflow-hidden",children:[n.jsx("h2",{className:"text-primary font-medium text-base text-center bg-muted p-2",children:"Why set this up?"}),n.jsxs("div",{className:"space-y-4 px-6 pb-6",children:[n.jsxs("div",{className:"flex items-center gap-3 text-left",children:[n.jsx("div",{className:"w-8 h-8 rounded-full bg-muted flex items-center justify-center flex-shrink-0 mt-0.5",children:n.jsx(WB,{className:"w-4 h-4"})}),n.jsx("p",{className:"text-sm",children:"Look professional from day one with branded emails and SMS"})]}),n.jsxs("div",{className:"flex items-center gap-3 text-left",children:[n.jsx("div",{className:"w-8 h-8 rounded-full bg-muted flex items-center justify-center flex-shrink-0 mt-0.5",children:n.jsx(dR,{className:"w-4 h-4"})}),n.jsx("p",{className:"text-sm",children:"Reach more customers in less time with automated messages"})]}),n.jsxs("div",{className:"flex items-center gap-3 text-left",children:[n.jsx("div",{className:"w-8 h-8 rounded-full bg-muted flex items-center justify-center flex-shrink-0 mt-0.5",children:n.jsx(hR,{className:"w-4 h-4"})}),n.jsx("p",{className:"text-sm",children:"Start sending in minutes - no tech skills required"})]}),n.jsxs("div",{className:"flex items-center gap-3 text-left",children:[n.jsx("div",{className:"w-8 h-8 rounded-full bg-muted flex items-center justify-center flex-shrink-0 mt-0.5",children:n.jsx(SB,{className:"w-4 h-4"})}),n.jsx("p",{className:"text-sm",children:"Measure results - see what's working and improve"})]})]})]})]})}),n.jsxs("div",{className:"border-t border-border py-6 px-8 bg-background space-y-4",children:[t&&n.jsx("div",{className:"w-full flex-shrink-0",children:n.jsx(sje,{})}),n.jsxs("div",{className:"flex items-center justify-between bg-background gap-4",children:[n.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[n.jsx(cse,{title:`In just 5 minutes, you'll be ready to send branded ${TD("engage:automation",{count:2})}`,size:"small"}),n.jsxs("span",{children:["In just 5 minutes, you'll be ready to send branded"," ",TD("engage:automation",{count:2})]})]}),n.jsxs(i3,{onClick:e,className:"flex items-center gap-2 text-sm",children:["Let's start",n.jsx(aB,{className:"w-4 h-4"})]})]})]})]})},wje=()=>{const{open:e,onClose:a}=fje(),{currentStep:t,goToStep:i,handleClose:r}=yje(),o=t!==LAe.SPLASH&&t!==LAe.COMPLETION&&t!==LAe.BUSINESS_SKIP_INTERSTITIAL;return n.jsx(kAe,{open:e,onOpenChange:e=>{e||(r?r():a())},title:zAe,description:DAe,sidebarItems:rwe,currentStep:t,onStepChange:i,completedSteps:[],mode:"onboarding",showSidebar:o,showMobileNav:o,className:"max-w-5xl h-[90vh]",children:{[LAe.SPLASH]:n.jsx(Aje,{}),[LAe.BRAND]:n.jsx(eje,{}),[LAe.EMAIL]:n.jsx(cje,{}),[LAe.BUSINESS]:n.jsx(rje,{}),[LAe.BUSINESS_SKIP_INTERSTITIAL]:n.jsx(kje,{}),[LAe.SMS_INTERSTITIAL]:n.jsx(Sje,{}),[LAe.SMS]:n.jsx(mje,{}),[LAe.COMPLETION]:n.jsx(bje,{})}[t]||null})},Mje=({children:e,open:a,onClose:t})=>n.jsx(gje.Provider,{value:{open:a,onClose:t},children:e}),Cje=({automationId:e,isOpen:a,onClose:t})=>{const{linkClickStats:i,isGetting:r,getError:o}=na(e);return n.jsx(pq,{open:a,onOpenChange:t,children:n.jsxs(yq,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[n.jsx(kq,{children:n.jsxs(Sq,{className:"flex items-center gap-2",children:[n.jsx(KB,{className:"h-5 w-5"}),"Link Click Statistics"]})}),n.jsxs("div",{className:"space-y-4",children:[r&&n.jsx("div",{className:"text-sm text-muted-foreground text-center py-8",children:"Loading link click statistics..."}),o&&n.jsx("div",{className:"text-sm text-destructive text-center py-8",children:"Error loading link click statistics. Please try again."}),!r&&!o&&(!i||0===Object.keys(i).length)&&n.jsx("div",{className:"text-sm text-muted-foreground text-center py-8",children:"No link clicks found."}),!r&&!o&&i&&Object.keys(i).length>0&&n.jsxs("div",{className:"space-y-3",children:[n.jsxs("div",{className:"bg-muted/50 rounded-lg p-4",children:[n.jsx("div",{className:"text-sm text-muted-foreground mb-2",children:"Summary"}),n.jsxs("div",{className:"flex gap-4 text-sm",children:[n.jsxs("div",{children:[n.jsx("span",{className:"font-semibold",children:Object.keys(i).length})," ","unique links"]}),n.jsxs("div",{children:[n.jsx("span",{className:"font-semibold",children:Object.values(i).reduce(((e,a)=>e+a),0)})," ","total clicks"]})]})]}),n.jsx("div",{className:"space-y-2",children:Object.entries(i).sort((([,e],[,a])=>a-e)).map((([e,a])=>n.jsxs("div",{className:"flex items-center justify-between p-3 border rounded-lg hover:bg-muted/50 transition-colors",children:[n.jsx("div",{className:"flex-1 min-w-0",children:n.jsxs("a",{href:e,target:"_blank",rel:"noopener noreferrer",className:"text-sm text-blue-600 hover:text-blue-800 hover:underline flex items-center gap-1 truncate",children:[n.jsx("span",{className:"truncate",children:e}),n.jsx(wB,{className:"h-3 w-3 flex-shrink-0"})]})}),n.jsxs("div",{className:"text-right ml-4",children:[n.jsx("span",{className:"font-semibold text-lg",children:a}),n.jsx("span",{className:"text-sm text-muted-foreground ml-1",children:1===a?"click":"clicks"})]})]},e)))})]})]})]})})},Tje=e=>{if(!e)return"$0.00";const a="string"==typeof e?e.replace(/,/g,""):e,n=Number(a);return Number.isNaN(n)?"$0.00":new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(n)},xje=({Icon:e,title:a,value:t,tooltipText:i,change:r,onClick:o,isClickable:s=!1})=>n.jsxs(ise,{className:"relative flex flex-col justify-between min-h-[130px] transition-all duration-300 p-4 "+(s?"hover:shadow-md cursor-pointer hover:bg-muted/50":"hover:shadow-md"),onClick:o,children:[n.jsxs("div",{className:"flex justify-between items-start",children:[n.jsx("div",{className:"rounded-lg p-2 bg-primary/10 flex items-center justify-center",children:n.jsx(e,{className:"w-5 h-5 text-primary"})}),n.jsx("div",{className:"absolute top-3 right-3",children:n.jsx(cse,{title:i})})]}),n.jsxs("div",{className:"mt-4",children:[n.jsx("div",{className:"text-2xl font-bold leading-tight text-primary",children:t}),n.jsx(Rxe,{children:a})]}),r&&n.jsx("div",{className:"absolute bottom-3 right-3",children:n.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded-full bg-green-100 text-green-600 text-xs font-semibold",children:r})})]}),Nje=({activeTab:e,automation:a})=>{if(!a)return null;const t={sales:[{Icon:l3.SalesAmount,title:"Order Amount",value:Tje(a.derivedRevenue),tooltipText:"Total derived revenue from this campaign"},{Icon:l3.Orders,title:"Orders",value:a.derivedOrders,tooltipText:"Total individual orders from this campaign"}]};return n.jsx("div",{className:"grid gap-2 transition-all duration-300 grid-cols-3 pb-4",children:t[e].map(((e,a)=>n.jsx(xje,{Icon:e.Icon,title:e.title,value:e.value,tooltipText:e.tooltipText},a)))})},Eje=({activeTab:e,statistics:a,automationId:t,onLinkClickStatsOpen:i})=>{const r={email:[{Icon:l3.MessagesSent,title:"Emails Sent",value:a.email.numberSent,tooltipText:"Total number of emails that were successfully sent in this campaign",onClick:void 0,isClickable:!1},{Icon:l3.OpenRate,title:"Open Rate",value:`${(100*a.email.openPercentage).toFixed(2)}%`,tooltipText:"Percentage of recipients who opened the email out of total emails delivered",onClick:void 0,isClickable:!1},{Icon:l3.TotalBounceRate,title:"Total Bounce Rate",value:`${(100*(a.email.softBounceRate+a.email.hardBounceRate)).toFixed(2)}%`,tooltipText:"Percentage of emails that were not delivered due to permanent (hard) or temporary (soft) delivery failures. Hard bounces will be automatically unsubscribed.",onClick:void 0,isClickable:!1},{Icon:l3.LinksClicked,title:"Links Clicked",value:a.email.linksClicked,tooltipText:"Total number of times recipients clicked on links within the email. Click to view detailed link statistics.",onClick:i,isClickable:!!t&&!!i},{Icon:l3.SpamComplies,title:"Spam Complaints",value:`${(100*a.email.spamComplaintRate).toFixed(2)}%`,tooltipText:"Percentage of emails that were marked as spam by recipients or their spam filters. Manual spam complaints will be automatically unsubscribed.",onClick:void 0,isClickable:!1},{Icon:l3.UnsubscribeRate,title:"Unsubscribe Rate",value:`${(100*a.email.unsubscribedRate).toFixed(2)}%`,tooltipText:"Percentage of recipients who unsubscribed after receiving this email",onClick:void 0,isClickable:!1}],sms:[{Icon:l3.MessagesSent,title:"SMS Sent",value:a.sms.numberSent,tooltipText:"Total number of SMS messages that were successfully sent in this campaign",onClick:void 0,isClickable:!1}]};return n.jsx("div",{className:"grid gap-2 transition-all duration-300 grid-cols-3 pb-4",children:r[e].map(((e,a)=>n.jsx(xje,{Icon:e.Icon,title:e.title,value:e.value,tooltipText:e.tooltipText,onClick:e.onClick,isClickable:e.isClickable},a)))})},_je=({automationId:e,includeSales:t=!1,includeSms:i=!1,automation:r})=>{const[o,s]=a.useState(!1),{statistics:l,isLoading:u}=sa(e);return u||!l?n.jsx("div",{className:"bg-white rounded-2xl w-full p-6 space-y-4 relative h-[14.05rem]",children:n.jsx(Tq,{text:[`Fetching ${TD("engage:insight",{count:2})}`,"Finishing up"]})}):n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"bg-white rounded-2xl w-full p-6 flex flex-col gap-6",children:[n.jsxs("section",{children:[n.jsx(Lxe,{className:"mb-4",children:TD("engage:emailInsights","Email Insights")}),n.jsx(Eje,{activeTab:"email",statistics:l,automationId:e,onLinkClickStatsOpen:()=>s(!0)})]}),(i||t)&&n.jsx(HCe,{className:"my-2"}),i&&n.jsxs("section",{children:[n.jsx(Lxe,{className:"mb-4",children:TD("engage:smsInsights","SMS Insights")}),n.jsx(Eje,{activeTab:"sms",statistics:l})]}),t&&i&&n.jsx(HCe,{className:"my-2"}),t&&n.jsxs("section",{children:[n.jsx(Lxe,{className:"mb-4",children:TD("engage:salesInsights","Sales Insights")}),n.jsx(Nje,{activeTab:"sales",automation:r})]})]}),e&&n.jsx(Cje,{automationId:e,isOpen:o,onClose:()=>s(!1)})]})},Pje=e=>{const{updateAutomation:n,updateError:t,isUpdateSuccess:i}=oa(e),{toast:r}=Je();return a.useEffect((()=>{i?r({title:"Status updated",description:"The status has been updated successfully"}):t&&r({title:"Error updating status",description:"Please try again",variant:"destructive"})}),[i,t,r]),{toggleStatus:async e=>{try{return await n({status:e?pa.ACTIVE:pa.DRAFT}),!0}catch(a){return r({title:"Error updating status",description:"Please try again",variant:"destructive"}),!1}}}};function jje(){const{toast:e}=Je(),[t,i]=a.useState(null),{toggleStatus:r}=Pje(t||""),o=Lee(),[s,l]=a.useState(!1),[u,c]=a.useState(10),[d,m]=a.useState(void 0),[h,p]=a.useState(""),{automations:g,nextCursor:f,isLoading:v,error:y,isFetching:k,isPlaceholderData:b}=la({cursor:d,limit:u,triggerTypes:[ca.TRIGGER_BASED,ca.DATE_BASED],search:h||void 0});a.useEffect((()=>{y&&e({title:`Error Fetching ${TD("engage:automation")}`,description:y?.message||"Please try again.",variant:"destructive"})}),[y,e]);const S=a.useMemo((()=>(g||[]).map((e=>({...e,emailsSent:0,smsSent:0,updated_at:e.updatedAt||e.createdAt})))),[g]),A=a.useCallback((async(e,a)=>{try{i(e);const n=a===pa.ACTIVE;await r(n)}finally{i(null)}}),[r,i]),w=a.useCallback((e=>{m(e.cursor),c(e.pageSize)}),[]),M=a.useCallback((e=>`/automations/view-modal/${e}?showBackButton=true`),[]),C=a.useMemo((()=>Yoe({automationName:TD("engage:automation"),setUrl:M,onToggle:A,vsaasManaged:!0})),[A,M]);return n.jsxs("div",{className:"w-full h-[75vh] flex flex-col",children:[n.jsx("div",{className:"flex-grow min-h-0 p-2",children:n.jsx(R7,{data:S,columns:C,paginationMode:"cursor",initialPageSize:u,isLoading:v&&!b,onRowClick:e=>{o(`/automations/view-modal/${e.id}?showBackButton=true`)},cursorPaginationQueryResult:{nextCursor:f,isLoading:v,isFetching:k,isPlaceholderData:b},onQueryParametersChange:w,searchValue:h,onSearchChange:p,headerActions:n.jsxs(i3,{className:"bg-primary",onClick:()=>l(!0),children:[n.jsx(VB,{className:"h-4 w-4 mr-1"}),"New"]})})}),n.jsx(DPe,{open:s,setOpen:l,onClose:a=>{Goe(l,e,a,`Error creating ${TD("engage:broadcast")}`,"Please try again"),!1!==a&&o(`/automations/view-modal/${a}?showBackButton=true`)},automationType:ca.ONE_TIME})]})}function Lje(){const{toast:e}=Je(),[t,i]=a.useState(!1),[r,o]=a.useState(null),{toggleStatus:s}=Pje(r||""),l=Lee(),[u,c]=a.useState(10),[d,m]=a.useState(void 0),[h,p]=a.useState(""),{automations:g,nextCursor:f,isLoading:v,error:y,isFetching:k,isPlaceholderData:b}=la({cursor:d,limit:u,triggerTypes:[ca.ONE_TIME],search:h||void 0});a.useEffect((()=>{y&&e({title:`Error Fetching ${TD("engage:broadcast")}`,description:y?.message||"Please try again.",variant:"destructive"})}),[y,e]);const S=a.useMemo((()=>(g||[]).map((e=>({...e,updated_at:e.updatedAt})))),[g]),A=a.useCallback((async(e,a)=>{try{o(e);const n=a===pa.ACTIVE;await s(n)}finally{o(null)}}),[s,o]),w=a.useCallback((e=>{m(e.cursor),c(e.pageSize)}),[]),M=a.useCallback((e=>`/automations/view-modal/${e}?showBackButton=true`),[]),C=a.useMemo((()=>Yoe({automationName:TD("engage:broadcast"),setUrl:M,onToggle:A,pillForStatus:!0})),[A,M]);return n.jsxs("div",{className:"w-full h-[75vh] flex flex-col",children:[n.jsx("div",{className:"flex-grow min-h-0 p-2",children:n.jsx(R7,{data:S,columns:C,paginationMode:"cursor",initialPageSize:u,headerActions:n.jsxs(i3,{className:"bg-primary",onClick:()=>i(!0),children:[n.jsx(VB,{className:"h-4 w-4 mr-1"}),"New"]}),isLoading:v&&!b,cursorPaginationQueryResult:{nextCursor:f,isLoading:v,isFetching:k,isPlaceholderData:b},onRowClick:e=>{l(`/automations/view-modal/${e.id}?showBackButton=true`)},onQueryParametersChange:w,searchValue:h,onSearchChange:p})}),n.jsx(DPe,{open:t,setOpen:i,onClose:a=>{Goe(i,e,a,`Error creating ${TD("engage:broadcast")}`,"Please try again"),m(void 0),c(10),p(""),!1!==a&&l(`/automations/view-modal/${a}?showBackButton=true`)},automationType:ca.ONE_TIME})]})}function Bje(){const{toast:e}=Je(),[t,i]=a.useState(!1),[r,o]=a.useState(null),[s,l]=a.useState(10),[u,c]=a.useState(void 0),[d,m]=a.useState(""),{segments:h,isLoading:p,nextCursor:g,isFetching:f,isPlaceholderData:v}=V2({search:d||void 0,cursor:u,limit:s}),y=a.useCallback((e=>{o(e),i(!0)}),[o]),k=a.useMemo((()=>function(e){return[Joe("name",`${TD("engage:segment")} Name`,!0),Uoe(),Ioe({accessorKey:"user_count",header:TD("engage:user_other"),meta:{align:"right",displayName:TD("engage:user_other")},cellClassName:"text-muted-foreground pr-4",cellFormatter:e=>{const a=e.getValue()??0;return`${a.toLocaleString()} ${TD("engage:user",{count:a}).toLowerCase()}`}}),Woe("updated_at"),$oe(e||(()=>{}))]}(y)),[y]),b=a.useMemo((()=>h?h.map((e=>({...e,updated_at:e.createdAt.toString(),user_count:e.userCount,user_count_updated_at:e.userCountUpdatedAt}))):[]),[h]),S=a.useMemo((()=>n.jsxs(i3,{onClick:()=>{o(null),i(!0)},children:[n.jsx(VB,{className:"h-4 w-4"}),"New"]})),[]),A=a.useCallback((e=>{c(e.cursor),l(e.pageSize)}),[]);return n.jsxs("div",{className:"w-full h-[75vh] flex flex-col",children:[n.jsx("div",{className:"flex-grow min-h-0 p-2",children:n.jsx(R7,{data:b,columns:k,paginationMode:"cursor",initialPageSize:s,headerActions:S,isLoading:p&&!v,cursorPaginationQueryResult:{nextCursor:g,isLoading:p,isFetching:f,isPlaceholderData:v},onQueryParametersChange:A,onRowClick:a=>{if(a.type===Z2.CUSTOM)o(a.id),i(!0);else{let n;switch(a.type){case Z2.ALL_USERS:n="All users";break;case Z2.MANAGED:n="Managed";break;default:throw Fne(a.type,Z2)}e({title:`${n} ${TD("engage:segment").toLowerCase()} cannot be edited`})}},searchValue:d,onSearchChange:m})}),n.jsx(pPe,{open:t,setOpen:i,segmentId:r??void 0,onSegmentUpdated:a=>{Goe(i,e,a,`Error creating ${TD("engage:segment")}`,"Please try again"),c(void 0),l(10),m("")}})]})}const Rje=()=>{const e=ce(),[t,i]=a.useState(!1),r=dj()["show-engage-onboarding"]??!1,[o,s]=a.useState(r),[l,u]=a.useState(null),{automations:c,isLoading:d}=la({triggerTypes:[ca.TRIGGER_BASED,ca.DATE_BASED]}),[m,h]=a.useState();return a.useEffect((()=>{e.prefetchQuery({queryKey:Re.list()}),e.prefetchQuery({queryKey:G2.lists()})}),[e]),a.useEffect((()=>{if(d||void 0===c)return;const e=[{id:"broadcasts",label:TD("engage:broadcast",{count:2}),content:n.jsx(Lje,{})},{id:"segments",label:TD("engage:segment",{count:2}),content:n.jsx(Bje,{})},{id:"statistics",label:TD("engage:insight",{count:2}),content:n.jsx(_je,{includeSales:!1,includeSms:!0})}];c.length>0?(u("automations"),h([{id:"automations",label:TD("engage:automation",{count:2}),content:n.jsx(jje,{})},...e])):(u("broadcasts"),h(e))}),[c,d]),null===l||null==m?n.jsx("div",{className:"w-full h-full flex justify-center items-center",children:n.jsx(Tq,{})}):n.jsxs("div",{className:"w-full h-full flex flex-col gap-4",children:[r&&n.jsx(Mje,{open:o,onClose:()=>s(!1),children:n.jsx(wje,{})}),n.jsx(pje,{open:t,setOpen:i,children:n.jsx(hje,{})}),n.jsx("div",{className:"flex justify-end",children:n.jsx(i3,{variant:"outline",onClick:()=>i(!0),children:n.jsx(ZB,{className:"w-4 h-4"})})}),n.jsx("div",{className:"flex-1 w-full h-full flex flex-col gap-4",children:n.jsx(KPe,{activeTab:l,tabs:m,onTabChange:u})})]})};function zje({open:e,onOpenChange:a}){const t=Q2(),{toast:i}=Je(),{updateAutomation:r,isUpdating:o}=oa(t?.id||""),s=TD(t?.triggerType===ca.ONE_TIME?"engage:broadcast":"engage:automation");return n.jsx(pq,{open:e,onOpenChange:a,children:n.jsxs(yq,{className:"sm:max-w-[425px]",children:[n.jsx(kq,{children:n.jsx(Sq,{children:"Archive Automation"})}),n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{className:"text-sm text-gray-600",children:["Are you sure you want to archive"," ",n.jsxs("span",{className:"font-semibold text-gray-900",children:['"',t?.name,'"']}),"?"]}),n.jsxs("div",{className:"text-sm text-gray-500 bg-amber-50 border border-amber-200 rounded-lg p-3",children:[n.jsx("p",{className:"font-medium text-amber-800 mb-1",children:"What happens when you archive:"}),n.jsxs("ul",{className:"text-amber-700 space-y-1",children:[n.jsx("li",{children:"• The automation will be hidden from your main list"}),n.jsx("li",{children:"• Historical data and settings are preserved"})]})]}),n.jsxs(bq,{className:"gap-2",children:[n.jsx(i3,{variant:"outline",onClick:()=>a(!1),disabled:o,children:"Cancel"}),n.jsx(i3,{variant:"destructive",onClick:async function(){t?r({status:pa.ARCHIVED},{onSuccess:()=>{i({title:`${s} archived`,description:`"${t.name}" has been successfully archived.`}),a(!1)},onError:()=>{i({title:"Error archiving!",description:"Please contact your administrator.",variant:"destructive"})}}):i({title:"Error archiving automation",description:"Please try again.",variant:"destructive"})},disabled:o,children:o?"Archiving...":"Archive Automation"})]})]})]})})}function Dje({value:e,schema:t,onSubmit:i,fieldName:r,className:o,successMessage:s="Updated successfully",errorMessage:l="Failed to update",placeholderText:u}){const[c,d]=a.useState(!1),[m,h]=a.useState(!1),[p,g]=a.useState(0),[f,v]=a.useState(0),[y,k]=a.useState(e),[b,S]=a.useState(e),A=a.useRef(null),w=a.useRef(null),M=a.useRef(null),C=a.useRef(null),{toast:T}=Je(),x=HSe({resolver:PAe(t),defaultValues:{[r]:e}});a.useEffect((()=>{x.reset({[r]:e}),k(e),S(e)}),[e,r,x]),a.useEffect((()=>{w.current&&g(w.current.offsetWidth),C.current&&!c&&v(C.current.offsetWidth)}),[c]),a.useEffect((()=>{M.current&&y&&g(M.current.offsetWidth)}),[y]),a.useEffect((()=>{c&&A.current&&(A.current.focus(),A.current.select())}),[c]);const N=async e=>{h(!0);const a=e[r];try{await i(e),S(a),T({variant:"success",title:s}),d(!1)}catch(n){T({variant:"destructive",title:l})}finally{h(!1)}},E=()=>{x.reset(),d(!1),k(b)},_=e=>{"Escape"===e.key&&E()};return c?n.jsx(ISe,{...x,children:n.jsxs("form",{onSubmit:x.handleSubmit(N),className:hq("inline-flex items-center gap-2 min-h-[20px]",o),style:{minWidth:f?`${f}px`:"auto"},children:[n.jsx("span",{ref:M,className:"absolute invisible whitespace-pre leading-none select-none pointer-events-none",style:{font:"inherit"},children:y||b}),n.jsx(FSe,{control:x.control,name:r,render:({field:e})=>n.jsx(USe,{className:"flex-1 min-w-0",children:n.jsx(qSe,{children:n.jsx("input",{...e,ref:A,style:{width:`${Math.max(p+40,120)}px`,minWidth:`${Math.max(p,100)}px`,font:"inherit"},className:"bg-transparent outline-none leading-none h-[20px] border-none p-0 m-0",onChange:a=>{e.onChange(a),k(a.target.value)},onKeyDown:_,disabled:m,onBlur:a=>{e.onBlur(),setTimeout((()=>{const e=a.currentTarget.form;e&&!e.contains(document.activeElement)&&E()}),0)}})})})}),n.jsxs("div",{className:"flex items-center gap-1 flex-shrink-0",children:[n.jsx(i3,{type:"button",size:"icon",variant:"ghost",className:"h-5 w-5 p-0",onClick:E,disabled:m,children:n.jsx(mR,{className:"h-3 w-3"})}),n.jsx(i3,{type:"button",size:"icon",variant:"ghost",className:"h-5 w-5 p-0",disabled:m,onClick:()=>{x.handleSubmit(N)()},children:m?n.jsx(EB,{className:"h-3 w-3 animate-spin"}):n.jsx(sB,{className:"h-3 w-3"})})]})]})}):n.jsxs("button",{ref:C,type:"button",className:hq("group relative inline-flex items-center gap-2 cursor-pointer min-h-[20px] bg-transparent border-none p-0 text-left",o),onClick:()=>d(!0),onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),d(!0))},"aria-label":"Edit field",children:[n.jsx("span",{ref:w,className:hq("leading-none select-none",o,{italic:!b}),children:b||u}),n.jsx(IB,{className:"h-3 w-3 transition-opacity duration-200 flex-shrink-0 opacity-0 group-hover:opacity-100"})]})}function Oje({open:e,onOpenChange:a}){const t=Q2(),{toast:i}=Je(),{updateAutomation:r}=oa(t?.id||""),o=ce();return n.jsx(pq,{open:e,onOpenChange:a,children:n.jsxs(yq,{className:"sm:max-w-[425px]",children:[n.jsx(kq,{children:n.jsx(Sq,{children:t?.status===pa.SENDING?`Cancel ${TD("engage:automation")}`:`Cancel ${TD("engage:automation")} Before Sending`})}),n.jsx("div",{className:"space-y-4",children:t?n.jsxs(n.Fragment,t.status===pa.SENDING?{children:[n.jsxs("p",{className:"text-sm text-muted-foreground",children:["We'll help you cancel your",n.jsx("span",{className:"font-bold px-1 text-primary",children:t.name}),TD("engage:automation")," as soon as possible."]}),n.jsxs("div",{className:"rounded-lg bg-muted p-4 text-sm",children:[n.jsx("p",{className:"font-medium mb-2",children:"What happens next?"}),n.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[n.jsxs("li",{children:["We'll attempt to cancel the"," ",TD("engage:broadcast").toLowerCase()]}),n.jsx("li",{children:"Any messages already in the process of being sent will be delivered"}),n.jsxs("li",{children:["Future ",TD("engage:broadcast").toLowerCase()," messages will be cancelled"]}),n.jsxs("li",{children:["You can create a new ",TD("engage:broadcast").toLowerCase()," if needed"]})]})]})]}:{children:[n.jsxs("p",{className:"text-sm text-muted-foreground",children:["We'll help you cancel your",n.jsx("span",{className:"font-bold px-1 text-primary",children:t.name}),TD("engage:automation")," before it starts sending."]}),n.jsxs("div",{className:"rounded-lg bg-muted p-4 text-sm",children:[n.jsx("p",{className:"font-medium mb-2",children:"What happens next?"}),n.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[n.jsx("li",{children:"The automation will be cancelled"}),n.jsx("li",{children:"You can create a new automation if needed"})]})]})]}):null}),n.jsxs(bq,{className:"gap-2 sm:gap-0",children:[n.jsx(i3,{variant:"outline",onClick:()=>a(!1),children:"Continue Running"}),n.jsxs(i3,{variant:"destructive",onClick:()=>{if(!t)return;const e=t.status===pa.SENDING?pa.PARTIALLY_CANCELLED:pa.CANCELLED,n=t.status===pa.SENDING?`Attempting to cancel ${TD("engage:broadcast").toLowerCase()}`:`Successfully cancelled ${TD("engage:broadcast").toLowerCase()}`,s=`Failed to cancel ${TD("engage:broadcast").toLowerCase()}`;r({status:e},{onError:()=>{i({title:s,description:"Please contact your administrator.",variant:"destructive"}),o.invalidateQueries({queryKey:Re.all})},onSuccess:()=>{a(!1),i({title:n,description:t.status===pa.SENDING?`We'll attempt to cancel your ${TD("engage:broadcast").toLowerCase()}. Any messages already in progress will be delivered.`:`Your ${TD("engage:broadcast").toLowerCase()} has been cancelled.`})}})},children:["Cancel ",TD("engage:automation")]})]})]})})}function Kje({open:e,onOpenChange:a,setIsActive:t}){const i=Q2(),{updateAutomation:r}=oa(i?.id||""),{toast:o}=Je(),s=ce(),l=TD(i?.triggerType===ca.ONE_TIME?"engage:broadcast":"engage:automation"),u=i?.triggerType===ca.ONE_TIME?"Unschedule":`Pause ${l}`;return n.jsx(pq,{open:e,onOpenChange:a,children:n.jsxs(yq,{className:"sm:max-w-[425px]",children:[n.jsx(kq,{children:n.jsx(Sq,{children:u})}),n.jsxs("div",{children:[i?.triggerType===ca.ONE_TIME?"Are you sure you want to unschedule the":"Are you sure you want to pause the",n.jsx("span",{className:"font-bold px-1 text-primary",children:i?.name})," ",l,"?"]}),n.jsxs(bq,{className:"gap-2 sm:gap-0",children:[n.jsx(i3,{variant:"outline",onClick:()=>a(!1),children:"Cancel"}),n.jsx(i3,{variant:"destructive",onClick:()=>{r({status:pa.DRAFT},{onSuccess:()=>{o({title:`Updated ${l}`,description:`${l} status updated`}),a(!1),t(!1)},onError:()=>{o({title:`Failed to update ${l}`,description:"Please try again"}),s.invalidateQueries({queryKey:Re.all})}})},children:u})]})]})})}const Hje=dre({name:Yie().min(2,"Title must be at least 2 characters"),description:Yie()});function Ije({open:e,onOpenChange:a,onDuplicationCreated:t}){const i=Q2(),{toast:r}=Je(),o=HSe({resolver:PAe(Hje),defaultValues:{name:`${i?.name} (copy)`,description:i?.description??""}}),{duplicateAutomation:s}=ua();return n.jsx(pq,{open:e,onOpenChange:a,children:n.jsxs(yq,{className:"sm:max-w-[425px]",children:[n.jsx(kq,{children:n.jsx(Sq,{children:"Duplicate Automation"})}),n.jsx(ISe,{...o,children:n.jsxs("form",{onSubmit:o.handleSubmit((async function(e){i&&e.name?s({automationId:i.id,name:e.name,description:e.description},{onSuccess:e=>{e.id&&(t?.(e.id),a(!1))}}):r({title:"Error duplicating automation",description:"Please try again. Please make sure to fill in the name of the automation."})})),className:"space-y-4",children:[n.jsxs("div",{children:["Create a copy of the",n.jsx("span",{className:"font-bold px-1 text-primary",children:i?.name}),"automation with a new title and description."]}),n.jsx(FSe,{control:o.control,name:"name",render:({field:e})=>n.jsxs(USe,{children:[n.jsx(WSe,{children:"Title"}),n.jsx(qSe,{children:n.jsx(L7,{...e})}),n.jsx(ZSe,{})]})}),n.jsx(FSe,{control:o.control,name:"description",render:({field:e})=>n.jsxs(USe,{children:[n.jsx(WSe,{children:"Description"}),n.jsx(qSe,{children:n.jsx(dPe,{...e})}),n.jsx(ZSe,{})]})}),n.jsx(bq,{children:n.jsx(i3,{type:"submit",children:"Duplicate"})})]})})]})})}const Gje=dre({name:Yie().min(2,"Title must be at least 2 characters")}),Fje=dre({description:Yie().max(300,"Description must be less than 300 characters")}),Vje=({showBackButton:e,onDuplicationCreated:t,onBeforeSchedule:i})=>{const r=Q2(),o=Lee(),{updateAutomation:s}=oa(r?.id||""),{toast:l}=Je(),u=(()=>{const{state:e}=Y2();return e.recipientStats})(),c=X2(),{data:d}=rte(),{channelSenders:m}=ate(),{channelAccounts:h}=Qne(),p=ce(),[g,f]=a.useState(void 0),[v,y]=a.useState(!1),[k,b]=a.useState(!1),[S,A]=a.useState(!1),[w,M]=a.useState(!1),[C,T]=a.useState(0),[x,N]=a.useState(!1),E=Kre({channelSenders:m?.results??[],channelAccounts:h?.results??[],smsApplication:d});a.useEffect((()=>{if(r)switch(r.status){case pa.DRAFT:f(!1);break;case pa.ACTIVE:case pa.RUNNING:case pa.COMPLETED:f(!0);break;case pa.FAILED:case pa.DEACTIVATED:f(!1);break;case pa.SENDING:case pa.SCHEDULED:f(!0);break;case pa.PARTIALLY_CANCELLED:case pa.CANCELLED:case pa.ARCHIVED:f(!1);break;default:throw Fne(r.status,pa)}}),[r]);const _=TD(r?.triggerType===ca.ONE_TIME?"engage:broadcast":"engage:automation"),P=a.useCallback((()=>{M(!0),s({status:pa.DRAFT},{onSuccess:()=>{f(!1),M(!1),l({title:`${_} activation undone`,description:"The automation will remain in draft status"})},onError:()=>{M(!1),l({title:"Error while updating the status",description:"Please refresh and try again",variant:"destructive"}),p.invalidateQueries({queryKey:Re.all})}})}),[_,s,p,l]),j=a.useCallback((()=>{if(!r)return l({title:`${_} not found`,description:"Please contact your administrator",variant:"destructive"}),null;const e=async e=>{if(g&&!e)A(!0);else{if(i&&!0===e){let e=0;for(;!u&&e<20;)await new Promise((e=>setTimeout(e,100))),e++;if(!u)return void l({title:"Error while updating the status",description:"Please contact your administrator",variant:"destructive"});const a=await i({estimatedEmailRecipients:u?.emails??0,estimatedSmsRecipients:u?.phones??0});if(!0!==a)return void l({title:"Error while updating the status",description:a,variant:"destructive"})}if(c?.emailChannelSenderId&&c?.emailHtmlBody&&c?.emailHtmlBody?.includes(NPe)){if(0===C)return l({title:`${EPe}. You can click send again to send anyway.`,variant:"warning"}),void T(C+1);T(C+1)}switch(r.triggerType){case ca.ONE_TIME:if(!r.triggerMetadata||!("scheduledAt"in r.triggerMetadata)||!r.triggerMetadata?.scheduledAt)return void l({title:"Ensure you have selected a scheduled time",variant:"destructive"});if(!c||!c.emailChannelSenderId&&!c.smsChannelSenderId)return void l({title:"Ensure you have selected at least one kind of communication",variant:"destructive"});break;case ca.TRIGGER_BASED:case ca.DATE_BASED:break;default:throw Fne(r.triggerType,ca)}e?(M(!0),s({status:pa.SENDING},{onSuccess:()=>{f(!0),M(!1),l({title:`${_} activation started`,variant:"default",action:n.jsx(dz,{altText:"Undo Activate",onClick:P,className:"bg-blue-50 text-blue-700 border border-blue-200 hover:bg-blue-100 transition-colors duration-150 rounded-md px-3 py-1.5 font-medium shadow-sm",children:"Undo"})})},onError:()=>{l({title:"Error while updating the status",description:"Please contact your administrator",variant:"destructive"}),M(!1),p.invalidateQueries({queryKey:Re.all})}})):(M(!0),s({status:e?pa.ACTIVE:pa.DEACTIVATED},{onSuccess:()=>{f(e),l(r.triggerType===ca.ONE_TIME?e?{title:`${_} started!`}:{title:`${_} has been unscheduled`}:{title:`${_} status updated to ${e?"active":"inactive"}`}),M(!1)},onError:()=>{l({title:"Error while updating the status",description:"Please contact your administrator",variant:"destructive"}),M(!1),p.invalidateQueries({queryKey:Re.all})}}))}};if(!r||!c)return null;const a=E.find((e=>e.channelSender.id===c?.smsChannelSenderId)),t=!r.triggerMetadata||null===r.triggerMetadata,o=r.triggerMetadata?.triggerType===ca.ONE_TIME&&!r.triggerMetadata?.scheduledAt,d=!c?.emailChannelSenderId&&!c?.smsChannelSenderId,m=r.triggerType===ca.ONE_TIME,h=m&&a&&a?.smsApplication?.application&&a?.smsApplication?.status!==Ore.APPROVED,v=c?.emailChannelSenderId&&(!c?.emailSubject||!c?.emailHtmlBody),y=c?.smsChannelSenderId&&!c?.smsMessageBody,k=m&&(!r.triggerMetadata||!("scheduledAt"in r.triggerMetadata)||!r.triggerMetadata?.scheduledAt);let b,S=!1,w=!0;switch(r.status){case pa.ACTIVE:S=!1;break;case pa.DRAFT:(d||v||y)&&(S=!0,v&&(b="Missing subject in email communication"),y&&(b="Missing SMS message in SMS communication")),k&&(S=!0),h&&(S=!0);break;case pa.DEACTIVATED:case pa.PARTIALLY_CANCELLED:case pa.CANCELLED:switch(S=!0,w=!1,r.status){case pa.DEACTIVATED:b="Automation is deactivated";break;case pa.PARTIALLY_CANCELLED:b="Automation is partially cancelled";break;case pa.CANCELLED:b="Automation is cancelled";break;default:throw Fne(r.status,pa)}break;case pa.RUNNING:S=!0,r.triggerType===ca.TRIGGER_BASED?(b=`Cannot change status of running ${_}`,w=!0):w=r.triggerType===ca.ONE_TIME&&r.status===pa.RUNNING;break;case pa.COMPLETED:S=!0,b=`Cannot change status of completed ${_}`,w=!1;break;case pa.FAILED:S=!0,b=`Cannot change status of failed ${_}`,w=!1;break;case pa.SENDING:case pa.SCHEDULED:S=!1,w=!0;break;case pa.ARCHIVED:S=!0,b=`Cannot change status of archived ${_}`,w=!1;break;default:throw Fne(r.status,pa)}const x=(()=>{switch(r.triggerType){case ca.DATE_BASED:case ca.TRIGGER_BASED:return n.jsxs("div",{className:"flex items-center gap-2 w-[12ch] cursor-pointer",children:[n.jsx(g?sB:kB,{className:"w-4 h-4"}),n.jsx("div",{className:"text-[13px] font-medium",children:g?"Active":"Inactive"}),n.jsx(nPe,{checked:g,onCheckedChange:e,disabled:S})]});case ca.ONE_TIME:if((r.status===pa.RUNNING||r.status===pa.SCHEDULED||r.status===pa.SENDING)&&r.triggerType===ca.ONE_TIME)return n.jsx(i3,{variant:"outline",className:"flex items-center gap-2",onClick:()=>N(!0),disabled:!1,children:"Cancel"});if(t||o||d||h||v||y){return n.jsx("div",{className:"flex items-center gap-2 cursor-not-allowed",children:(()=>{const a=r.triggerMetadata&&"scheduledAt"in r.triggerMetadata&&"now"===r.triggerMetadata?.scheduledAt?`Start ${_}`:"Schedule Send";if(r.status!==pa.DRAFT&&r.triggerMetadata&&"scheduledAt"in r.triggerMetadata&&"now"!==r.triggerMetadata?.scheduledAt&&r.status===pa.ACTIVE)return n.jsx(i3,{variant:"outline",className:"flex items-center gap-2",onClick:()=>e(!g),disabled:S,children:r.triggerType===ca.ONE_TIME?"Unschedule":"Convert to Draft"});const t=[];h&&t.push("The SMS number selected is still not approved"),k&&t.push("Please select a schedule time on the left sidebar"),d&&t.push("Please add at least one sender"),v&&t.push("Please add a subject to your email communication"),y&&t.push("Please add a message to your SMS communication");const i=t.map((e=>{return(a=e)?a.charAt(0).toUpperCase()+a.slice(1):a;var a})),o=`You cannot start this ${TD("engage:broadcast").toLowerCase()} yet. ${i.join(" · ")}`;return n.jsx("div",{className:"flex items-center gap-2",children:n.jsx(cse,{alertText:o,asChild:!1,className:"!cursor-not-allowed",children:n.jsx("div",{className:"px-4 py-2 rounded border border-input bg-background text-muted-foreground cursor-not-allowed text-sm font-medium",children:n.jsx("span",{children:a})})})})})()})}if(!g){let a="Schedule Send";return r.triggerMetadata&&r.triggerMetadata.triggerType===ca.ONE_TIME&&r.triggerMetadata.scheduledAt&&"now"===r.triggerMetadata.scheduledAt&&(a=`Start ${_}`),n.jsx(i3,{variant:"default",className:"flex items-center gap-2",onClick:()=>e(!g),disabled:S,children:a})}return n.jsx(i3,{variant:"outline",className:"flex items-center gap-2",onClick:()=>e(!g),disabled:S,children:r.triggerType===ca.ONE_TIME?"Unschedule":"Convert to Draft"});default:throw Fne(r.triggerType,ca)}})();return S&&b&&r.triggerType===ca.TRIGGER_BASED?n.jsx(cse,{alertText:b,asChild:!0,children:n.jsx("div",{className:"flex items-center gap-2",children:w&&x})}):n.jsx("div",{className:"flex items-center gap-2",children:w&&x})}),[r,c,E,l,g,_,i,s,u,C,p,P]),L=a.useMemo((()=>r?n.jsx(k3,{variant:Foe(r.status),children:Vne({status:r.status,automationType:r.triggerType,vsaasManaged:r.automationType===ma.MANAGED})}):null),[r]);return r&&void 0!==g?n.jsxs("header",{className:"flex px-1 pt-1",children:[n.jsxs("div",{className:"flex items-center gap-4 flex-1",children:[e&&n.jsx(i3,{variant:"ghost",size:"icon",onClick:()=>o(-1),children:n.jsx(eB,{})}),n.jsx("div",{className:"flex items-center gap-2",children:n.jsxs("div",{className:"flex flex-col gap-0 items-start",children:[n.jsx(Dje,{value:r.name,schema:Gje,onSubmit:e=>{s({name:e.name},{onError:()=>{l({title:`Failed to update ${_} name`,description:"Please try again",variant:"destructive"}),p.invalidateQueries({queryKey:Re.all})}})},fieldName:"name",className:"text-lg",successMessage:`${_} name updated`,errorMessage:`Failed to update ${_.toLowerCase()} name`}),r.automationType!==ma.MANAGED?n.jsx(Dje,{value:r.description||"",schema:Fje,onSubmit:e=>{s({description:e.description},{onError:()=>{l({title:`Failed to update ${_.toLowerCase()} description`,description:"Please try again",variant:"destructive"}),p.invalidateQueries({queryKey:Re.all})}})},fieldName:"description",className:"text-sm "+(r.description?"text-current":"text-muted-foreground"),successMessage:"Description updated",errorMessage:"Failed to update description",placeholderText:`Describe the goal of the ${_.toLowerCase()}`}):r.description&&n.jsx("div",{className:"text-sm text-current",children:r.description})]})})]}),n.jsxs("div",{className:"ml-auto flex gap-4 items-center",children:[n.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground",children:[L,r.triggerType===ca.ONE_TIME&&n.jsxs(n.Fragment,{children:[n.jsx("div",{role:"button",tabIndex:0,className:"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 hover:bg-accent hover:text-accent-foreground h-10 w-10 cursor-pointer",onClick:()=>y(!0),children:n.jsx(cse,{title:"Duplicate",Icon:l3.DuplicateIcon,asChild:!1,onClick:()=>y(!0)})}),r.status===pa.COMPLETED||r.status===pa.DRAFT&&n.jsx("div",{role:"button",tabIndex:0,className:"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 hover:bg-accent hover:text-accent-foreground h-10 w-10 cursor-pointer",onClick:()=>b(!0),children:n.jsx(cse,{title:"Archive",Icon:l3.ArchiveIcon,asChild:!1,onClick:()=>b(!0)})})]})]}),n.jsx("div",w?{className:"flex items-center text-muted-foreground pr-2",children:n.jsx(Tq,{size:"sm"})}:{className:"flex items-center",children:j()})]}),n.jsx(Ije,{open:v,onOpenChange:y,onDuplicationCreated:t}),n.jsx(Kje,{open:S,onOpenChange:A,setIsActive:f}),n.jsx(Oje,{open:x,onOpenChange:N}),n.jsx(zje,{open:k,onOpenChange:b})]}):null},Jje=()=>{const e=Q2(),{isLoading:t}=sa(e?.id),{state:{hideSales:i,hideSms:r}}=a.useContext(wq);return!e||t?n.jsx(Tq,{text:[`Fetching ${TD("engage:insight",{count:2})}`,"Finishing up"]}):n.jsx("div",{className:"h-full p-4",children:n.jsx(_je,{automationId:e.id,automation:e,includeSales:!i,includeSms:!r})})},Uje=()=>{const e=Q2(),[t,i]=a.useState(10),[r,o]=a.useState(void 0),[s,l]=a.useState(""),{sentCommunications:u,isLoading:c,isFetching:d,isPlaceholderData:m,fetchError:h}=ia({automationId:e?.id??"",cursor:r,limit:t,search:s||void 0}),p=a.useCallback((e=>{o(e.cursor),i(e.pageSize)}),[]),g=[{accessorKey:"communicationsSent",id:"lastCommunication",header:"Sent At",cell:({row:e})=>e.original.communicationJobCreatedAt?n.jsx("div",{className:"flex items-center gap-2",children:n.jsx("span",{className:"text-sm text-gray-600",children:Ooe(new Date(e.original.communicationJobCreatedAt),"MMM d, yyyy h:mm a")})}):n.jsx("span",{className:"text-gray-400",children:"Not available"})},{accessorFn:e=>`${e.firstName||""} ${e.lastName||""}`.trim(),id:"name",header:"Name",cell:({row:e})=>{const a=`${e.original.firstName||""} ${e.original.lastName||""}`.trim();return a||n.jsx("span",{className:"text-gray-400",children:"Not provided"})}},{accessorKey:"email",header:"Email",cell:({row:e})=>e.original.email||n.jsx("span",{className:"text-gray-400",children:"Not provided"})},{accessorKey:"phone",header:"Phone",cell:({row:e})=>e.original.phone?yxe(e.original.phone):n.jsx("span",{className:"text-gray-400",children:"Not provided"})},{accessorKey:"communicationsSent",id:"communicationsSent",header:"Communications Sent",cell:({row:e})=>{const a=e.original.communicationsSent||[],t=a.filter((e=>e.type===ga.EMAIL)),i=a.filter((e=>e.type===ga.SMS)),r=t.length>0,o=i.length>0,s=t.some((e=>e.delivered)),l=i.some((e=>e.delivered)),u=t.find((e=>e.error))?.error,c=i.find((e=>e.error))?.error,d=t.some((e=>e.skipped)),m=i.some((e=>e.skipped)),h=(e,a,t,i)=>n.jsxs("div",{className:"flex items-center gap-1.5 cursor-pointer",children:[n.jsxs("div",{className:"relative",children:[n.jsx("email"===e?l3.EmailIcon:l3.SmsIcon,{className:"h-4 w-4 "+(t?"text-red-500":i?"text-gray-400":a?"text-green-500":"text-gray-400")}),a&&!t&&!i&&n.jsx("div",{className:"absolute -right-1 -top-1 h-2 w-2 rounded-full bg-green-500 ring-1 ring-white"}),t&&n.jsx("div",{className:"absolute -right-1 -top-1 h-2 w-2 rounded-full bg-red-500 ring-1 ring-white"}),i&&n.jsx("div",{className:"absolute -right-1 -top-1 h-2 w-2 rounded-full bg-gray-400 ring-1 ring-white"})]}),n.jsxs("div",{className:"flex flex-col",children:[n.jsx("span",{className:"text-sm font-medium",children:"email"===e?"Email":"SMS"}),n.jsx("span",t?{className:"text-xs text-red-500",children:"Failed"}:i?{className:"text-xs text-gray-500",children:"Skipped"}:{className:"text-xs "+(a?"text-green-600":"text-gray-500"),children:a?"Delivered":"Pending"})]})]});return n.jsxs("div",{className:"flex items-center gap-3",children:[r&&(u?n.jsx(cse,{title:u,children:h("email",s,u,d)}):h("email",s,u,d)),r&&o&&n.jsx("div",{className:"h-8 w-px bg-gray-200"}),o&&(c?n.jsx(cse,{title:c,children:h("sms",l,c,m)}):h("sms",l,c,m)),!r&&!o&&n.jsx("span",{className:"text-sm text-gray-400",children:"None"})]})}}];return e&&!c&&u?h?n.jsxs("div",{children:["Error: ",h.message]}):!u||!s&&0===u.results.length?n.jsxs("div",{className:"flex flex-col items-center justify-center p-8 text-center",children:[n.jsx("div",{className:"mb-4",children:n.jsx(l3.UserIcon,{className:"h-12 w-12 text-gray-400"})}),n.jsx("h3",{className:"mb-2 text-lg font-semibold text-gray-700",children:"No Communications Sent Yet"}),n.jsxs("p",{className:"text-gray-500",children:["This"," ",TD(e.triggerType===ca.ONE_TIME?"engage:broadcast":"engage:automation")," ","hasn't sent any communications yet. Please check back later to see recipient details once communications have been sent."]})]}):n.jsx("div",{className:"w-full h-[75vh] flex flex-col",children:n.jsx("div",{className:"flex-grow min-h-0 p-4",children:n.jsx(R7,{data:u?.results||[],columns:g,paginationMode:"cursor",initialPageSize:t,isLoading:c&&!m,cursorPaginationQueryResult:{nextCursor:u?.pagination.cursor||null,isLoading:c,isFetching:d,isPlaceholderData:m},onQueryParametersChange:p,searchValue:s,onSearchChange:l})})}):n.jsx(Tq,{text:["Fetching Recipients","Finishing up"]})},Wje=()=>{const e=Q2();return e?e?.triggerType===ca.ONE_TIME&&e?.status===pa.DRAFT?n.jsxs("div",{className:"flex flex-col items-center justify-center p-8 text-center",children:[n.jsx("div",{className:"mb-4",children:n.jsx(l3.UserIcon,{className:"h-12 w-12 text-gray-400"})}),n.jsx("h3",{className:"mb-2 text-lg font-semibold text-gray-700",children:"No Recipients Available Yet"}),n.jsxs("p",{className:"text-gray-500",children:["Recipients will be available once this"," ",TD(e.triggerType===ca.ONE_TIME?"engage:broadcast":"engage:automation")," ","has completed running. Please check back after the automation has finished."]})]}):n.jsx(Uje,{}):n.jsx(Tq,{text:["Fetching Recipients","Finishing up"]})},qje=a.createContext(null);qje.displayName="PanelGroupContext";const Zje="data-panel-group",$je="data-panel-group-direction",Yje="data-panel-group-id",Qje="data-panel",Xje="data-panel-collapsible",eLe="data-panel-id",aLe="data-panel-size",nLe="data-resize-handle",tLe="data-resize-handle-active",iLe="data-panel-resize-handle-enabled",rLe="data-panel-resize-handle-id",oLe="data-resize-handle-state",sLe=a.useLayoutEffect,lLe=r["useId".toString()],uLe="function"==typeof lLe?lLe:()=>null;let cLe=0;function dLe(e=null){const n=uLe(),t=a.useRef(e||n||null);return null===t.current&&(t.current=""+cLe++),null!=e?e:t.current}function mLe({children:e,className:n="",collapsedSize:t,collapsible:i,defaultSize:r,forwardedRef:o,id:s,maxSize:l,minSize:u,onCollapse:c,onExpand:d,onResize:m,order:h,style:p,tagName:g="div",...f}){const v=a.useContext(qje);if(null===v)throw Error("Panel components must be rendered within a PanelGroup container");const{collapsePanel:y,expandPanel:k,getPanelSize:b,getPanelStyle:S,groupId:A,isPanelCollapsed:w,reevaluatePanelConstraints:M,registerPanel:C,resizePanel:T,unregisterPanel:x}=v,N=dLe(s),E=a.useRef({callbacks:{onCollapse:c,onExpand:d,onResize:m},constraints:{collapsedSize:t,collapsible:i,defaultSize:r,maxSize:l,minSize:u},id:N,idIsFromProps:void 0!==s,order:h});a.useRef({didLogMissingDefaultSizeWarning:!1}),sLe((()=>{const{callbacks:e,constraints:a}=E.current,n={...a};E.current.id=N,E.current.idIsFromProps=void 0!==s,E.current.order=h,e.onCollapse=c,e.onExpand=d,e.onResize=m,a.collapsedSize=t,a.collapsible=i,a.defaultSize=r,a.maxSize=l,a.minSize=u,n.collapsedSize===a.collapsedSize&&n.collapsible===a.collapsible&&n.maxSize===a.maxSize&&n.minSize===a.minSize||M(E.current,n)})),sLe((()=>{const e=E.current;return C(e),()=>{x(e)}}),[h,N,C,x]),a.useImperativeHandle(o,(()=>({collapse:()=>{y(E.current)},expand:e=>{k(E.current,e)},getId:()=>N,getSize:()=>b(E.current),isCollapsed:()=>w(E.current),isExpanded:()=>!w(E.current),resize:e=>{T(E.current,e)}})),[y,k,b,w,N,T]);const _=S(E.current,r);return a.createElement(g,{...f,children:e,className:n,id:N,style:{..._,...p},[Yje]:A,[Qje]:"",[Xje]:i||void 0,[eLe]:N,[aLe]:parseFloat(""+_.flexGrow).toFixed(1)})}const hLe=a.forwardRef(((e,n)=>a.createElement(mLe,{...e,forwardedRef:n})));mLe.displayName="Panel",hLe.displayName="forwardRef(Panel)";let pLe=null,gLe=-1,fLe=null;function vLe(e,a){var n,t;const i=function(e,a){if(a){const e=!!(a&_Le),n=!!(a&PLe);if(a&NLe)return e?"se-resize":n?"ne-resize":"e-resize";if(a&ELe)return e?"sw-resize":n?"nw-resize":"w-resize";if(e)return"s-resize";if(n)return"n-resize"}switch(e){case"horizontal":return"ew-resize";case"intersection":return"move";case"vertical":return"ns-resize"}}(e,a);if(pLe!==i){var r;if(pLe=i,null===fLe&&(fLe=document.createElement("style"),document.head.appendChild(fLe)),gLe>=0)null===(r=fLe.sheet)||void 0===r||r.removeRule(gLe);gLe=null!==(n=null===(t=fLe.sheet)||void 0===t?void 0:t.insertRule(`*{cursor: ${i} !important;}`))&&void 0!==n?n:-1}}function yLe(e){return"keydown"===e.type}function kLe(e){return e.type.startsWith("pointer")}function bLe(e){return e.type.startsWith("mouse")}function SLe(e){if(kLe(e)){if(e.isPrimary)return{x:e.clientX,y:e.clientY}}else if(bLe(e))return{x:e.clientX,y:e.clientY};return{x:1/0,y:1/0}}const ALe=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function wLe(e){const a=getComputedStyle(e);return"fixed"===a.position||(!("auto"===a.zIndex||"static"===a.position&&!function(e){var a;const n=getComputedStyle(null!==(a=xLe(e))&&void 0!==a?a:e).display;return"flex"===n||"inline-flex"===n}(e))||(+a.opacity<1||("transform"in a&&"none"!==a.transform||("webkitTransform"in a&&"none"!==a.webkitTransform||("mixBlendMode"in a&&"normal"!==a.mixBlendMode||("filter"in a&&"none"!==a.filter||("webkitFilter"in a&&"none"!==a.webkitFilter||("isolation"in a&&"isolate"===a.isolation||(!!ALe.test(a.willChange)||"touch"===a.webkitOverflowScrolling)))))))))}function MLe(e){let a=e.length;for(;a--;){const n=e[a];if(qLe(n,"Missing node"),wLe(n))return n}return null}function CLe(e){return e&&Number(getComputedStyle(e).zIndex)||0}function TLe(e){const a=[];for(;e;)a.push(e),e=xLe(e);return a}function xLe(e){const{parentNode:a}=e;return a&&a instanceof ShadowRoot?a.host:a}const NLe=1,ELe=2,_Le=4,PLe=8,jLe="coarse"===function(){if("function"==typeof matchMedia)return matchMedia("(pointer:coarse)").matches?"coarse":"fine"}();let LLe=[],BLe=!1,RLe=new Map,zLe=new Map;const DLe=new Set;function OLe(e){const{target:a}=e,{x:n,y:t}=SLe(e);BLe=!0,GLe({target:a,x:n,y:t}),ULe(),LLe.length>0&&(WLe("down",e),e.preventDefault(),ILe(a)||e.stopImmediatePropagation())}function KLe(e){const{x:a,y:n}=SLe(e);if(BLe&&0===e.buttons&&(BLe=!1,WLe("up",e)),!BLe){const{target:t}=e;GLe({target:t,x:a,y:n})}WLe("move",e),VLe(),LLe.length>0&&e.preventDefault()}function HLe(e){const{target:a}=e,{x:n,y:t}=SLe(e);zLe.clear(),BLe=!1,LLe.length>0&&(e.preventDefault(),ILe(a)||e.stopImmediatePropagation()),WLe("up",e),GLe({target:a,x:n,y:t}),VLe(),ULe()}function ILe(e){let a=e;for(;a;){if(a.hasAttribute(nLe))return!0;a=a.parentElement}return!1}function GLe({target:e,x:a,y:n}){LLe.splice(0);let t=null;(e instanceof HTMLElement||e instanceof SVGElement)&&(t=e),DLe.forEach((e=>{const{element:i,hitAreaMargins:r}=e,o=i.getBoundingClientRect(),{bottom:s,left:l,right:u,top:c}=o,d=jLe?r.coarse:r.fine;if(a>=l-d&&a<=u+d&&n>=c-d&&n<=s+d){if(null!==t&&document.contains(t)&&i!==t&&!i.contains(t)&&!t.contains(i)&&function(e,a){if(e===a)throw new Error("Cannot compare node with itself");const n={a:TLe(e),b:TLe(a)};let t;for(;n.a.at(-1)===n.b.at(-1);)e=n.a.pop(),a=n.b.pop(),t=e;qLe(t,"Stacking order can only be calculated for elements with a common ancestor");const i=CLe(MLe(n.a)),r=CLe(MLe(n.b));if(i===r){const e=t.childNodes,a={a:n.a.at(-1),b:n.b.at(-1)};let i=e.length;for(;i--;){const n=e[i];if(n===a.a)return 1;if(n===a.b)return-1}}return Math.sign(i-r)}(t,i)>0){let e=t,a=!1;for(;e&&!e.contains(i);){if((m=e.getBoundingClientRect()).x<(h=o).x+h.width&&m.x+m.width>h.x&&m.y<h.y+h.height&&m.y+m.height>h.y){a=!0;break}e=e.parentElement}if(a)return}LLe.push(e)}var m,h}))}function FLe(e,a){zLe.set(e,a)}function VLe(){let e=!1,a=!1;LLe.forEach((n=>{const{direction:t}=n;"horizontal"===t?e=!0:a=!0}));let n=0;zLe.forEach((e=>{n|=e})),e&&a?vLe("intersection",n):e?vLe("horizontal",n):a?vLe("vertical",n):null!==fLe&&(document.head.removeChild(fLe),pLe=null,fLe=null,gLe=-1)}let JLe=new AbortController;function ULe(){JLe.abort(),JLe=new AbortController;const e={capture:!0,signal:JLe.signal};DLe.size&&(BLe?(LLe.length>0&&RLe.forEach(((a,n)=>{const{body:t}=n;a>0&&(t.addEventListener("contextmenu",HLe,e),t.addEventListener("pointerleave",KLe,e),t.addEventListener("pointermove",KLe,e))})),RLe.forEach(((a,n)=>{const{body:t}=n;t.addEventListener("pointerup",HLe,e),t.addEventListener("pointercancel",HLe,e)}))):RLe.forEach(((a,n)=>{const{body:t}=n;a>0&&(t.addEventListener("pointerdown",OLe,e),t.addEventListener("pointermove",KLe,e))})))}function WLe(e,a){DLe.forEach((n=>{const{setResizeHandlerState:t}=n,i=LLe.includes(n);t(e,i,a)}))}function qLe(e,a){if(!e)throw Error(a)}function ZLe(e,a,n=10){return e.toFixed(n)===a.toFixed(n)?0:e>a?1:-1}function $Le(e,a,n=10){return 0===ZLe(e,a,n)}function YLe(e,a,n){return 0===ZLe(e,a,n)}function QLe({panelConstraints:e,panelIndex:a,size:n}){const t=e[a];qLe(null!=t,`Panel constraints not found for index ${a}`);let{collapsedSize:i=0,collapsible:r,maxSize:o=100,minSize:s=0}=t;if(ZLe(n,s)<0)if(r){n=ZLe(n,(i+s)/2)<0?i:s}else n=s;return n=Math.min(o,n),n=parseFloat(n.toFixed(10))}function XLe({delta:e,initialLayout:a,panelConstraints:n,pivotIndices:t,prevLayout:i,trigger:r}){if(YLe(e,0))return a;const o=[...a],[s,l]=t;qLe(null!=s,"Invalid first pivot index"),qLe(null!=l,"Invalid second pivot index");let u=0;if("keyboard"===r){{const t=e<0?l:s,i=n[t];qLe(i,`Panel constraints not found for index ${t}`);const{collapsedSize:r=0,collapsible:o,minSize:u=0}=i;if(o){const n=a[t];if(qLe(null!=n,`Previous layout not found for panel index ${t}`),YLe(n,r)){const a=u-n;ZLe(a,Math.abs(e))>0&&(e=e<0?0-a:a)}}}{const t=e<0?s:l,i=n[t];qLe(i,`No panel constraints found for index ${t}`);const{collapsedSize:r=0,collapsible:o,minSize:u=0}=i;if(o){const n=a[t];if(qLe(null!=n,`Previous layout not found for panel index ${t}`),YLe(n,u)){const a=n-r;ZLe(a,Math.abs(e))>0&&(e=e<0?0-a:a)}}}}{const t=e<0?1:-1;let i=e<0?l:s,r=0;for(;;){const e=a[i];qLe(null!=e,`Previous layout not found for panel index ${i}`);if(r+=QLe({panelConstraints:n,panelIndex:i,size:100})-e,i+=t,i<0||i>=n.length)break}const o=Math.min(Math.abs(e),Math.abs(r));e=e<0?0-o:o}{let t=e<0?s:l;for(;t>=0&&t<n.length;){const i=Math.abs(e)-Math.abs(u),r=a[t];qLe(null!=r,`Previous layout not found for panel index ${t}`);const s=QLe({panelConstraints:n,panelIndex:t,size:r-i});if(!YLe(r,s)&&(u+=r-s,o[t]=s,u.toPrecision(3).localeCompare(Math.abs(e).toPrecision(3),void 0,{numeric:!0})>=0))break;e<0?t--:t++}}if(function(e,a,n){if(e.length!==a.length)return!1;for(let t=0;t<e.length;t++)if(!YLe(e[t],a[t],n))return!1;return!0}(i,o))return i;{const t=e<0?l:s,i=a[t];qLe(null!=i,`Previous layout not found for panel index ${t}`);const r=i+u,c=QLe({panelConstraints:n,panelIndex:t,size:r});if(o[t]=c,!YLe(c,r)){let a=r-c;let t=e<0?l:s;for(;t>=0&&t<n.length;){const i=o[t];qLe(null!=i,`Previous layout not found for panel index ${t}`);const r=QLe({panelConstraints:n,panelIndex:t,size:i+a});if(YLe(i,r)||(a-=r-i,o[t]=r),YLe(a,0))break;e>0?t--:t++}}}return YLe(o.reduce(((e,a)=>a+e),0),100)?o:i}function eBe({layout:e,panelsArray:a,pivotIndices:n}){let t=0,i=100,r=0,o=0;const s=n[0];qLe(null!=s,"No pivot index found"),a.forEach(((e,a)=>{const{constraints:n}=e,{maxSize:l=100,minSize:u=0}=n;a===s?(t=u,i=l):(r+=u,o+=l)}));return{valueMax:Math.min(i,100-r),valueMin:Math.max(t,100-o),valueNow:e[s]}}function aBe(e,a=document){return Array.from(a.querySelectorAll(`[${rLe}][data-panel-group-id="${e}"]`))}function nBe(e,a,n=document){const t=aBe(e,n).findIndex((e=>e.getAttribute(rLe)===a));return null!=t?t:null}function tBe(e,a,n){const t=nBe(e,a,n);return null!=t?[t,t+1]:[-1,-1]}function iBe(e,a=document){var n;if(a instanceof HTMLElement&&(null==a||null===(n=a.dataset)||void 0===n?void 0:n.panelGroupId)==e)return a;const t=a.querySelector(`[data-panel-group][data-panel-group-id="${e}"]`);return t||null}function rBe(e,a=document){const n=a.querySelector(`[${rLe}="${e}"]`);return n||null}function oBe({committedValuesRef:e,eagerValuesRef:n,groupId:t,layout:i,panelDataArray:r,panelGroupElement:o,setLayout:s}){a.useRef({didWarnAboutMissingResizeHandle:!1}),sLe((()=>{if(!o)return;const e=aBe(t,o);for(let a=0;a<r.length-1;a++){const{valueMax:n,valueMin:t,valueNow:o}=eBe({layout:i,panelsArray:r,pivotIndices:[a,a+1]}),s=e[a];if(null==s);else{const e=r[a];qLe(e,`No panel data found for index "${a}"`),s.setAttribute("aria-controls",e.id),s.setAttribute("aria-valuemax",""+Math.round(n)),s.setAttribute("aria-valuemin",""+Math.round(t)),s.setAttribute("aria-valuenow",null!=o?""+Math.round(o):"")}}return()=>{e.forEach(((e,a)=>{e.removeAttribute("aria-controls"),e.removeAttribute("aria-valuemax"),e.removeAttribute("aria-valuemin"),e.removeAttribute("aria-valuenow")}))}}),[t,i,r,o]),a.useEffect((()=>{if(!o)return;const e=n.current;qLe(e,"Eager values not found");const{panelDataArray:a}=e;qLe(null!=iBe(t,o),`No group found for id "${t}"`);const r=aBe(t,o);qLe(r,`No resize handles found for group id "${t}"`);const l=r.map((e=>{const n=e.getAttribute(rLe);qLe(n,"Resize handle element has no handle id attribute");const[r,l]=function(e,a,n,t=document){var i,r,o,s;const l=rBe(a,t),u=aBe(e,t),c=l?u.indexOf(l):-1;return[null!==(i=null===(r=n[c])||void 0===r?void 0:r.id)&&void 0!==i?i:null,null!==(o=null===(s=n[c+1])||void 0===s?void 0:s.id)&&void 0!==o?o:null]}(t,n,a,o);if(null==r||null==l)return()=>{};const u=e=>{if(!e.defaultPrevented)switch(e.key){case"Enter":{e.preventDefault();const l=a.findIndex((e=>e.id===r));if(l>=0){const e=a[l];qLe(e,`No panel data found for index ${l}`);const r=i[l],{collapsedSize:u=0,collapsible:c,minSize:d=0}=e.constraints;if(null!=r&&c){const e=XLe({delta:YLe(r,u)?d-u:u-r,initialLayout:i,panelConstraints:a.map((e=>e.constraints)),pivotIndices:tBe(t,n,o),prevLayout:i,trigger:"keyboard"});i!==e&&s(e)}}break}}};return e.addEventListener("keydown",u),()=>{e.removeEventListener("keydown",u)}}));return()=>{l.forEach((e=>e()))}}),[o,e,n,t,i,r,s])}function sBe(e,a){if(e.length!==a.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==a[n])return!1;return!0}function lBe(e,a){const n="horizontal"===e,{x:t,y:i}=SLe(a);return n?t:i}function uBe(e,a,n,t,i,r){if(yLe(e)){const a="horizontal"===n;let t=0;t=e.shiftKey?100:null!=i?i:10;let r=0;switch(e.key){case"ArrowDown":r=a?0:t;break;case"ArrowLeft":r=a?-t:0;break;case"ArrowRight":r=a?t:0;break;case"ArrowUp":r=a?0:-t;break;case"End":r=100;break;case"Home":r=-100}return r}return null==t?0:function(e,a,n,t,i){const r="horizontal"===n,o=rBe(a,i);qLe(o,`No resize handle element found for id "${a}"`);const s=o.getAttribute(Yje);qLe(s,"Resize handle element has no group id attribute");let{initialCursorPosition:l}=t;const u=lBe(n,e),c=iBe(s,i);qLe(c,`No group element found for id "${s}"`);const d=c.getBoundingClientRect();return(u-l)/(r?d.width:d.height)*100}(e,a,n,t,r)}function cBe(e,a,n){a.forEach(((a,t)=>{const i=e[t];qLe(i,`Panel data not found for index ${t}`);const{callbacks:r,constraints:o,id:s}=i,{collapsedSize:l=0,collapsible:u}=o,c=n[s];if(null==c||a!==c){n[s]=a;const{onCollapse:e,onExpand:t,onResize:i}=r;i&&i(a,c),u&&(e||t)&&(!t||null!=c&&!$Le(c,l)||$Le(a,l)||t(),!e||null!=c&&$Le(c,l)||!$Le(a,l)||e())}}))}function dBe(e,a){if(e.length!==a.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!=a[n])return!1;return!0}function mBe(e){try{if("undefined"==typeof localStorage)throw new Error("localStorage not supported in this environment");e.getItem=e=>localStorage.getItem(e),e.setItem=(e,a)=>{localStorage.setItem(e,a)}}catch(a){e.getItem=()=>null,e.setItem=()=>{}}}function hBe(e){return`react-resizable-panels:${e}`}function pBe(e){return e.map((e=>{const{constraints:a,id:n,idIsFromProps:t,order:i}=e;return t?n:i?`${i}:${JSON.stringify(a)}`:JSON.stringify(a)})).sort(((e,a)=>e.localeCompare(a))).join(",")}function gBe(e,a){try{const n=hBe(e),t=a.getItem(n);if(t){const e=JSON.parse(t);if("object"==typeof e&&null!=e)return e}}catch(n){}return null}function fBe(e,a,n,t,i){var r;const o=hBe(e),s=pBe(a),l=null!==(r=gBe(e,i))&&void 0!==r?r:{};l[s]={expandToSizes:Object.fromEntries(n.entries()),layout:t};try{i.setItem(o,JSON.stringify(l))}catch(u){}}function vBe({layout:e,panelConstraints:a}){const n=[...e],t=n.reduce(((e,a)=>e+a),0);if(n.length!==a.length)throw Error(`Invalid ${a.length} panel layout: ${n.map((e=>`${e}%`)).join(", ")}`);if(!YLe(t,100)&&n.length>0)for(let r=0;r<a.length;r++){const e=n[r];qLe(null!=e,`No layout data found for index ${r}`);n[r]=100/t*e}let i=0;for(let r=0;r<a.length;r++){const e=n[r];qLe(null!=e,`No layout data found for index ${r}`);const t=QLe({panelConstraints:a,panelIndex:r,size:e});e!=t&&(i+=e-t,n[r]=t)}if(!YLe(i,0))for(let r=0;r<a.length;r++){const e=n[r];qLe(null!=e,`No layout data found for index ${r}`);const t=QLe({panelConstraints:a,panelIndex:r,size:e+i});if(e!==t&&(i-=t-e,n[r]=t,YLe(i,0)))break}return n}const yBe={getItem:e=>(mBe(yBe),yBe.getItem(e)),setItem:(e,a)=>{mBe(yBe),yBe.setItem(e,a)}},kBe={};function bBe({autoSaveId:e=null,children:n,className:t="",direction:i,forwardedRef:r,id:o=null,onLayout:s=null,keyboardResizeBy:l=null,storage:u=yBe,style:c,tagName:d="div",...m}){const h=dLe(o),p=a.useRef(null),[g,f]=a.useState(null),[v,y]=a.useState([]),k=function(){const[e,n]=a.useState(0);return a.useCallback((()=>n((e=>e+1))),[])}(),b=a.useRef({}),S=a.useRef(new Map),A=a.useRef(0),w=a.useRef({autoSaveId:e,direction:i,dragState:g,id:h,keyboardResizeBy:l,onLayout:s,storage:u}),M=a.useRef({layout:v,panelDataArray:[],panelDataArrayChanged:!1});a.useRef({didLogIdAndOrderWarning:!1,didLogPanelConstraintsWarning:!1,prevPanelIds:[]}),a.useImperativeHandle(r,(()=>({getId:()=>w.current.id,getLayout:()=>{const{layout:e}=M.current;return e},setLayout:e=>{const{onLayout:a}=w.current,{layout:n,panelDataArray:t}=M.current,i=vBe({layout:e,panelConstraints:t.map((e=>e.constraints))});sBe(n,i)||(y(i),M.current.layout=i,a&&a(i),cBe(t,i,b.current))}})),[]),sLe((()=>{w.current.autoSaveId=e,w.current.direction=i,w.current.dragState=g,w.current.id=h,w.current.onLayout=s,w.current.storage=u})),oBe({committedValuesRef:w,eagerValuesRef:M,groupId:h,layout:v,panelDataArray:M.current.panelDataArray,setLayout:y,panelGroupElement:p.current}),a.useEffect((()=>{const{panelDataArray:a}=M.current;if(e){if(0===v.length||v.length!==a.length)return;let n=kBe[e];null==n&&(n=function(e,a=10){let n=null;return(...t)=>{null!==n&&clearTimeout(n),n=setTimeout((()=>{e(...t)}),a)}}(fBe,100),kBe[e]=n);const t=[...a],i=new Map(S.current);n(e,t,i,v,u)}}),[e,v,u]),a.useEffect((()=>{}));const C=a.useCallback((e=>{const{onLayout:a}=w.current,{layout:n,panelDataArray:t}=M.current;if(e.constraints.collapsible){const i=t.map((e=>e.constraints)),{collapsedSize:r=0,panelSize:o,pivotIndices:s}=wBe(t,e,n);if(qLe(null!=o,`Panel size not found for panel "${e.id}"`),!$Le(o,r)){S.current.set(e.id,o);const l=XLe({delta:ABe(t,e)===t.length-1?o-r:r-o,initialLayout:n,panelConstraints:i,pivotIndices:s,prevLayout:n,trigger:"imperative-api"});dBe(n,l)||(y(l),M.current.layout=l,a&&a(l),cBe(t,l,b.current))}}}),[]),T=a.useCallback(((e,a)=>{const{onLayout:n}=w.current,{layout:t,panelDataArray:i}=M.current;if(e.constraints.collapsible){const r=i.map((e=>e.constraints)),{collapsedSize:o=0,panelSize:s=0,minSize:l=0,pivotIndices:u}=wBe(i,e,t),c=null!=a?a:l;if($Le(s,o)){const a=S.current.get(e.id),o=null!=a&&a>=c?a:c,l=XLe({delta:ABe(i,e)===i.length-1?s-o:o-s,initialLayout:t,panelConstraints:r,pivotIndices:u,prevLayout:t,trigger:"imperative-api"});dBe(t,l)||(y(l),M.current.layout=l,n&&n(l),cBe(i,l,b.current))}}}),[]),x=a.useCallback((e=>{const{layout:a,panelDataArray:n}=M.current,{panelSize:t}=wBe(n,e,a);return qLe(null!=t,`Panel size not found for panel "${e.id}"`),t}),[]),N=a.useCallback(((e,a)=>{const{panelDataArray:n}=M.current,t=ABe(n,e);return function({defaultSize:e,dragState:a,layout:n,panelData:t,panelIndex:i,precision:r=3}){const o=n[i];let s;return s=null==o?null!=e?e.toPrecision(r):"1":1===t.length?"1":o.toPrecision(r),{flexBasis:0,flexGrow:s,flexShrink:1,overflow:"hidden",pointerEvents:null!==a?"none":void 0}}({defaultSize:a,dragState:g,layout:v,panelData:n,panelIndex:t})}),[g,v]),E=a.useCallback((e=>{const{layout:a,panelDataArray:n}=M.current,{collapsedSize:t=0,collapsible:i,panelSize:r}=wBe(n,e,a);return qLe(null!=r,`Panel size not found for panel "${e.id}"`),!0===i&&$Le(r,t)}),[]),_=a.useCallback((e=>{const{layout:a,panelDataArray:n}=M.current,{collapsedSize:t=0,collapsible:i,panelSize:r}=wBe(n,e,a);return qLe(null!=r,`Panel size not found for panel "${e.id}"`),!i||ZLe(r,t)>0}),[]),P=a.useCallback((e=>{const{panelDataArray:a}=M.current;a.push(e),a.sort(((e,a)=>{const n=e.order,t=a.order;return null==n&&null==t?0:null==n?-1:null==t?1:n-t})),M.current.panelDataArrayChanged=!0,k()}),[k]);sLe((()=>{if(M.current.panelDataArrayChanged){M.current.panelDataArrayChanged=!1;const{autoSaveId:e,onLayout:a,storage:n}=w.current,{layout:t,panelDataArray:i}=M.current;let r=null;if(e){const a=function(e,a,n){var t,i;return null!==(i=(null!==(t=gBe(e,n))&&void 0!==t?t:{})[pBe(a)])&&void 0!==i?i:null}(e,i,n);a&&(S.current=new Map(Object.entries(a.expandToSizes)),r=a.layout)}null==r&&(r=function({panelDataArray:e}){const a=Array(e.length),n=e.map((e=>e.constraints));let t=0,i=100;for(let r=0;r<e.length;r++){const e=n[r];qLe(e,`Panel constraints not found for index ${r}`);const{defaultSize:o}=e;null!=o&&(t++,a[r]=o,i-=o)}for(let r=0;r<e.length;r++){const o=n[r];qLe(o,`Panel constraints not found for index ${r}`);const{defaultSize:s}=o;if(null!=s)continue;const l=i/(e.length-t);t++,a[r]=l,i-=l}return a}({panelDataArray:i}));const o=vBe({layout:r,panelConstraints:i.map((e=>e.constraints))});sBe(t,o)||(y(o),M.current.layout=o,a&&a(o),cBe(i,o,b.current))}})),sLe((()=>{const e=M.current;return()=>{e.layout=[]}}),[]);const j=a.useCallback((e=>{let a=!1;const n=p.current;if(n){"rtl"===window.getComputedStyle(n,null).getPropertyValue("direction")&&(a=!0)}return function(n){n.preventDefault();const t=p.current;if(!t)return()=>null;const{direction:i,dragState:r,id:o,keyboardResizeBy:s,onLayout:l}=w.current,{layout:u,panelDataArray:c}=M.current,{initialLayout:d}=null!=r?r:{},m=tBe(o,e,t);let h=uBe(n,e,i,r,s,t);const g="horizontal"===i;g&&a&&(h=-h);const f=XLe({delta:h,initialLayout:null!=d?d:u,panelConstraints:c.map((e=>e.constraints)),pivotIndices:m,prevLayout:u,trigger:yLe(n)?"keyboard":"mouse-or-touch"}),v=!dBe(u,f);(kLe(n)||bLe(n))&&A.current!=h&&(A.current=h,FLe(e,v||0===h?0:g?h<0?NLe:ELe:h<0?_Le:PLe)),v&&(y(f),M.current.layout=f,l&&l(f),cBe(c,f,b.current))}}),[]),L=a.useCallback(((e,a)=>{const{onLayout:n}=w.current,{layout:t,panelDataArray:i}=M.current,r=i.map((e=>e.constraints)),{panelSize:o,pivotIndices:s}=wBe(i,e,t);qLe(null!=o,`Panel size not found for panel "${e.id}"`);const l=XLe({delta:ABe(i,e)===i.length-1?o-a:a-o,initialLayout:t,panelConstraints:r,pivotIndices:s,prevLayout:t,trigger:"imperative-api"});dBe(t,l)||(y(l),M.current.layout=l,n&&n(l),cBe(i,l,b.current))}),[]),B=a.useCallback(((e,a)=>{const{layout:n,panelDataArray:t}=M.current,{collapsedSize:i=0,collapsible:r}=a,{collapsedSize:o=0,collapsible:s,maxSize:l=100,minSize:u=0}=e.constraints,{panelSize:c}=wBe(t,e,n);null!=c&&(r&&s&&$Le(c,i)?$Le(i,o)||L(e,o):c<u?L(e,u):c>l&&L(e,l))}),[L]),R=a.useCallback(((e,a)=>{const{direction:n}=w.current,{layout:t}=M.current;if(!p.current)return;const i=rBe(e,p.current);qLe(i,`Drag handle element not found for id "${e}"`);const r=lBe(n,a);f({dragHandleId:e,dragHandleRect:i.getBoundingClientRect(),initialCursorPosition:r,initialLayout:t})}),[]),z=a.useCallback((()=>{f(null)}),[]),D=a.useCallback((e=>{const{panelDataArray:a}=M.current,n=ABe(a,e);n>=0&&(a.splice(n,1),delete b.current[e.id],M.current.panelDataArrayChanged=!0,k())}),[k]),O=a.useMemo((()=>({collapsePanel:C,direction:i,dragState:g,expandPanel:T,getPanelSize:x,getPanelStyle:N,groupId:h,isPanelCollapsed:E,isPanelExpanded:_,reevaluatePanelConstraints:B,registerPanel:P,registerResizeHandle:j,resizePanel:L,startDragging:R,stopDragging:z,unregisterPanel:D,panelGroupElement:p.current})),[C,g,i,T,x,N,h,E,_,B,P,j,L,R,z,D]);return a.createElement(qje.Provider,{value:O},a.createElement(d,{...m,children:n,className:t,id:o,ref:p,style:{...{display:"flex",flexDirection:"horizontal"===i?"row":"column",height:"100%",overflow:"hidden",width:"100%"},...c},[Zje]:"",[$je]:i,[Yje]:h}))}const SBe=a.forwardRef(((e,n)=>a.createElement(bBe,{...e,forwardedRef:n})));function ABe(e,a){return e.findIndex((e=>e===a||e.id===a.id))}function wBe(e,a,n){const t=ABe(e,a);return{...a.constraints,panelSize:n[t],pivotIndices:t===e.length-1?[t-1,t]:[t,t+1]}}function MBe({children:e=null,className:n="",disabled:t=!1,hitAreaMargins:i,id:r,onBlur:o,onClick:s,onDragging:l,onFocus:u,onPointerDown:c,onPointerUp:d,style:m={},tabIndex:h=0,tagName:p="div",...g}){var f,v;const y=a.useRef(null),k=a.useRef({onClick:s,onDragging:l,onPointerDown:c,onPointerUp:d});a.useEffect((()=>{k.current.onClick=s,k.current.onDragging=l,k.current.onPointerDown=c,k.current.onPointerUp=d}));const b=a.useContext(qje);if(null===b)throw Error("PanelResizeHandle components must be rendered within a PanelGroup container");const{direction:S,groupId:A,registerResizeHandle:w,startDragging:M,stopDragging:C,panelGroupElement:T}=b,x=dLe(r),[N,E]=a.useState("inactive"),[_,P]=a.useState(!1),[j,L]=a.useState(null),B=a.useRef({state:N});sLe((()=>{B.current.state=N})),a.useEffect((()=>{if(t)L(null);else{const e=w(x);L((()=>e))}}),[t,x,w]);const R=null!==(f=null==i?void 0:i.coarse)&&void 0!==f?f:15,z=null!==(v=null==i?void 0:i.fine)&&void 0!==v?v:5;a.useEffect((()=>{if(t||null==j)return;const e=y.current;qLe(e,"Element ref not attached");let a=!1;return function(e,a,n,t,i){var r;const{ownerDocument:o}=a,s={direction:n,element:a,hitAreaMargins:t,setResizeHandlerState:i},l=null!==(r=RLe.get(o))&&void 0!==r?r:0;return RLe.set(o,l+1),DLe.add(s),ULe(),function(){var a;zLe.delete(e),DLe.delete(s);const n=null!==(a=RLe.get(o))&&void 0!==a?a:1;if(RLe.set(o,n-1),ULe(),1===n&&RLe.delete(o),LLe.includes(s)){const e=LLe.indexOf(s);e>=0&&LLe.splice(e,1),VLe(),i("up",!0,null)}}}(x,e,S,{coarse:R,fine:z},((e,n,t)=>{if(n)switch(e){case"down":{E("drag"),a=!1,qLe(t,'Expected event to be defined for "down" action'),M(x,t);const{onDragging:e,onPointerDown:n}=k.current;null==e||e(!0),null==n||n();break}case"move":{const{state:e}=B.current;a=!0,"drag"!==e&&E("hover"),qLe(t,'Expected event to be defined for "move" action'),j(t);break}case"up":{E("hover"),C();const{onClick:e,onDragging:n,onPointerUp:t}=k.current;null==n||n(!1),null==t||t(),a||null==e||e();break}}else E("inactive")}))}),[R,S,t,z,w,x,j,M,C]),function({disabled:e,handleId:n,resizeHandler:t,panelGroupElement:i}){a.useEffect((()=>{if(e||null==t||null==i)return;const a=rBe(n,i);if(null==a)return;const r=e=>{if(!e.defaultPrevented)switch(e.key){case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"ArrowUp":case"End":case"Home":e.preventDefault(),t(e);break;case"F6":{e.preventDefault();const t=a.getAttribute(Yje);qLe(t,`No group element found for id "${t}"`);const r=aBe(t,i),o=nBe(t,n,i);qLe(null!==o,`No resize element found for id "${n}"`),r[e.shiftKey?o>0?o-1:r.length-1:o+1<r.length?o+1:0].focus();break}}};return a.addEventListener("keydown",r),()=>{a.removeEventListener("keydown",r)}}),[i,e,n,t])}({disabled:t,handleId:x,resizeHandler:j,panelGroupElement:T});return a.createElement(p,{...g,children:e,className:n,id:r,onBlur:()=>{P(!1),null==o||o()},onFocus:()=>{P(!0),null==u||u()},ref:y,role:"separator",style:{touchAction:"none",userSelect:"none",...m},tabIndex:h,[$je]:S,[Yje]:A,[nLe]:"",[tLe]:"drag"===N?"pointer":_?"keyboard":void 0,[iLe]:!t,[rLe]:x,[oLe]:N})}bBe.displayName="PanelGroup",SBe.displayName="forwardRef(PanelGroup)",MBe.displayName="PanelResizeHandle";const CBe=({className:e,...a})=>n.jsx(SBe,{className:hq("flex h-full w-full data-[panel-group-direction=vertical]:flex-col",e),...a}),TBe=hLe,xBe=({withHandle:e,className:a,...t})=>n.jsx(MBe,{className:hq("relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90",a),...t,children:e&&n.jsx("div",{className:"z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border",children:n.jsx(CB,{className:"h-2.5 w-2.5"})})}),NBe=({copyText:e})=>n.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:e}),EBe="rgba(245, 246, 247, 1)",_Be={[ha.SEND_COMMUNICATION]:{color:{bg:EBe},clickable:!0},[ha.WAIT_UNTIL_NEXT_FIXED_TIME]:{color:{bg:EBe},clickable:!1}},PBe={[ha.SEND_COMMUNICATION]:"Send Email & SMS",[ha.WAIT_UNTIL_NEXT_FIXED_TIME]:"Wait"},jBe=({children:e,onClick:a,iconBgColor:t,iconStrokeColor:i,Icon:r,disabled:o=!1,selected:s=!1})=>{const l=r;return n.jsxs(M2.div,{layout:!0,initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},transition:{duration:.2,ease:"easeInOut"},style:{backgroundColor:s?t:EBe},onClick:a,className:oz("flex gap-2 items-center rounded-md transition-colors group","p-2 border-2 border-transparent overflow-hidden",!o&&"hover:border-primary cursor-pointer",s&&"border-primary"),children:[n.jsx("div",{className:oz("bg-purple-50 rounded-md p-2 flex items-center justify-center w-8 h-8 flex-shrink-0 transition-colors",!o&&"group-hover/trigger-audience:bg-background",t),children:n.jsx(l,{className:oz("w-4 h-4 stroke-purple-500 group-hover/trigger-audience:fill-purple-50 transition-colors",i)})}),e]})},LBe=({segmentName:e})=>n.jsx("span",{className:"inline-flex items-center bg-white border border-gray-200 rounded-md px-2 py-0.5 text-sm font-medium shadow-sm",children:e}),BBe=()=>{const e=Q2(),{setActionId:t,state:{selectedActionId:i}}=a.useContext(K2),[r,o]=a.useState(e?.includeSegmentIds||null),[s,l]=a.useState(e?.excludeSegmentIds||null),{segments:u}=V2(),c=a.useCallback((()=>u?.find((e=>e.type===Z2.ALL_USERS))),[u]);return a.useEffect((()=>{e&&u&&(null===r&&null===s?(o(e?.includeSegmentIds||null),l(e?.excludeSegmentIds||null),0===e.includeSegmentIds.length&&0===e.excludeSegmentIds.length&&(o([c()?.id||""]),l([]))):(JSON.stringify(e.includeSegmentIds)!==JSON.stringify(r)&&o(e.includeSegmentIds),JSON.stringify(e.excludeSegmentIds)!==JSON.stringify(s)&&l(e.excludeSegmentIds)))}),[e,s,r,u,c]),e&&r&&s?n.jsx(n.Fragment,{children:n.jsx(jBe,{selected:i===dbe.EditAudience,iconBgColor:"bg-purple-50",iconStrokeColor:"stroke-purple-500",onClick:()=>{t(dbe.EditAudience)},Icon:l3.AudienceIcon,children:n.jsxs("div",{className:"flex flex-col gap-0.5 flex-1",children:[n.jsx(Rxe,{children:"Audience"}),n.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[n.jsx(NBe,{copyText:`Send to all ${TD("engage:user",{count:2})} in ${1===r.length?"this":"these"} ${TD("engage:segment",{count:r.length}).toLowerCase()}`}),n.jsx("div",{className:"flex gap-1 flex-wrap",children:r.map((e=>{const a=u?.find((a=>a.id===e));return a?n.jsx(LBe,{segmentName:a.name},e):null}))})]})]})})}):null},RBe=()=>{const e=Q2(),{setActionId:t,state:{selectedActionId:i}}=a.useContext(K2),{segments:r}=V2(),o=TD(e?.triggerType===ca.TRIGGER_BASED?"engage:automation":"engage:broadcast"),s=`Start this ${o?.toLowerCase()}`,l=`Start this ${TD("engage:automation").toLowerCase()}`;if(!e||!r)return null;return n.jsx(n.Fragment,{children:(()=>{switch(e.triggerType){case ca.DATE_BASED:{if(!e.triggerMetadata||!("monthToTrigger"in e.triggerMetadata)||!("dayToTrigger"in e.triggerMetadata))return null;const a=e.triggerMetadata?.monthToTrigger,t=e.triggerMetadata?.dayToTrigger;let i="Date not set";if(a&&t){i=`${new Date(2024,a-1,t).toLocaleDateString("en-US",{month:"long"})} ${t}`}return n.jsx(jBe,{iconBgColor:"bg-amber-100",disabled:!0,iconStrokeColor:"stroke-amber-500",onClick:()=>{},Icon:l3.TriggerIcon,children:n.jsxs("div",{className:"flex flex-col gap-0.5 flex-1",children:[n.jsx(Rxe,{children:l}),n.jsx("div",{className:"flex items-center gap-2 flex-wrap",children:n.jsx(NBe,{copyText:e.triggerMetadata.customTriggerCopy??`Every year on ${i}`})})]})})}case ca.TRIGGER_BASED:{if(e.triggerMetadata&&e.triggerMetadata.triggerType!==ca.TRIGGER_BASED||!e.triggerMetadata||e.triggerMetadata.eventName!==da.USER_ENTERS_SEGMENT||!e.triggerMetadata.eventFilter.segment_id)return null;const a=e.triggerMetadata.eventFilter.segment_id,t=r.find((e=>e.id===a))?.name;return t?n.jsx(jBe,{iconBgColor:"bg-amber-100",disabled:!0,iconStrokeColor:"stroke-amber-500",onClick:()=>{},Icon:l3.TriggerIcon,children:n.jsxs("div",{className:"flex flex-col gap-0.5 flex-1",children:[n.jsx(Rxe,{children:s}),n.jsx("div",{className:"flex items-center gap-2 flex-wrap",children:e.triggerMetadata.customTriggerCopy?n.jsx(NBe,{copyText:e.triggerMetadata.customTriggerCopy}):n.jsxs(n.Fragment,{children:[n.jsx(NBe,{copyText:`When ${TD("engage:user").toLowerCase()} joins the`}),n.jsx(LBe,{segmentName:t})]})})]})}):null}case ca.ONE_TIME:{const a=!e.triggerMetadata||!("scheduledAt"in e.triggerMetadata);return n.jsxs(jBe,{iconBgColor:"bg-amber-100",iconStrokeColor:"stroke-amber-500",onClick:()=>{t(dbe.EditTime)},selected:i===dbe.EditTime,Icon:l3.TriggerIcon,children:[n.jsxs("div",{className:"flex flex-col gap-0.5 flex-1",children:[n.jsx(Rxe,{children:s}),n.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[n.jsx(NBe,a?{copyText:`Click to set the date and time for this ${TD("engage:broadcast")}`}:{copyText:"Bulk send at"}),!1===a&&e.triggerMetadata&&"scheduledAt"in e.triggerMetadata&&e.triggerMetadata.scheduledAt&&n.jsx("div",{className:"text-xs font-medium",children:n.jsx(LBe,{segmentName:"now"===e.triggerMetadata.scheduledAt?"Immediately":Ooe(new Date(e.triggerMetadata.scheduledAt),"h:mma MM/dd/yy")})})]})]}),n.jsx("div",{className:"",children:a&&n.jsx(cse,{title:`Please select a time before sending this ${TD("engage:broadcast")}.`,alertText:`A scheduled time is needed before sending this ${TD("engage:broadcast")}.`,Icon:l3.AlertTriangleIcon,iconColor:"text-red-500",size:"large"})})]})}default:throw Fne(e.triggerType,ca)}})()})};var zBe=r.forwardRef(((e,a)=>{const{children:t,...i}=e,o=r.Children.toArray(t),s=o.find(KBe);if(s){const e=s.props.children,t=o.map((a=>a===s?r.Children.count(e)>1?r.Children.only(null):r.isValidElement(e)?e.props.children:null:a));return n.jsx(DBe,{...i,ref:a,children:r.isValidElement(e)?r.cloneElement(e,void 0,t):null})}return n.jsx(DBe,{...i,ref:a,children:t})}));zBe.displayName="Slot";var DBe=r.forwardRef(((e,a)=>{const{children:n,...t}=e;if(r.isValidElement(n)){const e=function(e){let a=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=a&&"isReactWarning"in a&&a.isReactWarning;if(n)return e.ref;if(a=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=a&&"isReactWarning"in a&&a.isReactWarning,n)return e.props.ref;return e.props.ref||e.ref}(n),i=function(e,a){const n={...a};for(const t in a){const i=e[t],r=a[t];/^on[A-Z]/.test(t)?i&&r?n[t]=(...e)=>{r(...e),i(...e)}:i&&(n[t]=i):"style"===t?n[t]={...i,...r}:"className"===t&&(n[t]=[i,r].filter(Boolean).join(" "))}return{...e,...n}}(t,n.props);return n.type!==r.Fragment&&(i.ref=a?rq(a,e):e),r.cloneElement(n,i)}return r.Children.count(n)>1?r.Children.only(null):null}));DBe.displayName="SlotClone";var OBe=({children:e})=>n.jsx(n.Fragment,{children:e});function KBe(e){return r.isValidElement(e)&&e.type===OBe}var HBe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce(((e,a)=>{const t=r.forwardRef(((e,t)=>{const{asChild:i,...r}=e,o=i?zBe:a;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),n.jsx(o,{...r,ref:t})}));return t.displayName=`Primitive.${a}`,{...e,[a]:t}}),{}),IBe=r.forwardRef(((e,a)=>{const{pressed:t,defaultPressed:i=!1,onPressedChange:r,...o}=e,[s=!1,l]=_4({prop:t,onChange:r,defaultProp:i});return n.jsx(HBe.button,{type:"button","aria-pressed":s,"data-state":s?"on":"off","data-disabled":e.disabled?"":void 0,...o,ref:a,onClick:T4(e.onClick,(()=>{e.disabled||l(!s)}))})}));IBe.displayName="Toggle";var GBe=IBe;const FBe=qL("inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-transparent",outline:"border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground"},size:{default:"h-9 px-2 min-w-9",sm:"h-8 px-1.5 min-w-8",lg:"h-10 px-2.5 min-w-10"}},defaultVariants:{variant:"default",size:"default"}}),VBe=r.forwardRef((({className:e,variant:a,size:t,...i},r)=>n.jsx(GBe,{ref:r,className:hq(FBe({variant:a,size:t,className:e})),...i})));VBe.displayName=GBe.displayName;const JBe=({type:e,disabled:t=!1,actionId:i})=>{const{state:{selectedSubStepType:r},setSelectedSubStepType:o,setActionId:s}=a.useContext(K2),l=X2(),{updateCommunicationGroup:u,isUpdating:c}=Qe(),{channelSenders:d}=ate(),{channelAccounts:m}=Qne(),{data:h}=rte(),{toast:p}=Je(),{getMergeFields:g,isGetting:f}=Xe(l?.id??void 0),v=r===e,y=a.useMemo((()=>d?.results?.filter((e=>e.channelSenderMetadata.userPart))||[]),[d?.results]),k=a.useMemo((()=>Kre({channelSenders:d?.results??[],channelAccounts:m?.results??[],smsApplication:h})),[d?.results,m?.results,h]),b=a.useCallback((()=>{if(!l)return!1;switch(e){case mbe.EMAIL:return!!l.emailChannelSenderId;case mbe.SMS:return!!l.smsChannelSenderId}}),[l,e])(),S=a.useMemo((()=>{if(!l)return!1;return 1===[!!l.emailChannelSenderId,!!l.smsChannelSenderId].filter(Boolean).length&&b}),[l,b]),A=a.useCallback((async()=>{if(l?.id&&!c)if(b&&S)p({title:"Cannot disable channel",description:"At least one channel must remain enabled",variant:"destructive"});else try{const a={};switch(e){case mbe.EMAIL:if(b&&l.emailChannelSenderId)a.emailChannelSenderId=null;else{const e=y[0];e&&(a.emailChannelSenderId=e.id)}break;case mbe.SMS:if(b&&l.smsChannelSenderId)a.smsChannelSenderId=null;else{const e=k[0];e&&(a.smsChannelSenderId=e.channelSender.id)}}await u({groupId:l.id,params:a})}catch(a){}}),[l,b,e,u,c,y,k,p,S]),w=a.useCallback((()=>{if(!l)return"Need to select a channel";switch(e){case mbe.EMAIL:return l.emailChannelSenderId?l.emailHtmlBody?!!l.emailSubject||"Please add a subject to the email":"Please add content to the email":"Please select a email sender";case mbe.SMS:return l.smsChannelSenderId?!!l.smsMessageBody||"Please add content to the sms":"Please select a sms sender"}}),[l,e])();return n.jsxs(M2.div,{layout:!0,initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},transition:{duration:.15,ease:"easeInOut"},className:oz("p-2 pr-3 flex gap-2 items-center rounded-md transition-colors cursor-pointer group","border-2 border-transparent",v&&"border-primary","hover:border-muted-foreground/30"),style:{backgroundColor:v?"#f5f6f7":EBe},onClick:a=>{a.target.closest("button")||(s(i),o(e))},children:[n.jsxs("div",{className:"flex items-center gap-2 flex-1",children:[n.jsx("div",{className:"rounded-md p-1.5 flex items-center justify-center w-6 h-6 flex-shrink-0 bg-white border",children:((e,a)=>{switch(e){case mbe.EMAIL:return n.jsx(l3.EmailIcon,{className:oz("w-6 h-6",a?"text-primary":"text-gray-400")});case mbe.SMS:return n.jsx(l3.SmsIcon,{className:oz("w-6 h-6",a?"text-primary":"text-gray-400")})}})(e,v)}),n.jsxs("div",{className:"flex flex-col gap-0.5",children:[n.jsx("div",{style:{color:v?"#3b82f6":"#64748b"},children:n.jsx(Rxe,{className:"text-xs",children:(()=>{switch(e){case mbe.EMAIL:return"Email";case mbe.SMS:return"SMS"}})()})}),b&&n.jsx("div",{className:"text-[10px] font-medium text-muted-foreground",children:e===mbe.EMAIL?f?n.jsx("span",{className:"text-[10px] font-medium text-muted-foreground",children:"..."}):n.jsx(gwe,{content:l?.emailSubject||"No subject set",mergeFieldsResponse:g,variant:"minimal",className:"text-[10px] font-medium text-muted-foreground"}):f?n.jsx("span",{className:"text-[10px] font-medium text-muted-foreground",children:"..."}):n.jsx(gwe,{content:l?.smsMessageBody?`${l.smsMessageBody.substring(0,40)}${l.smsMessageBody.length>40?"...":""}`:"No message set",mergeFieldsResponse:g,variant:"minimal",className:"text-[10px] font-medium text-muted-foreground"})}),!0!==w&&b&&n.jsx("div",{className:"text-[10px] text-amber-600 font-medium",children:w}),!b&&n.jsx("div",{className:"text-[10px] text-muted-foreground/70 font-medium italic",children:"Channel disabled"})]})]}),n.jsx("div",{className:oz("ml-auto",t?"opacity-50 cursor-not-allowed z-10":""),onClick:e=>{e.stopPropagation(),t&&p({title:"Cannot toggle channel when not in draft mode",variant:"destructive"})},children:n.jsx(VBe,{pressed:b,onPressedChange:()=>{c||b&&S||A()},disabled:c||b&&S||t,size:"sm",children:n.jsx(Hq,{mode:"wait",initial:!1,children:b?n.jsx(M2.span,{initial:{opacity:0,scale:.8},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.8},transition:{duration:.18,ease:"easeInOut"},className:"flex",children:n.jsx(sB,{className:"h-4 w-4 text-muted-foreground"})},"check"):n.jsx(M2.span,{initial:{opacity:0,scale:.8},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.8},transition:{duration:.18,ease:"easeInOut"},className:"flex",children:n.jsx(mR,{className:"h-4 w-4 text-muted-foreground"})},"x")})})})]})},UBe=e=>{switch(e){case ha.SEND_COMMUNICATION:return"Send Communication";case ha.WAIT_UNTIL_NEXT_FIXED_TIME:return"Wait";default:throw L2(e,ha)}},WBe=e=>{switch(e){case ha.SEND_COMMUNICATION:return n.jsx(l3.CommunicationIcon,{className:"w-4 h-4"});case ha.WAIT_UNTIL_NEXT_FIXED_TIME:return n.jsx(l3.WaitUntilNextFixedTimeIcon,{className:"w-4 h-4"});default:throw Fne(e,ha)}},qBe=e=>{if(!(e&&e.actionType===ha.WAIT_UNTIL_NEXT_FIXED_TIME&&"hour"in e&&"minute"in e&&"timezone"in e))return null;const{hour:a,minute:n,timezone:t}=e;return`Wait until next ${`${a?.toString().padStart(2,"0")}:${n?.toString().padStart(2,"0")}`} ${t}`},ZBe=({actionDataWithMetadata:e})=>{const{actionData:t}=e,{state:{selectedActionId:i},setActionId:r,setSelectedCommunicationGroupId:o}=a.useContext(K2),s=a.useMemo((()=>i===t.actionMetadata.currentActionId),[i,t.actionMetadata.currentActionId]),l=_Be[t.actionType],u=l.color,c=l.clickable;return n.jsxs(M2.div,{layout:!0,initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},transition:{duration:.2,ease:"easeInOut"},className:oz("p-2 pr-3 flex gap-2 items-center rounded-md transition-colors cursor-pointer group"," border-2 border-transparent",s&&"border-primary",t.actionType!==ha.WAIT_UNTIL_NEXT_FIXED_TIME&&"hover:border-primary"),style:{backgroundColor:s?u.bg:u.bgUnselected??EBe},onClick:()=>{c&&(r(t.actionMetadata.currentActionId),t.actionType===ha.SEND_COMMUNICATION&&o(t.actionMetadata.communicationGroupId))},children:[n.jsxs("div",{className:"flex items-center gap-2 flex-1",children:[n.jsx("div",{className:"rounded-md p-2 flex items-center justify-center w-8 h-8 flex-shrink-0 bg-white",children:WBe(t.actionType)}),n.jsxs("div",{className:"flex flex-col gap-1",children:[n.jsx("div",{style:{color:s?u.text:u.textUnselected},children:n.jsx(Rxe,{children:PBe[t.actionType]})}),n.jsx("div",t.actionType===ha.WAIT_UNTIL_NEXT_FIXED_TIME?{className:"text-[11px] text-muted-foreground font-normal rounded bg-muted/40 w-fit max-w-full truncate",children:qBe(t.actionMetadata)}:{className:"text-xs font-medium text-muted-foreground",children:UBe(t.actionType)})]})]}),t.actionType===ha.SEND_COMMUNICATION&&n.jsx("div",{className:"flex items-center pr-2",children:n.jsx(l3.NextButton,s?{className:"w-4 h-4 text-muted-foreground rotate-90 transition-transform duration-200"}:{className:"w-4 h-4 text-muted-foreground transition-transform duration-200"})})]})},$Be=()=>{const e=X2(),[t,i]=a.useState(!1),[r,o]=a.useState(void 0),{segments:s}=V2(),l=Q2(),{setActionId:u,setSelectedSubStepType:c,state:{selectedActionId:d,selectedSubStepType:m}}=a.useContext(K2);oa(l?.id||""),a.useEffect((()=>{if(!l)return;if(d)return;const e=l.actionData?.find((e=>e.actionType===ha.SEND_COMMUNICATION));e&&u(e.actionMetadata.currentActionId)}),[l,u,d]),a.useEffect((()=>{if(!l)return;(async()=>{const e=[];for(const a of l.actionData??[])switch(a.actionType){case ha.SEND_COMMUNICATION:{const n=await Ue(a.actionMetadata.communicationGroupId);e.push({actionData:a,communicationGroup:n});break}case ha.WAIT_UNTIL_NEXT_FIXED_TIME:e.push({actionData:a});break;default:throw L2(a.actionType,ha)}o(e)})()}),[l]),a.useEffect((()=>{if(d&&r&&e&&null===m){const a=r.find((e=>e.actionData.actionMetadata.currentActionId===d));a?.actionData.actionType===ha.SEND_COMMUNICATION&&c(e?.emailChannelSenderId?mbe.EMAIL:mbe.SMS)}}),[d,r,c,e,m]);if(!l||!r||l?.triggerType===ca.TRIGGER_BASED&&void 0===s)return null;const h=(e=>{const{steps:a,rootActionId:n}=e;if(!a||!n)return a??[];const t=new Map(a.map((e=>[e.actionData.actionMetadata.currentActionId,e]))),i=t.get(n);if(!i)return a;const r=[];let o=i;for(;o;){r.push(o);const e=o.actionData.actionMetadata.nextActionId;if(!e)break;o=t.get(e)}return r})({steps:r,rootActionId:l.triggerMetadata?.triggerType===ca.TRIGGER_BASED?l.triggerMetadata.rootActionId:void 0}).filter((e=>!!t||e.actionData.actionType===ha.SEND_COMMUNICATION));let p=()=>n.jsx("div",{},"empty-trigger-audience");return(t||l.triggerType===ca.ONE_TIME)&&(p=()=>n.jsxs("div",{className:"flex flex-col gap-3",children:[l.triggerType===ca.ONE_TIME&&n.jsx(BBe,{}),l.triggerType!==ca.ONE_TIME&&n.jsx(RBe,{})]})),n.jsxs("div",{className:"flex-1 flex flex-col gap-2 w-full overflow-visible",children:[(l.triggerType===ca.TRIGGER_BASED||l.triggerType===ca.DATE_BASED)&&n.jsxs("div",{className:"flex gap-2 items-center justify-between",children:[n.jsx("div",{className:"text-sm text-muted-foreground",children:"Messages sent in listed order"}),n.jsxs("div",{className:"flex gap-2 items-center",children:[n.jsx("div",{className:"text-sm font-medium",children:"Show all details"}),n.jsx(nPe,{defaultChecked:t,onCheckedChange:()=>{i(!t)}})]})]}),n.jsx("div",{className:"flex-1 flex flex-col gap-3",children:n.jsxs(Hq,{mode:"popLayout",children:[p(),h.map(((e,a)=>n.jsx(M2.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},transition:{duration:.2,delay:.05*a,ease:"easeInOut"},children:n.jsxs("div",{className:"flex flex-col gap-3",children:[n.jsx(ZBe,{actionDataWithMetadata:e}),e.actionData.actionType===ha.SEND_COMMUNICATION&&d===e.actionData.actionMetadata.currentActionId&&e.actionData.actionMetadata.currentActionId&&n.jsxs("div",{className:"flex gap-3",children:[n.jsx(M2.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},transition:{duration:.2,delay:.25*h.length,ease:"easeInOut"},className:"w-12 flex justify-end items-center",children:n.jsx("div",{className:"w-0.5 bg-muted-foreground/30 h-full rounded-full"})}),n.jsxs("div",{className:"flex flex-col gap-3 flex-1",children:[n.jsx(JBe,{type:mbe.EMAIL,actionId:e.actionData.actionMetadata.currentActionId,disabled:l.status!==pa.DRAFT}),n.jsx(JBe,{type:mbe.SMS,actionId:e.actionData.actionMetadata.currentActionId,disabled:l.status!==pa.DRAFT})]})]})]})},e.actionData.actionMetadata?.currentActionId??a))),l.triggerType===ca.ONE_TIME&&n.jsx("div",{className:"flex flex-col gap-3",children:n.jsx(RBe,{})},"one-time-trigger")]})})]})},YBe=()=>{const e=Q2(),{segments:a}=V2();return n.jsx("div",e&&a?{className:"h-full pt-4 relative",children:n.jsx("div",{className:"absolute inset-0 overflow-y-auto flex flex-col gap-3",children:n.jsx($Be,{})})}:{className:"flex h-full items-center justify-center",children:n.jsx(Tq,{text:[`Getting details on your ${TD("engage:automation",{count:1}).toLowerCase()}`,"Finishing up"]})})},QBe=({disablePreview:e=!1,disableEditContent:t=!1,disablePreviewSubtext:i=!1,hideSms:r=!1})=>{const{state:{selectedSubStepType:o}}=a.useContext(K2);if(!X2())return n.jsx("div",{className:"flex flex-col gap-4 flex-1 bg-muted rounded-md",children:n.jsx(Tq,{text:["Loading..."]})});if(!o)return n.jsx("div",{className:"flex flex-col gap-4 flex-1 bg-muted rounded-md",children:n.jsx("div",{className:"flex items-center justify-center h-full",children:n.jsxs("div",{className:"text-center",children:[n.jsx("h3",{className:"text-lg font-medium text-muted-foreground mb-2",children:"Select Communication Type"}),n.jsx("p",{className:"text-sm text-muted-foreground",children:"Choose Email or SMS from the steps on the left to preview and edit content"})]})})});const s={disablePreview:e,disableEditContent:t,disablePreviewSubtext:i};return n.jsxs("div",{className:"flex flex-col flex-1 bg-muted rounded-md",children:[o===mbe.EMAIL&&n.jsx(Sxe,{...s}),o===mbe.SMS&&!r&&n.jsx(Nxe,{...s})]})},XBe=()=>{const{state:{selectedActionId:e}}=a.useContext(K2),{state:{hideSms:t}}=a.useContext(wq);return n.jsx("div",{className:"flex flex-col gap-4 h-full w-full",children:n.jsx(Hq,{mode:"wait",children:e===dbe.EditTime?n.jsx(O_e,{}):e===dbe.EditAudience?n.jsx(wPe,{}):n.jsx(QBe,{hideSms:t})})})},eRe=()=>n.jsxs(CBe,{direction:"horizontal",className:"flex-1",children:[n.jsx(TBe,{defaultSize:30,minSize:16,maxSize:48,children:n.jsx("aside",{className:"h-full",children:n.jsx(YBe,{})})}),n.jsx(xBe,{className:"px-1 opacity-0 hover:opacity-100 transition-opacity duration-200 mx-1"}),n.jsx(TBe,{defaultSize:70,children:n.jsx("main",{className:"h-full",children:n.jsx(XBe,{})})})]}),aRe=()=>{const[e,t]=a.useState(Zke.WORKFLOW),i=[{id:Zke.WORKFLOW,label:"Workflow",content:n.jsx(eRe,{})},{id:Zke.RECIPIENTS,label:"Recipients",content:n.jsx(Wje,{})},{id:Zke.INSIGHTS,label:TD("engage:insight",{count:2}),content:n.jsx(Jje,{})}];return n.jsx(KPe,{tabs:i,activeTab:e,onTabChange:e=>t(e),tabsLocation:"left"})},nRe=({showBackButton:e=!1,onDuplicationCreated:t,onBeforeSchedule:i,getExtraMergeFields:r,hideSms:o,hideSales:s,replyToSettingsText:l,replyToSettingsLink:u,fromNameSettingsText:c,fromNameSettingsLink:d})=>{const m=Q2(),h=X2(),{updateCommunicationGroup:p}=Qe(),{toast:g}=Je(),{channelSenders:f}=ate(),v=a.useRef("");return a.useEffect((()=>{if(h&&r){(async()=>{const e=await r(),a=JSON.stringify(e);a!==v.current&&(v.current=a,p({groupId:h?.id,params:{extraMergeFields:e}},{onError:()=>{g({title:"Error saving merge fields!",description:"Please contact your administrator if this issue persists.",variant:"destructive"})}}))})()}}),[h,r,p,g]),a.useEffect((()=>{if(m&&h&&f&&m.automationType===ma.MANAGED&&null===h.emailChannelSenderId&&null===h.smsChannelSenderId){if(!h.emailChannelSenderId){const e=f.results.filter((e=>e.channelSenderMetadata.userPart));e.length>0&&p({groupId:h.id,params:{emailChannelSenderId:e[0].id}})}if(!h.smsChannelSenderId){const e=f.results.filter((e=>e.channelSenderMetadata.from||e.channelSenderMetadata.messageServiceSid));e.length>0&&p({groupId:h.id,params:{smsChannelSenderId:e[0].id}})}}}),[m,h,f,p]),m&&h?n.jsx(Mq,{children:n.jsx(Cq,{replyToSettingsText:l,replyToSettingsLink:u,fromNameSettingsText:c,fromNameSettingsLink:d,hideSms:o,hideSales:s,children:n.jsxs("div",{className:"h-full flex flex-col gap-4",children:[n.jsx(Vje,{showBackButton:e,onDuplicationCreated:t,onBeforeSchedule:i}),n.jsx("div",{className:"flex-1 border-t",children:n.jsx(aRe,{})})]})})}):n.jsx("div",{className:"flex h-full items-center justify-center",children:n.jsx(Tq,{text:[`Fetching ${TD("engage:automation").toLowerCase()} data`,"Finishing up"]})})},tRe=({...e})=>{const a=function(){let{matches:e}=r.useContext(xee),a=e[e.length-1];return a?a.params:{}}(),[t]=vae(),i=e.automationId||a?.automationId||t.get("automationId")||"",o="true"===t.get("showBackButton")||e.showBackButton;return n.jsx(a3,{automationId:i,children:n.jsx("div",{className:"bg-background h-full min-h-[750px]",children:n.jsx(nRe,{...e,showBackButton:o})})})};Object.values(Object.assign({}));var iRe=/(%?)(%([sdijo]))/g;function rRe(e,...a){if(0===a.length)return e;let n=0,t=e.replace(iRe,((e,t,i,r)=>{const o=function(e,a){switch(a){case"s":return e;case"d":case"i":return Number(e);case"j":return JSON.stringify(e);case"o":{if("string"==typeof e)return e;const a=JSON.stringify(e);return"{}"===a||"[]"===a||/^\[object .+?\]$/.test(a)?e:a}}}(a[n],r);return t?e:(n++,o)}));return n<a.length&&(t+=` ${a.slice(n).join(" ")}`),t=t.replace(/%{2,2}/g,"%"),t}var oRe=class extends Error{constructor(e,...a){super(e),this.message=e,this.name="Invariant Violation",this.message=rRe(e,...a),function(e){if(!e.stack)return;const a=e.stack.split("\n");a.splice(1,2),e.stack=a.join("\n")}(this)}},sRe=(e,a,...n)=>{if(!e)throw new oRe(a,...n)};sRe.as=(e,a,n,...t)=>{if(!a){const a=0===t.length?n:rRe(n,...t);let i;try{i=Reflect.construct(e,[a])}catch(kGe){i=e(a)}throw i}};const lRe={formatMessage:function(e,...a){return`[MSW] ${rRe(e,...a)}`},warn:function(e,...a){},error:function(e,...a){}};class uRe extends Error{constructor(e){super(e),this.name="InternalError"}}const cRe=/[\/\\]msw[\/\\]src[\/\\](.+)/,dRe=/(node_modules)?[\/\\]lib[\/\\](core|browser|node|native|iife)[\/\\]|^[^\/\\]*$/;class mRe{static cache=new WeakMap;__kind;info;isUsed;resolver;resolverIterator;resolverIteratorResult;options;constructor(e){this.resolver=e.resolver,this.options=e.options;const a=function(e){const a=e.stack;if(!a)return;const n=a.split("\n").slice(1).find((e=>!(cRe.test(e)||dRe.test(e))));if(!n)return;return n.replace(/\s*at [^()]*\(([^)]+)\)/,"$1").replace(/^@/,"")}(new Error);this.info={...e.info,callFrame:a},this.isUsed=!1,this.__kind="RequestHandler"}async parse(e){return{}}async test(e){const a=await this.parse({request:e.request,resolutionContext:e.resolutionContext});return this.predicate({request:e.request,parsedResult:a,resolutionContext:e.resolutionContext})}extendResolverArgs(e){return{}}cloneRequestOrGetFromCache(e){const a=mRe.cache.get(e);if(void 0!==a)return a;const n=e.clone();return mRe.cache.set(e,n),n}async run(e){if(this.isUsed&&this.options?.once)return null;const a=this.cloneRequestOrGetFromCache(e.request),n=await this.parse({request:e.request,resolutionContext:e.resolutionContext});if(!this.predicate({request:e.request,parsedResult:n,resolutionContext:e.resolutionContext}))return null;if(this.isUsed&&this.options?.once)return null;this.isUsed=!0;const t=this.wrapResolver(this.resolver)({...this.extendResolverArgs({request:e.request,parsedResult:n}),requestId:e.requestId,request:e.request}).catch((e=>{if(e instanceof Response)return e;throw e})),i=await t;return this.createExecutionResult({request:a,requestId:e.requestId,response:i,parsedResult:n})}wrapResolver(e){return async a=>{if(!this.resolverIterator){const t=await e(a);if(!(n=t)||!Reflect.has(n,Symbol.iterator)&&!Reflect.has(n,Symbol.asyncIterator))return t;this.resolverIterator=Symbol.iterator in t?t[Symbol.iterator]():t[Symbol.asyncIterator]()}var n;this.isUsed=!1;const{done:t,value:i}=await this.resolverIterator.next(),r=await i;return r&&(this.resolverIteratorResult=r.clone()),t?(this.isUsed=!0,this.resolverIteratorResult?.clone()):r}}createExecutionResult(e){return{handler:this,request:e.request,requestId:e.requestId,response:e.response,parsedResult:e.parsedResult}}}function hRe(e){if("undefined"==typeof location)return e.toString();const a=e instanceof URL?e:new URL(e);return a.origin===location.origin?a.pathname:a.origin+a.pathname}async function pRe(e,a="warn"){const n=new URL(e.url),t=hRe(n)+n.search,i="HEAD"===e.method||"GET"===e.method?null:await e.clone().text(),r=`intercepted a request without a matching request handler:${`\n\n • ${e.method} ${t}\n\n${i?` • Request body: ${i}\n\n`:""}`}If you still wish to intercept this unhandled request, please create a request handler for it.\nRead more: https://mswjs.io/docs/getting-started/mocks`;function o(e){switch(e){case"error":throw lRe.error("Error: %s",r),new uRe(lRe.formatMessage('Cannot bypass a request when using the "error" strategy for the "onUnhandledRequest" option.'));case"warn":lRe.warn("Warning: %s",r);break;case"bypass":break;default:throw new uRe(lRe.formatMessage('Failed to react to an unhandled request: unknown strategy "%s". Please provide one of the supported strategies ("bypass", "warn", "error") or a custom callback function as the value of the "onUnhandledRequest" option.',e))}}"function"!=typeof a?function(e){const a=new URL(e.url);return"file:"===a.protocol||!!/(fonts\.googleapis\.com)/.test(a.hostname)||!!/node_modules/.test(a.pathname)||!!a.pathname.includes("@vite")||/\.(s?css|less|m?jsx?|m?tsx?|html|ttf|otf|woff|woff2|eot|gif|jpe?g|png|avif|webp|svg|mp4|webm|ogg|mov|mp3|wav|ogg|flac|aac|pdf|txt|csv|json|xml|md|zip|tar|gz|rar|7z)$/i.test(a.pathname)}(e)||o(a):a(e,{warning:o.bind(null,"warn"),error:o.bind(null,"error")})}function gRe(){if("undefined"!=typeof navigator&&"ReactNative"===navigator.product)return!0;if("undefined"!=typeof process){const e=process.type;return"renderer"!==e&&"worker"!==e&&!(!process.versions||!process.versions.node)}return!1}var fRe,vRe,yRe=Object.create,kRe=Object.defineProperty,bRe=Object.getOwnPropertyDescriptor,SRe=Object.getOwnPropertyNames,ARe=Object.getPrototypeOf,wRe=Object.prototype.hasOwnProperty,MRe=(e=>"undefined"!=typeof require?require:"undefined"!=typeof Proxy?new Proxy(e,{get:(e,a)=>("undefined"!=typeof require?require:e)[a]}):e)((function(e){if("undefined"!=typeof require)return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')})),CRe=(e,a)=>function(){return a||(0,e[SRe(e)[0]])((a={exports:{}}).exports,a),a.exports},TRe=CRe({"node_modules/punycode/punycode.js"(e,a){var n=2147483647,t=36,i=/^xn--/,r=/[^\0-\x7F]/,o=/[\x2E\u3002\uFF0E\uFF61]/g,s={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},l=Math.floor,u=String.fromCharCode;function c(e){throw new RangeError(s[e])}function d(e,a){const n=e.split("@");let t="";n.length>1&&(t=n[0]+"@",e=n[1]);const i=function(e,a){const n=[];let t=e.length;for(;t--;)n[t]=a(e[t]);return n}((e=e.replace(o,".")).split("."),a).join(".");return t+i}function m(e){const a=[];let n=0;const t=e.length;for(;n<t;){const i=e.charCodeAt(n++);if(i>=55296&&i<=56319&&n<t){const t=e.charCodeAt(n++);56320==(64512&t)?a.push(((1023&i)<<10)+(1023&t)+65536):(a.push(i),n--)}else a.push(i)}return a}var h=function(e,a){return e+22+75*(e<26)-((0!=a)<<5)},p=function(e,a,n){let i=0;for(e=n?l(e/700):e>>1,e+=l(e/a);e>455;i+=t)e=l(e/35);return l(i+36*e/(e+38))},g=function(e){const a=[],i=e.length;let r=0,o=128,s=72,u=e.lastIndexOf("-");u<0&&(u=0);for(let n=0;n<u;++n)e.charCodeAt(n)>=128&&c("not-basic"),a.push(e.charCodeAt(n));for(let m=u>0?u+1:0;m<i;){const u=r;for(let a=1,o=t;;o+=t){m>=i&&c("invalid-input");const u=(d=e.charCodeAt(m++))>=48&&d<58?d-48+26:d>=65&&d<91?d-65:d>=97&&d<123?d-97:t;u>=t&&c("invalid-input"),u>l((n-r)/a)&&c("overflow"),r+=u*a;const h=o<=s?1:o>=s+26?26:o-s;if(u<h)break;const p=t-h;a>l(n/p)&&c("overflow"),a*=p}const h=a.length+1;s=p(r-u,h,0==u),l(r/h)>n-o&&c("overflow"),o+=l(r/h),r%=h,a.splice(r++,0,o)}var d;return String.fromCodePoint(...a)},f=function(e){const a=[],i=(e=m(e)).length;let r=128,o=0,s=72;for(const n of e)n<128&&a.push(u(n));const d=a.length;let g=d;for(d&&a.push("-");g<i;){let i=n;for(const a of e)a>=r&&a<i&&(i=a);const m=g+1;i-r>l((n-o)/m)&&c("overflow"),o+=(i-r)*m,r=i;for(const f of e)if(f<r&&++o>n&&c("overflow"),f===r){let e=o;for(let n=t;;n+=t){const i=n<=s?1:n>=s+26?26:n-s;if(e<i)break;const r=e-i,o=t-i;a.push(u(h(i+r%o,0))),e=l(r/o)}a.push(u(h(e,0))),s=p(o,m,g===d),o=0,++g}++o,++r}return a.join("")};a.exports={version:"2.3.1",ucs2:{decode:m,encode:e=>String.fromCodePoint(...e)},decode:g,encode:f,toASCII:function(e){return d(e,(function(e){return r.test(e)?"xn--"+f(e):e}))},toUnicode:function(e){return d(e,(function(e){return i.test(e)?g(e.slice(4).toLowerCase()):e}))}}}}),xRe=CRe({"node_modules/requires-port/index.js"(e,a){a.exports=function(e,a){if(a=a.split(":")[0],!(e=+e))return!1;switch(a){case"http":case"ws":return 80!==e;case"https":case"wss":return 443!==e;case"ftp":return 21!==e;case"gopher":return 70!==e;case"file":return!1}return 0!==e}}}),NRe=CRe({"node_modules/querystringify/index.js"(e){var a=Object.prototype.hasOwnProperty;function n(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(yGe){return null}}function t(e){try{return encodeURIComponent(e)}catch(yGe){return null}}e.stringify=function(e,n){n=n||"";var i,r,o=[];for(r in"string"!=typeof n&&(n="?"),e)if(a.call(e,r)){if((i=e[r])||null!=i&&!isNaN(i)||(i=""),r=t(r),i=t(i),null===r||null===i)continue;o.push(r+"="+i)}return o.length?n+o.join("&"):""},e.parse=function(e){for(var a,t=/([^=?#&]+)=?([^&]*)/g,i={};a=t.exec(e);){var r=n(a[1]),o=n(a[2]);null===r||null===o||r in i||(i[r]=o)}return i}}}),ERe=CRe({"node_modules/url-parse/index.js"(e,a){var n=xRe(),t=NRe(),i=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,r=/[\n\r\t]/g,o=/^[A-Za-z][A-Za-z0-9+-.]*:\/\//,s=/:\d+$/,l=/^([a-z][a-z0-9.+-]*:)?(\/\/)?([\\/]+)?([\S\s]*)/i,u=/^[a-zA-Z]:/;function c(e){return(e||"").toString().replace(i,"")}var d=[["#","hash"],["?","query"],function(e,a){return p(a.protocol)?e.replace(/\\/g,"/"):e},["/","pathname"],["@","auth",1],[NaN,"host",void 0,1,1],[/:(\d*)$/,"port",void 0,1],[NaN,"hostname",void 0,1,1]],m={hash:1,query:1};function h(e){var a;a="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};var n,t={},i=typeof(e=e||(a.location||{}));if("blob:"===e.protocol)t=new f(unescape(e.pathname),{});else if("string"===i)for(n in t=new f(e,{}),m)delete t[n];else if("object"===i){for(n in e)n in m||(t[n]=e[n]);void 0===t.slashes&&(t.slashes=o.test(e.href))}return t}function p(e){return"file:"===e||"ftp:"===e||"http:"===e||"https:"===e||"ws:"===e||"wss:"===e}function g(e,a){e=(e=c(e)).replace(r,""),a=a||{};var n,t=l.exec(e),i=t[1]?t[1].toLowerCase():"",o=!!t[2],s=!!t[3],u=0;return o?s?(n=t[2]+t[3]+t[4],u=t[2].length+t[3].length):(n=t[2]+t[4],u=t[2].length):s?(n=t[3]+t[4],u=t[3].length):n=t[4],"file:"===i?u>=2&&(n=n.slice(2)):p(i)?n=t[4]:i?o&&(n=n.slice(2)):u>=2&&p(a.protocol)&&(n=t[4]),{protocol:i,slashes:o||p(i),slashesCount:u,rest:n}}function f(e,a,i){if(e=(e=c(e)).replace(r,""),!(this instanceof f))return new f(e,a,i);var o,s,l,m,v,y,k=d.slice(),b=typeof a,S=this,A=0;for("object"!==b&&"string"!==b&&(i=a,a=null),i&&"function"!=typeof i&&(i=t.parse),o=!(s=g(e||"",a=h(a))).protocol&&!s.slashes,S.slashes=s.slashes||o&&a.slashes,S.protocol=s.protocol||a.protocol||"",e=s.rest,("file:"===s.protocol&&(2!==s.slashesCount||u.test(e))||!s.slashes&&(s.protocol||s.slashesCount<2||!p(S.protocol)))&&(k[3]=[/(.*)/,"pathname"]);A<k.length;A++)"function"!=typeof(m=k[A])?(y=m[1],(l=m[0])!=l?S[y]=e:"string"==typeof l?~(v="@"===l?e.lastIndexOf(l):e.indexOf(l))&&("number"==typeof m[2]?(S[y]=e.slice(0,v),e=e.slice(v+m[2])):(S[y]=e.slice(v),e=e.slice(0,v))):(v=l.exec(e))&&(S[y]=v[1],e=e.slice(0,v.index)),S[y]=S[y]||o&&m[3]&&a[y]||"",m[4]&&(S[y]=S[y].toLowerCase())):e=m(e,S);i&&(S.query=i(S.query)),o&&a.slashes&&"/"!==S.pathname.charAt(0)&&(""!==S.pathname||""!==a.pathname)&&(S.pathname=function(e,a){if(""===e)return a;for(var n=(a||"/").split("/").slice(0,-1).concat(e.split("/")),t=n.length,i=n[t-1],r=!1,o=0;t--;)"."===n[t]?n.splice(t,1):".."===n[t]?(n.splice(t,1),o++):o&&(0===t&&(r=!0),n.splice(t,1),o--);return r&&n.unshift(""),"."!==i&&".."!==i||n.push(""),n.join("/")}(S.pathname,a.pathname)),"/"!==S.pathname.charAt(0)&&p(S.protocol)&&(S.pathname="/"+S.pathname),n(S.port,S.protocol)||(S.host=S.hostname,S.port=""),S.username=S.password="",S.auth&&(~(v=S.auth.indexOf(":"))?(S.username=S.auth.slice(0,v),S.username=encodeURIComponent(decodeURIComponent(S.username)),S.password=S.auth.slice(v+1),S.password=encodeURIComponent(decodeURIComponent(S.password))):S.username=encodeURIComponent(decodeURIComponent(S.auth)),S.auth=S.password?S.username+":"+S.password:S.username),S.origin="file:"!==S.protocol&&p(S.protocol)&&S.host?S.protocol+"//"+S.host:"null",S.href=S.toString()}f.prototype={set:function(e,a,i){var r=this;switch(e){case"query":"string"==typeof a&&a.length&&(a=(i||t.parse)(a)),r[e]=a;break;case"port":r[e]=a,n(a,r.protocol)?a&&(r.host=r.hostname+":"+a):(r.host=r.hostname,r[e]="");break;case"hostname":r[e]=a,r.port&&(a+=":"+r.port),r.host=a;break;case"host":r[e]=a,s.test(a)?(a=a.split(":"),r.port=a.pop(),r.hostname=a.join(":")):(r.hostname=a,r.port="");break;case"protocol":r.protocol=a.toLowerCase(),r.slashes=!i;break;case"pathname":case"hash":if(a){var o="pathname"===e?"/":"#";r[e]=a.charAt(0)!==o?o+a:a}else r[e]=a;break;case"username":case"password":r[e]=encodeURIComponent(a);break;case"auth":var l=a.indexOf(":");~l?(r.username=a.slice(0,l),r.username=encodeURIComponent(decodeURIComponent(r.username)),r.password=a.slice(l+1),r.password=encodeURIComponent(decodeURIComponent(r.password))):r.username=encodeURIComponent(decodeURIComponent(a))}for(var u=0;u<d.length;u++){var c=d[u];c[4]&&(r[c[1]]=r[c[1]].toLowerCase())}return r.auth=r.password?r.username+":"+r.password:r.username,r.origin="file:"!==r.protocol&&p(r.protocol)&&r.host?r.protocol+"//"+r.host:"null",r.href=r.toString(),r},toString:function(e){e&&"function"==typeof e||(e=t.stringify);var a,n=this,i=n.host,r=n.protocol;r&&":"!==r.charAt(r.length-1)&&(r+=":");var o=r+(n.protocol&&n.slashes||p(n.protocol)?"//":"");return n.username?(o+=n.username,n.password&&(o+=":"+n.password),o+="@"):n.password?(o+=":"+n.password,o+="@"):"file:"!==n.protocol&&p(n.protocol)&&!i&&"/"!==n.pathname&&(o+="@"),(":"===i[i.length-1]||s.test(n.hostname)&&!n.port)&&(i+=":"),o+=i+n.pathname,(a="object"==typeof n.query?e(n.query):n.query)&&(o+="?"!==a.charAt(0)?"?"+a:a),n.hash&&(o+=n.hash),o}},f.extractProtocol=g,f.location=h,f.trimLeft=c,f.qs=t,a.exports=f}}),_Re=CRe({"node_modules/psl/data/rules.json"(e,a){a.exports=["ac","com.ac","edu.ac","gov.ac","net.ac","mil.ac","org.ac","ad","nom.ad","ae","co.ae","net.ae","org.ae","sch.ae","ac.ae","gov.ae","mil.ae","aero","accident-investigation.aero","accident-prevention.aero","aerobatic.aero","aeroclub.aero","aerodrome.aero","agents.aero","aircraft.aero","airline.aero","airport.aero","air-surveillance.aero","airtraffic.aero","air-traffic-control.aero","ambulance.aero","amusement.aero","association.aero","author.aero","ballooning.aero","broker.aero","caa.aero","cargo.aero","catering.aero","certification.aero","championship.aero","charter.aero","civilaviation.aero","club.aero","conference.aero","consultant.aero","consulting.aero","control.aero","council.aero","crew.aero","design.aero","dgca.aero","educator.aero","emergency.aero","engine.aero","engineer.aero","entertainment.aero","equipment.aero","exchange.aero","express.aero","federation.aero","flight.aero","fuel.aero","gliding.aero","government.aero","groundhandling.aero","group.aero","hanggliding.aero","homebuilt.aero","insurance.aero","journal.aero","journalist.aero","leasing.aero","logistics.aero","magazine.aero","maintenance.aero","media.aero","microlight.aero","modelling.aero","navigation.aero","parachuting.aero","paragliding.aero","passenger-association.aero","pilot.aero","press.aero","production.aero","recreation.aero","repbody.aero","res.aero","research.aero","rotorcraft.aero","safety.aero","scientist.aero","services.aero","show.aero","skydiving.aero","software.aero","student.aero","trader.aero","trading.aero","trainer.aero","union.aero","workinggroup.aero","works.aero","af","gov.af","com.af","org.af","net.af","edu.af","ag","com.ag","org.ag","net.ag","co.ag","nom.ag","ai","off.ai","com.ai","net.ai","org.ai","al","com.al","edu.al","gov.al","mil.al","net.al","org.al","am","co.am","com.am","commune.am","net.am","org.am","ao","ed.ao","gv.ao","og.ao","co.ao","pb.ao","it.ao","aq","ar","bet.ar","com.ar","coop.ar","edu.ar","gob.ar","gov.ar","int.ar","mil.ar","musica.ar","mutual.ar","net.ar","org.ar","senasa.ar","tur.ar","arpa","e164.arpa","in-addr.arpa","ip6.arpa","iris.arpa","uri.arpa","urn.arpa","as","gov.as","asia","at","ac.at","co.at","gv.at","or.at","sth.ac.at","au","com.au","net.au","org.au","edu.au","gov.au","asn.au","id.au","info.au","conf.au","oz.au","act.au","nsw.au","nt.au","qld.au","sa.au","tas.au","vic.au","wa.au","act.edu.au","catholic.edu.au","nsw.edu.au","nt.edu.au","qld.edu.au","sa.edu.au","tas.edu.au","vic.edu.au","wa.edu.au","qld.gov.au","sa.gov.au","tas.gov.au","vic.gov.au","wa.gov.au","schools.nsw.edu.au","aw","com.aw","ax","az","com.az","net.az","int.az","gov.az","org.az","edu.az","info.az","pp.az","mil.az","name.az","pro.az","biz.az","ba","com.ba","edu.ba","gov.ba","mil.ba","net.ba","org.ba","bb","biz.bb","co.bb","com.bb","edu.bb","gov.bb","info.bb","net.bb","org.bb","store.bb","tv.bb","*.bd","be","ac.be","bf","gov.bf","bg","a.bg","b.bg","c.bg","d.bg","e.bg","f.bg","g.bg","h.bg","i.bg","j.bg","k.bg","l.bg","m.bg","n.bg","o.bg","p.bg","q.bg","r.bg","s.bg","t.bg","u.bg","v.bg","w.bg","x.bg","y.bg","z.bg","0.bg","1.bg","2.bg","3.bg","4.bg","5.bg","6.bg","7.bg","8.bg","9.bg","bh","com.bh","edu.bh","net.bh","org.bh","gov.bh","bi","co.bi","com.bi","edu.bi","or.bi","org.bi","biz","bj","asso.bj","barreau.bj","gouv.bj","bm","com.bm","edu.bm","gov.bm","net.bm","org.bm","bn","com.bn","edu.bn","gov.bn","net.bn","org.bn","bo","com.bo","edu.bo","gob.bo","int.bo","org.bo","net.bo","mil.bo","tv.bo","web.bo","academia.bo","agro.bo","arte.bo","blog.bo","bolivia.bo","ciencia.bo","cooperativa.bo","democracia.bo","deporte.bo","ecologia.bo","economia.bo","empresa.bo","indigena.bo","industria.bo","info.bo","medicina.bo","movimiento.bo","musica.bo","natural.bo","nombre.bo","noticias.bo","patria.bo","politica.bo","profesional.bo","plurinacional.bo","pueblo.bo","revista.bo","salud.bo","tecnologia.bo","tksat.bo","transporte.bo","wiki.bo","br","9guacu.br","abc.br","adm.br","adv.br","agr.br","aju.br","am.br","anani.br","aparecida.br","app.br","arq.br","art.br","ato.br","b.br","barueri.br","belem.br","bhz.br","bib.br","bio.br","blog.br","bmd.br","boavista.br","bsb.br","campinagrande.br","campinas.br","caxias.br","cim.br","cng.br","cnt.br","com.br","contagem.br","coop.br","coz.br","cri.br","cuiaba.br","curitiba.br","def.br","des.br","det.br","dev.br","ecn.br","eco.br","edu.br","emp.br","enf.br","eng.br","esp.br","etc.br","eti.br","far.br","feira.br","flog.br","floripa.br","fm.br","fnd.br","fortal.br","fot.br","foz.br","fst.br","g12.br","geo.br","ggf.br","goiania.br","gov.br","ac.gov.br","al.gov.br","am.gov.br","ap.gov.br","ba.gov.br","ce.gov.br","df.gov.br","es.gov.br","go.gov.br","ma.gov.br","mg.gov.br","ms.gov.br","mt.gov.br","pa.gov.br","pb.gov.br","pe.gov.br","pi.gov.br","pr.gov.br","rj.gov.br","rn.gov.br","ro.gov.br","rr.gov.br","rs.gov.br","sc.gov.br","se.gov.br","sp.gov.br","to.gov.br","gru.br","imb.br","ind.br","inf.br","jab.br","jampa.br","jdf.br","joinville.br","jor.br","jus.br","leg.br","lel.br","log.br","londrina.br","macapa.br","maceio.br","manaus.br","maringa.br","mat.br","med.br","mil.br","morena.br","mp.br","mus.br","natal.br","net.br","niteroi.br","*.nom.br","not.br","ntr.br","odo.br","ong.br","org.br","osasco.br","palmas.br","poa.br","ppg.br","pro.br","psc.br","psi.br","pvh.br","qsl.br","radio.br","rec.br","recife.br","rep.br","ribeirao.br","rio.br","riobranco.br","riopreto.br","salvador.br","sampa.br","santamaria.br","santoandre.br","saobernardo.br","saogonca.br","seg.br","sjc.br","slg.br","slz.br","sorocaba.br","srv.br","taxi.br","tc.br","tec.br","teo.br","the.br","tmp.br","trd.br","tur.br","tv.br","udi.br","vet.br","vix.br","vlog.br","wiki.br","zlg.br","bs","com.bs","net.bs","org.bs","edu.bs","gov.bs","bt","com.bt","edu.bt","gov.bt","net.bt","org.bt","bv","bw","co.bw","org.bw","by","gov.by","mil.by","com.by","of.by","bz","com.bz","net.bz","org.bz","edu.bz","gov.bz","ca","ab.ca","bc.ca","mb.ca","nb.ca","nf.ca","nl.ca","ns.ca","nt.ca","nu.ca","on.ca","pe.ca","qc.ca","sk.ca","yk.ca","gc.ca","cat","cc","cd","gov.cd","cf","cg","ch","ci","org.ci","or.ci","com.ci","co.ci","edu.ci","ed.ci","ac.ci","net.ci","go.ci","asso.ci","aéroport.ci","int.ci","presse.ci","md.ci","gouv.ci","*.ck","!www.ck","cl","co.cl","gob.cl","gov.cl","mil.cl","cm","co.cm","com.cm","gov.cm","net.cm","cn","ac.cn","com.cn","edu.cn","gov.cn","net.cn","org.cn","mil.cn","公司.cn","网络.cn","網絡.cn","ah.cn","bj.cn","cq.cn","fj.cn","gd.cn","gs.cn","gz.cn","gx.cn","ha.cn","hb.cn","he.cn","hi.cn","hl.cn","hn.cn","jl.cn","js.cn","jx.cn","ln.cn","nm.cn","nx.cn","qh.cn","sc.cn","sd.cn","sh.cn","sn.cn","sx.cn","tj.cn","xj.cn","xz.cn","yn.cn","zj.cn","hk.cn","mo.cn","tw.cn","co","arts.co","com.co","edu.co","firm.co","gov.co","info.co","int.co","mil.co","net.co","nom.co","org.co","rec.co","web.co","com","coop","cr","ac.cr","co.cr","ed.cr","fi.cr","go.cr","or.cr","sa.cr","cu","com.cu","edu.cu","org.cu","net.cu","gov.cu","inf.cu","cv","com.cv","edu.cv","int.cv","nome.cv","org.cv","cw","com.cw","edu.cw","net.cw","org.cw","cx","gov.cx","cy","ac.cy","biz.cy","com.cy","ekloges.cy","gov.cy","ltd.cy","mil.cy","net.cy","org.cy","press.cy","pro.cy","tm.cy","cz","de","dj","dk","dm","com.dm","net.dm","org.dm","edu.dm","gov.dm","do","art.do","com.do","edu.do","gob.do","gov.do","mil.do","net.do","org.do","sld.do","web.do","dz","art.dz","asso.dz","com.dz","edu.dz","gov.dz","org.dz","net.dz","pol.dz","soc.dz","tm.dz","ec","com.ec","info.ec","net.ec","fin.ec","k12.ec","med.ec","pro.ec","org.ec","edu.ec","gov.ec","gob.ec","mil.ec","edu","ee","edu.ee","gov.ee","riik.ee","lib.ee","med.ee","com.ee","pri.ee","aip.ee","org.ee","fie.ee","eg","com.eg","edu.eg","eun.eg","gov.eg","mil.eg","name.eg","net.eg","org.eg","sci.eg","*.er","es","com.es","nom.es","org.es","gob.es","edu.es","et","com.et","gov.et","org.et","edu.et","biz.et","name.et","info.et","net.et","eu","fi","aland.fi","fj","ac.fj","biz.fj","com.fj","gov.fj","info.fj","mil.fj","name.fj","net.fj","org.fj","pro.fj","*.fk","com.fm","edu.fm","net.fm","org.fm","fm","fo","fr","asso.fr","com.fr","gouv.fr","nom.fr","prd.fr","tm.fr","aeroport.fr","avocat.fr","avoues.fr","cci.fr","chambagri.fr","chirurgiens-dentistes.fr","experts-comptables.fr","geometre-expert.fr","greta.fr","huissier-justice.fr","medecin.fr","notaires.fr","pharmacien.fr","port.fr","veterinaire.fr","ga","gb","edu.gd","gov.gd","gd","ge","com.ge","edu.ge","gov.ge","org.ge","mil.ge","net.ge","pvt.ge","gf","gg","co.gg","net.gg","org.gg","gh","com.gh","edu.gh","gov.gh","org.gh","mil.gh","gi","com.gi","ltd.gi","gov.gi","mod.gi","edu.gi","org.gi","gl","co.gl","com.gl","edu.gl","net.gl","org.gl","gm","gn","ac.gn","com.gn","edu.gn","gov.gn","org.gn","net.gn","gov","gp","com.gp","net.gp","mobi.gp","edu.gp","org.gp","asso.gp","gq","gr","com.gr","edu.gr","net.gr","org.gr","gov.gr","gs","gt","com.gt","edu.gt","gob.gt","ind.gt","mil.gt","net.gt","org.gt","gu","com.gu","edu.gu","gov.gu","guam.gu","info.gu","net.gu","org.gu","web.gu","gw","gy","co.gy","com.gy","edu.gy","gov.gy","net.gy","org.gy","hk","com.hk","edu.hk","gov.hk","idv.hk","net.hk","org.hk","公司.hk","教育.hk","敎育.hk","政府.hk","個人.hk","个��.hk","箇人.hk","網络.hk","网络.hk","组織.hk","網絡.hk","网絡.hk","组织.hk","組織.hk","組织.hk","hm","hn","com.hn","edu.hn","org.hn","net.hn","mil.hn","gob.hn","hr","iz.hr","from.hr","name.hr","com.hr","ht","com.ht","shop.ht","firm.ht","info.ht","adult.ht","net.ht","pro.ht","org.ht","med.ht","art.ht","coop.ht","pol.ht","asso.ht","edu.ht","rel.ht","gouv.ht","perso.ht","hu","co.hu","info.hu","org.hu","priv.hu","sport.hu","tm.hu","2000.hu","agrar.hu","bolt.hu","casino.hu","city.hu","erotica.hu","erotika.hu","film.hu","forum.hu","games.hu","hotel.hu","ingatlan.hu","jogasz.hu","konyvelo.hu","lakas.hu","media.hu","news.hu","reklam.hu","sex.hu","shop.hu","suli.hu","szex.hu","tozsde.hu","utazas.hu","video.hu","id","ac.id","biz.id","co.id","desa.id","go.id","mil.id","my.id","net.id","or.id","ponpes.id","sch.id","web.id","ie","gov.ie","il","ac.il","co.il","gov.il","idf.il","k12.il","muni.il","net.il","org.il","im","ac.im","co.im","com.im","ltd.co.im","net.im","org.im","plc.co.im","tt.im","tv.im","in","co.in","firm.in","net.in","org.in","gen.in","ind.in","nic.in","ac.in","edu.in","res.in","gov.in","mil.in","info","int","eu.int","io","com.io","iq","gov.iq","edu.iq","mil.iq","com.iq","org.iq","net.iq","ir","ac.ir","co.ir","gov.ir","id.ir","net.ir","org.ir","sch.ir","ایران.ir","ايران.ir","is","net.is","com.is","edu.is","gov.is","org.is","int.is","it","gov.it","edu.it","abr.it","abruzzo.it","aosta-valley.it","aostavalley.it","bas.it","basilicata.it","cal.it","calabria.it","cam.it","campania.it","emilia-romagna.it","emiliaromagna.it","emr.it","friuli-v-giulia.it","friuli-ve-giulia.it","friuli-vegiulia.it","friuli-venezia-giulia.it","friuli-veneziagiulia.it","friuli-vgiulia.it","friuliv-giulia.it","friulive-giulia.it","friulivegiulia.it","friulivenezia-giulia.it","friuliveneziagiulia.it","friulivgiulia.it","fvg.it","laz.it","lazio.it","lig.it","liguria.it","lom.it","lombardia.it","lombardy.it","lucania.it","mar.it","marche.it","mol.it","molise.it","piedmont.it","piemonte.it","pmn.it","pug.it","puglia.it","sar.it","sardegna.it","sardinia.it","sic.it","sicilia.it","sicily.it","taa.it","tos.it","toscana.it","trentin-sud-tirol.it","trentin-süd-tirol.it","trentin-sudtirol.it","trentin-südtirol.it","trentin-sued-tirol.it","trentin-suedtirol.it","trentino-a-adige.it","trentino-aadige.it","trentino-alto-adige.it","trentino-altoadige.it","trentino-s-tirol.it","trentino-stirol.it","trentino-sud-tirol.it","trentino-süd-tirol.it","trentino-sudtirol.it","trentino-südtirol.it","trentino-sued-tirol.it","trentino-suedtirol.it","trentino.it","trentinoa-adige.it","trentinoaadige.it","trentinoalto-adige.it","trentinoaltoadige.it","trentinos-tirol.it","trentinostirol.it","trentinosud-tirol.it","trentinosüd-tirol.it","trentinosudtirol.it","trentinosüdtirol.it","trentinosued-tirol.it","trentinosuedtirol.it","trentinsud-tirol.it","trentinsüd-tirol.it","trentinsudtirol.it","trentinsüdtirol.it","trentinsued-tirol.it","trentinsuedtirol.it","tuscany.it","umb.it","umbria.it","val-d-aosta.it","val-daosta.it","vald-aosta.it","valdaosta.it","valle-aosta.it","valle-d-aosta.it","valle-daosta.it","valleaosta.it","valled-aosta.it","valledaosta.it","vallee-aoste.it","vallée-aoste.it","vallee-d-aoste.it","vallée-d-aoste.it","valleeaoste.it","valléeaoste.it","valleedaoste.it","valléedaoste.it","vao.it","vda.it","ven.it","veneto.it","ag.it","agrigento.it","al.it","alessandria.it","alto-adige.it","altoadige.it","an.it","ancona.it","andria-barletta-trani.it","andria-trani-barletta.it","andriabarlettatrani.it","andriatranibarletta.it","ao.it","aosta.it","aoste.it","ap.it","aq.it","aquila.it","ar.it","arezzo.it","ascoli-piceno.it","ascolipiceno.it","asti.it","at.it","av.it","avellino.it","ba.it","balsan-sudtirol.it","balsan-südtirol.it","balsan-suedtirol.it","balsan.it","bari.it","barletta-trani-andria.it","barlettatraniandria.it","belluno.it","benevento.it","bergamo.it","bg.it","bi.it","biella.it","bl.it","bn.it","bo.it","bologna.it","bolzano-altoadige.it","bolzano.it","bozen-sudtirol.it","bozen-südtirol.it","bozen-suedtirol.it","bozen.it","br.it","brescia.it","brindisi.it","bs.it","bt.it","bulsan-sudtirol.it","bulsan-südtirol.it","bulsan-suedtirol.it","bulsan.it","bz.it","ca.it","cagliari.it","caltanissetta.it","campidano-medio.it","campidanomedio.it","campobasso.it","carbonia-iglesias.it","carboniaiglesias.it","carrara-massa.it","carraramassa.it","caserta.it","catania.it","catanzaro.it","cb.it","ce.it","cesena-forli.it","cesena-forlì.it","cesenaforli.it","cesenaforlì.it","ch.it","chieti.it","ci.it","cl.it","cn.it","co.it","como.it","cosenza.it","cr.it","cremona.it","crotone.it","cs.it","ct.it","cuneo.it","cz.it","dell-ogliastra.it","dellogliastra.it","en.it","enna.it","fc.it","fe.it","fermo.it","ferrara.it","fg.it","fi.it","firenze.it","florence.it","fm.it","foggia.it","forli-cesena.it","forlì-cesena.it","forlicesena.it","forlìcesena.it","fr.it","frosinone.it","ge.it","genoa.it","genova.it","go.it","gorizia.it","gr.it","grosseto.it","iglesias-carbonia.it","iglesiascarbonia.it","im.it","imperia.it","is.it","isernia.it","kr.it","la-spezia.it","laquila.it","laspezia.it","latina.it","lc.it","le.it","lecce.it","lecco.it","li.it","livorno.it","lo.it","lodi.it","lt.it","lu.it","lucca.it","macerata.it","mantova.it","massa-carrara.it","massacarrara.it","matera.it","mb.it","mc.it","me.it","medio-campidano.it","mediocampidano.it","messina.it","mi.it","milan.it","milano.it","mn.it","mo.it","modena.it","monza-brianza.it","monza-e-della-brianza.it","monza.it","monzabrianza.it","monzaebrianza.it","monzaedellabrianza.it","ms.it","mt.it","na.it","naples.it","napoli.it","no.it","novara.it","nu.it","nuoro.it","og.it","ogliastra.it","olbia-tempio.it","olbiatempio.it","or.it","oristano.it","ot.it","pa.it","padova.it","padua.it","palermo.it","parma.it","pavia.it","pc.it","pd.it","pe.it","perugia.it","pesaro-urbino.it","pesarourbino.it","pescara.it","pg.it","pi.it","piacenza.it","pisa.it","pistoia.it","pn.it","po.it","pordenone.it","potenza.it","pr.it","prato.it","pt.it","pu.it","pv.it","pz.it","ra.it","ragusa.it","ravenna.it","rc.it","re.it","reggio-calabria.it","reggio-emilia.it","reggiocalabria.it","reggioemilia.it","rg.it","ri.it","rieti.it","rimini.it","rm.it","rn.it","ro.it","roma.it","rome.it","rovigo.it","sa.it","salerno.it","sassari.it","savona.it","si.it","siena.it","siracusa.it","so.it","sondrio.it","sp.it","sr.it","ss.it","suedtirol.it","südtirol.it","sv.it","ta.it","taranto.it","te.it","tempio-olbia.it","tempioolbia.it","teramo.it","terni.it","tn.it","to.it","torino.it","tp.it","tr.it","trani-andria-barletta.it","trani-barletta-andria.it","traniandriabarletta.it","tranibarlettaandria.it","trapani.it","trento.it","treviso.it","trieste.it","ts.it","turin.it","tv.it","ud.it","udine.it","urbino-pesaro.it","urbinopesaro.it","va.it","varese.it","vb.it","vc.it","ve.it","venezia.it","venice.it","verbania.it","vercelli.it","verona.it","vi.it","vibo-valentia.it","vibovalentia.it","vicenza.it","viterbo.it","vr.it","vs.it","vt.it","vv.it","je","co.je","net.je","org.je","*.jm","jo","com.jo","org.jo","net.jo","edu.jo","sch.jo","gov.jo","mil.jo","name.jo","jobs","jp","ac.jp","ad.jp","co.jp","ed.jp","go.jp","gr.jp","lg.jp","ne.jp","or.jp","aichi.jp","akita.jp","aomori.jp","chiba.jp","ehime.jp","fukui.jp","fukuoka.jp","fukushima.jp","gifu.jp","gunma.jp","hiroshima.jp","hokkaido.jp","hyogo.jp","ibaraki.jp","ishikawa.jp","iwate.jp","kagawa.jp","kagoshima.jp","kanagawa.jp","kochi.jp","kumamoto.jp","kyoto.jp","mie.jp","miyagi.jp","miyazaki.jp","nagano.jp","nagasaki.jp","nara.jp","niigata.jp","oita.jp","okayama.jp","okinawa.jp","osaka.jp","saga.jp","saitama.jp","shiga.jp","shimane.jp","shizuoka.jp","tochigi.jp","tokushima.jp","tokyo.jp","tottori.jp","toyama.jp","wakayama.jp","yamagata.jp","yamaguchi.jp","yamanashi.jp","栃木.jp","愛知.jp","愛媛.jp","兵庫.jp","熊本.jp","茨城.jp","北海道.jp","千葉.jp","和歌山.jp","長崎.jp","長野.jp","新潟.jp","青森.jp","静岡.jp","東京.jp","石川.jp","埼玉.jp","三重.jp","京都.jp","佐賀.jp","大分.jp","大阪.jp","奈良.jp","宮城.jp","宮崎.jp","富山.jp","山口.jp","山形.jp","山梨.jp","岩手.jp","岐阜.jp","岡山.jp","島根.jp","広島.jp","徳島.jp","沖縄.jp","滋賀.jp","神奈川.jp","福井.jp","福岡.jp","福島.jp","秋田.jp","群馬.jp","香川.jp","高知.jp","鳥取.jp","鹿児島.jp","*.kawasaki.jp","*.kitakyushu.jp","*.kobe.jp","*.nagoya.jp","*.sapporo.jp","*.sendai.jp","*.yokohama.jp","!city.kawasaki.jp","!city.kitakyushu.jp","!city.kobe.jp","!city.nagoya.jp","!city.sapporo.jp","!city.sendai.jp","!city.yokohama.jp","aisai.aichi.jp","ama.aichi.jp","anjo.aichi.jp","asuke.aichi.jp","chiryu.aichi.jp","chita.aichi.jp","fuso.aichi.jp","gamagori.aichi.jp","handa.aichi.jp","hazu.aichi.jp","hekinan.aichi.jp","higashiura.aichi.jp","ichinomiya.aichi.jp","inazawa.aichi.jp","inuyama.aichi.jp","isshiki.aichi.jp","iwakura.aichi.jp","kanie.aichi.jp","kariya.aichi.jp","kasugai.aichi.jp","kira.aichi.jp","kiyosu.aichi.jp","komaki.aichi.jp","konan.aichi.jp","kota.aichi.jp","mihama.aichi.jp","miyoshi.aichi.jp","nishio.aichi.jp","nisshin.aichi.jp","obu.aichi.jp","oguchi.aichi.jp","oharu.aichi.jp","okazaki.aichi.jp","owariasahi.aichi.jp","seto.aichi.jp","shikatsu.aichi.jp","shinshiro.aichi.jp","shitara.aichi.jp","tahara.aichi.jp","takahama.aichi.jp","tobishima.aichi.jp","toei.aichi.jp","togo.aichi.jp","tokai.aichi.jp","tokoname.aichi.jp","toyoake.aichi.jp","toyohashi.aichi.jp","toyokawa.aichi.jp","toyone.aichi.jp","toyota.aichi.jp","tsushima.aichi.jp","yatomi.aichi.jp","akita.akita.jp","daisen.akita.jp","fujisato.akita.jp","gojome.akita.jp","hachirogata.akita.jp","happou.akita.jp","higashinaruse.akita.jp","honjo.akita.jp","honjyo.akita.jp","ikawa.akita.jp","kamikoani.akita.jp","kamioka.akita.jp","katagami.akita.jp","kazuno.akita.jp","kitaakita.akita.jp","kosaka.akita.jp","kyowa.akita.jp","misato.akita.jp","mitane.akita.jp","moriyoshi.akita.jp","nikaho.akita.jp","noshiro.akita.jp","odate.akita.jp","oga.akita.jp","ogata.akita.jp","semboku.akita.jp","yokote.akita.jp","yurihonjo.akita.jp","aomori.aomori.jp","gonohe.aomori.jp","hachinohe.aomori.jp","hashikami.aomori.jp","hiranai.aomori.jp","hirosaki.aomori.jp","itayanagi.aomori.jp","kuroishi.aomori.jp","misawa.aomori.jp","mutsu.aomori.jp","nakadomari.aomori.jp","noheji.aomori.jp","oirase.aomori.jp","owani.aomori.jp","rokunohe.aomori.jp","sannohe.aomori.jp","shichinohe.aomori.jp","shingo.aomori.jp","takko.aomori.jp","towada.aomori.jp","tsugaru.aomori.jp","tsuruta.aomori.jp","abiko.chiba.jp","asahi.chiba.jp","chonan.chiba.jp","chosei.chiba.jp","choshi.chiba.jp","chuo.chiba.jp","funabashi.chiba.jp","futtsu.chiba.jp","hanamigawa.chiba.jp","ichihara.chiba.jp","ichikawa.chiba.jp","ichinomiya.chiba.jp","inzai.chiba.jp","isumi.chiba.jp","kamagaya.chiba.jp","kamogawa.chiba.jp","kashiwa.chiba.jp","katori.chiba.jp","katsuura.chiba.jp","kimitsu.chiba.jp","kisarazu.chiba.jp","kozaki.chiba.jp","kujukuri.chiba.jp","kyonan.chiba.jp","matsudo.chiba.jp","midori.chiba.jp","mihama.chiba.jp","minamiboso.chiba.jp","mobara.chiba.jp","mutsuzawa.chiba.jp","nagara.chiba.jp","nagareyama.chiba.jp","narashino.chiba.jp","narita.chiba.jp","noda.chiba.jp","oamishirasato.chiba.jp","omigawa.chiba.jp","onjuku.chiba.jp","otaki.chiba.jp","sakae.chiba.jp","sakura.chiba.jp","shimofusa.chiba.jp","shirako.chiba.jp","shiroi.chiba.jp","shisui.chiba.jp","sodegaura.chiba.jp","sosa.chiba.jp","tako.chiba.jp","tateyama.chiba.jp","togane.chiba.jp","tohnosho.chiba.jp","tomisato.chiba.jp","urayasu.chiba.jp","yachimata.chiba.jp","yachiyo.chiba.jp","yokaichiba.chiba.jp","yokoshibahikari.chiba.jp","yotsukaido.chiba.jp","ainan.ehime.jp","honai.ehime.jp","ikata.ehime.jp","imabari.ehime.jp","iyo.ehime.jp","kamijima.ehime.jp","kihoku.ehime.jp","kumakogen.ehime.jp","masaki.ehime.jp","matsuno.ehime.jp","matsuyama.ehime.jp","namikata.ehime.jp","niihama.ehime.jp","ozu.ehime.jp","saijo.ehime.jp","seiyo.ehime.jp","shikokuchuo.ehime.jp","tobe.ehime.jp","toon.ehime.jp","uchiko.ehime.jp","uwajima.ehime.jp","yawatahama.ehime.jp","echizen.fukui.jp","eiheiji.fukui.jp","fukui.fukui.jp","ikeda.fukui.jp","katsuyama.fukui.jp","mihama.fukui.jp","minamiechizen.fukui.jp","obama.fukui.jp","ohi.fukui.jp","ono.fukui.jp","sabae.fukui.jp","sakai.fukui.jp","takahama.fukui.jp","tsuruga.fukui.jp","wakasa.fukui.jp","ashiya.fukuoka.jp","buzen.fukuoka.jp","chikugo.fukuoka.jp","chikuho.fukuoka.jp","chikujo.fukuoka.jp","chikushino.fukuoka.jp","chikuzen.fukuoka.jp","chuo.fukuoka.jp","dazaifu.fukuoka.jp","fukuchi.fukuoka.jp","hakata.fukuoka.jp","higashi.fukuoka.jp","hirokawa.fukuoka.jp","hisayama.fukuoka.jp","iizuka.fukuoka.jp","inatsuki.fukuoka.jp","kaho.fukuoka.jp","kasuga.fukuoka.jp","kasuya.fukuoka.jp","kawara.fukuoka.jp","keisen.fukuoka.jp","koga.fukuoka.jp","kurate.fukuoka.jp","kurogi.fukuoka.jp","kurume.fukuoka.jp","minami.fukuoka.jp","miyako.fukuoka.jp","miyama.fukuoka.jp","miyawaka.fukuoka.jp","mizumaki.fukuoka.jp","munakata.fukuoka.jp","nakagawa.fukuoka.jp","nakama.fukuoka.jp","nishi.fukuoka.jp","nogata.fukuoka.jp","ogori.fukuoka.jp","okagaki.fukuoka.jp","okawa.fukuoka.jp","oki.fukuoka.jp","omuta.fukuoka.jp","onga.fukuoka.jp","onojo.fukuoka.jp","oto.fukuoka.jp","saigawa.fukuoka.jp","sasaguri.fukuoka.jp","shingu.fukuoka.jp","shinyoshitomi.fukuoka.jp","shonai.fukuoka.jp","soeda.fukuoka.jp","sue.fukuoka.jp","tachiarai.fukuoka.jp","tagawa.fukuoka.jp","takata.fukuoka.jp","toho.fukuoka.jp","toyotsu.fukuoka.jp","tsuiki.fukuoka.jp","ukiha.fukuoka.jp","umi.fukuoka.jp","usui.fukuoka.jp","yamada.fukuoka.jp","yame.fukuoka.jp","yanagawa.fukuoka.jp","yukuhashi.fukuoka.jp","aizubange.fukushima.jp","aizumisato.fukushima.jp","aizuwakamatsu.fukushima.jp","asakawa.fukushima.jp","bandai.fukushima.jp","date.fukushima.jp","fukushima.fukushima.jp","furudono.fukushima.jp","futaba.fukushima.jp","hanawa.fukushima.jp","higashi.fukushima.jp","hirata.fukushima.jp","hirono.fukushima.jp","iitate.fukushima.jp","inawashiro.fukushima.jp","ishikawa.fukushima.jp","iwaki.fukushima.jp","izumizaki.fukushima.jp","kagamiishi.fukushima.jp","kaneyama.fukushima.jp","kawamata.fukushima.jp","kitakata.fukushima.jp","kitashiobara.fukushima.jp","koori.fukushima.jp","koriyama.fukushima.jp","kunimi.fukushima.jp","miharu.fukushima.jp","mishima.fukushima.jp","namie.fukushima.jp","nango.fukushima.jp","nishiaizu.fukushima.jp","nishigo.fukushima.jp","okuma.fukushima.jp","omotego.fukushima.jp","ono.fukushima.jp","otama.fukushima.jp","samegawa.fukushima.jp","shimogo.fukushima.jp","shirakawa.fukushima.jp","showa.fukushima.jp","soma.fukushima.jp","sukagawa.fukushima.jp","taishin.fukushima.jp","tamakawa.fukushima.jp","tanagura.fukushima.jp","tenei.fukushima.jp","yabuki.fukushima.jp","yamato.fukushima.jp","yamatsuri.fukushima.jp","yanaizu.fukushima.jp","yugawa.fukushima.jp","anpachi.gifu.jp","ena.gifu.jp","gifu.gifu.jp","ginan.gifu.jp","godo.gifu.jp","gujo.gifu.jp","hashima.gifu.jp","hichiso.gifu.jp","hida.gifu.jp","higashishirakawa.gifu.jp","ibigawa.gifu.jp","ikeda.gifu.jp","kakamigahara.gifu.jp","kani.gifu.jp","kasahara.gifu.jp","kasamatsu.gifu.jp","kawaue.gifu.jp","kitagata.gifu.jp","mino.gifu.jp","minokamo.gifu.jp","mitake.gifu.jp","mizunami.gifu.jp","motosu.gifu.jp","nakatsugawa.gifu.jp","ogaki.gifu.jp","sakahogi.gifu.jp","seki.gifu.jp","sekigahara.gifu.jp","shirakawa.gifu.jp","tajimi.gifu.jp","takayama.gifu.jp","tarui.gifu.jp","toki.gifu.jp","tomika.gifu.jp","wanouchi.gifu.jp","yamagata.gifu.jp","yaotsu.gifu.jp","yoro.gifu.jp","annaka.gunma.jp","chiyoda.gunma.jp","fujioka.gunma.jp","higashiagatsuma.gunma.jp","isesaki.gunma.jp","itakura.gunma.jp","kanna.gunma.jp","kanra.gunma.jp","katashina.gunma.jp","kawaba.gunma.jp","kiryu.gunma.jp","kusatsu.gunma.jp","maebashi.gunma.jp","meiwa.gunma.jp","midori.gunma.jp","minakami.gunma.jp","naganohara.gunma.jp","nakanojo.gunma.jp","nanmoku.gunma.jp","numata.gunma.jp","oizumi.gunma.jp","ora.gunma.jp","ota.gunma.jp","shibukawa.gunma.jp","shimonita.gunma.jp","shinto.gunma.jp","showa.gunma.jp","takasaki.gunma.jp","takayama.gunma.jp","tamamura.gunma.jp","tatebayashi.gunma.jp","tomioka.gunma.jp","tsukiyono.gunma.jp","tsumagoi.gunma.jp","ueno.gunma.jp","yoshioka.gunma.jp","asaminami.hiroshima.jp","daiwa.hiroshima.jp","etajima.hiroshima.jp","fuchu.hiroshima.jp","fukuyama.hiroshima.jp","hatsukaichi.hiroshima.jp","higashihiroshima.hiroshima.jp","hongo.hiroshima.jp","jinsekikogen.hiroshima.jp","kaita.hiroshima.jp","kui.hiroshima.jp","kumano.hiroshima.jp","kure.hiroshima.jp","mihara.hiroshima.jp","miyoshi.hiroshima.jp","naka.hiroshima.jp","onomichi.hiroshima.jp","osakikamijima.hiroshima.jp","otake.hiroshima.jp","saka.hiroshima.jp","sera.hiroshima.jp","seranishi.hiroshima.jp","shinichi.hiroshima.jp","shobara.hiroshima.jp","takehara.hiroshima.jp","abashiri.hokkaido.jp","abira.hokkaido.jp","aibetsu.hokkaido.jp","akabira.hokkaido.jp","akkeshi.hokkaido.jp","asahikawa.hokkaido.jp","ashibetsu.hokkaido.jp","ashoro.hokkaido.jp","assabu.hokkaido.jp","atsuma.hokkaido.jp","bibai.hokkaido.jp","biei.hokkaido.jp","bifuka.hokkaido.jp","bihoro.hokkaido.jp","biratori.hokkaido.jp","chippubetsu.hokkaido.jp","chitose.hokkaido.jp","date.hokkaido.jp","ebetsu.hokkaido.jp","embetsu.hokkaido.jp","eniwa.hokkaido.jp","erimo.hokkaido.jp","esan.hokkaido.jp","esashi.hokkaido.jp","fukagawa.hokkaido.jp","fukushima.hokkaido.jp","furano.hokkaido.jp","furubira.hokkaido.jp","haboro.hokkaido.jp","hakodate.hokkaido.jp","hamatonbetsu.hokkaido.jp","hidaka.hokkaido.jp","higashikagura.hokkaido.jp","higashikawa.hokkaido.jp","hiroo.hokkaido.jp","hokuryu.hokkaido.jp","hokuto.hokkaido.jp","honbetsu.hokkaido.jp","horokanai.hokkaido.jp","horonobe.hokkaido.jp","ikeda.hokkaido.jp","imakane.hokkaido.jp","ishikari.hokkaido.jp","iwamizawa.hokkaido.jp","iwanai.hokkaido.jp","kamifurano.hokkaido.jp","kamikawa.hokkaido.jp","kamishihoro.hokkaido.jp","kamisunagawa.hokkaido.jp","kamoenai.hokkaido.jp","kayabe.hokkaido.jp","kembuchi.hokkaido.jp","kikonai.hokkaido.jp","kimobetsu.hokkaido.jp","kitahiroshima.hokkaido.jp","kitami.hokkaido.jp","kiyosato.hokkaido.jp","koshimizu.hokkaido.jp","kunneppu.hokkaido.jp","kuriyama.hokkaido.jp","kuromatsunai.hokkaido.jp","kushiro.hokkaido.jp","kutchan.hokkaido.jp","kyowa.hokkaido.jp","mashike.hokkaido.jp","matsumae.hokkaido.jp","mikasa.hokkaido.jp","minamifurano.hokkaido.jp","mombetsu.hokkaido.jp","moseushi.hokkaido.jp","mukawa.hokkaido.jp","muroran.hokkaido.jp","naie.hokkaido.jp","nakagawa.hokkaido.jp","nakasatsunai.hokkaido.jp","nakatombetsu.hokkaido.jp","nanae.hokkaido.jp","nanporo.hokkaido.jp","nayoro.hokkaido.jp","nemuro.hokkaido.jp","niikappu.hokkaido.jp","niki.hokkaido.jp","nishiokoppe.hokkaido.jp","noboribetsu.hokkaido.jp","numata.hokkaido.jp","obihiro.hokkaido.jp","obira.hokkaido.jp","oketo.hokkaido.jp","okoppe.hokkaido.jp","otaru.hokkaido.jp","otobe.hokkaido.jp","otofuke.hokkaido.jp","otoineppu.hokkaido.jp","oumu.hokkaido.jp","ozora.hokkaido.jp","pippu.hokkaido.jp","rankoshi.hokkaido.jp","rebun.hokkaido.jp","rikubetsu.hokkaido.jp","rishiri.hokkaido.jp","rishirifuji.hokkaido.jp","saroma.hokkaido.jp","sarufutsu.hokkaido.jp","shakotan.hokkaido.jp","shari.hokkaido.jp","shibecha.hokkaido.jp","shibetsu.hokkaido.jp","shikabe.hokkaido.jp","shikaoi.hokkaido.jp","shimamaki.hokkaido.jp","shimizu.hokkaido.jp","shimokawa.hokkaido.jp","shinshinotsu.hokkaido.jp","shintoku.hokkaido.jp","shiranuka.hokkaido.jp","shiraoi.hokkaido.jp","shiriuchi.hokkaido.jp","sobetsu.hokkaido.jp","sunagawa.hokkaido.jp","taiki.hokkaido.jp","takasu.hokkaido.jp","takikawa.hokkaido.jp","takinoue.hokkaido.jp","teshikaga.hokkaido.jp","tobetsu.hokkaido.jp","tohma.hokkaido.jp","tomakomai.hokkaido.jp","tomari.hokkaido.jp","toya.hokkaido.jp","toyako.hokkaido.jp","toyotomi.hokkaido.jp","toyoura.hokkaido.jp","tsubetsu.hokkaido.jp","tsukigata.hokkaido.jp","urakawa.hokkaido.jp","urausu.hokkaido.jp","uryu.hokkaido.jp","utashinai.hokkaido.jp","wakkanai.hokkaido.jp","wassamu.hokkaido.jp","yakumo.hokkaido.jp","yoichi.hokkaido.jp","aioi.hyogo.jp","akashi.hyogo.jp","ako.hyogo.jp","amagasaki.hyogo.jp","aogaki.hyogo.jp","asago.hyogo.jp","ashiya.hyogo.jp","awaji.hyogo.jp","fukusaki.hyogo.jp","goshiki.hyogo.jp","harima.hyogo.jp","himeji.hyogo.jp","ichikawa.hyogo.jp","inagawa.hyogo.jp","itami.hyogo.jp","kakogawa.hyogo.jp","kamigori.hyogo.jp","kamikawa.hyogo.jp","kasai.hyogo.jp","kasuga.hyogo.jp","kawanishi.hyogo.jp","miki.hyogo.jp","minamiawaji.hyogo.jp","nishinomiya.hyogo.jp","nishiwaki.hyogo.jp","ono.hyogo.jp","sanda.hyogo.jp","sannan.hyogo.jp","sasayama.hyogo.jp","sayo.hyogo.jp","shingu.hyogo.jp","shinonsen.hyogo.jp","shiso.hyogo.jp","sumoto.hyogo.jp","taishi.hyogo.jp","taka.hyogo.jp","takarazuka.hyogo.jp","takasago.hyogo.jp","takino.hyogo.jp","tamba.hyogo.jp","tatsuno.hyogo.jp","toyooka.hyogo.jp","yabu.hyogo.jp","yashiro.hyogo.jp","yoka.hyogo.jp","yokawa.hyogo.jp","ami.ibaraki.jp","asahi.ibaraki.jp","bando.ibaraki.jp","chikusei.ibaraki.jp","daigo.ibaraki.jp","fujishiro.ibaraki.jp","hitachi.ibaraki.jp","hitachinaka.ibaraki.jp","hitachiomiya.ibaraki.jp","hitachiota.ibaraki.jp","ibaraki.ibaraki.jp","ina.ibaraki.jp","inashiki.ibaraki.jp","itako.ibaraki.jp","iwama.ibaraki.jp","joso.ibaraki.jp","kamisu.ibaraki.jp","kasama.ibaraki.jp","kashima.ibaraki.jp","kasumigaura.ibaraki.jp","koga.ibaraki.jp","miho.ibaraki.jp","mito.ibaraki.jp","moriya.ibaraki.jp","naka.ibaraki.jp","namegata.ibaraki.jp","oarai.ibaraki.jp","ogawa.ibaraki.jp","omitama.ibaraki.jp","ryugasaki.ibaraki.jp","sakai.ibaraki.jp","sakuragawa.ibaraki.jp","shimodate.ibaraki.jp","shimotsuma.ibaraki.jp","shirosato.ibaraki.jp","sowa.ibaraki.jp","suifu.ibaraki.jp","takahagi.ibaraki.jp","tamatsukuri.ibaraki.jp","tokai.ibaraki.jp","tomobe.ibaraki.jp","tone.ibaraki.jp","toride.ibaraki.jp","tsuchiura.ibaraki.jp","tsukuba.ibaraki.jp","uchihara.ibaraki.jp","ushiku.ibaraki.jp","yachiyo.ibaraki.jp","yamagata.ibaraki.jp","yawara.ibaraki.jp","yuki.ibaraki.jp","anamizu.ishikawa.jp","hakui.ishikawa.jp","hakusan.ishikawa.jp","kaga.ishikawa.jp","kahoku.ishikawa.jp","kanazawa.ishikawa.jp","kawakita.ishikawa.jp","komatsu.ishikawa.jp","nakanoto.ishikawa.jp","nanao.ishikawa.jp","nomi.ishikawa.jp","nonoichi.ishikawa.jp","noto.ishikawa.jp","shika.ishikawa.jp","suzu.ishikawa.jp","tsubata.ishikawa.jp","tsurugi.ishikawa.jp","uchinada.ishikawa.jp","wajima.ishikawa.jp","fudai.iwate.jp","fujisawa.iwate.jp","hanamaki.iwate.jp","hiraizumi.iwate.jp","hirono.iwate.jp","ichinohe.iwate.jp","ichinoseki.iwate.jp","iwaizumi.iwate.jp","iwate.iwate.jp","joboji.iwate.jp","kamaishi.iwate.jp","kanegasaki.iwate.jp","karumai.iwate.jp","kawai.iwate.jp","kitakami.iwate.jp","kuji.iwate.jp","kunohe.iwate.jp","kuzumaki.iwate.jp","miyako.iwate.jp","mizusawa.iwate.jp","morioka.iwate.jp","ninohe.iwate.jp","noda.iwate.jp","ofunato.iwate.jp","oshu.iwate.jp","otsuchi.iwate.jp","rikuzentakata.iwate.jp","shiwa.iwate.jp","shizukuishi.iwate.jp","sumita.iwate.jp","tanohata.iwate.jp","tono.iwate.jp","yahaba.iwate.jp","yamada.iwate.jp","ayagawa.kagawa.jp","higashikagawa.kagawa.jp","kanonji.kagawa.jp","kotohira.kagawa.jp","manno.kagawa.jp","marugame.kagawa.jp","mitoyo.kagawa.jp","naoshima.kagawa.jp","sanuki.kagawa.jp","tadotsu.kagawa.jp","takamatsu.kagawa.jp","tonosho.kagawa.jp","uchinomi.kagawa.jp","utazu.kagawa.jp","zentsuji.kagawa.jp","akune.kagoshima.jp","amami.kagoshima.jp","hioki.kagoshima.jp","isa.kagoshima.jp","isen.kagoshima.jp","izumi.kagoshima.jp","kagoshima.kagoshima.jp","kanoya.kagoshima.jp","kawanabe.kagoshima.jp","kinko.kagoshima.jp","kouyama.kagoshima.jp","makurazaki.kagoshima.jp","matsumoto.kagoshima.jp","minamitane.kagoshima.jp","nakatane.kagoshima.jp","nishinoomote.kagoshima.jp","satsumasendai.kagoshima.jp","soo.kagoshima.jp","tarumizu.kagoshima.jp","yusui.kagoshima.jp","aikawa.kanagawa.jp","atsugi.kanagawa.jp","ayase.kanagawa.jp","chigasaki.kanagawa.jp","ebina.kanagawa.jp","fujisawa.kanagawa.jp","hadano.kanagawa.jp","hakone.kanagawa.jp","hiratsuka.kanagawa.jp","isehara.kanagawa.jp","kaisei.kanagawa.jp","kamakura.kanagawa.jp","kiyokawa.kanagawa.jp","matsuda.kanagawa.jp","minamiashigara.kanagawa.jp","miura.kanagawa.jp","nakai.kanagawa.jp","ninomiya.kanagawa.jp","odawara.kanagawa.jp","oi.kanagawa.jp","oiso.kanagawa.jp","sagamihara.kanagawa.jp","samukawa.kanagawa.jp","tsukui.kanagawa.jp","yamakita.kanagawa.jp","yamato.kanagawa.jp","yokosuka.kanagawa.jp","yugawara.kanagawa.jp","zama.kanagawa.jp","zushi.kanagawa.jp","aki.kochi.jp","geisei.kochi.jp","hidaka.kochi.jp","higashitsuno.kochi.jp","ino.kochi.jp","kagami.kochi.jp","kami.kochi.jp","kitagawa.kochi.jp","kochi.kochi.jp","mihara.kochi.jp","motoyama.kochi.jp","muroto.kochi.jp","nahari.kochi.jp","nakamura.kochi.jp","nankoku.kochi.jp","nishitosa.kochi.jp","niyodogawa.kochi.jp","ochi.kochi.jp","okawa.kochi.jp","otoyo.kochi.jp","otsuki.kochi.jp","sakawa.kochi.jp","sukumo.kochi.jp","susaki.kochi.jp","tosa.kochi.jp","tosashimizu.kochi.jp","toyo.kochi.jp","tsuno.kochi.jp","umaji.kochi.jp","yasuda.kochi.jp","yusuhara.kochi.jp","amakusa.kumamoto.jp","arao.kumamoto.jp","aso.kumamoto.jp","choyo.kumamoto.jp","gyokuto.kumamoto.jp","kamiamakusa.kumamoto.jp","kikuchi.kumamoto.jp","kumamoto.kumamoto.jp","mashiki.kumamoto.jp","mifune.kumamoto.jp","minamata.kumamoto.jp","minamioguni.kumamoto.jp","nagasu.kumamoto.jp","nishihara.kumamoto.jp","oguni.kumamoto.jp","ozu.kumamoto.jp","sumoto.kumamoto.jp","takamori.kumamoto.jp","uki.kumamoto.jp","uto.kumamoto.jp","yamaga.kumamoto.jp","yamato.kumamoto.jp","yatsushiro.kumamoto.jp","ayabe.kyoto.jp","fukuchiyama.kyoto.jp","higashiyama.kyoto.jp","ide.kyoto.jp","ine.kyoto.jp","joyo.kyoto.jp","kameoka.kyoto.jp","kamo.kyoto.jp","kita.kyoto.jp","kizu.kyoto.jp","kumiyama.kyoto.jp","kyotamba.kyoto.jp","kyotanabe.kyoto.jp","kyotango.kyoto.jp","maizuru.kyoto.jp","minami.kyoto.jp","minamiyamashiro.kyoto.jp","miyazu.kyoto.jp","muko.kyoto.jp","nagaokakyo.kyoto.jp","nakagyo.kyoto.jp","nantan.kyoto.jp","oyamazaki.kyoto.jp","sakyo.kyoto.jp","seika.kyoto.jp","tanabe.kyoto.jp","uji.kyoto.jp","ujitawara.kyoto.jp","wazuka.kyoto.jp","yamashina.kyoto.jp","yawata.kyoto.jp","asahi.mie.jp","inabe.mie.jp","ise.mie.jp","kameyama.mie.jp","kawagoe.mie.jp","kiho.mie.jp","kisosaki.mie.jp","kiwa.mie.jp","komono.mie.jp","kumano.mie.jp","kuwana.mie.jp","matsusaka.mie.jp","meiwa.mie.jp","mihama.mie.jp","minamiise.mie.jp","misugi.mie.jp","miyama.mie.jp","nabari.mie.jp","shima.mie.jp","suzuka.mie.jp","tado.mie.jp","taiki.mie.jp","taki.mie.jp","tamaki.mie.jp","toba.mie.jp","tsu.mie.jp","udono.mie.jp","ureshino.mie.jp","watarai.mie.jp","yokkaichi.mie.jp","furukawa.miyagi.jp","higashimatsushima.miyagi.jp","ishinomaki.miyagi.jp","iwanuma.miyagi.jp","kakuda.miyagi.jp","kami.miyagi.jp","kawasaki.miyagi.jp","marumori.miyagi.jp","matsushima.miyagi.jp","minamisanriku.miyagi.jp","misato.miyagi.jp","murata.miyagi.jp","natori.miyagi.jp","ogawara.miyagi.jp","ohira.miyagi.jp","onagawa.miyagi.jp","osaki.miyagi.jp","rifu.miyagi.jp","semine.miyagi.jp","shibata.miyagi.jp","shichikashuku.miyagi.jp","shikama.miyagi.jp","shiogama.miyagi.jp","shiroishi.miyagi.jp","tagajo.miyagi.jp","taiwa.miyagi.jp","tome.miyagi.jp","tomiya.miyagi.jp","wakuya.miyagi.jp","watari.miyagi.jp","yamamoto.miyagi.jp","zao.miyagi.jp","aya.miyazaki.jp","ebino.miyazaki.jp","gokase.miyazaki.jp","hyuga.miyazaki.jp","kadogawa.miyazaki.jp","kawaminami.miyazaki.jp","kijo.miyazaki.jp","kitagawa.miyazaki.jp","kitakata.miyazaki.jp","kitaura.miyazaki.jp","kobayashi.miyazaki.jp","kunitomi.miyazaki.jp","kushima.miyazaki.jp","mimata.miyazaki.jp","miyakonojo.miyazaki.jp","miyazaki.miyazaki.jp","morotsuka.miyazaki.jp","nichinan.miyazaki.jp","nishimera.miyazaki.jp","nobeoka.miyazaki.jp","saito.miyazaki.jp","shiiba.miyazaki.jp","shintomi.miyazaki.jp","takaharu.miyazaki.jp","takanabe.miyazaki.jp","takazaki.miyazaki.jp","tsuno.miyazaki.jp","achi.nagano.jp","agematsu.nagano.jp","anan.nagano.jp","aoki.nagano.jp","asahi.nagano.jp","azumino.nagano.jp","chikuhoku.nagano.jp","chikuma.nagano.jp","chino.nagano.jp","fujimi.nagano.jp","hakuba.nagano.jp","hara.nagano.jp","hiraya.nagano.jp","iida.nagano.jp","iijima.nagano.jp","iiyama.nagano.jp","iizuna.nagano.jp","ikeda.nagano.jp","ikusaka.nagano.jp","ina.nagano.jp","karuizawa.nagano.jp","kawakami.nagano.jp","kiso.nagano.jp","kisofukushima.nagano.jp","kitaaiki.nagano.jp","komagane.nagano.jp","komoro.nagano.jp","matsukawa.nagano.jp","matsumoto.nagano.jp","miasa.nagano.jp","minamiaiki.nagano.jp","minamimaki.nagano.jp","minamiminowa.nagano.jp","minowa.nagano.jp","miyada.nagano.jp","miyota.nagano.jp","mochizuki.nagano.jp","nagano.nagano.jp","nagawa.nagano.jp","nagiso.nagano.jp","nakagawa.nagano.jp","nakano.nagano.jp","nozawaonsen.nagano.jp","obuse.nagano.jp","ogawa.nagano.jp","okaya.nagano.jp","omachi.nagano.jp","omi.nagano.jp","ookuwa.nagano.jp","ooshika.nagano.jp","otaki.nagano.jp","otari.nagano.jp","sakae.nagano.jp","sakaki.nagano.jp","saku.nagano.jp","sakuho.nagano.jp","shimosuwa.nagano.jp","shinanomachi.nagano.jp","shiojiri.nagano.jp","suwa.nagano.jp","suzaka.nagano.jp","takagi.nagano.jp","takamori.nagano.jp","takayama.nagano.jp","tateshina.nagano.jp","tatsuno.nagano.jp","togakushi.nagano.jp","togura.nagano.jp","tomi.nagano.jp","ueda.nagano.jp","wada.nagano.jp","yamagata.nagano.jp","yamanouchi.nagano.jp","yasaka.nagano.jp","yasuoka.nagano.jp","chijiwa.nagasaki.jp","futsu.nagasaki.jp","goto.nagasaki.jp","hasami.nagasaki.jp","hirado.nagasaki.jp","iki.nagasaki.jp","isahaya.nagasaki.jp","kawatana.nagasaki.jp","kuchinotsu.nagasaki.jp","matsuura.nagasaki.jp","nagasaki.nagasaki.jp","obama.nagasaki.jp","omura.nagasaki.jp","oseto.nagasaki.jp","saikai.nagasaki.jp","sasebo.nagasaki.jp","seihi.nagasaki.jp","shimabara.nagasaki.jp","shinkamigoto.nagasaki.jp","togitsu.nagasaki.jp","tsushima.nagasaki.jp","unzen.nagasaki.jp","ando.nara.jp","gose.nara.jp","heguri.nara.jp","higashiyoshino.nara.jp","ikaruga.nara.jp","ikoma.nara.jp","kamikitayama.nara.jp","kanmaki.nara.jp","kashiba.nara.jp","kashihara.nara.jp","katsuragi.nara.jp","kawai.nara.jp","kawakami.nara.jp","kawanishi.nara.jp","koryo.nara.jp","kurotaki.nara.jp","mitsue.nara.jp","miyake.nara.jp","nara.nara.jp","nosegawa.nara.jp","oji.nara.jp","ouda.nara.jp","oyodo.nara.jp","sakurai.nara.jp","sango.nara.jp","shimoichi.nara.jp","shimokitayama.nara.jp","shinjo.nara.jp","soni.nara.jp","takatori.nara.jp","tawaramoto.nara.jp","tenkawa.nara.jp","tenri.nara.jp","uda.nara.jp","yamatokoriyama.nara.jp","yamatotakada.nara.jp","yamazoe.nara.jp","yoshino.nara.jp","aga.niigata.jp","agano.niigata.jp","gosen.niigata.jp","itoigawa.niigata.jp","izumozaki.niigata.jp","joetsu.niigata.jp","kamo.niigata.jp","kariwa.niigata.jp","kashiwazaki.niigata.jp","minamiuonuma.niigata.jp","mitsuke.niigata.jp","muika.niigata.jp","murakami.niigata.jp","myoko.niigata.jp","nagaoka.niigata.jp","niigata.niigata.jp","ojiya.niigata.jp","omi.niigata.jp","sado.niigata.jp","sanjo.niigata.jp","seiro.niigata.jp","seirou.niigata.jp","sekikawa.niigata.jp","shibata.niigata.jp","tagami.niigata.jp","tainai.niigata.jp","tochio.niigata.jp","tokamachi.niigata.jp","tsubame.niigata.jp","tsunan.niigata.jp","uonuma.niigata.jp","yahiko.niigata.jp","yoita.niigata.jp","yuzawa.niigata.jp","beppu.oita.jp","bungoono.oita.jp","bungotakada.oita.jp","hasama.oita.jp","hiji.oita.jp","himeshima.oita.jp","hita.oita.jp","kamitsue.oita.jp","kokonoe.oita.jp","kuju.oita.jp","kunisaki.oita.jp","kusu.oita.jp","oita.oita.jp","saiki.oita.jp","taketa.oita.jp","tsukumi.oita.jp","usa.oita.jp","usuki.oita.jp","yufu.oita.jp","akaiwa.okayama.jp","asakuchi.okayama.jp","bizen.okayama.jp","hayashima.okayama.jp","ibara.okayama.jp","kagamino.okayama.jp","kasaoka.okayama.jp","kibichuo.okayama.jp","kumenan.okayama.jp","kurashiki.okayama.jp","maniwa.okayama.jp","misaki.okayama.jp","nagi.okayama.jp","niimi.okayama.jp","nishiawakura.okayama.jp","okayama.okayama.jp","satosho.okayama.jp","setouchi.okayama.jp","shinjo.okayama.jp","shoo.okayama.jp","soja.okayama.jp","takahashi.okayama.jp","tamano.okayama.jp","tsuyama.okayama.jp","wake.okayama.jp","yakage.okayama.jp","aguni.okinawa.jp","ginowan.okinawa.jp","ginoza.okinawa.jp","gushikami.okinawa.jp","haebaru.okinawa.jp","higashi.okinawa.jp","hirara.okinawa.jp","iheya.okinawa.jp","ishigaki.okinawa.jp","ishikawa.okinawa.jp","itoman.okinawa.jp","izena.okinawa.jp","kadena.okinawa.jp","kin.okinawa.jp","kitadaito.okinawa.jp","kitanakagusuku.okinawa.jp","kumejima.okinawa.jp","kunigami.okinawa.jp","minamidaito.okinawa.jp","motobu.okinawa.jp","nago.okinawa.jp","naha.okinawa.jp","nakagusuku.okinawa.jp","nakijin.okinawa.jp","nanjo.okinawa.jp","nishihara.okinawa.jp","ogimi.okinawa.jp","okinawa.okinawa.jp","onna.okinawa.jp","shimoji.okinawa.jp","taketomi.okinawa.jp","tarama.okinawa.jp","tokashiki.okinawa.jp","tomigusuku.okinawa.jp","tonaki.okinawa.jp","urasoe.okinawa.jp","uruma.okinawa.jp","yaese.okinawa.jp","yomitan.okinawa.jp","yonabaru.okinawa.jp","yonaguni.okinawa.jp","zamami.okinawa.jp","abeno.osaka.jp","chihayaakasaka.osaka.jp","chuo.osaka.jp","daito.osaka.jp","fujiidera.osaka.jp","habikino.osaka.jp","hannan.osaka.jp","higashiosaka.osaka.jp","higashisumiyoshi.osaka.jp","higashiyodogawa.osaka.jp","hirakata.osaka.jp","ibaraki.osaka.jp","ikeda.osaka.jp","izumi.osaka.jp","izumiotsu.osaka.jp","izumisano.osaka.jp","kadoma.osaka.jp","kaizuka.osaka.jp","kanan.osaka.jp","kashiwara.osaka.jp","katano.osaka.jp","kawachinagano.osaka.jp","kishiwada.osaka.jp","kita.osaka.jp","kumatori.osaka.jp","matsubara.osaka.jp","minato.osaka.jp","minoh.osaka.jp","misaki.osaka.jp","moriguchi.osaka.jp","neyagawa.osaka.jp","nishi.osaka.jp","nose.osaka.jp","osakasayama.osaka.jp","sakai.osaka.jp","sayama.osaka.jp","sennan.osaka.jp","settsu.osaka.jp","shijonawate.osaka.jp","shimamoto.osaka.jp","suita.osaka.jp","tadaoka.osaka.jp","taishi.osaka.jp","tajiri.osaka.jp","takaishi.osaka.jp","takatsuki.osaka.jp","tondabayashi.osaka.jp","toyonaka.osaka.jp","toyono.osaka.jp","yao.osaka.jp","ariake.saga.jp","arita.saga.jp","fukudomi.saga.jp","genkai.saga.jp","hamatama.saga.jp","hizen.saga.jp","imari.saga.jp","kamimine.saga.jp","kanzaki.saga.jp","karatsu.saga.jp","kashima.saga.jp","kitagata.saga.jp","kitahata.saga.jp","kiyama.saga.jp","kouhoku.saga.jp","kyuragi.saga.jp","nishiarita.saga.jp","ogi.saga.jp","omachi.saga.jp","ouchi.saga.jp","saga.saga.jp","shiroishi.saga.jp","taku.saga.jp","tara.saga.jp","tosu.saga.jp","yoshinogari.saga.jp","arakawa.saitama.jp","asaka.saitama.jp","chichibu.saitama.jp","fujimi.saitama.jp","fujimino.saitama.jp","fukaya.saitama.jp","hanno.saitama.jp","hanyu.saitama.jp","hasuda.saitama.jp","hatogaya.saitama.jp","hatoyama.saitama.jp","hidaka.saitama.jp","higashichichibu.saitama.jp","higashimatsuyama.saitama.jp","honjo.saitama.jp","ina.saitama.jp","iruma.saitama.jp","iwatsuki.saitama.jp","kamiizumi.saitama.jp","kamikawa.saitama.jp","kamisato.saitama.jp","kasukabe.saitama.jp","kawagoe.saitama.jp","kawaguchi.saitama.jp","kawajima.saitama.jp","kazo.saitama.jp","kitamoto.saitama.jp","koshigaya.saitama.jp","kounosu.saitama.jp","kuki.saitama.jp","kumagaya.saitama.jp","matsubushi.saitama.jp","minano.saitama.jp","misato.saitama.jp","miyashiro.saitama.jp","miyoshi.saitama.jp","moroyama.saitama.jp","nagatoro.saitama.jp","namegawa.saitama.jp","niiza.saitama.jp","ogano.saitama.jp","ogawa.saitama.jp","ogose.saitama.jp","okegawa.saitama.jp","omiya.saitama.jp","otaki.saitama.jp","ranzan.saitama.jp","ryokami.saitama.jp","saitama.saitama.jp","sakado.saitama.jp","satte.saitama.jp","sayama.saitama.jp","shiki.saitama.jp","shiraoka.saitama.jp","soka.saitama.jp","sugito.saitama.jp","toda.saitama.jp","tokigawa.saitama.jp","tokorozawa.saitama.jp","tsurugashima.saitama.jp","urawa.saitama.jp","warabi.saitama.jp","yashio.saitama.jp","yokoze.saitama.jp","yono.saitama.jp","yorii.saitama.jp","yoshida.saitama.jp","yoshikawa.saitama.jp","yoshimi.saitama.jp","aisho.shiga.jp","gamo.shiga.jp","higashiomi.shiga.jp","hikone.shiga.jp","koka.shiga.jp","konan.shiga.jp","kosei.shiga.jp","koto.shiga.jp","kusatsu.shiga.jp","maibara.shiga.jp","moriyama.shiga.jp","nagahama.shiga.jp","nishiazai.shiga.jp","notogawa.shiga.jp","omihachiman.shiga.jp","otsu.shiga.jp","ritto.shiga.jp","ryuoh.shiga.jp","takashima.shiga.jp","takatsuki.shiga.jp","torahime.shiga.jp","toyosato.shiga.jp","yasu.shiga.jp","akagi.shimane.jp","ama.shimane.jp","gotsu.shimane.jp","hamada.shimane.jp","higashiizumo.shimane.jp","hikawa.shimane.jp","hikimi.shimane.jp","izumo.shimane.jp","kakinoki.shimane.jp","masuda.shimane.jp","matsue.shimane.jp","misato.shimane.jp","nishinoshima.shimane.jp","ohda.shimane.jp","okinoshima.shimane.jp","okuizumo.shimane.jp","shimane.shimane.jp","tamayu.shimane.jp","tsuwano.shimane.jp","unnan.shimane.jp","yakumo.shimane.jp","yasugi.shimane.jp","yatsuka.shimane.jp","arai.shizuoka.jp","atami.shizuoka.jp","fuji.shizuoka.jp","fujieda.shizuoka.jp","fujikawa.shizuoka.jp","fujinomiya.shizuoka.jp","fukuroi.shizuoka.jp","gotemba.shizuoka.jp","haibara.shizuoka.jp","hamamatsu.shizuoka.jp","higashiizu.shizuoka.jp","ito.shizuoka.jp","iwata.shizuoka.jp","izu.shizuoka.jp","izunokuni.shizuoka.jp","kakegawa.shizuoka.jp","kannami.shizuoka.jp","kawanehon.shizuoka.jp","kawazu.shizuoka.jp","kikugawa.shizuoka.jp","kosai.shizuoka.jp","makinohara.shizuoka.jp","matsuzaki.shizuoka.jp","minamiizu.shizuoka.jp","mishima.shizuoka.jp","morimachi.shizuoka.jp","nishiizu.shizuoka.jp","numazu.shizuoka.jp","omaezaki.shizuoka.jp","shimada.shizuoka.jp","shimizu.shizuoka.jp","shimoda.shizuoka.jp","shizuoka.shizuoka.jp","susono.shizuoka.jp","yaizu.shizuoka.jp","yoshida.shizuoka.jp","ashikaga.tochigi.jp","bato.tochigi.jp","haga.tochigi.jp","ichikai.tochigi.jp","iwafune.tochigi.jp","kaminokawa.tochigi.jp","kanuma.tochigi.jp","karasuyama.tochigi.jp","kuroiso.tochigi.jp","mashiko.tochigi.jp","mibu.tochigi.jp","moka.tochigi.jp","motegi.tochigi.jp","nasu.tochigi.jp","nasushiobara.tochigi.jp","nikko.tochigi.jp","nishikata.tochigi.jp","nogi.tochigi.jp","ohira.tochigi.jp","ohtawara.tochigi.jp","oyama.tochigi.jp","sakura.tochigi.jp","sano.tochigi.jp","shimotsuke.tochigi.jp","shioya.tochigi.jp","takanezawa.tochigi.jp","tochigi.tochigi.jp","tsuga.tochigi.jp","ujiie.tochigi.jp","utsunomiya.tochigi.jp","yaita.tochigi.jp","aizumi.tokushima.jp","anan.tokushima.jp","ichiba.tokushima.jp","itano.tokushima.jp","kainan.tokushima.jp","komatsushima.tokushima.jp","matsushige.tokushima.jp","mima.tokushima.jp","minami.tokushima.jp","miyoshi.tokushima.jp","mugi.tokushima.jp","nakagawa.tokushima.jp","naruto.tokushima.jp","sanagochi.tokushima.jp","shishikui.tokushima.jp","tokushima.tokushima.jp","wajiki.tokushima.jp","adachi.tokyo.jp","akiruno.tokyo.jp","akishima.tokyo.jp","aogashima.tokyo.jp","arakawa.tokyo.jp","bunkyo.tokyo.jp","chiyoda.tokyo.jp","chofu.tokyo.jp","chuo.tokyo.jp","edogawa.tokyo.jp","fuchu.tokyo.jp","fussa.tokyo.jp","hachijo.tokyo.jp","hachioji.tokyo.jp","hamura.tokyo.jp","higashikurume.tokyo.jp","higashimurayama.tokyo.jp","higashiyamato.tokyo.jp","hino.tokyo.jp","hinode.tokyo.jp","hinohara.tokyo.jp","inagi.tokyo.jp","itabashi.tokyo.jp","katsushika.tokyo.jp","kita.tokyo.jp","kiyose.tokyo.jp","kodaira.tokyo.jp","koganei.tokyo.jp","kokubunji.tokyo.jp","komae.tokyo.jp","koto.tokyo.jp","kouzushima.tokyo.jp","kunitachi.tokyo.jp","machida.tokyo.jp","meguro.tokyo.jp","minato.tokyo.jp","mitaka.tokyo.jp","mizuho.tokyo.jp","musashimurayama.tokyo.jp","musashino.tokyo.jp","nakano.tokyo.jp","nerima.tokyo.jp","ogasawara.tokyo.jp","okutama.tokyo.jp","ome.tokyo.jp","oshima.tokyo.jp","ota.tokyo.jp","setagaya.tokyo.jp","shibuya.tokyo.jp","shinagawa.tokyo.jp","shinjuku.tokyo.jp","suginami.tokyo.jp","sumida.tokyo.jp","tachikawa.tokyo.jp","taito.tokyo.jp","tama.tokyo.jp","toshima.tokyo.jp","chizu.tottori.jp","hino.tottori.jp","kawahara.tottori.jp","koge.tottori.jp","kotoura.tottori.jp","misasa.tottori.jp","nanbu.tottori.jp","nichinan.tottori.jp","sakaiminato.tottori.jp","tottori.tottori.jp","wakasa.tottori.jp","yazu.tottori.jp","yonago.tottori.jp","asahi.toyama.jp","fuchu.toyama.jp","fukumitsu.toyama.jp","funahashi.toyama.jp","himi.toyama.jp","imizu.toyama.jp","inami.toyama.jp","johana.toyama.jp","kamiichi.toyama.jp","kurobe.toyama.jp","nakaniikawa.toyama.jp","namerikawa.toyama.jp","nanto.toyama.jp","nyuzen.toyama.jp","oyabe.toyama.jp","taira.toyama.jp","takaoka.toyama.jp","tateyama.toyama.jp","toga.toyama.jp","tonami.toyama.jp","toyama.toyama.jp","unazuki.toyama.jp","uozu.toyama.jp","yamada.toyama.jp","arida.wakayama.jp","aridagawa.wakayama.jp","gobo.wakayama.jp","hashimoto.wakayama.jp","hidaka.wakayama.jp","hirogawa.wakayama.jp","inami.wakayama.jp","iwade.wakayama.jp","kainan.wakayama.jp","kamitonda.wakayama.jp","katsuragi.wakayama.jp","kimino.wakayama.jp","kinokawa.wakayama.jp","kitayama.wakayama.jp","koya.wakayama.jp","koza.wakayama.jp","kozagawa.wakayama.jp","kudoyama.wakayama.jp","kushimoto.wakayama.jp","mihama.wakayama.jp","misato.wakayama.jp","nachikatsuura.wakayama.jp","shingu.wakayama.jp","shirahama.wakayama.jp","taiji.wakayama.jp","tanabe.wakayama.jp","wakayama.wakayama.jp","yuasa.wakayama.jp","yura.wakayama.jp","asahi.yamagata.jp","funagata.yamagata.jp","higashine.yamagata.jp","iide.yamagata.jp","kahoku.yamagata.jp","kaminoyama.yamagata.jp","kaneyama.yamagata.jp","kawanishi.yamagata.jp","mamurogawa.yamagata.jp","mikawa.yamagata.jp","murayama.yamagata.jp","nagai.yamagata.jp","nakayama.yamagata.jp","nanyo.yamagata.jp","nishikawa.yamagata.jp","obanazawa.yamagata.jp","oe.yamagata.jp","oguni.yamagata.jp","ohkura.yamagata.jp","oishida.yamagata.jp","sagae.yamagata.jp","sakata.yamagata.jp","sakegawa.yamagata.jp","shinjo.yamagata.jp","shirataka.yamagata.jp","shonai.yamagata.jp","takahata.yamagata.jp","tendo.yamagata.jp","tozawa.yamagata.jp","tsuruoka.yamagata.jp","yamagata.yamagata.jp","yamanobe.yamagata.jp","yonezawa.yamagata.jp","yuza.yamagata.jp","abu.yamaguchi.jp","hagi.yamaguchi.jp","hikari.yamaguchi.jp","hofu.yamaguchi.jp","iwakuni.yamaguchi.jp","kudamatsu.yamaguchi.jp","mitou.yamaguchi.jp","nagato.yamaguchi.jp","oshima.yamaguchi.jp","shimonoseki.yamaguchi.jp","shunan.yamaguchi.jp","tabuse.yamaguchi.jp","tokuyama.yamaguchi.jp","toyota.yamaguchi.jp","ube.yamaguchi.jp","yuu.yamaguchi.jp","chuo.yamanashi.jp","doshi.yamanashi.jp","fuefuki.yamanashi.jp","fujikawa.yamanashi.jp","fujikawaguchiko.yamanashi.jp","fujiyoshida.yamanashi.jp","hayakawa.yamanashi.jp","hokuto.yamanashi.jp","ichikawamisato.yamanashi.jp","kai.yamanashi.jp","kofu.yamanashi.jp","koshu.yamanashi.jp","kosuge.yamanashi.jp","minami-alps.yamanashi.jp","minobu.yamanashi.jp","nakamichi.yamanashi.jp","nanbu.yamanashi.jp","narusawa.yamanashi.jp","nirasaki.yamanashi.jp","nishikatsura.yamanashi.jp","oshino.yamanashi.jp","otsuki.yamanashi.jp","showa.yamanashi.jp","tabayama.yamanashi.jp","tsuru.yamanashi.jp","uenohara.yamanashi.jp","yamanakako.yamanashi.jp","yamanashi.yamanashi.jp","ke","ac.ke","co.ke","go.ke","info.ke","me.ke","mobi.ke","ne.ke","or.ke","sc.ke","kg","org.kg","net.kg","com.kg","edu.kg","gov.kg","mil.kg","*.kh","ki","edu.ki","biz.ki","net.ki","org.ki","gov.ki","info.ki","com.ki","km","org.km","nom.km","gov.km","prd.km","tm.km","edu.km","mil.km","ass.km","com.km","coop.km","asso.km","presse.km","medecin.km","notaires.km","pharmaciens.km","veterinaire.km","gouv.km","kn","net.kn","org.kn","edu.kn","gov.kn","kp","com.kp","edu.kp","gov.kp","org.kp","rep.kp","tra.kp","kr","ac.kr","co.kr","es.kr","go.kr","hs.kr","kg.kr","mil.kr","ms.kr","ne.kr","or.kr","pe.kr","re.kr","sc.kr","busan.kr","chungbuk.kr","chungnam.kr","daegu.kr","daejeon.kr","gangwon.kr","gwangju.kr","gyeongbuk.kr","gyeonggi.kr","gyeongnam.kr","incheon.kr","jeju.kr","jeonbuk.kr","jeonnam.kr","seoul.kr","ulsan.kr","kw","com.kw","edu.kw","emb.kw","gov.kw","ind.kw","net.kw","org.kw","ky","com.ky","edu.ky","net.ky","org.ky","kz","org.kz","edu.kz","net.kz","gov.kz","mil.kz","com.kz","la","int.la","net.la","info.la","edu.la","gov.la","per.la","com.la","org.la","lb","com.lb","edu.lb","gov.lb","net.lb","org.lb","lc","com.lc","net.lc","co.lc","org.lc","edu.lc","gov.lc","li","lk","gov.lk","sch.lk","net.lk","int.lk","com.lk","org.lk","edu.lk","ngo.lk","soc.lk","web.lk","ltd.lk","assn.lk","grp.lk","hotel.lk","ac.lk","lr","com.lr","edu.lr","gov.lr","org.lr","net.lr","ls","ac.ls","biz.ls","co.ls","edu.ls","gov.ls","info.ls","net.ls","org.ls","sc.ls","lt","gov.lt","lu","lv","com.lv","edu.lv","gov.lv","org.lv","mil.lv","id.lv","net.lv","asn.lv","conf.lv","ly","com.ly","net.ly","gov.ly","plc.ly","edu.ly","sch.ly","med.ly","org.ly","id.ly","ma","co.ma","net.ma","gov.ma","org.ma","ac.ma","press.ma","mc","tm.mc","asso.mc","md","me","co.me","net.me","org.me","edu.me","ac.me","gov.me","its.me","priv.me","mg","org.mg","nom.mg","gov.mg","prd.mg","tm.mg","edu.mg","mil.mg","com.mg","co.mg","mh","mil","mk","com.mk","org.mk","net.mk","edu.mk","gov.mk","inf.mk","name.mk","ml","com.ml","edu.ml","gouv.ml","gov.ml","net.ml","org.ml","presse.ml","*.mm","mn","gov.mn","edu.mn","org.mn","mo","com.mo","net.mo","org.mo","edu.mo","gov.mo","mobi","mp","mq","mr","gov.mr","ms","com.ms","edu.ms","gov.ms","net.ms","org.ms","mt","com.mt","edu.mt","net.mt","org.mt","mu","com.mu","net.mu","org.mu","gov.mu","ac.mu","co.mu","or.mu","museum","academy.museum","agriculture.museum","air.museum","airguard.museum","alabama.museum","alaska.museum","amber.museum","ambulance.museum","american.museum","americana.museum","americanantiques.museum","americanart.museum","amsterdam.museum","and.museum","annefrank.museum","anthro.museum","anthropology.museum","antiques.museum","aquarium.museum","arboretum.museum","archaeological.museum","archaeology.museum","architecture.museum","art.museum","artanddesign.museum","artcenter.museum","artdeco.museum","arteducation.museum","artgallery.museum","arts.museum","artsandcrafts.museum","asmatart.museum","assassination.museum","assisi.museum","association.museum","astronomy.museum","atlanta.museum","austin.museum","australia.museum","automotive.museum","aviation.museum","axis.museum","badajoz.museum","baghdad.museum","bahn.museum","bale.museum","baltimore.museum","barcelona.museum","baseball.museum","basel.museum","baths.museum","bauern.museum","beauxarts.museum","beeldengeluid.museum","bellevue.museum","bergbau.museum","berkeley.museum","berlin.museum","bern.museum","bible.museum","bilbao.museum","bill.museum","birdart.museum","birthplace.museum","bonn.museum","boston.museum","botanical.museum","botanicalgarden.museum","botanicgarden.museum","botany.museum","brandywinevalley.museum","brasil.museum","bristol.museum","british.museum","britishcolumbia.museum","broadcast.museum","brunel.museum","brussel.museum","brussels.museum","bruxelles.museum","building.museum","burghof.museum","bus.museum","bushey.museum","cadaques.museum","california.museum","cambridge.museum","can.museum","canada.museum","capebreton.museum","carrier.museum","cartoonart.museum","casadelamoneda.museum","castle.museum","castres.museum","celtic.museum","center.museum","chattanooga.museum","cheltenham.museum","chesapeakebay.museum","chicago.museum","children.museum","childrens.museum","childrensgarden.museum","chiropractic.museum","chocolate.museum","christiansburg.museum","cincinnati.museum","cinema.museum","circus.museum","civilisation.museum","civilization.museum","civilwar.museum","clinton.museum","clock.museum","coal.museum","coastaldefence.museum","cody.museum","coldwar.museum","collection.museum","colonialwilliamsburg.museum","coloradoplateau.museum","columbia.museum","columbus.museum","communication.museum","communications.museum","community.museum","computer.museum","computerhistory.museum","comunicações.museum","contemporary.museum","contemporaryart.museum","convent.museum","copenhagen.museum","corporation.museum","correios-e-telecomunicações.museum","corvette.museum","costume.museum","countryestate.museum","county.museum","crafts.museum","cranbrook.museum","creation.museum","cultural.museum","culturalcenter.museum","culture.museum","cyber.museum","cymru.museum","dali.museum","dallas.museum","database.museum","ddr.museum","decorativearts.museum","delaware.museum","delmenhorst.museum","denmark.museum","depot.museum","design.museum","detroit.museum","dinosaur.museum","discovery.museum","dolls.museum","donostia.museum","durham.museum","eastafrica.museum","eastcoast.museum","education.museum","educational.museum","egyptian.museum","eisenbahn.museum","elburg.museum","elvendrell.museum","embroidery.museum","encyclopedic.museum","england.museum","entomology.museum","environment.museum","environmentalconservation.museum","epilepsy.museum","essex.museum","estate.museum","ethnology.museum","exeter.museum","exhibition.museum","family.museum","farm.museum","farmequipment.museum","farmers.museum","farmstead.museum","field.museum","figueres.museum","filatelia.museum","film.museum","fineart.museum","finearts.museum","finland.museum","flanders.museum","florida.museum","force.museum","fortmissoula.museum","fortworth.museum","foundation.museum","francaise.museum","frankfurt.museum","franziskaner.museum","freemasonry.museum","freiburg.museum","fribourg.museum","frog.museum","fundacio.museum","furniture.museum","gallery.museum","garden.museum","gateway.museum","geelvinck.museum","gemological.museum","geology.museum","georgia.museum","giessen.museum","glas.museum","glass.museum","gorge.museum","grandrapids.museum","graz.museum","guernsey.museum","halloffame.museum","hamburg.museum","handson.museum","harvestcelebration.museum","hawaii.museum","health.museum","heimatunduhren.museum","hellas.museum","helsinki.museum","hembygdsforbund.museum","heritage.museum","histoire.museum","historical.museum","historicalsociety.museum","historichouses.museum","historisch.museum","historisches.museum","history.museum","historyofscience.museum","horology.museum","house.museum","humanities.museum","illustration.museum","imageandsound.museum","indian.museum","indiana.museum","indianapolis.museum","indianmarket.museum","intelligence.museum","interactive.museum","iraq.museum","iron.museum","isleofman.museum","jamison.museum","jefferson.museum","jerusalem.museum","jewelry.museum","jewish.museum","jewishart.museum","jfk.museum","journalism.museum","judaica.museum","judygarland.museum","juedisches.museum","juif.museum","karate.museum","karikatur.museum","kids.museum","koebenhavn.museum","koeln.museum","kunst.museum","kunstsammlung.museum","kunstunddesign.museum","labor.museum","labour.museum","lajolla.museum","lancashire.museum","landes.museum","lans.museum","läns.museum","larsson.museum","lewismiller.museum","lincoln.museum","linz.museum","living.museum","livinghistory.museum","localhistory.museum","london.museum","losangeles.museum","louvre.museum","loyalist.museum","lucerne.museum","luxembourg.museum","luzern.museum","mad.museum","madrid.museum","mallorca.museum","manchester.museum","mansion.museum","mansions.museum","manx.museum","marburg.museum","maritime.museum","maritimo.museum","maryland.museum","marylhurst.museum","media.museum","medical.museum","medizinhistorisches.museum","meeres.museum","memorial.museum","mesaverde.museum","michigan.museum","midatlantic.museum","military.museum","mill.museum","miners.museum","mining.museum","minnesota.museum","missile.museum","missoula.museum","modern.museum","moma.museum","money.museum","monmouth.museum","monticello.museum","montreal.museum","moscow.museum","motorcycle.museum","muenchen.museum","muenster.museum","mulhouse.museum","muncie.museum","museet.museum","museumcenter.museum","museumvereniging.museum","music.museum","national.museum","nationalfirearms.museum","nationalheritage.museum","nativeamerican.museum","naturalhistory.museum","naturalhistorymuseum.museum","naturalsciences.museum","nature.museum","naturhistorisches.museum","natuurwetenschappen.museum","naumburg.museum","naval.museum","nebraska.museum","neues.museum","newhampshire.museum","newjersey.museum","newmexico.museum","newport.museum","newspaper.museum","newyork.museum","niepce.museum","norfolk.museum","north.museum","nrw.museum","nyc.museum","nyny.museum","oceanographic.museum","oceanographique.museum","omaha.museum","online.museum","ontario.museum","openair.museum","oregon.museum","oregontrail.museum","otago.museum","oxford.museum","pacific.museum","paderborn.museum","palace.museum","paleo.museum","palmsprings.museum","panama.museum","paris.museum","pasadena.museum","pharmacy.museum","philadelphia.museum","philadelphiaarea.museum","philately.museum","phoenix.museum","photography.museum","pilots.museum","pittsburgh.museum","planetarium.museum","plantation.museum","plants.museum","plaza.museum","portal.museum","portland.museum","portlligat.museum","posts-and-telecommunications.museum","preservation.museum","presidio.museum","press.museum","project.museum","public.museum","pubol.museum","quebec.museum","railroad.museum","railway.museum","research.museum","resistance.museum","riodejaneiro.museum","rochester.museum","rockart.museum","roma.museum","russia.museum","saintlouis.museum","salem.museum","salvadordali.museum","salzburg.museum","sandiego.museum","sanfrancisco.museum","santabarbara.museum","santacruz.museum","santafe.museum","saskatchewan.museum","satx.museum","savannahga.museum","schlesisches.museum","schoenbrunn.museum","schokoladen.museum","school.museum","schweiz.museum","science.museum","scienceandhistory.museum","scienceandindustry.museum","sciencecenter.museum","sciencecenters.museum","science-fiction.museum","sciencehistory.museum","sciences.museum","sciencesnaturelles.museum","scotland.museum","seaport.museum","settlement.museum","settlers.museum","shell.museum","sherbrooke.museum","sibenik.museum","silk.museum","ski.museum","skole.museum","society.museum","sologne.museum","soundandvision.museum","southcarolina.museum","southwest.museum","space.museum","spy.museum","square.museum","stadt.museum","stalbans.museum","starnberg.museum","state.museum","stateofdelaware.museum","station.museum","steam.museum","steiermark.museum","stjohn.museum","stockholm.museum","stpetersburg.museum","stuttgart.museum","suisse.museum","surgeonshall.museum","surrey.museum","svizzera.museum","sweden.museum","sydney.museum","tank.museum","tcm.museum","technology.museum","telekommunikation.museum","television.museum","texas.museum","textile.museum","theater.museum","time.museum","timekeeping.museum","topology.museum","torino.museum","touch.museum","town.museum","transport.museum","tree.museum","trolley.museum","trust.museum","trustee.museum","uhren.museum","ulm.museum","undersea.museum","university.museum","usa.museum","usantiques.museum","usarts.museum","uscountryestate.museum","usculture.museum","usdecorativearts.museum","usgarden.museum","ushistory.museum","ushuaia.museum","uslivinghistory.museum","utah.museum","uvic.museum","valley.museum","vantaa.museum","versailles.museum","viking.museum","village.museum","virginia.museum","virtual.museum","virtuel.museum","vlaanderen.museum","volkenkunde.museum","wales.museum","wallonie.museum","war.museum","washingtondc.museum","watchandclock.museum","watch-and-clock.museum","western.museum","westfalen.museum","whaling.museum","wildlife.museum","williamsburg.museum","windmill.museum","workshop.museum","york.museum","yorkshire.museum","yosemite.museum","youth.museum","zoological.museum","zoology.museum","ירושלים.museum","иком.museum","mv","aero.mv","biz.mv","com.mv","coop.mv","edu.mv","gov.mv","info.mv","int.mv","mil.mv","museum.mv","name.mv","net.mv","org.mv","pro.mv","mw","ac.mw","biz.mw","co.mw","com.mw","coop.mw","edu.mw","gov.mw","int.mw","museum.mw","net.mw","org.mw","mx","com.mx","org.mx","gob.mx","edu.mx","net.mx","my","biz.my","com.my","edu.my","gov.my","mil.my","name.my","net.my","org.my","mz","ac.mz","adv.mz","co.mz","edu.mz","gov.mz","mil.mz","net.mz","org.mz","na","info.na","pro.na","name.na","school.na","or.na","dr.na","us.na","mx.na","ca.na","in.na","cc.na","tv.na","ws.na","mobi.na","co.na","com.na","org.na","name","nc","asso.nc","nom.nc","ne","net","nf","com.nf","net.nf","per.nf","rec.nf","web.nf","arts.nf","firm.nf","info.nf","other.nf","store.nf","ng","com.ng","edu.ng","gov.ng","i.ng","mil.ng","mobi.ng","name.ng","net.ng","org.ng","sch.ng","ni","ac.ni","biz.ni","co.ni","com.ni","edu.ni","gob.ni","in.ni","info.ni","int.ni","mil.ni","net.ni","nom.ni","org.ni","web.ni","nl","no","fhs.no","vgs.no","fylkesbibl.no","folkebibl.no","museum.no","idrett.no","priv.no","mil.no","stat.no","dep.no","kommune.no","herad.no","aa.no","ah.no","bu.no","fm.no","hl.no","hm.no","jan-mayen.no","mr.no","nl.no","nt.no","of.no","ol.no","oslo.no","rl.no","sf.no","st.no","svalbard.no","tm.no","tr.no","va.no","vf.no","gs.aa.no","gs.ah.no","gs.bu.no","gs.fm.no","gs.hl.no","gs.hm.no","gs.jan-mayen.no","gs.mr.no","gs.nl.no","gs.nt.no","gs.of.no","gs.ol.no","gs.oslo.no","gs.rl.no","gs.sf.no","gs.st.no","gs.svalbard.no","gs.tm.no","gs.tr.no","gs.va.no","gs.vf.no","akrehamn.no","åkrehamn.no","algard.no","ålgård.no","arna.no","brumunddal.no","bryne.no","bronnoysund.no","brønnøysund.no","drobak.no","drøbak.no","egersund.no","fetsund.no","floro.no","florø.no","fredrikstad.no","hokksund.no","honefoss.no","hønefoss.no","jessheim.no","jorpeland.no","jørpeland.no","kirkenes.no","kopervik.no","krokstadelva.no","langevag.no","langevåg.no","leirvik.no","mjondalen.no","mjøndalen.no","mo-i-rana.no","mosjoen.no","mosjøen.no","nesoddtangen.no","orkanger.no","osoyro.no","osøyro.no","raholt.no","råholt.no","sandnessjoen.no","sandnessjøen.no","skedsmokorset.no","slattum.no","spjelkavik.no","stathelle.no","stavern.no","stjordalshalsen.no","stjørdalshalsen.no","tananger.no","tranby.no","vossevangen.no","afjord.no","åfjord.no","agdenes.no","al.no","ål.no","alesund.no","ålesund.no","alstahaug.no","alta.no","áltá.no","alaheadju.no","álaheadju.no","alvdal.no","amli.no","åmli.no","amot.no","åmot.no","andebu.no","andoy.no","andøy.no","andasuolo.no","ardal.no","årdal.no","aremark.no","arendal.no","ås.no","aseral.no","åseral.no","asker.no","askim.no","askvoll.no","askoy.no","askøy.no","asnes.no","åsnes.no","audnedaln.no","aukra.no","aure.no","aurland.no","aurskog-holand.no","aurskog-høland.no","austevoll.no","austrheim.no","averoy.no","averøy.no","balestrand.no","ballangen.no","balat.no","bálát.no","balsfjord.no","bahccavuotna.no","báhccavuotna.no","bamble.no","bardu.no","beardu.no","beiarn.no","bajddar.no","bájddar.no","baidar.no","báidár.no","berg.no","bergen.no","berlevag.no","berlevåg.no","bearalvahki.no","bearalváhki.no","bindal.no","birkenes.no","bjarkoy.no","bjarkøy.no","bjerkreim.no","bjugn.no","bodo.no","bodø.no","badaddja.no","bådåddjå.no","budejju.no","bokn.no","bremanger.no","bronnoy.no","brønnøy.no","bygland.no","bykle.no","barum.no","bærum.no","bo.telemark.no","bø.telemark.no","bo.nordland.no","bø.nordland.no","bievat.no","bievát.no","bomlo.no","bømlo.no","batsfjord.no","båtsfjord.no","bahcavuotna.no","báhcavuotna.no","dovre.no","drammen.no","drangedal.no","dyroy.no","dyrøy.no","donna.no","dønna.no","eid.no","eidfjord.no","eidsberg.no","eidskog.no","eidsvoll.no","eigersund.no","elverum.no","enebakk.no","engerdal.no","etne.no","etnedal.no","evenes.no","evenassi.no","evenášši.no","evje-og-hornnes.no","farsund.no","fauske.no","fuossko.no","fuoisku.no","fedje.no","fet.no","finnoy.no","finnøy.no","fitjar.no","fjaler.no","fjell.no","flakstad.no","flatanger.no","flekkefjord.no","flesberg.no","flora.no","fla.no","flå.no","folldal.no","forsand.no","fosnes.no","frei.no","frogn.no","froland.no","frosta.no","frana.no","fræna.no","froya.no","frøya.no","fusa.no","fyresdal.no","forde.no","førde.no","gamvik.no","gangaviika.no","gáŋgaviika.no","gaular.no","gausdal.no","gildeskal.no","gildeskål.no","giske.no","gjemnes.no","gjerdrum.no","gjerstad.no","gjesdal.no","gjovik.no","gjøvik.no","gloppen.no","gol.no","gran.no","grane.no","granvin.no","gratangen.no","grimstad.no","grong.no","kraanghke.no","kråanghke.no","grue.no","gulen.no","hadsel.no","halden.no","halsa.no","hamar.no","hamaroy.no","habmer.no","hábmer.no","hapmir.no","hápmir.no","hammerfest.no","hammarfeasta.no","hámmárfeasta.no","haram.no","hareid.no","harstad.no","hasvik.no","aknoluokta.no","ákŋoluokta.no","hattfjelldal.no","aarborte.no","haugesund.no","hemne.no","hemnes.no","hemsedal.no","heroy.more-og-romsdal.no","herøy.møre-og-romsdal.no","heroy.nordland.no","herøy.nordland.no","hitra.no","hjartdal.no","hjelmeland.no","hobol.no","hobøl.no","hof.no","hol.no","hole.no","holmestrand.no","holtalen.no","holtålen.no","hornindal.no","horten.no","hurdal.no","hurum.no","hvaler.no","hyllestad.no","hagebostad.no","hægebostad.no","hoyanger.no","høyanger.no","hoylandet.no","høylandet.no","ha.no","hå.no","ibestad.no","inderoy.no","inderøy.no","iveland.no","jevnaker.no","jondal.no","jolster.no","jølster.no","karasjok.no","karasjohka.no","kárášjohka.no","karlsoy.no","galsa.no","gálsá.no","karmoy.no","karmøy.no","kautokeino.no","guovdageaidnu.no","klepp.no","klabu.no","klæbu.no","kongsberg.no","kongsvinger.no","kragero.no","kragerø.no","kristiansand.no","kristiansund.no","krodsherad.no","krødsherad.no","kvalsund.no","rahkkeravju.no","ráhkkerávju.no","kvam.no","kvinesdal.no","kvinnherad.no","kviteseid.no","kvitsoy.no","kvitsøy.no","kvafjord.no","kvæfjord.no","giehtavuoatna.no","kvanangen.no","kvænangen.no","navuotna.no","návuotna.no","kafjord.no","kåfjord.no","gaivuotna.no","gáivuotna.no","larvik.no","lavangen.no","lavagis.no","loabat.no","loabát.no","lebesby.no","davvesiida.no","leikanger.no","leirfjord.no","leka.no","leksvik.no","lenvik.no","leangaviika.no","leaŋgaviika.no","lesja.no","levanger.no","lier.no","lierne.no","lillehammer.no","lillesand.no","lindesnes.no","lindas.no","lindås.no","lom.no","loppa.no","lahppi.no","láhppi.no","lund.no","lunner.no","luroy.no","lurøy.no","luster.no","lyngdal.no","lyngen.no","ivgu.no","lardal.no","lerdal.no","lærdal.no","lodingen.no","lødingen.no","lorenskog.no","lørenskog.no","loten.no","løten.no","malvik.no","masoy.no","måsøy.no","muosat.no","muosát.no","mandal.no","marker.no","marnardal.no","masfjorden.no","meland.no","meldal.no","melhus.no","meloy.no","meløy.no","meraker.no","meråker.no","moareke.no","moåreke.no","midsund.no","midtre-gauldal.no","modalen.no","modum.no","molde.no","moskenes.no","moss.no","mosvik.no","malselv.no","målselv.no","malatvuopmi.no","málatvuopmi.no","namdalseid.no","aejrie.no","namsos.no","namsskogan.no","naamesjevuemie.no","nååmesjevuemie.no","laakesvuemie.no","nannestad.no","narvik.no","narviika.no","naustdal.no","nedre-eiker.no","nes.akershus.no","nes.buskerud.no","nesna.no","nesodden.no","nesseby.no","unjarga.no","unjárga.no","nesset.no","nissedal.no","nittedal.no","nord-aurdal.no","nord-fron.no","nord-odal.no","norddal.no","nordkapp.no","davvenjarga.no","davvenjárga.no","nordre-land.no","nordreisa.no","raisa.no","ráisa.no","nore-og-uvdal.no","notodden.no","naroy.no","nærøy.no","notteroy.no","nøtterøy.no","odda.no","oksnes.no","øksnes.no","oppdal.no","oppegard.no","oppegård.no","orkdal.no","orland.no","ørland.no","orskog.no","ørskog.no","orsta.no","ørsta.no","os.hedmark.no","os.hordaland.no","osen.no","osteroy.no","osterøy.no","ostre-toten.no","østre-toten.no","overhalla.no","ovre-eiker.no","øvre-eiker.no","oyer.no","øyer.no","oygarden.no","øygarden.no","oystre-slidre.no","øystre-slidre.no","porsanger.no","porsangu.no","porsáŋgu.no","porsgrunn.no","radoy.no","radøy.no","rakkestad.no","rana.no","ruovat.no","randaberg.no","rauma.no","rendalen.no","rennebu.no","rennesoy.no","rennesøy.no","rindal.no","ringebu.no","ringerike.no","ringsaker.no","rissa.no","risor.no","risør.no","roan.no","rollag.no","rygge.no","ralingen.no","rælingen.no","rodoy.no","rødøy.no","romskog.no","rømskog.no","roros.no","røros.no","rost.no","røst.no","royken.no","røyken.no","royrvik.no","røyrvik.no","rade.no","råde.no","salangen.no","siellak.no","saltdal.no","salat.no","sálát.no","sálat.no","samnanger.no","sande.more-og-romsdal.no","sande.møre-og-romsdal.no","sande.vestfold.no","sandefjord.no","sandnes.no","sandoy.no","sandøy.no","sarpsborg.no","sauda.no","sauherad.no","sel.no","selbu.no","selje.no","seljord.no","sigdal.no","siljan.no","sirdal.no","skaun.no","skedsmo.no","ski.no","skien.no","skiptvet.no","skjervoy.no","skjervøy.no","skierva.no","skiervá.no","skjak.no","skjåk.no","skodje.no","skanland.no","skånland.no","skanit.no","skánit.no","smola.no","smøla.no","snillfjord.no","snasa.no","snåsa.no","snoasa.no","snaase.no","snåase.no","sogndal.no","sokndal.no","sola.no","solund.no","songdalen.no","sortland.no","spydeberg.no","stange.no","stavanger.no","steigen.no","steinkjer.no","stjordal.no","stjørdal.no","stokke.no","stor-elvdal.no","stord.no","stordal.no","storfjord.no","omasvuotna.no","strand.no","stranda.no","stryn.no","sula.no","suldal.no","sund.no","sunndal.no","surnadal.no","sveio.no","svelvik.no","sykkylven.no","sogne.no","søgne.no","somna.no","sømna.no","sondre-land.no","søndre-land.no","sor-aurdal.no","sør-aurdal.no","sor-fron.no","sør-fron.no","sor-odal.no","sør-odal.no","sor-varanger.no","sør-varanger.no","matta-varjjat.no","mátta-várjjat.no","sorfold.no","sørfold.no","sorreisa.no","sørreisa.no","sorum.no","sørum.no","tana.no","deatnu.no","time.no","tingvoll.no","tinn.no","tjeldsund.no","dielddanuorri.no","tjome.no","tjøme.no","tokke.no","tolga.no","torsken.no","tranoy.no","tranøy.no","tromso.no","tromsø.no","tromsa.no","romsa.no","trondheim.no","troandin.no","trysil.no","trana.no","træna.no","trogstad.no","trøgstad.no","tvedestrand.no","tydal.no","tynset.no","tysfjord.no","divtasvuodna.no","divttasvuotna.no","tysnes.no","tysvar.no","tysvær.no","tonsberg.no","tønsberg.no","ullensaker.no","ullensvang.no","ulvik.no","utsira.no","vadso.no","vadsø.no","cahcesuolo.no","čáhcesuolo.no","vaksdal.no","valle.no","vang.no","vanylven.no","vardo.no","vardø.no","varggat.no","várggát.no","vefsn.no","vaapste.no","vega.no","vegarshei.no","vegårshei.no","vennesla.no","verdal.no","verran.no","vestby.no","vestnes.no","vestre-slidre.no","vestre-toten.no","vestvagoy.no","vestvågøy.no","vevelstad.no","vik.no","vikna.no","vindafjord.no","volda.no","voss.no","varoy.no","værøy.no","vagan.no","vågan.no","voagat.no","vagsoy.no","vågsøy.no","vaga.no","vågå.no","valer.ostfold.no","våler.østfold.no","valer.hedmark.no","våler.hedmark.no","*.np","nr","biz.nr","info.nr","gov.nr","edu.nr","org.nr","net.nr","com.nr","nu","nz","ac.nz","co.nz","cri.nz","geek.nz","gen.nz","govt.nz","health.nz","iwi.nz","kiwi.nz","maori.nz","mil.nz","māori.nz","net.nz","org.nz","parliament.nz","school.nz","om","co.om","com.om","edu.om","gov.om","med.om","museum.om","net.om","org.om","pro.om","onion","org","pa","ac.pa","gob.pa","com.pa","org.pa","sld.pa","edu.pa","net.pa","ing.pa","abo.pa","med.pa","nom.pa","pe","edu.pe","gob.pe","nom.pe","mil.pe","org.pe","com.pe","net.pe","pf","com.pf","org.pf","edu.pf","*.pg","ph","com.ph","net.ph","org.ph","gov.ph","edu.ph","ngo.ph","mil.ph","i.ph","pk","com.pk","net.pk","edu.pk","org.pk","fam.pk","biz.pk","web.pk","gov.pk","gob.pk","gok.pk","gon.pk","gop.pk","gos.pk","info.pk","pl","com.pl","net.pl","org.pl","aid.pl","agro.pl","atm.pl","auto.pl","biz.pl","edu.pl","gmina.pl","gsm.pl","info.pl","mail.pl","miasta.pl","media.pl","mil.pl","nieruchomosci.pl","nom.pl","pc.pl","powiat.pl","priv.pl","realestate.pl","rel.pl","sex.pl","shop.pl","sklep.pl","sos.pl","szkola.pl","targi.pl","tm.pl","tourism.pl","travel.pl","turystyka.pl","gov.pl","ap.gov.pl","ic.gov.pl","is.gov.pl","us.gov.pl","kmpsp.gov.pl","kppsp.gov.pl","kwpsp.gov.pl","psp.gov.pl","wskr.gov.pl","kwp.gov.pl","mw.gov.pl","ug.gov.pl","um.gov.pl","umig.gov.pl","ugim.gov.pl","upow.gov.pl","uw.gov.pl","starostwo.gov.pl","pa.gov.pl","po.gov.pl","psse.gov.pl","pup.gov.pl","rzgw.gov.pl","sa.gov.pl","so.gov.pl","sr.gov.pl","wsa.gov.pl","sko.gov.pl","uzs.gov.pl","wiih.gov.pl","winb.gov.pl","pinb.gov.pl","wios.gov.pl","witd.gov.pl","wzmiuw.gov.pl","piw.gov.pl","wiw.gov.pl","griw.gov.pl","wif.gov.pl","oum.gov.pl","sdn.gov.pl","zp.gov.pl","uppo.gov.pl","mup.gov.pl","wuoz.gov.pl","konsulat.gov.pl","oirm.gov.pl","augustow.pl","babia-gora.pl","bedzin.pl","beskidy.pl","bialowieza.pl","bialystok.pl","bielawa.pl","bieszczady.pl","boleslawiec.pl","bydgoszcz.pl","bytom.pl","cieszyn.pl","czeladz.pl","czest.pl","dlugoleka.pl","elblag.pl","elk.pl","glogow.pl","gniezno.pl","gorlice.pl","grajewo.pl","ilawa.pl","jaworzno.pl","jelenia-gora.pl","jgora.pl","kalisz.pl","kazimierz-dolny.pl","karpacz.pl","kartuzy.pl","kaszuby.pl","katowice.pl","kepno.pl","ketrzyn.pl","klodzko.pl","kobierzyce.pl","kolobrzeg.pl","konin.pl","konskowola.pl","kutno.pl","lapy.pl","lebork.pl","legnica.pl","lezajsk.pl","limanowa.pl","lomza.pl","lowicz.pl","lubin.pl","lukow.pl","malbork.pl","malopolska.pl","mazowsze.pl","mazury.pl","mielec.pl","mielno.pl","mragowo.pl","naklo.pl","nowaruda.pl","nysa.pl","olawa.pl","olecko.pl","olkusz.pl","olsztyn.pl","opoczno.pl","opole.pl","ostroda.pl","ostroleka.pl","ostrowiec.pl","ostrowwlkp.pl","pila.pl","pisz.pl","podhale.pl","podlasie.pl","polkowice.pl","pomorze.pl","pomorskie.pl","prochowice.pl","pruszkow.pl","przeworsk.pl","pulawy.pl","radom.pl","rawa-maz.pl","rybnik.pl","rzeszow.pl","sanok.pl","sejny.pl","slask.pl","slupsk.pl","sosnowiec.pl","stalowa-wola.pl","skoczow.pl","starachowice.pl","stargard.pl","suwalki.pl","swidnica.pl","swiebodzin.pl","swinoujscie.pl","szczecin.pl","szczytno.pl","tarnobrzeg.pl","tgory.pl","turek.pl","tychy.pl","ustka.pl","walbrzych.pl","warmia.pl","warszawa.pl","waw.pl","wegrow.pl","wielun.pl","wlocl.pl","wloclawek.pl","wodzislaw.pl","wolomin.pl","wroclaw.pl","zachpomor.pl","zagan.pl","zarow.pl","zgora.pl","zgorzelec.pl","pm","pn","gov.pn","co.pn","org.pn","edu.pn","net.pn","post","pr","com.pr","net.pr","org.pr","gov.pr","edu.pr","isla.pr","pro.pr","biz.pr","info.pr","name.pr","est.pr","prof.pr","ac.pr","pro","aaa.pro","aca.pro","acct.pro","avocat.pro","bar.pro","cpa.pro","eng.pro","jur.pro","law.pro","med.pro","recht.pro","ps","edu.ps","gov.ps","sec.ps","plo.ps","com.ps","org.ps","net.ps","pt","net.pt","gov.pt","org.pt","edu.pt","int.pt","publ.pt","com.pt","nome.pt","pw","co.pw","ne.pw","or.pw","ed.pw","go.pw","belau.pw","py","com.py","coop.py","edu.py","gov.py","mil.py","net.py","org.py","qa","com.qa","edu.qa","gov.qa","mil.qa","name.qa","net.qa","org.qa","sch.qa","re","asso.re","com.re","nom.re","ro","arts.ro","com.ro","firm.ro","info.ro","nom.ro","nt.ro","org.ro","rec.ro","store.ro","tm.ro","www.ro","rs","ac.rs","co.rs","edu.rs","gov.rs","in.rs","org.rs","ru","rw","ac.rw","co.rw","coop.rw","gov.rw","mil.rw","net.rw","org.rw","sa","com.sa","net.sa","org.sa","gov.sa","med.sa","pub.sa","edu.sa","sch.sa","sb","com.sb","edu.sb","gov.sb","net.sb","org.sb","sc","com.sc","gov.sc","net.sc","org.sc","edu.sc","sd","com.sd","net.sd","org.sd","edu.sd","med.sd","tv.sd","gov.sd","info.sd","se","a.se","ac.se","b.se","bd.se","brand.se","c.se","d.se","e.se","f.se","fh.se","fhsk.se","fhv.se","g.se","h.se","i.se","k.se","komforb.se","kommunalforbund.se","komvux.se","l.se","lanbib.se","m.se","n.se","naturbruksgymn.se","o.se","org.se","p.se","parti.se","pp.se","press.se","r.se","s.se","t.se","tm.se","u.se","w.se","x.se","y.se","z.se","sg","com.sg","net.sg","org.sg","gov.sg","edu.sg","per.sg","sh","com.sh","net.sh","gov.sh","org.sh","mil.sh","si","sj","sk","sl","com.sl","net.sl","edu.sl","gov.sl","org.sl","sm","sn","art.sn","com.sn","edu.sn","gouv.sn","org.sn","perso.sn","univ.sn","so","com.so","edu.so","gov.so","me.so","net.so","org.so","sr","ss","biz.ss","com.ss","edu.ss","gov.ss","me.ss","net.ss","org.ss","sch.ss","st","co.st","com.st","consulado.st","edu.st","embaixada.st","mil.st","net.st","org.st","principe.st","saotome.st","store.st","su","sv","com.sv","edu.sv","gob.sv","org.sv","red.sv","sx","gov.sx","sy","edu.sy","gov.sy","net.sy","mil.sy","com.sy","org.sy","sz","co.sz","ac.sz","org.sz","tc","td","tel","tf","tg","th","ac.th","co.th","go.th","in.th","mi.th","net.th","or.th","tj","ac.tj","biz.tj","co.tj","com.tj","edu.tj","go.tj","gov.tj","int.tj","mil.tj","name.tj","net.tj","nic.tj","org.tj","test.tj","web.tj","tk","tl","gov.tl","tm","com.tm","co.tm","org.tm","net.tm","nom.tm","gov.tm","mil.tm","edu.tm","tn","com.tn","ens.tn","fin.tn","gov.tn","ind.tn","info.tn","intl.tn","mincom.tn","nat.tn","net.tn","org.tn","perso.tn","tourism.tn","to","com.to","gov.to","net.to","org.to","edu.to","mil.to","tr","av.tr","bbs.tr","bel.tr","biz.tr","com.tr","dr.tr","edu.tr","gen.tr","gov.tr","info.tr","mil.tr","k12.tr","kep.tr","name.tr","net.tr","org.tr","pol.tr","tel.tr","tsk.tr","tv.tr","web.tr","nc.tr","gov.nc.tr","tt","co.tt","com.tt","org.tt","net.tt","biz.tt","info.tt","pro.tt","int.tt","coop.tt","jobs.tt","mobi.tt","travel.tt","museum.tt","aero.tt","name.tt","gov.tt","edu.tt","tv","tw","edu.tw","gov.tw","mil.tw","com.tw","net.tw","org.tw","idv.tw","game.tw","ebiz.tw","club.tw","網路.tw","組織.tw","商業.tw","tz","ac.tz","co.tz","go.tz","hotel.tz","info.tz","me.tz","mil.tz","mobi.tz","ne.tz","or.tz","sc.tz","tv.tz","ua","com.ua","edu.ua","gov.ua","in.ua","net.ua","org.ua","cherkassy.ua","cherkasy.ua","chernigov.ua","chernihiv.ua","chernivtsi.ua","chernovtsy.ua","ck.ua","cn.ua","cr.ua","crimea.ua","cv.ua","dn.ua","dnepropetrovsk.ua","dnipropetrovsk.ua","donetsk.ua","dp.ua","if.ua","ivano-frankivsk.ua","kh.ua","kharkiv.ua","kharkov.ua","kherson.ua","khmelnitskiy.ua","khmelnytskyi.ua","kiev.ua","kirovograd.ua","km.ua","kr.ua","krym.ua","ks.ua","kv.ua","kyiv.ua","lg.ua","lt.ua","lugansk.ua","lutsk.ua","lv.ua","lviv.ua","mk.ua","mykolaiv.ua","nikolaev.ua","od.ua","odesa.ua","odessa.ua","pl.ua","poltava.ua","rivne.ua","rovno.ua","rv.ua","sb.ua","sebastopol.ua","sevastopol.ua","sm.ua","sumy.ua","te.ua","ternopil.ua","uz.ua","uzhgorod.ua","vinnica.ua","vinnytsia.ua","vn.ua","volyn.ua","yalta.ua","zaporizhzhe.ua","zaporizhzhia.ua","zhitomir.ua","zhytomyr.ua","zp.ua","zt.ua","ug","co.ug","or.ug","ac.ug","sc.ug","go.ug","ne.ug","com.ug","org.ug","uk","ac.uk","co.uk","gov.uk","ltd.uk","me.uk","net.uk","nhs.uk","org.uk","plc.uk","police.uk","*.sch.uk","us","dni.us","fed.us","isa.us","kids.us","nsn.us","ak.us","al.us","ar.us","as.us","az.us","ca.us","co.us","ct.us","dc.us","de.us","fl.us","ga.us","gu.us","hi.us","ia.us","id.us","il.us","in.us","ks.us","ky.us","la.us","ma.us","md.us","me.us","mi.us","mn.us","mo.us","ms.us","mt.us","nc.us","nd.us","ne.us","nh.us","nj.us","nm.us","nv.us","ny.us","oh.us","ok.us","or.us","pa.us","pr.us","ri.us","sc.us","sd.us","tn.us","tx.us","ut.us","vi.us","vt.us","va.us","wa.us","wi.us","wv.us","wy.us","k12.ak.us","k12.al.us","k12.ar.us","k12.as.us","k12.az.us","k12.ca.us","k12.co.us","k12.ct.us","k12.dc.us","k12.de.us","k12.fl.us","k12.ga.us","k12.gu.us","k12.ia.us","k12.id.us","k12.il.us","k12.in.us","k12.ks.us","k12.ky.us","k12.la.us","k12.ma.us","k12.md.us","k12.me.us","k12.mi.us","k12.mn.us","k12.mo.us","k12.ms.us","k12.mt.us","k12.nc.us","k12.ne.us","k12.nh.us","k12.nj.us","k12.nm.us","k12.nv.us","k12.ny.us","k12.oh.us","k12.ok.us","k12.or.us","k12.pa.us","k12.pr.us","k12.sc.us","k12.tn.us","k12.tx.us","k12.ut.us","k12.vi.us","k12.vt.us","k12.va.us","k12.wa.us","k12.wi.us","k12.wy.us","cc.ak.us","cc.al.us","cc.ar.us","cc.as.us","cc.az.us","cc.ca.us","cc.co.us","cc.ct.us","cc.dc.us","cc.de.us","cc.fl.us","cc.ga.us","cc.gu.us","cc.hi.us","cc.ia.us","cc.id.us","cc.il.us","cc.in.us","cc.ks.us","cc.ky.us","cc.la.us","cc.ma.us","cc.md.us","cc.me.us","cc.mi.us","cc.mn.us","cc.mo.us","cc.ms.us","cc.mt.us","cc.nc.us","cc.nd.us","cc.ne.us","cc.nh.us","cc.nj.us","cc.nm.us","cc.nv.us","cc.ny.us","cc.oh.us","cc.ok.us","cc.or.us","cc.pa.us","cc.pr.us","cc.ri.us","cc.sc.us","cc.sd.us","cc.tn.us","cc.tx.us","cc.ut.us","cc.vi.us","cc.vt.us","cc.va.us","cc.wa.us","cc.wi.us","cc.wv.us","cc.wy.us","lib.ak.us","lib.al.us","lib.ar.us","lib.as.us","lib.az.us","lib.ca.us","lib.co.us","lib.ct.us","lib.dc.us","lib.fl.us","lib.ga.us","lib.gu.us","lib.hi.us","lib.ia.us","lib.id.us","lib.il.us","lib.in.us","lib.ks.us","lib.ky.us","lib.la.us","lib.ma.us","lib.md.us","lib.me.us","lib.mi.us","lib.mn.us","lib.mo.us","lib.ms.us","lib.mt.us","lib.nc.us","lib.nd.us","lib.ne.us","lib.nh.us","lib.nj.us","lib.nm.us","lib.nv.us","lib.ny.us","lib.oh.us","lib.ok.us","lib.or.us","lib.pa.us","lib.pr.us","lib.ri.us","lib.sc.us","lib.sd.us","lib.tn.us","lib.tx.us","lib.ut.us","lib.vi.us","lib.vt.us","lib.va.us","lib.wa.us","lib.wi.us","lib.wy.us","pvt.k12.ma.us","chtr.k12.ma.us","paroch.k12.ma.us","ann-arbor.mi.us","cog.mi.us","dst.mi.us","eaton.mi.us","gen.mi.us","mus.mi.us","tec.mi.us","washtenaw.mi.us","uy","com.uy","edu.uy","gub.uy","mil.uy","net.uy","org.uy","uz","co.uz","com.uz","net.uz","org.uz","va","vc","com.vc","net.vc","org.vc","gov.vc","mil.vc","edu.vc","ve","arts.ve","bib.ve","co.ve","com.ve","e12.ve","edu.ve","firm.ve","gob.ve","gov.ve","info.ve","int.ve","mil.ve","net.ve","nom.ve","org.ve","rar.ve","rec.ve","store.ve","tec.ve","web.ve","vg","vi","co.vi","com.vi","k12.vi","net.vi","org.vi","vn","com.vn","net.vn","org.vn","edu.vn","gov.vn","int.vn","ac.vn","biz.vn","info.vn","name.vn","pro.vn","health.vn","vu","com.vu","edu.vu","net.vu","org.vu","wf","ws","com.ws","net.ws","org.ws","gov.ws","edu.ws","yt","امارات","հայ","বাংলা","бг","البحرين","бел","中国","中國","الجزائر","مصر","ею","ευ","موريتانيا","გე","ελ","香港","公司.香港","教育.香港","政府.香港","個人.香港","網絡.香港","組織.香港","ಭಾರತ","ଭାରତ","ভাৰত","भारतम्","भारोत","ڀارت","ഭാരതം","भारत","بارت","بھارت","భారత్","ભારત","ਭਾਰਤ","ভারত","இந்தியா","ایران","ايران","عراق","الاردن","한국","қаз","ລາວ","ලංකා","இலங்கை","المغرب","мкд","мон","澳門","澳门","مليسيا","عمان","پاکستان","پاكستان","فلسطين","срб","пр.срб","орг.срб","обр.срб","од.срб","упр.срб","ак.срб","рф","قطر","السعودية","السعودیة","السعودیۃ","السعوديه","سودان","新加坡","சிங்கப்பூர்","سورية","سوريا","ไทย","ศึกษา.ไทย","ธุรกิจ.ไทย","รัฐบาล.ไทย","ทหาร.ไทย","เน็ต.ไทย","องค์กร.ไทย","تونس","台灣","台湾","臺灣","укр","اليمن","xxx","ye","com.ye","edu.ye","gov.ye","net.ye","mil.ye","org.ye","ac.za","agric.za","alt.za","co.za","edu.za","gov.za","grondar.za","law.za","mil.za","net.za","ngo.za","nic.za","nis.za","nom.za","org.za","school.za","tm.za","web.za","zm","ac.zm","biz.zm","co.zm","com.zm","edu.zm","gov.zm","info.zm","mil.zm","net.zm","org.zm","sch.zm","zw","ac.zw","co.zw","gov.zw","mil.zw","org.zw","aaa","aarp","abarth","abb","abbott","abbvie","abc","able","abogado","abudhabi","academy","accenture","accountant","accountants","aco","actor","adac","ads","adult","aeg","aetna","afl","africa","agakhan","agency","aig","airbus","airforce","airtel","akdn","alfaromeo","alibaba","alipay","allfinanz","allstate","ally","alsace","alstom","amazon","americanexpress","americanfamily","amex","amfam","amica","amsterdam","analytics","android","anquan","anz","aol","apartments","app","apple","aquarelle","arab","aramco","archi","army","art","arte","asda","associates","athleta","attorney","auction","audi","audible","audio","auspost","author","auto","autos","avianca","aws","axa","azure","baby","baidu","banamex","bananarepublic","band","bank","bar","barcelona","barclaycard","barclays","barefoot","bargains","baseball","basketball","bauhaus","bayern","bbc","bbt","bbva","bcg","bcn","beats","beauty","beer","bentley","berlin","best","bestbuy","bet","bharti","bible","bid","bike","bing","bingo","bio","black","blackfriday","blockbuster","blog","bloomberg","blue","bms","bmw","bnpparibas","boats","boehringer","bofa","bom","bond","boo","book","booking","bosch","bostik","boston","bot","boutique","box","bradesco","bridgestone","broadway","broker","brother","brussels","bugatti","build","builders","business","buy","buzz","bzh","cab","cafe","cal","call","calvinklein","cam","camera","camp","cancerresearch","canon","capetown","capital","capitalone","car","caravan","cards","care","career","careers","cars","casa","case","cash","casino","catering","catholic","cba","cbn","cbre","cbs","center","ceo","cern","cfa","cfd","chanel","channel","charity","chase","chat","cheap","chintai","christmas","chrome","church","cipriani","circle","cisco","citadel","citi","citic","city","cityeats","claims","cleaning","click","clinic","clinique","clothing","cloud","club","clubmed","coach","codes","coffee","college","cologne","comcast","commbank","community","company","compare","computer","comsec","condos","construction","consulting","contact","contractors","cooking","cookingchannel","cool","corsica","country","coupon","coupons","courses","cpa","credit","creditcard","creditunion","cricket","crown","crs","cruise","cruises","cuisinella","cymru","cyou","dabur","dad","dance","data","date","dating","datsun","day","dclk","dds","deal","dealer","deals","degree","delivery","dell","deloitte","delta","democrat","dental","dentist","desi","design","dev","dhl","diamonds","diet","digital","direct","directory","discount","discover","dish","diy","dnp","docs","doctor","dog","domains","dot","download","drive","dtv","dubai","dunlop","dupont","durban","dvag","dvr","earth","eat","eco","edeka","education","email","emerck","energy","engineer","engineering","enterprises","epson","equipment","ericsson","erni","esq","estate","etisalat","eurovision","eus","events","exchange","expert","exposed","express","extraspace","fage","fail","fairwinds","faith","family","fan","fans","farm","farmers","fashion","fast","fedex","feedback","ferrari","ferrero","fiat","fidelity","fido","film","final","finance","financial","fire","firestone","firmdale","fish","fishing","fit","fitness","flickr","flights","flir","florist","flowers","fly","foo","food","foodnetwork","football","ford","forex","forsale","forum","foundation","fox","free","fresenius","frl","frogans","frontdoor","frontier","ftr","fujitsu","fun","fund","furniture","futbol","fyi","gal","gallery","gallo","gallup","game","games","gap","garden","gay","gbiz","gdn","gea","gent","genting","george","ggee","gift","gifts","gives","giving","glass","gle","global","globo","gmail","gmbh","gmo","gmx","godaddy","gold","goldpoint","golf","goo","goodyear","goog","google","gop","got","grainger","graphics","gratis","green","gripe","grocery","group","guardian","gucci","guge","guide","guitars","guru","hair","hamburg","hangout","haus","hbo","hdfc","hdfcbank","health","healthcare","help","helsinki","here","hermes","hgtv","hiphop","hisamitsu","hitachi","hiv","hkt","hockey","holdings","holiday","homedepot","homegoods","homes","homesense","honda","horse","hospital","host","hosting","hot","hoteles","hotels","hotmail","house","how","hsbc","hughes","hyatt","hyundai","ibm","icbc","ice","icu","ieee","ifm","ikano","imamat","imdb","immo","immobilien","inc","industries","infiniti","ing","ink","institute","insurance","insure","international","intuit","investments","ipiranga","irish","ismaili","ist","istanbul","itau","itv","jaguar","java","jcb","jeep","jetzt","jewelry","jio","jll","jmp","jnj","joburg","jot","joy","jpmorgan","jprs","juegos","juniper","kaufen","kddi","kerryhotels","kerrylogistics","kerryproperties","kfh","kia","kids","kim","kinder","kindle","kitchen","kiwi","koeln","komatsu","kosher","kpmg","kpn","krd","kred","kuokgroup","kyoto","lacaixa","lamborghini","lamer","lancaster","lancia","land","landrover","lanxess","lasalle","lat","latino","latrobe","law","lawyer","lds","lease","leclerc","lefrak","legal","lego","lexus","lgbt","lidl","life","lifeinsurance","lifestyle","lighting","like","lilly","limited","limo","lincoln","linde","link","lipsy","live","living","llc","llp","loan","loans","locker","locus","loft","lol","london","lotte","lotto","love","lpl","lplfinancial","ltd","ltda","lundbeck","luxe","luxury","macys","madrid","maif","maison","makeup","man","management","mango","map","market","marketing","markets","marriott","marshalls","maserati","mattel","mba","mckinsey","med","media","meet","melbourne","meme","memorial","men","menu","merckmsd","miami","microsoft","mini","mint","mit","mitsubishi","mlb","mls","mma","mobile","moda","moe","moi","mom","monash","money","monster","mormon","mortgage","moscow","moto","motorcycles","mov","movie","msd","mtn","mtr","music","mutual","nab","nagoya","natura","navy","nba","nec","netbank","netflix","network","neustar","new","news","next","nextdirect","nexus","nfl","ngo","nhk","nico","nike","nikon","ninja","nissan","nissay","nokia","northwesternmutual","norton","now","nowruz","nowtv","nra","nrw","ntt","nyc","obi","observer","office","okinawa","olayan","olayangroup","oldnavy","ollo","omega","one","ong","onl","online","ooo","open","oracle","orange","organic","origins","osaka","otsuka","ott","ovh","page","panasonic","paris","pars","partners","parts","party","passagens","pay","pccw","pet","pfizer","pharmacy","phd","philips","phone","photo","photography","photos","physio","pics","pictet","pictures","pid","pin","ping","pink","pioneer","pizza","place","play","playstation","plumbing","plus","pnc","pohl","poker","politie","porn","pramerica","praxi","press","prime","prod","productions","prof","progressive","promo","properties","property","protection","pru","prudential","pub","pwc","qpon","quebec","quest","racing","radio","read","realestate","realtor","realty","recipes","red","redstone","redumbrella","rehab","reise","reisen","reit","reliance","ren","rent","rentals","repair","report","republican","rest","restaurant","review","reviews","rexroth","rich","richardli","ricoh","ril","rio","rip","rocher","rocks","rodeo","rogers","room","rsvp","rugby","ruhr","run","rwe","ryukyu","saarland","safe","safety","sakura","sale","salon","samsclub","samsung","sandvik","sandvikcoromant","sanofi","sap","sarl","sas","save","saxo","sbi","sbs","sca","scb","schaeffler","schmidt","scholarships","school","schule","schwarz","science","scot","search","seat","secure","security","seek","select","sener","services","ses","seven","sew","sex","sexy","sfr","shangrila","sharp","shaw","shell","shia","shiksha","shoes","shop","shopping","shouji","show","showtime","silk","sina","singles","site","ski","skin","sky","skype","sling","smart","smile","sncf","soccer","social","softbank","software","sohu","solar","solutions","song","sony","soy","spa","space","sport","spot","srl","stada","staples","star","statebank","statefarm","stc","stcgroup","stockholm","storage","store","stream","studio","study","style","sucks","supplies","supply","support","surf","surgery","suzuki","swatch","swiss","sydney","systems","tab","taipei","talk","taobao","target","tatamotors","tatar","tattoo","tax","taxi","tci","tdk","team","tech","technology","temasek","tennis","teva","thd","theater","theatre","tiaa","tickets","tienda","tiffany","tips","tires","tirol","tjmaxx","tjx","tkmaxx","tmall","today","tokyo","tools","top","toray","toshiba","total","tours","town","toyota","toys","trade","trading","training","travel","travelchannel","travelers","travelersinsurance","trust","trv","tube","tui","tunes","tushu","tvs","ubank","ubs","unicom","university","uno","uol","ups","vacations","vana","vanguard","vegas","ventures","verisign","versicherung","vet","viajes","video","vig","viking","villas","vin","vip","virgin","visa","vision","viva","vivo","vlaanderen","vodka","volkswagen","volvo","vote","voting","voto","voyage","vuelos","wales","walmart","walter","wang","wanggou","watch","watches","weather","weatherchannel","webcam","weber","website","wedding","weibo","weir","whoswho","wien","wiki","williamhill","win","windows","wine","winners","wme","wolterskluwer","woodside","work","works","world","wow","wtc","wtf","xbox","xerox","xfinity","xihuan","xin","कॉम","セール","佛山","慈善","集团","在线","点看","คอม","八卦","موقع","公益","公司","香格里拉","网站","移动","我爱你","москва","католик","онлайн","сайт","联通","קום","时尚","微博","淡马锡","ファッション","орг","नेट","ストア","アマゾン","삼성","商标","商店","商城","дети","ポイント","新闻","家電","كوم","中文网","中信","娱乐","谷歌","電訊盈科","购物","クラウド","通販","网店","संगठन","餐厅","网络","ком","亚马逊","诺基亚","食品","飞利浦","手机","ارامكو","العليان","اتصالات","بازار","ابوظبي","كاثوليك","همراه","닷컴","政府","شبكة","بيتك","عرب","机构","组织机构","健康","招聘","рус","大拿","みんな","グーグル","世界","書籍","网址","닷넷","コム","天主教","游戏","vermögensberater","vermögensberatung","企业","信息","嘉里大酒店","嘉里","广东","政务","xyz","yachts","yahoo","yamaxun","yandex","yodobashi","yoga","yokohama","you","youtube","yun","zappos","zara","zero","zip","zone","zuerich","cc.ua","inf.ua","ltd.ua","611.to","graphox.us","*.devcdnaccesso.com","adobeaemcloud.com","*.dev.adobeaemcloud.com","hlx.live","adobeaemcloud.net","hlx.page","hlx3.page","beep.pl","airkitapps.com","airkitapps-au.com","airkitapps.eu","aivencloud.com","barsy.ca","*.compute.estate","*.alces.network","kasserver.com","altervista.org","alwaysdata.net","cloudfront.net","*.compute.amazonaws.com","*.compute-1.amazonaws.com","*.compute.amazonaws.com.cn","us-east-1.amazonaws.com","cn-north-1.eb.amazonaws.com.cn","cn-northwest-1.eb.amazonaws.com.cn","elasticbeanstalk.com","ap-northeast-1.elasticbeanstalk.com","ap-northeast-2.elasticbeanstalk.com","ap-northeast-3.elasticbeanstalk.com","ap-south-1.elasticbeanstalk.com","ap-southeast-1.elasticbeanstalk.com","ap-southeast-2.elasticbeanstalk.com","ca-central-1.elasticbeanstalk.com","eu-central-1.elasticbeanstalk.com","eu-west-1.elasticbeanstalk.com","eu-west-2.elasticbeanstalk.com","eu-west-3.elasticbeanstalk.com","sa-east-1.elasticbeanstalk.com","us-east-1.elasticbeanstalk.com","us-east-2.elasticbeanstalk.com","us-gov-west-1.elasticbeanstalk.com","us-west-1.elasticbeanstalk.com","us-west-2.elasticbeanstalk.com","*.elb.amazonaws.com","*.elb.amazonaws.com.cn","awsglobalaccelerator.com","s3.amazonaws.com","s3-ap-northeast-1.amazonaws.com","s3-ap-northeast-2.amazonaws.com","s3-ap-south-1.amazonaws.com","s3-ap-southeast-1.amazonaws.com","s3-ap-southeast-2.amazonaws.com","s3-ca-central-1.amazonaws.com","s3-eu-central-1.amazonaws.com","s3-eu-west-1.amazonaws.com","s3-eu-west-2.amazonaws.com","s3-eu-west-3.amazonaws.com","s3-external-1.amazonaws.com","s3-fips-us-gov-west-1.amazonaws.com","s3-sa-east-1.amazonaws.com","s3-us-gov-west-1.amazonaws.com","s3-us-east-2.amazonaws.com","s3-us-west-1.amazonaws.com","s3-us-west-2.amazonaws.com","s3.ap-northeast-2.amazonaws.com","s3.ap-south-1.amazonaws.com","s3.cn-north-1.amazonaws.com.cn","s3.ca-central-1.amazonaws.com","s3.eu-central-1.amazonaws.com","s3.eu-west-2.amazonaws.com","s3.eu-west-3.amazonaws.com","s3.us-east-2.amazonaws.com","s3.dualstack.ap-northeast-1.amazonaws.com","s3.dualstack.ap-northeast-2.amazonaws.com","s3.dualstack.ap-south-1.amazonaws.com","s3.dualstack.ap-southeast-1.amazonaws.com","s3.dualstack.ap-southeast-2.amazonaws.com","s3.dualstack.ca-central-1.amazonaws.com","s3.dualstack.eu-central-1.amazonaws.com","s3.dualstack.eu-west-1.amazonaws.com","s3.dualstack.eu-west-2.amazonaws.com","s3.dualstack.eu-west-3.amazonaws.com","s3.dualstack.sa-east-1.amazonaws.com","s3.dualstack.us-east-1.amazonaws.com","s3.dualstack.us-east-2.amazonaws.com","s3-website-us-east-1.amazonaws.com","s3-website-us-west-1.amazonaws.com","s3-website-us-west-2.amazonaws.com","s3-website-ap-northeast-1.amazonaws.com","s3-website-ap-southeast-1.amazonaws.com","s3-website-ap-southeast-2.amazonaws.com","s3-website-eu-west-1.amazonaws.com","s3-website-sa-east-1.amazonaws.com","s3-website.ap-northeast-2.amazonaws.com","s3-website.ap-south-1.amazonaws.com","s3-website.ca-central-1.amazonaws.com","s3-website.eu-central-1.amazonaws.com","s3-website.eu-west-2.amazonaws.com","s3-website.eu-west-3.amazonaws.com","s3-website.us-east-2.amazonaws.com","t3l3p0rt.net","tele.amune.org","apigee.io","siiites.com","appspacehosted.com","appspaceusercontent.com","appudo.net","on-aptible.com","user.aseinet.ne.jp","gv.vc","d.gv.vc","user.party.eus","pimienta.org","poivron.org","potager.org","sweetpepper.org","myasustor.com","cdn.prod.atlassian-dev.net","translated.page","myfritz.net","onavstack.net","*.awdev.ca","*.advisor.ws","ecommerce-shop.pl","b-data.io","backplaneapp.io","balena-devices.com","rs.ba","*.banzai.cloud","app.banzaicloud.io","*.backyards.banzaicloud.io","base.ec","official.ec","buyshop.jp","fashionstore.jp","handcrafted.jp","kawaiishop.jp","supersale.jp","theshop.jp","shopselect.net","base.shop","*.beget.app","betainabox.com","bnr.la","bitbucket.io","blackbaudcdn.net","of.je","bluebite.io","boomla.net","boutir.com","boxfuse.io","square7.ch","bplaced.com","bplaced.de","square7.de","bplaced.net","square7.net","shop.brendly.rs","browsersafetymark.io","uk0.bigv.io","dh.bytemark.co.uk","vm.bytemark.co.uk","cafjs.com","mycd.eu","drr.ac","uwu.ai","carrd.co","crd.co","ju.mp","ae.org","br.com","cn.com","com.de","com.se","de.com","eu.com","gb.net","hu.net","jp.net","jpn.com","mex.com","ru.com","sa.com","se.net","uk.com","uk.net","us.com","za.bz","za.com","ar.com","hu.com","kr.com","no.com","qc.com","uy.com","africa.com","gr.com","in.net","web.in","us.org","co.com","aus.basketball","nz.basketball","radio.am","radio.fm","c.la","certmgr.org","cx.ua","discourse.group","discourse.team","cleverapps.io","clerk.app","clerkstage.app","*.lcl.dev","*.lclstage.dev","*.stg.dev","*.stgstage.dev","clickrising.net","c66.me","cloud66.ws","cloud66.zone","jdevcloud.com","wpdevcloud.com","cloudaccess.host","freesite.host","cloudaccess.net","cloudcontrolled.com","cloudcontrolapp.com","*.cloudera.site","pages.dev","trycloudflare.com","workers.dev","wnext.app","co.ca","*.otap.co","co.cz","c.cdn77.org","cdn77-ssl.net","r.cdn77.net","rsc.cdn77.org","ssl.origin.cdn77-secure.org","cloudns.asia","cloudns.biz","cloudns.club","cloudns.cc","cloudns.eu","cloudns.in","cloudns.info","cloudns.org","cloudns.pro","cloudns.pw","cloudns.us","cnpy.gdn","codeberg.page","co.nl","co.no","webhosting.be","hosting-cluster.nl","ac.ru","edu.ru","gov.ru","int.ru","mil.ru","test.ru","dyn.cosidns.de","dynamisches-dns.de","dnsupdater.de","internet-dns.de","l-o-g-i-n.de","dynamic-dns.info","feste-ip.net","knx-server.net","static-access.net","realm.cz","*.cryptonomic.net","cupcake.is","curv.dev","*.customer-oci.com","*.oci.customer-oci.com","*.ocp.customer-oci.com","*.ocs.customer-oci.com","cyon.link","cyon.site","fnwk.site","folionetwork.site","platform0.app","daplie.me","localhost.daplie.me","dattolocal.com","dattorelay.com","dattoweb.com","mydatto.com","dattolocal.net","mydatto.net","biz.dk","co.dk","firm.dk","reg.dk","store.dk","dyndns.dappnode.io","*.dapps.earth","*.bzz.dapps.earth","builtwithdark.com","demo.datadetect.com","instance.datadetect.com","edgestack.me","ddns5.com","debian.net","deno.dev","deno-staging.dev","dedyn.io","deta.app","deta.dev","*.rss.my.id","*.diher.solutions","discordsays.com","discordsez.com","jozi.biz","dnshome.de","online.th","shop.th","drayddns.com","shoparena.pl","dreamhosters.com","mydrobo.com","drud.io","drud.us","duckdns.org","bip.sh","bitbridge.net","dy.fi","tunk.org","dyndns-at-home.com","dyndns-at-work.com","dyndns-blog.com","dyndns-free.com","dyndns-home.com","dyndns-ip.com","dyndns-mail.com","dyndns-office.com","dyndns-pics.com","dyndns-remote.com","dyndns-server.com","dyndns-web.com","dyndns-wiki.com","dyndns-work.com","dyndns.biz","dyndns.info","dyndns.org","dyndns.tv","at-band-camp.net","ath.cx","barrel-of-knowledge.info","barrell-of-knowledge.info","better-than.tv","blogdns.com","blogdns.net","blogdns.org","blogsite.org","boldlygoingnowhere.org","broke-it.net","buyshouses.net","cechire.com","dnsalias.com","dnsalias.net","dnsalias.org","dnsdojo.com","dnsdojo.net","dnsdojo.org","does-it.net","doesntexist.com","doesntexist.org","dontexist.com","dontexist.net","dontexist.org","doomdns.com","doomdns.org","dvrdns.org","dyn-o-saur.com","dynalias.com","dynalias.net","dynalias.org","dynathome.net","dyndns.ws","endofinternet.net","endofinternet.org","endoftheinternet.org","est-a-la-maison.com","est-a-la-masion.com","est-le-patron.com","est-mon-blogueur.com","for-better.biz","for-more.biz","for-our.info","for-some.biz","for-the.biz","forgot.her.name","forgot.his.name","from-ak.com","from-al.com","from-ar.com","from-az.net","from-ca.com","from-co.net","from-ct.com","from-dc.com","from-de.com","from-fl.com","from-ga.com","from-hi.com","from-ia.com","from-id.com","from-il.com","from-in.com","from-ks.com","from-ky.com","from-la.net","from-ma.com","from-md.com","from-me.org","from-mi.com","from-mn.com","from-mo.com","from-ms.com","from-mt.com","from-nc.com","from-nd.com","from-ne.com","from-nh.com","from-nj.com","from-nm.com","from-nv.com","from-ny.net","from-oh.com","from-ok.com","from-or.com","from-pa.com","from-pr.com","from-ri.com","from-sc.com","from-sd.com","from-tn.com","from-tx.com","from-ut.com","from-va.com","from-vt.com","from-wa.com","from-wi.com","from-wv.com","from-wy.com","ftpaccess.cc","fuettertdasnetz.de","game-host.org","game-server.cc","getmyip.com","gets-it.net","go.dyndns.org","gotdns.com","gotdns.org","groks-the.info","groks-this.info","ham-radio-op.net","here-for-more.info","hobby-site.com","hobby-site.org","home.dyndns.org","homedns.org","homeftp.net","homeftp.org","homeip.net","homelinux.com","homelinux.net","homelinux.org","homeunix.com","homeunix.net","homeunix.org","iamallama.com","in-the-band.net","is-a-anarchist.com","is-a-blogger.com","is-a-bookkeeper.com","is-a-bruinsfan.org","is-a-bulls-fan.com","is-a-candidate.org","is-a-caterer.com","is-a-celticsfan.org","is-a-chef.com","is-a-chef.net","is-a-chef.org","is-a-conservative.com","is-a-cpa.com","is-a-cubicle-slave.com","is-a-democrat.com","is-a-designer.com","is-a-doctor.com","is-a-financialadvisor.com","is-a-geek.com","is-a-geek.net","is-a-geek.org","is-a-green.com","is-a-guru.com","is-a-hard-worker.com","is-a-hunter.com","is-a-knight.org","is-a-landscaper.com","is-a-lawyer.com","is-a-liberal.com","is-a-libertarian.com","is-a-linux-user.org","is-a-llama.com","is-a-musician.com","is-a-nascarfan.com","is-a-nurse.com","is-a-painter.com","is-a-patsfan.org","is-a-personaltrainer.com","is-a-photographer.com","is-a-player.com","is-a-republican.com","is-a-rockstar.com","is-a-socialist.com","is-a-soxfan.org","is-a-student.com","is-a-teacher.com","is-a-techie.com","is-a-therapist.com","is-an-accountant.com","is-an-actor.com","is-an-actress.com","is-an-anarchist.com","is-an-artist.com","is-an-engineer.com","is-an-entertainer.com","is-by.us","is-certified.com","is-found.org","is-gone.com","is-into-anime.com","is-into-cars.com","is-into-cartoons.com","is-into-games.com","is-leet.com","is-lost.org","is-not-certified.com","is-saved.org","is-slick.com","is-uberleet.com","is-very-bad.org","is-very-evil.org","is-very-good.org","is-very-nice.org","is-very-sweet.org","is-with-theband.com","isa-geek.com","isa-geek.net","isa-geek.org","isa-hockeynut.com","issmarterthanyou.com","isteingeek.de","istmein.de","kicks-ass.net","kicks-ass.org","knowsitall.info","land-4-sale.us","lebtimnetz.de","leitungsen.de","likes-pie.com","likescandy.com","merseine.nu","mine.nu","misconfused.org","mypets.ws","myphotos.cc","neat-url.com","office-on-the.net","on-the-web.tv","podzone.net","podzone.org","readmyblog.org","saves-the-whales.com","scrapper-site.net","scrapping.cc","selfip.biz","selfip.com","selfip.info","selfip.net","selfip.org","sells-for-less.com","sells-for-u.com","sells-it.net","sellsyourhome.org","servebbs.com","servebbs.net","servebbs.org","serveftp.net","serveftp.org","servegame.org","shacknet.nu","simple-url.com","space-to-rent.com","stuff-4-sale.org","stuff-4-sale.us","teaches-yoga.com","thruhere.net","traeumtgerade.de","webhop.biz","webhop.info","webhop.net","webhop.org","worse-than.tv","writesthisblog.com","ddnss.de","dyn.ddnss.de","dyndns.ddnss.de","dyndns1.de","dyn-ip24.de","home-webserver.de","dyn.home-webserver.de","myhome-server.de","ddnss.org","definima.net","definima.io","ondigitalocean.app","*.digitaloceanspaces.com","bci.dnstrace.pro","ddnsfree.com","ddnsgeek.com","giize.com","gleeze.com","kozow.com","loseyourip.com","ooguy.com","theworkpc.com","casacam.net","dynu.net","accesscam.org","camdvr.org","freeddns.org","mywire.org","webredirect.org","myddns.rocks","blogsite.xyz","dynv6.net","e4.cz","eero.online","eero-stage.online","elementor.cloud","elementor.cool","en-root.fr","mytuleap.com","tuleap-partners.com","encr.app","encoreapi.com","onred.one","staging.onred.one","eu.encoway.cloud","eu.org","al.eu.org","asso.eu.org","at.eu.org","au.eu.org","be.eu.org","bg.eu.org","ca.eu.org","cd.eu.org","ch.eu.org","cn.eu.org","cy.eu.org","cz.eu.org","de.eu.org","dk.eu.org","edu.eu.org","ee.eu.org","es.eu.org","fi.eu.org","fr.eu.org","gr.eu.org","hr.eu.org","hu.eu.org","ie.eu.org","il.eu.org","in.eu.org","int.eu.org","is.eu.org","it.eu.org","jp.eu.org","kr.eu.org","lt.eu.org","lu.eu.org","lv.eu.org","mc.eu.org","me.eu.org","mk.eu.org","mt.eu.org","my.eu.org","net.eu.org","ng.eu.org","nl.eu.org","no.eu.org","nz.eu.org","paris.eu.org","pl.eu.org","pt.eu.org","q-a.eu.org","ro.eu.org","ru.eu.org","se.eu.org","si.eu.org","sk.eu.org","tr.eu.org","uk.eu.org","us.eu.org","eurodir.ru","eu-1.evennode.com","eu-2.evennode.com","eu-3.evennode.com","eu-4.evennode.com","us-1.evennode.com","us-2.evennode.com","us-3.evennode.com","us-4.evennode.com","twmail.cc","twmail.net","twmail.org","mymailer.com.tw","url.tw","onfabrica.com","apps.fbsbx.com","ru.net","adygeya.ru","bashkiria.ru","bir.ru","cbg.ru","com.ru","dagestan.ru","grozny.ru","kalmykia.ru","kustanai.ru","marine.ru","mordovia.ru","msk.ru","mytis.ru","nalchik.ru","nov.ru","pyatigorsk.ru","spb.ru","vladikavkaz.ru","vladimir.ru","abkhazia.su","adygeya.su","aktyubinsk.su","arkhangelsk.su","armenia.su","ashgabad.su","azerbaijan.su","balashov.su","bashkiria.su","bryansk.su","bukhara.su","chimkent.su","dagestan.su","east-kazakhstan.su","exnet.su","georgia.su","grozny.su","ivanovo.su","jambyl.su","kalmykia.su","kaluga.su","karacol.su","karaganda.su","karelia.su","khakassia.su","krasnodar.su","kurgan.su","kustanai.su","lenug.su","mangyshlak.su","mordovia.su","msk.su","murmansk.su","nalchik.su","navoi.su","north-kazakhstan.su","nov.su","obninsk.su","penza.su","pokrovsk.su","sochi.su","spb.su","tashkent.su","termez.su","togliatti.su","troitsk.su","tselinograd.su","tula.su","tuva.su","vladikavkaz.su","vladimir.su","vologda.su","channelsdvr.net","u.channelsdvr.net","edgecompute.app","fastly-terrarium.com","fastlylb.net","map.fastlylb.net","freetls.fastly.net","map.fastly.net","a.prod.fastly.net","global.prod.fastly.net","a.ssl.fastly.net","b.ssl.fastly.net","global.ssl.fastly.net","fastvps-server.com","fastvps.host","myfast.host","fastvps.site","myfast.space","fedorainfracloud.org","fedorapeople.org","cloud.fedoraproject.org","app.os.fedoraproject.org","app.os.stg.fedoraproject.org","conn.uk","copro.uk","hosp.uk","mydobiss.com","fh-muenster.io","filegear.me","filegear-au.me","filegear-de.me","filegear-gb.me","filegear-ie.me","filegear-jp.me","filegear-sg.me","firebaseapp.com","fireweb.app","flap.id","onflashdrive.app","fldrv.com","fly.dev","edgeapp.net","shw.io","flynnhosting.net","forgeblocks.com","id.forgerock.io","framer.app","framercanvas.com","*.frusky.de","ravpage.co.il","0e.vc","freebox-os.com","freeboxos.com","fbx-os.fr","fbxos.fr","freebox-os.fr","freeboxos.fr","freedesktop.org","freemyip.com","wien.funkfeuer.at","*.futurecms.at","*.ex.futurecms.at","*.in.futurecms.at","futurehosting.at","futuremailing.at","*.ex.ortsinfo.at","*.kunden.ortsinfo.at","*.statics.cloud","independent-commission.uk","independent-inquest.uk","independent-inquiry.uk","independent-panel.uk","independent-review.uk","public-inquiry.uk","royal-commission.uk","campaign.gov.uk","service.gov.uk","api.gov.uk","gehirn.ne.jp","usercontent.jp","gentapps.com","gentlentapis.com","lab.ms","cdn-edges.net","ghost.io","gsj.bz","githubusercontent.com","githubpreview.dev","github.io","gitlab.io","gitapp.si","gitpage.si","glitch.me","nog.community","co.ro","shop.ro","lolipop.io","angry.jp","babyblue.jp","babymilk.jp","backdrop.jp","bambina.jp","bitter.jp","blush.jp","boo.jp","boy.jp","boyfriend.jp","but.jp","candypop.jp","capoo.jp","catfood.jp","cheap.jp","chicappa.jp","chillout.jp","chips.jp","chowder.jp","chu.jp","ciao.jp","cocotte.jp","coolblog.jp","cranky.jp","cutegirl.jp","daa.jp","deca.jp","deci.jp","digick.jp","egoism.jp","fakefur.jp","fem.jp","flier.jp","floppy.jp","fool.jp","frenchkiss.jp","girlfriend.jp","girly.jp","gloomy.jp","gonna.jp","greater.jp","hacca.jp","heavy.jp","her.jp","hiho.jp","hippy.jp","holy.jp","hungry.jp","icurus.jp","itigo.jp","jellybean.jp","kikirara.jp","kill.jp","kilo.jp","kuron.jp","littlestar.jp","lolipopmc.jp","lolitapunk.jp","lomo.jp","lovepop.jp","lovesick.jp","main.jp","mods.jp","mond.jp","mongolian.jp","moo.jp","namaste.jp","nikita.jp","nobushi.jp","noor.jp","oops.jp","parallel.jp","parasite.jp","pecori.jp","peewee.jp","penne.jp","pepper.jp","perma.jp","pigboat.jp","pinoko.jp","punyu.jp","pupu.jp","pussycat.jp","pya.jp","raindrop.jp","readymade.jp","sadist.jp","schoolbus.jp","secret.jp","staba.jp","stripper.jp","sub.jp","sunnyday.jp","thick.jp","tonkotsu.jp","under.jp","upper.jp","velvet.jp","verse.jp","versus.jp","vivian.jp","watson.jp","weblike.jp","whitesnow.jp","zombie.jp","heteml.net","cloudapps.digital","london.cloudapps.digital","pymnt.uk","homeoffice.gov.uk","ro.im","goip.de","run.app","a.run.app","web.app","*.0emm.com","appspot.com","*.r.appspot.com","codespot.com","googleapis.com","googlecode.com","pagespeedmobilizer.com","publishproxy.com","withgoogle.com","withyoutube.com","*.gateway.dev","cloud.goog","translate.goog","*.usercontent.goog","cloudfunctions.net","blogspot.ae","blogspot.al","blogspot.am","blogspot.ba","blogspot.be","blogspot.bg","blogspot.bj","blogspot.ca","blogspot.cf","blogspot.ch","blogspot.cl","blogspot.co.at","blogspot.co.id","blogspot.co.il","blogspot.co.ke","blogspot.co.nz","blogspot.co.uk","blogspot.co.za","blogspot.com","blogspot.com.ar","blogspot.com.au","blogspot.com.br","blogspot.com.by","blogspot.com.co","blogspot.com.cy","blogspot.com.ee","blogspot.com.eg","blogspot.com.es","blogspot.com.mt","blogspot.com.ng","blogspot.com.tr","blogspot.com.uy","blogspot.cv","blogspot.cz","blogspot.de","blogspot.dk","blogspot.fi","blogspot.fr","blogspot.gr","blogspot.hk","blogspot.hr","blogspot.hu","blogspot.ie","blogspot.in","blogspot.is","blogspot.it","blogspot.jp","blogspot.kr","blogspot.li","blogspot.lt","blogspot.lu","blogspot.md","blogspot.mk","blogspot.mr","blogspot.mx","blogspot.my","blogspot.nl","blogspot.no","blogspot.pe","blogspot.pt","blogspot.qa","blogspot.re","blogspot.ro","blogspot.rs","blogspot.ru","blogspot.se","blogspot.sg","blogspot.si","blogspot.sk","blogspot.sn","blogspot.td","blogspot.tw","blogspot.ug","blogspot.vn","goupile.fr","gov.nl","awsmppl.com","günstigbestellen.de","günstigliefern.de","fin.ci","free.hr","caa.li","ua.rs","conf.se","hs.zone","hs.run","hashbang.sh","hasura.app","hasura-app.io","pages.it.hs-heilbronn.de","hepforge.org","herokuapp.com","herokussl.com","ravendb.cloud","myravendb.com","ravendb.community","ravendb.me","development.run","ravendb.run","homesklep.pl","secaas.hk","hoplix.shop","orx.biz","biz.gl","col.ng","firm.ng","gen.ng","ltd.ng","ngo.ng","edu.scot","sch.so","hostyhosting.io","häkkinen.fi","*.moonscale.io","moonscale.net","iki.fi","ibxos.it","iliadboxos.it","impertrixcdn.com","impertrix.com","smushcdn.com","wphostedmail.com","wpmucdn.com","tempurl.host","wpmudev.host","dyn-berlin.de","in-berlin.de","in-brb.de","in-butter.de","in-dsl.de","in-dsl.net","in-dsl.org","in-vpn.de","in-vpn.net","in-vpn.org","biz.at","info.at","info.cx","ac.leg.br","al.leg.br","am.leg.br","ap.leg.br","ba.leg.br","ce.leg.br","df.leg.br","es.leg.br","go.leg.br","ma.leg.br","mg.leg.br","ms.leg.br","mt.leg.br","pa.leg.br","pb.leg.br","pe.leg.br","pi.leg.br","pr.leg.br","rj.leg.br","rn.leg.br","ro.leg.br","rr.leg.br","rs.leg.br","sc.leg.br","se.leg.br","sp.leg.br","to.leg.br","pixolino.com","na4u.ru","iopsys.se","ipifony.net","iservschule.de","mein-iserv.de","schulplattform.de","schulserver.de","test-iserv.de","iserv.dev","iobb.net","mel.cloudlets.com.au","cloud.interhostsolutions.be","users.scale.virtualcloud.com.br","mycloud.by","alp1.ae.flow.ch","appengine.flow.ch","es-1.axarnet.cloud","diadem.cloud","vip.jelastic.cloud","jele.cloud","it1.eur.aruba.jenv-aruba.cloud","it1.jenv-aruba.cloud","keliweb.cloud","cs.keliweb.cloud","oxa.cloud","tn.oxa.cloud","uk.oxa.cloud","primetel.cloud","uk.primetel.cloud","ca.reclaim.cloud","uk.reclaim.cloud","us.reclaim.cloud","ch.trendhosting.cloud","de.trendhosting.cloud","jele.club","amscompute.com","clicketcloud.com","dopaas.com","hidora.com","paas.hosted-by-previder.com","rag-cloud.hosteur.com","rag-cloud-ch.hosteur.com","jcloud.ik-server.com","jcloud-ver-jpc.ik-server.com","demo.jelastic.com","kilatiron.com","paas.massivegrid.com","jed.wafaicloud.com","lon.wafaicloud.com","ryd.wafaicloud.com","j.scaleforce.com.cy","jelastic.dogado.eu","fi.cloudplatform.fi","demo.datacenter.fi","paas.datacenter.fi","jele.host","mircloud.host","paas.beebyte.io","sekd1.beebyteapp.io","jele.io","cloud-fr1.unispace.io","jc.neen.it","cloud.jelastic.open.tim.it","jcloud.kz","upaas.kazteleport.kz","cloudjiffy.net","fra1-de.cloudjiffy.net","west1-us.cloudjiffy.net","jls-sto1.elastx.net","jls-sto2.elastx.net","jls-sto3.elastx.net","faststacks.net","fr-1.paas.massivegrid.net","lon-1.paas.massivegrid.net","lon-2.paas.massivegrid.net","ny-1.paas.massivegrid.net","ny-2.paas.massivegrid.net","sg-1.paas.massivegrid.net","jelastic.saveincloud.net","nordeste-idc.saveincloud.net","j.scaleforce.net","jelastic.tsukaeru.net","sdscloud.pl","unicloud.pl","mircloud.ru","jelastic.regruhosting.ru","enscaled.sg","jele.site","jelastic.team","orangecloud.tn","j.layershift.co.uk","phx.enscaled.us","mircloud.us","myjino.ru","*.hosting.myjino.ru","*.landing.myjino.ru","*.spectrum.myjino.ru","*.vps.myjino.ru","jotelulu.cloud","*.triton.zone","*.cns.joyent.com","js.org","kaas.gg","khplay.nl","ktistory.com","kapsi.fi","keymachine.de","kinghost.net","uni5.net","knightpoint.systems","koobin.events","oya.to","kuleuven.cloud","ezproxy.kuleuven.be","co.krd","edu.krd","krellian.net","webthings.io","git-repos.de","lcube-server.de","svn-repos.de","leadpages.co","lpages.co","lpusercontent.com","lelux.site","co.business","co.education","co.events","co.financial","co.network","co.place","co.technology","app.lmpm.com","linkyard.cloud","linkyard-cloud.ch","members.linode.com","*.nodebalancer.linode.com","*.linodeobjects.com","ip.linodeusercontent.com","we.bs","*.user.localcert.dev","localzone.xyz","loginline.app","loginline.dev","loginline.io","loginline.services","loginline.site","servers.run","lohmus.me","krasnik.pl","leczna.pl","lubartow.pl","lublin.pl","poniatowa.pl","swidnik.pl","glug.org.uk","lug.org.uk","lugs.org.uk","barsy.bg","barsy.co.uk","barsyonline.co.uk","barsycenter.com","barsyonline.com","barsy.club","barsy.de","barsy.eu","barsy.in","barsy.info","barsy.io","barsy.me","barsy.menu","barsy.mobi","barsy.net","barsy.online","barsy.org","barsy.pro","barsy.pub","barsy.ro","barsy.shop","barsy.site","barsy.support","barsy.uk","*.magentosite.cloud","mayfirst.info","mayfirst.org","hb.cldmail.ru","cn.vu","mazeplay.com","mcpe.me","mcdir.me","mcdir.ru","mcpre.ru","vps.mcdir.ru","mediatech.by","mediatech.dev","hra.health","miniserver.com","memset.net","messerli.app","*.cloud.metacentrum.cz","custom.metacentrum.cz","flt.cloud.muni.cz","usr.cloud.muni.cz","meteorapp.com","eu.meteorapp.com","co.pl","*.azurecontainer.io","azurewebsites.net","azure-mobile.net","cloudapp.net","azurestaticapps.net","1.azurestaticapps.net","centralus.azurestaticapps.net","eastasia.azurestaticapps.net","eastus2.azurestaticapps.net","westeurope.azurestaticapps.net","westus2.azurestaticapps.net","csx.cc","mintere.site","forte.id","mozilla-iot.org","bmoattachments.org","net.ru","org.ru","pp.ru","hostedpi.com","customer.mythic-beasts.com","caracal.mythic-beasts.com","fentiger.mythic-beasts.com","lynx.mythic-beasts.com","ocelot.mythic-beasts.com","oncilla.mythic-beasts.com","onza.mythic-beasts.com","sphinx.mythic-beasts.com","vs.mythic-beasts.com","x.mythic-beasts.com","yali.mythic-beasts.com","cust.retrosnub.co.uk","ui.nabu.casa","pony.club","of.fashion","in.london","of.london","from.marketing","with.marketing","for.men","repair.men","and.mom","for.mom","for.one","under.one","for.sale","that.win","from.work","to.work","cloud.nospamproxy.com","netlify.app","4u.com","ngrok.io","nh-serv.co.uk","nfshost.com","*.developer.app","noop.app","*.northflank.app","*.build.run","*.code.run","*.database.run","*.migration.run","noticeable.news","dnsking.ch","mypi.co","n4t.co","001www.com","ddnslive.com","myiphost.com","forumz.info","16-b.it","32-b.it","64-b.it","soundcast.me","tcp4.me","dnsup.net","hicam.net","now-dns.net","ownip.net","vpndns.net","dynserv.org","now-dns.org","x443.pw","now-dns.top","ntdll.top","freeddns.us","crafting.xyz","zapto.xyz","nsupdate.info","nerdpol.ovh","blogsyte.com","brasilia.me","cable-modem.org","ciscofreak.com","collegefan.org","couchpotatofries.org","damnserver.com","ddns.me","ditchyourip.com","dnsfor.me","dnsiskinky.com","dvrcam.info","dynns.com","eating-organic.net","fantasyleague.cc","geekgalaxy.com","golffan.us","health-carereform.com","homesecuritymac.com","homesecuritypc.com","hopto.me","ilovecollege.info","loginto.me","mlbfan.org","mmafan.biz","myactivedirectory.com","mydissent.net","myeffect.net","mymediapc.net","mypsx.net","mysecuritycamera.com","mysecuritycamera.net","mysecuritycamera.org","net-freaks.com","nflfan.org","nhlfan.net","no-ip.ca","no-ip.co.uk","no-ip.net","noip.us","onthewifi.com","pgafan.net","point2this.com","pointto.us","privatizehealthinsurance.net","quicksytes.com","read-books.org","securitytactics.com","serveexchange.com","servehumour.com","servep2p.com","servesarcasm.com","stufftoread.com","ufcfan.org","unusualperson.com","workisboring.com","3utilities.com","bounceme.net","ddns.net","ddnsking.com","gotdns.ch","hopto.org","myftp.biz","myftp.org","myvnc.com","no-ip.biz","no-ip.info","no-ip.org","noip.me","redirectme.net","servebeer.com","serveblog.net","servecounterstrike.com","serveftp.com","servegame.com","servehalflife.com","servehttp.com","serveirc.com","serveminecraft.net","servemp3.com","servepics.com","servequake.com","sytes.net","webhop.me","zapto.org","stage.nodeart.io","pcloud.host","nyc.mn","static.observableusercontent.com","cya.gg","omg.lol","cloudycluster.net","omniwe.site","service.one","nid.io","opensocial.site","opencraft.hosting","orsites.com","operaunite.com","tech.orange","authgear-staging.com","authgearapps.com","skygearapp.com","outsystemscloud.com","*.webpaas.ovh.net","*.hosting.ovh.net","ownprovider.com","own.pm","*.owo.codes","ox.rs","oy.lc","pgfog.com","pagefrontapp.com","pagexl.com","*.paywhirl.com","bar0.net","bar1.net","bar2.net","rdv.to","art.pl","gliwice.pl","krakow.pl","poznan.pl","wroc.pl","zakopane.pl","pantheonsite.io","gotpantheon.com","mypep.link","perspecta.cloud","lk3.ru","on-web.fr","bc.platform.sh","ent.platform.sh","eu.platform.sh","us.platform.sh","*.platformsh.site","*.tst.site","platter-app.com","platter-app.dev","platterp.us","pdns.page","plesk.page","pleskns.com","dyn53.io","onporter.run","co.bn","postman-echo.com","pstmn.io","mock.pstmn.io","httpbin.org","prequalifyme.today","xen.prgmr.com","priv.at","prvcy.page","*.dweb.link","protonet.io","chirurgiens-dentistes-en-france.fr","byen.site","pubtls.org","pythonanywhere.com","eu.pythonanywhere.com","qoto.io","qualifioapp.com","qbuser.com","cloudsite.builders","instances.spawn.cc","instantcloud.cn","ras.ru","qa2.com","qcx.io","*.sys.qcx.io","dev-myqnapcloud.com","alpha-myqnapcloud.com","myqnapcloud.com","*.quipelements.com","vapor.cloud","vaporcloud.io","rackmaze.com","rackmaze.net","g.vbrplsbx.io","*.on-k3s.io","*.on-rancher.cloud","*.on-rio.io","readthedocs.io","rhcloud.com","app.render.com","onrender.com","repl.co","id.repl.co","repl.run","resindevice.io","devices.resinstaging.io","hzc.io","wellbeingzone.eu","wellbeingzone.co.uk","adimo.co.uk","itcouldbewor.se","git-pages.rit.edu","rocky.page","биз.рус","ком.рус","крым.рус","мир.рус","мск.рус","орг.рус","самара.рус","сочи.рус","спб.рус","я.рус","*.builder.code.com","*.dev-builder.code.com","*.stg-builder.code.com","sandcats.io","logoip.de","logoip.com","fr-par-1.baremetal.scw.cloud","fr-par-2.baremetal.scw.cloud","nl-ams-1.baremetal.scw.cloud","fnc.fr-par.scw.cloud","functions.fnc.fr-par.scw.cloud","k8s.fr-par.scw.cloud","nodes.k8s.fr-par.scw.cloud","s3.fr-par.scw.cloud","s3-website.fr-par.scw.cloud","whm.fr-par.scw.cloud","priv.instances.scw.cloud","pub.instances.scw.cloud","k8s.scw.cloud","k8s.nl-ams.scw.cloud","nodes.k8s.nl-ams.scw.cloud","s3.nl-ams.scw.cloud","s3-website.nl-ams.scw.cloud","whm.nl-ams.scw.cloud","k8s.pl-waw.scw.cloud","nodes.k8s.pl-waw.scw.cloud","s3.pl-waw.scw.cloud","s3-website.pl-waw.scw.cloud","scalebook.scw.cloud","smartlabeling.scw.cloud","dedibox.fr","schokokeks.net","gov.scot","service.gov.scot","scrysec.com","firewall-gateway.com","firewall-gateway.de","my-gateway.de","my-router.de","spdns.de","spdns.eu","firewall-gateway.net","my-firewall.org","myfirewall.org","spdns.org","seidat.net","sellfy.store","senseering.net","minisite.ms","magnet.page","biz.ua","co.ua","pp.ua","shiftcrypto.dev","shiftcrypto.io","shiftedit.io","myshopblocks.com","myshopify.com","shopitsite.com","shopware.store","mo-siemens.io","1kapp.com","appchizi.com","applinzi.com","sinaapp.com","vipsinaapp.com","siteleaf.net","bounty-full.com","alpha.bounty-full.com","beta.bounty-full.com","small-web.org","vp4.me","try-snowplow.com","srht.site","stackhero-network.com","musician.io","novecore.site","static.land","dev.static.land","sites.static.land","storebase.store","vps-host.net","atl.jelastic.vps-host.net","njs.jelastic.vps-host.net","ric.jelastic.vps-host.net","playstation-cloud.com","apps.lair.io","*.stolos.io","spacekit.io","customer.speedpartner.de","myspreadshop.at","myspreadshop.com.au","myspreadshop.be","myspreadshop.ca","myspreadshop.ch","myspreadshop.com","myspreadshop.de","myspreadshop.dk","myspreadshop.es","myspreadshop.fi","myspreadshop.fr","myspreadshop.ie","myspreadshop.it","myspreadshop.net","myspreadshop.nl","myspreadshop.no","myspreadshop.pl","myspreadshop.se","myspreadshop.co.uk","api.stdlib.com","storj.farm","utwente.io","soc.srcf.net","user.srcf.net","temp-dns.com","supabase.co","supabase.in","supabase.net","su.paba.se","*.s5y.io","*.sensiosite.cloud","syncloud.it","dscloud.biz","direct.quickconnect.cn","dsmynas.com","familyds.com","diskstation.me","dscloud.me","i234.me","myds.me","synology.me","dscloud.mobi","dsmynas.net","familyds.net","dsmynas.org","familyds.org","vpnplus.to","direct.quickconnect.to","tabitorder.co.il","taifun-dns.de","beta.tailscale.net","ts.net","gda.pl","gdansk.pl","gdynia.pl","med.pl","sopot.pl","site.tb-hosting.com","edugit.io","s3.teckids.org","telebit.app","telebit.io","*.telebit.xyz","gwiddle.co.uk","*.firenet.ch","*.svc.firenet.ch","reservd.com","thingdustdata.com","cust.dev.thingdust.io","cust.disrec.thingdust.io","cust.prod.thingdust.io","cust.testing.thingdust.io","reservd.dev.thingdust.io","reservd.disrec.thingdust.io","reservd.testing.thingdust.io","tickets.io","arvo.network","azimuth.network","tlon.network","torproject.net","pages.torproject.net","bloxcms.com","townnews-staging.com","tbits.me","12hp.at","2ix.at","4lima.at","lima-city.at","12hp.ch","2ix.ch","4lima.ch","lima-city.ch","trafficplex.cloud","de.cool","12hp.de","2ix.de","4lima.de","lima-city.de","1337.pictures","clan.rip","lima-city.rocks","webspace.rocks","lima.zone","*.transurl.be","*.transurl.eu","*.transurl.nl","site.transip.me","tuxfamily.org","dd-dns.de","diskstation.eu","diskstation.org","dray-dns.de","draydns.de","dyn-vpn.de","dynvpn.de","mein-vigor.de","my-vigor.de","my-wan.de","syno-ds.de","synology-diskstation.de","synology-ds.de","typedream.app","pro.typeform.com","uber.space","*.uberspace.de","hk.com","hk.org","ltd.hk","inc.hk","name.pm","sch.tf","biz.wf","sch.wf","org.yt","virtualuser.de","virtual-user.de","upli.io","urown.cloud","dnsupdate.info","lib.de.us","2038.io","vercel.app","vercel.dev","now.sh","router.management","v-info.info","voorloper.cloud","neko.am","nyaa.am","be.ax","cat.ax","es.ax","eu.ax","gg.ax","mc.ax","us.ax","xy.ax","nl.ci","xx.gl","app.gp","blog.gt","de.gt","to.gt","be.gy","cc.hn","blog.kg","io.kg","jp.kg","tv.kg","uk.kg","us.kg","de.ls","at.md","de.md","jp.md","to.md","indie.porn","vxl.sh","ch.tc","me.tc","we.tc","nyan.to","at.vg","blog.vu","dev.vu","me.vu","v.ua","*.vultrobjects.com","wafflecell.com","*.webhare.dev","reserve-online.net","reserve-online.com","bookonline.app","hotelwithflight.com","wedeploy.io","wedeploy.me","wedeploy.sh","remotewd.com","pages.wiardweb.com","wmflabs.org","toolforge.org","wmcloud.org","panel.gg","daemon.panel.gg","messwithdns.com","woltlab-demo.com","myforum.community","community-pro.de","diskussionsbereich.de","community-pro.net","meinforum.net","affinitylottery.org.uk","raffleentry.org.uk","weeklylottery.org.uk","wpenginepowered.com","js.wpenginepowered.com","wixsite.com","editorx.io","half.host","xnbay.com","u2.xnbay.com","u2-local.xnbay.com","cistron.nl","demon.nl","xs4all.space","yandexcloud.net","storage.yandexcloud.net","website.yandexcloud.net","official.academy","yolasite.com","ybo.faith","yombo.me","homelink.one","ybo.party","ybo.review","ybo.science","ybo.trade","ynh.fr","nohost.me","noho.st","za.net","za.org","bss.design","basicserver.io","virtualserver.io","enterprisecloud.nu"]}}),PRe=CRe({"node_modules/psl/index.js"(e){var a=TRe(),n={};n.rules=_Re().map((function(e){return{rule:e,suffix:e.replace(/^(\*\.|\!)/,""),punySuffix:-1,wildcard:"*"===e.charAt(0),exception:"!"===e.charAt(0)}})),n.endsWith=function(e,a){return-1!==e.indexOf(a,e.length-a.length)},n.findRule=function(e){var t=a.toASCII(e);return n.rules.reduce((function(e,i){return-1===i.punySuffix&&(i.punySuffix=a.toASCII(i.suffix)),n.endsWith(t,"."+i.punySuffix)||t===i.punySuffix?i:e}),null)},e.errorCodes={DOMAIN_TOO_SHORT:"Domain name too short.",DOMAIN_TOO_LONG:"Domain name too long. It should be no more than 255 chars.",LABEL_STARTS_WITH_DASH:"Domain name label can not start with a dash.",LABEL_ENDS_WITH_DASH:"Domain name label can not end with a dash.",LABEL_TOO_LONG:"Domain name label should be at most 63 chars long.",LABEL_TOO_SHORT:"Domain name label should be at least 1 character long.",LABEL_INVALID_CHARS:"Domain name label can only contain alphanumeric characters or dashes."},n.validate=function(e){var n=a.toASCII(e);if(n.length<1)return"DOMAIN_TOO_SHORT";if(n.length>255)return"DOMAIN_TOO_LONG";for(var t,i=n.split("."),r=0;r<i.length;++r){if(!(t=i[r]).length)return"LABEL_TOO_SHORT";if(t.length>63)return"LABEL_TOO_LONG";if("-"===t.charAt(0))return"LABEL_STARTS_WITH_DASH";if("-"===t.charAt(t.length-1))return"LABEL_ENDS_WITH_DASH";if(!/^[a-z0-9\-]+$/.test(t))return"LABEL_INVALID_CHARS"}},e.parse=function(t){if("string"!=typeof t)throw new TypeError("Domain name must be a string.");var i=t.slice(0).toLowerCase();"."===i.charAt(i.length-1)&&(i=i.slice(0,i.length-1));var r=n.validate(i);if(r)return{input:t,error:{message:e.errorCodes[r],code:r}};var o={input:t,tld:null,sld:null,domain:null,subdomain:null,listed:!1},s=i.split(".");if("local"===s[s.length-1])return o;var l=function(){return/xn--/.test(i)?(o.domain&&(o.domain=a.toASCII(o.domain)),o.subdomain&&(o.subdomain=a.toASCII(o.subdomain)),o):o},u=n.findRule(i);if(!u)return s.length<2?o:(o.tld=s.pop(),o.sld=s.pop(),o.domain=[o.sld,o.tld].join("."),s.length&&(o.subdomain=s.pop()),l());o.listed=!0;var c=u.suffix.split("."),d=s.slice(0,s.length-c.length);return u.exception&&d.push(c.shift()),o.tld=c.join("."),d.length?(u.wildcard&&(c.unshift(d.pop()),o.tld=c.join(".")),d.length?(o.sld=d.pop(),o.domain=[o.sld,o.tld].join("."),d.length&&(o.subdomain=d.join(".")),l()):l()):l()},e.get=function(a){return a&&e.parse(a).domain||null},e.isValid=function(a){var n=e.parse(a);return Boolean(n.domain&&n.listed)}}}),jRe=CRe({"node_modules/tough-cookie/lib/pubsuffix-psl.js"(e){var a=PRe(),n=["local","example","invalid","localhost","test"],t=["localhost","invalid"];e.getPublicSuffix=function(e,i={}){const r=e.split("."),o=r[r.length-1],s=!!i.ignoreError;if(!!i.allowSpecialUseDomain&&n.includes(o)){if(r.length>1){return`${r[r.length-2]}.${o}`}if(t.includes(o))return`${o}`}if(!s&&n.includes(o))throw new Error(`Cookie has domain set to the public suffix "${o}" which is a special use domain. To allow this, configure your CookieJar with {allowSpecialUseDomain:true, rejectPublicSuffixes: false}.`);return a.get(e)}}}),LRe=CRe({"node_modules/tough-cookie/lib/store.js"(e){e.Store=class{constructor(){this.synchronous=!1}findCookie(e,a,n,t){throw new Error("findCookie is not implemented")}findCookies(e,a,n,t){throw new Error("findCookies is not implemented")}putCookie(e,a){throw new Error("putCookie is not implemented")}updateCookie(e,a,n){throw new Error("updateCookie is not implemented")}removeCookie(e,a,n,t){throw new Error("removeCookie is not implemented")}removeCookies(e,a,n){throw new Error("removeCookies is not implemented")}removeAllCookies(e){throw new Error("removeAllCookies is not implemented")}getAllCookies(e){throw new Error("getAllCookies is not implemented (therefore jar cannot be serialized)")}}}}),BRe=CRe({"node_modules/universalify/index.js"(e){e.fromCallback=function(e){return Object.defineProperty((function(){if("function"!=typeof arguments[arguments.length-1])return new Promise(((a,n)=>{arguments[arguments.length]=(e,t)=>{if(e)return n(e);a(t)},arguments.length++,e.apply(this,arguments)}));e.apply(this,arguments)}),"name",{value:e.name})},e.fromPromise=function(e){return Object.defineProperty((function(){const a=arguments[arguments.length-1];if("function"!=typeof a)return e.apply(this,arguments);delete arguments[arguments.length-1],arguments.length--,e.apply(this,arguments).then((e=>a(null,e)),a)}),"name",{value:e.name})}}}),RRe=CRe({"node_modules/tough-cookie/lib/permuteDomain.js"(e){var a=jRe();e.permuteDomain=function(e,n){const t=a.getPublicSuffix(e,{allowSpecialUseDomain:n});if(!t)return null;if(t==e)return[e];"."==e.slice(-1)&&(e=e.slice(0,-1));const i=e.slice(0,-(t.length+1)).split(".").reverse();let r=t;const o=[r];for(;i.length;)r=`${i.shift()}.${r}`,o.push(r);return o}}}),zRe=CRe({"node_modules/tough-cookie/lib/pathMatch.js"(e){e.pathMatch=function(e,a){if(a===e)return!0;if(0===e.indexOf(a)){if("/"===a.substr(-1))return!0;if("/"===e.substr(a.length,1))return!0}return!1}}}),DRe=CRe({"node_modules/tough-cookie/lib/utilHelper.js"(e){function a(){try{return MRe("util")}catch(yGe){return null}}function n(){return Symbol.for("nodejs.util.inspect.custom")}e.getUtilInspect=function(e,n={}){const t=(n.requireUtil||a)();return function(a,n,i){return t?t.inspect(a,n,i):e(a)}},e.getCustomInspectSymbol=function(e={}){return(e.lookupCustomInspectSymbol||n)()||function(e){const n=(e.requireUtil||a)();return n?n.inspect.custom:null}(e)}}}),ORe=CRe({"node_modules/tough-cookie/lib/memstore.js"(e){var{fromCallback:a}=BRe(),n=LRe().Store,t=RRe().permuteDomain,i=zRe().pathMatch,{getCustomInspectSymbol:r,getUtilInspect:o}=DRe(),s=class extends n{constructor(){super(),this.synchronous=!0,this.idx=Object.create(null);const e=r();e&&(this[e]=this.inspect)}inspect(){return`{ idx: ${{inspect:o(l)}.inspect(this.idx,!1,2)} }`}findCookie(e,a,n,t){return t(null,this.idx[e]&&this.idx[e][a]?this.idx[e][a][n]||null:void 0)}findCookies(e,a,n,r){const o=[];if("function"==typeof n&&(r=n,n=!0),!e)return r(null,[]);let s;s=a?function(e){Object.keys(e).forEach((n=>{if(i(a,n)){const a=e[n];for(const e in a)o.push(a[e])}}))}:function(e){for(const a in e){const n=e[a];for(const e in n)o.push(n[e])}};const l=t(e,n)||[e],u=this.idx;l.forEach((e=>{const a=u[e];a&&s(a)})),r(null,o)}putCookie(e,a){this.idx[e.domain]||(this.idx[e.domain]=Object.create(null)),this.idx[e.domain][e.path]||(this.idx[e.domain][e.path]=Object.create(null)),this.idx[e.domain][e.path][e.key]=e,a(null)}updateCookie(e,a,n){this.putCookie(a,n)}removeCookie(e,a,n,t){this.idx[e]&&this.idx[e][a]&&this.idx[e][a][n]&&delete this.idx[e][a][n],t(null)}removeCookies(e,a,n){return this.idx[e]&&(a?delete this.idx[e][a]:delete this.idx[e]),n(null)}removeAllCookies(e){return this.idx=Object.create(null),e(null)}getAllCookies(e){const a=[],n=this.idx;Object.keys(n).forEach((e=>{Object.keys(n[e]).forEach((t=>{Object.keys(n[e][t]).forEach((i=>{null!==i&&a.push(n[e][t][i])}))}))})),a.sort(((e,a)=>(e.creationIndex||0)-(a.creationIndex||0))),e(null,a)}};function l(e){const a=Object.keys(e);if(0===a.length)return"[Object: null prototype] {}";let n="[Object: null prototype] {\n";return Object.keys(e).forEach(((t,i)=>{n+=function(e,a){const n=" ";let t=`${n}'${e}': [Object: null prototype] {\n`;return Object.keys(a).forEach(((e,n,i)=>{t+=function(e,a){const n=" ";let t=`${n}'${e}': [Object: null prototype] {\n`;return Object.keys(a).forEach(((e,n,i)=>{t+=` ${e}: ${a[e].inspect()}`,n<i.length-1&&(t+=","),t+="\n"})),t+=`${n}}`,t}(e,a[e]),n<i.length-1&&(t+=","),t+="\n"})),t+=`${n}}`,t}(t,e[t]),i<a.length-1&&(n+=","),n+="\n"})),n+="}",n}["findCookie","findCookies","putCookie","updateCookie","removeCookie","removeCookies","removeAllCookies","getAllCookies"].forEach((e=>{s.prototype[e]=a(s.prototype[e])})),e.MemoryCookieStore=s,e.inspectFallback=l}}),KRe=CRe({"node_modules/tough-cookie/lib/validators.js"(e){var a=Object.prototype.toString;function n(e){return"function"==typeof e}function t(e){return i(e)&&""!==e}function i(e){return"string"==typeof e||e instanceof String}function r(e){return"[object Object]"===a.call(e)}function o(e,a){try{return e instanceof a}catch(n){return!1}}var s=class extends Error{constructor(...e){super(...e)}};e.ParameterError=s,e.isFunction=n,e.isNonEmptyString=t,e.isDate=function(e){return o(e,Date)&&function(e){return"number"==typeof e&&e%1==0}(e.getTime())},e.isEmptyString=function(e){return""===e||e instanceof String&&""===e.toString()},e.isString=i,e.isObject=r,e.isUrlStringOrObject=function(e){return t(e)||r(e)&&"hostname"in e&&"pathname"in e&&"protocol"in e||o(e,URL)},e.validate=function(e,a,t){if(n(a)||(t=a,a=null),r(t)||(t={Error:"Failed Check"}),!e){if(!a)throw new s(t);a(new s(t))}}}}),HRe=CRe({"node_modules/tough-cookie/lib/version.js"(e,a){a.exports="4.1.4"}}),IRe=CRe({"node_modules/tough-cookie/lib/cookie.js"(e){var a=TRe(),n=ERe(),t=jRe(),i=LRe().Store,r=ORe().MemoryCookieStore,o=zRe().pathMatch,s=KRe(),l=HRe(),{fromCallback:u}=BRe(),{getCustomInspectSymbol:c}=DRe(),d=/^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/,m=/[\x00-\x1F]/,h=["\n","\r","\0"],p=/[\x20-\x3A\x3C-\x7E]+/,g=/[\x09\x20-\x2F\x3B-\x40\x5B-\x60\x7B-\x7E]/,f={jan:0,feb:1,mar:2,apr:3,may:4,jun:5,jul:6,aug:7,sep:8,oct:9,nov:10,dec:11},v=2147483647e3,y='Invalid sameSiteContext option for getCookies(); expected one of "strict", "lax", or "none"';function k(e){s.validate(s.isNonEmptyString(e),e);const a=String(e).toLowerCase();return"none"===a||"lax"===a||"strict"===a?a:null}var b=Object.freeze({SILENT:"silent",STRICT:"strict",DISABLED:"unsafe-disabled"}),S=/(?:^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$)|(?:^(?:(?:[a-f\d]{1,4}:){7}(?:[a-f\d]{1,4}|:)|(?:[a-f\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|:[a-f\d]{1,4}|:)|(?:[a-f\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,2}|:)|(?:[a-f\d]{1,4}:){4}(?:(?::[a-f\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,3}|:)|(?:[a-f\d]{1,4}:){3}(?:(?::[a-f\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,4}|:)|(?:[a-f\d]{1,4}:){2}(?:(?::[a-f\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,5}|:)|(?:[a-f\d]{1,4}:){1}(?:(?::[a-f\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,6}|:)|(?::(?:(?::[a-f\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,7}|:)))$)/,A="\n\\[?(?:\n(?:[a-fA-F\\d]{1,4}:){7}(?:[a-fA-F\\d]{1,4}|:)|\n(?:[a-fA-F\\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|:[a-fA-F\\d]{1,4}|:)|\n(?:[a-fA-F\\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,2}|:)|\n(?:[a-fA-F\\d]{1,4}:){4}(?:(?::[a-fA-F\\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,3}|:)|\n(?:[a-fA-F\\d]{1,4}:){3}(?:(?::[a-fA-F\\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,4}|:)|\n(?:[a-fA-F\\d]{1,4}:){2}(?:(?::[a-fA-F\\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,5}|:)|\n(?:[a-fA-F\\d]{1,4}:){1}(?:(?::[a-fA-F\\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,6}|:)|\n(?::(?:(?::[a-fA-F\\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,7}|:))\n)(?:%[0-9a-zA-Z]{1,})?\\]?\n".replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),w=new RegExp(`^${A}$`);function M(e,a,n,t){let i=0;for(;i<e.length;){const a=e.charCodeAt(i);if(a<=47||a>=58)break;i++}return i<a||i>n?null:t||i==e.length?parseInt(e.substr(0,i),10):null}function C(e){const a=e.split(":"),n=[0,0,0];if(3!==a.length)return null;for(let t=0;t<3;t++){const e=M(a[t],1,2,2==t);if(null===e)return null;n[t]=e}return n}function T(e){e=String(e).substr(0,3).toLowerCase();const a=f[e];return a>=0?a:null}function x(e){if(!e)return;const a=e.split(g);if(!a)return;let n=null,t=null,i=null,r=null,o=null,s=null;for(let l=0;l<a.length;l++){const e=a[l].trim();if(!e.length)continue;let u;null===i&&(u=C(e),u)?(n=u[0],t=u[1],i=u[2]):null!==r||(u=M(e,1,2,!0),null===u)?null!==o||(u=T(e),null===u)?null===s&&(u=M(e,2,4,!0),null!==u&&(s=u,s>=70&&s<=99?s+=1900:s>=0&&s<=69&&(s+=2e3))):o=u:r=u}return null===r||null===o||null===s||null===i||r<1||r>31||s<1601||n>23||t>59||i>59?void 0:new Date(Date.UTC(s,o,r,n,t,i))}function N(e){return s.validate(s.isDate(e),e),e.toUTCString()}function E(e){return null==e?null:(e=e.trim().replace(/^\./,""),w.test(e)&&(e=e.replace("[","").replace("]","")),a&&/[^\u0001-\u007f]/.test(e)&&(e=a.toASCII(e)),e.toLowerCase())}function _(e,a,n){if(null==e||null==a)return null;if(!1!==n&&(e=E(e),a=E(a)),e==a)return!0;const t=e.lastIndexOf(a);return!(t<=0)&&(e.length===a.length+t&&("."===e.substr(t-1,1)&&!S.test(e)))}function P(e){if(!e||"/"!==e.substr(0,1))return"/";if("/"===e)return e;const a=e.lastIndexOf("/");return 0===a?"/":e.slice(0,a)}function j(e,a){e=function(e){if(s.isEmptyString(e))return e;for(let a=0;a<h.length;a++){const n=e.indexOf(h[a]);-1!==n&&(e=e.substr(0,n))}return e}(e),s.validate(s.isString(e),e);let n,t,i=e.indexOf("=");if(a)0===i&&(i=(e=e.substr(1)).indexOf("="));else if(i<=0)return;if(i<=0?(n="",t=e.trim()):(n=e.substr(0,i).trim(),t=e.substr(i+1).trim()),m.test(n)||m.test(t))return;const r=new K;return r.key=n,r.value=t,r}function L(e,a){if(a&&"object"==typeof a||(a={}),s.isEmptyString(e)||!s.isString(e))return null;const n=(e=e.trim()).indexOf(";"),t=j(-1===n?e:e.substr(0,n),!!a.loose);if(!t)return;if(-1===n)return t;const i=e.slice(n+1).trim();if(0===i.length)return t;const r=i.split(";");for(;r.length;){const e=r.shift().trim();if(0===e.length)continue;const a=e.indexOf("=");let n,i;switch(-1===a?(n=e,i=null):(n=e.substr(0,a),i=e.substr(a+1)),n=n.trim().toLowerCase(),i&&(i=i.trim()),n){case"expires":if(i){const e=x(i);e&&(t.expires=e)}break;case"max-age":if(i&&/^-?[0-9]+$/.test(i)){const e=parseInt(i,10);t.setMaxAge(e)}break;case"domain":if(i){const e=i.trim().replace(/^\./,"");e&&(t.domain=e.toLowerCase())}break;case"path":t.path=i&&"/"===i[0]?i:null;break;case"secure":t.secure=!0;break;case"httponly":t.httpOnly=!0;break;case"samesite":switch(i?i.toLowerCase():""){case"strict":t.sameSite="strict";break;case"lax":t.sameSite="lax";break;case"none":t.sameSite="none";break;default:t.sameSite=void 0}break;default:t.extensions=t.extensions||[],t.extensions.push(e)}}return t}function B(e){let a;try{a=JSON.parse(e)}catch(yGe){return yGe}return a}function R(e){if(!e||s.isEmptyString(e))return null;let a;if("string"==typeof e){if(a=B(e),a instanceof Error)return null}else a=e;const n=new K;for(let t=0;t<K.serializableProperties.length;t++){const e=K.serializableProperties[t];void 0!==a[e]&&a[e]!==O[e]&&(n[e]="expires"===e||"creation"===e||"lastAccessed"===e?null===a[e]?null:"Infinity"==a[e]?"Infinity":new Date(a[e]):a[e])}return n}function z(e,a){s.validate(s.isObject(e),e),s.validate(s.isObject(a),a);let n=0;if(n=(a.path?a.path.length:0)-(e.path?e.path.length:0),0!==n)return n;return n=(e.creation?e.creation.getTime():v)-(a.creation?a.creation.getTime():v),0!==n||(n=e.creationIndex-a.creationIndex),n}function D(e){if(e instanceof Object)return e;try{e=decodeURI(e)}catch(kGe){}return n(e)}var O={key:"",value:"",expires:"Infinity",maxAge:null,domain:null,path:null,secure:!1,httpOnly:!1,extensions:null,hostOnly:null,pathIsDefault:null,creation:null,lastAccessed:null,sameSite:void 0},K=class e{constructor(a={}){const n=c();n&&(this[n]=this.inspect),Object.assign(this,O,a),this.creation=this.creation||new Date,Object.defineProperty(this,"creationIndex",{configurable:!1,enumerable:!1,writable:!0,value:++e.cookiesCreated})}inspect(){const e=Date.now(),a=null!=this.hostOnly?this.hostOnly:"?",n=this.creation?e-this.creation.getTime()+"ms":"?",t=this.lastAccessed?e-this.lastAccessed.getTime()+"ms":"?";return`Cookie="${this.toString()}; hostOnly=${a}; aAge=${t}; cAge=${n}"`}toJSON(){const a={};for(const n of e.serializableProperties)this[n]!==O[n]&&("expires"===n||"creation"===n||"lastAccessed"===n?a[n]=null===this[n]?null:"Infinity"==this[n]?"Infinity":this[n].toISOString():"maxAge"===n?null!==this[n]&&(a[n]=this[n]==1/0||this[n]==-1/0?this[n].toString():this[n]):this[n]!==O[n]&&(a[n]=this[n]));return a}clone(){return R(this.toJSON())}validate(){if(!d.test(this.value))return!1;if(!(this.expires==1/0||this.expires instanceof Date||x(this.expires)))return!1;if(null!=this.maxAge&&this.maxAge<=0)return!1;if(null!=this.path&&!p.test(this.path))return!1;const e=this.cdomain();if(e){if(e.match(/\.$/))return!1;if(null==t.getPublicSuffix(e))return!1}return!0}setExpires(e){this.expires=e instanceof Date?e:x(e)||"Infinity"}setMaxAge(e){this.maxAge=e===1/0||e===-1/0?e.toString():e}cookieString(){let e=this.value;return null==e&&(e=""),""===this.key?e:`${this.key}=${e}`}toString(){let a=this.cookieString();if(this.expires!=1/0&&(this.expires instanceof Date?a+=`; Expires=${N(this.expires)}`:a+=`; Expires=${this.expires}`),null!=this.maxAge&&this.maxAge!=1/0&&(a+=`; Max-Age=${this.maxAge}`),this.domain&&!this.hostOnly&&(a+=`; Domain=${this.domain}`),this.path&&(a+=`; Path=${this.path}`),this.secure&&(a+="; Secure"),this.httpOnly&&(a+="; HttpOnly"),this.sameSite&&"none"!==this.sameSite){const n=e.sameSiteCanonical[this.sameSite.toLowerCase()];a+=`; SameSite=${n||this.sameSite}`}return this.extensions&&this.extensions.forEach((e=>{a+=`; ${e}`})),a}TTL(e){if(null!=this.maxAge)return this.maxAge<=0?0:1e3*this.maxAge;let a=this.expires;return a!=1/0?(a instanceof Date||(a=x(a)||1/0),a==1/0?1/0:a.getTime()-(e||Date.now())):1/0}expiryTime(e){if(null!=this.maxAge){const a=this.maxAge<=0?-1/0:1e3*this.maxAge;return(e||this.creation||new Date).getTime()+a}return this.expires==1/0?1/0:this.expires.getTime()}expiryDate(e){const a=this.expiryTime(e);return a==1/0?new Date(v):a==-1/0?new Date(0):new Date(a)}isPersistent(){return null!=this.maxAge||this.expires!=1/0}canonicalizedDomain(){return null==this.domain?null:E(this.domain)}cdomain(){return this.canonicalizedDomain()}};function H(e){if(null!=e){const a=e.toLowerCase();switch(a){case b.STRICT:case b.SILENT:case b.DISABLED:return a}}return b.SILENT}K.cookiesCreated=0,K.parse=L,K.fromJSON=R,K.serializableProperties=Object.keys(O),K.sameSiteLevel={strict:3,lax:2,none:1},K.sameSiteCanonical={strict:"Strict",lax:"Lax"};var I=class e{constructor(e,a={rejectPublicSuffixes:!0}){"boolean"==typeof a&&(a={rejectPublicSuffixes:a}),s.validate(s.isObject(a),a),this.rejectPublicSuffixes=a.rejectPublicSuffixes,this.enableLooseMode=!!a.looseMode,this.allowSpecialUseDomain="boolean"!=typeof a.allowSpecialUseDomain||a.allowSpecialUseDomain,this.store=e||new r,this.prefixSecurity=H(a.prefixSecurity),this._cloneSync=G("clone"),this._importCookiesSync=G("_importCookies"),this.getCookiesSync=G("getCookies"),this.getCookieStringSync=G("getCookieString"),this.getSetCookieStringsSync=G("getSetCookieStrings"),this.removeAllCookiesSync=G("removeAllCookies"),this.setCookieSync=G("setCookie"),this.serializeSync=G("serialize")}setCookie(e,a,n,i){let r;if(s.validate(s.isUrlStringOrObject(a),i,n),s.isFunction(a))return(i=a)(new Error("No URL was specified"));const o=D(a);if(s.isFunction(n)&&(i=n,n={}),s.validate(s.isFunction(i),i),!s.isNonEmptyString(e)&&!s.isObject(e)&&e instanceof String&&0==e.length)return i(null);const l=E(o.hostname),u=n.loose||this.enableLooseMode;let c=null;if(n.sameSiteContext&&(c=k(n.sameSiteContext),!c))return i(new Error(y));if("string"==typeof e||e instanceof String){if(!(e=K.parse(e,{loose:u})))return r=new Error("Cookie failed to parse"),i(n.ignoreError?null:r)}else if(!(e instanceof K))return r=new Error("First argument to setCookie must be a Cookie object or string"),i(n.ignoreError?null:r);const d=n.now||new Date;if(this.rejectPublicSuffixes&&e.domain){if(null==t.getPublicSuffix(e.cdomain(),{allowSpecialUseDomain:this.allowSpecialUseDomain,ignoreError:n.ignoreError})&&!w.test(e.domain))return r=new Error("Cookie has domain set to a public suffix"),i(n.ignoreError?null:r)}if(e.domain){if(!_(l,e.cdomain(),!1))return r=new Error(`Cookie not in this host's domain. Cookie:${e.cdomain()} Request:${l}`),i(n.ignoreError?null:r);null==e.hostOnly&&(e.hostOnly=!1)}else e.hostOnly=!0,e.domain=l;if(e.path&&"/"===e.path[0]||(e.path=P(o.pathname),e.pathIsDefault=!0),!1===n.http&&e.httpOnly)return r=new Error("Cookie is HttpOnly and this isn't an HTTP API"),i(n.ignoreError?null:r);if("none"!==e.sameSite&&void 0!==e.sameSite&&c&&"none"===c)return r=new Error("Cookie is SameSite but this is a cross-origin request"),i(n.ignoreError?null:r);const m=this.prefixSecurity===b.SILENT;if(!(this.prefixSecurity===b.DISABLED)){let a,t=!1;if(!function(e){return s.validate(s.isObject(e),e),!e.key.startsWith("__Secure-")||e.secure}(e)?(t=!0,a="Cookie has __Secure prefix but Secure attribute is not set"):function(e){return s.validate(s.isObject(e)),!e.key.startsWith("__Host-")||e.secure&&e.hostOnly&&null!=e.path&&"/"===e.path}(e)||(t=!0,a="Cookie has __Host prefix but either Secure or HostOnly attribute is not set or Path is not '/'"),t)return i(n.ignoreError||m?null:new Error(a))}const h=this.store;h.updateCookie||(h.updateCookie=function(e,a,n){this.putCookie(a,n)}),h.findCookie(e.domain,e.path,e.key,(function(a,t){if(a)return i(a);const r=function(a){if(a)return i(a);i(null,e)};if(t){if(!1===n.http&&t.httpOnly)return a=new Error("old Cookie is HttpOnly and this isn't an HTTP API"),i(n.ignoreError?null:a);e.creation=t.creation,e.creationIndex=t.creationIndex,e.lastAccessed=d,h.updateCookie(t,e,r)}else e.creation=e.lastAccessed=d,h.putCookie(e,r)}))}getCookies(e,a,n){s.validate(s.isUrlStringOrObject(e),n,e);const t=D(e);s.isFunction(a)&&(n=a,a={}),s.validate(s.isObject(a),n,a),s.validate(s.isFunction(n),n);const i=E(t.hostname),r=t.pathname||"/";let l=a.secure;null!=l||!t.protocol||"https:"!=t.protocol&&"wss:"!=t.protocol||(l=!0);let u=0;if(a.sameSiteContext){const e=k(a.sameSiteContext);if(u=K.sameSiteLevel[e],!u)return n(new Error(y))}let c=a.http;null==c&&(c=!0);const d=a.now||Date.now(),m=!1!==a.expire,h=!!a.allPaths,p=this.store;function g(e){if(e.hostOnly){if(e.domain!=i)return!1}else if(!_(i,e.domain,!1))return!1;if(!h&&!o(r,e.path))return!1;if(e.secure&&!l)return!1;if(e.httpOnly&&!c)return!1;if(u){if(K.sameSiteLevel[e.sameSite||"none"]>u)return!1}return!(m&&e.expiryTime()<=d)||(p.removeCookie(e.domain,e.path,e.key,(()=>{})),!1)}p.findCookies(i,h?null:r,this.allowSpecialUseDomain,((e,t)=>{if(e)return n(e);t=t.filter(g),!1!==a.sort&&(t=t.sort(z));const i=new Date;for(const a of t)a.lastAccessed=i;n(null,t)}))}getCookieString(...e){const a=e.pop();s.validate(s.isFunction(a),a);e.push((function(e,n){e?a(e):a(null,n.sort(z).map((e=>e.cookieString())).join("; "))})),this.getCookies.apply(this,e)}getSetCookieStrings(...e){const a=e.pop();s.validate(s.isFunction(a),a);e.push((function(e,n){e?a(e):a(null,n.map((e=>e.toString())))})),this.getCookies.apply(this,e)}serialize(e){s.validate(s.isFunction(e),e);let a=this.store.constructor.name;s.isObject(a)&&(a=null);const n={version:`tough-cookie@${l}`,storeType:a,rejectPublicSuffixes:!!this.rejectPublicSuffixes,enableLooseMode:!!this.enableLooseMode,allowSpecialUseDomain:!!this.allowSpecialUseDomain,prefixSecurity:H(this.prefixSecurity),cookies:[]};if(!this.store.getAllCookies||"function"!=typeof this.store.getAllCookies)return e(new Error("store does not support getAllCookies and cannot be serialized"));this.store.getAllCookies(((a,t)=>a?e(a):(n.cookies=t.map((e=>(delete(e=e instanceof K?e.toJSON():e).creationIndex,e))),e(null,n))))}toJSON(){return this.serializeSync()}_importCookies(e,a){let n=e.cookies;if(!n||!Array.isArray(n))return a(new Error("serialized jar has no cookies array"));n=n.slice();const t=e=>{if(e)return a(e);if(!n.length)return a(e,this);let i;try{i=R(n.shift())}catch(yGe){return a(yGe)}if(null===i)return t(null);this.store.putCookie(i,t)};t()}clone(a,n){1===arguments.length&&(n=a,a=null),this.serialize(((t,i)=>{if(t)return n(t);e.deserialize(i,a,n)}))}cloneSync(e){if(0===arguments.length)return this._cloneSync();if(!e.synchronous)throw new Error("CookieJar clone destination store is not synchronous; use async API instead.");return this._cloneSync(e)}removeAllCookies(e){s.validate(s.isFunction(e),e);const a=this.store;if("function"==typeof a.removeAllCookies&&a.removeAllCookies!==i.prototype.removeAllCookies)return a.removeAllCookies(e);a.getAllCookies(((n,t)=>{if(n)return e(n);if(0===t.length)return e(null);let i=0;const r=[];function o(a){if(a&&r.push(a),i++,i===t.length)return e(r.length?r[0]:null)}t.forEach((e=>{a.removeCookie(e.domain,e.path,e.key,o)}))}))}static deserialize(a,n,t){let i;if(3!==arguments.length&&(t=n,n=null),s.validate(s.isFunction(t),t),"string"==typeof a){if(i=B(a),i instanceof Error)return t(i)}else i=a;const r=new e(n,{rejectPublicSuffixes:i.rejectPublicSuffixes,looseMode:i.enableLooseMode,allowSpecialUseDomain:i.allowSpecialUseDomain,prefixSecurity:i.prefixSecurity});r._importCookies(i,(e=>{if(e)return t(e);t(null,r)}))}static deserializeSync(a,n){const t="string"==typeof a?JSON.parse(a):a,i=new e(n,{rejectPublicSuffixes:t.rejectPublicSuffixes,looseMode:t.enableLooseMode});if(!i.store.synchronous)throw new Error("CookieJar store is not synchronous; use async API instead.");return i._importCookiesSync(t),i}};function G(e){return function(...a){if(!this.store.synchronous)throw new Error("CookieJar store is not synchronous; use async API instead.");let n,t;if(this[e](...a,((e,a)=>{n=e,t=a})),n)throw n;return t}}I.fromJSON=I.deserializeSync,["_importCookies","clone","getCookies","getCookieString","getSetCookieStrings","removeAllCookies","serialize","setCookie"].forEach((e=>{I.prototype[e]=u(I.prototype[e])})),I.deserialize=u(I.deserialize),e.version=l,e.CookieJar=I,e.Cookie=K,e.Store=i,e.MemoryCookieStore=r,e.parseDate=x,e.formatDate=N,e.parse=L,e.fromJSON=R,e.domainMatch=_,e.defaultPath=P,e.pathMatch=o,e.getPublicSuffix=t.getPublicSuffix,e.cookieCompare=z,e.permuteDomain=RRe().permuteDomain,e.permutePath=function(e){if(s.validate(s.isString(e)),"/"===e)return["/"];const a=[e];for(;e.length>1;){const n=e.lastIndexOf("/");if(0===n)break;e=e.substr(0,n),a.push(e)}return a.push("/"),a},e.canonicalDomain=E,e.PrefixSecurityEnum=b,e.ParameterError=s.ParameterError}}),GRe=(fRe=IRe(),vRe=null!=fRe?yRe(ARe(fRe)):{},((e,a,n,t)=>{if(a&&"object"==typeof a||"function"==typeof a)for(let i of SRe(a))wRe.call(e,i)||i===n||kRe(e,i,{get:()=>a[i],enumerable:!(t=bRe(a,i))||t.enumerable});return e})(kRe(vRe,"default",{value:fRe,enumerable:!0}),fRe)).default;
|
|
92
|
+
*/Iwe.exports="production"===process.env.NODE_ENV?function(){if(Hwe)return Gwe;Hwe=1;var e="function"==typeof Object.is?Object.is:function(e,a){return e===a&&(0!==e||1/e==1/a)||e!=e&&a!=a},n=a.useState,t=a.useEffect,i=a.useLayoutEffect,r=a.useDebugValue;function o(a){var n=a.getSnapshot;a=a.value;try{var t=n();return!e(a,t)}catch(i){return!0}}var s="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,a){return a()}:function(e,a){var s=a(),l=n({inst:{value:s,getSnapshot:a}}),u=l[0].inst,c=l[1];return i((function(){u.value=s,u.getSnapshot=a,o(u)&&c({inst:u})}),[e,s,a]),t((function(){return o(u)&&c({inst:u}),e((function(){o(u)&&c({inst:u})}))}),[e]),r(s),s};return Gwe.useSyncExternalStore=void 0!==a.useSyncExternalStore?a.useSyncExternalStore:s,Gwe}():(Fwe||(Fwe=1,"production"!==process.env.NODE_ENV&&function(){function e(e){var a=e.getSnapshot;e=e.value;try{var n=a();return!t(e,n)}catch(i){return!0}}"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var n=a,t="function"==typeof Object.is?Object.is:function(e,a){return e===a&&(0!==e||1/e==1/a)||e!=e&&a!=a},i=n.useState,r=n.useEffect,o=n.useLayoutEffect,s=n.useDebugValue,l=!1,u=!1,c="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,a){return a()}:function(a,c){l||void 0===n.startTransition||(l=!0);var d=c();if(!u){var m=c();t(d,m)||(u=!0)}var h=(m=i({inst:{value:d,getSnapshot:c}}))[0].inst,p=m[1];return o((function(){h.value=d,h.getSnapshot=c,e(h)&&p({inst:h})}),[a,d,c]),r((function(){return e(h)&&p({inst:h}),a((function(){e(h)&&p({inst:h})}))}),[a]),s(d),d};Vwe.useSyncExternalStore=void 0!==n.useSyncExternalStore?n.useSyncExternalStore:c,"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())}()),Vwe);var Jwe=Iwe.exports,Uwe='[cmdk-group=""]',Wwe='[cmdk-group-items=""]',qwe='[cmdk-item=""]',Zwe=`${qwe}:not([aria-disabled="true"])`,$we="cmdk-item-select",Ywe="data-value",Qwe=(e,a,n)=>Kwe(e,a,n),Xwe=r.createContext(void 0),eMe=()=>r.useContext(Xwe),aMe=r.createContext(void 0),nMe=()=>r.useContext(aMe),tMe=r.createContext(void 0),iMe=r.forwardRef(((e,a)=>{let n=yMe((()=>{var a,n;return{search:"",value:null!=(n=null!=(a=e.value)?a:e.defaultValue)?n:"",filtered:{count:0,items:new Map,groups:new Set}}})),t=yMe((()=>new Set)),i=yMe((()=>new Map)),o=yMe((()=>new Map)),s=yMe((()=>new Set)),l=fMe(e),{label:u,children:c,value:d,onValueChange:m,filter:h,shouldFilter:p,loop:g,disablePointerSelection:f=!1,vimBindings:v=!0,...y}=e,k=m5(),b=m5(),S=m5(),A=r.useRef(null),w=AMe();vMe((()=>{if(void 0!==d){let e=d.trim();n.current.value=e,M.emit()}}),[d]),vMe((()=>{w(6,_)}),[]);let M=r.useMemo((()=>({subscribe:e=>(s.current.add(e),()=>s.current.delete(e)),snapshot:()=>n.current,setState:(e,a,t)=>{var i,r,o;if(!Object.is(n.current[e],a)){if(n.current[e]=a,"search"===e)E(),x(),w(1,N);else if("value"===e&&(t||w(5,_),void 0!==(null==(i=l.current)?void 0:i.value))){return void(null==(o=(r=l.current).onValueChange)||o.call(r,null!=a?a:""))}M.emit()}},emit:()=>{s.current.forEach((e=>e()))}})),[]),C=r.useMemo((()=>({value:(e,a,t)=>{var i;a!==(null==(i=o.current.get(e))?void 0:i.value)&&(o.current.set(e,{value:a,keywords:t}),n.current.filtered.items.set(e,T(a,t)),w(2,(()=>{x(),M.emit()})))},item:(e,a)=>(t.current.add(e),a&&(i.current.has(a)?i.current.get(a).add(e):i.current.set(a,new Set([e]))),w(3,(()=>{E(),x(),n.current.value||N(),M.emit()})),()=>{o.current.delete(e),t.current.delete(e),n.current.filtered.items.delete(e);let a=P();w(4,(()=>{E(),(null==a?void 0:a.getAttribute("id"))===e&&N(),M.emit()}))}),group:e=>(i.current.has(e)||i.current.set(e,new Set),()=>{o.current.delete(e),i.current.delete(e)}),filter:()=>l.current.shouldFilter,label:u||e["aria-label"],getDisablePointerSelection:()=>l.current.disablePointerSelection,listId:k,inputId:S,labelId:b,listInnerRef:A})),[]);function T(e,a){var t,i;let r=null!=(i=null==(t=l.current)?void 0:t.filter)?i:Qwe;return e?r(e,n.current.search,a):0}function x(){if(!n.current.search||!1===l.current.shouldFilter)return;let e=n.current.filtered.items,a=[];n.current.filtered.groups.forEach((n=>{let t=i.current.get(n),r=0;t.forEach((a=>{let n=e.get(a);r=Math.max(n,r)})),a.push([n,r])}));let t=A.current;j().sort(((a,n)=>{var t,i;let r=a.getAttribute("id"),o=n.getAttribute("id");return(null!=(t=e.get(o))?t:0)-(null!=(i=e.get(r))?i:0)})).forEach((e=>{let a=e.closest(Wwe);a?a.appendChild(e.parentElement===a?e:e.closest(`${Wwe} > *`)):t.appendChild(e.parentElement===t?e:e.closest(`${Wwe} > *`))})),a.sort(((e,a)=>a[1]-e[1])).forEach((e=>{var a;let n=null==(a=A.current)?void 0:a.querySelector(`${Uwe}[${Ywe}="${encodeURIComponent(e[0])}"]`);null==n||n.parentElement.appendChild(n)}))}function N(){let e=j().find((e=>"true"!==e.getAttribute("aria-disabled"))),a=null==e?void 0:e.getAttribute(Ywe);M.setState("value",a||void 0)}function E(){var e,a,r,s;if(!n.current.search||!1===l.current.shouldFilter)return void(n.current.filtered.count=t.current.size);n.current.filtered.groups=new Set;let u=0;for(let i of t.current){let t=T(null!=(a=null==(e=o.current.get(i))?void 0:e.value)?a:"",null!=(s=null==(r=o.current.get(i))?void 0:r.keywords)?s:[]);n.current.filtered.items.set(i,t),t>0&&u++}for(let[t,o]of i.current)for(let e of o)if(n.current.filtered.items.get(e)>0){n.current.filtered.groups.add(t);break}n.current.filtered.count=u}function _(){var e,a,n;let t=P();t&&((null==(e=t.parentElement)?void 0:e.firstChild)===t&&(null==(n=null==(a=t.closest(Uwe))?void 0:a.querySelector('[cmdk-group-heading=""]'))||n.scrollIntoView({block:"nearest"})),t.scrollIntoView({block:"nearest"}))}function P(){var e;return null==(e=A.current)?void 0:e.querySelector(`${qwe}[aria-selected="true"]`)}function j(){var e;return Array.from((null==(e=A.current)?void 0:e.querySelectorAll(Zwe))||[])}function L(e){let a=j()[e];a&&M.setState("value",a.getAttribute(Ywe))}function B(e){var a;let n=P(),t=j(),i=t.findIndex((e=>e===n)),r=t[i+e];null!=(a=l.current)&&a.loop&&(r=i+e<0?t[t.length-1]:i+e===t.length?t[0]:t[i+e]),r&&M.setState("value",r.getAttribute(Ywe))}function R(e){let a,n=P(),t=null==n?void 0:n.closest(Uwe);for(;t&&!a;)t=e>0?pMe(t,Uwe):gMe(t,Uwe),a=null==t?void 0:t.querySelector(Zwe);a?M.setState("value",a.getAttribute(Ywe)):B(e)}let z=()=>L(j().length-1),D=e=>{e.preventDefault(),e.metaKey?z():e.altKey?R(1):B(1)},O=e=>{e.preventDefault(),e.metaKey?L(0):e.altKey?R(-1):B(-1)};return r.createElement(z4.div,{ref:a,tabIndex:-1,...y,"cmdk-root":"",onKeyDown:e=>{var a;if(null==(a=y.onKeyDown)||a.call(y,e),!e.defaultPrevented)switch(e.key){case"n":case"j":v&&e.ctrlKey&&D(e);break;case"ArrowDown":D(e);break;case"p":case"k":v&&e.ctrlKey&&O(e);break;case"ArrowUp":O(e);break;case"Home":e.preventDefault(),L(0);break;case"End":e.preventDefault(),z();break;case"Enter":if(!e.nativeEvent.isComposing&&229!==e.keyCode){e.preventDefault();let a=P();if(a){let e=new Event($we);a.dispatchEvent(e)}}}}},r.createElement("label",{"cmdk-label":"",htmlFor:C.inputId,id:C.labelId,style:MMe},u),wMe(e,(e=>r.createElement(aMe.Provider,{value:M},r.createElement(Xwe.Provider,{value:C},e)))))})),rMe=r.forwardRef(((e,a)=>{var n,t;let i=m5(),o=r.useRef(null),s=r.useContext(tMe),l=eMe(),u=fMe(e),c=null!=(t=null==(n=u.current)?void 0:n.forceMount)?t:null==s?void 0:s.forceMount;vMe((()=>{if(!c)return l.item(i,null==s?void 0:s.id)}),[c]);let d=SMe(i,o,[e.value,e.children,o],e.keywords),m=nMe(),h=bMe((e=>e.value&&e.value===d.current)),p=bMe((e=>!(!c&&!1!==l.filter())||(!e.search||e.filtered.items.get(i)>0)));function g(){var e,a;f(),null==(a=(e=u.current).onSelect)||a.call(e,d.current)}function f(){m.setState("value",d.current,!0)}if(r.useEffect((()=>{let a=o.current;if(a&&!e.disabled)return a.addEventListener($we,g),()=>a.removeEventListener($we,g)}),[p,e.onSelect,e.disabled]),!p)return null;let{disabled:v,value:y,onSelect:k,forceMount:b,keywords:S,...A}=e;return r.createElement(z4.div,{ref:kMe([o,a]),...A,id:i,"cmdk-item":"",role:"option","aria-disabled":!!v,"aria-selected":!!h,"data-disabled":!!v,"data-selected":!!h,onPointerMove:v||l.getDisablePointerSelection()?void 0:f,onClick:v?void 0:g},e.children)})),oMe=r.forwardRef(((e,a)=>{let{heading:n,children:t,forceMount:i,...o}=e,s=m5(),l=r.useRef(null),u=r.useRef(null),c=m5(),d=eMe(),m=bMe((e=>!(!i&&!1!==d.filter())||(!e.search||e.filtered.groups.has(s))));vMe((()=>d.group(s)),[]),SMe(s,l,[e.value,e.heading,u]);let h=r.useMemo((()=>({id:s,forceMount:i})),[i]);return r.createElement(z4.div,{ref:kMe([l,a]),...o,"cmdk-group":"",role:"presentation",hidden:!m||void 0},n&&r.createElement("div",{ref:u,"cmdk-group-heading":"","aria-hidden":!0,id:c},n),wMe(e,(e=>r.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?c:void 0},r.createElement(tMe.Provider,{value:h},e)))))})),sMe=r.forwardRef(((e,a)=>{let{alwaysRender:n,...t}=e,i=r.useRef(null),o=bMe((e=>!e.search));return n||o?r.createElement(z4.div,{ref:kMe([i,a]),...t,"cmdk-separator":"",role:"separator"}):null})),lMe=r.forwardRef(((e,a)=>{let{onValueChange:n,...t}=e,i=null!=e.value,o=nMe(),s=bMe((e=>e.search)),l=bMe((e=>e.value)),u=eMe(),c=r.useMemo((()=>{var e;let a=null==(e=u.listInnerRef.current)?void 0:e.querySelector(`${qwe}[${Ywe}="${encodeURIComponent(l)}"]`);return null==a?void 0:a.getAttribute("id")}),[]);return r.useEffect((()=>{null!=e.value&&o.setState("search",e.value)}),[e.value]),r.createElement(z4.input,{ref:a,...t,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":u.listId,"aria-labelledby":u.labelId,"aria-activedescendant":c,id:u.inputId,type:"text",value:i?e.value:s,onChange:e=>{i||o.setState("search",e.target.value),null==n||n(e.target.value)}})})),uMe=r.forwardRef(((e,a)=>{let{children:n,label:t="Suggestions",...i}=e,o=r.useRef(null),s=r.useRef(null),l=eMe();return r.useEffect((()=>{if(s.current&&o.current){let e,a=s.current,n=o.current,t=new ResizeObserver((()=>{e=requestAnimationFrame((()=>{n.style.setProperty("--cmdk-list-height",a.offsetHeight.toFixed(1)+"px")}))}));return t.observe(a),()=>{cancelAnimationFrame(e),t.unobserve(a)}}}),[]),r.createElement(z4.div,{ref:kMe([o,a]),...i,"cmdk-list":"",role:"listbox","aria-label":t,id:l.listId},wMe(e,(e=>r.createElement("div",{ref:kMe([s,l.listInnerRef]),"cmdk-list-sizer":""},e))))})),cMe=r.forwardRef(((e,a)=>{let{open:n,onOpenChange:t,overlayClassName:i,contentClassName:o,container:s,...l}=e;return r.createElement($W,{open:n,onOpenChange:t},r.createElement(QW,{container:s},r.createElement(XW,{"cmdk-overlay":"",className:i}),r.createElement(eq,{"aria-label":e.label,"cmdk-dialog":"",className:o},r.createElement(iMe,{ref:a,...l}))))})),dMe=r.forwardRef(((e,a)=>bMe((e=>0===e.filtered.count))?r.createElement(z4.div,{ref:a,...e,"cmdk-empty":"",role:"presentation"}):null)),mMe=r.forwardRef(((e,a)=>{let{progress:n,children:t,label:i="Loading...",...o}=e;return r.createElement(z4.div,{ref:a,...o,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":i},wMe(e,(e=>r.createElement("div",{"aria-hidden":!0},e))))})),hMe=Object.assign(iMe,{List:uMe,Item:rMe,Input:lMe,Group:oMe,Separator:sMe,Dialog:cMe,Empty:dMe,Loading:mMe});function pMe(e,a){let n=e.nextElementSibling;for(;n;){if(n.matches(a))return n;n=n.nextElementSibling}}function gMe(e,a){let n=e.previousElementSibling;for(;n;){if(n.matches(a))return n;n=n.previousElementSibling}}function fMe(e){let a=r.useRef(e);return vMe((()=>{a.current=e})),a}var vMe="undefined"==typeof window?r.useEffect:r.useLayoutEffect;function yMe(e){let a=r.useRef();return void 0===a.current&&(a.current=e()),a}function kMe(e){return a=>{e.forEach((e=>{"function"==typeof e?e(a):null!=e&&(e.current=a)}))}}function bMe(e){let a=nMe(),n=()=>e(a.snapshot());return Jwe.useSyncExternalStore(a.subscribe,n,n)}function SMe(e,a,n,t=[]){let i=r.useRef(),o=eMe();return vMe((()=>{var r;let s=(()=>{var e;for(let a of n){if("string"==typeof a)return a.trim();if("object"==typeof a&&"current"in a)return a.current?null==(e=a.current.textContent)?void 0:e.trim():i.current}})(),l=t.map((e=>e.trim()));o.value(e,s,l),null==(r=a.current)||r.setAttribute(Ywe,s),i.current=s})),i}var AMe=()=>{let[e,a]=r.useState(),n=yMe((()=>new Map));return vMe((()=>{n.current.forEach((e=>e())),n.current=new Map}),[e]),(e,t)=>{n.current.set(e,t),a({})}};function wMe({asChild:e,children:a},n){return e&&r.isValidElement(a)?r.cloneElement(function(e){let a=e.type;return"function"==typeof a?a(e.props):"render"in a?a.render(e.props):e}(a),{ref:a.ref},n(a.props.children)):n(a)}var MMe={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const CMe=r.forwardRef((({className:e,...a},t)=>n.jsx(hMe,{ref:t,className:oz("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",e),...a})));CMe.displayName=hMe.displayName;const TMe=r.forwardRef((({className:e,searchIcon:a,...t},i)=>n.jsxs("div",{className:"flex items-center border-b px-3",children:[a||n.jsx(UB,{className:"mr-2 h-4 w-4 shrink-0 opacity-50 "}),n.jsx(hMe.Input,{ref:i,className:oz("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",e),...t})]})));TMe.displayName=hMe.Input.displayName;const xMe=r.forwardRef((({className:e,...a},t)=>n.jsx(hMe.List,{ref:t,className:oz("max-h-[300px] overflow-y-auto overflow-x-hidden",e),...a})));xMe.displayName=hMe.List.displayName;const NMe=r.forwardRef(((e,a)=>n.jsx(hMe.Empty,{ref:a,className:"py-6 text-center text-sm",...e})));NMe.displayName=hMe.Empty.displayName;const EMe=r.forwardRef((({className:e,...a},t)=>n.jsx(hMe.Group,{ref:t,className:oz("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",e),...a})));EMe.displayName=hMe.Group.displayName;r.forwardRef((({className:e,...a},t)=>n.jsx(hMe.Separator,{ref:t,className:oz("-mx-1 h-px bg-border",e),...a}))).displayName=hMe.Separator.displayName;const _Me=r.forwardRef((({className:e,...a},t)=>n.jsx(hMe.Item,{ref:t,className:oz("relative flex cursor-pointer gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",e),...a})));function PMe(e,a){if("function"==typeof e)return e(a);null!=e&&(e.current=a)}function jMe(...e){return a=>{let n=!1;const t=e.map((e=>{const t=PMe(e,a);return n||"function"!=typeof t||(n=!0),t}));if(n)return()=>{for(let a=0;a<t.length;a++){const n=t[a];"function"==typeof n?n():PMe(e[a],null)}}}}function LMe(...e){return r.useCallback(jMe(...e),e)}function BMe(e){const a=RMe(e),t=r.forwardRef(((e,t)=>{const{children:i,...o}=e,s=r.Children.toArray(i),l=s.find(DMe);if(l){const e=l.props.children,i=s.map((a=>a===l?r.Children.count(e)>1?r.Children.only(null):r.isValidElement(e)?e.props.children:null:a));return n.jsx(a,{...o,ref:t,children:r.isValidElement(e)?r.cloneElement(e,void 0,i):null})}return n.jsx(a,{...o,ref:t,children:i})}));return t.displayName=`${e}.Slot`,t}function RMe(e){const a=r.forwardRef(((e,a)=>{const{children:n,...t}=e;if(r.isValidElement(n)){const e=function(e){let a=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=a&&"isReactWarning"in a&&a.isReactWarning;if(n)return e.ref;if(a=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=a&&"isReactWarning"in a&&a.isReactWarning,n)return e.props.ref;return e.props.ref||e.ref}(n),i=function(e,a){const n={...a};for(const t in a){const i=e[t],r=a[t];/^on[A-Z]/.test(t)?i&&r?n[t]=(...e)=>{const a=r(...e);return i(...e),a}:i&&(n[t]=i):"style"===t?n[t]={...i,...r}:"className"===t&&(n[t]=[i,r].filter(Boolean).join(" "))}return{...e,...n}}(t,n.props);return n.type!==r.Fragment&&(i.ref=a?jMe(a,e):e),r.cloneElement(n,i)}return r.Children.count(n)>1?r.Children.only(null):null}));return a.displayName=`${e}.SlotClone`,a}_Me.displayName=hMe.Item.displayName;var zMe=Symbol("radix.slottable");function DMe(e){return r.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===zMe}var OMe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce(((e,a)=>{const t=BMe(`Primitive.${a}`),i=r.forwardRef(((e,i)=>{const{asChild:r,...o}=e,s=r?t:a;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),n.jsx(s,{...o,ref:i})}));return i.displayName=`Primitive.${a}`,{...e,[a]:i}}),{}),KMe=globalThis?.document?r.useLayoutEffect:()=>{};var HMe=e=>{const{present:a,children:n}=e,t=function(e){const[a,n]=r.useState(),t=r.useRef(null),i=r.useRef(e),o=r.useRef("none"),s=e?"mounted":"unmounted",[l,u]=function(e,a){return r.useReducer(((e,n)=>a[e][n]??e),e)}(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return r.useEffect((()=>{const e=IMe(t.current);o.current="mounted"===l?e:"none"}),[l]),KMe((()=>{const a=t.current,n=i.current;if(n!==e){const t=o.current,r=IMe(a);if(e)u("MOUNT");else if("none"===r||"none"===a?.display)u("UNMOUNT");else{u(n&&t!==r?"ANIMATION_OUT":"UNMOUNT")}i.current=e}}),[e,u]),KMe((()=>{if(a){let e;const n=a.ownerDocument.defaultView??window,r=r=>{const o=IMe(t.current).includes(r.animationName);if(r.target===a&&o&&(u("ANIMATION_END"),!i.current)){const t=a.style.animationFillMode;a.style.animationFillMode="forwards",e=n.setTimeout((()=>{"forwards"===a.style.animationFillMode&&(a.style.animationFillMode=t)}))}},s=e=>{e.target===a&&(o.current=IMe(t.current))};return a.addEventListener("animationstart",s),a.addEventListener("animationcancel",r),a.addEventListener("animationend",r),()=>{n.clearTimeout(e),a.removeEventListener("animationstart",s),a.removeEventListener("animationcancel",r),a.removeEventListener("animationend",r)}}u("ANIMATION_END")}),[a,u]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:r.useCallback((e=>{t.current=e?getComputedStyle(e):null,n(e)}),[])}}(a),i="function"==typeof n?n({present:t.isPresent}):r.Children.only(n),o=LMe(t.ref,function(e){let a=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=a&&"isReactWarning"in a&&a.isReactWarning;if(n)return e.ref;if(a=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=a&&"isReactWarning"in a&&a.isReactWarning,n)return e.props.ref;return e.props.ref||e.ref}(i));return"function"==typeof n||t.isPresent?r.cloneElement(i,{ref:o}):null};function IMe(e){return e?.animationName||"none"}function GMe(...e){const a=e[0];if(1===e.length)return a;const n=()=>{const n=e.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(e){const t=n.reduce(((a,{useScope:n,scopeName:t})=>({...a,...n(e)[`__scope${t}`]})),{});return r.useMemo((()=>({[`__scope${a.scopeName}`]:t})),[t])}};return n.scopeName=a.scopeName,n}function FMe(e){const a=r.useRef(e);return r.useEffect((()=>{a.current=e})),r.useMemo((()=>(...e)=>a.current?.(...e)),[])}HMe.displayName="Presence";var VMe=r.createContext(void 0);function JMe(e,a,{checkForDefaultPrevented:n=!0}={}){return function(t){if(e?.(t),!1===n||!t.defaultPrevented)return a?.(t)}}var UMe="ScrollArea",[WMe,qMe]=function(e,a=[]){let t=[];const i=()=>{const a=t.map((e=>r.createContext(e)));return function(n){const t=n?.[e]||a;return r.useMemo((()=>({[`__scope${e}`]:{...n,[e]:t}})),[n,t])}};return i.scopeName=e,[function(a,i){const o=r.createContext(i),s=t.length;t=[...t,i];const l=a=>{const{scope:t,children:i,...l}=a,u=t?.[e]?.[s]||o,c=r.useMemo((()=>l),Object.values(l));return n.jsx(u.Provider,{value:c,children:i})};return l.displayName=a+"Provider",[l,function(n,t){const l=r.useContext(t?.[e]?.[s]||o);if(l)return l;if(void 0!==i)return i;throw new Error(`\`${n}\` must be used within \`${a}\``)}]},GMe(i,...a)]}(UMe),[ZMe,$Me]=WMe(UMe),YMe=r.forwardRef(((e,a)=>{const{__scopeScrollArea:t,type:i="hover",dir:o,scrollHideDelay:s=600,...l}=e,[u,c]=r.useState(null),[d,m]=r.useState(null),[h,p]=r.useState(null),[g,f]=r.useState(null),[v,y]=r.useState(null),[k,b]=r.useState(0),[S,A]=r.useState(0),[w,M]=r.useState(!1),[C,T]=r.useState(!1),x=LMe(a,(e=>c(e))),N=function(e){const a=r.useContext(VMe);return e||a||"ltr"}(o);return n.jsx(ZMe,{scope:t,type:i,dir:N,scrollHideDelay:s,scrollArea:u,viewport:d,onViewportChange:m,content:h,onContentChange:p,scrollbarX:g,onScrollbarXChange:f,scrollbarXEnabled:w,onScrollbarXEnabledChange:M,scrollbarY:v,onScrollbarYChange:y,scrollbarYEnabled:C,onScrollbarYEnabledChange:T,onCornerWidthChange:b,onCornerHeightChange:A,children:n.jsx(OMe.div,{dir:N,...l,ref:x,style:{position:"relative","--radix-scroll-area-corner-width":k+"px","--radix-scroll-area-corner-height":S+"px",...e.style}})})}));YMe.displayName=UMe;var QMe="ScrollAreaViewport",XMe=r.forwardRef(((e,a)=>{const{__scopeScrollArea:t,children:i,nonce:o,...s}=e,l=$Me(QMe,t),u=LMe(a,r.useRef(null),l.onViewportChange);return n.jsxs(n.Fragment,{children:[n.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:o}),n.jsx(OMe.div,{"data-radix-scroll-area-viewport":"",...s,ref:u,style:{overflowX:l.scrollbarXEnabled?"scroll":"hidden",overflowY:l.scrollbarYEnabled?"scroll":"hidden",...e.style},children:n.jsx("div",{ref:l.onContentChange,style:{minWidth:"100%",display:"table"},children:i})})]})}));XMe.displayName=QMe;var eCe="ScrollAreaScrollbar",aCe=r.forwardRef(((e,a)=>{const{forceMount:t,...i}=e,o=$Me(eCe,e.__scopeScrollArea),{onScrollbarXEnabledChange:s,onScrollbarYEnabledChange:l}=o,u="horizontal"===e.orientation;return r.useEffect((()=>(u?s(!0):l(!0),()=>{u?s(!1):l(!1)})),[u,s,l]),"hover"===o.type?n.jsx(nCe,{...i,ref:a,forceMount:t}):"scroll"===o.type?n.jsx(tCe,{...i,ref:a,forceMount:t}):"auto"===o.type?n.jsx(iCe,{...i,ref:a,forceMount:t}):"always"===o.type?n.jsx(rCe,{...i,ref:a}):null}));aCe.displayName=eCe;var nCe=r.forwardRef(((e,a)=>{const{forceMount:t,...i}=e,o=$Me(eCe,e.__scopeScrollArea),[s,l]=r.useState(!1);return r.useEffect((()=>{const e=o.scrollArea;let a=0;if(e){const n=()=>{window.clearTimeout(a),l(!0)},t=()=>{a=window.setTimeout((()=>l(!1)),o.scrollHideDelay)};return e.addEventListener("pointerenter",n),e.addEventListener("pointerleave",t),()=>{window.clearTimeout(a),e.removeEventListener("pointerenter",n),e.removeEventListener("pointerleave",t)}}}),[o.scrollArea,o.scrollHideDelay]),n.jsx(HMe,{present:t||s,children:n.jsx(iCe,{"data-state":s?"visible":"hidden",...i,ref:a})})})),tCe=r.forwardRef(((e,a)=>{const{forceMount:t,...i}=e,o=$Me(eCe,e.__scopeScrollArea),s="horizontal"===e.orientation,l=MCe((()=>c("SCROLL_END")),100),[u,c]=(d={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},r.useReducer(((e,a)=>d[e][a]??e),"hidden"));var d;return r.useEffect((()=>{if("idle"===u){const e=window.setTimeout((()=>c("HIDE")),o.scrollHideDelay);return()=>window.clearTimeout(e)}}),[u,o.scrollHideDelay,c]),r.useEffect((()=>{const e=o.viewport,a=s?"scrollLeft":"scrollTop";if(e){let n=e[a];const t=()=>{const t=e[a];n!==t&&(c("SCROLL"),l()),n=t};return e.addEventListener("scroll",t),()=>e.removeEventListener("scroll",t)}}),[o.viewport,s,c,l]),n.jsx(HMe,{present:t||"hidden"!==u,children:n.jsx(rCe,{"data-state":"hidden"===u?"hidden":"visible",...i,ref:a,onPointerEnter:JMe(e.onPointerEnter,(()=>c("POINTER_ENTER"))),onPointerLeave:JMe(e.onPointerLeave,(()=>c("POINTER_LEAVE")))})})})),iCe=r.forwardRef(((e,a)=>{const t=$Me(eCe,e.__scopeScrollArea),{forceMount:i,...o}=e,[s,l]=r.useState(!1),u="horizontal"===e.orientation,c=MCe((()=>{if(t.viewport){l(u?t.viewport.offsetWidth<t.viewport.scrollWidth:t.viewport.offsetHeight<t.viewport.scrollHeight)}}),10);return CCe(t.viewport,c),CCe(t.content,c),n.jsx(HMe,{present:i||s,children:n.jsx(rCe,{"data-state":s?"visible":"hidden",...o,ref:a})})})),rCe=r.forwardRef(((e,a)=>{const{orientation:t="vertical",...i}=e,o=$Me(eCe,e.__scopeScrollArea),s=r.useRef(null),l=r.useRef(0),[u,c]=r.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),d=yCe(u.viewport,u.content),m={...i,sizes:u,onSizesChange:c,hasThumb:Boolean(d>0&&d<1),onThumbChange:e=>s.current=e,onThumbPointerUp:()=>l.current=0,onThumbPointerDown:e=>l.current=e};function h(e,a){return function(e,a,n,t="ltr"){const i=kCe(n),r=i/2,o=a||r,s=n.scrollbar.paddingStart+o,l=n.scrollbar.size-n.scrollbar.paddingEnd-(i-o),u=n.content-n.viewport,c="ltr"===t?[0,u]:[-1*u,0];return SCe([s,l],c)(e)}(e,l.current,u,a)}return"horizontal"===t?n.jsx(oCe,{...m,ref:a,onThumbPositionChange:()=>{if(o.viewport&&s.current){const e=bCe(o.viewport.scrollLeft,u,o.dir);s.current.style.transform=`translate3d(${e}px, 0, 0)`}},onWheelScroll:e=>{o.viewport&&(o.viewport.scrollLeft=e)},onDragScroll:e=>{o.viewport&&(o.viewport.scrollLeft=h(e,o.dir))}}):"vertical"===t?n.jsx(sCe,{...m,ref:a,onThumbPositionChange:()=>{if(o.viewport&&s.current){const e=bCe(o.viewport.scrollTop,u);s.current.style.transform=`translate3d(0, ${e}px, 0)`}},onWheelScroll:e=>{o.viewport&&(o.viewport.scrollTop=e)},onDragScroll:e=>{o.viewport&&(o.viewport.scrollTop=h(e))}}):null})),oCe=r.forwardRef(((e,a)=>{const{sizes:t,onSizesChange:i,...o}=e,s=$Me(eCe,e.__scopeScrollArea),[l,u]=r.useState(),c=r.useRef(null),d=LMe(a,c,s.onScrollbarXChange);return r.useEffect((()=>{c.current&&u(getComputedStyle(c.current))}),[c]),n.jsx(cCe,{"data-orientation":"horizontal",...o,ref:d,sizes:t,style:{bottom:0,left:"rtl"===s.dir?"var(--radix-scroll-area-corner-width)":0,right:"ltr"===s.dir?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":kCe(t)+"px",...e.style},onThumbPointerDown:a=>e.onThumbPointerDown(a.x),onDragScroll:a=>e.onDragScroll(a.x),onWheelScroll:(a,n)=>{if(s.viewport){const t=s.viewport.scrollLeft+a.deltaX;e.onWheelScroll(t),ACe(t,n)&&a.preventDefault()}},onResize:()=>{c.current&&s.viewport&&l&&i({content:s.viewport.scrollWidth,viewport:s.viewport.offsetWidth,scrollbar:{size:c.current.clientWidth,paddingStart:vCe(l.paddingLeft),paddingEnd:vCe(l.paddingRight)}})}})})),sCe=r.forwardRef(((e,a)=>{const{sizes:t,onSizesChange:i,...o}=e,s=$Me(eCe,e.__scopeScrollArea),[l,u]=r.useState(),c=r.useRef(null),d=LMe(a,c,s.onScrollbarYChange);return r.useEffect((()=>{c.current&&u(getComputedStyle(c.current))}),[c]),n.jsx(cCe,{"data-orientation":"vertical",...o,ref:d,sizes:t,style:{top:0,right:"ltr"===s.dir?0:void 0,left:"rtl"===s.dir?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":kCe(t)+"px",...e.style},onThumbPointerDown:a=>e.onThumbPointerDown(a.y),onDragScroll:a=>e.onDragScroll(a.y),onWheelScroll:(a,n)=>{if(s.viewport){const t=s.viewport.scrollTop+a.deltaY;e.onWheelScroll(t),ACe(t,n)&&a.preventDefault()}},onResize:()=>{c.current&&s.viewport&&l&&i({content:s.viewport.scrollHeight,viewport:s.viewport.offsetHeight,scrollbar:{size:c.current.clientHeight,paddingStart:vCe(l.paddingTop),paddingEnd:vCe(l.paddingBottom)}})}})})),[lCe,uCe]=WMe(eCe),cCe=r.forwardRef(((e,a)=>{const{__scopeScrollArea:t,sizes:i,hasThumb:o,onThumbChange:s,onThumbPointerUp:l,onThumbPointerDown:u,onThumbPositionChange:c,onDragScroll:d,onWheelScroll:m,onResize:h,...p}=e,g=$Me(eCe,t),[f,v]=r.useState(null),y=LMe(a,(e=>v(e))),k=r.useRef(null),b=r.useRef(""),S=g.viewport,A=i.content-i.viewport,w=FMe(m),M=FMe(c),C=MCe(h,10);function T(e){if(k.current){d({x:e.clientX-k.current.left,y:e.clientY-k.current.top})}}return r.useEffect((()=>{const e=e=>{const a=e.target,n=f?.contains(a);n&&w(e,A)};return document.addEventListener("wheel",e,{passive:!1}),()=>document.removeEventListener("wheel",e,{passive:!1})}),[S,f,A,w]),r.useEffect(M,[i,M]),CCe(f,C),CCe(g.content,C),n.jsx(lCe,{scope:t,scrollbar:f,hasThumb:o,onThumbChange:FMe(s),onThumbPointerUp:FMe(l),onThumbPositionChange:M,onThumbPointerDown:FMe(u),children:n.jsx(OMe.div,{...p,ref:y,style:{position:"absolute",...p.style},onPointerDown:JMe(e.onPointerDown,(e=>{if(0===e.button){e.target.setPointerCapture(e.pointerId),k.current=f.getBoundingClientRect(),b.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",g.viewport&&(g.viewport.style.scrollBehavior="auto"),T(e)}})),onPointerMove:JMe(e.onPointerMove,T),onPointerUp:JMe(e.onPointerUp,(e=>{const a=e.target;a.hasPointerCapture(e.pointerId)&&a.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=b.current,g.viewport&&(g.viewport.style.scrollBehavior=""),k.current=null}))})})})),dCe="ScrollAreaThumb",mCe=r.forwardRef(((e,a)=>{const{forceMount:t,...i}=e,r=uCe(dCe,e.__scopeScrollArea);return n.jsx(HMe,{present:t||r.hasThumb,children:n.jsx(hCe,{ref:a,...i})})})),hCe=r.forwardRef(((e,a)=>{const{__scopeScrollArea:t,style:i,...o}=e,s=$Me(dCe,t),l=uCe(dCe,t),{onThumbPositionChange:u}=l,c=LMe(a,(e=>l.onThumbChange(e))),d=r.useRef(void 0),m=MCe((()=>{d.current&&(d.current(),d.current=void 0)}),100);return r.useEffect((()=>{const e=s.viewport;if(e){const a=()=>{if(m(),!d.current){const a=wCe(e,u);d.current=a,u()}};return u(),e.addEventListener("scroll",a),()=>e.removeEventListener("scroll",a)}}),[s.viewport,m,u]),n.jsx(OMe.div,{"data-state":l.hasThumb?"visible":"hidden",...o,ref:c,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...i},onPointerDownCapture:JMe(e.onPointerDownCapture,(e=>{const a=e.target.getBoundingClientRect();l.onThumbPointerDown({x:e.clientX-a.left,y:e.clientY-a.top})})),onPointerUp:JMe(e.onPointerUp,l.onThumbPointerUp)})}));mCe.displayName=dCe;var pCe="ScrollAreaCorner",gCe=r.forwardRef(((e,a)=>{const t=$Me(pCe,e.__scopeScrollArea),i=Boolean(t.scrollbarX&&t.scrollbarY);return"scroll"!==t.type&&i?n.jsx(fCe,{...e,ref:a}):null}));gCe.displayName=pCe;var fCe=r.forwardRef(((e,a)=>{const{__scopeScrollArea:t,...i}=e,o=$Me(pCe,t),[s,l]=r.useState(0),[u,c]=r.useState(0),d=Boolean(s&&u);return CCe(o.scrollbarX,(()=>{const e=o.scrollbarX?.offsetHeight||0;o.onCornerHeightChange(e),c(e)})),CCe(o.scrollbarY,(()=>{const e=o.scrollbarY?.offsetWidth||0;o.onCornerWidthChange(e),l(e)})),d?n.jsx(OMe.div,{...i,ref:a,style:{width:s,height:u,position:"absolute",right:"ltr"===o.dir?0:void 0,left:"rtl"===o.dir?0:void 0,bottom:0,...e.style}}):null}));function vCe(e){return e?parseInt(e,10):0}function yCe(e,a){const n=e/a;return isNaN(n)?0:n}function kCe(e){const a=yCe(e.viewport,e.content);return Math.max((e.scrollbar.size-(e.scrollbar.paddingStart+e.scrollbar.paddingEnd))*a,18)}function bCe(e,a,n="ltr"){const t=kCe(a),i=a.content-a.viewport,r=a.scrollbar.size-(a.scrollbar.paddingStart+a.scrollbar.paddingEnd)-t,o=function(e,[a,n]){return Math.min(n,Math.max(a,e))}(e,"ltr"===n?[0,i]:[-1*i,0]);return SCe([0,i],[0,r])(o)}function SCe(e,a){return n=>{if(e[0]===e[1]||a[0]===a[1])return a[0];return a[0]+(a[1]-a[0])/(e[1]-e[0])*(n-e[0])}}function ACe(e,a){return e>0&&e<a}var wCe=(e,a=()=>{})=>{let n={left:e.scrollLeft,top:e.scrollTop},t=0;return function i(){const r={left:e.scrollLeft,top:e.scrollTop};(n.left!==r.left||n.top!==r.top)&&a(),n=r,t=window.requestAnimationFrame(i)}(),()=>window.cancelAnimationFrame(t)};function MCe(e,a){const n=FMe(e),t=r.useRef(0);return r.useEffect((()=>()=>window.clearTimeout(t.current)),[]),r.useCallback((()=>{window.clearTimeout(t.current),t.current=window.setTimeout(n,a)}),[n,a])}function CCe(e,a){const n=FMe(a);KMe((()=>{let a=0;if(e){const t=new ResizeObserver((()=>{cancelAnimationFrame(a),a=window.requestAnimationFrame(n)}));return t.observe(e),()=>{window.cancelAnimationFrame(a),t.unobserve(e)}}}),[e,n])}var TCe=YMe,xCe=XMe,NCe=gCe;const ECe=r.forwardRef((({className:e,children:a,...t},i)=>n.jsxs(TCe,{ref:i,className:hq("relative overflow-hidden",e),...t,children:[n.jsx(xCe,{className:"h-full w-full rounded-[inherit]",children:a}),n.jsx(_Ce,{}),n.jsx(NCe,{})]})));ECe.displayName=TCe.displayName;const _Ce=r.forwardRef((({className:e,orientation:a="vertical",...t},i)=>n.jsx(aCe,{ref:i,orientation:a,className:hq("flex touch-none select-none transition-colors","vertical"===a&&"h-full w-2.5 border-l border-l-transparent p-[1px]","horizontal"===a&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",e),...t,children:n.jsx(mCe,{className:"relative flex-1 rounded-full bg-border"})})));_Ce.displayName=aCe.displayName;var PCe=r.forwardRef(((e,a)=>{const{children:t,...i}=e,o=r.Children.toArray(t),s=o.find(BCe);if(s){const e=s.props.children,t=o.map((a=>a===s?r.Children.count(e)>1?r.Children.only(null):r.isValidElement(e)?e.props.children:null:a));return n.jsx(jCe,{...i,ref:a,children:r.isValidElement(e)?r.cloneElement(e,void 0,t):null})}return n.jsx(jCe,{...i,ref:a,children:t})}));PCe.displayName="Slot";var jCe=r.forwardRef(((e,a)=>{const{children:n,...t}=e;if(r.isValidElement(n)){const e=function(e){let a=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=a&&"isReactWarning"in a&&a.isReactWarning;if(n)return e.ref;if(a=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=a&&"isReactWarning"in a&&a.isReactWarning,n)return e.props.ref;return e.props.ref||e.ref}(n),i=function(e,a){const n={...a};for(const t in a){const i=e[t],r=a[t];/^on[A-Z]/.test(t)?i&&r?n[t]=(...e)=>{r(...e),i(...e)}:i&&(n[t]=i):"style"===t?n[t]={...i,...r}:"className"===t&&(n[t]=[i,r].filter(Boolean).join(" "))}return{...e,...n}}(t,n.props);return n.type!==r.Fragment&&(i.ref=a?rq(a,e):e),r.cloneElement(n,i)}return r.Children.count(n)>1?r.Children.only(null):null}));jCe.displayName="SlotClone";var LCe=({children:e})=>n.jsx(n.Fragment,{children:e});function BCe(e){return r.isValidElement(e)&&e.type===LCe}var RCe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce(((e,a)=>{const t=r.forwardRef(((e,t)=>{const{asChild:i,...r}=e,o=i?PCe:a;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),n.jsx(o,{...r,ref:t})}));return t.displayName=`Primitive.${a}`,{...e,[a]:t}}),{}),zCe="horizontal",DCe=["horizontal","vertical"],OCe=r.forwardRef(((e,a)=>{const{decorative:t,orientation:i=zCe,...r}=e,o=function(e){return DCe.includes(e)}(i)?i:zCe;return n.jsx(RCe.div,{"data-orientation":o,...t?{role:"none"}:{"aria-orientation":"vertical"===o?o:void 0,role:"separator"},...r,ref:a})}));OCe.displayName="Separator";var KCe=OCe;const HCe=r.forwardRef((({className:e,orientation:a="horizontal",decorative:t=!0,...i},r)=>n.jsx(KCe,{ref:r,decorative:t,orientation:a,className:oz("shrink-0 bg-border","horizontal"===a?"h-[1px] w-full":"h-full w-[1px]",e),...i})));function ICe({options:e,onValueChange:a,selectedValues:t,setSelectedValues:i,maxCount:o,placeholder:s="Select options",title:l="Select Items",searchPlaceholder:u="Search items...",emptyMessage:c="No items found",extraCommandItems:d=[],canOpen:m=!0,singleSelect:h=!1}){const[p,g]=r.useState(!1),[f,v]=r.useState(""),[y,k]=r.useState(t),b=r.useMemo((()=>Array.from(new Map([...e].filter((e=>e&&"string"==typeof e.value&&"string"==typeof e.label&&""!==e.value.trim()&&""!==e.label.trim())).map((e=>[e.value,e]))).values())),[e]),S=r.useMemo((()=>{if(!f)return b;return[...b.filter((e=>y.includes(e.value))),...b.filter((e=>!y.includes(e.value))).filter((e=>e.label.toLowerCase().includes(f.toLowerCase())))]}),[b,f,y]),A=r.useCallback((()=>t.map((a=>{const n=e.find((e=>e.value===a));return{value:a,label:n?.label||a}}))),[t,e]),w=e=>{if(h)return k([e]),a([e]),i([e]),void g(!1);k((a=>a.includes(e)?a.filter((a=>a!==e)):o&&a.length>=o?a:[...a,e]))};r.useEffect((()=>{p&&(k(t),v(""))}),[p,t]);const M=y.length,C=S.filter((e=>y.includes(e.value))).length,T=A(),x=!o||y.length<o,N=r.useMemo((()=>S.filter((e=>y.includes(e.value)))),[S,y]),E=r.useMemo((()=>S.filter((e=>!y.includes(e.value)))),[S,y]);return n.jsxs(pq,{open:p&&m,onOpenChange:m?g:void 0,children:[n.jsx(gq,{asChild:!0,children:n.jsxs(i3,{variant:"outline",disabled:!m,className:oz("w-full justify-between text-left font-normal h-9 p-3",!m&&"opacity-50 cursor-not-allowed"),children:[n.jsx("div",{className:"flex flex-nowrap items-center gap-1 max-w-[70%]",children:0===T.length?n.jsx("span",{className:"text-muted-foreground",children:s}):h?n.jsx(k3,{variant:"secondary",className:"text-xs whitespace-nowrap",children:T[0].label}):T.length<=2?T.map((e=>n.jsx(k3,{variant:"secondary",className:"text-xs whitespace-nowrap",children:e.label},e.value))):n.jsxs(n.Fragment,{children:[n.jsx(k3,{variant:"secondary",className:"text-xs whitespace-nowrap",children:T[0].label},T[0].value),n.jsxs(k3,{variant:"secondary",className:"text-xs whitespace-nowrap",children:["+",T.length-1," more"]})]})}),n.jsx(l3.DropdownMenuTrigger,{className:"h-4 w-4 opacity-50 ml-2 flex-shrink-0"})]})}),n.jsxs(yq,{className:"max-w-md w-full max-h-[80vh] p-0",children:[n.jsx(kq,{className:"p-6 pb-4",children:n.jsxs(Sq,{className:"flex items-center gap-2 text-xl",children:[n.jsx(l3.UsersIcon,{className:"h-5 w-5 text-primary"}),l]})}),n.jsx("div",{className:"px-6 pb-4",children:n.jsxs("div",{className:"relative",children:[n.jsx(l3.SearchIcon,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-muted-foreground"}),n.jsx(L7,{placeholder:u,value:f,onChange:e=>v(e.target.value),className:"pl-10 h-11"})]})}),!h&&n.jsx("div",{className:"px-6 pb-4",children:n.jsxs("div",{className:"flex items-center justify-between text-sm",children:[n.jsxs("span",{className:"text-muted-foreground",children:[M," of ",b.length," selected",o&&` (max ${o})`]}),n.jsxs("div",{className:"flex gap-2",children:[n.jsx(i3,{variant:"ghost",size:"sm",onClick:()=>{const e=S.filter((e=>!y.includes(e.value))),a=o?e.slice(0,o-y.length):e;k((e=>[...e,...a.map((e=>e.value))]))},disabled:!x||C===S.length,className:"h-8 text-xs",children:"Select All"}),n.jsx(i3,{variant:"ghost",size:"sm",onClick:()=>{const e=new Set(S.map((e=>e.value)));k((a=>a.filter((a=>!e.has(a)))))},disabled:0===C,className:"h-8 text-xs",children:"Clear All"})]})]})}),n.jsx(HCe,{}),n.jsx(ECe,{className:"flex-1 max-h-[300px] rounded-md",children:n.jsx(CMe,{className:"rounded-none border-none",children:n.jsxs(EMe,{children:[d.length>0&&n.jsxs(n.Fragment,{children:[d.map(((e,a)=>n.jsx("div",{className:"px-3 py-2",children:e(g)},`extra-command-${a}`))),n.jsx(HCe,{className:"my-2"})]}),0===S.length?n.jsxs("div",{className:"text-center py-8 text-muted-foreground",children:[n.jsx(l3.SearchIcon,{className:"h-8 w-8 mx-auto mb-2 opacity-50"}),n.jsx("p",{children:c})]}):n.jsxs(n.Fragment,{children:[!h&&N.length>0&&n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"px-3 pt-2 pb-1 text-xs font-semibold text-muted-foreground tracking-wide uppercase",children:["Selected (",N.length,")"]}),N.map((e=>n.jsxs(_Me,{onSelect:()=>w(e.value),className:"flex items-center space-x-3 p-3 rounded-lg transition-colors hover:bg-muted/50 cursor-pointer",children:[n.jsx(Pwe,{checked:!0,disabled:!1,onChange:()=>w(e.value),className:"flex-shrink-0"}),n.jsx("div",{className:"flex-1 min-w-0",children:n.jsx("div",{className:"font-medium text-sm truncate",children:e.label})}),n.jsx(l3.CheckIcon,{className:"h-4 w-4 text-primary flex-shrink-0"})]},e.value))),n.jsx(HCe,{className:"my-2"})]}),n.jsx("div",{className:"px-3 pt-2 pb-1 text-xs font-semibold text-muted-foreground tracking-wide uppercase",children:h?"Options":`Available (${E.length})`}),E.map((e=>{const a=y.includes(e.value),t=!h&&!x;return n.jsxs(_Me,{onSelect:()=>!t&&w(e.value),className:"flex items-center space-x-3 p-3 rounded-lg transition-colors "+(t?"opacity-50 cursor-not-allowed":"hover:bg-muted/50 cursor-pointer"),children:[!h&&n.jsx(Pwe,{checked:a,disabled:t,onChange:()=>!t&&w(e.value),className:"flex-shrink-0"}),n.jsx("div",{className:"flex-1 min-w-0",children:n.jsx("div",{className:"font-medium text-sm truncate",children:e.label})}),a&&n.jsx(l3.CheckIcon,{className:"h-4 w-4 text-primary flex-shrink-0"})]},e.value)}))]})]})})}),!h&&n.jsxs(n.Fragment,{children:[n.jsx(HCe,{}),n.jsx("div",{className:"p-6 pt-4",children:n.jsxs("div",{className:"flex gap-3",children:[n.jsx(i3,{variant:"outline",onClick:()=>{k(t),v(""),g(!1)},className:"flex-1",children:"Cancel"}),n.jsxs(i3,{onClick:()=>{a(y),i(y),g(!1)},className:"flex-1 bg-primary hover:bg-primary/90",children:["Apply (",M,")"]})]})})]})]})]})}HCe.displayName=KCe.displayName;const GCe=({isSaving:e,isLoading:a,savingText:t="Saving...",loadingText:i="Loading...",className:r,size:o="sm",textSize:s="xs"})=>{const l=e?t:i;if(!(e||a))return null;return n.jsxs("div",{className:oz("flex items-center space-x-2 text-muted-foreground",{xs:"text-xs",sm:"text-sm",md:"text-base"}[s],r),children:[n.jsx(EB,{className:oz("animate-spin",{xs:"h-3 w-3",sm:"h-4 w-4",md:"h-5 w-5",lg:"h-6 w-6"}[o])}),n.jsx("span",{children:l})]})},FCe=e=>n.jsx(_ge,{as:"span",className:"inline-flex items-center px-1 py-0.5 rounded text-xs bg-blue-100 text-blue-800 font-medium border border-blue-200",children:e.node.attrs.displayName}),VCe=Xpe.create({name:"mergeField",group:"inline",inline:!0,atom:!0,addAttributes:()=>({templateName:{default:null,parseHTML:e=>e.getAttribute("data-template-name")},displayName:{default:null,parseHTML:e=>e.getAttribute("data-display-name")}}),parseHTML:()=>[{tag:"span[data-merge-field]"}],renderHTML:({HTMLAttributes:e})=>["span",Khe(e,{"data-merge-field":"true"})],renderText:({node:e})=>e.attrs.templateName,addNodeView:()=>Rge(FCe)}),JCe=({value:e,onChange:t,maxLength:i,mergeFieldsResponse:r,editorRef:o,imagePreview:s,onAddImage:l,onRemoveImage:u,isRemovingImage:c,isUpdatingCommunicationGroup:d,initialImageUrls:m,imageBase64:h,isUpdating:p,hasUnsavedChanges:g})=>{const[f,v]=a.useState(0),y=a.useMemo((()=>r?.mergeFields?.flatMap((e=>e.entries))??[]),[r]),k=a.useCallback((e=>{if(!e)return"";return e.replace(/\{\{.*?\}\}/g,(e=>{const a=y.find((a=>a.value===e));return a?`<span class="inline-flex items-center px-1 py-0.5 rounded text-xs bg-blue-100 text-blue-800 font-medium border border-blue-200" data-merge-field="true" data-template-name="${a.value}" data-display-name="${a.label}">${a.label}</span>`:e}))}),[y]),b=Nge({extensions:[Wfe,VCe],content:"",editorProps:{attributes:{class:"min-h-[300px] p-3 border border-gray-200 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent resize-none prose prose-sm max-w-none"}},onUpdate:({editor:e})=>{const a=e.getText();v(a.length),t(a)}});a.useEffect((()=>{if(b&&e){if(b.getText()!==e){const a=k(e);b.commands.setContent(a,!1),v(e.length)}}}),[b,e,k]);const S=a.useCallback((e=>{if(e.length>0&&b){const a=y.find((a=>a.value===e[0]));a&&b.chain().focus().insertContent({type:"mergeField",attrs:{templateName:a.value,displayName:a.label}}).run()}}),[b,y]),A=a.useMemo((()=>y.map((e=>({label:e.label,value:e.value})))),[y]),w=((e,a)=>({colorClass:e>=a?"text-red-500":e>320?"text-amber-500":"text-gray-500",text:`${e}/${a} characters`}))(f,i);return b?n.jsxs("div",{className:"space-y-4",children:[n.jsx("div",{ref:o,children:n.jsx(hge,{editor:b})}),n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(i3,s?{variant:"outline",onClick:u,disabled:c||d,children:"Remove Image"}:{variant:"outline",onClick:l,disabled:(m?.length||0)>=1||c||null!==h||d,children:"Add Image"}),n.jsx(ICe,{options:A,selectedValues:[],setSelectedValues:()=>{},onValueChange:S,placeholder:"Add merge field",title:"Merge Fields",searchPlaceholder:"Search merge fields...",emptyMessage:"No merge fields found",singleSelect:!0}),n.jsx(cse,{size:"large",title:"Merge fields are placeholders for dynamic content. For example you can use the recipients name, or email in the contents of your message."})]}),n.jsxs("div",{className:`flex items-center gap-2 text-xs transition-colors duration-300 ${w.colorClass}`,children:[w.text,f>Xke&&n.jsx(cse,{title:"The maximum number of characters for an SMS is 1500. This includes the company name, if you have one, and the merge fields. The recommended limit is 320 characters for best delivery rates. Click to learn more",onClick:()=>{window.open("https://help.twilio.com/articles/360033806753-Maximum-Message-Length-with-Twilio-Programmable-Messaging","_blank")},link:{url:"https://help.twilio.com/articles/360033806753-Maximum-Message-Length-with-Twilio-Programmable-Messaging",text:"The maximum number of characters for an SMS is 1500. This includes the company name, if you have one, and the merge fields. The recommended limit is 320 characters for best delivery rates. Click to learn more"}})]})]}),n.jsx("div",{className:"flex items-center gap-2",children:n.jsx(GCe,{isSaving:!(!p&&!g),savingText:p||g?"Saving...":"Autosave enabled",size:"xs",textSize:"xs"})})]}):n.jsx("div",{children:"Loading editor..."})},UCe=a.memo((({communicationGroupId:e,initialSenderId:t,companyName:i,modalType:r="popover",align:o="end",trigger:s})=>{const l=a.useRef({communicationGroupId:e,initialSenderId:t,companyName:i}),[u,c]=a.useState(null),[d,m]=a.useState(null),[h,p]=a.useState(!1),[g,f]=a.useState(!1),v=Vke(d,250),{channelSenders:y}=ate(),{channelAccounts:k}=Qne(),{data:b}=rte(),{updateCommunicationGroup:S,isUpdating:A}=Qe(),w=a.useMemo((()=>Kre({channelSenders:y?.results??[],channelAccounts:k?.results??[],smsApplication:b})),[y?.results,k?.results,b]);a.useEffect((()=>{!g&&w.length>0&&(c(l.current.initialSenderId),m(l.current.companyName),f(!0))}),[g,w.length]);const M=a.useCallback((e=>{c(e),S({groupId:l.current.communicationGroupId,params:{smsChannelSenderId:e}})}),[S]),C=a.useCallback((e=>{m(e.target.value)}),[]);a.useEffect((()=>{g&&void 0!==v&&S({groupId:l.current.communicationGroupId,params:{textMessageCompanyName:v||null}})}),[v,g,S]);const T=a.useCallback((e=>{p(e)}),[]),x=a.useMemo((()=>g?n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{className:"space-y-2",children:[n.jsx(sve,{htmlFor:"sender-select",className:"text-sm font-medium",children:"From"}),n.jsxs(zke,{value:u||"",onValueChange:M,children:[n.jsx(Kke,{id:"sender-select",className:"w-full",children:n.jsx(Oke,{placeholder:"Select a sender"})}),n.jsx(Gke,{children:w.map((e=>n.jsx(Fke,{value:e.channelSender.id,children:n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx("span",{children:e.channelSender.channelSenderMetadata.friendlyName||e.channelSender.channelSenderMetadata.from}),e.smsApplication?.status===Ore.APPROVED&&n.jsx(sB,{className:"h-3 w-3 text-green-500"})]})},e.channelSender.id)))})]})]}),n.jsxs("div",{className:"space-y-2",children:[n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(sve,{htmlFor:"company-name",className:"text-sm font-medium",children:"Company Name"}),n.jsx(cse,{title:"Company name will be included in the SMS message",size:"small"})]}),n.jsx(L7,{id:"company-name",value:d||"",onChange:C,placeholder:"Enter company name",className:"w-full"}),n.jsx("div",{className:"h-6",children:n.jsx(GCe,{isSaving:A})})]})]}):n.jsx("div",{className:"flex items-center justify-center p-4",children:n.jsx(GCe,{isLoading:!0,loadingText:"Loading...",size:"sm",textSize:"sm"})})),[g,u,d,A,w,M,C]);return"popover"===r?n.jsxs(Hne,{open:h,onOpenChange:T,children:[n.jsx(Ine,{asChild:!0,children:s||n.jsxs(i3,{variant:"outline",size:"sm",className:oz("flex items-center space-x-2",h&&"bg-accent"),children:[n.jsx("span",{children:"Edit Sender & Company"}),n.jsx(lB,{className:"h-3 w-3"})]})}),n.jsx(Gne,{align:o,className:"w-96",children:x})]}):"dialog"===r?n.jsxs(pq,{open:h,onOpenChange:T,children:[n.jsx(gq,{asChild:!0,children:s||n.jsxs(i3,{variant:"outline",size:"sm",className:"flex items-center space-x-2",children:[n.jsx("span",{children:"Edit Sender & Company"}),n.jsx(lB,{className:"h-3 w-3"})]})}),n.jsxs(yq,{className:"min-w-[700px]",children:[n.jsx(kq,{children:n.jsx(Sq,{children:"Edit Sender & Company"})}),x]})]}):n.jsx("div",{className:"w-full",children:x})}),(()=>!0));UCe.displayName="SMSSenderAndCompanyEditor";const WCe=a.memo((({communicationGroupId:e,initialSenderId:a,companyName:t})=>n.jsx(UCe,{communicationGroupId:e,initialSenderId:a||null,companyName:t||null,modalType:"dialog"}))),qCe=({communicationGroupId:e,initialMessage:t="",initialImageUrls:i=[],companyName:r,initialSenderId:o,onSave:s,className:l})=>{const{toast:u}=Je(),{updateCommunicationGroup:c,isUpdating:d}=Qe(),{getMergeFields:m}=Xe(e),[h,p]=a.useState(t),[g,f]=a.useState(i.length>0?i[0]:null),[v,y]=a.useState(null),[k,b]=a.useState(!1),[S,A]=a.useState(!1),[w,M]=a.useState(!1),[C,T]=a.useState(!1),x=a.useRef(null),N=a.useRef(r),E=a.useRef(),_=a.useRef(!0),P=a.useRef({message:t}),j=Vke(h,1e3),L=a.useCallback((async()=>{if(_.current)return;const a=h||"";if(a.length>1500)return void u({title:"SMS is too long",description:"Please shorten your message",variant:"destructive"});if(a!==P.current.message&&0!==a.length)try{await c({groupId:e,params:{smsMessageBody:a}}),P.current={message:a},M(!1),s?.()}catch(n){u({title:"Autosave failed",description:"Your changes may not have been saved",variant:"destructive"})}}),[h,e,c,u,s]);E.current=L,a.useEffect((()=>{if(!C)return;j!==P.current.message&&!d&&(M(!0),E.current?.())}),[j,d,C]),a.useEffect((()=>{if(!C)return;M(h!==t)}),[h,t,C]),a.useEffect((()=>{t&&p(t),i.length>0?(f(i[0]),b(!1)):(f(null),y(null),b(!1)),P.current={message:t},T(!0);const e=setTimeout((()=>{_.current=!1}),2e3);return()=>clearTimeout(e)}),[t,i]);const B=a.useCallback((async()=>{if(e&&!k){b(!0);try{await c({groupId:e,params:{textMessageMedia:[]}}),f(null),y(null),u({title:"Image removed",description:"The image has been removed from your SMS"})}catch(a){u({title:"Failed to remove image",description:"Please try again",variant:"destructive"})}finally{b(!1)}}}),[e,c,u,k]),R=a.useCallback((async a=>{const n=a.target.files?.[0];if(n&&e&&!S){x.current&&(x.current.value=""),A(!0);try{const a=new FileReader;a.onloadend=async()=>{try{const n=await async function(e){if(!mwe)throw new Error("Image conversion is only supported in browser environments");return new Promise(((a,n)=>{try{const t=new window.Image;t.crossOrigin="anonymous",t.onload=()=>{try{const e=document.createElement("canvas");e.width=t.naturalWidth,e.height=t.naturalHeight;const i=e.getContext("2d");if(!i)return void n(new Error("Failed to get canvas context"));i.drawImage(t,0,0);const r=e.toDataURL("image/png",1);a(r)}catch(e){n(e)}},t.onerror=()=>{n(new Error("Failed to load image"))},t.src=e}catch(t){n(t)}}))}(a.result),t=hwe(n);await c({groupId:e,params:{textMessageMedia:[t]}}),y(t),f(n),b(!1),u({title:"Image uploaded",description:"The image has been added to your SMS"})}catch(n){u({title:"Error uploading image",description:"Failed to process or upload the image",variant:"destructive"})}finally{A(!1)}},a.readAsDataURL(n)}catch(t){u({title:"Error reading file",description:"Please try again",variant:"destructive"}),A(!1)}}}),[e,c,u,S]),z=a.useCallback((()=>{x.current?.click()}),[]);return m?n.jsxs("div",{className:oz("w-full @container",l),children:[n.jsx("div",{className:"flex items-center justify-between mb-6",children:n.jsx(WCe,{communicationGroupId:e,initialSenderId:o||null,companyName:N.current||null})}),n.jsxs("div",{className:"flex flex-col lg:flex-row gap-6 h-full",children:[n.jsxs("div",{className:"flex-1 min-w-0",children:[g&&n.jsx("div",{className:"flex justify-center mb-6",children:n.jsx("div",{className:"relative group w-fit",children:n.jsx("img",{src:g,alt:"SMS attachment preview",className:"max-h-48 max-w-xs rounded-xl shadow-lg border border-gray-200 object-contain bg-white transition-transform duration-200",style:{boxShadow:"0 4px 24px 0 rgba(0,0,0,0.08)"}})})}),n.jsx("input",{type:"file",ref:x,onChange:R,accept:"image/*",className:"hidden"}),n.jsx(JCe,{value:h,onChange:p,maxLength:1500,mergeFieldsResponse:m,imagePreview:g,onAddImage:z,onRemoveImage:B,isRemovingImage:k,isUpdatingCommunicationGroup:d||S,initialImageUrls:i,imageBase64:v,isUpdating:d||S,hasUnsavedChanges:w})]}),n.jsx("div",{className:"block flex-1 min-w-0",children:n.jsx("div",{className:"sticky top-4",children:n.jsx("div",{className:"bg-gray-50 rounded-xl p-4 border border-gray-200",children:n.jsx(fwe,{body:dwe({companyName:r||void 0,smsBody:h}),imageUrls:g?[g]:[]})})})})]})]}):n.jsx("div",{className:"flex justify-center items-center p-8",children:n.jsx("div",{className:"text-sm text-muted-foreground",children:"Loading editor..."})})},ZCe=()=>{const e=X2(),{channelSenders:a}=ate(),{channelAccounts:t}=Qne(),{data:i}=rte(),{getMergeFields:r,isGetting:o}=Xe(e?.id??void 0),s=Kre({channelSenders:a?.results??[],channelAccounts:t?.results??[],smsApplication:i}),l=e?.textMessageMediaUrls??[],u=e?.smsMessageBody||"",c=s.length>0;return o||!r?n.jsx("div",{className:"flex justify-center items-center flex-1 h-full bg-white rounded-2xl w-full border border-gray-200 p-6 space-y-4 relative",children:n.jsx(Tq,{text:["Fetching Content..."]})}):n.jsxs("div",{className:"bg-white rounded-2xl w-full p-6 space-y-4 relative",children:[n.jsx(hbe,{title:"SMS Campaign",type:$ke.SMS}),n.jsx("div",!1===c?{className:"w-full pt-8 mx-auto",children:n.jsx(cwe,{})}:{className:"space-y-6",children:n.jsx(qCe,{communicationGroupId:e?.id,initialMessage:u,initialImageUrls:l,companyName:e?.textMessageCompanyName,initialSenderId:e?.smsChannelSenderId,onSave:()=>{},className:"max-w-7xl mx-auto"})})]})},$Ce=e=>e.friendlyName||e.from||e.messageServiceSid||"Unknown Sender";function YCe(e,a,{checkForDefaultPrevented:n=!0}={}){return function(t){if(e?.(t),!1===n||!t.defaultPrevented)return a?.(t)}}function QCe(e,a=[]){let t=[];const i=()=>{const a=t.map((e=>r.createContext(e)));return function(n){const t=n?.[e]||a;return r.useMemo((()=>({[`__scope${e}`]:{...n,[e]:t}})),[n,t])}};return i.scopeName=e,[function(a,i){const o=r.createContext(i),s=t.length;t=[...t,i];const l=a=>{const{scope:t,children:i,...l}=a,u=t?.[e]?.[s]||o,c=r.useMemo((()=>l),Object.values(l));return n.jsx(u.Provider,{value:c,children:i})};return l.displayName=a+"Provider",[l,function(n,t){const l=r.useContext(t?.[e]?.[s]||o);if(l)return l;if(void 0!==i)return i;throw new Error(`\`${n}\` must be used within \`${a}\``)}]},XCe(i,...a)]}function XCe(...e){const a=e[0];if(1===e.length)return a;const n=()=>{const n=e.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(e){const t=n.reduce(((a,{useScope:n,scopeName:t})=>({...a,...n(e)[`__scope${t}`]})),{});return r.useMemo((()=>({[`__scope${a.scopeName}`]:t})),[t])}};return n.scopeName=a.scopeName,n}function eTe(e,a){if("function"==typeof e)return e(a);null!=e&&(e.current=a)}function aTe(...e){return a=>{let n=!1;const t=e.map((e=>{const t=eTe(e,a);return n||"function"!=typeof t||(n=!0),t}));if(n)return()=>{for(let a=0;a<t.length;a++){const n=t[a];"function"==typeof n?n():eTe(e[a],null)}}}}function nTe(...e){return r.useCallback(aTe(...e),e)}function tTe(e){const a=iTe(e),t=r.forwardRef(((e,t)=>{const{children:i,...o}=e,s=r.Children.toArray(i),l=s.find(oTe);if(l){const e=l.props.children,i=s.map((a=>a===l?r.Children.count(e)>1?r.Children.only(null):r.isValidElement(e)?e.props.children:null:a));return n.jsx(a,{...o,ref:t,children:r.isValidElement(e)?r.cloneElement(e,void 0,i):null})}return n.jsx(a,{...o,ref:t,children:i})}));return t.displayName=`${e}.Slot`,t}function iTe(e){const a=r.forwardRef(((e,a)=>{const{children:n,...t}=e;if(r.isValidElement(n)){const e=function(e){let a=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=a&&"isReactWarning"in a&&a.isReactWarning;if(n)return e.ref;if(a=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=a&&"isReactWarning"in a&&a.isReactWarning,n)return e.props.ref;return e.props.ref||e.ref}(n),i=function(e,a){const n={...a};for(const t in a){const i=e[t],r=a[t];/^on[A-Z]/.test(t)?i&&r?n[t]=(...e)=>{r(...e),i(...e)}:i&&(n[t]=i):"style"===t?n[t]={...i,...r}:"className"===t&&(n[t]=[i,r].filter(Boolean).join(" "))}return{...e,...n}}(t,n.props);return n.type!==r.Fragment&&(i.ref=a?aTe(a,e):e),r.cloneElement(n,i)}return r.Children.count(n)>1?r.Children.only(null):null}));return a.displayName=`${e}.SlotClone`,a}var rTe=Symbol("radix.slottable");function oTe(e){return r.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===rTe}var sTe=globalThis?.document?r.useLayoutEffect:()=>{},lTe=r[" useId ".trim().toString()]||(()=>{}),uTe=0;function cTe(e){const[a,n]=r.useState(lTe());return sTe((()=>{n((e=>e??String(uTe++)))}),[e]),e||(a?`radix-${a}`:"")}var dTe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce(((e,a)=>{const t=tTe(`Primitive.${a}`),i=r.forwardRef(((e,i)=>{const{asChild:r,...o}=e,s=r?t:a;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),n.jsx(s,{...o,ref:i})}));return i.displayName=`Primitive.${a}`,{...e,[a]:i}}),{});var mTe=r[" useInsertionEffect ".trim().toString()]||sTe;function hTe({prop:e,defaultProp:a,onChange:n=()=>{},caller:t}){const[i,o,s]=function({defaultProp:e,onChange:a}){const[n,t]=r.useState(e),i=r.useRef(n),o=r.useRef(a);return mTe((()=>{o.current=a}),[a]),r.useEffect((()=>{i.current!==n&&(o.current?.(n),i.current=n)}),[n,i]),[n,t,o]}({defaultProp:a,onChange:n}),l=void 0!==e,u=l?e:i;{const a=r.useRef(void 0!==e);r.useEffect((()=>{const e=a.current;if(e!==l){}a.current=l}),[l,t])}const c=r.useCallback((a=>{if(l){const n=function(e){return"function"==typeof e}(a)?a(e):a;n!==e&&s.current?.(n)}else o(a)}),[l,e,o,s]);return[u,c]}var pTe=r.createContext(void 0);function gTe(e){const a=r.useContext(pTe);return e||a||"ltr"}var fTe="rovingFocusGroup.onEntryFocus",vTe={bubbles:!1,cancelable:!0},yTe="RovingFocusGroup",[kTe,bTe,STe]=function(e){const t=e+"CollectionProvider",[i,r]=QCe(t),[o,s]=i(t,{collectionRef:{current:null},itemMap:new Map}),l=e=>{const{scope:t,children:i}=e,r=a.useRef(null),s=a.useRef(new Map).current;return n.jsx(o,{scope:t,itemMap:s,collectionRef:r,children:i})};l.displayName=t;const u=e+"CollectionSlot",c=tTe(u),d=a.forwardRef(((e,a)=>{const{scope:t,children:i}=e,r=nTe(a,s(u,t).collectionRef);return n.jsx(c,{ref:r,children:i})}));d.displayName=u;const m=e+"CollectionItemSlot",h="data-radix-collection-item",p=tTe(m),g=a.forwardRef(((e,t)=>{const{scope:i,children:r,...o}=e,l=a.useRef(null),u=nTe(t,l),c=s(m,i);return a.useEffect((()=>(c.itemMap.set(l,{ref:l,...o}),()=>{c.itemMap.delete(l)}))),n.jsx(p,{[h]:"",ref:u,children:r})}));return g.displayName=m,[{Provider:l,Slot:d,ItemSlot:g},function(n){const t=s(e+"CollectionConsumer",n);return a.useCallback((()=>{const e=t.collectionRef.current;if(!e)return[];const a=Array.from(e.querySelectorAll(`[${h}]`));return Array.from(t.itemMap.values()).sort(((e,n)=>a.indexOf(e.ref.current)-a.indexOf(n.ref.current)))}),[t.collectionRef,t.itemMap])},r]}(yTe),[ATe,wTe]=QCe(yTe,[STe]),[MTe,CTe]=ATe(yTe),TTe=r.forwardRef(((e,a)=>n.jsx(kTe.Provider,{scope:e.__scopeRovingFocusGroup,children:n.jsx(kTe.Slot,{scope:e.__scopeRovingFocusGroup,children:n.jsx(xTe,{...e,ref:a})})})));TTe.displayName=yTe;var xTe=r.forwardRef(((e,a)=>{const{__scopeRovingFocusGroup:t,orientation:i,loop:o=!1,dir:s,currentTabStopId:l,defaultCurrentTabStopId:u,onCurrentTabStopIdChange:c,onEntryFocus:d,preventScrollOnEntryFocus:m=!1,...h}=e,p=r.useRef(null),g=nTe(a,p),f=gTe(s),[v,y]=hTe({prop:l,defaultProp:u??null,onChange:c,caller:yTe}),[k,b]=r.useState(!1),S=function(e){const a=r.useRef(e);return r.useEffect((()=>{a.current=e})),r.useMemo((()=>(...e)=>a.current?.(...e)),[])}(d),A=bTe(t),w=r.useRef(!1),[M,C]=r.useState(0);return r.useEffect((()=>{const e=p.current;if(e)return e.addEventListener(fTe,S),()=>e.removeEventListener(fTe,S)}),[S]),n.jsx(MTe,{scope:t,orientation:i,dir:f,loop:o,currentTabStopId:v,onItemFocus:r.useCallback((e=>y(e)),[y]),onItemShiftTab:r.useCallback((()=>b(!0)),[]),onFocusableItemAdd:r.useCallback((()=>C((e=>e+1))),[]),onFocusableItemRemove:r.useCallback((()=>C((e=>e-1))),[]),children:n.jsx(dTe.div,{tabIndex:k||0===M?-1:0,"data-orientation":i,...h,ref:g,style:{outline:"none",...e.style},onMouseDown:YCe(e.onMouseDown,(()=>{w.current=!0})),onFocus:YCe(e.onFocus,(e=>{if(e.target===e.currentTarget&&!w.current&&!k){const a=new CustomEvent(fTe,vTe);if(e.currentTarget.dispatchEvent(a),!a.defaultPrevented){const e=A().filter((e=>e.focusable));PTe([e.find((e=>e.active)),e.find((e=>e.id===v)),...e].filter(Boolean).map((e=>e.ref.current)),m)}}w.current=!1})),onBlur:YCe(e.onBlur,(()=>b(!1)))})})})),NTe="RovingFocusGroupItem",ETe=r.forwardRef(((e,a)=>{const{__scopeRovingFocusGroup:t,focusable:i=!0,active:o=!1,tabStopId:s,children:l,...u}=e,c=cTe(),d=s||c,m=CTe(NTe,t),h=m.currentTabStopId===d,p=bTe(t),{onFocusableItemAdd:g,onFocusableItemRemove:f,currentTabStopId:v}=m;return r.useEffect((()=>{if(i)return g(),()=>f()}),[i,g,f]),n.jsx(kTe.ItemSlot,{scope:t,id:d,focusable:i,active:o,children:n.jsx(dTe.span,{tabIndex:h?0:-1,"data-orientation":m.orientation,...u,ref:a,onMouseDown:YCe(e.onMouseDown,(e=>{i?m.onItemFocus(d):e.preventDefault()})),onFocus:YCe(e.onFocus,(()=>m.onItemFocus(d))),onKeyDown:YCe(e.onKeyDown,(e=>{if("Tab"===e.key&&e.shiftKey)return void m.onItemShiftTab();if(e.target!==e.currentTarget)return;const a=function(e,a,n){const t=function(e,a){return"rtl"!==a?e:"ArrowLeft"===e?"ArrowRight":"ArrowRight"===e?"ArrowLeft":e}(e.key,n);return"vertical"===a&&["ArrowLeft","ArrowRight"].includes(t)||"horizontal"===a&&["ArrowUp","ArrowDown"].includes(t)?void 0:_Te[t]}(e,m.orientation,m.dir);if(void 0!==a){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let i=p().filter((e=>e.focusable)).map((e=>e.ref.current));if("last"===a)i.reverse();else if("prev"===a||"next"===a){"prev"===a&&i.reverse();const r=i.indexOf(e.currentTarget);i=m.loop?(t=r+1,(n=i).map(((e,a)=>n[(t+a)%n.length]))):i.slice(r+1)}setTimeout((()=>PTe(i)))}var n,t})),children:"function"==typeof l?l({isCurrentTabStop:h,hasTabStop:null!=v}):l})})}));ETe.displayName=NTe;var _Te={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function PTe(e,a=!1){const n=document.activeElement;for(const t of e){if(t===n)return;if(t.focus({preventScroll:a}),document.activeElement!==n)return}}var jTe=TTe,LTe=ETe;var BTe=e=>{const{present:a,children:n}=e,t=function(e){const[a,n]=r.useState(),t=r.useRef(null),i=r.useRef(e),o=r.useRef("none"),s=e?"mounted":"unmounted",[l,u]=function(e,a){return r.useReducer(((e,n)=>a[e][n]??e),e)}(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return r.useEffect((()=>{const e=RTe(t.current);o.current="mounted"===l?e:"none"}),[l]),sTe((()=>{const a=t.current,n=i.current;if(n!==e){const t=o.current,r=RTe(a);if(e)u("MOUNT");else if("none"===r||"none"===a?.display)u("UNMOUNT");else{u(n&&t!==r?"ANIMATION_OUT":"UNMOUNT")}i.current=e}}),[e,u]),sTe((()=>{if(a){let e;const n=a.ownerDocument.defaultView??window,r=r=>{const o=RTe(t.current).includes(r.animationName);if(r.target===a&&o&&(u("ANIMATION_END"),!i.current)){const t=a.style.animationFillMode;a.style.animationFillMode="forwards",e=n.setTimeout((()=>{"forwards"===a.style.animationFillMode&&(a.style.animationFillMode=t)}))}},s=e=>{e.target===a&&(o.current=RTe(t.current))};return a.addEventListener("animationstart",s),a.addEventListener("animationcancel",r),a.addEventListener("animationend",r),()=>{n.clearTimeout(e),a.removeEventListener("animationstart",s),a.removeEventListener("animationcancel",r),a.removeEventListener("animationend",r)}}u("ANIMATION_END")}),[a,u]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:r.useCallback((e=>{t.current=e?getComputedStyle(e):null,n(e)}),[])}}(a),i="function"==typeof n?n({present:t.isPresent}):r.Children.only(n),o=nTe(t.ref,function(e){let a=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=a&&"isReactWarning"in a&&a.isReactWarning;if(n)return e.ref;if(a=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=a&&"isReactWarning"in a&&a.isReactWarning,n)return e.props.ref;return e.props.ref||e.ref}(i));return"function"==typeof n||t.isPresent?r.cloneElement(i,{ref:o}):null};function RTe(e){return e?.animationName||"none"}BTe.displayName="Presence";var zTe="Tabs",[DTe,OTe]=QCe(zTe,[wTe]),KTe=wTe(),[HTe,ITe]=DTe(zTe),GTe=r.forwardRef(((e,a)=>{const{__scopeTabs:t,value:i,onValueChange:r,defaultValue:o,orientation:s="horizontal",dir:l,activationMode:u="automatic",...c}=e,d=gTe(l),[m,h]=hTe({prop:i,onChange:r,defaultProp:o??"",caller:zTe});return n.jsx(HTe,{scope:t,baseId:cTe(),value:m,onValueChange:h,orientation:s,dir:d,activationMode:u,children:n.jsx(dTe.div,{dir:d,"data-orientation":s,...c,ref:a})})}));GTe.displayName=zTe;var FTe="TabsList",VTe=r.forwardRef(((e,a)=>{const{__scopeTabs:t,loop:i=!0,...r}=e,o=ITe(FTe,t),s=KTe(t);return n.jsx(jTe,{asChild:!0,...s,orientation:o.orientation,dir:o.dir,loop:i,children:n.jsx(dTe.div,{role:"tablist","aria-orientation":o.orientation,...r,ref:a})})}));VTe.displayName=FTe;var JTe="TabsTrigger",UTe=r.forwardRef(((e,a)=>{const{__scopeTabs:t,value:i,disabled:r=!1,...o}=e,s=ITe(JTe,t),l=KTe(t),u=ZTe(s.baseId,i),c=$Te(s.baseId,i),d=i===s.value;return n.jsx(LTe,{asChild:!0,...l,focusable:!r,active:d,children:n.jsx(dTe.button,{type:"button",role:"tab","aria-selected":d,"aria-controls":c,"data-state":d?"active":"inactive","data-disabled":r?"":void 0,disabled:r,id:u,...o,ref:a,onMouseDown:YCe(e.onMouseDown,(e=>{r||0!==e.button||!1!==e.ctrlKey?e.preventDefault():s.onValueChange(i)})),onKeyDown:YCe(e.onKeyDown,(e=>{[" ","Enter"].includes(e.key)&&s.onValueChange(i)})),onFocus:YCe(e.onFocus,(()=>{d||r||!("manual"!==s.activationMode)||s.onValueChange(i)}))})})}));UTe.displayName=JTe;var WTe="TabsContent",qTe=r.forwardRef(((e,a)=>{const{__scopeTabs:t,value:i,forceMount:o,children:s,...l}=e,u=ITe(WTe,t),c=ZTe(u.baseId,i),d=$Te(u.baseId,i),m=i===u.value,h=r.useRef(m);return r.useEffect((()=>{const e=requestAnimationFrame((()=>h.current=!1));return()=>cancelAnimationFrame(e)}),[]),n.jsx(BTe,{present:o||m,children:({present:t})=>n.jsx(dTe.div,{"data-state":m?"active":"inactive","data-orientation":u.orientation,role:"tabpanel","aria-labelledby":c,hidden:!t,id:d,tabIndex:0,...l,ref:a,style:{...e.style,animationDuration:h.current?"0s":void 0},children:t&&s})})}));function ZTe(e,a){return`${e}-trigger-${a}`}function $Te(e,a){return`${e}-content-${a}`}qTe.displayName=WTe;var YTe=VTe,QTe=UTe,XTe=qTe;const exe=GTe,axe=r.forwardRef((({className:e,...a},t)=>n.jsx(YTe,{ref:t,className:oz("inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",e),...a})));axe.displayName=YTe.displayName;const nxe=r.forwardRef((({className:e,...a},t)=>n.jsx(QTe,{ref:t,className:oz("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",e),...a})));nxe.displayName=QTe.displayName;const txe=r.forwardRef((({className:e,...a},t)=>n.jsx(XTe,{ref:t,className:oz("ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e),...a})));txe.displayName=XTe.displayName;const ixe=({type:e})=>{const t=X2(),i=Q2(),{toast:r}=Je(),[o,s]=a.useState(!1),{resetCommunicationGroupToDefault:l,isPending:u}=aa(),c=e===$ke.EMAIL?"Email":"SMS";return n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"flex items-center justify-between",children:n.jsx("div",{className:"flex items-center gap-2",children:!!t&&(t.type===cbe.MANAGED&&(e===$ke.SMS?t.updatedFromDefault?.text_message_body:t.updatedFromDefault?.email_text_body||t.updatedFromDefault?.email_html_body))&&n.jsx(n.Fragment,{children:u?n.jsx(Tq,{}):n.jsx(i3,{variant:"outline",size:"sm",disabled:u,onClick:()=>s(!0),children:"Reset To Default"})})})}),n.jsx(pq,{open:o,onOpenChange:s,children:n.jsxs(yq,{className:"sm:max-w-[425px]",children:[n.jsxs(kq,{children:[n.jsx(Sq,{className:"text-xl font-semibold",children:"Reset To Default"}),n.jsxs(Aq,{className:"text-base text-muted-foreground",children:["Are you sure you want to reset this ",c.toLowerCase()," ","template to its default state? This action cannot be undone."]})]}),n.jsxs(bq,{className:"flex flex-row justify-end gap-3 mt-6",children:[n.jsx(i3,{variant:"outline",onClick:()=>s(!1),children:"Cancel"}),n.jsx(i3,{variant:"destructive",onClick:async()=>{t&&i?l({communicationGroupId:t.id,automationId:i.id,type:e===$ke.EMAIL?"email":"sms"},{onSuccess:()=>{r({title:TD("engage:success.communication_reset","Communication reset to default!")}),s(!1)},onSettled:()=>{s(!1)},onError:()=>{r({title:"Error updating",description:"No sender found",variant:"destructive"})}}):r({title:"Error updating",description:"No sender found",variant:"destructive"})},disabled:u,children:"Reset To Default"})]})]})})]})},rxe=({children:e})=>n.jsx("div",{className:"rounded-lg p-6 bg-background flex-1 min-h-0 flex items-center justify-center overflow-y-auto",children:e}),oxe=({emailBody:e})=>n.jsx(rxe,{children:n.jsx(abe,{html:e})}),sxe=({onOpenChange:e})=>n.jsx("div",{role:"button",tabIndex:0,"aria-label":"Close dialog",onClick:()=>e(!1),onKeyDown:a=>{"Enter"!==a.key&&" "!==a.key||e(!1)},className:"absolute top-3 right-3 z-20 rounded-full p-2 bg-white/80 shadow-lg border border-gray-200 hover:bg-primary/90 hover:text-white active:bg-primary/95 transition-all duration-200 focus:outline-none focus:ring-4 focus:ring-primary/30 focus:ring-offset-2 group cursor-pointer",style:{boxShadow:"0 4px 24px 0 rgba(0,0,0,0.10)"},children:n.jsx(l3.CloseButton,{className:"w-5 h-5 text-primary group-hover:text-primary-foreground group-active:text-primary-foreground transition-colors duration-200"})}),lxe=({expandDialogContent:e})=>{const[t,i]=a.useState(!1);return n.jsxs(n.Fragment,{children:[n.jsx(pq,{open:t,onOpenChange:i,children:n.jsxs(yq,{hideCloseButton:!0,className:"w-[80vw] h-[80vh] max-h-none bg-transparent border-none max-w-screen-lg ",children:[n.jsxs(mq,{children:[n.jsx(Sq,{children:"Expanded Preview"}),n.jsx(Aq,{children:"Expanded view of communication content"})]}),n.jsxs("div",{className:"h-full flex flex-col overflow-hidden rounded-xl",children:[n.jsx(sxe,{onOpenChange:i}),e]})]})}),n.jsx(i3,{size:"sm",variant:"outline",onClick:()=>i(!0),children:n.jsx(l3.ExpandIcon,{className:"w-3 h-3"})})]})},uxe="reach-styles-module__base___r-a1U",cxe=qL([uxe],{variants:{variant:{default:"reach-styles-module__default___vu2Rt",primary:"reach-styles-module__primary___mGKjo",success:"reach-styles-module__success___xn1Y1",warning:"reach-styles-module__warning___jdyU9",error:"reach-styles-module__error___Z-3IS"},size:{default:"reach-styles-module__sizeDefault___oS6W2",sm:"reach-styles-module__sizeSm___GI826",lg:"reach-styles-module__sizeLg___J--WF"},position:{default:"reach-styles-module__positionDefault___visr6",top:"reach-styles-module__positionTop___y6h-n",bottom:"reach-styles-module__positionBottom___vYLkd",inline:"reach-styles-module__positionInline___NjZsw"}},defaultVariants:{variant:"default",size:"default",position:"default"}}),dxe=({channelType:e,title:a,description:t,className:i})=>{const r=("email"===e?"Email":"SMS")+" Channel Disabled",o=`The ${e} channel is currently disabled. To send ${e} messages, please enable the channel on the left sidebar.`;return n.jsx("div",{className:"px-4 w-full",children:n.jsx("div",{className:"max-w-2xl mx-auto",children:n.jsx("div",{className:oz(cxe({variant:"warning",size:"default",position:"inline"}),uxe,"p-4 relative",i),role:"alert",children:n.jsxs("div",{className:"flex items-start",children:[n.jsx("div",{className:"mr-3 shrink-0 pt-0.5",children:n.jsx(oR,{className:"h-5 w-5"})}),n.jsxs("div",{className:"flex-grow",children:[n.jsx("h5",{className:"text-sm font-medium mb-1",children:a||r}),n.jsx("div",{className:"text-sm",children:t||o})]})]})})})})},mxe=({label:e,value:a,className:t})=>n.jsxs("div",{className:"flex items-center gap-1 min-w-0 max-w-full flex-shrink",children:[n.jsxs("span",{className:"sr-only",children:[e,":"]}),n.jsx("span",{className:oz("truncate",t),children:a})]}),hxe=({mergeFieldsResponse:e,disableEditContent:t})=>{const i=Q2(),r=X2(),o=(()=>{const{channelSenders:e}=ate(),{channelAccounts:n}=Qne();return a.useMemo((()=>e?.results&&n?.results?e.results.filter((e=>e.channelSenderMetadata.userPart)).flatMap((e=>{const a=n.results.find((a=>a.id===e.channelAccountId));return!a?.channelAccountMetadata||a.channelAccountMetadata.type!==Xne.REACH_MANAGED&&a.channelAccountMetadata.type!==Xne.REACH_MANAGED_SES?[]:[{channelSenderId:e.id,fullDomain:`${e.channelSenderMetadata.userPart}@${e.channelSenderMetadata.baseDomain}`,channelSenderMetadata:e.channelSenderMetadata}]})):[]),[e?.results,n?.results])})(),{channelSenders:s}=ate(),{updateCommunicationGroup:l}=Qe(),[u,c]=a.useState(!1),{state:{replyToSettingsText:d,replyToSettingsLink:m,fromNameSettingsText:h,fromNameSettingsLink:p}}=a.useContext(wq),[g,f]=a.useState(!1),[v,y]=a.useState(r?.emailChannelSenderId||null),[k,b]=a.useState(r?.emailSubject||null),[S,A]=a.useState(r?.emailPreviewText||null),[w,M]=a.useState(""),[C,T]=a.useState(""),[x,N]=a.useState(!0),[E,_]=a.useState(!1),[P,j]=a.useState(null),[L,B]=a.useState(r?.emailSubject||null),R=Vke(k,500),z=Vke(S,500);if(a.useEffect((()=>{if(s?.results&&v){const e=s.results.find((e=>e.id===v));e&&(E&&!x||T(e.channelSenderMetadata.emailReplyTo),x&&M(e.channelSenderMetadata.emailFromName),N(!1))}}),[s?.results,v,E,x]),a.useEffect((()=>{r?.emailChannelSenderId&&!v&&y(r.emailChannelSenderId),r&&null!==r.emailSubject&&null===k&&(b(r.emailSubject),B(r.emailSubject)),r&&null!==r.emailPreviewText&&null===S&&A(r.emailPreviewText)}),[r,v,k,S]),a.useEffect((()=>{if(v&&R&&r?.id&&!x){f(!0);(async()=>{try{await l({groupId:r.id,params:{emailChannelSenderId:v,emailSubject:R,...z&&{emailPreviewText:z}}})}catch(e){}finally{f(!1)}})()}}),[v,R,z,r?.id,l,x]),!i||!r||!r.emailChannelSenderId)return null;const D=o.find((e=>e.channelSenderId===r.emailChannelSenderId)),O=w||D?.fullDomain,K=k,H=S;return n.jsx("div",{className:"w-full bg-background rounded-lg p-3",children:n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs("div",{className:"flex items-center gap-2 overflow-hidden flex-1",children:[O&&n.jsx(mxe,{label:"From",value:O,className:"font-bold"}),K&&n.jsx(mxe,{label:"Subject",value:n.jsx(gwe,{content:K,mergeFieldsResponse:e,variant:"minimal",className:"font-normal"}),className:"font-normal"}),H&&n.jsx(mxe,{label:"Preview",value:n.jsx(gwe,{content:H,mergeFieldsResponse:e,variant:"minimal",className:"text-muted-foreground/50 italic"}),className:"text-muted-foreground/50 italic"})]}),n.jsxs(Hne,{open:u,onOpenChange:e=>{c(e),""===k?.trim()&&L&&!1===e&&(b(L),j(null))},children:[n.jsx(Ine,{asChild:!0,children:!t&&n.jsxs(i3,{size:"sm",variant:"outline",disabled:i.status!==pa.DRAFT,children:[n.jsx(l3.EditIcon,{className:"w-3 h-3"}),"Edit"]})}),n.jsx(Gne,{className:"w-96",align:"end",children:n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{className:"space-y-2",children:[n.jsx(sve,{className:"text-sm font-medium text-foreground",children:"From Email"}),n.jsxs(zke,{onValueChange:e=>{y(e),N(!0),_(!1)},value:v??void 0,disabled:g,children:[n.jsx(Kke,{className:"bg-background hover:bg-accent/50 focus:bg-accent/50 data-[state=open]:bg-accent/50 transition-colors",children:n.jsx(Oke,{placeholder:"Select email",className:"text-muted-foreground",children:v?o?.find((e=>e.channelSenderId===v))?.fullDomain:""})}),n.jsx(Gke,{children:o?.map((e=>n.jsx(Fke,{value:e.channelSenderId,children:e.fullDomain},e.channelSenderId)))})]})]}),n.jsxs("div",{className:"space-y-2",children:[n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(sve,{className:"text-sm font-medium text-foreground",children:"From Name"}),n.jsx(cse,{title:h||"From name can be configured under settings in the home screen",link:p?{url:p}:void 0})]}),n.jsx("div",{className:"px-3 py-2 text-sm text-muted-foreground bg-muted/50 rounded-md",children:w||n.jsx("span",{className:"italic text-muted-foreground/70",children:"Not set"})})]}),n.jsxs("div",{className:"space-y-2",children:[n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(sve,{className:"text-sm font-medium text-foreground",children:"Reply-To"}),n.jsx(cse,{title:d||"Reply to email can be configured under settings in the home screen",link:m?{url:m}:void 0})]}),n.jsx("div",{className:"px-3 py-2 text-sm text-muted-foreground bg-muted/50 rounded-md",children:C||(v?o?.find((e=>e.channelSenderId===v))?.fullDomain:"")||n.jsx("span",{className:"italic text-muted-foreground/70",children:"Not set"})})]}),n.jsxs("div",{className:"space-y-2",children:[n.jsxs("div",{className:"flex items-center gap-1",children:[n.jsx(sve,{className:"text-sm font-medium text-foreground",children:"Subject"}),n.jsx("span",{className:"text-xs text-red-500 ml-0.5",children:"*"})]}),n.jsx($fe,{value:k,onChange:b,mergeFieldsResponse:e,placeholder:"Enter email subject",className:"bg-background hover:bg-accent/50 focus:bg-accent transition-colors placeholder:text-muted-foreground/50 "+(P?"border-red-300 focus:border-red-500":""),ariaLabel:"Insert merge field into subject"}),P&&n.jsx("p",{className:"text-xs text-red-500 animate-pulse",children:P})]}),n.jsxs("div",{className:"space-y-2",children:[n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(sve,{className:"text-sm font-medium text-foreground",children:"Preview Text"}),n.jsx(cse,{title:"This text will be used for the preview text of the email in the inbox"})]}),n.jsx($fe,{value:S,onChange:A,mergeFieldsResponse:e})]})]})})]})]})})},pxe=({type:e,disablePreviewSubtext:a=!1})=>{const t="sms"===e?"SMS":"Email";return n.jsx("div",{className:"flex flex-1 w-full h-full items-center justify-center",children:n.jsxs("div",{className:"flex flex-col items-center justify-center bg-zinc-50/80 border border-zinc-100 rounded-2xl shadow-md px-6 py-12 max-w-[90vw] w-full sm:max-w-md mx-auto text-center",style:{containerType:"inline-size"},children:[n.jsx("sms"===e?l3.SmsIcon:l3.EmailIcon,{className:"w-12 h-12 text-zinc-500 mb-4"}),n.jsxs("h2",{className:"text-xl font-semibold text-zinc-800 mb-2",children:["No ",t," Content Yet"]}),!a&&n.jsxs("p",{className:"text-zinc-500 text-base mb-1",children:["Click"," ",n.jsx("span",{className:"font-medium text-zinc-700",children:"Edit content"})," to start crafting your ",t," message."]})]})})},gxe=a.forwardRef((({onClick:e},a)=>n.jsxs(i3,{ref:a,variant:"outline",size:"sm",className:"rounded-lg px-3 py-2 flex items-center gap-2 shadow-sm bg-white/80 hover:bg-zinc-100 border border-zinc-200",onClick:e,children:[n.jsx(l3.PreviewButton,{className:"w-4 h-4"}),n.jsx("span",{className:"font-medium text-sm",children:"Test"})]})));gxe.displayName="PreviewButton";const fxe=e=>/^[^\s@.]+(?:\.[^\s@.]+)*@[^\s@.]+(?:\.[^\s@.]+)+$/.test(e),vxe=e=>{if(!/^[0-9\s()+.-]+$/.test(e))return!1;const a=e.replace(/\D/g,"");return e.startsWith("+")?a.length>=10&&a.length<=15:10===a.length||!(11!==a.length||!a.startsWith("1"))},yxe=e=>{const a=e.replace(/\D/g,"");if(10===a.length)return`(${a.slice(0,3)}) ${a.slice(3,6)}-${a.slice(6)}`;if(11===a.length&&a.startsWith("1"))return`+1 (${a.slice(1,4)}) ${a.slice(4,7)}-${a.slice(7)}`;if(a.length>0){const n=e.startsWith("+")?"+":"",t=a.slice((e.startsWith("+"),0));return`${n}${t.match(/.{1,4}/g)?.join("-")||t}`}return e},kxe=({automation:e,type:t,setOpenSendPreviewPopup:i,open:r})=>{const[o,s]=a.useState(""),[l,u]=a.useState(""),[c,d]=a.useState(null),[m,h]=a.useState(!1),[p,g]=a.useState(""),[f,v]=a.useState(!1),{sendTestCommunication:y,sendError:k,isSendSuccess:b}=ea(),{toast:S}=Je(),A=e.actionData?.find((e=>"send_communication"===e.actionType)),w=A?.actionMetadata.communicationGroupId,{communicationGroup:M,isGetting:C}=Ye(w??void 0),{data:T}=J2({includeSegments:e.includeSegmentIds,excludeSegments:e.excludeSegmentIds,automationId:e.id}),x=a.useRef(null),N=a.useMemo((()=>[...T?.recipients??[]].filter((e=>!(!e.firstName||!e.lastName)&&(!("email"===t&&!e.email)&&!("sms"===t&&!e.phone))))),[T?.recipients,t]),E=a.useCallback((()=>{if(!w)return Promise.resolve(null);if(!M)return Promise.reject(new Error("Communication group not loaded"));switch(t){case"email":return Promise.resolve(M.emailChannelSenderId);case"sms":return Promise.resolve(M.smsChannelSenderId);default:return Promise.reject(new Error(`Unsupported type: ${t}`))}}),[M,t,w]);a.useEffect((()=>{(async()=>{try{const e=await E();d(e)}catch(e){d(null)}finally{h(!0)}})()}),[E]),a.useEffect((()=>{b&&(S({title:"Success",description:`Preview ${"email"===t?"email":"SMS"} sent successfully!`}),i(!1))}),[b,t,i,S]),a.useEffect((()=>{k&&(S({title:"Error",description:`Failed to send preview: ${k.message}`,variant:"destructive"}),i(!1))}),[k,S,i]),a.useEffect((()=>{r&&(s(""),u(""),g(""),v(!1))}),[r]),a.useEffect((()=>{!r&&f&&setTimeout((()=>{document.body.style.pointerEvents=""}),0)}),[r,f]);const _="email"===t?"email address":"phone number",P="email"===t?"email":"text";if(!m||C||!T)return n.jsx("div",{className:"flex justify-center items-center h-full",children:n.jsx(Tq,{text:["Fetching sender data","Fetching recipients"]})});if(!c)return n.jsx("div",{className:"flex justify-center items-center h-full",children:n.jsxs("div",{className:"text-center flex flex-col justify-center items-center gap-2",children:[n.jsx(l3.AlertCircleIcon,{className:"h-12 w-12 text-gray-400 mb-4"}),n.jsx("h3",{className:"text-lg font-semibold text-gray-700 mb-2",children:"No sender found"}),n.jsx("p",{className:"text-gray-500",children:"Please update the automation to include a sender for this type"})]})});const j="email"===t&&(null===M?.emailSubject||null===M?.emailChannelSenderId);return n.jsxs("div",{className:"",ref:x,children:[n.jsxs("h3",{className:"text-xl font-semibold text-gray-900 mb-4",children:["Send Test ",P]}),n.jsx(L7,{type:"email"===t?"email":"tel",placeholder:`Enter ${_}`,value:o,onChange:e=>{s(e.target.value),u("")},className:"w-full px-3 py-3 border border-gray-300 rounded-lg text-base \n focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent\n placeholder-gray-400"}),n.jsxs("p",{className:"text-sm text-muted-foreground mt-1.5",children:["Enter a ",_," to preview this ",P,"."]}),n.jsx("div",{className:"my-4 border-t border-gray-200"}),n.jsxs("div",{className:"mb-4",children:[n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsxs(zke,{value:p,onValueChange:e=>{g(e)},onOpenChange:e=>{v(e),!e&&x.current&&x.current.focus()},children:[n.jsx(Kke,{className:"w-full bg-white border border-gray-300 rounded-lg text-base\n focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent",children:n.jsx(Oke,{children:p?T?.recipients.find((e=>e.id===p))?.firstName+" "+T?.recipients.find((e=>e.id===p))?.lastName:"Preview as"})}),n.jsx(Gke,{position:"popper",className:"z-[100]",children:n.jsx(Dke,{children:N.map((e=>n.jsx(Fke,{value:e.id,className:"cursor-pointer hover:bg-gray-50",children:n.jsxs("div",{className:"flex flex-col",children:[n.jsxs("span",{className:"font-medium",children:[e.firstName," ",e.lastName]}),n.jsxs("span",{className:"text-sm text-muted-foreground",children:[e.email&&`Email: ${e.email}`,e.email&&e.phone&&" • ",e.phone&&`Phone: ${e.phone}`]})]})},`${e.firstName}-${e.lastName}`)))})})]}),p&&n.jsxs(n.Fragment,{children:[n.jsx(i3,{variant:"ghost",size:"icon",onClick:()=>g(""),disabled:j,className:`h-10 w-10 rounded-lg hover:bg-gray-100 ${j&&"cursor-not-allowed"}`,title:"Clear selection",children:n.jsx(l3.CloseButton,{className:"h-4 w-4 text-gray-500"})}),j&&n.jsx("p",{className:"text-xs text-amber-600 mt-1",children:"Please select a sender and subject first"})]})]}),n.jsxs("p",{className:"text-sm text-muted-foreground mt-1.5",children:["Test using real customer data to preview how merge tags (like name) will appear. If left blank, you'll see raw placeholders (e.g."," ","{{First Name}}",")."]}),n.jsx("p",{className:"text-xs text-muted-foreground mt-1.5",children:"Note: Any merge fields that can only be calculated at send time will be empty"})]}),l&&n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"my-4 border-t border-gray-200"}),n.jsx("p",{className:"text-red-500 text-sm mb-4 -mt-2",children:l})]}),n.jsx(i3,{onClick:()=>{if(!("email"===t?fxe(o):vxe(o)))return void u(`Please enter a ${_}`);if(!c)return void u("No sender found, please update the automation first!");const a=e.actionData?.find((e=>"send_communication"===e.actionType)),n=a?.actionMetadata.communicationGroupId;if(!n)return Promise.resolve(null);y({id:n,params:"email"===t?{emailAddress:o,previewAsRecipientId:p}:{phoneNumber:o,previewAsRecipientId:p}})},disabled:!o,className:"w-full disabled:cursor-not-allowed",children:"Send Test"})]})},bxe=({open:e,onOpenChange:a,automation:t})=>n.jsx(pq,{open:e,onOpenChange:a,children:n.jsxs(yq,{children:[n.jsxs(mq,{children:[n.jsx(Sq,{children:"Send Preview Email"}),n.jsx(Aq,{children:"Send a preview email to the automation."})]}),n.jsx(kxe,{automation:t,type:"email",setOpenSendPreviewPopup:a,open:e})]})}),Sxe=({disablePreview:e=!1,disableEditContent:t=!1,disablePreviewSubtext:i=!1})=>{const r=Q2(),o=X2(),{channelSenders:s}=ate(),{channelAccounts:l}=Qne(),{data:u,isLoading:c}=qke(),{state:{selectedActionId:d}}=a.useContext(K2),[m,h]=a.useState(!1),[p,g]=a.useState(!1),[f,v]=a.useState(null),[y,k]=a.useState(!1),[b,S]=a.useState(!1),[A,w]=a.useState({width:0,height:0}),{getMergeFields:M}=Xe(o?.id??void 0);a.useEffect((()=>{null===f&&u&&p&&(u?.uiDefaults||v(!0),u?.uiDefaults?.emailHelpDialogShow&&!f&&v(!0))}),[u,f,p]),a.useEffect((()=>{const e=()=>{w({width:window.innerWidth,height:window.innerHeight})};return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[]);if(!r||!o||void 0===s||void 0===l||!d||c)return null;const C=o.emailCompiledHtml||o.emailHtmlBody||"",T=C.length&&C.length>0,x=pbe({channelSenders:s?.results??[],channelAccounts:l?.results??[]}),N=o.emailChannelSenderId?o.emailSubject?o.emailHtmlBody?null:"Please first ensure you have an email content":"Please first ensure you have an email subject":"Please first select an email sender",E=r.status===pa.DRAFT&&!t,_=!e&&T,P=!o.emailChannelSenderId||0===x.length,j=()=>{if(t)return null;const e=n.jsxs(i3,{size:"sm",variant:"outline",disabled:!E,className:oz(!E&&"cursor-not-allowed"),onClick:()=>g(!0),children:[n.jsx(l3.EditIcon,{className:"w-3 h-3"}),"Edit"]});return E?e:n.jsx(cse,{alertText:"You can only edit the content if we are in the draft state.",asChild:!0,className:"cursor-not-allowed",children:n.jsx("div",{className:"inline-block cursor-not-allowed",children:e})})},L=()=>{const e=n.jsx(gxe,{onClick:()=>h(!0)});return N?n.jsx(cse,{alertText:"Unable to send preview",title:"There was an error preparing the preview. Please check your automation configuration.",className:"inline-block",asChild:!0,children:e}):e};return n.jsxs("div",{className:"flex-1 flex flex-col items-center pt-4",children:[n.jsx(pq,{open:null!==f&&f,onOpenChange:v,children:n.jsxs(yq,{className:"max-h-[86vh] gap-0 overflow-visible max-w-3xl w-full h-full",children:[n.jsxs(mq,{children:[n.jsx(Sq,{children:"Email Preview Help"}),n.jsx(Aq,{children:"Learn more about the email preview and how to use it to create your email."})]}),n.jsx(tbe,{})]})}),n.jsx(pq,{open:p,onOpenChange:g,children:n.jsxs(yq,{className:"min-w-[100vw] min-h-[100vh]",hideCloseButton:!0,onEscapeKeyDown:e=>{e.preventDefault()},children:[n.jsxs(mq,{children:[n.jsx(Sq,{children:"Email Editor"}),n.jsx(Aq,{children:"Edit your email content using the visual editor. Use the details section above to modify sender and subject settings."})]}),n.jsxs("div",{className:"w-full h-full",children:[n.jsxs("div",{className:"flex justify-between items-center p-1 border-b",children:[n.jsx("div",{className:"flex items-center gap-2",children:n.jsx(i3,{size:"sm",onClick:()=>v(!0),children:n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx("span",{className:"font-medium text-sm",children:"Help"}),n.jsx(l3.InfoIcon,{className:"w-4 h-4"})]})})}),n.jsx("div",{className:"flex items-center gap-2",children:n.jsx(Yfe,{})}),n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(i3,{variant:"destructive",onClick:()=>{S(!0)},className:"text-sm px-3 py-1 rounded",children:"Cancel"}),n.jsx(i3,{onClick:()=>k(!0),className:"text-sm px-3 py-1 rounded",children:"Save"})]})]}),r&&M&&n.jsx(lbe,{cancelClicked:b,setCancelClicked:S,showStripoEditor:p,automation:r,setShowStripoEditor:g,saveClicked:y,setSaveClicked:k,stripoDialogDimensions:A,mergeFieldsResponse:M,actionId:d})]})]})}),x.length>0&&n.jsx(bxe,{open:m,onOpenChange:h,automation:r}),P&&n.jsx(dxe,{channelType:"email"}),T?n.jsx("div",{className:"flex-1 w-full flex flex-col overflow-y-auto",children:n.jsx("div",{className:"flex flex-col space-y-4 px-4 pt-4 pb-20",children:n.jsxs("div",{className:"flex flex-col space-y-4 px-4 pb-20",children:[n.jsx("div",{className:"w-full flex-shrink-0 max-w-2xl mx-auto rounded-md",children:n.jsx(hxe,{mergeFieldsResponse:M,disableEditContent:t})}),n.jsxs("div",{className:"rounded-lg bg-background flex-1 min-h-0 flex flex-col items-center max-w-2xl mx-auto w-full",children:[n.jsxs("div",{className:"flex items-center space-x-2 w-full justify-end p-3",children:[n.jsx(ixe,{type:$ke.EMAIL}),n.jsx(j,{}),_&&n.jsx(L,{}),T&&n.jsx(lxe,{expandDialogContent:n.jsx(oxe,{emailBody:C})})]}),n.jsx(abe,{html:C})]}),n.jsx("p",{className:"text-center text-sm text-muted-foreground flex-shrink-0 pt-4",children:"These previews show generally how your messages will appear to your customers"})]})})}):n.jsxs(n.Fragment,{children:[P&&n.jsx(dxe,{channelType:"email",className:"pt-4"}),n.jsx(pxe,{type:"email",disablePreviewSubtext:i})]})]})},Axe=({smsBody:e,imageUrls:a})=>n.jsx(rxe,{children:n.jsx(fwe,{body:e,imageUrls:a})}),wxe=({open:e,onOpenChange:a,automation:t})=>n.jsx(pq,{open:e,onOpenChange:a,children:n.jsxs(yq,{children:[n.jsxs(mq,{children:[n.jsx(Sq,{children:"Send Preview SMS"}),n.jsx(Aq,{children:"Send a preview SMS to the automation."})]}),n.jsx(kxe,{automation:t,type:"sms",setOpenSendPreviewPopup:a,open:e})]})}),Mxe=({label:e,value:a,className:t})=>n.jsxs("div",{className:"flex items-center gap-1 min-w-0 max-w-full flex-shrink",children:[n.jsxs("span",{className:"sr-only",children:[e,":"]}),n.jsx("span",{className:oz("truncate",t),children:a})]}),Cxe=a.memo(a.forwardRef(((e,a)=>n.jsxs(i3,{size:"sm",variant:"outline",ref:a,...e,children:[n.jsx(l3.EditIcon,{className:"w-3 h-3"}),"Edit"]})))),Txe=a.memo((({trigger:e,communicationGroupId:a,initialSenderId:t,companyName:i})=>n.jsx(UCe,{communicationGroupId:a,initialSenderId:t,companyName:i,trigger:e}))),xxe=({disableEditContent:e})=>{const t=Q2(),i=X2(),{channelSenders:r}=ate(),{channelAccounts:o}=Qne(),{data:s}=rte(),l=i?.smsMessageBody||null,u=a.useMemo((()=>Kre({channelSenders:r?.results??[],channelAccounts:o?.results??[],smsApplication:s})),[r?.results,o?.results,s]),c=u?.find((e=>e.channelSender.id===i?.smsChannelSenderId)),d=c?.channelSender.channelSenderMetadata.from&&null!==c.channelSender.channelSenderMetadata.from?c.channelSender.channelSenderMetadata.from:null,m=c?.channelSender.channelSenderMetadata.friendlyName??(d&&null!==d?yxe(d??""):c?.channelSender.channelSenderMetadata.messageServiceSid);if(!(t&&i&&r&&o&&u&&(void 0!==s||c)))return null;const h=l?l.length>50?l.substring(0,50)+"...":l:null;return n.jsx("div",{className:"w-full bg-background rounded-lg p-3",children:n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs("div",{className:"flex items-center gap-2 overflow-hidden flex-1",children:[m&&n.jsx(Mxe,{label:"From",value:m,className:"font-bold"}),i?.textMessageCompanyName&&n.jsx(Mxe,{label:"Company",value:i.textMessageCompanyName,className:"font-normal"}),h&&n.jsx(Mxe,{label:"Message",value:h,className:"text-muted-foreground/50 italic"})]}),!e&&n.jsx(Txe,{trigger:n.jsx(Cxe,{}),communicationGroupId:i.id,initialSenderId:i.smsChannelSenderId,companyName:i.textMessageCompanyName})]})})},Nxe=({disablePreview:e=!1,disableEditContent:t=!1})=>{const[i,r]=a.useState(!1),{channelSenders:o}=ate(),{data:l}=ye({queryKey:["business"],queryFn:async()=>(await Be(s)).data,staleTime:1/0,gcTime:1/0,refetchOnMount:!1,refetchOnWindowFocus:!1,refetchOnReconnect:!1}),{channelAccounts:u}=Qne(),c=Q2(),d=X2(),[m,h]=a.useState(!1),{data:p}=rte(),g=a.useRef(!1),{updateCommunicationGroup:f,isUpdating:v}=Qe(),y=Kre({channelSenders:o?.results??[],channelAccounts:u?.results??[],smsApplication:p}),k=y.find((e=>e.channelSender.id===d?.smsChannelSenderId)),b=a.useMemo((()=>d?.textMessageMediaUrls??[]),[d?.textMessageMediaUrls]),S=d?.smsMessageBody||"",A=y.length>0;if(a.useEffect((()=>{if(!g.current&&!0===A&&d?.id&&void 0!==l&&void 0!==d&&!1===v){let e={};void 0===d?.textMessageCompanyName&&l?.name&&(e.textMessageCompanyName=l.name),0===S.length&&(e.smsMessageBody="Hello 👋!"),void 0===d?.smsChannelSenderId&&y[0]?.channelSender?.id&&(e.smsChannelSenderId=y[0].channelSender.id),Object.keys(e).length>0?(g.current=!0,f({groupId:d.id,params:e})):g.current=!0}}),[d?.id,d?.textMessageCompanyName,d?.smsMessageBody,A,S,f,l,d?.smsChannelSenderId,y,d,v]),!c||void 0===o)return null;const w=!k?.smsApplication||k.smsApplication.status===Ore.APPROVED,M=dwe({companyName:d?.textMessageCompanyName??void 0,smsBody:S});let C=null;d?.smsChannelSenderId||(C="Please first select a sms sender"),d?.smsMessageBody||(C="Please first ensure you have a sms content");const T=c.status===pa.DRAFT&&!t,x=!e&&w,N=!d?.smsChannelSenderId||0===y.length,E=()=>{if(t)return null;const e=n.jsxs(i3,{size:"sm",variant:"outline",disabled:!T,className:oz(!T&&"cursor-not-allowed"),onClick:()=>{h(!0)},children:[n.jsx(l3.EditIcon,{className:"w-3 h-3"}),"Edit"]});return T?e:n.jsx(cse,{alertText:"You can only edit the content if we are in the draft state.",asChild:!0,className:"cursor-not-allowed",children:n.jsx("div",{className:"inline-block cursor-not-allowed",children:e})})},_=()=>{const e=n.jsx(gxe,{onClick:()=>r(!0)});return C?n.jsx(cse,{alertText:"Unable to send preview",title:"There was an error preparing the preview. Please check your automation configuration.",className:"inline-block",asChild:!0,children:e}):e};return n.jsx("div",{className:"h-full",children:!1===A?n.jsx("div",{className:"w-full pt-8 mx-auto",children:n.jsx(cwe,{})}):n.jsxs(M2.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},transition:{duration:.3,ease:[.16,1,.3,1]},className:"flex-1 flex flex-col items-center h-full",children:[n.jsx(wxe,{open:i,onOpenChange:r,automation:c}),n.jsx(pq,{open:m,onOpenChange:h,children:n.jsxs(yq,{hideCloseButton:!0,className:"max-w-[90vw] @container",children:[n.jsxs(mq,{children:[n.jsx(Sq,{children:"SMS Editor"}),n.jsx(Aq,{children:"Learn more about the SMS editor and how to use it to create your SMS."})]}),n.jsx(qCe,{communicationGroupId:d?.id||"",initialMessage:S,initialImageUrls:b,companyName:d?.textMessageCompanyName,initialSenderId:d?.smsChannelSenderId}),n.jsx("div",{className:"flex justify-end mt-6",children:n.jsx(i3,{variant:"outline",onClick:()=>h(!1),disabled:v,className:"px-4",children:"Close"})})]})}),N&&n.jsx(dxe,{channelType:"sms"}),A?n.jsx("div",{className:"flex-1 w-full flex flex-col overflow-y-auto",children:n.jsx("div",{className:"flex flex-col space-y-4 px-4 pt-4 pb-20",children:n.jsxs("div",{className:"flex flex-col space-y-4 px-4 pt-4 pb-20",children:[n.jsx("div",{className:"w-full flex-shrink-0 max-w-2xl mx-auto rounded-md",children:n.jsx(xxe,{disableEditContent:t})}),n.jsxs("div",{className:"rounded-lg bg-background flex-1 min-h-0 flex flex-col items-center max-w-2xl mx-auto w-full",children:[n.jsxs("div",{className:"flex items-center space-x-2 w-full justify-end p-3",children:[n.jsx(ixe,{type:$ke.SMS}),n.jsx(E,{}),x&&n.jsx(_,{}),A&&n.jsx(lxe,{expandDialogContent:n.jsx(Axe,{smsBody:M,imageUrls:b})})]}),n.jsx(fwe,{body:M,imageUrls:b})]}),n.jsx("p",{className:"text-center text-sm text-muted-foreground flex-shrink-0 pt-4",children:"These previews show generally how your messages will appear to your customers"})]})})}):n.jsxs(n.Fragment,{children:[N&&n.jsx(dxe,{channelType:"sms",className:"pt-4"}),n.jsx(pxe,{type:$ke.SMS})]})]})})},Exe=({disablePreview:e=!1,disableEditContent:t=!1,disablePreviewSubtext:i=!1})=>{const[r,o]=a.useState(null),s=X2(),{channelAccounts:l}=Qne(),{state:{hideSms:u}}=a.useContext(wq),{channelSenders:c}=ate(),{data:d}=rte(),m=a.useMemo((()=>Kre({channelSenders:c?.results??[],channelAccounts:l?.results??[],smsApplication:d})),[c?.results,l?.results,d]);if(a.useEffect((()=>{r||o(s?.emailChannelSenderId?"email":"sms")}),[s?.emailChannelSenderId,r]),!s||!c||!r)return n.jsx("div",{className:"flex flex-col gap-4 pt-4 flex-1 bg-muted rounded-md",children:n.jsx(Tq,{text:["Loading..."]})});const h=!s?.smsChannelSenderId||u,p=!s?.emailChannelSenderId,g=0===m.length&&!d;return n.jsxs(exe,{defaultValue:"email",value:r,onValueChange:e=>o("email"===e?"email":"sms"),className:"flex flex-col gap-4 flex-1 bg-muted rounded-md",children:[n.jsx("div",{className:"max-w-[640px] mx-auto w-full",children:n.jsxs(axe,{className:"grid w-full "+(h||p?"grid-cols-1":"grid-cols-2"),children:[!p&&n.jsx(nxe,{value:"email",className:"group data-[state=active]:bg-white",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx(l3.EmailIcon,{className:"w-4 h-4 mr-2 hidden group-data-[state=active]:block text-primary"}),n.jsx(l3.EmailIcon,{className:"w-4 h-4 mr-2 block group-data-[state=active]:hidden text-gray-400"}),n.jsx("span",{children:"Email"})]})}),!h&&n.jsx(nxe,{value:"sms",className:"group data-[state=active]:bg-white",children:n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(l3.SmsIcon,{className:"w-4 h-4 mr-2 hidden group-data-[state=active]:block text-primary"}),n.jsx(l3.SmsIcon,{className:"w-4 h-4 mr-2 block group-data-[state=active]:hidden text-gray-400"}),n.jsx("span",{children:"SMS"}),g&&n.jsx(cse,{title:"To enable SMS, please complete your business information and request approval from Twilio"})]})})]})}),n.jsx(txe,{value:"email",children:n.jsx(Sxe,{disablePreview:e,disableEditContent:t,disablePreviewSubtext:i})}),n.jsx(txe,{value:"sms",children:n.jsx(Nxe,{disablePreview:e,disableEditContent:t})})]})},_xe="reach-styles-module__h2___J-48W",Pxe="reach-styles-module__h3___QiFj-",jxe="reach-styles-module__minorText___1TEN6",Lxe=({children:e,className:a})=>n.jsx("h2",{className:oz(_xe,a),children:e}),Bxe=({children:e,className:a})=>n.jsx("h3",{className:oz(Pxe,a),children:e}),Rxe=({children:e,className:a})=>n.jsx("p",{className:oz(jxe,a),children:e}),zxe=({title:e,children:a,headerActions:t})=>n.jsxs("div",{className:"max-w-[1000px] mx-auto w-full flex-1 flex flex-col gap-4 pt-4",children:[n.jsxs("div",{className:"px-4 flex",children:[n.jsx(Lxe,{className:"text-primary",children:e}),t&&n.jsx("div",{className:"ml-auto",children:t})]}),a]}),Dxe=()=>n.jsx(zxe,{title:"Preview & Schedule",children:n.jsx(Exe,{disablePreview:!0,disableEditContent:!0,disablePreviewSubtext:!0})}),Oxe=()=>{const e=Q2(),t=X2(),{channelSenders:i}=ate(),{channelAccounts:r}=Qne(),{data:o}=rte(),[s,l]=a.useState(null),[u,c]=a.useState(null),[d,m]=a.useState(null),[h,p]=a.useState(null);return a.useEffect((()=>{i&&m(i),r&&p(r)}),[i,r]),a.useEffect((()=>{if(t&&d&&h){const e=t.emailChannelSenderId,a=t.smsChannelSenderId,n=d.results.find((a=>a.id===e)),i=d.results.find((e=>e.id===a));if(n&&t.emailSubject&&t.emailHtmlBody){const e=n.channelSenderMetadata?.userPart,a=h.results.find((e=>e.id===n.channelAccountId));if(a)switch(a.channelAccountMetadata.type){case Xne.REACH_MANAGED:l({fromEmail:`${e}@${a.channelAccountMetadata.baseDomain}.embedreach.com`,fromName:n.channelSenderMetadata?.emailFromName,subject:t.emailSubject,previewText:t.emailPreviewText,body:t.emailHtmlBody});break;case Xne.REACH_MANAGED_SES:l({fromEmail:`${e}@${a.channelAccountMetadata.baseDomain}.embedreach.com`,fromName:n.channelSenderMetadata?.emailFromName,subject:t.emailSubject,previewText:t.emailPreviewText,body:t.emailHtmlBody});break;case Xne.TWILLIO:break;default:throw Fne(a.channelAccountMetadata.type,Xne)}}(o||i)&&t.smsMessageBody&&c({fromPhone:i?$Ce(i.channelSenderMetadata):"",body:t.smsMessageBody,companyName:t.textMessageCompanyName})}}),[t,d,h,o]),e?n.jsx("div",s||u?{className:"w-full",children:n.jsx("div",{className:"flex flex-col gap-4 w-full",children:n.jsx(Dxe,{})})}:{className:"flex justify-center items-center h-full",children:n.jsx("div",{children:"No preview data Please complete previous steps"})}):n.jsx(Tq,{text:["Loading..."]})};function Kxe(e){return(Kxe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Hxe(e){if(null===e||!0===e||!1===e)return NaN;var a=Number(e);return isNaN(a)?a:a<0?Math.ceil(a):Math.floor(a)}function Ixe(e,a){if(a.length<e)throw new TypeError(e+" argument"+(e>1?"s":"")+" required, but only "+a.length+" present")}function Gxe(e){Ixe(1,arguments);var a=Object.prototype.toString.call(e);return e instanceof Date||"object"===Kxe(e)&&"[object Date]"===a?new Date(e.getTime()):"number"==typeof e||"[object Number]"===a?new Date(e):new Date(NaN)}function Fxe(e,a){Ixe(2,arguments);var n=Gxe(e),t=Hxe(a);return isNaN(t)?new Date(NaN):t?(n.setDate(n.getDate()+t),n):n}function Vxe(e,a){Ixe(2,arguments);var n=Gxe(e),t=Hxe(a);if(isNaN(t))return new Date(NaN);if(!t)return n;var i=n.getDate(),r=new Date(n.getTime());return r.setMonth(n.getMonth()+t+1,0),i>=r.getDate()?r:(n.setFullYear(r.getFullYear(),r.getMonth(),i),n)}var Jxe={};function Uxe(){return Jxe}function Wxe(e,a){var n,t,i,r,o,s,l,u;Ixe(1,arguments);var c=Uxe(),d=Hxe(null!==(n=null!==(t=null!==(i=null!==(r=null==a?void 0:a.weekStartsOn)&&void 0!==r?r:null==a||null===(o=a.locale)||void 0===o||null===(s=o.options)||void 0===s?void 0:s.weekStartsOn)&&void 0!==i?i:c.weekStartsOn)&&void 0!==t?t:null===(l=c.locale)||void 0===l||null===(u=l.options)||void 0===u?void 0:u.weekStartsOn)&&void 0!==n?n:0);if(!(d>=0&&d<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var m=Gxe(e),h=m.getDay(),p=(h<d?7:0)+h-d;return m.setDate(m.getDate()-p),m.setHours(0,0,0,0),m}function qxe(e){return Ixe(1,arguments),Wxe(e,{weekStartsOn:1})}function Zxe(e){Ixe(1,arguments);var a=function(e){Ixe(1,arguments);var a=Gxe(e),n=a.getFullYear(),t=new Date(0);t.setFullYear(n+1,0,4),t.setHours(0,0,0,0);var i=qxe(t),r=new Date(0);r.setFullYear(n,0,4),r.setHours(0,0,0,0);var o=qxe(r);return a.getTime()>=i.getTime()?n+1:a.getTime()>=o.getTime()?n:n-1}(e),n=new Date(0);return n.setFullYear(a,0,4),n.setHours(0,0,0,0),qxe(n)}function $xe(e){var a=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return a.setUTCFullYear(e.getFullYear()),e.getTime()-a.getTime()}function Yxe(e){Ixe(1,arguments);var a=Gxe(e);return a.setHours(0,0,0,0),a}function Qxe(e,a){Ixe(2,arguments);var n=Yxe(e),t=Yxe(a),i=n.getTime()-$xe(n),r=t.getTime()-$xe(t);return Math.round((i-r)/864e5)}function Xxe(e,a){return Ixe(2,arguments),Fxe(e,7*Hxe(a))}function eNe(e,a){return Ixe(2,arguments),Vxe(e,12*Hxe(a))}function aNe(e,a){Ixe(2,arguments);var n=Yxe(e),t=Yxe(a);return n.getTime()===t.getTime()}function nNe(e){return Ixe(1,arguments),e instanceof Date||"object"===Kxe(e)&&"[object Date]"===Object.prototype.toString.call(e)}function tNe(e,a){Ixe(2,arguments);var n=Gxe(e),t=Gxe(a);return 12*(n.getFullYear()-t.getFullYear())+(n.getMonth()-t.getMonth())}function iNe(e){Ixe(1,arguments);var a=Gxe(e),n=a.getMonth();return a.setFullYear(a.getFullYear(),n+1,0),a.setHours(23,59,59,999),a}function rNe(e){Ixe(1,arguments);var a=Gxe(e);return a.setDate(1),a.setHours(0,0,0,0),a}function oNe(e){Ixe(1,arguments);var a=Gxe(e),n=new Date(0);return n.setFullYear(a.getFullYear(),0,1),n.setHours(0,0,0,0),n}function sNe(e,a){var n,t,i,r,o,s,l,u;Ixe(1,arguments);var c=Uxe(),d=Hxe(null!==(n=null!==(t=null!==(i=null!==(r=null==a?void 0:a.weekStartsOn)&&void 0!==r?r:null==a||null===(o=a.locale)||void 0===o||null===(s=o.options)||void 0===s?void 0:s.weekStartsOn)&&void 0!==i?i:c.weekStartsOn)&&void 0!==t?t:null===(l=c.locale)||void 0===l||null===(u=l.options)||void 0===u?void 0:u.weekStartsOn)&&void 0!==n?n:0);if(!(d>=0&&d<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var m=Gxe(e),h=m.getDay(),p=6+(h<d?-7:0)-(h-d);return m.setDate(m.getDate()+p),m.setHours(23,59,59,999),m}function lNe(e){return Ixe(1,arguments),sNe(e,{weekStartsOn:1})}function uNe(e,a){return Ixe(2,arguments),function(e,a){Ixe(2,arguments);var n=Gxe(e).getTime(),t=Hxe(a);return new Date(n+t)}(e,-Hxe(a))}function cNe(e){Ixe(1,arguments);var a=Gxe(e),n=a.getUTCDay(),t=(n<1?7:0)+n-1;return a.setUTCDate(a.getUTCDate()-t),a.setUTCHours(0,0,0,0),a}function dNe(e){Ixe(1,arguments);var a=Gxe(e),n=a.getUTCFullYear(),t=new Date(0);t.setUTCFullYear(n+1,0,4),t.setUTCHours(0,0,0,0);var i=cNe(t),r=new Date(0);r.setUTCFullYear(n,0,4),r.setUTCHours(0,0,0,0);var o=cNe(r);return a.getTime()>=i.getTime()?n+1:a.getTime()>=o.getTime()?n:n-1}function mNe(e){Ixe(1,arguments);var a=Gxe(e),n=cNe(a).getTime()-function(e){Ixe(1,arguments);var a=dNe(e),n=new Date(0);return n.setUTCFullYear(a,0,4),n.setUTCHours(0,0,0,0),cNe(n)}(a).getTime();return Math.round(n/6048e5)+1}function hNe(e,a){var n,t,i,r,o,s,l,u;Ixe(1,arguments);var c=Uxe(),d=Hxe(null!==(n=null!==(t=null!==(i=null!==(r=null==a?void 0:a.weekStartsOn)&&void 0!==r?r:null==a||null===(o=a.locale)||void 0===o||null===(s=o.options)||void 0===s?void 0:s.weekStartsOn)&&void 0!==i?i:c.weekStartsOn)&&void 0!==t?t:null===(l=c.locale)||void 0===l||null===(u=l.options)||void 0===u?void 0:u.weekStartsOn)&&void 0!==n?n:0);if(!(d>=0&&d<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var m=Gxe(e),h=m.getUTCDay(),p=(h<d?7:0)+h-d;return m.setUTCDate(m.getUTCDate()-p),m.setUTCHours(0,0,0,0),m}function pNe(e,a){var n,t,i,r,o,s,l,u;Ixe(1,arguments);var c=Gxe(e),d=c.getUTCFullYear(),m=Uxe(),h=Hxe(null!==(n=null!==(t=null!==(i=null!==(r=null==a?void 0:a.firstWeekContainsDate)&&void 0!==r?r:null==a||null===(o=a.locale)||void 0===o||null===(s=o.options)||void 0===s?void 0:s.firstWeekContainsDate)&&void 0!==i?i:m.firstWeekContainsDate)&&void 0!==t?t:null===(l=m.locale)||void 0===l||null===(u=l.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==n?n:1);if(!(h>=1&&h<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var p=new Date(0);p.setUTCFullYear(d+1,0,h),p.setUTCHours(0,0,0,0);var g=hNe(p,a),f=new Date(0);f.setUTCFullYear(d,0,h),f.setUTCHours(0,0,0,0);var v=hNe(f,a);return c.getTime()>=g.getTime()?d+1:c.getTime()>=v.getTime()?d:d-1}function gNe(e,a){Ixe(1,arguments);var n=Gxe(e),t=hNe(n,a).getTime()-function(e,a){var n,t,i,r,o,s,l,u;Ixe(1,arguments);var c=Uxe(),d=Hxe(null!==(n=null!==(t=null!==(i=null!==(r=null==a?void 0:a.firstWeekContainsDate)&&void 0!==r?r:null==a||null===(o=a.locale)||void 0===o||null===(s=o.options)||void 0===s?void 0:s.firstWeekContainsDate)&&void 0!==i?i:c.firstWeekContainsDate)&&void 0!==t?t:null===(l=c.locale)||void 0===l||null===(u=l.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==n?n:1),m=pNe(e,a),h=new Date(0);return h.setUTCFullYear(m,0,d),h.setUTCHours(0,0,0,0),hNe(h,a)}(n,a).getTime();return Math.round(t/6048e5)+1}function fNe(e,a){for(var n=e<0?"-":"",t=Math.abs(e).toString();t.length<a;)t="0"+t;return n+t}var vNe=function(e,a){var n=e.getUTCFullYear(),t=n>0?n:1-n;return fNe("yy"===a?t%100:t,a.length)},yNe=function(e,a){var n=e.getUTCMonth();return"M"===a?String(n+1):fNe(n+1,2)},kNe=function(e,a){return fNe(e.getUTCDate(),a.length)},bNe=function(e,a){return fNe(e.getUTCHours()%12||12,a.length)},SNe=function(e,a){return fNe(e.getUTCHours(),a.length)},ANe=function(e,a){return fNe(e.getUTCMinutes(),a.length)},wNe=function(e,a){return fNe(e.getUTCSeconds(),a.length)},MNe=function(e,a){var n=a.length,t=e.getUTCMilliseconds();return fNe(Math.floor(t*Math.pow(10,n-3)),a.length)},CNe="midnight",TNe="noon",xNe="morning",NNe="afternoon",ENe="evening",_Ne="night",PNe={G:function(e,a,n){var t=e.getUTCFullYear()>0?1:0;switch(a){case"G":case"GG":case"GGG":return n.era(t,{width:"abbreviated"});case"GGGGG":return n.era(t,{width:"narrow"});default:return n.era(t,{width:"wide"})}},y:function(e,a,n){if("yo"===a){var t=e.getUTCFullYear();return n.ordinalNumber(t>0?t:1-t,{unit:"year"})}return vNe(e,a)},Y:function(e,a,n,t){var i=pNe(e,t),r=i>0?i:1-i;return"YY"===a?fNe(r%100,2):"Yo"===a?n.ordinalNumber(r,{unit:"year"}):fNe(r,a.length)},R:function(e,a){return fNe(dNe(e),a.length)},u:function(e,a){return fNe(e.getUTCFullYear(),a.length)},Q:function(e,a,n){var t=Math.ceil((e.getUTCMonth()+1)/3);switch(a){case"Q":return String(t);case"QQ":return fNe(t,2);case"Qo":return n.ordinalNumber(t,{unit:"quarter"});case"QQQ":return n.quarter(t,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(t,{width:"narrow",context:"formatting"});default:return n.quarter(t,{width:"wide",context:"formatting"})}},q:function(e,a,n){var t=Math.ceil((e.getUTCMonth()+1)/3);switch(a){case"q":return String(t);case"qq":return fNe(t,2);case"qo":return n.ordinalNumber(t,{unit:"quarter"});case"qqq":return n.quarter(t,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(t,{width:"narrow",context:"standalone"});default:return n.quarter(t,{width:"wide",context:"standalone"})}},M:function(e,a,n){var t=e.getUTCMonth();switch(a){case"M":case"MM":return yNe(e,a);case"Mo":return n.ordinalNumber(t+1,{unit:"month"});case"MMM":return n.month(t,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(t,{width:"narrow",context:"formatting"});default:return n.month(t,{width:"wide",context:"formatting"})}},L:function(e,a,n){var t=e.getUTCMonth();switch(a){case"L":return String(t+1);case"LL":return fNe(t+1,2);case"Lo":return n.ordinalNumber(t+1,{unit:"month"});case"LLL":return n.month(t,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(t,{width:"narrow",context:"standalone"});default:return n.month(t,{width:"wide",context:"standalone"})}},w:function(e,a,n,t){var i=gNe(e,t);return"wo"===a?n.ordinalNumber(i,{unit:"week"}):fNe(i,a.length)},I:function(e,a,n){var t=mNe(e);return"Io"===a?n.ordinalNumber(t,{unit:"week"}):fNe(t,a.length)},d:function(e,a,n){return"do"===a?n.ordinalNumber(e.getUTCDate(),{unit:"date"}):kNe(e,a)},D:function(e,a,n){var t=function(e){Ixe(1,arguments);var a=Gxe(e),n=a.getTime();a.setUTCMonth(0,1),a.setUTCHours(0,0,0,0);var t=a.getTime();return Math.floor((n-t)/864e5)+1}(e);return"Do"===a?n.ordinalNumber(t,{unit:"dayOfYear"}):fNe(t,a.length)},E:function(e,a,n){var t=e.getUTCDay();switch(a){case"E":case"EE":case"EEE":return n.day(t,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(t,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(t,{width:"short",context:"formatting"});default:return n.day(t,{width:"wide",context:"formatting"})}},e:function(e,a,n,t){var i=e.getUTCDay(),r=(i-t.weekStartsOn+8)%7||7;switch(a){case"e":return String(r);case"ee":return fNe(r,2);case"eo":return n.ordinalNumber(r,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(e,a,n,t){var i=e.getUTCDay(),r=(i-t.weekStartsOn+8)%7||7;switch(a){case"c":return String(r);case"cc":return fNe(r,a.length);case"co":return n.ordinalNumber(r,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(e,a,n){var t=e.getUTCDay(),i=0===t?7:t;switch(a){case"i":return String(i);case"ii":return fNe(i,a.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(t,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(t,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(t,{width:"short",context:"formatting"});default:return n.day(t,{width:"wide",context:"formatting"})}},a:function(e,a,n){var t=e.getUTCHours()/12>=1?"pm":"am";switch(a){case"a":case"aa":return n.dayPeriod(t,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(t,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(t,{width:"narrow",context:"formatting"});default:return n.dayPeriod(t,{width:"wide",context:"formatting"})}},b:function(e,a,n){var t,i=e.getUTCHours();switch(t=12===i?TNe:0===i?CNe:i/12>=1?"pm":"am",a){case"b":case"bb":return n.dayPeriod(t,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(t,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(t,{width:"narrow",context:"formatting"});default:return n.dayPeriod(t,{width:"wide",context:"formatting"})}},B:function(e,a,n){var t,i=e.getUTCHours();switch(t=i>=17?ENe:i>=12?NNe:i>=4?xNe:_Ne,a){case"B":case"BB":case"BBB":return n.dayPeriod(t,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(t,{width:"narrow",context:"formatting"});default:return n.dayPeriod(t,{width:"wide",context:"formatting"})}},h:function(e,a,n){if("ho"===a){var t=e.getUTCHours()%12;return 0===t&&(t=12),n.ordinalNumber(t,{unit:"hour"})}return bNe(e,a)},H:function(e,a,n){return"Ho"===a?n.ordinalNumber(e.getUTCHours(),{unit:"hour"}):SNe(e,a)},K:function(e,a,n){var t=e.getUTCHours()%12;return"Ko"===a?n.ordinalNumber(t,{unit:"hour"}):fNe(t,a.length)},k:function(e,a,n){var t=e.getUTCHours();return 0===t&&(t=24),"ko"===a?n.ordinalNumber(t,{unit:"hour"}):fNe(t,a.length)},m:function(e,a,n){return"mo"===a?n.ordinalNumber(e.getUTCMinutes(),{unit:"minute"}):ANe(e,a)},s:function(e,a,n){return"so"===a?n.ordinalNumber(e.getUTCSeconds(),{unit:"second"}):wNe(e,a)},S:function(e,a){return MNe(e,a)},X:function(e,a,n,t){var i=(t._originalDate||e).getTimezoneOffset();if(0===i)return"Z";switch(a){case"X":return LNe(i);case"XXXX":case"XX":return BNe(i);default:return BNe(i,":")}},x:function(e,a,n,t){var i=(t._originalDate||e).getTimezoneOffset();switch(a){case"x":return LNe(i);case"xxxx":case"xx":return BNe(i);default:return BNe(i,":")}},O:function(e,a,n,t){var i=(t._originalDate||e).getTimezoneOffset();switch(a){case"O":case"OO":case"OOO":return"GMT"+jNe(i,":");default:return"GMT"+BNe(i,":")}},z:function(e,a,n,t){var i=(t._originalDate||e).getTimezoneOffset();switch(a){case"z":case"zz":case"zzz":return"GMT"+jNe(i,":");default:return"GMT"+BNe(i,":")}},t:function(e,a,n,t){return fNe(Math.floor((t._originalDate||e).getTime()/1e3),a.length)},T:function(e,a,n,t){return fNe((t._originalDate||e).getTime(),a.length)}};function jNe(e,a){var n=e>0?"-":"+",t=Math.abs(e),i=Math.floor(t/60),r=t%60;if(0===r)return n+String(i);var o=a;return n+String(i)+o+fNe(r,2)}function LNe(e,a){return e%60==0?(e>0?"-":"+")+fNe(Math.abs(e)/60,2):BNe(e,a)}function BNe(e,a){var n=a||"",t=e>0?"-":"+",i=Math.abs(e);return t+fNe(Math.floor(i/60),2)+n+fNe(i%60,2)}var RNe=function(e,a){switch(e){case"P":return a.date({width:"short"});case"PP":return a.date({width:"medium"});case"PPP":return a.date({width:"long"});default:return a.date({width:"full"})}},zNe=function(e,a){switch(e){case"p":return a.time({width:"short"});case"pp":return a.time({width:"medium"});case"ppp":return a.time({width:"long"});default:return a.time({width:"full"})}},DNe={p:zNe,P:function(e,a){var n,t=e.match(/(P+)(p+)?/)||[],i=t[1],r=t[2];if(!r)return RNe(e,a);switch(i){case"P":n=a.dateTime({width:"short"});break;case"PP":n=a.dateTime({width:"medium"});break;case"PPP":n=a.dateTime({width:"long"});break;default:n=a.dateTime({width:"full"})}return n.replace("{{date}}",RNe(i,a)).replace("{{time}}",zNe(r,a))}},ONe=["D","DD"],KNe=["YY","YYYY"];function HNe(e,a,n){if("YYYY"===e)throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(a,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("YY"===e)throw new RangeError("Use `yy` instead of `YY` (in `".concat(a,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("D"===e)throw new RangeError("Use `d` instead of `D` (in `".concat(a,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("DD"===e)throw new RangeError("Use `dd` instead of `DD` (in `".concat(a,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}var INe={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function GNe(e){return function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=a.width?String(a.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}var FNe={date:GNe({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:GNe({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:GNe({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},VNe={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function JNe(e){return function(a,n){var t;if("formatting"===(null!=n&&n.context?String(n.context):"standalone")&&e.formattingValues){var i=e.defaultFormattingWidth||e.defaultWidth,r=null!=n&&n.width?String(n.width):i;t=e.formattingValues[r]||e.formattingValues[i]}else{var o=e.defaultWidth,s=null!=n&&n.width?String(n.width):e.defaultWidth;t=e.values[s]||e.values[o]}return t[e.argumentCallback?e.argumentCallback(a):a]}}var UNe={ordinalNumber:function(e,a){var n=Number(e),t=n%100;if(t>20||t<10)switch(t%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:JNe({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:JNe({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:JNe({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:JNe({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:JNe({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})};function WNe(e){return function(a){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=n.width,i=a.match(t&&e.matchPatterns[t]||e.matchPatterns[e.defaultMatchWidth]);if(!i)return null;var r,o=i[0],s=t&&e.parsePatterns[t]||e.parsePatterns[e.defaultParseWidth],l=Array.isArray(s)?function(e,a){for(var n=0;n<e.length;n++)if(a(e[n]))return n;return}(s,(function(e){return e.test(o)})):function(e,a){for(var n in e)if(e.hasOwnProperty(n)&&a(e[n]))return n;return}(s,(function(e){return e.test(o)}));return r=e.valueCallback?e.valueCallback(l):l,{value:r=n.valueCallback?n.valueCallback(r):r,rest:a.slice(o.length)}}}var qNe={ordinalNumber:function(e){return function(a){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=a.match(e.matchPattern);if(!t)return null;var i=t[0],r=a.match(e.parsePattern);if(!r)return null;var o=e.valueCallback?e.valueCallback(r[0]):r[0];return{value:o=n.valueCallback?n.valueCallback(o):o,rest:a.slice(i.length)}}}({matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(e){return parseInt(e,10)}}),era:WNe({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:WNe({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:WNe({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:WNe({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:WNe({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},ZNe={code:"en-US",formatDistance:function(e,a,n){var t,i=INe[e];return t="string"==typeof i?i:1===a?i.one:i.other.replace("{{count}}",a.toString()),null!=n&&n.addSuffix?n.comparison&&n.comparison>0?"in "+t:t+" ago":t},formatLong:FNe,formatRelative:function(e,a,n,t){return VNe[e]},localize:UNe,match:qNe,options:{weekStartsOn:0,firstWeekContainsDate:1}},$Ne=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,YNe=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,QNe=/^'([^]*?)'?$/,XNe=/''/g,eEe=/[a-zA-Z]/;function aEe(e,a,n){var t,i,r,o,s,l,u,c,d,m,h,p,g,f,v,y,k,b;Ixe(2,arguments);var S=String(a),A=Uxe(),w=null!==(t=null!==(i=null==n?void 0:n.locale)&&void 0!==i?i:A.locale)&&void 0!==t?t:ZNe,M=Hxe(null!==(r=null!==(o=null!==(s=null!==(l=null==n?void 0:n.firstWeekContainsDate)&&void 0!==l?l:null==n||null===(u=n.locale)||void 0===u||null===(c=u.options)||void 0===c?void 0:c.firstWeekContainsDate)&&void 0!==s?s:A.firstWeekContainsDate)&&void 0!==o?o:null===(d=A.locale)||void 0===d||null===(m=d.options)||void 0===m?void 0:m.firstWeekContainsDate)&&void 0!==r?r:1);if(!(M>=1&&M<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var C=Hxe(null!==(h=null!==(p=null!==(g=null!==(f=null==n?void 0:n.weekStartsOn)&&void 0!==f?f:null==n||null===(v=n.locale)||void 0===v||null===(y=v.options)||void 0===y?void 0:y.weekStartsOn)&&void 0!==g?g:A.weekStartsOn)&&void 0!==p?p:null===(k=A.locale)||void 0===k||null===(b=k.options)||void 0===b?void 0:b.weekStartsOn)&&void 0!==h?h:0);if(!(C>=0&&C<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!w.localize)throw new RangeError("locale must contain localize property");if(!w.formatLong)throw new RangeError("locale must contain formatLong property");var T=Gxe(e);if(!function(e){if(Ixe(1,arguments),!nNe(e)&&"number"!=typeof e)return!1;var a=Gxe(e);return!isNaN(Number(a))}(T))throw new RangeError("Invalid time value");var x=uNe(T,$xe(T)),N={firstWeekContainsDate:M,weekStartsOn:C,locale:w,_originalDate:T};return S.match(YNe).map((function(e){var a=e[0];return"p"===a||"P"===a?(0,DNe[a])(e,w.formatLong):e})).join("").match($Ne).map((function(t){if("''"===t)return"'";var i=t[0];if("'"===i)return function(e){var a=e.match(QNe);if(!a)return e;return a[1].replace(XNe,"'")}(t);var r=PNe[i];if(r)return null!=n&&n.useAdditionalWeekYearTokens||-1===KNe.indexOf(t)||HNe(t,a,String(e)),null!=n&&n.useAdditionalDayOfYearTokens||!function(e){return-1!==ONe.indexOf(e)}(t)||HNe(t,a,String(e)),r(x,t,w.localize,N);if(i.match(eEe))throw new RangeError("Format string contains an unescaped latin alphabet character `"+i+"`");return t})).join("")}function nEe(e){return Ixe(1,arguments),Math.floor(function(e){return Ixe(1,arguments),Gxe(e).getTime()}(e)/1e3)}function tEe(e,a){var n,t,i,r,o,s,l,u;Ixe(1,arguments);var c=Uxe(),d=Hxe(null!==(n=null!==(t=null!==(i=null!==(r=null==a?void 0:a.firstWeekContainsDate)&&void 0!==r?r:null==a||null===(o=a.locale)||void 0===o||null===(s=o.options)||void 0===s?void 0:s.firstWeekContainsDate)&&void 0!==i?i:c.firstWeekContainsDate)&&void 0!==t?t:null===(l=c.locale)||void 0===l||null===(u=l.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==n?n:1),m=function(e,a){var n,t,i,r,o,s,l,u;Ixe(1,arguments);var c=Gxe(e),d=c.getFullYear(),m=Uxe(),h=Hxe(null!==(n=null!==(t=null!==(i=null!==(r=null==a?void 0:a.firstWeekContainsDate)&&void 0!==r?r:null==a||null===(o=a.locale)||void 0===o||null===(s=o.options)||void 0===s?void 0:s.firstWeekContainsDate)&&void 0!==i?i:m.firstWeekContainsDate)&&void 0!==t?t:null===(l=m.locale)||void 0===l||null===(u=l.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==n?n:1);if(!(h>=1&&h<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var p=new Date(0);p.setFullYear(d+1,0,h),p.setHours(0,0,0,0);var g=Wxe(p,a),f=new Date(0);f.setFullYear(d,0,h),f.setHours(0,0,0,0);var v=Wxe(f,a);return c.getTime()>=g.getTime()?d+1:c.getTime()>=v.getTime()?d:d-1}(e,a),h=new Date(0);return h.setFullYear(m,0,d),h.setHours(0,0,0,0),Wxe(h,a)}function iEe(e,a){return Ixe(1,arguments),function(e,a,n){Ixe(2,arguments);var t=Wxe(e,n),i=Wxe(a,n),r=t.getTime()-$xe(t),o=i.getTime()-$xe(i);return Math.round((r-o)/6048e5)}(function(e){Ixe(1,arguments);var a=Gxe(e),n=a.getMonth();return a.setFullYear(a.getFullYear(),n+1,0),a.setHours(0,0,0,0),a}(e),rNe(e),a)+1}function rEe(e,a){Ixe(2,arguments);var n=Gxe(e),t=Gxe(a);return n.getTime()>t.getTime()}function oEe(e,a){Ixe(2,arguments);var n=Gxe(e),t=Gxe(a);return n.getTime()<t.getTime()}function sEe(e,a){Ixe(2,arguments);var n=Gxe(e),t=Gxe(a);return n.getFullYear()===t.getFullYear()&&n.getMonth()===t.getMonth()}function lEe(e,a){return Ixe(2,arguments),Fxe(e,-Hxe(a))}function uEe(e,a){Ixe(2,arguments);var n=Gxe(e),t=Hxe(a),i=n.getFullYear(),r=n.getDate(),o=new Date(0);o.setFullYear(i,t,15),o.setHours(0,0,0,0);var s=function(e){Ixe(1,arguments);var a=Gxe(e),n=a.getFullYear(),t=a.getMonth(),i=new Date(0);return i.setFullYear(n,t+1,0),i.setHours(0,0,0,0),i.getDate()}(o);return n.setMonth(t,Math.min(r,s)),n}function cEe(e,a){Ixe(2,arguments);var n=Gxe(e),t=Hxe(a);return isNaN(n.getTime())?new Date(NaN):(n.setFullYear(t),n)}var dEe=function(){return dEe=Object.assign||function(e){for(var a,n=1,t=arguments.length;n<t;n++)for(var i in a=arguments[n])Object.prototype.hasOwnProperty.call(a,i)&&(e[i]=a[i]);return e},dEe.apply(this,arguments)};function mEe(e,a,n){for(var t,i=0,r=a.length;i<r;i++)!t&&i in a||(t||(t=Array.prototype.slice.call(a,0,i)),t[i]=a[i]);return e.concat(t||Array.prototype.slice.call(a))}function hEe(e){return"multiple"===e.mode}function pEe(e){return"range"===e.mode}function gEe(e){return"single"===e.mode}"function"==typeof SuppressedError&&SuppressedError;var fEe={root:"rdp",multiple_months:"rdp-multiple_months",with_weeknumber:"rdp-with_weeknumber",vhidden:"rdp-vhidden",button_reset:"rdp-button_reset",button:"rdp-button",caption:"rdp-caption",caption_start:"rdp-caption_start",caption_end:"rdp-caption_end",caption_between:"rdp-caption_between",caption_label:"rdp-caption_label",caption_dropdowns:"rdp-caption_dropdowns",dropdown:"rdp-dropdown",dropdown_month:"rdp-dropdown_month",dropdown_year:"rdp-dropdown_year",dropdown_icon:"rdp-dropdown_icon",months:"rdp-months",month:"rdp-month",table:"rdp-table",tbody:"rdp-tbody",tfoot:"rdp-tfoot",head:"rdp-head",head_row:"rdp-head_row",head_cell:"rdp-head_cell",nav:"rdp-nav",nav_button:"rdp-nav_button",nav_button_previous:"rdp-nav_button_previous",nav_button_next:"rdp-nav_button_next",nav_icon:"rdp-nav_icon",row:"rdp-row",weeknumber:"rdp-weeknumber",cell:"rdp-cell",day:"rdp-day",day_today:"rdp-day_today",day_outside:"rdp-day_outside",day_selected:"rdp-day_selected",day_disabled:"rdp-day_disabled",day_hidden:"rdp-day_hidden",day_range_start:"rdp-day_range_start",day_range_end:"rdp-day_range_end",day_range_middle:"rdp-day_range_middle"};var vEe=Object.freeze({__proto__:null,formatCaption:function(e,a){return aEe(e,"LLLL y",a)},formatDay:function(e,a){return aEe(e,"d",a)},formatMonthCaption:function(e,a){return aEe(e,"LLLL",a)},formatWeekNumber:function(e){return"".concat(e)},formatWeekdayName:function(e,a){return aEe(e,"cccccc",a)},formatYearCaption:function(e,a){return aEe(e,"yyyy",a)}}),yEe=Object.freeze({__proto__:null,labelDay:function(e,a,n){return aEe(e,"do MMMM (EEEE)",n)},labelMonthDropdown:function(){return"Month: "},labelNext:function(){return"Go to next month"},labelPrevious:function(){return"Go to previous month"},labelWeekNumber:function(e){return"Week n. ".concat(e)},labelWeekday:function(e,a){return aEe(e,"cccc",a)},labelYearDropdown:function(){return"Year: "}});var kEe=a.createContext(void 0);function bEe(e){var a,t,i=e.initialProps,r={captionLayout:"buttons",classNames:fEe,formatters:vEe,labels:yEe,locale:ZNe,modifiersClassNames:{},modifiers:{},numberOfMonths:1,styles:{},today:new Date,mode:"default"},o=function(e){var a=e.fromYear,n=e.toYear,t=e.fromMonth,i=e.toMonth,r=e.fromDate,o=e.toDate;return t?r=rNe(t):a&&(r=new Date(a,0,1)),i?o=iNe(i):n&&(o=new Date(n,11,31)),{fromDate:r?Yxe(r):void 0,toDate:o?Yxe(o):void 0}}(i),s=o.fromDate,l=o.toDate,u=null!==(a=i.captionLayout)&&void 0!==a?a:r.captionLayout;"buttons"===u||s&&l||(u="buttons"),(gEe(i)||hEe(i)||pEe(i))&&(t=i.onSelect);var c=dEe(dEe(dEe({},r),i),{captionLayout:u,classNames:dEe(dEe({},r.classNames),i.classNames),components:dEe({},i.components),formatters:dEe(dEe({},r.formatters),i.formatters),fromDate:s,labels:dEe(dEe({},r.labels),i.labels),mode:i.mode||r.mode,modifiers:dEe(dEe({},r.modifiers),i.modifiers),modifiersClassNames:dEe(dEe({},r.modifiersClassNames),i.modifiersClassNames),onSelect:t,styles:dEe(dEe({},r.styles),i.styles),toDate:l});return n.jsx(kEe.Provider,{value:c,children:e.children})}function SEe(){var e=a.useContext(kEe);if(!e)throw new Error("useDayPicker must be used within a DayPickerProvider.");return e}function AEe(e){var a=SEe();return n.jsx("div",{className:a.classNames.caption_label,style:a.styles.caption_label,"aria-live":"polite",role:"presentation",id:e.id,children:(0,a.formatters.formatCaption)(e.displayMonth,{locale:a.locale})})}function wEe(e){return n.jsx("svg",dEe({width:"8px",height:"8px",viewBox:"0 0 120 120","data-testid":"iconDropdown"},e,{children:n.jsx("path",{d:"M4.22182541,48.2218254 C8.44222828,44.0014225 15.2388494,43.9273804 19.5496459,47.9996989 L19.7781746,48.2218254 L60,88.443 L100.221825,48.2218254 C104.442228,44.0014225 111.238849,43.9273804 115.549646,47.9996989 L115.778175,48.2218254 C119.998577,52.4422283 120.07262,59.2388494 116.000301,63.5496459 L115.778175,63.7781746 L67.7781746,111.778175 C63.5577717,115.998577 56.7611506,116.07262 52.4503541,112.000301 L52.2218254,111.778175 L4.22182541,63.7781746 C-0.0739418023,59.4824074 -0.0739418023,52.5175926 4.22182541,48.2218254 Z",fill:"currentColor",fillRule:"nonzero"})}))}function MEe(e){var a,t,i=e.onChange,r=e.value,o=e.children,s=e.caption,l=e.className,u=e.style,c=SEe(),d=null!==(t=null===(a=c.components)||void 0===a?void 0:a.IconDropdown)&&void 0!==t?t:wEe;return n.jsxs("div",{className:l,style:u,children:[n.jsx("span",{className:c.classNames.vhidden,children:e["aria-label"]}),n.jsx("select",{name:e.name,"aria-label":e["aria-label"],className:c.classNames.dropdown,style:c.styles.dropdown,value:r,onChange:i,children:o}),n.jsxs("div",{className:c.classNames.caption_label,style:c.styles.caption_label,"aria-hidden":"true",children:[s,n.jsx(d,{className:c.classNames.dropdown_icon,style:c.styles.dropdown_icon})]})]})}function CEe(e){var a,t=SEe(),i=t.fromDate,r=t.toDate,o=t.styles,s=t.locale,l=t.formatters.formatMonthCaption,u=t.classNames,c=t.components,d=t.labels.labelMonthDropdown;if(!i)return n.jsx(n.Fragment,{});if(!r)return n.jsx(n.Fragment,{});var m=[];if(function(e,a){Ixe(2,arguments);var n=Gxe(e),t=Gxe(a);return n.getFullYear()===t.getFullYear()}(i,r))for(var h=rNe(i),p=i.getMonth();p<=r.getMonth();p++)m.push(uEe(h,p));else for(h=rNe(new Date),p=0;p<=11;p++)m.push(uEe(h,p));var g=null!==(a=null==c?void 0:c.Dropdown)&&void 0!==a?a:MEe;return n.jsx(g,{name:"months","aria-label":d(),className:u.dropdown_month,style:o.dropdown_month,onChange:function(a){var n=Number(a.target.value),t=uEe(rNe(e.displayMonth),n);e.onChange(t)},value:e.displayMonth.getMonth(),caption:l(e.displayMonth,{locale:s}),children:m.map((function(e){return n.jsx("option",{value:e.getMonth(),children:l(e,{locale:s})},e.getMonth())}))})}function TEe(e){var a,t=e.displayMonth,i=SEe(),r=i.fromDate,o=i.toDate,s=i.locale,l=i.styles,u=i.classNames,c=i.components,d=i.formatters.formatYearCaption,m=i.labels.labelYearDropdown,h=[];if(!r)return n.jsx(n.Fragment,{});if(!o)return n.jsx(n.Fragment,{});for(var p=r.getFullYear(),g=o.getFullYear(),f=p;f<=g;f++)h.push(cEe(oNe(new Date),f));var v=null!==(a=null==c?void 0:c.Dropdown)&&void 0!==a?a:MEe;return n.jsx(v,{name:"years","aria-label":m(),className:u.dropdown_year,style:l.dropdown_year,onChange:function(a){var n=cEe(rNe(t),Number(a.target.value));e.onChange(n)},value:t.getFullYear(),caption:d(t,{locale:s}),children:h.map((function(e){return n.jsx("option",{value:e.getFullYear(),children:d(e,{locale:s})},e.getFullYear())}))})}function xEe(){var e=SEe(),n=function(e){var a=e.month||e.defaultMonth||e.today||new Date,n=e.toDate,t=e.fromDate,i=e.numberOfMonths,r=void 0===i?1:i;return n&&tNe(n,a)<0&&(a=Vxe(n,-1*(r-1))),t&&tNe(a,t)<0&&(a=t),rNe(a)}(e),t=function(e,n){var t=a.useState(e);return[void 0===n?t[0]:n,t[1]]}(n,e.month),i=t[1];return[t[0],function(a){var n;if(!e.disableNavigation){var t=rNe(a);i(t),null===(n=e.onMonthChange)||void 0===n||n.call(e,t)}}]}var NEe=a.createContext(void 0);function EEe(e){var a=SEe(),t=xEe(),i=t[0],r=t[1],o=function(e,a){for(var n=a.reverseMonths,t=a.numberOfMonths,i=rNe(e),r=tNe(rNe(Vxe(i,t)),i),o=[],s=0;s<r;s++){var l=Vxe(i,s);o.push(l)}return n&&(o=o.reverse()),o}(i,a),s=function(e,a){if(!a.disableNavigation){var n=a.toDate,t=a.numberOfMonths,i=void 0===t?1:t,r=a.pagedNavigation?i:1,o=rNe(e);if(!n)return Vxe(o,r);if(!(tNe(n,e)<i))return Vxe(o,r)}}(i,a),l=function(e,a){if(!a.disableNavigation){var n=a.fromDate,t=a.numberOfMonths,i=a.pagedNavigation?void 0===t?1:t:1,r=rNe(e);if(!n)return Vxe(r,-i);if(!(tNe(r,n)<=0))return Vxe(r,-i)}}(i,a),u=function(e){return o.some((function(a){return sEe(e,a)}))};return n.jsx(NEe.Provider,{value:{currentMonth:i,displayMonths:o,goToMonth:r,goToDate:function(e,n){u(e)||(n&&oEe(e,n)?r(Vxe(e,1+-1*a.numberOfMonths)):r(e))},previousMonth:l,nextMonth:s,isDateDisplayed:u},children:e.children})}function _Ee(){var e=a.useContext(NEe);if(!e)throw new Error("useNavigation must be used within a NavigationProvider");return e}function PEe(e){var a,t=SEe(),i=t.classNames,r=t.styles,o=t.components,s=_Ee().goToMonth,l=function(a){s(Vxe(a,e.displayIndex?-e.displayIndex:0))},u=null!==(a=null==o?void 0:o.CaptionLabel)&&void 0!==a?a:AEe,c=n.jsx(u,{id:e.id,displayMonth:e.displayMonth});return n.jsxs("div",{className:i.caption_dropdowns,style:r.caption_dropdowns,children:[n.jsx("div",{className:i.vhidden,children:c}),n.jsx(CEe,{onChange:l,displayMonth:e.displayMonth}),n.jsx(TEe,{onChange:l,displayMonth:e.displayMonth})]})}function jEe(e){return n.jsx("svg",dEe({width:"16px",height:"16px",viewBox:"0 0 120 120"},e,{children:n.jsx("path",{d:"M69.490332,3.34314575 C72.6145263,0.218951416 77.6798462,0.218951416 80.8040405,3.34314575 C83.8617626,6.40086786 83.9268205,11.3179931 80.9992143,14.4548388 L80.8040405,14.6568542 L35.461,60 L80.8040405,105.343146 C83.8617626,108.400868 83.9268205,113.317993 80.9992143,116.454839 L80.8040405,116.656854 C77.7463184,119.714576 72.8291931,119.779634 69.6923475,116.852028 L69.490332,116.656854 L18.490332,65.6568542 C15.4326099,62.5991321 15.367552,57.6820069 18.2951583,54.5451612 L18.490332,54.3431458 L69.490332,3.34314575 Z",fill:"currentColor",fillRule:"nonzero"})}))}function LEe(e){return n.jsx("svg",dEe({width:"16px",height:"16px",viewBox:"0 0 120 120"},e,{children:n.jsx("path",{d:"M49.8040405,3.34314575 C46.6798462,0.218951416 41.6145263,0.218951416 38.490332,3.34314575 C35.4326099,6.40086786 35.367552,11.3179931 38.2951583,14.4548388 L38.490332,14.6568542 L83.8333725,60 L38.490332,105.343146 C35.4326099,108.400868 35.367552,113.317993 38.2951583,116.454839 L38.490332,116.656854 C41.5480541,119.714576 46.4651794,119.779634 49.602025,116.852028 L49.8040405,116.656854 L100.804041,65.6568542 C103.861763,62.5991321 103.926821,57.6820069 100.999214,54.5451612 L100.804041,54.3431458 L49.8040405,3.34314575 Z",fill:"currentColor"})}))}var BEe=a.forwardRef((function(e,a){var t=SEe(),i=t.classNames,r=t.styles,o=[i.button_reset,i.button];e.className&&o.push(e.className);var s=o.join(" "),l=dEe(dEe({},r.button_reset),r.button);return e.style&&Object.assign(l,e.style),n.jsx("button",dEe({},e,{ref:a,type:"button",className:s,style:l}))}));function REe(e){var a,t,i=SEe(),r=i.dir,o=i.locale,s=i.classNames,l=i.styles,u=i.labels,c=u.labelPrevious,d=u.labelNext,m=i.components;if(!e.nextMonth&&!e.previousMonth)return n.jsx(n.Fragment,{});var h=c(e.previousMonth,{locale:o}),p=[s.nav_button,s.nav_button_previous].join(" "),g=d(e.nextMonth,{locale:o}),f=[s.nav_button,s.nav_button_next].join(" "),v=null!==(a=null==m?void 0:m.IconRight)&&void 0!==a?a:LEe,y=null!==(t=null==m?void 0:m.IconLeft)&&void 0!==t?t:jEe;return n.jsxs("div",{className:s.nav,style:l.nav,children:[!e.hidePrevious&&n.jsx(BEe,{name:"previous-month","aria-label":h,className:p,style:l.nav_button_previous,disabled:!e.previousMonth,onClick:e.onPreviousClick,children:n.jsx("rtl"===r?v:y,{className:s.nav_icon,style:l.nav_icon})}),!e.hideNext&&n.jsx(BEe,{name:"next-month","aria-label":g,className:f,style:l.nav_button_next,disabled:!e.nextMonth,onClick:e.onNextClick,children:n.jsx("rtl"===r?y:v,{className:s.nav_icon,style:l.nav_icon})})]})}function zEe(e){var a=SEe().numberOfMonths,t=_Ee(),i=t.previousMonth,r=t.nextMonth,o=t.goToMonth,s=t.displayMonths,l=s.findIndex((function(a){return sEe(e.displayMonth,a)})),u=0===l,c=l===s.length-1;return n.jsx(REe,{displayMonth:e.displayMonth,hideNext:a>1&&(u||!c),hidePrevious:a>1&&(c||!u),nextMonth:r,previousMonth:i,onPreviousClick:function(){i&&o(i)},onNextClick:function(){r&&o(r)}})}function DEe(e){var a,t,i=SEe(),r=i.classNames,o=i.styles,s=i.captionLayout,l=i.components,u=null!==(a=null==l?void 0:l.CaptionLabel)&&void 0!==a?a:AEe;return t=i.disableNavigation?n.jsx(u,{id:e.id,displayMonth:e.displayMonth}):"dropdown"===s?n.jsx(PEe,{displayMonth:e.displayMonth,id:e.id}):n.jsxs(n.Fragment,"dropdown-buttons"===s?{children:[n.jsx(PEe,{displayMonth:e.displayMonth,displayIndex:e.displayIndex,id:e.id}),n.jsx(zEe,{displayMonth:e.displayMonth,displayIndex:e.displayIndex,id:e.id})]}:{children:[n.jsx(u,{id:e.id,displayMonth:e.displayMonth,displayIndex:e.displayIndex}),n.jsx(zEe,{displayMonth:e.displayMonth,id:e.id})]}),n.jsx("div",{className:r.caption,style:o.caption,children:t})}function OEe(e){var a=SEe(),t=a.footer;return t?n.jsx("tfoot",{className:a.classNames.tfoot,style:a.styles.tfoot,children:n.jsx("tr",{children:n.jsx("td",{colSpan:8,children:t})})}):n.jsx(n.Fragment,{})}function KEe(){var e=SEe(),a=e.classNames,t=e.styles,i=e.showWeekNumber,r=e.locale,o=e.formatters.formatWeekdayName,s=e.labels.labelWeekday,l=function(e,a,n){for(var t=n?qxe(new Date):Wxe(new Date,{locale:e,weekStartsOn:a}),i=[],r=0;r<7;r++){var o=Fxe(t,r);i.push(o)}return i}(r,e.weekStartsOn,e.ISOWeek);return n.jsxs("tr",{style:t.head_row,className:a.head_row,children:[i&&n.jsx("td",{style:t.head_cell,className:a.head_cell}),l.map((function(e,i){return n.jsx("th",{scope:"col",className:a.head_cell,style:t.head_cell,"aria-label":s(e,{locale:r}),children:o(e,{locale:r})},i)}))]})}function HEe(){var e,a=SEe(),t=a.components,i=null!==(e=null==t?void 0:t.HeadRow)&&void 0!==e?e:KEe;return n.jsx("thead",{style:a.styles.head,className:a.classNames.head,children:n.jsx(i,{})})}function IEe(e){var a=SEe();return n.jsx(n.Fragment,{children:(0,a.formatters.formatDay)(e.date,{locale:a.locale})})}var GEe=a.createContext(void 0);function FEe(e){if(!hEe(e.initialProps)){return n.jsx(GEe.Provider,{value:{selected:void 0,modifiers:{disabled:[]}},children:e.children})}return n.jsx(VEe,{initialProps:e.initialProps,children:e.children})}function VEe(e){var a=e.initialProps,t=e.children,i=a.selected,r=a.min,o=a.max,s={disabled:[]};return i&&s.disabled.push((function(e){var a=o&&i.length>o-1,n=i.some((function(a){return aNe(a,e)}));return Boolean(a&&!n)})),n.jsx(GEe.Provider,{value:{selected:i,onDayClick:function(e,n,t){var s,l;if((null===(s=a.onDayClick)||void 0===s||s.call(a,e,n,t),!Boolean(n.selected&&r&&(null==i?void 0:i.length)===r))&&!Boolean(!n.selected&&o&&(null==i?void 0:i.length)===o)){var u=i?mEe([],i):[];if(n.selected){var c=u.findIndex((function(a){return aNe(e,a)}));u.splice(c,1)}else u.push(e);null===(l=a.onSelect)||void 0===l||l.call(a,u,e,n,t)}},modifiers:s},children:t})}function JEe(){var e=a.useContext(GEe);if(!e)throw new Error("useSelectMultiple must be used within a SelectMultipleProvider");return e}var UEe,WEe,qEe=a.createContext(void 0);function ZEe(e){if(!pEe(e.initialProps)){return n.jsx(qEe.Provider,{value:{selected:void 0,modifiers:{range_start:[],range_end:[],range_middle:[],disabled:[]}},children:e.children})}return n.jsx($Ee,{initialProps:e.initialProps,children:e.children})}function $Ee(e){var a=e.initialProps,t=e.children,i=a.selected,r=i||{},o=r.from,s=r.to,l=a.min,u=a.max,c={range_start:[],range_end:[],range_middle:[],disabled:[]};if(o?(c.range_start=[o],s?(c.range_end=[s],aNe(o,s)||(c.range_middle=[{after:o,before:s}])):c.range_end=[o]):s&&(c.range_start=[s],c.range_end=[s]),l&&(o&&!s&&c.disabled.push({after:lEe(o,l-1),before:Fxe(o,l-1)}),o&&s&&c.disabled.push({after:o,before:Fxe(o,l-1)}),!o&&s&&c.disabled.push({after:lEe(s,l-1),before:Fxe(s,l-1)})),u){if(o&&!s&&(c.disabled.push({before:Fxe(o,1-u)}),c.disabled.push({after:Fxe(o,u-1)})),o&&s){var d=u-(Qxe(s,o)+1);c.disabled.push({before:lEe(o,d)}),c.disabled.push({after:Fxe(s,d)})}!o&&s&&(c.disabled.push({before:Fxe(s,1-u)}),c.disabled.push({after:Fxe(s,u-1)}))}return n.jsx(qEe.Provider,{value:{selected:i,onDayClick:function(e,n,t){var r,o;null===(r=a.onDayClick)||void 0===r||r.call(a,e,n,t);var s=function(e,a){var n=a||{},t=n.from,i=n.to;if(t&&i){if(aNe(i,e)&&aNe(t,e))return;if(aNe(i,e))return{from:i,to:void 0};if(aNe(t,e))return;return rEe(t,e)?{from:e,to:i}:{from:t,to:e}}return i?rEe(e,i)?{from:i,to:e}:{from:e,to:i}:t?oEe(e,t)?{from:e,to:t}:{from:t,to:e}:{from:e,to:void 0}}(e,i);null===(o=a.onSelect)||void 0===o||o.call(a,s,e,n,t)},modifiers:c},children:t})}function YEe(){var e=a.useContext(qEe);if(!e)throw new Error("useSelectRange must be used within a SelectRangeProvider");return e}function QEe(e){return Array.isArray(e)?mEe([],e):void 0!==e?[e]:[]}(WEe=UEe||(UEe={})).Outside="outside",WEe.Disabled="disabled",WEe.Selected="selected",WEe.Hidden="hidden",WEe.Today="today",WEe.RangeStart="range_start",WEe.RangeEnd="range_end",WEe.RangeMiddle="range_middle";var XEe=UEe.Selected,e_e=UEe.Disabled,a_e=UEe.Hidden,n_e=UEe.Today,t_e=UEe.RangeEnd,i_e=UEe.RangeMiddle,r_e=UEe.RangeStart,o_e=UEe.Outside;var s_e=a.createContext(void 0);function l_e(e){var a=SEe(),t=function(e,a,n){var t,i=((t={})[XEe]=QEe(e.selected),t[e_e]=QEe(e.disabled),t[a_e]=QEe(e.hidden),t[n_e]=[e.today],t[t_e]=[],t[i_e]=[],t[r_e]=[],t[o_e]=[],t);return e.fromDate&&i[e_e].push({before:e.fromDate}),e.toDate&&i[e_e].push({after:e.toDate}),hEe(e)?i[e_e]=i[e_e].concat(a.modifiers[e_e]):pEe(e)&&(i[e_e]=i[e_e].concat(n.modifiers[e_e]),i[r_e]=n.modifiers[r_e],i[i_e]=n.modifiers[i_e],i[t_e]=n.modifiers[t_e]),i}(a,JEe(),YEe()),i=function(e){var a={};return Object.entries(e).forEach((function(e){a[e[0]]=QEe(e[1])})),a}(a.modifiers),r=dEe(dEe({},t),i);return n.jsx(s_e.Provider,{value:r,children:e.children})}function u_e(){var e=a.useContext(s_e);if(!e)throw new Error("useModifiers must be used within a ModifiersProvider");return e}function c_e(e,a){return a.some((function(a){if("boolean"==typeof a)return a;if(nNe(a))return aNe(e,a);var n,t,i,r,o;if(function(e){return Array.isArray(e)&&e.every(nNe)}(a))return a.includes(e);if(function(e){return Boolean(e&&"object"==typeof e&&"from"in e)}(a))return n=e,o=(t=a).to,(r=t.from)&&o?(Qxe(o,r)<0&&(r=(i=[o,r])[0],o=i[1]),Qxe(n,r)>=0&&Qxe(o,n)>=0):o?aNe(o,n):!!r&&aNe(r,n);if(function(e){return Boolean(e&&"object"==typeof e&&"dayOfWeek"in e)}(a))return a.dayOfWeek.includes(e.getDay());if(function(e){return Boolean(e&&"object"==typeof e&&"before"in e&&"after"in e)}(a)){var s=Qxe(a.before,e)>0,l=Qxe(a.after,e)<0;return rEe(a.before,a.after)?l&&s:s||l}return function(e){return Boolean(e&&"object"==typeof e&&"after"in e)}(a)?Qxe(e,a.after)>0:function(e){return Boolean(e&&"object"==typeof e&&"before"in e)}(a)?Qxe(a.before,e)>0:"function"==typeof a&&a(e)}))}function d_e(e,a,n){var t=Object.keys(a).reduce((function(n,t){return c_e(e,a[t])&&n.push(t),n}),[]),i={};return t.forEach((function(e){return i[e]=!0})),n&&!sEe(e,n)&&(i.outside=!0),i}function m_e(e,a){var n=a.moveBy,t=a.direction,i=a.context,r=a.modifiers,o=a.retry,s=void 0===o?{count:0,lastFocused:e}:o,l=i.weekStartsOn,u=i.fromDate,c=i.toDate,d=i.locale,m={day:Fxe,week:Xxe,month:Vxe,year:eNe,startOfWeek:function(e){return i.ISOWeek?qxe(e):Wxe(e,{locale:d,weekStartsOn:l})},endOfWeek:function(e){return i.ISOWeek?lNe(e):sNe(e,{locale:d,weekStartsOn:l})}}[n](e,"after"===t?1:-1);"before"===t&&u?m=function(e){var a,n;if(Ixe(1,arguments),e&&"function"==typeof e.forEach)a=e;else{if("object"!==Kxe(e)||null===e)return new Date(NaN);a=Array.prototype.slice.call(e)}return a.forEach((function(e){var a=Gxe(e);(void 0===n||n<a||isNaN(Number(a)))&&(n=a)})),n||new Date(NaN)}([u,m]):"after"===t&&c&&(m=function(e){var a,n;if(Ixe(1,arguments),e&&"function"==typeof e.forEach)a=e;else{if("object"!==Kxe(e)||null===e)return new Date(NaN);a=Array.prototype.slice.call(e)}return a.forEach((function(e){var a=Gxe(e);(void 0===n||n>a||isNaN(a.getDate()))&&(n=a)})),n||new Date(NaN)}([c,m]));var h=!0;if(r){var p=d_e(m,r);h=!p.disabled&&!p.hidden}return h?m:s.count>365?s.lastFocused:m_e(m,{moveBy:n,direction:t,context:i,modifiers:r,retry:dEe(dEe({},s),{count:s.count+1})})}var h_e=a.createContext(void 0);function p_e(e){var t=_Ee(),i=u_e(),r=a.useState(),o=r[0],s=r[1],l=a.useState(),u=l[0],c=l[1],d=function(e,a){for(var n,t,i=rNe(e[0]),r=iNe(e[e.length-1]),o=i;o<=r;){var s=d_e(o,a);if(s.disabled||s.hidden)o=Fxe(o,1);else{if(s.selected)return o;s.today&&!t&&(t=o),n||(n=o),o=Fxe(o,1)}}return t||n}(t.displayMonths,i),m=(null!=o?o:u&&t.isDateDisplayed(u))?u:d,h=function(e){s(e)},p=SEe(),g=function(e,a){if(o){var n=m_e(o,{moveBy:e,direction:a,context:p,modifiers:i});aNe(o,n)||(t.goToDate(n,o),h(n))}};return n.jsx(h_e.Provider,{value:{focusedDay:o,focusTarget:m,blur:function(){c(o),s(void 0)},focus:h,focusDayAfter:function(){return g("day","after")},focusDayBefore:function(){return g("day","before")},focusWeekAfter:function(){return g("week","after")},focusWeekBefore:function(){return g("week","before")},focusMonthBefore:function(){return g("month","before")},focusMonthAfter:function(){return g("month","after")},focusYearBefore:function(){return g("year","before")},focusYearAfter:function(){return g("year","after")},focusStartOfWeek:function(){return g("startOfWeek","before")},focusEndOfWeek:function(){return g("endOfWeek","after")}},children:e.children})}function g_e(){var e=a.useContext(h_e);if(!e)throw new Error("useFocusContext must be used within a FocusProvider");return e}var f_e=a.createContext(void 0);function v_e(e){if(!gEe(e.initialProps)){return n.jsx(f_e.Provider,{value:{selected:void 0},children:e.children})}return n.jsx(y_e,{initialProps:e.initialProps,children:e.children})}function y_e(e){var a=e.initialProps;return n.jsx(f_e.Provider,{value:{selected:a.selected,onDayClick:function(e,n,t){var i,r,o;null===(i=a.onDayClick)||void 0===i||i.call(a,e,n,t),!n.selected||a.required?null===(o=a.onSelect)||void 0===o||o.call(a,e,e,n,t):null===(r=a.onSelect)||void 0===r||r.call(a,void 0,e,n,t)}},children:e.children})}function k_e(){var e=a.useContext(f_e);if(!e)throw new Error("useSelectSingle must be used within a SelectSingleProvider");return e}function b_e(e,a){var n=[e.classNames.day];return Object.keys(a).forEach((function(a){var t=e.modifiersClassNames[a];if(t)n.push(t);else if(function(e){return Object.values(UEe).includes(e)}(a)){var i=e.classNames["day_".concat(a)];i&&n.push(i)}})),n}function S_e(e,t,i){var r,o,s,l=SEe(),u=g_e(),c=function(e,a){return d_e(e,u_e(),a)}(e,t),d=function(e,a){var n=SEe(),t=k_e(),i=JEe(),r=YEe(),o=g_e(),s=o.focusDayAfter,l=o.focusDayBefore,u=o.focusWeekAfter,c=o.focusWeekBefore,d=o.blur,m=o.focus,h=o.focusMonthBefore,p=o.focusMonthAfter,g=o.focusYearBefore,f=o.focusYearAfter,v=o.focusStartOfWeek,y=o.focusEndOfWeek;return{onClick:function(o){var s,l,u,c;gEe(n)?null===(s=t.onDayClick)||void 0===s||s.call(t,e,a,o):hEe(n)?null===(l=i.onDayClick)||void 0===l||l.call(i,e,a,o):pEe(n)?null===(u=r.onDayClick)||void 0===u||u.call(r,e,a,o):null===(c=n.onDayClick)||void 0===c||c.call(n,e,a,o)},onFocus:function(t){var i;m(e),null===(i=n.onDayFocus)||void 0===i||i.call(n,e,a,t)},onBlur:function(t){var i;d(),null===(i=n.onDayBlur)||void 0===i||i.call(n,e,a,t)},onKeyDown:function(t){var i;switch(t.key){case"ArrowLeft":t.preventDefault(),t.stopPropagation(),"rtl"===n.dir?s():l();break;case"ArrowRight":t.preventDefault(),t.stopPropagation(),"rtl"===n.dir?l():s();break;case"ArrowDown":t.preventDefault(),t.stopPropagation(),u();break;case"ArrowUp":t.preventDefault(),t.stopPropagation(),c();break;case"PageUp":t.preventDefault(),t.stopPropagation(),t.shiftKey?g():h();break;case"PageDown":t.preventDefault(),t.stopPropagation(),t.shiftKey?f():p();break;case"Home":t.preventDefault(),t.stopPropagation(),v();break;case"End":t.preventDefault(),t.stopPropagation(),y()}null===(i=n.onDayKeyDown)||void 0===i||i.call(n,e,a,t)},onKeyUp:function(t){var i;null===(i=n.onDayKeyUp)||void 0===i||i.call(n,e,a,t)},onMouseEnter:function(t){var i;null===(i=n.onDayMouseEnter)||void 0===i||i.call(n,e,a,t)},onMouseLeave:function(t){var i;null===(i=n.onDayMouseLeave)||void 0===i||i.call(n,e,a,t)},onPointerEnter:function(t){var i;null===(i=n.onDayPointerEnter)||void 0===i||i.call(n,e,a,t)},onPointerLeave:function(t){var i;null===(i=n.onDayPointerLeave)||void 0===i||i.call(n,e,a,t)},onTouchCancel:function(t){var i;null===(i=n.onDayTouchCancel)||void 0===i||i.call(n,e,a,t)},onTouchEnd:function(t){var i;null===(i=n.onDayTouchEnd)||void 0===i||i.call(n,e,a,t)},onTouchMove:function(t){var i;null===(i=n.onDayTouchMove)||void 0===i||i.call(n,e,a,t)},onTouchStart:function(t){var i;null===(i=n.onDayTouchStart)||void 0===i||i.call(n,e,a,t)}}}(e,c),m=function(){var e=SEe(),a=k_e(),n=JEe(),t=YEe();return gEe(e)?a.selected:hEe(e)?n.selected:pEe(e)?t.selected:void 0}(),h=Boolean(l.onDayClick||"default"!==l.mode);a.useEffect((function(){var a;c.outside||u.focusedDay&&h&&aNe(u.focusedDay,e)&&(null===(a=i.current)||void 0===a||a.focus())}),[u.focusedDay,e,i,h,c.outside]);var p=b_e(l,c).join(" "),g=function(e,a){var n=dEe({},e.styles.day);return Object.keys(a).forEach((function(a){var t;n=dEe(dEe({},n),null===(t=e.modifiersStyles)||void 0===t?void 0:t[a])})),n}(l,c),f=Boolean(c.outside&&!l.showOutsideDays||c.hidden),v=null!==(s=null===(o=l.components)||void 0===o?void 0:o.DayContent)&&void 0!==s?s:IEe,y={style:g,className:p,children:n.jsx(v,{date:e,displayMonth:t,activeModifiers:c}),role:"gridcell"},k=u.focusTarget&&aNe(u.focusTarget,e)&&!c.outside,b=u.focusedDay&&aNe(u.focusedDay,e),S=dEe(dEe(dEe({},y),((r={disabled:c.disabled,role:"gridcell"})["aria-selected"]=c.selected,r.tabIndex=b||k?0:-1,r)),d);return{isButton:h,isHidden:f,activeModifiers:c,selectedDays:m,buttonProps:S,divProps:y}}function A_e(e){var t=a.useRef(null),i=S_e(e.date,e.displayMonth,t);return i.isHidden?n.jsx("div",{role:"gridcell"}):i.isButton?n.jsx(BEe,dEe({name:"day",ref:t},i.buttonProps)):n.jsx("div",dEe({},i.divProps))}function w_e(e){var a=e.number,t=e.dates,i=SEe(),r=i.onWeekNumberClick,o=i.styles,s=i.classNames,l=i.locale,u=i.labels.labelWeekNumber,c=(0,i.formatters.formatWeekNumber)(Number(a),{locale:l});if(!r)return n.jsx("span",{className:s.weeknumber,style:o.weeknumber,children:c});var d=u(Number(a),{locale:l});return n.jsx(BEe,{name:"week-number","aria-label":d,className:s.weeknumber,style:o.weeknumber,onClick:function(e){r(a,t,e)},children:c})}function M_e(e){var a,t,i,r=SEe(),o=r.styles,s=r.classNames,l=r.components,u=null!==(a=null==l?void 0:l.Day)&&void 0!==a?a:A_e,c=null!==(t=null==l?void 0:l.WeekNumber)&&void 0!==t?t:w_e;return r.showWeekNumber&&(i=n.jsx("td",{className:s.cell,style:o.cell,children:n.jsx(c,{number:e.weekNumber,dates:e.dates})})),n.jsxs("tr",{className:s.row,style:o.row,children:[i,e.dates.map((function(a){return n.jsx("td",{className:s.cell,style:o.cell,role:"presentation",children:n.jsx(u,{displayMonth:e.displayMonth,date:a})},nEe(a))}))]})}function C_e(e,a,n){for(var t=(null==n?void 0:n.ISOWeek)?lNe(a):sNe(a,n),i=(null==n?void 0:n.ISOWeek)?qxe(e):Wxe(e,n),r=Qxe(t,i),o=[],s=0;s<=r;s++)o.push(Fxe(i,s));var l=o.reduce((function(e,a){var t=(null==n?void 0:n.ISOWeek)?function(e){Ixe(1,arguments);var a=Gxe(e),n=qxe(a).getTime()-Zxe(a).getTime();return Math.round(n/6048e5)+1}(a):function(e,a){Ixe(1,arguments);var n=Gxe(e),t=Wxe(n,a).getTime()-tEe(n,a).getTime();return Math.round(t/6048e5)+1}(a,n),i=e.find((function(e){return e.weekNumber===t}));return i?(i.dates.push(a),e):(e.push({weekNumber:t,dates:[a]}),e)}),[]);return l}function T_e(e){var a,t,i,r=SEe(),o=r.locale,s=r.classNames,l=r.styles,u=r.hideHead,c=r.components,d=r.weekStartsOn,m=r.firstWeekContainsDate,h=r.ISOWeek,p=function(e,a){var n=C_e(rNe(e),iNe(e),a);if(null==a?void 0:a.useFixedWeeks){var t=iEe(e,a);if(t<6){var i=n[n.length-1],r=i.dates[i.dates.length-1],o=Xxe(r,6-t),s=C_e(Xxe(r,1),o,a);n.push.apply(n,s)}}return n}(e.displayMonth,{useFixedWeeks:Boolean(r.fixedWeeks),ISOWeek:h,locale:o,weekStartsOn:d,firstWeekContainsDate:m}),g=null!==(a=null==c?void 0:c.Head)&&void 0!==a?a:HEe,f=null!==(t=null==c?void 0:c.Row)&&void 0!==t?t:M_e,v=null!==(i=null==c?void 0:c.Footer)&&void 0!==i?i:OEe;return n.jsxs("table",{id:e.id,className:s.table,style:l.table,role:"grid","aria-labelledby":e["aria-labelledby"],children:[!u&&n.jsx(g,{}),n.jsx("tbody",{className:s.tbody,style:l.tbody,children:p.map((function(a){return n.jsx(f,{displayMonth:e.displayMonth,dates:a.dates,weekNumber:a.weekNumber},a.weekNumber)}))}),n.jsx(v,{displayMonth:e.displayMonth})]})}var x_e="undefined"!=typeof window&&window.document&&window.document.createElement?a.useLayoutEffect:a.useEffect,N_e=!1,E_e=0;function __e(){return"react-day-picker-".concat(++E_e)}function P_e(e){var t,i,r=SEe(),o=r.dir,s=r.classNames,l=r.styles,u=r.components,c=_Ee().displayMonths,d=function(e){var n,t=null!=e?e:N_e?__e():null,i=a.useState(t),r=i[0],o=i[1];return x_e((function(){null===r&&o(__e())}),[]),a.useEffect((function(){!1===N_e&&(N_e=!0)}),[]),null!==(n=null!=e?e:r)&&void 0!==n?n:void 0}(r.id?"".concat(r.id,"-").concat(e.displayIndex):void 0),m=r.id?"".concat(r.id,"-grid-").concat(e.displayIndex):void 0,h=[s.month],p=l.month,g=0===e.displayIndex,f=e.displayIndex===c.length-1,v=!g&&!f;"rtl"===o&&(f=(t=[g,f])[0],g=t[1]),g&&(h.push(s.caption_start),p=dEe(dEe({},p),l.caption_start)),f&&(h.push(s.caption_end),p=dEe(dEe({},p),l.caption_end)),v&&(h.push(s.caption_between),p=dEe(dEe({},p),l.caption_between));var y=null!==(i=null==u?void 0:u.Caption)&&void 0!==i?i:DEe;return n.jsxs("div",{className:h.join(" "),style:p,children:[n.jsx(y,{id:d,displayMonth:e.displayMonth,displayIndex:e.displayIndex}),n.jsx(T_e,{id:m,"aria-labelledby":d,displayMonth:e.displayMonth})]},e.displayIndex)}function j_e(e){var a=SEe();return n.jsx("div",{className:a.classNames.months,style:a.styles.months,children:e.children})}function L_e(e){var t,i,r=e.initialProps,o=SEe(),s=g_e(),l=_Ee(),u=a.useState(!1),c=u[0],d=u[1];a.useEffect((function(){o.initialFocus&&s.focusTarget&&(c||(s.focus(s.focusTarget),d(!0)))}),[o.initialFocus,c,s.focus,s.focusTarget,s]);var m=[o.classNames.root,o.className];o.numberOfMonths>1&&m.push(o.classNames.multiple_months),o.showWeekNumber&&m.push(o.classNames.with_weeknumber);var h=dEe(dEe({},o.styles.root),o.style),p=Object.keys(r).filter((function(e){return e.startsWith("data-")})).reduce((function(e,a){var n;return dEe(dEe({},e),((n={})[a]=r[a],n))}),{}),g=null!==(i=null===(t=r.components)||void 0===t?void 0:t.Months)&&void 0!==i?i:j_e;return n.jsx("div",dEe({className:m.join(" "),style:h,dir:o.dir,id:o.id,nonce:r.nonce,title:r.title,lang:r.lang},p,{children:n.jsx(g,{children:l.displayMonths.map((function(e,a){return n.jsx(P_e,{displayIndex:a,displayMonth:e},a)}))})}))}function B_e(e){var a=e.children,t=function(e,a){var n={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&a.indexOf(t)<0&&(n[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(t=Object.getOwnPropertySymbols(e);i<t.length;i++)a.indexOf(t[i])<0&&Object.prototype.propertyIsEnumerable.call(e,t[i])&&(n[t[i]]=e[t[i]])}return n}(e,["children"]);return n.jsx(bEe,{initialProps:t,children:n.jsx(EEe,{children:n.jsx(v_e,{initialProps:t,children:n.jsx(FEe,{initialProps:t,children:n.jsx(ZEe,{initialProps:t,children:n.jsx(l_e,{children:n.jsx(p_e,{children:a})})})})})})})}function R_e(e){return n.jsx(B_e,dEe({},e,{children:n.jsx(L_e,{initialProps:e})}))}function z_e({className:e,classNames:a,showOutsideDays:t=!0,...i}){const r={months:"flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0",month:"space-y-4",caption:"flex justify-center pt-1 relative items-center",caption_label:"text-sm font-medium",nav:"space-x-1 flex items-center",nav_button:oz(t3({variant:"outline"}),"h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"),nav_button_previous:"absolute left-1",nav_button_next:"absolute right-1",table:"w-full border-collapse space-y-1",head_row:"flex",head_cell:"text-[#6b7280] rounded-md w-8 font-normal text-[0.8rem]",row:"flex w-full mt-2",cell:"relative p-0 text-center text-sm focus-within:relative focus-within:z-20 [&:has([aria-selected])]:bg-[#f1f5f9] [&:has([aria-selected].day-outside)]:bg-[#f1f5f9]/50 [&:has([aria-selected].day-range-end)]:rounded-r-md",day:oz(t3({variant:"ghost"}),"h-8 w-8 p-0 font-normal aria-selected:opacity-100"),day_range_start:"day-range-start",day_range_end:"day-range-end",day_selected:"!bg-black !text-gray-200 hover:!bg-black hover:!text-gray-200 focus:!bg-black focus:!text-white",day_today:"bg-gray-200 text-black",day_outside:"day-outside text-[#94a3b8] aria-selected:bg-[#f1f5f9]/50 aria-selected:text-[#94a3b8]",day_disabled:"text-[#94a3b8] opacity-50",day_range_middle:"aria-selected:bg-[#f1f5f9] aria-selected:text-black",day_hidden:"invisible",...a};return n.jsx(R_e,{showOutsideDays:t,className:oz("p-3",e),classNames:r,components:{IconLeft:()=>n.jsx(uB,{className:"h-4 w-4"}),IconRight:()=>n.jsx(cB,{className:"h-4 w-4"})},...i})}z_e.displayName="Calendar";const D_e=({setScheduleTime:e,setTimezone:a,timezone:t,scheduleTime:i,setIsDirty:o,canEditScheduleTime:s})=>{const[l,u]=r.useState(s&&i&&i<(new Date).toISOString()?"Please select a time in the future":null),[c,d]=r.useState(i&&"now"!==i?Ooe(new Date(i),"HH:mm"):"00:00"),m=Intl.supportedValuesOf("timeZone").map((e=>({label:e,value:e}))),h=e=>{if(!s)return;const n=new Date(i||(new Date).toISOString()),t=Yre(new Date,15);n<new Date(t.toLocaleString("en-US",{timeZone:e}))?u("Please select a time at least 15 minutes in the future"):(u(null),a(e),o(!0))},p=a=>{if(!s)return;const n=Yre(new Date,15);new Date(a.toLocaleString("en-US",{timeZone:t}))<new Date(n.toLocaleString("en-US",{timeZone:t}))?u("Please select a time at least 15 minutes in the future"):(u(null),e(a.toISOString()),o(!0))};return n.jsx("div",{className:"w-full @container/schedule-time",children:n.jsxs("div",{className:"flex flex-col items-center justify-center h-full",children:[n.jsxs("div",{className:"flex gap-2 w-full @xl/schedule-time:flex-row flex-col items-center justify-center",children:[n.jsxs(Hne,{children:[n.jsx(Ine,{asChild:!0,children:n.jsxs(i3,{variant:"outline",disabled:!s,className:oz("bg-background w-full sm:w-[280px] justify-start text-left font-normal",!i&&"text-muted-foreground",!s&&"opacity-50 cursor-not-allowed"),children:[n.jsx(rB,{className:"mr-2 h-4 w-4"}),i?"now"===i?"Send immediately":Ooe(new Date(i),"PPP"):n.jsx("span",{children:"Pick a date"})]})}),n.jsx(Gne,{className:"w-auto p-0 z-[60] pointer-events-auto",children:n.jsx(z_e,{mode:"single",selected:i?new Date(i):void 0,onSelect:e=>{if(!e||!s)return;const[a,n]=c.split(":").map(Number);e.setHours(a,n),p(e)},disabled:e=>{const a=new Date;return a.setHours(0,0,0,0),e<a||!s},initialFocus:!0})})]}),n.jsx("input",{type:"time",value:c,onChange:e=>{if(s&&(d(e.target.value),i&&e.target.value)){const[a,n]=e.target.value.split(":").map(Number),t=new Date(i);t.setHours(a,n),p(t)}},disabled:!s,className:oz("flex h-9 w-full sm:w-[150px] rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",l&&"border-red-500",!s&&"opacity-50 cursor-not-allowed")}),n.jsx("div",{className:"w-full sm:w-[200px]",children:n.jsx(ICe,{options:m,selectedValues:[t],setSelectedValues:e=>h(e[0]),onValueChange:e=>h(e[0]),placeholder:"Select timezone...",searchPlaceholder:"Search timezone...",emptyMessage:"No timezone found",title:"Select Timezone",singleSelect:!0,canOpen:s})})]}),l&&n.jsxs("p",{className:"text-destructive text-sm mt-2 flex items-center",children:[n.jsx("span",{className:"mr-2",children:"⚠️"}),l]})]})})},O_e=({title:e="Edit Schedule Time"})=>{const t=Q2(),i=ce(),{updateAutomation:r}=oa(t?.id||""),{toast:o}=Je(),[s,l]=a.useState(null),[u,c]=a.useState(t?.triggerMetadata?.triggerType===ca.ONE_TIME?t?.triggerMetadata?.scheduledAt:null),[d,m]=a.useState(t?.triggerMetadata?.triggerType===ca.ONE_TIME&&t?.triggerMetadata?.timezone||"America/New_York"),[h,p]=a.useState(!1),[g,f]=a.useState(null);let v=a.useRef(null);const y=a.useCallback((()=>{t&&("sendNow"===s||"now"===u?r({trigger:{triggerType:ca.ONE_TIME,scheduledAt:"now"}},{onError:()=>{o({title:"Failed to update schedule time",description:"Please try again",variant:"destructive"}),i.invalidateQueries({queryKey:Re.all})}}):u&&d&&r({trigger:{triggerType:ca.ONE_TIME,scheduledAt:u,timezone:d}},{onError:()=>{o({title:"Failed to update schedule time",description:"Please try again",variant:"destructive"}),i.invalidateQueries({queryKey:Re.all})}}))}),[t,s,u,d,r,o,i]);if(a.useEffect((()=>(g&&(v.current&&clearTimeout(v.current),v.current=setTimeout((()=>{o(g),f(null)}),800)),()=>{v.current&&clearTimeout(v.current)})),[g,o]),a.useEffect((()=>{t&&h&&s&&("sendNow"===s||u)&&(y(),p(!1))}),[s,u,d,y,t,h]),a.useEffect((()=>{null===s&&t?.triggerMetadata&&"object"==typeof t.triggerMetadata&&null!==t.triggerMetadata&&"scheduledAt"in t.triggerMetadata&&("now"===t?.triggerMetadata?.scheduledAt&&t?.triggerType===ca.ONE_TIME?l("sendNow"):(t?.triggerMetadata?.scheduledAt&&c(t.triggerMetadata.scheduledAt),t?.triggerMetadata?.timezone&&m(t.triggerMetadata.timezone),l("schedule")))}),[t,s]),!t)return null;const k=t.status===pa.DRAFT,b=TD(t?.triggerType===ca.ONE_TIME?"engage:automation":"engage:broadcast");return n.jsx(zxe,{title:e,headerActions:!k&&n.jsx(cse,{title:"You can only edit the schedule time if the automation is in draft mode"}),children:n.jsx("div",{className:"@container flex-1 mx-4",children:n.jsxs("div",{className:"flex @[1000px]:flex-row flex-col gap-8 items-center",children:[n.jsxs("div",{className:"flex-1 w-full",children:[n.jsxs("div",{className:"grid grid-cols-1 @[480px]:grid-cols-2 gap-4",children:[n.jsx(s3,{selected:"sendNow"===s,title:"Immediately",subtitle:`Messages will be sent within ~2 minutes of starting the ${b.toLowerCase()}. Check the Recipients tab to see who has received a message.`,icon:n.jsx(l3.SendButton,{className:"text-primary"}),onClick:()=>{k&&(l("sendNow"),c("now"),m("America/New_York"),p(!0))},disabled:!k}),n.jsx(s3,{selected:"schedule"===s,title:"Schedule",subtitle:`Choose date and time. Any ${b.toLowerCase()} scheduled more than 2 hours from now can be unscheduled and updated.`,icon:n.jsx(l3.ScheduleButton,{className:"text-primary"}),onClick:()=>{k&&l("schedule")},disabled:!k})]}),n.jsx(Hq,{children:"schedule"===s&&n.jsx(C2,{className:"overflow-hidden mt-8",children:n.jsx("div",{className:"bg-gray-50 rounded-xl p-5 border border-gray-100 flex items-center justify-center",children:n.jsx(D_e,{setScheduleTime:e=>{c(e),p(!0)},setTimezone:e=>{m(e),p(!0)},timezone:d,scheduleTime:u,setIsDirty:p,canEditScheduleTime:k})})})})]}),u&&"now"!==u&&n.jsx(M2.div,{initial:{opacity:0,y:10,scale:.98},animate:{opacity:1,y:0,scale:1},transition:{duration:.6,ease:[.23,1,.32,1],delay:.1},className:"@[1000px]:w-80 max-w-md w-full shrink-0 h-fit p-4 bg-blue-50 rounded-xl border border-blue-100 backdrop-blur-sm",children:n.jsxs(n.Fragment,{children:[n.jsx(M2.p,{initial:{opacity:0},animate:{opacity:.8},transition:{delay:.3,duration:.4},className:"text-sm font-medium text-gray-700",children:"Currently scheduled for:"}),n.jsx(M2.p,{initial:{opacity:0},animate:{opacity:1},transition:{delay:.4,duration:.4},className:"text-md font-bold text-gray-800",children:new Date(u).toLocaleString("en-US",{weekday:"long",month:"long",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit",hour12:!0,timeZoneName:"short",timeZone:d||void 0})})]})})]})})})},K_e=()=>n.jsx("div",{children:n.jsx(O_e,{title:"Set Schedule Time"})});var H_e=(e=>(e.DAYS="days",e))(H_e||{});const I_e=(e,a)=>{switch(e){case $2.EQUALS:return"Equals";case $2.NOT_EQUALS:return"Not Equals";case $2.GREATER_THAN:return a===q2.Date?"Date on or after":"Greater than";case $2.LESS_THAN:return a===q2.Date?"Date on or before":"Less than";case $2.EXISTS:return"Exists";case $2.EQUALS_MONTH_DAY:return"Month and Day Matches";case $2.EQUALS_MONTH_DAY_YEAR:return"Month, Day, and Year Matches";case $2.BETWEEN_MONTH_DAY:return"Between Month Day";case $2.BETWEEN_MONTH_DAY_YEAR:return"Between Month Day Year";case $2.ARRAY_CONTAINS:return"Is One Of";default:return e}},G_e={email:"Email Address",phone:"Phone Number",firstName:"First Name",lastName:"Last Name"},F_e=({options:e,value:a,onChange:t,placeholder:i,className:o="",disableInput:s=!1})=>{const[l,u]=r.useState(!1);return n.jsxs(Hne,{modal:!0,open:l,onOpenChange:u,children:[n.jsx(Ine,{asChild:!0,children:n.jsxs(i3,{"aria-expanded":l,className:oz("w-full overflow-hidden justify-between",o),variant:"outline",children:[a?e.find((e=>e.value===a))?.label:i,n.jsx(mB,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),n.jsx(Gne,{className:oz("w-full min-w-[120px] max-w-[600px] p-0",o),children:n.jsxs(CMe,{children:[!s&&n.jsx(TMe,{placeholder:`${i}...`}),n.jsxs(xMe,{children:[n.jsxs(NMe,{children:["No ",i.toLowerCase()," found."]}),n.jsx(EMe,{children:e.map((e=>n.jsxs(_Me,{value:e.value,onSelect:e=>{t(e===a?"":e),u(!1)},children:[n.jsx(sB,{className:oz("mr-2 h-4 w-4",a===e.value?"opacity-100":"opacity-0")}),e.label]},e.id||e.value)))})]})]})})]})};var V_e="Switch",[J_e,U_e]=x4(V_e),[W_e,q_e]=J_e(V_e),Z_e=r.forwardRef(((e,a)=>{const{__scopeSwitch:t,name:i,checked:o,defaultChecked:s,required:l,disabled:u,value:c="on",onCheckedChange:d,form:m,...h}=e,[p,g]=r.useState(null),f=oq(a,(e=>g(e))),v=r.useRef(!1),y=!p||(m||!!p.closest("form")),[k=!1,b]=_4({prop:o,defaultProp:s,onChange:d});return n.jsxs(W_e,{scope:t,checked:k,disabled:u,children:[n.jsx(z4.button,{type:"button",role:"switch","aria-checked":k,"aria-required":l,"data-state":X_e(k),"data-disabled":u?"":void 0,disabled:u,value:c,...h,ref:f,onClick:T4(e.onClick,(e=>{b((e=>!e)),y&&(v.current=e.isPropagationStopped(),v.current||e.stopPropagation())}))}),y&&n.jsx(Q_e,{control:p,bubbles:!v.current,name:i,value:c,checked:k,required:l,disabled:u,form:m,style:{transform:"translateX(-100%)"}})]})}));Z_e.displayName=V_e;var $_e="SwitchThumb",Y_e=r.forwardRef(((e,a)=>{const{__scopeSwitch:t,...i}=e,r=q_e($_e,t);return n.jsx(z4.span,{"data-state":X_e(r.checked),"data-disabled":r.disabled?"":void 0,...i,ref:a})}));Y_e.displayName=$_e;var Q_e=e=>{const{control:a,checked:t,bubbles:i=!0,...o}=e,s=r.useRef(null),l=vwe(t),u=F6(a);return r.useEffect((()=>{const e=s.current,a=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(a,"checked").set;if(l!==t&&n){const a=new Event("click",{bubbles:i});n.call(e,t),e.dispatchEvent(a)}}),[l,t,i]),n.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:t,...o,tabIndex:-1,ref:s,style:{...e.style,...u,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})};function X_e(e){return e?"checked":"unchecked"}var ePe=Z_e,aPe=Y_e;const nPe=r.forwardRef((({className:e,...a},t)=>n.jsx(ePe,{className:oz("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input/50",e),...a,ref:t,children:n.jsx(aPe,{className:oz("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})})));nPe.displayName=ePe.displayName;const tPe=({onSelect:e,date:a,placeholder:t="Pick a date",monthDayOnly:i=!1})=>n.jsxs(Hne,{modal:!0,children:[n.jsx(Ine,{asChild:!0,children:n.jsxs(i3,{variant:"outline",className:oz("w-[200px] justify-start text-left font-normal h-9",!a&&"text-muted-foreground"),children:[n.jsx(rB,{className:"mr-2 h-4 w-4"}),a?Ooe(a,i?"MMMM d":"PPP"):n.jsx("span",{children:t})]})}),n.jsx(Gne,{className:"w-auto p-0",align:"start",children:n.jsx(z_e,{mode:"single",selected:a,onSelect:e,initialFocus:!0})})]}),iPe=Lre.union([Lre.date(),Lre.string().transform((e=>{if(/^\d{4}-\d{2}-\d{2}$/.test(e)){const[a,n,t]=e.split("-").map(Number);return new Date(a,n-1,t)}return new Date(e)}))]).refine((e=>!isNaN(e.getTime())),{message:"Invalid date"}),rPe=e=>void 0===e.value||!("number"!=typeof e.value||e.value<0)&&(e.unit===H_e.DAYS&&(("before"===e.direction||"after"===e.direction)&&"relative"===e.type)),oPe=e=>{const{date:a,fieldType:n}=e;return n===q2.Date?new Date(Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate(),0,0,0,0)):a},sPe=({fieldType:e,operator:a,value:t,onChange:i,options:o,toast:s})=>{const l=t.length>0&&"object"==typeof t[0]&&"type"in t[0]&&"relative"===t[0].type,u=t.length>0&&"object"==typeof t[0]&&"startDate"in t[0]&&"endDate"in t[0],[c,d]=r.useState((()=>{if((e===q2.Date||e===q2.DateTime)&&t.length>0){const e=iPe.safeParse(t[0]);return e.success?e.data:void 0}})),[m,h]=r.useState(l),[p,g]=r.useState(l?t[0]:{type:"relative",value:0,unit:H_e.DAYS,direction:"before"}),[f,v]=r.useState(u?t[0]:void 0),[y,k]=r.useState(!1);if(r.useEffect((()=>{a!==$2.EQUALS_MONTH_DAY&&a!==$2.EQUALS_MONTH_DAY_YEAR&&m&&(h(!1),i(c?[c]:[]))}),[a,m,c,i]),r.useEffect((()=>{if(u&&f?.startDate){k("object"==typeof f.startDate&&"type"in f.startDate)}}),[u,f]),e===q2.String||e===q2.ReachResource||e===q2.Array)return a===$2.EXISTS?null:n.jsx(ICe,{options:(o||[]).map((e=>({label:e.displayName,value:e.id}))),onValueChange:e=>{i(e)},selectedValues:t.map((e=>{const a=(o||[]).find((a=>a.id===String(e)||a.displayName===String(e)||a.id===a.displayName&&a.id===String(e)));return a?.id||String(e)})),setSelectedValues:e=>{i(e)}});if(e===q2.Date||e===q2.DateTime){const t=a===$2.EQUALS_MONTH_DAY||a===$2.EQUALS_MONTH_DAY_YEAR,r=a===$2.BETWEEN_MONTH_DAY||a===$2.BETWEEN_MONTH_DAY_YEAR,o=e=>{rPe(e)?(g(e),m&&i([e])):s({title:"Invalid relative date",description:"Please enter a valid non-negative number of days.",variant:"destructive"})},l=e=>{const a=e.startDate??f?.startDate,n=e.endDate??f?.endDate,t=a&&"object"==typeof a&&"type"in a,r=n&&"object"==typeof n&&"type"in n;if(a&&n){if(t!==r)return void s({title:"Invalid date range",description:"Both start and end dates must be of the same type (either both absolute or both relative).",variant:"destructive"});if(!t&&!r&&!(e=>!e.finalStartDate||!e.finalEndDate||e.finalStartDate<e.finalEndDate)({finalStartDate:a,finalEndDate:n}))return void s({title:"Invalid date range",description:"Start date must be before end date.",variant:"destructive"});if(t&&(!rPe(a)||!rPe(n)))return void s({title:"Invalid relative date",description:"Please enter valid relative dates.",variant:"destructive"})}v(e),a&&n&&i([{startDate:a,endDate:n}])},u=a=>{a&&(e=>e instanceof Date?!isNaN(e.getTime()):"object"==typeof e&&"type"in e&&"relative"===e.type&&rPe(e))(a)?(d(oPe({date:a,fieldType:e})),i([oPe({date:a,fieldType:e})]),h(!1)):a||(d(void 0),i([]),h(!1))},b=a=>{h(a),i(a?[p]:c?[oPe({date:c,fieldType:e})]:[])};return n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsxs("div",{className:"min-h-[36px] flex items-center",children:[(!m||!t)&&!r&&n.jsx(tPe,{date:c,onSelect:u,monthDayOnly:a===$2.EQUALS_MONTH_DAY}),t&&m&&n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx(L7,{type:"number",value:void 0===p.value?"":p.value,onChange:e=>{const a=""===e.target.value?void 0:parseInt(e.target.value,10);o({...p,value:a})},className:"w-20 h-9",min:"0","aria-label":"Relative days value"}),n.jsxs(zke,{value:p.direction,onValueChange:e=>{o({...p,direction:e})},children:[n.jsx(Kke,{className:"w-[180px] h-9","aria-label":"Relative direction",children:n.jsx(Oke,{placeholder:"Select direction..."})}),n.jsxs(Gke,{children:[n.jsx(Fke,{value:"before",children:"days before today"}),n.jsx(Fke,{value:"after",children:"days after today"})]})]})]}),r&&n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsxs("div",{className:"flex flex-col space-y-2",children:[n.jsx("div",{className:"flex items-center space-x-2",children:y?n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx(L7,{type:"number",value:f?.startDate&&"object"==typeof f.startDate&&"type"in f.startDate?f.startDate.value:"",onChange:e=>{const a={type:"relative",value:""===e.target.value?void 0:parseInt(e.target.value,10),unit:H_e.DAYS,direction:f?.startDate?.direction||"before"};rPe(a)&&(v({...f,startDate:a}),l({...f,startDate:a}))},className:"w-20 h-9",min:"0","aria-label":"Start date relative days"}),n.jsxs(zke,{value:f?.startDate&&"object"==typeof f.startDate&&"type"in f.startDate?f.startDate.direction:"before",onValueChange:e=>{const a={type:"relative",value:f?.startDate?.value,unit:H_e.DAYS,direction:e};rPe(a)&&(v({...f,startDate:a}),l({...f,startDate:a}))},children:[n.jsx(Kke,{className:"w-[180px] h-9",children:n.jsx(Oke,{placeholder:"Select direction..."})}),n.jsxs(Gke,{children:[n.jsx(Fke,{value:"before",children:"days before today"}),n.jsx(Fke,{value:"after",children:"days after today"})]})]}),n.jsx("span",{className:"w-12 text-xs font-medium text-muted-foreground flex-shrink-0",children:"Start"})]}):n.jsx(tPe,{placeholder:"Start date",date:f?.startDate instanceof Date||"string"==typeof f?.startDate?f.startDate instanceof Date?f.startDate:new Date(f.startDate):void 0,monthDayOnly:a===$2.BETWEEN_MONTH_DAY,onSelect:a=>{const n=a;n&&(v({...f,startDate:oPe({date:n,fieldType:e})}),l({...f,startDate:oPe({date:n,fieldType:e})}))}})}),n.jsx("div",{className:"flex items-center space-x-2",children:y?n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx(L7,{type:"number",value:f?.endDate&&"object"==typeof f.endDate&&"type"in f.endDate?f.endDate.value:"",onChange:e=>{const a={type:"relative",value:""===e.target.value?void 0:parseInt(e.target.value,10),unit:H_e.DAYS,direction:f?.endDate?.direction||"before"};rPe(a)&&(v({...f,endDate:a}),l({...f,endDate:a}))},className:"w-20 h-9",min:"0","aria-label":"End date relative days"}),n.jsxs(zke,{value:f?.endDate&&"object"==typeof f.endDate&&"type"in f.endDate?f.endDate.direction:"before",onValueChange:e=>{const a={type:"relative",value:f?.endDate?.value,unit:H_e.DAYS,direction:e};rPe(a)&&(v({...f,endDate:a}),l({...f,endDate:a}))},children:[n.jsx(Kke,{className:"w-[180px] h-9",children:n.jsx(Oke,{placeholder:"Select direction..."})}),n.jsxs(Gke,{children:[n.jsx(Fke,{value:"before",children:"days before today"}),n.jsx(Fke,{value:"after",children:"days after today"})]})]}),n.jsx("span",{className:"w-12 text-xs font-medium text-muted-foreground flex-shrink-0",children:"End"})]}):n.jsx(tPe,{placeholder:"End date",date:f?.endDate instanceof Date||"string"==typeof f?.endDate?f.endDate instanceof Date?f.endDate:new Date(f.endDate):void 0,monthDayOnly:a===$2.BETWEEN_MONTH_DAY,onSelect:a=>{const n=a;n&&(v({...f,endDate:oPe({date:n,fieldType:e})}),l({...f,endDate:oPe({date:n,fieldType:e})}))}})})]}),n.jsxs("div",{className:"flex items-center space-x-1 pl-1",children:[n.jsx(nPe,{id:"between-relative-date-switch",checked:y,onCheckedChange:e=>{if(k(e),e){const e={type:"relative",value:0,unit:H_e.DAYS,direction:"before"},a={type:"relative",value:0,unit:H_e.DAYS,direction:"before"};v({startDate:e,endDate:a}),l({startDate:e,endDate:a})}else{const e=new Date,a=new Date(e);a.setDate(a.getDate()+1),v({startDate:e,endDate:a}),l({startDate:e,endDate:a})}},"aria-label":"Toggle relative date input for between dates"}),n.jsx(sve,{htmlFor:"between-relative-date-switch",className:"text-xs font-normal text-muted-foreground cursor-pointer",children:"Relative"})]})]})]}),t&&n.jsxs("div",{className:"flex items-center space-x-1 pl-1",children:[n.jsx(nPe,{id:"relative-date-switch",checked:m,onCheckedChange:b,"aria-label":"Toggle relative date input"}),n.jsx(sve,{htmlFor:"relative-date-switch",className:"text-xs font-normal text-muted-foreground cursor-pointer",children:"Relative"})]})]})}if(e===q2.Number||e===q2.Integer)return a===$2.EXISTS?null:n.jsx(L7,{type:"number",value:t.length>0?String(t[0]):"",onChange:e=>i([Number(e.target.value)]),className:"w-[200px]"});if(e===q2.Boolean){if(a===$2.EXISTS)return null;const e=t.length>0&&Boolean(t[0]);return n.jsx(nPe,{checked:e,onCheckedChange:e=>i([e])})}return n.jsx(L7,{value:t.length>0?String(t[0]):"",onChange:e=>i([e.target.value]),className:"w-[200px]",disabled:!0})},lPe=({condition:e,onUpdate:t,onDuplicate:i,onDelete:r,segmentsConditions:o})=>{const{toast:s}=Je(),l=(e=>{const a=o.conditions.find((a=>a.field===e));return a||null})(e.field)||{operators:[],type:q2.String,options:void 0},u=l.operators,c=l.type,d=o.conditions.map((e=>e.field)).map((e=>({value:e,label:G_e[e]||e})));return a.useEffect((()=>{setTimeout((()=>document.body.style.pointerEvents=""),0)}),[]),n.jsxs("div",{className:"flex flex-col sm:flex-row items-stretch gap-2 min-w-0 w-full",children:[n.jsxs("div",{className:"flex flex-col sm:flex-row flex-1 items-stretch gap-2 min-w-0 w-full",children:[n.jsx("div",{className:"flex-1 min-w-0 items-center flex",children:n.jsx(F_e,{options:d,value:e.field,onChange:a=>{const n=a,i=o.conditions.find((e=>e.field===n));if(!i)return;const r=i.operators.map((e=>({value:e,label:I_e(e,i.type),fieldType:i.type}))),s=r[0]?.value;let l=[];switch(i.type){case q2.Boolean:l=[!1];break;case q2.Number:l=[0];break;case q2.Date:case q2.DateTime:l=[new Date];break;case q2.String:l=i.options?.length?i.options.map((e=>e.displayName)):[];break;default:l=[]}t({...e,field:n,operator:s,value:l})},placeholder:"Select field",className:"w-full",disableInput:!0})}),n.jsxs("div",{className:"flex-1 min-w-0 max-w-xs flex gap-2 items-center",children:[(e.operator===$2.EQUALS_MONTH_DAY||e.operator===$2.EQUALS_MONTH_DAY_YEAR||e.operator===$2.BETWEEN_MONTH_DAY||e.operator===$2.BETWEEN_MONTH_DAY_YEAR)&&n.jsx("div",{className:"flex items-center",children:(e=>{let a;switch(e){case $2.EQUALS_MONTH_DAY:a="This operator will check if only the month and day are equal. This is useful for things like birthday, where year does not matter";break;case $2.EQUALS_MONTH_DAY_YEAR:a="This operator will check if only the month and day are equal. This is useful for things like appointment dates, where specific day and month is important but year does not matter";break;case $2.BETWEEN_MONTH_DAY:a="This operator will check if the date is between the two dates, but only checking the month and the day, not the year. This is helpful for things like birthday, where year does not matter";break;case $2.BETWEEN_MONTH_DAY_YEAR:a="This operator will check if the date is between the two dates, checking the month, day and year. This is helpful for things like appointment dates, where specific day, month and year is important";break;default:return null}return n.jsx(cse,{title:a})})(e.operator)}),n.jsx(F_e,{options:u.map((e=>({value:e,label:e?I_e(e,c):e}))),value:e.operator,onChange:a=>t({...e,operator:a}),placeholder:"Select operator",className:"w-full",disableInput:!0})]}),n.jsx("div",{className:"flex-1 min-w-0 max-w-full overflow-x-auto",children:n.jsx(sPe,{fieldType:c,operator:e.operator,options:"string"==typeof e.value[0]&&e.value[0]&&Array.isArray(l.options)?[...(l.options||[]).map((e=>({displayName:e.displayName,id:e.id}))),...e.value.filter((e=>!l.options?.some((a=>a.id===e||a.displayName===e)))).map((e=>({displayName:e,id:e})))]:l.options?.map((e=>({displayName:e.displayName,id:e.id}))),value:e.value,onChange:a=>t({...e,value:a}),toast:s})})]}),n.jsxs("div",{className:"flex items-center flex-shrink-0 pl-2",children:[n.jsx(i3,{size:"icon",variant:"ghost",onClick:i,children:n.jsx(AB,{className:"h-4 w-4"})}),n.jsx(i3,{size:"icon",variant:"ghost",onClick:r,children:n.jsx(tR,{className:"h-4 w-4"})})]})]})},uPe=({onSelectStyle:e})=>{const[t,i]=a.useState(null);return n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4 p-4 max-w-4xl mx-auto",children:[n.jsx(s3,{onClick:()=>{i("ai"),e("ai")},title:"Build with AI",subtitle:"Describe your audience in plain language and let AI create the conditions",icon:n.jsx("div",{className:"h-12 w-12 rounded-full bg-primary/10 flex items-center justify-center",children:n.jsx("div",{className:"w-6 h-6 text-[hsl(var(--reach-primary))]",children:n.jsx(eR,{className:"w-full h-full"})})}),selected:"ai"===t}),n.jsx(s3,{onClick:()=>{i("manual"),e("manual")},title:"Build Manually",subtitle:`Create your ${TD("engage:segment")} by configuring conditions directly`,icon:n.jsx("div",{className:"h-12 w-12 rounded-full bg-primary/10 flex items-center justify-center",children:n.jsx("div",{className:"w-6 h-6 text-[hsl(var(--reach-primary))]",children:n.jsx(qB,{className:"w-full h-full"})})}),selected:"manual"===t})]})},cPe=({segmentId:e,setOpen:a,setTextToSegment:t,promptBuilderStyle:i,textToSegment:r})=>n.jsx("div",{children:n.jsx(kq,{className:"",children:n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsx(Sq,{className:"text-3xl font-normal",children:e?`Edit ${TD("engage:segment")}`:`Create ${TD("engage:segment")}`}),n.jsxs("div",{className:"flex items-center gap-2",children:[!1===i&&!1===r&&n.jsx(ine,{children:n.jsxs(rne,{children:[n.jsx(one,{asChild:!0,children:n.jsx(i3,{variant:"outline",size:"sm",onClick:()=>t(!0),children:n.jsx(eR,{className:"h-4 w-3"})})}),n.jsx(sne,{children:n.jsxs("p",{children:["Use AI to create ",TD("engage:segment")," by describing them in natural language"]})})]})}),n.jsx(i3,{variant:"ghost",size:"icon",onClick:()=>{a(!1)},className:"h-8 w-8",children:n.jsx(mR,{className:"h-4 w-4"})})]})]})})}),dPe=r.forwardRef((({className:e,...a},t)=>n.jsx("textarea",{className:oz("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:t,...a})));dPe.displayName="Textarea";const mPe=({setTextToSegment:e,setSegment:t})=>{const[i,r]=a.useState(""),[o,s]=a.useState(!1),{toast:u}=Je();return n.jsxs("div",{className:"flex flex-col gap-6 p-4",children:[n.jsxs("div",{className:"space-y-2",children:[n.jsx("h3",{className:"text-lg font-semibold text-foreground",children:"Describe your audience"}),n.jsx("p",{className:"text-sm text-muted-foreground",children:"Describe the audience you want to target in plain language, and our AI will create the conditions for you."})]}),n.jsxs("div",{className:"space-y-4",children:[n.jsxs(Hq,{children:[o&&n.jsx(C2,{children:n.jsx(Tq,{})}),!o&&n.jsx(C2,{children:n.jsx(dPe,{placeholder:"Describe your target audience...",className:"min-h-[120px] resize-none",value:i,onChange:e=>r(e.target.value)})})]}),n.jsx("div",{className:"flex justify-end gap-2",children:n.jsxs(i3,{onClick:async()=>{if(!i)return void u({title:"Please enter a description",description:"Please enter a description of your target audience",variant:"destructive"});s(!0);const a=await(async e=>{const{userInput:a,userCustomVerb:n}=e;return(await Be(`${l}/text-to-segment`,{method:"POST",body:JSON.stringify({text:a,userCustomVerb:n||"user"})})).data})({userInput:i,userCustomVerb:TD("engage:user")});a.success&&a.conditions?(u({title:`${TD("engage:segment")} conditions built successfully 🚀`,description:`Your ${TD("engage:segment")} conditions have been built successfully`}),t(a.conditions)):u({title:`${TD("engage:segment")} build failed`,description:"Please try again",variant:"destructive"}),e(!1),s(!1)},children:[n.jsx(eR,{className:"h-4 w-4"}),"Generate ",TD("engage:segment")]})})]})]})};function hPe({segmentId:e,setOpen:a,onSegmentUpdated:t}){const{toast:i}=Je(),o=void 0===e,[s,l]=r.useState(!1),[u,c]=r.useState({version:"1.0",id:"",name:"",description:"",logic:"AND",conditions:[]}),{segment:d,isLoading:m}=U2(e||""),{updateSegment:h}=W2(e),{createSegment:p,isCreating:g,segmentsConditions:f}=F2(),[v,y]=r.useState(!1),[k,b]=r.useState(!!o);r.useEffect((()=>{f&&c(d?{version:"1.0",id:d.id,name:d.name,description:d.description,logic:"AND",conditions:d.conditions}:{version:"1.0",id:"",name:"",description:"",logic:"AND",conditions:[{field:f.conditions[0].field,operator:f.conditions[0].operators[0],value:[]}]})}),[d,f]);const S=e=>e.value.some((e=>"object"==typeof e&&"type"in e&&"relative"===e.type)),A=e=>e.value.some((e=>"object"==typeof e&&"startDate"in e&&"endDate"in e));if(!f||m)return n.jsx("div",{className:"flex h-full items-center justify-center",children:n.jsx(Tq,{})});return n.jsxs(n.Fragment,{children:[n.jsx(cPe,{segmentId:e,setOpen:a,setTextToSegment:y,promptBuilderStyle:k,textToSegment:v},"segment-builder-header"),k?n.jsx(C2,{children:n.jsx(uPe,{onSelectStyle:e=>{"ai"===e&&y(!0),b(!1)}})},"prompt-builder-style"):n.jsx(C2,{children:n.jsxs("div",{className:"flex flex-1 flex-col",children:[n.jsx("div",{className:"flex flex-1 flex-col px-8 py-2",children:n.jsx("div",{className:"flex flex-1 flex-col gap-4 overflow-visible",children:n.jsx(Hq,{children:v?n.jsx(C2,{children:n.jsx(mPe,{setTextToSegment:y,setSegment:e=>c({...u,conditions:e})})}):n.jsxs(C2,{children:[n.jsxs("div",{className:"mb-6 grid grid-cols-2 gap-2",children:[n.jsxs("div",{className:"grid gap-2",children:[n.jsxs("div",{className:"flex items-center gap-0",children:[n.jsx(sve,{className:"text-muted-foreground text-xs",children:"Name"}),n.jsx("span",{className:"text-xs text-red-500 ml-1 align-super",children:"*"})]}),n.jsx(L7,{placeholder:`${TD("engage:segment")} name`,value:u.name,onChange:e=>c({...u,name:e.target.value})})]}),n.jsxs("div",{className:"grid gap-2",children:[n.jsx(sve,{className:"text-muted-foreground text-xs",children:"Description"}),n.jsx(L7,{placeholder:`${TD("engage:segment")} description`,value:u.description,onChange:e=>c({...u,description:e.target.value})})]})]}),u.conditions.length>0&&n.jsx("div",{className:"flex-1 overflow-y-auto pb-8",children:n.jsx("div",{className:"grid",children:n.jsx(Hq,{mode:"popLayout",children:u.conditions.map(((e,a)=>n.jsxs(M2.div,{initial:{opacity:0,x:-20},animate:{opacity:1,x:0},exit:{opacity:0,x:20},transition:{type:"spring",stiffness:300,damping:30,mass:.5},children:[a>0&&n.jsxs(M2.div,{className:"relative flex items-center gap-3 py-1",initial:{opacity:0},animate:{opacity:1},transition:{delay:.1},children:[n.jsx(M2.div,{className:"h-px flex-1 bg-border",initial:{scaleX:0},animate:{scaleX:1},transition:{type:"spring",stiffness:300,damping:30,mass:.5}}),n.jsx(M2.span,{className:"text-muted-foreground text-xs",initial:{opacity:0},animate:{opacity:1},transition:{delay:.2},children:"AND"}),n.jsx(M2.div,{className:"h-px flex-1 bg-border",initial:{scaleX:0},animate:{scaleX:1},transition:{type:"spring",stiffness:300,damping:30,mass:.5}})]}),n.jsx(lPe,{condition:e,onUpdate:e=>((e,a)=>{const n=[...u.conditions];n[e]=a,c({...u,conditions:n})})(a,e),segmentsConditions:f,onDuplicate:()=>(e=>{const a=[...u.conditions];a.splice(e+1,0,{...u.conditions[e]}),c({...u,conditions:a})})(a),onDelete:()=>(e=>{const a=u.conditions.filter(((a,n)=>n!==e));c({...u,conditions:a})})(a)})]},`${e.field}-${e.operator}-${a}`)))})})})]})})})}),n.jsx("div",{className:"border-t px-8 py-4",children:n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs(i3,v?{variant:"secondary",onClick:()=>y(!1),children:[n.jsx(qB,{className:"h-4 w-4"}),"Manual Builder"]}:{variant:"secondary",onClick:()=>{c({...u,conditions:[...u.conditions,{field:f.conditions[0].field,operator:f.conditions[0].operators[0],value:[]}]})},children:[n.jsx(VB,{className:"h-4 w-4"}),"Add Condition"]}),n.jsxs("div",{className:"flex gap-2",children:[n.jsx(i3,{variant:"destructive",onClick:()=>a(!1),children:"Cancel"}),n.jsx(i3,{variant:"default",onClick:async()=>{if(!u.name)return void i({title:"Name is required",description:"Please ensure all fields are filled out",variant:"destructive"});const{valid:n,error:r}=(e=>{for(const a of e){if(!a.field||!a.operator)return{valid:!1,error:"Please ensure all fields are filled out for condition"};if(a.operator!==$2.EXISTS&&0===a.value.length)return{valid:!1,error:`Please ensure a value is selected for ${a.field}`};if(a.operator===$2.EXISTS&&a.value.length>0)return{valid:!1,error:`EXISTS operator can only be used with an empty array for ${a.field}`};if(S(a)&&a.operator!==$2.EQUALS_MONTH_DAY&&a.operator!==$2.EQUALS_MONTH_DAY_YEAR)return{valid:!1,error:`Relative dates can only be used with the month and day or month, day, and year operator for ${a.field}`};if(S(a)&&void 0===a.value[0].value)return{valid:!1,error:`Please select a value for the relative date for ${a.field}`};if(A(a)&&a.operator!==$2.BETWEEN_MONTH_DAY&&a.operator!==$2.BETWEEN_MONTH_DAY_YEAR)return{valid:!1,error:`Between dates can only be used with the between month day or between month day year operator for ${a.field}`};if(A(a)&&a.value.length>1)return{valid:!1,error:`Between dates can only have a single value for ${a.field}`};if(A(a)){const e=a.value[0];if(!e.startDate||!e.endDate)return{valid:!1,error:`Please ensure both a start and end date are selected for ${a.field}`};if(e.startDate instanceof Date&&e.endDate instanceof Date&&e.startDate>e.endDate)return{valid:!1,error:`Start date must be before end date for ${a.field}`};if("object"==typeof e.startDate&&"type"in e.startDate&&"relative"===e.startDate.type&&"object"==typeof e.endDate&&"type"in e.endDate&&"relative"===e.endDate.type){if(!e.startDate.value||!e.endDate.value)return{valid:!1,error:`Please ensure both a start and end date are selected for ${a.field}`};if(e.startDate.direction!==e.endDate.direction)return{valid:!1,error:`Start and end date must be of the same direction for ${a.field}`};const n=e=>{if(e.unit===H_e.DAYS)return e.value??0;throw L2(e.unit,H_e)};if("before"===e.startDate.direction&&n(e.startDate)>n(e.endDate))return{valid:!1,error:`Start date must be before end date for ${a.field}`};if("after"===e.startDate.direction&&n(e.startDate)<n(e.endDate))return{valid:!1,error:`Start date must be after end date for ${a.field}`}}}}return{valid:!0,error:void 0}})(u.conditions);if(!n)return void i({title:"Conditions are invalid",description:r??"Please ensure all fields are filled out",variant:"destructive"});const o=u.conditions.map((e=>{const a=f?.conditions.find((a=>a.field===e.field));return a?.type===q2.Date&&(e.value=e.value.map((e=>e instanceof Date?e.toISOString().split("T")[0]:e))),e}));l(!0);try{e&&d?h({name:u.name,description:u.description,conditions:o},{onSuccess:()=>{i({title:`${TD("engage:segment")} updated successfully`}),a(!1),t?.(e)},onError:()=>{i({title:`Error updating ${TD("engage:segment")}`,description:"Please try again",variant:"destructive"}),t?.("error")}}):p({name:u.name,description:u.description,conditions:u.conditions},{onSuccess:e=>{i({title:`${TD("engage:segment")} created successfully`}),t?.(e?.id??!1),a(!1)},onError:()=>{i({title:`Error creating ${TD("engage:segment")}`,description:"Please try again",variant:"destructive"}),t?.("error")}})}catch(s){i({title:`Error saving ${TD("engage:segment")}`,description:"Please try again",variant:"destructive"}),t?.("error")}finally{l(!1)}},disabled:s||g,children:s||g?n.jsxs(n.Fragment,{children:[n.jsx(EB,{className:"mr-2 h-4 w-4 animate-spin"}),e?"Updating...":"Creating..."]}):e?"Update":"Create"})]})]})})]})},"manual-builder-style")]})}function pPe({open:e,setOpen:a,segmentId:t,onSegmentUpdated:i}){return n.jsx(pq,{open:e,onOpenChange:a,children:n.jsxs(yq,{className:"flex max-h-[86vh] flex-col gap-0 overflow-visible max-w-6xl w-full",hideCloseButton:!0,children:[n.jsxs(mq,{children:[n.jsxs(Sq,{children:[TD("engage:segment")," Builder"]}),n.jsxs(Aq,{children:["Build a ",TD("engage:segment")," to target your audience"]})]}),n.jsx(hPe,{segmentId:t,setOpen:a,onSegmentUpdated:e=>{i?.(e),a(!1)}})]})})}const gPe=()=>n.jsx(cse,{title:`These are estimated numbers of ${TD("engage:user",{count:2}).toLocaleLowerCase()} that are matched. The actual count may change at the time of sending. You can see the breakdown of who have opted into email or sms.`}),fPe=({value:e,label:a,percentage:t,variant:i,isLoading:r,selected:o,onClick:s})=>n.jsxs("div",{className:`rounded-md border-2 border-muted-foreground/20 px-2 pt-2 pb-3 duration-300 ease-in-out overflow-x-auto max-w-full min-w-0 ${o?"scale-[1.02] [border-color:hsl(var(--reach-primary))] shadow-lg":""} ${s?"cursor-pointer hover:bg-gray-50/50 transition-colors":""}`,style:{containerType:"inline-size"},"data-card-container":!0,onClick:s,children:[n.jsxs("div",{className:"flex flex-col gap-1 items-start w-full min-w-0",children:[n.jsx("div",{className:"flex items-baseline gap-2 w-full min-w-0 @container/num",children:r?n.jsx("span",{className:"animate-pulse",children:"..."}):n.jsxs(n.Fragment,{children:[n.jsx("span",{className:"font-semibold pl-2 break-words max-w-full min-w-0 truncate\n text-xl @[250px]/card:text-2xl @[350px]/card:text-3xl @[500px]/card:text-4xl text-primary",children:e.toLocaleString()}),void 0!==t&&e.toLocaleString().replace(/,/g,"").length<5&&n.jsxs("span",{className:"text-muted-foreground/50 text-sm hidden @[120px]/num:inline",children:["(",t,"%)"]})]})}),n.jsx("span",{className:`px-2 sm:px-2.5 py-1 text-xs font-medium rounded-lg ${{default:"bg-gray-100/50 text-gray-700",blue:"bg-blue-100/50 text-blue-700",green:"bg-green-100/50 text-green-700"}[i]}`,children:a})]}),n.jsx("p",{className:"text-sm text-muted-fore hidden @[250px]/card:inline mt-1",children:1===e?"contact":"contacts"})]}),vPe=({countResponse:e,selectedFilter:t="all",onFilterChange:i})=>{const r=a.useMemo((()=>e?.recipients?e.recipients.reduce(((a,n)=>({total:e.count,emails:a.emails+(n.email?1:0),phones:a.phones+(n.phone?1:0)})),{total:0,emails:0,phones:0}):{total:0,emails:0,phones:0}),[e]),o=e=>Math.round(e/(r.total||1)*100);return n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(Rxe,{children:"Estimated Matches"}),n.jsx(gPe,{})]}),n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 md:mb-6 w-full gap-4 mt-3 px-1",children:[n.jsx(fPe,{value:r.total,label:"Total",variant:"default",isLoading:void 0===e,selected:"all"===t,onClick:i?()=>i("all"):void 0}),n.jsx(fPe,{value:r.emails,label:"Subscribed to Email",percentage:o(r.emails),variant:"blue",isLoading:void 0===e,selected:"email"===t,onClick:i?()=>i("email"):void 0}),n.jsx(fPe,{value:r.phones,label:"Subscribed to SMS",percentage:o(r.phones),variant:"green",isLoading:void 0===e,selected:"phone"===t,onClick:i?()=>i("phone"):void 0})]})]})},yPe=e=>{const a=`${e.firstName||""} ${e.lastName||""}`.trim();return a||(e.firstName?e.firstName:e.lastName?e.lastName:e.email?e.email:e.phone?e.phone:`Unnamed ${TD("engage:user")}`)},kPe=({recipients:e,filter:a="all"})=>{const t=e?.filter((e=>{const n=!!e.email,t=!!e.phone;if(!n&&!t)return!1;switch(a){case"email":return n;case"phone":return t;default:return!0}}));return t?.length?n.jsx("div",{className:"bg-foreground/5 rounded-lg h-full relative overflow-hidden",children:n.jsx("div",{className:"absolute inset-0 w-full h-full overflow-y-auto",children:n.jsxs("table",{className:"w-full",children:[n.jsx("thead",{className:"sticky top-0 bg-foreground/5 backdrop-blur-sm",children:n.jsxs("tr",{children:[n.jsx("th",{className:"px-3 sm:px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Name"}),n.jsx("th",{className:"px-3 sm:px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Contact"})]})}),n.jsx("tbody",{className:"divide-y divide-gray-200/50",children:t.map(((e,a)=>n.jsxs("tr",{className:"hover:bg-white/50 transition-colors",children:[n.jsx("td",{className:"px-3 sm:px-4 py-3 text-sm text-gray-900",children:yPe(e)}),n.jsx("td",{className:"px-3 sm:px-4 py-3",children:n.jsxs("div",{className:"flex flex-wrap gap-1.5 sm:gap-2",children:[e.email&&n.jsx("span",{className:"px-2 sm:px-2.5 py-1 text-xs font-medium bg-blue-100/50 text-blue-700 rounded-lg",children:"Email"}),e.phone&&n.jsx("span",{className:"px-2 sm:px-2.5 py-1 text-xs font-medium bg-green-100/50 text-green-700 rounded-lg",children:"Phone"})]})})]},a)))})]})})}):null},bPe=({onSelectionChange:e,defaultValue:t="all",canEditAudience:i=!0})=>{const[r,o]=a.useState(t),s=a=>{i&&(o(a),e?.(a))};return n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(Rxe,{children:"Filter"}),!i&&n.jsx(cse,{title:"You cannot edit the audience unless you are in draft mode"})]}),n.jsxs("div",{className:"grid grid-cols-2 gap-4 p-1",children:[n.jsx(s3,{onClick:()=>s("all"),title:`All ${TD("engage:user",{count:2})}`,subtitle:"Send to everyone",icon:n.jsx(l3.UsersIcon,{className:"w-5 h-5 mb-2 text-gray-600"}),selected:"all"===r,disabled:!i}),n.jsx(s3,{onClick:()=>s("segments"),title:`Select ${TD("engage:user",{count:2})}`,subtitle:`Choose from ${TD("engage:segment",{count:2})}`,icon:n.jsx(l3.UserEdit,{className:"w-5 h-5 mb-2 text-gray-600"}),selected:"segments"===r,disabled:!i})]})]})},SPe=({segments:e,allSegments:t,onAddSegment:i,onRemoveSegment:r,setOpenCreateSegmentDialog:o,canEditAudience:s=!0})=>{const[l,u]=a.useState([]),c=t.map((e=>({label:e.name,value:e.id})));return a.useEffect((()=>{u(e)}),[e]),n.jsx("div",{children:n.jsx(ICe,{canOpen:s,selectedValues:l,setSelectedValues:u,options:c,onValueChange:a=>{const n=a.filter((a=>!e.includes(a))),t=e.filter((e=>!a.includes(e)));n.forEach(i),t.forEach(r)},placeholder:"Select segments",maxCount:5,extraCommandItems:[e=>n.jsxs(_Me,{onSelect:()=>{e(!0),o(!0)},className:"cursor-pointer",children:[n.jsx(l3.PlusIcon,{className:"w-4 h-4"}),"New"]},"new-segment")]})})},APe=({includedSegments:e,excludedSegments:t,handleAddSegment:i,handleRemoveSegment:r,setOpenCreateSegmentDialog:o,segments:s,defaultIsExcludeOpen:l=!1,canEditAudience:u=!0})=>{const[c,d]=a.useState(l);return n.jsxs("div",{children:[n.jsx(SPe,{segments:e,allSegments:s||[],onAddSegment:e=>i(e,"include"),onRemoveSegment:e=>r(e,"include"),setOpenCreateSegmentDialog:o,canEditAudience:u}),n.jsx("div",{className:"border-t border-gray-200 my-8"}),n.jsxs("div",{className:"space-y-4",children:[n.jsxs(i3,{onClick:()=>{u&&d(!c)},className:"flex items-center gap-1 transition-colors",size:"sm",children:[n.jsx(M2.div,{animate:{rotate:c?180:0},transition:{duration:.2},children:n.jsx(l3.DropdownMenuTrigger,{className:"w-5 h-5"})}),n.jsx("span",{children:"Don't send to"})]}),n.jsx(Hq,{children:c&&n.jsx(M2.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},transition:{duration:.2,ease:"easeInOut"},children:n.jsx(SPe,{canEditAudience:u,segments:t,allSegments:s||[],onAddSegment:e=>i(e,"exclude"),onRemoveSegment:e=>r(e,"exclude"),setOpenCreateSegmentDialog:o})})})]})]})},wPe=({title:e="Preview Audience"})=>{const t=Q2(),[i,r]=a.useState("all"),[o,s]=a.useState(t?.includeSegmentIds||[]),[l,u]=a.useState(t?.excludeSegmentIds||[]),[c,d]=a.useState(!1),[m,h]=a.useState(!1),[p,g]=a.useState("all"),{segments:f,isLoading:v}=V2(),{updateAutomation:y}=oa(t?.id??""),[k,b]=a.useState(void 0),S=1===o.length&&0===l.length&&void 0!==f?.find((e=>e.type===Z2.ALL_USERS&&e.id===o[0]));a.useEffect((()=>{t&&!m&&!1===v&&(1===o.length&&void 0!==f.find((e=>e.type===Z2.ALL_USERS&&e.id===o[0]))?r("all"):r("segments"),I2({includeSegments:o,excludeSegments:l}).then((e=>{b(e)})),h(!0))}),[t,S,m,o,l,f,v]);a.useEffect((()=>{t&&m&&(JSON.stringify(o)===JSON.stringify(t.includeSegmentIds)&&JSON.stringify(l)===JSON.stringify(t.excludeSegmentIds)||(y({includeSegments:o,excludeSegments:l}),I2({includeSegments:o,excludeSegments:l}).then((e=>{b(e)}))))}),[o,l,t,m,y]);const A=t?.status===pa.DRAFT;return n.jsxs(zxe,{title:e,children:[!v&&f&&m?n.jsxs("div",{className:"flex gap-8 w-full pb-4 px-4",children:[n.jsxs("div",{className:"flex flex-col flex-1 relative overflow-y-auto pb-4 [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]",children:[n.jsx(vPe,{countResponse:k,selectedFilter:p,onFilterChange:g}),n.jsx(bPe,{onSelectionChange:e=>{if(r(e),"all"===e){const e=f?.find((e=>e.type===Z2.ALL_USERS));if(!e)return;s([e.id]),u([])}},defaultValue:i,canEditAudience:A}),n.jsx(Hq,{children:"segments"===i&&n.jsx(M2.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},transition:{duration:.3,ease:"easeInOut"},className:"w-full pt-4",children:n.jsx(APe,{canEditAudience:A,includedSegments:o,excludedSegments:l,handleAddSegment:(e,a)=>{"include"===a?s((a=>[...a,e])):u((a=>[...a,e]))},handleRemoveSegment:(e,a)=>{"include"===a?s((a=>a.filter((a=>a!==e)))):u((a=>a.filter((a=>a!==e))))},setOpenCreateSegmentDialog:d,segments:f,defaultIsExcludeOpen:l.length>0})})})]}),n.jsx("div",{className:"flex flex-col flex-1 relative overflow-hidden",children:k?.recipients&&n.jsx(kPe,{recipients:k.recipients,filter:p})})]}):n.jsx("div",{children:n.jsx(Tq,{text:["Fetching segments","Finishing up"]})}),n.jsx(pPe,{open:c,setOpen:d,onSegmentUpdated:e=>{e&&s((a=>[...a,e]))}})]})},MPe=()=>n.jsx(wPe,{title:"Select Audience"}),CPe=({selectedChannels:e,setSelectedChannels:a,hasEmailChannelSenders:t,automationType:i})=>{const{toast:r}=Je(),o=[...t?[{label:"Email",value:"email",icon:l3.EmailIcon,checked:e.includes("email")}]:[],{label:"SMS",value:"sms",icon:l3.SmsIcon,checked:e.includes("sms")}];return n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{children:[n.jsx("h3",{className:"text-xl font-medium text-foreground",children:"Message Types"}),n.jsxs("p",{className:"text-muted-foreground mb-2 text-sm",children:["Select the channels you want to use in this"," ",i===ca.ONE_TIME?TD("engage:broadcast").toLowerCase():TD("engage:automation").toLowerCase()]})]}),n.jsx("div",{className:"w-full grid grid-cols-2 gap-3",children:o.map((t=>n.jsxs(Ewe,{checked:t.checked,onCheckedChange:()=>{"email"===t.value?e.includes("email")?e.includes("sms")?a(["sms"]):r({title:"Cant Remove Email",description:`At least one channel is required for an ${i===ca.ONE_TIME?TD("engage:broadcast").toLowerCase():TD("engage:automation").toLowerCase()}`,variant:"destructive"}):a([...e,"email"]):e.includes("sms")?e.includes("email")?a(["email"]):r({title:"Cant Remove SMS",description:`At least one channel is required for an ${i===ca.ONE_TIME?TD("engage:broadcast").toLowerCase():TD("engage:automation").toLowerCase()}`,variant:"destructive"}):a([...e,"sms"])},className:"relative ring-[1px] ring-border rounded-lg px-4 py-3 text-start text-muted-foreground data-[state=checked]:ring-2 data-[state=checked]:ring-primary data-[state=checked]:font-medium",children:[n.jsx(t.icon,{className:"mb-3",size:20}),n.jsx("span",{className:"font-medium tracking-tight",children:t.label}),n.jsx(_we,{className:"absolute top-2 right-2",children:n.jsx(gB,{className:"fill-primary text-primary-foreground"})})]},t.value)))})]})},TPe=()=>{const{channelSenders:e}=ate(),{channelAccounts:t}=Qne(),i=X2(),{updateCommunicationGroup:r}=Qe(),{state:{selectedChannels:o},setSelectedChannels:s}=a.useContext(Zne),l=Q2(),{data:u}=rte(),c=a.useCallback((async e=>{s(e),e.includes("email")||i?.id&&r({groupId:i?.id,params:{emailChannelSenderId:null}}),e.includes("sms")||i?.id&&r({groupId:i?.id,params:{smsChannelSenderId:null}})}),[s,r,i?.id]),d=a.useMemo((()=>pbe({channelSenders:e?.results??[],channelAccounts:t?.results??[]})),[e?.results,t?.results]),m=a.useMemo((()=>Kre({channelSenders:e?.results??[],channelAccounts:t?.results??[],smsApplication:u})),[e?.results,t?.results,u]);if(!o||!d||!m)return n.jsx("div",{className:"flex justify-center items-center flex-1 h-full bg-white rounded-2xl w-full border border-gray-200 p-6 space-y-4 relative",children:n.jsx(Tq,{text:["Fetching Content..."]})});const h=d.length>0;return n.jsx("div",{className:"flex flex-col gap-4 flex-shrink-0",children:n.jsx("div",{className:"bg-white rounded-2xl w-full p-6 space-y-4 relative",children:n.jsx(CPe,{automationType:l?.triggerMetadata?.triggerType,selectedChannels:o,setSelectedChannels:c,hasEmailChannelSenders:h})})})};var xPe=(e=>(e[e.SelectAudience=1]="SelectAudience",e[e.SelectSenders=2]="SelectSenders",e[e.EditEmailContent=3]="EditEmailContent",e[e.EditSmsContent=4]="EditSmsContent",e[e.Schedule=5]="Schedule",e[e.PreviewAndSend=6]="PreviewAndSend",e))(xPe||{});const NPe="https://assets.embedreach.com/defaults/logo-placeholder-128.png",EPe="You have not uploaded a custom logo. Please make sure to double check your email before sending!",_Pe=()=>{const e=Q2(),n=X2(),{state:{selectedChannels:t}}=a.useContext(Zne),{data:i}=rte(),{channelSenders:r}=ate(),{channelAccounts:o}=Qne(),s=Kre({channelSenders:r?.results??[],channelAccounts:o?.results??[],smsApplication:i}),l=a.useCallback((async a=>e?await(async e=>{const{currentStep:a,automation:n,communicationGroup:t,selectedChannels:i,smsChannelSenders:r}=e;switch(a){case xPe.SelectAudience:return{canMove:n.includeSegmentIds.length>0,errorMessage:"Please ensure you have selected at least one segment"};case xPe.SelectSenders:return{canMove:i.length>0,errorMessage:"Please ensure you have selected at least one channel"};case xPe.EditSmsContent:{const e=n.actionData?.find((e=>"send_communication"===e.actionType));if(!e)return{canMove:!1,errorMessage:"Please ensure you have selected either a email communication or text communication"};if(!t)return{canMove:!1,errorMessage:"Please ensure you have selected a communication group"};const a=r.find((e=>e.channelSender.id===t.smsChannelSenderId));return a?t.smsMessageBody?a.smsApplication&&a.smsApplication.status!==Ore.APPROVED?{canMove:!0,errorMessage:null,warningMessage:"You will only be able to send this message once your SMS application is approved"}:{canMove:!0,errorMessage:null}:{canMove:!1,errorMessage:"Please ensure you have a text body"}:{canMove:!1,errorMessage:"Please ensure you have selected a text sender"}}case xPe.EditEmailContent:{const e=n.actionData?.find((e=>"send_communication"===e.actionType));if(!e)return{canMove:!1,errorMessage:"Please ensure you have selected either a email communication or text communication"};if(!t)return{canMove:!1,errorMessage:"Please ensure you have selected a communication group"};if(!t.emailChannelSenderId)return{canMove:!1,errorMessage:"Please ensure you have selected a email sender"};if(!t.emailHtmlBody||!t.emailSubject)return{canMove:!1,errorMessage:"Please ensure you have a email body and subject"};let a=null;return t.emailChannelSenderId&&t.emailHtmlBody&&t.emailHtmlBody.includes(NPe)&&(a=EPe),{canMove:!0,errorMessage:null,warningMessage:a}}case xPe.Schedule:{if(!n.triggerMetadata)return{canMove:!1,errorMessage:"Please make sure to select a time to send before starting!"};if(n.triggerMetadata.triggerType!==ca.ONE_TIME)return{canMove:Boolean(n.actionData?.some((e=>"send_communication"===e.actionType&&e.actionMetadata.communicationGroupId))),errorMessage:null};if(!n.triggerMetadata?.scheduledAt)return{canMove:!1,errorMessage:`Please ensure you have set a valid future date for your ${TD("engage:broadcast")}`};if(!Boolean(n.triggerMetadata?.scheduledAt&&("now"===n.triggerMetadata.scheduledAt||"now"!==n.triggerMetadata.scheduledAt&&new Date(n.triggerMetadata.scheduledAt)>new Date)))return{canMove:!1,errorMessage:`Please ensure you have set a valid future date for your ${TD("engage:broadcast")}`};if(!Boolean(n.actionData?.some((e=>"send_communication"===e.actionType&&e.actionMetadata.communicationGroupId))))return{canMove:!1,errorMessage:"Please ensure you have set a valid email or sms communication"};const e=n.triggerMetadata;return{canMove:Boolean(e.scheduledAt&&("now"===e.scheduledAt||new Date(e.scheduledAt)>new Date)&&n.actionData?.some((e=>"send_communication"===e.actionType&&e.actionMetadata.communicationGroupId))),errorMessage:`Please ensure you have set a valid future date for your ${TD("engage:broadcast")}`}}case xPe.PreviewAndSend:return{canMove:!0,errorMessage:null};default:Fne(a,xPe)}})({currentStep:a,automation:e,communicationGroup:n,selectedChannels:t,smsChannelSenders:s}):{canMove:!1,errorMessage:`${TD("engage:broadcast")} not loaded`}),[e,n,t,s]);return{validateStep:l}},PPe=({onFinish:e,getExtraMergeFields:t,onBeforeSchedule:i})=>{const r=Q2(),o=X2(),{updateAutomation:s}=oa(r?.id||""),{estimatedMatchesStats:l}=(e=>{const{data:n}=J2({automationId:e?.id??"",includeSegments:e?.includeSegmentIds??[],excludeSegments:e?.excludeSegmentIds??[]}),t=a.useMemo((()=>n?.recipients?n.recipients.reduce(((e,a)=>({emails:e.emails+(a.email?1:0),phones:e.phones+(a.phone?1:0)})),{emails:0,phones:0}):{emails:0,phones:0}),[n?.recipients]);return{estimatedMatches:n,estimatedMatchesStats:t}})(r??void 0),{state:{selectedChannels:u}}=a.useContext(Zne),{validateStep:c}=_Pe(),[d,m]=a.useState([]),{data:h}=rte(),[p,g]=a.useState(!1),{channelSenders:f}=ate(),{channelAccounts:v}=Qne(),{updateCommunicationGroup:y}=Qe(),k=a.useRef(!1),[b,S]=a.useState(xPe.SelectAudience);if(a.useEffect((()=>{if(null!==r&&null!==o){const e=Kre({channelSenders:f?.results??[],channelAccounts:v?.results??[],smsApplication:h});m((({automation:e,communicationGroup:a,selectedChannels:t,smsChannelSenders:i})=>e?[{id:"audience",title:"Audience",step:1,isValid:()=>e.includeSegmentIds.length>0,content:n.jsx(mse,{content:n.jsx(MPe,{})},"audience"),footerConfig:{backText:"Back",nextText:"Next",hideBack:e.triggerType===ca.ONE_TIME,backDisabled:!1,nextDisabled:()=>!1}},{id:"senders",title:"Channels",step:2,isValid:()=>0!==t.length,content:n.jsx(mse,{content:n.jsx(TPe,{})},"audience"),footerConfig:{backText:"Back",nextText:"Next",hideBack:e.triggerType===ca.ONE_TIME,backDisabled:!1,nextDisabled:()=>!1}},...t.includes("email")?[{id:"edit-email-content",title:"Edit Email Content",step:3,isValid:()=>{const n=e.actionData?.find((e=>"send_communication"===e.actionType));return!!n&&!!a.emailChannelSenderId&&!(!a.emailHtmlBody||!a.emailSubject)},content:n.jsx(mse,{content:n.jsx(gbe,{})},"audience"),footerConfig:{backText:"",nextText:"",hideBack:!1,backDisabled:!1,nextDisabled:()=>!1}}]:[],...t.includes("sms")?[{id:"edit-sms-content",title:"Edit SMS Content",step:4,isValid:()=>{const n=e.actionData?.find((e=>"send_communication"===e.actionType));return!!(n&&n.actionMetadata.communicationGroupId&&a.smsChannelSenderId&&a.smsMessageBody)},content:n.jsx(mse,{content:n.jsx(ZCe,{})},"audience"),footerConfig:{backText:"Back",nextText:"Next",hideBack:!1,backDisabled:!1,nextDisabled:()=>!1}}]:[],{id:"schedule",title:"Schedule",step:5,isValid:()=>Boolean(e.triggerMetadata?.triggerType===ca.ONE_TIME&&e.triggerMetadata?.scheduledAt&&("now"===e.triggerMetadata.scheduledAt||"now"!==e.triggerMetadata.scheduledAt&&new Date(e.triggerMetadata.scheduledAt)>new Date)&&e.actionData?.some((e=>"send_communication"===e.actionType&&e.actionMetadata.communicationGroupId))),content:n.jsx(mse,{className:"flex-1",content:n.jsx(K_e,{})},"schedule"),footerConfig:{backText:"Back",nextText:"Next",hideBack:!1,backDisabled:!1,nextDisabled:()=>!1}},{id:"send",title:"Send",step:6,isValid:()=>Boolean(e.triggerMetadata?.triggerType===ca.ONE_TIME&&e.triggerMetadata?.scheduledAt&&("now"===e.triggerMetadata.scheduledAt||"now"!==e.triggerMetadata.scheduledAt&&new Date(e.triggerMetadata.scheduledAt)>new Date(Date.now()+18e4))&&e.actionData?.some((e=>"send_communication"===e.actionType&&e.actionMetadata.communicationGroupId))),content:n.jsx(mse,{className:"flex-1",content:n.jsx(Oxe,{})},"send"),footerConfig:{backText:"Back",nextText:e.triggerMetadata&&"scheduledAt"in e.triggerMetadata&&"now"===e.triggerMetadata.scheduledAt?"Send Now":"Schedule",hideBack:!1,backDisabled:!1,getInfoTooltipTitle:()=>{const e=i.find((e=>e.channelSender.id===a.smsChannelSenderId));if(e&&null!==e.smsApplication&&e.smsApplication?.status!==Ore.APPROVED)return"You cannot send this yet if you have selected a text channel and don't have an approved SMS application. Please save as draft and try again later."},nextDisabled:()=>{const e=i.find((e=>e.channelSender.id===a.smsChannelSenderId));return!(!a.smsChannelSenderId||e&&(null===e.smsApplication||e.smsApplication?.status===Ore.APPROVED))||null===a.smsChannelSenderId&&null===a.emailChannelSenderId}}}]:[])({automation:r,communicationGroup:o,selectedChannels:u,smsChannelSenders:e}))}}),[r,o,t,u,f?.results,v?.results,h]),a.useEffect((()=>{t&&!k.current&&t().then((e=>{o?.id&&(k.current=!0,y({groupId:o?.id,params:{extraMergeFields:e}}))}))}),[t,o,y]),!(r&&b&&o&&d.length))return n.jsx("div",{className:"flex-1 flex flex-col @container justify-center items-center h-[500px]",children:n.jsx(Tq,{text:[`Fetching ${TD("engage:broadcast")} data`,"Finishing up"]})});const A=async()=>{const{canMove:a,errorMessage:n,warningMessage:t}=await c(b);a?(t&&Ve({title:t,variant:"warning"}),b===xPe.PreviewAndSend?await(async()=>{if(null===o.emailChannelSenderId&&null===o.smsChannelSenderId)return void Ve({title:"Oops!",description:"Please select an email sender or sms sender",variant:"destructive"});const a=Kre({channelSenders:f?.results??[],channelAccounts:v?.results??[],smsApplication:h});if(o.smsChannelSenderId){const e=a.find((e=>e.channelSender.id===o.smsChannelSenderId));if(e?.smsApplication?.application&&e?.smsApplication.status!==Ore.APPROVED)return void Ve({title:"Oops!",description:"You cant schedule a communication with a pending sms application. Please save as a draft and re-try once the application is approved."})}if(i)try{const a=await i({estimatedEmailRecipients:l?.emails||0,estimatedSmsRecipients:l?.phones||0});!0===a?s({status:pa.ACTIVE},{onSuccess:()=>{Ve({title:`${TD("engage:broadcast")} scheduled!`}),e()},onError:()=>{Ve({title:"Oops!",description:"Please contact your administrator",variant:"destructive"})}}):Ve({title:"Oops!",description:a,variant:"destructive"})}catch(n){Ve({title:"Oops!",description:"An error occurred while checking scheduling conditions",variant:"destructive"})}else s({status:pa.ACTIVE}),Ve({title:`${TD("engage:broadcast")} scheduled!`}),e()})():S(b===xPe.SelectSenders&&1===u.length&&"sms"===u[0]||b===xPe.EditEmailContent&&1===u.length&&"email"===u[0]?b+2:b+1)):Ve({title:"Oops!",description:n,variant:"destructive"})},w=()=>{b>xPe.SelectAudience&&S(b===xPe.EditSmsContent&&1===u.length&&"sms"===u[0]?b-2:b-1)},M=()=>{e()};return n.jsxs("div",{className:"flex-1 flex flex-col @container h-full min-h-0",children:[n.jsxs("header",{className:"w-full flex items-center gap-4 h-16 px-6",children:[n.jsx("h1",{className:"text-xl font-bold leading-none",children:r.name}),n.jsx("div",{className:"flex items-center gap-4",children:n.jsx(k3,{variant:Foe(r.status),children:Vne({status:r.status,automationType:r.triggerType,vsaasManaged:!1})})})]}),n.jsxs("main",{className:"flex gap-4 flex-1 min-h-0",children:[n.jsx("div",{className:"block",children:n.jsx("nav",{className:"space-y-0 w-50 self-start pr-6 pl-8 pt-4 ",children:d.map((e=>n.jsx("div",{className:`\n rounded-md transition-colors\n ${e.step===b?"bg-[var(--reach-secondary)] text-[var(--reach-primary-foreground)] font-medium":e.step<b?"text-muted-foreground hover:bg-muted":"text-muted-foreground/60"}\n `,children:n.jsx(E3,{label:e.title,isActive:e.step===b,isCompleted:e.isValid(),onClick:async()=>{if(!p)if(e.step>b){const{canMove:a,errorMessage:n,warningMessages:t}=await(async e=>{if(e<=b)return{canMove:!0,errorMessage:null};g(!0);try{const a=[];for(let n=b;n<e;n++){const{canMove:e,errorMessage:t,warningMessage:i}=await c(n);if(!e)return{canMove:e,errorMessage:t};i&&a.push(i)}return{canMove:!0,errorMessage:null,warningMessages:a}}finally{g(!1)}})(e.step);if(a){if(t&&t.length>0)for(const e of t)Ve({title:e,variant:"warning"});S(e.step)}else n&&Ve({title:"Cannot navigate to this step",description:n,variant:"destructive"})}else S(e.step)}})},e.step)))})}),n.jsx("section",{className:"flex-1 mr-6 w-full relative rounded-xl bg-gray-100 ml-6 @[1000px]:ml-0",children:n.jsx("div",{className:" overflow-y-auto top-0 left-0 right-0 bottom-0 flex-1 h-full flex-col flex",children:n.jsx(C2,{className:"pt-0 h-full",children:d.find((e=>e.step===b))?.content},b)})})]}),n.jsx("footer",{className:"w-full flex justify-end z-10 items-center h-16 px-6",children:n.jsx(dse,{handleSkipAndSaveAsDraft:M,handleBack:w,handleNext:A,hideBack:d.find((e=>e.step===b))?.footerConfig.hideBack??!1,backText:d.find((e=>e.step===b))?.footerConfig.backText??"Back",nextText:d.find((e=>e.step===b))?.footerConfig.nextText??"Next",backDisabled:d.find((e=>e.step===b))?.footerConfig.backDisabled??!1,nextDisabled:d.find((e=>e.step===b))?.footerConfig.nextDisabled()??!1,getInfoTooltipTitle:d.find((e=>e.step===b))?.footerConfig.getInfoTooltipTitle??void 0})})]})},jPe=({children:e,actionId:t})=>{const{setActionId:i}=a.useContext(K2);return a.useEffect((()=>{i(t)}),[t,i]),n.jsx("div",{children:n.jsx($ne,{children:e})})},LPe=()=>n.jsxs("div",{children:[n.jsx("div",{className:m3,children:n.jsx(l3.OneTimeBroadcast,{})}),n.jsx("h3",{className:h3,children:TD("engage:broadcast")}),n.jsx("p",{className:p3,children:"Send a single message to your current list, like announcing a sale or newsletter."})]}),BPe=()=>n.jsxs("div",{children:[n.jsx("div",{className:g3,children:"Coming Soon"}),n.jsx("div",{className:m3,children:n.jsx(l3.RealtimeActivity,{})}),n.jsx("h3",{className:h3,children:"Realtime Activity"}),n.jsx("p",{className:p3,children:"Responds to immediate actions your contacts take, like abandoned carts, form submissions, or appointment bookings."})]}),RPe=({selectedType:e,setAutomationName:a,automationName:t,setAutomationDescription:i,automationDescription:r})=>n.jsxs("div",{className:"flex flex-col items-center justify-center p-8 max-w-lg mx-auto",children:[n.jsxs("h2",{className:"text-2xl font-semibold mb-8 text-center",children:["Name Your"," ",TD(e===ca.ONE_TIME?"engage:broadcast":"engage:automation")]}),n.jsxs("div",{className:"w-full space-y-6",children:[n.jsx("div",{className:"bg-gray-50 p-6 rounded-xl items-center justify-center text-center",children:(()=>{switch(e){case ca.ONE_TIME:return n.jsx(LPe,{});case ca.TRIGGER_BASED:return n.jsx(BPe,{});default:throw Fne(e,ca)}})()}),n.jsxs("div",{className:"space-y-6",children:[n.jsxs("div",{children:[n.jsxs("div",{className:"flex items-baseline justify-between mb-2",children:[n.jsx("label",{htmlFor:"automationName",className:"block text-sm font-medium text-gray-900",children:"Name"}),n.jsx("span",{className:"text-xs text-muted-foreground",children:"Only visible to your team"})]}),n.jsx(L7,{id:"automationName",type:"text",value:t,onChange:e=>a(e.target.value),className:"w-full px-4 py-2 border border-gray-300 rounded-md focus:ring-indigo-500 focus:border-indigo-500 shadow-sm",placeholder:"e.g. April Newsletter Campaign",autoFocus:!0})]}),n.jsxs("div",{children:[n.jsxs("div",{className:"flex items-baseline justify-between mb-2",children:[n.jsx("label",{htmlFor:"automationDescription",className:"block text-sm font-medium text-gray-900",children:"Description"}),n.jsx("span",{className:"text-xs text-muted-foreground",children:"Optional"})]}),n.jsx(dPe,{id:"automationDescription",value:r,onChange:e=>i(e.target.value),className:"w-full min-h-[80px] resize-none",placeholder:`Add any helpful context for your team. If left blank, we'll generate one for you when you start the ${TD("engage:broadcast").toLowerCase()}`})]})]})]})]}),zPe=({onClose:e,automationType:t,currentStep:i,setCurrentStep:r,getExtraMergeFields:o,onBeforeSchedule:s})=>{const{createAutomation:l,isCreating:u}=ra(),[c,m]=a.useState(!1),[h,p]=a.useState(void 0),[g,f]=a.useState(void 0),[v,y]=a.useState(!1),[k,b]=a.useState(t?{name:void 0,description:void 0,type:t}:{name:void 0,description:void 0,type:void 0}),S=void 0!==k.name&&void 0!==k.type&&""!==k.name;a.useEffect((()=>{if(k.type&&!k.name&&!v){const e=new Date,a=e.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),n=e.toLocaleDateString([],{month:"long",day:"numeric"}),t=`${TD("engage:broadcast")} ${n} ${a}`,i="";b((e=>({...e,name:t,description:i}))),y(!0)}}),[k,v]);if(u||c)return n.jsx("div",{className:d3,children:n.jsx(Tq,{text:[`Creating ${TD("engage:broadcast")}`,"Finishing up"]})});return n.jsxs("div",{className:hq("relative overflow-y-auto h-full p-8",i===r3.OneTimeWizard?"max-h-[90vh]":"h-full"),children:[n.jsx(Hq,{mode:"wait",children:n.jsx(C2,{className:"h-full",children:(()=>{switch(i){case r3.ChooseAutomationType:return n.jsx(f3,{onNext:e=>{b({...k,type:e}),r(r3.SetAutomationName)}});case r3.SetAutomationName:return k.type?n.jsx(RPe,{selectedType:k.type,setAutomationName:e=>{b({...k,name:e})},automationName:k.name??"",setAutomationDescription:e=>{b({...k,description:e})},automationDescription:k.description??""}):null;case r3.OneTimeWizard:return h&&g?n.jsx(a3,{automationId:h,children:n.jsx(jPe,{actionId:g,children:n.jsx(PPe,{onFinish:()=>{e?.(h)},getExtraMergeFields:o,onBeforeSchedule:s})})}):null;default:throw L2(i,r3)}})()},i)}),i!==r3.OneTimeWizard&&n.jsx("div",{className:"pt-2",children:n.jsx(o3,{onClose:e,currentStep:i,setCurrentStep:r,isDisabled:!S,createAutomation:async()=>{if(!S||!k.name||!k.type)return;m(!0);l({name:k.name,type:k.type,description:k.description},{onSuccess:async a=>{if(a.id){const n=await(async e=>(await Be(`${d}`,{method:"POST",body:JSON.stringify(e)})).data)({}),i=j2().toString();await ze(a.id,{action:[{actionType:"send_communication",actionMetadata:{actionType:"send_communication",communicationGroupId:n.id,currentActionId:i}}]}),p(a.id),await Ze({automationId:a.id,actionId:i}),t===ca.ONE_TIME?(r(r3.OneTimeWizard),f(i),m(!1)):e?.(a.id)}else e?.("error")},onError:()=>{e?.("error")},onSettled:()=>{b({name:void 0,description:void 0,type:void 0})}})},disableBackButton:void 0!==t})})]})};function DPe({open:e,setOpen:t,onClose:i,automationType:r,getExtraMergeFields:o,replyToSettingsText:s,replyToSettingsLink:l,fromNameSettingsText:u,fromNameSettingsLink:c}){const[d,m]=a.useState(r?r3.SetAutomationName:r3.ChooseAutomationType);return a.useEffect((()=>{e&&m(r?r3.SetAutomationName:r3.ChooseAutomationType)}),[e,r]),n.jsx(Mq,{children:n.jsx(Cq,{replyToSettingsText:s,replyToSettingsLink:l,fromNameSettingsText:u,fromNameSettingsLink:c,children:n.jsx(pq,{open:e,onOpenChange:t,children:n.jsxs(yq,{hideCloseButton:d===r3.OneTimeWizard,className:`flex max-h-[86vh] ${d===r3.OneTimeWizard?"max-w-[90vw]":"max-w-4xl"} flex-col gap-0 overflow-visible p-0`,children:[n.jsx(kq,{children:n.jsx("div",{className:"flex items-center justify-between",children:n.jsxs(mq,{children:[n.jsx(Sq,{className:"text-3xl font-normal",children:"Create Automation"}),n.jsx(Aq,{children:"Create a new automation to send messages to your customers."})]})})}),n.jsx(zPe,{onClose:e=>{i?.(e),t(!1)},automationType:r,currentStep:d,setCurrentStep:m,getExtraMergeFields:o})]})})})})}const OPe=({feature:e,onClose:a,className:t})=>{const i={hidden:{opacity:0,y:20},visible:{opacity:1,y:0,transition:{duration:.4,ease:[.4,0,.2,1]}}};return n.jsxs(M2.div,{initial:"hidden",animate:"visible",exit:"exit",variants:{hidden:{opacity:0,y:20},visible:{opacity:1,y:0,transition:{duration:.4,ease:[.4,0,.2,1],staggerChildren:.1}},exit:{opacity:0,y:-20,transition:{duration:.3,ease:[.4,0,1,1]}}},className:oz("flex flex-col items-center text-center w-full max-w-[72ch] rounded-xl p-8 gap-6 border border-border mx-auto","bg-background shadow-sm",t),children:[n.jsx(M2.div,{variants:i,className:"w-20 h-20 rounded-full flex items-center justify-center bg-red-50 border-2 border-red-200",children:n.jsx(kB,{className:"w-10 h-10 text-red-500"})}),n.jsxs(M2.div,{variants:i,className:"space-y-2",children:[n.jsx("h2",{className:"text-xl font-semibold text-foreground",children:"Sandbox Mode Not Supported"}),n.jsxs("p",{className:"text-base font-medium text-muted-foreground",children:[e," is not available in sandbox mode"]})]}),n.jsx(M2.div,{variants:i,className:"max-w-xl mx-auto space-y-4",children:n.jsxs("p",{className:"text-sm text-muted-foreground",children:["To use ",e,", please switch to a production environment or contact your administrator for assistance."]})}),n.jsx(Hq,{children:a&&n.jsx(M2.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},transition:{duration:.2,ease:[.4,0,.2,1]},children:n.jsx(i3,{variant:"outline",onClick:a,className:"bg-background hover:bg-muted",children:"Got it"})})})]})},KPe=({tabs:e,activeTab:t,onTabChange:i,tabsLocation:r="left",secondaryTabs:o=!1})=>{const s=a.useRef([]),[l,u]=a.useState({width:0,left:0});a.useEffect((()=>{const a=s.current[e.findIndex((e=>e.id===t))];a&&u({width:a.offsetWidth,left:a.offsetLeft})}),[t,e]);const c=e.find((e=>e.id===t));return n.jsxs("div",{className:"flex flex-col gap-4 w-full overflow-x-hidden h-full",children:[n.jsx("div",{className:"flex items-center justify-between",children:n.jsxs("div",{className:"relative flex items-center gap-8 "+("left"===r?"w-full justify-start":"w-full justify-center"),children:[n.jsx("div",{className:"absolute bottom-0 h-[1px] rounded-full transition-all duration-300 ease-out\n bg-gradient-to-r from-primary to-primary/90\n shadow-[0_0_8px_rgba(var(--primary-rgb),0.3)]",style:{width:`${l.width}px`,left:`${l.left}px`}}),e.map(((e,a)=>n.jsx("button",{ref:e=>s.current[a]=e,onClick:()=>i(e.id),className:hq("relative px-7 py-3 transition-all duration-200 text-lg",t!==e.id&&"text-muted-foreground",o&&"text-sm"),children:e.label},e.id)))]})}),n.jsx("div",{className:"relative overflow-hidden flex-grow min-h-0",children:n.jsx("div",{className:"relative h-full",children:c?c.content:null})})]})},HPe=({primaryColor:e="var(--primary)"})=>{const a=e;return n.jsxs("div",{className:"space-y-4",children:[n.jsx(WSe,{children:"This is how your brand colors will look on email"}),n.jsx("div",{className:"bg-muted/50 p-6 rounded-lg w-full mx-auto border border-muted",children:n.jsxs("div",{className:"flex flex-col bg-background items-center space-y-4 max-w-md border rounded-lg mx-auto pb-8 overflow-hidden",children:[n.jsx("div",{className:"h-20 w-full -mb-10 bg-secondary"}),n.jsx("div",{className:"w-12 h-12 rounded-lg"}),n.jsxs("div",{className:"w-full space-y-3 flex flex-col items-center px-8 pb-4 max-w-sm",children:[n.jsx("div",{className:"h-2 rounded w-3/4 mx-auto bg-muted-foreground"}),n.jsx("div",{className:"h-2 bg-muted rounded w-full"}),n.jsx("div",{className:"h-2 bg-muted rounded w-2/3"}),n.jsx("div",{className:"h-2 bg-muted rounded w-2/3"})]}),n.jsx(i3,{className:"w-full max-w-[20ch]",style:{backgroundColor:a,borderColor:a},children:"Button"})]})})]})},IPe={all:["website"],content:()=>[...IPe.all,"content"],analyze:()=>[...IPe.all,"analyze"],brandSettings:()=>[...IPe.all,"brand-settings"]},GPe=async()=>(await Be("/web-presence/brand-settings",{method:"POST"})).data,FPe=({isLoading:e,brandSettings:t,onComplete:i})=>{const[r,o]=a.useState(0),s=[{text:"Analyzing your brand palette",icon:HB},{text:"Extracting your visual identity",icon:MB},{text:"Discovering your brand personality",icon:TB},{text:"Crafting your email style",icon:PB},{text:"Finalizing your brand profile",icon:pB}];a.useEffect((()=>{if(!e)return;const a=setInterval((()=>{o((e=>{const n=e+1;return n>=s.length?(clearInterval(a),setTimeout((()=>{i()}),1500),e):n}))}),2500);return()=>clearInterval(a)}),[e,i,s.length]);return n.jsx(M2.div,{className:"flex flex-col items-center justify-center h-full w-full bg-background p-6",initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.6},children:n.jsxs("div",{className:"flex flex-col items-center gap-8 max-w-2xl w-full",children:[n.jsx(M2.div,t?.logoUrl?{className:"w-24 h-24 sm:w-32 sm:h-32 flex items-center justify-center rounded-xl overflow-hidden bg-card shadow-md border",initial:{scale:.9},animate:{scale:1},transition:{scale:{duration:2,repeat:1/0,repeatType:"reverse",ease:"easeInOut"}},children:n.jsx("img",{src:t.logoUrl,alt:"Brand Logo",className:"max-w-full max-h-full object-contain"})}:{className:"w-24 h-24 sm:w-32 sm:h-32 rounded-xl flex items-center justify-center shadow-md border bg-primary",initial:{scale:.9},animate:{scale:1},transition:{scale:{duration:2,repeat:1/0,repeatType:"reverse",ease:"easeInOut"}},children:t?.brandName?n.jsx("span",{className:"text-4xl sm:text-5xl font-bold text-white",children:t.brandName.charAt(0)}):n.jsx(eR,{className:"w-12 h-12 sm:w-16 sm:h-16 text-white"})}),n.jsx(M2.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},transition:{duration:.5},className:"text-xl font-medium text-center text-foreground",children:s[r].text},`loading-${r}`),n.jsx("div",{className:"flex items-center justify-center space-x-8 sm:space-x-12",children:s.map(((e,a)=>{const t=a<=r,i=a===r;return n.jsxs(M2.div,{className:"relative flex items-center justify-center w-12 h-12 rounded-full border-2 "+(t?"bg-card shadow-md border-primary":"bg-muted border-muted-foreground/30"),initial:{scale:.8,opacity:.5},animate:{scale:i?1.1:1,opacity:t?1:.5},transition:{duration:.3},children:[n.jsx(e.icon,{className:"w-5 h-5 "+(t?"text-primary":"text-muted-foreground")}),i&&n.jsx(M2.div,{className:"absolute inset-0 rounded-full border-2 border-primary",initial:{scale:1,opacity:.8},animate:{scale:2.5,opacity:0},transition:{duration:3,repeat:1/0,ease:"easeOut"}})]},`step-${a}`)}))}),n.jsx(M2.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.8,duration:.6},className:"w-full",children:n.jsx("div",{className:"h-[140px] w-full max-w-lg mx-auto p-5 bg-gradient-to-br from-card/70 to-card/40 backdrop-blur-md rounded-2xl border border-border/60 shadow-lg",children:n.jsxs("div",{className:"h-full flex flex-col justify-center",children:[0===r&&n.jsxs("div",{className:"space-y-3",children:[n.jsx("h3",{className:"text-sm font-semibold text-foreground/80 text-center",children:"Extracted Color Palette"}),n.jsx("div",{className:"flex items-center justify-center gap-2 flex-wrap",children:[t?.primaryColor,...t?.secondaryColors||[]]?.slice(0,4).map(((e,a)=>n.jsx("div",{className:"flex flex-col items-center gap-1",children:n.jsx("div",{className:"w-10 h-10 rounded-xl border-2 border-white/50 shadow-md",style:{backgroundColor:e}})},a)))}),n.jsx("div",{className:"text-center text-xs text-muted-foreground",children:"Brand colors identified"})]}),1===r&&n.jsxs("div",{className:"text-center space-y-2",children:[n.jsx("h3",{className:"text-sm font-semibold text-foreground/80",children:"Brand Identity"}),t?.brandName?n.jsxs("div",{className:"space-y-1",children:[n.jsx("div",{className:"text-xl font-bold",children:t.brandName}),t.brandTagline&&n.jsxs("div",{className:"text-sm text-muted-foreground italic px-4",children:['"',t.brandTagline,'"']}),n.jsx("div",{className:"text-xs text-muted-foreground mt-2",children:"Visual identity extracted"})]}):n.jsx("div",{className:"text-sm text-muted-foreground italic",children:"Extracting brand elements..."})]}),2===r&&n.jsxs("div",{className:"text-center space-y-3",children:[n.jsx("h3",{className:"text-sm font-semibold text-foreground/80",children:"Brand Personality"}),t?.brandPersonality?n.jsxs("div",{className:"space-y-2",children:[n.jsxs("div",{className:"flex justify-center gap-4",children:[t.brandPersonality.tone&&n.jsxs("div",{className:"text-center",children:[n.jsx("div",{className:"text-xs text-muted-foreground",children:"Tone"}),n.jsx("div",{className:"text-sm font-medium text-foreground capitalize px-2 py-1 bg-background/50 rounded-md",children:t.brandPersonality.tone})]}),t.brandPersonality.voice&&n.jsxs("div",{className:"text-center",children:[n.jsx("div",{className:"text-xs text-muted-foreground",children:"Voice"}),n.jsx("div",{className:"text-sm font-medium text-foreground capitalize px-2 py-1 bg-background/50 rounded-md",children:t.brandPersonality.voice})]})]}),t.brandPersonality.values&&t.brandPersonality.values.length>0&&n.jsx("div",{className:"flex justify-center gap-1 flex-wrap",children:t.brandPersonality.values.slice(0,3).map(((e,a)=>n.jsx("span",{className:"px-2 py-1 text-xs font-medium rounded-full",children:e},a)))})]}):n.jsx("div",{className:"text-sm text-muted-foreground italic",children:"Analyzing brand tone and voice..."})]}),3===r&&n.jsxs("div",{className:"text-center space-y-3",children:[n.jsx("h3",{className:"text-sm font-semibold text-foreground/80",children:"Email Template Preview"}),n.jsxs("div",{className:"bg-background/60 rounded-lg p-3 border border-border/30",children:[n.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[n.jsx("div",{className:"w-4 h-4 rounded"}),n.jsx("div",{className:"text-xs font-medium text-foreground",children:t?.brandName||"Your Brand"})]}),n.jsxs("div",{className:"text-xs text-muted-foreground text-left",children:["Email styling applied with your brand colors",t?.brandPersonality?.tone&&`, ${t.brandPersonality.tone} tone`,", and visual identity"]})]})]}),4===r&&n.jsxs("div",{className:"text-center space-y-2",children:[n.jsx("h3",{className:"text-sm font-semibold text-foreground/80",children:"Brand Kit Complete"}),n.jsxs("div",{className:"grid grid-cols-3 gap-2 text-center",children:[n.jsxs("div",{className:"bg-background/40 rounded-lg p-2",children:[n.jsx("div",{className:"text-xs text-muted-foreground",children:"Identity"}),n.jsx("div",{className:"text-sm font-medium text-foreground",children:t?.brandName?"✓":"—"})]}),n.jsxs("div",{className:"bg-background/40 rounded-lg p-2",children:[n.jsx("div",{className:"text-xs text-muted-foreground",children:"Colors"}),n.jsx("div",{className:"text-sm font-medium text-foreground",children:t?.primaryColor?"✓":"—"})]}),n.jsxs("div",{className:"bg-background/40 rounded-lg p-2",children:[n.jsx("div",{className:"text-xs text-muted-foreground",children:"Personality"}),n.jsx("div",{className:"text-sm font-medium text-foreground",children:t?.brandPersonality?.tone?"✓":"—"})]})]})]}),(0===r&&!t?.primaryColor&&!t?.colorPalette||1===r&&!t?.brandName||2===r&&!t?.brandPersonality)&&n.jsxs("div",{className:"text-center",children:[n.jsx("div",{className:"text-sm text-muted-foreground italic",children:"Analyzing brand data..."}),n.jsx("div",{className:"flex justify-center gap-1 mt-2",children:[...Array(3)].map(((e,a)=>n.jsx(M2.div,{className:"w-1.5 h-1.5 rounded-full bg-muted-foreground/50",animate:{scale:[1,1.2,1],opacity:[.5,1,.5]},transition:{duration:1,repeat:1/0,delay:.2*a}},a)))})]})]})})},`content-${r}`)]})})},VPe=({setAutoParse:e,onBrandSettingsGenerated:t})=>{const{data:i,updateWebsite:r,isUpdatingWebsite:o}=qke(),s=ke({mutationFn:GPe,mutationKey:IPe.brandSettings(),onSuccess:()=>{Ve({title:"Brand settings generated successfully!",description:"Your brand identity has been analyzed."})},onError:()=>{Ve({title:"Error generating brand settings",description:"Please try again.",variant:"destructive"})}}),[l,u]=a.useState(i?.website||""),[c,d]=a.useState(!1),[m,h]=a.useState(null),[p,g]=a.useState(!1);return n.jsxs("div",{className:"flex flex-col pt-4 pb-12",children:[n.jsx("div",{className:"flex-1 flex flex-col",children:n.jsx("div",{className:"flex-1 p-4 space-y-4",children:n.jsxs(Hq,{mode:"wait",children:[!p&&n.jsx(M2.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"h-full flex flex-col",children:n.jsxs("div",{className:"flex-1 flex flex-col items-center justify-center px-6 space-y-8",children:[n.jsxs("div",{className:"space-y-2 w-full max-w-md",children:[n.jsx("label",{className:"text-sm font-medium text-gray-700 block",children:"Your Website URL"}),n.jsxs("div",{className:"flex flex-col sm:flex-row gap-2 items-center",children:[n.jsx(L7,{type:"url",value:l,onChange:e=>u(e.target.value),placeholder:"https://example.com",className:"flex-1",disabled:!c}),n.jsx(Hq,{mode:"wait",children:c?n.jsxs(M2.div,{initial:{opacity:0,x:20},animate:{opacity:1,x:0},exit:{opacity:0,x:-20},className:"flex gap-2",children:[n.jsx(i3,{variant:"outline",size:"sm",onClick:()=>{d(!1),u(i?.website||"")},className:"w-full sm:w-auto",children:"Cancel"}),n.jsx(i3,{size:"sm",onClick:async()=>{try{r(l),d(!1)}catch(e){}},disabled:o||!l,className:"w-full sm:w-auto",children:o?n.jsx(Tq,{}):"Save Changes"})]},"save"):n.jsx(M2.div,{initial:{opacity:0,x:20},animate:{opacity:1,x:0},exit:{opacity:0,x:-20},children:n.jsx(i3,{variant:"outline",size:"sm",onClick:()=>d(!0),className:"w-full sm:w-auto",children:"Edit URL"})},"edit")})]})]}),n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4 w-full max-w-2xl",children:[n.jsxs("div",{className:"bg-gray-50 p-4 rounded-lg border border-gray-100",children:[n.jsx("h3",{className:"font-medium text-gray-900 mb-2",children:"What we'll analyze"}),n.jsxs("ul",{className:"text-sm text-gray-600 space-y-1",children:[n.jsx("li",{children:"• Your brand colors and color palette"}),n.jsx("li",{children:"• Your logo (if detectable)"}),n.jsx("li",{children:"• Your brand name and tagline"}),n.jsx("li",{children:"• Your brand's tone and personality"})]})]}),n.jsxs("div",{className:"bg-gray-50 p-4 rounded-lg border border-gray-100",children:[n.jsx("h3",{className:"font-medium text-gray-900 mb-2",children:"How it helps you"}),n.jsx("p",{className:"text-sm text-gray-600",children:"Our AI will automatically extract your brand assets to create consistently styled emails that match your website. This helps maintain brand recognition and professionalism in all your communications."})]})]}),n.jsx(M2.p,{initial:{opacity:0},animate:{opacity:1},transition:{delay:.3},className:"text-sm text-muted-foreground max-w-md text-center",children:"We'll use AI to analyze your website and extract your brand elements to create perfectly matched email templates."})]})},"url-confirmation"),p&&m&&n.jsx(M2.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"h-full",children:n.jsx(FPe,{isLoading:p,brandSettings:m,onComplete:()=>{g(!1),Ve({title:"Brand settings generated successfully!",description:"Your brand identity has been analyzed."})}})},"analyzing"),p&&!m&&n.jsx(M2.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"my-12 h-full flex flex-col items-center justify-center",children:n.jsxs(M2.div,{className:"flex flex-col items-center gap-8",initial:{backgroundPosition:"0% 0%"},animate:{backgroundPosition:"100% 100%"},transition:{duration:5,repeat:1/0,repeatType:"reverse"},children:[n.jsxs(M2.div,{className:"relative w-24 h-24 flex items-center justify-center",initial:{scale:.9},animate:{scale:1},transition:{scale:{duration:2,repeat:1/0,repeatType:"reverse",ease:"easeInOut"}},children:[n.jsx(UB,{className:"w-12 h-12 text-primary drop-shadow-md"}),n.jsx(M2.div,{className:"absolute inset-0 rounded-full border-2",style:{borderColor:"var(--primary)"},initial:{scale:.8,opacity:0},animate:{scale:2.5,opacity:[0,.8,0]},transition:{duration:3,repeat:1/0,ease:"easeOut",repeatType:"loop"}})]}),n.jsxs("div",{className:"space-y-2 pt-16 text-center",children:[n.jsx("h3",{className:"text-lg font-semibold",children:"Analyzing your website"}),n.jsx(Hq,{mode:"wait",children:n.jsx(M2.p,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},transition:{duration:.5},className:"text-muted-foreground/50 max-w-md",children:"Generating your brand's unique visual identity and personality"},"loading-message")})]})]})},"pre-analyzing")]})})}),!p&&n.jsxs(bq,{className:"text-center sm:justify-center",children:[n.jsx(i3,{variant:"outline",onClick:()=>{e(!1)},className:"gap-1",children:"Go Back"}),n.jsxs(i3,{onClick:async()=>{try{g(!0);const e=await s.mutateAsync();h(e),t&&t(e)}catch(e){g(!1),h(null),Ve({title:"Error generating brand settings",description:"Please try again.",variant:"destructive"})}},disabled:!l||s.isPending,className:"gap-1",children:[n.jsx(eR,{className:"h-4 w-4 text-amber-500"}),s.isPending?n.jsx(Tq,{}):"Analyze Website"]})]})]})},JPe=()=>{const{data:e,updateWebsite:t,isUpdatingWebsite:i}=qke(),[r,o]=a.useState(e?.website||""),[s,l]=a.useState(!1),{toast:u}=Je();return n.jsx("div",{className:"w-full h-full flex flex-col bg-background rounded-lg",children:n.jsx("div",{className:"flex-1 min-h-0 overflow-y-auto",children:n.jsx(Hq,{mode:"wait",children:n.jsx(M2.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"flex flex-col h-full",children:n.jsx("div",{className:"flex-1 flex flex-col items-center justify-center space-y-8",children:n.jsx("div",{className:"space-y-2 w-full max-w-lg",children:n.jsxs("div",{className:"flex flex-col sm:flex-row gap-2 items-center h-full",children:[n.jsx(L7,{type:"url",value:r,onChange:e=>o(e.target.value),placeholder:"https://example.com",className:"flex-1 m-1",disabled:!s}),n.jsx(Hq,{mode:"wait",children:s?n.jsxs(M2.div,{initial:{opacity:0,x:20},animate:{opacity:1,x:0},exit:{opacity:0,x:-20},className:"flex gap-2 items-center",children:[n.jsx(i3,{variant:"outline",size:"sm",onClick:()=>{l(!1),o(e?.website||"")},className:"w-full sm:w-auto",children:"Cancel"}),n.jsx(i3,{size:"sm",onClick:async()=>{if(Lre.string().url().safeParse(r).success)try{t(r,{onSuccess:()=>{l(!1)}})}catch(e){}else u({title:"Invalid website URL",description:"Please enter a valid website URL (e.g. including http://)",variant:"destructive"})},disabled:i||!r,className:"w-full sm:w-auto",children:i?n.jsx(Tq,{}):"Save Changes"})]},"save"):n.jsx(M2.div,{initial:{opacity:0,x:20},animate:{opacity:1,x:0},exit:{opacity:0,x:-20},children:n.jsx(i3,{variant:"outline",size:"sm",onClick:()=>{l(!0)},className:"w-full sm:w-auto",children:"Edit URL"})},"edit")})]})})})},"url-confirmation")})})})},UPe=({setAutoParse:e})=>{const{isLoading:a}=qke();return n.jsxs("div",{className:"p-6 rounded-xl border-[5px] bg-background flex flex-col gap-3",style:{border:"5px solid transparent",background:"linear-gradient(white, white) padding-box, linear-gradient(164.56deg, rgba(152,194,255,0.6) 1%, rgba(194,177,231,0.6) 99%) border-box"},children:[n.jsxs("div",{className:"px-1 flex flex-col gap-3",children:[n.jsx("h3",{className:"font-medium text-sm leading-none",children:"Automatically add your brand to your emails"}),n.jsx("p",{className:"text-sm text-muted-foreground font-normal leading-none",children:"How your brand expresses itself in communication"})]}),n.jsxs("div",{className:"flex gap-4 items-center",children:[n.jsx(JPe,{}),n.jsxs(i3,{type:"button",onClick:async()=>{e(!0)},disabled:a,className:"flex gap-1 items-center",children:[n.jsx(eR,{className:"h-4 w-4 text-amber-500"}),`${nwe}`]})]})]})},WPe=Lre.object({brandName:Lre.string().min(1,"Brand name is required"),logoUrl:Lre.string().optional(),logoBase64:Lre.string().optional(),primaryColor:Lre.string().regex(/^#[0-9A-F]{6}$/i,"Invalid color format")}),qPe=["#000000","#2563eb","#059669","#dc2626","#9333ea","#ea580c","#0891b2","#be123c","#4338f5","#16a34a"],ZPe=a.forwardRef((({onSubmit:e,defaultValues:t},i)=>{const r=a.useRef(null),[o,s]=a.useState(t?.logoUrl||null),[l,u]=a.useState(null),[c,d]=a.useState(null),[m,h]=a.useState(!1),p=HSe({resolver:PAe(WPe),defaultValues:{brandName:t?.brandName||"",logoUrl:t?.logoUrl||"",primaryColor:t?.primaryColor||qPe[0]},mode:"onBlur"});a.useEffect((()=>{if(t&&null===c){const e={brandName:t.brandName||"",logoUrl:t.logoUrl||"",primaryColor:t.primaryColor||qPe[0]};p.reset(e),d(e),s(t.logoUrl||null)}}),[t,p,c]);const g=e=>{u(null);const a=e.target.files?.[0];if(a){if(!["image/png","image/jpeg"].includes(a.type))return void u("Only PNG and JPEG files are supported. Please upload a valid image.");const e=new FileReader;e.onloadend=()=>{const a=e.result;s(a),p.setValue("logoBase64",hwe(a))},e.readAsDataURL(a)}},f=async a=>{await e(a)};return a.useImperativeHandle(i,(()=>({submit:()=>{p.handleSubmit(f)()},isDirty:()=>{if(!c)return!1;const e=p.getValues();return e.brandName!==c.brandName||e.logoUrl!==c.logoUrl||e.primaryColor!==c.primaryColor}}))),n.jsxs(n.Fragment,{children:[!1===m&&n.jsx("div",{className:"px-8 pt-8",children:n.jsx(UPe,{setAutoParse:h})}),m?n.jsx("div",{className:"px-8",children:n.jsx(VPe,{setAutoParse:h,onBrandSettingsGenerated:e=>{h(!1),p.setValue("brandName",e.brandName||""),p.setValue("logoBase64",e.logoUrl?hwe(e.logoUrl):""),p.setValue("primaryColor",e.primaryColor||qPe[0]),s(e.logoUrl||null)}})}):n.jsx(ISe,{...p,children:n.jsxs("form",{onSubmit:p.handleSubmit(f),className:"space-y-6 p-8",children:[n.jsx(FSe,{control:p.control,name:"brandName",render:({field:e})=>n.jsxs(USe,{children:[n.jsx(WSe,{children:"Brand Name"}),n.jsx(qSe,{children:n.jsx(L7,{placeholder:"Enter your brand name",...e})}),n.jsx(ZSe,{})]})}),n.jsx(FSe,{control:p.control,name:"logoUrl",render:()=>n.jsxs(USe,{children:[n.jsx(WSe,{children:"Brand Logo"}),n.jsx(qSe,{children:n.jsxs("div",{className:"flex items-center gap-4",children:[n.jsx("div",{className:"w-24 h-24 rounded-lg border-2 border-dashed border-border flex items-center justify-center bg-muted overflow-hidden",children:o?n.jsx("img",{src:o,alt:"Brand logo preview",className:"w-full h-full object-contain"}):n.jsx(sR,{className:"h-8 w-8 text-muted-foreground"})}),n.jsxs("div",{className:"flex flex-col gap-2 max-w-xs w-full",children:[n.jsx("input",{type:"file",ref:r,onChange:g,accept:"image/png, image/jpeg",className:"hidden"}),n.jsxs(i3,{type:"button",variant:"outline",onClick:()=>r.current?.click(),disabled:p.formState.isSubmitting,children:[n.jsx(sR,{className:"w-4 h-4 mr-2"}),"Upload Logo"]}),n.jsx("span",{className:"text-xs text-muted-foreground mt-1 break-words whitespace-normal",children:"Upload a square PNG or JPEG (min. 100×100px) with white or transparent background for best results"}),l&&n.jsx("span",{className:"text-xs text-destructive mt-1",children:l})]})]})}),n.jsx(ZSe,{})]})}),n.jsx(FSe,{control:p.control,name:"primaryColor",render:({field:e})=>{const a=e.value||p.getValues("primaryColor");return n.jsxs(USe,{children:[n.jsx(WSe,{children:"Primary Color"}),n.jsx(qSe,{children:n.jsxs("div",{className:"flex-1 max-w-xs space-y-3",children:[n.jsxs("div",{className:"relative",children:[n.jsx(HB,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none z-10"}),n.jsx(L7,{type:"text",value:a,onChange:a=>e.onChange(a.target.value),className:"font-mono text-sm pl-10 pr-12",placeholder:qPe[3],disabled:p.formState.isSubmitting}),n.jsx("input",{type:"color",value:a,onChange:a=>e.onChange(a.target.value),className:"sr-only",disabled:p.formState.isSubmitting,id:"colorPicker"}),n.jsx(i3,{variant:"ghost",size:"sm",onClick:()=>document.getElementById("colorPicker")?.click(),className:"absolute right-2 top-1/2 transform -translate-y-1/2 w-6 h-6 rounded-sm border border-border cursor-pointer hover:border-border/80 transition-colors",style:{backgroundColor:a},disabled:p.formState.isSubmitting})]}),n.jsx("div",{className:"flex gap-3 flex-wrap",children:qPe.map((t=>n.jsx(i3,{type:"button",variant:"ghost",size:"sm",className:"w-4 h-4 p-0 rounded-full border "+(a===t?"ring-2 ring-gray-400":""),style:{backgroundColor:t},onClick:()=>e.onChange(t),disabled:p.formState.isSubmitting},t)))})]})}),n.jsx(ZSe,{})]})}}),n.jsx(HPe,{primaryColor:p.watch("primaryColor")})]})})]})}));ZPe.displayName="BrandSettingsForm";const $Pe=()=>{const{data:e}=qke();return{brandDefaults:{brandName:e?.branding?.brandName||e?.name,brandTagline:e?.branding?.brandTagline,logoUrl:e?.branding?.logoUrl,primaryColor:e?.branding?.primaryColor,secondaryColors:e?.branding?.secondaryColors,brandPersonality:e?.branding?.brandPersonality},businessDefaults:{company:{name:e?.name||"",website:e?.website||"",address1:"",address2:"",city:"",stateProvince:"",zipCode:"",country:"US"},contact:{firstName:"",lastName:"",email:"",phoneNumber:""}},meResponse:e}},YPe=()=>{const{toast:e}=Je(),{updateBrandSettings:a,updateBusinessSettings:n}=qke(),{updateChannelSender:t}=nte(),{channelSenders:i}=ate(),{channelAccounts:r}=Qne();return{handleBrandSubmit:async(n,t)=>{try{a({brandName:n.brandName,primaryColor:n.primaryColor,logoUrl:n.logoUrl,logoBase64:n.logoBase64},{onSuccess:()=>{t?.()}})}catch(i){e({title:"Failed to save brand settings",description:"Please try again",variant:"destructive"})}},handleBusinessSubmit:async(a,t)=>{try{n(a,{onSuccess:()=>{t?.()}})}catch(i){e({title:"Failed to save business settings",description:"Please try again",variant:"destructive"})}},handleEmailSubmit:async(a,n)=>{try{const o=pbe({channelSenders:i?.results??[],channelAccounts:r?.results??[]}).find((e=>e.channelSenderId===a.channelSenderId));if(!o)return;t({toUpdate:{channelSenderMetadata:{...o.channelSender.channelSenderMetadata,emailReplyTo:a.replyToEmail,emailFromName:a.displayName}},id:o.channelSender.id},{onSuccess:()=>{e({title:"Email channel settings saved 🚀"}),n?.()},onError:()=>{e({title:"Failed to save email channel settings",description:"Please try again",variant:"destructive"})}})}catch(o){e({title:"Failed to save email channel settings",description:"Please try again",variant:"destructive"})}},handleSMSSubmit:async a=>{try{await new Promise((e=>setTimeout(e,500))),e({title:"SMS channel settings saved 🚀"}),a?.()}catch(n){e({title:"Failed to save SMS channel settings",description:"Please try again",variant:"destructive"})}}}},QPe=a.createContext(null),XPe=()=>{const e=a.useContext(QPe);if(!e)throw new Error("useEngageSettingsContext must be used within EngageSettingsProvider");return e},eje=({isOnboarding:e=!1,onNext:t,onBack:i,title:r,description:o})=>{const{navigation:s}=XPe(),{isUpdatingBrandSettings:l,isLoading:u}=qke(),{brandDefaults:c}=$Pe(),{handleBrandSubmit:d}=YPe(),m=a.useContext(nAe),h=a.useRef(null),p=t||m?.goToNextStep||s?.goToNextStep||(()=>{});return n.jsx(CAe,{title:r||(e?GAe:OAe),description:o||(e?"Add your logo, colors, and brand voice to match your identity across all communication.":"Configure your brand identity and visual elements."),onBack:i||m?.goToPreviousStep||s?.goToPreviousStep||(()=>{}),onNext:()=>h.current?.submit(),isSubmitting:l,submitLabel:e?void 0:"Save",mode:e?"onboarding":"settings",children:u?n.jsx("div",{className:"flex justify-center items-center h-full py-10",children:n.jsx(Tq,{})}):n.jsx(ZPe,{ref:h,onSubmit:a=>d(a,e?p:void 0),defaultValues:c})})},aje=({schema:e,defaultValues:a,onSubmit:n})=>{const{toast:t}=Je(),i=HSe({resolver:PAe(e),defaultValues:a,mode:"onSubmit",reValidateMode:"onSubmit"});return{form:i,handleSubmit:i.handleSubmit((async e=>{try{await n(e)}catch(a){throw t({title:"Validation Error",description:a instanceof Error?a.message:"Please check your inputs",variant:"destructive"}),a}})),isSubmitting:i.formState.isSubmitting,errors:i.formState.errors}};var nje=(e=>(e.STANDARD="standard",e))(nje||{});const tje=Lre.object({type:Lre.literal("standard"),company:Lre.object({name:Lre.string().describe("The legal name of the company"),address1:Lre.string().optional(),address2:Lre.string().optional(),city:Lre.string().optional(),stateProvince:Lre.string().optional(),zipCode:Lre.string().optional(),country:Lre.string().length(2).optional()})}),ije=Lre.discriminatedUnion("type",[tje]),rje=({isOnboarding:e=!1,onNext:t,onBack:i,onSkip:r,title:o,description:s,showPrefilled:l=!1,prefilledData:u})=>{const{navigation:c}=XPe(),{isUpdatingBusinessSettings:d}=qke(),{businessDefaults:m}=$Pe(),{handleBusinessSubmit:h}=YPe(),p=a.useContext(nAe),g=t||p?.goToNextStep||c?.goToNextStep||(()=>{});return n.jsx(CAe,{title:o||(e?FAe:KAe),description:s||(e?"Configure your business information for SMS toll-free number registration.":"Provide your business details and authorized representative information."),onBack:i||p?.goToPreviousStep||c?.goToPreviousStep||(()=>{}),onNext:()=>{const e=document.querySelector("form");e?.dispatchEvent(new Event("submit",{bubbles:!0,cancelable:!0}))},onSkip:r,isSubmitting:d,submitLabel:e?void 0:"Save",mode:e?"onboarding":"settings",children:n.jsxs("div",{className:"space-y-4",children:[l&&u&&n.jsx(sje,{}),n.jsx(oje,{onSubmit:a=>h(a,e?g:void 0),defaultValues:u||m})]})})},oje=({onSubmit:e,defaultValues:a,context:t="email"})=>{const{form:i,handleSubmit:r}=aje({schema:ije,defaultValues:{type:nje.STANDARD,company:{name:a?.company?.name||"",address1:a?.company?.address1||"",address2:a?.company?.address2||"",city:a?.company?.city||"",stateProvince:a?.company?.stateProvince||"",zipCode:a?.company?.zipCode||"",country:a?.company?.country||""}},onSubmit:e});return n.jsx(ISe,{...i,children:n.jsxs("form",{onSubmit:r,className:"space-y-6 p-8",children:[n.jsx(wAe,{title:"",children:n.jsx(owe,{control:i.control,context:t})}),n.jsx(i3,{type:"submit",className:"sr-only",children:"Submit"})]})})},sje=()=>n.jsx("div",{className:"bg-primary/10 border border-primary/20 rounded-lg p-4 mx-auto",children:n.jsxs("div",{className:"flex items-start gap-3",children:[n.jsx(sB,{className:"w-5 h-5 text-primary flex-shrink-0 mt-0.5"}),n.jsx("p",{className:"text-primary text-sm text-left",children:"Your business information has been automatically filled from your account settings. You can review and edit these details if needed."})]})}),lje=Lre.object({displayName:Lre.string().min(1,"Display name is required"),channelSenderId:Lre.string().min(1,"Channel sender is required"),replyToEmail:Lre.string().email("Please enter a valid email address")}),uje=({onSubmit:e})=>{const{channelSenders:t,isLoading:i}=ate(),{channelAccounts:r,isLoading:o}=Qne(),s=a.useRef(!1),{form:l,handleSubmit:u}=aje({schema:lje,defaultValues:{channelSenderId:"",displayName:"",replyToEmail:""},onSubmit:e}),c=a.useMemo((()=>pbe({channelSenders:t?.results??[],channelAccounts:r?.results??[]})),[t?.results,r?.results]),d=a.useMemo((()=>c.map((e=>({value:e.channelSenderId,label:e.fullDomain,description:e.channelSender.channelSenderMetadata.emailReplyTo||"No reply-to set"})))),[c]);return a.useEffect((()=>{if(c.length>0&&!s.current){s.current=!0;const e=c[0],{emailFromName:a,emailReplyTo:n}=e.channelSender.channelSenderMetadata;l.reset({channelSenderId:e.channelSenderId,displayName:a||"",replyToEmail:n||""})}}),[c,l]),a.useEffect((()=>{const e=l.watch(((e,{name:a})=>{if("channelSenderId"===a&&e.channelSenderId&&s.current){const a=c.find((a=>a.channelSenderId===e.channelSenderId));if(a){const{emailFromName:e,emailReplyTo:n}=a.channelSender.channelSenderMetadata;e&&l.setValue("displayName",e),n&&l.setValue("replyToEmail",n)}}}));return()=>e.unsubscribe()}),[c,l]),i||void 0===t||o||void 0===r?n.jsx("div",{className:"flex justify-center items-center h-full py-10",children:n.jsx(Tq,{})}):n.jsx(ISe,{...l,children:n.jsxs("form",{onSubmit:u,className:"space-y-6 p-8",children:[n.jsxs("div",{className:"space-y-2",children:[n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(sve,{children:"Account Email"}),n.jsx(cse,{title:"This is the address your recipients will see as the sender of the email.",size:"small"})]}),n.jsx(AAe,{control:l.control,name:"channelSenderId",label:"",placeholder:"Select a sender",options:d})]}),n.jsxs("div",{className:"space-y-2",children:[n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(sve,{children:"Display Name"}),n.jsx(cse,{title:"This is the name that appears in the 'From' field alongside your sender email.",size:"small"})]}),n.jsx(SAe,{control:l.control,name:"displayName",label:"",placeholder:"Name that appears in the From field"})]}),n.jsxs("div",{className:"space-y-2",children:[n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(sve,{children:"Reply-to Email"}),n.jsx(cse,{title:"Replies from recipients will go to this email address. It can be different from the default sender address.",size:"small"})]}),n.jsx(SAe,{control:l.control,name:"replyToEmail",label:"",placeholder:"Replies from recipients will go to this email",type:"email"})]}),n.jsx(i3,{type:"submit",className:"sr-only",children:"Submit"})]})})},cje=({isOnboarding:e=!1,onNext:t,onBack:i,title:r,description:o})=>{const{navigation:s}=XPe(),{handleEmailSubmit:l}=YPe(),{isUpdating:u}=nte(),c=a.useContext(nAe),d=t||c?.goToNextStep||s?.goToNextStep||(()=>{});return n.jsx(CAe,{title:r||(e?VAe:HAe),description:o||(e?"Configure your email settings to ensure proper delivery and branding of your email communications.":"Configure your email sending settings and preferences."),onBack:i||c?.goToPreviousStep||s?.goToPreviousStep||(()=>{}),onNext:()=>{const e=document.querySelector("form");e?.dispatchEvent(new Event("submit",{bubbles:!0,cancelable:!0}))},isSubmitting:u,submitLabel:e?void 0:"Save",mode:e?"onboarding":"settings",children:n.jsx(uje,{onSubmit:a=>l(a,e?d:void 0)})})},dje=({hideSubmitButton:e=!1,formRef:t,onNeedsApplicationChange:i,onApplicationSubmit:r,onFormVisibilityChange:o})=>{const[s,l]=a.useState(null),{channelSenders:u}=ate(),{channelAccounts:c}=Qne(),{data:d}=rte(),m=Kre({channelSenders:u?.results??[],channelAccounts:c?.results??[],smsApplication:d});a.useEffect((()=>{if(null!==s||void 0===c||void 0===u)return;m.some((e=>e.smsApplication?.status===Ore.APPROVED||null===e.smsApplication))?(l({sender:m}),i?.(!1)):(l(!1),i?.(!0))}),[m,s,c,u,i]);const h={hidden:{opacity:0,y:20},visible:{opacity:1,y:0,transition:{duration:.4,ease:[.4,0,.2,1]}}};if(null===s)return n.jsx("div",{className:"w-full max-w-4xl mx-auto mt-8",children:n.jsx(Tq,{})});const p=m.some((e=>e.smsApplication?.status===Ore.APPROVED));return n.jsx("div",{className:"w-full max-w-4xl mx-auto mt-8",children:s?n.jsxs(M2.div,{initial:"hidden",animate:"visible",exit:"exit",variants:{hidden:{opacity:0,y:20},visible:{opacity:1,y:0,transition:{duration:.4,ease:[.4,0,.2,1],staggerChildren:.1}},exit:{opacity:0,y:-20,transition:{duration:.3,ease:[.4,0,1,1]}}},className:oz("flex flex-col items-center text-center w-full max-w-[72ch] rounded-xl gap-3 mx-auto bg-background"),children:[n.jsx(M2.div,{variants:h,className:"w-16 h-16 rounded-xl flex items-center justify-center bg-primary/10",children:n.jsx(l3.SmsIcon,{className:"text-primary"})}),n.jsx(M2.h2,{variants:h,className:"text-lg font-medium text-foreground",children:"SMS Sending Number Active"}),n.jsx(M2.div,{variants:h,className:"max-w-xl mx-auto",children:n.jsx("p",p?{className:"text-sm font-normal text-muted-foreground mb-2",children:"Your SMS sending number has been verified and is ready to use. You can now create and send SMS campaigns!"}:{className:"text-sm font-normal text-muted-foreground mb-2",children:"You already have a valid SMS sending number and it is ready to use. You can create and send SMS campaigns!"})}),n.jsxs(M2.div,{variants:h,className:"flex flex-col items-center w-full gap-4",children:[n.jsxs("span",{className:"inline-flex items-center px-4 py-1 rounded-full bg-blue-50 border border-blue-200 text-blue-800 font-medium text-base mb-2",children:[n.jsx("span",{className:"w-2 h-2 bg-blue-500 rounded-full mr-2"}),"Ready to send"]}),n.jsx("div",{className:"w-full flex flex-col gap-3 max-w-md mx-auto",children:m.map((e=>{const a=!!e.channelSender.channelSenderMetadata.friendlyName?.toLowerCase().includes("pending approval"),t=e.channelSender.channelSenderMetadata.friendlyName||e.channelSender.channelSenderMetadata.from||"Unknown Number";return n.jsxs("div",{className:oz("flex items-center justify-between rounded-xl px-4 py-3 border shadow-sm",a?"bg-gray-50 border-gray-200 text-gray-500":"bg-blue-50 border-blue-200 text-blue-900 font-semibold"),children:[n.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[a?n.jsx(l3.AlertCircleIcon,{className:"w-5 h-5 text-yellow-500 shrink-0"}):n.jsx(l3.CheckIcon,{className:"w-5 h-5 text-blue-500 shrink-0"}),n.jsx("span",{className:"truncate",title:t,children:t})]}),!a&&e.channelSender.channelSenderMetadata.from&&e.channelSender.channelSenderMetadata.friendlyName!==e.channelSender.channelSenderMetadata.from&&n.jsx("span",{className:"font-mono text-xs text-blue-700 ml-2",children:e.channelSender.channelSenderMetadata.from})]},e.channelSender.id)}))})]})]}):n.jsx("div",{className:"w-full max-w-4xl mx-auto mt-8 px-4",children:n.jsx(cwe,{hideSubmitButton:e,formRef:t,onApplicationSubmit:r,onFormVisibilityChange:o})})})},mje=({isOnboarding:e=!1,onNext:t,onBack:i,title:r,description:o})=>{const{navigation:s}=XPe(),{handleSMSSubmit:l}=YPe(),{createSmsRegistrationApplication:u,isCreating:c}=ote(),{toast:d}=Je(),m=a.useRef(null),[h,p]=a.useState(!1),[g,f]=a.useState(!1),[v,y]=a.useState(!1),k=a.useContext(nAe),b=t||k?.goToNextStep||s?.goToNextStep||(()=>{});return n.jsx(CAe,{title:r||(e?JAe:IAe),description:o||(e?"Set up your SMS provider to start sending personalized messages to your customers.":"Configure your SMS sending settings and preferences."),onBack:i||k?.goToPreviousStep||s?.goToPreviousStep||(()=>{}),onNext:async()=>{if(h&&g&&m.current)m.current.submit();else{y(!0);try{await l(e?b:void 0)}finally{y(!1)}}},submitLabel:h&&g?e?void 0:"Submit for approval":e?void 0:"Save",isSubmitting:h&&g?c:v,mode:e?"onboarding":"settings",children:n.jsx(dje,{hideSubmitButton:!0,formRef:m,onNeedsApplicationChange:p,onApplicationSubmit:async a=>{try{await u({application:a,onSuccess:()=>{d({title:"SMS application submitted 🚀",description:"Your application has been submitted for approval."}),e&&b()}})}catch(n){d({title:"Failed to submit SMS application",description:"Please try again",variant:"destructive"})}},onFormVisibilityChange:f})})},hje=()=>{const{open:e,setOpen:a,currentStep:t,navigation:i}=XPe();return n.jsx(kAe,{open:e,onOpenChange:e=>{e||a(!1)},title:BAe,description:RAe,sidebarItems:iwe,currentStep:t,onStepChange:i.goToStep,completedSteps:[],mode:"settings",showSidebar:!0,className:"max-w-4xl h-[80vh]",children:{[LAe.BRAND]:n.jsx(eje,{}),[LAe.BUSINESS]:n.jsx(rje,{}),[LAe.EMAIL]:n.jsx(cje,{}),[LAe.SMS]:n.jsx(mje,{})}[t]||null})},pje=({children:e,open:a,setOpen:t})=>{const{navigation:i}=tAe({config:{steps:iwe,initialStep:LAe.BRAND},onClose:()=>t(!1)});return n.jsx(QPe.Provider,{value:{open:a,setOpen:t,currentStep:i.currentStep,navigation:i},children:e})},gje=a.createContext(void 0),fje=()=>{const e=a.useContext(gje);if(!e)throw new Error("useEngageOnboardingContext must be used within EngageOnboardingProvider");return e},vje=[LAe.SPLASH,LAe.BRAND,LAe.EMAIL,LAe.BUSINESS,LAe.BUSINESS_SKIP_INTERSTITIAL,LAe.SMS_INTERSTITIAL,LAe.SMS,LAe.COMPLETION],yje=()=>{const{onClose:e}=fje(),[n,t]=a.useState(!1),[i,r]=a.useState(!1),o=a.useMemo((()=>vje.filter((e=>!(e===LAe.SMS&&n||e===LAe.SMS_INTERSTITIAL&&n||e===LAe.BUSINESS_SKIP_INTERSTITIAL&&i)))),[n,i]),s=a.useMemo((()=>({steps:o.map((e=>({key:e,label:e}))),initialStep:LAe.SPLASH,mode:$Se})),[o]),{navigation:l}=tAe({config:s,onClose:e}),u=a.useCallback((e=>{e===LAe.BUSINESS&&i&&r(!1),l.goToStep(e)}),[i,l]),c=a.useCallback((e=>{t(!e),l.goToStep(e?LAe.SMS:LAe.COMPLETION)}),[l]),d=a.useCallback((()=>{r(!0),l.goToStep(LAe.BUSINESS_SKIP_INTERSTITIAL)}),[l]),m=a.useCallback((()=>{e(),l.goToStep(LAe.SPLASH),t(!1),r(!1)}),[e,l]);return{currentStep:l.currentStep,currentStepIndex:l.currentStepIndex,steps:l.steps,goToNextStep:l.goToNextStep,goToPreviousStep:l.goToPreviousStep,goToStep:u,canGoNext:l.canGoNext,canGoPrevious:l.canGoPrevious,isLastStep:l.isLastStep,isFirstStep:l.isFirstStep,handleSMSChoice:c,handleBusinessSkip:d,handleClose:m}},kje=()=>{const{goToStep:e,goToNextStep:a}=yje();return n.jsxs("div",{className:"h-full flex flex-col",children:[n.jsx("div",{className:"flex-1 overflow-y-auto p-8",children:n.jsxs("div",{className:"max-w-2xl space-y-6 w-full mx-auto",children:[n.jsx("div",{className:"w-16 h-16 bg-amber-100 rounded-2xl flex items-center justify-center",children:n.jsx(SB,{className:"w-8 h-8 text-amber-600"})}),n.jsxs("div",{className:"space-y-2",children:[n.jsx("h1",{className:"text-xl font-medium text-primary",children:"Business information can be added later"}),n.jsx("p",{className:"text-sm text-muted-foreground",children:"You can always return to add your business details when you're ready to get approved for sending."})]}),n.jsx("div",{className:"bg-muted/50 border border-muted rounded-lg p-4",children:n.jsxs("div",{className:"flex items-center gap-3",children:[n.jsx(tB,{className:"w-5 h-5 text-muted-foreground"}),n.jsxs("div",{children:[n.jsx("p",{className:"text-sm font-medium",children:"What you'll miss:"}),n.jsx("p",{className:"text-sm text-muted-foreground",children:"Business approval for higher sending limits and better deliverability"})]})]})})]})}),n.jsx("div",{className:"border-t border-border py-6 px-8 bg-background",children:n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs(i3,{variant:"ghost",onClick:()=>e(LAe.BUSINESS),className:"flex items-center gap-2",children:[n.jsx(eB,{className:"w-4 h-4"}),"Go back to business info"]}),n.jsx(i3,{onClick:a,children:"Continue without business info"})]})})]})},bje=()=>{const{handleClose:e}=yje();return n.jsxs("div",{className:"h-full flex flex-col",children:[n.jsx("div",{className:"flex-1 overflow-y-auto p-8 pt-10 @lg/onboarding-sidebar:pt-16 flex items-center justify-center",children:n.jsxs("div",{className:"max-w-2xl space-y-8",children:[n.jsx("div",{className:"w-24 h-24 mx-auto bg-muted rounded-2xl flex items-center justify-center",children:n.jsx(pB,{className:"w-16 h-16 text-primary"})}),n.jsxs("div",{className:"space-y-10 text-center",children:[n.jsxs("div",{className:"space-y-4",children:[n.jsx("h1",{className:"font-medium text-foreground flex items-center justify-center gap-3 text-2xl",children:"You're Ready to Go 🚀"}),n.jsx("div",{className:"space-y-4 text-muted-foreground",children:n.jsxs("p",{className:"text-sm whitespace-pre-line",children:["Everything's configured — now start sending campaigns and"," ",TD("engage:automation",{count:2})," to engage your audience."]})})]}),n.jsx("div",{className:"bg-primary/10 border border-primary/20 rounded-lg p-4 max-w-md mx-auto",children:n.jsxs("div",{className:"flex items-center gap-3",children:[n.jsx(cse,{title:"You can set up SMS later from the settings menu.",size:"small"}),n.jsx("p",{className:"text-primary text-sm text-left",children:"You can set up SMS later from the settings menu."})]})})]})]})}),n.jsx("div",{className:"border-t border-border py-6 px-8 flex items-center justify-end bg-background gap-4",children:n.jsxs(i3,{onClick:e,className:"flex items-center gap-2 text-sm",children:["Go to dashboard",n.jsx(aB,{className:"w-4 h-4"})]})})]})},Sje=()=>{const{handleSMSChoice:e,goToPreviousStep:a}=yje();return n.jsxs("div",{className:"h-full flex flex-col",children:[n.jsx("div",{className:"flex-1 overflow-y-auto p-8 pt-10 @lg/onboarding-sidebar:pt-16",children:n.jsxs("div",{className:"max-w-2xl text-center space-y-8",children:[n.jsx("div",{className:"w-24 h-24 mx-auto bg-muted rounded-2xl flex items-center justify-center",children:n.jsx(RB,{className:"w-12 h-12 text-muted-foreground"})}),n.jsxs("div",{className:"space-y-4",children:[n.jsx("div",{className:"text-xl font-bold text-foreground",children:"Want to reach your audience via SMS?"}),n.jsx("p",{className:"text-muted-foreground text-sm",children:"Share time-sensitive updates and drive more engagement with verified SMS."})]}),n.jsx("div",{className:"space-y-6",children:n.jsxs("div",{className:"space-y-6 border-2 border-muted rounded-lg mx-auto overflow-hidden",children:[n.jsx("h2",{className:"text-primary font-medium text-base text-center bg-muted p-2",children:"Why set up SMS?"}),n.jsxs("div",{className:"space-y-4 px-6 pb-6",children:[n.jsxs("div",{className:"flex items-center gap-3 text-left",children:[n.jsx("div",{className:"w-8 h-8 rounded-full bg-muted flex items-center justify-center flex-shrink-0 mt-0.5",children:n.jsx(oB,{className:"w-4 h-4"})}),n.jsx("p",{className:"text-sm",children:"SMS messages get 5x more opens than emails"})]}),n.jsxs("div",{className:"flex items-center gap-3 text-left",children:[n.jsx("div",{className:"w-8 h-8 rounded-full bg-muted flex items-center justify-center flex-shrink-0 mt-0.5",children:n.jsx(hR,{className:"w-4 h-4"})}),n.jsx("p",{className:"text-sm",children:"Send urgent updates instantly"})]}),n.jsxs("div",{className:"flex items-center gap-3 text-left",children:[n.jsx("div",{className:"w-8 h-8 rounded-full bg-muted flex items-center justify-center flex-shrink-0 mt-0.5",children:n.jsx(YB,{className:"w-4 h-4"})}),n.jsx("p",{className:"text-sm",children:"Gain trust with verified sender ID"})]})]})]})}),n.jsx("div",{className:"bg-primary/5 border border-primary/20 rounded-lg p-4 max-w-sm mx-auto",children:n.jsxs("div",{className:"flex items-center gap-3",children:[n.jsx(xB,{className:"w-5 h-5 text-primary flex-shrink-0 mt-0.5"}),n.jsx("p",{className:"text-primary text-sm text-left whitespace-pre-line",children:"SMS requires company verification via Twilio. You can skip this step and set it up later."})]})})]})}),n.jsxs("div",{className:"border-t border-border py-6 px-8 flex items-center justify-between bg-background gap-4",children:[n.jsxs(i3,{variant:"outline",onClick:a,className:"flex items-center gap-2 text-sm",children:[n.jsx(uB,{className:"w-4 h-4"}),"Previous Step"]}),n.jsxs("div",{className:"flex items-center gap-4",children:[n.jsx(i3,{onClick:()=>e(!1),variant:"outline",className:"flex items-center gap-2 text-sm",children:"Not now"}),n.jsxs(i3,{onClick:()=>e(!0),className:"flex items-center gap-2 text-sm",children:["Yes, let's setup SMS",n.jsx(aB,{className:"w-4 h-4"})]})]})]})]})},Aje=()=>{const{goToNextStep:e}=yje(),{isPrefilled:t}=(()=>{const{channelSenders:e}=ate(),{channelAccounts:n}=Qne(),{data:t}=rte();return a.useMemo((()=>{if(!e?.results||!n?.results)return{isPrefilled:!1,prefilledData:null};const a=Kre({channelSenders:e.results,channelAccounts:n.results,smsApplication:t}).find((e=>e.smsApplication?.status===Ore.APPROVED));if(!a?.smsApplication?.application)return{isPrefilled:!1,prefilledData:null};const i=a.smsApplication.application;return{isPrefilled:!0,prefilledData:i.type===Bre.TWILIO_TOLL_FREE_NUMBER?{type:nje.STANDARD,company:{name:i.company.name,address1:i.company.address1,address2:i.company.address2,city:i.company.city,stateProvince:i.company.stateProvince,zipCode:i.company.zipCode,country:i.company.country},contact:{firstName:i.contact.firstName,lastName:i.contact.lastName,email:i.contact.email,phoneNumber:i.contact.phoneNumber}}:null}}),[e,n,t])})();return n.jsxs("div",{className:"h-full flex flex-col",children:[n.jsx("div",{className:"flex-1 overflow-y-auto p-8",children:n.jsxs("div",{className:"max-w-2xl space-y-6 w-full mx-auto",children:[n.jsx("div",{className:"w-16 h-16 bg-muted rounded-2xl flex items-center justify-center",children:n.jsx(WB,{className:"w-8 h-8 text-primary"})}),n.jsxs("div",{className:"space-y-2 max-w-lg",children:[n.jsx("h1",{className:"text-xl font-medium text-primary leading-tight",children:"Start sending beautiful, branded emails & SMS"}),n.jsxs("p",{className:"text-sm",children:["Set up branded ",TD("engage:automation",{count:2})," that boost engagement and save you time."]})]}),n.jsxs("div",{className:"space-y-6 border-2 border-muted rounded-lg mx-auto overflow-hidden",children:[n.jsx("h2",{className:"text-primary font-medium text-base text-center bg-muted p-2",children:"Why set this up?"}),n.jsxs("div",{className:"space-y-4 px-6 pb-6",children:[n.jsxs("div",{className:"flex items-center gap-3 text-left",children:[n.jsx("div",{className:"w-8 h-8 rounded-full bg-muted flex items-center justify-center flex-shrink-0 mt-0.5",children:n.jsx(WB,{className:"w-4 h-4"})}),n.jsx("p",{className:"text-sm",children:"Look professional from day one with branded emails and SMS"})]}),n.jsxs("div",{className:"flex items-center gap-3 text-left",children:[n.jsx("div",{className:"w-8 h-8 rounded-full bg-muted flex items-center justify-center flex-shrink-0 mt-0.5",children:n.jsx(dR,{className:"w-4 h-4"})}),n.jsx("p",{className:"text-sm",children:"Reach more customers in less time with automated messages"})]}),n.jsxs("div",{className:"flex items-center gap-3 text-left",children:[n.jsx("div",{className:"w-8 h-8 rounded-full bg-muted flex items-center justify-center flex-shrink-0 mt-0.5",children:n.jsx(hR,{className:"w-4 h-4"})}),n.jsx("p",{className:"text-sm",children:"Start sending in minutes - no tech skills required"})]}),n.jsxs("div",{className:"flex items-center gap-3 text-left",children:[n.jsx("div",{className:"w-8 h-8 rounded-full bg-muted flex items-center justify-center flex-shrink-0 mt-0.5",children:n.jsx(SB,{className:"w-4 h-4"})}),n.jsx("p",{className:"text-sm",children:"Measure results - see what's working and improve"})]})]})]})]})}),n.jsxs("div",{className:"border-t border-border py-6 px-8 bg-background space-y-4",children:[t&&n.jsx("div",{className:"w-full flex-shrink-0",children:n.jsx(sje,{})}),n.jsxs("div",{className:"flex items-center justify-between bg-background gap-4",children:[n.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[n.jsx(cse,{title:`In just 5 minutes, you'll be ready to send branded ${TD("engage:automation",{count:2})}`,size:"small"}),n.jsxs("span",{children:["In just 5 minutes, you'll be ready to send branded"," ",TD("engage:automation",{count:2})]})]}),n.jsxs(i3,{onClick:e,className:"flex items-center gap-2 text-sm",children:["Let's start",n.jsx(aB,{className:"w-4 h-4"})]})]})]})]})},wje=()=>{const{open:e,onClose:a}=fje(),{currentStep:t,goToStep:i,handleClose:r}=yje(),o=t!==LAe.SPLASH&&t!==LAe.COMPLETION&&t!==LAe.BUSINESS_SKIP_INTERSTITIAL;return n.jsx(kAe,{open:e,onOpenChange:e=>{e||(r?r():a())},title:zAe,description:DAe,sidebarItems:rwe,currentStep:t,onStepChange:i,completedSteps:[],mode:"onboarding",showSidebar:o,showMobileNav:o,className:"max-w-5xl h-[90vh]",children:{[LAe.SPLASH]:n.jsx(Aje,{}),[LAe.BRAND]:n.jsx(eje,{}),[LAe.EMAIL]:n.jsx(cje,{}),[LAe.BUSINESS]:n.jsx(rje,{}),[LAe.BUSINESS_SKIP_INTERSTITIAL]:n.jsx(kje,{}),[LAe.SMS_INTERSTITIAL]:n.jsx(Sje,{}),[LAe.SMS]:n.jsx(mje,{}),[LAe.COMPLETION]:n.jsx(bje,{})}[t]||null})},Mje=({children:e,open:a,onClose:t})=>n.jsx(gje.Provider,{value:{open:a,onClose:t},children:e}),Cje=({automationId:e,isOpen:a,onClose:t})=>{const{linkClickStats:i,isGetting:r,getError:o}=na(e);return n.jsx(pq,{open:a,onOpenChange:t,children:n.jsxs(yq,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[n.jsx(kq,{children:n.jsxs(Sq,{className:"flex items-center gap-2",children:[n.jsx(KB,{className:"h-5 w-5"}),"Link Click Statistics"]})}),n.jsxs("div",{className:"space-y-4",children:[r&&n.jsx("div",{className:"text-sm text-muted-foreground text-center py-8",children:"Loading link click statistics..."}),o&&n.jsx("div",{className:"text-sm text-destructive text-center py-8",children:"Error loading link click statistics. Please try again."}),!r&&!o&&(!i||0===Object.keys(i).length)&&n.jsx("div",{className:"text-sm text-muted-foreground text-center py-8",children:"No link clicks found."}),!r&&!o&&i&&Object.keys(i).length>0&&n.jsxs("div",{className:"space-y-3",children:[n.jsxs("div",{className:"bg-muted/50 rounded-lg p-4",children:[n.jsx("div",{className:"text-sm text-muted-foreground mb-2",children:"Summary"}),n.jsxs("div",{className:"flex gap-4 text-sm",children:[n.jsxs("div",{children:[n.jsx("span",{className:"font-semibold",children:Object.keys(i).length})," ","unique links"]}),n.jsxs("div",{children:[n.jsx("span",{className:"font-semibold",children:Object.values(i).reduce(((e,a)=>e+a),0)})," ","total clicks"]})]})]}),n.jsx("div",{className:"space-y-2",children:Object.entries(i).sort((([,e],[,a])=>a-e)).map((([e,a])=>n.jsxs("div",{className:"flex items-center justify-between p-3 border rounded-lg hover:bg-muted/50 transition-colors",children:[n.jsx("div",{className:"flex-1 min-w-0",children:n.jsxs("a",{href:e,target:"_blank",rel:"noopener noreferrer",className:"text-sm text-blue-600 hover:text-blue-800 hover:underline flex items-center gap-1 truncate",children:[n.jsx("span",{className:"truncate",children:e}),n.jsx(wB,{className:"h-3 w-3 flex-shrink-0"})]})}),n.jsxs("div",{className:"text-right ml-4",children:[n.jsx("span",{className:"font-semibold text-lg",children:a}),n.jsx("span",{className:"text-sm text-muted-foreground ml-1",children:1===a?"click":"clicks"})]})]},e)))})]})]})]})})},Tje=e=>{if(!e)return"$0.00";const a="string"==typeof e?e.replace(/,/g,""):e,n=Number(a);return Number.isNaN(n)?"$0.00":new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(n)},xje=({Icon:e,title:a,value:t,tooltipText:i,change:r,onClick:o,isClickable:s=!1})=>n.jsxs(ise,{className:"relative flex flex-col justify-between min-h-[130px] transition-all duration-300 p-4 "+(s?"hover:shadow-md cursor-pointer hover:bg-muted/50":"hover:shadow-md"),onClick:o,children:[n.jsxs("div",{className:"flex justify-between items-start",children:[n.jsx("div",{className:"rounded-lg p-2 bg-primary/10 flex items-center justify-center",children:n.jsx(e,{className:"w-5 h-5 text-primary"})}),n.jsx("div",{className:"absolute top-3 right-3",children:n.jsx(cse,{title:i})})]}),n.jsxs("div",{className:"mt-4",children:[n.jsx("div",{className:"text-2xl font-bold leading-tight text-primary",children:t}),n.jsx(Rxe,{children:a})]}),r&&n.jsx("div",{className:"absolute bottom-3 right-3",children:n.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded-full bg-green-100 text-green-600 text-xs font-semibold",children:r})})]}),Nje=({activeTab:e,automation:a})=>{if(!a)return null;const t={sales:[{Icon:l3.SalesAmount,title:"Order Amount",value:Tje(a.derivedRevenue),tooltipText:"Total derived revenue from this campaign"},{Icon:l3.Orders,title:"Orders",value:a.derivedOrders,tooltipText:"Total individual orders from this campaign"}]};return n.jsx("div",{className:"grid gap-2 transition-all duration-300 grid-cols-3 pb-4",children:t[e].map(((e,a)=>n.jsx(xje,{Icon:e.Icon,title:e.title,value:e.value,tooltipText:e.tooltipText},a)))})},Eje=({activeTab:e,statistics:a,automationId:t,onLinkClickStatsOpen:i})=>{const r={email:[{Icon:l3.MessagesSent,title:"Emails Sent",value:a.email.numberSent,tooltipText:"Total number of emails that were successfully sent in this campaign",onClick:void 0,isClickable:!1},{Icon:l3.OpenRate,title:"Open Rate",value:`${(100*a.email.openPercentage).toFixed(2)}%`,tooltipText:"Percentage of recipients who opened the email out of total emails delivered",onClick:void 0,isClickable:!1},{Icon:l3.TotalBounceRate,title:"Total Bounce Rate",value:`${(100*(a.email.softBounceRate+a.email.hardBounceRate)).toFixed(2)}%`,tooltipText:"Percentage of emails that were not delivered due to permanent (hard) or temporary (soft) delivery failures. Hard bounces will be automatically unsubscribed.",onClick:void 0,isClickable:!1},{Icon:l3.LinksClicked,title:"Links Clicked",value:a.email.linksClicked,tooltipText:"Total number of times recipients clicked on links within the email. Click to view detailed link statistics.",onClick:i,isClickable:!!t&&!!i},{Icon:l3.SpamComplies,title:"Spam Complaints",value:`${(100*a.email.spamComplaintRate).toFixed(2)}%`,tooltipText:"Percentage of emails that were marked as spam by recipients or their spam filters. Manual spam complaints will be automatically unsubscribed.",onClick:void 0,isClickable:!1},{Icon:l3.UnsubscribeRate,title:"Unsubscribe Rate",value:`${(100*a.email.unsubscribedRate).toFixed(2)}%`,tooltipText:"Percentage of recipients who unsubscribed after receiving this email",onClick:void 0,isClickable:!1}],sms:[{Icon:l3.MessagesSent,title:"SMS Sent",value:a.sms.numberSent,tooltipText:"Total number of SMS messages that were successfully sent in this campaign",onClick:void 0,isClickable:!1}]};return n.jsx("div",{className:"grid gap-2 transition-all duration-300 grid-cols-3 pb-4",children:r[e].map(((e,a)=>n.jsx(xje,{Icon:e.Icon,title:e.title,value:e.value,tooltipText:e.tooltipText,onClick:e.onClick,isClickable:e.isClickable},a)))})},_je=({automationId:e,includeSales:t=!1,includeSms:i=!1,automation:r})=>{const[o,s]=a.useState(!1),{statistics:l,isLoading:u}=sa(e);return u||!l?n.jsx("div",{className:"bg-white rounded-2xl w-full p-6 space-y-4 relative h-[14.05rem]",children:n.jsx(Tq,{text:[`Fetching ${TD("engage:insight",{count:2})}`,"Finishing up"]})}):n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"bg-white rounded-2xl w-full p-6 flex flex-col gap-6",children:[n.jsxs("section",{children:[n.jsx(Lxe,{className:"mb-4",children:TD("engage:emailInsights","Email Insights")}),n.jsx(Eje,{activeTab:"email",statistics:l,automationId:e,onLinkClickStatsOpen:()=>s(!0)})]}),(i||t)&&n.jsx(HCe,{className:"my-2"}),i&&n.jsxs("section",{children:[n.jsx(Lxe,{className:"mb-4",children:TD("engage:smsInsights","SMS Insights")}),n.jsx(Eje,{activeTab:"sms",statistics:l})]}),t&&i&&n.jsx(HCe,{className:"my-2"}),t&&n.jsxs("section",{children:[n.jsx(Lxe,{className:"mb-4",children:TD("engage:salesInsights","Sales Insights")}),n.jsx(Nje,{activeTab:"sales",automation:r})]})]}),e&&n.jsx(Cje,{automationId:e,isOpen:o,onClose:()=>s(!1)})]})},Pje=e=>{const{updateAutomation:n,updateError:t,isUpdateSuccess:i}=oa(e),{toast:r}=Je();return a.useEffect((()=>{i?r({title:"Status updated",description:"The status has been updated successfully"}):t&&r({title:"Error updating status",description:"Please try again",variant:"destructive"})}),[i,t,r]),{toggleStatus:async e=>{try{return await n({status:e?pa.ACTIVE:pa.DRAFT}),!0}catch(a){return r({title:"Error updating status",description:"Please try again",variant:"destructive"}),!1}}}};function jje(){const{toast:e}=Je(),[t,i]=a.useState(null),{toggleStatus:r}=Pje(t||""),o=Lee(),[s,l]=a.useState(!1),[u,c]=a.useState(10),[d,m]=a.useState(void 0),[h,p]=a.useState(""),{automations:g,nextCursor:f,isLoading:v,error:y,isFetching:k,isPlaceholderData:b}=la({cursor:d,limit:u,triggerTypes:[ca.TRIGGER_BASED,ca.DATE_BASED],search:h||void 0});a.useEffect((()=>{y&&e({title:`Error Fetching ${TD("engage:automation")}`,description:y?.message||"Please try again.",variant:"destructive"})}),[y,e]);const S=a.useMemo((()=>(g||[]).map((e=>({...e,emailsSent:0,smsSent:0,updated_at:e.updatedAt||e.createdAt})))),[g]),A=a.useCallback((async(e,a)=>{try{i(e);const n=a===pa.ACTIVE;await r(n)}finally{i(null)}}),[r,i]),w=a.useCallback((e=>{m(e.cursor),c(e.pageSize)}),[]),M=a.useCallback((e=>`/automations/view-modal/${e}?showBackButton=true`),[]),C=a.useMemo((()=>Yoe({automationName:TD("engage:automation"),setUrl:M,onToggle:A,vsaasManaged:!0})),[A,M]);return n.jsxs("div",{className:"w-full h-[75vh] flex flex-col",children:[n.jsx("div",{className:"flex-grow min-h-0 p-2",children:n.jsx(R7,{data:S,columns:C,paginationMode:"cursor",initialPageSize:u,isLoading:v&&!b,onRowClick:e=>{o(`/automations/view-modal/${e.id}?showBackButton=true`)},cursorPaginationQueryResult:{nextCursor:f,isLoading:v,isFetching:k,isPlaceholderData:b},onQueryParametersChange:w,searchValue:h,onSearchChange:p,headerActions:n.jsxs(i3,{className:"bg-primary",onClick:()=>l(!0),children:[n.jsx(VB,{className:"h-4 w-4 mr-1"}),"New"]})})}),n.jsx(DPe,{open:s,setOpen:l,onClose:a=>{Goe(l,e,a,`Error creating ${TD("engage:broadcast")}`,"Please try again"),!1!==a&&o(`/automations/view-modal/${a}?showBackButton=true`)},automationType:ca.ONE_TIME})]})}function Lje(){const{toast:e}=Je(),[t,i]=a.useState(!1),[r,o]=a.useState(null),{toggleStatus:s}=Pje(r||""),l=Lee(),[u,c]=a.useState(10),[d,m]=a.useState(void 0),[h,p]=a.useState(""),{automations:g,nextCursor:f,isLoading:v,error:y,isFetching:k,isPlaceholderData:b}=la({cursor:d,limit:u,triggerTypes:[ca.ONE_TIME],search:h||void 0});a.useEffect((()=>{y&&e({title:`Error Fetching ${TD("engage:broadcast")}`,description:y?.message||"Please try again.",variant:"destructive"})}),[y,e]);const S=a.useMemo((()=>(g||[]).map((e=>({...e,updated_at:e.updatedAt})))),[g]),A=a.useCallback((async(e,a)=>{try{o(e);const n=a===pa.ACTIVE;await s(n)}finally{o(null)}}),[s,o]),w=a.useCallback((e=>{m(e.cursor),c(e.pageSize)}),[]),M=a.useCallback((e=>`/automations/view-modal/${e}?showBackButton=true`),[]),C=a.useMemo((()=>Yoe({automationName:TD("engage:broadcast"),setUrl:M,onToggle:A,pillForStatus:!0})),[A,M]);return n.jsxs("div",{className:"w-full h-[75vh] flex flex-col",children:[n.jsx("div",{className:"flex-grow min-h-0 p-2",children:n.jsx(R7,{data:S,columns:C,paginationMode:"cursor",initialPageSize:u,headerActions:n.jsxs(i3,{className:"bg-primary",onClick:()=>i(!0),children:[n.jsx(VB,{className:"h-4 w-4 mr-1"}),"New"]}),isLoading:v&&!b,cursorPaginationQueryResult:{nextCursor:f,isLoading:v,isFetching:k,isPlaceholderData:b},onRowClick:e=>{l(`/automations/view-modal/${e.id}?showBackButton=true`)},onQueryParametersChange:w,searchValue:h,onSearchChange:p})}),n.jsx(DPe,{open:t,setOpen:i,onClose:a=>{Goe(i,e,a,`Error creating ${TD("engage:broadcast")}`,"Please try again"),m(void 0),c(10),p(""),!1!==a&&l(`/automations/view-modal/${a}?showBackButton=true`)},automationType:ca.ONE_TIME})]})}function Bje(){const{toast:e}=Je(),[t,i]=a.useState(!1),[r,o]=a.useState(null),[s,l]=a.useState(10),[u,c]=a.useState(void 0),[d,m]=a.useState(""),{segments:h,isLoading:p,nextCursor:g,isFetching:f,isPlaceholderData:v}=V2({search:d||void 0,cursor:u,limit:s}),y=a.useCallback((e=>{o(e),i(!0)}),[o]),k=a.useMemo((()=>function(e){return[Joe("name",`${TD("engage:segment")} Name`,!0),Uoe(),Ioe({accessorKey:"user_count",header:TD("engage:user_other"),meta:{align:"right",displayName:TD("engage:user_other")},cellClassName:"text-muted-foreground pr-4",cellFormatter:e=>{const a=e.getValue()??0;return`${a.toLocaleString()} ${TD("engage:user",{count:a}).toLowerCase()}`}}),Woe("updated_at"),$oe(e||(()=>{}))]}(y)),[y]),b=a.useMemo((()=>h?h.map((e=>({...e,updated_at:e.createdAt.toString(),user_count:e.userCount,user_count_updated_at:e.userCountUpdatedAt}))):[]),[h]),S=a.useMemo((()=>n.jsxs(i3,{onClick:()=>{o(null),i(!0)},children:[n.jsx(VB,{className:"h-4 w-4"}),"New"]})),[]),A=a.useCallback((e=>{c(e.cursor),l(e.pageSize)}),[]);return n.jsxs("div",{className:"w-full h-[75vh] flex flex-col",children:[n.jsx("div",{className:"flex-grow min-h-0 p-2",children:n.jsx(R7,{data:b,columns:k,paginationMode:"cursor",initialPageSize:s,headerActions:S,isLoading:p&&!v,cursorPaginationQueryResult:{nextCursor:g,isLoading:p,isFetching:f,isPlaceholderData:v},onQueryParametersChange:A,onRowClick:a=>{if(a.type===Z2.CUSTOM)o(a.id),i(!0);else{let n;switch(a.type){case Z2.ALL_USERS:n="All users";break;case Z2.MANAGED:n="Managed";break;default:throw Fne(a.type,Z2)}e({title:`${n} ${TD("engage:segment").toLowerCase()} cannot be edited`})}},searchValue:d,onSearchChange:m})}),n.jsx(pPe,{open:t,setOpen:i,segmentId:r??void 0,onSegmentUpdated:a=>{Goe(i,e,a,`Error creating ${TD("engage:segment")}`,"Please try again"),c(void 0),l(10),m("")}})]})}const Rje=()=>{const e=ce(),[t,i]=a.useState(!1),r=dj()["show-engage-onboarding"]??!1,[o,s]=a.useState(r),[l,u]=a.useState(null),{automations:c,isLoading:d}=la({triggerTypes:[ca.TRIGGER_BASED,ca.DATE_BASED]}),[m,h]=a.useState();return a.useEffect((()=>{e.prefetchQuery({queryKey:Re.list()}),e.prefetchQuery({queryKey:G2.lists()})}),[e]),a.useEffect((()=>{if(d||void 0===c)return;const e=[{id:"broadcasts",label:TD("engage:broadcast",{count:2}),content:n.jsx(Lje,{})},{id:"segments",label:TD("engage:segment",{count:2}),content:n.jsx(Bje,{})},{id:"statistics",label:TD("engage:insight",{count:2}),content:n.jsx(_je,{includeSales:!1,includeSms:!0})}];c.length>0?(u("automations"),h([{id:"automations",label:TD("engage:automation",{count:2}),content:n.jsx(jje,{})},...e])):(u("broadcasts"),h(e))}),[c,d]),null===l||null==m?n.jsx("div",{className:"w-full h-full flex justify-center items-center",children:n.jsx(Tq,{})}):n.jsxs("div",{className:"w-full h-full flex flex-col gap-4",children:[r&&n.jsx(Mje,{open:o,onClose:()=>s(!1),children:n.jsx(wje,{})}),n.jsx(pje,{open:t,setOpen:i,children:n.jsx(hje,{})}),n.jsx("div",{className:"flex justify-end",children:n.jsx(i3,{variant:"outline",onClick:()=>i(!0),children:n.jsx(ZB,{className:"w-4 h-4"})})}),n.jsx("div",{className:"flex-1 w-full h-full flex flex-col gap-4",children:n.jsx(KPe,{activeTab:l,tabs:m,onTabChange:u})})]})};function zje({open:e,onOpenChange:a}){const t=Q2(),{toast:i}=Je(),{updateAutomation:r,isUpdating:o}=oa(t?.id||""),s=TD(t?.triggerType===ca.ONE_TIME?"engage:broadcast":"engage:automation");return n.jsx(pq,{open:e,onOpenChange:a,children:n.jsxs(yq,{className:"sm:max-w-[425px]",children:[n.jsx(kq,{children:n.jsx(Sq,{children:"Archive Automation"})}),n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{className:"text-sm text-gray-600",children:["Are you sure you want to archive"," ",n.jsxs("span",{className:"font-semibold text-gray-900",children:['"',t?.name,'"']}),"?"]}),n.jsxs("div",{className:"text-sm text-gray-500 bg-amber-50 border border-amber-200 rounded-lg p-3",children:[n.jsx("p",{className:"font-medium text-amber-800 mb-1",children:"What happens when you archive:"}),n.jsxs("ul",{className:"text-amber-700 space-y-1",children:[n.jsx("li",{children:"• The automation will be hidden from your main list"}),n.jsx("li",{children:"• Historical data and settings are preserved"})]})]}),n.jsxs(bq,{className:"gap-2",children:[n.jsx(i3,{variant:"outline",onClick:()=>a(!1),disabled:o,children:"Cancel"}),n.jsx(i3,{variant:"destructive",onClick:async function(){t?r({status:pa.ARCHIVED},{onSuccess:()=>{i({title:`${s} archived`,description:`"${t.name}" has been successfully archived.`}),a(!1)},onError:()=>{i({title:"Error archiving!",description:"Please contact your administrator.",variant:"destructive"})}}):i({title:"Error archiving automation",description:"Please try again.",variant:"destructive"})},disabled:o,children:o?"Archiving...":"Archive Automation"})]})]})]})})}function Dje({value:e,schema:t,onSubmit:i,fieldName:r,className:o,successMessage:s="Updated successfully",errorMessage:l="Failed to update",placeholderText:u}){const[c,d]=a.useState(!1),[m,h]=a.useState(!1),[p,g]=a.useState(0),[f,v]=a.useState(0),[y,k]=a.useState(e),[b,S]=a.useState(e),A=a.useRef(null),w=a.useRef(null),M=a.useRef(null),C=a.useRef(null),{toast:T}=Je(),x=HSe({resolver:PAe(t),defaultValues:{[r]:e}});a.useEffect((()=>{x.reset({[r]:e}),k(e),S(e)}),[e,r,x]),a.useEffect((()=>{w.current&&g(w.current.offsetWidth),C.current&&!c&&v(C.current.offsetWidth)}),[c]),a.useEffect((()=>{M.current&&y&&g(M.current.offsetWidth)}),[y]),a.useEffect((()=>{c&&A.current&&(A.current.focus(),A.current.select())}),[c]);const N=async e=>{h(!0);const a=e[r];try{await i(e),S(a),T({variant:"success",title:s}),d(!1)}catch(n){T({variant:"destructive",title:l})}finally{h(!1)}},E=()=>{x.reset(),d(!1),k(b)},_=e=>{"Escape"===e.key&&E()};return c?n.jsx(ISe,{...x,children:n.jsxs("form",{onSubmit:x.handleSubmit(N),className:hq("inline-flex items-center gap-2 min-h-[20px]",o),style:{minWidth:f?`${f}px`:"auto"},children:[n.jsx("span",{ref:M,className:"absolute invisible whitespace-pre leading-none select-none pointer-events-none",style:{font:"inherit"},children:y||b}),n.jsx(FSe,{control:x.control,name:r,render:({field:e})=>n.jsx(USe,{className:"flex-1 min-w-0",children:n.jsx(qSe,{children:n.jsx("input",{...e,ref:A,style:{width:`${Math.max(p+40,120)}px`,minWidth:`${Math.max(p,100)}px`,font:"inherit"},className:"bg-transparent outline-none leading-none h-[20px] border-none p-0 m-0",onChange:a=>{e.onChange(a),k(a.target.value)},onKeyDown:_,disabled:m,onBlur:a=>{e.onBlur(),setTimeout((()=>{const e=a.currentTarget.form;e&&!e.contains(document.activeElement)&&E()}),0)}})})})}),n.jsxs("div",{className:"flex items-center gap-1 flex-shrink-0",children:[n.jsx(i3,{type:"button",size:"icon",variant:"ghost",className:"h-5 w-5 p-0",onClick:E,disabled:m,children:n.jsx(mR,{className:"h-3 w-3"})}),n.jsx(i3,{type:"button",size:"icon",variant:"ghost",className:"h-5 w-5 p-0",disabled:m,onClick:()=>{x.handleSubmit(N)()},children:m?n.jsx(EB,{className:"h-3 w-3 animate-spin"}):n.jsx(sB,{className:"h-3 w-3"})})]})]})}):n.jsxs("button",{ref:C,type:"button",className:hq("group relative inline-flex items-center gap-2 cursor-pointer min-h-[20px] bg-transparent border-none p-0 text-left",o),onClick:()=>d(!0),onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),d(!0))},"aria-label":"Edit field",children:[n.jsx("span",{ref:w,className:hq("leading-none select-none",o,{italic:!b}),children:b||u}),n.jsx(IB,{className:"h-3 w-3 transition-opacity duration-200 flex-shrink-0 opacity-0 group-hover:opacity-100"})]})}function Oje({open:e,onOpenChange:a}){const t=Q2(),{toast:i}=Je(),{updateAutomation:r}=oa(t?.id||""),o=ce();return n.jsx(pq,{open:e,onOpenChange:a,children:n.jsxs(yq,{className:"sm:max-w-[425px]",children:[n.jsx(kq,{children:n.jsx(Sq,{children:t?.status===pa.SENDING?`Cancel ${TD("engage:automation")}`:`Cancel ${TD("engage:automation")} Before Sending`})}),n.jsx("div",{className:"space-y-4",children:t?n.jsxs(n.Fragment,t.status===pa.SENDING?{children:[n.jsxs("p",{className:"text-sm text-muted-foreground",children:["We'll help you cancel your",n.jsx("span",{className:"font-bold px-1 text-primary",children:t.name}),TD("engage:automation")," as soon as possible."]}),n.jsxs("div",{className:"rounded-lg bg-muted p-4 text-sm",children:[n.jsx("p",{className:"font-medium mb-2",children:"What happens next?"}),n.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[n.jsxs("li",{children:["We'll attempt to cancel the"," ",TD("engage:broadcast").toLowerCase()]}),n.jsx("li",{children:"Any messages already in the process of being sent will be delivered"}),n.jsxs("li",{children:["Future ",TD("engage:broadcast").toLowerCase()," messages will be cancelled"]}),n.jsxs("li",{children:["You can create a new ",TD("engage:broadcast").toLowerCase()," if needed"]})]})]})]}:{children:[n.jsxs("p",{className:"text-sm text-muted-foreground",children:["We'll help you cancel your",n.jsx("span",{className:"font-bold px-1 text-primary",children:t.name}),TD("engage:automation")," before it starts sending."]}),n.jsxs("div",{className:"rounded-lg bg-muted p-4 text-sm",children:[n.jsx("p",{className:"font-medium mb-2",children:"What happens next?"}),n.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[n.jsx("li",{children:"The automation will be cancelled"}),n.jsx("li",{children:"You can create a new automation if needed"})]})]})]}):null}),n.jsxs(bq,{className:"gap-2 sm:gap-0",children:[n.jsx(i3,{variant:"outline",onClick:()=>a(!1),children:"Continue Running"}),n.jsxs(i3,{variant:"destructive",onClick:()=>{if(!t)return;const e=t.status===pa.SENDING?pa.PARTIALLY_CANCELLED:pa.CANCELLED,n=t.status===pa.SENDING?`Attempting to cancel ${TD("engage:broadcast").toLowerCase()}`:`Successfully cancelled ${TD("engage:broadcast").toLowerCase()}`,s=`Failed to cancel ${TD("engage:broadcast").toLowerCase()}`;r({status:e},{onError:()=>{i({title:s,description:"Please contact your administrator.",variant:"destructive"}),o.invalidateQueries({queryKey:Re.all})},onSuccess:()=>{a(!1),i({title:n,description:t.status===pa.SENDING?`We'll attempt to cancel your ${TD("engage:broadcast").toLowerCase()}. Any messages already in progress will be delivered.`:`Your ${TD("engage:broadcast").toLowerCase()} has been cancelled.`})}})},children:["Cancel ",TD("engage:automation")]})]})]})})}function Kje({open:e,onOpenChange:a,setIsActive:t}){const i=Q2(),{updateAutomation:r}=oa(i?.id||""),{toast:o}=Je(),s=ce(),l=TD(i?.triggerType===ca.ONE_TIME?"engage:broadcast":"engage:automation"),u=i?.triggerType===ca.ONE_TIME?"Unschedule":`Pause ${l}`;return n.jsx(pq,{open:e,onOpenChange:a,children:n.jsxs(yq,{className:"sm:max-w-[425px]",children:[n.jsx(kq,{children:n.jsx(Sq,{children:u})}),n.jsxs("div",{children:[i?.triggerType===ca.ONE_TIME?"Are you sure you want to unschedule the":"Are you sure you want to pause the",n.jsx("span",{className:"font-bold px-1 text-primary",children:i?.name})," ",l,"?"]}),n.jsxs(bq,{className:"gap-2 sm:gap-0",children:[n.jsx(i3,{variant:"outline",onClick:()=>a(!1),children:"Cancel"}),n.jsx(i3,{variant:"destructive",onClick:()=>{r({status:pa.DRAFT},{onSuccess:()=>{o({title:`Updated ${l}`,description:`${l} status updated`}),a(!1),t(!1)},onError:()=>{o({title:`Failed to update ${l}`,description:"Please try again"}),s.invalidateQueries({queryKey:Re.all})}})},children:u})]})]})})}const Hje=dre({name:Yie().min(2,"Title must be at least 2 characters"),description:Yie()});function Ije({open:e,onOpenChange:a,onDuplicationCreated:t}){const i=Q2(),{toast:r}=Je(),o=HSe({resolver:PAe(Hje),defaultValues:{name:`${i?.name} (copy)`,description:i?.description??""}}),{duplicateAutomation:s}=ua();return n.jsx(pq,{open:e,onOpenChange:a,children:n.jsxs(yq,{className:"sm:max-w-[425px]",children:[n.jsx(kq,{children:n.jsx(Sq,{children:"Duplicate Automation"})}),n.jsx(ISe,{...o,children:n.jsxs("form",{onSubmit:o.handleSubmit((async function(e){i&&e.name?s({automationId:i.id,name:e.name,description:e.description},{onSuccess:e=>{e.id&&(t?.(e.id),a(!1))}}):r({title:"Error duplicating automation",description:"Please try again. Please make sure to fill in the name of the automation."})})),className:"space-y-4",children:[n.jsxs("div",{children:["Create a copy of the",n.jsx("span",{className:"font-bold px-1 text-primary",children:i?.name}),"automation with a new title and description."]}),n.jsx(FSe,{control:o.control,name:"name",render:({field:e})=>n.jsxs(USe,{children:[n.jsx(WSe,{children:"Title"}),n.jsx(qSe,{children:n.jsx(L7,{...e})}),n.jsx(ZSe,{})]})}),n.jsx(FSe,{control:o.control,name:"description",render:({field:e})=>n.jsxs(USe,{children:[n.jsx(WSe,{children:"Description"}),n.jsx(qSe,{children:n.jsx(dPe,{...e})}),n.jsx(ZSe,{})]})}),n.jsx(bq,{children:n.jsx(i3,{type:"submit",children:"Duplicate"})})]})})]})})}const Gje=dre({name:Yie().min(2,"Title must be at least 2 characters")}),Fje=dre({description:Yie().max(300,"Description must be less than 300 characters")}),Vje=({showBackButton:e,onDuplicationCreated:t,onBeforeSchedule:i})=>{const r=Q2(),o=Lee(),{updateAutomation:s}=oa(r?.id||""),{toast:l}=Je(),u=(()=>{const{state:e}=Y2();return e.recipientStats})(),c=X2(),{data:d}=rte(),{channelSenders:m}=ate(),{channelAccounts:h}=Qne(),p=ce(),[g,f]=a.useState(void 0),[v,y]=a.useState(!1),[k,b]=a.useState(!1),[S,A]=a.useState(!1),[w,M]=a.useState(!1),[C,T]=a.useState(0),[x,N]=a.useState(!1),E=Kre({channelSenders:m?.results??[],channelAccounts:h?.results??[],smsApplication:d});a.useEffect((()=>{if(r)switch(r.status){case pa.DRAFT:f(!1);break;case pa.ACTIVE:case pa.RUNNING:case pa.COMPLETED:f(!0);break;case pa.FAILED:case pa.DEACTIVATED:f(!1);break;case pa.SENDING:case pa.SCHEDULED:f(!0);break;case pa.PARTIALLY_CANCELLED:case pa.CANCELLED:case pa.ARCHIVED:f(!1);break;default:throw Fne(r.status,pa)}}),[r]);const _=TD(r?.triggerType===ca.ONE_TIME?"engage:broadcast":"engage:automation"),P=a.useCallback((()=>{M(!0),s({status:pa.DRAFT},{onSuccess:()=>{f(!1),M(!1),l({title:`${_} activation undone`,description:"The automation will remain in draft status"})},onError:()=>{M(!1),l({title:"Error while updating the status",description:"Please refresh and try again",variant:"destructive"}),p.invalidateQueries({queryKey:Re.all})}})}),[_,s,p,l]),j=a.useCallback((()=>{if(!r)return l({title:`${_} not found`,description:"Please contact your administrator",variant:"destructive"}),null;const e=async e=>{if(g&&!e)A(!0);else{if(i&&!0===e){let e=0;for(;!u&&e<20;)await new Promise((e=>setTimeout(e,100))),e++;if(!u)return void l({title:"Error while updating the status",description:"Please contact your administrator",variant:"destructive"});const a=await i({estimatedEmailRecipients:u?.emails??0,estimatedSmsRecipients:u?.phones??0});if(!0!==a)return void l({title:"Error while updating the status",description:a,variant:"destructive"})}if(c?.emailChannelSenderId&&c?.emailHtmlBody&&c?.emailHtmlBody?.includes(NPe)){if(0===C)return l({title:`${EPe}. You can click send again to send anyway.`,variant:"warning"}),void T(C+1);T(C+1)}switch(r.triggerType){case ca.ONE_TIME:if(!r.triggerMetadata||!("scheduledAt"in r.triggerMetadata)||!r.triggerMetadata?.scheduledAt)return void l({title:"Ensure you have selected a scheduled time",variant:"destructive"});if(!c||!c.emailChannelSenderId&&!c.smsChannelSenderId)return void l({title:"Ensure you have selected at least one kind of communication",variant:"destructive"});break;case ca.TRIGGER_BASED:case ca.DATE_BASED:break;default:throw Fne(r.triggerType,ca)}e?(M(!0),s({status:pa.SENDING},{onSuccess:()=>{f(!0),M(!1),l({title:`${_} activation started`,variant:"default",action:n.jsx(dz,{altText:"Undo Activate",onClick:P,className:"bg-blue-50 text-blue-700 border border-blue-200 hover:bg-blue-100 transition-colors duration-150 rounded-md px-3 py-1.5 font-medium shadow-sm",children:"Undo"})})},onError:()=>{l({title:"Error while updating the status",description:"Please contact your administrator",variant:"destructive"}),M(!1),p.invalidateQueries({queryKey:Re.all})}})):(M(!0),s({status:e?pa.ACTIVE:pa.DEACTIVATED},{onSuccess:()=>{f(e),l(r.triggerType===ca.ONE_TIME?e?{title:`${_} started!`}:{title:`${_} has been unscheduled`}:{title:`${_} status updated to ${e?"active":"inactive"}`}),M(!1)},onError:()=>{l({title:"Error while updating the status",description:"Please contact your administrator",variant:"destructive"}),M(!1),p.invalidateQueries({queryKey:Re.all})}}))}};if(!r||!c)return null;const a=E.find((e=>e.channelSender.id===c?.smsChannelSenderId)),t=!r.triggerMetadata||null===r.triggerMetadata,o=r.triggerMetadata?.triggerType===ca.ONE_TIME&&!r.triggerMetadata?.scheduledAt,d=!c?.emailChannelSenderId&&!c?.smsChannelSenderId,m=r.triggerType===ca.ONE_TIME,h=m&&a&&a?.smsApplication?.application&&a?.smsApplication?.status!==Ore.APPROVED,v=c?.emailChannelSenderId&&(!c?.emailSubject||!c?.emailHtmlBody),y=c?.smsChannelSenderId&&!c?.smsMessageBody,k=m&&(!r.triggerMetadata||!("scheduledAt"in r.triggerMetadata)||!r.triggerMetadata?.scheduledAt);let b,S=!1,w=!0;switch(r.status){case pa.ACTIVE:S=!1;break;case pa.DRAFT:(d||v||y)&&(S=!0,v&&(b="Missing subject in email communication"),y&&(b="Missing SMS message in SMS communication")),k&&(S=!0),h&&(S=!0);break;case pa.DEACTIVATED:case pa.PARTIALLY_CANCELLED:case pa.CANCELLED:switch(S=!0,w=!1,r.status){case pa.DEACTIVATED:b="Automation is deactivated";break;case pa.PARTIALLY_CANCELLED:b="Automation is partially cancelled";break;case pa.CANCELLED:b="Automation is cancelled";break;default:throw Fne(r.status,pa)}break;case pa.RUNNING:S=!0,r.triggerType===ca.TRIGGER_BASED?(b=`Cannot change status of running ${_}`,w=!0):w=r.triggerType===ca.ONE_TIME&&r.status===pa.RUNNING;break;case pa.COMPLETED:S=!0,b=`Cannot change status of completed ${_}`,w=!1;break;case pa.FAILED:S=!0,b=`Cannot change status of failed ${_}`,w=!1;break;case pa.SENDING:case pa.SCHEDULED:S=!1,w=!0;break;case pa.ARCHIVED:S=!0,b=`Cannot change status of archived ${_}`,w=!1;break;default:throw Fne(r.status,pa)}const x=(()=>{switch(r.triggerType){case ca.DATE_BASED:case ca.TRIGGER_BASED:return n.jsxs("div",{className:"flex items-center gap-2 w-[12ch] cursor-pointer",children:[n.jsx(g?sB:kB,{className:"w-4 h-4"}),n.jsx("div",{className:"text-[13px] font-medium",children:g?"Active":"Inactive"}),n.jsx(nPe,{checked:g,onCheckedChange:e,disabled:S})]});case ca.ONE_TIME:if((r.status===pa.RUNNING||r.status===pa.SCHEDULED||r.status===pa.SENDING)&&r.triggerType===ca.ONE_TIME)return n.jsx(i3,{variant:"outline",className:"flex items-center gap-2",onClick:()=>N(!0),disabled:!1,children:"Cancel"});if(t||o||d||h||v||y){return n.jsx("div",{className:"flex items-center gap-2 cursor-not-allowed",children:(()=>{const a=r.triggerMetadata&&"scheduledAt"in r.triggerMetadata&&"now"===r.triggerMetadata?.scheduledAt?`Start ${_}`:"Schedule Send";if(r.status!==pa.DRAFT&&r.triggerMetadata&&"scheduledAt"in r.triggerMetadata&&"now"!==r.triggerMetadata?.scheduledAt&&r.status===pa.ACTIVE)return n.jsx(i3,{variant:"outline",className:"flex items-center gap-2",onClick:()=>e(!g),disabled:S,children:r.triggerType===ca.ONE_TIME?"Unschedule":"Convert to Draft"});const t=[];h&&t.push("The SMS number selected is still not approved"),k&&t.push("Please select a schedule time on the left sidebar"),d&&t.push("Please add at least one sender"),v&&t.push("Please add a subject to your email communication"),y&&t.push("Please add a message to your SMS communication");const i=t.map((e=>{return(a=e)?a.charAt(0).toUpperCase()+a.slice(1):a;var a})),o=`You cannot start this ${TD("engage:broadcast").toLowerCase()} yet. ${i.join(" · ")}`;return n.jsx("div",{className:"flex items-center gap-2",children:n.jsx(cse,{alertText:o,asChild:!1,className:"!cursor-not-allowed",children:n.jsx("div",{className:"px-4 py-2 rounded border border-input bg-background text-muted-foreground cursor-not-allowed text-sm font-medium",children:n.jsx("span",{children:a})})})})})()})}if(!g){let a="Schedule Send";return r.triggerMetadata&&r.triggerMetadata.triggerType===ca.ONE_TIME&&r.triggerMetadata.scheduledAt&&"now"===r.triggerMetadata.scheduledAt&&(a=`Start ${_}`),n.jsx(i3,{variant:"default",className:"flex items-center gap-2",onClick:()=>e(!g),disabled:S,children:a})}return n.jsx(i3,{variant:"outline",className:"flex items-center gap-2",onClick:()=>e(!g),disabled:S,children:r.triggerType===ca.ONE_TIME?"Unschedule":"Convert to Draft"});default:throw Fne(r.triggerType,ca)}})();return S&&b&&r.triggerType===ca.TRIGGER_BASED?n.jsx(cse,{alertText:b,asChild:!0,children:n.jsx("div",{className:"flex items-center gap-2",children:w&&x})}):n.jsx("div",{className:"flex items-center gap-2",children:w&&x})}),[r,c,E,l,g,_,i,s,u,C,p,P]),L=a.useMemo((()=>r?n.jsx(k3,{variant:Foe(r.status),children:Vne({status:r.status,automationType:r.triggerType,vsaasManaged:r.automationType===ma.MANAGED})}):null),[r]);return r&&void 0!==g?n.jsxs("header",{className:"flex px-1 pt-1",children:[n.jsxs("div",{className:"flex items-center gap-4 flex-1",children:[e&&n.jsx(i3,{variant:"ghost",size:"icon",onClick:()=>o(-1),children:n.jsx(eB,{})}),n.jsx("div",{className:"flex items-center gap-2",children:n.jsxs("div",{className:"flex flex-col gap-0 items-start",children:[n.jsx(Dje,{value:r.name,schema:Gje,onSubmit:e=>{s({name:e.name},{onError:()=>{l({title:`Failed to update ${_} name`,description:"Please try again",variant:"destructive"}),p.invalidateQueries({queryKey:Re.all})}})},fieldName:"name",className:"text-lg",successMessage:`${_} name updated`,errorMessage:`Failed to update ${_.toLowerCase()} name`}),r.automationType!==ma.MANAGED?n.jsx(Dje,{value:r.description||"",schema:Fje,onSubmit:e=>{s({description:e.description},{onError:()=>{l({title:`Failed to update ${_.toLowerCase()} description`,description:"Please try again",variant:"destructive"}),p.invalidateQueries({queryKey:Re.all})}})},fieldName:"description",className:"text-sm "+(r.description?"text-current":"text-muted-foreground"),successMessage:"Description updated",errorMessage:"Failed to update description",placeholderText:`Describe the goal of the ${_.toLowerCase()}`}):r.description&&n.jsx("div",{className:"text-sm text-current",children:r.description})]})})]}),n.jsxs("div",{className:"ml-auto flex gap-4 items-center",children:[n.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground",children:[L,r.triggerType===ca.ONE_TIME&&n.jsxs(n.Fragment,{children:[n.jsx("div",{role:"button",tabIndex:0,className:"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 hover:bg-accent hover:text-accent-foreground h-10 w-10 cursor-pointer",onClick:()=>y(!0),children:n.jsx(cse,{title:"Duplicate",Icon:l3.DuplicateIcon,asChild:!1,onClick:()=>y(!0)})}),r.status===pa.COMPLETED||r.status===pa.DRAFT&&n.jsx("div",{role:"button",tabIndex:0,className:"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 hover:bg-accent hover:text-accent-foreground h-10 w-10 cursor-pointer",onClick:()=>b(!0),children:n.jsx(cse,{title:"Archive",Icon:l3.ArchiveIcon,asChild:!1,onClick:()=>b(!0)})})]})]}),n.jsx("div",w?{className:"flex items-center text-muted-foreground pr-2",children:n.jsx(Tq,{size:"sm"})}:{className:"flex items-center",children:j()})]}),n.jsx(Ije,{open:v,onOpenChange:y,onDuplicationCreated:t}),n.jsx(Kje,{open:S,onOpenChange:A,setIsActive:f}),n.jsx(Oje,{open:x,onOpenChange:N}),n.jsx(zje,{open:k,onOpenChange:b})]}):null},Jje=()=>{const e=Q2(),{isLoading:t}=sa(e?.id),{state:{hideSales:i,hideSms:r}}=a.useContext(wq);return!e||t?n.jsx(Tq,{text:[`Fetching ${TD("engage:insight",{count:2})}`,"Finishing up"]}):n.jsx("div",{className:"h-full p-4",children:n.jsx(_je,{automationId:e.id,automation:e,includeSales:!i,includeSms:!r})})},Uje=()=>{const e=Q2(),[t,i]=a.useState(10),[r,o]=a.useState(void 0),[s,l]=a.useState(""),{sentCommunications:u,isLoading:c,isFetching:d,isPlaceholderData:m,fetchError:h}=ia({automationId:e?.id??"",cursor:r,limit:t,search:s||void 0}),p=a.useCallback((e=>{o(e.cursor),i(e.pageSize)}),[]),g=[{accessorKey:"communicationsSent",id:"lastCommunication",header:"Sent At",cell:({row:e})=>e.original.communicationJobCreatedAt?n.jsx("div",{className:"flex items-center gap-2",children:n.jsx("span",{className:"text-sm text-gray-600",children:Ooe(new Date(e.original.communicationJobCreatedAt),"MMM d, yyyy h:mm a")})}):n.jsx("span",{className:"text-gray-400",children:"Not available"})},{accessorFn:e=>`${e.firstName||""} ${e.lastName||""}`.trim(),id:"name",header:"Name",cell:({row:e})=>{const a=`${e.original.firstName||""} ${e.original.lastName||""}`.trim();return a||n.jsx("span",{className:"text-gray-400",children:"Not provided"})}},{accessorKey:"email",header:"Email",cell:({row:e})=>e.original.email||n.jsx("span",{className:"text-gray-400",children:"Not provided"})},{accessorKey:"phone",header:"Phone",cell:({row:e})=>e.original.phone?yxe(e.original.phone):n.jsx("span",{className:"text-gray-400",children:"Not provided"})},{accessorKey:"communicationsSent",id:"communicationsSent",header:"Communications Sent",cell:({row:e})=>{const a=e.original.communicationsSent||[],t=a.filter((e=>e.type===ga.EMAIL)),i=a.filter((e=>e.type===ga.SMS)),r=t.length>0,o=i.length>0,s=t.some((e=>e.delivered)),l=i.some((e=>e.delivered)),u=t.find((e=>e.error))?.error,c=i.find((e=>e.error))?.error,d=t.some((e=>e.skipped)),m=i.some((e=>e.skipped)),h=(e,a,t,i)=>n.jsxs("div",{className:"flex items-center gap-1.5 cursor-pointer",children:[n.jsxs("div",{className:"relative",children:[n.jsx("email"===e?l3.EmailIcon:l3.SmsIcon,{className:"h-4 w-4 "+(t?"text-red-500":i?"text-gray-400":a?"text-green-500":"text-gray-400")}),a&&!t&&!i&&n.jsx("div",{className:"absolute -right-1 -top-1 h-2 w-2 rounded-full bg-green-500 ring-1 ring-white"}),t&&n.jsx("div",{className:"absolute -right-1 -top-1 h-2 w-2 rounded-full bg-red-500 ring-1 ring-white"}),i&&n.jsx("div",{className:"absolute -right-1 -top-1 h-2 w-2 rounded-full bg-gray-400 ring-1 ring-white"})]}),n.jsxs("div",{className:"flex flex-col",children:[n.jsx("span",{className:"text-sm font-medium",children:"email"===e?"Email":"SMS"}),n.jsx("span",t?{className:"text-xs text-red-500",children:"Failed"}:i?{className:"text-xs text-gray-500",children:"Skipped"}:{className:"text-xs "+(a?"text-green-600":"text-gray-500"),children:a?"Delivered":"Pending"})]})]});return n.jsxs("div",{className:"flex items-center gap-3",children:[r&&(u?n.jsx(cse,{title:u,children:h("email",s,u,d)}):h("email",s,u,d)),r&&o&&n.jsx("div",{className:"h-8 w-px bg-gray-200"}),o&&(c?n.jsx(cse,{title:c,children:h("sms",l,c,m)}):h("sms",l,c,m)),!r&&!o&&n.jsx("span",{className:"text-sm text-gray-400",children:"None"})]})}}];return e&&!c&&u?h?n.jsxs("div",{children:["Error: ",h.message]}):!u||!s&&0===u.results.length?n.jsxs("div",{className:"flex flex-col items-center justify-center p-8 text-center",children:[n.jsx("div",{className:"mb-4",children:n.jsx(l3.UserIcon,{className:"h-12 w-12 text-gray-400"})}),n.jsx("h3",{className:"mb-2 text-lg font-semibold text-gray-700",children:"No Communications Sent Yet"}),n.jsxs("p",{className:"text-gray-500",children:["This"," ",TD(e.triggerType===ca.ONE_TIME?"engage:broadcast":"engage:automation")," ","hasn't sent any communications yet. Please check back later to see recipient details once communications have been sent."]})]}):n.jsx("div",{className:"w-full h-[75vh] flex flex-col",children:n.jsx("div",{className:"flex-grow min-h-0 p-4",children:n.jsx(R7,{data:u?.results||[],columns:g,paginationMode:"cursor",initialPageSize:t,isLoading:c&&!m,cursorPaginationQueryResult:{nextCursor:u?.pagination.cursor||null,isLoading:c,isFetching:d,isPlaceholderData:m},onQueryParametersChange:p,searchValue:s,onSearchChange:l})})}):n.jsx(Tq,{text:["Fetching Recipients","Finishing up"]})},Wje=()=>{const e=Q2();return e?e?.triggerType===ca.ONE_TIME&&e?.status===pa.DRAFT?n.jsxs("div",{className:"flex flex-col items-center justify-center p-8 text-center",children:[n.jsx("div",{className:"mb-4",children:n.jsx(l3.UserIcon,{className:"h-12 w-12 text-gray-400"})}),n.jsx("h3",{className:"mb-2 text-lg font-semibold text-gray-700",children:"No Recipients Available Yet"}),n.jsxs("p",{className:"text-gray-500",children:["Recipients will be available once this"," ",TD(e.triggerType===ca.ONE_TIME?"engage:broadcast":"engage:automation")," ","has completed running. Please check back after the automation has finished."]})]}):n.jsx(Uje,{}):n.jsx(Tq,{text:["Fetching Recipients","Finishing up"]})},qje=a.createContext(null);qje.displayName="PanelGroupContext";const Zje="data-panel-group",$je="data-panel-group-direction",Yje="data-panel-group-id",Qje="data-panel",Xje="data-panel-collapsible",eLe="data-panel-id",aLe="data-panel-size",nLe="data-resize-handle",tLe="data-resize-handle-active",iLe="data-panel-resize-handle-enabled",rLe="data-panel-resize-handle-id",oLe="data-resize-handle-state",sLe=a.useLayoutEffect,lLe=r["useId".toString()],uLe="function"==typeof lLe?lLe:()=>null;let cLe=0;function dLe(e=null){const n=uLe(),t=a.useRef(e||n||null);return null===t.current&&(t.current=""+cLe++),null!=e?e:t.current}function mLe({children:e,className:n="",collapsedSize:t,collapsible:i,defaultSize:r,forwardedRef:o,id:s,maxSize:l,minSize:u,onCollapse:c,onExpand:d,onResize:m,order:h,style:p,tagName:g="div",...f}){const v=a.useContext(qje);if(null===v)throw Error("Panel components must be rendered within a PanelGroup container");const{collapsePanel:y,expandPanel:k,getPanelSize:b,getPanelStyle:S,groupId:A,isPanelCollapsed:w,reevaluatePanelConstraints:M,registerPanel:C,resizePanel:T,unregisterPanel:x}=v,N=dLe(s),E=a.useRef({callbacks:{onCollapse:c,onExpand:d,onResize:m},constraints:{collapsedSize:t,collapsible:i,defaultSize:r,maxSize:l,minSize:u},id:N,idIsFromProps:void 0!==s,order:h});a.useRef({didLogMissingDefaultSizeWarning:!1}),sLe((()=>{const{callbacks:e,constraints:a}=E.current,n={...a};E.current.id=N,E.current.idIsFromProps=void 0!==s,E.current.order=h,e.onCollapse=c,e.onExpand=d,e.onResize=m,a.collapsedSize=t,a.collapsible=i,a.defaultSize=r,a.maxSize=l,a.minSize=u,n.collapsedSize===a.collapsedSize&&n.collapsible===a.collapsible&&n.maxSize===a.maxSize&&n.minSize===a.minSize||M(E.current,n)})),sLe((()=>{const e=E.current;return C(e),()=>{x(e)}}),[h,N,C,x]),a.useImperativeHandle(o,(()=>({collapse:()=>{y(E.current)},expand:e=>{k(E.current,e)},getId:()=>N,getSize:()=>b(E.current),isCollapsed:()=>w(E.current),isExpanded:()=>!w(E.current),resize:e=>{T(E.current,e)}})),[y,k,b,w,N,T]);const _=S(E.current,r);return a.createElement(g,{...f,children:e,className:n,id:N,style:{..._,...p},[Yje]:A,[Qje]:"",[Xje]:i||void 0,[eLe]:N,[aLe]:parseFloat(""+_.flexGrow).toFixed(1)})}const hLe=a.forwardRef(((e,n)=>a.createElement(mLe,{...e,forwardedRef:n})));mLe.displayName="Panel",hLe.displayName="forwardRef(Panel)";let pLe=null,gLe=-1,fLe=null;function vLe(e,a){var n,t;const i=function(e,a){if(a){const e=!!(a&_Le),n=!!(a&PLe);if(a&NLe)return e?"se-resize":n?"ne-resize":"e-resize";if(a&ELe)return e?"sw-resize":n?"nw-resize":"w-resize";if(e)return"s-resize";if(n)return"n-resize"}switch(e){case"horizontal":return"ew-resize";case"intersection":return"move";case"vertical":return"ns-resize"}}(e,a);if(pLe!==i){var r;if(pLe=i,null===fLe&&(fLe=document.createElement("style"),document.head.appendChild(fLe)),gLe>=0)null===(r=fLe.sheet)||void 0===r||r.removeRule(gLe);gLe=null!==(n=null===(t=fLe.sheet)||void 0===t?void 0:t.insertRule(`*{cursor: ${i} !important;}`))&&void 0!==n?n:-1}}function yLe(e){return"keydown"===e.type}function kLe(e){return e.type.startsWith("pointer")}function bLe(e){return e.type.startsWith("mouse")}function SLe(e){if(kLe(e)){if(e.isPrimary)return{x:e.clientX,y:e.clientY}}else if(bLe(e))return{x:e.clientX,y:e.clientY};return{x:1/0,y:1/0}}const ALe=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function wLe(e){const a=getComputedStyle(e);return"fixed"===a.position||(!("auto"===a.zIndex||"static"===a.position&&!function(e){var a;const n=getComputedStyle(null!==(a=xLe(e))&&void 0!==a?a:e).display;return"flex"===n||"inline-flex"===n}(e))||(+a.opacity<1||("transform"in a&&"none"!==a.transform||("webkitTransform"in a&&"none"!==a.webkitTransform||("mixBlendMode"in a&&"normal"!==a.mixBlendMode||("filter"in a&&"none"!==a.filter||("webkitFilter"in a&&"none"!==a.webkitFilter||("isolation"in a&&"isolate"===a.isolation||(!!ALe.test(a.willChange)||"touch"===a.webkitOverflowScrolling)))))))))}function MLe(e){let a=e.length;for(;a--;){const n=e[a];if(qLe(n,"Missing node"),wLe(n))return n}return null}function CLe(e){return e&&Number(getComputedStyle(e).zIndex)||0}function TLe(e){const a=[];for(;e;)a.push(e),e=xLe(e);return a}function xLe(e){const{parentNode:a}=e;return a&&a instanceof ShadowRoot?a.host:a}const NLe=1,ELe=2,_Le=4,PLe=8,jLe="coarse"===function(){if("function"==typeof matchMedia)return matchMedia("(pointer:coarse)").matches?"coarse":"fine"}();let LLe=[],BLe=!1,RLe=new Map,zLe=new Map;const DLe=new Set;function OLe(e){const{target:a}=e,{x:n,y:t}=SLe(e);BLe=!0,GLe({target:a,x:n,y:t}),ULe(),LLe.length>0&&(WLe("down",e),e.preventDefault(),ILe(a)||e.stopImmediatePropagation())}function KLe(e){const{x:a,y:n}=SLe(e);if(BLe&&0===e.buttons&&(BLe=!1,WLe("up",e)),!BLe){const{target:t}=e;GLe({target:t,x:a,y:n})}WLe("move",e),VLe(),LLe.length>0&&e.preventDefault()}function HLe(e){const{target:a}=e,{x:n,y:t}=SLe(e);zLe.clear(),BLe=!1,LLe.length>0&&(e.preventDefault(),ILe(a)||e.stopImmediatePropagation()),WLe("up",e),GLe({target:a,x:n,y:t}),VLe(),ULe()}function ILe(e){let a=e;for(;a;){if(a.hasAttribute(nLe))return!0;a=a.parentElement}return!1}function GLe({target:e,x:a,y:n}){LLe.splice(0);let t=null;(e instanceof HTMLElement||e instanceof SVGElement)&&(t=e),DLe.forEach((e=>{const{element:i,hitAreaMargins:r}=e,o=i.getBoundingClientRect(),{bottom:s,left:l,right:u,top:c}=o,d=jLe?r.coarse:r.fine;if(a>=l-d&&a<=u+d&&n>=c-d&&n<=s+d){if(null!==t&&document.contains(t)&&i!==t&&!i.contains(t)&&!t.contains(i)&&function(e,a){if(e===a)throw new Error("Cannot compare node with itself");const n={a:TLe(e),b:TLe(a)};let t;for(;n.a.at(-1)===n.b.at(-1);)e=n.a.pop(),a=n.b.pop(),t=e;qLe(t,"Stacking order can only be calculated for elements with a common ancestor");const i=CLe(MLe(n.a)),r=CLe(MLe(n.b));if(i===r){const e=t.childNodes,a={a:n.a.at(-1),b:n.b.at(-1)};let i=e.length;for(;i--;){const n=e[i];if(n===a.a)return 1;if(n===a.b)return-1}}return Math.sign(i-r)}(t,i)>0){let e=t,a=!1;for(;e&&!e.contains(i);){if((m=e.getBoundingClientRect()).x<(h=o).x+h.width&&m.x+m.width>h.x&&m.y<h.y+h.height&&m.y+m.height>h.y){a=!0;break}e=e.parentElement}if(a)return}LLe.push(e)}var m,h}))}function FLe(e,a){zLe.set(e,a)}function VLe(){let e=!1,a=!1;LLe.forEach((n=>{const{direction:t}=n;"horizontal"===t?e=!0:a=!0}));let n=0;zLe.forEach((e=>{n|=e})),e&&a?vLe("intersection",n):e?vLe("horizontal",n):a?vLe("vertical",n):null!==fLe&&(document.head.removeChild(fLe),pLe=null,fLe=null,gLe=-1)}let JLe=new AbortController;function ULe(){JLe.abort(),JLe=new AbortController;const e={capture:!0,signal:JLe.signal};DLe.size&&(BLe?(LLe.length>0&&RLe.forEach(((a,n)=>{const{body:t}=n;a>0&&(t.addEventListener("contextmenu",HLe,e),t.addEventListener("pointerleave",KLe,e),t.addEventListener("pointermove",KLe,e))})),RLe.forEach(((a,n)=>{const{body:t}=n;t.addEventListener("pointerup",HLe,e),t.addEventListener("pointercancel",HLe,e)}))):RLe.forEach(((a,n)=>{const{body:t}=n;a>0&&(t.addEventListener("pointerdown",OLe,e),t.addEventListener("pointermove",KLe,e))})))}function WLe(e,a){DLe.forEach((n=>{const{setResizeHandlerState:t}=n,i=LLe.includes(n);t(e,i,a)}))}function qLe(e,a){if(!e)throw Error(a)}function ZLe(e,a,n=10){return e.toFixed(n)===a.toFixed(n)?0:e>a?1:-1}function $Le(e,a,n=10){return 0===ZLe(e,a,n)}function YLe(e,a,n){return 0===ZLe(e,a,n)}function QLe({panelConstraints:e,panelIndex:a,size:n}){const t=e[a];qLe(null!=t,`Panel constraints not found for index ${a}`);let{collapsedSize:i=0,collapsible:r,maxSize:o=100,minSize:s=0}=t;if(ZLe(n,s)<0)if(r){n=ZLe(n,(i+s)/2)<0?i:s}else n=s;return n=Math.min(o,n),n=parseFloat(n.toFixed(10))}function XLe({delta:e,initialLayout:a,panelConstraints:n,pivotIndices:t,prevLayout:i,trigger:r}){if(YLe(e,0))return a;const o=[...a],[s,l]=t;qLe(null!=s,"Invalid first pivot index"),qLe(null!=l,"Invalid second pivot index");let u=0;if("keyboard"===r){{const t=e<0?l:s,i=n[t];qLe(i,`Panel constraints not found for index ${t}`);const{collapsedSize:r=0,collapsible:o,minSize:u=0}=i;if(o){const n=a[t];if(qLe(null!=n,`Previous layout not found for panel index ${t}`),YLe(n,r)){const a=u-n;ZLe(a,Math.abs(e))>0&&(e=e<0?0-a:a)}}}{const t=e<0?s:l,i=n[t];qLe(i,`No panel constraints found for index ${t}`);const{collapsedSize:r=0,collapsible:o,minSize:u=0}=i;if(o){const n=a[t];if(qLe(null!=n,`Previous layout not found for panel index ${t}`),YLe(n,u)){const a=n-r;ZLe(a,Math.abs(e))>0&&(e=e<0?0-a:a)}}}}{const t=e<0?1:-1;let i=e<0?l:s,r=0;for(;;){const e=a[i];qLe(null!=e,`Previous layout not found for panel index ${i}`);if(r+=QLe({panelConstraints:n,panelIndex:i,size:100})-e,i+=t,i<0||i>=n.length)break}const o=Math.min(Math.abs(e),Math.abs(r));e=e<0?0-o:o}{let t=e<0?s:l;for(;t>=0&&t<n.length;){const i=Math.abs(e)-Math.abs(u),r=a[t];qLe(null!=r,`Previous layout not found for panel index ${t}`);const s=QLe({panelConstraints:n,panelIndex:t,size:r-i});if(!YLe(r,s)&&(u+=r-s,o[t]=s,u.toPrecision(3).localeCompare(Math.abs(e).toPrecision(3),void 0,{numeric:!0})>=0))break;e<0?t--:t++}}if(function(e,a,n){if(e.length!==a.length)return!1;for(let t=0;t<e.length;t++)if(!YLe(e[t],a[t],n))return!1;return!0}(i,o))return i;{const t=e<0?l:s,i=a[t];qLe(null!=i,`Previous layout not found for panel index ${t}`);const r=i+u,c=QLe({panelConstraints:n,panelIndex:t,size:r});if(o[t]=c,!YLe(c,r)){let a=r-c;let t=e<0?l:s;for(;t>=0&&t<n.length;){const i=o[t];qLe(null!=i,`Previous layout not found for panel index ${t}`);const r=QLe({panelConstraints:n,panelIndex:t,size:i+a});if(YLe(i,r)||(a-=r-i,o[t]=r),YLe(a,0))break;e>0?t--:t++}}}return YLe(o.reduce(((e,a)=>a+e),0),100)?o:i}function eBe({layout:e,panelsArray:a,pivotIndices:n}){let t=0,i=100,r=0,o=0;const s=n[0];qLe(null!=s,"No pivot index found"),a.forEach(((e,a)=>{const{constraints:n}=e,{maxSize:l=100,minSize:u=0}=n;a===s?(t=u,i=l):(r+=u,o+=l)}));return{valueMax:Math.min(i,100-r),valueMin:Math.max(t,100-o),valueNow:e[s]}}function aBe(e,a=document){return Array.from(a.querySelectorAll(`[${rLe}][data-panel-group-id="${e}"]`))}function nBe(e,a,n=document){const t=aBe(e,n).findIndex((e=>e.getAttribute(rLe)===a));return null!=t?t:null}function tBe(e,a,n){const t=nBe(e,a,n);return null!=t?[t,t+1]:[-1,-1]}function iBe(e,a=document){var n;if(a instanceof HTMLElement&&(null==a||null===(n=a.dataset)||void 0===n?void 0:n.panelGroupId)==e)return a;const t=a.querySelector(`[data-panel-group][data-panel-group-id="${e}"]`);return t||null}function rBe(e,a=document){const n=a.querySelector(`[${rLe}="${e}"]`);return n||null}function oBe({committedValuesRef:e,eagerValuesRef:n,groupId:t,layout:i,panelDataArray:r,panelGroupElement:o,setLayout:s}){a.useRef({didWarnAboutMissingResizeHandle:!1}),sLe((()=>{if(!o)return;const e=aBe(t,o);for(let a=0;a<r.length-1;a++){const{valueMax:n,valueMin:t,valueNow:o}=eBe({layout:i,panelsArray:r,pivotIndices:[a,a+1]}),s=e[a];if(null==s);else{const e=r[a];qLe(e,`No panel data found for index "${a}"`),s.setAttribute("aria-controls",e.id),s.setAttribute("aria-valuemax",""+Math.round(n)),s.setAttribute("aria-valuemin",""+Math.round(t)),s.setAttribute("aria-valuenow",null!=o?""+Math.round(o):"")}}return()=>{e.forEach(((e,a)=>{e.removeAttribute("aria-controls"),e.removeAttribute("aria-valuemax"),e.removeAttribute("aria-valuemin"),e.removeAttribute("aria-valuenow")}))}}),[t,i,r,o]),a.useEffect((()=>{if(!o)return;const e=n.current;qLe(e,"Eager values not found");const{panelDataArray:a}=e;qLe(null!=iBe(t,o),`No group found for id "${t}"`);const r=aBe(t,o);qLe(r,`No resize handles found for group id "${t}"`);const l=r.map((e=>{const n=e.getAttribute(rLe);qLe(n,"Resize handle element has no handle id attribute");const[r,l]=function(e,a,n,t=document){var i,r,o,s;const l=rBe(a,t),u=aBe(e,t),c=l?u.indexOf(l):-1;return[null!==(i=null===(r=n[c])||void 0===r?void 0:r.id)&&void 0!==i?i:null,null!==(o=null===(s=n[c+1])||void 0===s?void 0:s.id)&&void 0!==o?o:null]}(t,n,a,o);if(null==r||null==l)return()=>{};const u=e=>{if(!e.defaultPrevented)switch(e.key){case"Enter":{e.preventDefault();const l=a.findIndex((e=>e.id===r));if(l>=0){const e=a[l];qLe(e,`No panel data found for index ${l}`);const r=i[l],{collapsedSize:u=0,collapsible:c,minSize:d=0}=e.constraints;if(null!=r&&c){const e=XLe({delta:YLe(r,u)?d-u:u-r,initialLayout:i,panelConstraints:a.map((e=>e.constraints)),pivotIndices:tBe(t,n,o),prevLayout:i,trigger:"keyboard"});i!==e&&s(e)}}break}}};return e.addEventListener("keydown",u),()=>{e.removeEventListener("keydown",u)}}));return()=>{l.forEach((e=>e()))}}),[o,e,n,t,i,r,s])}function sBe(e,a){if(e.length!==a.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==a[n])return!1;return!0}function lBe(e,a){const n="horizontal"===e,{x:t,y:i}=SLe(a);return n?t:i}function uBe(e,a,n,t,i,r){if(yLe(e)){const a="horizontal"===n;let t=0;t=e.shiftKey?100:null!=i?i:10;let r=0;switch(e.key){case"ArrowDown":r=a?0:t;break;case"ArrowLeft":r=a?-t:0;break;case"ArrowRight":r=a?t:0;break;case"ArrowUp":r=a?0:-t;break;case"End":r=100;break;case"Home":r=-100}return r}return null==t?0:function(e,a,n,t,i){const r="horizontal"===n,o=rBe(a,i);qLe(o,`No resize handle element found for id "${a}"`);const s=o.getAttribute(Yje);qLe(s,"Resize handle element has no group id attribute");let{initialCursorPosition:l}=t;const u=lBe(n,e),c=iBe(s,i);qLe(c,`No group element found for id "${s}"`);const d=c.getBoundingClientRect();return(u-l)/(r?d.width:d.height)*100}(e,a,n,t,r)}function cBe(e,a,n){a.forEach(((a,t)=>{const i=e[t];qLe(i,`Panel data not found for index ${t}`);const{callbacks:r,constraints:o,id:s}=i,{collapsedSize:l=0,collapsible:u}=o,c=n[s];if(null==c||a!==c){n[s]=a;const{onCollapse:e,onExpand:t,onResize:i}=r;i&&i(a,c),u&&(e||t)&&(!t||null!=c&&!$Le(c,l)||$Le(a,l)||t(),!e||null!=c&&$Le(c,l)||!$Le(a,l)||e())}}))}function dBe(e,a){if(e.length!==a.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!=a[n])return!1;return!0}function mBe(e){try{if("undefined"==typeof localStorage)throw new Error("localStorage not supported in this environment");e.getItem=e=>localStorage.getItem(e),e.setItem=(e,a)=>{localStorage.setItem(e,a)}}catch(a){e.getItem=()=>null,e.setItem=()=>{}}}function hBe(e){return`react-resizable-panels:${e}`}function pBe(e){return e.map((e=>{const{constraints:a,id:n,idIsFromProps:t,order:i}=e;return t?n:i?`${i}:${JSON.stringify(a)}`:JSON.stringify(a)})).sort(((e,a)=>e.localeCompare(a))).join(",")}function gBe(e,a){try{const n=hBe(e),t=a.getItem(n);if(t){const e=JSON.parse(t);if("object"==typeof e&&null!=e)return e}}catch(n){}return null}function fBe(e,a,n,t,i){var r;const o=hBe(e),s=pBe(a),l=null!==(r=gBe(e,i))&&void 0!==r?r:{};l[s]={expandToSizes:Object.fromEntries(n.entries()),layout:t};try{i.setItem(o,JSON.stringify(l))}catch(u){}}function vBe({layout:e,panelConstraints:a}){const n=[...e],t=n.reduce(((e,a)=>e+a),0);if(n.length!==a.length)throw Error(`Invalid ${a.length} panel layout: ${n.map((e=>`${e}%`)).join(", ")}`);if(!YLe(t,100)&&n.length>0)for(let r=0;r<a.length;r++){const e=n[r];qLe(null!=e,`No layout data found for index ${r}`);n[r]=100/t*e}let i=0;for(let r=0;r<a.length;r++){const e=n[r];qLe(null!=e,`No layout data found for index ${r}`);const t=QLe({panelConstraints:a,panelIndex:r,size:e});e!=t&&(i+=e-t,n[r]=t)}if(!YLe(i,0))for(let r=0;r<a.length;r++){const e=n[r];qLe(null!=e,`No layout data found for index ${r}`);const t=QLe({panelConstraints:a,panelIndex:r,size:e+i});if(e!==t&&(i-=t-e,n[r]=t,YLe(i,0)))break}return n}const yBe={getItem:e=>(mBe(yBe),yBe.getItem(e)),setItem:(e,a)=>{mBe(yBe),yBe.setItem(e,a)}},kBe={};function bBe({autoSaveId:e=null,children:n,className:t="",direction:i,forwardedRef:r,id:o=null,onLayout:s=null,keyboardResizeBy:l=null,storage:u=yBe,style:c,tagName:d="div",...m}){const h=dLe(o),p=a.useRef(null),[g,f]=a.useState(null),[v,y]=a.useState([]),k=function(){const[e,n]=a.useState(0);return a.useCallback((()=>n((e=>e+1))),[])}(),b=a.useRef({}),S=a.useRef(new Map),A=a.useRef(0),w=a.useRef({autoSaveId:e,direction:i,dragState:g,id:h,keyboardResizeBy:l,onLayout:s,storage:u}),M=a.useRef({layout:v,panelDataArray:[],panelDataArrayChanged:!1});a.useRef({didLogIdAndOrderWarning:!1,didLogPanelConstraintsWarning:!1,prevPanelIds:[]}),a.useImperativeHandle(r,(()=>({getId:()=>w.current.id,getLayout:()=>{const{layout:e}=M.current;return e},setLayout:e=>{const{onLayout:a}=w.current,{layout:n,panelDataArray:t}=M.current,i=vBe({layout:e,panelConstraints:t.map((e=>e.constraints))});sBe(n,i)||(y(i),M.current.layout=i,a&&a(i),cBe(t,i,b.current))}})),[]),sLe((()=>{w.current.autoSaveId=e,w.current.direction=i,w.current.dragState=g,w.current.id=h,w.current.onLayout=s,w.current.storage=u})),oBe({committedValuesRef:w,eagerValuesRef:M,groupId:h,layout:v,panelDataArray:M.current.panelDataArray,setLayout:y,panelGroupElement:p.current}),a.useEffect((()=>{const{panelDataArray:a}=M.current;if(e){if(0===v.length||v.length!==a.length)return;let n=kBe[e];null==n&&(n=function(e,a=10){let n=null;return(...t)=>{null!==n&&clearTimeout(n),n=setTimeout((()=>{e(...t)}),a)}}(fBe,100),kBe[e]=n);const t=[...a],i=new Map(S.current);n(e,t,i,v,u)}}),[e,v,u]),a.useEffect((()=>{}));const C=a.useCallback((e=>{const{onLayout:a}=w.current,{layout:n,panelDataArray:t}=M.current;if(e.constraints.collapsible){const i=t.map((e=>e.constraints)),{collapsedSize:r=0,panelSize:o,pivotIndices:s}=wBe(t,e,n);if(qLe(null!=o,`Panel size not found for panel "${e.id}"`),!$Le(o,r)){S.current.set(e.id,o);const l=XLe({delta:ABe(t,e)===t.length-1?o-r:r-o,initialLayout:n,panelConstraints:i,pivotIndices:s,prevLayout:n,trigger:"imperative-api"});dBe(n,l)||(y(l),M.current.layout=l,a&&a(l),cBe(t,l,b.current))}}}),[]),T=a.useCallback(((e,a)=>{const{onLayout:n}=w.current,{layout:t,panelDataArray:i}=M.current;if(e.constraints.collapsible){const r=i.map((e=>e.constraints)),{collapsedSize:o=0,panelSize:s=0,minSize:l=0,pivotIndices:u}=wBe(i,e,t),c=null!=a?a:l;if($Le(s,o)){const a=S.current.get(e.id),o=null!=a&&a>=c?a:c,l=XLe({delta:ABe(i,e)===i.length-1?s-o:o-s,initialLayout:t,panelConstraints:r,pivotIndices:u,prevLayout:t,trigger:"imperative-api"});dBe(t,l)||(y(l),M.current.layout=l,n&&n(l),cBe(i,l,b.current))}}}),[]),x=a.useCallback((e=>{const{layout:a,panelDataArray:n}=M.current,{panelSize:t}=wBe(n,e,a);return qLe(null!=t,`Panel size not found for panel "${e.id}"`),t}),[]),N=a.useCallback(((e,a)=>{const{panelDataArray:n}=M.current,t=ABe(n,e);return function({defaultSize:e,dragState:a,layout:n,panelData:t,panelIndex:i,precision:r=3}){const o=n[i];let s;return s=null==o?null!=e?e.toPrecision(r):"1":1===t.length?"1":o.toPrecision(r),{flexBasis:0,flexGrow:s,flexShrink:1,overflow:"hidden",pointerEvents:null!==a?"none":void 0}}({defaultSize:a,dragState:g,layout:v,panelData:n,panelIndex:t})}),[g,v]),E=a.useCallback((e=>{const{layout:a,panelDataArray:n}=M.current,{collapsedSize:t=0,collapsible:i,panelSize:r}=wBe(n,e,a);return qLe(null!=r,`Panel size not found for panel "${e.id}"`),!0===i&&$Le(r,t)}),[]),_=a.useCallback((e=>{const{layout:a,panelDataArray:n}=M.current,{collapsedSize:t=0,collapsible:i,panelSize:r}=wBe(n,e,a);return qLe(null!=r,`Panel size not found for panel "${e.id}"`),!i||ZLe(r,t)>0}),[]),P=a.useCallback((e=>{const{panelDataArray:a}=M.current;a.push(e),a.sort(((e,a)=>{const n=e.order,t=a.order;return null==n&&null==t?0:null==n?-1:null==t?1:n-t})),M.current.panelDataArrayChanged=!0,k()}),[k]);sLe((()=>{if(M.current.panelDataArrayChanged){M.current.panelDataArrayChanged=!1;const{autoSaveId:e,onLayout:a,storage:n}=w.current,{layout:t,panelDataArray:i}=M.current;let r=null;if(e){const a=function(e,a,n){var t,i;return null!==(i=(null!==(t=gBe(e,n))&&void 0!==t?t:{})[pBe(a)])&&void 0!==i?i:null}(e,i,n);a&&(S.current=new Map(Object.entries(a.expandToSizes)),r=a.layout)}null==r&&(r=function({panelDataArray:e}){const a=Array(e.length),n=e.map((e=>e.constraints));let t=0,i=100;for(let r=0;r<e.length;r++){const e=n[r];qLe(e,`Panel constraints not found for index ${r}`);const{defaultSize:o}=e;null!=o&&(t++,a[r]=o,i-=o)}for(let r=0;r<e.length;r++){const o=n[r];qLe(o,`Panel constraints not found for index ${r}`);const{defaultSize:s}=o;if(null!=s)continue;const l=i/(e.length-t);t++,a[r]=l,i-=l}return a}({panelDataArray:i}));const o=vBe({layout:r,panelConstraints:i.map((e=>e.constraints))});sBe(t,o)||(y(o),M.current.layout=o,a&&a(o),cBe(i,o,b.current))}})),sLe((()=>{const e=M.current;return()=>{e.layout=[]}}),[]);const j=a.useCallback((e=>{let a=!1;const n=p.current;if(n){"rtl"===window.getComputedStyle(n,null).getPropertyValue("direction")&&(a=!0)}return function(n){n.preventDefault();const t=p.current;if(!t)return()=>null;const{direction:i,dragState:r,id:o,keyboardResizeBy:s,onLayout:l}=w.current,{layout:u,panelDataArray:c}=M.current,{initialLayout:d}=null!=r?r:{},m=tBe(o,e,t);let h=uBe(n,e,i,r,s,t);const g="horizontal"===i;g&&a&&(h=-h);const f=XLe({delta:h,initialLayout:null!=d?d:u,panelConstraints:c.map((e=>e.constraints)),pivotIndices:m,prevLayout:u,trigger:yLe(n)?"keyboard":"mouse-or-touch"}),v=!dBe(u,f);(kLe(n)||bLe(n))&&A.current!=h&&(A.current=h,FLe(e,v||0===h?0:g?h<0?NLe:ELe:h<0?_Le:PLe)),v&&(y(f),M.current.layout=f,l&&l(f),cBe(c,f,b.current))}}),[]),L=a.useCallback(((e,a)=>{const{onLayout:n}=w.current,{layout:t,panelDataArray:i}=M.current,r=i.map((e=>e.constraints)),{panelSize:o,pivotIndices:s}=wBe(i,e,t);qLe(null!=o,`Panel size not found for panel "${e.id}"`);const l=XLe({delta:ABe(i,e)===i.length-1?o-a:a-o,initialLayout:t,panelConstraints:r,pivotIndices:s,prevLayout:t,trigger:"imperative-api"});dBe(t,l)||(y(l),M.current.layout=l,n&&n(l),cBe(i,l,b.current))}),[]),B=a.useCallback(((e,a)=>{const{layout:n,panelDataArray:t}=M.current,{collapsedSize:i=0,collapsible:r}=a,{collapsedSize:o=0,collapsible:s,maxSize:l=100,minSize:u=0}=e.constraints,{panelSize:c}=wBe(t,e,n);null!=c&&(r&&s&&$Le(c,i)?$Le(i,o)||L(e,o):c<u?L(e,u):c>l&&L(e,l))}),[L]),R=a.useCallback(((e,a)=>{const{direction:n}=w.current,{layout:t}=M.current;if(!p.current)return;const i=rBe(e,p.current);qLe(i,`Drag handle element not found for id "${e}"`);const r=lBe(n,a);f({dragHandleId:e,dragHandleRect:i.getBoundingClientRect(),initialCursorPosition:r,initialLayout:t})}),[]),z=a.useCallback((()=>{f(null)}),[]),D=a.useCallback((e=>{const{panelDataArray:a}=M.current,n=ABe(a,e);n>=0&&(a.splice(n,1),delete b.current[e.id],M.current.panelDataArrayChanged=!0,k())}),[k]),O=a.useMemo((()=>({collapsePanel:C,direction:i,dragState:g,expandPanel:T,getPanelSize:x,getPanelStyle:N,groupId:h,isPanelCollapsed:E,isPanelExpanded:_,reevaluatePanelConstraints:B,registerPanel:P,registerResizeHandle:j,resizePanel:L,startDragging:R,stopDragging:z,unregisterPanel:D,panelGroupElement:p.current})),[C,g,i,T,x,N,h,E,_,B,P,j,L,R,z,D]);return a.createElement(qje.Provider,{value:O},a.createElement(d,{...m,children:n,className:t,id:o,ref:p,style:{...{display:"flex",flexDirection:"horizontal"===i?"row":"column",height:"100%",overflow:"hidden",width:"100%"},...c},[Zje]:"",[$je]:i,[Yje]:h}))}const SBe=a.forwardRef(((e,n)=>a.createElement(bBe,{...e,forwardedRef:n})));function ABe(e,a){return e.findIndex((e=>e===a||e.id===a.id))}function wBe(e,a,n){const t=ABe(e,a);return{...a.constraints,panelSize:n[t],pivotIndices:t===e.length-1?[t-1,t]:[t,t+1]}}function MBe({children:e=null,className:n="",disabled:t=!1,hitAreaMargins:i,id:r,onBlur:o,onClick:s,onDragging:l,onFocus:u,onPointerDown:c,onPointerUp:d,style:m={},tabIndex:h=0,tagName:p="div",...g}){var f,v;const y=a.useRef(null),k=a.useRef({onClick:s,onDragging:l,onPointerDown:c,onPointerUp:d});a.useEffect((()=>{k.current.onClick=s,k.current.onDragging=l,k.current.onPointerDown=c,k.current.onPointerUp=d}));const b=a.useContext(qje);if(null===b)throw Error("PanelResizeHandle components must be rendered within a PanelGroup container");const{direction:S,groupId:A,registerResizeHandle:w,startDragging:M,stopDragging:C,panelGroupElement:T}=b,x=dLe(r),[N,E]=a.useState("inactive"),[_,P]=a.useState(!1),[j,L]=a.useState(null),B=a.useRef({state:N});sLe((()=>{B.current.state=N})),a.useEffect((()=>{if(t)L(null);else{const e=w(x);L((()=>e))}}),[t,x,w]);const R=null!==(f=null==i?void 0:i.coarse)&&void 0!==f?f:15,z=null!==(v=null==i?void 0:i.fine)&&void 0!==v?v:5;a.useEffect((()=>{if(t||null==j)return;const e=y.current;qLe(e,"Element ref not attached");let a=!1;return function(e,a,n,t,i){var r;const{ownerDocument:o}=a,s={direction:n,element:a,hitAreaMargins:t,setResizeHandlerState:i},l=null!==(r=RLe.get(o))&&void 0!==r?r:0;return RLe.set(o,l+1),DLe.add(s),ULe(),function(){var a;zLe.delete(e),DLe.delete(s);const n=null!==(a=RLe.get(o))&&void 0!==a?a:1;if(RLe.set(o,n-1),ULe(),1===n&&RLe.delete(o),LLe.includes(s)){const e=LLe.indexOf(s);e>=0&&LLe.splice(e,1),VLe(),i("up",!0,null)}}}(x,e,S,{coarse:R,fine:z},((e,n,t)=>{if(n)switch(e){case"down":{E("drag"),a=!1,qLe(t,'Expected event to be defined for "down" action'),M(x,t);const{onDragging:e,onPointerDown:n}=k.current;null==e||e(!0),null==n||n();break}case"move":{const{state:e}=B.current;a=!0,"drag"!==e&&E("hover"),qLe(t,'Expected event to be defined for "move" action'),j(t);break}case"up":{E("hover"),C();const{onClick:e,onDragging:n,onPointerUp:t}=k.current;null==n||n(!1),null==t||t(),a||null==e||e();break}}else E("inactive")}))}),[R,S,t,z,w,x,j,M,C]),function({disabled:e,handleId:n,resizeHandler:t,panelGroupElement:i}){a.useEffect((()=>{if(e||null==t||null==i)return;const a=rBe(n,i);if(null==a)return;const r=e=>{if(!e.defaultPrevented)switch(e.key){case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"ArrowUp":case"End":case"Home":e.preventDefault(),t(e);break;case"F6":{e.preventDefault();const t=a.getAttribute(Yje);qLe(t,`No group element found for id "${t}"`);const r=aBe(t,i),o=nBe(t,n,i);qLe(null!==o,`No resize element found for id "${n}"`),r[e.shiftKey?o>0?o-1:r.length-1:o+1<r.length?o+1:0].focus();break}}};return a.addEventListener("keydown",r),()=>{a.removeEventListener("keydown",r)}}),[i,e,n,t])}({disabled:t,handleId:x,resizeHandler:j,panelGroupElement:T});return a.createElement(p,{...g,children:e,className:n,id:r,onBlur:()=>{P(!1),null==o||o()},onFocus:()=>{P(!0),null==u||u()},ref:y,role:"separator",style:{touchAction:"none",userSelect:"none",...m},tabIndex:h,[$je]:S,[Yje]:A,[nLe]:"",[tLe]:"drag"===N?"pointer":_?"keyboard":void 0,[iLe]:!t,[rLe]:x,[oLe]:N})}bBe.displayName="PanelGroup",SBe.displayName="forwardRef(PanelGroup)",MBe.displayName="PanelResizeHandle";const CBe=({className:e,...a})=>n.jsx(SBe,{className:hq("flex h-full w-full data-[panel-group-direction=vertical]:flex-col",e),...a}),TBe=hLe,xBe=({withHandle:e,className:a,...t})=>n.jsx(MBe,{className:hq("relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90",a),...t,children:e&&n.jsx("div",{className:"z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border",children:n.jsx(CB,{className:"h-2.5 w-2.5"})})}),NBe=({copyText:e})=>n.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:e}),EBe="rgba(245, 246, 247, 1)",_Be={[ha.SEND_COMMUNICATION]:{color:{bg:EBe},clickable:!0},[ha.WAIT_UNTIL_NEXT_FIXED_TIME]:{color:{bg:EBe},clickable:!1}},PBe={[ha.SEND_COMMUNICATION]:"Send Email & SMS",[ha.WAIT_UNTIL_NEXT_FIXED_TIME]:"Wait"},jBe=({children:e,onClick:a,iconBgColor:t,iconStrokeColor:i,Icon:r,disabled:o=!1,selected:s=!1})=>{const l=r;return n.jsxs(M2.div,{layout:!0,initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},transition:{duration:.2,ease:"easeInOut"},style:{backgroundColor:s?t:EBe},onClick:a,className:oz("flex gap-2 items-center rounded-md transition-colors group","p-2 border-2 border-transparent overflow-hidden",!o&&"hover:border-primary cursor-pointer",s&&"border-primary"),children:[n.jsx("div",{className:oz("bg-purple-50 rounded-md p-2 flex items-center justify-center w-8 h-8 flex-shrink-0 transition-colors",!o&&"group-hover/trigger-audience:bg-background",t),children:n.jsx(l,{className:oz("w-4 h-4 stroke-purple-500 group-hover/trigger-audience:fill-purple-50 transition-colors",i)})}),e]})},LBe=({segmentName:e})=>n.jsx("span",{className:"inline-flex items-center bg-white border border-gray-200 rounded-md px-2 py-0.5 text-sm font-medium shadow-sm",children:e}),BBe=()=>{const e=Q2(),{setActionId:t,state:{selectedActionId:i}}=a.useContext(K2),[r,o]=a.useState(e?.includeSegmentIds||null),[s,l]=a.useState(e?.excludeSegmentIds||null),{segments:u}=V2(),c=a.useCallback((()=>u?.find((e=>e.type===Z2.ALL_USERS))),[u]);return a.useEffect((()=>{e&&u&&(null===r&&null===s?(o(e?.includeSegmentIds||null),l(e?.excludeSegmentIds||null),0===e.includeSegmentIds.length&&0===e.excludeSegmentIds.length&&(o([c()?.id||""]),l([]))):(JSON.stringify(e.includeSegmentIds)!==JSON.stringify(r)&&o(e.includeSegmentIds),JSON.stringify(e.excludeSegmentIds)!==JSON.stringify(s)&&l(e.excludeSegmentIds)))}),[e,s,r,u,c]),e&&r&&s?n.jsx(n.Fragment,{children:n.jsx(jBe,{selected:i===dbe.EditAudience,iconBgColor:"bg-purple-50",iconStrokeColor:"stroke-purple-500",onClick:()=>{t(dbe.EditAudience)},Icon:l3.AudienceIcon,children:n.jsxs("div",{className:"flex flex-col gap-0.5 flex-1",children:[n.jsx(Rxe,{children:"Audience"}),n.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[n.jsx(NBe,{copyText:`Send to all ${TD("engage:user",{count:2})} in ${1===r.length?"this":"these"} ${TD("engage:segment",{count:r.length}).toLowerCase()}`}),n.jsx("div",{className:"flex gap-1 flex-wrap",children:r.map((e=>{const a=u?.find((a=>a.id===e));return a?n.jsx(LBe,{segmentName:a.name},e):null}))})]})]})})}):null},RBe=()=>{const e=Q2(),{setActionId:t,state:{selectedActionId:i}}=a.useContext(K2),{segments:r}=V2(),o=TD(e?.triggerType===ca.TRIGGER_BASED?"engage:automation":"engage:broadcast"),s=`Start this ${o?.toLowerCase()}`,l=`Start this ${TD("engage:automation").toLowerCase()}`;if(!e||!r)return null;return n.jsx(n.Fragment,{children:(()=>{switch(e.triggerType){case ca.DATE_BASED:{if(!e.triggerMetadata||!("monthToTrigger"in e.triggerMetadata)||!("dayToTrigger"in e.triggerMetadata))return null;const a=e.triggerMetadata?.monthToTrigger,t=e.triggerMetadata?.dayToTrigger;let i="Date not set";if(a&&t){i=`${new Date(2024,a-1,t).toLocaleDateString("en-US",{month:"long"})} ${t}`}return n.jsx(jBe,{iconBgColor:"bg-amber-100",disabled:!0,iconStrokeColor:"stroke-amber-500",onClick:()=>{},Icon:l3.TriggerIcon,children:n.jsxs("div",{className:"flex flex-col gap-0.5 flex-1",children:[n.jsx(Rxe,{children:l}),n.jsx("div",{className:"flex items-center gap-2 flex-wrap",children:n.jsx(NBe,{copyText:e.triggerMetadata.customTriggerCopy??`Every year on ${i}`})})]})})}case ca.TRIGGER_BASED:{if(e.triggerMetadata&&e.triggerMetadata.triggerType!==ca.TRIGGER_BASED||!e.triggerMetadata||e.triggerMetadata.eventName!==da.USER_ENTERS_SEGMENT||!e.triggerMetadata.eventFilter.segment_id)return null;const a=e.triggerMetadata.eventFilter.segment_id,t=r.find((e=>e.id===a))?.name;return t?n.jsx(jBe,{iconBgColor:"bg-amber-100",disabled:!0,iconStrokeColor:"stroke-amber-500",onClick:()=>{},Icon:l3.TriggerIcon,children:n.jsxs("div",{className:"flex flex-col gap-0.5 flex-1",children:[n.jsx(Rxe,{children:s}),n.jsx("div",{className:"flex items-center gap-2 flex-wrap",children:e.triggerMetadata.customTriggerCopy?n.jsx(NBe,{copyText:e.triggerMetadata.customTriggerCopy}):n.jsxs(n.Fragment,{children:[n.jsx(NBe,{copyText:`When ${TD("engage:user").toLowerCase()} joins the`}),n.jsx(LBe,{segmentName:t})]})})]})}):null}case ca.ONE_TIME:{const a=!e.triggerMetadata||!("scheduledAt"in e.triggerMetadata);return n.jsxs(jBe,{iconBgColor:"bg-amber-100",iconStrokeColor:"stroke-amber-500",onClick:()=>{t(dbe.EditTime)},selected:i===dbe.EditTime,Icon:l3.TriggerIcon,children:[n.jsxs("div",{className:"flex flex-col gap-0.5 flex-1",children:[n.jsx(Rxe,{children:s}),n.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[n.jsx(NBe,a?{copyText:`Click to set the date and time for this ${TD("engage:broadcast")}`}:{copyText:"Bulk send at"}),!1===a&&e.triggerMetadata&&"scheduledAt"in e.triggerMetadata&&e.triggerMetadata.scheduledAt&&n.jsx("div",{className:"text-xs font-medium",children:n.jsx(LBe,{segmentName:"now"===e.triggerMetadata.scheduledAt?"Immediately":Ooe(new Date(e.triggerMetadata.scheduledAt),"h:mma MM/dd/yy")})})]})]}),n.jsx("div",{className:"",children:a&&n.jsx(cse,{title:`Please select a time before sending this ${TD("engage:broadcast")}.`,alertText:`A scheduled time is needed before sending this ${TD("engage:broadcast")}.`,Icon:l3.AlertTriangleIcon,iconColor:"text-red-500",size:"large"})})]})}default:throw Fne(e.triggerType,ca)}})()})};var zBe=r.forwardRef(((e,a)=>{const{children:t,...i}=e,o=r.Children.toArray(t),s=o.find(KBe);if(s){const e=s.props.children,t=o.map((a=>a===s?r.Children.count(e)>1?r.Children.only(null):r.isValidElement(e)?e.props.children:null:a));return n.jsx(DBe,{...i,ref:a,children:r.isValidElement(e)?r.cloneElement(e,void 0,t):null})}return n.jsx(DBe,{...i,ref:a,children:t})}));zBe.displayName="Slot";var DBe=r.forwardRef(((e,a)=>{const{children:n,...t}=e;if(r.isValidElement(n)){const e=function(e){let a=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=a&&"isReactWarning"in a&&a.isReactWarning;if(n)return e.ref;if(a=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=a&&"isReactWarning"in a&&a.isReactWarning,n)return e.props.ref;return e.props.ref||e.ref}(n),i=function(e,a){const n={...a};for(const t in a){const i=e[t],r=a[t];/^on[A-Z]/.test(t)?i&&r?n[t]=(...e)=>{r(...e),i(...e)}:i&&(n[t]=i):"style"===t?n[t]={...i,...r}:"className"===t&&(n[t]=[i,r].filter(Boolean).join(" "))}return{...e,...n}}(t,n.props);return n.type!==r.Fragment&&(i.ref=a?rq(a,e):e),r.cloneElement(n,i)}return r.Children.count(n)>1?r.Children.only(null):null}));DBe.displayName="SlotClone";var OBe=({children:e})=>n.jsx(n.Fragment,{children:e});function KBe(e){return r.isValidElement(e)&&e.type===OBe}var HBe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce(((e,a)=>{const t=r.forwardRef(((e,t)=>{const{asChild:i,...r}=e,o=i?zBe:a;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),n.jsx(o,{...r,ref:t})}));return t.displayName=`Primitive.${a}`,{...e,[a]:t}}),{}),IBe=r.forwardRef(((e,a)=>{const{pressed:t,defaultPressed:i=!1,onPressedChange:r,...o}=e,[s=!1,l]=_4({prop:t,onChange:r,defaultProp:i});return n.jsx(HBe.button,{type:"button","aria-pressed":s,"data-state":s?"on":"off","data-disabled":e.disabled?"":void 0,...o,ref:a,onClick:T4(e.onClick,(()=>{e.disabled||l(!s)}))})}));IBe.displayName="Toggle";var GBe=IBe;const FBe=qL("inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-transparent",outline:"border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground"},size:{default:"h-9 px-2 min-w-9",sm:"h-8 px-1.5 min-w-8",lg:"h-10 px-2.5 min-w-10"}},defaultVariants:{variant:"default",size:"default"}}),VBe=r.forwardRef((({className:e,variant:a,size:t,...i},r)=>n.jsx(GBe,{ref:r,className:hq(FBe({variant:a,size:t,className:e})),...i})));VBe.displayName=GBe.displayName;const JBe=({type:e,disabled:t=!1,actionId:i})=>{const{state:{selectedSubStepType:r},setSelectedSubStepType:o,setActionId:s}=a.useContext(K2),l=X2(),{updateCommunicationGroup:u,isUpdating:c}=Qe(),{channelSenders:d}=ate(),{channelAccounts:m}=Qne(),{data:h}=rte(),{toast:p}=Je(),{getMergeFields:g,isGetting:f}=Xe(l?.id??void 0),v=r===e,y=a.useMemo((()=>d?.results?.filter((e=>e.channelSenderMetadata.userPart))||[]),[d?.results]),k=a.useMemo((()=>Kre({channelSenders:d?.results??[],channelAccounts:m?.results??[],smsApplication:h})),[d?.results,m?.results,h]),b=a.useCallback((()=>{if(!l)return!1;switch(e){case mbe.EMAIL:return!!l.emailChannelSenderId;case mbe.SMS:return!!l.smsChannelSenderId}}),[l,e])(),S=a.useMemo((()=>{if(!l)return!1;return 1===[!!l.emailChannelSenderId,!!l.smsChannelSenderId].filter(Boolean).length&&b}),[l,b]),A=a.useCallback((async()=>{if(l?.id&&!c)if(b&&S)p({title:"Cannot disable channel",description:"At least one channel must remain enabled",variant:"destructive"});else try{const a={};switch(e){case mbe.EMAIL:if(b&&l.emailChannelSenderId)a.emailChannelSenderId=null;else{const e=y[0];e&&(a.emailChannelSenderId=e.id)}break;case mbe.SMS:if(b&&l.smsChannelSenderId)a.smsChannelSenderId=null;else{const e=k[0];e&&(a.smsChannelSenderId=e.channelSender.id)}}await u({groupId:l.id,params:a})}catch(a){}}),[l,b,e,u,c,y,k,p,S]),w=a.useCallback((()=>{if(!l)return"Need to select a channel";switch(e){case mbe.EMAIL:return l.emailChannelSenderId?l.emailHtmlBody?!!l.emailSubject||"Please add a subject to the email":"Please add content to the email":"Please select a email sender";case mbe.SMS:return l.smsChannelSenderId?!!l.smsMessageBody||"Please add content to the sms":"Please select a sms sender"}}),[l,e])();return n.jsxs(M2.div,{layout:!0,initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},transition:{duration:.15,ease:"easeInOut"},className:oz("p-2 pr-3 flex gap-2 items-center rounded-md transition-colors cursor-pointer group","border-2 border-transparent",v&&"border-primary","hover:border-muted-foreground/30"),style:{backgroundColor:v?"#f5f6f7":EBe},onClick:a=>{a.target.closest("button")||(s(i),o(e))},children:[n.jsxs("div",{className:"flex items-center gap-2 flex-1",children:[n.jsx("div",{className:"rounded-md p-1.5 flex items-center justify-center w-6 h-6 flex-shrink-0 bg-white border",children:((e,a)=>{switch(e){case mbe.EMAIL:return n.jsx(l3.EmailIcon,{className:oz("w-6 h-6",a?"text-primary":"text-gray-400")});case mbe.SMS:return n.jsx(l3.SmsIcon,{className:oz("w-6 h-6",a?"text-primary":"text-gray-400")})}})(e,v)}),n.jsxs("div",{className:"flex flex-col gap-0.5",children:[n.jsx("div",{style:{color:v?"#3b82f6":"#64748b"},children:n.jsx(Rxe,{className:"text-xs",children:(()=>{switch(e){case mbe.EMAIL:return"Email";case mbe.SMS:return"SMS"}})()})}),b&&n.jsx("div",{className:"text-[10px] font-medium text-muted-foreground",children:e===mbe.EMAIL?f?n.jsx("span",{className:"text-[10px] font-medium text-muted-foreground",children:"..."}):n.jsx(gwe,{content:l?.emailSubject||"No subject set",mergeFieldsResponse:g,variant:"minimal",className:"text-[10px] font-medium text-muted-foreground"}):f?n.jsx("span",{className:"text-[10px] font-medium text-muted-foreground",children:"..."}):n.jsx(gwe,{content:l?.smsMessageBody?`${l.smsMessageBody.substring(0,40)}${l.smsMessageBody.length>40?"...":""}`:"No message set",mergeFieldsResponse:g,variant:"minimal",className:"text-[10px] font-medium text-muted-foreground"})}),!0!==w&&b&&n.jsx("div",{className:"text-[10px] text-amber-600 font-medium",children:w}),!b&&n.jsx("div",{className:"text-[10px] text-muted-foreground/70 font-medium italic",children:"Channel disabled"})]})]}),n.jsx("div",{className:oz("ml-auto",t?"opacity-50 cursor-not-allowed z-10":""),onClick:e=>{e.stopPropagation(),t&&p({title:"Cannot toggle channel when not in draft mode",variant:"destructive"})},children:n.jsx(VBe,{pressed:b,onPressedChange:()=>{c||b&&S||A()},disabled:c||b&&S||t,size:"sm",children:n.jsx(Hq,{mode:"wait",initial:!1,children:b?n.jsx(M2.span,{initial:{opacity:0,scale:.8},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.8},transition:{duration:.18,ease:"easeInOut"},className:"flex",children:n.jsx(sB,{className:"h-4 w-4 text-muted-foreground"})},"check"):n.jsx(M2.span,{initial:{opacity:0,scale:.8},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.8},transition:{duration:.18,ease:"easeInOut"},className:"flex",children:n.jsx(mR,{className:"h-4 w-4 text-muted-foreground"})},"x")})})})]})},UBe=e=>{switch(e){case ha.SEND_COMMUNICATION:return"Send Communication";case ha.WAIT_UNTIL_NEXT_FIXED_TIME:return"Wait";default:throw L2(e,ha)}},WBe=e=>{switch(e){case ha.SEND_COMMUNICATION:return n.jsx(l3.CommunicationIcon,{className:"w-4 h-4"});case ha.WAIT_UNTIL_NEXT_FIXED_TIME:return n.jsx(l3.WaitUntilNextFixedTimeIcon,{className:"w-4 h-4"});default:throw Fne(e,ha)}},qBe=e=>{if(!(e&&e.actionType===ha.WAIT_UNTIL_NEXT_FIXED_TIME&&"hour"in e&&"minute"in e&&"timezone"in e))return null;const{hour:a,minute:n,timezone:t}=e;return`Wait until next ${`${a?.toString().padStart(2,"0")}:${n?.toString().padStart(2,"0")}`} ${t}`},ZBe=({actionDataWithMetadata:e})=>{const{actionData:t}=e,{state:{selectedActionId:i},setActionId:r,setSelectedCommunicationGroupId:o}=a.useContext(K2),s=a.useMemo((()=>i===t.actionMetadata.currentActionId),[i,t.actionMetadata.currentActionId]),l=_Be[t.actionType],u=l.color,c=l.clickable;return n.jsxs(M2.div,{layout:!0,initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},transition:{duration:.2,ease:"easeInOut"},className:oz("p-2 pr-3 flex gap-2 items-center rounded-md transition-colors cursor-pointer group"," border-2 border-transparent",s&&"border-primary",t.actionType!==ha.WAIT_UNTIL_NEXT_FIXED_TIME&&"hover:border-primary"),style:{backgroundColor:s?u.bg:u.bgUnselected??EBe},onClick:()=>{c&&(r(t.actionMetadata.currentActionId),t.actionType===ha.SEND_COMMUNICATION&&o(t.actionMetadata.communicationGroupId))},children:[n.jsxs("div",{className:"flex items-center gap-2 flex-1",children:[n.jsx("div",{className:"rounded-md p-2 flex items-center justify-center w-8 h-8 flex-shrink-0 bg-white",children:WBe(t.actionType)}),n.jsxs("div",{className:"flex flex-col gap-1",children:[n.jsx("div",{style:{color:s?u.text:u.textUnselected},children:n.jsx(Rxe,{children:PBe[t.actionType]})}),n.jsx("div",t.actionType===ha.WAIT_UNTIL_NEXT_FIXED_TIME?{className:"text-[11px] text-muted-foreground font-normal rounded bg-muted/40 w-fit max-w-full truncate",children:qBe(t.actionMetadata)}:{className:"text-xs font-medium text-muted-foreground",children:UBe(t.actionType)})]})]}),t.actionType===ha.SEND_COMMUNICATION&&n.jsx("div",{className:"flex items-center pr-2",children:n.jsx(l3.NextButton,s?{className:"w-4 h-4 text-muted-foreground rotate-90 transition-transform duration-200"}:{className:"w-4 h-4 text-muted-foreground transition-transform duration-200"})})]})},$Be=()=>{const e=X2(),[t,i]=a.useState(!1),[r,o]=a.useState(void 0),{segments:s}=V2(),l=Q2(),{setActionId:u,setSelectedSubStepType:c,state:{selectedActionId:d,selectedSubStepType:m}}=a.useContext(K2);oa(l?.id||""),a.useEffect((()=>{if(!l)return;if(d)return;const e=l.actionData?.find((e=>e.actionType===ha.SEND_COMMUNICATION));e&&u(e.actionMetadata.currentActionId)}),[l,u,d]),a.useEffect((()=>{if(!l)return;(async()=>{const e=[];for(const a of l.actionData??[])switch(a.actionType){case ha.SEND_COMMUNICATION:{const n=await Ue(a.actionMetadata.communicationGroupId);e.push({actionData:a,communicationGroup:n});break}case ha.WAIT_UNTIL_NEXT_FIXED_TIME:e.push({actionData:a});break;default:throw L2(a.actionType,ha)}o(e)})()}),[l]),a.useEffect((()=>{if(d&&r&&e&&null===m){const a=r.find((e=>e.actionData.actionMetadata.currentActionId===d));a?.actionData.actionType===ha.SEND_COMMUNICATION&&c(e?.emailChannelSenderId?mbe.EMAIL:mbe.SMS)}}),[d,r,c,e,m]);if(!l||!r||l?.triggerType===ca.TRIGGER_BASED&&void 0===s)return null;const h=(e=>{const{steps:a,rootActionId:n}=e;if(!a||!n)return a??[];const t=new Map(a.map((e=>[e.actionData.actionMetadata.currentActionId,e]))),i=t.get(n);if(!i)return a;const r=[];let o=i;for(;o;){r.push(o);const e=o.actionData.actionMetadata.nextActionId;if(!e)break;o=t.get(e)}return r})({steps:r,rootActionId:l.triggerMetadata?.triggerType===ca.TRIGGER_BASED?l.triggerMetadata.rootActionId:void 0}).filter((e=>!!t||e.actionData.actionType===ha.SEND_COMMUNICATION));let p=()=>n.jsx("div",{},"empty-trigger-audience");return(t||l.triggerType===ca.ONE_TIME)&&(p=()=>n.jsxs("div",{className:"flex flex-col gap-3",children:[l.triggerType===ca.ONE_TIME&&n.jsx(BBe,{}),l.triggerType!==ca.ONE_TIME&&n.jsx(RBe,{})]})),n.jsxs("div",{className:"flex-1 flex flex-col gap-2 w-full overflow-visible",children:[(l.triggerType===ca.TRIGGER_BASED||l.triggerType===ca.DATE_BASED)&&n.jsxs("div",{className:"flex gap-2 items-center justify-between",children:[n.jsx("div",{className:"text-sm text-muted-foreground",children:"Messages sent in listed order"}),n.jsxs("div",{className:"flex gap-2 items-center",children:[n.jsx("div",{className:"text-sm font-medium",children:"Show all details"}),n.jsx(nPe,{defaultChecked:t,onCheckedChange:()=>{i(!t)}})]})]}),n.jsx("div",{className:"flex-1 flex flex-col gap-3",children:n.jsxs(Hq,{mode:"popLayout",children:[p(),h.map(((e,a)=>n.jsx(M2.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},transition:{duration:.2,delay:.05*a,ease:"easeInOut"},children:n.jsxs("div",{className:"flex flex-col gap-3",children:[n.jsx(ZBe,{actionDataWithMetadata:e}),e.actionData.actionType===ha.SEND_COMMUNICATION&&d===e.actionData.actionMetadata.currentActionId&&e.actionData.actionMetadata.currentActionId&&n.jsxs("div",{className:"flex gap-3",children:[n.jsx(M2.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},transition:{duration:.2,delay:.25*h.length,ease:"easeInOut"},className:"w-12 flex justify-end items-center",children:n.jsx("div",{className:"w-0.5 bg-muted-foreground/30 h-full rounded-full"})}),n.jsxs("div",{className:"flex flex-col gap-3 flex-1",children:[n.jsx(JBe,{type:mbe.EMAIL,actionId:e.actionData.actionMetadata.currentActionId,disabled:l.status!==pa.DRAFT}),n.jsx(JBe,{type:mbe.SMS,actionId:e.actionData.actionMetadata.currentActionId,disabled:l.status!==pa.DRAFT})]})]})]})},e.actionData.actionMetadata?.currentActionId??a))),l.triggerType===ca.ONE_TIME&&n.jsx("div",{className:"flex flex-col gap-3",children:n.jsx(RBe,{})},"one-time-trigger")]})})]})},YBe=()=>{const e=Q2(),{segments:a}=V2();return n.jsx("div",e&&a?{className:"h-full pt-4 relative",children:n.jsx("div",{className:"absolute inset-0 overflow-y-auto flex flex-col gap-3",children:n.jsx($Be,{})})}:{className:"flex h-full items-center justify-center",children:n.jsx(Tq,{text:[`Getting details on your ${TD("engage:automation",{count:1}).toLowerCase()}`,"Finishing up"]})})},QBe=({disablePreview:e=!1,disableEditContent:t=!1,disablePreviewSubtext:i=!1,hideSms:r=!1})=>{const{state:{selectedSubStepType:o}}=a.useContext(K2);if(!X2())return n.jsx("div",{className:"flex flex-col gap-4 flex-1 bg-muted rounded-md",children:n.jsx(Tq,{text:["Loading..."]})});if(!o)return n.jsx("div",{className:"flex flex-col gap-4 flex-1 bg-muted rounded-md",children:n.jsx("div",{className:"flex items-center justify-center h-full",children:n.jsxs("div",{className:"text-center",children:[n.jsx("h3",{className:"text-lg font-medium text-muted-foreground mb-2",children:"Select Communication Type"}),n.jsx("p",{className:"text-sm text-muted-foreground",children:"Choose Email or SMS from the steps on the left to preview and edit content"})]})})});const s={disablePreview:e,disableEditContent:t,disablePreviewSubtext:i};return n.jsxs("div",{className:"flex flex-col flex-1 bg-muted rounded-md",children:[o===mbe.EMAIL&&n.jsx(Sxe,{...s}),o===mbe.SMS&&!r&&n.jsx(Nxe,{...s})]})},XBe=()=>{const{state:{selectedActionId:e}}=a.useContext(K2),{state:{hideSms:t}}=a.useContext(wq);return n.jsx("div",{className:"flex flex-col gap-4 h-full w-full",children:n.jsx(Hq,{mode:"wait",children:e===dbe.EditTime?n.jsx(O_e,{}):e===dbe.EditAudience?n.jsx(wPe,{}):n.jsx(QBe,{hideSms:t})})})},eRe=()=>n.jsxs(CBe,{direction:"horizontal",className:"flex-1",children:[n.jsx(TBe,{defaultSize:30,minSize:16,maxSize:48,children:n.jsx("aside",{className:"h-full",children:n.jsx(YBe,{})})}),n.jsx(xBe,{className:"px-1 opacity-0 hover:opacity-100 transition-opacity duration-200 mx-1"}),n.jsx(TBe,{defaultSize:70,children:n.jsx("main",{className:"h-full",children:n.jsx(XBe,{})})})]}),aRe=()=>{const[e,t]=a.useState(Zke.WORKFLOW),i=[{id:Zke.WORKFLOW,label:"Workflow",content:n.jsx(eRe,{})},{id:Zke.RECIPIENTS,label:"Recipients",content:n.jsx(Wje,{})},{id:Zke.INSIGHTS,label:TD("engage:insight",{count:2}),content:n.jsx(Jje,{})}];return n.jsx(KPe,{tabs:i,activeTab:e,onTabChange:e=>t(e),tabsLocation:"left"})},nRe=({showBackButton:e=!1,onDuplicationCreated:t,onBeforeSchedule:i,getExtraMergeFields:r,hideSms:o,hideSales:s,replyToSettingsText:l,replyToSettingsLink:u,fromNameSettingsText:c,fromNameSettingsLink:d})=>{const m=Q2(),h=X2(),{updateCommunicationGroup:p}=Qe(),{toast:g}=Je(),{channelSenders:f}=ate(),v=a.useRef("");return a.useEffect((()=>{if(h&&r){(async()=>{const e=await r(),a=JSON.stringify(e);a!==v.current&&(v.current=a,p({groupId:h?.id,params:{extraMergeFields:e}},{onError:()=>{g({title:"Error saving merge fields!",description:"Please contact your administrator if this issue persists.",variant:"destructive"})}}))})()}}),[h,r,p,g]),a.useEffect((()=>{if(m&&h&&f&&m.automationType===ma.MANAGED&&null===h.emailChannelSenderId&&null===h.smsChannelSenderId){if(!h.emailChannelSenderId){const e=f.results.filter((e=>e.channelSenderMetadata.userPart));e.length>0&&p({groupId:h.id,params:{emailChannelSenderId:e[0].id}})}if(!h.smsChannelSenderId){const e=f.results.filter((e=>e.channelSenderMetadata.from||e.channelSenderMetadata.messageServiceSid));e.length>0&&p({groupId:h.id,params:{smsChannelSenderId:e[0].id}})}}}),[m,h,f,p]),m&&h?n.jsx(Mq,{children:n.jsx(Cq,{replyToSettingsText:l,replyToSettingsLink:u,fromNameSettingsText:c,fromNameSettingsLink:d,hideSms:o,hideSales:s,children:n.jsxs("div",{className:"h-full flex flex-col gap-4",children:[n.jsx(Vje,{showBackButton:e,onDuplicationCreated:t,onBeforeSchedule:i}),n.jsx("div",{className:"flex-1 border-t",children:n.jsx(aRe,{})})]})})}):n.jsx("div",{className:"flex h-full items-center justify-center",children:n.jsx(Tq,{text:[`Fetching ${TD("engage:automation").toLowerCase()} data`,"Finishing up"]})})},tRe=({...e})=>{const a=function(){let{matches:e}=r.useContext(xee),a=e[e.length-1];return a?a.params:{}}(),[t]=vae(),i=e.automationId||a?.automationId||t.get("automationId")||"",o="true"===t.get("showBackButton")||e.showBackButton;return n.jsx(a3,{automationId:i,children:n.jsx("div",{className:"bg-background h-full min-h-[750px]",children:n.jsx(nRe,{...e,showBackButton:o})})})};Object.values(Object.assign({}));var iRe=/(%?)(%([sdijo]))/g;function rRe(e,...a){if(0===a.length)return e;let n=0,t=e.replace(iRe,((e,t,i,r)=>{const o=function(e,a){switch(a){case"s":return e;case"d":case"i":return Number(e);case"j":return JSON.stringify(e);case"o":{if("string"==typeof e)return e;const a=JSON.stringify(e);return"{}"===a||"[]"===a||/^\[object .+?\]$/.test(a)?e:a}}}(a[n],r);return t?e:(n++,o)}));return n<a.length&&(t+=` ${a.slice(n).join(" ")}`),t=t.replace(/%{2,2}/g,"%"),t}var oRe=class extends Error{constructor(e,...a){super(e),this.message=e,this.name="Invariant Violation",this.message=rRe(e,...a),function(e){if(!e.stack)return;const a=e.stack.split("\n");a.splice(1,2),e.stack=a.join("\n")}(this)}},sRe=(e,a,...n)=>{if(!e)throw new oRe(a,...n)};sRe.as=(e,a,n,...t)=>{if(!a){const a=0===t.length?n:rRe(n,...t);let i;try{i=Reflect.construct(e,[a])}catch(kGe){i=e(a)}throw i}};const lRe={formatMessage:function(e,...a){return`[MSW] ${rRe(e,...a)}`},warn:function(e,...a){},error:function(e,...a){}};class uRe extends Error{constructor(e){super(e),this.name="InternalError"}}const cRe=/[\/\\]msw[\/\\]src[\/\\](.+)/,dRe=/(node_modules)?[\/\\]lib[\/\\](core|browser|node|native|iife)[\/\\]|^[^\/\\]*$/;class mRe{static cache=new WeakMap;__kind;info;isUsed;resolver;resolverIterator;resolverIteratorResult;options;constructor(e){this.resolver=e.resolver,this.options=e.options;const a=function(e){const a=e.stack;if(!a)return;const n=a.split("\n").slice(1).find((e=>!(cRe.test(e)||dRe.test(e))));if(!n)return;return n.replace(/\s*at [^()]*\(([^)]+)\)/,"$1").replace(/^@/,"")}(new Error);this.info={...e.info,callFrame:a},this.isUsed=!1,this.__kind="RequestHandler"}async parse(e){return{}}async test(e){const a=await this.parse({request:e.request,resolutionContext:e.resolutionContext});return this.predicate({request:e.request,parsedResult:a,resolutionContext:e.resolutionContext})}extendResolverArgs(e){return{}}cloneRequestOrGetFromCache(e){const a=mRe.cache.get(e);if(void 0!==a)return a;const n=e.clone();return mRe.cache.set(e,n),n}async run(e){if(this.isUsed&&this.options?.once)return null;const a=this.cloneRequestOrGetFromCache(e.request),n=await this.parse({request:e.request,resolutionContext:e.resolutionContext});if(!this.predicate({request:e.request,parsedResult:n,resolutionContext:e.resolutionContext}))return null;if(this.isUsed&&this.options?.once)return null;this.isUsed=!0;const t=this.wrapResolver(this.resolver)({...this.extendResolverArgs({request:e.request,parsedResult:n}),requestId:e.requestId,request:e.request}).catch((e=>{if(e instanceof Response)return e;throw e})),i=await t;return this.createExecutionResult({request:a,requestId:e.requestId,response:i,parsedResult:n})}wrapResolver(e){return async a=>{if(!this.resolverIterator){const t=await e(a);if(!(n=t)||!Reflect.has(n,Symbol.iterator)&&!Reflect.has(n,Symbol.asyncIterator))return t;this.resolverIterator=Symbol.iterator in t?t[Symbol.iterator]():t[Symbol.asyncIterator]()}var n;this.isUsed=!1;const{done:t,value:i}=await this.resolverIterator.next(),r=await i;return r&&(this.resolverIteratorResult=r.clone()),t?(this.isUsed=!0,this.resolverIteratorResult?.clone()):r}}createExecutionResult(e){return{handler:this,request:e.request,requestId:e.requestId,response:e.response,parsedResult:e.parsedResult}}}function hRe(e){if("undefined"==typeof location)return e.toString();const a=e instanceof URL?e:new URL(e);return a.origin===location.origin?a.pathname:a.origin+a.pathname}async function pRe(e,a="warn"){const n=new URL(e.url),t=hRe(n)+n.search,i="HEAD"===e.method||"GET"===e.method?null:await e.clone().text(),r=`intercepted a request without a matching request handler:${`\n\n • ${e.method} ${t}\n\n${i?` • Request body: ${i}\n\n`:""}`}If you still wish to intercept this unhandled request, please create a request handler for it.\nRead more: https://mswjs.io/docs/getting-started/mocks`;function o(e){switch(e){case"error":throw lRe.error("Error: %s",r),new uRe(lRe.formatMessage('Cannot bypass a request when using the "error" strategy for the "onUnhandledRequest" option.'));case"warn":lRe.warn("Warning: %s",r);break;case"bypass":break;default:throw new uRe(lRe.formatMessage('Failed to react to an unhandled request: unknown strategy "%s". Please provide one of the supported strategies ("bypass", "warn", "error") or a custom callback function as the value of the "onUnhandledRequest" option.',e))}}"function"!=typeof a?function(e){const a=new URL(e.url);return"file:"===a.protocol||!!/(fonts\.googleapis\.com)/.test(a.hostname)||!!/node_modules/.test(a.pathname)||!!a.pathname.includes("@vite")||/\.(s?css|less|m?jsx?|m?tsx?|html|ttf|otf|woff|woff2|eot|gif|jpe?g|png|avif|webp|svg|mp4|webm|ogg|mov|mp3|wav|ogg|flac|aac|pdf|txt|csv|json|xml|md|zip|tar|gz|rar|7z)$/i.test(a.pathname)}(e)||o(a):a(e,{warning:o.bind(null,"warn"),error:o.bind(null,"error")})}function gRe(){if("undefined"!=typeof navigator&&"ReactNative"===navigator.product)return!0;if("undefined"!=typeof process){const e=process.type;return"renderer"!==e&&"worker"!==e&&!(!process.versions||!process.versions.node)}return!1}var fRe,vRe,yRe=Object.create,kRe=Object.defineProperty,bRe=Object.getOwnPropertyDescriptor,SRe=Object.getOwnPropertyNames,ARe=Object.getPrototypeOf,wRe=Object.prototype.hasOwnProperty,MRe=(e=>"undefined"!=typeof require?require:"undefined"!=typeof Proxy?new Proxy(e,{get:(e,a)=>("undefined"!=typeof require?require:e)[a]}):e)((function(e){if("undefined"!=typeof require)return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')})),CRe=(e,a)=>function(){return a||(0,e[SRe(e)[0]])((a={exports:{}}).exports,a),a.exports},TRe=CRe({"node_modules/punycode/punycode.js"(e,a){var n=2147483647,t=36,i=/^xn--/,r=/[^\0-\x7F]/,o=/[\x2E\u3002\uFF0E\uFF61]/g,s={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},l=Math.floor,u=String.fromCharCode;function c(e){throw new RangeError(s[e])}function d(e,a){const n=e.split("@");let t="";n.length>1&&(t=n[0]+"@",e=n[1]);const i=function(e,a){const n=[];let t=e.length;for(;t--;)n[t]=a(e[t]);return n}((e=e.replace(o,".")).split("."),a).join(".");return t+i}function m(e){const a=[];let n=0;const t=e.length;for(;n<t;){const i=e.charCodeAt(n++);if(i>=55296&&i<=56319&&n<t){const t=e.charCodeAt(n++);56320==(64512&t)?a.push(((1023&i)<<10)+(1023&t)+65536):(a.push(i),n--)}else a.push(i)}return a}var h=function(e,a){return e+22+75*(e<26)-((0!=a)<<5)},p=function(e,a,n){let i=0;for(e=n?l(e/700):e>>1,e+=l(e/a);e>455;i+=t)e=l(e/35);return l(i+36*e/(e+38))},g=function(e){const a=[],i=e.length;let r=0,o=128,s=72,u=e.lastIndexOf("-");u<0&&(u=0);for(let n=0;n<u;++n)e.charCodeAt(n)>=128&&c("not-basic"),a.push(e.charCodeAt(n));for(let m=u>0?u+1:0;m<i;){const u=r;for(let a=1,o=t;;o+=t){m>=i&&c("invalid-input");const u=(d=e.charCodeAt(m++))>=48&&d<58?d-48+26:d>=65&&d<91?d-65:d>=97&&d<123?d-97:t;u>=t&&c("invalid-input"),u>l((n-r)/a)&&c("overflow"),r+=u*a;const h=o<=s?1:o>=s+26?26:o-s;if(u<h)break;const p=t-h;a>l(n/p)&&c("overflow"),a*=p}const h=a.length+1;s=p(r-u,h,0==u),l(r/h)>n-o&&c("overflow"),o+=l(r/h),r%=h,a.splice(r++,0,o)}var d;return String.fromCodePoint(...a)},f=function(e){const a=[],i=(e=m(e)).length;let r=128,o=0,s=72;for(const n of e)n<128&&a.push(u(n));const d=a.length;let g=d;for(d&&a.push("-");g<i;){let i=n;for(const a of e)a>=r&&a<i&&(i=a);const m=g+1;i-r>l((n-o)/m)&&c("overflow"),o+=(i-r)*m,r=i;for(const f of e)if(f<r&&++o>n&&c("overflow"),f===r){let e=o;for(let n=t;;n+=t){const i=n<=s?1:n>=s+26?26:n-s;if(e<i)break;const r=e-i,o=t-i;a.push(u(h(i+r%o,0))),e=l(r/o)}a.push(u(h(e,0))),s=p(o,m,g===d),o=0,++g}++o,++r}return a.join("")};a.exports={version:"2.3.1",ucs2:{decode:m,encode:e=>String.fromCodePoint(...e)},decode:g,encode:f,toASCII:function(e){return d(e,(function(e){return r.test(e)?"xn--"+f(e):e}))},toUnicode:function(e){return d(e,(function(e){return i.test(e)?g(e.slice(4).toLowerCase()):e}))}}}}),xRe=CRe({"node_modules/requires-port/index.js"(e,a){a.exports=function(e,a){if(a=a.split(":")[0],!(e=+e))return!1;switch(a){case"http":case"ws":return 80!==e;case"https":case"wss":return 443!==e;case"ftp":return 21!==e;case"gopher":return 70!==e;case"file":return!1}return 0!==e}}}),NRe=CRe({"node_modules/querystringify/index.js"(e){var a=Object.prototype.hasOwnProperty;function n(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(yGe){return null}}function t(e){try{return encodeURIComponent(e)}catch(yGe){return null}}e.stringify=function(e,n){n=n||"";var i,r,o=[];for(r in"string"!=typeof n&&(n="?"),e)if(a.call(e,r)){if((i=e[r])||null!=i&&!isNaN(i)||(i=""),r=t(r),i=t(i),null===r||null===i)continue;o.push(r+"="+i)}return o.length?n+o.join("&"):""},e.parse=function(e){for(var a,t=/([^=?#&]+)=?([^&]*)/g,i={};a=t.exec(e);){var r=n(a[1]),o=n(a[2]);null===r||null===o||r in i||(i[r]=o)}return i}}}),ERe=CRe({"node_modules/url-parse/index.js"(e,a){var n=xRe(),t=NRe(),i=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,r=/[\n\r\t]/g,o=/^[A-Za-z][A-Za-z0-9+-.]*:\/\//,s=/:\d+$/,l=/^([a-z][a-z0-9.+-]*:)?(\/\/)?([\\/]+)?([\S\s]*)/i,u=/^[a-zA-Z]:/;function c(e){return(e||"").toString().replace(i,"")}var d=[["#","hash"],["?","query"],function(e,a){return p(a.protocol)?e.replace(/\\/g,"/"):e},["/","pathname"],["@","auth",1],[NaN,"host",void 0,1,1],[/:(\d*)$/,"port",void 0,1],[NaN,"hostname",void 0,1,1]],m={hash:1,query:1};function h(e){var a;a="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};var n,t={},i=typeof(e=e||(a.location||{}));if("blob:"===e.protocol)t=new f(unescape(e.pathname),{});else if("string"===i)for(n in t=new f(e,{}),m)delete t[n];else if("object"===i){for(n in e)n in m||(t[n]=e[n]);void 0===t.slashes&&(t.slashes=o.test(e.href))}return t}function p(e){return"file:"===e||"ftp:"===e||"http:"===e||"https:"===e||"ws:"===e||"wss:"===e}function g(e,a){e=(e=c(e)).replace(r,""),a=a||{};var n,t=l.exec(e),i=t[1]?t[1].toLowerCase():"",o=!!t[2],s=!!t[3],u=0;return o?s?(n=t[2]+t[3]+t[4],u=t[2].length+t[3].length):(n=t[2]+t[4],u=t[2].length):s?(n=t[3]+t[4],u=t[3].length):n=t[4],"file:"===i?u>=2&&(n=n.slice(2)):p(i)?n=t[4]:i?o&&(n=n.slice(2)):u>=2&&p(a.protocol)&&(n=t[4]),{protocol:i,slashes:o||p(i),slashesCount:u,rest:n}}function f(e,a,i){if(e=(e=c(e)).replace(r,""),!(this instanceof f))return new f(e,a,i);var o,s,l,m,v,y,k=d.slice(),b=typeof a,S=this,A=0;for("object"!==b&&"string"!==b&&(i=a,a=null),i&&"function"!=typeof i&&(i=t.parse),o=!(s=g(e||"",a=h(a))).protocol&&!s.slashes,S.slashes=s.slashes||o&&a.slashes,S.protocol=s.protocol||a.protocol||"",e=s.rest,("file:"===s.protocol&&(2!==s.slashesCount||u.test(e))||!s.slashes&&(s.protocol||s.slashesCount<2||!p(S.protocol)))&&(k[3]=[/(.*)/,"pathname"]);A<k.length;A++)"function"!=typeof(m=k[A])?(y=m[1],(l=m[0])!=l?S[y]=e:"string"==typeof l?~(v="@"===l?e.lastIndexOf(l):e.indexOf(l))&&("number"==typeof m[2]?(S[y]=e.slice(0,v),e=e.slice(v+m[2])):(S[y]=e.slice(v),e=e.slice(0,v))):(v=l.exec(e))&&(S[y]=v[1],e=e.slice(0,v.index)),S[y]=S[y]||o&&m[3]&&a[y]||"",m[4]&&(S[y]=S[y].toLowerCase())):e=m(e,S);i&&(S.query=i(S.query)),o&&a.slashes&&"/"!==S.pathname.charAt(0)&&(""!==S.pathname||""!==a.pathname)&&(S.pathname=function(e,a){if(""===e)return a;for(var n=(a||"/").split("/").slice(0,-1).concat(e.split("/")),t=n.length,i=n[t-1],r=!1,o=0;t--;)"."===n[t]?n.splice(t,1):".."===n[t]?(n.splice(t,1),o++):o&&(0===t&&(r=!0),n.splice(t,1),o--);return r&&n.unshift(""),"."!==i&&".."!==i||n.push(""),n.join("/")}(S.pathname,a.pathname)),"/"!==S.pathname.charAt(0)&&p(S.protocol)&&(S.pathname="/"+S.pathname),n(S.port,S.protocol)||(S.host=S.hostname,S.port=""),S.username=S.password="",S.auth&&(~(v=S.auth.indexOf(":"))?(S.username=S.auth.slice(0,v),S.username=encodeURIComponent(decodeURIComponent(S.username)),S.password=S.auth.slice(v+1),S.password=encodeURIComponent(decodeURIComponent(S.password))):S.username=encodeURIComponent(decodeURIComponent(S.auth)),S.auth=S.password?S.username+":"+S.password:S.username),S.origin="file:"!==S.protocol&&p(S.protocol)&&S.host?S.protocol+"//"+S.host:"null",S.href=S.toString()}f.prototype={set:function(e,a,i){var r=this;switch(e){case"query":"string"==typeof a&&a.length&&(a=(i||t.parse)(a)),r[e]=a;break;case"port":r[e]=a,n(a,r.protocol)?a&&(r.host=r.hostname+":"+a):(r.host=r.hostname,r[e]="");break;case"hostname":r[e]=a,r.port&&(a+=":"+r.port),r.host=a;break;case"host":r[e]=a,s.test(a)?(a=a.split(":"),r.port=a.pop(),r.hostname=a.join(":")):(r.hostname=a,r.port="");break;case"protocol":r.protocol=a.toLowerCase(),r.slashes=!i;break;case"pathname":case"hash":if(a){var o="pathname"===e?"/":"#";r[e]=a.charAt(0)!==o?o+a:a}else r[e]=a;break;case"username":case"password":r[e]=encodeURIComponent(a);break;case"auth":var l=a.indexOf(":");~l?(r.username=a.slice(0,l),r.username=encodeURIComponent(decodeURIComponent(r.username)),r.password=a.slice(l+1),r.password=encodeURIComponent(decodeURIComponent(r.password))):r.username=encodeURIComponent(decodeURIComponent(a))}for(var u=0;u<d.length;u++){var c=d[u];c[4]&&(r[c[1]]=r[c[1]].toLowerCase())}return r.auth=r.password?r.username+":"+r.password:r.username,r.origin="file:"!==r.protocol&&p(r.protocol)&&r.host?r.protocol+"//"+r.host:"null",r.href=r.toString(),r},toString:function(e){e&&"function"==typeof e||(e=t.stringify);var a,n=this,i=n.host,r=n.protocol;r&&":"!==r.charAt(r.length-1)&&(r+=":");var o=r+(n.protocol&&n.slashes||p(n.protocol)?"//":"");return n.username?(o+=n.username,n.password&&(o+=":"+n.password),o+="@"):n.password?(o+=":"+n.password,o+="@"):"file:"!==n.protocol&&p(n.protocol)&&!i&&"/"!==n.pathname&&(o+="@"),(":"===i[i.length-1]||s.test(n.hostname)&&!n.port)&&(i+=":"),o+=i+n.pathname,(a="object"==typeof n.query?e(n.query):n.query)&&(o+="?"!==a.charAt(0)?"?"+a:a),n.hash&&(o+=n.hash),o}},f.extractProtocol=g,f.location=h,f.trimLeft=c,f.qs=t,a.exports=f}}),_Re=CRe({"node_modules/psl/data/rules.json"(e,a){a.exports=["ac","com.ac","edu.ac","gov.ac","net.ac","mil.ac","org.ac","ad","nom.ad","ae","co.ae","net.ae","org.ae","sch.ae","ac.ae","gov.ae","mil.ae","aero","accident-investigation.aero","accident-prevention.aero","aerobatic.aero","aeroclub.aero","aerodrome.aero","agents.aero","aircraft.aero","airline.aero","airport.aero","air-surveillance.aero","airtraffic.aero","air-traffic-control.aero","ambulance.aero","amusement.aero","association.aero","author.aero","ballooning.aero","broker.aero","caa.aero","cargo.aero","catering.aero","certification.aero","championship.aero","charter.aero","civilaviation.aero","club.aero","conference.aero","consultant.aero","consulting.aero","control.aero","council.aero","crew.aero","design.aero","dgca.aero","educator.aero","emergency.aero","engine.aero","engineer.aero","entertainment.aero","equipment.aero","exchange.aero","express.aero","federation.aero","flight.aero","fuel.aero","gliding.aero","government.aero","groundhandling.aero","group.aero","hanggliding.aero","homebuilt.aero","insurance.aero","journal.aero","journalist.aero","leasing.aero","logistics.aero","magazine.aero","maintenance.aero","media.aero","microlight.aero","modelling.aero","navigation.aero","parachuting.aero","paragliding.aero","passenger-association.aero","pilot.aero","press.aero","production.aero","recreation.aero","repbody.aero","res.aero","research.aero","rotorcraft.aero","safety.aero","scientist.aero","services.aero","show.aero","skydiving.aero","software.aero","student.aero","trader.aero","trading.aero","trainer.aero","union.aero","workinggroup.aero","works.aero","af","gov.af","com.af","org.af","net.af","edu.af","ag","com.ag","org.ag","net.ag","co.ag","nom.ag","ai","off.ai","com.ai","net.ai","org.ai","al","com.al","edu.al","gov.al","mil.al","net.al","org.al","am","co.am","com.am","commune.am","net.am","org.am","ao","ed.ao","gv.ao","og.ao","co.ao","pb.ao","it.ao","aq","ar","bet.ar","com.ar","coop.ar","edu.ar","gob.ar","gov.ar","int.ar","mil.ar","musica.ar","mutual.ar","net.ar","org.ar","senasa.ar","tur.ar","arpa","e164.arpa","in-addr.arpa","ip6.arpa","iris.arpa","uri.arpa","urn.arpa","as","gov.as","asia","at","ac.at","co.at","gv.at","or.at","sth.ac.at","au","com.au","net.au","org.au","edu.au","gov.au","asn.au","id.au","info.au","conf.au","oz.au","act.au","nsw.au","nt.au","qld.au","sa.au","tas.au","vic.au","wa.au","act.edu.au","catholic.edu.au","nsw.edu.au","nt.edu.au","qld.edu.au","sa.edu.au","tas.edu.au","vic.edu.au","wa.edu.au","qld.gov.au","sa.gov.au","tas.gov.au","vic.gov.au","wa.gov.au","schools.nsw.edu.au","aw","com.aw","ax","az","com.az","net.az","int.az","gov.az","org.az","edu.az","info.az","pp.az","mil.az","name.az","pro.az","biz.az","ba","com.ba","edu.ba","gov.ba","mil.ba","net.ba","org.ba","bb","biz.bb","co.bb","com.bb","edu.bb","gov.bb","info.bb","net.bb","org.bb","store.bb","tv.bb","*.bd","be","ac.be","bf","gov.bf","bg","a.bg","b.bg","c.bg","d.bg","e.bg","f.bg","g.bg","h.bg","i.bg","j.bg","k.bg","l.bg","m.bg","n.bg","o.bg","p.bg","q.bg","r.bg","s.bg","t.bg","u.bg","v.bg","w.bg","x.bg","y.bg","z.bg","0.bg","1.bg","2.bg","3.bg","4.bg","5.bg","6.bg","7.bg","8.bg","9.bg","bh","com.bh","edu.bh","net.bh","org.bh","gov.bh","bi","co.bi","com.bi","edu.bi","or.bi","org.bi","biz","bj","asso.bj","barreau.bj","gouv.bj","bm","com.bm","edu.bm","gov.bm","net.bm","org.bm","bn","com.bn","edu.bn","gov.bn","net.bn","org.bn","bo","com.bo","edu.bo","gob.bo","int.bo","org.bo","net.bo","mil.bo","tv.bo","web.bo","academia.bo","agro.bo","arte.bo","blog.bo","bolivia.bo","ciencia.bo","cooperativa.bo","democracia.bo","deporte.bo","ecologia.bo","economia.bo","empresa.bo","indigena.bo","industria.bo","info.bo","medicina.bo","movimiento.bo","musica.bo","natural.bo","nombre.bo","noticias.bo","patria.bo","politica.bo","profesional.bo","plurinacional.bo","pueblo.bo","revista.bo","salud.bo","tecnologia.bo","tksat.bo","transporte.bo","wiki.bo","br","9guacu.br","abc.br","adm.br","adv.br","agr.br","aju.br","am.br","anani.br","aparecida.br","app.br","arq.br","art.br","ato.br","b.br","barueri.br","belem.br","bhz.br","bib.br","bio.br","blog.br","bmd.br","boavista.br","bsb.br","campinagrande.br","campinas.br","caxias.br","cim.br","cng.br","cnt.br","com.br","contagem.br","coop.br","coz.br","cri.br","cuiaba.br","curitiba.br","def.br","des.br","det.br","dev.br","ecn.br","eco.br","edu.br","emp.br","enf.br","eng.br","esp.br","etc.br","eti.br","far.br","feira.br","flog.br","floripa.br","fm.br","fnd.br","fortal.br","fot.br","foz.br","fst.br","g12.br","geo.br","ggf.br","goiania.br","gov.br","ac.gov.br","al.gov.br","am.gov.br","ap.gov.br","ba.gov.br","ce.gov.br","df.gov.br","es.gov.br","go.gov.br","ma.gov.br","mg.gov.br","ms.gov.br","mt.gov.br","pa.gov.br","pb.gov.br","pe.gov.br","pi.gov.br","pr.gov.br","rj.gov.br","rn.gov.br","ro.gov.br","rr.gov.br","rs.gov.br","sc.gov.br","se.gov.br","sp.gov.br","to.gov.br","gru.br","imb.br","ind.br","inf.br","jab.br","jampa.br","jdf.br","joinville.br","jor.br","jus.br","leg.br","lel.br","log.br","londrina.br","macapa.br","maceio.br","manaus.br","maringa.br","mat.br","med.br","mil.br","morena.br","mp.br","mus.br","natal.br","net.br","niteroi.br","*.nom.br","not.br","ntr.br","odo.br","ong.br","org.br","osasco.br","palmas.br","poa.br","ppg.br","pro.br","psc.br","psi.br","pvh.br","qsl.br","radio.br","rec.br","recife.br","rep.br","ribeirao.br","rio.br","riobranco.br","riopreto.br","salvador.br","sampa.br","santamaria.br","santoandre.br","saobernardo.br","saogonca.br","seg.br","sjc.br","slg.br","slz.br","sorocaba.br","srv.br","taxi.br","tc.br","tec.br","teo.br","the.br","tmp.br","trd.br","tur.br","tv.br","udi.br","vet.br","vix.br","vlog.br","wiki.br","zlg.br","bs","com.bs","net.bs","org.bs","edu.bs","gov.bs","bt","com.bt","edu.bt","gov.bt","net.bt","org.bt","bv","bw","co.bw","org.bw","by","gov.by","mil.by","com.by","of.by","bz","com.bz","net.bz","org.bz","edu.bz","gov.bz","ca","ab.ca","bc.ca","mb.ca","nb.ca","nf.ca","nl.ca","ns.ca","nt.ca","nu.ca","on.ca","pe.ca","qc.ca","sk.ca","yk.ca","gc.ca","cat","cc","cd","gov.cd","cf","cg","ch","ci","org.ci","or.ci","com.ci","co.ci","edu.ci","ed.ci","ac.ci","net.ci","go.ci","asso.ci","aéroport.ci","int.ci","presse.ci","md.ci","gouv.ci","*.ck","!www.ck","cl","co.cl","gob.cl","gov.cl","mil.cl","cm","co.cm","com.cm","gov.cm","net.cm","cn","ac.cn","com.cn","edu.cn","gov.cn","net.cn","org.cn","mil.cn","公司.cn","网络.cn","網絡.cn","ah.cn","bj.cn","cq.cn","fj.cn","gd.cn","gs.cn","gz.cn","gx.cn","ha.cn","hb.cn","he.cn","hi.cn","hl.cn","hn.cn","jl.cn","js.cn","jx.cn","ln.cn","nm.cn","nx.cn","qh.cn","sc.cn","sd.cn","sh.cn","sn.cn","sx.cn","tj.cn","xj.cn","xz.cn","yn.cn","zj.cn","hk.cn","mo.cn","tw.cn","co","arts.co","com.co","edu.co","firm.co","gov.co","info.co","int.co","mil.co","net.co","nom.co","org.co","rec.co","web.co","com","coop","cr","ac.cr","co.cr","ed.cr","fi.cr","go.cr","or.cr","sa.cr","cu","com.cu","edu.cu","org.cu","net.cu","gov.cu","inf.cu","cv","com.cv","edu.cv","int.cv","nome.cv","org.cv","cw","com.cw","edu.cw","net.cw","org.cw","cx","gov.cx","cy","ac.cy","biz.cy","com.cy","ekloges.cy","gov.cy","ltd.cy","mil.cy","net.cy","org.cy","press.cy","pro.cy","tm.cy","cz","de","dj","dk","dm","com.dm","net.dm","org.dm","edu.dm","gov.dm","do","art.do","com.do","edu.do","gob.do","gov.do","mil.do","net.do","org.do","sld.do","web.do","dz","art.dz","asso.dz","com.dz","edu.dz","gov.dz","org.dz","net.dz","pol.dz","soc.dz","tm.dz","ec","com.ec","info.ec","net.ec","fin.ec","k12.ec","med.ec","pro.ec","org.ec","edu.ec","gov.ec","gob.ec","mil.ec","edu","ee","edu.ee","gov.ee","riik.ee","lib.ee","med.ee","com.ee","pri.ee","aip.ee","org.ee","fie.ee","eg","com.eg","edu.eg","eun.eg","gov.eg","mil.eg","name.eg","net.eg","org.eg","sci.eg","*.er","es","com.es","nom.es","org.es","gob.es","edu.es","et","com.et","gov.et","org.et","edu.et","biz.et","name.et","info.et","net.et","eu","fi","aland.fi","fj","ac.fj","biz.fj","com.fj","gov.fj","info.fj","mil.fj","name.fj","net.fj","org.fj","pro.fj","*.fk","com.fm","edu.fm","net.fm","org.fm","fm","fo","fr","asso.fr","com.fr","gouv.fr","nom.fr","prd.fr","tm.fr","aeroport.fr","avocat.fr","avoues.fr","cci.fr","chambagri.fr","chirurgiens-dentistes.fr","experts-comptables.fr","geometre-expert.fr","greta.fr","huissier-justice.fr","medecin.fr","notaires.fr","pharmacien.fr","port.fr","veterinaire.fr","ga","gb","edu.gd","gov.gd","gd","ge","com.ge","edu.ge","gov.ge","org.ge","mil.ge","net.ge","pvt.ge","gf","gg","co.gg","net.gg","org.gg","gh","com.gh","edu.gh","gov.gh","org.gh","mil.gh","gi","com.gi","ltd.gi","gov.gi","mod.gi","edu.gi","org.gi","gl","co.gl","com.gl","edu.gl","net.gl","org.gl","gm","gn","ac.gn","com.gn","edu.gn","gov.gn","org.gn","net.gn","gov","gp","com.gp","net.gp","mobi.gp","edu.gp","org.gp","asso.gp","gq","gr","com.gr","edu.gr","net.gr","org.gr","gov.gr","gs","gt","com.gt","edu.gt","gob.gt","ind.gt","mil.gt","net.gt","org.gt","gu","com.gu","edu.gu","gov.gu","guam.gu","info.gu","net.gu","org.gu","web.gu","gw","gy","co.gy","com.gy","edu.gy","gov.gy","net.gy","org.gy","hk","com.hk","edu.hk","gov.hk","idv.hk","net.hk","org.hk","公司.hk","教育.hk","敎育.hk","政府.hk","個人.hk","个��.hk","箇人.hk","網络.hk","网络.hk","组織.hk","網絡.hk","网絡.hk","组织.hk","組織.hk","組织.hk","hm","hn","com.hn","edu.hn","org.hn","net.hn","mil.hn","gob.hn","hr","iz.hr","from.hr","name.hr","com.hr","ht","com.ht","shop.ht","firm.ht","info.ht","adult.ht","net.ht","pro.ht","org.ht","med.ht","art.ht","coop.ht","pol.ht","asso.ht","edu.ht","rel.ht","gouv.ht","perso.ht","hu","co.hu","info.hu","org.hu","priv.hu","sport.hu","tm.hu","2000.hu","agrar.hu","bolt.hu","casino.hu","city.hu","erotica.hu","erotika.hu","film.hu","forum.hu","games.hu","hotel.hu","ingatlan.hu","jogasz.hu","konyvelo.hu","lakas.hu","media.hu","news.hu","reklam.hu","sex.hu","shop.hu","suli.hu","szex.hu","tozsde.hu","utazas.hu","video.hu","id","ac.id","biz.id","co.id","desa.id","go.id","mil.id","my.id","net.id","or.id","ponpes.id","sch.id","web.id","ie","gov.ie","il","ac.il","co.il","gov.il","idf.il","k12.il","muni.il","net.il","org.il","im","ac.im","co.im","com.im","ltd.co.im","net.im","org.im","plc.co.im","tt.im","tv.im","in","co.in","firm.in","net.in","org.in","gen.in","ind.in","nic.in","ac.in","edu.in","res.in","gov.in","mil.in","info","int","eu.int","io","com.io","iq","gov.iq","edu.iq","mil.iq","com.iq","org.iq","net.iq","ir","ac.ir","co.ir","gov.ir","id.ir","net.ir","org.ir","sch.ir","ایران.ir","ايران.ir","is","net.is","com.is","edu.is","gov.is","org.is","int.is","it","gov.it","edu.it","abr.it","abruzzo.it","aosta-valley.it","aostavalley.it","bas.it","basilicata.it","cal.it","calabria.it","cam.it","campania.it","emilia-romagna.it","emiliaromagna.it","emr.it","friuli-v-giulia.it","friuli-ve-giulia.it","friuli-vegiulia.it","friuli-venezia-giulia.it","friuli-veneziagiulia.it","friuli-vgiulia.it","friuliv-giulia.it","friulive-giulia.it","friulivegiulia.it","friulivenezia-giulia.it","friuliveneziagiulia.it","friulivgiulia.it","fvg.it","laz.it","lazio.it","lig.it","liguria.it","lom.it","lombardia.it","lombardy.it","lucania.it","mar.it","marche.it","mol.it","molise.it","piedmont.it","piemonte.it","pmn.it","pug.it","puglia.it","sar.it","sardegna.it","sardinia.it","sic.it","sicilia.it","sicily.it","taa.it","tos.it","toscana.it","trentin-sud-tirol.it","trentin-süd-tirol.it","trentin-sudtirol.it","trentin-südtirol.it","trentin-sued-tirol.it","trentin-suedtirol.it","trentino-a-adige.it","trentino-aadige.it","trentino-alto-adige.it","trentino-altoadige.it","trentino-s-tirol.it","trentino-stirol.it","trentino-sud-tirol.it","trentino-süd-tirol.it","trentino-sudtirol.it","trentino-südtirol.it","trentino-sued-tirol.it","trentino-suedtirol.it","trentino.it","trentinoa-adige.it","trentinoaadige.it","trentinoalto-adige.it","trentinoaltoadige.it","trentinos-tirol.it","trentinostirol.it","trentinosud-tirol.it","trentinosüd-tirol.it","trentinosudtirol.it","trentinosüdtirol.it","trentinosued-tirol.it","trentinosuedtirol.it","trentinsud-tirol.it","trentinsüd-tirol.it","trentinsudtirol.it","trentinsüdtirol.it","trentinsued-tirol.it","trentinsuedtirol.it","tuscany.it","umb.it","umbria.it","val-d-aosta.it","val-daosta.it","vald-aosta.it","valdaosta.it","valle-aosta.it","valle-d-aosta.it","valle-daosta.it","valleaosta.it","valled-aosta.it","valledaosta.it","vallee-aoste.it","vallée-aoste.it","vallee-d-aoste.it","vallée-d-aoste.it","valleeaoste.it","valléeaoste.it","valleedaoste.it","valléedaoste.it","vao.it","vda.it","ven.it","veneto.it","ag.it","agrigento.it","al.it","alessandria.it","alto-adige.it","altoadige.it","an.it","ancona.it","andria-barletta-trani.it","andria-trani-barletta.it","andriabarlettatrani.it","andriatranibarletta.it","ao.it","aosta.it","aoste.it","ap.it","aq.it","aquila.it","ar.it","arezzo.it","ascoli-piceno.it","ascolipiceno.it","asti.it","at.it","av.it","avellino.it","ba.it","balsan-sudtirol.it","balsan-südtirol.it","balsan-suedtirol.it","balsan.it","bari.it","barletta-trani-andria.it","barlettatraniandria.it","belluno.it","benevento.it","bergamo.it","bg.it","bi.it","biella.it","bl.it","bn.it","bo.it","bologna.it","bolzano-altoadige.it","bolzano.it","bozen-sudtirol.it","bozen-südtirol.it","bozen-suedtirol.it","bozen.it","br.it","brescia.it","brindisi.it","bs.it","bt.it","bulsan-sudtirol.it","bulsan-südtirol.it","bulsan-suedtirol.it","bulsan.it","bz.it","ca.it","cagliari.it","caltanissetta.it","campidano-medio.it","campidanomedio.it","campobasso.it","carbonia-iglesias.it","carboniaiglesias.it","carrara-massa.it","carraramassa.it","caserta.it","catania.it","catanzaro.it","cb.it","ce.it","cesena-forli.it","cesena-forlì.it","cesenaforli.it","cesenaforlì.it","ch.it","chieti.it","ci.it","cl.it","cn.it","co.it","como.it","cosenza.it","cr.it","cremona.it","crotone.it","cs.it","ct.it","cuneo.it","cz.it","dell-ogliastra.it","dellogliastra.it","en.it","enna.it","fc.it","fe.it","fermo.it","ferrara.it","fg.it","fi.it","firenze.it","florence.it","fm.it","foggia.it","forli-cesena.it","forlì-cesena.it","forlicesena.it","forlìcesena.it","fr.it","frosinone.it","ge.it","genoa.it","genova.it","go.it","gorizia.it","gr.it","grosseto.it","iglesias-carbonia.it","iglesiascarbonia.it","im.it","imperia.it","is.it","isernia.it","kr.it","la-spezia.it","laquila.it","laspezia.it","latina.it","lc.it","le.it","lecce.it","lecco.it","li.it","livorno.it","lo.it","lodi.it","lt.it","lu.it","lucca.it","macerata.it","mantova.it","massa-carrara.it","massacarrara.it","matera.it","mb.it","mc.it","me.it","medio-campidano.it","mediocampidano.it","messina.it","mi.it","milan.it","milano.it","mn.it","mo.it","modena.it","monza-brianza.it","monza-e-della-brianza.it","monza.it","monzabrianza.it","monzaebrianza.it","monzaedellabrianza.it","ms.it","mt.it","na.it","naples.it","napoli.it","no.it","novara.it","nu.it","nuoro.it","og.it","ogliastra.it","olbia-tempio.it","olbiatempio.it","or.it","oristano.it","ot.it","pa.it","padova.it","padua.it","palermo.it","parma.it","pavia.it","pc.it","pd.it","pe.it","perugia.it","pesaro-urbino.it","pesarourbino.it","pescara.it","pg.it","pi.it","piacenza.it","pisa.it","pistoia.it","pn.it","po.it","pordenone.it","potenza.it","pr.it","prato.it","pt.it","pu.it","pv.it","pz.it","ra.it","ragusa.it","ravenna.it","rc.it","re.it","reggio-calabria.it","reggio-emilia.it","reggiocalabria.it","reggioemilia.it","rg.it","ri.it","rieti.it","rimini.it","rm.it","rn.it","ro.it","roma.it","rome.it","rovigo.it","sa.it","salerno.it","sassari.it","savona.it","si.it","siena.it","siracusa.it","so.it","sondrio.it","sp.it","sr.it","ss.it","suedtirol.it","südtirol.it","sv.it","ta.it","taranto.it","te.it","tempio-olbia.it","tempioolbia.it","teramo.it","terni.it","tn.it","to.it","torino.it","tp.it","tr.it","trani-andria-barletta.it","trani-barletta-andria.it","traniandriabarletta.it","tranibarlettaandria.it","trapani.it","trento.it","treviso.it","trieste.it","ts.it","turin.it","tv.it","ud.it","udine.it","urbino-pesaro.it","urbinopesaro.it","va.it","varese.it","vb.it","vc.it","ve.it","venezia.it","venice.it","verbania.it","vercelli.it","verona.it","vi.it","vibo-valentia.it","vibovalentia.it","vicenza.it","viterbo.it","vr.it","vs.it","vt.it","vv.it","je","co.je","net.je","org.je","*.jm","jo","com.jo","org.jo","net.jo","edu.jo","sch.jo","gov.jo","mil.jo","name.jo","jobs","jp","ac.jp","ad.jp","co.jp","ed.jp","go.jp","gr.jp","lg.jp","ne.jp","or.jp","aichi.jp","akita.jp","aomori.jp","chiba.jp","ehime.jp","fukui.jp","fukuoka.jp","fukushima.jp","gifu.jp","gunma.jp","hiroshima.jp","hokkaido.jp","hyogo.jp","ibaraki.jp","ishikawa.jp","iwate.jp","kagawa.jp","kagoshima.jp","kanagawa.jp","kochi.jp","kumamoto.jp","kyoto.jp","mie.jp","miyagi.jp","miyazaki.jp","nagano.jp","nagasaki.jp","nara.jp","niigata.jp","oita.jp","okayama.jp","okinawa.jp","osaka.jp","saga.jp","saitama.jp","shiga.jp","shimane.jp","shizuoka.jp","tochigi.jp","tokushima.jp","tokyo.jp","tottori.jp","toyama.jp","wakayama.jp","yamagata.jp","yamaguchi.jp","yamanashi.jp","栃木.jp","愛知.jp","愛媛.jp","兵庫.jp","熊本.jp","茨城.jp","北海道.jp","千葉.jp","和歌山.jp","長崎.jp","長野.jp","新潟.jp","青森.jp","静岡.jp","東京.jp","石川.jp","埼玉.jp","三重.jp","京都.jp","佐賀.jp","大分.jp","大阪.jp","奈良.jp","宮城.jp","宮崎.jp","富山.jp","山口.jp","山形.jp","山梨.jp","岩手.jp","岐阜.jp","岡山.jp","島根.jp","広島.jp","徳島.jp","沖縄.jp","滋賀.jp","神奈川.jp","福井.jp","福岡.jp","福島.jp","秋田.jp","群馬.jp","香川.jp","高知.jp","鳥取.jp","鹿児島.jp","*.kawasaki.jp","*.kitakyushu.jp","*.kobe.jp","*.nagoya.jp","*.sapporo.jp","*.sendai.jp","*.yokohama.jp","!city.kawasaki.jp","!city.kitakyushu.jp","!city.kobe.jp","!city.nagoya.jp","!city.sapporo.jp","!city.sendai.jp","!city.yokohama.jp","aisai.aichi.jp","ama.aichi.jp","anjo.aichi.jp","asuke.aichi.jp","chiryu.aichi.jp","chita.aichi.jp","fuso.aichi.jp","gamagori.aichi.jp","handa.aichi.jp","hazu.aichi.jp","hekinan.aichi.jp","higashiura.aichi.jp","ichinomiya.aichi.jp","inazawa.aichi.jp","inuyama.aichi.jp","isshiki.aichi.jp","iwakura.aichi.jp","kanie.aichi.jp","kariya.aichi.jp","kasugai.aichi.jp","kira.aichi.jp","kiyosu.aichi.jp","komaki.aichi.jp","konan.aichi.jp","kota.aichi.jp","mihama.aichi.jp","miyoshi.aichi.jp","nishio.aichi.jp","nisshin.aichi.jp","obu.aichi.jp","oguchi.aichi.jp","oharu.aichi.jp","okazaki.aichi.jp","owariasahi.aichi.jp","seto.aichi.jp","shikatsu.aichi.jp","shinshiro.aichi.jp","shitara.aichi.jp","tahara.aichi.jp","takahama.aichi.jp","tobishima.aichi.jp","toei.aichi.jp","togo.aichi.jp","tokai.aichi.jp","tokoname.aichi.jp","toyoake.aichi.jp","toyohashi.aichi.jp","toyokawa.aichi.jp","toyone.aichi.jp","toyota.aichi.jp","tsushima.aichi.jp","yatomi.aichi.jp","akita.akita.jp","daisen.akita.jp","fujisato.akita.jp","gojome.akita.jp","hachirogata.akita.jp","happou.akita.jp","higashinaruse.akita.jp","honjo.akita.jp","honjyo.akita.jp","ikawa.akita.jp","kamikoani.akita.jp","kamioka.akita.jp","katagami.akita.jp","kazuno.akita.jp","kitaakita.akita.jp","kosaka.akita.jp","kyowa.akita.jp","misato.akita.jp","mitane.akita.jp","moriyoshi.akita.jp","nikaho.akita.jp","noshiro.akita.jp","odate.akita.jp","oga.akita.jp","ogata.akita.jp","semboku.akita.jp","yokote.akita.jp","yurihonjo.akita.jp","aomori.aomori.jp","gonohe.aomori.jp","hachinohe.aomori.jp","hashikami.aomori.jp","hiranai.aomori.jp","hirosaki.aomori.jp","itayanagi.aomori.jp","kuroishi.aomori.jp","misawa.aomori.jp","mutsu.aomori.jp","nakadomari.aomori.jp","noheji.aomori.jp","oirase.aomori.jp","owani.aomori.jp","rokunohe.aomori.jp","sannohe.aomori.jp","shichinohe.aomori.jp","shingo.aomori.jp","takko.aomori.jp","towada.aomori.jp","tsugaru.aomori.jp","tsuruta.aomori.jp","abiko.chiba.jp","asahi.chiba.jp","chonan.chiba.jp","chosei.chiba.jp","choshi.chiba.jp","chuo.chiba.jp","funabashi.chiba.jp","futtsu.chiba.jp","hanamigawa.chiba.jp","ichihara.chiba.jp","ichikawa.chiba.jp","ichinomiya.chiba.jp","inzai.chiba.jp","isumi.chiba.jp","kamagaya.chiba.jp","kamogawa.chiba.jp","kashiwa.chiba.jp","katori.chiba.jp","katsuura.chiba.jp","kimitsu.chiba.jp","kisarazu.chiba.jp","kozaki.chiba.jp","kujukuri.chiba.jp","kyonan.chiba.jp","matsudo.chiba.jp","midori.chiba.jp","mihama.chiba.jp","minamiboso.chiba.jp","mobara.chiba.jp","mutsuzawa.chiba.jp","nagara.chiba.jp","nagareyama.chiba.jp","narashino.chiba.jp","narita.chiba.jp","noda.chiba.jp","oamishirasato.chiba.jp","omigawa.chiba.jp","onjuku.chiba.jp","otaki.chiba.jp","sakae.chiba.jp","sakura.chiba.jp","shimofusa.chiba.jp","shirako.chiba.jp","shiroi.chiba.jp","shisui.chiba.jp","sodegaura.chiba.jp","sosa.chiba.jp","tako.chiba.jp","tateyama.chiba.jp","togane.chiba.jp","tohnosho.chiba.jp","tomisato.chiba.jp","urayasu.chiba.jp","yachimata.chiba.jp","yachiyo.chiba.jp","yokaichiba.chiba.jp","yokoshibahikari.chiba.jp","yotsukaido.chiba.jp","ainan.ehime.jp","honai.ehime.jp","ikata.ehime.jp","imabari.ehime.jp","iyo.ehime.jp","kamijima.ehime.jp","kihoku.ehime.jp","kumakogen.ehime.jp","masaki.ehime.jp","matsuno.ehime.jp","matsuyama.ehime.jp","namikata.ehime.jp","niihama.ehime.jp","ozu.ehime.jp","saijo.ehime.jp","seiyo.ehime.jp","shikokuchuo.ehime.jp","tobe.ehime.jp","toon.ehime.jp","uchiko.ehime.jp","uwajima.ehime.jp","yawatahama.ehime.jp","echizen.fukui.jp","eiheiji.fukui.jp","fukui.fukui.jp","ikeda.fukui.jp","katsuyama.fukui.jp","mihama.fukui.jp","minamiechizen.fukui.jp","obama.fukui.jp","ohi.fukui.jp","ono.fukui.jp","sabae.fukui.jp","sakai.fukui.jp","takahama.fukui.jp","tsuruga.fukui.jp","wakasa.fukui.jp","ashiya.fukuoka.jp","buzen.fukuoka.jp","chikugo.fukuoka.jp","chikuho.fukuoka.jp","chikujo.fukuoka.jp","chikushino.fukuoka.jp","chikuzen.fukuoka.jp","chuo.fukuoka.jp","dazaifu.fukuoka.jp","fukuchi.fukuoka.jp","hakata.fukuoka.jp","higashi.fukuoka.jp","hirokawa.fukuoka.jp","hisayama.fukuoka.jp","iizuka.fukuoka.jp","inatsuki.fukuoka.jp","kaho.fukuoka.jp","kasuga.fukuoka.jp","kasuya.fukuoka.jp","kawara.fukuoka.jp","keisen.fukuoka.jp","koga.fukuoka.jp","kurate.fukuoka.jp","kurogi.fukuoka.jp","kurume.fukuoka.jp","minami.fukuoka.jp","miyako.fukuoka.jp","miyama.fukuoka.jp","miyawaka.fukuoka.jp","mizumaki.fukuoka.jp","munakata.fukuoka.jp","nakagawa.fukuoka.jp","nakama.fukuoka.jp","nishi.fukuoka.jp","nogata.fukuoka.jp","ogori.fukuoka.jp","okagaki.fukuoka.jp","okawa.fukuoka.jp","oki.fukuoka.jp","omuta.fukuoka.jp","onga.fukuoka.jp","onojo.fukuoka.jp","oto.fukuoka.jp","saigawa.fukuoka.jp","sasaguri.fukuoka.jp","shingu.fukuoka.jp","shinyoshitomi.fukuoka.jp","shonai.fukuoka.jp","soeda.fukuoka.jp","sue.fukuoka.jp","tachiarai.fukuoka.jp","tagawa.fukuoka.jp","takata.fukuoka.jp","toho.fukuoka.jp","toyotsu.fukuoka.jp","tsuiki.fukuoka.jp","ukiha.fukuoka.jp","umi.fukuoka.jp","usui.fukuoka.jp","yamada.fukuoka.jp","yame.fukuoka.jp","yanagawa.fukuoka.jp","yukuhashi.fukuoka.jp","aizubange.fukushima.jp","aizumisato.fukushima.jp","aizuwakamatsu.fukushima.jp","asakawa.fukushima.jp","bandai.fukushima.jp","date.fukushima.jp","fukushima.fukushima.jp","furudono.fukushima.jp","futaba.fukushima.jp","hanawa.fukushima.jp","higashi.fukushima.jp","hirata.fukushima.jp","hirono.fukushima.jp","iitate.fukushima.jp","inawashiro.fukushima.jp","ishikawa.fukushima.jp","iwaki.fukushima.jp","izumizaki.fukushima.jp","kagamiishi.fukushima.jp","kaneyama.fukushima.jp","kawamata.fukushima.jp","kitakata.fukushima.jp","kitashiobara.fukushima.jp","koori.fukushima.jp","koriyama.fukushima.jp","kunimi.fukushima.jp","miharu.fukushima.jp","mishima.fukushima.jp","namie.fukushima.jp","nango.fukushima.jp","nishiaizu.fukushima.jp","nishigo.fukushima.jp","okuma.fukushima.jp","omotego.fukushima.jp","ono.fukushima.jp","otama.fukushima.jp","samegawa.fukushima.jp","shimogo.fukushima.jp","shirakawa.fukushima.jp","showa.fukushima.jp","soma.fukushima.jp","sukagawa.fukushima.jp","taishin.fukushima.jp","tamakawa.fukushima.jp","tanagura.fukushima.jp","tenei.fukushima.jp","yabuki.fukushima.jp","yamato.fukushima.jp","yamatsuri.fukushima.jp","yanaizu.fukushima.jp","yugawa.fukushima.jp","anpachi.gifu.jp","ena.gifu.jp","gifu.gifu.jp","ginan.gifu.jp","godo.gifu.jp","gujo.gifu.jp","hashima.gifu.jp","hichiso.gifu.jp","hida.gifu.jp","higashishirakawa.gifu.jp","ibigawa.gifu.jp","ikeda.gifu.jp","kakamigahara.gifu.jp","kani.gifu.jp","kasahara.gifu.jp","kasamatsu.gifu.jp","kawaue.gifu.jp","kitagata.gifu.jp","mino.gifu.jp","minokamo.gifu.jp","mitake.gifu.jp","mizunami.gifu.jp","motosu.gifu.jp","nakatsugawa.gifu.jp","ogaki.gifu.jp","sakahogi.gifu.jp","seki.gifu.jp","sekigahara.gifu.jp","shirakawa.gifu.jp","tajimi.gifu.jp","takayama.gifu.jp","tarui.gifu.jp","toki.gifu.jp","tomika.gifu.jp","wanouchi.gifu.jp","yamagata.gifu.jp","yaotsu.gifu.jp","yoro.gifu.jp","annaka.gunma.jp","chiyoda.gunma.jp","fujioka.gunma.jp","higashiagatsuma.gunma.jp","isesaki.gunma.jp","itakura.gunma.jp","kanna.gunma.jp","kanra.gunma.jp","katashina.gunma.jp","kawaba.gunma.jp","kiryu.gunma.jp","kusatsu.gunma.jp","maebashi.gunma.jp","meiwa.gunma.jp","midori.gunma.jp","minakami.gunma.jp","naganohara.gunma.jp","nakanojo.gunma.jp","nanmoku.gunma.jp","numata.gunma.jp","oizumi.gunma.jp","ora.gunma.jp","ota.gunma.jp","shibukawa.gunma.jp","shimonita.gunma.jp","shinto.gunma.jp","showa.gunma.jp","takasaki.gunma.jp","takayama.gunma.jp","tamamura.gunma.jp","tatebayashi.gunma.jp","tomioka.gunma.jp","tsukiyono.gunma.jp","tsumagoi.gunma.jp","ueno.gunma.jp","yoshioka.gunma.jp","asaminami.hiroshima.jp","daiwa.hiroshima.jp","etajima.hiroshima.jp","fuchu.hiroshima.jp","fukuyama.hiroshima.jp","hatsukaichi.hiroshima.jp","higashihiroshima.hiroshima.jp","hongo.hiroshima.jp","jinsekikogen.hiroshima.jp","kaita.hiroshima.jp","kui.hiroshima.jp","kumano.hiroshima.jp","kure.hiroshima.jp","mihara.hiroshima.jp","miyoshi.hiroshima.jp","naka.hiroshima.jp","onomichi.hiroshima.jp","osakikamijima.hiroshima.jp","otake.hiroshima.jp","saka.hiroshima.jp","sera.hiroshima.jp","seranishi.hiroshima.jp","shinichi.hiroshima.jp","shobara.hiroshima.jp","takehara.hiroshima.jp","abashiri.hokkaido.jp","abira.hokkaido.jp","aibetsu.hokkaido.jp","akabira.hokkaido.jp","akkeshi.hokkaido.jp","asahikawa.hokkaido.jp","ashibetsu.hokkaido.jp","ashoro.hokkaido.jp","assabu.hokkaido.jp","atsuma.hokkaido.jp","bibai.hokkaido.jp","biei.hokkaido.jp","bifuka.hokkaido.jp","bihoro.hokkaido.jp","biratori.hokkaido.jp","chippubetsu.hokkaido.jp","chitose.hokkaido.jp","date.hokkaido.jp","ebetsu.hokkaido.jp","embetsu.hokkaido.jp","eniwa.hokkaido.jp","erimo.hokkaido.jp","esan.hokkaido.jp","esashi.hokkaido.jp","fukagawa.hokkaido.jp","fukushima.hokkaido.jp","furano.hokkaido.jp","furubira.hokkaido.jp","haboro.hokkaido.jp","hakodate.hokkaido.jp","hamatonbetsu.hokkaido.jp","hidaka.hokkaido.jp","higashikagura.hokkaido.jp","higashikawa.hokkaido.jp","hiroo.hokkaido.jp","hokuryu.hokkaido.jp","hokuto.hokkaido.jp","honbetsu.hokkaido.jp","horokanai.hokkaido.jp","horonobe.hokkaido.jp","ikeda.hokkaido.jp","imakane.hokkaido.jp","ishikari.hokkaido.jp","iwamizawa.hokkaido.jp","iwanai.hokkaido.jp","kamifurano.hokkaido.jp","kamikawa.hokkaido.jp","kamishihoro.hokkaido.jp","kamisunagawa.hokkaido.jp","kamoenai.hokkaido.jp","kayabe.hokkaido.jp","kembuchi.hokkaido.jp","kikonai.hokkaido.jp","kimobetsu.hokkaido.jp","kitahiroshima.hokkaido.jp","kitami.hokkaido.jp","kiyosato.hokkaido.jp","koshimizu.hokkaido.jp","kunneppu.hokkaido.jp","kuriyama.hokkaido.jp","kuromatsunai.hokkaido.jp","kushiro.hokkaido.jp","kutchan.hokkaido.jp","kyowa.hokkaido.jp","mashike.hokkaido.jp","matsumae.hokkaido.jp","mikasa.hokkaido.jp","minamifurano.hokkaido.jp","mombetsu.hokkaido.jp","moseushi.hokkaido.jp","mukawa.hokkaido.jp","muroran.hokkaido.jp","naie.hokkaido.jp","nakagawa.hokkaido.jp","nakasatsunai.hokkaido.jp","nakatombetsu.hokkaido.jp","nanae.hokkaido.jp","nanporo.hokkaido.jp","nayoro.hokkaido.jp","nemuro.hokkaido.jp","niikappu.hokkaido.jp","niki.hokkaido.jp","nishiokoppe.hokkaido.jp","noboribetsu.hokkaido.jp","numata.hokkaido.jp","obihiro.hokkaido.jp","obira.hokkaido.jp","oketo.hokkaido.jp","okoppe.hokkaido.jp","otaru.hokkaido.jp","otobe.hokkaido.jp","otofuke.hokkaido.jp","otoineppu.hokkaido.jp","oumu.hokkaido.jp","ozora.hokkaido.jp","pippu.hokkaido.jp","rankoshi.hokkaido.jp","rebun.hokkaido.jp","rikubetsu.hokkaido.jp","rishiri.hokkaido.jp","rishirifuji.hokkaido.jp","saroma.hokkaido.jp","sarufutsu.hokkaido.jp","shakotan.hokkaido.jp","shari.hokkaido.jp","shibecha.hokkaido.jp","shibetsu.hokkaido.jp","shikabe.hokkaido.jp","shikaoi.hokkaido.jp","shimamaki.hokkaido.jp","shimizu.hokkaido.jp","shimokawa.hokkaido.jp","shinshinotsu.hokkaido.jp","shintoku.hokkaido.jp","shiranuka.hokkaido.jp","shiraoi.hokkaido.jp","shiriuchi.hokkaido.jp","sobetsu.hokkaido.jp","sunagawa.hokkaido.jp","taiki.hokkaido.jp","takasu.hokkaido.jp","takikawa.hokkaido.jp","takinoue.hokkaido.jp","teshikaga.hokkaido.jp","tobetsu.hokkaido.jp","tohma.hokkaido.jp","tomakomai.hokkaido.jp","tomari.hokkaido.jp","toya.hokkaido.jp","toyako.hokkaido.jp","toyotomi.hokkaido.jp","toyoura.hokkaido.jp","tsubetsu.hokkaido.jp","tsukigata.hokkaido.jp","urakawa.hokkaido.jp","urausu.hokkaido.jp","uryu.hokkaido.jp","utashinai.hokkaido.jp","wakkanai.hokkaido.jp","wassamu.hokkaido.jp","yakumo.hokkaido.jp","yoichi.hokkaido.jp","aioi.hyogo.jp","akashi.hyogo.jp","ako.hyogo.jp","amagasaki.hyogo.jp","aogaki.hyogo.jp","asago.hyogo.jp","ashiya.hyogo.jp","awaji.hyogo.jp","fukusaki.hyogo.jp","goshiki.hyogo.jp","harima.hyogo.jp","himeji.hyogo.jp","ichikawa.hyogo.jp","inagawa.hyogo.jp","itami.hyogo.jp","kakogawa.hyogo.jp","kamigori.hyogo.jp","kamikawa.hyogo.jp","kasai.hyogo.jp","kasuga.hyogo.jp","kawanishi.hyogo.jp","miki.hyogo.jp","minamiawaji.hyogo.jp","nishinomiya.hyogo.jp","nishiwaki.hyogo.jp","ono.hyogo.jp","sanda.hyogo.jp","sannan.hyogo.jp","sasayama.hyogo.jp","sayo.hyogo.jp","shingu.hyogo.jp","shinonsen.hyogo.jp","shiso.hyogo.jp","sumoto.hyogo.jp","taishi.hyogo.jp","taka.hyogo.jp","takarazuka.hyogo.jp","takasago.hyogo.jp","takino.hyogo.jp","tamba.hyogo.jp","tatsuno.hyogo.jp","toyooka.hyogo.jp","yabu.hyogo.jp","yashiro.hyogo.jp","yoka.hyogo.jp","yokawa.hyogo.jp","ami.ibaraki.jp","asahi.ibaraki.jp","bando.ibaraki.jp","chikusei.ibaraki.jp","daigo.ibaraki.jp","fujishiro.ibaraki.jp","hitachi.ibaraki.jp","hitachinaka.ibaraki.jp","hitachiomiya.ibaraki.jp","hitachiota.ibaraki.jp","ibaraki.ibaraki.jp","ina.ibaraki.jp","inashiki.ibaraki.jp","itako.ibaraki.jp","iwama.ibaraki.jp","joso.ibaraki.jp","kamisu.ibaraki.jp","kasama.ibaraki.jp","kashima.ibaraki.jp","kasumigaura.ibaraki.jp","koga.ibaraki.jp","miho.ibaraki.jp","mito.ibaraki.jp","moriya.ibaraki.jp","naka.ibaraki.jp","namegata.ibaraki.jp","oarai.ibaraki.jp","ogawa.ibaraki.jp","omitama.ibaraki.jp","ryugasaki.ibaraki.jp","sakai.ibaraki.jp","sakuragawa.ibaraki.jp","shimodate.ibaraki.jp","shimotsuma.ibaraki.jp","shirosato.ibaraki.jp","sowa.ibaraki.jp","suifu.ibaraki.jp","takahagi.ibaraki.jp","tamatsukuri.ibaraki.jp","tokai.ibaraki.jp","tomobe.ibaraki.jp","tone.ibaraki.jp","toride.ibaraki.jp","tsuchiura.ibaraki.jp","tsukuba.ibaraki.jp","uchihara.ibaraki.jp","ushiku.ibaraki.jp","yachiyo.ibaraki.jp","yamagata.ibaraki.jp","yawara.ibaraki.jp","yuki.ibaraki.jp","anamizu.ishikawa.jp","hakui.ishikawa.jp","hakusan.ishikawa.jp","kaga.ishikawa.jp","kahoku.ishikawa.jp","kanazawa.ishikawa.jp","kawakita.ishikawa.jp","komatsu.ishikawa.jp","nakanoto.ishikawa.jp","nanao.ishikawa.jp","nomi.ishikawa.jp","nonoichi.ishikawa.jp","noto.ishikawa.jp","shika.ishikawa.jp","suzu.ishikawa.jp","tsubata.ishikawa.jp","tsurugi.ishikawa.jp","uchinada.ishikawa.jp","wajima.ishikawa.jp","fudai.iwate.jp","fujisawa.iwate.jp","hanamaki.iwate.jp","hiraizumi.iwate.jp","hirono.iwate.jp","ichinohe.iwate.jp","ichinoseki.iwate.jp","iwaizumi.iwate.jp","iwate.iwate.jp","joboji.iwate.jp","kamaishi.iwate.jp","kanegasaki.iwate.jp","karumai.iwate.jp","kawai.iwate.jp","kitakami.iwate.jp","kuji.iwate.jp","kunohe.iwate.jp","kuzumaki.iwate.jp","miyako.iwate.jp","mizusawa.iwate.jp","morioka.iwate.jp","ninohe.iwate.jp","noda.iwate.jp","ofunato.iwate.jp","oshu.iwate.jp","otsuchi.iwate.jp","rikuzentakata.iwate.jp","shiwa.iwate.jp","shizukuishi.iwate.jp","sumita.iwate.jp","tanohata.iwate.jp","tono.iwate.jp","yahaba.iwate.jp","yamada.iwate.jp","ayagawa.kagawa.jp","higashikagawa.kagawa.jp","kanonji.kagawa.jp","kotohira.kagawa.jp","manno.kagawa.jp","marugame.kagawa.jp","mitoyo.kagawa.jp","naoshima.kagawa.jp","sanuki.kagawa.jp","tadotsu.kagawa.jp","takamatsu.kagawa.jp","tonosho.kagawa.jp","uchinomi.kagawa.jp","utazu.kagawa.jp","zentsuji.kagawa.jp","akune.kagoshima.jp","amami.kagoshima.jp","hioki.kagoshima.jp","isa.kagoshima.jp","isen.kagoshima.jp","izumi.kagoshima.jp","kagoshima.kagoshima.jp","kanoya.kagoshima.jp","kawanabe.kagoshima.jp","kinko.kagoshima.jp","kouyama.kagoshima.jp","makurazaki.kagoshima.jp","matsumoto.kagoshima.jp","minamitane.kagoshima.jp","nakatane.kagoshima.jp","nishinoomote.kagoshima.jp","satsumasendai.kagoshima.jp","soo.kagoshima.jp","tarumizu.kagoshima.jp","yusui.kagoshima.jp","aikawa.kanagawa.jp","atsugi.kanagawa.jp","ayase.kanagawa.jp","chigasaki.kanagawa.jp","ebina.kanagawa.jp","fujisawa.kanagawa.jp","hadano.kanagawa.jp","hakone.kanagawa.jp","hiratsuka.kanagawa.jp","isehara.kanagawa.jp","kaisei.kanagawa.jp","kamakura.kanagawa.jp","kiyokawa.kanagawa.jp","matsuda.kanagawa.jp","minamiashigara.kanagawa.jp","miura.kanagawa.jp","nakai.kanagawa.jp","ninomiya.kanagawa.jp","odawara.kanagawa.jp","oi.kanagawa.jp","oiso.kanagawa.jp","sagamihara.kanagawa.jp","samukawa.kanagawa.jp","tsukui.kanagawa.jp","yamakita.kanagawa.jp","yamato.kanagawa.jp","yokosuka.kanagawa.jp","yugawara.kanagawa.jp","zama.kanagawa.jp","zushi.kanagawa.jp","aki.kochi.jp","geisei.kochi.jp","hidaka.kochi.jp","higashitsuno.kochi.jp","ino.kochi.jp","kagami.kochi.jp","kami.kochi.jp","kitagawa.kochi.jp","kochi.kochi.jp","mihara.kochi.jp","motoyama.kochi.jp","muroto.kochi.jp","nahari.kochi.jp","nakamura.kochi.jp","nankoku.kochi.jp","nishitosa.kochi.jp","niyodogawa.kochi.jp","ochi.kochi.jp","okawa.kochi.jp","otoyo.kochi.jp","otsuki.kochi.jp","sakawa.kochi.jp","sukumo.kochi.jp","susaki.kochi.jp","tosa.kochi.jp","tosashimizu.kochi.jp","toyo.kochi.jp","tsuno.kochi.jp","umaji.kochi.jp","yasuda.kochi.jp","yusuhara.kochi.jp","amakusa.kumamoto.jp","arao.kumamoto.jp","aso.kumamoto.jp","choyo.kumamoto.jp","gyokuto.kumamoto.jp","kamiamakusa.kumamoto.jp","kikuchi.kumamoto.jp","kumamoto.kumamoto.jp","mashiki.kumamoto.jp","mifune.kumamoto.jp","minamata.kumamoto.jp","minamioguni.kumamoto.jp","nagasu.kumamoto.jp","nishihara.kumamoto.jp","oguni.kumamoto.jp","ozu.kumamoto.jp","sumoto.kumamoto.jp","takamori.kumamoto.jp","uki.kumamoto.jp","uto.kumamoto.jp","yamaga.kumamoto.jp","yamato.kumamoto.jp","yatsushiro.kumamoto.jp","ayabe.kyoto.jp","fukuchiyama.kyoto.jp","higashiyama.kyoto.jp","ide.kyoto.jp","ine.kyoto.jp","joyo.kyoto.jp","kameoka.kyoto.jp","kamo.kyoto.jp","kita.kyoto.jp","kizu.kyoto.jp","kumiyama.kyoto.jp","kyotamba.kyoto.jp","kyotanabe.kyoto.jp","kyotango.kyoto.jp","maizuru.kyoto.jp","minami.kyoto.jp","minamiyamashiro.kyoto.jp","miyazu.kyoto.jp","muko.kyoto.jp","nagaokakyo.kyoto.jp","nakagyo.kyoto.jp","nantan.kyoto.jp","oyamazaki.kyoto.jp","sakyo.kyoto.jp","seika.kyoto.jp","tanabe.kyoto.jp","uji.kyoto.jp","ujitawara.kyoto.jp","wazuka.kyoto.jp","yamashina.kyoto.jp","yawata.kyoto.jp","asahi.mie.jp","inabe.mie.jp","ise.mie.jp","kameyama.mie.jp","kawagoe.mie.jp","kiho.mie.jp","kisosaki.mie.jp","kiwa.mie.jp","komono.mie.jp","kumano.mie.jp","kuwana.mie.jp","matsusaka.mie.jp","meiwa.mie.jp","mihama.mie.jp","minamiise.mie.jp","misugi.mie.jp","miyama.mie.jp","nabari.mie.jp","shima.mie.jp","suzuka.mie.jp","tado.mie.jp","taiki.mie.jp","taki.mie.jp","tamaki.mie.jp","toba.mie.jp","tsu.mie.jp","udono.mie.jp","ureshino.mie.jp","watarai.mie.jp","yokkaichi.mie.jp","furukawa.miyagi.jp","higashimatsushima.miyagi.jp","ishinomaki.miyagi.jp","iwanuma.miyagi.jp","kakuda.miyagi.jp","kami.miyagi.jp","kawasaki.miyagi.jp","marumori.miyagi.jp","matsushima.miyagi.jp","minamisanriku.miyagi.jp","misato.miyagi.jp","murata.miyagi.jp","natori.miyagi.jp","ogawara.miyagi.jp","ohira.miyagi.jp","onagawa.miyagi.jp","osaki.miyagi.jp","rifu.miyagi.jp","semine.miyagi.jp","shibata.miyagi.jp","shichikashuku.miyagi.jp","shikama.miyagi.jp","shiogama.miyagi.jp","shiroishi.miyagi.jp","tagajo.miyagi.jp","taiwa.miyagi.jp","tome.miyagi.jp","tomiya.miyagi.jp","wakuya.miyagi.jp","watari.miyagi.jp","yamamoto.miyagi.jp","zao.miyagi.jp","aya.miyazaki.jp","ebino.miyazaki.jp","gokase.miyazaki.jp","hyuga.miyazaki.jp","kadogawa.miyazaki.jp","kawaminami.miyazaki.jp","kijo.miyazaki.jp","kitagawa.miyazaki.jp","kitakata.miyazaki.jp","kitaura.miyazaki.jp","kobayashi.miyazaki.jp","kunitomi.miyazaki.jp","kushima.miyazaki.jp","mimata.miyazaki.jp","miyakonojo.miyazaki.jp","miyazaki.miyazaki.jp","morotsuka.miyazaki.jp","nichinan.miyazaki.jp","nishimera.miyazaki.jp","nobeoka.miyazaki.jp","saito.miyazaki.jp","shiiba.miyazaki.jp","shintomi.miyazaki.jp","takaharu.miyazaki.jp","takanabe.miyazaki.jp","takazaki.miyazaki.jp","tsuno.miyazaki.jp","achi.nagano.jp","agematsu.nagano.jp","anan.nagano.jp","aoki.nagano.jp","asahi.nagano.jp","azumino.nagano.jp","chikuhoku.nagano.jp","chikuma.nagano.jp","chino.nagano.jp","fujimi.nagano.jp","hakuba.nagano.jp","hara.nagano.jp","hiraya.nagano.jp","iida.nagano.jp","iijima.nagano.jp","iiyama.nagano.jp","iizuna.nagano.jp","ikeda.nagano.jp","ikusaka.nagano.jp","ina.nagano.jp","karuizawa.nagano.jp","kawakami.nagano.jp","kiso.nagano.jp","kisofukushima.nagano.jp","kitaaiki.nagano.jp","komagane.nagano.jp","komoro.nagano.jp","matsukawa.nagano.jp","matsumoto.nagano.jp","miasa.nagano.jp","minamiaiki.nagano.jp","minamimaki.nagano.jp","minamiminowa.nagano.jp","minowa.nagano.jp","miyada.nagano.jp","miyota.nagano.jp","mochizuki.nagano.jp","nagano.nagano.jp","nagawa.nagano.jp","nagiso.nagano.jp","nakagawa.nagano.jp","nakano.nagano.jp","nozawaonsen.nagano.jp","obuse.nagano.jp","ogawa.nagano.jp","okaya.nagano.jp","omachi.nagano.jp","omi.nagano.jp","ookuwa.nagano.jp","ooshika.nagano.jp","otaki.nagano.jp","otari.nagano.jp","sakae.nagano.jp","sakaki.nagano.jp","saku.nagano.jp","sakuho.nagano.jp","shimosuwa.nagano.jp","shinanomachi.nagano.jp","shiojiri.nagano.jp","suwa.nagano.jp","suzaka.nagano.jp","takagi.nagano.jp","takamori.nagano.jp","takayama.nagano.jp","tateshina.nagano.jp","tatsuno.nagano.jp","togakushi.nagano.jp","togura.nagano.jp","tomi.nagano.jp","ueda.nagano.jp","wada.nagano.jp","yamagata.nagano.jp","yamanouchi.nagano.jp","yasaka.nagano.jp","yasuoka.nagano.jp","chijiwa.nagasaki.jp","futsu.nagasaki.jp","goto.nagasaki.jp","hasami.nagasaki.jp","hirado.nagasaki.jp","iki.nagasaki.jp","isahaya.nagasaki.jp","kawatana.nagasaki.jp","kuchinotsu.nagasaki.jp","matsuura.nagasaki.jp","nagasaki.nagasaki.jp","obama.nagasaki.jp","omura.nagasaki.jp","oseto.nagasaki.jp","saikai.nagasaki.jp","sasebo.nagasaki.jp","seihi.nagasaki.jp","shimabara.nagasaki.jp","shinkamigoto.nagasaki.jp","togitsu.nagasaki.jp","tsushima.nagasaki.jp","unzen.nagasaki.jp","ando.nara.jp","gose.nara.jp","heguri.nara.jp","higashiyoshino.nara.jp","ikaruga.nara.jp","ikoma.nara.jp","kamikitayama.nara.jp","kanmaki.nara.jp","kashiba.nara.jp","kashihara.nara.jp","katsuragi.nara.jp","kawai.nara.jp","kawakami.nara.jp","kawanishi.nara.jp","koryo.nara.jp","kurotaki.nara.jp","mitsue.nara.jp","miyake.nara.jp","nara.nara.jp","nosegawa.nara.jp","oji.nara.jp","ouda.nara.jp","oyodo.nara.jp","sakurai.nara.jp","sango.nara.jp","shimoichi.nara.jp","shimokitayama.nara.jp","shinjo.nara.jp","soni.nara.jp","takatori.nara.jp","tawaramoto.nara.jp","tenkawa.nara.jp","tenri.nara.jp","uda.nara.jp","yamatokoriyama.nara.jp","yamatotakada.nara.jp","yamazoe.nara.jp","yoshino.nara.jp","aga.niigata.jp","agano.niigata.jp","gosen.niigata.jp","itoigawa.niigata.jp","izumozaki.niigata.jp","joetsu.niigata.jp","kamo.niigata.jp","kariwa.niigata.jp","kashiwazaki.niigata.jp","minamiuonuma.niigata.jp","mitsuke.niigata.jp","muika.niigata.jp","murakami.niigata.jp","myoko.niigata.jp","nagaoka.niigata.jp","niigata.niigata.jp","ojiya.niigata.jp","omi.niigata.jp","sado.niigata.jp","sanjo.niigata.jp","seiro.niigata.jp","seirou.niigata.jp","sekikawa.niigata.jp","shibata.niigata.jp","tagami.niigata.jp","tainai.niigata.jp","tochio.niigata.jp","tokamachi.niigata.jp","tsubame.niigata.jp","tsunan.niigata.jp","uonuma.niigata.jp","yahiko.niigata.jp","yoita.niigata.jp","yuzawa.niigata.jp","beppu.oita.jp","bungoono.oita.jp","bungotakada.oita.jp","hasama.oita.jp","hiji.oita.jp","himeshima.oita.jp","hita.oita.jp","kamitsue.oita.jp","kokonoe.oita.jp","kuju.oita.jp","kunisaki.oita.jp","kusu.oita.jp","oita.oita.jp","saiki.oita.jp","taketa.oita.jp","tsukumi.oita.jp","usa.oita.jp","usuki.oita.jp","yufu.oita.jp","akaiwa.okayama.jp","asakuchi.okayama.jp","bizen.okayama.jp","hayashima.okayama.jp","ibara.okayama.jp","kagamino.okayama.jp","kasaoka.okayama.jp","kibichuo.okayama.jp","kumenan.okayama.jp","kurashiki.okayama.jp","maniwa.okayama.jp","misaki.okayama.jp","nagi.okayama.jp","niimi.okayama.jp","nishiawakura.okayama.jp","okayama.okayama.jp","satosho.okayama.jp","setouchi.okayama.jp","shinjo.okayama.jp","shoo.okayama.jp","soja.okayama.jp","takahashi.okayama.jp","tamano.okayama.jp","tsuyama.okayama.jp","wake.okayama.jp","yakage.okayama.jp","aguni.okinawa.jp","ginowan.okinawa.jp","ginoza.okinawa.jp","gushikami.okinawa.jp","haebaru.okinawa.jp","higashi.okinawa.jp","hirara.okinawa.jp","iheya.okinawa.jp","ishigaki.okinawa.jp","ishikawa.okinawa.jp","itoman.okinawa.jp","izena.okinawa.jp","kadena.okinawa.jp","kin.okinawa.jp","kitadaito.okinawa.jp","kitanakagusuku.okinawa.jp","kumejima.okinawa.jp","kunigami.okinawa.jp","minamidaito.okinawa.jp","motobu.okinawa.jp","nago.okinawa.jp","naha.okinawa.jp","nakagusuku.okinawa.jp","nakijin.okinawa.jp","nanjo.okinawa.jp","nishihara.okinawa.jp","ogimi.okinawa.jp","okinawa.okinawa.jp","onna.okinawa.jp","shimoji.okinawa.jp","taketomi.okinawa.jp","tarama.okinawa.jp","tokashiki.okinawa.jp","tomigusuku.okinawa.jp","tonaki.okinawa.jp","urasoe.okinawa.jp","uruma.okinawa.jp","yaese.okinawa.jp","yomitan.okinawa.jp","yonabaru.okinawa.jp","yonaguni.okinawa.jp","zamami.okinawa.jp","abeno.osaka.jp","chihayaakasaka.osaka.jp","chuo.osaka.jp","daito.osaka.jp","fujiidera.osaka.jp","habikino.osaka.jp","hannan.osaka.jp","higashiosaka.osaka.jp","higashisumiyoshi.osaka.jp","higashiyodogawa.osaka.jp","hirakata.osaka.jp","ibaraki.osaka.jp","ikeda.osaka.jp","izumi.osaka.jp","izumiotsu.osaka.jp","izumisano.osaka.jp","kadoma.osaka.jp","kaizuka.osaka.jp","kanan.osaka.jp","kashiwara.osaka.jp","katano.osaka.jp","kawachinagano.osaka.jp","kishiwada.osaka.jp","kita.osaka.jp","kumatori.osaka.jp","matsubara.osaka.jp","minato.osaka.jp","minoh.osaka.jp","misaki.osaka.jp","moriguchi.osaka.jp","neyagawa.osaka.jp","nishi.osaka.jp","nose.osaka.jp","osakasayama.osaka.jp","sakai.osaka.jp","sayama.osaka.jp","sennan.osaka.jp","settsu.osaka.jp","shijonawate.osaka.jp","shimamoto.osaka.jp","suita.osaka.jp","tadaoka.osaka.jp","taishi.osaka.jp","tajiri.osaka.jp","takaishi.osaka.jp","takatsuki.osaka.jp","tondabayashi.osaka.jp","toyonaka.osaka.jp","toyono.osaka.jp","yao.osaka.jp","ariake.saga.jp","arita.saga.jp","fukudomi.saga.jp","genkai.saga.jp","hamatama.saga.jp","hizen.saga.jp","imari.saga.jp","kamimine.saga.jp","kanzaki.saga.jp","karatsu.saga.jp","kashima.saga.jp","kitagata.saga.jp","kitahata.saga.jp","kiyama.saga.jp","kouhoku.saga.jp","kyuragi.saga.jp","nishiarita.saga.jp","ogi.saga.jp","omachi.saga.jp","ouchi.saga.jp","saga.saga.jp","shiroishi.saga.jp","taku.saga.jp","tara.saga.jp","tosu.saga.jp","yoshinogari.saga.jp","arakawa.saitama.jp","asaka.saitama.jp","chichibu.saitama.jp","fujimi.saitama.jp","fujimino.saitama.jp","fukaya.saitama.jp","hanno.saitama.jp","hanyu.saitama.jp","hasuda.saitama.jp","hatogaya.saitama.jp","hatoyama.saitama.jp","hidaka.saitama.jp","higashichichibu.saitama.jp","higashimatsuyama.saitama.jp","honjo.saitama.jp","ina.saitama.jp","iruma.saitama.jp","iwatsuki.saitama.jp","kamiizumi.saitama.jp","kamikawa.saitama.jp","kamisato.saitama.jp","kasukabe.saitama.jp","kawagoe.saitama.jp","kawaguchi.saitama.jp","kawajima.saitama.jp","kazo.saitama.jp","kitamoto.saitama.jp","koshigaya.saitama.jp","kounosu.saitama.jp","kuki.saitama.jp","kumagaya.saitama.jp","matsubushi.saitama.jp","minano.saitama.jp","misato.saitama.jp","miyashiro.saitama.jp","miyoshi.saitama.jp","moroyama.saitama.jp","nagatoro.saitama.jp","namegawa.saitama.jp","niiza.saitama.jp","ogano.saitama.jp","ogawa.saitama.jp","ogose.saitama.jp","okegawa.saitama.jp","omiya.saitama.jp","otaki.saitama.jp","ranzan.saitama.jp","ryokami.saitama.jp","saitama.saitama.jp","sakado.saitama.jp","satte.saitama.jp","sayama.saitama.jp","shiki.saitama.jp","shiraoka.saitama.jp","soka.saitama.jp","sugito.saitama.jp","toda.saitama.jp","tokigawa.saitama.jp","tokorozawa.saitama.jp","tsurugashima.saitama.jp","urawa.saitama.jp","warabi.saitama.jp","yashio.saitama.jp","yokoze.saitama.jp","yono.saitama.jp","yorii.saitama.jp","yoshida.saitama.jp","yoshikawa.saitama.jp","yoshimi.saitama.jp","aisho.shiga.jp","gamo.shiga.jp","higashiomi.shiga.jp","hikone.shiga.jp","koka.shiga.jp","konan.shiga.jp","kosei.shiga.jp","koto.shiga.jp","kusatsu.shiga.jp","maibara.shiga.jp","moriyama.shiga.jp","nagahama.shiga.jp","nishiazai.shiga.jp","notogawa.shiga.jp","omihachiman.shiga.jp","otsu.shiga.jp","ritto.shiga.jp","ryuoh.shiga.jp","takashima.shiga.jp","takatsuki.shiga.jp","torahime.shiga.jp","toyosato.shiga.jp","yasu.shiga.jp","akagi.shimane.jp","ama.shimane.jp","gotsu.shimane.jp","hamada.shimane.jp","higashiizumo.shimane.jp","hikawa.shimane.jp","hikimi.shimane.jp","izumo.shimane.jp","kakinoki.shimane.jp","masuda.shimane.jp","matsue.shimane.jp","misato.shimane.jp","nishinoshima.shimane.jp","ohda.shimane.jp","okinoshima.shimane.jp","okuizumo.shimane.jp","shimane.shimane.jp","tamayu.shimane.jp","tsuwano.shimane.jp","unnan.shimane.jp","yakumo.shimane.jp","yasugi.shimane.jp","yatsuka.shimane.jp","arai.shizuoka.jp","atami.shizuoka.jp","fuji.shizuoka.jp","fujieda.shizuoka.jp","fujikawa.shizuoka.jp","fujinomiya.shizuoka.jp","fukuroi.shizuoka.jp","gotemba.shizuoka.jp","haibara.shizuoka.jp","hamamatsu.shizuoka.jp","higashiizu.shizuoka.jp","ito.shizuoka.jp","iwata.shizuoka.jp","izu.shizuoka.jp","izunokuni.shizuoka.jp","kakegawa.shizuoka.jp","kannami.shizuoka.jp","kawanehon.shizuoka.jp","kawazu.shizuoka.jp","kikugawa.shizuoka.jp","kosai.shizuoka.jp","makinohara.shizuoka.jp","matsuzaki.shizuoka.jp","minamiizu.shizuoka.jp","mishima.shizuoka.jp","morimachi.shizuoka.jp","nishiizu.shizuoka.jp","numazu.shizuoka.jp","omaezaki.shizuoka.jp","shimada.shizuoka.jp","shimizu.shizuoka.jp","shimoda.shizuoka.jp","shizuoka.shizuoka.jp","susono.shizuoka.jp","yaizu.shizuoka.jp","yoshida.shizuoka.jp","ashikaga.tochigi.jp","bato.tochigi.jp","haga.tochigi.jp","ichikai.tochigi.jp","iwafune.tochigi.jp","kaminokawa.tochigi.jp","kanuma.tochigi.jp","karasuyama.tochigi.jp","kuroiso.tochigi.jp","mashiko.tochigi.jp","mibu.tochigi.jp","moka.tochigi.jp","motegi.tochigi.jp","nasu.tochigi.jp","nasushiobara.tochigi.jp","nikko.tochigi.jp","nishikata.tochigi.jp","nogi.tochigi.jp","ohira.tochigi.jp","ohtawara.tochigi.jp","oyama.tochigi.jp","sakura.tochigi.jp","sano.tochigi.jp","shimotsuke.tochigi.jp","shioya.tochigi.jp","takanezawa.tochigi.jp","tochigi.tochigi.jp","tsuga.tochigi.jp","ujiie.tochigi.jp","utsunomiya.tochigi.jp","yaita.tochigi.jp","aizumi.tokushima.jp","anan.tokushima.jp","ichiba.tokushima.jp","itano.tokushima.jp","kainan.tokushima.jp","komatsushima.tokushima.jp","matsushige.tokushima.jp","mima.tokushima.jp","minami.tokushima.jp","miyoshi.tokushima.jp","mugi.tokushima.jp","nakagawa.tokushima.jp","naruto.tokushima.jp","sanagochi.tokushima.jp","shishikui.tokushima.jp","tokushima.tokushima.jp","wajiki.tokushima.jp","adachi.tokyo.jp","akiruno.tokyo.jp","akishima.tokyo.jp","aogashima.tokyo.jp","arakawa.tokyo.jp","bunkyo.tokyo.jp","chiyoda.tokyo.jp","chofu.tokyo.jp","chuo.tokyo.jp","edogawa.tokyo.jp","fuchu.tokyo.jp","fussa.tokyo.jp","hachijo.tokyo.jp","hachioji.tokyo.jp","hamura.tokyo.jp","higashikurume.tokyo.jp","higashimurayama.tokyo.jp","higashiyamato.tokyo.jp","hino.tokyo.jp","hinode.tokyo.jp","hinohara.tokyo.jp","inagi.tokyo.jp","itabashi.tokyo.jp","katsushika.tokyo.jp","kita.tokyo.jp","kiyose.tokyo.jp","kodaira.tokyo.jp","koganei.tokyo.jp","kokubunji.tokyo.jp","komae.tokyo.jp","koto.tokyo.jp","kouzushima.tokyo.jp","kunitachi.tokyo.jp","machida.tokyo.jp","meguro.tokyo.jp","minato.tokyo.jp","mitaka.tokyo.jp","mizuho.tokyo.jp","musashimurayama.tokyo.jp","musashino.tokyo.jp","nakano.tokyo.jp","nerima.tokyo.jp","ogasawara.tokyo.jp","okutama.tokyo.jp","ome.tokyo.jp","oshima.tokyo.jp","ota.tokyo.jp","setagaya.tokyo.jp","shibuya.tokyo.jp","shinagawa.tokyo.jp","shinjuku.tokyo.jp","suginami.tokyo.jp","sumida.tokyo.jp","tachikawa.tokyo.jp","taito.tokyo.jp","tama.tokyo.jp","toshima.tokyo.jp","chizu.tottori.jp","hino.tottori.jp","kawahara.tottori.jp","koge.tottori.jp","kotoura.tottori.jp","misasa.tottori.jp","nanbu.tottori.jp","nichinan.tottori.jp","sakaiminato.tottori.jp","tottori.tottori.jp","wakasa.tottori.jp","yazu.tottori.jp","yonago.tottori.jp","asahi.toyama.jp","fuchu.toyama.jp","fukumitsu.toyama.jp","funahashi.toyama.jp","himi.toyama.jp","imizu.toyama.jp","inami.toyama.jp","johana.toyama.jp","kamiichi.toyama.jp","kurobe.toyama.jp","nakaniikawa.toyama.jp","namerikawa.toyama.jp","nanto.toyama.jp","nyuzen.toyama.jp","oyabe.toyama.jp","taira.toyama.jp","takaoka.toyama.jp","tateyama.toyama.jp","toga.toyama.jp","tonami.toyama.jp","toyama.toyama.jp","unazuki.toyama.jp","uozu.toyama.jp","yamada.toyama.jp","arida.wakayama.jp","aridagawa.wakayama.jp","gobo.wakayama.jp","hashimoto.wakayama.jp","hidaka.wakayama.jp","hirogawa.wakayama.jp","inami.wakayama.jp","iwade.wakayama.jp","kainan.wakayama.jp","kamitonda.wakayama.jp","katsuragi.wakayama.jp","kimino.wakayama.jp","kinokawa.wakayama.jp","kitayama.wakayama.jp","koya.wakayama.jp","koza.wakayama.jp","kozagawa.wakayama.jp","kudoyama.wakayama.jp","kushimoto.wakayama.jp","mihama.wakayama.jp","misato.wakayama.jp","nachikatsuura.wakayama.jp","shingu.wakayama.jp","shirahama.wakayama.jp","taiji.wakayama.jp","tanabe.wakayama.jp","wakayama.wakayama.jp","yuasa.wakayama.jp","yura.wakayama.jp","asahi.yamagata.jp","funagata.yamagata.jp","higashine.yamagata.jp","iide.yamagata.jp","kahoku.yamagata.jp","kaminoyama.yamagata.jp","kaneyama.yamagata.jp","kawanishi.yamagata.jp","mamurogawa.yamagata.jp","mikawa.yamagata.jp","murayama.yamagata.jp","nagai.yamagata.jp","nakayama.yamagata.jp","nanyo.yamagata.jp","nishikawa.yamagata.jp","obanazawa.yamagata.jp","oe.yamagata.jp","oguni.yamagata.jp","ohkura.yamagata.jp","oishida.yamagata.jp","sagae.yamagata.jp","sakata.yamagata.jp","sakegawa.yamagata.jp","shinjo.yamagata.jp","shirataka.yamagata.jp","shonai.yamagata.jp","takahata.yamagata.jp","tendo.yamagata.jp","tozawa.yamagata.jp","tsuruoka.yamagata.jp","yamagata.yamagata.jp","yamanobe.yamagata.jp","yonezawa.yamagata.jp","yuza.yamagata.jp","abu.yamaguchi.jp","hagi.yamaguchi.jp","hikari.yamaguchi.jp","hofu.yamaguchi.jp","iwakuni.yamaguchi.jp","kudamatsu.yamaguchi.jp","mitou.yamaguchi.jp","nagato.yamaguchi.jp","oshima.yamaguchi.jp","shimonoseki.yamaguchi.jp","shunan.yamaguchi.jp","tabuse.yamaguchi.jp","tokuyama.yamaguchi.jp","toyota.yamaguchi.jp","ube.yamaguchi.jp","yuu.yamaguchi.jp","chuo.yamanashi.jp","doshi.yamanashi.jp","fuefuki.yamanashi.jp","fujikawa.yamanashi.jp","fujikawaguchiko.yamanashi.jp","fujiyoshida.yamanashi.jp","hayakawa.yamanashi.jp","hokuto.yamanashi.jp","ichikawamisato.yamanashi.jp","kai.yamanashi.jp","kofu.yamanashi.jp","koshu.yamanashi.jp","kosuge.yamanashi.jp","minami-alps.yamanashi.jp","minobu.yamanashi.jp","nakamichi.yamanashi.jp","nanbu.yamanashi.jp","narusawa.yamanashi.jp","nirasaki.yamanashi.jp","nishikatsura.yamanashi.jp","oshino.yamanashi.jp","otsuki.yamanashi.jp","showa.yamanashi.jp","tabayama.yamanashi.jp","tsuru.yamanashi.jp","uenohara.yamanashi.jp","yamanakako.yamanashi.jp","yamanashi.yamanashi.jp","ke","ac.ke","co.ke","go.ke","info.ke","me.ke","mobi.ke","ne.ke","or.ke","sc.ke","kg","org.kg","net.kg","com.kg","edu.kg","gov.kg","mil.kg","*.kh","ki","edu.ki","biz.ki","net.ki","org.ki","gov.ki","info.ki","com.ki","km","org.km","nom.km","gov.km","prd.km","tm.km","edu.km","mil.km","ass.km","com.km","coop.km","asso.km","presse.km","medecin.km","notaires.km","pharmaciens.km","veterinaire.km","gouv.km","kn","net.kn","org.kn","edu.kn","gov.kn","kp","com.kp","edu.kp","gov.kp","org.kp","rep.kp","tra.kp","kr","ac.kr","co.kr","es.kr","go.kr","hs.kr","kg.kr","mil.kr","ms.kr","ne.kr","or.kr","pe.kr","re.kr","sc.kr","busan.kr","chungbuk.kr","chungnam.kr","daegu.kr","daejeon.kr","gangwon.kr","gwangju.kr","gyeongbuk.kr","gyeonggi.kr","gyeongnam.kr","incheon.kr","jeju.kr","jeonbuk.kr","jeonnam.kr","seoul.kr","ulsan.kr","kw","com.kw","edu.kw","emb.kw","gov.kw","ind.kw","net.kw","org.kw","ky","com.ky","edu.ky","net.ky","org.ky","kz","org.kz","edu.kz","net.kz","gov.kz","mil.kz","com.kz","la","int.la","net.la","info.la","edu.la","gov.la","per.la","com.la","org.la","lb","com.lb","edu.lb","gov.lb","net.lb","org.lb","lc","com.lc","net.lc","co.lc","org.lc","edu.lc","gov.lc","li","lk","gov.lk","sch.lk","net.lk","int.lk","com.lk","org.lk","edu.lk","ngo.lk","soc.lk","web.lk","ltd.lk","assn.lk","grp.lk","hotel.lk","ac.lk","lr","com.lr","edu.lr","gov.lr","org.lr","net.lr","ls","ac.ls","biz.ls","co.ls","edu.ls","gov.ls","info.ls","net.ls","org.ls","sc.ls","lt","gov.lt","lu","lv","com.lv","edu.lv","gov.lv","org.lv","mil.lv","id.lv","net.lv","asn.lv","conf.lv","ly","com.ly","net.ly","gov.ly","plc.ly","edu.ly","sch.ly","med.ly","org.ly","id.ly","ma","co.ma","net.ma","gov.ma","org.ma","ac.ma","press.ma","mc","tm.mc","asso.mc","md","me","co.me","net.me","org.me","edu.me","ac.me","gov.me","its.me","priv.me","mg","org.mg","nom.mg","gov.mg","prd.mg","tm.mg","edu.mg","mil.mg","com.mg","co.mg","mh","mil","mk","com.mk","org.mk","net.mk","edu.mk","gov.mk","inf.mk","name.mk","ml","com.ml","edu.ml","gouv.ml","gov.ml","net.ml","org.ml","presse.ml","*.mm","mn","gov.mn","edu.mn","org.mn","mo","com.mo","net.mo","org.mo","edu.mo","gov.mo","mobi","mp","mq","mr","gov.mr","ms","com.ms","edu.ms","gov.ms","net.ms","org.ms","mt","com.mt","edu.mt","net.mt","org.mt","mu","com.mu","net.mu","org.mu","gov.mu","ac.mu","co.mu","or.mu","museum","academy.museum","agriculture.museum","air.museum","airguard.museum","alabama.museum","alaska.museum","amber.museum","ambulance.museum","american.museum","americana.museum","americanantiques.museum","americanart.museum","amsterdam.museum","and.museum","annefrank.museum","anthro.museum","anthropology.museum","antiques.museum","aquarium.museum","arboretum.museum","archaeological.museum","archaeology.museum","architecture.museum","art.museum","artanddesign.museum","artcenter.museum","artdeco.museum","arteducation.museum","artgallery.museum","arts.museum","artsandcrafts.museum","asmatart.museum","assassination.museum","assisi.museum","association.museum","astronomy.museum","atlanta.museum","austin.museum","australia.museum","automotive.museum","aviation.museum","axis.museum","badajoz.museum","baghdad.museum","bahn.museum","bale.museum","baltimore.museum","barcelona.museum","baseball.museum","basel.museum","baths.museum","bauern.museum","beauxarts.museum","beeldengeluid.museum","bellevue.museum","bergbau.museum","berkeley.museum","berlin.museum","bern.museum","bible.museum","bilbao.museum","bill.museum","birdart.museum","birthplace.museum","bonn.museum","boston.museum","botanical.museum","botanicalgarden.museum","botanicgarden.museum","botany.museum","brandywinevalley.museum","brasil.museum","bristol.museum","british.museum","britishcolumbia.museum","broadcast.museum","brunel.museum","brussel.museum","brussels.museum","bruxelles.museum","building.museum","burghof.museum","bus.museum","bushey.museum","cadaques.museum","california.museum","cambridge.museum","can.museum","canada.museum","capebreton.museum","carrier.museum","cartoonart.museum","casadelamoneda.museum","castle.museum","castres.museum","celtic.museum","center.museum","chattanooga.museum","cheltenham.museum","chesapeakebay.museum","chicago.museum","children.museum","childrens.museum","childrensgarden.museum","chiropractic.museum","chocolate.museum","christiansburg.museum","cincinnati.museum","cinema.museum","circus.museum","civilisation.museum","civilization.museum","civilwar.museum","clinton.museum","clock.museum","coal.museum","coastaldefence.museum","cody.museum","coldwar.museum","collection.museum","colonialwilliamsburg.museum","coloradoplateau.museum","columbia.museum","columbus.museum","communication.museum","communications.museum","community.museum","computer.museum","computerhistory.museum","comunicações.museum","contemporary.museum","contemporaryart.museum","convent.museum","copenhagen.museum","corporation.museum","correios-e-telecomunicações.museum","corvette.museum","costume.museum","countryestate.museum","county.museum","crafts.museum","cranbrook.museum","creation.museum","cultural.museum","culturalcenter.museum","culture.museum","cyber.museum","cymru.museum","dali.museum","dallas.museum","database.museum","ddr.museum","decorativearts.museum","delaware.museum","delmenhorst.museum","denmark.museum","depot.museum","design.museum","detroit.museum","dinosaur.museum","discovery.museum","dolls.museum","donostia.museum","durham.museum","eastafrica.museum","eastcoast.museum","education.museum","educational.museum","egyptian.museum","eisenbahn.museum","elburg.museum","elvendrell.museum","embroidery.museum","encyclopedic.museum","england.museum","entomology.museum","environment.museum","environmentalconservation.museum","epilepsy.museum","essex.museum","estate.museum","ethnology.museum","exeter.museum","exhibition.museum","family.museum","farm.museum","farmequipment.museum","farmers.museum","farmstead.museum","field.museum","figueres.museum","filatelia.museum","film.museum","fineart.museum","finearts.museum","finland.museum","flanders.museum","florida.museum","force.museum","fortmissoula.museum","fortworth.museum","foundation.museum","francaise.museum","frankfurt.museum","franziskaner.museum","freemasonry.museum","freiburg.museum","fribourg.museum","frog.museum","fundacio.museum","furniture.museum","gallery.museum","garden.museum","gateway.museum","geelvinck.museum","gemological.museum","geology.museum","georgia.museum","giessen.museum","glas.museum","glass.museum","gorge.museum","grandrapids.museum","graz.museum","guernsey.museum","halloffame.museum","hamburg.museum","handson.museum","harvestcelebration.museum","hawaii.museum","health.museum","heimatunduhren.museum","hellas.museum","helsinki.museum","hembygdsforbund.museum","heritage.museum","histoire.museum","historical.museum","historicalsociety.museum","historichouses.museum","historisch.museum","historisches.museum","history.museum","historyofscience.museum","horology.museum","house.museum","humanities.museum","illustration.museum","imageandsound.museum","indian.museum","indiana.museum","indianapolis.museum","indianmarket.museum","intelligence.museum","interactive.museum","iraq.museum","iron.museum","isleofman.museum","jamison.museum","jefferson.museum","jerusalem.museum","jewelry.museum","jewish.museum","jewishart.museum","jfk.museum","journalism.museum","judaica.museum","judygarland.museum","juedisches.museum","juif.museum","karate.museum","karikatur.museum","kids.museum","koebenhavn.museum","koeln.museum","kunst.museum","kunstsammlung.museum","kunstunddesign.museum","labor.museum","labour.museum","lajolla.museum","lancashire.museum","landes.museum","lans.museum","läns.museum","larsson.museum","lewismiller.museum","lincoln.museum","linz.museum","living.museum","livinghistory.museum","localhistory.museum","london.museum","losangeles.museum","louvre.museum","loyalist.museum","lucerne.museum","luxembourg.museum","luzern.museum","mad.museum","madrid.museum","mallorca.museum","manchester.museum","mansion.museum","mansions.museum","manx.museum","marburg.museum","maritime.museum","maritimo.museum","maryland.museum","marylhurst.museum","media.museum","medical.museum","medizinhistorisches.museum","meeres.museum","memorial.museum","mesaverde.museum","michigan.museum","midatlantic.museum","military.museum","mill.museum","miners.museum","mining.museum","minnesota.museum","missile.museum","missoula.museum","modern.museum","moma.museum","money.museum","monmouth.museum","monticello.museum","montreal.museum","moscow.museum","motorcycle.museum","muenchen.museum","muenster.museum","mulhouse.museum","muncie.museum","museet.museum","museumcenter.museum","museumvereniging.museum","music.museum","national.museum","nationalfirearms.museum","nationalheritage.museum","nativeamerican.museum","naturalhistory.museum","naturalhistorymuseum.museum","naturalsciences.museum","nature.museum","naturhistorisches.museum","natuurwetenschappen.museum","naumburg.museum","naval.museum","nebraska.museum","neues.museum","newhampshire.museum","newjersey.museum","newmexico.museum","newport.museum","newspaper.museum","newyork.museum","niepce.museum","norfolk.museum","north.museum","nrw.museum","nyc.museum","nyny.museum","oceanographic.museum","oceanographique.museum","omaha.museum","online.museum","ontario.museum","openair.museum","oregon.museum","oregontrail.museum","otago.museum","oxford.museum","pacific.museum","paderborn.museum","palace.museum","paleo.museum","palmsprings.museum","panama.museum","paris.museum","pasadena.museum","pharmacy.museum","philadelphia.museum","philadelphiaarea.museum","philately.museum","phoenix.museum","photography.museum","pilots.museum","pittsburgh.museum","planetarium.museum","plantation.museum","plants.museum","plaza.museum","portal.museum","portland.museum","portlligat.museum","posts-and-telecommunications.museum","preservation.museum","presidio.museum","press.museum","project.museum","public.museum","pubol.museum","quebec.museum","railroad.museum","railway.museum","research.museum","resistance.museum","riodejaneiro.museum","rochester.museum","rockart.museum","roma.museum","russia.museum","saintlouis.museum","salem.museum","salvadordali.museum","salzburg.museum","sandiego.museum","sanfrancisco.museum","santabarbara.museum","santacruz.museum","santafe.museum","saskatchewan.museum","satx.museum","savannahga.museum","schlesisches.museum","schoenbrunn.museum","schokoladen.museum","school.museum","schweiz.museum","science.museum","scienceandhistory.museum","scienceandindustry.museum","sciencecenter.museum","sciencecenters.museum","science-fiction.museum","sciencehistory.museum","sciences.museum","sciencesnaturelles.museum","scotland.museum","seaport.museum","settlement.museum","settlers.museum","shell.museum","sherbrooke.museum","sibenik.museum","silk.museum","ski.museum","skole.museum","society.museum","sologne.museum","soundandvision.museum","southcarolina.museum","southwest.museum","space.museum","spy.museum","square.museum","stadt.museum","stalbans.museum","starnberg.museum","state.museum","stateofdelaware.museum","station.museum","steam.museum","steiermark.museum","stjohn.museum","stockholm.museum","stpetersburg.museum","stuttgart.museum","suisse.museum","surgeonshall.museum","surrey.museum","svizzera.museum","sweden.museum","sydney.museum","tank.museum","tcm.museum","technology.museum","telekommunikation.museum","television.museum","texas.museum","textile.museum","theater.museum","time.museum","timekeeping.museum","topology.museum","torino.museum","touch.museum","town.museum","transport.museum","tree.museum","trolley.museum","trust.museum","trustee.museum","uhren.museum","ulm.museum","undersea.museum","university.museum","usa.museum","usantiques.museum","usarts.museum","uscountryestate.museum","usculture.museum","usdecorativearts.museum","usgarden.museum","ushistory.museum","ushuaia.museum","uslivinghistory.museum","utah.museum","uvic.museum","valley.museum","vantaa.museum","versailles.museum","viking.museum","village.museum","virginia.museum","virtual.museum","virtuel.museum","vlaanderen.museum","volkenkunde.museum","wales.museum","wallonie.museum","war.museum","washingtondc.museum","watchandclock.museum","watch-and-clock.museum","western.museum","westfalen.museum","whaling.museum","wildlife.museum","williamsburg.museum","windmill.museum","workshop.museum","york.museum","yorkshire.museum","yosemite.museum","youth.museum","zoological.museum","zoology.museum","ירושלים.museum","иком.museum","mv","aero.mv","biz.mv","com.mv","coop.mv","edu.mv","gov.mv","info.mv","int.mv","mil.mv","museum.mv","name.mv","net.mv","org.mv","pro.mv","mw","ac.mw","biz.mw","co.mw","com.mw","coop.mw","edu.mw","gov.mw","int.mw","museum.mw","net.mw","org.mw","mx","com.mx","org.mx","gob.mx","edu.mx","net.mx","my","biz.my","com.my","edu.my","gov.my","mil.my","name.my","net.my","org.my","mz","ac.mz","adv.mz","co.mz","edu.mz","gov.mz","mil.mz","net.mz","org.mz","na","info.na","pro.na","name.na","school.na","or.na","dr.na","us.na","mx.na","ca.na","in.na","cc.na","tv.na","ws.na","mobi.na","co.na","com.na","org.na","name","nc","asso.nc","nom.nc","ne","net","nf","com.nf","net.nf","per.nf","rec.nf","web.nf","arts.nf","firm.nf","info.nf","other.nf","store.nf","ng","com.ng","edu.ng","gov.ng","i.ng","mil.ng","mobi.ng","name.ng","net.ng","org.ng","sch.ng","ni","ac.ni","biz.ni","co.ni","com.ni","edu.ni","gob.ni","in.ni","info.ni","int.ni","mil.ni","net.ni","nom.ni","org.ni","web.ni","nl","no","fhs.no","vgs.no","fylkesbibl.no","folkebibl.no","museum.no","idrett.no","priv.no","mil.no","stat.no","dep.no","kommune.no","herad.no","aa.no","ah.no","bu.no","fm.no","hl.no","hm.no","jan-mayen.no","mr.no","nl.no","nt.no","of.no","ol.no","oslo.no","rl.no","sf.no","st.no","svalbard.no","tm.no","tr.no","va.no","vf.no","gs.aa.no","gs.ah.no","gs.bu.no","gs.fm.no","gs.hl.no","gs.hm.no","gs.jan-mayen.no","gs.mr.no","gs.nl.no","gs.nt.no","gs.of.no","gs.ol.no","gs.oslo.no","gs.rl.no","gs.sf.no","gs.st.no","gs.svalbard.no","gs.tm.no","gs.tr.no","gs.va.no","gs.vf.no","akrehamn.no","åkrehamn.no","algard.no","ålgård.no","arna.no","brumunddal.no","bryne.no","bronnoysund.no","brønnøysund.no","drobak.no","drøbak.no","egersund.no","fetsund.no","floro.no","florø.no","fredrikstad.no","hokksund.no","honefoss.no","hønefoss.no","jessheim.no","jorpeland.no","jørpeland.no","kirkenes.no","kopervik.no","krokstadelva.no","langevag.no","langevåg.no","leirvik.no","mjondalen.no","mjøndalen.no","mo-i-rana.no","mosjoen.no","mosjøen.no","nesoddtangen.no","orkanger.no","osoyro.no","osøyro.no","raholt.no","råholt.no","sandnessjoen.no","sandnessjøen.no","skedsmokorset.no","slattum.no","spjelkavik.no","stathelle.no","stavern.no","stjordalshalsen.no","stjørdalshalsen.no","tananger.no","tranby.no","vossevangen.no","afjord.no","åfjord.no","agdenes.no","al.no","ål.no","alesund.no","ålesund.no","alstahaug.no","alta.no","áltá.no","alaheadju.no","álaheadju.no","alvdal.no","amli.no","åmli.no","amot.no","åmot.no","andebu.no","andoy.no","andøy.no","andasuolo.no","ardal.no","årdal.no","aremark.no","arendal.no","ås.no","aseral.no","åseral.no","asker.no","askim.no","askvoll.no","askoy.no","askøy.no","asnes.no","åsnes.no","audnedaln.no","aukra.no","aure.no","aurland.no","aurskog-holand.no","aurskog-høland.no","austevoll.no","austrheim.no","averoy.no","averøy.no","balestrand.no","ballangen.no","balat.no","bálát.no","balsfjord.no","bahccavuotna.no","báhccavuotna.no","bamble.no","bardu.no","beardu.no","beiarn.no","bajddar.no","bájddar.no","baidar.no","báidár.no","berg.no","bergen.no","berlevag.no","berlevåg.no","bearalvahki.no","bearalváhki.no","bindal.no","birkenes.no","bjarkoy.no","bjarkøy.no","bjerkreim.no","bjugn.no","bodo.no","bodø.no","badaddja.no","bådåddjå.no","budejju.no","bokn.no","bremanger.no","bronnoy.no","brønnøy.no","bygland.no","bykle.no","barum.no","bærum.no","bo.telemark.no","bø.telemark.no","bo.nordland.no","bø.nordland.no","bievat.no","bievát.no","bomlo.no","bømlo.no","batsfjord.no","båtsfjord.no","bahcavuotna.no","báhcavuotna.no","dovre.no","drammen.no","drangedal.no","dyroy.no","dyrøy.no","donna.no","dønna.no","eid.no","eidfjord.no","eidsberg.no","eidskog.no","eidsvoll.no","eigersund.no","elverum.no","enebakk.no","engerdal.no","etne.no","etnedal.no","evenes.no","evenassi.no","evenášši.no","evje-og-hornnes.no","farsund.no","fauske.no","fuossko.no","fuoisku.no","fedje.no","fet.no","finnoy.no","finnøy.no","fitjar.no","fjaler.no","fjell.no","flakstad.no","flatanger.no","flekkefjord.no","flesberg.no","flora.no","fla.no","flå.no","folldal.no","forsand.no","fosnes.no","frei.no","frogn.no","froland.no","frosta.no","frana.no","fræna.no","froya.no","frøya.no","fusa.no","fyresdal.no","forde.no","førde.no","gamvik.no","gangaviika.no","gáŋgaviika.no","gaular.no","gausdal.no","gildeskal.no","gildeskål.no","giske.no","gjemnes.no","gjerdrum.no","gjerstad.no","gjesdal.no","gjovik.no","gjøvik.no","gloppen.no","gol.no","gran.no","grane.no","granvin.no","gratangen.no","grimstad.no","grong.no","kraanghke.no","kråanghke.no","grue.no","gulen.no","hadsel.no","halden.no","halsa.no","hamar.no","hamaroy.no","habmer.no","hábmer.no","hapmir.no","hápmir.no","hammerfest.no","hammarfeasta.no","hámmárfeasta.no","haram.no","hareid.no","harstad.no","hasvik.no","aknoluokta.no","ákŋoluokta.no","hattfjelldal.no","aarborte.no","haugesund.no","hemne.no","hemnes.no","hemsedal.no","heroy.more-og-romsdal.no","herøy.møre-og-romsdal.no","heroy.nordland.no","herøy.nordland.no","hitra.no","hjartdal.no","hjelmeland.no","hobol.no","hobøl.no","hof.no","hol.no","hole.no","holmestrand.no","holtalen.no","holtålen.no","hornindal.no","horten.no","hurdal.no","hurum.no","hvaler.no","hyllestad.no","hagebostad.no","hægebostad.no","hoyanger.no","høyanger.no","hoylandet.no","høylandet.no","ha.no","hå.no","ibestad.no","inderoy.no","inderøy.no","iveland.no","jevnaker.no","jondal.no","jolster.no","jølster.no","karasjok.no","karasjohka.no","kárášjohka.no","karlsoy.no","galsa.no","gálsá.no","karmoy.no","karmøy.no","kautokeino.no","guovdageaidnu.no","klepp.no","klabu.no","klæbu.no","kongsberg.no","kongsvinger.no","kragero.no","kragerø.no","kristiansand.no","kristiansund.no","krodsherad.no","krødsherad.no","kvalsund.no","rahkkeravju.no","ráhkkerávju.no","kvam.no","kvinesdal.no","kvinnherad.no","kviteseid.no","kvitsoy.no","kvitsøy.no","kvafjord.no","kvæfjord.no","giehtavuoatna.no","kvanangen.no","kvænangen.no","navuotna.no","návuotna.no","kafjord.no","kåfjord.no","gaivuotna.no","gáivuotna.no","larvik.no","lavangen.no","lavagis.no","loabat.no","loabát.no","lebesby.no","davvesiida.no","leikanger.no","leirfjord.no","leka.no","leksvik.no","lenvik.no","leangaviika.no","leaŋgaviika.no","lesja.no","levanger.no","lier.no","lierne.no","lillehammer.no","lillesand.no","lindesnes.no","lindas.no","lindås.no","lom.no","loppa.no","lahppi.no","láhppi.no","lund.no","lunner.no","luroy.no","lurøy.no","luster.no","lyngdal.no","lyngen.no","ivgu.no","lardal.no","lerdal.no","lærdal.no","lodingen.no","lødingen.no","lorenskog.no","lørenskog.no","loten.no","løten.no","malvik.no","masoy.no","måsøy.no","muosat.no","muosát.no","mandal.no","marker.no","marnardal.no","masfjorden.no","meland.no","meldal.no","melhus.no","meloy.no","meløy.no","meraker.no","meråker.no","moareke.no","moåreke.no","midsund.no","midtre-gauldal.no","modalen.no","modum.no","molde.no","moskenes.no","moss.no","mosvik.no","malselv.no","målselv.no","malatvuopmi.no","málatvuopmi.no","namdalseid.no","aejrie.no","namsos.no","namsskogan.no","naamesjevuemie.no","nååmesjevuemie.no","laakesvuemie.no","nannestad.no","narvik.no","narviika.no","naustdal.no","nedre-eiker.no","nes.akershus.no","nes.buskerud.no","nesna.no","nesodden.no","nesseby.no","unjarga.no","unjárga.no","nesset.no","nissedal.no","nittedal.no","nord-aurdal.no","nord-fron.no","nord-odal.no","norddal.no","nordkapp.no","davvenjarga.no","davvenjárga.no","nordre-land.no","nordreisa.no","raisa.no","ráisa.no","nore-og-uvdal.no","notodden.no","naroy.no","nærøy.no","notteroy.no","nøtterøy.no","odda.no","oksnes.no","øksnes.no","oppdal.no","oppegard.no","oppegård.no","orkdal.no","orland.no","ørland.no","orskog.no","ørskog.no","orsta.no","ørsta.no","os.hedmark.no","os.hordaland.no","osen.no","osteroy.no","osterøy.no","ostre-toten.no","østre-toten.no","overhalla.no","ovre-eiker.no","øvre-eiker.no","oyer.no","øyer.no","oygarden.no","øygarden.no","oystre-slidre.no","øystre-slidre.no","porsanger.no","porsangu.no","porsáŋgu.no","porsgrunn.no","radoy.no","radøy.no","rakkestad.no","rana.no","ruovat.no","randaberg.no","rauma.no","rendalen.no","rennebu.no","rennesoy.no","rennesøy.no","rindal.no","ringebu.no","ringerike.no","ringsaker.no","rissa.no","risor.no","risør.no","roan.no","rollag.no","rygge.no","ralingen.no","rælingen.no","rodoy.no","rødøy.no","romskog.no","rømskog.no","roros.no","røros.no","rost.no","røst.no","royken.no","røyken.no","royrvik.no","røyrvik.no","rade.no","råde.no","salangen.no","siellak.no","saltdal.no","salat.no","sálát.no","sálat.no","samnanger.no","sande.more-og-romsdal.no","sande.møre-og-romsdal.no","sande.vestfold.no","sandefjord.no","sandnes.no","sandoy.no","sandøy.no","sarpsborg.no","sauda.no","sauherad.no","sel.no","selbu.no","selje.no","seljord.no","sigdal.no","siljan.no","sirdal.no","skaun.no","skedsmo.no","ski.no","skien.no","skiptvet.no","skjervoy.no","skjervøy.no","skierva.no","skiervá.no","skjak.no","skjåk.no","skodje.no","skanland.no","skånland.no","skanit.no","skánit.no","smola.no","smøla.no","snillfjord.no","snasa.no","snåsa.no","snoasa.no","snaase.no","snåase.no","sogndal.no","sokndal.no","sola.no","solund.no","songdalen.no","sortland.no","spydeberg.no","stange.no","stavanger.no","steigen.no","steinkjer.no","stjordal.no","stjørdal.no","stokke.no","stor-elvdal.no","stord.no","stordal.no","storfjord.no","omasvuotna.no","strand.no","stranda.no","stryn.no","sula.no","suldal.no","sund.no","sunndal.no","surnadal.no","sveio.no","svelvik.no","sykkylven.no","sogne.no","søgne.no","somna.no","sømna.no","sondre-land.no","søndre-land.no","sor-aurdal.no","sør-aurdal.no","sor-fron.no","sør-fron.no","sor-odal.no","sør-odal.no","sor-varanger.no","sør-varanger.no","matta-varjjat.no","mátta-várjjat.no","sorfold.no","sørfold.no","sorreisa.no","sørreisa.no","sorum.no","sørum.no","tana.no","deatnu.no","time.no","tingvoll.no","tinn.no","tjeldsund.no","dielddanuorri.no","tjome.no","tjøme.no","tokke.no","tolga.no","torsken.no","tranoy.no","tranøy.no","tromso.no","tromsø.no","tromsa.no","romsa.no","trondheim.no","troandin.no","trysil.no","trana.no","træna.no","trogstad.no","trøgstad.no","tvedestrand.no","tydal.no","tynset.no","tysfjord.no","divtasvuodna.no","divttasvuotna.no","tysnes.no","tysvar.no","tysvær.no","tonsberg.no","tønsberg.no","ullensaker.no","ullensvang.no","ulvik.no","utsira.no","vadso.no","vadsø.no","cahcesuolo.no","čáhcesuolo.no","vaksdal.no","valle.no","vang.no","vanylven.no","vardo.no","vardø.no","varggat.no","várggát.no","vefsn.no","vaapste.no","vega.no","vegarshei.no","vegårshei.no","vennesla.no","verdal.no","verran.no","vestby.no","vestnes.no","vestre-slidre.no","vestre-toten.no","vestvagoy.no","vestvågøy.no","vevelstad.no","vik.no","vikna.no","vindafjord.no","volda.no","voss.no","varoy.no","værøy.no","vagan.no","vågan.no","voagat.no","vagsoy.no","vågsøy.no","vaga.no","vågå.no","valer.ostfold.no","våler.østfold.no","valer.hedmark.no","våler.hedmark.no","*.np","nr","biz.nr","info.nr","gov.nr","edu.nr","org.nr","net.nr","com.nr","nu","nz","ac.nz","co.nz","cri.nz","geek.nz","gen.nz","govt.nz","health.nz","iwi.nz","kiwi.nz","maori.nz","mil.nz","māori.nz","net.nz","org.nz","parliament.nz","school.nz","om","co.om","com.om","edu.om","gov.om","med.om","museum.om","net.om","org.om","pro.om","onion","org","pa","ac.pa","gob.pa","com.pa","org.pa","sld.pa","edu.pa","net.pa","ing.pa","abo.pa","med.pa","nom.pa","pe","edu.pe","gob.pe","nom.pe","mil.pe","org.pe","com.pe","net.pe","pf","com.pf","org.pf","edu.pf","*.pg","ph","com.ph","net.ph","org.ph","gov.ph","edu.ph","ngo.ph","mil.ph","i.ph","pk","com.pk","net.pk","edu.pk","org.pk","fam.pk","biz.pk","web.pk","gov.pk","gob.pk","gok.pk","gon.pk","gop.pk","gos.pk","info.pk","pl","com.pl","net.pl","org.pl","aid.pl","agro.pl","atm.pl","auto.pl","biz.pl","edu.pl","gmina.pl","gsm.pl","info.pl","mail.pl","miasta.pl","media.pl","mil.pl","nieruchomosci.pl","nom.pl","pc.pl","powiat.pl","priv.pl","realestate.pl","rel.pl","sex.pl","shop.pl","sklep.pl","sos.pl","szkola.pl","targi.pl","tm.pl","tourism.pl","travel.pl","turystyka.pl","gov.pl","ap.gov.pl","ic.gov.pl","is.gov.pl","us.gov.pl","kmpsp.gov.pl","kppsp.gov.pl","kwpsp.gov.pl","psp.gov.pl","wskr.gov.pl","kwp.gov.pl","mw.gov.pl","ug.gov.pl","um.gov.pl","umig.gov.pl","ugim.gov.pl","upow.gov.pl","uw.gov.pl","starostwo.gov.pl","pa.gov.pl","po.gov.pl","psse.gov.pl","pup.gov.pl","rzgw.gov.pl","sa.gov.pl","so.gov.pl","sr.gov.pl","wsa.gov.pl","sko.gov.pl","uzs.gov.pl","wiih.gov.pl","winb.gov.pl","pinb.gov.pl","wios.gov.pl","witd.gov.pl","wzmiuw.gov.pl","piw.gov.pl","wiw.gov.pl","griw.gov.pl","wif.gov.pl","oum.gov.pl","sdn.gov.pl","zp.gov.pl","uppo.gov.pl","mup.gov.pl","wuoz.gov.pl","konsulat.gov.pl","oirm.gov.pl","augustow.pl","babia-gora.pl","bedzin.pl","beskidy.pl","bialowieza.pl","bialystok.pl","bielawa.pl","bieszczady.pl","boleslawiec.pl","bydgoszcz.pl","bytom.pl","cieszyn.pl","czeladz.pl","czest.pl","dlugoleka.pl","elblag.pl","elk.pl","glogow.pl","gniezno.pl","gorlice.pl","grajewo.pl","ilawa.pl","jaworzno.pl","jelenia-gora.pl","jgora.pl","kalisz.pl","kazimierz-dolny.pl","karpacz.pl","kartuzy.pl","kaszuby.pl","katowice.pl","kepno.pl","ketrzyn.pl","klodzko.pl","kobierzyce.pl","kolobrzeg.pl","konin.pl","konskowola.pl","kutno.pl","lapy.pl","lebork.pl","legnica.pl","lezajsk.pl","limanowa.pl","lomza.pl","lowicz.pl","lubin.pl","lukow.pl","malbork.pl","malopolska.pl","mazowsze.pl","mazury.pl","mielec.pl","mielno.pl","mragowo.pl","naklo.pl","nowaruda.pl","nysa.pl","olawa.pl","olecko.pl","olkusz.pl","olsztyn.pl","opoczno.pl","opole.pl","ostroda.pl","ostroleka.pl","ostrowiec.pl","ostrowwlkp.pl","pila.pl","pisz.pl","podhale.pl","podlasie.pl","polkowice.pl","pomorze.pl","pomorskie.pl","prochowice.pl","pruszkow.pl","przeworsk.pl","pulawy.pl","radom.pl","rawa-maz.pl","rybnik.pl","rzeszow.pl","sanok.pl","sejny.pl","slask.pl","slupsk.pl","sosnowiec.pl","stalowa-wola.pl","skoczow.pl","starachowice.pl","stargard.pl","suwalki.pl","swidnica.pl","swiebodzin.pl","swinoujscie.pl","szczecin.pl","szczytno.pl","tarnobrzeg.pl","tgory.pl","turek.pl","tychy.pl","ustka.pl","walbrzych.pl","warmia.pl","warszawa.pl","waw.pl","wegrow.pl","wielun.pl","wlocl.pl","wloclawek.pl","wodzislaw.pl","wolomin.pl","wroclaw.pl","zachpomor.pl","zagan.pl","zarow.pl","zgora.pl","zgorzelec.pl","pm","pn","gov.pn","co.pn","org.pn","edu.pn","net.pn","post","pr","com.pr","net.pr","org.pr","gov.pr","edu.pr","isla.pr","pro.pr","biz.pr","info.pr","name.pr","est.pr","prof.pr","ac.pr","pro","aaa.pro","aca.pro","acct.pro","avocat.pro","bar.pro","cpa.pro","eng.pro","jur.pro","law.pro","med.pro","recht.pro","ps","edu.ps","gov.ps","sec.ps","plo.ps","com.ps","org.ps","net.ps","pt","net.pt","gov.pt","org.pt","edu.pt","int.pt","publ.pt","com.pt","nome.pt","pw","co.pw","ne.pw","or.pw","ed.pw","go.pw","belau.pw","py","com.py","coop.py","edu.py","gov.py","mil.py","net.py","org.py","qa","com.qa","edu.qa","gov.qa","mil.qa","name.qa","net.qa","org.qa","sch.qa","re","asso.re","com.re","nom.re","ro","arts.ro","com.ro","firm.ro","info.ro","nom.ro","nt.ro","org.ro","rec.ro","store.ro","tm.ro","www.ro","rs","ac.rs","co.rs","edu.rs","gov.rs","in.rs","org.rs","ru","rw","ac.rw","co.rw","coop.rw","gov.rw","mil.rw","net.rw","org.rw","sa","com.sa","net.sa","org.sa","gov.sa","med.sa","pub.sa","edu.sa","sch.sa","sb","com.sb","edu.sb","gov.sb","net.sb","org.sb","sc","com.sc","gov.sc","net.sc","org.sc","edu.sc","sd","com.sd","net.sd","org.sd","edu.sd","med.sd","tv.sd","gov.sd","info.sd","se","a.se","ac.se","b.se","bd.se","brand.se","c.se","d.se","e.se","f.se","fh.se","fhsk.se","fhv.se","g.se","h.se","i.se","k.se","komforb.se","kommunalforbund.se","komvux.se","l.se","lanbib.se","m.se","n.se","naturbruksgymn.se","o.se","org.se","p.se","parti.se","pp.se","press.se","r.se","s.se","t.se","tm.se","u.se","w.se","x.se","y.se","z.se","sg","com.sg","net.sg","org.sg","gov.sg","edu.sg","per.sg","sh","com.sh","net.sh","gov.sh","org.sh","mil.sh","si","sj","sk","sl","com.sl","net.sl","edu.sl","gov.sl","org.sl","sm","sn","art.sn","com.sn","edu.sn","gouv.sn","org.sn","perso.sn","univ.sn","so","com.so","edu.so","gov.so","me.so","net.so","org.so","sr","ss","biz.ss","com.ss","edu.ss","gov.ss","me.ss","net.ss","org.ss","sch.ss","st","co.st","com.st","consulado.st","edu.st","embaixada.st","mil.st","net.st","org.st","principe.st","saotome.st","store.st","su","sv","com.sv","edu.sv","gob.sv","org.sv","red.sv","sx","gov.sx","sy","edu.sy","gov.sy","net.sy","mil.sy","com.sy","org.sy","sz","co.sz","ac.sz","org.sz","tc","td","tel","tf","tg","th","ac.th","co.th","go.th","in.th","mi.th","net.th","or.th","tj","ac.tj","biz.tj","co.tj","com.tj","edu.tj","go.tj","gov.tj","int.tj","mil.tj","name.tj","net.tj","nic.tj","org.tj","test.tj","web.tj","tk","tl","gov.tl","tm","com.tm","co.tm","org.tm","net.tm","nom.tm","gov.tm","mil.tm","edu.tm","tn","com.tn","ens.tn","fin.tn","gov.tn","ind.tn","info.tn","intl.tn","mincom.tn","nat.tn","net.tn","org.tn","perso.tn","tourism.tn","to","com.to","gov.to","net.to","org.to","edu.to","mil.to","tr","av.tr","bbs.tr","bel.tr","biz.tr","com.tr","dr.tr","edu.tr","gen.tr","gov.tr","info.tr","mil.tr","k12.tr","kep.tr","name.tr","net.tr","org.tr","pol.tr","tel.tr","tsk.tr","tv.tr","web.tr","nc.tr","gov.nc.tr","tt","co.tt","com.tt","org.tt","net.tt","biz.tt","info.tt","pro.tt","int.tt","coop.tt","jobs.tt","mobi.tt","travel.tt","museum.tt","aero.tt","name.tt","gov.tt","edu.tt","tv","tw","edu.tw","gov.tw","mil.tw","com.tw","net.tw","org.tw","idv.tw","game.tw","ebiz.tw","club.tw","網路.tw","組織.tw","商業.tw","tz","ac.tz","co.tz","go.tz","hotel.tz","info.tz","me.tz","mil.tz","mobi.tz","ne.tz","or.tz","sc.tz","tv.tz","ua","com.ua","edu.ua","gov.ua","in.ua","net.ua","org.ua","cherkassy.ua","cherkasy.ua","chernigov.ua","chernihiv.ua","chernivtsi.ua","chernovtsy.ua","ck.ua","cn.ua","cr.ua","crimea.ua","cv.ua","dn.ua","dnepropetrovsk.ua","dnipropetrovsk.ua","donetsk.ua","dp.ua","if.ua","ivano-frankivsk.ua","kh.ua","kharkiv.ua","kharkov.ua","kherson.ua","khmelnitskiy.ua","khmelnytskyi.ua","kiev.ua","kirovograd.ua","km.ua","kr.ua","krym.ua","ks.ua","kv.ua","kyiv.ua","lg.ua","lt.ua","lugansk.ua","lutsk.ua","lv.ua","lviv.ua","mk.ua","mykolaiv.ua","nikolaev.ua","od.ua","odesa.ua","odessa.ua","pl.ua","poltava.ua","rivne.ua","rovno.ua","rv.ua","sb.ua","sebastopol.ua","sevastopol.ua","sm.ua","sumy.ua","te.ua","ternopil.ua","uz.ua","uzhgorod.ua","vinnica.ua","vinnytsia.ua","vn.ua","volyn.ua","yalta.ua","zaporizhzhe.ua","zaporizhzhia.ua","zhitomir.ua","zhytomyr.ua","zp.ua","zt.ua","ug","co.ug","or.ug","ac.ug","sc.ug","go.ug","ne.ug","com.ug","org.ug","uk","ac.uk","co.uk","gov.uk","ltd.uk","me.uk","net.uk","nhs.uk","org.uk","plc.uk","police.uk","*.sch.uk","us","dni.us","fed.us","isa.us","kids.us","nsn.us","ak.us","al.us","ar.us","as.us","az.us","ca.us","co.us","ct.us","dc.us","de.us","fl.us","ga.us","gu.us","hi.us","ia.us","id.us","il.us","in.us","ks.us","ky.us","la.us","ma.us","md.us","me.us","mi.us","mn.us","mo.us","ms.us","mt.us","nc.us","nd.us","ne.us","nh.us","nj.us","nm.us","nv.us","ny.us","oh.us","ok.us","or.us","pa.us","pr.us","ri.us","sc.us","sd.us","tn.us","tx.us","ut.us","vi.us","vt.us","va.us","wa.us","wi.us","wv.us","wy.us","k12.ak.us","k12.al.us","k12.ar.us","k12.as.us","k12.az.us","k12.ca.us","k12.co.us","k12.ct.us","k12.dc.us","k12.de.us","k12.fl.us","k12.ga.us","k12.gu.us","k12.ia.us","k12.id.us","k12.il.us","k12.in.us","k12.ks.us","k12.ky.us","k12.la.us","k12.ma.us","k12.md.us","k12.me.us","k12.mi.us","k12.mn.us","k12.mo.us","k12.ms.us","k12.mt.us","k12.nc.us","k12.ne.us","k12.nh.us","k12.nj.us","k12.nm.us","k12.nv.us","k12.ny.us","k12.oh.us","k12.ok.us","k12.or.us","k12.pa.us","k12.pr.us","k12.sc.us","k12.tn.us","k12.tx.us","k12.ut.us","k12.vi.us","k12.vt.us","k12.va.us","k12.wa.us","k12.wi.us","k12.wy.us","cc.ak.us","cc.al.us","cc.ar.us","cc.as.us","cc.az.us","cc.ca.us","cc.co.us","cc.ct.us","cc.dc.us","cc.de.us","cc.fl.us","cc.ga.us","cc.gu.us","cc.hi.us","cc.ia.us","cc.id.us","cc.il.us","cc.in.us","cc.ks.us","cc.ky.us","cc.la.us","cc.ma.us","cc.md.us","cc.me.us","cc.mi.us","cc.mn.us","cc.mo.us","cc.ms.us","cc.mt.us","cc.nc.us","cc.nd.us","cc.ne.us","cc.nh.us","cc.nj.us","cc.nm.us","cc.nv.us","cc.ny.us","cc.oh.us","cc.ok.us","cc.or.us","cc.pa.us","cc.pr.us","cc.ri.us","cc.sc.us","cc.sd.us","cc.tn.us","cc.tx.us","cc.ut.us","cc.vi.us","cc.vt.us","cc.va.us","cc.wa.us","cc.wi.us","cc.wv.us","cc.wy.us","lib.ak.us","lib.al.us","lib.ar.us","lib.as.us","lib.az.us","lib.ca.us","lib.co.us","lib.ct.us","lib.dc.us","lib.fl.us","lib.ga.us","lib.gu.us","lib.hi.us","lib.ia.us","lib.id.us","lib.il.us","lib.in.us","lib.ks.us","lib.ky.us","lib.la.us","lib.ma.us","lib.md.us","lib.me.us","lib.mi.us","lib.mn.us","lib.mo.us","lib.ms.us","lib.mt.us","lib.nc.us","lib.nd.us","lib.ne.us","lib.nh.us","lib.nj.us","lib.nm.us","lib.nv.us","lib.ny.us","lib.oh.us","lib.ok.us","lib.or.us","lib.pa.us","lib.pr.us","lib.ri.us","lib.sc.us","lib.sd.us","lib.tn.us","lib.tx.us","lib.ut.us","lib.vi.us","lib.vt.us","lib.va.us","lib.wa.us","lib.wi.us","lib.wy.us","pvt.k12.ma.us","chtr.k12.ma.us","paroch.k12.ma.us","ann-arbor.mi.us","cog.mi.us","dst.mi.us","eaton.mi.us","gen.mi.us","mus.mi.us","tec.mi.us","washtenaw.mi.us","uy","com.uy","edu.uy","gub.uy","mil.uy","net.uy","org.uy","uz","co.uz","com.uz","net.uz","org.uz","va","vc","com.vc","net.vc","org.vc","gov.vc","mil.vc","edu.vc","ve","arts.ve","bib.ve","co.ve","com.ve","e12.ve","edu.ve","firm.ve","gob.ve","gov.ve","info.ve","int.ve","mil.ve","net.ve","nom.ve","org.ve","rar.ve","rec.ve","store.ve","tec.ve","web.ve","vg","vi","co.vi","com.vi","k12.vi","net.vi","org.vi","vn","com.vn","net.vn","org.vn","edu.vn","gov.vn","int.vn","ac.vn","biz.vn","info.vn","name.vn","pro.vn","health.vn","vu","com.vu","edu.vu","net.vu","org.vu","wf","ws","com.ws","net.ws","org.ws","gov.ws","edu.ws","yt","امارات","հայ","বাংলা","бг","البحرين","бел","中国","中國","الجزائر","مصر","ею","ευ","موريتانيا","გე","ελ","香港","公司.香港","教育.香港","政府.香港","個人.香港","網絡.香港","組織.香港","ಭಾರತ","ଭାରତ","ভাৰত","भारतम्","भारोत","ڀارت","ഭാരതം","भारत","بارت","بھارت","భారత్","ભારત","ਭਾਰਤ","ভারত","இந்தியா","ایران","ايران","عراق","الاردن","한국","қаз","ລາວ","ලංකා","இலங்கை","المغرب","мкд","мон","澳門","澳门","مليسيا","عمان","پاکستان","پاكستان","فلسطين","срб","пр.срб","орг.срб","обр.срб","од.срб","упр.срб","ак.срб","рф","قطر","السعودية","السعودیة","السعودیۃ","السعوديه","سودان","新加坡","சிங்கப்பூர்","سورية","سوريا","ไทย","ศึกษา.ไทย","ธุรกิจ.ไทย","รัฐบาล.ไทย","ทหาร.ไทย","เน็ต.ไทย","องค์กร.ไทย","تونس","台灣","台湾","臺灣","укр","اليمن","xxx","ye","com.ye","edu.ye","gov.ye","net.ye","mil.ye","org.ye","ac.za","agric.za","alt.za","co.za","edu.za","gov.za","grondar.za","law.za","mil.za","net.za","ngo.za","nic.za","nis.za","nom.za","org.za","school.za","tm.za","web.za","zm","ac.zm","biz.zm","co.zm","com.zm","edu.zm","gov.zm","info.zm","mil.zm","net.zm","org.zm","sch.zm","zw","ac.zw","co.zw","gov.zw","mil.zw","org.zw","aaa","aarp","abarth","abb","abbott","abbvie","abc","able","abogado","abudhabi","academy","accenture","accountant","accountants","aco","actor","adac","ads","adult","aeg","aetna","afl","africa","agakhan","agency","aig","airbus","airforce","airtel","akdn","alfaromeo","alibaba","alipay","allfinanz","allstate","ally","alsace","alstom","amazon","americanexpress","americanfamily","amex","amfam","amica","amsterdam","analytics","android","anquan","anz","aol","apartments","app","apple","aquarelle","arab","aramco","archi","army","art","arte","asda","associates","athleta","attorney","auction","audi","audible","audio","auspost","author","auto","autos","avianca","aws","axa","azure","baby","baidu","banamex","bananarepublic","band","bank","bar","barcelona","barclaycard","barclays","barefoot","bargains","baseball","basketball","bauhaus","bayern","bbc","bbt","bbva","bcg","bcn","beats","beauty","beer","bentley","berlin","best","bestbuy","bet","bharti","bible","bid","bike","bing","bingo","bio","black","blackfriday","blockbuster","blog","bloomberg","blue","bms","bmw","bnpparibas","boats","boehringer","bofa","bom","bond","boo","book","booking","bosch","bostik","boston","bot","boutique","box","bradesco","bridgestone","broadway","broker","brother","brussels","bugatti","build","builders","business","buy","buzz","bzh","cab","cafe","cal","call","calvinklein","cam","camera","camp","cancerresearch","canon","capetown","capital","capitalone","car","caravan","cards","care","career","careers","cars","casa","case","cash","casino","catering","catholic","cba","cbn","cbre","cbs","center","ceo","cern","cfa","cfd","chanel","channel","charity","chase","chat","cheap","chintai","christmas","chrome","church","cipriani","circle","cisco","citadel","citi","citic","city","cityeats","claims","cleaning","click","clinic","clinique","clothing","cloud","club","clubmed","coach","codes","coffee","college","cologne","comcast","commbank","community","company","compare","computer","comsec","condos","construction","consulting","contact","contractors","cooking","cookingchannel","cool","corsica","country","coupon","coupons","courses","cpa","credit","creditcard","creditunion","cricket","crown","crs","cruise","cruises","cuisinella","cymru","cyou","dabur","dad","dance","data","date","dating","datsun","day","dclk","dds","deal","dealer","deals","degree","delivery","dell","deloitte","delta","democrat","dental","dentist","desi","design","dev","dhl","diamonds","diet","digital","direct","directory","discount","discover","dish","diy","dnp","docs","doctor","dog","domains","dot","download","drive","dtv","dubai","dunlop","dupont","durban","dvag","dvr","earth","eat","eco","edeka","education","email","emerck","energy","engineer","engineering","enterprises","epson","equipment","ericsson","erni","esq","estate","etisalat","eurovision","eus","events","exchange","expert","exposed","express","extraspace","fage","fail","fairwinds","faith","family","fan","fans","farm","farmers","fashion","fast","fedex","feedback","ferrari","ferrero","fiat","fidelity","fido","film","final","finance","financial","fire","firestone","firmdale","fish","fishing","fit","fitness","flickr","flights","flir","florist","flowers","fly","foo","food","foodnetwork","football","ford","forex","forsale","forum","foundation","fox","free","fresenius","frl","frogans","frontdoor","frontier","ftr","fujitsu","fun","fund","furniture","futbol","fyi","gal","gallery","gallo","gallup","game","games","gap","garden","gay","gbiz","gdn","gea","gent","genting","george","ggee","gift","gifts","gives","giving","glass","gle","global","globo","gmail","gmbh","gmo","gmx","godaddy","gold","goldpoint","golf","goo","goodyear","goog","google","gop","got","grainger","graphics","gratis","green","gripe","grocery","group","guardian","gucci","guge","guide","guitars","guru","hair","hamburg","hangout","haus","hbo","hdfc","hdfcbank","health","healthcare","help","helsinki","here","hermes","hgtv","hiphop","hisamitsu","hitachi","hiv","hkt","hockey","holdings","holiday","homedepot","homegoods","homes","homesense","honda","horse","hospital","host","hosting","hot","hoteles","hotels","hotmail","house","how","hsbc","hughes","hyatt","hyundai","ibm","icbc","ice","icu","ieee","ifm","ikano","imamat","imdb","immo","immobilien","inc","industries","infiniti","ing","ink","institute","insurance","insure","international","intuit","investments","ipiranga","irish","ismaili","ist","istanbul","itau","itv","jaguar","java","jcb","jeep","jetzt","jewelry","jio","jll","jmp","jnj","joburg","jot","joy","jpmorgan","jprs","juegos","juniper","kaufen","kddi","kerryhotels","kerrylogistics","kerryproperties","kfh","kia","kids","kim","kinder","kindle","kitchen","kiwi","koeln","komatsu","kosher","kpmg","kpn","krd","kred","kuokgroup","kyoto","lacaixa","lamborghini","lamer","lancaster","lancia","land","landrover","lanxess","lasalle","lat","latino","latrobe","law","lawyer","lds","lease","leclerc","lefrak","legal","lego","lexus","lgbt","lidl","life","lifeinsurance","lifestyle","lighting","like","lilly","limited","limo","lincoln","linde","link","lipsy","live","living","llc","llp","loan","loans","locker","locus","loft","lol","london","lotte","lotto","love","lpl","lplfinancial","ltd","ltda","lundbeck","luxe","luxury","macys","madrid","maif","maison","makeup","man","management","mango","map","market","marketing","markets","marriott","marshalls","maserati","mattel","mba","mckinsey","med","media","meet","melbourne","meme","memorial","men","menu","merckmsd","miami","microsoft","mini","mint","mit","mitsubishi","mlb","mls","mma","mobile","moda","moe","moi","mom","monash","money","monster","mormon","mortgage","moscow","moto","motorcycles","mov","movie","msd","mtn","mtr","music","mutual","nab","nagoya","natura","navy","nba","nec","netbank","netflix","network","neustar","new","news","next","nextdirect","nexus","nfl","ngo","nhk","nico","nike","nikon","ninja","nissan","nissay","nokia","northwesternmutual","norton","now","nowruz","nowtv","nra","nrw","ntt","nyc","obi","observer","office","okinawa","olayan","olayangroup","oldnavy","ollo","omega","one","ong","onl","online","ooo","open","oracle","orange","organic","origins","osaka","otsuka","ott","ovh","page","panasonic","paris","pars","partners","parts","party","passagens","pay","pccw","pet","pfizer","pharmacy","phd","philips","phone","photo","photography","photos","physio","pics","pictet","pictures","pid","pin","ping","pink","pioneer","pizza","place","play","playstation","plumbing","plus","pnc","pohl","poker","politie","porn","pramerica","praxi","press","prime","prod","productions","prof","progressive","promo","properties","property","protection","pru","prudential","pub","pwc","qpon","quebec","quest","racing","radio","read","realestate","realtor","realty","recipes","red","redstone","redumbrella","rehab","reise","reisen","reit","reliance","ren","rent","rentals","repair","report","republican","rest","restaurant","review","reviews","rexroth","rich","richardli","ricoh","ril","rio","rip","rocher","rocks","rodeo","rogers","room","rsvp","rugby","ruhr","run","rwe","ryukyu","saarland","safe","safety","sakura","sale","salon","samsclub","samsung","sandvik","sandvikcoromant","sanofi","sap","sarl","sas","save","saxo","sbi","sbs","sca","scb","schaeffler","schmidt","scholarships","school","schule","schwarz","science","scot","search","seat","secure","security","seek","select","sener","services","ses","seven","sew","sex","sexy","sfr","shangrila","sharp","shaw","shell","shia","shiksha","shoes","shop","shopping","shouji","show","showtime","silk","sina","singles","site","ski","skin","sky","skype","sling","smart","smile","sncf","soccer","social","softbank","software","sohu","solar","solutions","song","sony","soy","spa","space","sport","spot","srl","stada","staples","star","statebank","statefarm","stc","stcgroup","stockholm","storage","store","stream","studio","study","style","sucks","supplies","supply","support","surf","surgery","suzuki","swatch","swiss","sydney","systems","tab","taipei","talk","taobao","target","tatamotors","tatar","tattoo","tax","taxi","tci","tdk","team","tech","technology","temasek","tennis","teva","thd","theater","theatre","tiaa","tickets","tienda","tiffany","tips","tires","tirol","tjmaxx","tjx","tkmaxx","tmall","today","tokyo","tools","top","toray","toshiba","total","tours","town","toyota","toys","trade","trading","training","travel","travelchannel","travelers","travelersinsurance","trust","trv","tube","tui","tunes","tushu","tvs","ubank","ubs","unicom","university","uno","uol","ups","vacations","vana","vanguard","vegas","ventures","verisign","versicherung","vet","viajes","video","vig","viking","villas","vin","vip","virgin","visa","vision","viva","vivo","vlaanderen","vodka","volkswagen","volvo","vote","voting","voto","voyage","vuelos","wales","walmart","walter","wang","wanggou","watch","watches","weather","weatherchannel","webcam","weber","website","wedding","weibo","weir","whoswho","wien","wiki","williamhill","win","windows","wine","winners","wme","wolterskluwer","woodside","work","works","world","wow","wtc","wtf","xbox","xerox","xfinity","xihuan","xin","कॉम","セール","佛山","慈善","集团","在线","点看","คอม","八卦","موقع","公益","公司","香格里拉","网站","移动","我爱你","москва","католик","онлайн","сайт","联通","קום","时尚","微博","淡马锡","ファッション","орг","नेट","ストア","アマゾン","삼성","商标","商店","商城","дети","ポイント","新闻","家電","كوم","中文网","中信","娱乐","谷歌","電訊盈科","购物","クラウド","通販","网店","संगठन","餐厅","网络","ком","亚马逊","诺基亚","食品","飞利浦","手机","ارامكو","العليان","اتصالات","بازار","ابوظبي","كاثوليك","همراه","닷컴","政府","شبكة","بيتك","عرب","机构","组织机构","健康","招聘","рус","大拿","みんな","グーグル","世界","書籍","网址","닷넷","コム","天主教","游戏","vermögensberater","vermögensberatung","企业","信息","嘉里大酒店","嘉里","广东","政务","xyz","yachts","yahoo","yamaxun","yandex","yodobashi","yoga","yokohama","you","youtube","yun","zappos","zara","zero","zip","zone","zuerich","cc.ua","inf.ua","ltd.ua","611.to","graphox.us","*.devcdnaccesso.com","adobeaemcloud.com","*.dev.adobeaemcloud.com","hlx.live","adobeaemcloud.net","hlx.page","hlx3.page","beep.pl","airkitapps.com","airkitapps-au.com","airkitapps.eu","aivencloud.com","barsy.ca","*.compute.estate","*.alces.network","kasserver.com","altervista.org","alwaysdata.net","cloudfront.net","*.compute.amazonaws.com","*.compute-1.amazonaws.com","*.compute.amazonaws.com.cn","us-east-1.amazonaws.com","cn-north-1.eb.amazonaws.com.cn","cn-northwest-1.eb.amazonaws.com.cn","elasticbeanstalk.com","ap-northeast-1.elasticbeanstalk.com","ap-northeast-2.elasticbeanstalk.com","ap-northeast-3.elasticbeanstalk.com","ap-south-1.elasticbeanstalk.com","ap-southeast-1.elasticbeanstalk.com","ap-southeast-2.elasticbeanstalk.com","ca-central-1.elasticbeanstalk.com","eu-central-1.elasticbeanstalk.com","eu-west-1.elasticbeanstalk.com","eu-west-2.elasticbeanstalk.com","eu-west-3.elasticbeanstalk.com","sa-east-1.elasticbeanstalk.com","us-east-1.elasticbeanstalk.com","us-east-2.elasticbeanstalk.com","us-gov-west-1.elasticbeanstalk.com","us-west-1.elasticbeanstalk.com","us-west-2.elasticbeanstalk.com","*.elb.amazonaws.com","*.elb.amazonaws.com.cn","awsglobalaccelerator.com","s3.amazonaws.com","s3-ap-northeast-1.amazonaws.com","s3-ap-northeast-2.amazonaws.com","s3-ap-south-1.amazonaws.com","s3-ap-southeast-1.amazonaws.com","s3-ap-southeast-2.amazonaws.com","s3-ca-central-1.amazonaws.com","s3-eu-central-1.amazonaws.com","s3-eu-west-1.amazonaws.com","s3-eu-west-2.amazonaws.com","s3-eu-west-3.amazonaws.com","s3-external-1.amazonaws.com","s3-fips-us-gov-west-1.amazonaws.com","s3-sa-east-1.amazonaws.com","s3-us-gov-west-1.amazonaws.com","s3-us-east-2.amazonaws.com","s3-us-west-1.amazonaws.com","s3-us-west-2.amazonaws.com","s3.ap-northeast-2.amazonaws.com","s3.ap-south-1.amazonaws.com","s3.cn-north-1.amazonaws.com.cn","s3.ca-central-1.amazonaws.com","s3.eu-central-1.amazonaws.com","s3.eu-west-2.amazonaws.com","s3.eu-west-3.amazonaws.com","s3.us-east-2.amazonaws.com","s3.dualstack.ap-northeast-1.amazonaws.com","s3.dualstack.ap-northeast-2.amazonaws.com","s3.dualstack.ap-south-1.amazonaws.com","s3.dualstack.ap-southeast-1.amazonaws.com","s3.dualstack.ap-southeast-2.amazonaws.com","s3.dualstack.ca-central-1.amazonaws.com","s3.dualstack.eu-central-1.amazonaws.com","s3.dualstack.eu-west-1.amazonaws.com","s3.dualstack.eu-west-2.amazonaws.com","s3.dualstack.eu-west-3.amazonaws.com","s3.dualstack.sa-east-1.amazonaws.com","s3.dualstack.us-east-1.amazonaws.com","s3.dualstack.us-east-2.amazonaws.com","s3-website-us-east-1.amazonaws.com","s3-website-us-west-1.amazonaws.com","s3-website-us-west-2.amazonaws.com","s3-website-ap-northeast-1.amazonaws.com","s3-website-ap-southeast-1.amazonaws.com","s3-website-ap-southeast-2.amazonaws.com","s3-website-eu-west-1.amazonaws.com","s3-website-sa-east-1.amazonaws.com","s3-website.ap-northeast-2.amazonaws.com","s3-website.ap-south-1.amazonaws.com","s3-website.ca-central-1.amazonaws.com","s3-website.eu-central-1.amazonaws.com","s3-website.eu-west-2.amazonaws.com","s3-website.eu-west-3.amazonaws.com","s3-website.us-east-2.amazonaws.com","t3l3p0rt.net","tele.amune.org","apigee.io","siiites.com","appspacehosted.com","appspaceusercontent.com","appudo.net","on-aptible.com","user.aseinet.ne.jp","gv.vc","d.gv.vc","user.party.eus","pimienta.org","poivron.org","potager.org","sweetpepper.org","myasustor.com","cdn.prod.atlassian-dev.net","translated.page","myfritz.net","onavstack.net","*.awdev.ca","*.advisor.ws","ecommerce-shop.pl","b-data.io","backplaneapp.io","balena-devices.com","rs.ba","*.banzai.cloud","app.banzaicloud.io","*.backyards.banzaicloud.io","base.ec","official.ec","buyshop.jp","fashionstore.jp","handcrafted.jp","kawaiishop.jp","supersale.jp","theshop.jp","shopselect.net","base.shop","*.beget.app","betainabox.com","bnr.la","bitbucket.io","blackbaudcdn.net","of.je","bluebite.io","boomla.net","boutir.com","boxfuse.io","square7.ch","bplaced.com","bplaced.de","square7.de","bplaced.net","square7.net","shop.brendly.rs","browsersafetymark.io","uk0.bigv.io","dh.bytemark.co.uk","vm.bytemark.co.uk","cafjs.com","mycd.eu","drr.ac","uwu.ai","carrd.co","crd.co","ju.mp","ae.org","br.com","cn.com","com.de","com.se","de.com","eu.com","gb.net","hu.net","jp.net","jpn.com","mex.com","ru.com","sa.com","se.net","uk.com","uk.net","us.com","za.bz","za.com","ar.com","hu.com","kr.com","no.com","qc.com","uy.com","africa.com","gr.com","in.net","web.in","us.org","co.com","aus.basketball","nz.basketball","radio.am","radio.fm","c.la","certmgr.org","cx.ua","discourse.group","discourse.team","cleverapps.io","clerk.app","clerkstage.app","*.lcl.dev","*.lclstage.dev","*.stg.dev","*.stgstage.dev","clickrising.net","c66.me","cloud66.ws","cloud66.zone","jdevcloud.com","wpdevcloud.com","cloudaccess.host","freesite.host","cloudaccess.net","cloudcontrolled.com","cloudcontrolapp.com","*.cloudera.site","pages.dev","trycloudflare.com","workers.dev","wnext.app","co.ca","*.otap.co","co.cz","c.cdn77.org","cdn77-ssl.net","r.cdn77.net","rsc.cdn77.org","ssl.origin.cdn77-secure.org","cloudns.asia","cloudns.biz","cloudns.club","cloudns.cc","cloudns.eu","cloudns.in","cloudns.info","cloudns.org","cloudns.pro","cloudns.pw","cloudns.us","cnpy.gdn","codeberg.page","co.nl","co.no","webhosting.be","hosting-cluster.nl","ac.ru","edu.ru","gov.ru","int.ru","mil.ru","test.ru","dyn.cosidns.de","dynamisches-dns.de","dnsupdater.de","internet-dns.de","l-o-g-i-n.de","dynamic-dns.info","feste-ip.net","knx-server.net","static-access.net","realm.cz","*.cryptonomic.net","cupcake.is","curv.dev","*.customer-oci.com","*.oci.customer-oci.com","*.ocp.customer-oci.com","*.ocs.customer-oci.com","cyon.link","cyon.site","fnwk.site","folionetwork.site","platform0.app","daplie.me","localhost.daplie.me","dattolocal.com","dattorelay.com","dattoweb.com","mydatto.com","dattolocal.net","mydatto.net","biz.dk","co.dk","firm.dk","reg.dk","store.dk","dyndns.dappnode.io","*.dapps.earth","*.bzz.dapps.earth","builtwithdark.com","demo.datadetect.com","instance.datadetect.com","edgestack.me","ddns5.com","debian.net","deno.dev","deno-staging.dev","dedyn.io","deta.app","deta.dev","*.rss.my.id","*.diher.solutions","discordsays.com","discordsez.com","jozi.biz","dnshome.de","online.th","shop.th","drayddns.com","shoparena.pl","dreamhosters.com","mydrobo.com","drud.io","drud.us","duckdns.org","bip.sh","bitbridge.net","dy.fi","tunk.org","dyndns-at-home.com","dyndns-at-work.com","dyndns-blog.com","dyndns-free.com","dyndns-home.com","dyndns-ip.com","dyndns-mail.com","dyndns-office.com","dyndns-pics.com","dyndns-remote.com","dyndns-server.com","dyndns-web.com","dyndns-wiki.com","dyndns-work.com","dyndns.biz","dyndns.info","dyndns.org","dyndns.tv","at-band-camp.net","ath.cx","barrel-of-knowledge.info","barrell-of-knowledge.info","better-than.tv","blogdns.com","blogdns.net","blogdns.org","blogsite.org","boldlygoingnowhere.org","broke-it.net","buyshouses.net","cechire.com","dnsalias.com","dnsalias.net","dnsalias.org","dnsdojo.com","dnsdojo.net","dnsdojo.org","does-it.net","doesntexist.com","doesntexist.org","dontexist.com","dontexist.net","dontexist.org","doomdns.com","doomdns.org","dvrdns.org","dyn-o-saur.com","dynalias.com","dynalias.net","dynalias.org","dynathome.net","dyndns.ws","endofinternet.net","endofinternet.org","endoftheinternet.org","est-a-la-maison.com","est-a-la-masion.com","est-le-patron.com","est-mon-blogueur.com","for-better.biz","for-more.biz","for-our.info","for-some.biz","for-the.biz","forgot.her.name","forgot.his.name","from-ak.com","from-al.com","from-ar.com","from-az.net","from-ca.com","from-co.net","from-ct.com","from-dc.com","from-de.com","from-fl.com","from-ga.com","from-hi.com","from-ia.com","from-id.com","from-il.com","from-in.com","from-ks.com","from-ky.com","from-la.net","from-ma.com","from-md.com","from-me.org","from-mi.com","from-mn.com","from-mo.com","from-ms.com","from-mt.com","from-nc.com","from-nd.com","from-ne.com","from-nh.com","from-nj.com","from-nm.com","from-nv.com","from-ny.net","from-oh.com","from-ok.com","from-or.com","from-pa.com","from-pr.com","from-ri.com","from-sc.com","from-sd.com","from-tn.com","from-tx.com","from-ut.com","from-va.com","from-vt.com","from-wa.com","from-wi.com","from-wv.com","from-wy.com","ftpaccess.cc","fuettertdasnetz.de","game-host.org","game-server.cc","getmyip.com","gets-it.net","go.dyndns.org","gotdns.com","gotdns.org","groks-the.info","groks-this.info","ham-radio-op.net","here-for-more.info","hobby-site.com","hobby-site.org","home.dyndns.org","homedns.org","homeftp.net","homeftp.org","homeip.net","homelinux.com","homelinux.net","homelinux.org","homeunix.com","homeunix.net","homeunix.org","iamallama.com","in-the-band.net","is-a-anarchist.com","is-a-blogger.com","is-a-bookkeeper.com","is-a-bruinsfan.org","is-a-bulls-fan.com","is-a-candidate.org","is-a-caterer.com","is-a-celticsfan.org","is-a-chef.com","is-a-chef.net","is-a-chef.org","is-a-conservative.com","is-a-cpa.com","is-a-cubicle-slave.com","is-a-democrat.com","is-a-designer.com","is-a-doctor.com","is-a-financialadvisor.com","is-a-geek.com","is-a-geek.net","is-a-geek.org","is-a-green.com","is-a-guru.com","is-a-hard-worker.com","is-a-hunter.com","is-a-knight.org","is-a-landscaper.com","is-a-lawyer.com","is-a-liberal.com","is-a-libertarian.com","is-a-linux-user.org","is-a-llama.com","is-a-musician.com","is-a-nascarfan.com","is-a-nurse.com","is-a-painter.com","is-a-patsfan.org","is-a-personaltrainer.com","is-a-photographer.com","is-a-player.com","is-a-republican.com","is-a-rockstar.com","is-a-socialist.com","is-a-soxfan.org","is-a-student.com","is-a-teacher.com","is-a-techie.com","is-a-therapist.com","is-an-accountant.com","is-an-actor.com","is-an-actress.com","is-an-anarchist.com","is-an-artist.com","is-an-engineer.com","is-an-entertainer.com","is-by.us","is-certified.com","is-found.org","is-gone.com","is-into-anime.com","is-into-cars.com","is-into-cartoons.com","is-into-games.com","is-leet.com","is-lost.org","is-not-certified.com","is-saved.org","is-slick.com","is-uberleet.com","is-very-bad.org","is-very-evil.org","is-very-good.org","is-very-nice.org","is-very-sweet.org","is-with-theband.com","isa-geek.com","isa-geek.net","isa-geek.org","isa-hockeynut.com","issmarterthanyou.com","isteingeek.de","istmein.de","kicks-ass.net","kicks-ass.org","knowsitall.info","land-4-sale.us","lebtimnetz.de","leitungsen.de","likes-pie.com","likescandy.com","merseine.nu","mine.nu","misconfused.org","mypets.ws","myphotos.cc","neat-url.com","office-on-the.net","on-the-web.tv","podzone.net","podzone.org","readmyblog.org","saves-the-whales.com","scrapper-site.net","scrapping.cc","selfip.biz","selfip.com","selfip.info","selfip.net","selfip.org","sells-for-less.com","sells-for-u.com","sells-it.net","sellsyourhome.org","servebbs.com","servebbs.net","servebbs.org","serveftp.net","serveftp.org","servegame.org","shacknet.nu","simple-url.com","space-to-rent.com","stuff-4-sale.org","stuff-4-sale.us","teaches-yoga.com","thruhere.net","traeumtgerade.de","webhop.biz","webhop.info","webhop.net","webhop.org","worse-than.tv","writesthisblog.com","ddnss.de","dyn.ddnss.de","dyndns.ddnss.de","dyndns1.de","dyn-ip24.de","home-webserver.de","dyn.home-webserver.de","myhome-server.de","ddnss.org","definima.net","definima.io","ondigitalocean.app","*.digitaloceanspaces.com","bci.dnstrace.pro","ddnsfree.com","ddnsgeek.com","giize.com","gleeze.com","kozow.com","loseyourip.com","ooguy.com","theworkpc.com","casacam.net","dynu.net","accesscam.org","camdvr.org","freeddns.org","mywire.org","webredirect.org","myddns.rocks","blogsite.xyz","dynv6.net","e4.cz","eero.online","eero-stage.online","elementor.cloud","elementor.cool","en-root.fr","mytuleap.com","tuleap-partners.com","encr.app","encoreapi.com","onred.one","staging.onred.one","eu.encoway.cloud","eu.org","al.eu.org","asso.eu.org","at.eu.org","au.eu.org","be.eu.org","bg.eu.org","ca.eu.org","cd.eu.org","ch.eu.org","cn.eu.org","cy.eu.org","cz.eu.org","de.eu.org","dk.eu.org","edu.eu.org","ee.eu.org","es.eu.org","fi.eu.org","fr.eu.org","gr.eu.org","hr.eu.org","hu.eu.org","ie.eu.org","il.eu.org","in.eu.org","int.eu.org","is.eu.org","it.eu.org","jp.eu.org","kr.eu.org","lt.eu.org","lu.eu.org","lv.eu.org","mc.eu.org","me.eu.org","mk.eu.org","mt.eu.org","my.eu.org","net.eu.org","ng.eu.org","nl.eu.org","no.eu.org","nz.eu.org","paris.eu.org","pl.eu.org","pt.eu.org","q-a.eu.org","ro.eu.org","ru.eu.org","se.eu.org","si.eu.org","sk.eu.org","tr.eu.org","uk.eu.org","us.eu.org","eurodir.ru","eu-1.evennode.com","eu-2.evennode.com","eu-3.evennode.com","eu-4.evennode.com","us-1.evennode.com","us-2.evennode.com","us-3.evennode.com","us-4.evennode.com","twmail.cc","twmail.net","twmail.org","mymailer.com.tw","url.tw","onfabrica.com","apps.fbsbx.com","ru.net","adygeya.ru","bashkiria.ru","bir.ru","cbg.ru","com.ru","dagestan.ru","grozny.ru","kalmykia.ru","kustanai.ru","marine.ru","mordovia.ru","msk.ru","mytis.ru","nalchik.ru","nov.ru","pyatigorsk.ru","spb.ru","vladikavkaz.ru","vladimir.ru","abkhazia.su","adygeya.su","aktyubinsk.su","arkhangelsk.su","armenia.su","ashgabad.su","azerbaijan.su","balashov.su","bashkiria.su","bryansk.su","bukhara.su","chimkent.su","dagestan.su","east-kazakhstan.su","exnet.su","georgia.su","grozny.su","ivanovo.su","jambyl.su","kalmykia.su","kaluga.su","karacol.su","karaganda.su","karelia.su","khakassia.su","krasnodar.su","kurgan.su","kustanai.su","lenug.su","mangyshlak.su","mordovia.su","msk.su","murmansk.su","nalchik.su","navoi.su","north-kazakhstan.su","nov.su","obninsk.su","penza.su","pokrovsk.su","sochi.su","spb.su","tashkent.su","termez.su","togliatti.su","troitsk.su","tselinograd.su","tula.su","tuva.su","vladikavkaz.su","vladimir.su","vologda.su","channelsdvr.net","u.channelsdvr.net","edgecompute.app","fastly-terrarium.com","fastlylb.net","map.fastlylb.net","freetls.fastly.net","map.fastly.net","a.prod.fastly.net","global.prod.fastly.net","a.ssl.fastly.net","b.ssl.fastly.net","global.ssl.fastly.net","fastvps-server.com","fastvps.host","myfast.host","fastvps.site","myfast.space","fedorainfracloud.org","fedorapeople.org","cloud.fedoraproject.org","app.os.fedoraproject.org","app.os.stg.fedoraproject.org","conn.uk","copro.uk","hosp.uk","mydobiss.com","fh-muenster.io","filegear.me","filegear-au.me","filegear-de.me","filegear-gb.me","filegear-ie.me","filegear-jp.me","filegear-sg.me","firebaseapp.com","fireweb.app","flap.id","onflashdrive.app","fldrv.com","fly.dev","edgeapp.net","shw.io","flynnhosting.net","forgeblocks.com","id.forgerock.io","framer.app","framercanvas.com","*.frusky.de","ravpage.co.il","0e.vc","freebox-os.com","freeboxos.com","fbx-os.fr","fbxos.fr","freebox-os.fr","freeboxos.fr","freedesktop.org","freemyip.com","wien.funkfeuer.at","*.futurecms.at","*.ex.futurecms.at","*.in.futurecms.at","futurehosting.at","futuremailing.at","*.ex.ortsinfo.at","*.kunden.ortsinfo.at","*.statics.cloud","independent-commission.uk","independent-inquest.uk","independent-inquiry.uk","independent-panel.uk","independent-review.uk","public-inquiry.uk","royal-commission.uk","campaign.gov.uk","service.gov.uk","api.gov.uk","gehirn.ne.jp","usercontent.jp","gentapps.com","gentlentapis.com","lab.ms","cdn-edges.net","ghost.io","gsj.bz","githubusercontent.com","githubpreview.dev","github.io","gitlab.io","gitapp.si","gitpage.si","glitch.me","nog.community","co.ro","shop.ro","lolipop.io","angry.jp","babyblue.jp","babymilk.jp","backdrop.jp","bambina.jp","bitter.jp","blush.jp","boo.jp","boy.jp","boyfriend.jp","but.jp","candypop.jp","capoo.jp","catfood.jp","cheap.jp","chicappa.jp","chillout.jp","chips.jp","chowder.jp","chu.jp","ciao.jp","cocotte.jp","coolblog.jp","cranky.jp","cutegirl.jp","daa.jp","deca.jp","deci.jp","digick.jp","egoism.jp","fakefur.jp","fem.jp","flier.jp","floppy.jp","fool.jp","frenchkiss.jp","girlfriend.jp","girly.jp","gloomy.jp","gonna.jp","greater.jp","hacca.jp","heavy.jp","her.jp","hiho.jp","hippy.jp","holy.jp","hungry.jp","icurus.jp","itigo.jp","jellybean.jp","kikirara.jp","kill.jp","kilo.jp","kuron.jp","littlestar.jp","lolipopmc.jp","lolitapunk.jp","lomo.jp","lovepop.jp","lovesick.jp","main.jp","mods.jp","mond.jp","mongolian.jp","moo.jp","namaste.jp","nikita.jp","nobushi.jp","noor.jp","oops.jp","parallel.jp","parasite.jp","pecori.jp","peewee.jp","penne.jp","pepper.jp","perma.jp","pigboat.jp","pinoko.jp","punyu.jp","pupu.jp","pussycat.jp","pya.jp","raindrop.jp","readymade.jp","sadist.jp","schoolbus.jp","secret.jp","staba.jp","stripper.jp","sub.jp","sunnyday.jp","thick.jp","tonkotsu.jp","under.jp","upper.jp","velvet.jp","verse.jp","versus.jp","vivian.jp","watson.jp","weblike.jp","whitesnow.jp","zombie.jp","heteml.net","cloudapps.digital","london.cloudapps.digital","pymnt.uk","homeoffice.gov.uk","ro.im","goip.de","run.app","a.run.app","web.app","*.0emm.com","appspot.com","*.r.appspot.com","codespot.com","googleapis.com","googlecode.com","pagespeedmobilizer.com","publishproxy.com","withgoogle.com","withyoutube.com","*.gateway.dev","cloud.goog","translate.goog","*.usercontent.goog","cloudfunctions.net","blogspot.ae","blogspot.al","blogspot.am","blogspot.ba","blogspot.be","blogspot.bg","blogspot.bj","blogspot.ca","blogspot.cf","blogspot.ch","blogspot.cl","blogspot.co.at","blogspot.co.id","blogspot.co.il","blogspot.co.ke","blogspot.co.nz","blogspot.co.uk","blogspot.co.za","blogspot.com","blogspot.com.ar","blogspot.com.au","blogspot.com.br","blogspot.com.by","blogspot.com.co","blogspot.com.cy","blogspot.com.ee","blogspot.com.eg","blogspot.com.es","blogspot.com.mt","blogspot.com.ng","blogspot.com.tr","blogspot.com.uy","blogspot.cv","blogspot.cz","blogspot.de","blogspot.dk","blogspot.fi","blogspot.fr","blogspot.gr","blogspot.hk","blogspot.hr","blogspot.hu","blogspot.ie","blogspot.in","blogspot.is","blogspot.it","blogspot.jp","blogspot.kr","blogspot.li","blogspot.lt","blogspot.lu","blogspot.md","blogspot.mk","blogspot.mr","blogspot.mx","blogspot.my","blogspot.nl","blogspot.no","blogspot.pe","blogspot.pt","blogspot.qa","blogspot.re","blogspot.ro","blogspot.rs","blogspot.ru","blogspot.se","blogspot.sg","blogspot.si","blogspot.sk","blogspot.sn","blogspot.td","blogspot.tw","blogspot.ug","blogspot.vn","goupile.fr","gov.nl","awsmppl.com","günstigbestellen.de","günstigliefern.de","fin.ci","free.hr","caa.li","ua.rs","conf.se","hs.zone","hs.run","hashbang.sh","hasura.app","hasura-app.io","pages.it.hs-heilbronn.de","hepforge.org","herokuapp.com","herokussl.com","ravendb.cloud","myravendb.com","ravendb.community","ravendb.me","development.run","ravendb.run","homesklep.pl","secaas.hk","hoplix.shop","orx.biz","biz.gl","col.ng","firm.ng","gen.ng","ltd.ng","ngo.ng","edu.scot","sch.so","hostyhosting.io","häkkinen.fi","*.moonscale.io","moonscale.net","iki.fi","ibxos.it","iliadboxos.it","impertrixcdn.com","impertrix.com","smushcdn.com","wphostedmail.com","wpmucdn.com","tempurl.host","wpmudev.host","dyn-berlin.de","in-berlin.de","in-brb.de","in-butter.de","in-dsl.de","in-dsl.net","in-dsl.org","in-vpn.de","in-vpn.net","in-vpn.org","biz.at","info.at","info.cx","ac.leg.br","al.leg.br","am.leg.br","ap.leg.br","ba.leg.br","ce.leg.br","df.leg.br","es.leg.br","go.leg.br","ma.leg.br","mg.leg.br","ms.leg.br","mt.leg.br","pa.leg.br","pb.leg.br","pe.leg.br","pi.leg.br","pr.leg.br","rj.leg.br","rn.leg.br","ro.leg.br","rr.leg.br","rs.leg.br","sc.leg.br","se.leg.br","sp.leg.br","to.leg.br","pixolino.com","na4u.ru","iopsys.se","ipifony.net","iservschule.de","mein-iserv.de","schulplattform.de","schulserver.de","test-iserv.de","iserv.dev","iobb.net","mel.cloudlets.com.au","cloud.interhostsolutions.be","users.scale.virtualcloud.com.br","mycloud.by","alp1.ae.flow.ch","appengine.flow.ch","es-1.axarnet.cloud","diadem.cloud","vip.jelastic.cloud","jele.cloud","it1.eur.aruba.jenv-aruba.cloud","it1.jenv-aruba.cloud","keliweb.cloud","cs.keliweb.cloud","oxa.cloud","tn.oxa.cloud","uk.oxa.cloud","primetel.cloud","uk.primetel.cloud","ca.reclaim.cloud","uk.reclaim.cloud","us.reclaim.cloud","ch.trendhosting.cloud","de.trendhosting.cloud","jele.club","amscompute.com","clicketcloud.com","dopaas.com","hidora.com","paas.hosted-by-previder.com","rag-cloud.hosteur.com","rag-cloud-ch.hosteur.com","jcloud.ik-server.com","jcloud-ver-jpc.ik-server.com","demo.jelastic.com","kilatiron.com","paas.massivegrid.com","jed.wafaicloud.com","lon.wafaicloud.com","ryd.wafaicloud.com","j.scaleforce.com.cy","jelastic.dogado.eu","fi.cloudplatform.fi","demo.datacenter.fi","paas.datacenter.fi","jele.host","mircloud.host","paas.beebyte.io","sekd1.beebyteapp.io","jele.io","cloud-fr1.unispace.io","jc.neen.it","cloud.jelastic.open.tim.it","jcloud.kz","upaas.kazteleport.kz","cloudjiffy.net","fra1-de.cloudjiffy.net","west1-us.cloudjiffy.net","jls-sto1.elastx.net","jls-sto2.elastx.net","jls-sto3.elastx.net","faststacks.net","fr-1.paas.massivegrid.net","lon-1.paas.massivegrid.net","lon-2.paas.massivegrid.net","ny-1.paas.massivegrid.net","ny-2.paas.massivegrid.net","sg-1.paas.massivegrid.net","jelastic.saveincloud.net","nordeste-idc.saveincloud.net","j.scaleforce.net","jelastic.tsukaeru.net","sdscloud.pl","unicloud.pl","mircloud.ru","jelastic.regruhosting.ru","enscaled.sg","jele.site","jelastic.team","orangecloud.tn","j.layershift.co.uk","phx.enscaled.us","mircloud.us","myjino.ru","*.hosting.myjino.ru","*.landing.myjino.ru","*.spectrum.myjino.ru","*.vps.myjino.ru","jotelulu.cloud","*.triton.zone","*.cns.joyent.com","js.org","kaas.gg","khplay.nl","ktistory.com","kapsi.fi","keymachine.de","kinghost.net","uni5.net","knightpoint.systems","koobin.events","oya.to","kuleuven.cloud","ezproxy.kuleuven.be","co.krd","edu.krd","krellian.net","webthings.io","git-repos.de","lcube-server.de","svn-repos.de","leadpages.co","lpages.co","lpusercontent.com","lelux.site","co.business","co.education","co.events","co.financial","co.network","co.place","co.technology","app.lmpm.com","linkyard.cloud","linkyard-cloud.ch","members.linode.com","*.nodebalancer.linode.com","*.linodeobjects.com","ip.linodeusercontent.com","we.bs","*.user.localcert.dev","localzone.xyz","loginline.app","loginline.dev","loginline.io","loginline.services","loginline.site","servers.run","lohmus.me","krasnik.pl","leczna.pl","lubartow.pl","lublin.pl","poniatowa.pl","swidnik.pl","glug.org.uk","lug.org.uk","lugs.org.uk","barsy.bg","barsy.co.uk","barsyonline.co.uk","barsycenter.com","barsyonline.com","barsy.club","barsy.de","barsy.eu","barsy.in","barsy.info","barsy.io","barsy.me","barsy.menu","barsy.mobi","barsy.net","barsy.online","barsy.org","barsy.pro","barsy.pub","barsy.ro","barsy.shop","barsy.site","barsy.support","barsy.uk","*.magentosite.cloud","mayfirst.info","mayfirst.org","hb.cldmail.ru","cn.vu","mazeplay.com","mcpe.me","mcdir.me","mcdir.ru","mcpre.ru","vps.mcdir.ru","mediatech.by","mediatech.dev","hra.health","miniserver.com","memset.net","messerli.app","*.cloud.metacentrum.cz","custom.metacentrum.cz","flt.cloud.muni.cz","usr.cloud.muni.cz","meteorapp.com","eu.meteorapp.com","co.pl","*.azurecontainer.io","azurewebsites.net","azure-mobile.net","cloudapp.net","azurestaticapps.net","1.azurestaticapps.net","centralus.azurestaticapps.net","eastasia.azurestaticapps.net","eastus2.azurestaticapps.net","westeurope.azurestaticapps.net","westus2.azurestaticapps.net","csx.cc","mintere.site","forte.id","mozilla-iot.org","bmoattachments.org","net.ru","org.ru","pp.ru","hostedpi.com","customer.mythic-beasts.com","caracal.mythic-beasts.com","fentiger.mythic-beasts.com","lynx.mythic-beasts.com","ocelot.mythic-beasts.com","oncilla.mythic-beasts.com","onza.mythic-beasts.com","sphinx.mythic-beasts.com","vs.mythic-beasts.com","x.mythic-beasts.com","yali.mythic-beasts.com","cust.retrosnub.co.uk","ui.nabu.casa","pony.club","of.fashion","in.london","of.london","from.marketing","with.marketing","for.men","repair.men","and.mom","for.mom","for.one","under.one","for.sale","that.win","from.work","to.work","cloud.nospamproxy.com","netlify.app","4u.com","ngrok.io","nh-serv.co.uk","nfshost.com","*.developer.app","noop.app","*.northflank.app","*.build.run","*.code.run","*.database.run","*.migration.run","noticeable.news","dnsking.ch","mypi.co","n4t.co","001www.com","ddnslive.com","myiphost.com","forumz.info","16-b.it","32-b.it","64-b.it","soundcast.me","tcp4.me","dnsup.net","hicam.net","now-dns.net","ownip.net","vpndns.net","dynserv.org","now-dns.org","x443.pw","now-dns.top","ntdll.top","freeddns.us","crafting.xyz","zapto.xyz","nsupdate.info","nerdpol.ovh","blogsyte.com","brasilia.me","cable-modem.org","ciscofreak.com","collegefan.org","couchpotatofries.org","damnserver.com","ddns.me","ditchyourip.com","dnsfor.me","dnsiskinky.com","dvrcam.info","dynns.com","eating-organic.net","fantasyleague.cc","geekgalaxy.com","golffan.us","health-carereform.com","homesecuritymac.com","homesecuritypc.com","hopto.me","ilovecollege.info","loginto.me","mlbfan.org","mmafan.biz","myactivedirectory.com","mydissent.net","myeffect.net","mymediapc.net","mypsx.net","mysecuritycamera.com","mysecuritycamera.net","mysecuritycamera.org","net-freaks.com","nflfan.org","nhlfan.net","no-ip.ca","no-ip.co.uk","no-ip.net","noip.us","onthewifi.com","pgafan.net","point2this.com","pointto.us","privatizehealthinsurance.net","quicksytes.com","read-books.org","securitytactics.com","serveexchange.com","servehumour.com","servep2p.com","servesarcasm.com","stufftoread.com","ufcfan.org","unusualperson.com","workisboring.com","3utilities.com","bounceme.net","ddns.net","ddnsking.com","gotdns.ch","hopto.org","myftp.biz","myftp.org","myvnc.com","no-ip.biz","no-ip.info","no-ip.org","noip.me","redirectme.net","servebeer.com","serveblog.net","servecounterstrike.com","serveftp.com","servegame.com","servehalflife.com","servehttp.com","serveirc.com","serveminecraft.net","servemp3.com","servepics.com","servequake.com","sytes.net","webhop.me","zapto.org","stage.nodeart.io","pcloud.host","nyc.mn","static.observableusercontent.com","cya.gg","omg.lol","cloudycluster.net","omniwe.site","service.one","nid.io","opensocial.site","opencraft.hosting","orsites.com","operaunite.com","tech.orange","authgear-staging.com","authgearapps.com","skygearapp.com","outsystemscloud.com","*.webpaas.ovh.net","*.hosting.ovh.net","ownprovider.com","own.pm","*.owo.codes","ox.rs","oy.lc","pgfog.com","pagefrontapp.com","pagexl.com","*.paywhirl.com","bar0.net","bar1.net","bar2.net","rdv.to","art.pl","gliwice.pl","krakow.pl","poznan.pl","wroc.pl","zakopane.pl","pantheonsite.io","gotpantheon.com","mypep.link","perspecta.cloud","lk3.ru","on-web.fr","bc.platform.sh","ent.platform.sh","eu.platform.sh","us.platform.sh","*.platformsh.site","*.tst.site","platter-app.com","platter-app.dev","platterp.us","pdns.page","plesk.page","pleskns.com","dyn53.io","onporter.run","co.bn","postman-echo.com","pstmn.io","mock.pstmn.io","httpbin.org","prequalifyme.today","xen.prgmr.com","priv.at","prvcy.page","*.dweb.link","protonet.io","chirurgiens-dentistes-en-france.fr","byen.site","pubtls.org","pythonanywhere.com","eu.pythonanywhere.com","qoto.io","qualifioapp.com","qbuser.com","cloudsite.builders","instances.spawn.cc","instantcloud.cn","ras.ru","qa2.com","qcx.io","*.sys.qcx.io","dev-myqnapcloud.com","alpha-myqnapcloud.com","myqnapcloud.com","*.quipelements.com","vapor.cloud","vaporcloud.io","rackmaze.com","rackmaze.net","g.vbrplsbx.io","*.on-k3s.io","*.on-rancher.cloud","*.on-rio.io","readthedocs.io","rhcloud.com","app.render.com","onrender.com","repl.co","id.repl.co","repl.run","resindevice.io","devices.resinstaging.io","hzc.io","wellbeingzone.eu","wellbeingzone.co.uk","adimo.co.uk","itcouldbewor.se","git-pages.rit.edu","rocky.page","биз.рус","ком.рус","крым.рус","мир.рус","мск.рус","орг.рус","самара.рус","сочи.рус","спб.рус","я.рус","*.builder.code.com","*.dev-builder.code.com","*.stg-builder.code.com","sandcats.io","logoip.de","logoip.com","fr-par-1.baremetal.scw.cloud","fr-par-2.baremetal.scw.cloud","nl-ams-1.baremetal.scw.cloud","fnc.fr-par.scw.cloud","functions.fnc.fr-par.scw.cloud","k8s.fr-par.scw.cloud","nodes.k8s.fr-par.scw.cloud","s3.fr-par.scw.cloud","s3-website.fr-par.scw.cloud","whm.fr-par.scw.cloud","priv.instances.scw.cloud","pub.instances.scw.cloud","k8s.scw.cloud","k8s.nl-ams.scw.cloud","nodes.k8s.nl-ams.scw.cloud","s3.nl-ams.scw.cloud","s3-website.nl-ams.scw.cloud","whm.nl-ams.scw.cloud","k8s.pl-waw.scw.cloud","nodes.k8s.pl-waw.scw.cloud","s3.pl-waw.scw.cloud","s3-website.pl-waw.scw.cloud","scalebook.scw.cloud","smartlabeling.scw.cloud","dedibox.fr","schokokeks.net","gov.scot","service.gov.scot","scrysec.com","firewall-gateway.com","firewall-gateway.de","my-gateway.de","my-router.de","spdns.de","spdns.eu","firewall-gateway.net","my-firewall.org","myfirewall.org","spdns.org","seidat.net","sellfy.store","senseering.net","minisite.ms","magnet.page","biz.ua","co.ua","pp.ua","shiftcrypto.dev","shiftcrypto.io","shiftedit.io","myshopblocks.com","myshopify.com","shopitsite.com","shopware.store","mo-siemens.io","1kapp.com","appchizi.com","applinzi.com","sinaapp.com","vipsinaapp.com","siteleaf.net","bounty-full.com","alpha.bounty-full.com","beta.bounty-full.com","small-web.org","vp4.me","try-snowplow.com","srht.site","stackhero-network.com","musician.io","novecore.site","static.land","dev.static.land","sites.static.land","storebase.store","vps-host.net","atl.jelastic.vps-host.net","njs.jelastic.vps-host.net","ric.jelastic.vps-host.net","playstation-cloud.com","apps.lair.io","*.stolos.io","spacekit.io","customer.speedpartner.de","myspreadshop.at","myspreadshop.com.au","myspreadshop.be","myspreadshop.ca","myspreadshop.ch","myspreadshop.com","myspreadshop.de","myspreadshop.dk","myspreadshop.es","myspreadshop.fi","myspreadshop.fr","myspreadshop.ie","myspreadshop.it","myspreadshop.net","myspreadshop.nl","myspreadshop.no","myspreadshop.pl","myspreadshop.se","myspreadshop.co.uk","api.stdlib.com","storj.farm","utwente.io","soc.srcf.net","user.srcf.net","temp-dns.com","supabase.co","supabase.in","supabase.net","su.paba.se","*.s5y.io","*.sensiosite.cloud","syncloud.it","dscloud.biz","direct.quickconnect.cn","dsmynas.com","familyds.com","diskstation.me","dscloud.me","i234.me","myds.me","synology.me","dscloud.mobi","dsmynas.net","familyds.net","dsmynas.org","familyds.org","vpnplus.to","direct.quickconnect.to","tabitorder.co.il","taifun-dns.de","beta.tailscale.net","ts.net","gda.pl","gdansk.pl","gdynia.pl","med.pl","sopot.pl","site.tb-hosting.com","edugit.io","s3.teckids.org","telebit.app","telebit.io","*.telebit.xyz","gwiddle.co.uk","*.firenet.ch","*.svc.firenet.ch","reservd.com","thingdustdata.com","cust.dev.thingdust.io","cust.disrec.thingdust.io","cust.prod.thingdust.io","cust.testing.thingdust.io","reservd.dev.thingdust.io","reservd.disrec.thingdust.io","reservd.testing.thingdust.io","tickets.io","arvo.network","azimuth.network","tlon.network","torproject.net","pages.torproject.net","bloxcms.com","townnews-staging.com","tbits.me","12hp.at","2ix.at","4lima.at","lima-city.at","12hp.ch","2ix.ch","4lima.ch","lima-city.ch","trafficplex.cloud","de.cool","12hp.de","2ix.de","4lima.de","lima-city.de","1337.pictures","clan.rip","lima-city.rocks","webspace.rocks","lima.zone","*.transurl.be","*.transurl.eu","*.transurl.nl","site.transip.me","tuxfamily.org","dd-dns.de","diskstation.eu","diskstation.org","dray-dns.de","draydns.de","dyn-vpn.de","dynvpn.de","mein-vigor.de","my-vigor.de","my-wan.de","syno-ds.de","synology-diskstation.de","synology-ds.de","typedream.app","pro.typeform.com","uber.space","*.uberspace.de","hk.com","hk.org","ltd.hk","inc.hk","name.pm","sch.tf","biz.wf","sch.wf","org.yt","virtualuser.de","virtual-user.de","upli.io","urown.cloud","dnsupdate.info","lib.de.us","2038.io","vercel.app","vercel.dev","now.sh","router.management","v-info.info","voorloper.cloud","neko.am","nyaa.am","be.ax","cat.ax","es.ax","eu.ax","gg.ax","mc.ax","us.ax","xy.ax","nl.ci","xx.gl","app.gp","blog.gt","de.gt","to.gt","be.gy","cc.hn","blog.kg","io.kg","jp.kg","tv.kg","uk.kg","us.kg","de.ls","at.md","de.md","jp.md","to.md","indie.porn","vxl.sh","ch.tc","me.tc","we.tc","nyan.to","at.vg","blog.vu","dev.vu","me.vu","v.ua","*.vultrobjects.com","wafflecell.com","*.webhare.dev","reserve-online.net","reserve-online.com","bookonline.app","hotelwithflight.com","wedeploy.io","wedeploy.me","wedeploy.sh","remotewd.com","pages.wiardweb.com","wmflabs.org","toolforge.org","wmcloud.org","panel.gg","daemon.panel.gg","messwithdns.com","woltlab-demo.com","myforum.community","community-pro.de","diskussionsbereich.de","community-pro.net","meinforum.net","affinitylottery.org.uk","raffleentry.org.uk","weeklylottery.org.uk","wpenginepowered.com","js.wpenginepowered.com","wixsite.com","editorx.io","half.host","xnbay.com","u2.xnbay.com","u2-local.xnbay.com","cistron.nl","demon.nl","xs4all.space","yandexcloud.net","storage.yandexcloud.net","website.yandexcloud.net","official.academy","yolasite.com","ybo.faith","yombo.me","homelink.one","ybo.party","ybo.review","ybo.science","ybo.trade","ynh.fr","nohost.me","noho.st","za.net","za.org","bss.design","basicserver.io","virtualserver.io","enterprisecloud.nu"]}}),PRe=CRe({"node_modules/psl/index.js"(e){var a=TRe(),n={};n.rules=_Re().map((function(e){return{rule:e,suffix:e.replace(/^(\*\.|\!)/,""),punySuffix:-1,wildcard:"*"===e.charAt(0),exception:"!"===e.charAt(0)}})),n.endsWith=function(e,a){return-1!==e.indexOf(a,e.length-a.length)},n.findRule=function(e){var t=a.toASCII(e);return n.rules.reduce((function(e,i){return-1===i.punySuffix&&(i.punySuffix=a.toASCII(i.suffix)),n.endsWith(t,"."+i.punySuffix)||t===i.punySuffix?i:e}),null)},e.errorCodes={DOMAIN_TOO_SHORT:"Domain name too short.",DOMAIN_TOO_LONG:"Domain name too long. It should be no more than 255 chars.",LABEL_STARTS_WITH_DASH:"Domain name label can not start with a dash.",LABEL_ENDS_WITH_DASH:"Domain name label can not end with a dash.",LABEL_TOO_LONG:"Domain name label should be at most 63 chars long.",LABEL_TOO_SHORT:"Domain name label should be at least 1 character long.",LABEL_INVALID_CHARS:"Domain name label can only contain alphanumeric characters or dashes."},n.validate=function(e){var n=a.toASCII(e);if(n.length<1)return"DOMAIN_TOO_SHORT";if(n.length>255)return"DOMAIN_TOO_LONG";for(var t,i=n.split("."),r=0;r<i.length;++r){if(!(t=i[r]).length)return"LABEL_TOO_SHORT";if(t.length>63)return"LABEL_TOO_LONG";if("-"===t.charAt(0))return"LABEL_STARTS_WITH_DASH";if("-"===t.charAt(t.length-1))return"LABEL_ENDS_WITH_DASH";if(!/^[a-z0-9\-]+$/.test(t))return"LABEL_INVALID_CHARS"}},e.parse=function(t){if("string"!=typeof t)throw new TypeError("Domain name must be a string.");var i=t.slice(0).toLowerCase();"."===i.charAt(i.length-1)&&(i=i.slice(0,i.length-1));var r=n.validate(i);if(r)return{input:t,error:{message:e.errorCodes[r],code:r}};var o={input:t,tld:null,sld:null,domain:null,subdomain:null,listed:!1},s=i.split(".");if("local"===s[s.length-1])return o;var l=function(){return/xn--/.test(i)?(o.domain&&(o.domain=a.toASCII(o.domain)),o.subdomain&&(o.subdomain=a.toASCII(o.subdomain)),o):o},u=n.findRule(i);if(!u)return s.length<2?o:(o.tld=s.pop(),o.sld=s.pop(),o.domain=[o.sld,o.tld].join("."),s.length&&(o.subdomain=s.pop()),l());o.listed=!0;var c=u.suffix.split("."),d=s.slice(0,s.length-c.length);return u.exception&&d.push(c.shift()),o.tld=c.join("."),d.length?(u.wildcard&&(c.unshift(d.pop()),o.tld=c.join(".")),d.length?(o.sld=d.pop(),o.domain=[o.sld,o.tld].join("."),d.length&&(o.subdomain=d.join(".")),l()):l()):l()},e.get=function(a){return a&&e.parse(a).domain||null},e.isValid=function(a){var n=e.parse(a);return Boolean(n.domain&&n.listed)}}}),jRe=CRe({"node_modules/tough-cookie/lib/pubsuffix-psl.js"(e){var a=PRe(),n=["local","example","invalid","localhost","test"],t=["localhost","invalid"];e.getPublicSuffix=function(e,i={}){const r=e.split("."),o=r[r.length-1],s=!!i.ignoreError;if(!!i.allowSpecialUseDomain&&n.includes(o)){if(r.length>1){return`${r[r.length-2]}.${o}`}if(t.includes(o))return`${o}`}if(!s&&n.includes(o))throw new Error(`Cookie has domain set to the public suffix "${o}" which is a special use domain. To allow this, configure your CookieJar with {allowSpecialUseDomain:true, rejectPublicSuffixes: false}.`);return a.get(e)}}}),LRe=CRe({"node_modules/tough-cookie/lib/store.js"(e){e.Store=class{constructor(){this.synchronous=!1}findCookie(e,a,n,t){throw new Error("findCookie is not implemented")}findCookies(e,a,n,t){throw new Error("findCookies is not implemented")}putCookie(e,a){throw new Error("putCookie is not implemented")}updateCookie(e,a,n){throw new Error("updateCookie is not implemented")}removeCookie(e,a,n,t){throw new Error("removeCookie is not implemented")}removeCookies(e,a,n){throw new Error("removeCookies is not implemented")}removeAllCookies(e){throw new Error("removeAllCookies is not implemented")}getAllCookies(e){throw new Error("getAllCookies is not implemented (therefore jar cannot be serialized)")}}}}),BRe=CRe({"node_modules/universalify/index.js"(e){e.fromCallback=function(e){return Object.defineProperty((function(){if("function"!=typeof arguments[arguments.length-1])return new Promise(((a,n)=>{arguments[arguments.length]=(e,t)=>{if(e)return n(e);a(t)},arguments.length++,e.apply(this,arguments)}));e.apply(this,arguments)}),"name",{value:e.name})},e.fromPromise=function(e){return Object.defineProperty((function(){const a=arguments[arguments.length-1];if("function"!=typeof a)return e.apply(this,arguments);delete arguments[arguments.length-1],arguments.length--,e.apply(this,arguments).then((e=>a(null,e)),a)}),"name",{value:e.name})}}}),RRe=CRe({"node_modules/tough-cookie/lib/permuteDomain.js"(e){var a=jRe();e.permuteDomain=function(e,n){const t=a.getPublicSuffix(e,{allowSpecialUseDomain:n});if(!t)return null;if(t==e)return[e];"."==e.slice(-1)&&(e=e.slice(0,-1));const i=e.slice(0,-(t.length+1)).split(".").reverse();let r=t;const o=[r];for(;i.length;)r=`${i.shift()}.${r}`,o.push(r);return o}}}),zRe=CRe({"node_modules/tough-cookie/lib/pathMatch.js"(e){e.pathMatch=function(e,a){if(a===e)return!0;if(0===e.indexOf(a)){if("/"===a.substr(-1))return!0;if("/"===e.substr(a.length,1))return!0}return!1}}}),DRe=CRe({"node_modules/tough-cookie/lib/utilHelper.js"(e){function a(){try{return MRe("util")}catch(yGe){return null}}function n(){return Symbol.for("nodejs.util.inspect.custom")}e.getUtilInspect=function(e,n={}){const t=(n.requireUtil||a)();return function(a,n,i){return t?t.inspect(a,n,i):e(a)}},e.getCustomInspectSymbol=function(e={}){return(e.lookupCustomInspectSymbol||n)()||function(e){const n=(e.requireUtil||a)();return n?n.inspect.custom:null}(e)}}}),ORe=CRe({"node_modules/tough-cookie/lib/memstore.js"(e){var{fromCallback:a}=BRe(),n=LRe().Store,t=RRe().permuteDomain,i=zRe().pathMatch,{getCustomInspectSymbol:r,getUtilInspect:o}=DRe(),s=class extends n{constructor(){super(),this.synchronous=!0,this.idx=Object.create(null);const e=r();e&&(this[e]=this.inspect)}inspect(){return`{ idx: ${{inspect:o(l)}.inspect(this.idx,!1,2)} }`}findCookie(e,a,n,t){return t(null,this.idx[e]&&this.idx[e][a]?this.idx[e][a][n]||null:void 0)}findCookies(e,a,n,r){const o=[];if("function"==typeof n&&(r=n,n=!0),!e)return r(null,[]);let s;s=a?function(e){Object.keys(e).forEach((n=>{if(i(a,n)){const a=e[n];for(const e in a)o.push(a[e])}}))}:function(e){for(const a in e){const n=e[a];for(const e in n)o.push(n[e])}};const l=t(e,n)||[e],u=this.idx;l.forEach((e=>{const a=u[e];a&&s(a)})),r(null,o)}putCookie(e,a){this.idx[e.domain]||(this.idx[e.domain]=Object.create(null)),this.idx[e.domain][e.path]||(this.idx[e.domain][e.path]=Object.create(null)),this.idx[e.domain][e.path][e.key]=e,a(null)}updateCookie(e,a,n){this.putCookie(a,n)}removeCookie(e,a,n,t){this.idx[e]&&this.idx[e][a]&&this.idx[e][a][n]&&delete this.idx[e][a][n],t(null)}removeCookies(e,a,n){return this.idx[e]&&(a?delete this.idx[e][a]:delete this.idx[e]),n(null)}removeAllCookies(e){return this.idx=Object.create(null),e(null)}getAllCookies(e){const a=[],n=this.idx;Object.keys(n).forEach((e=>{Object.keys(n[e]).forEach((t=>{Object.keys(n[e][t]).forEach((i=>{null!==i&&a.push(n[e][t][i])}))}))})),a.sort(((e,a)=>(e.creationIndex||0)-(a.creationIndex||0))),e(null,a)}};function l(e){const a=Object.keys(e);if(0===a.length)return"[Object: null prototype] {}";let n="[Object: null prototype] {\n";return Object.keys(e).forEach(((t,i)=>{n+=function(e,a){const n=" ";let t=`${n}'${e}': [Object: null prototype] {\n`;return Object.keys(a).forEach(((e,n,i)=>{t+=function(e,a){const n=" ";let t=`${n}'${e}': [Object: null prototype] {\n`;return Object.keys(a).forEach(((e,n,i)=>{t+=` ${e}: ${a[e].inspect()}`,n<i.length-1&&(t+=","),t+="\n"})),t+=`${n}}`,t}(e,a[e]),n<i.length-1&&(t+=","),t+="\n"})),t+=`${n}}`,t}(t,e[t]),i<a.length-1&&(n+=","),n+="\n"})),n+="}",n}["findCookie","findCookies","putCookie","updateCookie","removeCookie","removeCookies","removeAllCookies","getAllCookies"].forEach((e=>{s.prototype[e]=a(s.prototype[e])})),e.MemoryCookieStore=s,e.inspectFallback=l}}),KRe=CRe({"node_modules/tough-cookie/lib/validators.js"(e){var a=Object.prototype.toString;function n(e){return"function"==typeof e}function t(e){return i(e)&&""!==e}function i(e){return"string"==typeof e||e instanceof String}function r(e){return"[object Object]"===a.call(e)}function o(e,a){try{return e instanceof a}catch(n){return!1}}var s=class extends Error{constructor(...e){super(...e)}};e.ParameterError=s,e.isFunction=n,e.isNonEmptyString=t,e.isDate=function(e){return o(e,Date)&&function(e){return"number"==typeof e&&e%1==0}(e.getTime())},e.isEmptyString=function(e){return""===e||e instanceof String&&""===e.toString()},e.isString=i,e.isObject=r,e.isUrlStringOrObject=function(e){return t(e)||r(e)&&"hostname"in e&&"pathname"in e&&"protocol"in e||o(e,URL)},e.validate=function(e,a,t){if(n(a)||(t=a,a=null),r(t)||(t={Error:"Failed Check"}),!e){if(!a)throw new s(t);a(new s(t))}}}}),HRe=CRe({"node_modules/tough-cookie/lib/version.js"(e,a){a.exports="4.1.4"}}),IRe=CRe({"node_modules/tough-cookie/lib/cookie.js"(e){var a=TRe(),n=ERe(),t=jRe(),i=LRe().Store,r=ORe().MemoryCookieStore,o=zRe().pathMatch,s=KRe(),l=HRe(),{fromCallback:u}=BRe(),{getCustomInspectSymbol:c}=DRe(),d=/^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/,m=/[\x00-\x1F]/,h=["\n","\r","\0"],p=/[\x20-\x3A\x3C-\x7E]+/,g=/[\x09\x20-\x2F\x3B-\x40\x5B-\x60\x7B-\x7E]/,f={jan:0,feb:1,mar:2,apr:3,may:4,jun:5,jul:6,aug:7,sep:8,oct:9,nov:10,dec:11},v=2147483647e3,y='Invalid sameSiteContext option for getCookies(); expected one of "strict", "lax", or "none"';function k(e){s.validate(s.isNonEmptyString(e),e);const a=String(e).toLowerCase();return"none"===a||"lax"===a||"strict"===a?a:null}var b=Object.freeze({SILENT:"silent",STRICT:"strict",DISABLED:"unsafe-disabled"}),S=/(?:^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$)|(?:^(?:(?:[a-f\d]{1,4}:){7}(?:[a-f\d]{1,4}|:)|(?:[a-f\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|:[a-f\d]{1,4}|:)|(?:[a-f\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,2}|:)|(?:[a-f\d]{1,4}:){4}(?:(?::[a-f\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,3}|:)|(?:[a-f\d]{1,4}:){3}(?:(?::[a-f\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,4}|:)|(?:[a-f\d]{1,4}:){2}(?:(?::[a-f\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,5}|:)|(?:[a-f\d]{1,4}:){1}(?:(?::[a-f\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,6}|:)|(?::(?:(?::[a-f\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,7}|:)))$)/,A="\n\\[?(?:\n(?:[a-fA-F\\d]{1,4}:){7}(?:[a-fA-F\\d]{1,4}|:)|\n(?:[a-fA-F\\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|:[a-fA-F\\d]{1,4}|:)|\n(?:[a-fA-F\\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,2}|:)|\n(?:[a-fA-F\\d]{1,4}:){4}(?:(?::[a-fA-F\\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,3}|:)|\n(?:[a-fA-F\\d]{1,4}:){3}(?:(?::[a-fA-F\\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,4}|:)|\n(?:[a-fA-F\\d]{1,4}:){2}(?:(?::[a-fA-F\\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,5}|:)|\n(?:[a-fA-F\\d]{1,4}:){1}(?:(?::[a-fA-F\\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,6}|:)|\n(?::(?:(?::[a-fA-F\\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,7}|:))\n)(?:%[0-9a-zA-Z]{1,})?\\]?\n".replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),w=new RegExp(`^${A}$`);function M(e,a,n,t){let i=0;for(;i<e.length;){const a=e.charCodeAt(i);if(a<=47||a>=58)break;i++}return i<a||i>n?null:t||i==e.length?parseInt(e.substr(0,i),10):null}function C(e){const a=e.split(":"),n=[0,0,0];if(3!==a.length)return null;for(let t=0;t<3;t++){const e=M(a[t],1,2,2==t);if(null===e)return null;n[t]=e}return n}function T(e){e=String(e).substr(0,3).toLowerCase();const a=f[e];return a>=0?a:null}function x(e){if(!e)return;const a=e.split(g);if(!a)return;let n=null,t=null,i=null,r=null,o=null,s=null;for(let l=0;l<a.length;l++){const e=a[l].trim();if(!e.length)continue;let u;null===i&&(u=C(e),u)?(n=u[0],t=u[1],i=u[2]):null!==r||(u=M(e,1,2,!0),null===u)?null!==o||(u=T(e),null===u)?null===s&&(u=M(e,2,4,!0),null!==u&&(s=u,s>=70&&s<=99?s+=1900:s>=0&&s<=69&&(s+=2e3))):o=u:r=u}return null===r||null===o||null===s||null===i||r<1||r>31||s<1601||n>23||t>59||i>59?void 0:new Date(Date.UTC(s,o,r,n,t,i))}function N(e){return s.validate(s.isDate(e),e),e.toUTCString()}function E(e){return null==e?null:(e=e.trim().replace(/^\./,""),w.test(e)&&(e=e.replace("[","").replace("]","")),a&&/[^\u0001-\u007f]/.test(e)&&(e=a.toASCII(e)),e.toLowerCase())}function _(e,a,n){if(null==e||null==a)return null;if(!1!==n&&(e=E(e),a=E(a)),e==a)return!0;const t=e.lastIndexOf(a);return!(t<=0)&&(e.length===a.length+t&&("."===e.substr(t-1,1)&&!S.test(e)))}function P(e){if(!e||"/"!==e.substr(0,1))return"/";if("/"===e)return e;const a=e.lastIndexOf("/");return 0===a?"/":e.slice(0,a)}function j(e,a){e=function(e){if(s.isEmptyString(e))return e;for(let a=0;a<h.length;a++){const n=e.indexOf(h[a]);-1!==n&&(e=e.substr(0,n))}return e}(e),s.validate(s.isString(e),e);let n,t,i=e.indexOf("=");if(a)0===i&&(i=(e=e.substr(1)).indexOf("="));else if(i<=0)return;if(i<=0?(n="",t=e.trim()):(n=e.substr(0,i).trim(),t=e.substr(i+1).trim()),m.test(n)||m.test(t))return;const r=new K;return r.key=n,r.value=t,r}function L(e,a){if(a&&"object"==typeof a||(a={}),s.isEmptyString(e)||!s.isString(e))return null;const n=(e=e.trim()).indexOf(";"),t=j(-1===n?e:e.substr(0,n),!!a.loose);if(!t)return;if(-1===n)return t;const i=e.slice(n+1).trim();if(0===i.length)return t;const r=i.split(";");for(;r.length;){const e=r.shift().trim();if(0===e.length)continue;const a=e.indexOf("=");let n,i;switch(-1===a?(n=e,i=null):(n=e.substr(0,a),i=e.substr(a+1)),n=n.trim().toLowerCase(),i&&(i=i.trim()),n){case"expires":if(i){const e=x(i);e&&(t.expires=e)}break;case"max-age":if(i&&/^-?[0-9]+$/.test(i)){const e=parseInt(i,10);t.setMaxAge(e)}break;case"domain":if(i){const e=i.trim().replace(/^\./,"");e&&(t.domain=e.toLowerCase())}break;case"path":t.path=i&&"/"===i[0]?i:null;break;case"secure":t.secure=!0;break;case"httponly":t.httpOnly=!0;break;case"samesite":switch(i?i.toLowerCase():""){case"strict":t.sameSite="strict";break;case"lax":t.sameSite="lax";break;case"none":t.sameSite="none";break;default:t.sameSite=void 0}break;default:t.extensions=t.extensions||[],t.extensions.push(e)}}return t}function B(e){let a;try{a=JSON.parse(e)}catch(yGe){return yGe}return a}function R(e){if(!e||s.isEmptyString(e))return null;let a;if("string"==typeof e){if(a=B(e),a instanceof Error)return null}else a=e;const n=new K;for(let t=0;t<K.serializableProperties.length;t++){const e=K.serializableProperties[t];void 0!==a[e]&&a[e]!==O[e]&&(n[e]="expires"===e||"creation"===e||"lastAccessed"===e?null===a[e]?null:"Infinity"==a[e]?"Infinity":new Date(a[e]):a[e])}return n}function z(e,a){s.validate(s.isObject(e),e),s.validate(s.isObject(a),a);let n=0;if(n=(a.path?a.path.length:0)-(e.path?e.path.length:0),0!==n)return n;return n=(e.creation?e.creation.getTime():v)-(a.creation?a.creation.getTime():v),0!==n||(n=e.creationIndex-a.creationIndex),n}function D(e){if(e instanceof Object)return e;try{e=decodeURI(e)}catch(kGe){}return n(e)}var O={key:"",value:"",expires:"Infinity",maxAge:null,domain:null,path:null,secure:!1,httpOnly:!1,extensions:null,hostOnly:null,pathIsDefault:null,creation:null,lastAccessed:null,sameSite:void 0},K=class e{constructor(a={}){const n=c();n&&(this[n]=this.inspect),Object.assign(this,O,a),this.creation=this.creation||new Date,Object.defineProperty(this,"creationIndex",{configurable:!1,enumerable:!1,writable:!0,value:++e.cookiesCreated})}inspect(){const e=Date.now(),a=null!=this.hostOnly?this.hostOnly:"?",n=this.creation?e-this.creation.getTime()+"ms":"?",t=this.lastAccessed?e-this.lastAccessed.getTime()+"ms":"?";return`Cookie="${this.toString()}; hostOnly=${a}; aAge=${t}; cAge=${n}"`}toJSON(){const a={};for(const n of e.serializableProperties)this[n]!==O[n]&&("expires"===n||"creation"===n||"lastAccessed"===n?a[n]=null===this[n]?null:"Infinity"==this[n]?"Infinity":this[n].toISOString():"maxAge"===n?null!==this[n]&&(a[n]=this[n]==1/0||this[n]==-1/0?this[n].toString():this[n]):this[n]!==O[n]&&(a[n]=this[n]));return a}clone(){return R(this.toJSON())}validate(){if(!d.test(this.value))return!1;if(!(this.expires==1/0||this.expires instanceof Date||x(this.expires)))return!1;if(null!=this.maxAge&&this.maxAge<=0)return!1;if(null!=this.path&&!p.test(this.path))return!1;const e=this.cdomain();if(e){if(e.match(/\.$/))return!1;if(null==t.getPublicSuffix(e))return!1}return!0}setExpires(e){this.expires=e instanceof Date?e:x(e)||"Infinity"}setMaxAge(e){this.maxAge=e===1/0||e===-1/0?e.toString():e}cookieString(){let e=this.value;return null==e&&(e=""),""===this.key?e:`${this.key}=${e}`}toString(){let a=this.cookieString();if(this.expires!=1/0&&(this.expires instanceof Date?a+=`; Expires=${N(this.expires)}`:a+=`; Expires=${this.expires}`),null!=this.maxAge&&this.maxAge!=1/0&&(a+=`; Max-Age=${this.maxAge}`),this.domain&&!this.hostOnly&&(a+=`; Domain=${this.domain}`),this.path&&(a+=`; Path=${this.path}`),this.secure&&(a+="; Secure"),this.httpOnly&&(a+="; HttpOnly"),this.sameSite&&"none"!==this.sameSite){const n=e.sameSiteCanonical[this.sameSite.toLowerCase()];a+=`; SameSite=${n||this.sameSite}`}return this.extensions&&this.extensions.forEach((e=>{a+=`; ${e}`})),a}TTL(e){if(null!=this.maxAge)return this.maxAge<=0?0:1e3*this.maxAge;let a=this.expires;return a!=1/0?(a instanceof Date||(a=x(a)||1/0),a==1/0?1/0:a.getTime()-(e||Date.now())):1/0}expiryTime(e){if(null!=this.maxAge){const a=this.maxAge<=0?-1/0:1e3*this.maxAge;return(e||this.creation||new Date).getTime()+a}return this.expires==1/0?1/0:this.expires.getTime()}expiryDate(e){const a=this.expiryTime(e);return a==1/0?new Date(v):a==-1/0?new Date(0):new Date(a)}isPersistent(){return null!=this.maxAge||this.expires!=1/0}canonicalizedDomain(){return null==this.domain?null:E(this.domain)}cdomain(){return this.canonicalizedDomain()}};function H(e){if(null!=e){const a=e.toLowerCase();switch(a){case b.STRICT:case b.SILENT:case b.DISABLED:return a}}return b.SILENT}K.cookiesCreated=0,K.parse=L,K.fromJSON=R,K.serializableProperties=Object.keys(O),K.sameSiteLevel={strict:3,lax:2,none:1},K.sameSiteCanonical={strict:"Strict",lax:"Lax"};var I=class e{constructor(e,a={rejectPublicSuffixes:!0}){"boolean"==typeof a&&(a={rejectPublicSuffixes:a}),s.validate(s.isObject(a),a),this.rejectPublicSuffixes=a.rejectPublicSuffixes,this.enableLooseMode=!!a.looseMode,this.allowSpecialUseDomain="boolean"!=typeof a.allowSpecialUseDomain||a.allowSpecialUseDomain,this.store=e||new r,this.prefixSecurity=H(a.prefixSecurity),this._cloneSync=G("clone"),this._importCookiesSync=G("_importCookies"),this.getCookiesSync=G("getCookies"),this.getCookieStringSync=G("getCookieString"),this.getSetCookieStringsSync=G("getSetCookieStrings"),this.removeAllCookiesSync=G("removeAllCookies"),this.setCookieSync=G("setCookie"),this.serializeSync=G("serialize")}setCookie(e,a,n,i){let r;if(s.validate(s.isUrlStringOrObject(a),i,n),s.isFunction(a))return(i=a)(new Error("No URL was specified"));const o=D(a);if(s.isFunction(n)&&(i=n,n={}),s.validate(s.isFunction(i),i),!s.isNonEmptyString(e)&&!s.isObject(e)&&e instanceof String&&0==e.length)return i(null);const l=E(o.hostname),u=n.loose||this.enableLooseMode;let c=null;if(n.sameSiteContext&&(c=k(n.sameSiteContext),!c))return i(new Error(y));if("string"==typeof e||e instanceof String){if(!(e=K.parse(e,{loose:u})))return r=new Error("Cookie failed to parse"),i(n.ignoreError?null:r)}else if(!(e instanceof K))return r=new Error("First argument to setCookie must be a Cookie object or string"),i(n.ignoreError?null:r);const d=n.now||new Date;if(this.rejectPublicSuffixes&&e.domain){if(null==t.getPublicSuffix(e.cdomain(),{allowSpecialUseDomain:this.allowSpecialUseDomain,ignoreError:n.ignoreError})&&!w.test(e.domain))return r=new Error("Cookie has domain set to a public suffix"),i(n.ignoreError?null:r)}if(e.domain){if(!_(l,e.cdomain(),!1))return r=new Error(`Cookie not in this host's domain. Cookie:${e.cdomain()} Request:${l}`),i(n.ignoreError?null:r);null==e.hostOnly&&(e.hostOnly=!1)}else e.hostOnly=!0,e.domain=l;if(e.path&&"/"===e.path[0]||(e.path=P(o.pathname),e.pathIsDefault=!0),!1===n.http&&e.httpOnly)return r=new Error("Cookie is HttpOnly and this isn't an HTTP API"),i(n.ignoreError?null:r);if("none"!==e.sameSite&&void 0!==e.sameSite&&c&&"none"===c)return r=new Error("Cookie is SameSite but this is a cross-origin request"),i(n.ignoreError?null:r);const m=this.prefixSecurity===b.SILENT;if(!(this.prefixSecurity===b.DISABLED)){let a,t=!1;if(!function(e){return s.validate(s.isObject(e),e),!e.key.startsWith("__Secure-")||e.secure}(e)?(t=!0,a="Cookie has __Secure prefix but Secure attribute is not set"):function(e){return s.validate(s.isObject(e)),!e.key.startsWith("__Host-")||e.secure&&e.hostOnly&&null!=e.path&&"/"===e.path}(e)||(t=!0,a="Cookie has __Host prefix but either Secure or HostOnly attribute is not set or Path is not '/'"),t)return i(n.ignoreError||m?null:new Error(a))}const h=this.store;h.updateCookie||(h.updateCookie=function(e,a,n){this.putCookie(a,n)}),h.findCookie(e.domain,e.path,e.key,(function(a,t){if(a)return i(a);const r=function(a){if(a)return i(a);i(null,e)};if(t){if(!1===n.http&&t.httpOnly)return a=new Error("old Cookie is HttpOnly and this isn't an HTTP API"),i(n.ignoreError?null:a);e.creation=t.creation,e.creationIndex=t.creationIndex,e.lastAccessed=d,h.updateCookie(t,e,r)}else e.creation=e.lastAccessed=d,h.putCookie(e,r)}))}getCookies(e,a,n){s.validate(s.isUrlStringOrObject(e),n,e);const t=D(e);s.isFunction(a)&&(n=a,a={}),s.validate(s.isObject(a),n,a),s.validate(s.isFunction(n),n);const i=E(t.hostname),r=t.pathname||"/";let l=a.secure;null!=l||!t.protocol||"https:"!=t.protocol&&"wss:"!=t.protocol||(l=!0);let u=0;if(a.sameSiteContext){const e=k(a.sameSiteContext);if(u=K.sameSiteLevel[e],!u)return n(new Error(y))}let c=a.http;null==c&&(c=!0);const d=a.now||Date.now(),m=!1!==a.expire,h=!!a.allPaths,p=this.store;function g(e){if(e.hostOnly){if(e.domain!=i)return!1}else if(!_(i,e.domain,!1))return!1;if(!h&&!o(r,e.path))return!1;if(e.secure&&!l)return!1;if(e.httpOnly&&!c)return!1;if(u){if(K.sameSiteLevel[e.sameSite||"none"]>u)return!1}return!(m&&e.expiryTime()<=d)||(p.removeCookie(e.domain,e.path,e.key,(()=>{})),!1)}p.findCookies(i,h?null:r,this.allowSpecialUseDomain,((e,t)=>{if(e)return n(e);t=t.filter(g),!1!==a.sort&&(t=t.sort(z));const i=new Date;for(const a of t)a.lastAccessed=i;n(null,t)}))}getCookieString(...e){const a=e.pop();s.validate(s.isFunction(a),a);e.push((function(e,n){e?a(e):a(null,n.sort(z).map((e=>e.cookieString())).join("; "))})),this.getCookies.apply(this,e)}getSetCookieStrings(...e){const a=e.pop();s.validate(s.isFunction(a),a);e.push((function(e,n){e?a(e):a(null,n.map((e=>e.toString())))})),this.getCookies.apply(this,e)}serialize(e){s.validate(s.isFunction(e),e);let a=this.store.constructor.name;s.isObject(a)&&(a=null);const n={version:`tough-cookie@${l}`,storeType:a,rejectPublicSuffixes:!!this.rejectPublicSuffixes,enableLooseMode:!!this.enableLooseMode,allowSpecialUseDomain:!!this.allowSpecialUseDomain,prefixSecurity:H(this.prefixSecurity),cookies:[]};if(!this.store.getAllCookies||"function"!=typeof this.store.getAllCookies)return e(new Error("store does not support getAllCookies and cannot be serialized"));this.store.getAllCookies(((a,t)=>a?e(a):(n.cookies=t.map((e=>(delete(e=e instanceof K?e.toJSON():e).creationIndex,e))),e(null,n))))}toJSON(){return this.serializeSync()}_importCookies(e,a){let n=e.cookies;if(!n||!Array.isArray(n))return a(new Error("serialized jar has no cookies array"));n=n.slice();const t=e=>{if(e)return a(e);if(!n.length)return a(e,this);let i;try{i=R(n.shift())}catch(yGe){return a(yGe)}if(null===i)return t(null);this.store.putCookie(i,t)};t()}clone(a,n){1===arguments.length&&(n=a,a=null),this.serialize(((t,i)=>{if(t)return n(t);e.deserialize(i,a,n)}))}cloneSync(e){if(0===arguments.length)return this._cloneSync();if(!e.synchronous)throw new Error("CookieJar clone destination store is not synchronous; use async API instead.");return this._cloneSync(e)}removeAllCookies(e){s.validate(s.isFunction(e),e);const a=this.store;if("function"==typeof a.removeAllCookies&&a.removeAllCookies!==i.prototype.removeAllCookies)return a.removeAllCookies(e);a.getAllCookies(((n,t)=>{if(n)return e(n);if(0===t.length)return e(null);let i=0;const r=[];function o(a){if(a&&r.push(a),i++,i===t.length)return e(r.length?r[0]:null)}t.forEach((e=>{a.removeCookie(e.domain,e.path,e.key,o)}))}))}static deserialize(a,n,t){let i;if(3!==arguments.length&&(t=n,n=null),s.validate(s.isFunction(t),t),"string"==typeof a){if(i=B(a),i instanceof Error)return t(i)}else i=a;const r=new e(n,{rejectPublicSuffixes:i.rejectPublicSuffixes,looseMode:i.enableLooseMode,allowSpecialUseDomain:i.allowSpecialUseDomain,prefixSecurity:i.prefixSecurity});r._importCookies(i,(e=>{if(e)return t(e);t(null,r)}))}static deserializeSync(a,n){const t="string"==typeof a?JSON.parse(a):a,i=new e(n,{rejectPublicSuffixes:t.rejectPublicSuffixes,looseMode:t.enableLooseMode});if(!i.store.synchronous)throw new Error("CookieJar store is not synchronous; use async API instead.");return i._importCookiesSync(t),i}};function G(e){return function(...a){if(!this.store.synchronous)throw new Error("CookieJar store is not synchronous; use async API instead.");let n,t;if(this[e](...a,((e,a)=>{n=e,t=a})),n)throw n;return t}}I.fromJSON=I.deserializeSync,["_importCookies","clone","getCookies","getCookieString","getSetCookieStrings","removeAllCookies","serialize","setCookie"].forEach((e=>{I.prototype[e]=u(I.prototype[e])})),I.deserialize=u(I.deserialize),e.version=l,e.CookieJar=I,e.Cookie=K,e.Store=i,e.MemoryCookieStore=r,e.parseDate=x,e.formatDate=N,e.parse=L,e.fromJSON=R,e.domainMatch=_,e.defaultPath=P,e.pathMatch=o,e.getPublicSuffix=t.getPublicSuffix,e.cookieCompare=z,e.permuteDomain=RRe().permuteDomain,e.permutePath=function(e){if(s.validate(s.isString(e)),"/"===e)return["/"];const a=[e];for(;e.length>1;){const n=e.lastIndexOf("/");if(0===n)break;e=e.substr(0,n),a.push(e)}return a.push("/"),a},e.canonicalDomain=E,e.PrefixSecurityEnum=b,e.ParameterError=s.ParameterError}}),GRe=(fRe=IRe(),vRe=null!=fRe?yRe(ARe(fRe)):{},((e,a,n,t)=>{if(a&&"object"==typeof a||"function"==typeof a)for(let i of SRe(a))wRe.call(e,i)||i===n||kRe(e,i,{get:()=>a[i],enumerable:!(t=bRe(a,i))||t.enumerable});return e})(kRe(vRe,"default",{value:fRe,enumerable:!0}),fRe)).default;
|
|
93
93
|
/*! Bundled license information:
|
|
94
94
|
|
|
95
95
|
tough-cookie/lib/pubsuffix-psl.js:
|