@lokalise/harmony 1.18.0 → 1.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -80,7 +80,7 @@ import { Client } from 'undici'
80
80
  const result: TeamUserResponse = async (client: Client) => {
81
81
  return sendByGetRoute(client, getTeamUser, {
82
82
  pathParams: { teamId, userId },
83
- headers: { 'Authorization': `Bearer token` }
83
+ headers: { 'authorization': `Bearer token` }
84
84
  });
85
85
  }
86
86
  ```
package/dist/harmony.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var rn=Object.defineProperty;var sn=(e,t,n)=>t in e?rn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var ee=(e,t,n)=>sn(e,typeof t!="symbol"?t+"":t,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),p=require("react"),d=require("@lokalise/louis"),se=require("date-fns"),an=require("date-fns-tz"),r=require("zod"),Ae=require("@lokalise/universal-ts-utils/api-contracts/apiContracts"),k=require("@lokalise/frontend-http-client"),I=require("@tanstack/react-query"),q=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 G=on(p),ne={Completed:"completed",InProgress:"in_progress",Created:"created",Queued:"queued"},z={...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,Fe;function Ie(){if(Fe)return me;Fe=1;function e(t){var n=typeof t;return t!=null&&(n=="object"||n=="function")}return me=e,me}var ge,Ge;function cn(){if(Ge)return ge;Ge=1;var e=typeof te=="object"&&te&&te.Object===Object&&te;return ge=e,ge}var fe,Ke;function vt(){if(Ke)return fe;Ke=1;var e=cn(),t=typeof self=="object"&&self&&self.Object===Object&&self,n=e||t||Function("return this")();return fe=n,fe}var _e,Qe;function ln(){if(Qe)return _e;Qe=1;var e=vt(),t=function(){return e.Date.now()};return _e=t,_e}var he,Je;function un(){if(Je)return he;Je=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 pe,We;function dn(){if(We)return pe;We=1;var e=un(),t=/^\s+/;function n(s){return s&&s.slice(0,e(s)+1).replace(t,"")}return pe=n,pe}var be,Xe;function jt(){if(Xe)return be;Xe=1;var e=vt(),t=e.Symbol;return be=t,be}var Te,Ye;function mn(){if(Ye)return Te;Ye=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 gn(){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 fn(){if(Ze)return je;Ze=1;var e=jt(),t=mn(),n=gn(),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 _n(){if(et)return ye;et=1;function e(t){return t!=null&&typeof t=="object"}return ye=e,ye}var Se,tt;function hn(){if(tt)return Se;tt=1;var e=fn(),t=_n(),n="[object Symbol]";function s(o){return typeof o=="symbol"||t(o)&&e(o)==n}return Se=s,Se}var xe,nt;function pn(){if(nt)return xe;nt=1;var e=dn(),t=Ie(),n=hn(),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 _=i.test(u);return _||c.test(u)?l(u.slice(2),_?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=ln(),n=pn(),s="Expected a function",o=Math.max,i=Math.min;function c(l,m,u){var g,_,j,y,f,x,T=0,h=!1,b=!1,v=!0;if(typeof l!="function")throw new TypeError(s);m=n(m)||0,e(u)&&(h=!!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,D=_;return g=_=void 0,T=S,y=l.apply(D,N),y}function E(S){return T=S,f=setTimeout(Z,m),h?P(S):y}function V(S){var N=S-x,D=S-T,$e=m-N;return b?i($e,j-D):$e}function He(S){var N=S-x,D=S-T;return x===void 0||N>=m||N<0||b&&D>=j}function Z(){var S=t();if(He(S))return De(S);f=setTimeout(Z,V(S))}function De(S){return f=void 0,v&&g?P(S):(g=_=void 0,y)}function tn(){f!==void 0&&clearTimeout(f),T=0,g=x=_=f=void 0}function nn(){return f===void 0?y:De(t())}function de(){var S=t(),N=He(S);if(g=arguments,_=this,x=S,N){if(f===void 0)return E(x);if(b)return clearTimeout(f),f=setTimeout(Z,m),P(x)}return f===void 0&&(f=setTimeout(Z,m)),y}return de.cancel=tn,de.flush=nn,de}return Ee=c,Ee}var bn=yt();const Tn=Tt(bn);var Pe,st;function vn(){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 jn=vn();const yn=Tt(jn),Sn=(e,t,n,s)=>{switch(t){case"debounce":return Tn(e,n,s);case"throttle":return yn(e,n,s);default:return e}},xn=e=>{const t=G.useRef(e);return G.useEffect(()=>{t.current=e}),G.useMemo(()=>(...n)=>{var s;return(s=t.current)===null||s===void 0?void 0:s.call(t,...n)},[])},En=e=>{const[t,n]=G.useState((e==null?void 0:e.current)||null);return e&&setTimeout(()=>{e.current!==t&&n(e.current)},0),{refProxy:G.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}},Pn=(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 Cn({skipOnMount:e=!1,refreshMode:t,refreshRate:n=1e3,refreshOptions:s,handleWidth:o=!0,handleHeight:i=!0,targetRef:c,observerOptions:l,onResize:m}={}){const u=p.useRef(e),g=xn(m),[_,j]=p.useState({width:void 0,height:void 0}),{refProxy:y,refElement:f}=En(c),{box:x}=l||{},T=p.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=Pn(P,x);j(V=>v(V,E)?(g==null||g({width:E.width,height:E.height,entry:P}),E):V)})},[o,i,u,x]),h=p.useCallback(Sn(T,t,n,s),[T,t,n,s]);return p.useEffect(()=>{let b;return f?(b=new window.ResizeObserver(h),b.observe(f,l)):(_.width||_.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=h).cancel)===null||E===void 0||E.call(P)}},[h,f]),Object.assign({ref:y},_)}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 A(){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 zn="_headerContainer_1cubo_1",wn="_navigationTabList_1cubo_8",kn="_navigationTab_1cubo_8",Rn="_headerContent_1cubo_34",An="_staticEnabled_1cubo_50",B={headerContainer:zn,navigationTabList:wn,navigationTab:kn,headerContent:Rn,staticEnabled:An},In=77,K=({sticky:e,children:t})=>{const{ref:n,height:s}=Cn({refreshMode:"debounce",refreshRate:0}),[o,i]=p.useState(!1),c=()=>o?!e:!0;p.useEffect(()=>{const m=()=>{i(window.scrollY>0)};return window.addEventListener("scroll",m),()=>window.removeEventListener("scroll",m)},[]);const l=`${s||In}px`;return a.jsx("div",{style:{minHeight:l},children:a.jsx("div",{children:a.jsxs("div",{ref:n,className:A(B.headerContent,{[B.staticEnabled]:c()}),children:[a.jsx(K.Header,{}),a.jsx(K.Tabs,{}),t]})})})};K.Header=({children:e})=>a.jsx("div",{className:B.headerContainer,children:e});K.Tabs=({children:e})=>a.jsx("div",{className:"flex justify-between gap-2 nowrap",children:e});const Nn="_sidebarContainer_bmdti_1",Ln={sidebarContainer:Nn},On="_logoLink_1baxb_1",Mn={logoLink:On},Un=({src:e,href:t="/",ariaLabel:n="Home",alt:s="Lokalise"})=>a.jsx("a",{className:Mn.logoLink,href:t,"aria-label":n,children:a.jsx("img",{src:e,alt:s})}),Bn="_link_18vhx_1",qn="_active_18vhx_18",at={link:Bn,active:qn},Hn=({label:e,to:t,icon:n})=>a.jsx(d.Tooltip,{placement:"right",tooltip:e,children:a.jsx(d.Link,{className:A(at.link,{[at.active]:window.location.pathname.startsWith(t)}),href:t,children:a.jsx(n,{size:"25px"})})}),Dn="_dropdownButton_13l5r_1",$n="_dropdownButtonActive_13l5r_18",ot={dropdownButton:Dn,dropdownButtonActive:$n},Fn=({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:A(ot.dropdownButton,{[ot.dropdownButtonActive]:n}),children:a.jsx(t,{size:"25px"})})}),children:a.jsx(d.MenuList,{placement:"right-start",children:e})}),Gn="_iconContainer_nz34m_1",Kn={iconContainer:Gn},xt=({className:e=""})=>a.jsx("div",{"aria-label":"Upgrade Icon",className:A(Kn.iconContainer,"flex-row","items-center","justify-center",e),children:a.jsx(d.CaretUpIcon,{})}),Qn="_menuContainer_ywskt_5",Jn="_profileButton_ywskt_15",Wn="_profileImage_ywskt_28",Xn="_profileImageHighlight_ywskt_36",Yn="_profileImageUpgradeIcon_ywskt_40",Vn="_userIconWrapper_ywskt_46",L={menuContainer:Qn,profileButton:Jn,profileImage:Wn,profileImageHighlight:Xn,profileImageUpgradeIcon:Yn,userIconWrapper:Vn},Et=p.createContext({}),W=()=>p.useContext(Et),Zn=({children:e})=>{const{currentTeam:t,otherTeams:n,showUpgradeCta:s,showBillingButton:o,allowTeamCreation:i,isProviderAlpha:c,canAccessTeamSettings:l,isEndOfTrialActive:m,isTeamSuspended:u,isFullyAuthenticated:g}=W();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:A(L.profileImage,{[L.profileImageHighlight]:s}),alt:"Team Logo"}):a.jsx("div",{className:A(L.userIconWrapper,"flex-row","align-center","items-center",{[L.profileImageHighlight]:s}),children:a.jsx(d.UserIcon,{size:"25px"})}),s&&a.jsx(xt,{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:g})})})},Ne=0,Pt=9999,Ct=[150,151,250,251],zt=[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,er=e=>Ct.includes(e),tr=e=>zt.includes(e),nr=e=>wt.includes(e),rr=e=>kt.includes(e),sr=e=>e>Ne&&e<Le,ar=e=>e===Le,or=/\n/,it=(e,t,n)=>e.split(t).flatMap((s,o)=>o!==0?[p.cloneElement(n,{key:Math.random().toString(32).slice(0,10)}),s]:s),ir=(e,t,n)=>typeof e=="string"?it(e,t,n):e.flatMap(s=>typeof s=="string"?it(s,t,n):s),Rt=e=>ir(e,or,a.jsx("br",{})),cr=/(\b(https?|):\/\/[-a-zA-Zа-яА-Я0-9+&@#/%?=~_|!:,.;]*[-a-zA-Zа-яА-Я0-9+&@#/%=~_|])/gi,lr=e=>e.match(cr)??[],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=lr(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},At=e=>typeof e=="string"?lt(e):e.flatMap(t=>typeof t=="string"?lt(t):t,e),It=(e,t="PP")=>se.format(e,t),ur=(e,t,n="PP")=>se.format(an.toZonedTime(e,t),n),oe=e=>{p.useEffect(e,[])},ut={biller:"biller",owner:"owner"},dt=[ut.biller,ut.owner],dr=({children:e,config:t})=>{const{teams:n,currentTeamId:s,planId:o,isEndOfTrialActive:i,isFullyAuthenticated:c,userTeamRole:l}=t,m=n.find(h=>h.id===s),u=n.filter(h=>h.id!==s),g=dt.includes(l),_=dt.includes(l),j=ae(o)||Oe(o),T={...t,currentTeam:m,otherTeams:u,canChangeBilling:g,canAccessTeamSettings:_,isOnFreeOrTrialPlan:j,showUpgradeCta:c&&j&&g,showBillingButton:c&&_&&g,allowTeamCreation:c&&!i};return a.jsx(Et.Provider,{value:T,children:e})},mr=({config:e,children:t})=>a.jsx(dr,{config:e,children:a.jsx(Zn,{children:t})}),gr="_container_q5pot_1",fr="_profileEmail_q5pot_5",mt={container:gr,profileEmail:fr},_r=({href:e,onClick:t,userEmail:n,hideBottomDivider:s})=>{const{isEndOfTrialActive:o,isTeamSuspended:i}=W();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,{})]})},hr="_wrapper_15d85_1",pr="_profileImage_15d85_14",br="_teamName_15d85_22",Tr="_planLabel_15d85_29",vr="_membership_15d85_38",jr="_defaultProfileImage_15d85_44",M={wrapper:hr,profileImage:pr,teamName:br,planLabel:Tr,membership:vr,defaultProfileImage:jr},Nt=({team:e,onClick:t,hidePlanLabel:n})=>{const{currentTeam:s,planId:o}=W(),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:`flex-row gap-2 flex-nowrap items-center ${M.wrapper}`,...t&&{onClick:()=>t(i)},children:[i.logoUrl?a.jsx("img",{className:M.profileImage,src:i.logoUrl,alt:"Team Logo"}):a.jsx("span",{className:`flex-row justify-center items-center ${M.defaultProfileImage}`,children:a.jsx(d.UserIcon,{size:"25px"})}),a.jsxs("div",{className:"flex-col items-start",children:[a.jsxs("div",{className:"flex-row items-center flex-nowrap gap-2",children:[a.jsx("span",{title:i.name,className:M.teamName,children:i.name}),c&&!n&&a.jsx("span",{className:`flex-row justify-center items-center ${M.planLabel}`,children:c})]}),a.jsx("span",{className:M.membership,children:i.role})]})]})},yr="_teamsContainer_1t68g_1",Sr={teamsContainer:yr},xr=({onSwitchTeam:e})=>{const{otherTeams:t}=W();return t.length===0?null:a.jsx("div",{className:`flex-col items-stretch ${Sr.teamsContainer}`,children:t.map(n=>a.jsx(Nt,{team:n,onClick:e,hidePlanLabel:!0},n.id))})},Er="_container_1u995_1",Pr="_planCta_1u995_15",Cr="_upgradeIconWrapper_1u995_19",Ce={container:Er,planCta:Pr,upgradeIconWrapper:Cr},zr=({upgradeOptionHref:e})=>{const{planId:t,trialDaysLeft:n,showUpgradeCta:s}=W();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,{href:e,className:`flex-col gap-1 items-start ${Ce.container}`,children:[a.jsx("span",{className:Ce.planCta,children:c}),a.jsxs("div",{className:`flex-row items-center gap-1 ${Ce.upgradeIconWrapper}`,children:[a.jsx(xt,{}),a.jsx("span",{children:"See upgrade options"})]})]})},wr=Math.min,kr=Math.max;function gt(e,t,n){return kr(e,wr(t,n))}function Lt(e,t){return typeof e=="function"?e(t):e}function Ot(e){return e.split("-")[0]}function Rr(e){return e==="x"?"y":"x"}function Ar(e){return["top","bottom"].includes(Ot(e))?"y":"x"}function Ir(e){return{top:0,right:0,bottom:0,left:0,...e}}function Nr(e){return typeof e!="number"?Ir(e):{top:e,right:e,bottom:e,left:e}}function ft(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 Lr(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:_="floating",altBoundary:j=!1,padding:y=0}=Lt(t,e),f=Nr(y),T=l[j?_==="floating"?"reference":"floating":_],h=ft(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=_==="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=ft(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:b,offsetParent:v,strategy:m}):b);return{top:(h.top-E.top+f.top)/P.y,bottom:(E.bottom-h.bottom+f.bottom)/P.y,left:(h.left-E.left+f.left)/P.x,right:(E.right-h.right+f.right)/P.x}}const Or=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:h,y:b}=T;return{x:h,y:b}}},...m}=Lt(e,t),u={x:n,y:s},g=await Lr(t,m),_=Ar(Ot(o)),j=Rr(_);let y=u[j],f=u[_];if(i){const T=j==="y"?"top":"left",h=j==="y"?"bottom":"right",b=y+g[T],v=y-g[h];y=gt(b,y,v)}if(c){const T=_==="y"?"top":"left",h=_==="y"?"bottom":"right",b=f+g[T],v=f-g[h];f=gt(b,f,v)}const x=l.fn({...t,[j]:y,[_]:f});return{...x,data:{x:x.x-n,y:x.y-s,enabled:{[j]:i,[_]:c}}}}}},Mr="_navItem_1dudv_1",Ur="_activeNavItem_1dudv_18",Br="_badge_1dudv_23",ze={navItem:Mr,activeNavItem:Ur,badge:Br},Mt=p.createContext({}),X=()=>p.useContext(Mt),qr=e=>{const t=e.lastIndexOf("."),n=e.slice(0,t),s=e.slice(t+1);return{name:n,extension:s}},Hr=(e,t)=>{switch(e){case z.Completed:return t<100?"Closed":"Completed";case z.Created:return t>0?"In progress":"Not started";case z.InProgress:return"In progress";case z.Queued:return"Queued";case z.NotStarted:return"Not started";default:return"-"}},Dr=e=>{const t=e.progress??0;return e.status===z.Created&&t>0?z.InProgress:e.status},$r={[F.translation]:"#0891B2",[F.review]:"#16922D",[F.lqa_by_ai]:"#8B5CF6",[F.automatic_translation]:"#60A5FA"},Fr=e=>{const t=[z.InProgress,z.Created,z.Completed];return e.filter(n=>n.status!=="queued").map(n=>({...n,status:Dr(n)})).sort((n,s)=>n.status===z.InProgress&&n.progress===100?-1:s.status===z.InProgress&&s.progress===100?1:n.status===s.status?n.name<s.name?1:-1:t.indexOf(n.status)-t.indexOf(s.status))},_t=e=>e in[ne.InProgress,ne.Created],Gr=(e,t)=>_t(e.status)&&_t(t.status)&&(t.progress??0)>=100,Kr=({task:e,language:t})=>{const[n,s]=p.useState(!1),[o,i]=p.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"})]})},Qr="_langRowCompleted_vpgdi_1",Jr="_langCellSecondary_vpgdi_15",Wr="_langStatus_vpgdi_20",we={langRowCompleted:Qr,langCellSecondary:Jr,langStatus:Wr},Xr=({language:e,task:t})=>{const{getProjectUrl:n,langNameOnClick:s,langProgressOnClick:o}=X(),i=e.progress??0,c=e.status===z.Completed,l=Gr(t,e);return a.jsxs("tr",{className:A({[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(Kr,{task:t,language:e}):a.jsx("span",{className:`${we.langStatus} flex-row items-center justify-start`,"data-status":e.status,children:Hr(e.status,i)})})]})},Yr="_taskContainer_mt2or_1",Vr="_taskTitle_mt2or_21",Zr="_taskDescription_mt2or_28",es="_languagesTable_mt2or_35",ts="_metadata_mt2or_87",U={taskContainer:Yr,taskTitle:Vr,taskDescription:Zr,languagesTable:es,metadata:ts},ns=({task:e})=>{const{tasks:t,getProjectUrl:n,taskTitleOnClick:s}=X(),o=Fr(e.langs),i=c=>{c!==void 0&&window.open(`/style-guide/${e.team_id}/download/${c.id}/link`,"_blank","noopener,noreferrer")};return t?a.jsxs("div",{className:U.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:$r[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:()=>i(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(c=>a.jsx(d.MenuItem,{onClick:()=>i(c),children:qr(c.name).name},c.id))})})})]}),a.jsx("h4",{className:U.taskTitle,children:a.jsx(d.Link,{href:n({task:e,view:"multi"}),onClick:()=>{s==null||s({task:e})},children:e.title})}),e.description&&a.jsx("div",{className:U.taskDescription,children:Rt(At(e.description))}),a.jsxs("table",{className:U.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:o.map(c=>a.jsx(Xr,{language:c,task:e},c.lang_id))})]}),a.jsxs("div",{className:U.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:U.tag,children:e.branch_name?e.branch_name:"master"})]})]})]}):null},C={TaskCompleted:"task_completed",TaskClosed:"task_closed",Refresh:"refresh",ShowDialog:"show_dialog"},rs="_loadingContainer_19d6m_1",ss="_noTasksContainer_19d6m_7",as="_noTasksHeading_19d6m_14",os="_noTasksText_19d6m_18",is="_tasksContainer_19d6m_23",$={loadingContainer:rs,noTasksContainer:ss,noTasksHeading:as,noTasksText:os,tasksContainer:is},cs=()=>{const{tasks:e,onTasksWidgetOpen:t,loadingTasks:n,fetchTasks:s}=X();return oe(()=>(s(),t==null||t({tasks:e}),document.addEventListener(C.TaskCompleted,s),document.addEventListener(C.TaskClosed,s),document.addEventListener(C.Refresh,s),()=>{document.removeEventListener(C.TaskCompleted,s),document.removeEventListener(C.TaskClosed,s),document.removeEventListener(C.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(ns,{task:o},o.id))})},ls=({children:e,config:t})=>{const[n,s]=p.useState([]),[o,i]=p.useState(!0),[c,l]=p.useState(0),{getProjectUrl:m,onLanguageCompleteConfirm:u,onTasksWidgetOpen:g,langNameOnClick:_,langProgressOnClick:j,taskTitleOnClick:y}=t,{getTasks:f,getTasksCount:x}=t,T=async()=>{i(!0);const v=await f();s(v),i(!1)},h=async()=>{const v=await x();l(v)};oe(()=>(h(),document.addEventListener(C.TaskCompleted,h),document.addEventListener(C.TaskClosed,h),document.addEventListener(C.Refresh,h),()=>{document.removeEventListener(C.TaskCompleted,h),document.removeEventListener(C.TaskClosed,h),document.removeEventListener(C.Refresh,h)}));const b={fetchTasks:T,tasks:n,tasksCount:c,loadingTasks:o,getProjectUrl:m,onLanguageCompleteConfirm:u,onTasksWidgetOpen:g,langNameOnClick:_,langProgressOnClick:j,taskTitleOnClick:y};return a.jsx(Mt.Provider,{value:b,children:e})},us=e=>function(n){const{config:s,...o}=n;return a.jsx(ls,{config:s,children:a.jsx(e,{...o})})},ds=us(()=>{const[e,t]=p.useState(!1),{tasksCount:n}=X();return oe(()=>{const s=()=>{t(!0)};return document.addEventListener(C.ShowDialog,s),()=>{document.removeEventListener(C.ShowDialog,s)}}),a.jsx(d.Tooltip,{tooltip:"Tasks",placement:"right",children:a.jsx(d.Popover,{content:a.jsx(cs,{}),placement:"right",open:e,onOpenChange:t,middlewares:[Or({padding:{top:32,bottom:32}})],children:s=>a.jsxs(d.Button,{type:"button","data-testid":"sidebar-tasks-widget-button","aria-label":"Tasks",className:A(ze.navItem,{[ze.activeNavItem]:s}),children:[a.jsx(d.JobIcon,{size:"25px"}),n>0&&a.jsx("div",{className:ze.badge,"aria-label":`${n} items requiring attention`,children:n>9?"9+":n})]})})})}),w=({children:e,...t})=>a.jsx("nav",{...t,className:Ln.sidebarContainer,children:e}),ms=({children:e})=>a.jsx("div",{children:e});w.Top=ms;const gs=({children:e})=>a.jsx("div",{children:e});w.Bottom=gs;w.Avatar=Un;w.IconLink=Hn;w.Menu=Fn;w.ProfileMenu=mr;w.TeamSwitch=xr;w.TeamMenuItem=Nt;w.UpgradeMenuItem=zr;w.ProfileSettingsMenuItem=_r;w.Tasks=ds;const fs="_breadcrumbsItem_1hm6a_1",_s="_breadcrumbs_1hm6a_1",ht={breadcrumbsItem:fs,breadcrumbs:_s},hs=({items:e})=>a.jsx("nav",{"aria-label":"breadcrumb",className:ht.breadcrumbs,children:e.map((t,n)=>a.jsxs(p.Fragment,{children:[a.jsx(d.Link,{className:ht.breadcrumbsItem,href:t.link,rel:"noreferrer",children:t.name}),n<e.length-1&&a.jsx("span",{children:" — "})]},`${t.link}-${t.name}`))}),ps=({items:e})=>a.jsx(a.Fragment,{children:e.map((t,n)=>a.jsxs(p.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))}),bs="_badge_1pc1v_1",Ts="_tag_1pc1v_15",vs="_withNavLinkStyle_1pc1v_42 _withLinkStyle_1pc1v_21",js="_disabled_1pc1v_57",ys="_projectNavigationItem_1pc1v_61",Ss="_projectNavigationItemDisabled_1pc1v_67",O={badge:bs,tag:Ts,withNavLinkStyle:vs,disabled:js,projectNavigationItem:ys,projectNavigationItemDisabled:Ss},pt=({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:O.badge,"aria-label":`${t} items requiring attention`,children:t>9?"9+":t})]}),!!n&&a.jsx(d.Tag,{className:O.tag,children:n})]}),ke=p.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?O.projectNavigationItemDisabled:O.projectNavigationItem,children:o||n||!t?a.jsx("button",{type:"button",ref:c,className:A(O.withNavLinkStyle,{[O.disabled]:n}),disabled:n,onClick:o,children:a.jsx(pt,{label:e,badge:s,novel:i})}):a.jsx("a",{href:t,className:O.withNavLinkStyle,children:a.jsx(pt,{label:e,badge:s,novel:i})})})}));ke.displayName="NavigationTabsItem";const xs=e=>(e==null?void 0:e.some(t=>t.some(n=>n.visible)))??!1,Es=e=>e.visible&&(!e.dropdown||xs(e.dropdown)),Ps=({navigation:e,activeItem:t})=>a.jsx("nav",{"aria-label":"Project",children:a.jsx("ul",{className:B.navigationTabList,"aria-orientation":"horizontal",children:e.filter(Es).map(n=>{var s,o,i;return n.dropdown?a.jsx("li",{className:B.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(ps,{items:n.dropdown})})})},n.key):a.jsx("li",{className:B.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 R{constructor(t){this.factories=t}static create(t={}){return new R([()=>t])}add(t,n){return new R([...this.factories,()=>({[t]:n})])}and(t){return new R([...this.factories,()=>t])}from(t){return new R([...this.factories,t])}with(t){return t.apply(this)}merge(t){return new R([...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 Cs(e)}class Cs{constructor(t){this.middleware=t}apply(t){return t.from(async()=>{const n=this.middleware(R.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")]),zs=r.z.object({userId:r.z.number(),userUuid:r.z.string(),teamId:r.z.number(),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 zs.parse(JSON.parse(n))}catch{return}}class Q extends Error{constructor(){super(...arguments);ee(this,"name","UnauthorizedError");ee(this,"status",401)}}function ws(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 Q;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 Q;return(c=e.onNewTokenIssued)==null||c.call(e,o),t.add("Authorization",`Bearer ${o.accessToken}`)})}const ks=Me(e=>e.and({"x-lokalise-plugin":"true"}));function Ue(){const e=Re(document.cookie,"accessToken"),t=Re(document.cookie,"refreshToken");return!e||!t?null:{accessToken:e,refreshToken:t}}function Bt(){return Re(document.cookie,"csrf_token")??null}function Re(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 Rs(){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()}),r.z.object({AUTHORIZATION:r.z.string()})]),As=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()})]),Is=r.z.union([qt,As]),Ns=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()})]),Y=Is.and(Ns),Ls=r.z.object({accessToken:r.z.string(),refreshToken:r.z.string()}),Os=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()})]),Ms=r.z.union([qt,Os]),ie=Ae.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:Ms,requestBodySchema:r.z.undefined(),isEmptyResponseExpected:!0,successResponseBodySchema:Ls});function Us(e,t,n){return async()=>{const s=t();if(!s)throw new Q;return k.sendByPayloadRoute(e,ie,{pathParams:{teamId:Number(await n())},headers:await R.create().add("x-csrf-token",s).resolve()})}}function Bs(e){return async({accessToken:t,refreshToken:n})=>{const s=H(t);if(!s)throw new Q;return k.sendByPayloadRoute(e,ie,{pathParams:{teamId:s.teamId},headers:await R.create().add("Authorization",`Bearer ${n}`).resolve()})}}const Ht={teamKey:e=>["getUserToken",e]},Dt=(e,t,n)=>I.useQuery({...n,queryFn:async({queryKey:[s,o]})=>k.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 J=re;function qs(e,t,n){const s=Bt(),o=Dt(e,t.add("x-csrf-token",s??""),{queryKey:Ht.teamKey(n),enabled:s!==void 0}),i=p.useRef();return p.useEffect(()=>{o.data&&o.data.accessToken!==i.current&&(window.dispatchEvent(new J(o.data)),i.current=o.data.accessToken)},[o.data]),o}function Be(){const[e,t]=p.useState();return p.useEffect(()=>{const n=o=>{t(o.detail.payload)},s=Ue();return t(s?H(s.accessToken):void 0),window.addEventListener(J.eventName,n),()=>{window.removeEventListener(J.eventName,n)}},[]),e}const Hs=Y,Ds=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}),$s=r.z.object({team_id:r.z.number(),team_user:Ds}),$t=q.buildGetRoute({description:"Get the details of a team user",requestHeaderSchema:Hs,requestPathParamsSchema:r.z.object({teamId:r.z.number(),userId:r.z.number()}),pathResolver:({teamId:e,userId:t})=>`/teams/${e}/users/${t}`,successResponseBodySchema:$s}),Ft={teamUserKey:(e,t)=>["GetTeamUsers",e,t]},Gt=(e,t,n)=>I.useQuery({...n,queryFn:async({queryKey:[s,o,i]})=>k.sendByGetRoute(e,$t,{headers:await t.resolve(),pathParams:{teamId:o,userId:i}})});function Fs(e,t){const n=Be();return Gt(e,t,{queryKey:Ft.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 Gs=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)])}),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(),admin_rights:r.z.array(r.z.string()),languages:r.z.array(Gs),is_admin:r.z.boolean(),is_reviewer:r.z.boolean()}),Qs=r.z.object({project_id:r.z.string(),contributors:r.z.array(Ks)}),Kt=q.buildGetRoute({description:"Get the details of a project contributor",requestHeaderSchema:Y,requestPathParamsSchema:r.z.object({projectId:r.z.string(),contributorId:r.z.number()}),pathResolver:({projectId:e,contributorId:t})=>`/projects/${e}/contributors/${t}`,successResponseBodySchema:Qs}),Qt={projectUserKey:(e,t)=>["RetrieveContributor",e,t]},Jt=(e,t,n)=>I.useQuery({...n,queryFn:async({queryKey:[s,o,i]})=>k.sendByGetRoute(e,Kt,{pathParams:{projectId:o,contributorId:i},headers:await t.resolve()})});function Js(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 Ws=r.z.object({lang_iso:r.z.string(),custom_iso:r.z.string().optional()}),Xs=r.z.object({language_id:r.z.number(),language_iso:r.z.string(),progress:r.z.number(),words_to_do:r.z.number()}),Ys=r.z.object({projectId:r.z.string()}),Vs=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())}),Zs=r.z.object({project_id:r.z.string(),project_uuid:r.z.string().uuid(),languages:r.z.array(Vs)}),ea=r.z.object({projectId:r.z.string()}),ta=r.z.object({langs:r.z.array(r.z.object({lang_iso:r.z.string(),base_lang:r.z.boolean()}))}),na=r.z.object({success:r.z.boolean()}),Wt=q.buildGetRoute({description:"List of project languages",requestHeaderSchema:Y,requestPathParamsSchema:Ys,pathResolver:({projectId:e})=>`/projects/${e}/languages`,successResponseBodySchema:Zs}),Xt=q.buildPayloadRoute({description:"Bulk update project languages",requestHeaderSchema:Y,method:"put",requestPathParamsSchema:ea,pathResolver:({projectId:e})=>`/projects/${e}/languages/bulk-update`,requestBodySchema:ta,successResponseBodySchema:na}),ce=Y,qe=r.z.union([r.z.literal("localization_files"),r.z.literal("paged_documents"),r.z.literal("marketing")]),ra=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()}),sa=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()}),aa=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:sa,languages:r.z.array(Xs)}),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:ra.optional(),statistics:aa.optional()}),oa=r.z.object({name:r.z.string(),team_id:r.z.string(),base_lang_iso:r.z.string(),languages:r.z.array(Ws),project_type:qe,is_segmentation_enabled:r.z.boolean()}),bt=r.z.union([r.z.literal(0),r.z.literal(1)]),ia=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()}),ca=r.z.object({projects:r.z.array(le)}),la=r.z.object({project_id:r.z.string()}),ua=r.z.object({project_id:r.z.string()}),da=r.z.object({name:r.z.string().min(1),description:r.z.string().optional()}),ue=()=>"/projects",Yt=Ae.buildPayloadRoute({description:"Create a new project",requestHeaderSchema:ce,method:"post",pathResolver:ue,requestBodySchema:oa,successResponseBodySchema:le}),Vt=q.buildGetRoute({description:"List all projects",requestHeaderSchema:ce,pathResolver:ue,requestQuerySchema:ia,successResponseBodySchema:ca}),Zt=q.buildGetRoute({description:"Retrieve a project",requestHeaderSchema:ce,requestPathParamsSchema:la,pathResolver:({project_id:e})=>`${ue()}/${e}`,successResponseBodySchema:le}),en=Ae.buildPayloadRoute({description:"Update a project",requestHeaderSchema:ce,method:"put",requestPathParamsSchema:ua,pathResolver:({project_id:e})=>`${ue()}/${e}`,requestBodySchema:da,successResponseBodySchema:le});function ma(e,t,n={}){return I.useMutation({...n,mutationFn:async s=>k.sendByPayloadRoute(e,Yt,{headers:await t.resolve(),body:s})})}const ga={projectIdKey:e=>["listProjectLanguages",e]};function fa(e,t,n){return I.useQuery({...n,queryFn:async({queryKey:[s,o]})=>k.sendByGetRoute(e,Wt,{headers:await t.resolve(),pathParams:{projectId:o}})})}const _a={paramsKey:e=>["listProjects",e]};function ha(e,t,n){return I.useQuery({...n,queryFn:async({queryKey:[s,o]})=>k.sendByGetRoute(e,Vt,{headers:await t.resolve(),queryParams:o})})}const pa={projectIdKey:e=>["retrieveProject",e]};function ba(e,t,n){return I.useQuery({...n,queryFn:async({queryKey:[s,o]})=>k.sendByGetRoute(e,Zt,{headers:await t.resolve(),pathParams:{project_id:o}})})}function Ta(e,t,n,s={}){return I.useMutation({...s,mutationFn:async o=>k.sendByPayloadRoute(e,en,{headers:await t.resolve(),body:o,pathParams:n})})}function va(e,t,n,s={}){return I.useMutation({...s,mutationFn:async o=>k.sendByPayloadRoute(e,Xt,{pathParams:t,headers:await n.resolve(),body:o})})}exports.Breadcrumbs=hs;exports.ENTERPRISE_OPENSOURCE_PLAN_ID=Le;exports.ENTERPRISE_PLAN_IDS=kt;exports.ESSENTIAL_PLAN_IDS=zt;exports.FREE_PLAN_ID=Ne;exports.HeaderBuilder=R;exports.JwtAuthHeaderBuilderMiddleware=ws;exports.NavigationPanel=K;exports.NavigationTabs=Ps;exports.PRO_PLAN_IDS=wt;exports.PublicApiHeaderBuilderMiddleware=ks;exports.START_PLAN_IDS=Ct;exports.Sidebar=w;exports.SidebarTaskLanguageStatuses=z;exports.SidebarTaskStatuses=ne;exports.SidebarTaskTypeOptions=F;exports.TRIAL_PLAN_ID=Pt;exports.UnauthorizedError=Q;exports.bulkUpdateProjectLanguages=Xt;exports.convertNewLineToBreakTag=Rt;exports.createHeaderBuilderMiddleware=Me;exports.createProject=Yt;exports.formatDate=It;exports.formatDateTz=ur;exports.generateTokenFromClassicSession=Us;exports.getAuthenticatedSessionDetailFromRequest=Rs;exports.getCsrfTokenFromCookie=Bt;exports.getJwtTokenFromCookie=Ue;exports.getTeamUser=$t;exports.getTeamUsersQueryKey=Ft;exports.getUserToken=ie;exports.getUserTokenKey=Ht;exports.isEnterpriseOpenSourcePlan=ar;exports.isEnterprisePlan=rr;exports.isEssentialPlan=tr;exports.isFreePlan=ae;exports.isPaidPlan=sr;exports.isProPlan=nr;exports.isStartPlan=er;exports.isTrialPlan=Oe;exports.listProjectLanguages=Wt;exports.listProjectLanguagesKey=ga;exports.listProjects=Vt;exports.listProjectsKey=_a;exports.makeUrlClickable=At;exports.parseJwtTokenPayload=H;exports.refreshExpiredToken=Bs;exports.retrieveContributor=Kt;exports.retrieveContributorKeys=Qt;exports.retrieveProject=Zt;exports.retrieveProjectQueryKey=pa;exports.updateProject=en;exports.useAuthenticatedProjectContributor=Js;exports.useAuthenticatedSessionPayload=Be;exports.useAuthenticatedUser=Fs;exports.useBulkUpdateProjectLanguagesMutation=va;exports.useCreateProjectMutation=ma;exports.useEffectOnce=oe;exports.useGetPromotedClassicSessionJwtQuery=qs;exports.useGetTeamUsersQuery=Gt;exports.useGetUserTokenQuery=Dt;exports.useListProjectLanguagesQuery=fa;exports.useListProjectsQuery=ha;exports.useRetrieveContributorQuery=Jt;exports.useRetrieveProjectQuery=ba;exports.useUpdateProjectMutation=Ta;
1
+ "use strict";var rn=Object.defineProperty;var sn=(e,t,n)=>t in e?rn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var ee=(e,t,n)=>sn(e,typeof t!="symbol"?t+"":t,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),p=require("react"),d=require("@lokalise/louis"),se=require("date-fns"),an=require("date-fns-tz"),r=require("zod"),Ie=require("@lokalise/universal-ts-utils/api-contracts/apiContracts"),k=require("@lokalise/frontend-http-client"),A=require("@tanstack/react-query"),q=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 G=on(p),ne={Completed:"completed",InProgress:"in_progress",Created:"created",Queued:"queued"},z={...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,Fe;function Ae(){if(Fe)return me;Fe=1;function e(t){var n=typeof t;return t!=null&&(n=="object"||n=="function")}return me=e,me}var ge,Ge;function cn(){if(Ge)return ge;Ge=1;var e=typeof te=="object"&&te&&te.Object===Object&&te;return ge=e,ge}var fe,Ke;function vt(){if(Ke)return fe;Ke=1;var e=cn(),t=typeof self=="object"&&self&&self.Object===Object&&self,n=e||t||Function("return this")();return fe=n,fe}var _e,Qe;function ln(){if(Qe)return _e;Qe=1;var e=vt(),t=function(){return e.Date.now()};return _e=t,_e}var he,Je;function un(){if(Je)return he;Je=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 pe,We;function dn(){if(We)return pe;We=1;var e=un(),t=/^\s+/;function n(s){return s&&s.slice(0,e(s)+1).replace(t,"")}return pe=n,pe}var be,Xe;function jt(){if(Xe)return be;Xe=1;var e=vt(),t=e.Symbol;return be=t,be}var Te,Ye;function mn(){if(Ye)return Te;Ye=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 gn(){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 fn(){if(Ze)return je;Ze=1;var e=jt(),t=mn(),n=gn(),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 _n(){if(et)return ye;et=1;function e(t){return t!=null&&typeof t=="object"}return ye=e,ye}var Se,tt;function hn(){if(tt)return Se;tt=1;var e=fn(),t=_n(),n="[object Symbol]";function s(o){return typeof o=="symbol"||t(o)&&e(o)==n}return Se=s,Se}var xe,nt;function pn(){if(nt)return xe;nt=1;var e=dn(),t=Ae(),n=hn(),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 _=i.test(u);return _||c.test(u)?l(u.slice(2),_?2:8):o.test(u)?s:+u}return xe=m,xe}var Ee,rt;function yt(){if(rt)return Ee;rt=1;var e=Ae(),t=ln(),n=pn(),s="Expected a function",o=Math.max,i=Math.min;function c(l,m,u){var g,_,j,y,f,x,T=0,h=!1,b=!1,v=!0;if(typeof l!="function")throw new TypeError(s);m=n(m)||0,e(u)&&(h=!!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,D=_;return g=_=void 0,T=S,y=l.apply(D,N),y}function E(S){return T=S,f=setTimeout(Z,m),h?P(S):y}function V(S){var N=S-x,D=S-T,$e=m-N;return b?i($e,j-D):$e}function He(S){var N=S-x,D=S-T;return x===void 0||N>=m||N<0||b&&D>=j}function Z(){var S=t();if(He(S))return De(S);f=setTimeout(Z,V(S))}function De(S){return f=void 0,v&&g?P(S):(g=_=void 0,y)}function tn(){f!==void 0&&clearTimeout(f),T=0,g=x=_=f=void 0}function nn(){return f===void 0?y:De(t())}function de(){var S=t(),N=He(S);if(g=arguments,_=this,x=S,N){if(f===void 0)return E(x);if(b)return clearTimeout(f),f=setTimeout(Z,m),P(x)}return f===void 0&&(f=setTimeout(Z,m)),y}return de.cancel=tn,de.flush=nn,de}return Ee=c,Ee}var bn=yt();const Tn=Tt(bn);var Pe,st;function vn(){if(st)return Pe;st=1;var e=yt(),t=Ae(),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 jn=vn();const yn=Tt(jn),Sn=(e,t,n,s)=>{switch(t){case"debounce":return Tn(e,n,s);case"throttle":return yn(e,n,s);default:return e}},xn=e=>{const t=G.useRef(e);return G.useEffect(()=>{t.current=e}),G.useMemo(()=>(...n)=>{var s;return(s=t.current)===null||s===void 0?void 0:s.call(t,...n)},[])},En=e=>{const[t,n]=G.useState((e==null?void 0:e.current)||null);return e&&setTimeout(()=>{e.current!==t&&n(e.current)},0),{refProxy:G.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}},Pn=(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 Cn({skipOnMount:e=!1,refreshMode:t,refreshRate:n=1e3,refreshOptions:s,handleWidth:o=!0,handleHeight:i=!0,targetRef:c,observerOptions:l,onResize:m}={}){const u=p.useRef(e),g=xn(m),[_,j]=p.useState({width:void 0,height:void 0}),{refProxy:y,refElement:f}=En(c),{box:x}=l||{},T=p.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=Pn(P,x);j(V=>v(V,E)?(g==null||g({width:E.width,height:E.height,entry:P}),E):V)})},[o,i,u,x]),h=p.useCallback(Sn(T,t,n,s),[T,t,n,s]);return p.useEffect(()=>{let b;return f?(b=new window.ResizeObserver(h),b.observe(f,l)):(_.width||_.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=h).cancel)===null||E===void 0||E.call(P)}},[h,f]),Object.assign({ref:y},_)}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 zn="_headerContainer_1cubo_1",wn="_navigationTabList_1cubo_8",kn="_navigationTab_1cubo_8",Rn="_headerContent_1cubo_34",In="_staticEnabled_1cubo_50",B={headerContainer:zn,navigationTabList:wn,navigationTab:kn,headerContent:Rn,staticEnabled:In},An=77,K=({sticky:e,children:t})=>{const{ref:n,height:s}=Cn({refreshMode:"debounce",refreshRate:0}),[o,i]=p.useState(!1),c=()=>o?!e:!0;p.useEffect(()=>{const m=()=>{i(window.scrollY>0)};return window.addEventListener("scroll",m),()=>window.removeEventListener("scroll",m)},[]);const l=`${s||An}px`;return a.jsx("div",{style:{minHeight:l},children:a.jsx("div",{children:a.jsxs("div",{ref:n,className:I(B.headerContent,{[B.staticEnabled]:c()}),children:[a.jsx(K.Header,{}),a.jsx(K.Tabs,{}),t]})})})};K.Header=({children:e})=>a.jsx("div",{className:B.headerContainer,children:e});K.Tabs=({children:e})=>a.jsx("div",{className:"flex justify-between gap-2 nowrap",children:e});const Nn="_sidebarContainer_bmdti_1",Ln={sidebarContainer:Nn},On="_logoLink_1baxb_1",Mn={logoLink:On},Un=({src:e,href:t="/",ariaLabel:n="Home",alt:s="Lokalise"})=>a.jsx("a",{className:Mn.logoLink,href:t,"aria-label":n,children:a.jsx("img",{src:e,alt:s})}),Bn="_link_18vhx_1",qn="_active_18vhx_18",at={link:Bn,active:qn},Hn=({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"})})}),Dn="_dropdownButton_13l5r_1",$n="_dropdownButtonActive_13l5r_18",ot={dropdownButton:Dn,dropdownButtonActive:$n},Fn=({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})}),Gn="_iconContainer_nz34m_1",Kn={iconContainer:Gn},xt=({className:e=""})=>a.jsx("div",{"aria-label":"Upgrade Icon",className:I(Kn.iconContainer,"flex-row","items-center","justify-center",e),children:a.jsx(d.CaretUpIcon,{})}),Qn="_menuContainer_ywskt_5",Jn="_profileButton_ywskt_15",Wn="_profileImage_ywskt_28",Xn="_profileImageHighlight_ywskt_36",Yn="_profileImageUpgradeIcon_ywskt_40",Vn="_userIconWrapper_ywskt_46",L={menuContainer:Qn,profileButton:Jn,profileImage:Wn,profileImageHighlight:Xn,profileImageUpgradeIcon:Yn,userIconWrapper:Vn},Et=p.createContext({}),W=()=>p.useContext(Et),Zn=({children:e})=>{const{currentTeam:t,otherTeams:n,showUpgradeCta:s,showBillingButton:o,allowTeamCreation:i,isProviderAlpha:c,canAccessTeamSettings:l,isEndOfTrialActive:m,isTeamSuspended:u,isFullyAuthenticated:g}=W();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(xt,{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:g})})})},Ne=0,Pt=9999,Ct=[150,151,250,251],zt=[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,er=e=>Ct.includes(e),tr=e=>zt.includes(e),nr=e=>wt.includes(e),rr=e=>kt.includes(e),sr=e=>e>Ne&&e<Le,ar=e=>e===Le,or=/\n/,it=(e,t,n)=>e.split(t).flatMap((s,o)=>o!==0?[p.cloneElement(n,{key:Math.random().toString(32).slice(0,10)}),s]:s),ir=(e,t,n)=>typeof e=="string"?it(e,t,n):e.flatMap(s=>typeof s=="string"?it(s,t,n):s),Rt=e=>ir(e,or,a.jsx("br",{})),cr=/(\b(https?|):\/\/[-a-zA-Zа-яА-Я0-9+&@#/%?=~_|!:,.;]*[-a-zA-Zа-яА-Я0-9+&@#/%=~_|])/gi,lr=e=>e.match(cr)??[],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=lr(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},It=e=>typeof e=="string"?lt(e):e.flatMap(t=>typeof t=="string"?lt(t):t,e),At=(e,t="PP")=>se.format(e,t),ur=(e,t,n="PP")=>se.format(an.toZonedTime(e,t),n),oe=e=>{p.useEffect(e,[])},ut={biller:"biller",owner:"owner"},dt=[ut.biller,ut.owner],dr=({children:e,config:t})=>{const{teams:n,currentTeamId:s,planId:o,isEndOfTrialActive:i,isFullyAuthenticated:c,userTeamRole:l}=t,m=n.find(h=>h.id===s),u=n.filter(h=>h.id!==s),g=dt.includes(l),_=dt.includes(l),j=ae(o)||Oe(o),T={...t,currentTeam:m,otherTeams:u,canChangeBilling:g,canAccessTeamSettings:_,isOnFreeOrTrialPlan:j,showUpgradeCta:c&&j&&g,showBillingButton:c&&_&&g,allowTeamCreation:c&&!i};return a.jsx(Et.Provider,{value:T,children:e})},mr=({config:e,children:t})=>a.jsx(dr,{config:e,children:a.jsx(Zn,{children:t})}),gr="_container_q5pot_1",fr="_profileEmail_q5pot_5",mt={container:gr,profileEmail:fr},_r=({href:e,onClick:t,userEmail:n,hideBottomDivider:s})=>{const{isEndOfTrialActive:o,isTeamSuspended:i}=W();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,{})]})},hr="_wrapper_15d85_1",pr="_profileImage_15d85_14",br="_teamName_15d85_22",Tr="_planLabel_15d85_29",vr="_membership_15d85_38",jr="_defaultProfileImage_15d85_44",M={wrapper:hr,profileImage:pr,teamName:br,planLabel:Tr,membership:vr,defaultProfileImage:jr},Nt=({team:e,onClick:t,hidePlanLabel:n})=>{const{currentTeam:s,planId:o}=W(),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:`flex-row gap-2 flex-nowrap items-center ${M.wrapper}`,...t&&{onClick:()=>t(i)},children:[i.logoUrl?a.jsx("img",{className:M.profileImage,src:i.logoUrl,alt:"Team Logo"}):a.jsx("span",{className:`flex-row justify-center items-center ${M.defaultProfileImage}`,children:a.jsx(d.UserIcon,{size:"25px"})}),a.jsxs("div",{className:"flex-col items-start",children:[a.jsxs("div",{className:"flex-row items-center flex-nowrap gap-2",children:[a.jsx("span",{title:i.name,className:M.teamName,children:i.name}),c&&!n&&a.jsx("span",{className:`flex-row justify-center items-center ${M.planLabel}`,children:c})]}),a.jsx("span",{className:M.membership,children:i.role})]})]})},yr="_teamsContainer_1t68g_1",Sr={teamsContainer:yr},xr=({onSwitchTeam:e})=>{const{otherTeams:t}=W();return t.length===0?null:a.jsx("div",{className:`flex-col items-stretch ${Sr.teamsContainer}`,children:t.map(n=>a.jsx(Nt,{team:n,onClick:e,hidePlanLabel:!0},n.id))})},Er="_container_1u995_1",Pr="_planCta_1u995_15",Cr="_upgradeIconWrapper_1u995_19",Ce={container:Er,planCta:Pr,upgradeIconWrapper:Cr},zr=({upgradeOptionHref:e})=>{const{planId:t,trialDaysLeft:n,showUpgradeCta:s}=W();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,{href:e,className:`flex-col gap-1 items-start ${Ce.container}`,children:[a.jsx("span",{className:Ce.planCta,children:c}),a.jsxs("div",{className:`flex-row items-center gap-1 ${Ce.upgradeIconWrapper}`,children:[a.jsx(xt,{}),a.jsx("span",{children:"See upgrade options"})]})]})},wr=Math.min,kr=Math.max;function gt(e,t,n){return kr(e,wr(t,n))}function Lt(e,t){return typeof e=="function"?e(t):e}function Ot(e){return e.split("-")[0]}function Rr(e){return e==="x"?"y":"x"}function Ir(e){return["top","bottom"].includes(Ot(e))?"y":"x"}function Ar(e){return{top:0,right:0,bottom:0,left:0,...e}}function Nr(e){return typeof e!="number"?Ar(e):{top:e,right:e,bottom:e,left:e}}function ft(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 Lr(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:_="floating",altBoundary:j=!1,padding:y=0}=Lt(t,e),f=Nr(y),T=l[j?_==="floating"?"reference":"floating":_],h=ft(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=_==="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=ft(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:b,offsetParent:v,strategy:m}):b);return{top:(h.top-E.top+f.top)/P.y,bottom:(E.bottom-h.bottom+f.bottom)/P.y,left:(h.left-E.left+f.left)/P.x,right:(E.right-h.right+f.right)/P.x}}const Or=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:h,y:b}=T;return{x:h,y:b}}},...m}=Lt(e,t),u={x:n,y:s},g=await Lr(t,m),_=Ir(Ot(o)),j=Rr(_);let y=u[j],f=u[_];if(i){const T=j==="y"?"top":"left",h=j==="y"?"bottom":"right",b=y+g[T],v=y-g[h];y=gt(b,y,v)}if(c){const T=_==="y"?"top":"left",h=_==="y"?"bottom":"right",b=f+g[T],v=f-g[h];f=gt(b,f,v)}const x=l.fn({...t,[j]:y,[_]:f});return{...x,data:{x:x.x-n,y:x.y-s,enabled:{[j]:i,[_]:c}}}}}},Mr="_navItem_1dudv_1",Ur="_activeNavItem_1dudv_18",Br="_badge_1dudv_23",ze={navItem:Mr,activeNavItem:Ur,badge:Br},Mt=p.createContext({}),X=()=>p.useContext(Mt),qr=e=>{const t=e.lastIndexOf("."),n=e.slice(0,t),s=e.slice(t+1);return{name:n,extension:s}},Hr=(e,t)=>{switch(e){case z.Completed:return t<100?"Closed":"Completed";case z.Created:return t>0?"In progress":"Not started";case z.InProgress:return"In progress";case z.Queued:return"Queued";case z.NotStarted:return"Not started";default:return"-"}},Dr=e=>{const t=e.progress??0;return e.status===z.Created&&t>0?z.InProgress:e.status},$r={[F.translation]:"#0891B2",[F.review]:"#16922D",[F.lqa_by_ai]:"#8B5CF6",[F.automatic_translation]:"#60A5FA"},Fr=e=>{const t=[z.InProgress,z.Created,z.Completed];return e.filter(n=>n.status!=="queued").map(n=>({...n,status:Dr(n)})).sort((n,s)=>n.status===z.InProgress&&n.progress===100?-1:s.status===z.InProgress&&s.progress===100?1:n.status===s.status?n.name<s.name?1:-1:t.indexOf(n.status)-t.indexOf(s.status))},_t=e=>e in[ne.InProgress,ne.Created],Gr=(e,t)=>_t(e.status)&&_t(t.status)&&(t.progress??0)>=100,Kr=({task:e,language:t})=>{const[n,s]=p.useState(!1),[o,i]=p.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"})]})},Qr="_langRowCompleted_vpgdi_1",Jr="_langCellSecondary_vpgdi_15",Wr="_langStatus_vpgdi_20",we={langRowCompleted:Qr,langCellSecondary:Jr,langStatus:Wr},Xr=({language:e,task:t})=>{const{getProjectUrl:n,langNameOnClick:s,langProgressOnClick:o}=X(),i=e.progress??0,c=e.status===z.Completed,l=Gr(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(Kr,{task:t,language:e}):a.jsx("span",{className:`${we.langStatus} flex-row items-center justify-start`,"data-status":e.status,children:Hr(e.status,i)})})]})},Yr="_taskContainer_mt2or_1",Vr="_taskTitle_mt2or_21",Zr="_taskDescription_mt2or_28",es="_languagesTable_mt2or_35",ts="_metadata_mt2or_87",U={taskContainer:Yr,taskTitle:Vr,taskDescription:Zr,languagesTable:es,metadata:ts},ns=({task:e})=>{const{tasks:t,getProjectUrl:n,taskTitleOnClick:s}=X(),o=Fr(e.langs),i=c=>{c!==void 0&&window.open(`/style-guide/${e.team_id}/download/${c.id}/link`,"_blank","noopener,noreferrer")};return t?a.jsxs("div",{className:U.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:$r[e.task_type],variant:"solid",children:e.task_type.toLocaleUpperCase()}),e.due_date&&a.jsxs(d.Tag,{color:"#EAB308",children:["DUE ",At(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:()=>i(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(c=>a.jsx(d.MenuItem,{onClick:()=>i(c),children:qr(c.name).name},c.id))})})})]}),a.jsx("h4",{className:U.taskTitle,children:a.jsx(d.Link,{href:n({task:e,view:"multi"}),onClick:()=>{s==null||s({task:e})},children:e.title})}),e.description&&a.jsx("div",{className:U.taskDescription,children:Rt(It(e.description))}),a.jsxs("table",{className:U.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:o.map(c=>a.jsx(Xr,{language:c,task:e},c.lang_id))})]}),a.jsxs("div",{className:U.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:U.tag,children:e.branch_name?e.branch_name:"master"})]})]})]}):null},C={TaskCompleted:"task_completed",TaskClosed:"task_closed",Refresh:"refresh",ShowDialog:"show_dialog"},rs="_loadingContainer_19d6m_1",ss="_noTasksContainer_19d6m_7",as="_noTasksHeading_19d6m_14",os="_noTasksText_19d6m_18",is="_tasksContainer_19d6m_23",$={loadingContainer:rs,noTasksContainer:ss,noTasksHeading:as,noTasksText:os,tasksContainer:is},cs=()=>{const{tasks:e,onTasksWidgetOpen:t,loadingTasks:n,fetchTasks:s}=X();return oe(()=>(s(),t==null||t({tasks:e}),document.addEventListener(C.TaskCompleted,s),document.addEventListener(C.TaskClosed,s),document.addEventListener(C.Refresh,s),()=>{document.removeEventListener(C.TaskCompleted,s),document.removeEventListener(C.TaskClosed,s),document.removeEventListener(C.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(ns,{task:o},o.id))})},ls=({children:e,config:t})=>{const[n,s]=p.useState([]),[o,i]=p.useState(!0),[c,l]=p.useState(0),{getProjectUrl:m,onLanguageCompleteConfirm:u,onTasksWidgetOpen:g,langNameOnClick:_,langProgressOnClick:j,taskTitleOnClick:y}=t,{getTasks:f,getTasksCount:x}=t,T=async()=>{i(!0);const v=await f();s(v),i(!1)},h=async()=>{const v=await x();l(v)};oe(()=>(h(),document.addEventListener(C.TaskCompleted,h),document.addEventListener(C.TaskClosed,h),document.addEventListener(C.Refresh,h),()=>{document.removeEventListener(C.TaskCompleted,h),document.removeEventListener(C.TaskClosed,h),document.removeEventListener(C.Refresh,h)}));const b={fetchTasks:T,tasks:n,tasksCount:c,loadingTasks:o,getProjectUrl:m,onLanguageCompleteConfirm:u,onTasksWidgetOpen:g,langNameOnClick:_,langProgressOnClick:j,taskTitleOnClick:y};return a.jsx(Mt.Provider,{value:b,children:e})},us=e=>function(n){const{config:s,...o}=n;return a.jsx(ls,{config:s,children:a.jsx(e,{...o})})},ds=us(()=>{const[e,t]=p.useState(!1),{tasksCount:n}=X();return oe(()=>{const s=()=>{t(!0)};return document.addEventListener(C.ShowDialog,s),()=>{document.removeEventListener(C.ShowDialog,s)}}),a.jsx(d.Tooltip,{tooltip:"Tasks",placement:"right",children:a.jsx(d.Popover,{content:a.jsx(cs,{}),placement:"right",open:e,onOpenChange:t,middlewares:[Or({padding:{top:32,bottom:32}})],children:s=>a.jsxs(d.Button,{type:"button","data-testid":"sidebar-tasks-widget-button","aria-label":"Tasks",className:I(ze.navItem,{[ze.activeNavItem]:s}),children:[a.jsx(d.JobIcon,{size:"25px"}),n>0&&a.jsx("div",{className:ze.badge,"aria-label":`${n} items requiring attention`,children:n>9?"9+":n})]})})})}),w=({children:e,...t})=>a.jsx("nav",{...t,className:Ln.sidebarContainer,children:e}),ms=({children:e})=>a.jsx("div",{children:e});w.Top=ms;const gs=({children:e})=>a.jsx("div",{children:e});w.Bottom=gs;w.Avatar=Un;w.IconLink=Hn;w.Menu=Fn;w.ProfileMenu=mr;w.TeamSwitch=xr;w.TeamMenuItem=Nt;w.UpgradeMenuItem=zr;w.ProfileSettingsMenuItem=_r;w.Tasks=ds;const fs="_breadcrumbsItem_1hm6a_1",_s="_breadcrumbs_1hm6a_1",ht={breadcrumbsItem:fs,breadcrumbs:_s},hs=({items:e})=>a.jsx("nav",{"aria-label":"breadcrumb",className:ht.breadcrumbs,children:e.map((t,n)=>a.jsxs(p.Fragment,{children:[a.jsx(d.Link,{className:ht.breadcrumbsItem,href:t.link,rel:"noreferrer",children:t.name}),n<e.length-1&&a.jsx("span",{children:" — "})]},`${t.link}-${t.name}`))}),ps=({items:e})=>a.jsx(a.Fragment,{children:e.map((t,n)=>a.jsxs(p.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))}),bs="_badge_1pc1v_1",Ts="_tag_1pc1v_15",vs="_withNavLinkStyle_1pc1v_42 _withLinkStyle_1pc1v_21",js="_disabled_1pc1v_57",ys="_projectNavigationItem_1pc1v_61",Ss="_projectNavigationItemDisabled_1pc1v_67",O={badge:bs,tag:Ts,withNavLinkStyle:vs,disabled:js,projectNavigationItem:ys,projectNavigationItemDisabled:Ss},pt=({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:O.badge,"aria-label":`${t} items requiring attention`,children:t>9?"9+":t})]}),!!n&&a.jsx(d.Tag,{className:O.tag,children:n})]}),ke=p.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?O.projectNavigationItemDisabled:O.projectNavigationItem,children:o||n||!t?a.jsx("button",{type:"button",ref:c,className:I(O.withNavLinkStyle,{[O.disabled]:n}),disabled:n,onClick:o,children:a.jsx(pt,{label:e,badge:s,novel:i})}):a.jsx("a",{href:t,className:O.withNavLinkStyle,children:a.jsx(pt,{label:e,badge:s,novel:i})})})}));ke.displayName="NavigationTabsItem";const xs=e=>(e==null?void 0:e.some(t=>t.some(n=>n.visible)))??!1,Es=e=>e.visible&&(!e.dropdown||xs(e.dropdown)),Ps=({navigation:e,activeItem:t})=>a.jsx("nav",{"aria-label":"Project",children:a.jsx("ul",{className:B.navigationTabList,"aria-orientation":"horizontal",children:e.filter(Es).map(n=>{var s,o,i;return n.dropdown?a.jsx("li",{className:B.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(ps,{items:n.dropdown})})})},n.key):a.jsx("li",{className:B.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 R{constructor(t){this.factories=t}static create(t={}){return new R([()=>t])}add(t,n){return new R([...this.factories,()=>({[t]:n})])}and(t){return new R([...this.factories,()=>t])}from(t){return new R([...this.factories,t])}with(t){return t.apply(this)}merge(t){return new R([...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 Cs(e)}class Cs{constructor(t){this.middleware=t}apply(t){return t.from(async()=>{const n=this.middleware(R.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")]),zs=r.z.object({userId:r.z.number(),userUuid:r.z.string(),teamId:r.z.number(),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 zs.parse(JSON.parse(n))}catch{return}}class Q extends Error{constructor(){super(...arguments);ee(this,"name","UnauthorizedError");ee(this,"status",401)}}function ws(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 Q;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 Q;return(c=e.onNewTokenIssued)==null||c.call(e,o),t.add("authorization",`Bearer ${o.accessToken}`)})}const ks=Me(e=>e.and({"x-lokalise-plugin":"true"}));function Ue(){const e=Re(document.cookie,"accessToken"),t=Re(document.cookie,"refreshToken");return!e||!t?null:{accessToken:e,refreshToken:t}}function Bt(){return Re(document.cookie,"csrf_token")??null}function Re(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 Rs(){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()})]),Is=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()})]),As=r.z.union([qt,Is]),Ns=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()})]),Y=As.and(Ns),Ls=r.z.object({accessToken:r.z.string(),refreshToken:r.z.string()}),Os=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()})]),Ms=r.z.union([qt,Os]),ie=Ie.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:Ms,requestBodySchema:r.z.undefined(),isEmptyResponseExpected:!0,successResponseBodySchema:Ls});function Us(e,t,n){return async()=>{const s=t();if(!s)throw new Q;return k.sendByPayloadRoute(e,ie,{pathParams:{teamId:Number(await n())},headers:await R.create().add("x-csrf-token",s).resolve()})}}function Bs(e){return async({accessToken:t,refreshToken:n})=>{const s=H(t);if(!s)throw new Q;return k.sendByPayloadRoute(e,ie,{pathParams:{teamId:s.teamId},headers:await R.create().add("authorization",`Bearer ${n}`).resolve()})}}const Ht={teamKey:e=>["getUserToken",e]},Dt=(e,t,n)=>A.useQuery({...n,queryFn:async({queryKey:[s,o]})=>k.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 J=re;function qs(e,t,n){const s=Bt(),o=Dt(e,t.add("x-csrf-token",s??""),{queryKey:Ht.teamKey(n),enabled:s!==void 0}),i=p.useRef();return p.useEffect(()=>{o.data&&o.data.accessToken!==i.current&&(window.dispatchEvent(new J(o.data)),i.current=o.data.accessToken)},[o.data]),o}function Be(){const[e,t]=p.useState();return p.useEffect(()=>{const n=o=>{t(o.detail.payload)},s=Ue();return t(s?H(s.accessToken):void 0),window.addEventListener(J.eventName,n),()=>{window.removeEventListener(J.eventName,n)}},[]),e}const Hs=Y,Ds=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}),$s=r.z.object({team_id:r.z.number(),team_user:Ds}),$t=q.buildGetRoute({description:"Get the details of a team user",requestHeaderSchema:Hs,requestPathParamsSchema:r.z.object({teamId:r.z.number(),userId:r.z.number()}),pathResolver:({teamId:e,userId:t})=>`/teams/${e}/users/${t}`,successResponseBodySchema:$s}),Ft={teamUserKey:(e,t)=>["GetTeamUsers",e,t]},Gt=(e,t,n)=>A.useQuery({...n,queryFn:async({queryKey:[s,o,i]})=>k.sendByGetRoute(e,$t,{headers:await t.resolve(),pathParams:{teamId:o,userId:i}})});function Fs(e,t){const n=Be();return Gt(e,t,{queryKey:Ft.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 Gs=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)])}),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(),admin_rights:r.z.array(r.z.string()),languages:r.z.array(Gs),is_admin:r.z.boolean(),is_reviewer:r.z.boolean()}),Qs=r.z.object({project_id:r.z.string(),contributors:r.z.array(Ks)}),Kt=q.buildGetRoute({description:"Get the details of a project contributor",requestHeaderSchema:Y,requestPathParamsSchema:r.z.object({projectId:r.z.string(),contributorId:r.z.number()}),pathResolver:({projectId:e,contributorId:t})=>`/projects/${e}/contributors/${t}`,successResponseBodySchema:Qs}),Qt={projectUserKey:(e,t)=>["RetrieveContributor",e,t]},Jt=(e,t,n)=>A.useQuery({...n,queryFn:async({queryKey:[s,o,i]})=>k.sendByGetRoute(e,Kt,{pathParams:{projectId:o,contributorId:i},headers:await t.resolve()})});function Js(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 Ws=r.z.object({lang_iso:r.z.string(),custom_iso:r.z.string().optional()}),Xs=r.z.object({language_id:r.z.number(),language_iso:r.z.string(),progress:r.z.number(),words_to_do:r.z.number()}),Ys=r.z.object({projectId:r.z.string()}),Vs=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())}),Zs=r.z.object({project_id:r.z.string(),project_uuid:r.z.string().uuid(),languages:r.z.array(Vs)}),ea=r.z.object({projectId:r.z.string()}),ta=r.z.object({langs:r.z.array(r.z.object({lang_iso:r.z.string(),base_lang:r.z.boolean()}))}),na=r.z.object({success:r.z.boolean()}),Wt=q.buildGetRoute({description:"List of project languages",requestHeaderSchema:Y,requestPathParamsSchema:Ys,pathResolver:({projectId:e})=>`/projects/${e}/languages`,successResponseBodySchema:Zs}),Xt=q.buildPayloadRoute({description:"Bulk update project languages",requestHeaderSchema:Y,method:"put",requestPathParamsSchema:ea,pathResolver:({projectId:e})=>`/projects/${e}/languages/bulk-update`,requestBodySchema:ta,successResponseBodySchema:na}),ce=Y,qe=r.z.union([r.z.literal("localization_files"),r.z.literal("paged_documents"),r.z.literal("marketing")]),ra=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()}),sa=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()}),aa=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:sa,languages:r.z.array(Xs)}),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:ra.optional(),statistics:aa.optional()}),oa=r.z.object({name:r.z.string(),team_id:r.z.string(),base_lang_iso:r.z.string(),languages:r.z.array(Ws),project_type:qe,is_segmentation_enabled:r.z.boolean()}),bt=r.z.union([r.z.literal(0),r.z.literal(1)]),ia=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()}),ca=r.z.object({projects:r.z.array(le)}),la=r.z.object({project_id:r.z.string()}),ua=r.z.object({project_id:r.z.string()}),da=r.z.object({name:r.z.string().min(1),description:r.z.string().optional()}),ue=()=>"/projects",Yt=Ie.buildPayloadRoute({description:"Create a new project",requestHeaderSchema:ce,method:"post",pathResolver:ue,requestBodySchema:oa,successResponseBodySchema:le}),Vt=q.buildGetRoute({description:"List all projects",requestHeaderSchema:ce,pathResolver:ue,requestQuerySchema:ia,successResponseBodySchema:ca}),Zt=q.buildGetRoute({description:"Retrieve a project",requestHeaderSchema:ce,requestPathParamsSchema:la,pathResolver:({project_id:e})=>`${ue()}/${e}`,successResponseBodySchema:le}),en=Ie.buildPayloadRoute({description:"Update a project",requestHeaderSchema:ce,method:"put",requestPathParamsSchema:ua,pathResolver:({project_id:e})=>`${ue()}/${e}`,requestBodySchema:da,successResponseBodySchema:le});function ma(e,t,n={}){return A.useMutation({...n,mutationFn:async s=>k.sendByPayloadRoute(e,Yt,{headers:await t.resolve(),body:s})})}const ga={projectIdKey:e=>["listProjectLanguages",e]};function fa(e,t,n){return A.useQuery({...n,queryFn:async({queryKey:[s,o]})=>k.sendByGetRoute(e,Wt,{headers:await t.resolve(),pathParams:{projectId:o}})})}const _a={paramsKey:e=>["listProjects",e]};function ha(e,t,n){return A.useQuery({...n,queryFn:async({queryKey:[s,o]})=>k.sendByGetRoute(e,Vt,{headers:await t.resolve(),queryParams:o})})}const pa={projectIdKey:e=>["retrieveProject",e]};function ba(e,t,n){return A.useQuery({...n,queryFn:async({queryKey:[s,o]})=>k.sendByGetRoute(e,Zt,{headers:await t.resolve(),pathParams:{project_id:o}})})}function Ta(e,t,n,s={}){return A.useMutation({...s,mutationFn:async o=>k.sendByPayloadRoute(e,en,{headers:await t.resolve(),body:o,pathParams:n})})}function va(e,t,n,s={}){return A.useMutation({...s,mutationFn:async o=>k.sendByPayloadRoute(e,Xt,{pathParams:t,headers:await n.resolve(),body:o})})}exports.Breadcrumbs=hs;exports.ENTERPRISE_OPENSOURCE_PLAN_ID=Le;exports.ENTERPRISE_PLAN_IDS=kt;exports.ESSENTIAL_PLAN_IDS=zt;exports.FREE_PLAN_ID=Ne;exports.HeaderBuilder=R;exports.JwtAuthHeaderBuilderMiddleware=ws;exports.NavigationPanel=K;exports.NavigationTabs=Ps;exports.PRO_PLAN_IDS=wt;exports.PublicApiHeaderBuilderMiddleware=ks;exports.START_PLAN_IDS=Ct;exports.Sidebar=w;exports.SidebarTaskLanguageStatuses=z;exports.SidebarTaskStatuses=ne;exports.SidebarTaskTypeOptions=F;exports.TRIAL_PLAN_ID=Pt;exports.UnauthorizedError=Q;exports.bulkUpdateProjectLanguages=Xt;exports.convertNewLineToBreakTag=Rt;exports.createHeaderBuilderMiddleware=Me;exports.createProject=Yt;exports.formatDate=At;exports.formatDateTz=ur;exports.generateTokenFromClassicSession=Us;exports.getAuthenticatedSessionDetailFromRequest=Rs;exports.getCsrfTokenFromCookie=Bt;exports.getJwtTokenFromCookie=Ue;exports.getTeamUser=$t;exports.getTeamUsersQueryKey=Ft;exports.getUserToken=ie;exports.getUserTokenKey=Ht;exports.isEnterpriseOpenSourcePlan=ar;exports.isEnterprisePlan=rr;exports.isEssentialPlan=tr;exports.isFreePlan=ae;exports.isPaidPlan=sr;exports.isProPlan=nr;exports.isStartPlan=er;exports.isTrialPlan=Oe;exports.listProjectLanguages=Wt;exports.listProjectLanguagesKey=ga;exports.listProjects=Vt;exports.listProjectsKey=_a;exports.makeUrlClickable=It;exports.parseJwtTokenPayload=H;exports.refreshExpiredToken=Bs;exports.retrieveContributor=Kt;exports.retrieveContributorKeys=Qt;exports.retrieveProject=Zt;exports.retrieveProjectQueryKey=pa;exports.updateProject=en;exports.useAuthenticatedProjectContributor=Js;exports.useAuthenticatedSessionPayload=Be;exports.useAuthenticatedUser=Fs;exports.useBulkUpdateProjectLanguagesMutation=va;exports.useCreateProjectMutation=ma;exports.useEffectOnce=oe;exports.useGetPromotedClassicSessionJwtQuery=qs;exports.useGetTeamUsersQuery=Gt;exports.useGetUserTokenQuery=Dt;exports.useListProjectLanguagesQuery=fa;exports.useListProjectsQuery=ha;exports.useRetrieveContributorQuery=Jt;exports.useRetrieveProjectQuery=ba;exports.useUpdateProjectMutation=Ta;
package/dist/harmony.mjs CHANGED
@@ -3,8 +3,8 @@ var Zt = (e, t, n) => t in e ? Vt(e, t, { enumerable: !0, configurable: !0, writ
3
3
  var ne = (e, t, n) => Zt(e, typeof t != "symbol" ? t + "" : t, n);
4
4
  import { jsx as s, jsxs as h, Fragment as Ue } from "react/jsx-runtime";
5
5
  import * as G from "react";
6
- import { useRef as wt, useState as R, useCallback as We, useEffect as K, useContext as Ct, createContext as Pt, cloneElement as en, Fragment as kt, forwardRef as tn } from "react";
7
- import { Tooltip as q, Link as L, Menu as ce, MenuList as le, CaretUpIcon as nn, UserIcon as At, MenuItem as J, MenuDivider as It, ConfirmModal as rn, Alert as on, Tag as je, Button as xe, Loading as an, Popover as sn, JobIcon as cn } from "@lokalise/louis";
6
+ import { useRef as wt, useState as R, useCallback as We, useEffect as z, useContext as Ct, createContext as Pt, cloneElement as en, Fragment as kt, forwardRef as tn } from "react";
7
+ import { Tooltip as q, Link as L, Menu as ce, MenuList as le, CaretUpIcon as nn, UserIcon as It, MenuItem as J, MenuDivider as At, ConfirmModal as rn, Alert as on, Tag as je, Button as xe, Loading as an, Popover as sn, JobIcon as cn } from "@lokalise/louis";
8
8
  import { format as Rt, parseISO as ln, isThisSecond as dn } from "date-fns";
9
9
  import { toZonedTime as un } from "date-fns-tz";
10
10
  import { z as r } from "zod";
@@ -191,27 +191,27 @@ function Ot() {
191
191
  var j = S - E, $ = S - b, Je = u - j;
192
192
  return p ? i(Je, T - $) : Je;
193
193
  }
194
- function ze(S) {
194
+ function Ke(S) {
195
195
  var j = S - E, $ = S - b;
196
196
  return E === void 0 || j >= u || j < 0 || p && $ >= T;
197
197
  }
198
198
  function te() {
199
199
  var S = t();
200
- if (ze(S))
201
- return Ke(S);
200
+ if (Ke(S))
201
+ return ze(S);
202
202
  f = setTimeout(te, ee(S));
203
203
  }
204
- function Ke(S) {
204
+ function ze(S) {
205
205
  return f = void 0, v && m ? C(S) : (m = _ = void 0, y);
206
206
  }
207
207
  function Xt() {
208
208
  f !== void 0 && clearTimeout(f), b = 0, m = E = _ = f = void 0;
209
209
  }
210
210
  function Yt() {
211
- return f === void 0 ? y : Ke(t());
211
+ return f === void 0 ? y : ze(t());
212
212
  }
213
213
  function fe() {
214
- var S = t(), j = ze(S);
214
+ var S = t(), j = Ke(S);
215
215
  if (m = arguments, _ = this, E = S, j) {
216
216
  if (f === void 0)
217
217
  return w(E);
@@ -226,9 +226,9 @@ function Ot() {
226
226
  }
227
227
  var En = Ot();
228
228
  const wn = /* @__PURE__ */ Nt(En);
229
- var Ae, lt;
229
+ var Ie, lt;
230
230
  function Cn() {
231
- if (lt) return Ae;
231
+ if (lt) return Ie;
232
232
  lt = 1;
233
233
  var e = Ot(), t = Be(), n = "Expected a function";
234
234
  function o(a, i, c) {
@@ -241,10 +241,10 @@ function Cn() {
241
241
  trailing: u
242
242
  });
243
243
  }
244
- return Ae = o, Ae;
244
+ return Ie = o, Ie;
245
245
  }
246
246
  var Pn = Cn();
247
- const kn = /* @__PURE__ */ Nt(Pn), An = (e, t, n, o) => {
247
+ const kn = /* @__PURE__ */ Nt(Pn), In = (e, t, n, o) => {
248
248
  switch (t) {
249
249
  case "debounce":
250
250
  return wn(e, n, o);
@@ -253,7 +253,7 @@ const kn = /* @__PURE__ */ Nt(Pn), An = (e, t, n, o) => {
253
253
  default:
254
254
  return e;
255
255
  }
256
- }, In = (
256
+ }, An = (
257
257
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
258
258
  (e) => {
259
259
  const t = G.useRef(e);
@@ -292,7 +292,7 @@ const kn = /* @__PURE__ */ Nt(Pn), An = (e, t, n, o) => {
292
292
  height: e.contentRect.height
293
293
  };
294
294
  function jn({ skipOnMount: e = !1, refreshMode: t, refreshRate: n = 1e3, refreshOptions: o, handleWidth: a = !0, handleHeight: i = !0, targetRef: c, observerOptions: d, onResize: u } = {}) {
295
- const l = wt(e), m = In(u), [_, T] = R({
295
+ const l = wt(e), m = An(u), [_, T] = R({
296
296
  width: void 0,
297
297
  height: void 0
298
298
  }), { refProxy: y, refElement: f } = Rn(c), { box: E } = d || {}, b = We((p) => {
@@ -311,13 +311,13 @@ function jn({ skipOnMount: e = !1, refreshMode: t, refreshRate: n = 1e3, refresh
311
311
  entry: C
312
312
  }), w) : ee);
313
313
  });
314
- }, [a, i, l, E]), g = We(An(b, t, n, o), [
314
+ }, [a, i, l, E]), g = We(In(b, t, n, o), [
315
315
  b,
316
316
  t,
317
317
  n,
318
318
  o
319
319
  ]);
320
- return K(() => {
320
+ return z(() => {
321
321
  let p;
322
322
  return f ? (p = new window.ResizeObserver(g), p.observe(f, d)) : (_.width || _.height) && (m == null || m({
323
323
  width: null,
@@ -353,7 +353,7 @@ const xn = "_headerContainer_1cubo_1", On = "_navigationTabList_1cubo_8", Ln = "
353
353
  refreshMode: "debounce",
354
354
  refreshRate: 0
355
355
  }), [a, i] = R(!1), c = () => a ? !e : !0;
356
- K(() => {
356
+ z(() => {
357
357
  const u = () => {
358
358
  i(window.scrollY > 0);
359
359
  };
@@ -381,10 +381,10 @@ const qn = "_sidebarContainer_bmdti_1", Bn = {
381
381
  sidebarContainer: qn
382
382
  }, Dn = "_logoLink_1baxb_1", $n = {
383
383
  logoLink: Dn
384
- }, Fn = ({ src: e, href: t = "/", ariaLabel: n = "Home", alt: o = "Lokalise" }) => /* @__PURE__ */ s("a", { className: $n.logoLink, href: t, "aria-label": n, children: /* @__PURE__ */ s("img", { src: e, alt: o }) }), Gn = "_link_18vhx_1", zn = "_active_18vhx_18", dt = {
384
+ }, Fn = ({ src: e, href: t = "/", ariaLabel: n = "Home", alt: o = "Lokalise" }) => /* @__PURE__ */ s("a", { className: $n.logoLink, href: t, "aria-label": n, children: /* @__PURE__ */ s("img", { src: e, alt: o }) }), Gn = "_link_18vhx_1", Kn = "_active_18vhx_18", dt = {
385
385
  link: Gn,
386
- active: zn
387
- }, Kn = ({ label: e, to: t, icon: n }) => /* @__PURE__ */ s(q, { placement: "right", tooltip: e, children: /* @__PURE__ */ s(
386
+ active: Kn
387
+ }, zn = ({ label: e, to: t, icon: n }) => /* @__PURE__ */ s(q, { placement: "right", tooltip: e, children: /* @__PURE__ */ s(
388
388
  L,
389
389
  {
390
390
  className: N(dt.link, {
@@ -465,7 +465,7 @@ const qn = "_sidebarContainer_bmdti_1", Bn = {
465
465
  className: N(x.userIconWrapper, "flex-row", "align-center", "items-center", {
466
466
  [x.profileImageHighlight]: o
467
467
  }),
468
- children: /* @__PURE__ */ s(At, { size: "25px" })
468
+ children: /* @__PURE__ */ s(It, { size: "25px" })
469
469
  }
470
470
  ),
471
471
  o && /* @__PURE__ */ s(Mt, { className: x.profileImageUpgradeIcon })
@@ -494,7 +494,7 @@ const qn = "_sidebarContainer_bmdti_1", Bn = {
494
494
  const t = _r(e);
495
495
  return t != null && t.length ? t.reduce((n, o, a) => typeof n == "string" ? ft(n, o, a) : n.flatMap((i) => typeof i == "string" ? ft(i, o, a) : i), e) : e;
496
496
  }, gr = (e) => typeof e == "string" ? _t(e) : e.flatMap((t) => typeof t == "string" ? _t(t) : t, e), hr = (e, t = "PP") => Rt(e, t), Da = (e, t, n = "PP") => Rt(un(e, t), n), $e = (e) => {
497
- K(e, []);
497
+ z(e, []);
498
498
  }, gt = {
499
499
  biller: "biller",
500
500
  owner: "owner"
@@ -538,7 +538,7 @@ const qn = "_sidebarContainer_bmdti_1", Bn = {
538
538
  ] })
539
539
  }
540
540
  ),
541
- !o && /* @__PURE__ */ s(It, {})
541
+ !o && /* @__PURE__ */ s(At, {})
542
542
  ] });
543
543
  }, Sr = "_wrapper_15d85_1", Er = "_profileImage_15d85_14", wr = "_teamName_15d85_22", Cr = "_planLabel_15d85_29", Pr = "_membership_15d85_38", kr = "_defaultProfileImage_15d85_44", M = {
544
544
  wrapper: Sr,
@@ -558,7 +558,7 @@ const qn = "_sidebarContainer_bmdti_1", Bn = {
558
558
  className: `flex-row gap-2 flex-nowrap items-center ${M.wrapper}`,
559
559
  ...t && { onClick: () => t(i) },
560
560
  children: [
561
- i.logoUrl ? /* @__PURE__ */ s("img", { className: M.profileImage, src: i.logoUrl, alt: "Team Logo" }) : /* @__PURE__ */ s("span", { className: `flex-row justify-center items-center ${M.defaultProfileImage}`, children: /* @__PURE__ */ s(At, { size: "25px" }) }),
561
+ i.logoUrl ? /* @__PURE__ */ s("img", { className: M.profileImage, src: i.logoUrl, alt: "Team Logo" }) : /* @__PURE__ */ s("span", { className: `flex-row justify-center items-center ${M.defaultProfileImage}`, children: /* @__PURE__ */ s(It, { size: "25px" }) }),
562
562
  /* @__PURE__ */ h("div", { className: "flex-col items-start", children: [
563
563
  /* @__PURE__ */ h("div", { className: "flex-row items-center flex-nowrap gap-2", children: [
564
564
  /* @__PURE__ */ s("span", { title: i.name, className: M.teamName, children: i.name }),
@@ -569,12 +569,12 @@ const qn = "_sidebarContainer_bmdti_1", Bn = {
569
569
  ]
570
570
  }
571
571
  );
572
- }, Ar = "_teamsContainer_1t68g_1", Ir = {
573
- teamsContainer: Ar
572
+ }, Ir = "_teamsContainer_1t68g_1", Ar = {
573
+ teamsContainer: Ir
574
574
  }, Rr = ({ onSwitchTeam: e }) => {
575
575
  const { otherTeams: t } = X();
576
- return t.length === 0 ? null : /* @__PURE__ */ s("div", { className: `flex-col items-stretch ${Ir.teamsContainer}`, children: t.map((n) => /* @__PURE__ */ s(Dt, { team: n, onClick: e, hidePlanLabel: !0 }, n.id)) });
577
- }, Nr = "_container_1u995_1", jr = "_planCta_1u995_15", xr = "_upgradeIconWrapper_1u995_19", Ie = {
576
+ return t.length === 0 ? null : /* @__PURE__ */ s("div", { className: `flex-col items-stretch ${Ar.teamsContainer}`, children: t.map((n) => /* @__PURE__ */ s(Dt, { team: n, onClick: e, hidePlanLabel: !0 }, n.id)) });
577
+ }, Nr = "_container_1u995_1", jr = "_planCta_1u995_15", xr = "_upgradeIconWrapper_1u995_19", Ae = {
578
578
  container: Nr,
579
579
  planCta: jr,
580
580
  upgradeIconWrapper: xr
@@ -583,9 +583,9 @@ const qn = "_sidebarContainer_bmdti_1", Bn = {
583
583
  if (!o)
584
584
  return null;
585
585
  const c = De(t) ? "Your team is currently on the Free plan" : `Free trial ends in ${n} ${n === 1 ? "day" : "days"}`;
586
- return /* @__PURE__ */ h(J, { href: e, className: `flex-col gap-1 items-start ${Ie.container}`, children: [
587
- /* @__PURE__ */ s("span", { className: Ie.planCta, children: c }),
588
- /* @__PURE__ */ h("div", { className: `flex-row items-center gap-1 ${Ie.upgradeIconWrapper}`, children: [
586
+ return /* @__PURE__ */ h(J, { href: e, className: `flex-col gap-1 items-start ${Ae.container}`, children: [
587
+ /* @__PURE__ */ s("span", { className: Ae.planCta, children: c }),
588
+ /* @__PURE__ */ h("div", { className: `flex-row items-center gap-1 ${Ae.upgradeIconWrapper}`, children: [
589
589
  /* @__PURE__ */ s(Mt, {}),
590
590
  /* @__PURE__ */ s("span", { children: "See upgrade options" })
591
591
  ] })
@@ -742,11 +742,11 @@ const $r = function(e) {
742
742
  };
743
743
  }
744
744
  };
745
- }, Fr = "_navItem_1dudv_1", Gr = "_activeNavItem_1dudv_18", zr = "_badge_1dudv_23", Re = {
745
+ }, Fr = "_navItem_1dudv_1", Gr = "_activeNavItem_1dudv_18", Kr = "_badge_1dudv_23", Re = {
746
746
  navItem: Fr,
747
747
  activeNavItem: Gr,
748
- badge: zr
749
- }, Gt = Pt({}), Y = () => Ct(Gt), Kr = (e) => {
748
+ badge: Kr
749
+ }, Gt = Pt({}), Y = () => Ct(Gt), zr = (e) => {
750
750
  const t = e.lastIndexOf("."), n = e.slice(0, t), o = e.slice(t + 1);
751
751
  return { name: n, extension: o };
752
752
  }, Jr = (e, t) => {
@@ -901,7 +901,7 @@ const $r = function(e) {
901
901
  J,
902
902
  {
903
903
  onClick: () => i(c),
904
- children: Kr(c.name).name
904
+ children: zr(c.name).name
905
905
  },
906
906
  c.id
907
907
  )) })
@@ -1042,19 +1042,19 @@ const $r = function(e) {
1042
1042
  )
1043
1043
  }
1044
1044
  ) });
1045
- }), A = ({ children: e, ...t }) => /* @__PURE__ */ s("nav", { ...t, className: Bn.sidebarContainer, children: e }), vo = ({ children: e }) => /* @__PURE__ */ s("div", { children: e });
1046
- A.Top = vo;
1045
+ }), I = ({ children: e, ...t }) => /* @__PURE__ */ s("nav", { ...t, className: Bn.sidebarContainer, children: e }), vo = ({ children: e }) => /* @__PURE__ */ s("div", { children: e });
1046
+ I.Top = vo;
1047
1047
  const To = ({ children: e }) => /* @__PURE__ */ s("div", { children: e });
1048
- A.Bottom = To;
1049
- A.Avatar = Fn;
1050
- A.IconLink = Kn;
1051
- A.Menu = Qn;
1052
- A.ProfileMenu = br;
1053
- A.TeamSwitch = Rr;
1054
- A.TeamMenuItem = Dt;
1055
- A.UpgradeMenuItem = Or;
1056
- A.ProfileSettingsMenuItem = yr;
1057
- A.Tasks = bo;
1048
+ I.Bottom = To;
1049
+ I.Avatar = Fn;
1050
+ I.IconLink = zn;
1051
+ I.Menu = Qn;
1052
+ I.ProfileMenu = br;
1053
+ I.TeamSwitch = Rr;
1054
+ I.TeamMenuItem = Dt;
1055
+ I.UpgradeMenuItem = Or;
1056
+ I.ProfileSettingsMenuItem = yr;
1057
+ I.Tasks = bo;
1058
1058
  const yo = "_breadcrumbsItem_1hm6a_1", So = "_breadcrumbs_1hm6a_1", yt = {
1059
1059
  breadcrumbsItem: yo,
1060
1060
  breadcrumbs: So
@@ -1062,15 +1062,15 @@ const yo = "_breadcrumbsItem_1hm6a_1", So = "_breadcrumbs_1hm6a_1", yt = {
1062
1062
  /* @__PURE__ */ s(L, { className: yt.breadcrumbsItem, href: t.link, rel: "noreferrer", children: t.name }),
1063
1063
  n < e.length - 1 && /* @__PURE__ */ s("span", { children: " — " })
1064
1064
  ] }, `${t.link}-${t.name}`)) }), Eo = ({ items: e }) => /* @__PURE__ */ s(Ue, { children: e.map((t, n) => /* @__PURE__ */ h(kt, { children: [
1065
- !!n && t.some((o) => o.visible) && /* @__PURE__ */ s(It, {}),
1065
+ !!n && t.some((o) => o.visible) && /* @__PURE__ */ s(At, {}),
1066
1066
  t.filter(({ visible: o }) => o).map(({ link: o, label: a, onClick: i }) => /* @__PURE__ */ s(J, { href: o || "#", "aria-label": a, onClick: i, children: a }, a))
1067
- ] }, t[0].label)) }), wo = "_badge_1pc1v_1", Co = "_tag_1pc1v_15", Po = "_withNavLinkStyle_1pc1v_42 _withLinkStyle_1pc1v_21", ko = "_disabled_1pc1v_57", Ao = "_projectNavigationItem_1pc1v_61", Io = "_projectNavigationItemDisabled_1pc1v_67", O = {
1067
+ ] }, t[0].label)) }), wo = "_badge_1pc1v_1", Co = "_tag_1pc1v_15", Po = "_withNavLinkStyle_1pc1v_42 _withLinkStyle_1pc1v_21", ko = "_disabled_1pc1v_57", Io = "_projectNavigationItem_1pc1v_61", Ao = "_projectNavigationItemDisabled_1pc1v_67", O = {
1068
1068
  badge: wo,
1069
1069
  tag: Co,
1070
1070
  withNavLinkStyle: Po,
1071
1071
  disabled: ko,
1072
- projectNavigationItem: Ao,
1073
- projectNavigationItemDisabled: Io
1072
+ projectNavigationItem: Io,
1073
+ projectNavigationItemDisabled: Ao
1074
1074
  }, St = ({ label: e, badge: t, novel: n }) => /* @__PURE__ */ h("div", { className: "flex gap-1", children: [
1075
1075
  /* @__PURE__ */ h("div", { children: [
1076
1076
  /* @__PURE__ */ s("span", { children: e }),
@@ -1138,7 +1138,7 @@ const Ro = (e) => (e == null ? void 0 : e.some((t) => t.some((n) => n.visible)))
1138
1138
  n.key
1139
1139
  );
1140
1140
  }) }) });
1141
- class I {
1141
+ class A {
1142
1142
  /**
1143
1143
  * This constructor is private to prevent the creation of a HeaderBuilder, it's an implementation detail
1144
1144
  * that users of this class should not be aware of. The only way to create a HeaderBuilder is through the
@@ -1150,7 +1150,7 @@ class I {
1150
1150
  this.factories = t;
1151
1151
  }
1152
1152
  static create(t = {}) {
1153
- return new I([() => t]);
1153
+ return new A([() => t]);
1154
1154
  }
1155
1155
  /**
1156
1156
  * Adds a single header to the builder by providing a key and a value.
@@ -1159,18 +1159,18 @@ class I {
1159
1159
  * ```typescript
