@lokalise/harmony 1.20.1 → 1.20.2

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/harmony.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var an=Object.defineProperty;var on=(e,t,n)=>t in e?an(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var ee=(e,t,n)=>on(e,typeof t!="symbol"?t+"":t,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),h=require("react"),d=require("@lokalise/louis"),se=require("date-fns"),cn=require("date-fns-tz"),r=require("zod"),Re=require("@lokalise/universal-ts-utils/api-contracts/apiContracts"),w=require("@lokalise/frontend-http-client"),R=require("@tanstack/react-query"),U=require("@lokalise/universal-ts-utils/node");function ln(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const s=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,s.get?s:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const K=ln(h),ne={Completed:"completed",InProgress:"in_progress",Created:"created",Queued:"queued"},C={...ne,NotStarted:"not_started"},F={translation:"translation",review:"review",lqa_by_ai:"lqa_by_ai",automatic_translation:"automatic_translation"};var te=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Tt(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var me,$e;function Ie(){if($e)return me;$e=1;function e(t){var n=typeof t;return t!=null&&(n=="object"||n=="function")}return me=e,me}var ge,Fe;function un(){if(Fe)return ge;Fe=1;var e=typeof te=="object"&&te&&te.Object===Object&&te;return ge=e,ge}var _e,Ke;function vt(){if(Ke)return _e;Ke=1;var e=un(),t=typeof self=="object"&&self&&self.Object===Object&&self,n=e||t||Function("return this")();return _e=n,_e}var fe,Qe;function dn(){if(Qe)return fe;Qe=1;var e=vt(),t=function(){return e.Date.now()};return fe=t,fe}var pe,Je;function mn(){if(Je)return pe;Je=1;var e=/\s/;function t(n){for(var s=n.length;s--&&e.test(n.charAt(s)););return s}return pe=t,pe}var he,We;function gn(){if(We)return he;We=1;var e=mn(),t=/^\s+/;function n(s){return s&&s.slice(0,e(s)+1).replace(t,"")}return he=n,he}var be,Ye;function jt(){if(Ye)return be;Ye=1;var e=vt(),t=e.Symbol;return be=t,be}var Te,Xe;function _n(){if(Xe)return Te;Xe=1;var e=jt(),t=Object.prototype,n=t.hasOwnProperty,s=t.toString,o=e?e.toStringTag:void 0;function i(c){var l=n.call(c,o),m=c[o];try{c[o]=void 0;var u=!0}catch{}var g=s.call(c);return u&&(l?c[o]=m:delete c[o]),g}return Te=i,Te}var ve,Ve;function fn(){if(Ve)return ve;Ve=1;var e=Object.prototype,t=e.toString;function n(s){return t.call(s)}return ve=n,ve}var je,Ze;function pn(){if(Ze)return je;Ze=1;var e=jt(),t=_n(),n=fn(),s="[object Null]",o="[object Undefined]",i=e?e.toStringTag:void 0;function c(l){return l==null?l===void 0?o:s:i&&i in Object(l)?t(l):n(l)}return je=c,je}var ye,et;function hn(){if(et)return ye;et=1;function e(t){return t!=null&&typeof t=="object"}return ye=e,ye}var Se,tt;function bn(){if(tt)return Se;tt=1;var e=pn(),t=hn(),n="[object Symbol]";function s(o){return typeof o=="symbol"||t(o)&&e(o)==n}return Se=s,Se}var xe,nt;function Tn(){if(nt)return xe;nt=1;var e=gn(),t=Ie(),n=bn(),s=NaN,o=/^[-+]0x[0-9a-f]+$/i,i=/^0b[01]+$/i,c=/^0o[0-7]+$/i,l=parseInt;function m(u){if(typeof u=="number")return u;if(n(u))return s;if(t(u)){var g=typeof u.valueOf=="function"?u.valueOf():u;u=t(g)?g+"":g}if(typeof u!="string")return u===0?u:+u;u=e(u);var f=i.test(u);return f||c.test(u)?l(u.slice(2),f?2:8):o.test(u)?s:+u}return xe=m,xe}var Ee,rt;function yt(){if(rt)return Ee;rt=1;var e=Ie(),t=dn(),n=Tn(),s="Expected a function",o=Math.max,i=Math.min;function c(l,m,u){var g,f,j,y,_,x,T=0,p=!1,b=!1,v=!0;if(typeof l!="function")throw new TypeError(s);m=n(m)||0,e(u)&&(p=!!u.leading,b="maxWait"in u,j=b?o(n(u.maxWait)||0,m):j,v="trailing"in u?!!u.trailing:v);function P(S){var N=g,G=f;return g=f=void 0,T=S,y=l.apply(G,N),y}function E(S){return T=S,_=setTimeout(Z,m),p?P(S):y}function V(S){var N=S-x,G=S-T,Ge=m-N;return b?i(Ge,j-G):Ge}function He(S){var N=S-x,G=S-T;return x===void 0||N>=m||N<0||b&&G>=j}function Z(){var S=t();if(He(S))return De(S);_=setTimeout(Z,V(S))}function De(S){return _=void 0,v&&g?P(S):(g=f=void 0,y)}function rn(){_!==void 0&&clearTimeout(_),T=0,g=x=f=_=void 0}function sn(){return _===void 0?y:De(t())}function de(){var S=t(),N=He(S);if(g=arguments,f=this,x=S,N){if(_===void 0)return E(x);if(b)return clearTimeout(_),_=setTimeout(Z,m),P(x)}return _===void 0&&(_=setTimeout(Z,m)),y}return de.cancel=rn,de.flush=sn,de}return Ee=c,Ee}var vn=yt();const jn=Tt(vn);var Pe,st;function yn(){if(st)return Pe;st=1;var e=yt(),t=Ie(),n="Expected a function";function s(o,i,c){var l=!0,m=!0;if(typeof o!="function")throw new TypeError(n);return t(c)&&(l="leading"in c?!!c.leading:l,m="trailing"in c?!!c.trailing:m),e(o,i,{leading:l,maxWait:i,trailing:m})}return Pe=s,Pe}var Sn=yn();const xn=Tt(Sn),En=(e,t,n,s)=>{switch(t){case"debounce":return jn(e,n,s);case"throttle":return xn(e,n,s);default:return e}},Pn=e=>{const t=K.useRef(e);return K.useEffect(()=>{t.current=e}),K.useMemo(()=>(...n)=>{var s;return(s=t.current)===null||s===void 0?void 0:s.call(t,...n)},[])},zn=e=>{const[t,n]=K.useState((e==null?void 0:e.current)||null);return e&&setTimeout(()=>{e.current!==t&&n(e.current)},0),{refProxy:K.useMemo(()=>new Proxy(o=>{o!==t&&n(o)},{get(o,i){return i==="current"?t:o[i]},set(o,i,c){return i==="current"?n(c):o[i]=c,!0}}),[t]),refElement:t,setRefElement:n}},Cn=(e,t)=>t==="border-box"?{width:e.borderBoxSize[0].inlineSize,height:e.borderBoxSize[0].blockSize}:t==="content-box"?{width:e.contentBoxSize[0].inlineSize,height:e.contentBoxSize[0].blockSize}:{width:e.contentRect.width,height:e.contentRect.height};function wn({skipOnMount:e=!1,refreshMode:t,refreshRate:n=1e3,refreshOptions:s,handleWidth:o=!0,handleHeight:i=!0,targetRef:c,observerOptions:l,onResize:m}={}){const u=h.useRef(e),g=Pn(m),[f,j]=h.useState({width:void 0,height:void 0}),{refProxy:y,refElement:_}=zn(c),{box:x}=l||{},T=h.useCallback(b=>{if(!o&&!i)return;if(u.current){u.current=!1;return}const v=(P,E)=>o&&P.width!==E.width||i&&P.height!==E.height;b.forEach(P=>{const E=Cn(P,x);j(V=>v(V,E)?(g==null||g({width:E.width,height:E.height,entry:P}),E):V)})},[o,i,u,x]),p=h.useCallback(En(T,t,n,s),[T,t,n,s]);return h.useEffect(()=>{let b;return _?(b=new window.ResizeObserver(p),b.observe(_,l)):(f.width||f.height)&&(g==null||g({width:null,height:null,entry:null}),j({width:void 0,height:void 0})),()=>{var v,P,E;(v=b==null?void 0:b.disconnect)===null||v===void 0||v.call(b),(E=(P=p).cancel)===null||E===void 0||E.call(P)}},[p,_]),Object.assign({ref:y},f)}function St(e){var t,n,s="";if(typeof e=="string"||typeof e=="number")s+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=St(e[t]))&&(s&&(s+=" "),s+=n)}else for(n in e)e[n]&&(s&&(s+=" "),s+=n);return s}function I(){for(var e,t,n=0,s="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=St(e))&&(s&&(s+=" "),s+=t);return s}const kn="_headerContainer_1cubo_1",An="_navigationTabList_1cubo_8",Rn="_navigationTab_1cubo_8",In="_headerContent_1cubo_34",Nn="_staticEnabled_1cubo_50",q={headerContainer:kn,navigationTabList:An,navigationTab:Rn,headerContent:In,staticEnabled:Nn},Ln=77,Q=({sticky:e,children:t})=>{const{ref:n,height:s}=wn({refreshMode:"debounce",refreshRate:0}),[o,i]=h.useState(!1),c=()=>o?!e:!0;h.useEffect(()=>{const m=()=>{i(window.scrollY>0)};return window.addEventListener("scroll",m),()=>window.removeEventListener("scroll",m)},[]);const l=`${s||Ln}px`;return a.jsx("div",{style:{minHeight:l},children:a.jsx("div",{children:a.jsxs("div",{ref:n,className:I(q.headerContent,{[q.staticEnabled]:c()}),children:[a.jsx(Q.Header,{}),a.jsx(Q.Tabs,{}),t]})})})};Q.Header=({children:e})=>a.jsx("div",{className:q.headerContainer,children:e});Q.Tabs=({children:e})=>a.jsx("div",{className:"flex justify-between gap-2 nowrap",children:e});const On="_sidebarContainer_bmdti_1",Mn={sidebarContainer:On},Un="_logoLink_1baxb_1",Bn={logoLink:Un},qn=({src:e,href:t="/",ariaLabel:n="Lokalise App Home",alt:s="Lokalise Logo"})=>a.jsx("a",{className:Bn.logoLink,href:t,"aria-label":n,children:a.jsx("img",{src:e,alt:s})}),Hn="_link_18vhx_1",Dn="_active_18vhx_18",at={link:Hn,active:Dn},Gn=({label:e,to:t,icon:n})=>a.jsx(d.Tooltip,{placement:"right",tooltip:e,children:a.jsx(d.Link,{className:I(at.link,{[at.active]:window.location.pathname.startsWith(t)}),href:t,children:a.jsx(n,{size:"25px"})})}),$n="_dropdownButton_13l5r_1",Fn="_dropdownButtonActive_13l5r_18",ot={dropdownButton:$n,dropdownButtonActive:Fn},Kn=({children:e,icon:t})=>a.jsx(d.Menu,{menuButton:({opened:n})=>a.jsx(d.Tooltip,{placement:"right",tooltip:"Help",children:a.jsx("button",{type:"button",className:I(ot.dropdownButton,{[ot.dropdownButtonActive]:n}),children:a.jsx(t,{size:"25px"})})}),children:a.jsx(d.MenuList,{placement:"right-start",children:e})}),Qn="_iconContainer_nz34m_1",Jn={iconContainer:Qn},xt=({className:e=""})=>a.jsx("div",{"aria-label":"Upgrade Icon",className:I(Jn.iconContainer,"flex-row","items-center","justify-center",e),children:a.jsx(d.CaretUpIcon,{})}),Wn="_menuContainer_1phdw_10",Yn="_profileButton_1phdw_20",Xn="_profileImage_1phdw_33",Vn="_profileImageHighlight_1phdw_41",Zn="_profileImageUpgradeIcon_1phdw_45",er="_userIconWrapper_1phdw_51",O={menuContainer:Wn,profileButton:Yn,profileImage:Xn,profileImageHighlight:Vn,profileImageUpgradeIcon:Zn,userIconWrapper:er},Et=h.createContext({}),Y=()=>h.useContext(Et),tr=({children:e})=>{const{currentTeam:t,otherTeams:n,showUpgradeCta:s,showBillingButton:o,allowTeamCreation:i,isProviderAlpha:c,canAccessTeamSettings:l,isEndOfTrialActive:m,isTeamSuspended:u,isFullyAuthenticated:g}=Y();return a.jsx(d.Menu,{menuButton:()=>a.jsxs("button",{className:O.profileButton,"aria-label":"Profile menu",type:"button",children:[t!=null&&t.logoUrl?a.jsx("img",{src:t.logoUrl,className:I(O.profileImage,{[O.profileImageHighlight]:s}),alt:"Team Logo"}):a.jsx("div",{className:I(O.userIconWrapper,"flex-row","align-center","items-center",{[O.profileImageHighlight]:s}),children:a.jsx(d.UserIcon,{size:"25px"})}),s&&a.jsx(xt,{className:O.profileImageUpgradeIcon})]}),children:a.jsx(d.MenuList,{placement:"right-end",className:O.menuContainer,children:e({allowTeamCreation:i,otherTeams:n,canAccessTeamSettings:l,isEndOfTrialActive:m,isTeamSuspended:u,showBillingButton:o,isProviderAlpha:c,isFullyAuthenticated:g})})})},Ne=0,Pt=9999,zt=[150,151,250,251],Ct=[152,153,252,253],wt=[154,155,157,158,254,255,258,354,355,358],kt=[156,159,160,256,259,260],Le=9998,ae=e=>e===Ne,Oe=e=>e===Pt,nr=e=>zt.includes(e),rr=e=>Ct.includes(e),sr=e=>wt.includes(e),ar=e=>kt.includes(e),or=e=>e>Ne&&e<Le,ir=e=>e===Le,cr=/\n/,it=(e,t,n)=>e.split(t).flatMap((s,o)=>o!==0?[h.cloneElement(n,{key:Math.random().toString(32).slice(0,10)}),s]:s),lr=(e,t,n)=>typeof e=="string"?it(e,t,n):e.flatMap(s=>typeof s=="string"?it(s,t,n):s),At=e=>lr(e,cr,a.jsx("br",{})),ur=/(\b(https?|):\/\/[-a-zA-Zа-яА-Я0-9+&@#/%?=~_|!:,.;]*[-a-zA-Zа-яА-Я0-9+&@#/%=~_|])/gi,dr=e=>e.match(ur)??[],ct=(e,t,n)=>{const s=e.split(t);if(s.length===1)return e;const o=[];return s[0]!==""&&o.push(s[0]),s.shift(),s[s.length-1]===""&&s.pop(),o.push(a.jsx("a",{href:t,target:"_blank",rel:"noreferrer noopener",children:t},t+n)),o.push(s.join(t)),o.filter(i=>i!=="")},lt=e=>{const t=dr(e);return t!=null&&t.length?t.reduce((n,s,o)=>typeof n=="string"?ct(n,s,o):n.flatMap(i=>typeof i=="string"?ct(i,s,o):i),e):e},Rt=e=>typeof e=="string"?lt(e):e.flatMap(t=>typeof t=="string"?lt(t):t,e),It=(e,t="PP")=>se.format(e,t),mr=(e,t,n="PP")=>se.format(cn.toZonedTime(e,t),n),oe=e=>{h.useEffect(e,[])},ut={biller:"biller",owner:"owner"},dt=[ut.biller,ut.owner],gr=({children:e,config:t})=>{const{teams:n,currentTeamId:s,planId:o,isEndOfTrialActive:i,isFullyAuthenticated:c,userTeamRole:l}=t,m=n.find(p=>p.id===s),u=n.filter(p=>p.id!==s),g=dt.includes(l),f=dt.includes(l),j=ae(o)||Oe(o),T={...t,currentTeam:m,otherTeams:u,canChangeBilling:g,canAccessTeamSettings:f,isOnFreeOrTrialPlan:j,showUpgradeCta:c&&j&&g,showBillingButton:c&&f&&g,allowTeamCreation:c&&!i};return a.jsx(Et.Provider,{value:T,children:e})},_r=({config:e,children:t})=>a.jsx(gr,{config:e,children:a.jsx(tr,{children:t})}),fr="_container_q5pot_1",pr="_profileEmail_q5pot_5",mt={container:fr,profileEmail:pr},hr=({href:e,onClick:t,userEmail:n,hideBottomDivider:s})=>{const{isEndOfTrialActive:o,isTeamSuspended:i}=Y();return o||i?null:a.jsxs(a.Fragment,{children:[a.jsx(d.MenuItem,{href:e,onClick:()=>{t==null||t()},children:a.jsxs("div",{className:`flex-col ${mt.container}`,children:[a.jsx("span",{children:"Profile Settings"}),a.jsx("span",{className:mt.profileEmail,children:n})]})}),!s&&a.jsx(d.MenuDivider,{})]})},br="_wrapper_1in7x_5",Tr="_profileImage_1in7x_11",vr="_teamDetails_1in7x_19",jr="_planWrapper_1in7x_28",yr="_teamName_1in7x_36",Sr="_planLabel_1in7x_45",xr="_membership_1in7x_53",Er="_defaultProfileImage_1in7x_59",L={wrapper:br,profileImage:Tr,teamDetails:vr,planWrapper:jr,teamName:yr,planLabel:Sr,membership:xr,defaultProfileImage:Er},Nt=({team:e,onClick:t,hidePlanLabel:n})=>{const{currentTeam:s,planId:o}=Y(),i=e||s;if(!i)return null;const c=ae(o)?"Free":Oe(o)?"Trial":void 0,l=t?d.MenuItem:"div";return a.jsxs(l,{className:L.wrapper,...t&&{onClick:()=>t(i)},children:[i.logoUrl?a.jsx("img",{className:L.profileImage,src:i.logoUrl,alt:""}):a.jsx("span",{className:`${L.defaultProfileImage}`,children:a.jsx(d.UserIcon,{size:"25px"})}),a.jsxs("div",{className:L.teamDetails,children:[a.jsxs("div",{className:L.planWrapper,children:[a.jsx("span",{className:L.teamName,children:i.name}),c&&!n&&a.jsx("span",{className:`${L.planLabel}`,children:c})]}),a.jsx("span",{className:L.membership,children:i.role})]})]})},Pr="_teamsContainer_1ncrr_5",zr={teamsContainer:Pr},Cr=({onSwitchTeam:e})=>{const{otherTeams:t}=Y();return t.length===0?null:a.jsx("div",{"data-testid":"sidebar-team-switch",className:`flex-col items-stretch ${zr.teamsContainer}`,children:t.map(n=>a.jsx(Nt,{team:n,onClick:e,hidePlanLabel:!0},n.id))})},wr="_container_1u995_1",kr="_planCta_1u995_15",Ar="_upgradeIconWrapper_1u995_19",ze={container:wr,planCta:kr,upgradeIconWrapper:Ar},Rr=({upgradeOptionHref:e})=>{const{planId:t,trialDaysLeft:n,showUpgradeCta:s}=Y();if(!s)return null;const c=ae(t)?"Your team is currently on the Free plan":`Free trial ends in ${n} ${n===1?"day":"days"}`;return a.jsxs(d.MenuItem,{"data-testid":"sidebar-upgrade-menu-item",href:e,className:`flex-col gap-1 items-start ${ze.container}`,children:[a.jsx("span",{className:ze.planCta,children:c}),a.jsxs("div",{className:`flex-row items-center gap-1 ${ze.upgradeIconWrapper}`,children:[a.jsx(xt,{}),a.jsx("span",{children:"See upgrade options"})]})]})},Ir=Math.min,Nr=Math.max;function gt(e,t,n){return Nr(e,Ir(t,n))}function Lt(e,t){return typeof e=="function"?e(t):e}function Ot(e){return e.split("-")[0]}function Lr(e){return e==="x"?"y":"x"}function Or(e){return["top","bottom"].includes(Ot(e))?"y":"x"}function Mr(e){return{top:0,right:0,bottom:0,left:0,...e}}function Ur(e){return typeof e!="number"?Mr(e):{top:e,right:e,bottom:e,left:e}}function _t(e){const{x:t,y:n,width:s,height:o}=e;return{width:s,height:o,top:n,left:t,right:t+s,bottom:n+o,x:t,y:n}}async function Br(e,t){var n;t===void 0&&(t={});const{x:s,y:o,platform:i,rects:c,elements:l,strategy:m}=e,{boundary:u="clippingAncestors",rootBoundary:g="viewport",elementContext:f="floating",altBoundary:j=!1,padding:y=0}=Lt(t,e),_=Ur(y),T=l[j?f==="floating"?"reference":"floating":f],p=_t(await i.getClippingRect({element:(n=await(i.isElement==null?void 0:i.isElement(T)))==null||n?T:T.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(l.floating)),boundary:u,rootBoundary:g,strategy:m})),b=f==="floating"?{x:s,y:o,width:c.floating.width,height:c.floating.height}:c.reference,v=await(i.getOffsetParent==null?void 0:i.getOffsetParent(l.floating)),P=await(i.isElement==null?void 0:i.isElement(v))?await(i.getScale==null?void 0:i.getScale(v))||{x:1,y:1}:{x:1,y:1},E=_t(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:b,offsetParent:v,strategy:m}):b);return{top:(p.top-E.top+_.top)/P.y,bottom:(E.bottom-p.bottom+_.bottom)/P.y,left:(p.left-E.left+_.left)/P.x,right:(E.right-p.right+_.right)/P.x}}const qr=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:s,placement:o}=t,{mainAxis:i=!0,crossAxis:c=!1,limiter:l={fn:T=>{let{x:p,y:b}=T;return{x:p,y:b}}},...m}=Lt(e,t),u={x:n,y:s},g=await Br(t,m),f=Or(Ot(o)),j=Lr(f);let y=u[j],_=u[f];if(i){const T=j==="y"?"top":"left",p=j==="y"?"bottom":"right",b=y+g[T],v=y-g[p];y=gt(b,y,v)}if(c){const T=f==="y"?"top":"left",p=f==="y"?"bottom":"right",b=_+g[T],v=_-g[p];_=gt(b,_,v)}const x=l.fn({...t,[j]:y,[f]:_});return{...x,data:{x:x.x-n,y:x.y-s,enabled:{[j]:i,[f]:c}}}}}},Hr="_navItem_1dudv_1",Dr="_activeNavItem_1dudv_18",Gr="_badge_1dudv_23",Ce={navItem:Hr,activeNavItem:Dr,badge:Gr},Mt=h.createContext({}),X=()=>h.useContext(Mt),$r=e=>{const t=e.lastIndexOf("."),n=e.slice(0,t),s=e.slice(t+1);return{name:n,extension:s}},Fr=(e,t)=>{switch(e){case C.Completed:return t<100?"Closed":"Completed";case C.Created:return t>0?"In progress":"Not started";case C.InProgress:return"In progress";case C.Queued:return"Queued";case C.NotStarted:return"Not started";default:return"-"}},Kr=e=>{const t=e.progress??0;return e.status===C.Created&&t>0?C.InProgress:e.status},Qr={[F.translation]:"#0891B2",[F.review]:"#16922D",[F.lqa_by_ai]:"#8B5CF6",[F.automatic_translation]:"#60A5FA"},Jr=e=>{const t=[C.InProgress,C.Created,C.Completed];return e.filter(n=>n.status!=="queued").map(n=>({...n,status:Kr(n)})).sort((n,s)=>n.status===C.InProgress&&n.progress===100?-1:s.status===C.InProgress&&s.progress===100?1:n.status===s.status?n.name<s.name?1:-1:t.indexOf(n.status)-t.indexOf(s.status))},ft=e=>[ne.InProgress,ne.Created].includes(e),Wr=(e,t)=>ft(e.status)&&ft(t.status)&&(t.progress??0)>=100,Yr=({task:e,language:t})=>{const[n,s]=h.useState(!1),[o,i]=h.useState(!1),{onLanguageCompleteConfirm:c,fetchTasks:l}=X(),m=()=>{i(!1)};return a.jsxs(a.Fragment,{children:[o&&a.jsx(d.ConfirmModal,{opened:!0,loading:n,title:`Are you finished with ${t.name}?`,confirmText:"Mark as done",closeText:"Cancel",onClose:m,onConfirm:async()=>{s(!0),await c({task:e,language:t,closePrompt:m}),l()},children:a.jsxs(d.Alert,{status:"info",children:["Make sure you are finished and ",a.jsx("strong",{children:"mark it as done"})," to notify your team admin. This action cannot be undone, and the language might no longer be available for you to edit."]})}),a.jsx(d.Link,{disabled:n,onClick:()=>{i(!0)},children:"Mark as done"})]})},Xr="_langRowCompleted_vpgdi_1",Vr="_langCellSecondary_vpgdi_15",Zr="_langStatus_vpgdi_20",we={langRowCompleted:Xr,langCellSecondary:Vr,langStatus:Zr},es=({language:e,task:t})=>{const{getProjectUrl:n,langNameOnClick:s,langProgressOnClick:o}=X(),i=e.progress??0,c=e.status===C.Completed,l=Wr(t,e);return a.jsxs("tr",{className:I({[we.langRowCompleted]:l}),children:[a.jsx("td",{children:a.jsx(d.Tooltip,{tooltip:"Open in bilingual view",children:a.jsx(d.Link,{href:n({task:t,language:e}),onClick:()=>{s==null||s({task:t,language:e})},children:e.name})})}),a.jsx("td",{className:we.langCellSecondary,children:l||c?"0":a.jsx(d.Tooltip,{tooltip:"Open uncompleted items",children:a.jsx(d.Link,{href:n({task:t,language:e,taskUncompleted:!0}),onClick:()=>{o==null||o({task:t,language:e})},children:e.base_words_total-e.base_words_done})})}),a.jsxs("td",{children:[i,"%"]}),a.jsx("td",{children:l?a.jsx(Yr,{task:t,language:e}):a.jsx("span",{className:`${we.langStatus} flex-row items-center justify-start`,"data-status":e.status,children:Fr(e.status,i)})})]})},ts="_taskContainer_mt2or_1",ns="_taskTitle_mt2or_21",rs="_taskDescription_mt2or_28",ss="_languagesTable_mt2or_35",as="_metadata_mt2or_87",B={taskContainer:ts,taskTitle:ns,taskDescription:rs,languagesTable:ss,metadata:as},os=({task:e})=>{const{getProjectUrl:t,taskTitleOnClick:n}=X(),s=Jr(e.langs),o=i=>{window.open(`/style-guide/${e.team_id}/download/${i.id}/link`,"_blank","noopener,noreferrer")};return a.jsxs("div",{className:B.taskContainer,children:[a.jsxs("div",{className:"flex-row gap-1 items-center",children:[a.jsxs("div",{className:"flex-row gap-1 items-start flex-wrap",children:[a.jsx(d.Tag,{color:Qr[e.task_type],variant:"solid",children:e.task_type.toLocaleUpperCase()}),e.due_date&&a.jsxs(d.Tag,{color:"#EAB308",children:["DUE ",It(se.parseISO(e.due_date),"yyyy-MM-dd")]})]}),e.style_guides.length>0&&a.jsx("div",{className:"flex-row",children:e.style_guides.length===1?a.jsx(d.Button,{size:"sm",variant:"secondary",onClick:()=>o(e.style_guides[0]),children:"Download style guide"}):a.jsx(d.Menu,{menuButton:a.jsx(d.Button,{variant:"secondary",size:"sm",children:"Download style guide"}),children:a.jsx(d.MenuList,{children:e.style_guides.map(i=>a.jsx(d.MenuItem,{onClick:()=>o(i),children:$r(i.name).name},i.id))})})})]}),a.jsx("h4",{className:B.taskTitle,children:a.jsx(d.Link,{href:t({task:e,view:"multi"}),onClick:()=>{n==null||n({task:e})},children:e.title})}),e.description&&a.jsx("div",{className:B.taskDescription,children:At(Rt(e.description))}),a.jsxs("table",{className:B.languagesTable,children:[a.jsx("thead",{children:a.jsxs("tr",{children:[a.jsx("th",{children:"Languages"}),a.jsx("th",{children:"Words to do"}),a.jsx("th",{children:"Progress"}),a.jsx("th",{children:"Status"})]})}),a.jsx("tbody",{children:s.map(i=>a.jsx(es,{language:i,task:e},i.lang_id))})]}),a.jsxs("div",{"data-testid":"sidebar-task-overview-metadata",className:B.metadata,children:[a.jsxs("span",{children:["Source: ",e.source_lang_name]}),a.jsx("span",{children:e.created_by_fullname}),a.jsxs("span",{children:["In ",e.project_name,e.master_branching_enabled==="1"&&a.jsx("div",{className:B.tag,children:e.branch_name?e.branch_name:"master"})]})]})]})},z={TaskCompleted:"task_completed",TaskClosed:"task_closed",Refresh:"refresh",ShowDialog:"show_dialog"},is="_loadingContainer_19d6m_1",cs="_noTasksContainer_19d6m_7",ls="_noTasksHeading_19d6m_14",us="_noTasksText_19d6m_18",ds="_tasksContainer_19d6m_23",$={loadingContainer:is,noTasksContainer:cs,noTasksHeading:ls,noTasksText:us,tasksContainer:ds},ms=()=>{const{tasks:e,onTasksWidgetOpen:t,loadingTasks:n,fetchTasks:s}=X();return oe(()=>((async()=>{const i=await s();t==null||t({tasks:i})})(),document.addEventListener(z.TaskCompleted,s),document.addEventListener(z.TaskClosed,s),document.addEventListener(z.Refresh,s),()=>{document.removeEventListener(z.TaskCompleted,s),document.removeEventListener(z.TaskClosed,s),document.removeEventListener(z.Refresh,s)})),n?a.jsx("div",{"data-testid":"sidebar-tasks-loading-popover",className:$.loadingContainer,children:a.jsx(d.Loading,{})}):e.length===0?a.jsxs("div",{"data-testid":"sidebar-no-tasks-popover",className:$.noTasksContainer,children:[a.jsx("h3",{className:$.noTasksHeading,children:"No tasks"}),a.jsxs("div",{className:$.noTasksText,children:["Your incoming tasks will appear here.",a.jsx("br",{}),a.jsx(d.Link,{href:"https://docs.lokalise.com/translation-workflow/tasks",target:"_new",children:"Learn more"})]})]}):a.jsx("div",{"data-testid":"sidebar-tasks-popover",className:$.tasksContainer,children:e.map(o=>a.jsx(os,{task:o},o.id))})},gs=({children:e,config:t})=>{const[n,s]=h.useState([]),[o,i]=h.useState(!0),[c,l]=h.useState(0),{getProjectUrl:m,onLanguageCompleteConfirm:u,onTasksWidgetOpen:g,langNameOnClick:f,langProgressOnClick:j,taskTitleOnClick:y}=t,{getTasks:_,getTasksCount:x}=t,T=async()=>{i(!0);const v=await _();return s(v),i(!1),v},p=async()=>{const v=await x();l(v)};oe(()=>(p(),document.addEventListener(z.TaskCompleted,p),document.addEventListener(z.TaskClosed,p),document.addEventListener(z.Refresh,p),()=>{document.removeEventListener(z.TaskCompleted,p),document.removeEventListener(z.TaskClosed,p),document.removeEventListener(z.Refresh,p)}));const b={fetchTasks:T,tasks:n,tasksCount:c,loadingTasks:o,getProjectUrl:m,onLanguageCompleteConfirm:u,onTasksWidgetOpen:g,langNameOnClick:f,langProgressOnClick:j,taskTitleOnClick:y};return a.jsx(Mt.Provider,{value:b,children:e})},_s=e=>function(n){const{config:s,...o}=n;return a.jsx(gs,{config:s,children:a.jsx(e,{...o})})},fs=_s(()=>{const[e,t]=h.useState(!1),{tasksCount:n}=X();return oe(()=>{const s=()=>{t(!0)};return document.addEventListener(z.ShowDialog,s),()=>{document.removeEventListener(z.ShowDialog,s)}}),a.jsx(d.Tooltip,{tooltip:"Tasks",placement:"right",children:a.jsx(d.Popover,{content:a.jsx(ms,{}),placement:"right",open:e,onOpenChange:t,middlewares:[qr({padding:{top:32,bottom:32}})],children:s=>a.jsxs(d.Button,{type:"button","data-testid":"sidebar-tasks-widget-button","aria-label":"Tasks",className:I(Ce.navItem,{[Ce.activeNavItem]:s}),children:[a.jsx(d.JobIcon,{size:"25px"}),n>0&&a.jsx("div",{className:Ce.badge,"aria-label":`${n} items requiring attention`,children:n>9?"9+":n})]})})})}),k=({children:e,...t})=>a.jsx("nav",{...t,className:Mn.sidebarContainer,children:e}),ps=({children:e})=>a.jsx("div",{children:e});k.Top=ps;const hs=({children:e})=>a.jsx("div",{children:e});k.Bottom=hs;k.Avatar=qn;k.IconLink=Gn;k.Menu=Kn;k.ProfileMenu=_r;k.TeamSwitch=Cr;k.TeamMenuItem=Nt;k.UpgradeMenuItem=Rr;k.ProfileSettingsMenuItem=hr;k.Tasks=fs;const bs="_breadcrumbsItem_1hm6a_1",Ts="_breadcrumbs_1hm6a_1",pt={breadcrumbsItem:bs,breadcrumbs:Ts},vs=({items:e})=>a.jsx("nav",{"aria-label":"breadcrumb",className:pt.breadcrumbs,children:e.map((t,n)=>a.jsxs(h.Fragment,{children:[a.jsx(d.Link,{className:pt.breadcrumbsItem,href:t.link,rel:"noreferrer",children:t.name}),n<e.length-1&&a.jsx("span",{children:" — "})]},`${t.link}-${t.name}`))}),js=({items:e})=>a.jsx(a.Fragment,{children:e.map((t,n)=>a.jsxs(h.Fragment,{children:[!!n&&t.some(s=>s.visible)&&a.jsx(d.MenuDivider,{}),t.filter(({visible:s})=>s).map(({link:s,label:o,onClick:i})=>a.jsx(d.MenuItem,{href:s||"#","aria-label":o,onClick:i,children:o},o))]},t[0].label))}),ys="_badge_1pc1v_1",Ss="_tag_1pc1v_15",xs="_withNavLinkStyle_1pc1v_42 _withLinkStyle_1pc1v_21",Es="_disabled_1pc1v_57",Ps="_projectNavigationItem_1pc1v_61",zs="_projectNavigationItemDisabled_1pc1v_67",M={badge:ys,tag:Ss,withNavLinkStyle:xs,disabled:Es,projectNavigationItem:Ps,projectNavigationItemDisabled:zs},ht=({label:e,badge:t,novel:n})=>a.jsxs("div",{className:"flex gap-1",children:[a.jsxs("div",{children:[a.jsx("span",{children:e}),!!t&&a.jsx("div",{className:M.badge,"aria-label":`${t} items requiring attention`,children:t>9?"9+":t})]}),!!n&&a.jsx(d.Tag,{className:M.tag,children:n})]}),ke=h.forwardRef(({label:e,href:t="",disabled:n=!1,badge:s,onClick:o,novel:i},c)=>a.jsx(d.Tooltip,{tooltip:"You do not have access to this function",show:n,children:a.jsx("div",{className:n?M.projectNavigationItemDisabled:M.projectNavigationItem,children:o||n||!t?a.jsx("button",{type:"button",ref:c,className:I(M.withNavLinkStyle,{[M.disabled]:n}),disabled:n,onClick:o,children:a.jsx(ht,{label:e,badge:s,novel:i})}):a.jsx("a",{href:t,className:M.withNavLinkStyle,children:a.jsx(ht,{label:e,badge:s,novel:i})})})}));ke.displayName="NavigationTabsItem";const Cs=e=>(e==null?void 0:e.some(t=>t.some(n=>n.visible)))??!1,ws=e=>e.visible&&(!e.dropdown||Cs(e.dropdown)),ks=({navigation:e,activeItem:t})=>a.jsx("nav",{"aria-label":"Project",children:a.jsx("ul",{className:q.navigationTabList,"aria-orientation":"horizontal",children:e.filter(ws).map(n=>{var s,o,i;return n.dropdown?a.jsx("li",{className:q.navigationTab,"data-testid":n.key,"aria-selected":(s=n.isActive)==null?void 0:s.call(n,t),children:a.jsx(d.Menu,{menuButton:({opened:c})=>a.jsx(ke,{label:n.label,disabled:n.disabled,active:c}),children:a.jsx(d.MenuList,{children:a.jsx(js,{items:n.dropdown})})})},n.key):a.jsx("li",{className:q.navigationTab,"data-testid":n.key,"aria-selected":(o=n.isActive)==null?void 0:o.call(n,t),children:a.jsx(ke,{label:n.label,href:n.link,onClick:n.onClick,disabled:n.disabled,badge:n.badge,novel:n.novel,active:(i=n.isActive)==null?void 0:i.call(n,t)})},n.key)})})});class A{constructor(t){this.factories=t}static create(t={}){return new A([()=>t])}add(t,n){return new A([...this.factories,()=>({[t]:n})])}and(t){return new A([...this.factories,()=>t])}from(t){return new A([...this.factories,t])}with(t){return t.apply(this)}merge(t){return new A([...this.factories,...t.factories])}async resolve(){const t=this.factories.map(s=>s()),n=await Promise.all(t);return Object.assign({},...n)}}function Me(e){return new As(e)}class As{constructor(t){this.middleware=t}apply(t){return t.from(async()=>{const n=this.middleware(A.create());return n instanceof Promise?n.then(s=>s.resolve()):n.resolve()})}}const Ut=r.z.union([r.z.literal("owner"),r.z.literal("admin"),r.z.literal("biller"),r.z.literal("member")]),Rs=r.z.object({userId:r.z.number(),userUuid:r.z.string().uuid(),teamId:r.z.number(),teamUuid:r.z.string().uuid(),userTeamRole:Ut,userEmail:r.z.string().email(),userName:r.z.string(),userCurrentTeamId:r.z.number(),planId:r.z.number(),planName:r.z.string(),isProviderAlpha:r.z.boolean(),isFullyAuthenticated:r.z.boolean(),exp:r.z.number()});function H(e){try{const t=e.split(".")[1],n=atob(t);return Rs.parse(JSON.parse(n))}catch{return}}class J extends Error{constructor(){super(...arguments);ee(this,"name","UnauthorizedError");ee(this,"status",401)}}function Is(e){return Me(async t=>{var i,c;const n=e.getCurrentToken()??await((i=e.generateNewToken)==null?void 0:i.call(e));if(!n)throw new J;const{exp:s}=H(n.accessToken)??{exp:0};if(!se.isThisSecond(new Date(s)))return t.add("authorization",`Bearer ${n.accessToken}`);const o=await e.refreshToken(n);if(!o)throw new J;return(c=e.onNewTokenIssued)==null||c.call(e,o),t.add("authorization",`Bearer ${o.accessToken}`)})}const Ns=Me(e=>e.and({"x-lokalise-plugin":"true"}));function Ue(){const e=Ae(document.cookie,"accessToken"),t=Ae(document.cookie,"refreshToken");return!e||!t?null:{accessToken:e,refreshToken:t}}function Bt(){return Ae(document.cookie,"csrf_token")??null}function Ae(e,t){var n,s;return(s=(n=e.split(";").find(o=>o.trim().startsWith(`${t}=`)))==null?void 0:n.trim())==null?void 0:s.substring(t.length+1)}function Ls(){const e=Ue();if(!e)return;const t=H(e.accessToken);if(t)return{...e,payload:t}}const qt=r.z.union([r.z.object({authorization:r.z.string()}),r.z.object({AUTHORIZATION:r.z.string()})]),Os=r.z.union([r.z.object({"X-API-Token":r.z.string()}),r.z.object({"X-Api-Token":r.z.string()}),r.z.object({"x-api-token":r.z.string()}),r.z.object({"X-API-TOKEN":r.z.string()})]),Ms=r.z.union([qt,Os]),Us=r.z.union([r.z.object({"X-Lokalise-Plugin":r.z.string()}),r.z.object({"x-lokalise-plugin":r.z.string()}),r.z.object({"X-LOKALISE-PLUGIN":r.z.string()})]),D=Ms.and(Us),Bs=r.z.object({accessToken:r.z.string(),refreshToken:r.z.string()}),qs=r.z.union([r.z.object({"X-Csrf-Token":r.z.string()}),r.z.object({"X-CSRF-Token":r.z.string()}),r.z.object({"x-csrf-token":r.z.string()}),r.z.object({"X-CSRF-TOKEN":r.z.string()})]),Hs=r.z.union([qt,qs]),ie=Re.buildPayloadRoute({description:"Takes a teamId and returns a JWT token access and refresh token for the user",method:"post",requestPathParamsSchema:r.z.object({teamId:r.z.number()}),pathResolver:e=>`/team/${e.teamId}/actions/get-user-token`,requestHeaderSchema:Hs,requestBodySchema:r.z.undefined(),isEmptyResponseExpected:!0,successResponseBodySchema:Bs});function Ds(e,t,n){return async()=>{const s=t();if(!s)throw new J;return w.sendByPayloadRoute(e,ie,{pathParams:{teamId:Number(await n())},headers:await A.create().add("x-csrf-token",s).resolve()})}}function Gs(e){return async({accessToken:t,refreshToken:n})=>{const s=H(t);if(!s)throw new J;return w.sendByPayloadRoute(e,ie,{pathParams:{teamId:s.teamId},headers:await A.create().add("authorization",`Bearer ${n}`).resolve()})}}const Ht={teamKey:e=>["getUserToken",e]},Dt=(e,t,n)=>R.useQuery({...n,queryFn:async({queryKey:[s,o]})=>w.sendByPayloadRoute(e,ie,{headers:await t.resolve(),pathParams:{teamId:o}})}),re=class re extends CustomEvent{constructor(t){super(re.eventName,{detail:{token:t,payload:H(t.accessToken)}})}};ee(re,"eventName","new-jwt-issued");let W=re;function $s(e,t,n){const s=Bt(),o=Dt(e,t.add("x-csrf-token",s??""),{queryKey:Ht.teamKey(n),enabled:s!==void 0}),i=h.useRef();return h.useEffect(()=>{o.data&&o.data.accessToken!==i.current&&(window.dispatchEvent(new W(o.data)),i.current=o.data.accessToken)},[o.data]),o}function Be(){const[e,t]=h.useState();return h.useEffect(()=>{const n=o=>{t(o.detail.payload)},s=Ue();return t(s?H(s.accessToken):void 0),window.addEventListener(W.eventName,n),()=>{window.removeEventListener(W.eventName,n)}},[]),e}const Fs=D,Ks=r.z.object({user_id:r.z.number(),email:r.z.string().email(),fullname:r.z.string(),created_at:r.z.string(),created_at_timestamp:r.z.number(),role:Ut}),Qs=r.z.object({team_id:r.z.number(),team_user:Ks}),Gt=U.buildGetRoute({description:"Get the details of a team user",requestHeaderSchema:Fs,requestPathParamsSchema:r.z.object({teamId:r.z.number(),userId:r.z.number()}),pathResolver:({teamId:e,userId:t})=>`/teams/${e}/users/${t}`,successResponseBodySchema:Qs}),$t={teamUserKey:(e,t)=>["GetTeamUsers",e,t]},Ft=(e,t,n)=>R.useQuery({...n,queryFn:async({queryKey:[s,o,i]})=>w.sendByGetRoute(e,Gt,{headers:await t.resolve(),pathParams:{teamId:o,userId:i}})});function Js(e,t){const n=Be();return Ft(e,t,{queryKey:$t.teamUserKey((n==null?void 0:n.teamId)??0,(n==null?void 0:n.userId)??0),enabled:(n==null?void 0:n.userId)!==void 0&&n.teamId!==void 0})}const Ws=r.z.object({lang_id:r.z.number(),lang_iso:r.z.string(),lang_name:r.z.string(),is_writable:r.z.union([r.z.literal(0),r.z.literal(1)])}),Ys=r.z.object({user_id:r.z.number(),email:r.z.string().email(),fullname:r.z.string(),created_at:r.z.string(),created_at_timestamp:r.z.number(),admin_rights:r.z.array(r.z.string()),languages:r.z.array(Ws),is_admin:r.z.boolean(),is_reviewer:r.z.boolean()}),Xs=r.z.object({project_id:r.z.string(),contributors:r.z.array(Ys)}),Kt=U.buildGetRoute({description:"Get the details of a project contributor",requestHeaderSchema:D,requestPathParamsSchema:r.z.object({projectId:r.z.string(),contributorId:r.z.number()}),pathResolver:({projectId:e,contributorId:t})=>`/projects/${e}/contributors/${t}`,successResponseBodySchema:Xs}),Qt={projectUserKey:(e,t)=>["RetrieveContributor",e,t]},Jt=(e,t,n)=>R.useQuery({...n,queryFn:async({queryKey:[s,o,i]})=>w.sendByGetRoute(e,Kt,{pathParams:{projectId:o,contributorId:i},headers:await t.resolve()})});function Vs(e,t,n){const s=Be();return Jt(e,t,{queryKey:Qt.projectUserKey(n,(s==null?void 0:s.userId)??0),enabled:s!==void 0})}const Zs=r.z.object({lang_iso:r.z.string(),custom_iso:r.z.string().optional()}),ea=r.z.object({language_id:r.z.number(),language_iso:r.z.string(),progress:r.z.number(),words_to_do:r.z.number()}),ta=r.z.object({projectId:r.z.string()}),Wt=r.z.object({lang_id:r.z.number(),lang_iso:r.z.string(),lang_name:r.z.string(),is_rtl:r.z.boolean(),plural_forms:r.z.array(r.z.string().optional())}),na=r.z.object({project_id:r.z.string(),project_uuid:r.z.string().uuid(),languages:r.z.array(Wt)}),ra=r.z.object({projectId:r.z.string()}),sa=r.z.object({languages:r.z.array(r.z.object({lang_iso:r.z.string(),custom_iso:r.z.string().optional(),custom_name:r.z.string().optional(),custom_plural_forms:r.z.array(r.z.string()).optional()}))}),aa=r.z.object({project_id:r.z.string(),project_uuid:r.z.string().uuid(),languages:r.z.array(Wt),errors:r.z.array(r.z.object({message:r.z.string(),code:r.z.number(),lang_iso:r.z.string()})).optional()}),oa=r.z.object({projectId:r.z.string()}),ia=r.z.object({langs:r.z.array(r.z.object({lang_iso:r.z.string(),base_lang:r.z.boolean()}))}),ca=r.z.object({result:r.z.boolean()}),Yt=U.buildGetRoute({description:"List of project languages",requestHeaderSchema:D,requestPathParamsSchema:ta,pathResolver:({projectId:e})=>`/projects/${e}/languages`,successResponseBodySchema:na}),Xt=U.buildPayloadRoute({description:"Add languages to existing project",requestHeaderSchema:D,method:"post",requestPathParamsSchema:ra,pathResolver:({projectId:e})=>`/projects/${e}/languages`,requestBodySchema:sa,successResponseBodySchema:aa}),Vt=U.buildPayloadRoute({description:"Bulk update project languages",requestHeaderSchema:D,method:"put",requestPathParamsSchema:oa,pathResolver:({projectId:e})=>`/projects/${e}/languages/bulk-update`,requestBodySchema:ia,successResponseBodySchema:ca}),ce=D,qe=r.z.union([r.z.literal("localization_files"),r.z.literal("paged_documents"),r.z.literal("marketing")]),la=r.z.object({per_platform_key_names:r.z.boolean(),reviewing:r.z.boolean(),auto_toggle_unverified:r.z.boolean(),offline_translation:r.z.boolean(),key_editing:r.z.boolean(),inline_machine_translations:r.z.boolean(),custom_translation_statuses:r.z.boolean(),custom_translation_statuses_allow_multiple:r.z.boolean(),segmentation:r.z.boolean(),contributor_preview_download_enabled:r.z.boolean()}),ua=r.z.object({not_reviewed:r.z.number(),unverified:r.z.number(),spelling_grammar:r.z.number(),inconsistent_placeholders:r.z.number(),inconsistent_html:r.z.number(),different_number_of_urls:r.z.number(),different_urls:r.z.number(),leading_whitespace:r.z.number(),trailing_whitespace:r.z.number(),different_number_of_email_address:r.z.number(),different_email_address:r.z.number(),different_brackets:r.z.number(),different_numbers:r.z.number(),double_space:r.z.number(),special_placeholder:r.z.number(),unbalanced_brackets:r.z.number()}),da=r.z.object({progress_total:r.z.number(),keys_total:r.z.number(),team:r.z.number(),base_words:r.z.number(),qa_issues_total:r.z.number(),qa_issues:ua,languages:r.z.array(ea)}),le=r.z.object({project_id:r.z.string(),uuid:r.z.string().uuid(),project_type:qe,name:r.z.string(),description:r.z.string(),created_at:r.z.string(),created_at_timestamp:r.z.number(),created_by:r.z.number(),created_by_email:r.z.string(),team_id:r.z.number(),base_language_id:r.z.number(),base_language_iso:r.z.string(),settings:la.optional(),statistics:da.optional()}),ma=r.z.object({name:r.z.string(),team_id:r.z.string(),base_lang_iso:r.z.string(),languages:r.z.array(Zs),project_type:qe,is_segmentation_enabled:r.z.boolean()}),bt=r.z.union([r.z.literal(0),r.z.literal(1)]),ga=r.z.object({filter_type:qe.optional(),filter_team_id:r.z.number().optional(),filter_names:r.z.string().optional(),include_statistics:bt.optional(),include_settings:bt.optional(),limit:r.z.number().optional(),page:r.z.number().optional()}),_a=r.z.object({projects:r.z.array(le)}),fa=r.z.object({project_id:r.z.string()}),pa=r.z.object({project_id:r.z.string()}),ha=r.z.object({name:r.z.string().min(1),description:r.z.string().optional()}),ue=()=>"/projects",Zt=Re.buildPayloadRoute({description:"Create a new project",requestHeaderSchema:ce,method:"post",pathResolver:ue,requestBodySchema:ma,successResponseBodySchema:le}),en=U.buildGetRoute({description:"List all projects",requestHeaderSchema:ce,pathResolver:ue,requestQuerySchema:ga,successResponseBodySchema:_a}),tn=U.buildGetRoute({description:"Retrieve a project",requestHeaderSchema:ce,requestPathParamsSchema:fa,pathResolver:({project_id:e})=>`${ue()}/${e}`,successResponseBodySchema:le}),nn=Re.buildPayloadRoute({description:"Update a project",requestHeaderSchema:ce,method:"put",requestPathParamsSchema:pa,pathResolver:({project_id:e})=>`${ue()}/${e}`,requestBodySchema:ha,successResponseBodySchema:le});function ba(e,t,n={}){return R.useMutation({...n,mutationFn:async s=>w.sendByPayloadRoute(e,Zt,{headers:await t.resolve(),body:s})})}const Ta={projectIdKey:e=>["listProjectLanguages",e]};function va(e,t,n){return R.useQuery({...n,queryFn:async({queryKey:[s,o]})=>w.sendByGetRoute(e,Yt,{headers:await t.resolve(),pathParams:{projectId:o}})})}const ja={paramsKey:e=>["listProjects",e]};function ya(e,t,n){return R.useQuery({...n,queryFn:async({queryKey:[s,o]})=>w.sendByGetRoute(e,en,{headers:await t.resolve(),queryParams:o})})}const Sa={projectIdKey:e=>["retrieveProject",e]};function xa(e,t,n){return R.useQuery({...n,queryFn:async({queryKey:[s,o]})=>w.sendByGetRoute(e,tn,{headers:await t.resolve(),pathParams:{project_id:o}})})}function Ea(e,t,n,s={}){return R.useMutation({...s,mutationFn:async o=>w.sendByPayloadRoute(e,nn,{headers:await t.resolve(),body:o,pathParams:n})})}function Pa(e,t,n,s={}){return R.useMutation({...s,mutationFn:async o=>w.sendByPayloadRoute(e,Vt,{pathParams:t,headers:await n.resolve(),body:o})})}function za(e,t,n,s={}){return R.useMutation({...s,mutationFn:async o=>w.sendByPayloadRoute(e,Xt,{pathParams:t,headers:await n.resolve(),body:o})})}exports.Breadcrumbs=vs;exports.ENTERPRISE_OPENSOURCE_PLAN_ID=Le;exports.ENTERPRISE_PLAN_IDS=kt;exports.ESSENTIAL_PLAN_IDS=Ct;exports.FREE_PLAN_ID=Ne;exports.HeaderBuilder=A;exports.JwtAuthHeaderBuilderMiddleware=Is;exports.NavigationPanel=Q;exports.NavigationTabs=ks;exports.PRO_PLAN_IDS=wt;exports.PublicApiHeaderBuilderMiddleware=Ns;exports.START_PLAN_IDS=zt;exports.Sidebar=k;exports.SidebarTaskLanguageStatuses=C;exports.SidebarTaskStatuses=ne;exports.SidebarTaskTypeOptions=F;exports.TRIAL_PLAN_ID=Pt;exports.UnauthorizedError=J;exports.addLanguagesToProject=Xt;exports.bulkUpdateProjectLanguages=Vt;exports.convertNewLineToBreakTag=At;exports.createHeaderBuilderMiddleware=Me;exports.createProject=Zt;exports.formatDate=It;exports.formatDateTz=mr;exports.generateTokenFromClassicSession=Ds;exports.getAuthenticatedSessionDetailFromRequest=Ls;exports.getCsrfTokenFromCookie=Bt;exports.getJwtTokenFromCookie=Ue;exports.getTeamUser=Gt;exports.getTeamUsersQueryKey=$t;exports.getUserToken=ie;exports.getUserTokenKey=Ht;exports.isEnterpriseOpenSourcePlan=ir;exports.isEnterprisePlan=ar;exports.isEssentialPlan=rr;exports.isFreePlan=ae;exports.isPaidPlan=or;exports.isProPlan=sr;exports.isStartPlan=nr;exports.isTrialPlan=Oe;exports.listProjectLanguages=Yt;exports.listProjectLanguagesKey=Ta;exports.listProjects=en;exports.listProjectsKey=ja;exports.makeUrlClickable=Rt;exports.parseJwtTokenPayload=H;exports.refreshExpiredToken=Gs;exports.retrieveContributor=Kt;exports.retrieveContributorKeys=Qt;exports.retrieveProject=tn;exports.retrieveProjectQueryKey=Sa;exports.updateProject=nn;exports.useAddLanguagesToProjectMutation=za;exports.useAuthenticatedProjectContributor=Vs;exports.useAuthenticatedSessionPayload=Be;exports.useAuthenticatedUser=Js;exports.useBulkUpdateProjectLanguagesMutation=Pa;exports.useCreateProjectMutation=ba;exports.useEffectOnce=oe;exports.useGetPromotedClassicSessionJwtQuery=$s;exports.useGetTeamUsersQuery=Ft;exports.useGetUserTokenQuery=Dt;exports.useListProjectLanguagesQuery=va;exports.useListProjectsQuery=ya;exports.useRetrieveContributorQuery=Jt;exports.useRetrieveProjectQuery=xa;exports.useUpdateProjectMutation=Ea;
1
+ "use strict";var In=Object.defineProperty;var kn=(e,t,n)=>t in e?In(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var ne=(e,t,n)=>kn(e,typeof t!="symbol"?t+"":t,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),h=require("react"),d=require("@lokalise/louis"),oe=require("date-fns"),Nn=require("date-fns-tz"),r=require("zod"),ke=require("@lokalise/universal-ts-utils/api-contracts/apiContracts"),z=require("@lokalise/frontend-http-client"),k=require("@tanstack/react-query"),U=require("@lokalise/universal-ts-utils/node");function On(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const s=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,s.get?s:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const F=On(h),se={Completed:"completed",InProgress:"in_progress",Created:"created",Queued:"queued"},x={...se,NotStarted:"not_started"},J={translation:"translation",review:"review",lqa_by_ai:"lqa_by_ai",automatic_translation:"automatic_translation"};var re=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function St(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var _e,Fe;function Ne(){if(Fe)return _e;Fe=1;function e(t){var n=typeof t;return t!=null&&(n=="object"||n=="function")}return _e=e,_e}var ge,Ke;function Ln(){if(Ke)return ge;Ke=1;var e=typeof re=="object"&&re&&re.Object===Object&&re;return ge=e,ge}var fe,Qe;function vt(){if(Qe)return fe;Qe=1;var e=Ln(),t=typeof self=="object"&&self&&self.Object===Object&&self,n=e||t||Function("return this")();return fe=n,fe}var pe,We;function Mn(){if(We)return pe;We=1;var e=vt(),t=function(){return e.Date.now()};return pe=t,pe}var he,Ye;function Un(){if(Ye)return he;Ye=1;var e=/\s/;function t(n){for(var s=n.length;s--&&e.test(n.charAt(s)););return s}return he=t,he}var be,Xe;function Hn(){if(Xe)return be;Xe=1;var e=Un(),t=/^\s+/;function n(s){return s&&s.slice(0,e(s)+1).replace(t,"")}return be=n,be}var Te,Ve;function jt(){if(Ve)return Te;Ve=1;var e=vt(),t=e.Symbol;return Te=t,Te}var Ee,Ze;function Bn(){if(Ze)return Ee;Ze=1;var e=jt(),t=Object.prototype,n=t.hasOwnProperty,s=t.toString,o=e?e.toStringTag:void 0;function i(c){var l=n.call(c,o),m=c[o];try{c[o]=void 0;var u=!0}catch{}var _=s.call(c);return u&&(l?c[o]=m:delete c[o]),_}return Ee=i,Ee}var Se,et;function Dn(){if(et)return Se;et=1;var e=Object.prototype,t=e.toString;function n(s){return t.call(s)}return Se=n,Se}var ve,tt;function qn(){if(tt)return ve;tt=1;var e=jt(),t=Bn(),n=Dn(),s="[object Null]",o="[object Undefined]",i=e?e.toStringTag:void 0;function c(l){return l==null?l===void 0?o:s:i&&i in Object(l)?t(l):n(l)}return ve=c,ve}var je,nt;function Gn(){if(nt)return je;nt=1;function e(t){return t!=null&&typeof t=="object"}return je=e,je}var ye,rt;function $n(){if(rt)return ye;rt=1;var e=qn(),t=Gn(),n="[object Symbol]";function s(o){return typeof o=="symbol"||t(o)&&e(o)==n}return ye=s,ye}var Ae,st;function Jn(){if(st)return Ae;st=1;var e=Hn(),t=Ne(),n=$n(),s=NaN,o=/^[-+]0x[0-9a-f]+$/i,i=/^0b[01]+$/i,c=/^0o[0-7]+$/i,l=parseInt;function m(u){if(typeof u=="number")return u;if(n(u))return s;if(t(u)){var _=typeof u.valueOf=="function"?u.valueOf():u;u=t(_)?_+"":_}if(typeof u!="string")return u===0?u:+u;u=e(u);var f=i.test(u);return f||c.test(u)?l(u.slice(2),f?2:8):o.test(u)?s:+u}return Ae=m,Ae}var Ce,at;function yt(){if(at)return Ce;at=1;var e=Ne(),t=Mn(),n=Jn(),s="Expected a function",o=Math.max,i=Math.min;function c(l,m,u){var _,f,S,v,g,y,T=0,p=!1,b=!1,E=!0;if(typeof l!="function")throw new TypeError(s);m=n(m)||0,e(u)&&(p=!!u.leading,b="maxWait"in u,S=b?o(n(u.maxWait)||0,m):S,E="trailing"in u?!!u.trailing:E);function C(j){var N=_,G=f;return _=f=void 0,T=j,v=l.apply(G,N),v}function A(j){return T=j,g=setTimeout(te,m),p?C(j):v}function ee(j){var N=j-y,G=j-T,Je=m-N;return b?i(Je,S-G):Je}function Ge(j){var N=j-y,G=j-T;return y===void 0||N>=m||N<0||b&&G>=S}function te(){var j=t();if(Ge(j))return $e(j);g=setTimeout(te,ee(j))}function $e(j){return g=void 0,E&&_?C(j):(_=f=void 0,v)}function zn(){g!==void 0&&clearTimeout(g),T=0,_=y=f=g=void 0}function wn(){return g===void 0?v:$e(t())}function me(){var j=t(),N=Ge(j);if(_=arguments,f=this,y=j,N){if(g===void 0)return A(y);if(b)return clearTimeout(g),g=setTimeout(te,m),C(y)}return g===void 0&&(g=setTimeout(te,m)),v}return me.cancel=zn,me.flush=wn,me}return Ce=c,Ce}var Fn=yt();const Kn=St(Fn);var Pe,ot;function Qn(){if(ot)return Pe;ot=1;var e=yt(),t=Ne(),n="Expected a function";function s(o,i,c){var l=!0,m=!0;if(typeof o!="function")throw new TypeError(n);return t(c)&&(l="leading"in c?!!c.leading:l,m="trailing"in c?!!c.trailing:m),e(o,i,{leading:l,maxWait:i,trailing:m})}return Pe=s,Pe}var Wn=Qn();const Yn=St(Wn),Xn=(e,t,n,s)=>{switch(t){case"debounce":return Kn(e,n,s);case"throttle":return Yn(e,n,s);default:return e}},Vn=e=>{const t=F.useRef(e);return F.useEffect(()=>{t.current=e}),F.useMemo(()=>(...n)=>{var s;return(s=t.current)===null||s===void 0?void 0:s.call(t,...n)},[])},Zn=e=>{const[t,n]=F.useState((e==null?void 0:e.current)||null);return e&&setTimeout(()=>{e.current!==t&&n(e.current)},0),{refProxy:F.useMemo(()=>new Proxy(o=>{o!==t&&n(o)},{get(o,i){return i==="current"?t:o[i]},set(o,i,c){return i==="current"?n(c):o[i]=c,!0}}),[t]),refElement:t,setRefElement:n}},er=(e,t)=>t==="border-box"?{width:e.borderBoxSize[0].inlineSize,height:e.borderBoxSize[0].blockSize}:t==="content-box"?{width:e.contentBoxSize[0].inlineSize,height:e.contentBoxSize[0].blockSize}:{width:e.contentRect.width,height:e.contentRect.height};function tr({skipOnMount:e=!1,refreshMode:t,refreshRate:n=1e3,refreshOptions:s,handleWidth:o=!0,handleHeight:i=!0,targetRef:c,observerOptions:l,onResize:m}={}){const u=h.useRef(e),_=Vn(m),[f,S]=h.useState({width:void 0,height:void 0}),{refProxy:v,refElement:g}=Zn(c),{box:y}=l||{},T=h.useCallback(b=>{if(!o&&!i)return;if(u.current){u.current=!1;return}const E=(C,A)=>o&&C.width!==A.width||i&&C.height!==A.height;b.forEach(C=>{const A=er(C,y);S(ee=>E(ee,A)?(_==null||_({width:A.width,height:A.height,entry:C}),A):ee)})},[o,i,u,y]),p=h.useCallback(Xn(T,t,n,s),[T,t,n,s]);return h.useEffect(()=>{let b;return g?(b=new window.ResizeObserver(p),b.observe(g,l)):(f.width||f.height)&&(_==null||_({width:null,height:null,entry:null}),S({width:void 0,height:void 0})),()=>{var E,C,A;(E=b==null?void 0:b.disconnect)===null||E===void 0||E.call(b),(A=(C=p).cancel)===null||A===void 0||A.call(C)}},[p,g]),Object.assign({ref:v},f)}function At(e){var t,n,s="";if(typeof e=="string"||typeof e=="number")s+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=At(e[t]))&&(s&&(s+=" "),s+=n)}else for(n in e)e[n]&&(s&&(s+=" "),s+=n);return s}function I(){for(var e,t,n=0,s="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=At(e))&&(s&&(s+=" "),s+=t);return s}const nr="_headerContainer_1cubo_1",rr="_navigationTabList_1cubo_8",sr="_navigationTab_1cubo_8",ar="_headerContent_1cubo_34",or="_staticEnabled_1cubo_50",D={headerContainer:nr,navigationTabList:rr,navigationTab:sr,headerContent:ar,staticEnabled:or},ir=77,K=({sticky:e,children:t})=>{const{ref:n,height:s}=tr({refreshMode:"debounce",refreshRate:0}),[o,i]=h.useState(!1),c=()=>o?!e:!0;h.useEffect(()=>{const m=()=>{i(window.scrollY>0)};return window.addEventListener("scroll",m),()=>window.removeEventListener("scroll",m)},[]);const l=`${s||ir}px`;return a.jsx("div",{style:{minHeight:l},children:a.jsx("div",{children:a.jsxs("div",{ref:n,className:I(D.headerContent,{[D.staticEnabled]:c()}),children:[a.jsx(K.Header,{}),a.jsx(K.Tabs,{}),t]})})})};K.Header=({children:e})=>a.jsx("div",{className:D.headerContainer,children:e});K.Tabs=({children:e})=>a.jsx("div",{className:"flex justify-between gap-2 nowrap",children:e});const cr="_sidebarContainer_bmdti_1",lr={sidebarContainer:cr},ur="_logoLink_1baxb_1",dr={logoLink:ur},mr=({src:e,href:t="/",ariaLabel:n="Lokalise App Home",alt:s="Lokalise Logo"})=>a.jsx("a",{className:dr.logoLink,href:t,"aria-label":n,children:a.jsx("img",{src:e,alt:s})}),_r="_link_18vhx_1",gr="_active_18vhx_18",it={link:_r,active:gr},fr=({label:e,to:t,icon:n})=>a.jsx(d.Tooltip,{placement:"right",tooltip:e,children:a.jsx(d.Link,{className:I(it.link,{[it.active]:window.location.pathname.startsWith(t)}),href:t,children:a.jsx(n,{size:"25px"})})}),pr="_dropdownButton_13l5r_1",hr="_dropdownButtonActive_13l5r_18",ct={dropdownButton:pr,dropdownButtonActive:hr},br=({children:e,icon:t})=>a.jsx(d.Menu,{menuButton:({opened:n})=>a.jsx(d.Tooltip,{placement:"right",tooltip:"Help",children:a.jsx("button",{type:"button",className:I(ct.dropdownButton,{[ct.dropdownButtonActive]:n}),children:a.jsx(t,{size:"25px"})})}),children:a.jsx(d.MenuList,{placement:"right-start",children:e})}),Tr="_iconContainer_nz34m_1",Er={iconContainer:Tr},Ct=({className:e=""})=>a.jsx("div",{"aria-label":"Upgrade Icon",className:I(Er.iconContainer,"flex-row","items-center","justify-center",e),children:a.jsx(d.CaretUpIcon,{})}),Sr="_menuContainer_1phdw_10",vr="_profileButton_1phdw_20",jr="_profileImage_1phdw_33",yr="_profileImageHighlight_1phdw_41",Ar="_profileImageUpgradeIcon_1phdw_45",Cr="_userIconWrapper_1phdw_51",L={menuContainer:Sr,profileButton:vr,profileImage:jr,profileImageHighlight:yr,profileImageUpgradeIcon:Ar,userIconWrapper:Cr},Pt=h.createContext({}),Y=()=>h.useContext(Pt),Pr=({children:e})=>{const{currentTeam:t,otherTeams:n,showUpgradeCta:s,showBillingButton:o,allowTeamCreation:i,isProviderAlpha:c,canAccessTeamSettings:l,isEndOfTrialActive:m,isTeamSuspended:u,isFullyAuthenticated:_}=Y();return a.jsx(d.Menu,{menuButton:()=>a.jsxs("button",{className:L.profileButton,"aria-label":"Profile menu",type:"button",children:[t!=null&&t.logoUrl?a.jsx("img",{src:t.logoUrl,className:I(L.profileImage,{[L.profileImageHighlight]:s}),alt:"Team Logo"}):a.jsx("div",{className:I(L.userIconWrapper,"flex-row","align-center","items-center",{[L.profileImageHighlight]:s}),children:a.jsx(d.UserIcon,{size:"25px"})}),s&&a.jsx(Ct,{className:L.profileImageUpgradeIcon})]}),children:a.jsx(d.MenuList,{placement:"right-end",className:L.menuContainer,children:e({allowTeamCreation:i,otherTeams:n,canAccessTeamSettings:l,isEndOfTrialActive:m,isTeamSuspended:u,showBillingButton:o,isProviderAlpha:c,isFullyAuthenticated:_})})})},Oe=0,xt=9999,Rt=[150,151,250,251],zt=[152,153,252,253],wt=[154,155,157,158,254,255,258,354,355,358],It=[156,159,160,256,259,260],Le=9998,ie=e=>e===Oe,Me=e=>e===xt,xr=e=>Rt.includes(e),Rr=e=>zt.includes(e),zr=e=>wt.includes(e),wr=e=>It.includes(e),Ir=e=>e>Oe&&e<Le,kr=e=>e===Le,Nr=/\n/,lt=(e,t,n)=>e.split(t).flatMap((s,o)=>o!==0?[h.cloneElement(n,{key:Math.random().toString(32).slice(0,10)}),s]:s),Or=(e,t,n)=>typeof e=="string"?lt(e,t,n):e.flatMap(s=>typeof s=="string"?lt(s,t,n):s),kt=e=>Or(e,Nr,a.jsx("br",{})),Lr=/(\b(https?|):\/\/[-a-zA-Zа-яА-Я0-9+&@#/%?=~_|!:,.;]*[-a-zA-Zа-яА-Я0-9+&@#/%=~_|])/gi,Mr=e=>e.match(Lr)??[],ut=(e,t,n)=>{const s=e.split(t);if(s.length===1)return e;const o=[];return s[0]!==""&&o.push(s[0]),s.shift(),s[s.length-1]===""&&s.pop(),o.push(a.jsx("a",{href:t,target:"_blank",rel:"noreferrer noopener",children:t},t+n)),o.push(s.join(t)),o.filter(i=>i!=="")},dt=e=>{const t=Mr(e);return t!=null&&t.length?t.reduce((n,s,o)=>typeof n=="string"?ut(n,s,o):n.flatMap(i=>typeof i=="string"?ut(i,s,o):i),e):e},Nt=e=>typeof e=="string"?dt(e):e.flatMap(t=>typeof t=="string"?dt(t):t,e),Ot=(e,t="PP")=>oe.format(e,t),Ur=(e,t,n="PP")=>oe.format(Nn.toZonedTime(e,t),n),ce=e=>{h.useEffect(e,[])},mt={biller:"biller",owner:"owner"},_t=[mt.biller,mt.owner],Hr=({children:e,config:t})=>{const{teams:n,currentTeamId:s,planId:o,isEndOfTrialActive:i,isFullyAuthenticated:c,userTeamRole:l}=t,m=n.find(p=>p.id===s),u=n.filter(p=>p.id!==s),_=_t.includes(l),f=_t.includes(l),S=ie(o)||Me(o),T={...t,currentTeam:m,otherTeams:u,canChangeBilling:_,canAccessTeamSettings:f,isOnFreeOrTrialPlan:S,showUpgradeCta:c&&S&&_,showBillingButton:c&&f&&_,allowTeamCreation:c&&!i};return a.jsx(Pt.Provider,{value:T,children:e})},Br=({config:e,children:t})=>a.jsx(Hr,{config:e,children:a.jsx(Pr,{children:t})}),Dr="_container_q5pot_1",qr="_profileEmail_q5pot_5",gt={container:Dr,profileEmail:qr},Gr=({href:e,onClick:t,userEmail:n,hideBottomDivider:s})=>{const{isEndOfTrialActive:o,isTeamSuspended:i}=Y();return o||i?null:a.jsxs(a.Fragment,{children:[a.jsx(d.MenuItem,{href:e,onClick:()=>{t==null||t()},children:a.jsxs("div",{className:`flex-col ${gt.container}`,children:[a.jsx("span",{children:"Profile Settings"}),a.jsx("span",{className:gt.profileEmail,children:n})]})}),!s&&a.jsx(d.MenuDivider,{})]})},$r="_wrapper_1in7x_5",Jr="_profileImage_1in7x_11",Fr="_teamDetails_1in7x_19",Kr="_planWrapper_1in7x_28",Qr="_teamName_1in7x_36",Wr="_planLabel_1in7x_45",Yr="_membership_1in7x_53",Xr="_defaultProfileImage_1in7x_59",O={wrapper:$r,profileImage:Jr,teamDetails:Fr,planWrapper:Kr,teamName:Qr,planLabel:Wr,membership:Yr,defaultProfileImage:Xr},Lt=({team:e,onClick:t,hidePlanLabel:n})=>{const{currentTeam:s,planId:o}=Y(),i=e||s;if(!i)return null;const c=ie(o)?"Free":Me(o)?"Trial":void 0,l=t?d.MenuItem:"div";return a.jsxs(l,{className:O.wrapper,...t&&{onClick:()=>t(i)},children:[i.logoUrl?a.jsx("img",{className:O.profileImage,src:i.logoUrl,alt:""}):a.jsx("span",{className:`${O.defaultProfileImage}`,children:a.jsx(d.UserIcon,{size:"25px"})}),a.jsxs("div",{className:O.teamDetails,children:[a.jsxs("div",{className:O.planWrapper,children:[a.jsx("span",{className:O.teamName,children:i.name}),c&&!n&&a.jsx("span",{className:`${O.planLabel}`,children:c})]}),a.jsx("span",{className:O.membership,children:i.role})]})]})},Vr="_teamsContainer_1ncrr_5",Zr={teamsContainer:Vr},es=({onSwitchTeam:e})=>{const{otherTeams:t}=Y();return t.length===0?null:a.jsx("div",{"data-testid":"sidebar-team-switch",className:`flex-col items-stretch ${Zr.teamsContainer}`,children:t.map(n=>a.jsx(Lt,{team:n,onClick:e,hidePlanLabel:!0},n.id))})},ts="_container_1u995_1",ns="_planCta_1u995_15",rs="_upgradeIconWrapper_1u995_19",xe={container:ts,planCta:ns,upgradeIconWrapper:rs},ss=({upgradeOptionHref:e})=>{const{planId:t,trialDaysLeft:n,showUpgradeCta:s}=Y();if(!s)return null;const c=ie(t)?"Your team is currently on the Free plan":`Free trial ends in ${n} ${n===1?"day":"days"}`;return a.jsxs(d.MenuItem,{"data-testid":"sidebar-upgrade-menu-item",href:e,className:`flex-col gap-1 items-start ${xe.container}`,children:[a.jsx("span",{className:xe.planCta,children:c}),a.jsxs("div",{className:`flex-row items-center gap-1 ${xe.upgradeIconWrapper}`,children:[a.jsx(Ct,{}),a.jsx("span",{children:"See upgrade options"})]})]})},as=Math.min,os=Math.max;function ft(e,t,n){return os(e,as(t,n))}function Mt(e,t){return typeof e=="function"?e(t):e}function Ut(e){return e.split("-")[0]}function is(e){return e==="x"?"y":"x"}function cs(e){return["top","bottom"].includes(Ut(e))?"y":"x"}function ls(e){return{top:0,right:0,bottom:0,left:0,...e}}function us(e){return typeof e!="number"?ls(e):{top:e,right:e,bottom:e,left:e}}function pt(e){const{x:t,y:n,width:s,height:o}=e;return{width:s,height:o,top:n,left:t,right:t+s,bottom:n+o,x:t,y:n}}async function ds(e,t){var n;t===void 0&&(t={});const{x:s,y:o,platform:i,rects:c,elements:l,strategy:m}=e,{boundary:u="clippingAncestors",rootBoundary:_="viewport",elementContext:f="floating",altBoundary:S=!1,padding:v=0}=Mt(t,e),g=us(v),T=l[S?f==="floating"?"reference":"floating":f],p=pt(await i.getClippingRect({element:(n=await(i.isElement==null?void 0:i.isElement(T)))==null||n?T:T.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(l.floating)),boundary:u,rootBoundary:_,strategy:m})),b=f==="floating"?{x:s,y:o,width:c.floating.width,height:c.floating.height}:c.reference,E=await(i.getOffsetParent==null?void 0:i.getOffsetParent(l.floating)),C=await(i.isElement==null?void 0:i.isElement(E))?await(i.getScale==null?void 0:i.getScale(E))||{x:1,y:1}:{x:1,y:1},A=pt(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:b,offsetParent:E,strategy:m}):b);return{top:(p.top-A.top+g.top)/C.y,bottom:(A.bottom-p.bottom+g.bottom)/C.y,left:(p.left-A.left+g.left)/C.x,right:(A.right-p.right+g.right)/C.x}}const ms=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:s,placement:o}=t,{mainAxis:i=!0,crossAxis:c=!1,limiter:l={fn:T=>{let{x:p,y:b}=T;return{x:p,y:b}}},...m}=Mt(e,t),u={x:n,y:s},_=await ds(t,m),f=cs(Ut(o)),S=is(f);let v=u[S],g=u[f];if(i){const T=S==="y"?"top":"left",p=S==="y"?"bottom":"right",b=v+_[T],E=v-_[p];v=ft(b,v,E)}if(c){const T=f==="y"?"top":"left",p=f==="y"?"bottom":"right",b=g+_[T],E=g-_[p];g=ft(b,g,E)}const y=l.fn({...t,[S]:v,[f]:g});return{...y,data:{x:y.x-n,y:y.y-s,enabled:{[S]:i,[f]:c}}}}}},_s="_navItem_1dudv_1",gs="_activeNavItem_1dudv_18",fs="_badge_1dudv_23",Re={navItem:_s,activeNavItem:gs,badge:fs},Ht=h.createContext({}),X=()=>h.useContext(Ht),ps=e=>{const t=e.lastIndexOf("."),n=e.slice(0,t),s=e.slice(t+1);return{name:n,extension:s}},hs=(e,t)=>{switch(e){case x.Completed:return t<100?"Closed":"Completed";case x.Created:return t>0?"In progress":"Not started";case x.InProgress:return"In progress";case x.Queued:return"Queued";case x.NotStarted:return"Not started";default:return"-"}},bs=e=>{const t=e.progress??0;return e.status===x.Created&&t>0?x.InProgress:e.status},Ts={[J.translation]:"#0891B2",[J.review]:"#16922D",[J.lqa_by_ai]:"#8B5CF6",[J.automatic_translation]:"#60A5FA"},Es=e=>{const t=[x.InProgress,x.Created,x.Completed];return e.filter(n=>n.status!=="queued").map(n=>({...n,status:bs(n)})).sort((n,s)=>n.status===x.InProgress&&n.progress===100?-1:s.status===x.InProgress&&s.progress===100?1:n.status===s.status?n.name<s.name?1:-1:t.indexOf(n.status)-t.indexOf(s.status))},ht=e=>[se.InProgress,se.Created].includes(e),Ss=(e,t)=>ht(e.status)&&ht(t.status)&&(t.progress??0)>=100,vs=({task:e,language:t})=>{const[n,s]=h.useState(!1),[o,i]=h.useState(!1),{onLanguageCompleteConfirm:c,fetchTasks:l}=X(),m=()=>{i(!1)};return a.jsxs(a.Fragment,{children:[o&&a.jsx(d.ConfirmModal,{opened:!0,loading:n,title:`Are you finished with ${t.name}?`,confirmText:"Mark as done",closeText:"Cancel",onClose:m,onConfirm:async()=>{s(!0),await c({task:e,language:t,closePrompt:m}),l()},children:a.jsxs(d.Alert,{status:"info",children:["Make sure you are finished and ",a.jsx("strong",{children:"mark it as done"})," to notify your team admin. This action cannot be undone, and the language might no longer be available for you to edit."]})}),a.jsx(d.Link,{disabled:n,onClick:()=>{i(!0)},children:"Mark as done"})]})},js="_langRowCompleted_vpgdi_1",ys="_langCellSecondary_vpgdi_15",As="_langStatus_vpgdi_20",ze={langRowCompleted:js,langCellSecondary:ys,langStatus:As},Cs=({language:e,task:t})=>{const{getProjectUrl:n,langNameOnClick:s,langProgressOnClick:o}=X(),i=e.progress??0,c=e.status===x.Completed,l=Ss(t,e);return a.jsxs("tr",{className:I({[ze.langRowCompleted]:l}),children:[a.jsx("td",{children:a.jsx(d.Tooltip,{tooltip:"Open in bilingual view",children:a.jsx(d.Link,{href:n({task:t,language:e}),onClick:()=>{s==null||s({task:t,language:e})},children:e.name})})}),a.jsx("td",{className:ze.langCellSecondary,children:l||c?"0":a.jsx(d.Tooltip,{tooltip:"Open uncompleted items",children:a.jsx(d.Link,{href:n({task:t,language:e,taskUncompleted:!0}),onClick:()=>{o==null||o({task:t,language:e})},children:e.base_words_total-e.base_words_done})})}),a.jsxs("td",{children:[i,"%"]}),a.jsx("td",{children:l?a.jsx(vs,{task:t,language:e}):a.jsx("span",{className:`${ze.langStatus} flex-row items-center justify-start`,"data-status":e.status,children:hs(e.status,i)})})]})},Ps="_taskContainer_mt2or_1",xs="_taskTitle_mt2or_21",Rs="_taskDescription_mt2or_28",zs="_languagesTable_mt2or_35",ws="_metadata_mt2or_87",B={taskContainer:Ps,taskTitle:xs,taskDescription:Rs,languagesTable:zs,metadata:ws},Is=({task:e})=>{const{getProjectUrl:t,taskTitleOnClick:n}=X(),s=Es(e.langs),o=i=>{window.open(`/style-guide/${e.team_id}/download/${i.id}/link`,"_blank","noopener,noreferrer")};return a.jsxs("div",{className:B.taskContainer,children:[a.jsxs("div",{className:"flex-row gap-1 items-center",children:[a.jsxs("div",{className:"flex-row gap-1 items-start flex-wrap",children:[a.jsx(d.Tag,{color:Ts[e.task_type],variant:"solid",children:e.task_type.toLocaleUpperCase()}),e.due_date&&a.jsxs(d.Tag,{color:"#EAB308",children:["DUE ",Ot(oe.parseISO(e.due_date),"yyyy-MM-dd")]})]}),e.style_guides.length>0&&a.jsx("div",{className:"flex-row",children:e.style_guides.length===1?a.jsx(d.Button,{size:"sm",variant:"secondary",onClick:()=>o(e.style_guides[0]),children:"Download style guide"}):a.jsx(d.Menu,{menuButton:a.jsx(d.Button,{variant:"secondary",size:"sm",children:"Download style guide"}),children:a.jsx(d.MenuList,{children:e.style_guides.map(i=>a.jsx(d.MenuItem,{onClick:()=>o(i),children:ps(i.name).name},i.id))})})})]}),a.jsx("h4",{className:B.taskTitle,children:a.jsx(d.Link,{href:t({task:e,view:"multi"}),onClick:()=>{n==null||n({task:e})},children:e.title})}),e.description&&a.jsx("div",{className:B.taskDescription,children:kt(Nt(e.description))}),a.jsxs("table",{className:B.languagesTable,children:[a.jsx("thead",{children:a.jsxs("tr",{children:[a.jsx("th",{children:"Languages"}),a.jsx("th",{children:"Words to do"}),a.jsx("th",{children:"Progress"}),a.jsx("th",{children:"Status"})]})}),a.jsx("tbody",{children:s.map(i=>a.jsx(Cs,{language:i,task:e},i.lang_id))})]}),a.jsxs("div",{"data-testid":"sidebar-task-overview-metadata",className:B.metadata,children:[a.jsxs("span",{children:["Source: ",e.source_lang_name]}),a.jsx("span",{children:e.created_by_fullname}),a.jsxs("span",{children:["In ",e.project_name,e.master_branching_enabled==="1"&&a.jsx("div",{className:B.tag,children:e.branch_name?e.branch_name:"master"})]})]})]})},P={TaskCompleted:"task_completed",TaskClosed:"task_closed",Refresh:"refresh",ShowDialog:"show_dialog"},ks="_loadingContainer_19d6m_1",Ns="_noTasksContainer_19d6m_7",Os="_noTasksHeading_19d6m_14",Ls="_noTasksText_19d6m_18",Ms="_tasksContainer_19d6m_23",$={loadingContainer:ks,noTasksContainer:Ns,noTasksHeading:Os,noTasksText:Ls,tasksContainer:Ms},Us=()=>{const{tasks:e,onTasksWidgetOpen:t,loadingTasks:n,fetchTasks:s}=X();return ce(()=>((async()=>{const i=await s();t==null||t({tasks:i})})(),document.addEventListener(P.TaskCompleted,s),document.addEventListener(P.TaskClosed,s),document.addEventListener(P.Refresh,s),()=>{document.removeEventListener(P.TaskCompleted,s),document.removeEventListener(P.TaskClosed,s),document.removeEventListener(P.Refresh,s)})),n?a.jsx("div",{"data-testid":"sidebar-tasks-loading-popover",className:$.loadingContainer,children:a.jsx(d.Loading,{})}):e.length===0?a.jsxs("div",{"data-testid":"sidebar-no-tasks-popover",className:$.noTasksContainer,children:[a.jsx("h3",{className:$.noTasksHeading,children:"No tasks"}),a.jsxs("div",{className:$.noTasksText,children:["Your incoming tasks will appear here.",a.jsx("br",{}),a.jsx(d.Link,{href:"https://docs.lokalise.com/translation-workflow/tasks",target:"_new",children:"Learn more"})]})]}):a.jsx("div",{"data-testid":"sidebar-tasks-popover",className:$.tasksContainer,children:e.map(o=>a.jsx(Is,{task:o},o.id))})},Hs=({children:e,config:t})=>{const[n,s]=h.useState([]),[o,i]=h.useState(!0),[c,l]=h.useState(0),{getProjectUrl:m,onLanguageCompleteConfirm:u,onTasksWidgetOpen:_,langNameOnClick:f,langProgressOnClick:S,taskTitleOnClick:v}=t,{getTasks:g,getTasksCount:y}=t,T=async()=>{i(!0);const E=await g();return s(E),i(!1),E},p=async()=>{const E=await y();l(E)};ce(()=>(p(),document.addEventListener(P.TaskCompleted,p),document.addEventListener(P.TaskClosed,p),document.addEventListener(P.Refresh,p),()=>{document.removeEventListener(P.TaskCompleted,p),document.removeEventListener(P.TaskClosed,p),document.removeEventListener(P.Refresh,p)}));const b={fetchTasks:T,tasks:n,tasksCount:c,loadingTasks:o,getProjectUrl:m,onLanguageCompleteConfirm:u,onTasksWidgetOpen:_,langNameOnClick:f,langProgressOnClick:S,taskTitleOnClick:v};return a.jsx(Ht.Provider,{value:b,children:e})},Bs=e=>function(n){const{config:s,...o}=n;return a.jsx(Hs,{config:s,children:a.jsx(e,{...o})})},Ds=Bs(()=>{const[e,t]=h.useState(!1),{tasksCount:n}=X();return ce(()=>{const s=()=>{t(!0)};return document.addEventListener(P.ShowDialog,s),()=>{document.removeEventListener(P.ShowDialog,s)}}),a.jsx(d.Tooltip,{tooltip:"Tasks",placement:"right",children:a.jsx(d.Popover,{content:a.jsx(Us,{}),placement:"right",open:e,onOpenChange:t,middlewares:[ms({padding:{top:32,bottom:32}})],children:s=>a.jsxs(d.Button,{type:"button","data-testid":"sidebar-tasks-widget-button","aria-label":"Tasks",className:I(Re.navItem,{[Re.activeNavItem]:s}),children:[a.jsx(d.JobIcon,{size:"25px"}),n>0&&a.jsx("div",{className:Re.badge,"aria-label":`${n} items requiring attention`,children:n>9?"9+":n})]})})})}),R=({children:e,...t})=>a.jsx("nav",{...t,className:lr.sidebarContainer,children:e}),qs=({children:e})=>a.jsx("div",{children:e});R.Top=qs;const Gs=({children:e})=>a.jsx("div",{children:e});R.Bottom=Gs;R.Avatar=mr;R.IconLink=fr;R.Menu=br;R.ProfileMenu=Br;R.TeamSwitch=es;R.TeamMenuItem=Lt;R.UpgradeMenuItem=ss;R.ProfileSettingsMenuItem=Gr;R.Tasks=Ds;const $s="_breadcrumbsItem_1hm6a_1",Js="_breadcrumbs_1hm6a_1",bt={breadcrumbsItem:$s,breadcrumbs:Js},Fs=({items:e})=>a.jsx("nav",{"aria-label":"breadcrumb",className:bt.breadcrumbs,children:e.map((t,n)=>a.jsxs(h.Fragment,{children:[a.jsx(d.Link,{className:bt.breadcrumbsItem,href:t.link,rel:"noreferrer",children:t.name}),n<e.length-1&&a.jsx("span",{children:" — "})]},`${t.link}-${t.name}`))}),Ks=({items:e})=>a.jsx(a.Fragment,{children:e.map((t,n)=>a.jsxs(h.Fragment,{children:[!!n&&t.some(s=>s.visible)&&a.jsx(d.MenuDivider,{}),t.filter(({visible:s})=>s).map(({link:s,label:o,onClick:i})=>a.jsx(d.MenuItem,{href:s||"#","aria-label":o,onClick:i,children:o},o))]},t[0].label))}),Qs="_badge_1pc1v_1",Ws="_tag_1pc1v_15",Ys="_withNavLinkStyle_1pc1v_42 _withLinkStyle_1pc1v_21",Xs="_disabled_1pc1v_57",Vs="_projectNavigationItem_1pc1v_61",Zs="_projectNavigationItemDisabled_1pc1v_67",M={badge:Qs,tag:Ws,withNavLinkStyle:Ys,disabled:Xs,projectNavigationItem:Vs,projectNavigationItemDisabled:Zs},Tt=({label:e,badge:t,novel:n})=>a.jsxs("div",{className:"flex gap-1",children:[a.jsxs("div",{children:[a.jsx("span",{children:e}),!!t&&a.jsx("div",{className:M.badge,"aria-label":`${t} items requiring attention`,children:t>9?"9+":t})]}),!!n&&a.jsx(d.Tag,{className:M.tag,children:n})]}),we=h.forwardRef(({label:e,href:t="",disabled:n=!1,badge:s,onClick:o,novel:i},c)=>a.jsx(d.Tooltip,{tooltip:"You do not have access to this function",show:n,children:a.jsx("div",{className:n?M.projectNavigationItemDisabled:M.projectNavigationItem,children:o||n||!t?a.jsx("button",{type:"button",ref:c,className:I(M.withNavLinkStyle,{[M.disabled]:n}),disabled:n,onClick:o,children:a.jsx(Tt,{label:e,badge:s,novel:i})}):a.jsx("a",{href:t,className:M.withNavLinkStyle,children:a.jsx(Tt,{label:e,badge:s,novel:i})})})}));we.displayName="NavigationTabsItem";const ea=e=>(e==null?void 0:e.some(t=>t.some(n=>n.visible)))??!1,ta=e=>e.visible&&(!e.dropdown||ea(e.dropdown)),na=({navigation:e,activeItem:t})=>a.jsx("nav",{"aria-label":"Project",children:a.jsx("ul",{className:D.navigationTabList,"aria-orientation":"horizontal",children:e.filter(ta).map(n=>{var s,o,i;return n.dropdown?a.jsx("li",{className:D.navigationTab,"data-testid":n.key,"aria-selected":(s=n.isActive)==null?void 0:s.call(n,t),children:a.jsx(d.Menu,{menuButton:({opened:c})=>a.jsx(we,{label:n.label,disabled:n.disabled,active:c}),children:a.jsx(d.MenuList,{children:a.jsx(Ks,{items:n.dropdown})})})},n.key):a.jsx("li",{className:D.navigationTab,"data-testid":n.key,"aria-selected":(o=n.isActive)==null?void 0:o.call(n,t),children:a.jsx(we,{label:n.label,href:n.link,onClick:n.onClick,disabled:n.disabled,badge:n.badge,novel:n.novel,active:(i=n.isActive)==null?void 0:i.call(n,t)})},n.key)})})});class w{constructor(t){this.factories=t}static create(t={}){return new w([()=>t])}add(t,n){return new w([...this.factories,()=>({[t]:n})])}and(t){return new w([...this.factories,()=>t])}from(t){return new w([...this.factories,t])}with(t){return t.apply(this)}merge(t){return new w([...this.factories,...t.factories])}async resolve(){const t=this.factories.map(s=>s()),n=await Promise.all(t);return Object.assign({},...n)}}function Ue(e){return new ra(e)}class ra{constructor(t){this.middleware=t}apply(t){return t.from(async()=>{const n=this.middleware(w.create());return n instanceof Promise?n.then(s=>s.resolve()):n.resolve()})}}const He=r.z.union([r.z.literal("owner"),r.z.literal("admin"),r.z.literal("biller"),r.z.literal("member")]),sa=r.z.object({userId:r.z.number(),userUuid:r.z.string().uuid(),teamId:r.z.number(),teamUuid:r.z.string().uuid(),userTeamRole:He,userEmail:r.z.string().email(),userName:r.z.string(),userCurrentTeamId:r.z.number(),planId:r.z.number(),planName:r.z.string(),isProviderAlpha:r.z.boolean(),isFullyAuthenticated:r.z.boolean(),exp:r.z.number()});function q(e){try{const t=e.split(".")[1],n=atob(t);return sa.parse(JSON.parse(n))}catch{return}}class Q extends Error{constructor(){super(...arguments);ne(this,"name","UnauthorizedError");ne(this,"status",401)}}function aa(e){return Ue(async t=>{var i,c;const n=e.getCurrentToken()??await((i=e.generateNewToken)==null?void 0:i.call(e));if(!n)throw new Q;const{exp:s}=q(n.accessToken)??{exp:0};if(!oe.isThisSecond(new Date(s)))return t.add("authorization",`Bearer ${n.accessToken}`);const o=await e.refreshToken(n);if(!o)throw new Q;return(c=e.onNewTokenIssued)==null||c.call(e,o),t.add("authorization",`Bearer ${o.accessToken}`)})}const oa=Ue(e=>e.and({"x-lokalise-plugin":"true"}));function Be(){const e=Ie(document.cookie,"accessToken"),t=Ie(document.cookie,"refreshToken");return!e||!t?null:{accessToken:e,refreshToken:t}}function Bt(){return Ie(document.cookie,"csrf_token")??null}function Ie(e,t){var n,s;return(s=(n=e.split(";").find(o=>o.trim().startsWith(`${t}=`)))==null?void 0:n.trim())==null?void 0:s.substring(t.length+1)}function ia(){const e=Be();if(!e)return;const t=q(e.accessToken);if(t)return{...e,payload:t}}const Dt=r.z.union([r.z.object({authorization:r.z.string()}),r.z.object({AUTHORIZATION:r.z.string()})]),ca=r.z.union([r.z.object({"X-API-Token":r.z.string()}),r.z.object({"X-Api-Token":r.z.string()}),r.z.object({"x-api-token":r.z.string()}),r.z.object({"X-API-TOKEN":r.z.string()})]),la=r.z.union([Dt,ca]),ua=r.z.union([r.z.object({"X-Lokalise-Plugin":r.z.string()}),r.z.object({"x-lokalise-plugin":r.z.string()}),r.z.object({"X-LOKALISE-PLUGIN":r.z.string()})]),H=la.and(ua),qt=r.z.object({accessToken:r.z.string(),refreshToken:r.z.string()}),da=r.z.union([r.z.object({"X-Csrf-Token":r.z.string()}),r.z.object({"X-CSRF-Token":r.z.string()}),r.z.object({"x-csrf-token":r.z.string()}),r.z.object({"X-CSRF-TOKEN":r.z.string()})]),Gt=r.z.union([Dt,da]),le=ke.buildPayloadRoute({description:"Takes a teamId and returns a JWT token access and refresh token for the user",method:"post",requestPathParamsSchema:r.z.object({teamId:r.z.number()}),pathResolver:e=>`/team/${e.teamId}/actions/get-user-token`,requestHeaderSchema:Gt,requestBodySchema:r.z.undefined(),isEmptyResponseExpected:!0,successResponseBodySchema:qt});function ma(e,t,n){return async()=>{const s=t();if(!s)throw new Q;return z.sendByPayloadRoute(e,le,{pathParams:{teamId:Number(await n())},headers:await w.create().add("x-csrf-token",s).resolve()})}}function _a(e){return async({accessToken:t,refreshToken:n})=>{const s=q(t);if(!s)throw new Q;return z.sendByPayloadRoute(e,le,{pathParams:{teamId:s.teamId},headers:await w.create().add("authorization",`Bearer ${n}`).resolve()})}}const $t={teamKey:e=>["getUserToken",e]},Jt=(e,t,n)=>k.useQuery({...n,queryFn:async({queryKey:[s,o]})=>z.sendByPayloadRoute(e,le,{headers:await t.resolve(),pathParams:{teamId:o}})}),ae=class ae extends CustomEvent{constructor(t){super(ae.eventName,{detail:{token:t,payload:q(t.accessToken)}})}};ne(ae,"eventName","new-jwt-issued");let W=ae;function ga(e,t,n){const s=Bt(),o=Jt(e,t.add("x-csrf-token",s??""),{queryKey:$t.teamKey(n),enabled:s!==void 0}),i=h.useRef();return h.useEffect(()=>{o.data&&o.data.accessToken!==i.current&&(window.dispatchEvent(new W(o.data)),i.current=o.data.accessToken)},[o.data]),o}function De(){const[e,t]=h.useState();return h.useEffect(()=>{const n=o=>{t(o.detail.payload)},s=Be();return t(s?q(s.accessToken):void 0),window.addEventListener(W.eventName,n),()=>{window.removeEventListener(W.eventName,n)}},[]),e}const Ft=H,Kt=r.z.object({user_id:r.z.number(),email:r.z.string().email(),fullname:r.z.string(),created_at:r.z.string(),created_at_timestamp:r.z.number(),role:He}),Qt=r.z.object({team_id:r.z.number(),team_user:Kt}),Wt=U.buildGetRoute({description:"Get the details of a team user",requestHeaderSchema:Ft,requestPathParamsSchema:r.z.object({teamId:r.z.number(),userId:r.z.number()}),pathResolver:({teamId:e,userId:t})=>`/teams/${e}/users/${t}`,successResponseBodySchema:Qt}),Yt={teamUserKey:(e,t)=>["GetTeamUsers",e,t]},Xt=(e,t,n)=>k.useQuery({...n,queryFn:async({queryKey:[s,o,i]})=>z.sendByGetRoute(e,Wt,{headers:await t.resolve(),pathParams:{teamId:o,userId:i}})});function fa(e,t){const n=De();return Xt(e,t,{queryKey:Yt.teamUserKey((n==null?void 0:n.teamId)??0,(n==null?void 0:n.userId)??0),enabled:(n==null?void 0:n.userId)!==void 0&&n.teamId!==void 0})}const pa=H,Vt=r.z.object({lang_id:r.z.number(),lang_iso:r.z.string(),lang_name:r.z.string(),is_writable:r.z.union([r.z.literal(0),r.z.literal(1)])}),Zt=r.z.object({user_id:r.z.number(),email:r.z.string().email(),fullname:r.z.string(),created_at:r.z.string(),created_at_timestamp:r.z.number(),admin_rights:r.z.array(r.z.string()),languages:r.z.array(Vt),is_admin:r.z.boolean(),is_reviewer:r.z.boolean()}),en=r.z.object({project_id:r.z.string(),contributors:r.z.array(Zt)}),tn=U.buildGetRoute({description:"Get the details of a project contributor",requestHeaderSchema:H,requestPathParamsSchema:r.z.object({projectId:r.z.string(),contributorId:r.z.number()}),pathResolver:({projectId:e,contributorId:t})=>`/projects/${e}/contributors/${t}`,successResponseBodySchema:en}),nn={projectUserKey:(e,t)=>["RetrieveContributor",e,t]},rn=(e,t,n)=>k.useQuery({...n,queryFn:async({queryKey:[s,o,i]})=>z.sendByGetRoute(e,tn,{pathParams:{projectId:o,contributorId:i},headers:await t.resolve()})});function ha(e,t,n){const s=De();return rn(e,t,{queryKey:nn.projectUserKey(n,(s==null?void 0:s.userId)??0),enabled:s!==void 0})}const sn=r.z.object({lang_iso:r.z.string(),custom_iso:r.z.string().optional()}),an=r.z.object({language_id:r.z.number(),language_iso:r.z.string(),progress:r.z.number(),words_to_do:r.z.number()}),on=r.z.object({projectId:r.z.string()}),qe=r.z.object({lang_id:r.z.number(),lang_iso:r.z.string(),lang_name:r.z.string(),is_rtl:r.z.boolean(),plural_forms:r.z.array(r.z.string().optional())}),cn=r.z.object({project_id:r.z.string(),project_uuid:r.z.string().uuid(),languages:r.z.array(qe)}),ln=r.z.object({projectId:r.z.string()}),un=r.z.object({languages:r.z.array(r.z.object({lang_iso:r.z.string(),custom_iso:r.z.string().optional(),custom_name:r.z.string().optional(),custom_plural_forms:r.z.array(r.z.string()).optional()}))}),dn=r.z.object({project_id:r.z.string(),project_uuid:r.z.string().uuid(),languages:r.z.array(qe),errors:r.z.array(r.z.object({message:r.z.string(),code:r.z.number(),lang_iso:r.z.string()})).optional()}),mn=r.z.object({projectId:r.z.string()}),_n=r.z.object({langs:r.z.array(r.z.object({lang_iso:r.z.string(),base_lang:r.z.boolean()}))}),gn=r.z.object({result:r.z.boolean()}),fn=U.buildGetRoute({description:"List of project languages",requestHeaderSchema:H,requestPathParamsSchema:on,pathResolver:({projectId:e})=>`/projects/${e}/languages`,successResponseBodySchema:cn}),ba=U.buildPayloadRoute({description:"Add languages to existing project",requestHeaderSchema:H,method:"post",requestPathParamsSchema:ln,pathResolver:({projectId:e})=>`/projects/${e}/languages`,requestBodySchema:un,successResponseBodySchema:dn}),pn=U.buildPayloadRoute({description:"Bulk update project languages",requestHeaderSchema:H,method:"put",requestPathParamsSchema:mn,pathResolver:({projectId:e})=>`/projects/${e}/languages/bulk-update`,requestBodySchema:_n,successResponseBodySchema:gn}),V=H,ue=r.z.union([r.z.literal("localization_files"),r.z.literal("paged_documents"),r.z.literal("marketing")]),hn=r.z.object({per_platform_key_names:r.z.boolean(),reviewing:r.z.boolean(),auto_toggle_unverified:r.z.boolean(),offline_translation:r.z.boolean(),key_editing:r.z.boolean(),inline_machine_translations:r.z.boolean(),custom_translation_statuses:r.z.boolean(),custom_translation_statuses_allow_multiple:r.z.boolean(),segmentation:r.z.boolean(),contributor_preview_download_enabled:r.z.boolean()}),bn=r.z.object({not_reviewed:r.z.number(),unverified:r.z.number(),spelling_grammar:r.z.number(),inconsistent_placeholders:r.z.number(),inconsistent_html:r.z.number(),different_number_of_urls:r.z.number(),different_urls:r.z.number(),leading_whitespace:r.z.number(),trailing_whitespace:r.z.number(),different_number_of_email_address:r.z.number(),different_email_address:r.z.number(),different_brackets:r.z.number(),different_numbers:r.z.number(),double_space:r.z.number(),special_placeholder:r.z.number(),unbalanced_brackets:r.z.number()}),Tn=r.z.object({progress_total:r.z.number(),keys_total:r.z.number(),team:r.z.number(),base_words:r.z.number(),qa_issues_total:r.z.number(),qa_issues:bn,languages:r.z.array(an)}),Z=r.z.object({project_id:r.z.string(),uuid:r.z.string().uuid(),project_type:ue,name:r.z.string(),description:r.z.string(),created_at:r.z.string(),created_at_timestamp:r.z.number(),created_by:r.z.number(),created_by_email:r.z.string(),team_id:r.z.number(),base_language_id:r.z.number(),base_language_iso:r.z.string(),settings:hn.optional(),statistics:Tn.optional()}),En=r.z.object({name:r.z.string(),team_id:r.z.string(),base_lang_iso:r.z.string(),languages:r.z.array(sn),project_type:ue,is_segmentation_enabled:r.z.boolean()}),Et=r.z.union([r.z.literal(0),r.z.literal(1)]),Sn=r.z.object({filter_type:ue.optional(),filter_team_id:r.z.number().optional(),filter_names:r.z.string().optional(),include_statistics:Et.optional(),include_settings:Et.optional(),limit:r.z.number().optional(),page:r.z.number().optional()}),vn=r.z.object({projects:r.z.array(Z)}),jn=r.z.object({project_id:r.z.string()}),yn=r.z.object({project_id:r.z.string()}),An=r.z.object({name:r.z.string().min(1),description:r.z.string().optional()}),de=()=>"/projects",Cn=ke.buildPayloadRoute({description:"Create a new project",requestHeaderSchema:V,method:"post",pathResolver:de,requestBodySchema:En,successResponseBodySchema:Z}),Pn=U.buildGetRoute({description:"List all projects",requestHeaderSchema:V,pathResolver:de,requestQuerySchema:Sn,successResponseBodySchema:vn}),xn=U.buildGetRoute({description:"Retrieve a project",requestHeaderSchema:V,requestPathParamsSchema:jn,pathResolver:({project_id:e})=>`${de()}/${e}`,successResponseBodySchema:Z}),Rn=ke.buildPayloadRoute({description:"Update a project",requestHeaderSchema:V,method:"put",requestPathParamsSchema:yn,pathResolver:({project_id:e})=>`${de()}/${e}`,requestBodySchema:An,successResponseBodySchema:Z});function Ta(e,t,n={}){return k.useMutation({...n,mutationFn:async s=>z.sendByPayloadRoute(e,Cn,{headers:await t.resolve(),body:s})})}const Ea={projectIdKey:e=>["listProjectLanguages",e]};function Sa(e,t,n){return k.useQuery({...n,queryFn:async({queryKey:[s,o]})=>z.sendByGetRoute(e,fn,{headers:await t.resolve(),pathParams:{projectId:o}})})}const va={paramsKey:e=>["listProjects",e]};function ja(e,t,n){return k.useQuery({...n,queryFn:async({queryKey:[s,o]})=>z.sendByGetRoute(e,Pn,{headers:await t.resolve(),queryParams:o})})}const ya={projectIdKey:e=>["retrieveProject",e]};function Aa(e,t,n){return k.useQuery({...n,queryFn:async({queryKey:[s,o]})=>z.sendByGetRoute(e,xn,{headers:await t.resolve(),pathParams:{project_id:o}})})}function Ca(e,t,n,s={}){return k.useMutation({...s,mutationFn:async o=>z.sendByPayloadRoute(e,Rn,{headers:await t.resolve(),body:o,pathParams:n})})}function Pa(e,t,n,s={}){return k.useMutation({...s,mutationFn:async o=>z.sendByPayloadRoute(e,pn,{pathParams:t,headers:await n.resolve(),body:o})})}exports.ADD_LANGUAGES_TO_PROJECT_PATH_PARAMS_SCHEMA=ln;exports.ADD_LANGUAGES_TO_PROJECT_REQUEST_BODY_SCHEMA=un;exports.ADD_LANGUAGES_TO_PROJECT_RESPONSE_SCHEMA=dn;exports.BULK_UPDATE_PROJECT_LANGUAGES_PATH_PARAMS_SCHEMA=mn;exports.BULK_UPDATE_PROJECT_LANGUAGES_REQUEST_BODY_SCHEMA=_n;exports.BULK_UPDATE_PROJECT_LANGUAGES_RESPONSE_SCHEMA=gn;exports.Breadcrumbs=Fs;exports.CONTRIBUTOR_API_BASE_HEADER_SCHEMA=pa;exports.CONTRIBUTOR_LANGUAGE_SCHEMA=Vt;exports.CONTRIBUTOR_SCHEMA=Zt;exports.CREATE_PROJECT_REQUEST_BODY_SCHEMA=En;exports.ENTERPRISE_OPENSOURCE_PLAN_ID=Le;exports.ENTERPRISE_PLAN_IDS=It;exports.ESSENTIAL_PLAN_IDS=zt;exports.FREE_PLAN_ID=Oe;exports.HeaderBuilder=w;exports.JWT_TOKEN_SCHEMA=qt;exports.JwtAuthHeaderBuilderMiddleware=aa;exports.LANGUAGE_ISO_SCHEMA=sn;exports.LANGUAGE_SCHEMA=qe;exports.LANGUAGE_STATISTICS_SCHEMA=an;exports.LIST_PROJECTS_REQUEST_QUERY_SCHEMA=Sn;exports.LIST_PROJECTS_SUCCESS_RESPONSE_BODY=vn;exports.LIST_PROJECT_LANGUAGES_PATH_PARAMS_SCHEMA=on;exports.LIST_PROJECT_LANGUAGES_RESPONSE_SCHEMA=cn;exports.NavigationPanel=K;exports.NavigationTabs=na;exports.PROJECT_API_BASE_HEADERS_SCHEMA=V;exports.PROJECT_QA_ISSUES_SCHEMA=bn;exports.PROJECT_SCHEMA=Z;exports.PROJECT_SETTINGS_SCHEMA=hn;exports.PROJECT_STATISTICS_SCHEMA=Tn;exports.PROJECT_TYPE_SCHEMA=ue;exports.PRO_PLAN_IDS=wt;exports.PublicApiHeaderBuilderMiddleware=oa;exports.RETRIEVE_CONTRIBUTORS_RESPONSE_SCHEMA=en;exports.RETRIEVE_PROJECT_PATH_PARAM_SCHEMA=jn;exports.START_PLAN_IDS=Rt;exports.Sidebar=R;exports.SidebarTaskLanguageStatuses=x;exports.SidebarTaskStatuses=se;exports.SidebarTaskTypeOptions=J;exports.TEAM_ROLE_SCHEMA=He;exports.TEAM_USER_API_BASE_HEADERS_SCHEMA=Ft;exports.TEAM_USER_RESPONSE_SCHEMA=Qt;exports.TEAM_USER_SCHEMA=Kt;exports.TRIAL_PLAN_ID=xt;exports.UPDATE_PROJECT_PATH_PARAMS_SCHEMA=yn;exports.UPDATE_PROJECT_REQUEST_BODY_SCHEMA=An;exports.USER_TOKEN_REQUEST_HEADER_SCHEMA=Gt;exports.UnauthorizedError=Q;exports.addLanguagesToProject=ba;exports.bulkUpdateProjectLanguages=pn;exports.convertNewLineToBreakTag=kt;exports.createHeaderBuilderMiddleware=Ue;exports.createProject=Cn;exports.formatDate=Ot;exports.formatDateTz=Ur;exports.generateTokenFromClassicSession=ma;exports.getAuthenticatedSessionDetailFromRequest=ia;exports.getCsrfTokenFromCookie=Bt;exports.getJwtTokenFromCookie=Be;exports.getTeamUser=Wt;exports.getTeamUsersQueryKey=Yt;exports.getUserToken=le;exports.getUserTokenKey=$t;exports.isEnterpriseOpenSourcePlan=kr;exports.isEnterprisePlan=wr;exports.isEssentialPlan=Rr;exports.isFreePlan=ie;exports.isPaidPlan=Ir;exports.isProPlan=zr;exports.isStartPlan=xr;exports.isTrialPlan=Me;exports.listProjectLanguages=fn;exports.listProjectLanguagesKey=Ea;exports.listProjects=Pn;exports.listProjectsKey=va;exports.makeUrlClickable=Nt;exports.parseJwtTokenPayload=q;exports.refreshExpiredToken=_a;exports.retrieveContributor=tn;exports.retrieveContributorKeys=nn;exports.retrieveProject=xn;exports.retrieveProjectQueryKey=ya;exports.updateProject=Rn;exports.useAuthenticatedProjectContributor=ha;exports.useAuthenticatedSessionPayload=De;exports.useAuthenticatedUser=fa;exports.useBulkUpdateProjectLanguagesMutation=Pa;exports.useCreateProjectMutation=Ta;exports.useEffectOnce=ce;exports.useGetPromotedClassicSessionJwtQuery=ga;exports.useGetTeamUsersQuery=Xt;exports.useGetUserTokenQuery=Jt;exports.useListProjectLanguagesQuery=Sa;exports.useListProjectsQuery=ja;exports.useRetrieveContributorQuery=rn;exports.useRetrieveProjectQuery=Aa;exports.useUpdateProjectMutation=Ca;
package/dist/harmony.mjs CHANGED
@@ -1,24 +1,24 @@
1
1
  var en = Object.defineProperty;
2
2
  var tn = (e, t, n) => t in e ? en(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;
3
3
  var ne = (e, t, n) => tn(e, typeof t != "symbol" ? t + "" : t, n);
4
- import { jsx as s, jsxs as f, Fragment as He } from "react/jsx-runtime";
4
+ import { jsx as s, jsxs as f, Fragment as Ue } from "react/jsx-runtime";
5
5
  import * as K from "react";
6
6
  import { useRef as Ct, useState as R, useCallback as We, useEffect as J, useContext as wt, createContext as Pt, cloneElement as nn, Fragment as At, forwardRef as rn } from "react";
7
- import { Tooltip as B, Link as M, Menu as ce, MenuList as le, CaretUpIcon as an, UserIcon as kt, MenuItem as W, MenuDivider as It, ConfirmModal as on, Alert as sn, Tag as Oe, Button as xe, Loading as cn, Popover as ln, JobIcon as dn } from "@lokalise/louis";
7
+ import { Tooltip as B, Link as M, Menu as ce, MenuList as le, CaretUpIcon as an, UserIcon as kt, MenuItem as W, MenuDivider as It, ConfirmModal as on, Alert as sn, Tag as Ne, Button as Oe, Loading as cn, Popover as ln, JobIcon as dn } from "@lokalise/louis";
8
8
  import { format as Rt, parseISO as un, isThisSecond as mn } from "date-fns";
9
9
  import { toZonedTime as _n } from "date-fns-tz";
10
10
  import { z as r } from "zod";
11
- import { buildPayloadRoute as qe } from "@lokalise/universal-ts-utils/api-contracts/apiContracts";
12
- import { sendByPayloadRoute as U, sendByGetRoute as Q } from "@lokalise/frontend-http-client";
13
- import { useQuery as D, useMutation as de } from "@tanstack/react-query";
11
+ import { buildPayloadRoute as He } from "@lokalise/universal-ts-utils/api-contracts/apiContracts";
12
+ import { sendByPayloadRoute as D, sendByGetRoute as Q } from "@lokalise/frontend-http-client";
13
+ import { useQuery as $, useMutation as qe } from "@tanstack/react-query";
14
14
  import { buildGetRoute as Y, buildPayloadRoute as jt } from "@lokalise/universal-ts-utils/node";
15
- const Le = {
15
+ const xe = {
16
16
  Completed: "completed",
17
17
  InProgress: "in_progress",
18
18
  Created: "created",
19
19
  Queued: "queued"
20
20
  }, A = {
21
- ...Le,
21
+ ...xe,
22
22
  NotStarted: "not_started"
23
23
  }, re = {
24
24
  translation: "translation",
@@ -30,42 +30,42 @@ var ae = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : t
30
30
  function Nt(e) {
31
31
  return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
32
32
  }
33
- var pe, Qe;
33
+ var ge, Qe;
34
34
  function Be() {
35
- if (Qe) return pe;
35
+ if (Qe) return ge;
36
36
  Qe = 1;
37
37
  function e(t) {
38
38
  var n = typeof t;
39
39
  return t != null && (n == "object" || n == "function");
40
40
  }
41
- return pe = e, pe;
41
+ return ge = e, ge;
42
42
  }
43
- var fe, Ye;
43
+ var pe, Ye;
44
44
  function gn() {
45
- if (Ye) return fe;
45
+ if (Ye) return pe;
46
46
  Ye = 1;
47
47
  var e = typeof ae == "object" && ae && ae.Object === Object && ae;
48
- return fe = e, fe;
48
+ return pe = e, pe;
49
49
  }
50
- var he, Xe;
50
+ var fe, Xe;
51
51
  function Ot() {
52
- if (Xe) return he;
52
+ if (Xe) return fe;
53
53
  Xe = 1;
54
54
  var e = gn(), t = typeof self == "object" && self && self.Object === Object && self, n = e || t || Function("return this")();
55
- return he = n, he;
55
+ return fe = n, fe;
56
56
  }
57
- var be, Ve;
57
+ var he, Ve;
58
58
  function pn() {
59
- if (Ve) return be;
59
+ if (Ve) return he;
60
60
  Ve = 1;
61
61
  var e = Ot(), t = function() {
62
62
  return e.Date.now();
63
63
  };
64
- return be = t, be;
64
+ return he = t, he;
65
65
  }
66
- var ve, Ze;
66
+ var be, Ze;
67
67
  function fn() {
68
- if (Ze) return ve;
68
+ if (Ze) return be;
69
69
  Ze = 1;
70
70
  var e = /\s/;
71
71
  function t(n) {
@@ -73,28 +73,28 @@ function fn() {
73
73
  ;
74
74
  return a;
75
75
  }
76
- return ve = t, ve;
76
+ return be = t, be;
77
77
  }
78
- var Te, et;
78
+ var ve, et;
79
79
  function hn() {
80
- if (et) return Te;
80
+ if (et) return ve;
81
81
  et = 1;
82
82
  var e = fn(), t = /^\s+/;
83
83
  function n(a) {
84
84
  return a && a.slice(0, e(a) + 1).replace(t, "");
85
85
  }
86
- return Te = n, Te;
86
+ return ve = n, ve;
87
87
  }
88
- var ye, tt;
88
+ var Te, tt;
89
89
  function xt() {
90
- if (tt) return ye;
90
+ if (tt) return Te;
91
91
  tt = 1;
92
92
  var e = Ot(), t = e.Symbol;
93
- return ye = t, ye;
93
+ return Te = t, Te;
94
94
  }
95
- var Se, nt;
95
+ var ye, nt;
96
96
  function bn() {
97
- if (nt) return Se;
97
+ if (nt) return ye;
98
98
  nt = 1;
99
99
  var e = xt(), t = Object.prototype, n = t.hasOwnProperty, a = t.toString, o = e ? e.toStringTag : void 0;
100
100
  function i(c) {
@@ -107,50 +107,50 @@ function bn() {
107
107
  var m = a.call(c);
108
108
  return l && (d ? c[o] = u : delete c[o]), m;
109
109
  }
110
- return Se = i, Se;
110
+ return ye = i, ye;
111
111
  }
112
- var Ee, rt;
112
+ var Se, rt;
113
113
  function vn() {
114
- if (rt) return Ee;
114
+ if (rt) return Se;
115
115
  rt = 1;
116
116
  var e = Object.prototype, t = e.toString;
117
117
  function n(a) {
118
118
  return t.call(a);
119
119
  }
120
- return Ee = n, Ee;
120
+ return Se = n, Se;
121
121
  }
122
- var Ce, at;
122
+ var Ee, at;
123
123
  function Tn() {
124
- if (at) return Ce;
124
+ if (at) return Ee;
125
125
  at = 1;
126
126
  var e = xt(), t = bn(), n = vn(), a = "[object Null]", o = "[object Undefined]", i = e ? e.toStringTag : void 0;
127
127
  function c(d) {
128
128
  return d == null ? d === void 0 ? o : a : i && i in Object(d) ? t(d) : n(d);
129
129
  }
130
- return Ce = c, Ce;
130
+ return Ee = c, Ee;
131
131
  }
132
- var we, ot;
132
+ var Ce, ot;
133
133
  function yn() {
134
- if (ot) return we;
134
+ if (ot) return Ce;
135
135
  ot = 1;
136
136
  function e(t) {
137
137
  return t != null && typeof t == "object";
138
138
  }
139
- return we = e, we;
139
+ return Ce = e, Ce;
140
140
  }
141
- var Pe, st;
141
+ var we, st;
142
142
  function Sn() {
143
- if (st) return Pe;
143
+ if (st) return we;
144
144
  st = 1;
145
145
  var e = Tn(), t = yn(), n = "[object Symbol]";
146
146
  function a(o) {
147
147
  return typeof o == "symbol" || t(o) && e(o) == n;
148
148
  }
149
- return Pe = a, Pe;
149
+ return we = a, we;
150
150
  }
151
- var Ae, it;
151
+ var Pe, it;
152
152
  function En() {
153
- if (it) return Ae;
153
+ if (it) return Pe;
154
154
  it = 1;
155
155
  var e = hn(), t = Be(), n = Sn(), a = NaN, o = /^[-+]0x[0-9a-f]+$/i, i = /^0b[01]+$/i, c = /^0o[0-7]+$/i, d = parseInt;
156
156
  function u(l) {
@@ -168,11 +168,11 @@ function En() {
168
168
  var g = i.test(l);
169
169
  return g || c.test(l) ? d(l.slice(2), g ? 2 : 8) : o.test(l) ? a : +l;
170
170
  }
171
- return Ae = u, Ae;
171
+ return Pe = u, Pe;
172
172
  }
173
- var ke, ct;
173
+ var Ae, ct;
174
174
  function Lt() {
175
- if (ct) return ke;
175
+ if (ct) return Ae;
176
176
  ct = 1;
177
177
  var e = Be(), t = pn(), n = En(), a = "Expected a function", o = Math.max, i = Math.min;
178
178
  function c(d, u, l) {
@@ -210,7 +210,7 @@ function Lt() {
210
210
  function Zt() {
211
211
  return _ === void 0 ? y : ze(t());
212
212
  }
213
- function ge() {
213
+ function _e() {
214
214
  var S = t(), N = Ke(S);
215
215
  if (m = arguments, g = this, E = S, N) {
216
216
  if (_ === void 0)
@@ -220,15 +220,15 @@ function Lt() {
220
220
  }
221
221
  return _ === void 0 && (_ = setTimeout(te, u)), y;
222
222
  }
223
- return ge.cancel = Vt, ge.flush = Zt, ge;
223
+ return _e.cancel = Vt, _e.flush = Zt, _e;
224
224
  }
225
- return ke = c, ke;
225
+ return Ae = c, Ae;
226
226
  }
227
227
  var Cn = Lt();
228
228
  const wn = /* @__PURE__ */ Nt(Cn);
229
- var Ie, lt;
229
+ var ke, lt;
230
230
  function Pn() {
231
- if (lt) return Ie;
231
+ if (lt) return ke;
232
232
  lt = 1;
233
233
  var e = Lt(), t = Be(), n = "Expected a function";
234
234
  function a(o, i, c) {
@@ -241,7 +241,7 @@ function Pn() {
241
241
  trailing: u
242
242
  });
243
243
  }
244
- return Ie = a, Ie;
244
+ return ke = a, ke;
245
245
  }
246
246
  var An = Pn();
247
247
  const kn = /* @__PURE__ */ Nt(An), In = (e, t, n, a) => {
@@ -487,7 +487,7 @@ const Bn = "_sidebarContainer_bmdti_1", Dn = {
487
487
  }) })
488
488
  }
489
489
  );
490
- }, qt = 0, sr = 9999, ir = [150, 151, 250, 251], cr = [152, 153, 252, 253], lr = [154, 155, 157, 158, 254, 255, 258, 354, 355, 358], dr = [156, 159, 160, 256, 259, 260], Bt = 9998, De = (e) => e === qt, Dt = (e) => e === sr, Do = (e) => ir.includes(e), $o = (e) => cr.includes(e), Go = (e) => lr.includes(e), Fo = (e) => dr.includes(e), Ko = (e) => e > qt && e < Bt, zo = (e) => e === Bt, ur = /\n/, mt = (e, t, n) => e.split(t).flatMap((a, o) => o !== 0 ? [nn(n, { key: Math.random().toString(32).slice(0, 10) }), a] : a), mr = (e, t, n) => typeof e == "string" ? mt(e, t, n) : e.flatMap((a) => typeof a == "string" ? mt(a, t, n) : a), _r = (e) => mr(e, ur, /* @__PURE__ */ s("br", {})), gr = /(\b(https?|):\/\/[-a-zA-Zа-яА-Я0-9+&@#/%?=~_|!:,.;]*[-a-zA-Zа-яА-Я0-9+&@#/%=~_|])/gi, pr = (e) => e.match(gr) ?? [], _t = (e, t, n) => {
490
+ }, qt = 0, sr = 9999, ir = [150, 151, 250, 251], cr = [152, 153, 252, 253], lr = [154, 155, 157, 158, 254, 255, 258, 354, 355, 358], dr = [156, 159, 160, 256, 259, 260], Bt = 9998, De = (e) => e === qt, Dt = (e) => e === sr, Bo = (e) => ir.includes(e), Do = (e) => cr.includes(e), $o = (e) => lr.includes(e), Go = (e) => dr.includes(e), Fo = (e) => e > qt && e < Bt, Ko = (e) => e === Bt, ur = /\n/, mt = (e, t, n) => e.split(t).flatMap((a, o) => o !== 0 ? [nn(n, { key: Math.random().toString(32).slice(0, 10) }), a] : a), mr = (e, t, n) => typeof e == "string" ? mt(e, t, n) : e.flatMap((a) => typeof a == "string" ? mt(a, t, n) : a), _r = (e) => mr(e, ur, /* @__PURE__ */ s("br", {})), gr = /(\b(https?|):\/\/[-a-zA-Zа-яА-Я0-9+&@#/%?=~_|!:,.;]*[-a-zA-Zа-яА-Я0-9+&@#/%=~_|])/gi, pr = (e) => e.match(gr) ?? [], _t = (e, t, n) => {
491
491
  const a = e.split(t);
492
492
  if (a.length === 1)
493
493
  return e;
@@ -498,7 +498,7 @@ const Bn = "_sidebarContainer_bmdti_1", Dn = {
498
498
  }, gt = (e) => {
499
499
  const t = pr(e);
500
500
  return t != null && t.length ? t.reduce((n, a, o) => typeof n == "string" ? _t(n, a, o) : n.flatMap((i) => typeof i == "string" ? _t(i, a, o) : i), e) : e;
501
- }, fr = (e) => typeof e == "string" ? gt(e) : e.flatMap((t) => typeof t == "string" ? gt(t) : t, e), hr = (e, t = "PP") => Rt(e, t), Jo = (e, t, n = "PP") => Rt(_n(e, t), n), $e = (e) => {
501
+ }, fr = (e) => typeof e == "string" ? gt(e) : e.flatMap((t) => typeof t == "string" ? gt(t) : t, e), hr = (e, t = "PP") => Rt(e, t), zo = (e, t, n = "PP") => Rt(_n(e, t), n), $e = (e) => {
502
502
  J(e, []);
503
503
  }, pt = {
504
504
  biller: "biller",
@@ -529,7 +529,7 @@ const Bn = "_sidebarContainer_bmdti_1", Dn = {
529
529
  hideBottomDivider: a
530
530
  }) => {
531
531
  const { isEndOfTrialActive: o, isTeamSuspended: i } = X();
532
- return o || i ? null : /* @__PURE__ */ f(He, { children: [
532
+ return o || i ? null : /* @__PURE__ */ f(Ue, { children: [
533
533
  /* @__PURE__ */ s(
534
534
  W,
535
535
  {
@@ -588,7 +588,7 @@ const Bn = "_sidebarContainer_bmdti_1", Dn = {
588
588
  children: t.map((n) => /* @__PURE__ */ s($t, { team: n, onClick: e, hidePlanLabel: !0 }, n.id))
589
589
  }
590
590
  );
591
- }, xr = "_container_1u995_1", Lr = "_planCta_1u995_15", Mr = "_upgradeIconWrapper_1u995_19", Re = {
591
+ }, xr = "_container_1u995_1", Lr = "_planCta_1u995_15", Mr = "_upgradeIconWrapper_1u995_19", Ie = {
592
592
  container: xr,
593
593
  planCta: Lr,
594
594
  upgradeIconWrapper: Mr
@@ -602,10 +602,10 @@ const Bn = "_sidebarContainer_bmdti_1", Dn = {
602
602
  {
603
603
  "data-testid": "sidebar-upgrade-menu-item",
604
604
  href: e,
605
- className: `flex-col gap-1 items-start ${Re.container}`,
605
+ className: `flex-col gap-1 items-start ${Ie.container}`,
606
606
  children: [
607
- /* @__PURE__ */ s("span", { className: Re.planCta, children: c }),
608
- /* @__PURE__ */ f("div", { className: `flex-row items-center gap-1 ${Re.upgradeIconWrapper}`, children: [
607
+ /* @__PURE__ */ s("span", { className: Ie.planCta, children: c }),
608
+ /* @__PURE__ */ f("div", { className: `flex-row items-center gap-1 ${Ie.upgradeIconWrapper}`, children: [
609
609
  /* @__PURE__ */ s(Ut, {}),
610
610
  /* @__PURE__ */ s("span", { children: "See upgrade options" })
611
611
  ] })
@@ -764,7 +764,7 @@ const Kr = function(e) {
764
764
  };
765
765
  }
766
766
  };
767
- }, zr = "_navItem_1dudv_1", Jr = "_activeNavItem_1dudv_18", Wr = "_badge_1dudv_23", je = {
767
+ }, zr = "_navItem_1dudv_1", Jr = "_activeNavItem_1dudv_18", Wr = "_badge_1dudv_23", Re = {
768
768
  navItem: zr,
769
769
  activeNavItem: Jr,
770
770
  badge: Wr
@@ -801,11 +801,11 @@ const Kr = function(e) {
801
801
  A.Completed
802
802
  ];
803
803
  return e.filter((n) => n.status !== "queued").map((n) => ({ ...n, status: Xr(n) })).sort((n, a) => n.status === A.InProgress && n.progress === 100 ? -1 : a.status === A.InProgress && a.progress === 100 ? 1 : n.status === a.status ? n.name < a.name ? 1 : -1 : t.indexOf(n.status) - t.indexOf(a.status));
804
- }, Tt = (e) => [Le.InProgress, Le.Created].includes(e), ea = (e, t) => Tt(e.status) && Tt(t.status) && (t.progress ?? 0) >= 100, ta = ({ task: e, language: t }) => {
804
+ }, Tt = (e) => [xe.InProgress, xe.Created].includes(e), ea = (e, t) => Tt(e.status) && Tt(t.status) && (t.progress ?? 0) >= 100, ta = ({ task: e, language: t }) => {
805
805
  const [n, a] = R(!1), [o, i] = R(!1), { onLanguageCompleteConfirm: c, fetchTasks: d } = V(), u = () => {
806
806
  i(!1);
807
807
  };
808
- return /* @__PURE__ */ f(He, { children: [
808
+ return /* @__PURE__ */ f(Ue, { children: [
809
809
  o && /* @__PURE__ */ s(
810
810
  on,
811
811
  {
@@ -836,7 +836,7 @@ const Kr = function(e) {
836
836
  }
837
837
  )
838
838
  ] });
839
- }, na = "_langRowCompleted_vpgdi_1", ra = "_langCellSecondary_vpgdi_15", aa = "_langStatus_vpgdi_20", Ne = {
839
+ }, na = "_langRowCompleted_vpgdi_1", ra = "_langCellSecondary_vpgdi_15", aa = "_langStatus_vpgdi_20", je = {
840
840
  langRowCompleted: na,
841
841
  langCellSecondary: ra,
842
842
  langStatus: aa
@@ -846,7 +846,7 @@ const Kr = function(e) {
846
846
  "tr",
847
847
  {
848
848
  className: j({
849
- [Ne.langRowCompleted]: d
849
+ [je.langRowCompleted]: d
850
850
  }),
851
851
  children: [
852
852
  /* @__PURE__ */ s("td", { children: /* @__PURE__ */ s(B, { tooltip: "Open in bilingual view", children: /* @__PURE__ */ s(
@@ -859,7 +859,7 @@ const Kr = function(e) {
859
859
  children: e.name
860
860
  }
861
861
  ) }) }),
862
- /* @__PURE__ */ s("td", { className: Ne.langCellSecondary, children: d || c ? "0" : /* @__PURE__ */ s(B, { tooltip: "Open uncompleted items", children: /* @__PURE__ */ s(
862
+ /* @__PURE__ */ s("td", { className: je.langCellSecondary, children: d || c ? "0" : /* @__PURE__ */ s(B, { tooltip: "Open uncompleted items", children: /* @__PURE__ */ s(
863
863
  M,
864
864
  {
865
865
  href: n({ task: t, language: e, taskUncompleted: !0 }),
@@ -876,7 +876,7 @@ const Kr = function(e) {
876
876
  /* @__PURE__ */ s("td", { children: d ? /* @__PURE__ */ s(ta, { task: t, language: e }) : /* @__PURE__ */ s(
877
877
  "span",
878
878
  {
879
- className: `${Ne.langStatus} flex-row items-center justify-start`,
879
+ className: `${je.langStatus} flex-row items-center justify-start`,
880
880
  "data-status": e.status,
881
881
  children: Yr(e.status, i)
882
882
  }
@@ -901,14 +901,14 @@ const Kr = function(e) {
901
901
  return /* @__PURE__ */ f("div", { className: H.taskContainer, children: [
902
902
  /* @__PURE__ */ f("div", { className: "flex-row gap-1 items-center", children: [
903
903
  /* @__PURE__ */ f("div", { className: "flex-row gap-1 items-start flex-wrap", children: [
904
- /* @__PURE__ */ s(Oe, { color: Vr[e.task_type], variant: "solid", children: e.task_type.toLocaleUpperCase() }),
905
- e.due_date && /* @__PURE__ */ f(Oe, { color: "#EAB308", children: [
904
+ /* @__PURE__ */ s(Ne, { color: Vr[e.task_type], variant: "solid", children: e.task_type.toLocaleUpperCase() }),
905
+ e.due_date && /* @__PURE__ */ f(Ne, { color: "#EAB308", children: [
906
906
  "DUE ",
907
907
  hr(un(e.due_date), "yyyy-MM-dd")
908
908
  ] })
909
909
  ] }),
910
910
  e.style_guides.length > 0 && /* @__PURE__ */ s("div", { className: "flex-row", children: e.style_guides.length === 1 ? /* @__PURE__ */ s(
911
- xe,
911
+ Oe,
912
912
  {
913
913
  size: "sm",
914
914
  variant: "secondary",
@@ -918,7 +918,7 @@ const Kr = function(e) {
918
918
  ) : /* @__PURE__ */ s(
919
919
  ce,
920
920
  {
921
- menuButton: /* @__PURE__ */ s(xe, { variant: "secondary", size: "sm", children: "Download style guide" }),
921
+ menuButton: /* @__PURE__ */ s(Oe, { variant: "secondary", size: "sm", children: "Download style guide" }),
922
922
  children: /* @__PURE__ */ s(le, { children: e.style_guides.map((i) => /* @__PURE__ */ s(
923
923
  W,
924
924
  {
@@ -1051,17 +1051,17 @@ const Kr = function(e) {
1051
1051
  })
1052
1052
  ],
1053
1053
  children: (a) => /* @__PURE__ */ f(
1054
- xe,
1054
+ Oe,
1055
1055
  {
1056
1056
  type: "button",
1057
1057
  "data-testid": "sidebar-tasks-widget-button",
1058
1058
  "aria-label": "Tasks",
1059
- className: j(je.navItem, {
1060
- [je.activeNavItem]: a
1059
+ className: j(Re.navItem, {
1060
+ [Re.activeNavItem]: a
1061
1061
  }),
1062
1062
  children: [
1063
1063
  /* @__PURE__ */ s(dn, { size: "25px" }),
1064
- n > 0 && /* @__PURE__ */ s("div", { className: je.badge, "aria-label": `${n} items requiring attention`, children: n > 9 ? "9+" : n })
1064
+ n > 0 && /* @__PURE__ */ s("div", { className: Re.badge, "aria-label": `${n} items requiring attention`, children: n > 9 ? "9+" : n })
1065
1065
  ]
1066
1066
  }
1067
1067
  )
@@ -1083,10 +1083,10 @@ k.Tasks = Ta;
1083
1083
  const Ea = "_breadcrumbsItem_1hm6a_1", Ca = "_breadcrumbs_1hm6a_1", yt = {
1084
1084
  breadcrumbsItem: Ea,
1085
1085
  breadcrumbs: Ca
1086
- }, Wo = ({ items: e }) => /* @__PURE__ */ s("nav", { "aria-label": "breadcrumb", className: yt.breadcrumbs, children: e.map((t, n) => /* @__PURE__ */ f(At, { children: [
1086
+ }, Jo = ({ items: e }) => /* @__PURE__ */ s("nav", { "aria-label": "breadcrumb", className: yt.breadcrumbs, children: e.map((t, n) => /* @__PURE__ */ f(At, { children: [
1087
1087
  /* @__PURE__ */ s(M, { className: yt.breadcrumbsItem, href: t.link, rel: "noreferrer", children: t.name }),
1088
1088
  n < e.length - 1 && /* @__PURE__ */ s("span", { children: " — " })
1089
- ] }, `${t.link}-${t.name}`)) }), wa = ({ items: e }) => /* @__PURE__ */ s(He, { children: e.map((t, n) => /* @__PURE__ */ f(At, { children: [
1089
+ ] }, `${t.link}-${t.name}`)) }), wa = ({ items: e }) => /* @__PURE__ */ s(Ue, { children: e.map((t, n) => /* @__PURE__ */ f(At, { children: [
1090
1090
  !!n && t.some((a) => a.visible) && /* @__PURE__ */ s(It, {}),
1091
1091
  t.filter(({ visible: a }) => a).map(({ link: a, label: o, onClick: i }) => /* @__PURE__ */ s(W, { href: a || "#", "aria-label": o, onClick: i, children: o }, o))
1092
1092
  ] }, t[0].label)) }), Pa = "_badge_1pc1v_1", Aa = "_tag_1pc1v_15", ka = "_withNavLinkStyle_1pc1v_42 _withLinkStyle_1pc1v_21", Ia = "_disabled_1pc1v_57", Ra = "_projectNavigationItem_1pc1v_61", ja = "_projectNavigationItemDisabled_1pc1v_67", L = {
@@ -1101,8 +1101,8 @@ const Ea = "_breadcrumbsItem_1hm6a_1", Ca = "_breadcrumbs_1hm6a_1", yt = {
1101
1101
  /* @__PURE__ */ s("span", { children: e }),
1102
1102
  !!t && /* @__PURE__ */ s("div", { className: L.badge, "aria-label": `${t} items requiring attention`, children: t > 9 ? "9+" : t })
1103
1103
  ] }),
1104
- !!n && /* @__PURE__ */ s(Oe, { className: L.tag, children: n })
1105
- ] }), Me = rn(
1104
+ !!n && /* @__PURE__ */ s(Ne, { className: L.tag, children: n })
1105
+ ] }), Le = rn(
1106
1106
  ({ label: e, href: t = "", disabled: n = !1, badge: a, onClick: o, novel: i }, c) => /* @__PURE__ */ s(B, { tooltip: "You do not have access to this function", show: n, children: /* @__PURE__ */ s(
1107
1107
  "div",
1108
1108
  {
@@ -1123,8 +1123,8 @@ const Ea = "_breadcrumbsItem_1hm6a_1", Ca = "_breadcrumbs_1hm6a_1", yt = {
1123
1123
  }
1124
1124
  ) })
1125
1125
  );
1126
- Me.displayName = "NavigationTabsItem";
1127
- const Na = (e) => (e == null ? void 0 : e.some((t) => t.some((n) => n.visible))) ?? !1, Oa = (e) => e.visible && (!e.dropdown || Na(e.dropdown)), Qo = ({ navigation: e, activeItem: t }) => /* @__PURE__ */ s("nav", { "aria-label": "Project", children: /* @__PURE__ */ s("ul", { className: q.navigationTabList, "aria-orientation": "horizontal", children: e.filter(Oa).map((n) => {
1126
+ Le.displayName = "NavigationTabsItem";
1127
+ const Na = (e) => (e == null ? void 0 : e.some((t) => t.some((n) => n.visible))) ?? !1, Oa = (e) => e.visible && (!e.dropdown || Na(e.dropdown)), Wo = ({ navigation: e, activeItem: t }) => /* @__PURE__ */ s("nav", { "aria-label": "Project", children: /* @__PURE__ */ s("ul", { className: q.navigationTabList, "aria-orientation": "horizontal", children: e.filter(Oa).map((n) => {
1128
1128
  var a, o, i;
1129
1129
  return n.dropdown ? /* @__PURE__ */ s(
1130
1130
  "li",
@@ -1135,7 +1135,7 @@ const Na = (e) => (e == null ? void 0 : e.some((t) => t.some((n) => n.visible)))
1135
1135
  children: /* @__PURE__ */ s(
1136
1136
  ce,
1137
1137
  {
1138
- menuButton: ({ opened: c }) => /* @__PURE__ */ s(Me, { label: n.label, disabled: n.disabled, active: c }),
1138
+ menuButton: ({ opened: c }) => /* @__PURE__ */ s(Le, { label: n.label, disabled: n.disabled, active: c }),
1139
1139
  children: /* @__PURE__ */ s(le, { children: /* @__PURE__ */ s(wa, { items: n.dropdown }) })
1140
1140
  }
1141
1141
  )
@@ -1148,7 +1148,7 @@ const Na = (e) => (e == null ? void 0 : e.some((t) => t.some((n) => n.visible)))
1148
1148
  "data-testid": n.key,
1149
1149
  "aria-selected": (o = n.isActive) == null ? void 0 : o.call(n, t),
1150
1150
  children: /* @__PURE__ */ s(
1151
- Me,
1151
+ Le,
1152
1152
  {
1153
1153
  label: n.label,
1154
1154
  href: n.link,
@@ -1352,7 +1352,7 @@ class se extends Error {
1352
1352
  ne(this, "status", 401);
1353
1353
  }
1354
1354
  }
1355
- function Yo(e) {
1355
+ function Qo(e) {
1356
1356
  return zt(async (t) => {
1357
1357
  var i, c;
1358
1358
  const n = e.getCurrentToken() ?? await ((i = e.generateNewToken) == null ? void 0 : i.call(e));
@@ -1367,21 +1367,21 @@ function Yo(e) {
1367
1367
  return (c = e.onNewTokenIssued) == null || c.call(e, o), t.add("authorization", `Bearer ${o.accessToken}`);
1368
1368
  });
1369
1369
  }
1370
- const Xo = zt(
1370
+ const Yo = zt(
1371
1371
  (e) => e.and({ "x-lokalise-plugin": "true" })
1372
1372
  );
1373
1373
  function Wt() {
1374
- const e = Ue(document.cookie, "accessToken"), t = Ue(document.cookie, "refreshToken");
1374
+ const e = Me(document.cookie, "accessToken"), t = Me(document.cookie, "refreshToken");
1375
1375
  return !e || !t ? null : { accessToken: e, refreshToken: t };
1376
1376
  }
1377
1377
  function Ma() {
1378
- return Ue(document.cookie, "csrf_token") ?? null;
1378
+ return Me(document.cookie, "csrf_token") ?? null;
1379
1379
  }
1380
- function Ue(e, t) {
1380
+ function Me(e, t) {
1381
1381
  var n, a;
1382
1382
  return (a = (n = e.split(";").find((o) => o.trim().startsWith(`${t}=`))) == null ? void 0 : n.trim()) == null ? void 0 : a.substring(t.length + 1);
1383
1383
  }
1384
- function Vo() {
1384
+ function Xo() {
1385
1385
  const e = Wt();
1386
1386
  if (!e)
1387
1387
  return;
@@ -1404,7 +1404,7 @@ const Qt = r.union([
1404
1404
  r.object({ "X-Lokalise-Plugin": r.string() }),
1405
1405
  r.object({ "x-lokalise-plugin": r.string() }),
1406
1406
  r.object({ "X-LOKALISE-PLUGIN": r.string() })
1407
- ]), $ = Ha.and(qa), Ba = r.object({
1407
+ ]), U = Ha.and(qa), Ba = r.object({
1408
1408
  accessToken: r.string(),
1409
1409
  refreshToken: r.string()
1410
1410
  }), Da = r.union([
@@ -1415,7 +1415,7 @@ const Qt = r.union([
1415
1415
  ]), $a = r.union([
1416
1416
  Qt,
1417
1417
  Da
1418
- ]), Ge = qe({
1418
+ ]), Ge = He({
1419
1419
  description: "Takes a teamId and returns a JWT token access and refresh token for the user",
1420
1420
  method: "post",
1421
1421
  requestPathParamsSchema: r.object({ teamId: r.number() }),
@@ -1425,23 +1425,23 @@ const Qt = r.union([
1425
1425
  isEmptyResponseExpected: !0,
1426
1426
  successResponseBodySchema: Ba
1427
1427
  });
1428
- function Zo(e, t, n) {
1428
+ function Vo(e, t, n) {
1429
1429
  return async () => {
1430
1430
  const a = t();
1431
1431
  if (!a)
1432
1432
  throw new se();
1433
- return U(e, Ge, {
1433
+ return D(e, Ge, {
1434
1434
  pathParams: { teamId: Number(await n()) },
1435
1435
  headers: await I.create().add("x-csrf-token", a).resolve()
1436
1436
  });
1437
1437
  };
1438
1438
  }
1439
- function es(e) {
1439
+ function Zo(e) {
1440
1440
  return async ({ accessToken: t, refreshToken: n }) => {
1441
1441
  const a = Z(t);
1442
1442
  if (!a)
1443
1443
  throw new se();
1444
- return U(e, Ge, {
1444
+ return D(e, Ge, {
1445
1445
  pathParams: { teamId: a.teamId },
1446
1446
  headers: await I.create().add("authorization", `Bearer ${n}`).resolve()
1447
1447
  });
@@ -1449,9 +1449,9 @@ function es(e) {
1449
1449
  }
1450
1450
  const Ga = {
1451
1451
  teamKey: (e) => ["getUserToken", e]
1452
- }, Fa = (e, t, n) => D({
1452
+ }, Fa = (e, t, n) => $({
1453
1453
  ...n,
1454
- queryFn: async ({ queryKey: [a, o] }) => U(e, Ge, {
1454
+ queryFn: async ({ queryKey: [a, o] }) => D(e, Ge, {
1455
1455
  headers: await t.resolve(),
1456
1456
  pathParams: { teamId: o }
1457
1457
  })
@@ -1464,7 +1464,7 @@ const Ga = {
1464
1464
  };
1465
1465
  ne(ie, "eventName", "new-jwt-issued");
1466
1466
  let z = ie;
1467
- function ts(e, t, n) {
1467
+ function es(e, t, n) {
1468
1468
  const a = Ma(), o = Fa(e, t.add("x-csrf-token", a ?? ""), {
1469
1469
  queryKey: Ga.teamKey(n),
1470
1470
  enabled: a !== void 0
@@ -1484,7 +1484,7 @@ function Yt() {
1484
1484
  };
1485
1485
  }, []), e;
1486
1486
  }
1487
- const Ka = $, za = r.object({
1487
+ const Ka = U, za = r.object({
1488
1488
  user_id: r.number(),
1489
1489
  email: r.string().email(),
1490
1490
  fullname: r.string(),
@@ -1502,21 +1502,21 @@ const Ka = $, za = r.object({
1502
1502
  successResponseBodySchema: Ja
1503
1503
  }), Qa = {
1504
1504
  teamUserKey: (e, t) => ["GetTeamUsers", e, t]
1505
- }, Ya = (e, t, n) => D({
1505
+ }, Ya = (e, t, n) => $({
1506
1506
  ...n,
1507
1507
  queryFn: async ({ queryKey: [a, o, i] }) => Q(e, Wa, {
1508
1508
  headers: await t.resolve(),
1509
1509
  pathParams: { teamId: o, userId: i }
1510
1510
  })
1511
1511
  });
1512
- function ns(e, t) {
1512
+ function ts(e, t) {
1513
1513
  const n = Yt();
1514
1514
  return Ya(e, t, {
1515
1515
  queryKey: Qa.teamUserKey((n == null ? void 0 : n.teamId) ?? 0, (n == null ? void 0 : n.userId) ?? 0),
1516
1516
  enabled: (n == null ? void 0 : n.userId) !== void 0 && n.teamId !== void 0
1517
1517
  });
1518
1518
  }
1519
- const Xa = r.object({
1519
+ const ns = U, Xa = r.object({
1520
1520
  lang_id: r.number(),
1521
1521
  lang_iso: r.string(),
1522
1522
  lang_name: r.string(),
@@ -1536,13 +1536,13 @@ const Xa = r.object({
1536
1536
  contributors: r.array(Va)
1537
1537
  }), eo = Y({
1538
1538
  description: "Get the details of a project contributor",
1539
- requestHeaderSchema: $,
1539
+ requestHeaderSchema: U,
1540
1540
  requestPathParamsSchema: r.object({ projectId: r.string(), contributorId: r.number() }),
1541
1541
  pathResolver: ({ projectId: e, contributorId: t }) => `/projects/${e}/contributors/${t}`,
1542
1542
  successResponseBodySchema: Za
1543
1543
  }), to = {
1544
1544
  projectUserKey: (e, t) => ["RetrieveContributor", e, t]
1545
- }, no = (e, t, n) => D({
1545
+ }, no = (e, t, n) => $({
1546
1546
  ...n,
1547
1547
  queryFn: async ({ queryKey: [a, o, i] }) => Q(e, eo, {
1548
1548
  pathParams: { projectId: o, contributorId: i },
@@ -1611,31 +1611,31 @@ const ro = r.object({
1611
1611
  result: r.boolean()
1612
1612
  }), go = Y({
1613
1613
  description: "List of project languages",
1614
- requestHeaderSchema: $,
1614
+ requestHeaderSchema: U,
1615
1615
  requestPathParamsSchema: oo,
1616
1616
  pathResolver: ({ projectId: e }) => `/projects/${e}/languages`,
1617
1617
  successResponseBodySchema: so
1618
- }), po = jt({
1618
+ }), as = jt({
1619
1619
  description: "Add languages to existing project",
1620
- requestHeaderSchema: $,
1620
+ requestHeaderSchema: U,
1621
1621
  method: "post",
1622
1622
  requestPathParamsSchema: io,
1623
1623
  pathResolver: ({ projectId: e }) => `/projects/${e}/languages`,
1624
1624
  requestBodySchema: co,
1625
1625
  successResponseBodySchema: lo
1626
- }), fo = jt({
1626
+ }), po = jt({
1627
1627
  description: "Bulk update project languages",
1628
- requestHeaderSchema: $,
1628
+ requestHeaderSchema: U,
1629
1629
  method: "put",
1630
1630
  requestPathParamsSchema: uo,
1631
1631
  pathResolver: ({ projectId: e }) => `/projects/${e}/languages/bulk-update`,
1632
1632
  requestBodySchema: mo,
1633
1633
  successResponseBodySchema: _o
1634
- }), ue = $, Fe = r.union([
1634
+ }), de = U, Fe = r.union([
1635
1635
  r.literal("localization_files"),
1636
1636
  r.literal("paged_documents"),
1637
1637
  r.literal("marketing")
1638
- ]), ho = r.object({
1638
+ ]), fo = r.object({
1639
1639
  per_platform_key_names: r.boolean(),
1640
1640
  reviewing: r.boolean(),
1641
1641
  auto_toggle_unverified: r.boolean(),
@@ -1646,7 +1646,7 @@ const ro = r.object({
1646
1646
  custom_translation_statuses_allow_multiple: r.boolean(),
1647
1647
  segmentation: r.boolean(),
1648
1648
  contributor_preview_download_enabled: r.boolean()
1649
- }), bo = r.object({
1649
+ }), ho = r.object({
1650
1650
  not_reviewed: r.number(),
1651
1651
  unverified: r.number(),
1652
1652
  spelling_grammar: r.number(),
@@ -1663,15 +1663,15 @@ const ro = r.object({
1663
1663
  double_space: r.number(),
1664
1664
  special_placeholder: r.number(),
1665
1665
  unbalanced_brackets: r.number()
1666
- }), vo = r.object({
1666
+ }), bo = r.object({
1667
1667
  progress_total: r.number(),
1668
1668
  keys_total: r.number(),
1669
1669
  team: r.number(),
1670
1670
  base_words: r.number(),
1671
1671
  qa_issues_total: r.number(),
1672
- qa_issues: bo,
1672
+ qa_issues: ho,
1673
1673
  languages: r.array(ao)
1674
- }), me = r.object({
1674
+ }), ue = r.object({
1675
1675
  project_id: r.string(),
1676
1676
  uuid: r.string().uuid(),
1677
1677
  project_type: Fe,
@@ -1684,16 +1684,16 @@ const ro = r.object({
1684
1684
  team_id: r.number(),
1685
1685
  base_language_id: r.number(),
1686
1686
  base_language_iso: r.string(),
1687
- settings: ho.optional(),
1688
- statistics: vo.optional()
1689
- }), To = r.object({
1687
+ settings: fo.optional(),
1688
+ statistics: bo.optional()
1689
+ }), vo = r.object({
1690
1690
  name: r.string(),
1691
1691
  team_id: r.string(),
1692
1692
  base_lang_iso: r.string(),
1693
1693
  languages: r.array(ro),
1694
1694
  project_type: Fe,
1695
1695
  is_segmentation_enabled: r.boolean()
1696
- }), Et = r.union([r.literal(0), r.literal(1)]), yo = r.object({
1696
+ }), Et = r.union([r.literal(0), r.literal(1)]), To = r.object({
1697
1697
  filter_type: Fe.optional(),
1698
1698
  filter_team_id: r.number().optional(),
1699
1699
  filter_names: r.string().optional(),
@@ -1701,57 +1701,57 @@ const ro = r.object({
1701
1701
  include_settings: Et.optional(),
1702
1702
  limit: r.number().optional(),
1703
1703
  page: r.number().optional()
1704
+ }), yo = r.object({
1705
+ projects: r.array(ue)
1704
1706
  }), So = r.object({
1705
- projects: r.array(me)
1707
+ project_id: r.string()
1706
1708
  }), Eo = r.object({
1707
1709
  project_id: r.string()
1708
1710
  }), Co = r.object({
1709
- project_id: r.string()
1710
- }), wo = r.object({
1711
1711
  name: r.string().min(1),
1712
1712
  description: r.string().optional()
1713
- }), _e = () => "/projects", Po = qe({
1713
+ }), me = () => "/projects", wo = He({
1714
1714
  description: "Create a new project",
1715
- requestHeaderSchema: ue,
1715
+ requestHeaderSchema: de,
1716
1716
  method: "post",
1717
- pathResolver: _e,
1718
- requestBodySchema: To,
1719
- successResponseBodySchema: me
1720
- }), Ao = Y({
1717
+ pathResolver: me,
1718
+ requestBodySchema: vo,
1719
+ successResponseBodySchema: ue
1720
+ }), Po = Y({
1721
1721
  description: "List all projects",
1722
- requestHeaderSchema: ue,
1723
- pathResolver: _e,
1724
- requestQuerySchema: yo,
1725
- successResponseBodySchema: So
1726
- }), ko = Y({
1722
+ requestHeaderSchema: de,
1723
+ pathResolver: me,
1724
+ requestQuerySchema: To,
1725
+ successResponseBodySchema: yo
1726
+ }), Ao = Y({
1727
1727
  description: "Retrieve a project",
1728
- requestHeaderSchema: ue,
1729
- requestPathParamsSchema: Eo,
1730
- pathResolver: ({ project_id: e }) => `${_e()}/${e}`,
1731
- successResponseBodySchema: me
1732
- }), Io = qe({
1728
+ requestHeaderSchema: de,
1729
+ requestPathParamsSchema: So,
1730
+ pathResolver: ({ project_id: e }) => `${me()}/${e}`,
1731
+ successResponseBodySchema: ue
1732
+ }), ko = He({
1733
1733
  description: "Update a project",
1734
- requestHeaderSchema: ue,
1734
+ requestHeaderSchema: de,
1735
1735
  method: "put",
1736
- requestPathParamsSchema: Co,
1737
- pathResolver: ({ project_id: e }) => `${_e()}/${e}`,
1738
- requestBodySchema: wo,
1739
- successResponseBodySchema: me
1736
+ requestPathParamsSchema: Eo,
1737
+ pathResolver: ({ project_id: e }) => `${me()}/${e}`,
1738
+ requestBodySchema: Co,
1739
+ successResponseBodySchema: ue
1740
1740
  });
1741
- function as(e, t, n = {}) {
1742
- return de({
1741
+ function os(e, t, n = {}) {
1742
+ return qe({
1743
1743
  ...n,
1744
- mutationFn: async (a) => U(e, Po, {
1744
+ mutationFn: async (a) => D(e, wo, {
1745
1745
  headers: await t.resolve(),
1746
1746
  body: a
1747
1747
  })
1748
1748
  });
1749
1749
  }
1750
- const os = {
1750
+ const ss = {
1751
1751
  projectIdKey: (e) => ["listProjectLanguages", e]
1752
1752
  };
1753
- function ss(e, t, n) {
1754
- return D({
1753
+ function is(e, t, n) {
1754
+ return $({
1755
1755
  ...n,
1756
1756
  queryFn: async ({ queryKey: [a, o] }) => Q(e, go, {
1757
1757
  headers: await t.resolve(),
@@ -1759,54 +1759,44 @@ function ss(e, t, n) {
1759
1759
  })
1760
1760
  });
1761
1761
  }
1762
- const is = {
1762
+ const cs = {
1763
1763
  paramsKey: (e) => ["listProjects", e]
1764
1764
  };
1765
- function cs(e, t, n) {
1766
- return D({
1765
+ function ls(e, t, n) {
1766
+ return $({
1767
1767
  ...n,
1768
- queryFn: async ({ queryKey: [a, o] }) => Q(e, Ao, {
1768
+ queryFn: async ({ queryKey: [a, o] }) => Q(e, Po, {
1769
1769
  headers: await t.resolve(),
1770
1770
  queryParams: o
1771
1771
  })
1772
1772
  });
1773
1773
  }
1774
- const ls = {
1774
+ const ds = {
1775
1775
  projectIdKey: (e) => ["retrieveProject", e]
1776
1776
  };
1777
- function ds(e, t, n) {
1778
- return D({
1777
+ function us(e, t, n) {
1778
+ return $({
1779
1779
  ...n,
1780
- queryFn: async ({ queryKey: [a, o] }) => Q(e, ko, {
1780
+ queryFn: async ({ queryKey: [a, o] }) => Q(e, Ao, {
1781
1781
  headers: await t.resolve(),
1782
1782
  pathParams: { project_id: o }
1783
1783
  })
1784
1784
  });
1785
1785
  }
1786
- function us(e, t, n, a = {}) {
1787
- return de({
1786
+ function ms(e, t, n, a = {}) {
1787
+ return qe({
1788
1788
  ...a,
1789
- mutationFn: async (o) => U(e, Io, {
1789
+ mutationFn: async (o) => D(e, ko, {
1790
1790
  headers: await t.resolve(),
1791
1791
  body: o,
1792
1792
  pathParams: n
1793
1793
  })
1794
1794
  });
1795
1795
  }
1796
- function ms(e, t, n, a = {}) {
1797
- return de({
1798
- ...a,
1799
- mutationFn: async (o) => U(e, fo, {
1800
- pathParams: t,
1801
- headers: await n.resolve(),
1802
- body: o
1803
- })
1804
- });
1805
- }
1806
1796
  function _s(e, t, n, a = {}) {
1807
- return de({
1797
+ return qe({
1808
1798
  ...a,
1809
- mutationFn: async (o) => U(e, po, {
1799
+ mutationFn: async (o) => D(e, po, {
1810
1800
  pathParams: t,
1811
1801
  headers: await n.resolve(),
1812
1802
  body: o
@@ -1814,72 +1804,104 @@ function _s(e, t, n, a = {}) {
1814
1804
  });
1815
1805
  }
1816
1806
  export {
1817
- Wo as Breadcrumbs,
1807
+ io as ADD_LANGUAGES_TO_PROJECT_PATH_PARAMS_SCHEMA,
1808
+ co as ADD_LANGUAGES_TO_PROJECT_REQUEST_BODY_SCHEMA,
1809
+ lo as ADD_LANGUAGES_TO_PROJECT_RESPONSE_SCHEMA,
1810
+ uo as BULK_UPDATE_PROJECT_LANGUAGES_PATH_PARAMS_SCHEMA,
1811
+ mo as BULK_UPDATE_PROJECT_LANGUAGES_REQUEST_BODY_SCHEMA,
1812
+ _o as BULK_UPDATE_PROJECT_LANGUAGES_RESPONSE_SCHEMA,
1813
+ Jo as Breadcrumbs,
1814
+ ns as CONTRIBUTOR_API_BASE_HEADER_SCHEMA,
1815
+ Xa as CONTRIBUTOR_LANGUAGE_SCHEMA,
1816
+ Va as CONTRIBUTOR_SCHEMA,
1817
+ vo as CREATE_PROJECT_REQUEST_BODY_SCHEMA,
1818
1818
  Bt as ENTERPRISE_OPENSOURCE_PLAN_ID,
1819
1819
  dr as ENTERPRISE_PLAN_IDS,
1820
1820
  cr as ESSENTIAL_PLAN_IDS,
1821
1821
  qt as FREE_PLAN_ID,
1822
1822
  I as HeaderBuilder,
1823
- Yo as JwtAuthHeaderBuilderMiddleware,
1823
+ Ba as JWT_TOKEN_SCHEMA,
1824
+ Qo as JwtAuthHeaderBuilderMiddleware,
1825
+ ro as LANGUAGE_ISO_SCHEMA,
1826
+ Xt as LANGUAGE_SCHEMA,
1827
+ ao as LANGUAGE_STATISTICS_SCHEMA,
1828
+ To as LIST_PROJECTS_REQUEST_QUERY_SCHEMA,
1829
+ yo as LIST_PROJECTS_SUCCESS_RESPONSE_BODY,
1830
+ oo as LIST_PROJECT_LANGUAGES_PATH_PARAMS_SCHEMA,
1831
+ so as LIST_PROJECT_LANGUAGES_RESPONSE_SCHEMA,
1824
1832
  oe as NavigationPanel,
1825
- Qo as NavigationTabs,
1833
+ Wo as NavigationTabs,
1834
+ de as PROJECT_API_BASE_HEADERS_SCHEMA,
1835
+ ho as PROJECT_QA_ISSUES_SCHEMA,
1836
+ ue as PROJECT_SCHEMA,
1837
+ fo as PROJECT_SETTINGS_SCHEMA,
1838
+ bo as PROJECT_STATISTICS_SCHEMA,
1839
+ Fe as PROJECT_TYPE_SCHEMA,
1826
1840
  lr as PRO_PLAN_IDS,
1827
- Xo as PublicApiHeaderBuilderMiddleware,
1841
+ Yo as PublicApiHeaderBuilderMiddleware,
1842
+ Za as RETRIEVE_CONTRIBUTORS_RESPONSE_SCHEMA,
1843
+ So as RETRIEVE_PROJECT_PATH_PARAM_SCHEMA,
1828
1844
  ir as START_PLAN_IDS,
1829
1845
  k as Sidebar,
1830
1846
  A as SidebarTaskLanguageStatuses,
1831
- Le as SidebarTaskStatuses,
1847
+ xe as SidebarTaskStatuses,
1832
1848
  re as SidebarTaskTypeOptions,
1849
+ Jt as TEAM_ROLE_SCHEMA,
1850
+ Ka as TEAM_USER_API_BASE_HEADERS_SCHEMA,
1851
+ Ja as TEAM_USER_RESPONSE_SCHEMA,
1852
+ za as TEAM_USER_SCHEMA,
1833
1853
  sr as TRIAL_PLAN_ID,
1854
+ Eo as UPDATE_PROJECT_PATH_PARAMS_SCHEMA,
1855
+ Co as UPDATE_PROJECT_REQUEST_BODY_SCHEMA,
1856
+ $a as USER_TOKEN_REQUEST_HEADER_SCHEMA,
1834
1857
  se as UnauthorizedError,
1835
- po as addLanguagesToProject,
1836
- fo as bulkUpdateProjectLanguages,
1858
+ as as addLanguagesToProject,
1859
+ po as bulkUpdateProjectLanguages,
1837
1860
  _r as convertNewLineToBreakTag,
1838
1861
  zt as createHeaderBuilderMiddleware,
1839
- Po as createProject,
1862
+ wo as createProject,
1840
1863
  hr as formatDate,
1841
- Jo as formatDateTz,
1842
- Zo as generateTokenFromClassicSession,
1843
- Vo as getAuthenticatedSessionDetailFromRequest,
1864
+ zo as formatDateTz,
1865
+ Vo as generateTokenFromClassicSession,
1866
+ Xo as getAuthenticatedSessionDetailFromRequest,
1844
1867
  Ma as getCsrfTokenFromCookie,
1845
1868
  Wt as getJwtTokenFromCookie,
1846
1869
  Wa as getTeamUser,
1847
1870
  Qa as getTeamUsersQueryKey,
1848
1871
  Ge as getUserToken,
1849
1872
  Ga as getUserTokenKey,
1850
- zo as isEnterpriseOpenSourcePlan,
1851
- Fo as isEnterprisePlan,
1852
- $o as isEssentialPlan,
1873
+ Ko as isEnterpriseOpenSourcePlan,
1874
+ Go as isEnterprisePlan,
1875
+ Do as isEssentialPlan,
1853
1876
  De as isFreePlan,
1854
- Ko as isPaidPlan,
1855
- Go as isProPlan,
1856
- Do as isStartPlan,
1877
+ Fo as isPaidPlan,
1878
+ $o as isProPlan,
1879
+ Bo as isStartPlan,
1857
1880
  Dt as isTrialPlan,
1858
1881
  go as listProjectLanguages,
1859
- os as listProjectLanguagesKey,
1860
- Ao as listProjects,
1861
- is as listProjectsKey,
1882
+ ss as listProjectLanguagesKey,
1883
+ Po as listProjects,
1884
+ cs as listProjectsKey,
1862
1885
  fr as makeUrlClickable,
1863
1886
  Z as parseJwtTokenPayload,
1864
- es as refreshExpiredToken,
1887
+ Zo as refreshExpiredToken,
1865
1888
  eo as retrieveContributor,
1866
1889
  to as retrieveContributorKeys,
1867
- ko as retrieveProject,
1868
- ls as retrieveProjectQueryKey,
1869
- Io as updateProject,
1870
- _s as useAddLanguagesToProjectMutation,
1890
+ Ao as retrieveProject,
1891
+ ds as retrieveProjectQueryKey,
1892
+ ko as updateProject,
1871
1893
  rs as useAuthenticatedProjectContributor,
1872
1894
  Yt as useAuthenticatedSessionPayload,
1873
- ns as useAuthenticatedUser,
1874
- ms as useBulkUpdateProjectLanguagesMutation,
1875
- as as useCreateProjectMutation,
1895
+ ts as useAuthenticatedUser,
1896
+ _s as useBulkUpdateProjectLanguagesMutation,
1897
+ os as useCreateProjectMutation,
1876
1898
  $e as useEffectOnce,
1877
- ts as useGetPromotedClassicSessionJwtQuery,
1899
+ es as useGetPromotedClassicSessionJwtQuery,
1878
1900
  Ya as useGetTeamUsersQuery,
1879
1901
  Fa as useGetUserTokenQuery,
1880
- ss as useListProjectLanguagesQuery,
1881
- cs as useListProjectsQuery,
1902
+ is as useListProjectLanguagesQuery,
1903
+ ls as useListProjectsQuery,
1882
1904
  no as useRetrieveContributorQuery,
1883
- ds as useRetrieveProjectQuery,
1884
- us as useUpdateProjectMutation
1905
+ us as useRetrieveProjectQuery,
1906
+ ms as useUpdateProjectMutation
1885
1907
  };
@@ -3,12 +3,12 @@ export * from './languages';
3
3
  export * from './projects';
4
4
  export * from './teamUsers';
5
5
  export * from './userToken';
6
- export type { BulkUpdateProjectLanguagesRequestBody, BulkUpdateProjectLanguagesResponse, Language, LanguageIso, LanguageStatistics, ListProjectLanguagesResponse, AddLanguagesToProjectPathParams, AddLanguagesToProjectRequestBody, AddLanguagesToProjectResponse, } from './types/languageTypes';
7
- export type { CreateProjectRequestBody, ListProjectsRequestQuery, ListProjectsSuccessResponseBody, Project, ProjectApiBaseHeaders, ProjectQaIssues, ProjectSettings, ProjectType, UpdateProjectPathParams, UpdateProjectRequestBody, } from './types/projectTypes';
8
- export type { TeamRole } from './types/teamRoleTypes';
9
- export type { Contributor, ContributorLanguage } from './types/contributorTypes';
10
- export type { TeamUser } from './types/teamUserTypes';
11
- export type { UserTokenRequestHeader, JwtToken } from './types/userTokenTypes';
6
+ export * from './types/languageTypes';
7
+ export * from './types/projectTypes';
8
+ export * from './types/teamRoleTypes';
9
+ export * from './types/contributorTypes';
10
+ export * from './types/teamUserTypes';
11
+ export * from './types/userTokenTypes';
12
12
  export * from './hooks/useCreateProjectMutation';
13
13
  export * from './hooks/useGetTeamUsersQuery';
14
14
  export * from './hooks/useGetUserTokenQuery';
@@ -18,4 +18,3 @@ export * from './hooks/useRetrieveContributorQuery';
18
18
  export * from './hooks/useRetrieveProjectQuery';
19
19
  export * from './hooks/useUpdateProjectMutation';
20
20
  export * from './hooks/useBulkUpdateProjectLanguagesMutation';
21
- export * from './hooks/useAddLanguagesToProjectMutation';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lokalise/harmony",
3
- "version": "1.20.1",
3
+ "version": "1.20.2",
4
4
  "author": {
5
5
  "name": "Lokalise",
6
6
  "url": "https://lokalise.com/"