@lokalise/harmony 1.6.0-exp-jwtutils.4 → 1.6.0-exp-jwtutils.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/harmony.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var pt=Object.defineProperty;var vt=(e,t,n)=>t in e?pt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var xe=(e,t,n)=>vt(e,typeof t!="symbol"?t+"":t,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),b=require("react"),m=require("@lokalise/louis"),o=require("zod"),U=require("@lokalise/frontend-http-client"),fe=require("@tanstack/react-query"),Tt=require("@lokalise/universal-ts-utils/api-contracts/apiContracts"),Ve=require("@lokalise/universal-ts-utils/node"),Xe=require("date-fns"),jt=require("date-fns-tz");function yt(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const O=yt(b);var $=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ye(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var J,Se;function me(){if(Se)return J;Se=1;function e(t){var n=typeof t;return t!=null&&(n=="object"||n=="function")}return J=e,J}var W,Ne;function wt(){if(Ne)return W;Ne=1;var e=typeof $=="object"&&$&&$.Object===Object&&$;return W=e,W}var Q,Pe;function Ze(){if(Pe)return Q;Pe=1;var e=wt(),t=typeof self=="object"&&self&&self.Object===Object&&self,n=e||t||Function("return this")();return Q=n,Q}var V,Ee;function It(){if(Ee)return V;Ee=1;var e=Ze(),t=function(){return e.Date.now()};return V=t,V}var X,ke;function xt(){if(ke)return X;ke=1;var e=/\s/;function t(n){for(var r=n.length;r--&&e.test(n.charAt(r)););return r}return X=t,X}var Y,Ce;function St(){if(Ce)return Y;Ce=1;var e=xt(),t=/^\s+/;function n(r){return r&&r.slice(0,e(r)+1).replace(t,"")}return Y=n,Y}var Z,Re;function et(){if(Re)return Z;Re=1;var e=Ze(),t=e.Symbol;return Z=t,Z}var ee,ze;function Nt(){if(ze)return ee;ze=1;var e=et(),t=Object.prototype,n=t.hasOwnProperty,r=t.toString,s=e?e.toStringTag:void 0;function i(c){var u=n.call(c,s),d=c[s];try{c[s]=void 0;var l=!0}catch{}var f=r.call(c);return l&&(u?c[s]=d:delete c[s]),f}return ee=i,ee}var te,Ae;function Pt(){if(Ae)return te;Ae=1;var e=Object.prototype,t=e.toString;function n(r){return t.call(r)}return te=n,te}var ne,Le;function Et(){if(Le)return ne;Le=1;var e=et(),t=Nt(),n=Pt(),r="[object Null]",s="[object Undefined]",i=e?e.toStringTag:void 0;function c(u){return u==null?u===void 0?s:r:i&&i in Object(u)?t(u):n(u)}return ne=c,ne}var re,Oe;function kt(){if(Oe)return re;Oe=1;function e(t){return t!=null&&typeof t=="object"}return re=e,re}var ae,qe;function Ct(){if(qe)return ae;qe=1;var e=Et(),t=kt(),n="[object Symbol]";function r(s){return typeof s=="symbol"||t(s)&&e(s)==n}return ae=r,ae}var se,Ue;function Rt(){if(Ue)return se;Ue=1;var e=St(),t=me(),n=Ct(),r=NaN,s=/^[-+]0x[0-9a-f]+$/i,i=/^0b[01]+$/i,c=/^0o[0-7]+$/i,u=parseInt;function d(l){if(typeof l=="number")return l;if(n(l))return r;if(t(l)){var f=typeof l.valueOf=="function"?l.valueOf():l;l=t(f)?f+"":f}if(typeof l!="string")return l===0?l:+l;l=e(l);var p=i.test(l);return p||c.test(l)?u(l.slice(2),p?2:8):s.test(l)?r:+l}return se=d,se}var ie,Me;function tt(){if(Me)return ie;Me=1;var e=me(),t=It(),n=Rt(),r="Expected a function",s=Math.max,i=Math.min;function c(u,d,l){var f,p,j,y,_,w,x=0,N=!1,g=!1,S=!0;if(typeof u!="function")throw new TypeError(r);d=n(d)||0,e(l)&&(N=!!l.leading,g="maxWait"in l,j=g?s(n(l.maxWait)||0,d):j,S="trailing"in l?!!l.trailing:S);function T(h){var P=f,L=p;return f=p=void 0,x=h,y=u.apply(L,P),y}function v(h){return x=h,_=setTimeout(D,d),N?T(h):y}function B(h){var P=h-w,L=h-x,Ie=d-P;return g?i(Ie,j-L):Ie}function ye(h){var P=h-w,L=h-x;return w===void 0||P>=d||P<0||g&&L>=j}function D(){var h=t();if(ye(h))return we(h);_=setTimeout(D,B(h))}function we(h){return _=void 0,S&&f?T(h):(f=p=void 0,y)}function gt(){_!==void 0&&clearTimeout(_),x=0,f=w=p=_=void 0}function _t(){return _===void 0?y:we(t())}function H(){var h=t(),P=ye(h);if(f=arguments,p=this,w=h,P){if(_===void 0)return v(w);if(g)return clearTimeout(_),_=setTimeout(D,d),T(w)}return _===void 0&&(_=setTimeout(D,d)),y}return H.cancel=gt,H.flush=_t,H}return ie=c,ie}var zt=tt();const At=Ye(zt);var oe,Be;function Lt(){if(Be)return oe;Be=1;var e=tt(),t=me(),n="Expected a function";function r(s,i,c){var u=!0,d=!0;if(typeof s!="function")throw new TypeError(n);return t(c)&&(u="leading"in c?!!c.leading:u,d="trailing"in c?!!c.trailing:d),e(s,i,{leading:u,maxWait:i,trailing:d})}return oe=r,oe}var Ot=Lt();const qt=Ye(Ot),Ut=(e,t,n,r)=>{switch(t){case"debounce":return At(e,n,r);case"throttle":return qt(e,n,r);default:return e}},Mt=e=>{const t=O.useRef(e);return O.useEffect(()=>{t.current=e}),O.useMemo(()=>(...n)=>{var r;return(r=t.current)===null||r===void 0?void 0:r.call(t,...n)},[])},Bt=e=>{const[t,n]=O.useState((e==null?void 0:e.current)||null);return e&&setTimeout(()=>{e.current!==t&&n(e.current)},0),{refProxy:O.useMemo(()=>new Proxy(s=>{s!==t&&n(s)},{get(s,i){return i==="current"?t:s[i]},set(s,i,c){return i==="current"?n(c):s[i]=c,!0}}),[t]),refElement:t,setRefElement:n}},Dt=(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 $t({skipOnMount:e=!1,refreshMode:t,refreshRate:n=1e3,refreshOptions:r,handleWidth:s=!0,handleHeight:i=!0,targetRef:c,observerOptions:u,onResize:d}={}){const l=b.useRef(e),f=Mt(d),[p,j]=b.useState({width:void 0,height:void 0}),{refProxy:y,refElement:_}=Bt(c),{box:w}=u||{},x=b.useCallback(g=>{if(!s&&!i)return;if(l.current){l.current=!1;return}const S=(T,v)=>s&&T.width!==v.width||i&&T.height!==v.height;g.forEach(T=>{const v=Dt(T,w);j(B=>S(B,v)?(f==null||f({width:v.width,height:v.height,entry:T}),v):B)})},[s,i,l,w]),N=b.useCallback(Ut(x,t,n,r),[x,t,n,r]);return b.useEffect(()=>{let g;return _?(g=new window.ResizeObserver(N),g.observe(_,u)):(p.width||p.height)&&(f==null||f({width:null,height:null,entry:null}),j({width:void 0,height:void 0})),()=>{var S,T,v;(S=g==null?void 0:g.disconnect)===null||S===void 0||S.call(g),(v=(T=N).cancel)===null||v===void 0||v.call(T)}},[N,_]),Object.assign({ref:y},p)}function nt(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t<s;t++)e[t]&&(n=nt(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function C(){for(var e,t,n=0,r="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=nt(e))&&(r&&(r+=" "),r+=t);return r}const Ft="_headerContainer_1cubo_1",Gt="_navigationTabList_1cubo_8",Kt="_navigationTab_1cubo_8",Ht="_headerContent_1cubo_34",Jt="_staticEnabled_1cubo_50",z={headerContainer:Ft,navigationTabList:Gt,navigationTab:Kt,headerContent:Ht,staticEnabled:Jt},Wt=77,q=({sticky:e,children:t})=>{const{ref:n,height:r}=$t({refreshMode:"debounce",refreshRate:0}),[s,i]=b.useState(!1),c=()=>s?!e:!0;b.useEffect(()=>{const d=()=>{i(window.scrollY>0)};return window.addEventListener("scroll",d),()=>window.removeEventListener("scroll",d)},[]);const u=`${r||Wt}px`;return a.jsx("div",{style:{minHeight:u},children:a.jsx("div",{children:a.jsxs("div",{ref:n,className:C(z.headerContent,{[z.staticEnabled]:c()}),children:[a.jsx(q.Header,{}),a.jsx(q.Tabs,{}),t]})})})};q.Header=({children:e})=>a.jsx("div",{className:z.headerContainer,children:e});q.Tabs=({children:e})=>a.jsx("div",{className:"flex justify-between gap-2 nowrap",children:e});const Qt="_sidebarContainer_bmdti_1",Vt={sidebarContainer:Qt},Xt="_logoLink_1baxb_1",Yt={logoLink:Xt},Zt=({src:e,href:t="/",ariaLabel:n="Home",alt:r="Lokalise"})=>a.jsx("a",{className:Yt.logoLink,href:t,"aria-label":n,children:a.jsx("img",{src:e,alt:r})}),en="_link_1weq1_1",tn="_active_1weq1_18",De={link:en,active:tn},nn=({label:e,to:t,icon:n})=>a.jsx(m.Tooltip,{placement:"right",tooltip:e,children:a.jsx(m.Link,{className:C(De.link,{[De.active]:window.location.pathname.startsWith(t)}),href:t,children:a.jsx(n,{size:"25px"})})}),rn="_dropdownButton_hwh0c_1",an="_dropdownButtonActive_hwh0c_18",$e={dropdownButton:rn,dropdownButtonActive:an},sn=({children:e,icon:t})=>a.jsx(m.Menu,{menuButton:({opened:n})=>a.jsx(m.Tooltip,{placement:"right",tooltip:"Help",children:a.jsx("button",{type:"button",className:C($e.dropdownButton,{[$e.dropdownButtonActive]:n}),children:a.jsx(t,{size:"25px"})})}),children:a.jsx(m.MenuList,{placement:"right-start",children:e})}),on="_iconContainer_nz34m_1",cn={iconContainer:on},rt=({className:e=""})=>a.jsx("div",{"aria-label":"Upgrade Icon",className:C(cn.iconContainer,"flex-row","items-center","justify-center",e),children:a.jsx(m.CaretUpIcon,{})}),ln="_menuContainer_wbu3u_5",un="_profileButton_wbu3u_16",dn="_profileImage_wbu3u_29",fn="_profileImageHighlight_wbu3u_37",mn="_profileImageUpgradeIcon_wbu3u_41",hn="_userIconWrapper_wbu3u_47",E={menuContainer:ln,profileButton:un,profileImage:dn,profileImageHighlight:fn,profileImageUpgradeIcon:mn,userIconWrapper:hn},at=b.createContext({}),M=()=>b.useContext(at),bn=({children:e})=>{const{currentTeam:t,otherTeams:n,showUpgradeCta:r,showBillingButton:s,allowTeamCreation:i,isLimitedView:c,isProviderAlpha:u,canAccessTeamSettings:d,isEndOfTrialActive:l,isTeamSuspended:f}=M();return a.jsx(m.Menu,{menuButton:()=>a.jsxs("button",{className:E.profileButton,"aria-label":"Profile menu",type:"button",children:[t!=null&&t.logoUrl?a.jsx("img",{src:t.logoUrl,className:C(E.profileImage,{[E.profileImageHighlight]:r}),alt:"Team Logo"}):a.jsx("div",{className:C(E.userIconWrapper,"flex-row","align-center","items-center",{[E.profileImageHighlight]:r}),children:a.jsx(m.UserIcon,{size:"25px"})}),r&&a.jsx(rt,{className:E.profileImageUpgradeIcon})]}),children:a.jsx(m.MenuList,{placement:"right-end",className:E.menuContainer,children:e({allowTeamCreation:i,otherTeams:n,isLimitedView:c,canAccessTeamSettings:d,isEndOfTrialActive:l,isTeamSuspended:f,showBillingButton:s,isProviderAlpha:u})})})},he=0,st=9999,it=[150,151,250,251],ot=[152,153,252,253],ct=[154,155,157,158,254,255,258,354,355,358],lt=[156,159,160,256,259,260],be=9998,K=e=>e===he,ge=e=>e===st,gn=e=>it.includes(e),_n=e=>ot.includes(e),pn=e=>ct.includes(e),vn=e=>lt.includes(e),Tn=e=>e>he&&e<be,jn=e=>e===be,yn=/\n/,Fe=(e,t,n)=>e.split(t).flatMap((r,s)=>s!==0?[b.cloneElement(n,{key:Math.random().toString(32).slice(0,10)}),r]:r),wn=(e,t,n)=>typeof e=="string"?Fe(e,t,n):e.flatMap(r=>typeof r=="string"?Fe(r,t,n):r),In=e=>wn(e,yn,a.jsx("br",{})),xn=/(\b(https?|):\/\/[-a-zA-Zа-яА-Я0-9+&@#/%?=~_|!:,.;]*[-a-zA-Zа-яА-Я0-9+&@#/%=~_|])/gi,Sn=e=>e.match(xn)??[],Ge=(e,t,n)=>{const r=e.split(t);if(r.length===1)return e;const s=[];return r[0]!==""&&s.push(r[0]),r.shift(),r[r.length-1]===""&&r.pop(),s.push(a.jsx("a",{href:t,target:"_blank",rel:"noreferrer noopener",children:t},t+n)),s.push(r.join(t)),s.filter(i=>i!=="")},Ke=e=>{const t=Sn(e);return t!=null&&t.length?t.reduce((n,r,s)=>typeof n=="string"?Ge(n,r,s):n.flatMap(i=>typeof i=="string"?Ge(i,r,s):i),e):e},Nn=e=>typeof e=="string"?Ke(e):e.flatMap(t=>typeof t=="string"?Ke(t):t,e),Pn=(e,t="PP")=>Xe.format(e,t),En=(e,t,n="PP")=>Xe.format(jt.toZonedTime(e,t),n),kn=e=>{b.useEffect(e,[])},Cn=({children:e,config:t})=>{const{teams:n,currentTeamId:r,planId:s,isLimitedView:i,isTeamSuspended:c,canAccessTeamSettings:u,isEndOfTrialActive:d}=t,l=n.find(g=>g.id===r),f=n.filter(g=>g.id!==r),p=(l==null?void 0:l.role)??"",j=["biller","owner"].includes(p),y=K(s)||ge(s),N={...t,currentTeam:l,otherTeams:f,canChangeBilling:j,isOnFreeOrTrialPlan:y,showUpgradeCta:!i&&y&&j&&!c,showBillingButton:!i&&u&&j,allowTeamCreation:!i&&!d};return a.jsx(at.Provider,{value:N,children:e})},Rn=({config:e,children:t})=>a.jsx(Cn,{config:e,children:a.jsx(bn,{children:t})}),zn="_container_q5pot_1",An="_profileEmail_q5pot_5",He={container:zn,profileEmail:An},Ln=({href:e,onClick:t,userEmail:n,hideBottomDivider:r})=>{const{isEndOfTrialActive:s,isTeamSuspended:i}=M();return s||i?null:a.jsxs(a.Fragment,{children:[a.jsx(m.MenuItem,{href:e,onClick:()=>{t==null||t()},children:a.jsxs("div",{className:`flex-col ${He.container}`,children:[a.jsx("span",{children:"Profile Settings"}),a.jsx("span",{className:He.profileEmail,children:n})]})}),!r&&a.jsx(m.MenuDivider,{})]})},On="_wrapper_15d85_1",qn="_profileImage_15d85_14",Un="_teamName_15d85_22",Mn="_planLabel_15d85_29",Bn="_membership_15d85_38",Dn="_defaultProfileImage_15d85_44",R={wrapper:On,profileImage:qn,teamName:Un,planLabel:Mn,membership:Bn,defaultProfileImage:Dn},ut=({team:e,onClick:t,hidePlanLabel:n})=>{const{currentTeam:r,planId:s}=M(),i=e||r;if(!i)return null;const c=K(s)?"Free":ge(s)?"Trial":void 0,u=t?m.MenuItem:"div";return a.jsxs(u,{className:`flex-row gap-2 flex-nowrap items-center ${R.wrapper}`,...t&&{onClick:()=>t(i)},children:[i.logoUrl?a.jsx("img",{className:R.profileImage,src:i.logoUrl,alt:"Team Logo"}):a.jsx("span",{className:`flex-row justify-center items-center ${R.defaultProfileImage}`,children:a.jsx(m.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:R.teamName,children:i.name}),c&&!n&&a.jsx("span",{className:`flex-row justify-center items-center ${R.planLabel}`,children:c})]}),a.jsx("span",{className:R.membership,children:i.role})]})]})},$n="_teamsContainer_1t68g_1",Fn={teamsContainer:$n},Gn=({onSwitchTeam:e})=>{const{otherTeams:t}=M();return t.length===0?null:a.jsx("div",{className:`flex-col items-stretch ${Fn.teamsContainer}`,children:t.map(n=>a.jsx(ut,{team:n,onClick:e,hidePlanLabel:!0},n.id))})},Kn="_container_1u995_1",Hn="_planCta_1u995_15",Jn="_upgradeIconWrapper_1u995_19",ce={container:Kn,planCta:Hn,upgradeIconWrapper:Jn},Wn=({upgradeOptionHref:e})=>{const{planId:t,trialDaysLeft:n,showUpgradeCta:r}=M();if(!r)return null;const c=K(t)?"Your team is currently on the Free plan":`Free trial ends in ${n} ${n===1?"day":"days"}`;return a.jsxs(m.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(rt,{}),a.jsx("span",{children:"See upgrade options"})]})]})},I=({children:e,...t})=>a.jsx("nav",{...t,className:Vt.sidebarContainer,children:e});I.Top=({children:e})=>a.jsx("div",{children:e});I.Bottom=({children:e})=>a.jsx("div",{children:e});I.Avatar=Zt;I.IconLink=nn;I.Menu=sn;I.ProfileMenu=Rn;I.TeamSwitch=Gn;I.TeamMenuItem=ut;I.UpgradeMenuItem=Wn;I.ProfileSettingsMenuItem=Ln;const Qn="_breadcrumbsItem_1hm6a_1",Vn="_breadcrumbs_1hm6a_1",Je={breadcrumbsItem:Qn,breadcrumbs:Vn},Xn=({items:e})=>a.jsx("nav",{"aria-label":"breadcrumb",className:Je.breadcrumbs,children:e.map((t,n)=>a.jsxs(b.Fragment,{children:[a.jsx(m.Link,{className:Je.breadcrumbsItem,href:t.link,rel:"noreferrer",children:t.name}),n<e.length-1&&a.jsx("span",{children:" — "})]},`${t.link}-${t.name}`))}),Yn=({items:e})=>a.jsx(a.Fragment,{children:e.map((t,n)=>a.jsxs(b.Fragment,{children:[!!n&&t.some(r=>r.visible)&&a.jsx(m.MenuDivider,{}),t.filter(({visible:r})=>r).map(({link:r,label:s,onClick:i})=>a.jsx(m.MenuItem,{href:r||"#","aria-label":s,onClick:i,children:s},s))]},t[0].label))}),Zn="_badge_1pc1v_1",er="_tag_1pc1v_15",tr="_withNavLinkStyle_1pc1v_42 _withLinkStyle_1pc1v_21",nr="_disabled_1pc1v_57",rr="_projectNavigationItem_1pc1v_61",ar="_projectNavigationItemDisabled_1pc1v_67",k={badge:Zn,tag:er,withNavLinkStyle:tr,disabled:nr,projectNavigationItem:rr,projectNavigationItemDisabled:ar},We=({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:k.badge,"aria-label":`${t} items requiring attention`,children:t>9?"9+":t})]}),!!n&&a.jsx(m.Tag,{className:k.tag,children:n})]}),le=b.forwardRef(({label:e,href:t="",disabled:n=!1,badge:r,onClick:s,novel:i},c)=>a.jsx(m.Tooltip,{tooltip:"You do not have access to this function",show:n,children:a.jsx("div",{className:n?k.projectNavigationItemDisabled:k.projectNavigationItem,children:s||n||!t?a.jsx("button",{type:"button",ref:c,className:C(k.withNavLinkStyle,{[k.disabled]:n}),disabled:n,onClick:s,children:a.jsx(We,{label:e,badge:r,novel:i})}):a.jsx("a",{href:t,className:k.withNavLinkStyle,children:a.jsx(We,{label:e,badge:r,novel:i})})})}));le.displayName="NavigationTabsItem";const sr=e=>(e==null?void 0:e.some(t=>t.some(n=>n.visible)))??!1,ir=e=>e.visible&&(!e.dropdown||sr(e.dropdown)),or=({navigation:e,activeItem:t})=>a.jsx("nav",{"aria-label":"Project",children:a.jsx("ul",{className:z.navigationTabList,"aria-orientation":"horizontal",children:e.filter(ir).map(n=>{var r,s,i;return n.dropdown?a.jsx("li",{className:z.navigationTab,"data-testid":n.key,"aria-selected":(r=n.isActive)==null?void 0:r.call(n,t),children:a.jsx(m.Menu,{menuButton:({opened:c})=>a.jsx(le,{label:n.label,disabled:n.disabled,active:c}),children:a.jsx(m.MenuList,{children:a.jsx(Yn,{items:n.dropdown})})})},n.key):a.jsx("li",{className:z.navigationTab,"data-testid":n.key,"aria-selected":(s=n.isActive)==null?void 0:s.call(n,t),children:a.jsx(le,{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)})})}),dt=o.z.union([o.z.literal("owner"),o.z.literal("admin"),o.z.literal("biller"),o.z.literal("member")]),cr=o.z.object({userId:o.z.number(),teamId:o.z.number(),userTeamRole:dt,userEmail:o.z.string().email(),userCurrentTeamId:o.z.number(),planId:o.z.number(),planName:o.z.string(),isProviderAlpha:o.z.boolean(),isFullyAuthenticated:o.z.boolean(),exp:o.z.number()});function ft(e){try{const t=e.split(".")[1],n=atob(t);return cr.parse(JSON.parse(n))}catch{return}}const G=class G extends CustomEvent{constructor(t){super(G.eventName,{detail:{token:t,payload:ft(t.accessToken)}})}};xe(G,"eventName","new-jwt-issued");let A=G;const lr=o.z.object({accessToken:o.z.string(),refreshToken:o.z.string()}),_e=Tt.buildPayloadRoute({description:"Takes a teamId and returns a JWT token access and refresh token for the user",method:"post",requestPathParamsSchema:o.z.object({teamId:o.z.number()}),pathResolver:e=>`/team/${e.teamId}/actions/get-user-token`,requestHeaderSchema:o.z.object({Authorization:o.z.string().optional(),"X-CSRF-Token":o.z.string().optional()}),requestBodySchema:o.z.undefined(),successResponseBodySchema:lr}),pe={teamKey:e=>["getUserToken",e]},mt=(e,t,n)=>fe.useQuery({...n,queryFn:({queryKey:[r,s]})=>U.sendByPayloadRoute(e,_e,{pathParams:{teamId:s},headers:{}}),queryKey:pe.teamKey(t)}),ur=pe;function dr(e,t){const n=mt(e,t),r=b.useRef();return b.useEffect(()=>{n.data&&n.data.accessToken!==r.current&&(window.dispatchEvent(new A(n.data)),r.current=n.data.accessToken)},[n.data]),n}function ve(){const[e,t]=b.useState();return b.useEffect(()=>{const n=r=>{t(r.detail.payload)};return window.addEventListener(A.eventName,n),()=>{window.removeEventListener(A.eventName,n)}},[]),e}const fr=o.z.object({user_id:o.z.number(),email:o.z.string().email(),fullname:o.z.string(),created_at:o.z.string(),created_at_timestamp:o.z.number(),role:dt}),mr=o.z.object({team_id:o.z.number(),team_user:fr}),hr=Ve.buildGetRoute({description:"Get the details of a team user",requestPathParamsSchema:o.z.object({teamId:o.z.number(),userId:o.z.number()}),pathResolver:({teamId:e,userId:t})=>`/teams/${e}/users/${t}`,successResponseBodySchema:mr}),Te={teamUserKey:(e,t)=>["GetTeamUsers",e,t]},ht=(e,t,n,r)=>fe.useQuery({...r,queryKey:Te.teamUserKey(t,n),queryFn:({queryKey:[s,i,c]})=>U.sendByGetRoute(e,hr,{pathParams:{teamId:i,userId:c}})}),br=Te;function gr(e){const t=ve();return ht(e,(t==null?void 0:t.teamId)??0,(t==null?void 0:t.userId)??0,{enabled:t!==void 0})}const _r=o.z.object({lang_id:o.z.number(),lang_iso:o.z.string(),lang_name:o.z.string(),is_writable:o.z.union([o.z.literal(0),o.z.literal(1)])}),pr=o.z.object({user_id:o.z.number(),email:o.z.string().email(),fullname:o.z.string(),created_at:o.z.string(),created_at_timestamp:o.z.number(),admin_rights:o.z.array(o.z.string()),languages:o.z.array(_r),is_admin:o.z.boolean(),is_reviewer:o.z.boolean()}),vr=o.z.object({project_id:o.z.string(),contributors:o.z.array(pr)}),Tr=Ve.buildGetRoute({description:"Get the details of a project contributor",requestPathParamsSchema:o.z.object({projectId:o.z.string(),contributorId:o.z.number()}),pathResolver:({projectId:e,contributorId:t})=>`/projects/${e}/contributors/${t}`,successResponseBodySchema:vr}),je={projectUserKey:(e,t)=>["RetrieveContributor",e,t]},bt=(e,t,n,r)=>fe.useQuery({...r,queryKey:je.projectUserKey(n,t),queryFn:({queryKey:[s,i,c]})=>U.sendByGetRoute(e,Tr,{pathParams:{projectId:i,contributorId:c}})}),jr=je;function yr(e,t){const n=ve();return bt(e,(n==null?void 0:n.userId)??0,t,{enabled:n!==void 0})}function F(e){return{Authorization:`Bearer ${e}`}}function wr(e,t){return n=>async(r,s)=>{var u;const i=await t.getCachedJwtToken();if(i===void 0)return n(r,s);const c=await n(r,{...s,headers:{...s.headers,...F(i.accessToken)}});if(i&&(c.status===401||c.status===403)){const d=ft(i.accessToken);if(!d)return c;const l=await U.sendByPayloadRoute(e,_e,{pathParams:{teamId:d.teamId},headers:F(i.refreshToken)});return await((u=t.onNewJwtTokenIssued)==null?void 0:u.call(t,l)),n(r,{...s,headers:{...s.headers,...F(l.accessToken)}})}return c}}const ue={wretch:{jwtAuth(e){return this.middlewares([wr(this,e)])}}};function Ir(e,t){return n=>async(r,s)=>{var d;if(await t.getCachedJwtToken()!==void 0)return n(r,s);const c=await t.getCsrfToken();if(c===void 0)return n(r,s);const u=await U.sendByPayloadRoute(e,_e,{pathParams:{teamId:await t.getTeamId()},headers:{"X-CSRF-Token":c}});return await((d=t.onNewJwtTokenIssued)==null?void 0:d.call(t,u)),n(r,{...s,headers:{...s.headers,...F(u.accessToken)}})}}function xr(){const e=de("accessToken"),t=de("refreshToken");return!e||!t?Promise.resolve(void 0):Promise.resolve({accessToken:e,refreshToken:t})}function Sr(){return Promise.resolve(de("csrf_token"))}function de(e){var n;const t=document.cookie.split(";").find(r=>r.trim().startsWith(e));return(n=t==null?void 0:t.split("="))==null?void 0:n[1]}const Nr={wretch:{jwtAuth(e){return this.addon(ue).jwtAuth(Qe(e))},jwtAuthWithClassicSessionPromotion(e){const t=Qe(e);return this.addon(ue).jwtAuth(t).middlewares([Ir(this,t)])}}};function Qe(e){return{...e,getCachedJwtToken:e.getCachedJwtToken??xr,getCsrfToken:"getCsrfToken"in e?e.getCsrfToken:Sr,onNewJwtTokenIssued:t=>{var n;return window.dispatchEvent(new A(t)),((n=e.onNewJwtTokenIssued)==null?void 0:n.call(e,t))??Promise.resolve()}}}exports.Breadcrumbs=Xn;exports.BrowserJwtAuthAddon=Nr;exports.ENTERPRISE_OPENSOURCE_PLAN_ID=be;exports.ENTERPRISE_PLAN_IDS=lt;exports.ESSENTIAL_PLAN_IDS=ot;exports.FREE_PLAN_ID=he;exports.JwtAuthAddon=ue;exports.NavigationPanel=q;exports.NavigationTabs=or;exports.PRO_PLAN_IDS=ct;exports.START_PLAN_IDS=it;exports.Sidebar=I;exports.TRIAL_PLAN_ID=st;exports.authenticatedContributorKeys=jr;exports.authenticatedUserKeys=br;exports.convertNewLineToBreakTag=In;exports.formatDate=Pn;exports.formatDateTz=En;exports.getPromotedClassicSessionJwtKey=ur;exports.getTeamUsersQueryKey=Te;exports.getUserTokenKey=pe;exports.isEnterpriseOpenSourcePlan=jn;exports.isEnterprisePlan=vn;exports.isEssentialPlan=_n;exports.isFreePlan=K;exports.isPaidPlan=Tn;exports.isProPlan=pn;exports.isStartPlan=gn;exports.isTrialPlan=ge;exports.makeUrlClickable=Nn;exports.retrieveContributorKeys=je;exports.useAuthenticatedProjectContributor=yr;exports.useAuthenticatedUser=gr;exports.useEffectOnce=kn;exports.useGetPromotedClassicSessionJwtQuery=dr;exports.useGetUserTokenQuery=mt;exports.useJwtTokenPayload=ve;exports.useRetrieveContributorQuery=bt;exports.userGetTeamUsersQuery=ht;
1
+ "use strict";var pt=Object.defineProperty;var vt=(e,t,n)=>t in e?pt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var xe=(e,t,n)=>vt(e,typeof t!="symbol"?t+"":t,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),b=require("react"),m=require("@lokalise/louis"),o=require("zod"),U=require("@lokalise/frontend-http-client"),fe=require("@tanstack/react-query"),Tt=require("@lokalise/universal-ts-utils/api-contracts/apiContracts"),Ve=require("@lokalise/universal-ts-utils/node"),Ye=require("date-fns"),jt=require("date-fns-tz");function yt(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const O=yt(b);var $=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ze(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var J,Se;function me(){if(Se)return J;Se=1;function e(t){var n=typeof t;return t!=null&&(n=="object"||n=="function")}return J=e,J}var W,Ne;function wt(){if(Ne)return W;Ne=1;var e=typeof $=="object"&&$&&$.Object===Object&&$;return W=e,W}var Q,Pe;function Xe(){if(Pe)return Q;Pe=1;var e=wt(),t=typeof self=="object"&&self&&self.Object===Object&&self,n=e||t||Function("return this")();return Q=n,Q}var V,Ee;function It(){if(Ee)return V;Ee=1;var e=Xe(),t=function(){return e.Date.now()};return V=t,V}var Y,ke;function xt(){if(ke)return Y;ke=1;var e=/\s/;function t(n){for(var r=n.length;r--&&e.test(n.charAt(r)););return r}return Y=t,Y}var Z,Ce;function St(){if(Ce)return Z;Ce=1;var e=xt(),t=/^\s+/;function n(r){return r&&r.slice(0,e(r)+1).replace(t,"")}return Z=n,Z}var X,Re;function et(){if(Re)return X;Re=1;var e=Xe(),t=e.Symbol;return X=t,X}var ee,ze;function Nt(){if(ze)return ee;ze=1;var e=et(),t=Object.prototype,n=t.hasOwnProperty,r=t.toString,s=e?e.toStringTag:void 0;function i(c){var u=n.call(c,s),d=c[s];try{c[s]=void 0;var l=!0}catch{}var f=r.call(c);return l&&(u?c[s]=d:delete c[s]),f}return ee=i,ee}var te,Ae;function Pt(){if(Ae)return te;Ae=1;var e=Object.prototype,t=e.toString;function n(r){return t.call(r)}return te=n,te}var ne,Le;function Et(){if(Le)return ne;Le=1;var e=et(),t=Nt(),n=Pt(),r="[object Null]",s="[object Undefined]",i=e?e.toStringTag:void 0;function c(u){return u==null?u===void 0?s:r:i&&i in Object(u)?t(u):n(u)}return ne=c,ne}var re,Oe;function kt(){if(Oe)return re;Oe=1;function e(t){return t!=null&&typeof t=="object"}return re=e,re}var ae,qe;function Ct(){if(qe)return ae;qe=1;var e=Et(),t=kt(),n="[object Symbol]";function r(s){return typeof s=="symbol"||t(s)&&e(s)==n}return ae=r,ae}var se,Ue;function Rt(){if(Ue)return se;Ue=1;var e=St(),t=me(),n=Ct(),r=NaN,s=/^[-+]0x[0-9a-f]+$/i,i=/^0b[01]+$/i,c=/^0o[0-7]+$/i,u=parseInt;function d(l){if(typeof l=="number")return l;if(n(l))return r;if(t(l)){var f=typeof l.valueOf=="function"?l.valueOf():l;l=t(f)?f+"":f}if(typeof l!="string")return l===0?l:+l;l=e(l);var p=i.test(l);return p||c.test(l)?u(l.slice(2),p?2:8):s.test(l)?r:+l}return se=d,se}var ie,Me;function tt(){if(Me)return ie;Me=1;var e=me(),t=It(),n=Rt(),r="Expected a function",s=Math.max,i=Math.min;function c(u,d,l){var f,p,j,y,_,w,x=0,N=!1,g=!1,S=!0;if(typeof u!="function")throw new TypeError(r);d=n(d)||0,e(l)&&(N=!!l.leading,g="maxWait"in l,j=g?s(n(l.maxWait)||0,d):j,S="trailing"in l?!!l.trailing:S);function T(h){var P=f,L=p;return f=p=void 0,x=h,y=u.apply(L,P),y}function v(h){return x=h,_=setTimeout(D,d),N?T(h):y}function B(h){var P=h-w,L=h-x,Ie=d-P;return g?i(Ie,j-L):Ie}function ye(h){var P=h-w,L=h-x;return w===void 0||P>=d||P<0||g&&L>=j}function D(){var h=t();if(ye(h))return we(h);_=setTimeout(D,B(h))}function we(h){return _=void 0,S&&f?T(h):(f=p=void 0,y)}function gt(){_!==void 0&&clearTimeout(_),x=0,f=w=p=_=void 0}function _t(){return _===void 0?y:we(t())}function H(){var h=t(),P=ye(h);if(f=arguments,p=this,w=h,P){if(_===void 0)return v(w);if(g)return clearTimeout(_),_=setTimeout(D,d),T(w)}return _===void 0&&(_=setTimeout(D,d)),y}return H.cancel=gt,H.flush=_t,H}return ie=c,ie}var zt=tt();const At=Ze(zt);var oe,Be;function Lt(){if(Be)return oe;Be=1;var e=tt(),t=me(),n="Expected a function";function r(s,i,c){var u=!0,d=!0;if(typeof s!="function")throw new TypeError(n);return t(c)&&(u="leading"in c?!!c.leading:u,d="trailing"in c?!!c.trailing:d),e(s,i,{leading:u,maxWait:i,trailing:d})}return oe=r,oe}var Ot=Lt();const qt=Ze(Ot),Ut=(e,t,n,r)=>{switch(t){case"debounce":return At(e,n,r);case"throttle":return qt(e,n,r);default:return e}},Mt=e=>{const t=O.useRef(e);return O.useEffect(()=>{t.current=e}),O.useMemo(()=>(...n)=>{var r;return(r=t.current)===null||r===void 0?void 0:r.call(t,...n)},[])},Bt=e=>{const[t,n]=O.useState((e==null?void 0:e.current)||null);return e&&setTimeout(()=>{e.current!==t&&n(e.current)},0),{refProxy:O.useMemo(()=>new Proxy(s=>{s!==t&&n(s)},{get(s,i){return i==="current"?t:s[i]},set(s,i,c){return i==="current"?n(c):s[i]=c,!0}}),[t]),refElement:t,setRefElement:n}},Dt=(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 $t({skipOnMount:e=!1,refreshMode:t,refreshRate:n=1e3,refreshOptions:r,handleWidth:s=!0,handleHeight:i=!0,targetRef:c,observerOptions:u,onResize:d}={}){const l=b.useRef(e),f=Mt(d),[p,j]=b.useState({width:void 0,height:void 0}),{refProxy:y,refElement:_}=Bt(c),{box:w}=u||{},x=b.useCallback(g=>{if(!s&&!i)return;if(l.current){l.current=!1;return}const S=(T,v)=>s&&T.width!==v.width||i&&T.height!==v.height;g.forEach(T=>{const v=Dt(T,w);j(B=>S(B,v)?(f==null||f({width:v.width,height:v.height,entry:T}),v):B)})},[s,i,l,w]),N=b.useCallback(Ut(x,t,n,r),[x,t,n,r]);return b.useEffect(()=>{let g;return _?(g=new window.ResizeObserver(N),g.observe(_,u)):(p.width||p.height)&&(f==null||f({width:null,height:null,entry:null}),j({width:void 0,height:void 0})),()=>{var S,T,v;(S=g==null?void 0:g.disconnect)===null||S===void 0||S.call(g),(v=(T=N).cancel)===null||v===void 0||v.call(T)}},[N,_]),Object.assign({ref:y},p)}function nt(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t<s;t++)e[t]&&(n=nt(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function C(){for(var e,t,n=0,r="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=nt(e))&&(r&&(r+=" "),r+=t);return r}const Ft="_headerContainer_1cubo_1",Gt="_navigationTabList_1cubo_8",Kt="_navigationTab_1cubo_8",Ht="_headerContent_1cubo_34",Jt="_staticEnabled_1cubo_50",z={headerContainer:Ft,navigationTabList:Gt,navigationTab:Kt,headerContent:Ht,staticEnabled:Jt},Wt=77,q=({sticky:e,children:t})=>{const{ref:n,height:r}=$t({refreshMode:"debounce",refreshRate:0}),[s,i]=b.useState(!1),c=()=>s?!e:!0;b.useEffect(()=>{const d=()=>{i(window.scrollY>0)};return window.addEventListener("scroll",d),()=>window.removeEventListener("scroll",d)},[]);const u=`${r||Wt}px`;return a.jsx("div",{style:{minHeight:u},children:a.jsx("div",{children:a.jsxs("div",{ref:n,className:C(z.headerContent,{[z.staticEnabled]:c()}),children:[a.jsx(q.Header,{}),a.jsx(q.Tabs,{}),t]})})})};q.Header=({children:e})=>a.jsx("div",{className:z.headerContainer,children:e});q.Tabs=({children:e})=>a.jsx("div",{className:"flex justify-between gap-2 nowrap",children:e});const Qt="_sidebarContainer_bmdti_1",Vt={sidebarContainer:Qt},Yt="_logoLink_1baxb_1",Zt={logoLink:Yt},Xt=({src:e,href:t="/",ariaLabel:n="Home",alt:r="Lokalise"})=>a.jsx("a",{className:Zt.logoLink,href:t,"aria-label":n,children:a.jsx("img",{src:e,alt:r})}),en="_link_1weq1_1",tn="_active_1weq1_18",De={link:en,active:tn},nn=({label:e,to:t,icon:n})=>a.jsx(m.Tooltip,{placement:"right",tooltip:e,children:a.jsx(m.Link,{className:C(De.link,{[De.active]:window.location.pathname.startsWith(t)}),href:t,children:a.jsx(n,{size:"25px"})})}),rn="_dropdownButton_hwh0c_1",an="_dropdownButtonActive_hwh0c_18",$e={dropdownButton:rn,dropdownButtonActive:an},sn=({children:e,icon:t})=>a.jsx(m.Menu,{menuButton:({opened:n})=>a.jsx(m.Tooltip,{placement:"right",tooltip:"Help",children:a.jsx("button",{type:"button",className:C($e.dropdownButton,{[$e.dropdownButtonActive]:n}),children:a.jsx(t,{size:"25px"})})}),children:a.jsx(m.MenuList,{placement:"right-start",children:e})}),on="_iconContainer_nz34m_1",cn={iconContainer:on},rt=({className:e=""})=>a.jsx("div",{"aria-label":"Upgrade Icon",className:C(cn.iconContainer,"flex-row","items-center","justify-center",e),children:a.jsx(m.CaretUpIcon,{})}),ln="_menuContainer_wbu3u_5",un="_profileButton_wbu3u_16",dn="_profileImage_wbu3u_29",fn="_profileImageHighlight_wbu3u_37",mn="_profileImageUpgradeIcon_wbu3u_41",hn="_userIconWrapper_wbu3u_47",E={menuContainer:ln,profileButton:un,profileImage:dn,profileImageHighlight:fn,profileImageUpgradeIcon:mn,userIconWrapper:hn},at=b.createContext({}),M=()=>b.useContext(at),bn=({children:e})=>{const{currentTeam:t,otherTeams:n,showUpgradeCta:r,showBillingButton:s,allowTeamCreation:i,isLimitedView:c,isProviderAlpha:u,canAccessTeamSettings:d,isEndOfTrialActive:l,isTeamSuspended:f}=M();return a.jsx(m.Menu,{menuButton:()=>a.jsxs("button",{className:E.profileButton,"aria-label":"Profile menu",type:"button",children:[t!=null&&t.logoUrl?a.jsx("img",{src:t.logoUrl,className:C(E.profileImage,{[E.profileImageHighlight]:r}),alt:"Team Logo"}):a.jsx("div",{className:C(E.userIconWrapper,"flex-row","align-center","items-center",{[E.profileImageHighlight]:r}),children:a.jsx(m.UserIcon,{size:"25px"})}),r&&a.jsx(rt,{className:E.profileImageUpgradeIcon})]}),children:a.jsx(m.MenuList,{placement:"right-end",className:E.menuContainer,children:e({allowTeamCreation:i,otherTeams:n,isLimitedView:c,canAccessTeamSettings:d,isEndOfTrialActive:l,isTeamSuspended:f,showBillingButton:s,isProviderAlpha:u})})})},he=0,st=9999,it=[150,151,250,251],ot=[152,153,252,253],ct=[154,155,157,158,254,255,258,354,355,358],lt=[156,159,160,256,259,260],be=9998,K=e=>e===he,ge=e=>e===st,gn=e=>it.includes(e),_n=e=>ot.includes(e),pn=e=>ct.includes(e),vn=e=>lt.includes(e),Tn=e=>e>he&&e<be,jn=e=>e===be,yn=/\n/,Fe=(e,t,n)=>e.split(t).flatMap((r,s)=>s!==0?[b.cloneElement(n,{key:Math.random().toString(32).slice(0,10)}),r]:r),wn=(e,t,n)=>typeof e=="string"?Fe(e,t,n):e.flatMap(r=>typeof r=="string"?Fe(r,t,n):r),In=e=>wn(e,yn,a.jsx("br",{})),xn=/(\b(https?|):\/\/[-a-zA-Zа-яА-Я0-9+&@#/%?=~_|!:,.;]*[-a-zA-Zа-яА-Я0-9+&@#/%=~_|])/gi,Sn=e=>e.match(xn)??[],Ge=(e,t,n)=>{const r=e.split(t);if(r.length===1)return e;const s=[];return r[0]!==""&&s.push(r[0]),r.shift(),r[r.length-1]===""&&r.pop(),s.push(a.jsx("a",{href:t,target:"_blank",rel:"noreferrer noopener",children:t},t+n)),s.push(r.join(t)),s.filter(i=>i!=="")},Ke=e=>{const t=Sn(e);return t!=null&&t.length?t.reduce((n,r,s)=>typeof n=="string"?Ge(n,r,s):n.flatMap(i=>typeof i=="string"?Ge(i,r,s):i),e):e},Nn=e=>typeof e=="string"?Ke(e):e.flatMap(t=>typeof t=="string"?Ke(t):t,e),Pn=(e,t="PP")=>Ye.format(e,t),En=(e,t,n="PP")=>Ye.format(jt.toZonedTime(e,t),n),kn=e=>{b.useEffect(e,[])},Cn=({children:e,config:t})=>{const{teams:n,currentTeamId:r,planId:s,isLimitedView:i,isTeamSuspended:c,canAccessTeamSettings:u,isEndOfTrialActive:d}=t,l=n.find(g=>g.id===r),f=n.filter(g=>g.id!==r),p=(l==null?void 0:l.role)??"",j=["biller","owner"].includes(p),y=K(s)||ge(s),N={...t,currentTeam:l,otherTeams:f,canChangeBilling:j,isOnFreeOrTrialPlan:y,showUpgradeCta:!i&&y&&j&&!c,showBillingButton:!i&&u&&j,allowTeamCreation:!i&&!d};return a.jsx(at.Provider,{value:N,children:e})},Rn=({config:e,children:t})=>a.jsx(Cn,{config:e,children:a.jsx(bn,{children:t})}),zn="_container_q5pot_1",An="_profileEmail_q5pot_5",He={container:zn,profileEmail:An},Ln=({href:e,onClick:t,userEmail:n,hideBottomDivider:r})=>{const{isEndOfTrialActive:s,isTeamSuspended:i}=M();return s||i?null:a.jsxs(a.Fragment,{children:[a.jsx(m.MenuItem,{href:e,onClick:()=>{t==null||t()},children:a.jsxs("div",{className:`flex-col ${He.container}`,children:[a.jsx("span",{children:"Profile Settings"}),a.jsx("span",{className:He.profileEmail,children:n})]})}),!r&&a.jsx(m.MenuDivider,{})]})},On="_wrapper_15d85_1",qn="_profileImage_15d85_14",Un="_teamName_15d85_22",Mn="_planLabel_15d85_29",Bn="_membership_15d85_38",Dn="_defaultProfileImage_15d85_44",R={wrapper:On,profileImage:qn,teamName:Un,planLabel:Mn,membership:Bn,defaultProfileImage:Dn},ut=({team:e,onClick:t,hidePlanLabel:n})=>{const{currentTeam:r,planId:s}=M(),i=e||r;if(!i)return null;const c=K(s)?"Free":ge(s)?"Trial":void 0,u=t?m.MenuItem:"div";return a.jsxs(u,{className:`flex-row gap-2 flex-nowrap items-center ${R.wrapper}`,...t&&{onClick:()=>t(i)},children:[i.logoUrl?a.jsx("img",{className:R.profileImage,src:i.logoUrl,alt:"Team Logo"}):a.jsx("span",{className:`flex-row justify-center items-center ${R.defaultProfileImage}`,children:a.jsx(m.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:R.teamName,children:i.name}),c&&!n&&a.jsx("span",{className:`flex-row justify-center items-center ${R.planLabel}`,children:c})]}),a.jsx("span",{className:R.membership,children:i.role})]})]})},$n="_teamsContainer_1t68g_1",Fn={teamsContainer:$n},Gn=({onSwitchTeam:e})=>{const{otherTeams:t}=M();return t.length===0?null:a.jsx("div",{className:`flex-col items-stretch ${Fn.teamsContainer}`,children:t.map(n=>a.jsx(ut,{team:n,onClick:e,hidePlanLabel:!0},n.id))})},Kn="_container_1u995_1",Hn="_planCta_1u995_15",Jn="_upgradeIconWrapper_1u995_19",ce={container:Kn,planCta:Hn,upgradeIconWrapper:Jn},Wn=({upgradeOptionHref:e})=>{const{planId:t,trialDaysLeft:n,showUpgradeCta:r}=M();if(!r)return null;const c=K(t)?"Your team is currently on the Free plan":`Free trial ends in ${n} ${n===1?"day":"days"}`;return a.jsxs(m.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(rt,{}),a.jsx("span",{children:"See upgrade options"})]})]})},I=({children:e,...t})=>a.jsx("nav",{...t,className:Vt.sidebarContainer,children:e});I.Top=({children:e})=>a.jsx("div",{children:e});I.Bottom=({children:e})=>a.jsx("div",{children:e});I.Avatar=Xt;I.IconLink=nn;I.Menu=sn;I.ProfileMenu=Rn;I.TeamSwitch=Gn;I.TeamMenuItem=ut;I.UpgradeMenuItem=Wn;I.ProfileSettingsMenuItem=Ln;const Qn="_breadcrumbsItem_1hm6a_1",Vn="_breadcrumbs_1hm6a_1",Je={breadcrumbsItem:Qn,breadcrumbs:Vn},Yn=({items:e})=>a.jsx("nav",{"aria-label":"breadcrumb",className:Je.breadcrumbs,children:e.map((t,n)=>a.jsxs(b.Fragment,{children:[a.jsx(m.Link,{className:Je.breadcrumbsItem,href:t.link,rel:"noreferrer",children:t.name}),n<e.length-1&&a.jsx("span",{children:" — "})]},`${t.link}-${t.name}`))}),Zn=({items:e})=>a.jsx(a.Fragment,{children:e.map((t,n)=>a.jsxs(b.Fragment,{children:[!!n&&t.some(r=>r.visible)&&a.jsx(m.MenuDivider,{}),t.filter(({visible:r})=>r).map(({link:r,label:s,onClick:i})=>a.jsx(m.MenuItem,{href:r||"#","aria-label":s,onClick:i,children:s},s))]},t[0].label))}),Xn="_badge_1pc1v_1",er="_tag_1pc1v_15",tr="_withNavLinkStyle_1pc1v_42 _withLinkStyle_1pc1v_21",nr="_disabled_1pc1v_57",rr="_projectNavigationItem_1pc1v_61",ar="_projectNavigationItemDisabled_1pc1v_67",k={badge:Xn,tag:er,withNavLinkStyle:tr,disabled:nr,projectNavigationItem:rr,projectNavigationItemDisabled:ar},We=({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:k.badge,"aria-label":`${t} items requiring attention`,children:t>9?"9+":t})]}),!!n&&a.jsx(m.Tag,{className:k.tag,children:n})]}),le=b.forwardRef(({label:e,href:t="",disabled:n=!1,badge:r,onClick:s,novel:i},c)=>a.jsx(m.Tooltip,{tooltip:"You do not have access to this function",show:n,children:a.jsx("div",{className:n?k.projectNavigationItemDisabled:k.projectNavigationItem,children:s||n||!t?a.jsx("button",{type:"button",ref:c,className:C(k.withNavLinkStyle,{[k.disabled]:n}),disabled:n,onClick:s,children:a.jsx(We,{label:e,badge:r,novel:i})}):a.jsx("a",{href:t,className:k.withNavLinkStyle,children:a.jsx(We,{label:e,badge:r,novel:i})})})}));le.displayName="NavigationTabsItem";const sr=e=>(e==null?void 0:e.some(t=>t.some(n=>n.visible)))??!1,ir=e=>e.visible&&(!e.dropdown||sr(e.dropdown)),or=({navigation:e,activeItem:t})=>a.jsx("nav",{"aria-label":"Project",children:a.jsx("ul",{className:z.navigationTabList,"aria-orientation":"horizontal",children:e.filter(ir).map(n=>{var r,s,i;return n.dropdown?a.jsx("li",{className:z.navigationTab,"data-testid":n.key,"aria-selected":(r=n.isActive)==null?void 0:r.call(n,t),children:a.jsx(m.Menu,{menuButton:({opened:c})=>a.jsx(le,{label:n.label,disabled:n.disabled,active:c}),children:a.jsx(m.MenuList,{children:a.jsx(Zn,{items:n.dropdown})})})},n.key):a.jsx("li",{className:z.navigationTab,"data-testid":n.key,"aria-selected":(s=n.isActive)==null?void 0:s.call(n,t),children:a.jsx(le,{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)})})}),dt=o.z.union([o.z.literal("owner"),o.z.literal("admin"),o.z.literal("biller"),o.z.literal("member")]),cr=o.z.object({userId:o.z.number(),teamId:o.z.number(),userTeamRole:dt,userEmail:o.z.string().email(),userCurrentTeamId:o.z.number(),planId:o.z.number(),planName:o.z.string(),isProviderAlpha:o.z.boolean(),isFullyAuthenticated:o.z.boolean(),exp:o.z.number()});function ft(e){try{const t=e.split(".")[1],n=atob(t);return cr.parse(JSON.parse(n))}catch{return}}const G=class G extends CustomEvent{constructor(t){super(G.eventName,{detail:{token:t,payload:ft(t.accessToken)}})}};xe(G,"eventName","new-jwt-issued");let A=G;const lr=o.z.object({accessToken:o.z.string(),refreshToken:o.z.string()}),_e=Tt.buildPayloadRoute({description:"Takes a teamId and returns a JWT token access and refresh token for the user",method:"post",requestPathParamsSchema:o.z.object({teamId:o.z.number()}),pathResolver:e=>`/team/${e.teamId}/actions/get-user-token`,requestHeaderSchema:o.z.object({Authorization:o.z.string().optional(),"x-csrf-token":o.z.string().optional()}),requestBodySchema:o.z.undefined(),successResponseBodySchema:lr}),pe={teamKey:e=>["getUserToken",e]},mt=(e,t,n)=>fe.useQuery({...n,queryFn:({queryKey:[r,s]})=>U.sendByPayloadRoute(e,_e,{pathParams:{teamId:s},headers:{}}),queryKey:pe.teamKey(t)}),ur=pe;function dr(e,t){const n=mt(e,t),r=b.useRef();return b.useEffect(()=>{n.data&&n.data.accessToken!==r.current&&(window.dispatchEvent(new A(n.data)),r.current=n.data.accessToken)},[n.data]),n}function ve(){const[e,t]=b.useState();return b.useEffect(()=>{const n=r=>{t(r.detail.payload)};return window.addEventListener(A.eventName,n),()=>{window.removeEventListener(A.eventName,n)}},[]),e}const fr=o.z.object({user_id:o.z.number(),email:o.z.string().email(),fullname:o.z.string(),created_at:o.z.string(),created_at_timestamp:o.z.number(),role:dt}),mr=o.z.object({team_id:o.z.number(),team_user:fr}),hr=Ve.buildGetRoute({description:"Get the details of a team user",requestPathParamsSchema:o.z.object({teamId:o.z.number(),userId:o.z.number()}),pathResolver:({teamId:e,userId:t})=>`/teams/${e}/users/${t}`,successResponseBodySchema:mr}),Te={teamUserKey:(e,t)=>["GetTeamUsers",e,t]},ht=(e,t,n,r)=>fe.useQuery({...r,queryKey:Te.teamUserKey(t,n),queryFn:({queryKey:[s,i,c]})=>U.sendByGetRoute(e,hr,{pathParams:{teamId:i,userId:c}})}),br=Te;function gr(e){const t=ve();return ht(e,(t==null?void 0:t.teamId)??0,(t==null?void 0:t.userId)??0,{enabled:t!==void 0})}const _r=o.z.object({lang_id:o.z.number(),lang_iso:o.z.string(),lang_name:o.z.string(),is_writable:o.z.union([o.z.literal(0),o.z.literal(1)])}),pr=o.z.object({user_id:o.z.number(),email:o.z.string().email(),fullname:o.z.string(),created_at:o.z.string(),created_at_timestamp:o.z.number(),admin_rights:o.z.array(o.z.string()),languages:o.z.array(_r),is_admin:o.z.boolean(),is_reviewer:o.z.boolean()}),vr=o.z.object({project_id:o.z.string(),contributors:o.z.array(pr)}),Tr=Ve.buildGetRoute({description:"Get the details of a project contributor",requestPathParamsSchema:o.z.object({projectId:o.z.string(),contributorId:o.z.number()}),pathResolver:({projectId:e,contributorId:t})=>`/projects/${e}/contributors/${t}`,successResponseBodySchema:vr}),je={projectUserKey:(e,t)=>["RetrieveContributor",e,t]},bt=(e,t,n,r)=>fe.useQuery({...r,queryKey:je.projectUserKey(n,t),queryFn:({queryKey:[s,i,c]})=>U.sendByGetRoute(e,Tr,{pathParams:{projectId:i,contributorId:c}})}),jr=je;function yr(e,t){const n=ve();return bt(e,(n==null?void 0:n.userId)??0,t,{enabled:n!==void 0})}function F(e){return{Authorization:`Bearer ${e}`}}function wr(e,t){return n=>async(r,s)=>{var u;const i=await t.getCachedJwtToken();if(i===void 0)return n(r,s);const c=await n(r,{...s,headers:{...s.headers,...F(i.accessToken)}});if(i&&(c.status===401||c.status===403)){const d=ft(i.accessToken);if(!d)return c;const l=await U.sendByPayloadRoute(e,_e,{pathParams:{teamId:d.teamId},headers:F(i.refreshToken)});return await((u=t.onNewJwtTokenIssued)==null?void 0:u.call(t,l)),n(r,{...s,headers:{...s.headers,...F(l.accessToken)}})}return c}}const ue={wretch:{jwtAuth(e){return this.middlewares([wr(this,e)])}}};function Ir(e,t){return n=>async(r,s)=>{var d;if(await t.getCachedJwtToken()!==void 0)return n(r,s);const c=await t.getCsrfToken();if(c===void 0)return n(r,s);const u=await U.sendByPayloadRoute(e,_e,{pathParams:{teamId:await t.getTeamId()},headers:{"x-csrf-token":c}});return await((d=t.onNewJwtTokenIssued)==null?void 0:d.call(t,u)),n(r,{...s,headers:{...s.headers,...F(u.accessToken)}})}}function xr(){const e=de("accessToken"),t=de("refreshToken");return!e||!t?Promise.resolve(void 0):Promise.resolve({accessToken:e,refreshToken:t})}function Sr(){return Promise.resolve(de("csrf_token"))}function de(e){var n;const t=document.cookie.split(";").find(r=>r.trim().startsWith(e));return(n=t==null?void 0:t.split("="))==null?void 0:n[1]}const Nr={wretch:{jwtAuth(e){return this.addon(ue).jwtAuth(Qe(e))},jwtAuthWithClassicSessionPromotion(e){const t=Qe(e);return this.addon(ue).jwtAuth(t).middlewares([Ir(this,t)])}}};function Qe(e){return{...e,getCachedJwtToken:e.getCachedJwtToken??xr,getCsrfToken:"getCsrfToken"in e?e.getCsrfToken:Sr,onNewJwtTokenIssued:t=>{var n;return window.dispatchEvent(new A(t)),((n=e.onNewJwtTokenIssued)==null?void 0:n.call(e,t))??Promise.resolve()}}}exports.Breadcrumbs=Yn;exports.BrowserJwtAuthAddon=Nr;exports.ENTERPRISE_OPENSOURCE_PLAN_ID=be;exports.ENTERPRISE_PLAN_IDS=lt;exports.ESSENTIAL_PLAN_IDS=ot;exports.FREE_PLAN_ID=he;exports.JwtAuthAddon=ue;exports.NavigationPanel=q;exports.NavigationTabs=or;exports.PRO_PLAN_IDS=ct;exports.START_PLAN_IDS=it;exports.Sidebar=I;exports.TRIAL_PLAN_ID=st;exports.authenticatedContributorKeys=jr;exports.authenticatedUserKeys=br;exports.convertNewLineToBreakTag=In;exports.formatDate=Pn;exports.formatDateTz=En;exports.getPromotedClassicSessionJwtKey=ur;exports.getTeamUsersQueryKey=Te;exports.getUserTokenKey=pe;exports.isEnterpriseOpenSourcePlan=jn;exports.isEnterprisePlan=vn;exports.isEssentialPlan=_n;exports.isFreePlan=K;exports.isPaidPlan=Tn;exports.isProPlan=pn;exports.isStartPlan=gn;exports.isTrialPlan=ge;exports.makeUrlClickable=Nn;exports.retrieveContributorKeys=je;exports.useAuthenticatedProjectContributor=yr;exports.useAuthenticatedUser=gr;exports.useEffectOnce=kn;exports.useGetPromotedClassicSessionJwtQuery=dr;exports.useGetUserTokenQuery=mt;exports.useJwtTokenPayload=ve;exports.useRetrieveContributorQuery=bt;exports.userGetTeamUsersQuery=ht;
package/dist/harmony.mjs CHANGED
@@ -3,8 +3,8 @@ var Nt = (e, t, n) => t in e ? It(e, t, { enumerable: !0, configurable: !0, writ
3
3
  var ye = (e, t, n) => Nt(e, typeof t != "symbol" ? t + "" : t, n);
4
4
  import { jsx as o, jsxs as p, Fragment as Qe } from "react/jsx-runtime";
5
5
  import * as x from "react";
6
- import { useRef as Ve, useState as ue, useCallback as Ie, useEffect as q, useContext as St, createContext as kt, cloneElement as Et, Fragment as Xe, forwardRef as Pt } from "react";
7
- import { Tooltip as de, Link as Ye, Menu as me, MenuList as fe, CaretUpIcon as Ct, UserIcon as Ze, MenuItem as H, MenuDivider as et, Tag as jt } from "@lokalise/louis";
6
+ import { useRef as Ve, useState as ue, useCallback as Ie, useEffect as q, useContext as St, createContext as kt, cloneElement as Et, Fragment as Ye, forwardRef as Pt } from "react";
7
+ import { Tooltip as de, Link as Ze, Menu as me, MenuList as fe, CaretUpIcon as Ct, UserIcon as Xe, MenuItem as F, MenuDivider as et, Tag as jt } from "@lokalise/louis";
8
8
  import { z as s } from "zod";
9
9
  import { sendByPayloadRoute as he, sendByGetRoute as tt } from "@lokalise/frontend-http-client";
10
10
  import { useQuery as ge } from "@tanstack/react-query";
@@ -61,26 +61,26 @@ function xt() {
61
61
  }
62
62
  return V = t, V;
63
63
  }
64
- var X, Ce;
64
+ var Y, Ce;
65
65
  function qt() {
66
- if (Ce) return X;
66
+ if (Ce) return Y;
67
67
  Ce = 1;
68
68
  var e = xt(), t = /^\s+/;
69
69
  function n(r) {
70
70
  return r && r.slice(0, e(r) + 1).replace(t, "");
71
71
  }
72
- return X = n, X;
72
+ return Y = n, Y;
73
73
  }
74
- var Y, je;
74
+ var Z, je;
75
75
  function it() {
76
- if (je) return Y;
76
+ if (je) return Z;
77
77
  je = 1;
78
78
  var e = ot(), t = e.Symbol;
79
- return Y = t, Y;
79
+ return Z = t, Z;
80
80
  }
81
- var Z, Re;
81
+ var X, Re;
82
82
  function Ut() {
83
- if (Re) return Z;
83
+ if (Re) return X;
84
84
  Re = 1;
85
85
  var e = it(), t = Object.prototype, n = t.hasOwnProperty, r = t.toString, a = e ? e.toStringTag : void 0;
86
86
  function i(c) {
@@ -93,7 +93,7 @@ function Ut() {
93
93
  var m = r.call(c);
94
94
  return l && (u ? c[a] = d : delete c[a]), m;
95
95
  }
96
- return Z = i, Z;
96
+ return X = i, X;
97
97
  }
98
98
  var ee, Ae;
99
99
  function Mt() {
@@ -210,8 +210,8 @@ function st() {
210
210
  }
211
211
  return oe = c, oe;
212
212
  }
213
- var Ft = st();
214
- const Ht = /* @__PURE__ */ at(Ft);
213
+ var Ht = st();
214
+ const Ft = /* @__PURE__ */ at(Ht);
215
215
  var ie, Me;
216
216
  function Wt() {
217
217
  if (Me) return ie;
@@ -233,7 +233,7 @@ var Gt = Wt();
233
233
  const Kt = /* @__PURE__ */ at(Gt), Jt = (e, t, n, r) => {
234
234
  switch (t) {
235
235
  case "debounce":
236
- return Ht(e, n, r);
236
+ return Ft(e, n, r);
237
237
  case "throttle":
238
238
  return Kt(e, n, r);
239
239
  default:
@@ -267,7 +267,7 @@ const Kt = /* @__PURE__ */ at(Gt), Jt = (e, t, n, r) => {
267
267
  }
268
268
  }), [t]), refElement: t, setRefElement: n };
269
269
  }
270
- ), Xt = (e, t) => t === "border-box" ? {
270
+ ), Yt = (e, t) => t === "border-box" ? {
271
271
  width: e.borderBoxSize[0].inlineSize,
272
272
  height: e.borderBoxSize[0].blockSize
273
273
  } : t === "content-box" ? {
@@ -277,7 +277,7 @@ const Kt = /* @__PURE__ */ at(Gt), Jt = (e, t, n, r) => {
277
277
  width: e.contentRect.width,
278
278
  height: e.contentRect.height
279
279
  };
280
- function Yt({ skipOnMount: e = !1, refreshMode: t, refreshRate: n = 1e3, refreshOptions: r, handleWidth: a = !0, handleHeight: i = !0, targetRef: c, observerOptions: u, onResize: d } = {}) {
280
+ function Zt({ skipOnMount: e = !1, refreshMode: t, refreshRate: n = 1e3, refreshOptions: r, handleWidth: a = !0, handleHeight: i = !0, targetRef: c, observerOptions: u, onResize: d } = {}) {
281
281
  const l = Ve(e), m = Qt(d), [b, T] = ue({
282
282
  width: void 0,
283
283
  height: void 0
@@ -290,7 +290,7 @@ function Yt({ skipOnMount: e = !1, refreshMode: t, refreshRate: n = 1e3, refresh
290
290
  }
291
291
  const S = (v, _) => a && v.width !== _.width || i && v.height !== _.height;
292
292
  h.forEach((v) => {
293
- const _ = Xt(v, y);
293
+ const _ = Yt(v, y);
294
294
  T((M) => S(M, _) ? (m == null || m({
295
295
  width: _.width,
296
296
  height: _.height,
@@ -328,14 +328,14 @@ function j() {
328
328
  for (var e, t, n = 0, r = "", a = arguments.length; n < a; n++) (e = arguments[n]) && (t = ct(e)) && (r && (r += " "), r += t);
329
329
  return r;
330
330
  }
331
- const Zt = "_headerContainer_1cubo_1", en = "_navigationTabList_1cubo_8", tn = "_navigationTab_1cubo_8", nn = "_headerContent_1cubo_34", rn = "_staticEnabled_1cubo_50", A = {
332
- headerContainer: Zt,
331
+ const Xt = "_headerContainer_1cubo_1", en = "_navigationTabList_1cubo_8", tn = "_navigationTab_1cubo_8", nn = "_headerContent_1cubo_34", rn = "_staticEnabled_1cubo_50", A = {
332
+ headerContainer: Xt,
333
333
  navigationTabList: en,
334
334
  navigationTab: tn,
335
335
  headerContent: nn,
336
336
  staticEnabled: rn
337
337
  }, an = 77, D = ({ sticky: e, children: t }) => {
338
- const { ref: n, height: r } = Yt({
338
+ const { ref: n, height: r } = Zt({
339
339
  refreshMode: "debounce",
340
340
  refreshRate: 0
341
341
  }), [a, i] = ue(!1), c = () => a ? !e : !0;
@@ -371,7 +371,7 @@ const on = "_sidebarContainer_bmdti_1", sn = {
371
371
  link: dn,
372
372
  active: mn
373
373
  }, fn = ({ label: e, to: t, icon: n }) => /* @__PURE__ */ o(de, { placement: "right", tooltip: e, children: /* @__PURE__ */ o(
374
- Ye,
374
+ Ze,
375
375
  {
376
376
  className: j(Be.link, {
377
377
  [Be.active]: window.location.pathname.startsWith(t)
@@ -451,7 +451,7 @@ const on = "_sidebarContainer_bmdti_1", sn = {
451
451
  className: j(P.userIconWrapper, "flex-row", "align-center", "items-center", {
452
452
  [P.profileImageHighlight]: r
453
453
  }),
454
- children: /* @__PURE__ */ o(Ze, { size: "25px" })
454
+ children: /* @__PURE__ */ o(Xe, { size: "25px" })
455
455
  }
456
456
  ),
457
457
  r && /* @__PURE__ */ o(lt, { className: P.profileImageUpgradeIcon })
@@ -468,7 +468,7 @@ const on = "_sidebarContainer_bmdti_1", sn = {
468
468
  }) })
469
469
  }
470
470
  );
471
- }, dt = 0, kn = 9999, En = [150, 151, 250, 251], Pn = [152, 153, 252, 253], Cn = [154, 155, 157, 158, 254, 255, 258, 354, 355, 358], jn = [156, 159, 160, 256, 259, 260], mt = 9998, _e = (e) => e === dt, ft = (e) => e === kn, Ur = (e) => En.includes(e), Mr = (e) => Pn.includes(e), Br = (e) => Cn.includes(e), $r = (e) => jn.includes(e), zr = (e) => e > dt && e < mt, Dr = (e) => e === mt, Rn = /\n/, ze = (e, t, n) => e.split(t).flatMap((r, a) => a !== 0 ? [Et(n, { key: Math.random().toString(32).slice(0, 10) }), r] : r), An = (e, t, n) => typeof e == "string" ? ze(e, t, n) : e.flatMap((r) => typeof r == "string" ? ze(r, t, n) : r), Fr = (e) => An(e, Rn, /* @__PURE__ */ o("br", {})), Ln = /(\b(https?|):\/\/[-a-zA-Zа-яА-Я0-9+&@#/%?=~_|!:,.;]*[-a-zA-Zа-яА-Я0-9+&@#/%=~_|])/gi, On = (e) => e.match(Ln) ?? [], De = (e, t, n) => {
471
+ }, dt = 0, kn = 9999, En = [150, 151, 250, 251], Pn = [152, 153, 252, 253], Cn = [154, 155, 157, 158, 254, 255, 258, 354, 355, 358], jn = [156, 159, 160, 256, 259, 260], mt = 9998, _e = (e) => e === dt, ft = (e) => e === kn, Ur = (e) => En.includes(e), Mr = (e) => Pn.includes(e), Br = (e) => Cn.includes(e), $r = (e) => jn.includes(e), zr = (e) => e > dt && e < mt, Dr = (e) => e === mt, Rn = /\n/, ze = (e, t, n) => e.split(t).flatMap((r, a) => a !== 0 ? [Et(n, { key: Math.random().toString(32).slice(0, 10) }), r] : r), An = (e, t, n) => typeof e == "string" ? ze(e, t, n) : e.flatMap((r) => typeof r == "string" ? ze(r, t, n) : r), Hr = (e) => An(e, Rn, /* @__PURE__ */ o("br", {})), Ln = /(\b(https?|):\/\/[-a-zA-Zа-яА-Я0-9+&@#/%?=~_|!:,.;]*[-a-zA-Zа-яА-Я0-9+&@#/%=~_|])/gi, On = (e) => e.match(Ln) ?? [], De = (e, t, n) => {
472
472
  const r = e.split(t);
473
473
  if (r.length === 1)
474
474
  return e;
@@ -476,10 +476,10 @@ const on = "_sidebarContainer_bmdti_1", sn = {
476
476
  return r[0] !== "" && a.push(r[0]), r.shift(), r[r.length - 1] === "" && r.pop(), a.push(
477
477
  /* @__PURE__ */ o("a", { href: t, target: "_blank", rel: "noreferrer noopener", children: t }, t + n)
478
478
  ), a.push(r.join(t)), a.filter((i) => i !== "");
479
- }, Fe = (e) => {
479
+ }, He = (e) => {
480
480
  const t = On(e);
481
481
  return t != null && t.length ? t.reduce((n, r, a) => typeof n == "string" ? De(n, r, a) : n.flatMap((i) => typeof i == "string" ? De(i, r, a) : i), e) : e;
482
- }, Hr = (e) => typeof e == "string" ? Fe(e) : e.flatMap((t) => typeof t == "string" ? Fe(t) : t, e), Wr = (e, t = "PP") => rt(e, t), Gr = (e, t, n = "PP") => rt(At(e, t), n), Kr = (e) => {
482
+ }, Fr = (e) => typeof e == "string" ? He(e) : e.flatMap((t) => typeof t == "string" ? He(t) : t, e), Wr = (e, t = "PP") => rt(e, t), Gr = (e, t, n = "PP") => rt(At(e, t), n), Kr = (e) => {
483
483
  q(e, []);
484
484
  }, xn = ({ children: e, config: t }) => {
485
485
  const {
@@ -501,7 +501,7 @@ const on = "_sidebarContainer_bmdti_1", sn = {
501
501
  allowTeamCreation: !i && !d
502
502
  };
503
503
  return /* @__PURE__ */ o(ut.Provider, { value: k, children: e });
504
- }, qn = ({ config: e, children: t }) => /* @__PURE__ */ o(xn, { config: e, children: /* @__PURE__ */ o(Sn, { children: t }) }), Un = "_container_q5pot_1", Mn = "_profileEmail_q5pot_5", He = {
504
+ }, qn = ({ config: e, children: t }) => /* @__PURE__ */ o(xn, { config: e, children: /* @__PURE__ */ o(Sn, { children: t }) }), Un = "_container_q5pot_1", Mn = "_profileEmail_q5pot_5", Fe = {
505
505
  container: Un,
506
506
  profileEmail: Mn
507
507
  }, Bn = ({
@@ -513,26 +513,26 @@ const on = "_sidebarContainer_bmdti_1", sn = {
513
513
  const { isEndOfTrialActive: a, isTeamSuspended: i } = U();
514
514
  return a || i ? null : /* @__PURE__ */ p(Qe, { children: [
515
515
  /* @__PURE__ */ o(
516
- H,
516
+ F,
517
517
  {
518
518
  href: e,
519
519
  onClick: () => {
520
520
  t == null || t();
521
521
  },
522
- children: /* @__PURE__ */ p("div", { className: `flex-col ${He.container}`, children: [
522
+ children: /* @__PURE__ */ p("div", { className: `flex-col ${Fe.container}`, children: [
523
523
  /* @__PURE__ */ o("span", { children: "Profile Settings" }),
524
- /* @__PURE__ */ o("span", { className: He.profileEmail, children: n })
524
+ /* @__PURE__ */ o("span", { className: Fe.profileEmail, children: n })
525
525
  ] })
526
526
  }
527
527
  ),
528
528
  !r && /* @__PURE__ */ o(et, {})
529
529
  ] });
530
- }, $n = "_wrapper_15d85_1", zn = "_profileImage_15d85_14", Dn = "_teamName_15d85_22", Fn = "_planLabel_15d85_29", Hn = "_membership_15d85_38", Wn = "_defaultProfileImage_15d85_44", R = {
530
+ }, $n = "_wrapper_15d85_1", zn = "_profileImage_15d85_14", Dn = "_teamName_15d85_22", Hn = "_planLabel_15d85_29", Fn = "_membership_15d85_38", Wn = "_defaultProfileImage_15d85_44", R = {
531
531
  wrapper: $n,
532
532
  profileImage: zn,
533
533
  teamName: Dn,
534
- planLabel: Fn,
535
- membership: Hn,
534
+ planLabel: Hn,
535
+ membership: Fn,
536
536
  defaultProfileImage: Wn
537
537
  }, ht = ({ team: e, onClick: t, hidePlanLabel: n }) => {
538
538
  const { currentTeam: r, planId: a } = U(), i = e || r;
@@ -540,12 +540,12 @@ const on = "_sidebarContainer_bmdti_1", sn = {
540
540
  return null;
541
541
  const c = _e(a) ? "Free" : ft(a) ? "Trial" : void 0;
542
542
  return /* @__PURE__ */ p(
543
- t ? H : "div",
543
+ t ? F : "div",
544
544
  {
545
545
  className: `flex-row gap-2 flex-nowrap items-center ${R.wrapper}`,
546
546
  ...t && { onClick: () => t(i) },
547
547
  children: [
548
- i.logoUrl ? /* @__PURE__ */ o("img", { className: R.profileImage, src: i.logoUrl, alt: "Team Logo" }) : /* @__PURE__ */ o("span", { className: `flex-row justify-center items-center ${R.defaultProfileImage}`, children: /* @__PURE__ */ o(Ze, { size: "25px" }) }),
548
+ i.logoUrl ? /* @__PURE__ */ o("img", { className: R.profileImage, src: i.logoUrl, alt: "Team Logo" }) : /* @__PURE__ */ o("span", { className: `flex-row justify-center items-center ${R.defaultProfileImage}`, children: /* @__PURE__ */ o(Xe, { size: "25px" }) }),
549
549
  /* @__PURE__ */ p("div", { className: "flex-col items-start", children: [
550
550
  /* @__PURE__ */ p("div", { className: "flex-row items-center flex-nowrap gap-2", children: [
551
551
  /* @__PURE__ */ o("span", { title: i.name, className: R.teamName, children: i.name }),
@@ -561,16 +561,16 @@ const on = "_sidebarContainer_bmdti_1", sn = {
561
561
  }, Jn = ({ onSwitchTeam: e }) => {
562
562
  const { otherTeams: t } = U();
563
563
  return t.length === 0 ? null : /* @__PURE__ */ o("div", { className: `flex-col items-stretch ${Kn.teamsContainer}`, children: t.map((n) => /* @__PURE__ */ o(ht, { team: n, onClick: e, hidePlanLabel: !0 }, n.id)) });
564
- }, Qn = "_container_1u995_1", Vn = "_planCta_1u995_15", Xn = "_upgradeIconWrapper_1u995_19", se = {
564
+ }, Qn = "_container_1u995_1", Vn = "_planCta_1u995_15", Yn = "_upgradeIconWrapper_1u995_19", se = {
565
565
  container: Qn,
566
566
  planCta: Vn,
567
- upgradeIconWrapper: Xn
568
- }, Yn = ({ upgradeOptionHref: e }) => {
567
+ upgradeIconWrapper: Yn
568
+ }, Zn = ({ upgradeOptionHref: e }) => {
569
569
  const { planId: t, trialDaysLeft: n, showUpgradeCta: r } = U();
570
570
  if (!r)
571
571
  return null;
572
572
  const c = _e(t) ? "Your team is currently on the Free plan" : `Free trial ends in ${n} ${n === 1 ? "day" : "days"}`;
573
- return /* @__PURE__ */ p(H, { href: e, className: `flex-col gap-1 items-start ${se.container}`, children: [
573
+ return /* @__PURE__ */ p(F, { href: e, className: `flex-col gap-1 items-start ${se.container}`, children: [
574
574
  /* @__PURE__ */ o("span", { className: se.planCta, children: c }),
575
575
  /* @__PURE__ */ p("div", { className: `flex-row items-center gap-1 ${se.upgradeIconWrapper}`, children: [
576
576
  /* @__PURE__ */ o(lt, {}),
@@ -586,17 +586,17 @@ I.Menu = bn;
586
586
  I.ProfileMenu = qn;
587
587
  I.TeamSwitch = Jn;
588
588
  I.TeamMenuItem = ht;
589
- I.UpgradeMenuItem = Yn;
589
+ I.UpgradeMenuItem = Zn;
590
590
  I.ProfileSettingsMenuItem = Bn;
591
- const Zn = "_breadcrumbsItem_1hm6a_1", er = "_breadcrumbs_1hm6a_1", We = {
592
- breadcrumbsItem: Zn,
591
+ const Xn = "_breadcrumbsItem_1hm6a_1", er = "_breadcrumbs_1hm6a_1", We = {
592
+ breadcrumbsItem: Xn,
593
593
  breadcrumbs: er
594
- }, Jr = ({ items: e }) => /* @__PURE__ */ o("nav", { "aria-label": "breadcrumb", className: We.breadcrumbs, children: e.map((t, n) => /* @__PURE__ */ p(Xe, { children: [
595
- /* @__PURE__ */ o(Ye, { className: We.breadcrumbsItem, href: t.link, rel: "noreferrer", children: t.name }),
594
+ }, Jr = ({ items: e }) => /* @__PURE__ */ o("nav", { "aria-label": "breadcrumb", className: We.breadcrumbs, children: e.map((t, n) => /* @__PURE__ */ p(Ye, { children: [
595
+ /* @__PURE__ */ o(Ze, { className: We.breadcrumbsItem, href: t.link, rel: "noreferrer", children: t.name }),
596
596
  n < e.length - 1 && /* @__PURE__ */ o("span", { children: " — " })
597
- ] }, `${t.link}-${t.name}`)) }), tr = ({ items: e }) => /* @__PURE__ */ o(Qe, { children: e.map((t, n) => /* @__PURE__ */ p(Xe, { children: [
597
+ ] }, `${t.link}-${t.name}`)) }), tr = ({ items: e }) => /* @__PURE__ */ o(Qe, { children: e.map((t, n) => /* @__PURE__ */ p(Ye, { children: [
598
598
  !!n && t.some((r) => r.visible) && /* @__PURE__ */ o(et, {}),
599
- t.filter(({ visible: r }) => r).map(({ link: r, label: a, onClick: i }) => /* @__PURE__ */ o(H, { href: r || "#", "aria-label": a, onClick: i, children: a }, a))
599
+ t.filter(({ visible: r }) => r).map(({ link: r, label: a, onClick: i }) => /* @__PURE__ */ o(F, { href: r || "#", "aria-label": a, onClick: i, children: a }, a))
600
600
  ] }, t[0].label)) }), nr = "_badge_1pc1v_1", rr = "_tag_1pc1v_15", ar = "_withNavLinkStyle_1pc1v_42 _withLinkStyle_1pc1v_21", or = "_disabled_1pc1v_57", ir = "_projectNavigationItem_1pc1v_61", sr = "_projectNavigationItemDisabled_1pc1v_67", C = {
601
601
  badge: nr,
602
602
  tag: rr,
@@ -695,15 +695,15 @@ function bt(e) {
695
695
  return;
696
696
  }
697
697
  }
698
- const F = class F extends CustomEvent {
698
+ const H = class H extends CustomEvent {
699
699
  constructor(t) {
700
- super(F.eventName, {
700
+ super(H.eventName, {
701
701
  detail: { token: t, payload: bt(t.accessToken) }
702
702
  });
703
703
  }
704
704
  };
705
- ye(F, "eventName", "new-jwt-issued");
706
- let L = F;
705
+ ye(H, "eventName", "new-jwt-issued");
706
+ let L = H;
707
707
  const dr = s.object({
708
708
  accessToken: s.string(),
709
709
  refreshToken: s.string()
@@ -714,7 +714,7 @@ const dr = s.object({
714
714
  pathResolver: (e) => `/team/${e.teamId}/actions/get-user-token`,
715
715
  requestHeaderSchema: s.object({
716
716
  Authorization: s.string().optional(),
717
- "X-CSRF-Token": s.string().optional()
717
+ "x-csrf-token": s.string().optional()
718
718
  }),
719
719
  requestBodySchema: s.undefined(),
720
720
  successResponseBodySchema: dr
@@ -728,7 +728,7 @@ const dr = s.object({
728
728
  }),
729
729
  queryKey: _t.teamKey(t)
730
730
  }), Vr = _t;
731
- function Xr(e, t) {
731
+ function Yr(e, t) {
732
732
  const n = mr(e, t), r = Ve();
733
733
  return q(() => {
734
734
  n.data && n.data.accessToken !== r.current && (window.dispatchEvent(new L(n.data)), r.current = n.data.accessToken);
@@ -766,8 +766,8 @@ const fr = s.object({
766
766
  ...r,
767
767
  queryKey: vt.teamUserKey(t, n),
768
768
  queryFn: ({ queryKey: [a, i, c] }) => tt(e, gr, { pathParams: { teamId: i, userId: c } })
769
- }), Yr = vt;
770
- function Zr(e) {
769
+ }), Zr = vt;
770
+ function Xr(e) {
771
771
  const t = pt();
772
772
  return br(e, (t == null ? void 0 : t.teamId) ?? 0, (t == null ? void 0 : t.userId) ?? 0, {
773
773
  enabled: t !== void 0
@@ -858,7 +858,7 @@ function Ir(e, t) {
858
858
  return n(r, a);
859
859
  const u = await he(e, pe, {
860
860
  pathParams: { teamId: await t.getTeamId() },
861
- headers: { "X-CSRF-Token": c }
861
+ headers: { "x-csrf-token": c }
862
862
  });
863
863
  return await ((d = t.onNewJwtTokenIssued) == null ? void 0 : d.call(t, u)), n(r, {
864
864
  ...a,
@@ -915,8 +915,8 @@ export {
915
915
  I as Sidebar,
916
916
  kn as TRIAL_PLAN_ID,
917
917
  ea as authenticatedContributorKeys,
918
- Yr as authenticatedUserKeys,
919
- Fr as convertNewLineToBreakTag,
918
+ Zr as authenticatedUserKeys,
919
+ Hr as convertNewLineToBreakTag,
920
920
  Wr as formatDate,
921
921
  Gr as formatDateTz,
922
922
  Vr as getPromotedClassicSessionJwtKey,
@@ -930,12 +930,12 @@ export {
930
930
  Br as isProPlan,
931
931
  Ur as isStartPlan,
932
932
  ft as isTrialPlan,
933
- Hr as makeUrlClickable,
933
+ Fr as makeUrlClickable,
934
934
  Tt as retrieveContributorKeys,
935
935
  ta as useAuthenticatedProjectContributor,
936
- Zr as useAuthenticatedUser,
936
+ Xr as useAuthenticatedUser,
937
937
  Kr as useEffectOnce,
938
- Xr as useGetPromotedClassicSessionJwtQuery,
938
+ Yr as useGetPromotedClassicSessionJwtQuery,
939
939
  mr as useGetUserTokenQuery,
940
940
  pt as useJwtTokenPayload,
941
941
  wr as useRetrieveContributorQuery,
@@ -33,11 +33,11 @@ export declare const getUserToken: import('@lokalise/universal-ts-utils/node').P
33
33
  teamId: number;
34
34
  }>, undefined, z.ZodObject<{
35
35
  Authorization: z.ZodOptional<z.ZodString>;
36
- 'X-CSRF-Token': z.ZodOptional<z.ZodString>;
36
+ 'x-csrf-token': z.ZodOptional<z.ZodString>;
37
37
  }, "strip", z.ZodTypeAny, {
38
38
  Authorization?: string | undefined;
39
- 'X-CSRF-Token'?: string | undefined;
39
+ 'x-csrf-token'?: string | undefined;
40
40
  }, {
41
41
  Authorization?: string | undefined;
42
- 'X-CSRF-Token'?: string | undefined;
42
+ 'x-csrf-token'?: string | undefined;
43
43
  }>, false, false>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lokalise/harmony",
3
- "version": "1.6.0-exp-jwtutils.4",
3
+ "version": "1.6.0-exp-jwtutils.5",
4
4
  "author": {
5
5
  "name": "Lokalise",
6
6
  "url": "https://lokalise.com/"