1160
1160
  * const builder = HeaderBuilder.create()
1161
1161
  * .add('Content-Type', 'application/json')
1162
- * .add('Authorization', 'Bearer token')
1162
+ * .add('authorization', 'Bearer token')
1163
1163
  *
1164
1164
  * const headers = await builder.resolve()
1165
1165
  * console.log(headers)
1166
- * // { 'Content-Type': 'application/json', 'Authorization': 'Bearer token' }
1166
+ * // { 'Content-Type': 'application/json', 'authorization': 'Bearer token' }
1167
1167
  * ```
1168
1168
  *
1169
1169
  * @param key - The key of the header
1170
1170
  * @param value - The value of the header
1171
1171
  */
1172
1172
  add(t, n) {
1173
- return new I([...this.factories, () => ({ [t]: n })]);
1173
+ return new A([...this.factories, () => ({ [t]: n })]);
1174
1174
  }
1175
1175
  /**
1176
1176
  * Adds multiple headers to the builder by providing an object or a promise of an object with the headers.
@@ -1178,14 +1178,14 @@ class I {
1178
1178
  * @example
1179
1179
  * ```typescript
1180
1180
  * const builder = HeaderBuilder.create()
1181
- * .and({ 'Content-Type': 'application/json', 'Authorization': 'Bearer token' })
1181
+ * .and({ 'Content-Type': 'application/json', 'authorization': 'Bearer token' })
1182
1182
  * .and(Promise.resolve({ 'X-Custom-Header': 'custom', 'X-Another-Header': 'another' }))
