@lokalise/harmony 1.6.0-exp-jwtutils.16 → 1.6.0-exp-jwtutils.17

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 wt=Object.defineProperty;var It=(e,t,n)=>t in e?wt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var we=(e,t,n)=>It(e,typeof t!="symbol"?t+"":t,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),g=require("react"),m=require("@lokalise/louis"),o=require("zod"),M=require("@lokalise/frontend-http-client"),xt=require("@lokalise/universal-ts-utils/api-contracts/apiContracts"),me=require("@tanstack/react-query"),Je=require("@lokalise/universal-ts-utils/node"),Qe=require("date-fns"),St=require("date-fns-tz");function Nt(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=Nt(g);var F=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ve(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Q,Ie;function he(){if(Ie)return Q;Ie=1;function e(t){var n=typeof t;return t!=null&&(n=="object"||n=="function")}return Q=e,Q}var V,xe;function Pt(){if(xe)return V;xe=1;var e=typeof F=="object"&&F&&F.Object===Object&&F;return V=e,V}var Y,Se;function Ye(){if(Se)return Y;Se=1;var e=Pt(),t=typeof self=="object"&&self&&self.Object===Object&&self,n=e||t||Function("return this")();return Y=n,Y}var Z,Ne;function kt(){if(Ne)return Z;Ne=1;var e=Ye(),t=function(){return e.Date.now()};return Z=t,Z}var X,Pe;function Et(){if(Pe)return X;Pe=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 ee,ke;function Ct(){if(ke)return ee;ke=1;var e=Et(),t=/^\s+/;function n(r){return r&&r.slice(0,e(r)+1).replace(t,"")}return ee=n,ee}var te,Ee;function Ze(){if(Ee)return te;Ee=1;var e=Ye(),t=e.Symbol;return te=t,te}var ne,Ce;function Rt(){if(Ce)return ne;Ce=1;var e=Ze(),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 ne=i,ne}var re,Re;function At(){if(Re)return re;Re=1;var e=Object.prototype,t=e.toString;function n(r){return t.call(r)}return re=n,re}var se,Ae;function zt(){if(Ae)return se;Ae=1;var e=Ze(),t=Rt(),n=At(),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 se=c,se}var ae,ze;function Lt(){if(ze)return ae;ze=1;function e(t){return t!=null&&typeof t=="object"}return ae=e,ae}var ie,Le;function Ot(){if(Le)return ie;Le=1;var e=zt(),t=Lt(),n="[object Symbol]";function r(s){return typeof s=="symbol"||t(s)&&e(s)==n}return ie=r,ie}var oe,Oe;function qt(){if(Oe)return oe;Oe=1;var e=Ct(),t=he(),n=Ot(),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 oe=d,oe}var ce,qe;function Xe(){if(qe)return ce;qe=1;var e=he(),t=kt(),n=qt(),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,b=!1,S=!0;if(typeof u!="function")throw new TypeError(r);d=n(d)||0,e(l)&&(N=!!l.leading,b="maxWait"in l,j=b?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),N?T(h):y}function D(h){var P=h-w,L=h-x,ye=d-P;return b?i(ye,j-L):ye}function Te(h){var P=h-w,L=h-x;return w===void 0||P>=d||P<0||b&&L>=j}function $(){var h=t();if(Te(h))return je(h);_=setTimeout($,D(h))}function je(h){return _=void 0,S&&f?T(h):(f=p=void 0,y)}function jt(){_!==void 0&&clearTimeout(_),x=0,f=w=p=_=void 0}function yt(){return _===void 0?y:je(t())}function J(){var h=t(),P=Te(h);if(f=arguments,p=this,w=h,P){if(_===void 0)return v(w);if(b)return clearTimeout(_),_=setTimeout($,d),T(w)}return _===void 0&&(_=setTimeout($,d)),y}return J.cancel=jt,J.flush=yt,J}return ce=c,ce}var Mt=Xe();const Ut=Ve(Mt);var le,Me;function Bt(){if(Me)return le;Me=1;var e=Xe(),t=he(),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 le=r,le}var Dt=Bt();const $t=Ve(Dt),Ft=(e,t,n,r)=>{switch(t){case"debounce":return Ut(e,n,r);case"throttle":return $t(e,n,r);default:return e}},Gt=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)},[])},Ht=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}},Wt=(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 Kt({skipOnMount:e=!1,refreshMode:t,refreshRate:n=1e3,refreshOptions:r,handleWidth:s=!0,handleHeight:i=!0,targetRef:c,observerOptions:u,onResize:d}={}){const l=g.useRef(e),f=Gt(d),[p,j]=g.useState({width:void 0,height:void 0}),{refProxy:y,refElement:_}=Ht(c),{box:w}=u||{},x=g.useCallback(b=>{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;b.forEach(T=>{const v=Wt(T,w);j(D=>S(D,v)?(f==null||f({width:v.width,height:v.height,entry:T}),v):D)})},[s,i,l,w]),N=g.useCallback(Ft(x,t,n,r),[x,t,n,r]);return g.useEffect(()=>{let b;return _?(b=new window.ResizeObserver(N),b.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=b==null?void 0:b.disconnect)===null||S===void 0||S.call(b),(v=(T=N).cancel)===null||v===void 0||v.call(T)}},[N,_]),Object.assign({ref:y},p)}function et(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=et(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=et(e))&&(r&&(r+=" "),r+=t);return r}const Jt="_headerContainer_1cubo_1",Qt="_navigationTabList_1cubo_8",Vt="_navigationTab_1cubo_8",Yt="_headerContent_1cubo_34",Zt="_staticEnabled_1cubo_50",A={headerContainer:Jt,navigationTabList:Qt,navigationTab:Vt,headerContent:Yt,staticEnabled:Zt},Xt=77,q=({sticky:e,children:t})=>{const{ref:n,height:r}=Kt({refreshMode:"debounce",refreshRate:0}),[s,i]=g.useState(!1),c=()=>s?!e:!0;g.useEffect(()=>{const d=()=>{i(window.scrollY>0)};return window.addEventListener("scroll",d),()=>window.removeEventListener("scroll",d)},[]);const u=`${r||Xt}px`;return a.jsx("div",{style:{minHeight:u},children:a.jsx("div",{children:a.jsxs("div",{ref:n,className:C(A.headerContent,{[A.staticEnabled]:c()}),children:[a.jsx(q.Header,{}),a.jsx(q.Tabs,{}),t]})})})};q.Header=({children:e})=>a.jsx("div",{className:A.headerContainer,children:e});q.Tabs=({children:e})=>a.jsx("div",{className:"flex justify-between gap-2 nowrap",children:e});const en="_sidebarContainer_bmdti_1",tn={sidebarContainer:en},nn="_logoLink_1baxb_1",rn={logoLink:nn},sn=({src:e,href:t="/",ariaLabel:n="Home",alt:r="Lokalise"})=>a.jsx("a",{className:rn.logoLink,href:t,"aria-label":n,children:a.jsx("img",{src:e,alt:r})}),an="_link_1weq1_1",on="_active_1weq1_18",Ue={link:an,active:on},cn=({label:e,to:t,icon:n})=>a.jsx(m.Tooltip,{placement:"right",tooltip:e,children:a.jsx(m.Link,{className:C(Ue.link,{[Ue.active]:window.location.pathname.startsWith(t)}),href:t,children:a.jsx(n,{size:"25px"})})}),ln="_dropdownButton_hwh0c_1",un="_dropdownButtonActive_hwh0c_18",Be={dropdownButton:ln,dropdownButtonActive:un},dn=({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(Be.dropdownButton,{[Be.dropdownButtonActive]:n}),children:a.jsx(t,{size:"25px"})})}),children:a.jsx(m.MenuList,{placement:"right-start",children:e})}),fn="_iconContainer_nz34m_1",mn={iconContainer:fn},tt=({className:e=""})=>a.jsx("div",{"aria-label":"Upgrade Icon",className:C(mn.iconContainer,"flex-row","items-center","justify-center",e),children:a.jsx(m.CaretUpIcon,{})}),hn="_menuContainer_wbu3u_5",gn="_profileButton_wbu3u_16",bn="_profileImage_wbu3u_29",_n="_profileImageHighlight_wbu3u_37",pn="_profileImageUpgradeIcon_wbu3u_41",vn="_userIconWrapper_wbu3u_47",k={menuContainer:hn,profileButton:gn,profileImage:bn,profileImageHighlight:_n,profileImageUpgradeIcon:pn,userIconWrapper:vn},nt=g.createContext({}),U=()=>g.useContext(nt),Tn=({children:e})=>{const{currentTeam:t,otherTeams:n,showUpgradeCta:r,showBillingButton:s,allowTeamCreation:i,isLimitedView:c,isProviderAlpha:u,canAccessTeamSettings:d,isEndOfTrialActive:l,isTeamSuspended:f}=U();return a.jsx(m.Menu,{menuButton:()=>a.jsxs("button",{className:k.profileButton,"aria-label":"Profile menu",type:"button",children:[t!=null&&t.logoUrl?a.jsx("img",{src:t.logoUrl,className:C(k.profileImage,{[k.profileImageHighlight]:r}),alt:"Team Logo"}):a.jsx("div",{className:C(k.userIconWrapper,"flex-row","align-center","items-center",{[k.profileImageHighlight]:r}),children:a.jsx(m.UserIcon,{size:"25px"})}),r&&a.jsx(tt,{className:k.profileImageUpgradeIcon})]}),children:a.jsx(m.MenuList,{placement:"right-end",className:k.menuContainer,children:e({allowTeamCreation:i,otherTeams:n,isLimitedView:c,canAccessTeamSettings:d,isEndOfTrialActive:l,isTeamSuspended:f,showBillingButton:s,isProviderAlpha:u})})})},ge=0,rt=9999,st=[150,151,250,251],at=[152,153,252,253],it=[154,155,157,158,254,255,258,354,355,358],ot=[156,159,160,256,259,260],be=9998,W=e=>e===ge,_e=e=>e===rt,jn=e=>st.includes(e),yn=e=>at.includes(e),wn=e=>it.includes(e),In=e=>ot.includes(e),xn=e=>e>ge&&e<be,Sn=e=>e===be,Nn=/\n/,De=(e,t,n)=>e.split(t).flatMap((r,s)=>s!==0?[g.cloneElement(n,{key:Math.random().toString(32).slice(0,10)}),r]:r),Pn=(e,t,n)=>typeof e=="string"?De(e,t,n):e.flatMap(r=>typeof r=="string"?De(r,t,n):r),kn=e=>Pn(e,Nn,a.jsx("br",{})),En=/(\b(https?|):\/\/[-a-zA-Zа-яА-Я0-9+&@#/%?=~_|!:,.;]*[-a-zA-Zа-яА-Я0-9+&@#/%=~_|])/gi,Cn=e=>e.match(En)??[],$e=(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!=="")},Fe=e=>{const t=Cn(e);return t!=null&&t.length?t.reduce((n,r,s)=>typeof n=="string"?$e(n,r,s):n.flatMap(i=>typeof i=="string"?$e(i,r,s):i),e):e},Rn=e=>typeof e=="string"?Fe(e):e.flatMap(t=>typeof t=="string"?Fe(t):t,e),An=(e,t="PP")=>Qe.format(e,t),zn=(e,t,n="PP")=>Qe.format(St.toZonedTime(e,t),n),Ln=e=>{g.useEffect(e,[])},On=({children:e,config:t})=>{const{teams:n,currentTeamId:r,planId:s,isLimitedView:i,isTeamSuspended:c,canAccessTeamSettings:u,isEndOfTrialActive:d}=t,l=n.find(b=>b.id===r),f=n.filter(b=>b.id!==r),p=(l==null?void 0:l.role)??"",j=["biller","owner"].includes(p),y=W(s)||_e(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(nt.Provider,{value:N,children:e})},qn=({config:e,children:t})=>a.jsx(On,{config:e,children:a.jsx(Tn,{children:t})}),Mn="_container_q5pot_1",Un="_profileEmail_q5pot_5",Ge={container:Mn,profileEmail:Un},Bn=({href:e,onClick:t,userEmail:n,hideBottomDivider:r})=>{const{isEndOfTrialActive:s,isTeamSuspended:i}=U();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 ${Ge.container}`,children:[a.jsx("span",{children:"Profile Settings"}),a.jsx("span",{className:Ge.profileEmail,children:n})]})}),!r&&a.jsx(m.MenuDivider,{})]})},Dn="_wrapper_15d85_1",$n="_profileImage_15d85_14",Fn="_teamName_15d85_22",Gn="_planLabel_15d85_29",Hn="_membership_15d85_38",Wn="_defaultProfileImage_15d85_44",R={wrapper:Dn,profileImage:$n,teamName:Fn,planLabel:Gn,membership:Hn,defaultProfileImage:Wn},ct=({team:e,onClick:t,hidePlanLabel:n})=>{const{currentTeam:r,planId:s}=U(),i=e||r;if(!i)return null;const c=W(s)?"Free":_e(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})]})]})},Kn="_teamsContainer_1t68g_1",Jn={teamsContainer:Kn},Qn=({onSwitchTeam:e})=>{const{otherTeams:t}=U();return t.length===0?null:a.jsx("div",{className:`flex-col items-stretch ${Jn.teamsContainer}`,children:t.map(n=>a.jsx(ct,{team:n,onClick:e,hidePlanLabel:!0},n.id))})},Vn="_container_1u995_1",Yn="_planCta_1u995_15",Zn="_upgradeIconWrapper_1u995_19",ue={container:Vn,planCta:Yn,upgradeIconWrapper:Zn},Xn=({upgradeOptionHref:e})=>{const{planId:t,trialDaysLeft:n,showUpgradeCta:r}=U();if(!r)return null;const c=W(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 ${ue.container}`,children:[a.jsx("span",{className:ue.planCta,children:c}),a.jsxs("div",{className:`flex-row items-center gap-1 ${ue.upgradeIconWrapper}`,children:[a.jsx(tt,{}),a.jsx("span",{children:"See upgrade options"})]})]})},I=({children:e,...t})=>a.jsx("nav",{...t,className:tn.sidebarContainer,children:e});I.Top=({children:e})=>a.jsx("div",{children:e});I.Bottom=({children:e})=>a.jsx("div",{children:e});I.Avatar=sn;I.IconLink=cn;I.Menu=dn;I.ProfileMenu=qn;I.TeamSwitch=Qn;I.TeamMenuItem=ct;I.UpgradeMenuItem=Xn;I.ProfileSettingsMenuItem=Bn;const er="_breadcrumbsItem_1hm6a_1",tr="_breadcrumbs_1hm6a_1",He={breadcrumbsItem:er,breadcrumbs:tr},nr=({items:e})=>a.jsx("nav",{"aria-label":"breadcrumb",className:He.breadcrumbs,children:e.map((t,n)=>a.jsxs(g.Fragment,{children:[a.jsx(m.Link,{className:He.breadcrumbsItem,href:t.link,rel:"noreferrer",children:t.name}),n<e.length-1&&a.jsx("span",{children:" — "})]},`${t.link}-${t.name}`))}),rr=({items:e})=>a.jsx(a.Fragment,{children:e.map((t,n)=>a.jsxs(g.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))}),sr="_badge_1pc1v_1",ar="_tag_1pc1v_15",ir="_withNavLinkStyle_1pc1v_42 _withLinkStyle_1pc1v_21",or="_disabled_1pc1v_57",cr="_projectNavigationItem_1pc1v_61",lr="_projectNavigationItemDisabled_1pc1v_67",E={badge:sr,tag:ar,withNavLinkStyle:ir,disabled:or,projectNavigationItem:cr,projectNavigationItemDisabled:lr},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:E.badge,"aria-label":`${t} items requiring attention`,children:t>9?"9+":t})]}),!!n&&a.jsx(m.Tag,{className:E.tag,children:n})]}),de=g.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?E.projectNavigationItemDisabled:E.projectNavigationItem,children:s||n||!t?a.jsx("button",{type:"button",ref:c,className:C(E.withNavLinkStyle,{[E.disabled]:n}),disabled:n,onClick:s,children:a.jsx(We,{label:e,badge:r,novel:i})}):a.jsx("a",{href:t,className:E.withNavLinkStyle,children:a.jsx(We,{label:e,badge:r,novel:i})})})}));de.displayName="NavigationTabsItem";const ur=e=>(e==null?void 0:e.some(t=>t.some(n=>n.visible)))??!1,dr=e=>e.visible&&(!e.dropdown||ur(e.dropdown)),fr=({navigation:e,activeItem:t})=>a.jsx("nav",{"aria-label":"Project",children:a.jsx("ul",{className:A.navigationTabList,"aria-orientation":"horizontal",children:e.filter(dr).map(n=>{var r,s,i;return n.dropdown?a.jsx("li",{className:A.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(de,{label:n.label,disabled:n.disabled,active:c}),children:a.jsx(m.MenuList,{children:a.jsx(rr,{items:n.dropdown})})})},n.key):a.jsx("li",{className:A.navigationTab,"data-testid":n.key,"aria-selected":(s=n.isActive)==null?void 0:s.call(n,t),children:a.jsx(de,{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)})})}),mr=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)])}),hr=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(mr),is_admin:o.z.boolean(),is_reviewer:o.z.boolean()}),gr=o.z.object({project_id:o.z.string(),contributors:o.z.array(hr)}),lt=Je.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:gr}),ut=o.z.union([o.z.literal("owner"),o.z.literal("admin"),o.z.literal("biller"),o.z.literal("member")]),dt=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:ut}),br=o.z.object({team_id:o.z.number(),team_user:dt}),ft=Je.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:br}),mt=o.z.object({accessToken:o.z.string(),refreshToken:o.z.string()}),K=xt.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:mt}),ht={teamUserKey:(e,t)=>["GetTeamUsers",e,t]},gt=(e,t)=>me.useQuery({...t,queryFn:({queryKey:[n,r,s]})=>M.sendByGetRoute(e,ft,{pathParams:{teamId:r,userId:s}})}),bt={teamKey:e=>["getUserToken",e]},_t=(e,t)=>me.useQuery({...t,queryFn:({queryKey:[n,r]})=>M.sendByPayloadRoute(e,K,{pathParams:{teamId:r},headers:{}})}),pt={projectUserKey:(e,t)=>["RetrieveContributor",e,t]},vt=(e,t)=>me.useQuery({...t,queryFn:({queryKey:[n,r,s]})=>M.sendByGetRoute(e,lt,{pathParams:{projectId:r,contributorId:s}})}),_r=o.z.object({userId:o.z.number(),userUuid:o.z.string(),teamId:o.z.number(),userTeamRole:ut,userEmail:o.z.string().email(),userName:o.z.string(),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 B(e){try{const t=e.split(".")[1],n=atob(t);return _r.parse(JSON.parse(n))}catch{return}}const H=class H extends CustomEvent{constructor(t){super(H.eventName,{detail:{token:t,payload:B(t.accessToken)}})}};we(H,"eventName","new-jwt-issued");let z=H;const pr=bt;function vr(e,t){const n=_t(e,t),r=g.useRef();return g.useEffect(()=>{n.data&&n.data.accessToken!==r.current&&(window.dispatchEvent(new z(n.data)),r.current=n.data.accessToken)},[n.data]),n}function pe(){const e=fe(document.cookie,"accessToken"),t=fe(document.cookie,"refreshToken");return!e||!t?Promise.resolve(void 0):Promise.resolve({accessToken:e,refreshToken:t})}function Tr(){return Promise.resolve(fe(document.cookie,"csrf_token"))}function fe(e,t){var n,r;return(r=(n=e.split(";").find(s=>s.trim().startsWith(`${t}=`)))==null?void 0:n.trim())==null?void 0:r.substring(t.length+1)}function ve(){const[e,t]=g.useState();return g.useEffect(()=>{let n=!1;const r=s=>{t(s.detail.payload),n=!0};return pe().then(s=>s&&B(s.accessToken)).then(s=>{n||t(s)}),window.addEventListener(z.eventName,r),()=>{window.removeEventListener(z.eventName,r)}},[]),e}const jr=ht;function yr(e){const t=ve();return gt(e,(t==null?void 0:t.teamId)??0,(t==null?void 0:t.userId)??0)}const wr=pt;function Ir(e,t){const n=ve();return vt(e,(n==null?void 0:n.userId)??0)}async function xr(){const e=await pe();if(!e)return Promise.resolve(void 0);const t=B(e.accessToken);return t?{...e,payload:t}:Promise.resolve(void 0)}function G(e){return{Authorization:`Bearer ${e}`}}function Sr(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,...G(i.accessToken)}});if(i&&(c.status===401||c.status===403)){const d=B(i.accessToken);if(!d)return c;const l=await M.sendByPayloadRoute(e,K,{pathParams:{teamId:d.teamId},headers:G(i.refreshToken)});return await((u=t.onNewJwtTokenIssued)==null?void 0:u.call(t,l)),n(r,{...s,headers:{...s.headers,...G(l.accessToken)}})}return c}}const Tt={wretch:{lokaliseAuth(e){return this.middlewares([Sr(this,e)])}}};function Nr(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 M.sendByPayloadRoute(e,K,{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,...G(u.accessToken)}})}}const Pr={wretch:{lokaliseAuth(e={}){return this.addon(Tt).lokaliseAuth(Ke(e))},promoteClassicSession(e){const t=Ke(e);return this.middlewares([Nr(this,t)])}}};function Ke(e){return{...e,getCachedJwtToken:e.getCachedJwtToken??pe,getCsrfToken:"getCsrfToken"in e?e.getCsrfToken:Tr,onNewJwtTokenIssued:t=>{var n;return window.dispatchEvent(new z(t)),((n=e.onNewJwtTokenIssued)==null?void 0:n.call(e,t))??Promise.resolve()}}}exports.Breadcrumbs=nr;exports.ENTERPRISE_OPENSOURCE_PLAN_ID=be;exports.ENTERPRISE_PLAN_IDS=ot;exports.ESSENTIAL_PLAN_IDS=at;exports.FREE_PLAN_ID=ge;exports.JWT_TOKEN_SCHEMA=mt;exports.LokaliseAuthAddon=Tt;exports.LokaliseAuthBrowserAddon=Pr;exports.NavigationPanel=q;exports.NavigationTabs=fr;exports.PRO_PLAN_IDS=it;exports.START_PLAN_IDS=st;exports.Sidebar=I;exports.TEAM_USER_SCHEMA=dt;exports.TRIAL_PLAN_ID=rt;exports.authenticatedContributorKeys=wr;exports.authenticatedUserKeys=jr;exports.convertNewLineToBreakTag=kn;exports.formatDate=An;exports.formatDateTz=zn;exports.getAuthenticatedSessionDetailFromRequest=xr;exports.getPromotedClassicSessionJwtKey=pr;exports.getTeamUser=ft;exports.getTeamUsersQueryKey=ht;exports.getUserToken=K;exports.getUserTokenKey=bt;exports.isEnterpriseOpenSourcePlan=Sn;exports.isEnterprisePlan=In;exports.isEssentialPlan=yn;exports.isFreePlan=W;exports.isPaidPlan=xn;exports.isProPlan=wn;exports.isStartPlan=jn;exports.isTrialPlan=_e;exports.makeUrlClickable=Rn;exports.parseJwtTokenPayload=B;exports.retrieveContributor=lt;exports.retrieveContributorKeys=pt;exports.useAuthenticatedProjectContributor=Ir;exports.useAuthenticatedSessionPayload=ve;exports.useAuthenticatedUser=yr;exports.useEffectOnce=Ln;exports.useGetPromotedClassicSessionJwtQuery=vr;exports.useGetUserTokenQuery=_t;exports.useRetrieveContributorQuery=vt;exports.userGetTeamUsersQuery=gt;
1
+ "use strict";var wt=Object.defineProperty;var It=(e,t,n)=>t in e?wt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var we=(e,t,n)=>It(e,typeof t!="symbol"?t+"":t,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),g=require("react"),m=require("@lokalise/louis"),o=require("zod"),M=require("@lokalise/frontend-http-client"),xt=require("@lokalise/universal-ts-utils/api-contracts/apiContracts"),me=require("@tanstack/react-query"),Je=require("@lokalise/universal-ts-utils/node"),Qe=require("date-fns"),St=require("date-fns-tz");function Nt(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=Nt(g);var F=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ve(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Q,Ie;function he(){if(Ie)return Q;Ie=1;function e(t){var n=typeof t;return t!=null&&(n=="object"||n=="function")}return Q=e,Q}var V,xe;function Pt(){if(xe)return V;xe=1;var e=typeof F=="object"&&F&&F.Object===Object&&F;return V=e,V}var Y,Se;function Ye(){if(Se)return Y;Se=1;var e=Pt(),t=typeof self=="object"&&self&&self.Object===Object&&self,n=e||t||Function("return this")();return Y=n,Y}var Z,Ne;function kt(){if(Ne)return Z;Ne=1;var e=Ye(),t=function(){return e.Date.now()};return Z=t,Z}var X,Pe;function Et(){if(Pe)return X;Pe=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 ee,ke;function Rt(){if(ke)return ee;ke=1;var e=Et(),t=/^\s+/;function n(r){return r&&r.slice(0,e(r)+1).replace(t,"")}return ee=n,ee}var te,Ee;function Ze(){if(Ee)return te;Ee=1;var e=Ye(),t=e.Symbol;return te=t,te}var ne,Re;function Ct(){if(Re)return ne;Re=1;var e=Ze(),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 ne=i,ne}var re,Ce;function At(){if(Ce)return re;Ce=1;var e=Object.prototype,t=e.toString;function n(r){return t.call(r)}return re=n,re}var se,Ae;function zt(){if(Ae)return se;Ae=1;var e=Ze(),t=Ct(),n=At(),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 se=c,se}var ae,ze;function Lt(){if(ze)return ae;ze=1;function e(t){return t!=null&&typeof t=="object"}return ae=e,ae}var ie,Le;function Ot(){if(Le)return ie;Le=1;var e=zt(),t=Lt(),n="[object Symbol]";function r(s){return typeof s=="symbol"||t(s)&&e(s)==n}return ie=r,ie}var oe,Oe;function qt(){if(Oe)return oe;Oe=1;var e=Rt(),t=he(),n=Ot(),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 oe=d,oe}var ce,qe;function Xe(){if(qe)return ce;qe=1;var e=he(),t=kt(),n=qt(),r="Expected a function",s=Math.max,i=Math.min;function c(u,d,l){var f,p,y,j,_,w,x=0,N=!1,b=!1,S=!0;if(typeof u!="function")throw new TypeError(r);d=n(d)||0,e(l)&&(N=!!l.leading,b="maxWait"in l,y=b?s(n(l.maxWait)||0,d):y,S="trailing"in l?!!l.trailing:S);function T(h){var P=f,L=p;return f=p=void 0,x=h,j=u.apply(L,P),j}function v(h){return x=h,_=setTimeout($,d),N?T(h):j}function D(h){var P=h-w,L=h-x,je=d-P;return b?i(je,y-L):je}function Te(h){var P=h-w,L=h-x;return w===void 0||P>=d||P<0||b&&L>=y}function $(){var h=t();if(Te(h))return ye(h);_=setTimeout($,D(h))}function ye(h){return _=void 0,S&&f?T(h):(f=p=void 0,j)}function yt(){_!==void 0&&clearTimeout(_),x=0,f=w=p=_=void 0}function jt(){return _===void 0?j:ye(t())}function J(){var h=t(),P=Te(h);if(f=arguments,p=this,w=h,P){if(_===void 0)return v(w);if(b)return clearTimeout(_),_=setTimeout($,d),T(w)}return _===void 0&&(_=setTimeout($,d)),j}return J.cancel=yt,J.flush=jt,J}return ce=c,ce}var Mt=Xe();const Ut=Ve(Mt);var le,Me;function Bt(){if(Me)return le;Me=1;var e=Xe(),t=he(),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 le=r,le}var Dt=Bt();const $t=Ve(Dt),Ft=(e,t,n,r)=>{switch(t){case"debounce":return Ut(e,n,r);case"throttle":return $t(e,n,r);default:return e}},Gt=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)},[])},Ht=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}},Wt=(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 Kt({skipOnMount:e=!1,refreshMode:t,refreshRate:n=1e3,refreshOptions:r,handleWidth:s=!0,handleHeight:i=!0,targetRef:c,observerOptions:u,onResize:d}={}){const l=g.useRef(e),f=Gt(d),[p,y]=g.useState({width:void 0,height:void 0}),{refProxy:j,refElement:_}=Ht(c),{box:w}=u||{},x=g.useCallback(b=>{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;b.forEach(T=>{const v=Wt(T,w);y(D=>S(D,v)?(f==null||f({width:v.width,height:v.height,entry:T}),v):D)})},[s,i,l,w]),N=g.useCallback(Ft(x,t,n,r),[x,t,n,r]);return g.useEffect(()=>{let b;return _?(b=new window.ResizeObserver(N),b.observe(_,u)):(p.width||p.height)&&(f==null||f({width:null,height:null,entry:null}),y({width:void 0,height:void 0})),()=>{var S,T,v;(S=b==null?void 0:b.disconnect)===null||S===void 0||S.call(b),(v=(T=N).cancel)===null||v===void 0||v.call(T)}},[N,_]),Object.assign({ref:j},p)}function et(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=et(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function R(){for(var e,t,n=0,r="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=et(e))&&(r&&(r+=" "),r+=t);return r}const Jt="_headerContainer_1cubo_1",Qt="_navigationTabList_1cubo_8",Vt="_navigationTab_1cubo_8",Yt="_headerContent_1cubo_34",Zt="_staticEnabled_1cubo_50",A={headerContainer:Jt,navigationTabList:Qt,navigationTab:Vt,headerContent:Yt,staticEnabled:Zt},Xt=77,q=({sticky:e,children:t})=>{const{ref:n,height:r}=Kt({refreshMode:"debounce",refreshRate:0}),[s,i]=g.useState(!1),c=()=>s?!e:!0;g.useEffect(()=>{const d=()=>{i(window.scrollY>0)};return window.addEventListener("scroll",d),()=>window.removeEventListener("scroll",d)},[]);const u=`${r||Xt}px`;return a.jsx("div",{style:{minHeight:u},children:a.jsx("div",{children:a.jsxs("div",{ref:n,className:R(A.headerContent,{[A.staticEnabled]:c()}),children:[a.jsx(q.Header,{}),a.jsx(q.Tabs,{}),t]})})})};q.Header=({children:e})=>a.jsx("div",{className:A.headerContainer,children:e});q.Tabs=({children:e})=>a.jsx("div",{className:"flex justify-between gap-2 nowrap",children:e});const en="_sidebarContainer_bmdti_1",tn={sidebarContainer:en},nn="_logoLink_1baxb_1",rn={logoLink:nn},sn=({src:e,href:t="/",ariaLabel:n="Home",alt:r="Lokalise"})=>a.jsx("a",{className:rn.logoLink,href:t,"aria-label":n,children:a.jsx("img",{src:e,alt:r})}),an="_link_1weq1_1",on="_active_1weq1_18",Ue={link:an,active:on},cn=({label:e,to:t,icon:n})=>a.jsx(m.Tooltip,{placement:"right",tooltip:e,children:a.jsx(m.Link,{className:R(Ue.link,{[Ue.active]:window.location.pathname.startsWith(t)}),href:t,children:a.jsx(n,{size:"25px"})})}),ln="_dropdownButton_hwh0c_1",un="_dropdownButtonActive_hwh0c_18",Be={dropdownButton:ln,dropdownButtonActive:un},dn=({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:R(Be.dropdownButton,{[Be.dropdownButtonActive]:n}),children:a.jsx(t,{size:"25px"})})}),children:a.jsx(m.MenuList,{placement:"right-start",children:e})}),fn="_iconContainer_nz34m_1",mn={iconContainer:fn},tt=({className:e=""})=>a.jsx("div",{"aria-label":"Upgrade Icon",className:R(mn.iconContainer,"flex-row","items-center","justify-center",e),children:a.jsx(m.CaretUpIcon,{})}),hn="_menuContainer_wbu3u_5",gn="_profileButton_wbu3u_16",bn="_profileImage_wbu3u_29",_n="_profileImageHighlight_wbu3u_37",pn="_profileImageUpgradeIcon_wbu3u_41",vn="_userIconWrapper_wbu3u_47",k={menuContainer:hn,profileButton:gn,profileImage:bn,profileImageHighlight:_n,profileImageUpgradeIcon:pn,userIconWrapper:vn},nt=g.createContext({}),U=()=>g.useContext(nt),Tn=({children:e})=>{const{currentTeam:t,otherTeams:n,showUpgradeCta:r,showBillingButton:s,allowTeamCreation:i,isLimitedView:c,isProviderAlpha:u,canAccessTeamSettings:d,isEndOfTrialActive:l,isTeamSuspended:f}=U();return a.jsx(m.Menu,{menuButton:()=>a.jsxs("button",{className:k.profileButton,"aria-label":"Profile menu",type:"button",children:[t!=null&&t.logoUrl?a.jsx("img",{src:t.logoUrl,className:R(k.profileImage,{[k.profileImageHighlight]:r}),alt:"Team Logo"}):a.jsx("div",{className:R(k.userIconWrapper,"flex-row","align-center","items-center",{[k.profileImageHighlight]:r}),children:a.jsx(m.UserIcon,{size:"25px"})}),r&&a.jsx(tt,{className:k.profileImageUpgradeIcon})]}),children:a.jsx(m.MenuList,{placement:"right-end",className:k.menuContainer,children:e({allowTeamCreation:i,otherTeams:n,isLimitedView:c,canAccessTeamSettings:d,isEndOfTrialActive:l,isTeamSuspended:f,showBillingButton:s,isProviderAlpha:u})})})},ge=0,rt=9999,st=[150,151,250,251],at=[152,153,252,253],it=[154,155,157,158,254,255,258,354,355,358],ot=[156,159,160,256,259,260],be=9998,W=e=>e===ge,_e=e=>e===rt,yn=e=>st.includes(e),jn=e=>at.includes(e),wn=e=>it.includes(e),In=e=>ot.includes(e),xn=e=>e>ge&&e<be,Sn=e=>e===be,Nn=/\n/,De=(e,t,n)=>e.split(t).flatMap((r,s)=>s!==0?[g.cloneElement(n,{key:Math.random().toString(32).slice(0,10)}),r]:r),Pn=(e,t,n)=>typeof e=="string"?De(e,t,n):e.flatMap(r=>typeof r=="string"?De(r,t,n):r),kn=e=>Pn(e,Nn,a.jsx("br",{})),En=/(\b(https?|):\/\/[-a-zA-Zа-яА-Я0-9+&@#/%?=~_|!:,.;]*[-a-zA-Zа-яА-Я0-9+&@#/%=~_|])/gi,Rn=e=>e.match(En)??[],$e=(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!=="")},Fe=e=>{const t=Rn(e);return t!=null&&t.length?t.reduce((n,r,s)=>typeof n=="string"?$e(n,r,s):n.flatMap(i=>typeof i=="string"?$e(i,r,s):i),e):e},Cn=e=>typeof e=="string"?Fe(e):e.flatMap(t=>typeof t=="string"?Fe(t):t,e),An=(e,t="PP")=>Qe.format(e,t),zn=(e,t,n="PP")=>Qe.format(St.toZonedTime(e,t),n),Ln=e=>{g.useEffect(e,[])},On=({children:e,config:t})=>{const{teams:n,currentTeamId:r,planId:s,isLimitedView:i,isTeamSuspended:c,canAccessTeamSettings:u,isEndOfTrialActive:d}=t,l=n.find(b=>b.id===r),f=n.filter(b=>b.id!==r),p=(l==null?void 0:l.role)??"",y=["biller","owner"].includes(p),j=W(s)||_e(s),N={...t,currentTeam:l,otherTeams:f,canChangeBilling:y,isOnFreeOrTrialPlan:j,showUpgradeCta:!i&&j&&y&&!c,showBillingButton:!i&&u&&y,allowTeamCreation:!i&&!d};return a.jsx(nt.Provider,{value:N,children:e})},qn=({config:e,children:t})=>a.jsx(On,{config:e,children:a.jsx(Tn,{children:t})}),Mn="_container_q5pot_1",Un="_profileEmail_q5pot_5",Ge={container:Mn,profileEmail:Un},Bn=({href:e,onClick:t,userEmail:n,hideBottomDivider:r})=>{const{isEndOfTrialActive:s,isTeamSuspended:i}=U();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 ${Ge.container}`,children:[a.jsx("span",{children:"Profile Settings"}),a.jsx("span",{className:Ge.profileEmail,children:n})]})}),!r&&a.jsx(m.MenuDivider,{})]})},Dn="_wrapper_15d85_1",$n="_profileImage_15d85_14",Fn="_teamName_15d85_22",Gn="_planLabel_15d85_29",Hn="_membership_15d85_38",Wn="_defaultProfileImage_15d85_44",C={wrapper:Dn,profileImage:$n,teamName:Fn,planLabel:Gn,membership:Hn,defaultProfileImage:Wn},ct=({team:e,onClick:t,hidePlanLabel:n})=>{const{currentTeam:r,planId:s}=U(),i=e||r;if(!i)return null;const c=W(s)?"Free":_e(s)?"Trial":void 0,u=t?m.MenuItem:"div";return a.jsxs(u,{className:`flex-row gap-2 flex-nowrap items-center ${C.wrapper}`,...t&&{onClick:()=>t(i)},children:[i.logoUrl?a.jsx("img",{className:C.profileImage,src:i.logoUrl,alt:"Team Logo"}):a.jsx("span",{className:`flex-row justify-center items-center ${C.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:C.teamName,children:i.name}),c&&!n&&a.jsx("span",{className:`flex-row justify-center items-center ${C.planLabel}`,children:c})]}),a.jsx("span",{className:C.membership,children:i.role})]})]})},Kn="_teamsContainer_1t68g_1",Jn={teamsContainer:Kn},Qn=({onSwitchTeam:e})=>{const{otherTeams:t}=U();return t.length===0?null:a.jsx("div",{className:`flex-col items-stretch ${Jn.teamsContainer}`,children:t.map(n=>a.jsx(ct,{team:n,onClick:e,hidePlanLabel:!0},n.id))})},Vn="_container_1u995_1",Yn="_planCta_1u995_15",Zn="_upgradeIconWrapper_1u995_19",ue={container:Vn,planCta:Yn,upgradeIconWrapper:Zn},Xn=({upgradeOptionHref:e})=>{const{planId:t,trialDaysLeft:n,showUpgradeCta:r}=U();if(!r)return null;const c=W(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 ${ue.container}`,children:[a.jsx("span",{className:ue.planCta,children:c}),a.jsxs("div",{className:`flex-row items-center gap-1 ${ue.upgradeIconWrapper}`,children:[a.jsx(tt,{}),a.jsx("span",{children:"See upgrade options"})]})]})},I=({children:e,...t})=>a.jsx("nav",{...t,className:tn.sidebarContainer,children:e});I.Top=({children:e})=>a.jsx("div",{children:e});I.Bottom=({children:e})=>a.jsx("div",{children:e});I.Avatar=sn;I.IconLink=cn;I.Menu=dn;I.ProfileMenu=qn;I.TeamSwitch=Qn;I.TeamMenuItem=ct;I.UpgradeMenuItem=Xn;I.ProfileSettingsMenuItem=Bn;const er="_breadcrumbsItem_1hm6a_1",tr="_breadcrumbs_1hm6a_1",He={breadcrumbsItem:er,breadcrumbs:tr},nr=({items:e})=>a.jsx("nav",{"aria-label":"breadcrumb",className:He.breadcrumbs,children:e.map((t,n)=>a.jsxs(g.Fragment,{children:[a.jsx(m.Link,{className:He.breadcrumbsItem,href:t.link,rel:"noreferrer",children:t.name}),n<e.length-1&&a.jsx("span",{children:" — "})]},`${t.link}-${t.name}`))}),rr=({items:e})=>a.jsx(a.Fragment,{children:e.map((t,n)=>a.jsxs(g.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))}),sr="_badge_1pc1v_1",ar="_tag_1pc1v_15",ir="_withNavLinkStyle_1pc1v_42 _withLinkStyle_1pc1v_21",or="_disabled_1pc1v_57",cr="_projectNavigationItem_1pc1v_61",lr="_projectNavigationItemDisabled_1pc1v_67",E={badge:sr,tag:ar,withNavLinkStyle:ir,disabled:or,projectNavigationItem:cr,projectNavigationItemDisabled:lr},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:E.badge,"aria-label":`${t} items requiring attention`,children:t>9?"9+":t})]}),!!n&&a.jsx(m.Tag,{className:E.tag,children:n})]}),de=g.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?E.projectNavigationItemDisabled:E.projectNavigationItem,children:s||n||!t?a.jsx("button",{type:"button",ref:c,className:R(E.withNavLinkStyle,{[E.disabled]:n}),disabled:n,onClick:s,children:a.jsx(We,{label:e,badge:r,novel:i})}):a.jsx("a",{href:t,className:E.withNavLinkStyle,children:a.jsx(We,{label:e,badge:r,novel:i})})})}));de.displayName="NavigationTabsItem";const ur=e=>(e==null?void 0:e.some(t=>t.some(n=>n.visible)))??!1,dr=e=>e.visible&&(!e.dropdown||ur(e.dropdown)),fr=({navigation:e,activeItem:t})=>a.jsx("nav",{"aria-label":"Project",children:a.jsx("ul",{className:A.navigationTabList,"aria-orientation":"horizontal",children:e.filter(dr).map(n=>{var r,s,i;return n.dropdown?a.jsx("li",{className:A.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(de,{label:n.label,disabled:n.disabled,active:c}),children:a.jsx(m.MenuList,{children:a.jsx(rr,{items:n.dropdown})})})},n.key):a.jsx("li",{className:A.navigationTab,"data-testid":n.key,"aria-selected":(s=n.isActive)==null?void 0:s.call(n,t),children:a.jsx(de,{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)})})}),mr=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)])}),hr=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(mr),is_admin:o.z.boolean(),is_reviewer:o.z.boolean()}),gr=o.z.object({project_id:o.z.string(),contributors:o.z.array(hr)}),lt=Je.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:gr}),ut=o.z.union([o.z.literal("owner"),o.z.literal("admin"),o.z.literal("biller"),o.z.literal("member")]),dt=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:ut}),br=o.z.object({team_id:o.z.number(),team_user:dt}),ft=Je.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:br}),mt=o.z.object({accessToken:o.z.string(),refreshToken:o.z.string()}),K=xt.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:mt}),ht={teamUserKey:(e,t)=>["GetTeamUsers",e,t]},gt=(e,t)=>me.useQuery({...t,queryFn:({queryKey:[n,r,s]})=>M.sendByGetRoute(e,ft,{pathParams:{teamId:r,userId:s}})}),bt={teamKey:e=>["getUserToken",e]},_t=(e,t)=>me.useQuery({...t,queryFn:({queryKey:[n,r]})=>M.sendByPayloadRoute(e,K,{pathParams:{teamId:r},headers:{}})}),pt={projectUserKey:(e,t)=>["RetrieveContributor",e,t]},vt=(e,t)=>me.useQuery({...t,queryFn:({queryKey:[n,r,s]})=>M.sendByGetRoute(e,lt,{pathParams:{projectId:r,contributorId:s}})}),_r=o.z.object({userId:o.z.number(),userUuid:o.z.string(),teamId:o.z.number(),userTeamRole:ut,userEmail:o.z.string().email(),userName:o.z.string(),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 B(e){try{const t=e.split(".")[1],n=atob(t);return _r.parse(JSON.parse(n))}catch{return}}const H=class H extends CustomEvent{constructor(t){super(H.eventName,{detail:{token:t,payload:B(t.accessToken)}})}};we(H,"eventName","new-jwt-issued");let z=H;function pr(e,t){const n=_t(e,{queryKey:bt.teamKey(t)}),r=g.useRef();return g.useEffect(()=>{n.data&&n.data.accessToken!==r.current&&(window.dispatchEvent(new z(n.data)),r.current=n.data.accessToken)},[n.data]),n}function pe(){const e=fe(document.cookie,"accessToken"),t=fe(document.cookie,"refreshToken");return!e||!t?Promise.resolve(void 0):Promise.resolve({accessToken:e,refreshToken:t})}function vr(){return Promise.resolve(fe(document.cookie,"csrf_token"))}function fe(e,t){var n,r;return(r=(n=e.split(";").find(s=>s.trim().startsWith(`${t}=`)))==null?void 0:n.trim())==null?void 0:r.substring(t.length+1)}function ve(){const[e,t]=g.useState();return g.useEffect(()=>{let n=!1;const r=s=>{t(s.detail.payload),n=!0};return pe().then(s=>s&&B(s.accessToken)).then(s=>{n||t(s)}),window.addEventListener(z.eventName,r),()=>{window.removeEventListener(z.eventName,r)}},[]),e}function Tr(e){const t=ve();return gt(e,{queryKey:ht.teamUserKey((t==null?void 0:t.teamId)??0,(t==null?void 0:t.userId)??0)})}function yr(e,t){const n=ve();return vt(e,{queryKey:pt.projectUserKey(t,(n==null?void 0:n.userId)??0),enabled:n!==void 0})}async function jr(){const e=await pe();if(!e)return Promise.resolve(void 0);const t=B(e.accessToken);return t?{...e,payload:t}:Promise.resolve(void 0)}function G(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,...G(i.accessToken)}});if(i&&(c.status===401||c.status===403)){const d=B(i.accessToken);if(!d)return c;const l=await M.sendByPayloadRoute(e,K,{pathParams:{teamId:d.teamId},headers:G(i.refreshToken)});return await((u=t.onNewJwtTokenIssued)==null?void 0:u.call(t,l)),n(r,{...s,headers:{...s.headers,...G(l.accessToken)}})}return c}}const Tt={wretch:{lokaliseAuth(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 M.sendByPayloadRoute(e,K,{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,...G(u.accessToken)}})}}const xr={wretch:{lokaliseAuth(e={}){return this.addon(Tt).lokaliseAuth(Ke(e))},promoteClassicSession(e){const t=Ke(e);return this.middlewares([Ir(this,t)])}}};function Ke(e){return{...e,getCachedJwtToken:e.getCachedJwtToken??pe,getCsrfToken:"getCsrfToken"in e?e.getCsrfToken:vr,onNewJwtTokenIssued:t=>{var n;return window.dispatchEvent(new z(t)),((n=e.onNewJwtTokenIssued)==null?void 0:n.call(e,t))??Promise.resolve()}}}exports.Breadcrumbs=nr;exports.ENTERPRISE_OPENSOURCE_PLAN_ID=be;exports.ENTERPRISE_PLAN_IDS=ot;exports.ESSENTIAL_PLAN_IDS=at;exports.FREE_PLAN_ID=ge;exports.JWT_TOKEN_SCHEMA=mt;exports.LokaliseAuthAddon=Tt;exports.LokaliseAuthBrowserAddon=xr;exports.NavigationPanel=q;exports.NavigationTabs=fr;exports.PRO_PLAN_IDS=it;exports.START_PLAN_IDS=st;exports.Sidebar=I;exports.TEAM_USER_SCHEMA=dt;exports.TRIAL_PLAN_ID=rt;exports.convertNewLineToBreakTag=kn;exports.formatDate=An;exports.formatDateTz=zn;exports.getAuthenticatedSessionDetailFromRequest=jr;exports.getTeamUser=ft;exports.getTeamUsersQueryKey=ht;exports.getUserToken=K;exports.getUserTokenKey=bt;exports.isEnterpriseOpenSourcePlan=Sn;exports.isEnterprisePlan=In;exports.isEssentialPlan=jn;exports.isFreePlan=W;exports.isPaidPlan=xn;exports.isProPlan=wn;exports.isStartPlan=yn;exports.isTrialPlan=_e;exports.makeUrlClickable=Cn;exports.parseJwtTokenPayload=B;exports.retrieveContributor=lt;exports.retrieveContributorKeys=pt;exports.useAuthenticatedProjectContributor=yr;exports.useAuthenticatedSessionPayload=ve;exports.useAuthenticatedUser=Tr;exports.useEffectOnce=Ln;exports.useGetPromotedClassicSessionJwtQuery=pr;exports.useGetTeamUsersQuery=gt;exports.useGetUserTokenQuery=_t;exports.useRetrieveContributorQuery=vt;
package/dist/harmony.mjs CHANGED
@@ -16,22 +16,22 @@ var $ = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : ty
16
16
  function it(e) {
17
17
  return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
18
18
  }
19
- var J, Se;
19
+ var K, Se;
20
20
  function pe() {
21
- if (Se) return J;
21
+ if (Se) return K;
22
22
  Se = 1;
23
23
  function e(t) {
24
24
  var n = typeof t;
25
25
  return t != null && (n == "object" || n == "function");
26
26
  }
27
- return J = e, J;
27
+ return K = e, K;
28
28
  }
29
- var K, Ee;
29
+ var J, Ee;
30
30
  function Rt() {
31
- if (Ee) return K;
31
+ if (Ee) return J;
32
32
  Ee = 1;
33
33
  var e = typeof $ == "object" && $ && $.Object === Object && $;
34
- return K = e, K;
34
+ return J = e, J;
35
35
  }
36
36
  var Q, Pe;
37
37
  function ot() {
@@ -116,7 +116,7 @@ function qt() {
116
116
  return ne = c, ne;
117
117
  }
118
118
  var re, qe;
119
- function Mt() {
119
+ function Ut() {
120
120
  if (qe) return re;
121
121
  qe = 1;
122
122
  function e(t) {
@@ -124,21 +124,21 @@ function Mt() {
124
124
  }
125
125
  return re = e, re;
126
126
  }
127
- var ae, Me;
128
- function Ut() {
129
- if (Me) return ae;
130
- Me = 1;
131
- var e = qt(), t = Mt(), n = "[object Symbol]";
127
+ var ae, Ue;
128
+ function Mt() {
129
+ if (Ue) return ae;
130
+ Ue = 1;
131
+ var e = qt(), t = Ut(), n = "[object Symbol]";
132
132
  function r(a) {
133
133
  return typeof a == "symbol" || t(a) && e(a) == n;
134
134
  }
135
135
  return ae = r, ae;
136
136
  }
137
- var ie, Ue;
137
+ var ie, Me;
138
138
  function Bt() {
139
- if (Ue) return ie;
140
- Ue = 1;
141
- var e = Lt(), t = pe(), n = Ut(), r = NaN, a = /^[-+]0x[0-9a-f]+$/i, o = /^0b[01]+$/i, c = /^0o[0-7]+$/i, u = parseInt;
139
+ if (Me) return ie;
140
+ Me = 1;
141
+ var e = Lt(), t = pe(), n = Mt(), r = NaN, a = /^[-+]0x[0-9a-f]+$/i, o = /^0b[01]+$/i, c = /^0o[0-7]+$/i, u = parseInt;
142
142
  function d(l) {
143
143
  if (typeof l == "number")
144
144
  return l;
@@ -173,7 +173,7 @@ function ct() {
173
173
  function p(f) {
174
174
  return N = f, g = setTimeout(B, d), S ? v(f) : w;
175
175
  }
176
- function U(f) {
176
+ function M(f) {
177
177
  var E = f - y, O = f - N, Ie = d - E;
178
178
  return h ? o(Ie, T - O) : Ie;
179
179
  }
@@ -185,7 +185,7 @@ function ct() {
185
185
  var f = t();
186
186
  if (we(f))
187
187
  return ye(f);
188
- g = setTimeout(B, U(f));
188
+ g = setTimeout(B, M(f));
189
189
  }
190
190
  function ye(f) {
191
191
  return g = void 0, k && m ? v(f) : (m = b = void 0, w);
@@ -250,7 +250,7 @@ const Ht = /* @__PURE__ */ it(Ft), Gt = (e, t, n, r) => {
250
250
  return (r = t.current) === null || r === void 0 ? void 0 : r.call(t, ...n);
251
251
  }, []);
252
252
  }
253
- ), Jt = (
253
+ ), Kt = (
254
254
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
255
255
  (e) => {
256
256
  const [t, n] = x.useState((e == null ? void 0 : e.current) || null);
@@ -267,7 +267,7 @@ const Ht = /* @__PURE__ */ it(Ft), Gt = (e, t, n, r) => {
267
267
  }
268
268
  }), [t]), refElement: t, setRefElement: n };
269
269
  }
270
- ), Kt = (e, t) => t === "border-box" ? {
270
+ ), Jt = (e, t) => t === "border-box" ? {
271
271
  width: e.borderBoxSize[0].inlineSize,
272
272
  height: e.borderBoxSize[0].blockSize
273
273
  } : t === "content-box" ? {
@@ -281,7 +281,7 @@ function Qt({ skipOnMount: e = !1, refreshMode: t, refreshRate: n = 1e3, refresh
281
281
  const l = Ye(e), m = Wt(d), [b, T] = de({
282
282
  width: void 0,
283
283
  height: void 0
284
- }), { refProxy: w, refElement: g } = Jt(c), { box: y } = u || {}, N = ke((h) => {
284
+ }), { refProxy: w, refElement: g } = Kt(c), { box: y } = u || {}, N = ke((h) => {
285
285
  if (!a && !o)
286
286
  return;
287
287
  if (l.current) {
@@ -290,12 +290,12 @@ function Qt({ skipOnMount: e = !1, refreshMode: t, refreshRate: n = 1e3, refresh
290
290
  }
291
291
  const k = (v, p) => a && v.width !== p.width || o && v.height !== p.height;
292
292
  h.forEach((v) => {
293
- const p = Kt(v, y);
294
- T((U) => k(U, p) ? (m == null || m({
293
+ const p = Jt(v, y);
294
+ T((M) => k(M, p) ? (m == null || m({
295
295
  width: p.width,
296
296
  height: p.height,
297
297
  entry: v
298
- }), p) : U);
298
+ }), p) : M);
299
299
  });
300
300
  }, [a, o, l, y]), S = ke(Gt(N, t, n, r), [
301
301
  N,
@@ -419,7 +419,7 @@ const nn = "_sidebarContainer_bmdti_1", rn = {
419
419
  profileImageHighlight: vn,
420
420
  profileImageUpgradeIcon: Tn,
421
421
  userIconWrapper: wn
422
- }, dt = It({}), M = () => yt(dt), yn = ({ children: e }) => {
422
+ }, dt = It({}), U = () => yt(dt), yn = ({ children: e }) => {
423
423
  const {
424
424
  currentTeam: t,
425
425
  otherTeams: n,
@@ -431,7 +431,7 @@ const nn = "_sidebarContainer_bmdti_1", rn = {
431
431
  canAccessTeamSettings: d,
432
432
  isEndOfTrialActive: l,
433
433
  isTeamSuspended: m
434
- } = M();
434
+ } = U();
435
435
  return /* @__PURE__ */ i(
436
436
  fe,
437
437
  {
@@ -468,7 +468,7 @@ const nn = "_sidebarContainer_bmdti_1", rn = {
468
468
  }) })
469
469
  }
470
470
  );
471
- }, mt = 0, In = 9999, Nn = [150, 151, 250, 251], kn = [152, 153, 252, 253], Sn = [154, 155, 157, 158, 254, 255, 258, 354, 355, 358], En = [156, 159, 160, 256, 259, 260], ft = 9998, _e = (e) => e === mt, ht = (e) => e === In, Mr = (e) => Nn.includes(e), Ur = (e) => kn.includes(e), Br = (e) => Sn.includes(e), $r = (e) => En.includes(e), zr = (e) => e > mt && e < ft, Dr = (e) => e === ft, Pn = /\n/, Fe = (e, t, n) => e.split(t).flatMap((r, a) => a !== 0 ? [Nt(n, { key: Math.random().toString(32).slice(0, 10) }), r] : r), Cn = (e, t, n) => typeof e == "string" ? Fe(e, t, n) : e.flatMap((r) => typeof r == "string" ? Fe(r, t, n) : r), Fr = (e) => Cn(e, Pn, /* @__PURE__ */ i("br", {})), Rn = /(\b(https?|):\/\/[-a-zA-Zа-яА-Я0-9+&@#/%?=~_|!:,.;]*[-a-zA-Zа-яА-Я0-9+&@#/%=~_|])/gi, jn = (e) => e.match(Rn) ?? [], He = (e, t, n) => {
471
+ }, mt = 0, In = 9999, Nn = [150, 151, 250, 251], kn = [152, 153, 252, 253], Sn = [154, 155, 157, 158, 254, 255, 258, 354, 355, 358], En = [156, 159, 160, 256, 259, 260], ft = 9998, _e = (e) => e === mt, ht = (e) => e === In, Ur = (e) => Nn.includes(e), Mr = (e) => kn.includes(e), Br = (e) => Sn.includes(e), $r = (e) => En.includes(e), zr = (e) => e > mt && e < ft, Dr = (e) => e === ft, Pn = /\n/, Fe = (e, t, n) => e.split(t).flatMap((r, a) => a !== 0 ? [Nt(n, { key: Math.random().toString(32).slice(0, 10) }), r] : r), Cn = (e, t, n) => typeof e == "string" ? Fe(e, t, n) : e.flatMap((r) => typeof r == "string" ? Fe(r, t, n) : r), Fr = (e) => Cn(e, Pn, /* @__PURE__ */ i("br", {})), Rn = /(\b(https?|):\/\/[-a-zA-Zа-яА-Я0-9+&@#/%?=~_|!:,.;]*[-a-zA-Zа-яА-Я0-9+&@#/%=~_|])/gi, jn = (e) => e.match(Rn) ?? [], He = (e, t, n) => {
472
472
  const r = e.split(t);
473
473
  if (r.length === 1)
474
474
  return e;
@@ -479,7 +479,7 @@ const nn = "_sidebarContainer_bmdti_1", rn = {
479
479
  }, Ge = (e) => {
480
480
  const t = jn(e);
481
481
  return t != null && t.length ? t.reduce((n, r, a) => typeof n == "string" ? He(n, r, a) : n.flatMap((o) => typeof o == "string" ? He(o, r, a) : o), e) : e;
482
- }, Hr = (e) => typeof e == "string" ? Ge(e) : e.flatMap((t) => typeof t == "string" ? Ge(t) : t, e), Gr = (e, t = "PP") => at(e, t), Wr = (e, t, n = "PP") => at(Ct(e, t), n), Jr = (e) => {
482
+ }, Hr = (e) => typeof e == "string" ? Ge(e) : e.flatMap((t) => typeof t == "string" ? Ge(t) : t, e), Gr = (e, t = "PP") => at(e, t), Wr = (e, t, n = "PP") => at(Ct(e, t), n), Kr = (e) => {
483
483
  q(e, []);
484
484
  }, An = ({ children: e, config: t }) => {
485
485
  const {
@@ -510,7 +510,7 @@ const nn = "_sidebarContainer_bmdti_1", rn = {
510
510
  userEmail: n,
511
511
  hideBottomDivider: r
512
512
  }) => {
513
- const { isEndOfTrialActive: a, isTeamSuspended: o } = M();
513
+ const { isEndOfTrialActive: a, isTeamSuspended: o } = U();
514
514
  return a || o ? null : /* @__PURE__ */ _(Ve, { children: [
515
515
  /* @__PURE__ */ i(
516
516
  H,
@@ -527,15 +527,15 @@ const nn = "_sidebarContainer_bmdti_1", rn = {
527
527
  ),
528
528
  !r && /* @__PURE__ */ i(tt, {})
529
529
  ] });
530
- }, Mn = "_wrapper_15d85_1", Un = "_profileImage_15d85_14", Bn = "_teamName_15d85_22", $n = "_planLabel_15d85_29", zn = "_membership_15d85_38", Dn = "_defaultProfileImage_15d85_44", j = {
531
- wrapper: Mn,
532
- profileImage: Un,
530
+ }, Un = "_wrapper_15d85_1", Mn = "_profileImage_15d85_14", Bn = "_teamName_15d85_22", $n = "_planLabel_15d85_29", zn = "_membership_15d85_38", Dn = "_defaultProfileImage_15d85_44", j = {
531
+ wrapper: Un,
532
+ profileImage: Mn,
533
533
  teamName: Bn,
534
534
  planLabel: $n,
535
535
  membership: zn,
536
536
  defaultProfileImage: Dn
537
537
  }, gt = ({ team: e, onClick: t, hidePlanLabel: n }) => {
538
- const { currentTeam: r, planId: a } = M(), o = e || r;
538
+ const { currentTeam: r, planId: a } = U(), o = e || r;
539
539
  if (!o)
540
540
  return null;
541
541
  const c = _e(a) ? "Free" : ht(a) ? "Trial" : void 0;
@@ -559,14 +559,14 @@ const nn = "_sidebarContainer_bmdti_1", rn = {
559
559
  }, Fn = "_teamsContainer_1t68g_1", Hn = {
560
560
  teamsContainer: Fn
561
561
  }, Gn = ({ onSwitchTeam: e }) => {
562
- const { otherTeams: t } = M();
562
+ const { otherTeams: t } = U();
563
563
  return t.length === 0 ? null : /* @__PURE__ */ i("div", { className: `flex-col items-stretch ${Hn.teamsContainer}`, children: t.map((n) => /* @__PURE__ */ i(gt, { team: n, onClick: e, hidePlanLabel: !0 }, n.id)) });
564
- }, Wn = "_container_1u995_1", Jn = "_planCta_1u995_15", Kn = "_upgradeIconWrapper_1u995_19", ce = {
564
+ }, Wn = "_container_1u995_1", Kn = "_planCta_1u995_15", Jn = "_upgradeIconWrapper_1u995_19", ce = {
565
565
  container: Wn,
566
- planCta: Jn,
567
- upgradeIconWrapper: Kn
566
+ planCta: Kn,
567
+ upgradeIconWrapper: Jn
568
568
  }, Qn = ({ upgradeOptionHref: e }) => {
569
- const { planId: t, trialDaysLeft: n, showUpgradeCta: r } = M();
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"}`;
@@ -588,11 +588,11 @@ I.TeamSwitch = Gn;
588
588
  I.TeamMenuItem = gt;
589
589
  I.UpgradeMenuItem = Qn;
590
590
  I.ProfileSettingsMenuItem = qn;
591
- const Vn = "_breadcrumbsItem_1hm6a_1", Yn = "_breadcrumbs_1hm6a_1", Je = {
591
+ const Vn = "_breadcrumbsItem_1hm6a_1", Yn = "_breadcrumbs_1hm6a_1", Ke = {
592
592
  breadcrumbsItem: Vn,
593
593
  breadcrumbs: Yn
594
- }, Kr = ({ items: e }) => /* @__PURE__ */ i("nav", { "aria-label": "breadcrumb", className: Je.breadcrumbs, children: e.map((t, n) => /* @__PURE__ */ _(Ze, { children: [
595
- /* @__PURE__ */ i(Xe, { className: Je.breadcrumbsItem, href: t.link, rel: "noreferrer", children: t.name }),
594
+ }, Jr = ({ items: e }) => /* @__PURE__ */ i("nav", { "aria-label": "breadcrumb", className: Ke.breadcrumbs, children: e.map((t, n) => /* @__PURE__ */ _(Ze, { children: [
595
+ /* @__PURE__ */ i(Xe, { className: Ke.breadcrumbsItem, href: t.link, rel: "noreferrer", children: t.name }),
596
596
  n < e.length - 1 && /* @__PURE__ */ i("span", { children: " — " })
597
597
  ] }, `${t.link}-${t.name}`)) }), Zn = ({ items: e }) => /* @__PURE__ */ i(Ve, { children: e.map((t, n) => /* @__PURE__ */ _(Ze, { children: [
598
598
  !!n && t.some((r) => r.visible) && /* @__PURE__ */ i(tt, {}),
@@ -604,7 +604,7 @@ const Vn = "_breadcrumbsItem_1hm6a_1", Yn = "_breadcrumbs_1hm6a_1", Je = {
604
604
  disabled: nr,
605
605
  projectNavigationItem: rr,
606
606
  projectNavigationItemDisabled: ar
607
- }, Ke = ({ label: e, badge: t, novel: n }) => /* @__PURE__ */ _("div", { className: "flex gap-1", children: [
607
+ }, Je = ({ label: e, badge: t, novel: n }) => /* @__PURE__ */ _("div", { className: "flex gap-1", children: [
608
608
  /* @__PURE__ */ _("div", { children: [
609
609
  /* @__PURE__ */ i("span", { children: e }),
610
610
  !!t && /* @__PURE__ */ i("div", { className: C.badge, "aria-label": `${t} items requiring attention`, children: t > 9 ? "9+" : t })
@@ -625,9 +625,9 @@ const Vn = "_breadcrumbsItem_1hm6a_1", Yn = "_breadcrumbs_1hm6a_1", Je = {
625
625
  }),
626
626
  disabled: n,
627
627
  onClick: a,
628
- children: /* @__PURE__ */ i(Ke, { label: e, badge: r, novel: o })
628
+ children: /* @__PURE__ */ i(Je, { label: e, badge: r, novel: o })
629
629
  }
630
- ) : /* @__PURE__ */ i("a", { href: t, className: C.withNavLinkStyle, children: /* @__PURE__ */ i(Ke, { label: e, badge: r, novel: o }) })
630
+ ) : /* @__PURE__ */ i("a", { href: t, className: C.withNavLinkStyle, children: /* @__PURE__ */ i(Je, { label: e, badge: r, novel: o }) })
631
631
  }
632
632
  ) })
633
633
  );
@@ -779,9 +779,10 @@ const F = class F extends CustomEvent {
779
779
  };
780
780
  Ne(F, "eventName", "new-jwt-issued");
781
781
  let L = F;
782
- const Vr = pr;
783
- function Yr(e, t) {
784
- const n = _r(e, t), r = Ye();
782
+ function Vr(e, t) {
783
+ const n = _r(e, {
784
+ queryKey: pr.teamKey(t)
785
+ }), r = Ye();
785
786
  return q(() => {
786
787
  n.data && n.data.accessToken !== r.current && (window.dispatchEvent(new L(n.data)), r.current = n.data.accessToken);
787
788
  }, [n.data]), n;
@@ -811,17 +812,20 @@ function pt() {
811
812
  };
812
813
  }, []), e;
813
814
  }
814
- const Zr = gr;
815
- function Xr(e) {
815
+ function Yr(e) {
816
816
  const t = pt();
817
- return br(e, (t == null ? void 0 : t.teamId) ?? 0, (t == null ? void 0 : t.userId) ?? 0);
817
+ return br(e, {
818
+ queryKey: gr.teamUserKey((t == null ? void 0 : t.teamId) ?? 0, (t == null ? void 0 : t.userId) ?? 0)
819
+ });
818
820
  }
819
- const ea = vr;
820
- function ta(e, t) {
821
+ function Zr(e, t) {
821
822
  const n = pt();
822
- return Tr(e, (n == null ? void 0 : n.userId) ?? 0);
823
+ return Tr(e, {
824
+ queryKey: vr.projectUserKey(t, (n == null ? void 0 : n.userId) ?? 0),
825
+ enabled: n !== void 0
826
+ });
823
827
  }
824
- async function na() {
828
+ async function Xr() {
825
829
  const e = await Te();
826
830
  if (!e)
827
831
  return Promise.resolve(void 0);
@@ -882,7 +886,7 @@ function kr(e, t) {
882
886
  });
883
887
  };
884
888
  }
885
- const ra = {
889
+ const ea = {
886
890
  wretch: {
887
891
  lokaliseAuth(e = {}) {
888
892
  return this.addon(Nr).lokaliseAuth(Qe(e));
@@ -905,14 +909,14 @@ function Qe(e) {
905
909
  };
906
910
  }
907
911
  export {
908
- Kr as Breadcrumbs,
912
+ Jr as Breadcrumbs,
909
913
  ft as ENTERPRISE_OPENSOURCE_PLAN_ID,
910
914
  En as ENTERPRISE_PLAN_IDS,
911
915
  kn as ESSENTIAL_PLAN_IDS,
912
916
  mt as FREE_PLAN_ID,
913
917
  hr as JWT_TOKEN_SCHEMA,
914
918
  Nr as LokaliseAuthAddon,
915
- ra as LokaliseAuthBrowserAddon,
919
+ ea as LokaliseAuthBrowserAddon,
916
920
  D as NavigationPanel,
917
921
  Qr as NavigationTabs,
918
922
  Sn as PRO_PLAN_IDS,
@@ -920,35 +924,32 @@ export {
920
924
  I as Sidebar,
921
925
  dr as TEAM_USER_SCHEMA,
922
926
  In as TRIAL_PLAN_ID,
923
- ea as authenticatedContributorKeys,
924
- Zr as authenticatedUserKeys,
925
927
  Fr as convertNewLineToBreakTag,
926
928
  Gr as formatDate,
927
929
  Wr as formatDateTz,
928
- na as getAuthenticatedSessionDetailFromRequest,
929
- Vr as getPromotedClassicSessionJwtKey,
930
+ Xr as getAuthenticatedSessionDetailFromRequest,
930
931
  fr as getTeamUser,
931
932
  gr as getTeamUsersQueryKey,
932
933
  ve as getUserToken,
933
934
  pr as getUserTokenKey,
934
935
  Dr as isEnterpriseOpenSourcePlan,
935
936
  $r as isEnterprisePlan,
936
- Ur as isEssentialPlan,
937
+ Mr as isEssentialPlan,
937
938
  _e as isFreePlan,
938
939
  zr as isPaidPlan,
939
940
  Br as isProPlan,
940
- Mr as isStartPlan,
941
+ Ur as isStartPlan,
941
942
  ht as isTrialPlan,
942
943
  Hr as makeUrlClickable,
943
944
  G as parseJwtTokenPayload,
944
945
  ur as retrieveContributor,
945
946
  vr as retrieveContributorKeys,
946
- ta as useAuthenticatedProjectContributor,
947
+ Zr as useAuthenticatedProjectContributor,
947
948
  pt as useAuthenticatedSessionPayload,
948
- Xr as useAuthenticatedUser,
949
- Jr as useEffectOnce,
950
- Yr as useGetPromotedClassicSessionJwtQuery,
949
+ Yr as useAuthenticatedUser,
950
+ Kr as useEffectOnce,
951
+ Vr as useGetPromotedClassicSessionJwtQuery,
952
+ br as useGetTeamUsersQuery,
951
953
  _r as useGetUserTokenQuery,
952
- Tr as useRetrieveContributorQuery,
953
- br as userGetTeamUsersQuery
954
+ Tr as useRetrieveContributorQuery
954
955
  };
@@ -1,7 +1,4 @@
1
1
  import { Wretch } from 'wretch';
2
- export declare const authenticatedContributorKeys: {
3
- projectUserKey: (projectId: string, userId: number) => readonly ["RetrieveContributor", string, number];
4
- };
5
2
  export declare function useAuthenticatedProjectContributor<T>(api: Wretch<T>, projectId: string): import('@tanstack/react-query').UseQueryResult<{
6
3
  contributors: {
7
4
  email: string;
@@ -1,7 +1,4 @@
1
1
  import { Wretch } from 'wretch';
2
- export declare const authenticatedUserKeys: {
3
- teamUserKey: (teamId: number, userId: number) => readonly ["GetTeamUsers", number, number];
4
- };
5
2
  export declare function useAuthenticatedUser<T>(api: Wretch<T>): import('@tanstack/react-query').UseQueryResult<{
6
3
  team_id: number;
7
4
  team_user: {
@@ -1,7 +1,4 @@
1
1
  import { Wretch } from 'wretch';
2
- export declare const getPromotedClassicSessionJwtKey: {
3
- teamKey: (teamId: number) => readonly ["getUserToken", number];
4
- };
5
2
  export declare function useGetPromotedClassicSessionJwtQuery<T>(api: Wretch<T>, teamId: number): import('@tanstack/react-query').UseQueryResult<{
6
3
  accessToken: string;
7
4
  refreshToken: string;
@@ -13,6 +13,6 @@ export { LokaliseAuthBrowserAddon } from './frontend/addon/lokaliseAuthBrowserAd
13
13
  * Public API
14
14
  */
15
15
  export * from '../publicApi/hooks/useGetUserTokenQuery';
16
- export * from '../publicApi/hooks/userGetTeamUsersQuery';
16
+ export * from '../publicApi/hooks/useGetTeamUsersQuery';
17
17
  export * from '../publicApi/hooks/useRetrieveContributorQuery';
18
18
  export type { JwtTokenPayload } from './core/types/jwtTokenPayload';
@@ -4,7 +4,7 @@ import { TeamUserResponse } from '../teamUsers';
4
4
  export declare const getTeamUsersQueryKey: {
5
5
  teamUserKey: (teamId: number, userId: number) => readonly ["GetTeamUsers", number, number];
6
6
  };
7
- export declare const userGetTeamUsersQuery: <T>(api: Wretch<T>, overrides: ApiQueryOverrides<TeamUserResponse, typeof getTeamUsersQueryKey>) => import('@tanstack/react-query').UseQueryResult<{
7
+ export declare const useGetTeamUsersQuery: <T>(api: Wretch<T>, overrides: ApiQueryOverrides<TeamUserResponse, typeof getTeamUsersQueryKey>) => import('@tanstack/react-query').UseQueryResult<{
8
8
  team_id: number;
9
9
  team_user: {
10
10
  role: "member" | "admin" | "biller" | "owner";
@@ -1,6 +1,6 @@
1
1
  export * from './contributors';
2
2
  export * from './teamUsers';
3
3
  export * from './userToken';
4
- export * from './hooks/userGetTeamUsersQuery';
4
+ export * from './hooks/useGetTeamUsersQuery';
5
5
  export * from './hooks/useGetUserTokenQuery';
6
6
  export * from './hooks/useRetrieveContributorQuery';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lokalise/harmony",
3
- "version": "1.6.0-exp-jwtutils.16",
3
+ "version": "1.6.0-exp-jwtutils.17",
4
4
  "author": {
5
5
  "name": "Lokalise",
6
6
  "url": "https://lokalise.com/"