1183
1183
  *
1184
1184
  * const headers = await builder.resolve()
1185
1185
  * console.log(headers)
1186
1186
  * // Prints: {
1187
1187
  * // 'Content-Type': 'application/json',
1188
- * // 'Authorization': 'Bearer token',
1188
+ * // 'authorization': 'Bearer token',
1189
1189
  * // 'X-Custom-Header': 'custom',
1190
1190
  * // 'X-Another-Header': 'another'
1191
1191
  * // }
@@ -1194,7 +1194,7 @@ class I {
1194
1194
  * @param extension - An object with the headers to add
1195
1195
  */
1196
1196
  and(t) {
1197
- return new I([...this.factories, () => t]);
1197
+ return new A([...this.factories, () => t]);
1198
1198
  }
1199
1199
  /**
1200
1200
  * Adds a factory function that returns a promise of headers to the builder.
@@ -1205,17 +1205,17 @@ class I {
1205
1205
  * const builder = HeaderBuilder.create()
1206
1206
  * .from(async () => {
1207
1207
  * const token = await fetchToken()
1208
- * return { 'Authorization': `Bearer ${token}` }
1208
+ * return { 'authorization': `Bearer ${token}` }
1209
1209
  * })
1210
1210
  *
1211
1211
  * const headers = await builder.resolve()
1212
- * console.log(headers) // { 'Authorization': 'Bearer <token>' }
1212
+ * console.log(headers) // { 'authorization': 'Bearer <token>' }
1213
1213
  * ```
1214
1214
  *
1215
1215
  * @param factory - A function that returns a promise of headers
1216
1216
  */
1217
1217
  from(t) {
1218
- return new I([...this.factories, t]);
1218
+ return new A([...this.factories, t]);
1219
1219
  }
1220
1220
  /**
1221
1221
  * Takes a middleware function that receives the current builder and returns a new, modified, builder.
@@ -1224,14 +1224,14 @@ class I {
1224
1224
  * ```typescript
1225
1225
  * const authMiddleware = createHeaderBuilderMiddleware(async (builder) => {
1226
1226
  * const token = await fetchToken()
1227
- * return builder.add('Authorization', `Bearer ${token}`)
1227
+ * return builder.add('authorization', `Bearer ${token}`)
1228
1228
  * })
1229
1229
  *
1230
1230
  * const builder = HeaderBuilder.create()
1231
1231
  * .with(authMiddleware)
1232
1232
  *
1233
- * const headers = await builder.resolve() // Type of headers is { 'Authorization': string }
1234
- * console.log(headers) // { 'Authorization': 'Bearer <token>' }
1233
+ * const headers = await builder.resolve() // Type of headers is { 'authorization': string }
1234
+ * console.log(headers) // { 'authorization': 'Bearer <token>' }
1235
1235
  * ```
1236
1236
  *
1237
1237
  * @param middleware
@@ -1248,19 +1248,19 @@ class I {
1248
1248
  * .add('Content-Type', 'application/json')
1249
1249
  *
1250
1250
  * const builderB = HeaderBuilder.create()
1251
- * .add('Authorization', 'Bearer token')
1251
+ * .add('authorization', 'Bearer token')
1252
1252
  *
1253
1253
  * const mergedBuilder = builderA.merge(builderB)
1254
1254
  *
1255
1255
  * const headers = await mergedBuilder.resolve()
1256
1256
  * console.log(headers)
1257
- * // { 'Content-Type': 'application/json', 'Authorization': 'Bearer token' }
1257
+ * // { 'Content-Type': 'application/json', 'authorization': 'Bearer token' }
1258
1258
  * ```
1259
1259
  *
1260
1260
  * @param builder - The builder to merge with
1261
1261
  */
1262
1262
  merge(t) {
1263
- return new I([...this.factories, ...t.factories]);
1263
+ return new A([...this.factories, ...t.factories]);
1264
1264
  }
1265
1265
  /**
1266
1266
  * Resolves the headers by waiting for all the promises to resolve and merging them together.
@@ -1278,7 +1278,7 @@ class I {
1278
1278
  return Object.assign({}, ...n);
1279
1279
  }
1280
1280
  }
1281
- function zt(e) {
1281
+ function Kt(e) {
1282
1282
  return new jo(e);
1283
1283
  }
1284
1284
  class jo {
@@ -1287,12 +1287,12 @@ class jo {
1287
1287
  }
1288
1288
  apply(t) {
1289
1289
  return t.from(async () => {
1290
- const n = this.middleware(I.create());
1290
+ const n = this.middleware(A.create());
1291
1291
  return n instanceof Promise ? n.then((o) => o.resolve()) : n.resolve();
1292
1292
  });
1293
1293
  }
1294
1294
  }
1295
- const Kt = r.union([
1295
+ const zt = r.union([
1296
1296
  r.literal("owner"),
1297
1297
  r.literal("admin"),
1298
1298
  r.literal("biller"),
@@ -1301,7 +1301,7 @@ const Kt = r.union([
1301
1301
  userId: r.number(),
1302
1302
  userUuid: r.string(),
1303
1303
  teamId: r.number(),
1304
- userTeamRole: Kt,
1304
+ userTeamRole: zt,
1305
1305
  userEmail: r.string().email(),
1306
1306
  userName: r.string(),
1307
1307
  userCurrentTeamId: r.number(),
@@ -1327,21 +1327,21 @@ class se extends Error {
1327
1327
  }
1328
1328
  }
1329
1329
  function Ga(e) {
1330
- return zt(async (t) => {
1330
+ return Kt(async (t) => {
1331
1331
  var i, c;
1332
1332
  const n = e.getCurrentToken() ?? await ((i = e.generateNewToken) == null ? void 0 : i.call(e));
1333
1333
  if (!n)
1334
1334
  throw new se();
1335
1335
  const { exp: o } = V(n.accessToken) ?? { exp: 0 };
1336
1336
  if (!dn(new Date(o)))
1337
- return t.add("Authorization", `Bearer ${n.accessToken}`);
1337
+ return t.add("authorization", `Bearer ${n.accessToken}`);
1338
1338
  const a = await e.refreshToken(n);
1339
1339
  if (!a)
1340
1340
  throw new se();
1341
- return (c = e.onNewTokenIssued) == null || c.call(e, a), t.add("Authorization", `Bearer ${a.accessToken}`);
1341
+ return (c = e.onNewTokenIssued) == null || c.call(e, a), t.add("authorization", `Bearer ${a.accessToken}`);
1342
1342
  });
1343
1343
  }
1344
- const za = zt(
1344
+ const Ka = Kt(
1345
1345
  (e) => e.and({ "x-lokalise-plugin": "true" })
1346
1346
  );
1347
1347
  function Jt() {
@@ -1355,7 +1355,7 @@ function Me(e, t) {
1355
1355
  var n, o;
1356
1356
  return (o = (n = e.split(";").find((a) => a.trim().startsWith(`${t}=`))) == null ? void 0 : n.trim()) == null ? void 0 : o.substring(t.length + 1);
1357
1357
  }
1358
- function Ka() {
1358
+ function za() {
1359
1359
  const e = Jt();
1360
1360
  if (!e)
1361
1361
  return;
@@ -1364,7 +1364,6 @@ function Ka() {
1364
1364
  return { ...e, payload: t };
1365
1365
  }
1366
1366
  const Wt = r.union([
1367
- r.object({ Authorization: r.string() }),
1368
1367
  r.object({ authorization: r.string() }),
1369
1368
  r.object({ AUTHORIZATION: r.string() })
1370
1369
  ]), Lo = r.union([
@@ -1407,7 +1406,7 @@ function Ja(e, t, n) {
1407
1406
  throw new se();
1408
1407
  return B(e, Fe, {
1409
1408
  pathParams: { teamId: Number(await n()) },
1410
- headers: await I.create().add("x-csrf-token", o).resolve()
1409
+ headers: await A.create().add("x-csrf-token", o).resolve()
1411
1410
  });
1412
1411
  };
1413
1412
  }
@@ -1418,7 +1417,7 @@ function Wa(e) {
1418
1417
  throw new se();
1419
1418
  return B(e, Fe, {
1420
1419
  pathParams: { teamId: o.teamId },
1421
- headers: await I.create().add("Authorization", `Bearer ${n}`).resolve()
1420
+ headers: await A.create().add("authorization", `Bearer ${n}`).resolve()
1422
1421
  });
1423
1422
  };
1424
1423
  }
@@ -1438,24 +1437,24 @@ const Do = {
1438
1437
  }
1439
1438
  };
1440
1439
  ne(ie, "eventName", "new-jwt-issued");
1441
- let z = ie;
1440
+ let K = ie;
1442
1441
  function Qa(e, t, n) {
1443
1442
  const o = Oo(), a = $o(e, t.add("x-csrf-token", o ?? ""), {
1444
1443
  queryKey: Do.teamKey(n),
1445
1444
  enabled: o !== void 0
1446
1445
  }), i = wt();
1447
- return K(() => {
1448
- a.data && a.data.accessToken !== i.current && (window.dispatchEvent(new z(a.data)), i.current = a.data.accessToken);
1446
+ return z(() => {
1447
+ a.data && a.data.accessToken !== i.current && (window.dispatchEvent(new K(a.data)), i.current = a.data.accessToken);
1449
1448
  }, [a.data]), a;
1450
1449
  }
1451
1450
  function Qt() {
1452
1451
  const [e, t] = R();
1453
- return K(() => {
1452
+ return z(() => {
1454
1453
  const n = (a) => {
1455
1454
  t(a.detail.payload);
1456
1455
  }, o = Jt();
1457
- return t(o ? V(o.accessToken) : void 0), window.addEventListener(z.eventName, n), () => {
1458
- window.removeEventListener(z.eventName, n);
1456
+ return t(o ? V(o.accessToken) : void 0), window.addEventListener(K.eventName, n), () => {
1457
+ window.removeEventListener(K.eventName, n);
1459
1458
  };
1460
1459
  }, []), e;
1461
1460
  }
@@ -1465,21 +1464,21 @@ const Fo = Z, Go = r.object({
1465
1464
  fullname: r.string(),
1466
1465
  created_at: r.string(),
1467
1466
  created_at_timestamp: r.number(),
1468
- role: Kt
1469
- }), zo = r.object({
1467
+ role: zt
1468
+ }), Ko = r.object({
1470
1469
  team_id: r.number(),
1471
1470
  team_user: Go
1472
- }), Ko = Q({
1471
+ }), zo = Q({
1473
1472
  description: "Get the details of a team user",
1474
1473
  requestHeaderSchema: Fo,
1475
1474
  requestPathParamsSchema: r.object({ teamId: r.number(), userId: r.number() }),
1476
1475
  pathResolver: ({ teamId: e, userId: t }) => `/teams/${e}/users/${t}`,
1477
- successResponseBodySchema: zo
1476
+ successResponseBodySchema: Ko
1478
1477
  }), Jo = {
1479
1478
  teamUserKey: (e, t) => ["GetTeamUsers", e, t]
1480
1479
  }, Wo = (e, t, n) => D({
1481
1480
  ...n,
1482
- queryFn: async ({ queryKey: [o, a, i] }) => W(e, Ko, {
1481
+ queryFn: async ({ queryKey: [o, a, i] }) => W(e, zo, {
1483
1482
  headers: await t.resolve(),
1484
1483
  pathParams: { teamId: a, userId: i }
1485
1484
  })
@@ -1754,14 +1753,14 @@ export {
1754
1753
  lr as ENTERPRISE_PLAN_IDS,
1755
1754
  ir as ESSENTIAL_PLAN_IDS,
1756
1755
  Ht as FREE_PLAN_ID,
1757
- I as HeaderBuilder,
1756
+ A as HeaderBuilder,
1758
1757
  Ga as JwtAuthHeaderBuilderMiddleware,
1759
1758
  ae as NavigationPanel,
1760
1759
  Fa as NavigationTabs,
1761
1760
  cr as PRO_PLAN_IDS,
1762
- za as PublicApiHeaderBuilderMiddleware,
1761
+ Ka as PublicApiHeaderBuilderMiddleware,
1763
1762
  sr as START_PLAN_IDS,
1764
- A as Sidebar,
1763
+ I as Sidebar,
1765
1764
  k as SidebarTaskLanguageStatuses,
1766
1765
  Oe as SidebarTaskStatuses,
1767
1766
  re as SidebarTaskTypeOptions,
@@ -1769,15 +1768,15 @@ export {
1769
1768
  se as UnauthorizedError,
1770
1769
  da as bulkUpdateProjectLanguages,
1771
1770
  mr as convertNewLineToBreakTag,
1772
- zt as createHeaderBuilderMiddleware,
1771
+ Kt as createHeaderBuilderMiddleware,
1773
1772
  Ta as createProject,
1774
1773
  hr as formatDate,
1775
1774
  Da as formatDateTz,
1776
1775
  Ja as generateTokenFromClassicSession,
1777
- Ka as getAuthenticatedSessionDetailFromRequest,
1776
+ za as getAuthenticatedSessionDetailFromRequest,
1778
1777
  Oo as getCsrfTokenFromCookie,
1779
1778
  Jt as getJwtTokenFromCookie,
1780
- Ko as getTeamUser,
1779
+ zo as getTeamUser,
1781
1780
  Jo as getTeamUsersQueryKey,
1782
1781
  Fe as getUserToken,
1783
1782
  Do as getUserTokenKey,
@@ -16,14 +16,14 @@ export type { HeaderBuilderMiddleware };
16
16
  * ```typescript
17
17
  * const authMiddleware = createHeaderBuilderMiddleware(async (builder) => {
18
18
  * const token = await fetchToken()
19
- * return builder.add('Authorization', `Bearer ${token}`)
19
+ * return builder.add('authorization', `Bearer ${token}`)
20
20
  * })
21
21
  *
22
22
  * const builder = HeaderBuilder.create()
23
23
  * .with(authMiddleware)
24
24
  *
25
- * const headers = await builder.resolve() // Type of headers is { 'Authorization': string }
26
- * console.log(headers) // { 'Authorization': 'Bearer <token>' }
25
+ * const headers = await builder.resolve() // Type of headers is { 'authorization': string }
26
+ * console.log(headers) // { 'authorization': 'Bearer <token>' }
27
27
  */
28
28
  declare class HeaderBuilderMiddleware<const H extends Headers> {
29
29
  private readonly middleware;
@@ -11,7 +11,7 @@ type NoHeaders = {};
11
11
  * ```typescript
12
12
  * const authMiddleware = createHeaderBuilderMiddleware(async (builder) => {
13
13
  * const token = await fetchToken()
14
- * return builder.add('Authorization', `Bearer ${token}`)
14
+ * return builder.add('authorization', `Bearer ${token}`)
15
15
  * })
16
16
  *
17
17
  * const builder = HeaderBuilder.create()
@@ -25,7 +25,7 @@ type NoHeaders = {};
25
25
  * // 'Content-Type': 'application/json',
26
26
  * // 'X-Custom-Header': 'custom',
27
27
  * // 'X-Another-Header': 'another',
28
- * // 'Authorization': 'Bearer <token>'
28
+ * // 'authorization': 'Bearer <token>'
29
29
  * // }
30
30
  */
31
31
  export declare class HeaderBuilder<H extends Headers = NoHeaders> {
@@ -60,11 +60,11 @@ export declare class HeaderBuilder<H extends Headers = NoHeaders> {
60
60
  * ```typescript
61
61
  * const builder = HeaderBuilder.create()
62
62
  * .add('Content-Type', 'application/json')
63
- * .add('Authorization', 'Bearer token')
63
+ * .add('authorization', 'Bearer token')
64
64
  *
65
65
  * const headers = await builder.resolve()
66
66
  * console.log(headers)
67
- * // { 'Content-Type': 'application/json', 'Authorization': 'Bearer token' }
67
+ * // { 'Content-Type': 'application/json', 'authorization': 'Bearer token' }
68
68
  * ```
69
69
  *
70
70
  * @param key - The key of the header
@@ -79,14 +79,14 @@ export declare class HeaderBuilder<H extends Headers = NoHeaders> {
79
79
  * @example
80
80
  * ```typescript
81
81
  * const builder = HeaderBuilder.create()
82
- * .and({ 'Content-Type': 'application/json', 'Authorization': 'Bearer token' })
82
+ * .and({ 'Content-Type': 'application/json', 'authorization': 'Bearer token' })
83
83
  * .and(Promise.resolve({ 'X-Custom-Header': 'custom', 'X-Another-Header': 'another' }))
84
84
  *
85
85
  * const headers = await builder.resolve()
86
86
  * console.log(headers)
87
87
  * // Prints: {
88
88
  * // 'Content-Type': 'application/json',
89
- * // 'Authorization': 'Bearer token',
89
+ * // 'authorization': 'Bearer token',
90
90
  * // 'X-Custom-Header': 'custom',
91
91
  * // 'X-Another-Header': 'another'
92
92
  * // }
@@ -104,11 +104,11 @@ export declare class HeaderBuilder<H extends Headers = NoHeaders> {
104
104
  * const builder = HeaderBuilder.create()
105
105
  * .from(async () => {
106
106
  * const token = await fetchToken()
107
- * return { 'Authorization': `Bearer ${token}` }
107
+ * return { 'authorization': `Bearer ${token}` }
108
108
  * })
109
109
  *
110
110
  * const headers = await builder.resolve()
111
- * console.log(headers) // { 'Authorization': 'Bearer <token>' }
111
+ * console.log(headers) // { 'authorization': 'Bearer <token>' }
112
112
  * ```
113
113
  *
114
114
  * @param factory - A function that returns a promise of headers
@@ -121,14 +121,14 @@ export declare class HeaderBuilder<H extends Headers = NoHeaders> {
121
121
  * ```typescript
122
122
  * const authMiddleware = createHeaderBuilderMiddleware(async (builder) => {
123
123
  * const token = await fetchToken()
124
- * return builder.add('Authorization', `Bearer ${token}`)
124
+ * return builder.add('authorization', `Bearer ${token}`)
125
125
  * })
126
126
  *
127
127
  * const builder = HeaderBuilder.create()
128
128
  * .with(authMiddleware)
129
129
  *
130
- * const headers = await builder.resolve() // Type of headers is { 'Authorization': string }
131
- * console.log(headers) // { 'Authorization': 'Bearer <token>' }
130
+ * const headers = await builder.resolve() // Type of headers is { 'authorization': string }
131
+ * console.log(headers) // { 'authorization': 'Bearer <token>' }
132
132
  * ```
133
133
  *
134
134
  * @param middleware
@@ -143,13 +143,13 @@ export declare class HeaderBuilder<H extends Headers = NoHeaders> {
143
143
  * .add('Content-Type', 'application/json')
144
144
  *
145
145
  * const builderB = HeaderBuilder.create()
146
- * .add('Authorization', 'Bearer token')
146
+ * .add('authorization', 'Bearer token')
147
147
  *
148
148
  * const mergedBuilder = builderA.merge(builderB)
149
149
  *
150
150
  * const headers = await mergedBuilder.resolve()
151
151
  * console.log(headers)
152
- * // { 'Content-Type': 'application/json', 'Authorization': 'Bearer token' }
152
+ * // { 'Content-Type': 'application/json', 'authorization': 'Bearer token' }
153
153
  * ```
154
154
  *
155
155
  * @param builder - The builder to merge with
@@ -6,5 +6,5 @@ export type JwtAuthHeaderBuilderMiddlewareProps = {
6
6
  onNewTokenIssued?: (token: JwtToken) => void;
7
7
  };
8
8
  export declare function JwtAuthHeaderBuilderMiddleware(props: JwtAuthHeaderBuilderMiddlewareProps): import('../headers/createHeaderBuilderMiddleware').HeaderBuilderMiddleware<{
9
- Authorization: `Bearer ${string}`;
9
+ authorization: `Bearer ${string}`;
10
10
  }>;
@@ -109,12 +109,6 @@ export declare const retrieveContributor: import('@lokalise/universal-ts-utils/n
109
109
  projectId: string;
110
110
  contributorId: number;
111
111
  }>, undefined, z.ZodIntersection<z.ZodUnion<[z.ZodUnion<[z.ZodObject<{
112
- Authorization: z.ZodString;
113
- }, "strip", z.ZodTypeAny, {
114
- Authorization: string;
115
- }, {
116
- Authorization: string;
117
- }>, z.ZodObject<{
118
112
  authorization: z.ZodString;
119
113
  }, "strip", z.ZodTypeAny, {
120
114
  authorization: string;
@@ -49,12 +49,6 @@ export declare const listProjectLanguages: import('@lokalise/universal-ts-utils/
49
49
  }, {
50
50
  projectId: string;
51
51
  }>, undefined, import('zod').ZodIntersection<import('zod').ZodUnion<[import('zod').ZodUnion<[import('zod').ZodObject<{
52
- Authorization: import('zod').ZodString;
53
- }, "strip", import('zod').ZodTypeAny, {
54
- Authorization: string;
55
- }, {
56
- Authorization: string;
57
- }>, import('zod').ZodObject<{
58
52
  authorization: import('zod').ZodString;
59
53
  }, "strip", import('zod').ZodTypeAny, {
60
54
  authorization: string;
@@ -145,12 +139,6 @@ export declare const bulkUpdateProjectLanguages: import('@lokalise/universal-ts-
145
139
  }, {
146
140
  projectId: string;
147
141
  }>, undefined, import('zod').ZodIntersection<import('zod').ZodUnion<[import('zod').ZodUnion<[import('zod').ZodObject<{
148
- Authorization: import('zod').ZodString;
149
- }, "strip", import('zod').ZodTypeAny, {
150
- Authorization: string;
151
- }, {
152
- Authorization: string;
153
- }>, import('zod').ZodObject<{
154
142
  authorization: import('zod').ZodString;
155
143
  }, "strip", import('zod').ZodTypeAny, {
156
144
  authorization: string;
@@ -332,12 +332,6 @@ export declare const createProject: import('@lokalise/universal-ts-utils/node').
332
332
  };
333
333
  } | undefined;
334
334
  }>, undefined, undefined, import('zod').ZodIntersection<import('zod').ZodUnion<[import('zod').ZodUnion<[import('zod').ZodObject<{
335
- Authorization: import('zod').ZodString;
336
- }, "strip", import('zod').ZodTypeAny, {
337
- Authorization: string;
338
- }, {
339
- Authorization: string;
340
- }>, import('zod').ZodObject<{
341
335
  authorization: import('zod').ZodString;
342
336
  }, "strip", import('zod').ZodTypeAny, {
343
337
  authorization: string;
@@ -832,12 +826,6 @@ export declare const listProjects: import('@lokalise/universal-ts-utils/node').G
832
826
  include_settings?: 0 | 1 | undefined;
833
827
  limit?: number | undefined;
834
828
  }>, import('zod').ZodIntersection<import('zod').ZodUnion<[import('zod').ZodUnion<[import('zod').ZodObject<{
835
- Authorization: import('zod').ZodString;
836
- }, "strip", import('zod').ZodTypeAny, {
837
- Authorization: string;
838
- }, {
839
- Authorization: string;
840
- }>, import('zod').ZodObject<{
841
829
  authorization: import('zod').ZodString;
842
830
  }, "strip", import('zod').ZodTypeAny, {
843
831
  authorization: string;
@@ -1198,12 +1186,6 @@ export declare const retrieveProject: import('@lokalise/universal-ts-utils/node'
1198
1186
  }, {
1199
1187
  project_id: string;
1200
1188
  }>, undefined, import('zod').ZodIntersection<import('zod').ZodUnion<[import('zod').ZodUnion<[import('zod').ZodObject<{
1201
- Authorization: import('zod').ZodString;
1202
- }, "strip", import('zod').ZodTypeAny, {
1203
- Authorization: string;
1204
- }, {
1205
- Authorization: string;
1206
- }>, import('zod').ZodObject<{
1207
1189
  authorization: import('zod').ZodString;
1208
1190
  }, "strip", import('zod').ZodTypeAny, {
1209
1191
  authorization: string;
@@ -1573,12 +1555,6 @@ export declare const updateProject: import('@lokalise/universal-ts-utils/node').
1573
1555
  }, {
1574
1556
  project_id: string;
1575
1557
  }>, undefined, import('zod').ZodIntersection<import('zod').ZodUnion<[import('zod').ZodUnion<[import('zod').ZodObject<{
1576
- Authorization: import('zod').ZodString;
1577
- }, "strip", import('zod').ZodTypeAny, {
1578
- Authorization: string;
1579
- }, {
1580
- Authorization: string;
1581
- }>, import('zod').ZodObject<{
1582
1558
  authorization: import('zod').ZodString;
1583
1559
  }, "strip", import('zod').ZodTypeAny, {
1584
1560
  authorization: string;
@@ -59,12 +59,6 @@ export declare const getTeamUser: import('@lokalise/universal-ts-utils/node').Ge
59
59
  userId: number;
60
60
  teamId: number;
61
61
  }>, undefined, z.ZodIntersection<z.ZodUnion<[z.ZodUnion<[z.ZodObject<{
62
- Authorization: z.ZodString;
63
- }, "strip", z.ZodTypeAny, {
64
- Authorization: string;
65
- }, {
66
- Authorization: string;
67
- }>, z.ZodObject<{
68
62
  authorization: z.ZodString;
69
63
  }, "strip", z.ZodTypeAny, {
70
64
  authorization: string;
@@ -1,11 +1,5 @@
1
1
  import { z } from 'zod';
2
2
  export declare const CONTRIBUTOR_API_BASE_HEADER_SCHEMA: z.ZodIntersection<z.ZodUnion<[z.ZodUnion<[z.ZodObject<{
3
- Authorization: z.ZodString;
4
- }, "strip", z.ZodTypeAny, {
5
- Authorization: string;
6
- }, {
7
- Authorization: string;
8
- }>, z.ZodObject<{
9
3
  authorization: z.ZodString;
10
4
  }, "strip", z.ZodTypeAny, {
11
5
  authorization: string;
@@ -1,11 +1,5 @@
1
1
  import { z } from 'zod';
2
2
  export declare const PROJECT_API_BASE_HEADERS_SCHEMA: z.ZodIntersection<z.ZodUnion<[z.ZodUnion<[z.ZodObject<{
3
- Authorization: z.ZodString;
4
- }, "strip", z.ZodTypeAny, {
5
- Authorization: string;
6
- }, {
7
- Authorization: string;
8
- }>, z.ZodObject<{
9
3
  authorization: z.ZodString;
10
4
  }, "strip", z.ZodTypeAny, {
11
5
  authorization: string;
@@ -1,11 +1,5 @@
1
1
  import { z } from 'zod';
2
2
  export declare const AUTHORIZATION_HEADER_SCHEMA: z.ZodUnion<[z.ZodObject<{
3
- Authorization: z.ZodString;
4
- }, "strip", z.ZodTypeAny, {
5
- Authorization: string;
6
- }, {
7
- Authorization: string;
8
- }>, z.ZodObject<{
9
3
  authorization: z.ZodString;
10
4
  }, "strip", z.ZodTypeAny, {
11
5
  authorization: string;
@@ -44,12 +38,6 @@ export declare const APU_TOKEN_AUTH_HEADER_SCHEMA: z.ZodUnion<[z.ZodObject<{
44
38
  'X-API-TOKEN': string;
45
39
  }>]>;
46
40
  export declare const AUTHENTICATION_HEADERS_SCHEMA: z.ZodUnion<[z.ZodUnion<[z.ZodObject<{
47
- Authorization: z.ZodString;
48
- }, "strip", z.ZodTypeAny, {
49
- Authorization: string;
50
- }, {
51
- Authorization: string;
52
- }>, z.ZodObject<{
53
41
  authorization: z.ZodString;
54
42
  }, "strip", z.ZodTypeAny, {
55
43
  authorization: string;
@@ -108,12 +96,6 @@ export declare const API_PLUGIN_HEADER_SCHEMA: z.ZodUnion<[z.ZodObject<{
108
96
  }>]>;
109
97
  export type ApiPluginHeader = z.infer<typeof API_PLUGIN_HEADER_SCHEMA>;
110
98
  export declare const BASE_API_ENDPOINT_HEADER_SCHEMA: z.ZodIntersection<z.ZodUnion<[z.ZodUnion<[z.ZodObject<{
111
- Authorization: z.ZodString;
112
- }, "strip", z.ZodTypeAny, {
113
- Authorization: string;
114
- }, {
115
- Authorization: string;
116
- }>, z.ZodObject<{
117
99
  authorization: z.ZodString;
118
100
  }, "strip", z.ZodTypeAny, {
119
101
  authorization: string;
@@ -1,11 +1,5 @@
1
1
  import { z } from 'zod';
2
2
  export declare const TEAM_USER_API_BASE_HEADERS_SCHEMA: z.ZodIntersection<z.ZodUnion<[z.ZodUnion<[z.ZodObject<{
3
- Authorization: z.ZodString;
4
- }, "strip", z.ZodTypeAny, {
5
- Authorization: string;
6
- }, {
7
- Authorization: string;
8
- }>, z.ZodObject<{
9
3
  authorization: z.ZodString;
10
4
  }, "strip", z.ZodTypeAny, {
11
5
  authorization: string;
@@ -11,12 +11,6 @@ export declare const JWT_TOKEN_SCHEMA: z.ZodObject<{
11
11
  }>;
12
12
  export type JwtToken = z.infer<typeof JWT_TOKEN_SCHEMA>;
13
13
  export declare const USER_TOKEN_REQUEST_HEADER_SCHEMA: z.ZodUnion<[z.ZodUnion<[z.ZodObject<{
14
- Authorization: z.ZodString;
15
- }, "strip", z.ZodTypeAny, {
16
- Authorization: string;
17
- }, {
18
- Authorization: string;
19
- }>, z.ZodObject<{
20
14
  authorization: z.ZodString;
21
15
  }, "strip", z.ZodTypeAny, {
22
16
  authorization: string;
@@ -21,12 +21,6 @@ export declare const getUserToken: import('@lokalise/universal-ts-utils/node').P
21
21
  }, {
22
22
  teamId: number;
23
23
  }>, undefined, z.ZodUnion<[z.ZodUnion<[z.ZodObject<{
24
- Authorization: z.ZodString;
25
- }, "strip", z.ZodTypeAny, {
26
- Authorization: string;
27
- }, {
28
- Authorization: string;
29
- }>, z.ZodObject<{
30
24
  authorization: z.ZodString;
31
25
  }, "strip", z.ZodTypeAny, {
32
26
  authorization: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lokalise/harmony",
3
- "version": "1.18.0",
3
+ "version": "1.18.1",
4
4
  "author": {
5
5
  "name": "Lokalise",
6
6
  "url": "https://lokalise.com/"