masks-server 0.7.0 → 0.8.0

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.
Files changed (168) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/masks/server/enrollments_controller.rb +66 -0
  3. data/app/controllers/masks/server/introspections_controller.rb +2 -2
  4. data/app/controllers/masks/server/registrations_controller.rb +31 -1
  5. data/app/graphql/masks/server/manage/types/client_type.rb +8 -0
  6. data/app/graphql/masks/server/manage/types/query_type.rb +6 -1
  7. data/app/helpers/masks/server/application_helper.rb +0 -1
  8. data/app/helpers/masks/server/scopes_helper.rb +28 -0
  9. data/app/jobs/masks/server/cleanup_job.rb +1 -0
  10. data/app/models/masks/server/client.rb +81 -1
  11. data/app/models/masks/server/client_keys.rb +6 -1
  12. data/app/models/masks/server/enrollment_token.rb +54 -0
  13. data/app/models/masks/server/event.rb +3 -0
  14. data/app/models/masks/server/issuer.rb +1 -0
  15. data/app/models/masks/server/namespace.rb +6 -3
  16. data/app/models/masks/server/replay.rb +22 -4
  17. data/app/models/masks/server/token.rb +1 -0
  18. data/app/views/layouts/masks/server/manage.html.erb +2 -2
  19. data/app/views/masks/server/application/_person.html.erb +1 -1
  20. data/app/views/masks/server/handshakes/show.html.erb +129 -59
  21. data/config/locales/de/account.yml +1 -1
  22. data/config/locales/de/events.yml +5 -2
  23. data/config/locales/de/flashes.yml +2 -2
  24. data/config/locales/de/handshakes.yml +33 -14
  25. data/config/locales/de/mailers.yml +1 -1
  26. data/config/locales/de/manage/activity.yml +2 -2
  27. data/config/locales/de/manage/actor.yml +41 -23
  28. data/config/locales/de/manage/actors.yml +16 -15
  29. data/config/locales/de/manage/api.yml +1 -1
  30. data/config/locales/de/manage/app.yml +6 -6
  31. data/config/locales/de/manage/client.yml +45 -45
  32. data/config/locales/de/manage/clients.yml +28 -32
  33. data/config/locales/de/manage/connections.yml +2 -2
  34. data/config/locales/de/manage/consents.yml +2 -2
  35. data/config/locales/de/manage/device.yml +7 -7
  36. data/config/locales/de/manage/devices.yml +18 -18
  37. data/config/locales/de/manage/directory.yml +1 -1
  38. data/config/locales/de/manage/domains.yml +6 -6
  39. data/config/locales/de/manage/emails.yml +4 -4
  40. data/config/locales/de/manage/events.yml +3 -0
  41. data/config/locales/de/manage/groups.yml +6 -6
  42. data/config/locales/de/manage/ldap.yml +8 -8
  43. data/config/locales/de/manage/namespaces.yml +1 -1
  44. data/config/locales/de/manage/organization.yml +15 -8
  45. data/config/locales/de/manage/organizations.yml +3 -3
  46. data/config/locales/de/manage/policies.yml +6 -6
  47. data/config/locales/de/manage/policy_rules.yml +1 -1
  48. data/config/locales/de/manage/presence.yml +6 -6
  49. data/config/locales/de/manage/providers.yml +70 -48
  50. data/config/locales/de/manage/provisioning.yml +4 -4
  51. data/config/locales/de/manage/senders.yml +1 -1
  52. data/config/locales/de/manage/settings.yml +37 -26
  53. data/config/locales/de/manage/settings_shell.yml +2 -2
  54. data/config/locales/de/refusals.yml +5 -5
  55. data/config/locales/en/account.yml +3 -3
  56. data/config/locales/en/events.yml +4 -1
  57. data/config/locales/en/flashes.yml +3 -3
  58. data/config/locales/en/handshakes.yml +33 -14
  59. data/config/locales/en/logins.yml +2 -2
  60. data/config/locales/en/manage/actor.yml +32 -14
  61. data/config/locales/en/manage/actors.yml +16 -15
  62. data/config/locales/en/manage/app.yml +5 -5
  63. data/config/locales/en/manage/client.yml +9 -9
  64. data/config/locales/en/manage/clients.yml +8 -12
  65. data/config/locales/en/manage/connections.yml +1 -1
  66. data/config/locales/en/manage/consents.yml +1 -1
  67. data/config/locales/en/manage/device.yml +1 -1
  68. data/config/locales/en/manage/devices.yml +1 -1
  69. data/config/locales/en/manage/directory.yml +1 -1
  70. data/config/locales/en/manage/domains.yml +6 -6
  71. data/config/locales/en/manage/emails.yml +4 -4
  72. data/config/locales/en/manage/events.yml +3 -0
  73. data/config/locales/en/manage/groups.yml +6 -6
  74. data/config/locales/en/manage/ldap.yml +8 -8
  75. data/config/locales/en/manage/messages.yml +1 -1
  76. data/config/locales/en/manage/namespaces.yml +1 -1
  77. data/config/locales/en/manage/organization.yml +16 -9
  78. data/config/locales/en/manage/organizations.yml +3 -3
  79. data/config/locales/en/manage/policies.yml +6 -6
  80. data/config/locales/en/manage/policy_rules.yml +2 -2
  81. data/config/locales/en/manage/presence.yml +1 -1
  82. data/config/locales/en/manage/providers.yml +70 -48
  83. data/config/locales/en/manage/provisioning.yml +4 -4
  84. data/config/locales/en/manage/senders.yml +2 -2
  85. data/config/locales/en/manage/settings.yml +34 -23
  86. data/config/locales/es/account.yml +1 -1
  87. data/config/locales/es/application.yml +1 -1
  88. data/config/locales/es/events.yml +4 -1
  89. data/config/locales/es/flashes.yml +4 -4
  90. data/config/locales/es/handshakes.yml +33 -14
  91. data/config/locales/es/logins.yml +12 -12
  92. data/config/locales/es/mailers.yml +7 -7
  93. data/config/locales/es/manage/activity.yml +2 -2
  94. data/config/locales/es/manage/actor.yml +33 -15
  95. data/config/locales/es/manage/actors.yml +17 -16
  96. data/config/locales/es/manage/api.yml +1 -1
  97. data/config/locales/es/manage/app.yml +6 -6
  98. data/config/locales/es/manage/client.yml +30 -30
  99. data/config/locales/es/manage/clients.yml +22 -26
  100. data/config/locales/es/manage/connections.yml +1 -1
  101. data/config/locales/es/manage/consents.yml +1 -1
  102. data/config/locales/es/manage/device.yml +1 -1
  103. data/config/locales/es/manage/directory.yml +1 -1
  104. data/config/locales/es/manage/domains.yml +5 -5
  105. data/config/locales/es/manage/emails.yml +7 -7
  106. data/config/locales/es/manage/events.yml +3 -0
  107. data/config/locales/es/manage/groups.yml +6 -6
  108. data/config/locales/es/manage/ldap.yml +8 -8
  109. data/config/locales/es/manage/namespaces.yml +1 -1
  110. data/config/locales/es/manage/organization.yml +16 -9
  111. data/config/locales/es/manage/organizations.yml +3 -3
  112. data/config/locales/es/manage/policies.yml +8 -8
  113. data/config/locales/es/manage/policy_rules.yml +2 -2
  114. data/config/locales/es/manage/providers.yml +70 -48
  115. data/config/locales/es/manage/provisioning.yml +4 -4
  116. data/config/locales/es/manage/senders.yml +1 -1
  117. data/config/locales/es/manage/settings.yml +38 -27
  118. data/config/locales/es/manage/settings_shell.yml +2 -2
  119. data/config/locales/es/refusals.yml +3 -3
  120. data/config/locales/fr/events.yml +3 -0
  121. data/config/locales/fr/flashes.yml +1 -1
  122. data/config/locales/fr/handshakes.yml +33 -14
  123. data/config/locales/fr/manage/activity.yml +4 -4
  124. data/config/locales/fr/manage/actor.yml +43 -25
  125. data/config/locales/fr/manage/actors.yml +22 -21
  126. data/config/locales/fr/manage/api.yml +1 -1
  127. data/config/locales/fr/manage/app.yml +7 -7
  128. data/config/locales/fr/manage/client.yml +50 -50
  129. data/config/locales/fr/manage/clients.yml +28 -32
  130. data/config/locales/fr/manage/connections.yml +2 -2
  131. data/config/locales/fr/manage/consents.yml +1 -1
  132. data/config/locales/fr/manage/device.yml +1 -1
  133. data/config/locales/fr/manage/directory.yml +1 -1
  134. data/config/locales/fr/manage/domains.yml +6 -6
  135. data/config/locales/fr/manage/emails.yml +5 -5
  136. data/config/locales/fr/manage/events.yml +3 -0
  137. data/config/locales/fr/manage/groups.yml +6 -6
  138. data/config/locales/fr/manage/ldap.yml +8 -8
  139. data/config/locales/fr/manage/namespaces.yml +1 -1
  140. data/config/locales/fr/manage/organization.yml +15 -8
  141. data/config/locales/fr/manage/organizations.yml +3 -3
  142. data/config/locales/fr/manage/policies.yml +6 -6
  143. data/config/locales/fr/manage/policy_rules.yml +1 -1
  144. data/config/locales/fr/manage/providers.yml +70 -48
  145. data/config/locales/fr/manage/provisioning.yml +4 -4
  146. data/config/locales/fr/manage/senders.yml +1 -1
  147. data/config/locales/fr/manage/settings.yml +38 -27
  148. data/config/locales/fr/manage/settings_shell.yml +2 -2
  149. data/config/routes.rb +2 -0
  150. data/config/vite.json +1 -0
  151. data/db/migrate/20261011190000_add_enrolled_by_to_clients.rb +5 -0
  152. data/db/migrate/20261012100000_create_replays.rb +23 -0
  153. data/public/masks-assets/.vite/manifest-assets.json +1 -0
  154. data/public/masks-assets/.vite/manifest.json +62 -0
  155. data/public/masks-assets/assets/app-DoQZrM_J.css +2 -0
  156. data/public/masks-assets/assets/console-DoyNbIw3.css +1 -0
  157. data/public/masks-assets/assets/handshake-DIFZPSAK.js +2 -0
  158. data/public/masks-assets/assets/handshake-DIFZPSAK.js.map +1 -0
  159. data/public/masks-assets/assets/manage-isLCrWiU.js +567 -0
  160. data/public/masks-assets/assets/manage-isLCrWiU.js.map +1 -0
  161. data/version.txt +1 -1
  162. metadata +14 -7
  163. data/public/masks-assets/assets/app-olx-5PkA.css +0 -2
  164. data/public/masks-assets/assets/console-CiuQ3qj0.css +0 -1
  165. data/public/masks-assets/assets/handshake-BYhhQ_X3.js +0 -2
  166. data/public/masks-assets/assets/handshake-BYhhQ_X3.js.map +0 -1
  167. data/public/masks-assets/assets/manage-Z3GmPDNQ.js +0 -560
  168. data/public/masks-assets/assets/manage-Z3GmPDNQ.js.map +0 -1
@@ -0,0 +1,567 @@
1
+ import{$ as e,A as t,B as n,C as r,D as i,E as a,F as o,G as s,H as c,I as l,J as u,K as d,L as f,M as p,N as m,O as h,P as g,Q as _,R as v,S as y,T as b,U as x,V as S,X as C,Y as w,Z as T,_ as E,a as D,at as O,b as k,c as A,ct as j,d as M,dt as N,et as P,f as F,ft as I,g as L,h as R,i as z,it as B,j as V,k as H,l as ee,lt as U,m as te,nt as ne,o as W,ot as re,p as ie,q as G,rt as ae,s as K,st as oe,t as se,u as q,ut as ce,v as le,w as J,y as Y,z as ue}from"./initial-D99AzFOd.js";var de=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~`;function fe(e=64){let t=new Uint8Array(e);crypto.getRandomValues(t);let n=``;for(let e of t)n+=de[e%66];return n}function pe(e){let t=``;for(let n of new Uint8Array(e))t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}async function me(e){return pe(await crypto.subtle.digest(`SHA-256`,new TextEncoder().encode(e)))}var he=`S256`;async function ge(){let e=await crypto.subtle.generateKey({name:`ECDSA`,namedCurve:`P-256`},!1,[`sign`,`verify`]),t=await crypto.subtle.exportKey(`jwk`,e.publicKey);return{privateKey:e.privateKey,jwk:{kty:t.kty,crv:t.crv,x:t.x,y:t.y}}}var _e=e=>pe(new TextEncoder().encode(JSON.stringify(e)).buffer);async function ve(e,t,n,r){let i=new URL(n),a={typ:`dpop+jwt`,alg:`ES256`,jwk:e.jwk},o={jti:fe(32),htm:t.toUpperCase(),htu:`${i.origin}${i.pathname}`,iat:Math.floor(Date.now()/1e3)};r&&(o.ath=pe(await crypto.subtle.digest(`SHA-256`,new TextEncoder().encode(r))));let s=`${_e(a)}.${_e(o)}`;return`${s}.${pe(await crypto.subtle.sign({name:`ECDSA`,hash:`SHA-256`},e.privateKey,new TextEncoder().encode(s)))}`}var ye=class extends Error{code;description;status;constructor(e,t,n){super(t?`${e}: ${t}`:e),this.name=`MasksError`,this.code=e,this.description=t,this.status=n}},be=class extends ye{},xe={login_required:be,interaction_required:be,consent_required:class extends ye{},access_denied:class extends ye{},invalid_grant:class extends ye{},invalid_token:class extends ye{},invalid_issuer:class extends ye{}};function Se(e,t,n){let r=xe[e]??ye,i=new r(e,t,n);return i.name=r.name,i}var Ce={RS256:`SHA-256`,RS384:`SHA-384`,RS512:`SHA-512`},we=`RSASSA-PKCS1-v1_5`;function Te(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`),n=atob(t.padEnd(t.length+(4-t.length%4)%4,`=`)),r=new Uint8Array(new ArrayBuffer(n.length));for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return r}function Ee(e){try{return JSON.parse(new TextDecoder().decode(Te(e)))}catch{throw Se(`invalid_token`,`the id token is not a JWT`)}}function De(e){return Array.isArray(e)?e.map(String):e==null?[]:[String(e)]}async function Oe(e,{issuer:t,audience:n,nonce:r,keyFor:i,leeway:a=60}){let[o,s,c,...l]=e.split(`.`);if(!o||!s||!c||l.length>0)throw Se(`invalid_token`,`the id token is not a JWT`);let u=Ee(o);if(u.typ!==void 0&&String(u.typ).toUpperCase()!==`JWT`)throw Se(`invalid_token`,`the id token is typed ${u.typ}, which is not an id token`);let d=Ce[String(u.alg)];if(!d)throw Se(`invalid_token`,`the id token is signed with ${u.alg}, which this client cannot verify`);let f=await crypto.subtle.importKey(`jwk`,{...await i(String(u.kid)),alg:String(u.alg)},{name:we,hash:d},!1,[`verify`]);if(!await crypto.subtle.verify(we,f,Te(c),new TextEncoder().encode(`${o}.${s}`)))throw Se(`invalid_token`,`the id token signature does not verify`);let p=Ee(s),m=Math.floor(Date.now()/1e3);if(String(p.iss??``).replace(/\/$/,``)!==t)throw Se(`invalid_token`,`the id token was issued by ${p.iss}`);if(!De(p.aud).includes(n))throw Se(`invalid_token`,`the id token was issued for another client`);if(typeof p.exp==`number`&&m-a>=p.exp)throw Se(`invalid_token`,`the id token has expired`);if(typeof p.iat==`number`&&p.iat-a>m)throw Se(`invalid_token`,`the id token was issued in the future`);if(p.nonce!==r)throw Se(`invalid_nonce`,`the id token was issued for another request`);return p}var ke=`masks:pending`;function Ae(e){return e?Array.isArray(e)?e:e.split(/\s+/).filter(Boolean):[]}function je(e){let t=e.issuer.replace(/\/$/,``),n=e.fetch??globalThis.fetch.bind(globalThis),r=e.storage??globalThis.sessionStorage,i=Ae(e.scope??[`openid`,`profile`,`email`]),a=Ae(e.resource),o=null,s=null,c=null,l=null,u=null,d=null,f=async(t,n,r)=>e.dpop?(d??=ge(),{DPoP:await ve(await d,t,n,r)}):{},p=0,m=async()=>{if(o)return o;let e=await n(`${t}/.well-known/openid-configuration`,{headers:{Accept:`application/json`}});if(!e.ok)throw Se(`invalid_issuer`,`${t} answered ${e.status}`,e.status);let r=await e.json();if(r.issuer?.replace(/\/$/,``)!==t)throw Se(`invalid_issuer`,`${t} publishes a document naming ${r.issuer}`);return o=r,r},h=async e=>{let{jwks_uri:r}=await m();if(!r)throw Se(`invalid_issuer`,`${t} publishes no jwks_uri, so an id token cannot be verified`);let i=await n(r,{headers:{Accept:`application/json`},...e?{cache:`no-cache`}:{}});if(!i.ok)throw Se(`invalid_issuer`,`${r} answered ${i.status}`,i.status);let a=await i.json();return Object.fromEntries((a.keys??[]).filter(e=>e.kid&&(!e.use||e.use===`sig`)).map(e=>[e.kid,e]))},g=async(e,n=!1)=>{(n||!l)&&(l=await h(n));let r=l[e];if(r)return r;if(!n)return g(e,!0);throw Se(`invalid_token`,`${t} publishes no key ${e}`)},_=async e=>{let t=p,{token_endpoint:r}=await m(),i=await n(r,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`,Accept:`application/json`,...await f(`POST`,r)},body:new URLSearchParams(e).toString()}),a=await i.json().catch(()=>({}));if(!i.ok)throw Se(a.error??`http_${i.status}`,a.error_description,i.status);if(t!==p)throw Se(`invalid_grant`,`the client signed out while this request was in flight`);return s={access_token:a.access_token,id_token:a.id_token,refresh_token:a.refresh_token,token_type:a.token_type??`Bearer`,scope:a.scope??``,expires_in:Number(a.expires_in??0),obtained_at:Math.floor(Date.now()/1e3)},s},v=async({returnTo:t,prompt:n,organization:o=e.organization}={})=>{let{authorization_endpoint:s}=await m(),c=fe(),l={state:fe(24),nonce:i.includes(`openid`)?fe(24):``,verifier:c,returnTo:t??`${location.pathname}${location.search}`,...o?{organization:o}:{}};r.setItem(ke,JSON.stringify(l));let u=new URLSearchParams([[`response_type`,`code`],[`client_id`,e.clientId],[`redirect_uri`,e.redirectUri],[`scope`,i.join(` `)],[`state`,l.state],[`code_challenge`,await me(c)],[`code_challenge_method`,he]]);l.nonce&&u.append(`nonce`,l.nonce);for(let e of a)u.append(`resource`,e);return n&&u.append(`prompt`,n),o&&u.append(`organization`,o),`${s}?${u.toString()}`},y=async(e,{style:n=`identicon`,size:r}={})=>{let{avatar_endpoint:i,avatar_styles_supported:a}=await m();if(!i)throw Se(`invalid_issuer`,`${t} publishes no avatar_endpoint`);if(a&&!a.includes(n))throw Se(`invalid_style`,`${t} does not serve ${n} avatars`);let o=`${i}/${encodeURIComponent(e)}/${n}`;return r?`${o}?size=${r}`:o},b=(e=30)=>!s||Date.now()/1e3+e>=s.obtained_at+s.expires_in,x=async()=>{if(!s?.refresh_token)throw Se(`invalid_grant`,`no refresh token is held`);let t=s.refresh_token,n=[[`grant_type`,`refresh_token`],[`refresh_token`,t],[`client_id`,e.clientId]];for(let e of a)n.push([`resource`,e]);let r=await _(n);return r.refresh_token??=t,r},S=async()=>(u??=x().finally(()=>{u=null}),await u),C=async t=>{let{revocation_endpoint:r}=await m();r&&await n(r,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:new URLSearchParams([[`token`,t],[`token_type_hint`,`refresh_token`],[`client_id`,e.clientId]]).toString()})};return{discover:m,authorizeUrl:v,avatarUrl:y,async authorize(e={}){window.location.assign(await v(e))},pending(){return r.getItem(ke)!==null},async callback(n=window.location.href){let i=new URL(n).searchParams,o=r.getItem(ke);if(r.removeItem(ke),i.get(`error`))throw Se(i.get(`error`),i.get(`error_description`)??void 0);if(!o)throw Se(`invalid_state`,`this browser has no authorization in flight`);let l=JSON.parse(o);if(i.get(`state`)!==l.state)throw Se(`invalid_state`,`the callback did not match this browser`);let u=i.get(`code`);if(!u)throw Se(`invalid_request`,`the callback carried no code`);let d=[[`grant_type`,`authorization_code`],[`code`,u],[`client_id`,e.clientId],[`redirect_uri`,e.redirectUri],[`code_verifier`,l.verifier]];for(let e of a)d.push([`resource`,e]);let f=await _(d);if(l.nonce){if(!f.id_token)throw s=null,Se(`invalid_token`,`an id token was asked for and the issuer returned none`);try{c=await Oe(f.id_token,{issuer:t,audience:e.clientId,nonce:l.nonce,keyFor:g})}catch(e){throw s=null,c=null,e}let n=c?.org?.key;if(l.organization&&n&&n!==l.organization)throw s=null,c=null,Se(`invalid_token`,`the id token does not name the organization ${l.organization}`)}return{tokens:f,identity:c,returnTo:l.returnTo}},identity(){return c},organization(){return c?.org??null},organizations(){return c?.orgs??[]},async switchOrganization(e,t={}){window.location.assign(await v({...t,organization:e}))},avatars(){return c?.[`masks:avatars`]??null},async photo(e=c?.sub){if(!e||!s)return null;let t=await n(await y(e,{style:`photo`}),{headers:{Authorization:`${s.token_type} ${s.access_token}`,Accept:`image/*`}});return t.ok?await t.blob():null},refresh:S,async fetch(e,t={}){s?.refresh_token&&b()&&await S();let r=s?.access_token,i=new Headers(t.headers);if(r&&s){i.set(`Authorization`,`${s.token_type} ${r}`);for(let[n,a]of Object.entries(await f(t.method??`GET`,e,r)))i.set(n,a)}return await n(e,{...t,headers:i})},async proof(e,t){return(await f(e,t,s?.access_token)).DPoP??null},async freshAccessToken(e=30){return s?.refresh_token&&b(e)&&await S(),s?.access_token??null},accessToken(){return s?.access_token??null},tokens(){return s},authorization(){return s?`${s.token_type} ${s.access_token}`:null},expired:b,async logout({everywhere:n=!1,postLogoutRedirectUri:i}={}){let a=s;if(p+=1,s=null,c=null,u=null,r.removeItem(ke),a?.refresh_token&&await C(a.refresh_token).catch(()=>void 0),!n)return;let{end_session_endpoint:o}=await m();if(!o)throw Se(`invalid_issuer`,`${t} publishes no end_session_endpoint`);let l=new URLSearchParams([[`client_id`,e.clientId]]);a?.id_token&&l.append(`id_token_hint`,a.id_token),i&&l.append(`post_logout_redirect_uri`,i),window.location.assign(`${o}?${l.toString()}`)}}}var Me=/%\{(\w+)\}/g,Ne={},Pe=new Intl.PluralRules(`en`);function Fe(e,t=`en`){Ne=e??{},Pe=new Intl.PluralRules(t)}function Ie(e){return e.split(`.`).reduce((e,t)=>e?.[t],Ne)}function Le(e,t){return e.replace(Me,(e,n)=>t&&Object.hasOwn(t,n)?String(t[n]):e)}function X(e,t){let n=Ie(e);if(typeof n==`string`)return Le(n,t);if(n&&typeof n==`object`&&t&&`count`in t){let e=n[Pe.select(Number(t.count))]??n.other;if(typeof e==`string`)return Le(e,t)}return e}var Re=`masks:manage:client`,ze=[`openid`,`profile`,`email`,`masks:manage`,`masks:manage:security`,`masks:manage:support`,`masks:manage:read`];function Be(e){try{return JSON.parse(localStorage.getItem(Re)||`null`)?.[e]||null}catch{return null}}function Ve(e,t){let n=JSON.parse(localStorage.getItem(Re)||`{}`);n[e]=t,localStorage.setItem(Re,JSON.stringify(n))}function He(e){return Be(e.issuer)}function Ue(e){let t=JSON.parse(localStorage.getItem(Re)||`{}`);delete t[e.issuer],localStorage.setItem(Re,JSON.stringify(t))}function We(e){return`${location.origin}${e.root}/callback`}function Ge(e){let t=new URLSearchParams([[`client_name`,`Manage ${e.tenant.name}`],[`resource`,e.resource],[`scope`,ze.join(` `)],[`return_to`,`${location.origin}${e.root}`],[`token_endpoint_auth_method`,`none`],[`redirect_uris`,We(e)]]);return`${e.issuer}/handshake?${t.toString()}`}async function Ke(e,t){let n=await fetch(`${e.issuer}/register`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`,Authorization:`Bearer ${t}`},body:JSON.stringify({client_name:`Manage ${e.tenant.name}`,redirect_uris:[We(e)],token_endpoint_auth_method:`none`})}),r=await n.json().catch(()=>({}));if(!n.ok)throw Error(r.error_description||r.error||X(`pairing.registration_failed`));if(r.client_secret)throw Error(X(`pairing.secret_issued`));return Ve(e.issuer,r.client_id),r.client_id}function qe(e){let t=new Map,n=(e,r)=>e instanceof Blob?(t.set(r,e),null):Array.isArray(e)?e.map((e,t)=>n(e,`${r}.${t}`)):e?.constructor===Object?Object.fromEntries(Object.entries(e).map(([e,t])=>[e,n(t,`${r}.${e}`)])):e;return{held:n(e,`variables`),files:t}}function Je(e){let t=w({ready:!1,identity:null,failure:null}),n=null,r=()=>{let t=He(e);return t?(n||=je({issuer:e.issuer,clientId:t,redirectUri:We(e),scope:ze,resource:e.resource}),n):null},i=async()=>{let e=r();if(!e)throw Error(X(`api.unregistered`));return e.expired(30)&&await e.refresh(),e.authorization()};return{state:t,paired(){return!!He(e)},signedIn(){return!!r()?.accessToken()},async authorize(e){await r().authorize({returnTo:e})},async callback(){let e=await r().callback();return t.identity=e.identity,t.ready=!0,e},async signOut(){let n=r();if(t.identity=null,!n)return null;let i=n.tokens()?.id_token,a=await n.discover().catch(()=>null);if(n.logout(),!a?.end_session_endpoint)return null;let o=new URLSearchParams({client_id:He(e),post_logout_redirect_uri:`${location.origin}${e.root}`});return i&&o.set(`id_token_hint`,i),`${a.end_session_endpoint}?${o}`},unpair(){r()?.logout(),Ue(e),n=null},async query(t,n={}){let{held:r,files:a}=qe(n),o={Accept:`application/json`,Authorization:await i()},s;a.size?(s=new FormData,s.append(`operations`,JSON.stringify({query:t,variables:r})),s.append(`map`,JSON.stringify(Object.fromEntries([...a.keys()].map((e,t)=>[t,[e]])))),[...a.values()].forEach((e,t)=>{s.append(String(t),e)})):(o[`Content-Type`]=`application/json`,s=JSON.stringify({query:t,variables:n}));let c=await fetch(e.graphql,{method:`POST`,headers:o,body:s}),l=await c.json().catch(()=>({}));if(c.status===401||c.status===403)throw Error(l.error_description||l.error||X(`api.refused`));if(l.errors?.length)throw Error(l.errors.map(e=>e.message).join(`; `));return l.data}}}var Ye=Symbol(`router`);function Xe(e){let t=w({path:location.pathname,search:location.search}),n=()=>{t.path=location.pathname,t.search=location.search};return addEventListener(`popstate`,n),{state:t,get segments(){return t.path.slice(e.length).split(`/`).filter(Boolean)},get query(){return new URLSearchParams(t.search)},href(t){return`${e}${t}`},go(t){history.pushState({},``,`${e}${t}`),n(),scrollTo({top:0})},replace(t){history.replaceState({},``,`${e}${t}`),n()}}}function Ze(e){re(Ye,e)}function Qe(){return ae(Ye)}var $e=p(`<div class="sheet px-6 py-14 text-center"><p class="mx-auto max-w-sm text-sm opacity-85"><!></p></div>`);function et(e,n){var r=$e(),i=s(r),a=s(i);y(a,()=>n.children),U(i),U(r),t(e,r)}var tt=new Set([`$$slots`,`$$events`,`$$legacy`,`to`,`class`,`children`]),nt=p(`<a><!></a>`);function Z(e,n){O(n,!0);let r=z(n,`class`,3,`link link-hover`),i=D(n,tt),a=Qe();function o(e){e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.button===0&&(e.preventDefault(),e.stopPropagation(),a.go(n.to))}var c=nt();q(c,e=>({...i,class:r(),href:e,onclick:o}),[()=>a.href(n.to)]);var l=s(c);y(l,()=>n.children),U(c),t(e,c),B()}var rt=p(`<div class="grid place-items-center py-16" role="status"><span class="loading loading-spinner"></span> <span class="sr-only"> </span></div>`);function it(e,n){O(n,!0);let r=z(n,`label`,19,()=>X(`ui.loading`));var i=rt(),a=u(s(i),2),o=G(a,!0);U(i),c(()=>H(o,r())),t(e,i),B()}var at=p(`<span role="img"><svg viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"></svg></span>`),ot=p(`<span class="marks"></span>`);function st(e,a){O(a,!0);let o={manager:`<path d="M10 2.75 16 5v4.6c0 3.7-2.5 6.4-6 7.65-3.5-1.25-6-3.95-6-7.65V5z"/>`,key:`<circle cx="6.75" cy="10" r="3.25"/><path d="M10 10h7.25M14.5 10v2.5M17.25 10v2"/>`,invited:`<rect x="2.75" y="4.75" width="14.5" height="10.5" rx="1.5"/><path d="m3.25 5.5 6.75 5.25 6.75-5.25"/>`,unconfirmed:`<circle cx="10" cy="10" r="7"/><path d="M10 6.25v4.5M10 13.75v.01"/>`,waiting:`<circle cx="10" cy="10" r="7"/><path d="M10 6.25V10l2.75 1.75"/>`,help:`<circle cx="10" cy="10" r="7"/><path d="M7.9 7.9a2.15 2.15 0 1 1 3 1.95c-.55.3-.9.75-.9 1.3v.35M10 13.75v.01"/>`,suspended:`<circle cx="10" cy="10" r="7"/><path d="M8.1 7.25v5.5M11.9 7.25v5.5"/>`,blocked:`<circle cx="10" cy="10" r="7"/><path d="m5.05 5.05 9.9 9.9"/>`,dynamic:`<path d="M7 3.25v3.5M13 3.25v3.5"/><rect x="4.75" y="6.75" width="10.5" height="5.5" rx="1.5"/><path d="M10 12.25v4.5"/>`,owns:`<circle cx="8" cy="7" r="3"/><path d="M2.75 16.25c.6-2.9 2.75-4.5 5.25-4.5s4.65 1.6 5.25 4.5M15.5 6.5v5M13 9h5"/>`,signals:`<circle cx="10" cy="10" r="1.5"/><path d="M6.75 13.25a4.6 4.6 0 0 1 0-6.5M13.25 6.75a4.6 4.6 0 0 1 0 6.5M4.4 15.6a7.9 7.9 0 0 1 0-11.2M15.6 4.4a7.9 7.9 0 0 1 0 11.2"/>`,delegates:`<path d="M11.5 3.75h4.75V8.5M16.25 3.75 9.5 10.5"/><path d="M14.5 11.5v3.25c0 .7-.55 1.25-1.25 1.25h-8c-.7 0-1.25-.55-1.25-1.25v-8c0-.7.55-1.25 1.25-1.25H8.5"/>`,mail:`<rect x="2.75" y="4.75" width="14.5" height="10.5" rx="1.5"/><path d="m3.25 5.5 6.75 5.25 6.75-5.25"/>`,archived:`<rect x="2.75" y="4" width="14.5" height="3.5" rx="1"/><path d="M4.25 7.5v7.25c0 .7.55 1.25 1.25 1.25h9c.7 0 1.25-.55 1.25-1.25V7.5M8.25 10.5h3.5"/>`};var l=V(),u=d(l),f=e=>{var i=ot();J(i,21,()=>a.marks,([e,t,n])=>e,(e,i)=>{var a=P(()=>I(n(i),3));let l=()=>n(a)[0],u=()=>n(a)[1],d=()=>n(a)[2];var f=at(),p=s(f);r(p,()=>o[l()],!0),U(p),U(f),c(()=>{Y(f,1,`mark mark-${d()??`quiet`??``}`),F(f,`aria-label`,u()),F(f,`title`,u())}),t(e,f)}),U(i),t(e,i)};i(u,e=>{a.marks.length&&e(f)}),t(e,l),B()}var ct=e=>e.devices.some(e=>e.blockedAt),lt=e=>[e.scopes.some(e=>e.startsWith(`masks:`))&&[`manager`,X(`actors.marks.manager`),`primary`],e.otpEnabled&&[`key`,X(`actors.marks.second_factor`,{count:e.backupCodesRemaining}),`good`],!e.activated&&[`invited`,X(`actors.marks.invited`),`info`],e.email&&!e.emailVerified&&[`unconfirmed`,X(`actors.marks.unconfirmed`),`warn`],e.pendingApproval&&[`waiting`,X(`actors.marks.waiting`),`warn`],e.recoveryRequestedAt&&[`help`,X(`actors.marks.help`),`warn`],e.suspendedAt&&[`suspended`,X(`actors.marks.suspended`),`bad`],ct(e)&&[`blocked`,X(`actors.marks.blocked`),`bad`]].filter(Boolean);function ut(e=25){let t=w({cursors:[null],total:null});return{size:e,state:t,get cursor(){return t.cursors.at(-1)},get first(){return(t.cursors.length-1)*e+1},reset(){t.cursors=[null]},forward(e){t.cursors=[...t.cursors,e]},back(){t.cursors.length>1&&(t.cursors=t.cursors.slice(0,-1))},counted(e){t.total=e}}}var dt=p(`<nav class="pager"><span class="hint"> </span> <div class="join"><button type="button" class="btn btn-sm join-item"> </button> <button type="button" class="btn btn-sm join-item"> </button></div></nav>`);function ft(e,r){O(r,!0);let a=z(r,`busy`,3,!1),o=P(()=>r.pages.first),l=P(()=>n(o)+r.shown-1),p=P(()=>r.pages.state.total),m=P(()=>r.pages.state.cursors.length>1),h=P(()=>n(p)===null?r.shown===r.pages.size:n(l)<n(p));var g=V(),_=d(g),v=e=>{var i=dt(),d=s(i),g=G(d,!0),_=u(d,2),v=s(_),y=G(v,!0),b=u(v,2),x=G(b,!0);U(_),U(i),c((e,t,r,o)=>{F(i,`aria-label`,e),H(g,t),v.disabled=a()||!n(m),H(y,r),b.disabled=a()||!n(h),H(x,o)},[()=>X(`ui.pager.label`),()=>n(p)===null?X(`ui.pager.range`,{first:n(o).toLocaleString(),last:n(l).toLocaleString()}):X(`ui.pager.range_of`,{first:n(o).toLocaleString(),last:n(l).toLocaleString(),total:n(p).toLocaleString()}),()=>X(`ui.pager.previous`),()=>X(`ui.pager.next`)]),f(`click`,v,()=>r.onpage(`back`)),f(`click`,b,()=>r.onpage(`forward`)),t(e,i)};i(_,e=>{r.shown&&(n(m)||n(h))&&e(v)}),t(e,g),B()}l([`click`]);function pt(){let e=w({notice:null,failure:null}),t=()=>{e.notice=null,e.failure=null},n=t=>{e.notice=null,e.failure=t?.message??String(t)};return{state:e,clear:t,blame:n,say(t){e.failure=null,e.notice=t},async attempt(r,i=null){t();try{let t=await r()??!0;return i&&(e.notice=i),t}catch(e){return n(e),null}}}}var mt=new Map;function ht(){return document.documentElement.lang||void 0}function gt(e,t){let n=`${e}:${ht()??``}`;return mt.has(n)||mt.set(n,t(ht())),mt.get(n)}var _t=()=>gt(`day`,e=>new Intl.DateTimeFormat(e,{day:`numeric`,month:`short`,year:`numeric`})),vt=()=>gt(`moment`,e=>new Intl.DateTimeFormat(e,{day:`numeric`,month:`short`,hour:`2-digit`,minute:`2-digit`})),yt=()=>gt(`relative`,e=>new Intl.RelativeTimeFormat(e,{numeric:`auto`})),bt=[[`year`,31536e6],[`month`,2592e6],[`week`,6048e5],[`day`,864e5],[`hour`,36e5],[`minute`,6e4]];function xt(e){if(!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t}function St(e,t=`—`){let n=xt(e);return n?_t().format(n):t}function Ct(e,t=`—`){let n=xt(e);return n?vt().format(n):t}function wt(e,t=`—`){let n=xt(e);if(!n)return t;let r=n.getTime()-Date.now();for(let[e,t]of bt)if(Math.abs(r)>=t)return yt().format(Math.round(r/t),e);return yt().format(Math.round(r/1e3),`second`)}function Tt(e,t=`—`){let n=(e??[]).filter(Boolean);return n.length?n.join(` `):t}var Et=p(`<span class="tip"><button type="button" class="tip-mark">?</button> <span class="tip-body" role="tooltip"> </span></span>`);function Dt(e,n){let r=g();O(n,!0);let i=z(n,`label`,19,()=>X(`ui.more_about`));var a=Et(),o=s(a),l=u(o,2),d=G(l,!0);U(a),c(()=>{F(o,`aria-label`,i()),F(o,`aria-describedby`,r),F(l,`id`,r),H(d,n.text)}),t(e,a),B()}var Ot=p(`<div class="flex items-center gap-2"><h2 class="subhead"> </h2> <!></div>`),kt=p(`<p class="deck-sm"> </p>`),At=p(`<div class="flex min-w-0 max-w-full flex-wrap items-center gap-2"><!></div>`),jt=p(`<div class="section-head"><div class="flex min-w-0 flex-col gap-1.5"><!> <!></div> <!></div>`),Mt=p(`<section><!> <div class="section-body"><!></div></section>`);function Q(e,r){O(r,!0);let a=z(r,`title`,3,null),o=z(r,`lede`,3,null),l=z(r,`help`,3,null),d=z(r,`row`,3,!1);var f=Mt();let p;var m=s(f),h=e=>{var d=jt(),f=s(d),p=s(f),m=e=>{var r=Ot(),o=s(r),d=G(o,!0),f=u(o,2),p=e=>{{let t=P(()=>X(`ui.about`,{title:a().toLowerCase()}));Dt(e,{get text(){return l()},get label(){return n(t)}})}};i(f,e=>{l()&&e(p)}),U(r),c(()=>H(d,a())),t(e,r)};i(p,e=>{a()&&e(m)});var h=u(p,2),g=e=>{var n=kt(),r=G(n,!0);c(()=>H(r,o())),t(e,n)};i(h,e=>{o()&&e(g)}),U(f);var _=u(f,2),v=e=>{var n=At(),i=s(n);y(i,()=>r.actions),U(n),t(e,n)};i(_,e=>{r.actions&&e(v)}),U(d),t(e,d)};i(m,e=>{(a()||o()||r.actions)&&e(h)});var g=u(m,2),_=s(g);y(_,()=>r.children),U(g),U(f),c(()=>p=Y(f,1,`section`,null,p,{"section-row":d()})),t(e,f),B()}var Nt=p(`<tr class="hover cursor-pointer"><!></tr>`);function Pt(e,n){O(n,!0);let r=Qe();function i(e){e.target.closest(`a, button, input, label`)||getSelection()?.toString()||r.go(n.to)}var a=Nt(),o=s(a);y(o,()=>n.children),U(a),f(`click`,a,i),t(e,a),B()}l([`click`]);var Ft=p(`<div class="join w-full sm:w-auto"><input class="input input-sm join-item w-full sm:w-48 md:w-56" type="search"/> <button type="button" class="btn btn-sm join-item"> </button></div>`);function It(e,n){O(n,!0);let r=z(n,`value`,15,``);var i=Ft(),a=s(i);M(a);var o=u(a,2),l=G(o,!0);U(i),c(e=>{F(a,`aria-label`,n.label),F(a,`placeholder`,n.placeholder),H(l,e)},[()=>X(`ui.search`)]),f(`keydown`,a,e=>e.key===`Enter`&&n.onsearch()),ee(a,r),f(`click`,o,function(...e){n.onsearch?.apply(this,e)}),t(e,i),B()}l([`keydown`,`click`]);var Lt=p(`<th> </th>`),Rt=p(`<div class="sheet overflow-x-auto"><table class="table"><thead><tr></tr></thead><tbody><!></tbody></table></div>`);function zt(e,r){O(r,!0);let a=P(()=>r.columns.map(e=>typeof e==`string`?{label:e}:e));var l=V(),f=d(l),p=e=>{et(e,{children:(e,n)=>{j();var i=o();c(()=>H(i,r.empty)),t(e,i)},$$slots:{default:!0}})},m=e=>{var i=Rt(),o=s(i),l=s(o),d=s(l);J(d,21,()=>n(a),b,(e,r)=>{var i=Lt(),a=G(i,!0);c(()=>{Y(i,1,`${n(r).right?`text-right`:``} ${n(r).hide?`hidden md:table-cell`:``}`),H(a,n(r).label??``)}),t(e,i)}),U(d),U(l);var f=u(l),p=s(f);y(p,()=>r.rows),U(f),U(o),U(i),t(e,i)};i(f,e=>{r.count===0?e(p):e(m,-1)}),t(e,l),B()}var Bt=p(`<button type="button"> </button>`),Vt=p(`<!> <div class="range" role="group"></div>`,1),Ht=p(`<div class="alert alert-warning alert-soft flex-col items-start gap-2"><p class="text-sm"> <code class="font-mono"> </code>. <button type="button" class="link"> </button></p> <label class="flex items-center gap-2 text-sm"><input type="checkbox" class="checkbox"/> </label> <button type="button" class="btn btn-sm btn-error btn-outline"> </button></div>`),Ut=p(`<p class="text-sm opacity-85"> <code class="font-mono"> </code>. <button type="button" class="link"> </button></p>`),Wt=p(`<span class="hint"> </span>`),Gt=p(`<div class="flex flex-wrap items-center gap-3"><label class="flex items-center gap-2 text-sm"><input type="checkbox" class="checkbox"/> </label> <!> <!></div>`),Kt=p(`<span class="badge badge-error badge-xs"> </span>`),qt=p(`<span class="badge badge-warning badge-xs"> </span>`),Jt=p(`<span class="badge badge-success badge-xs"> </span>`),Yt=p(`<div class="truncate font-mono text-xs opacity-80"> </div>`),Xt=p(` <!>`,1),Zt=p(`<div class="truncate"></div>`),Qt=p(`<span class="opacity-80"> </span>`),$t=p(`<td class="w-0"><input type="checkbox" class="checkbox"/></td> <td class="max-w-[18rem]"><!> <div class="flex flex-wrap items-center gap-1.5"><span class="truncate text-xs opacity-75"> </span> <!> <!></div> <!></td> <td class="hidden max-w-[16rem] text-xs md:table-cell"><!></td> <td class="hidden font-mono text-xs opacity-85 md:table-cell"> </td> <td class="text-xs whitespace-nowrap opacity-85"> </td>`,1),en=p(`<!> <!> <!>`,1),tn=p(`<div id="devices" class="scroll-mt-20"><!></div>`);function nn(e,r){O(r,!0);let a=[[`allowed`,X(`devices.lenses.allowed`),{blocked:!1}],[`blocked`,X(`devices.lenses.blocked`),{blocked:!0}],[`unattached`,X(`devices.lenses.unattached`),{unattached:!0}]],l=[``,X(`devices.columns.device`),{label:X(`devices.columns.who`),hide:!0},{label:X(`devices.columns.ip_address`),hide:!0},X(`devices.columns.last_seen`)],p=T(w([])),m=T(!0),h=T(`allowed`),g=T(``),_=T(``),v=T(w(new Set)),y=T(!1),b=T(!1),x=T(null),S=P(()=>a.find(([e])=>e===n(h))?.[2]??{});async function E(){C(m,!0);let e=await r.feedback.attempt(()=>r.api.query(`
2
+ query Devices($blocked: Boolean, $unattached: Boolean, $agent: String, $limit: Int) {
3
+ devices(blocked: $blocked, unattached: $unattached, agent: $agent, limit: $limit) {
4
+ id label category known ipAddress userAgent lastSeenAt blockedAt
5
+ actors { uuid identifier }
6
+ sessions { id }
7
+ }
8
+ }
9
+ `,{blocked:n(S).blocked??null,unattached:n(S).unattached??null,agent:n(_)||null,limit:100}));C(m,!1),e&&(C(p,e.devices,!0),C(v,new Set,!0))}E().then(()=>{location.hash===`#devices`&&n(x)?.scrollIntoView()});function D(e){C(h,e,!0),E()}function k(){C(_,n(g).trim(),!0),C(y,!1),E()}function A(){C(g,``),k()}function N(e){let t=new Set(n(v));t.has(e)?t.delete(e):t.add(e),C(v,t,!0)}let L=P(()=>n(p).length>0&&n(v).size===n(p).length);function R(){C(v,n(L)?new Set:new Set(n(p).map(e=>e.id)),!0)}let z=P(()=>n(h)!==`blocked`);function ee(e,t){let r=X(n(z)?`devices.blocked_count`:`devices.unblocked_count`,{count:e});return t?X(`devices.spared`,{done:r}):r}async function te(e,t){if(!confirm(t))return;C(b,!0);let i=n(z)?`mutation Bulk($ids: [ID!], $agent: String, $refuse: Boolean) {
10
+ blockDevices(ids: $ids, agent: $agent, refuse: $refuse) { count spared }
11
+ }`:`mutation Bulk($ids: [ID!]!) { unblockDevices(ids: $ids) { count } }`,a=await r.feedback.attempt(()=>r.api.query(i,e));if(C(b,!1),!a)return;let o=a.blockDevices??a.unblockDevices;await E(),r.feedback.say(n(y)&&e.agent?X(`devices.refused`,{done:ee(o.count,o.spared),agent:e.agent}):ee(o.count,o.spared))}let ne=()=>te({ids:[...n(v)]},n(z)?X(`devices.block_chosen_question`,{count:n(v).size}):X(`devices.unblock_chosen_question`,{count:n(v).size})),re=()=>{let e=X(`devices.block_matching_question`,{agent:n(_)});return te({agent:n(_),refuse:n(y)},n(y)?X(`devices.block_matching_refuse`,{question:e}):e)},ae=P(()=>n(h)===`blocked`?X(`devices.empty.blocked`):n(h)===`unattached`?X(`devices.empty.unattached`):X(`devices.empty.allowed`));var oe=tn(),se=s(oe);{let e=e=>{var r=Vt(),i=d(r);{let e=P(()=>X(`devices.filter_label`));It(i,{get label(){return n(e)},placeholder:`curl, python-requests`,onsearch:k,get value(){return n(g)},set value(e){C(g,e,!0)}})}var o=u(i,2);J(o,21,()=>a,([e,t])=>e,(e,r)=>{var i=P(()=>I(n(r),2));let a=()=>n(i)[0],o=()=>n(i)[1];var s=Bt(),l=G(s,!0);c(()=>{F(s,`aria-pressed`,n(h)===a()),H(l,o())}),f(`click`,s,()=>D(a())),t(e,s)}),U(o),c(e=>F(o,`aria-label`,e),[()=>X(`devices.which`)]),t(e,r)},r=P(()=>X(`devices.title`));Q(se,{get title(){return n(r)},actions:e,children:(e,r)=>{var a=en(),h=d(a),g=e=>{var r=Ht(),i=s(r),a=s(i),o=u(a),l=G(o,!0),d=u(o,2),p=G(d,!0);U(i);var m=u(i,2),h=s(m);M(h);var g=u(h);U(m);var v=u(m,2),x=G(v,!0);U(r),c((e,t,r,i)=>{H(a,`${e??``} `),H(l,n(_)),H(p,t),H(g,` ${r??``}`),v.disabled=n(b),H(x,i)},[()=>X(`devices.showing`),()=>X(`devices.clear`),()=>X(`devices.refuse_agent`),()=>X(`devices.block_matching`)]),f(`click`,d,A),K(h,()=>n(y),e=>C(y,e)),f(`click`,v,re),t(e,r)},x=e=>{var r=Ut(),i=s(r),a=u(i),o=G(a,!0),l=u(a,2),d=G(l,!0);U(r),c((e,t)=>{H(i,`${e??``} `),H(o,n(_)),H(d,t)},[()=>X(`devices.showing_blocked`),()=>X(`devices.clear`)]),f(`click`,l,A),t(e,r)};i(h,e=>{n(_)&&n(z)?e(g):n(_)&&e(x,1)});var S=u(h,2),w=e=>{var r=Gt(),a=s(r),o=s(a);M(o);var l=u(o);U(a);var d=u(a,2),m=e=>{var r=Bt(),i=G(r,!0);c(e=>{Y(r,1,`btn btn-sm ${n(z)?`btn-error btn-outline`:`btn-outline`}`),r.disabled=n(b),H(i,e)},[()=>X(n(z)?`devices.block_count`:`devices.unblock_count`,{count:n(v).size})]),f(`click`,r,ne),t(e,r)};i(d,e=>{n(v).size&&e(m)});var h=u(d,2),g=e=>{var n=Wt(),r=G(n,!0);c(e=>H(r,e),[()=>X(`devices.newest`,{count:100})]),t(e,n)};i(h,e=>{n(p).length===100&&e(g)}),U(r),c(e=>{ie(o,n(L)),o.indeterminate=n(v).size>0&&!n(L),H(l,` ${e??``}`)},[()=>n(v).size?X(`devices.chosen`,{count:n(v).size}):X(`devices.choose_all`,{count:n(p).length})]),f(`change`,o,R),t(e,r)};i(S,e=>{n(p).length&&e(w)});var T=u(S,2),E=e=>{it(e,{})},D=e=>{zt(e,{get columns(){return l},get count(){return n(p).length},get empty(){return n(ae)},rows:e=>{var r=V(),a=d(r);J(a,17,()=>n(p),e=>e.id,(e,r)=>{{let a=P(()=>`/actors/devices/${n(r).id}`);Pt(e,{get to(){return n(a)},children:(e,a)=>{var l=$t(),p=d(l),m=s(p);M(m),U(p);var h=u(p,2),g=s(h);{let e=P(()=>`/actors/devices/${n(r).id}`);Z(g,{get to(){return n(e)},class:`link link-hover font-medium`,children:(e,i)=>{j();var a=o();c(()=>H(a,n(r).label)),t(e,a)},$$slots:{default:!0}})}var y=u(g,2),b=s(y),x=G(b,!0),S=u(b,2),C=e=>{var n=Kt(),r=G(n,!0);c(e=>H(r,e),[()=>X(`devices.blocked`)]),t(e,n)},w=e=>{var n=qt(),r=G(n,!0);c(e=>H(r,e),[()=>X(`devices.unrecognised`)]),t(e,n)};i(S,e=>{n(r).blockedAt?e(C):n(r).known||e(w,1)});var T=u(S,2),E=e=>{var n=Jt(),r=G(n,!0);c(e=>H(r,e),[()=>X(`devices.signed_in`)]),t(e,n)};i(T,e=>{n(r).sessions.length&&e(E)}),U(y);var D=u(y,2),O=e=>{var i=Yt(),a=G(i,!0);c(()=>{F(i,`title`,n(r).userAgent),H(a,n(r).userAgent)}),t(e,i)};i(D,e=>{n(_)&&n(r).userAgent&&e(O)}),U(h);var k=u(h,2),A=s(k),I=e=>{var i=Zt();J(i,23,()=>n(r).actors,e=>e.uuid,(e,r,i)=>{j();var a=Xt(),s=d(a,!0),l=u(s);{let e=P(()=>`/actors/${n(r).uuid}`);Z(l,{get to(){return n(e)},class:`link link-hover`,children:(e,i)=>{j();var a=o();c(()=>H(a,n(r).identifier)),t(e,a)},$$slots:{default:!0}})}c(()=>H(s,n(i)?`, `:``)),t(e,a)}),U(i),t(e,i)},L=e=>{var n=Qt(),r=G(n,!0);c(e=>H(r,e),[()=>X(`devices.nobody_yet`)]),t(e,n)};i(A,e=>{n(r).actors.length?e(I):e(L,-1)}),U(k);var R=u(k,2),z=G(R,!0),B=u(R,2),V=G(B,!0);c((e,t,i,a)=>{F(m,`aria-label`,e),ie(m,t),H(x,n(r).category),H(z,n(r).ipAddress??`—`),F(B,`title`,i),H(V,a)},[()=>X(`devices.choose`,{label:n(r).label}),()=>n(v).has(n(r).id),()=>Ct(n(r).lastSeenAt),()=>wt(n(r).lastSeenAt)]),f(`change`,m,()=>N(n(r).id)),t(e,l)},$$slots:{default:!0}})}}),t(e,r)},$$slots:{rows:!0}})};i(T,e=>{n(m)&&n(p).length===0?e(E):e(D,-1)}),t(e,a)},$$slots:{actions:!0,default:!0}})}U(oe),W(oe,e=>C(x,e),()=>n(x)),t(e,oe),B()}l([`click`,`change`]);var rn=p(`<span class="scope-picker-new"> </span>`),an=p(`<li role="option"><!> <span> </span></li>`),on=p(`<li class="scope-picker-more" role="presentation"> </li>`),sn=p(`<ul class="scope-picker-list" role="listbox"><!> <!></ul>`),cn=p(`<div class="scope-picker-field"><input class="input input-sm w-full font-mono" role="combobox" aria-autocomplete="list" autocapitalize="none" autocorrect="off" spellcheck="false"/> <!></div>`),ln=p(`<button type="button" class="scope-picker-remove">×</button>`),un=p(`<li> <!></li>`),dn=p(`<li><button type="button" class="btn btn-ghost btn-xs"> </button></li>`),fn=p(`<ul class="scope-picker-held"><!> <!></ul>`),pn=p(`<p class="hint"> </p>`),mn=p(`<div class="scope-picker"><!> <!></div>`);function hn(e,r){O(r,!0);let a=z(r,`value`,19,()=>[]),o=z(r,`available`,19,()=>[]),l=z(r,`disabled`,3,!1),d=`scopes-${Math.random().toString(36).slice(2,10)}`,p=T(``),m=T(!1),h=T(0),g=T(!1),_=P(()=>[...new Set(a())].sort()),y=P(()=>n(p).trim().toLowerCase()),b=P(()=>[...new Set(o())].filter(e=>!a().includes(e)&&(!n(y)||e.toLowerCase().includes(n(y)))).sort((e,t)=>A(e)-A(t)||e.localeCompare(t))),S=P(()=>n(b).slice(0,40)),w=P(()=>n(p).trim()),E=P(()=>n(w)!==``&&!a().includes(n(w))&&!o().includes(n(w))),D=P(()=>n(E)?[...n(S),n(w)]:n(S)),k=P(()=>n(g)||n(_).length<=24?n(_):n(_).slice(0,24));x(()=>{n(h)>=n(D).length&&C(h,Math.max(n(D).length-1,0),!0)});function A(e){return n(y)&&e.toLowerCase().startsWith(n(y))?0:1}function j(e){e&&!a().includes(e)&&(r.onchange([...a(),e]),C(p,``),C(h,0))}function N(e){r.onchange(a().filter(t=>t!==e))}function I(e){e.key===`ArrowDown`?(e.preventDefault(),C(m,!0),C(h,Math.min(n(h)+1,n(D).length-1),!0)):e.key===`ArrowUp`?(e.preventDefault(),C(h,Math.max(n(h)-1,0),!0)):e.key===`Enter`?(e.preventDefault(),j(n(m)&&n(D).length?n(D)[n(h)]:n(w))):e.key===`Escape`&&C(m,!1)}var L=mn(),R=s(L),V=e=>{var r=cn(),a=s(r);M(a);var l=u(a,2),g=e=>{var r=sn(),a=s(r);J(a,18,()=>n(D),e=>e,(e,r,a)=>{var o=an();let l;var p=s(o),m=e=>{var n=rn(),r=G(n,!0);c(e=>H(r,e),[()=>X(`scopes_editor.add_new`)]),t(e,n)};i(p,e=>{n(E)&&n(a)===n(D).length-1&&e(m)});var g=u(p,2);let _;var v=G(g,!0);U(o),c(e=>{F(o,`id`,`${d}-${n(a)}`),F(o,`aria-selected`,n(a)===n(h)),l=Y(o,1,`scope-picker-option`,null,l,{"scope-picker-active":n(a)===n(h)}),_=Y(g,1,`scope font-mono`,null,_,{"scope-privileged":e}),H(v,r)},[()=>r.startsWith(`masks:`)]),f(`mousedown`,o,e=>{e.preventDefault(),j(r)}),f(`mousemove`,o,()=>C(h,n(a),!0)),t(e,o)});var o=u(a,2),l=e=>{var r=on(),i=G(r,!0);c(e=>H(i,e),[()=>X(`scopes_editor.more`,{count:n(b).length-40})]),t(e,r)};i(o,e=>{n(b).length>40&&e(l)}),U(r),c(e=>{F(r,`id`,`${d}-list`),F(r,`aria-label`,e)},[()=>X(`scopes_editor.offered`)]),t(e,r)};i(l,e=>{n(m)&&n(D).length&&e(g)}),U(r),c((e,t)=>{F(a,`aria-expanded`,n(m)&&n(D).length>0),F(a,`aria-controls`,`${d}-list`),F(a,`aria-activedescendant`,n(m)&&n(D).length?`${d}-${n(h)}`:void 0),F(a,`aria-label`,e),F(a,`placeholder`,t)},[()=>X(`scopes_editor.label`),()=>X(`scopes_editor.placeholder`,{count:o().length})]),f(`input`,a,()=>{C(m,!0),C(h,0)}),v(`focus`,a,()=>C(m,!0)),v(`blur`,a,()=>C(m,!1)),f(`keydown`,a,I),ee(a,()=>n(p),e=>C(p,e)),t(e,r)};i(R,e=>{l()||e(V)});var te=u(R,2),ne=e=>{var r=fn(),a=s(r);J(a,16,()=>n(k),e=>e,(e,n)=>{var r=un(),a=s(r),o=u(a),d=e=>{var r=ln();c(e=>F(r,`aria-label`,e),[()=>X(`scopes_editor.remove`,{scope:n})]),f(`click`,r,()=>N(n)),t(e,r)};i(o,e=>{l()||e(d)}),U(r),c(e=>{Y(r,1,`badge font-mono text-xs ${e??``}`),H(a,`${n??``} `)},[()=>n.startsWith(`masks:`)?`badge-error badge-soft`:`badge-neutral badge-soft`]),t(e,r)});var o=u(a,2),d=e=>{var r=dn(),i=s(r),a=G(i,!0);U(r),c(e=>H(a,e),[()=>n(g)?X(`scopes_editor.fewer`):X(`scopes_editor.all`,{count:n(_).length})]),f(`click`,i,()=>C(g,!n(g))),t(e,r)};i(o,e=>{n(_).length>24&&e(d)}),U(r),c(e=>F(r,`aria-label`,e),[()=>X(`scopes_editor.held`,{count:n(_).length})]),t(e,r)},W=e=>{var n=pn(),r=G(n,!0);c(e=>H(r,e),[()=>X(`scopes_editor.none`)]),t(e,n)};i(te,e=>{n(_).length?e(ne):e(W,-1)}),U(L),t(e,L),B()}l([`input`,`keydown`,`mousedown`,`mousemove`,`click`]);var gn=new Set([`$$slots`,`$$events`,`$$legacy`,`label`,`value`,`type`,`onsave`,`save`]),_n=p(`<div class="join"><input/> <button type="button" class="btn btn-sm join-item"> </button></div>`),vn=p(`<input/>`),yn=p(`<label class="flex flex-col gap-1.5"><span class="field-label"> </span> <!></label>`);function $(e,n){O(n,!0);let r=z(n,`value`,15,``),a=z(n,`type`,3,`text`),o=z(n,`onsave`,3,null),l=z(n,`save`,19,()=>X(`ui.save`)),d=D(n,gn);var p=yn(),m=s(p),h=G(m,!0),g=u(m,2),_=e=>{var n=_n(),i=s(n);q(i,()=>({class:`input input-sm join-item w-full`,type:a(),...d}),void 0,void 0,void 0,void 0,!0);var p=u(i,2),m=G(p,!0);U(n),c(()=>H(m,l())),ee(i,r),f(`click`,p,function(...e){o()?.apply(this,e)}),t(e,n)},v=e=>{var n=vn();q(n,()=>({class:`input input-sm w-full`,type:a(),...d}),void 0,void 0,void 0,void 0,!0),ee(n,r),t(e,n)};i(g,e=>{o()?e(_):e(v,-1)}),U(p),c(()=>H(h,n.label)),t(e,p),B()}l([`click`]);var bn=p(`<div class="alert alert-success alert-soft text-sm" role="status"> </div>`),xn=p(`<div class="alert alert-error alert-soft text-sm" role="alert"> </div>`),Sn=p(`<!> <!>`,1);function Cn(e,n){O(n,!0);var r=Sn(),a=d(r),o=e=>{var r=bn(),i=G(r,!0);c(()=>H(i,n.feedback.notice)),t(e,r)};i(a,e=>{n.feedback.notice&&e(o)});var s=u(a,2),l=e=>{var r=xn(),i=G(r,!0);c(()=>H(i,n.feedback.failure)),t(e,r)};i(s,e=>{n.feedback.failure&&e(l)}),t(e,r),B()}var wn=p(`<div><!></div>`),Tn=p(`<p class="stamp"> </p>`),En=p(`<p class="deck"> </p>`),Dn=p(`<div class="flex w-full flex-wrap items-center gap-2 sm:w-auto"><!></div>`),On=p(`<div class="console-page"><!> <header class="flex flex-wrap items-end justify-between gap-x-6 gap-y-4"><div class="flex min-w-0 items-start gap-4"><!> <div class="flex min-w-0 flex-col gap-2"><div class="flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1"><h1 tabindex="-1"> </h1> <!></div> <!> <!></div></div> <!></header> <!></div>`);function kn(e,n){O(n,!0);let r=z(n,`lede`,3,null),a=z(n,`id`,3,null),l=z(n,`back`,3,null),f=z(n,`hero`,3,!1),p;x(()=>{document.title=n.title}),x(()=>{p?.focus({preventScroll:!0})});var m=On(),h=s(m),g=e=>{var n=wn();Z(s(n),{get to(){return l().to},class:`link link-hover text-sm opacity-85`,children:(e,n)=>{j();var r=o();c(()=>H(r,`← ${l().label??``}`)),t(e,r)},$$slots:{default:!0}}),U(n),t(e,n)};i(h,e=>{l()&&e(g)});var _=u(h,2),v=s(_),b=s(v),S=e=>{var r=V(),i=d(r);y(i,()=>n.lead),t(e,r)};i(b,e=>{n.lead&&e(S)});var C=u(b,2),w=s(C),T=s(w);let E;var D=G(T,!0);W(T,e=>p=e,()=>p);var k=u(T,2),A=e=>{var r=V(),i=d(r);y(i,()=>n.after),t(e,r)};i(k,e=>{n.after&&e(A)}),U(w);var M=u(w,2),N=e=>{var n=Tn(),r=G(n,!0);c(()=>H(r,a())),t(e,n)};i(M,e=>{a()&&e(N)});var P=u(M,2),F=e=>{var n=En(),i=G(n,!0);c(()=>H(i,r())),t(e,n)};i(P,e=>{r()&&e(F)}),U(C),U(v);var I=u(v,2),L=e=>{var r=Dn(),i=s(r);y(i,()=>n.actions),U(r),t(e,r)};i(I,e=>{n.actions&&e(L)}),U(_);var R=u(_,2);y(R,()=>n.children),U(m),c(()=>{E=Y(T,1,`headline min-w-0 break-words outline-none`,null,E,{"headline-hero":f()}),H(D,n.title)}),t(e,m),B()}var An=p(`<button type="button"> </button>`),jn=p(`<div class="range" role="group"></div> <!> <button type="button" class="btn btn-sm"> </button> <button type="button" class="btn btn-primary btn-sm"> </button>`,1),Mn=p(`<label class="flex items-center gap-2 text-sm"><input type="checkbox" class="checkbox checkbox-sm"/> </label>`),Nn=p(`<fieldset class="flex flex-col gap-1"><legend class="field-label"> </legend> <!></fieldset>`),Pn=p(`<label class="flex flex-col gap-1.5"><span class="field-label"> </span> <textarea class="textarea w-full font-mono text-sm" rows="6"></textarea></label> <!> <div class="flex flex-wrap gap-2"><button type="button" class="btn btn-primary btn-sm"> </button> <button type="button" class="btn btn-ghost btn-sm"> </button></div>`,1),Fn=p(`<code class="tray px-1 text-xs break-all"> </code>`),In=p(`<li class="flex flex-wrap items-baseline gap-x-2"><span class="font-mono"> </span> <span class="opacity-80"> </span> <!></li>`),Ln=p(`<ul class="flex flex-col gap-1 text-sm"></ul>`),Rn=p(`<p class="hint"> </p>`),zn=p(`<div class="grid gap-3 sm:grid-cols-2"><!> <!></div> <!> <!> <div class="flex flex-col gap-2"><span class="legend"> </span> <!></div> <div class="flex gap-2"><button type="button" class="btn btn-primary btn-sm"> </button> <button type="button" class="btn btn-ghost btn-sm"> </button></div>`,1),Bn=p(`<p class="tray px-2 py-1 font-mono text-xs break-all"> </p>`),Vn=p(`<p class="text-sm opacity-85"><!></p> <!>`,1),Hn=p(`<td class="w-full max-w-0 md:w-auto md:max-w-none"><div class="flex items-center gap-3"><img width="32" height="32" alt=""/> <div class="min-w-0"><div class="flex min-w-0 items-center gap-2"><!> <!></div> <div class="hint truncate text-xs"> <span class="md:hidden"> </span></div></div></div></td> <td class="hidden text-xs whitespace-nowrap opacity-85 md:table-cell"> </td> <td class="hidden text-xs whitespace-nowrap opacity-85 md:table-cell"> </td>`,1),Un=p(`<!> <!>`,1),Wn=p(`<!> <!> <!> <!> <!> <!> <!>`,1);function Gn(e,r){O(r,!0);let a=[],l=ut(),p=[[`everyone`,X(`actors.lenses.everyone`),{}],[`invited`,X(`actors.lenses.invited`),{activated:!1}],[`waiting`,X(`actors.lenses.waiting`),{pendingApproval:!0}],[`help`,X(`actors.lenses.help`),{recoveryRequested:!0}],[`managers`,X(`actors.lenses.managers`),{holds:`masks:manage`}],[`suspended`,X(`actors.lenses.suspended`),{suspended:!0}]],m=[`openid`,`profile`,`email`,`offline_access`,`identities`],h=[X(`actors.columns.actor`),{label:X(`actors.columns.signed_in_on`),hide:!0},{label:X(`actors.columns.last_seen`),hide:!0}],g=pt(),_=T(``),v=T(w([])),y=T(!0),b=Qe(),x=T(w(p.find(([e])=>e===b.query.get(`lens`))?.[0]??`everyone`)),S=P(()=>p.find(([e])=>e===n(x))?.[2]??{}),E=T(!1),D=T(!1),k=T(``),N=T(w([])),L=T(w([])),R=T(null),z=!1,te=P(()=>n(R)?.filter(e=>e.outcome===`invited`).length??0);async function W(){if(C(D,!0),C(R,null),z)return;let e=await g.attempt(()=>r.api.query(`query Groups { groups { key name } }`));e&&(C(L,e.groups,!0),z=!0)}async function re(){C(ce,!0);let e=await g.attempt(()=>r.api.query(`mutation Invite($emails: [String!]!, $groups: [String!]) {
12
+ inviteActors(emails: $emails, groups: $groups) { outcomes { email outcome url } }
13
+ }`,{emails:n(k).split(/[\s,;]+/).filter(Boolean),groups:n(N)}));C(ce,!1),e&&(C(R,e.inviteActors.outcomes,!0),C(D,!1),C(k,``),de())}let ie=T(``),ae=T(``),K=T(``),oe=T(w([...m])),se=T(w([])),q=T(8),ce=T(!1),le=T(null);async function ue(){C(y,!0);try{let e=await r.api.query(`
14
+ query Actors(
15
+ $search: String, $activated: Boolean, $holds: String, $pendingApproval: Boolean,
16
+ $recoveryRequested: Boolean, $suspended: Boolean, $afterId: ID, $limit: Int
17
+ ) {
18
+ actors(
19
+ search: $search, activated: $activated, holds: $holds, pendingApproval: $pendingApproval,
20
+ recoveryRequested: $recoveryRequested, suspended: $suspended, afterId: $afterId, limit: $limit
21
+ ) {
22
+ uuid identifier nickname name email emailVerified otpEnabled backupCodesRemaining
23
+ lastLoginAt scopes activated invitedAt pendingApproval recoveryRequestedAt suspendedAt
24
+ avatars { photo identicon }
25
+
26
+ sessions { id }
27
+ devices { id blockedAt }
28
+
29
+ }
30
+ actorCount(
31
+ search: $search, activated: $activated, holds: $holds, pendingApproval: $pendingApproval,
32
+ recoveryRequested: $recoveryRequested, suspended: $suspended
33
+ )
34
+ }
35
+ `,{search:n(_).trim()||null,activated:n(S).activated??null,holds:n(S).holds??null,pendingApproval:n(S).pendingApproval??null,recoveryRequested:n(S).recoveryRequested??null,suspended:n(S).suspended??null,afterId:l.cursor,limit:l.size});C(v,e.actors,!0),l.counted(e.actorCount)}catch(e){g.blame(e)}finally{C(y,!1)}}function de(){l.reset(),ue()}function fe(e){e===`forward`?l.forward(n(v).at(-1)?.uuid):l.back(),ue()}function pe(e){C(x,e,!0),b.replace(e===`everyone`?`/actors`:`/actors?lens=${e}`),de()}ue();async function me(){if(C(ie,``),C(ae,``),C(K,``),C(oe,[...m],!0),C(le,null),C(E,!0),g.clear(),n(se).length)return;let e=await g.attempt(()=>r.api.query(`query Scopes { scopesSupported minimumPassword }`));e&&(C(se,e.scopesSupported,!0),C(q,e.minimumPassword,!0))}function he(){C(E,!1),g.clear()}async function ge(){C(ce,!0);let e=await g.attempt(()=>r.api.query(`
36
+ mutation Create($nickname: String, $email: String, $password: String, $scopes: [String!]) {
37
+ createActor(nickname: $nickname, email: $email, password: $password, scopes: $scopes) {
38
+ delivered url actor { uuid identifier activated }
39
+ }
40
+ }
41
+ `,{nickname:n(ie).trim()||null,email:n(ae).trim()||null,password:n(K)||null,scopes:n(oe)}));C(ce,!1),e&&(C(le,e.createActor,!0),C(E,!1),l.reset(),await ue())}let _e=e=>[X(`actors.sessions`,{count:e.sessions.length}),X(`actors.devices`,{count:e.devices.length})].join(` · `);{let m=e=>{var r=jn(),i=d(r);J(i,21,()=>p,([e,t])=>e,(e,r)=>{var i=P(()=>I(n(r),2));let a=()=>n(i)[0],o=()=>n(i)[1];var s=An(),l=G(s,!0);c(()=>{F(s,`aria-pressed`,n(x)===a()),H(l,o())}),f(`click`,s,()=>pe(a())),t(e,s)}),U(i);var a=u(i,2);{let e=P(()=>X(`actors.search`)),t=P(()=>X(`actors.search_placeholder`));It(a,{get label(){return n(e)},get placeholder(){return n(t)},onsearch:de,get value(){return n(_)},set value(e){C(_,e,!0)}})}var o=u(a,2),s=G(o,!0),l=u(o,2),m=G(l,!0);c((e,t,n)=>{F(i,`aria-label`,e),H(s,t),H(m,n)},[()=>X(`actors.who`),()=>X(`actors.invite_many`),()=>X(`actors.add`)]),f(`click`,o,W),f(`click`,l,me),t(e,r)},b=P(()=>X(`actors.title`));kn(e,{get title(){return n(b)},actions:m,children:(e,p)=>{var m=Wn(),b=d(m);Cn(b,{get feedback(){return g.state}});var S=u(b,2),w=e=>{{let r=P(()=>X(`actors.invites.title`)),o=P(()=>X(`actors.invites.lede`));Q(e,{get title(){return n(r)},get lede(){return n(o)},children:(e,r)=>{var o=Pn(),l=d(o),p=s(l),m=G(p,!0),h=u(p,2);ne(h),U(l);var g=u(l,2),_=e=>{var r=Nn(),i=s(r),o=G(i,!0),l=u(i,2);J(l,17,()=>n(L),e=>e.key,(e,r)=>{var i=Mn(),o=s(i);M(o);var l,d=u(o);U(i),c(()=>{l!==(l=n(r).key)&&(o.value=(o.__value=l)??``),H(d,` ${n(r).name??``}`)}),A(a,[],o,()=>(n(r).key,n(N)),e=>C(N,e)),t(e,i)}),U(r),c(e=>H(o,e),[()=>X(`actors.invites.groups`)]),t(e,r)};i(g,e=>{n(L).length&&e(_)});var v=u(g,2),y=s(v),b=G(y,!0),x=u(y,2),S=G(x,!0);U(v),c((e,t,n,r)=>{H(m,e),y.disabled=t,H(b,n),H(S,r)},[()=>X(`actors.invites.addresses`),()=>n(ce)||!n(k).trim(),()=>n(ce)?X(`actors.form.adding`):X(`actors.invites.send`),()=>X(`actors.form.cancel`)]),ee(h,()=>n(k),e=>C(k,e)),f(`click`,y,re),f(`click`,x,()=>C(D,!1)),t(e,o)},$$slots:{default:!0}})}};i(S,e=>{n(D)&&e(w)});var T=u(S,2),O=e=>{{let r=P(()=>X(`actors.invites.done`,{count:n(te)}));Q(e,{get title(){return n(r)},children:(e,r)=>{var a=Ln();J(a,21,()=>n(R),e=>e.email,(e,r)=>{var a=In(),o=s(a),l=G(o,!0),d=u(o,2),f=G(d,!0),p=u(d,2),m=e=>{var i=Fn(),a=G(i,!0);c(()=>H(a,n(r).url)),t(e,i)};i(p,e=>{n(r).url&&e(m)}),U(a),c(e=>{H(l,n(r).email),H(f,e)},[()=>X(`actors.invites.outcomes.${n(r).outcome}`)]),t(e,a)}),U(a),t(e,a)},$$slots:{default:!0}})}};i(T,e=>{n(R)&&e(O)});var I=u(T,2),z=e=>{{let r=P(()=>X(`actors.add`));Q(e,{get title(){return n(r)},children:(e,r)=>{var a=zn(),o=d(a),l=s(o);{let e=P(()=>X(`actors.form.nickname`));$(l,{get label(){return n(e)},autocapitalize:`none`,autocorrect:`off`,spellcheck:`false`,placeholder:`ada`,get value(){return n(ie)},set value(e){C(ie,e,!0)}})}var p=u(l,2);{let e=P(()=>X(`actors.form.email`));$(p,{get label(){return n(e)},type:`email`,placeholder:`ada@example.com`,get value(){return n(ae)},set value(e){C(ae,e,!0)}})}U(o);var m=u(o,2);{let e=P(()=>X(`actors.form.password`)),t=P(()=>X(`actors.form.password_placeholder`));$(m,{get label(){return n(e)},type:`password`,autocomplete:`new-password`,get placeholder(){return n(t)},get value(){return n(K)},set value(e){C(K,e,!0)}})}var h=u(m,2),g=e=>{var r=Rn(),i=G(r,!0);c(e=>H(i,e),[()=>X(`actors.form.minimum`,{count:n(q)})]),t(e,r)};i(h,e=>{n(K)&&e(g)});var _=u(h,2),v=s(_),y=G(v,!0);hn(u(v,2),{get value(){return n(oe)},get available(){return n(se)},onchange:e=>C(oe,e,!0)}),U(_);var b=u(_,2),x=s(b),S=G(x,!0),w=u(x,2),T=G(w,!0);U(b),c((e,t,n,r)=>{H(y,e),x.disabled=t,H(S,n),H(T,r)},[()=>X(`actors.form.scopes`),()=>n(ce)||!(n(ie).trim()||n(ae).trim()),()=>n(ce)?X(`actors.form.adding`):n(K)?X(`actors.form.create`):X(`actors.form.invite`),()=>X(`actors.form.cancel`)]),f(`click`,x,ge),f(`click`,w,he),t(e,a)},$$slots:{default:!0}})}};i(I,e=>{n(E)&&e(z)});var B=u(I,2),W=e=>{{let r=P(()=>n(le).actor.activated?X(`actors.created.account`):X(`actors.created.invitation`));Q(e,{get title(){return n(r)},children:(e,r)=>{var a=Vn(),l=d(a),f=s(l),p=e=>{var r=o();c((e,t)=>H(r,`${e??``}${t??``}`),[()=>X(`actors.created.can_sign_in`,{identifier:n(le).actor.identifier}),()=>n(le).url?` ${X(`actors.created.confirm_link`)}`:``]),t(e,r)},m=e=>{var n=o();c(e=>H(n,e),[()=>X(`actors.created.emailed`)]),t(e,n)},h=e=>{var n=o();c(e=>H(n,e),[()=>X(`actors.created.pass_along`)]),t(e,n)};i(f,e=>{n(le).actor.activated?e(p):n(le).delivered?e(m,1):e(h,-1)}),U(l);var g=u(l,2),_=e=>{var r=Bn(),i=G(r,!0);c(()=>H(i,n(le).url)),t(e,r)};i(g,e=>{n(le).url&&e(_)}),t(e,a)},$$slots:{default:!0}})}};i(B,e=>{n(le)&&e(W)});var ue=u(B,2),de=e=>{it(e,{})},pe=e=>{var r=Un(),i=d(r);{let e=e=>{var r=V(),i=d(r);J(i,17,()=>n(v),e=>e.uuid,(e,r)=>{{let i=P(()=>`/actors/${n(r).uuid}`);Pt(e,{get to(){return n(i)},children:(e,i)=>{var a=Hn(),l=d(a),f=s(l),p=s(f);let m;var h=u(p,2),g=s(h),_=s(g);{let e=P(()=>`/actors/${n(r).uuid}`);Z(_,{get to(){return n(e)},class:`link link-hover truncate font-medium`,children:(e,i)=>{j();var a=o();c(()=>H(a,n(r).identifier)),t(e,a)},$$slots:{default:!0}})}var v=u(_,2);{let e=P(()=>lt(n(r)));st(v,{get marks(){return n(e)}})}U(g);var y=u(g,2),b=s(y),x=u(b),S=G(x);U(y),U(h),U(f),U(l);var C=u(l,2),w=G(C,!0),T=u(C,2),E=G(T,!0);c((e,t,i,a)=>{F(p,`src`,`${n(r).avatars.photo??n(r).avatars.identicon}?size=32`),m=Y(p,1,`size-8 shrink-0 rounded object-cover`,null,m,{drawn:!n(r).avatars.photo}),H(b,`${n(r).name?`${n(r).name} · `:``}${e??``}`),H(S,` · ${t??``}`),H(w,i),H(E,a)},[()=>n(r).email??X(`actors.no_email`),()=>n(r).activated?St(n(r).lastLoginAt,X(`actors.never`)):X(`actors.never`),()=>_e(n(r)),()=>n(r).activated?St(n(r).lastLoginAt,X(`actors.never`)):X(`actors.never`)]),t(e,a)},$$slots:{default:!0}})}}),t(e,r)},r=P(()=>n(_).trim()?X(`actors.empty.search`,{search:n(_).trim()}):X(`actors.empty.${n(x)}`));zt(i,{get columns(){return h},get count(){return n(v).length},get empty(){return n(r)},rows:e,$$slots:{rows:!0}})}ft(u(i,2),{get pages(){return l},get shown(){return n(v).length},get busy(){return n(y)},onpage:fe}),t(e,r)};i(ue,e=>{n(y)&&n(v).length===0?e(de):e(pe,-1)}),nn(u(ue,2),{get api(){return r.api},get feedback(){return g}}),t(e,m)},$$slots:{actions:!0,default:!0}})}B()}l([`click`]);var Kn=p(`<p class="text-sm opacity-85"> </p>`),qn=p(`<span class="text-sm font-medium"> </span>`),Jn=p(`<span class="badge badge-success badge-xs"> </span>`),Yn=p(`<span class="badge badge-warning badge-xs"> </span>`),Xn=p(`<span class="badge badge-info badge-xs"> </span>`),Zn=p(`<span> </span>`),Qn=p(`<div class="flex flex-wrap items-baseline justify-between gap-x-3 border-l-2 border-base-300 pl-2 text-xs"><span><!> <span class="opacity-80"> </span></span> <button type="button" class="link text-error"> </button></div>`),$n=p(`<li class="slat"><div class="flex flex-wrap items-baseline justify-between gap-x-3 gap-y-1"><span class="flex flex-wrap items-baseline gap-2"><!> <!> <!> <!></span> <button type="button" class="link text-xs text-error"> </button></div> <span class="truncate text-xs opacity-75"> </span> <div class="flex flex-wrap gap-x-4 text-xs opacity-80"><span> </span> <!></div> <!></li>`),er=p(`<ul class="slats"></ul>`);function tr(e,r){O(r,!0);let a=z(r,`showActor`,3,!1);async function l(e,t){confirm(X(`connections.stop_confirm`,{client:t.client.name,provider:e.provider.name}))&&await r.feedback.attempt(()=>r.api.query(`
42
+ mutation Stop($id: ID!) {
43
+ revokeDelegation(id: $id) { delegation { id revokedAt } }
44
+ }
45
+ `,{id:t.id}),X(`connections.stopped`,{client:t.client.name}))&&await r.onchange()}async function p(e){let t=a()?e.actor.identifier:e.provider.name;confirm(X(`connections.disconnect_confirm`,{held:t}))&&await r.feedback.attempt(()=>r.api.query(`
46
+ mutation Revoke($id: ID!) {
47
+ revokeConnection(id: $id) { connection { id revokedAt } }
48
+ }
49
+ `,{id:e.id}),X(`connections.disconnected`))&&await r.onchange()}var m=V(),h=d(m),g=e=>{var n=Kn(),r=G(n,!0);c(e=>H(r,e),[()=>X(`connections.empty`)]),t(e,n)},_=e=>{var d=er();J(d,21,()=>r.rows,e=>e.id,(e,r)=>{var d=$n(),m=s(d),h=s(m),g=s(h),_=e=>{{let i=P(()=>`/actors/${n(r).actor.uuid}`);Z(e,{get to(){return n(i)},class:`link link-hover text-sm font-medium`,children:(e,i)=>{j();var a=o();c(()=>H(a,n(r).actor.identifier)),t(e,a)},$$slots:{default:!0}})}},v=e=>{var i=qn(),a=G(i,!0);c(()=>H(a,n(r).provider.name)),t(e,i)};i(g,e=>{a()?e(_):e(v,-1)});var y=u(g,2),b=e=>{var n=Jn(),r=G(n,!0);c(e=>H(r,e),[()=>X(`connections.badges.signs_in`)]),t(e,n)};i(y,e=>{n(r).signedInAt&&e(b)});var x=u(y,2),S=e=>{var n=Yn(),r=G(n,!0);c(e=>H(r,e),[()=>X(`connections.badges.unconfirmed`)]),t(e,n)};i(x,e=>{n(r).email&&!n(r).emailVerified&&e(S)});var C=u(x,2),w=e=>{var n=Xn(),r=G(n,!0);c(e=>H(r,e),[()=>X(`connections.badges.delegable`)]),t(e,n)};i(C,e=>{n(r).delegable&&e(w)}),U(h);var T=u(h,2),E=G(T,!0);U(m);var D=u(m,2),O=G(D,!0),k=u(D,2),A=s(k),M=G(A,!0),N=u(A,2),I=e=>{var i=Zn(),a=G(i,!0);c((e,t)=>{F(i,`title`,e),H(a,t)},[()=>Ct(n(r).signedInAt),()=>X(`connections.signed_in`,{when:wt(n(r).signedInAt)})]),t(e,i)};i(N,e=>{n(r).signedInAt&&e(I)}),U(k);var L=u(k,2);J(L,17,()=>n(r).delegations??[],e=>e.id,(e,i)=>{var a=Qn(),d=s(a),p=s(d);{let e=P(()=>`/clients/${n(i).client.clientId}`);Z(p,{get to(){return n(e)},class:`link link-hover`,children:(e,r)=>{j();var a=o();c(()=>H(a,n(i).client.name)),t(e,a)},$$slots:{default:!0}})}var m=u(p,2),h=G(m,!0);U(d);var g=u(d,2),_=G(g,!0);U(a),c((e,t)=>{H(h,e),H(_,t)},[()=>n(i).releasedAt?X(`connections.can_use_last`,{when:wt(n(i).releasedAt)}):X(`connections.can_use`),()=>X(`connections.stop`)]),f(`click`,g,()=>l(n(r),n(i))),t(e,a)}),U(d),c((e,t,i)=>{H(E,e),H(O,n(r).label??n(r).email??n(r).subject),F(A,`title`,t),H(M,i)},[()=>X(`connections.disconnect`),()=>Ct(n(r).connectedAt),()=>X(`connections.connected`,{when:wt(n(r).connectedAt)})]),f(`click`,T,()=>p(n(r))),t(e,d)}),U(d),t(e,d)};i(h,e=>{r.rows.length===0?e(g):e(_,-1)}),t(e,m),B()}l([`click`]);var nr=p(`<p class="text-sm opacity-85"> </p>`),rr=p(`<span> </span>`),ir=p(`<span class="truncate font-mono"> </span>`),ar=p(`<li class="flex flex-wrap gap-x-2"><span class="scope"> </span> <span class="truncate font-mono opacity-80"> </span> <span class="opacity-80"> </span></li>`),or=p(`<ul class="flex flex-col gap-0.5 text-xs"></ul>`),sr=p(`<li class="slat"><div class="flex flex-wrap items-baseline justify-between gap-x-3 gap-y-1"><!> <button type="button" class="link text-xs text-error"> </button></div> <div class="flex flex-wrap gap-x-2 font-mono text-xs"></div> <div class="flex flex-wrap gap-x-4 text-xs opacity-80"><!> <span> </span> <!></div> <!></li>`),cr=p(`<ul class="slats"></ul>`);function lr(e,r){O(r,!0);let a=z(r,`showActor`,3,!1);async function l(e){let t=a()?e.actor.identifier:e.client.name;confirm(X(`consents.revoke_confirm`,{held:t}))&&await r.feedback.attempt(()=>r.api.query(`
50
+ mutation Revoke($id: ID!) {
51
+ revokeConsent(id: $id) { consent { id revokedAt } }
52
+ }
53
+ `,{id:e.id}),X(`consents.revoked`))&&await r.onchange()}var p=V(),m=d(p),h=e=>{var n=nr(),r=G(n,!0);c(e=>H(r,e),[()=>X(`consents.empty`)]),t(e,n)},g=e=>{var d=cr();J(d,21,()=>r.rows,e=>e.id,(e,r)=>{var d=sr(),p=s(d),m=s(p),h=e=>{{let i=P(()=>`/actors/${n(r).actor.uuid}`);Z(e,{get to(){return n(i)},class:`link link-hover text-sm font-medium`,children:(e,i)=>{j();var a=o();c(()=>H(a,n(r).actor.identifier)),t(e,a)},$$slots:{default:!0}})}},g=e=>{{let i=P(()=>`/clients/${n(r).client.clientId}`);Z(e,{get to(){return n(i)},class:`link link-hover text-sm font-medium`,children:(e,i)=>{j();var a=o();c(()=>H(a,n(r).client.name)),t(e,a)},$$slots:{default:!0}})}};i(m,e=>{a()?e(h):e(g,-1)});var _=u(m,2),v=G(_,!0);U(p);var y=u(p,2);J(y,20,()=>n(r).scopes,e=>e,(e,n)=>{var r=rr();let i;var a=G(r,!0);c(e=>{i=Y(r,1,`scope`,null,i,{"scope-privileged":e}),H(a,n)},[()=>n.startsWith(`masks:`)]),t(e,r)}),U(y);var x=u(y,2),S=s(x),C=e=>{var i=ir(),a=G(i,!0);c((e,t)=>{F(i,`title`,e),H(a,t)},[()=>Tt(n(r).audience),()=>Tt(n(r).audience)]),t(e,i)};i(S,e=>{n(r).audience.length&&e(C)});var w=u(S,2),T=G(w,!0),E=u(w,2),D=e=>{var i=rr(),a=G(i,!0);c((e,t)=>{F(i,`title`,e),H(a,t)},[()=>Ct(n(r).expiresAt),()=>X(`consents.asks_again`,{when:Ct(n(r).expiresAt)})]),t(e,i)};i(E,e=>{n(r).expiresAt&&e(D)}),U(x);var O=u(x,2),k=e=>{var i=or();J(i,21,()=>n(r).authorizationDetails,b,(e,r)=>{var i=ar(),a=s(i),o=G(a,!0),l=u(a,2),d=G(l,!0),f=u(l,2),p=G(f,!0);U(i),c((e,t)=>{H(o,n(r).entry.type),H(d,e),H(p,t)},[()=>JSON.stringify(n(r).entry),()=>X(`consents.until`,{when:Ct(n(r).expires_at)})]),t(e,i)}),U(i),t(e,i)};i(O,e=>{n(r).authorizationDetails?.length&&e(k)}),U(d),c((e,t,n)=>{H(v,e),F(w,`title`,t),H(T,n)},[()=>X(`consents.revoke`),()=>Ct(n(r).updatedAt),()=>X(`consents.last_asked`,{when:wt(n(r).updatedAt)})]),f(`click`,_,()=>l(n(r))),t(e,d)}),U(d),t(e,d)};i(m,e=>{r.rows.length===0?e(h):e(g,-1)}),t(e,p),B()}l([`click`]);var ur=new Set([`logout.undelivered`,`login.refused`,`login.throttled`,`refresh.reused`,`device.blocked`,`actor.deleted`,`authenticator.disabled`,`connection.refused`,`delegation.refused`]),dr=new Set([`password.changed`,`password.reset_completed`,`actor.scopes_changed`,`actor.suspended`,`provisioning_token.issued`,`provisioning_token.revoked`,`ldap_credential.issued`,`ldap_credential.revoked`,`client.secret_rotated`,`client.logo_refused`,`client.enrolled`,`client.unenrolled`,`signing_key.rotated`,`signing_key.activated`,`backup_code.spent`,`connection.unlinked`,`consent.revoked`,`delegation.granted`,`delegation.revoked`]);function fr(e){return ur.has(e)?`bad`:dr.has(e)?`watch`:`plain`}function pr(e){return Object.entries(e??{}).filter(([,e])=>e!==null&&e!==``&&!(Array.isArray(e)&&!e.length)).map(([e,t])=>[e.replace(/_/g,` `),mr(t)])}function mr(e){return Array.isArray(e)?e.join(` `):typeof e==`boolean`?X(e?`event_labels.yes`:`event_labels.no`):String(e)}var hr=p(`<p class="text-sm opacity-80"> </p>`),gr=p(`<span class="event-count"> </span>`),_r=p(`<span class="hint"> <!></span>`),vr=p(`<span class="event-trail"> </span>`),yr=p(`<li class="event"><span class="event-what"><span> </span> <!> <!> <!> <!></span> <time class="event-when"> </time> <!></li>`),br=p(`<button type="button" class="btn btn-ghost btn-sm self-start"> </button>`),xr=p(`<ol class="slats"></ol> <!>`,1);function Sr(e,r){O(r,!0);let a=z(r,`showActor`,3,!0),l=z(r,`empty`,19,()=>X(`events.empty`)),p=z(r,`limit`,3,5),m=z(r,`collapse`,3,!1),h=T(!1),g=(e,t)=>e.action===t.action&&e.actor?.uuid===t.actor?.uuid&&e.client?.clientId===t.client?.clientId,_=P(()=>r.events.reduce((e,t)=>{let n=e.at(-1);return m()&&n&&g(n.event,t)?n.count+=1:e.push({event:t,count:1}),e},[])),v=P(()=>n(h)?n(_):n(_).slice(0,p())),y=/\b([0-9a-f]{8})-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/gi,b=e=>[...pr(e.details).map(([e,t])=>`${e} ${t.replace(y,`$1…`)}`),e.ipAddress,e.device?.label].filter(Boolean);var x=V(),S=d(x),w=e=>{var n=hr(),r=G(n,!0);c(()=>H(r,l())),t(e,n)},E=e=>{var r=xr(),l=d(r);J(l,21,()=>n(v),({event:e,count:t})=>e.id,(e,r)=>{let l=()=>n(r).event,d=()=>n(r).count;var f=yr(),p=s(f),m=s(p);let h;var g=G(m,!0),_=u(m,2),v=e=>{var n=gr(),r=G(n,!0);c(e=>H(r,e),[()=>X(`events.repeated`,{count:d()})]),t(e,n)};i(_,e=>{d()>1&&e(v)});var y=u(_,2),x=e=>{{let r=P(()=>`/actors/${l().actor.uuid}`);Z(e,{get to(){return n(r)},class:`link link-hover`,children:(e,n)=>{j();var r=o();c(()=>H(r,l().actor.identifier)),t(e,r)},$$slots:{default:!0}})}};i(y,e=>{a()&&l().actor&&e(x)});var S=u(y,2),C=e=>{var r=_r(),i=s(r),a=u(i);{let e=P(()=>`/actors/${l().by.uuid}`);Z(a,{get to(){return n(e)},class:`link link-hover`,children:(e,n)=>{j();var r=o();c(()=>H(r,l().by.identifier)),t(e,r)},$$slots:{default:!0}})}U(r),c(e=>H(i,`${e??``} `),[()=>X(`events.by`)]),t(e,r)};i(S,e=>{l().by&&l().by.uuid!==l().actor?.uuid&&e(C)});var w=u(S,2),T=e=>{{let r=P(()=>`/clients/${l().client.clientId}`);Z(e,{get to(){return n(r)},class:`badge badge-ghost badge-xs`,children:(e,n)=>{j();var r=o();c(()=>H(r,l().client.name)),t(e,r)},$$slots:{default:!0}})}};i(w,e=>{l().client&&e(T)}),U(p);var E=u(p,2),D=G(E,!0),O=u(E,2),k=e=>{var n=vr(),r=G(n,!0);c((e,t)=>{F(n,`title`,e),H(r,t)},[()=>JSON.stringify(l().details),()=>b(l()).join(` · `)]),t(e,n)},A=P(()=>b(l()).length);i(O,e=>{n(A)&&e(k)}),U(f),c((e,t,n,r)=>{h=Y(m,1,`event-label`,null,h,{"text-error":e,"text-warning":t}),F(m,`title`,l().action),H(g,l().label),F(E,`datetime`,l().createdAt),F(E,`title`,n),H(D,r)},[()=>fr(l().action)===`bad`,()=>fr(l().action)===`watch`,()=>Ct(l().createdAt),()=>wt(l().createdAt)]),t(e,f)}),U(l);var m=u(l,2),g=e=>{var r=br(),i=G(r,!0);c(e=>H(i,e),[()=>X(`events.more`,{count:n(_).length-p()})]),f(`click`,r,()=>C(h,!0)),t(e,r)};i(m,e=>{!n(h)&&n(_).length>p()&&e(g)}),t(e,r)};i(S,e=>{r.events.length===0?e(w):e(E,-1)}),t(e,x),B()}l([`click`]);var Cr=p(`<p class="text-sm opacity-75"> </p>`),wr=p(`<li class="slat"><div class="flex items-baseline justify-between gap-3"><span class="font-mono text-sm"> </span> <button type="button" class="link text-xs text-error"> </button></div> <span class="truncate text-xs opacity-75"> </span> <div class="flex flex-wrap gap-x-4 text-xs opacity-80"><span> </span> <span> </span></div></li>`),Tr=p(`<button type="button" class="btn btn-ghost btn-sm self-start"> </button>`),Er=p(`<ul class="slats"></ul> <!>`,1),Dr=p(`<span class="badge badge-error badge-xs"> </span>`),Or=p(`<span class="badge badge-warning badge-xs"> </span>`),kr=p(`<button type="button" class="link text-xs"> </button>`),Ar=p(`<button type="button" class="link text-xs text-error"> </button>`),jr=p(`<li class="slat"><div class="flex flex-wrap items-baseline justify-between gap-x-3 gap-y-1"><span class="flex flex-wrap items-baseline gap-2"><!> <!></span> <span class="flex items-baseline gap-3"><button type="button" class="link text-xs"> </button> <!></span></div> <span class="truncate text-xs opacity-75"> </span> <div class="flex flex-wrap gap-x-4 text-xs opacity-80"><span class="font-mono"> </span> <span> </span></div></li>`),Mr=p(`<div class="flex flex-col gap-5"><div><section class="flex min-w-0 flex-col gap-2.5"><h3 class="legend"> </h3> <!></section> <section class="flex min-w-0 flex-col gap-2.5"><h3 class="legend"> </h3> <!></section></div> <button type="button" class="btn btn-sm btn-error btn-outline self-start"> </button></div>`);function Nr(e,r){O(r,!0);let a=z(r,`columns`,3,!1);async function l(e,t,n,i=null){(!i||confirm(i))&&await r.feedback.attempt(()=>r.api.query(e,t),n)&&await r.onchange()}let p=e=>l(`mutation Revoke($id: ID!) { revokeSession(id: $id) { session { revokedAt } } }`,{id:e.id},X(`presence.session_revoked`),X(`presence.revoke_question`)),m=(e,t,n,r=null)=>l(`mutation Act($id: ID!) { ${e}(id: $id) { device { id } } }`,{id:t.id},n,r),h=e=>m(`signOutDevice`,e,X(`presence.device_signed_out`,{label:e.label})),g=e=>m(`blockDevice`,e,X(`presence.device_blocked`,{label:e.label}),X(`presence.block_question`,{label:e.label})),_=e=>m(`unblockDevice`,e,X(`presence.device_unblocked`,{label:e.label})),v=()=>l(`mutation SignOut($uuid: ID!) { signOutActor(uuid: $uuid) { actor { uuid } } }`,{uuid:r.actor.uuid},X(`presence.signed_out_everywhere`),X(`presence.sign_out_everywhere_question`,{identifier:r.actor.identifier})),y=T(!1),b=T(!1),x=P(()=>n(y)?r.actor.sessions:r.actor.sessions.slice(0,4)),S=P(()=>n(b)?r.actor.devices:r.actor.devices.slice(0,4));var w=Mr(),E=s(w),D=s(E),k=s(D),A=G(k,!0),M=u(k,2),N=e=>{var n=Cr(),r=G(n,!0);c(e=>H(r,e),[()=>X(`presence.no_sessions`)]),t(e,n)},I=e=>{var a=Er(),o=d(a);J(o,21,()=>n(x),e=>e.id,(e,r)=>{var i=wr(),a=s(i),o=s(a),l=G(o,!0),d=u(o,2),m=G(d,!0);U(a);var h=u(a,2),g=G(h,!0),_=u(h,2),v=s(_),y=G(v,!0),b=u(v,2),x=G(b,!0);U(_),U(i),c((e,t,i,a)=>{H(l,n(r).ipAddress??`—`),H(m,e),H(g,n(r).userAgent??``),F(v,`title`,t),H(y,i),H(x,a)},[()=>X(`presence.revoke`),()=>Ct(n(r).authenticatedAt),()=>X(`presence.signed_in`,{when:wt(n(r).authenticatedAt)}),()=>X(`presence.expires`,{when:St(n(r).expiresAt)})]),f(`click`,d,()=>p(n(r))),t(e,i)}),U(o);var l=u(o,2),m=e=>{var n=Tr(),i=G(n,!0);c(e=>H(i,e),[()=>X(`presence.show_more`,{count:r.actor.sessions.length-4})]),f(`click`,n,()=>C(y,!0)),t(e,n)};i(l,e=>{!n(y)&&r.actor.sessions.length>4&&e(m)}),t(e,a)};i(M,e=>{r.actor.sessions.length===0?e(N):e(I,-1)}),U(D);var L=u(D,2),R=s(L),V=G(R,!0),ee=u(R,2),te=e=>{var n=Cr(),r=G(n,!0);c(e=>H(r,e),[()=>X(`presence.no_devices`)]),t(e,n)},ne=e=>{var a=Er(),l=d(a);J(l,21,()=>n(S),e=>e.id,(e,r)=>{var a=jr(),l=s(a),d=s(l),p=s(d);{let e=P(()=>`/actors/devices/${n(r).id}`);Z(p,{get to(){return n(e)},class:`link link-hover text-sm font-medium`,children:(e,i)=>{j();var a=o();c(()=>H(a,n(r).label)),t(e,a)},$$slots:{default:!0}})}var m=u(p,2),v=e=>{var n=Dr(),r=G(n,!0);c(e=>H(r,e),[()=>X(`presence.blocked`)]),t(e,n)},y=e=>{var n=Or(),r=G(n,!0);c(e=>H(r,e),[()=>X(`presence.unrecognised`)]),t(e,n)};i(m,e=>{n(r).blockedAt?e(v):n(r).known||e(y,1)}),U(d);var b=u(d,2),x=s(b),S=G(x,!0),C=u(x,2),w=e=>{var i=kr(),a=G(i,!0);c(e=>H(a,e),[()=>X(`presence.unblock`)]),f(`click`,i,()=>_(n(r))),t(e,i)},T=e=>{var i=Ar(),a=G(i,!0);c(e=>H(a,e),[()=>X(`presence.block`)]),f(`click`,i,()=>g(n(r))),t(e,i)};i(C,e=>{n(r).blockedAt?e(w):e(T,-1)}),U(b),U(l);var E=u(l,2),D=G(E,!0),O=u(E,2),k=s(O),A=G(k,!0),M=u(k,2),N=G(M,!0);U(O),U(a),c((e,t,i)=>{H(S,e),H(D,n(r).userAgent??n(r).category),H(A,n(r).ipAddress??`—`),F(M,`title`,t),H(N,i)},[()=>X(`presence.sign_out`),()=>Ct(n(r).lastSeenAt),()=>X(`presence.last_seen`,{when:wt(n(r).lastSeenAt)})]),f(`click`,x,()=>h(n(r))),t(e,a)}),U(l);var p=u(l,2),m=e=>{var n=Tr(),i=G(n,!0);c(e=>H(i,e),[()=>X(`presence.show_more`,{count:r.actor.devices.length-4})]),f(`click`,n,()=>C(b,!0)),t(e,n)};i(p,e=>{!n(b)&&r.actor.devices.length>4&&e(m)}),t(e,a)};i(ee,e=>{r.actor.devices.length===0?e(te):e(ne,-1)}),U(L),U(E);var W=u(E,2),re=G(W,!0);U(w),c((e,t,n)=>{Y(E,1,`grid items-start gap-5 ${a()?`lg:grid-cols-2`:``}`),H(A,e),H(V,t),H(re,n)},[()=>X(`presence.sessions`),()=>X(`presence.devices`),()=>X(`presence.sign_out_everywhere`)]),f(`click`,W,v),t(e,w),B()}l([`click`]);var Pr=p(`<p class="text-sm opacity-85"> </p>`),Fr=p(`<span class="text-xs opacity-75"> </span>`),Ir=p(`<button type="button" class="link text-xs text-error"> </button>`),Lr=p(`<span> </span>`),Rr=p(`<span class="truncate font-mono"> </span>`),zr=p(`<span class="truncate"> </span>`),Br=p(`<li class="slat"><div class="flex flex-wrap items-baseline justify-between gap-x-3 gap-y-1"><span class="flex flex-wrap items-baseline gap-2"><span> </span> <!> <!></span> <span class="flex items-baseline gap-3"><button type="button" class="link text-xs text-error"> </button> <!></span></div> <div class="flex flex-wrap gap-1"></div> <div class="flex flex-wrap gap-x-4 text-xs opacity-80"><!> <!> <span> </span> <span> </span></div></li>`),Vr=p(`<button type="button" class="btn btn-ghost btn-sm self-start"> </button>`),Hr=p(`<ul class="slats"></ul> <!>`,1);function Ur(e,r){O(r,!0);let a=z(r,`showActor`,3,!1),l=z(r,`limit`,3,5),p=T(!1),m=P(()=>n(p)?r.rows:r.rows.slice(0,l())),h={access:`badge-ghost`,refresh:`badge-info`,code:`badge-warning`};function g(e){let t=`tokens.kinds.${e}`,n=X(t);return n===t?e:n}async function _(e,t){let n=a()?e.actor?.identifier:e.client?.name,i=t?X(`tokens.revoke_chain_confirm`,{held:n}):X(`tokens.revoke_confirm`,{kind:g(e.kind)});if(!confirm(i))return;let o=await r.feedback.attempt(()=>r.api.query(`
54
+ mutation Revoke($id: ID!, $family: Boolean) {
55
+ revokeToken(id: $id, family: $family) { revoked }
56
+ }
57
+ `,{id:e.id,family:t}));if(!o)return;let s=o.revokeToken.revoked;r.feedback.say(X(`tokens.revoked`,{count:s})),await r.onchange()}var v=V(),y=d(v),b=e=>{var n=Pr(),r=G(n,!0);c(e=>H(r,e),[()=>X(`tokens.empty`)]),t(e,n)},x=e=>{var v=Hr(),y=d(v);J(y,21,()=>n(m),e=>e.id,(e,r)=>{var l=Br(),d=s(l),p=s(d),m=s(p),v=G(m,!0),y=u(m,2),b=e=>{{let i=P(()=>`/actors/${n(r).actor.uuid}`);Z(e,{get to(){return n(i)},class:`link link-hover text-sm font-medium`,children:(e,i)=>{j();var a=o();c(()=>H(a,n(r).actor.identifier)),t(e,a)},$$slots:{default:!0}})}},x=e=>{{let i=P(()=>`/clients/${n(r).client.clientId}`);Z(e,{get to(){return n(i)},class:`link link-hover text-sm font-medium`,children:(e,i)=>{j();var a=o();c(()=>H(a,n(r).client.name)),t(e,a)},$$slots:{default:!0}})}};i(y,e=>{a()&&n(r).actor?e(b):n(r).client&&e(x,1)});var S=u(y,2),C=e=>{var n=Fr(),r=G(n,!0);c(e=>H(r,e),[()=>X(`tokens.rotated`)]),t(e,n)};i(S,e=>{n(r).parentId&&e(C)}),U(p);var w=u(p,2),T=s(w),E=G(T,!0),D=u(T,2),O=e=>{var i=Ir(),a=G(i,!0);c(e=>H(a,e),[()=>X(`tokens.revoke_chain`)]),f(`click`,i,()=>_(n(r),!0)),t(e,i)};i(D,e=>{n(r).kind===`refresh`&&e(O)}),U(w),U(d);var k=u(d,2);J(k,20,()=>n(r).scopes,e=>e,(e,n)=>{var r=Lr();let i;var a=G(r,!0);c(e=>{i=Y(r,1,`scope`,null,i,{"scope-privileged":e}),H(a,n)},[()=>n.startsWith(`masks:`)]),t(e,r)}),U(k);var A=u(k,2),M=s(A),N=e=>{var i=Rr(),a=G(i,!0);c((e,t)=>{F(i,`title`,e),H(a,t)},[()=>Tt(n(r).audience),()=>Tt(n(r).audience)]),t(e,i)};i(M,e=>{n(r).audience.length&&e(N)});var I=u(M,2),L=e=>{var i=zr(),a=G(i,!0);c(()=>H(a,n(r).device.label)),t(e,i)};i(I,e=>{n(r).device&&e(L)});var R=u(I,2),z=G(R,!0),B=u(R,2),V=G(B,!0);U(A),U(l),c((e,t,i,a,o,s)=>{Y(m,1,`badge badge-sm ${h[n(r).kind]??`badge-ghost`??``}`),H(v,e),H(E,t),F(R,`title`,i),H(z,a),F(B,`title`,o),H(V,s)},[()=>g(n(r).kind),()=>X(`tokens.revoke`),()=>Ct(n(r).createdAt),()=>X(`tokens.issued`,{when:wt(n(r).createdAt)}),()=>Ct(n(r).expiresAt),()=>X(`tokens.expires`,{when:wt(n(r).expiresAt)})]),f(`click`,T,()=>_(n(r),!1)),t(e,l)}),U(y);var b=u(y,2),x=e=>{var n=Vr(),i=G(n,!0);c(e=>H(i,e),[()=>X(`tokens.more`,{count:r.rows.length-l()})]),f(`click`,n,()=>C(p,!0)),t(e,n)};i(b,e=>{!n(p)&&r.rows.length>l()&&e(x)}),t(e,v)};i(y,e=>{r.rows.length===0?e(b):e(x,-1)}),t(e,v),B()}l([`click`]);var Wr=p(`<nav class="settings-tabs"></nav>`);function Gr(e,r){let i=z(r,`part`,3,null);var a=Wr();J(a,21,()=>r.parts,([e,t,n])=>t,(e,a)=>{var s=P(()=>I(n(a),3));let l=()=>n(s)[0],u=()=>n(s)[1],d=()=>n(s)[2];{let a=P(()=>`${r.base}${u()}`),s=P(()=>(i()??null)===l()?`settings-tab-on`:``),f=P(()=>(i()??null)===l()?`page`:void 0);Z(e,{get to(){return n(a)},get class(){return`settings-tab ${n(s)??``}`},get"aria-current"(){return n(f)},children:(e,n)=>{j();var r=o();c(()=>H(r,d())),t(e,r)},$$slots:{default:!0}})}}),U(a),c(()=>F(a,`aria-label`,r.label)),t(e,a)}var Kr=p(`<div class="alert alert-error alert-soft text-sm" role="alert"> </div>`),qr=p(`<img width="64" height="64" alt=""/>`),Jr=p(`<div class="alert alert-info alert-soft flex-col items-start gap-2" role="status"><span class="font-medium"> </span> <code class="font-mono text-xs break-all"> </code></div>`),Yr=p(`<span> </span>`),Xr=p(`<div class="alert alert-warning alert-soft flex-col items-start gap-2" role="status"><span class="font-medium"> </span> <div class="grid grid-cols-2 gap-2 font-mono text-sm md:grid-cols-5"></div></div>`),Zr=p(`<div class="callout callout-warn" role="status"><div class="callout-words"><strong> </strong> <span> </span></div> <div class="callout-actions"><button type="button" class="btn btn-primary btn-sm"> </button></div></div>`),Qr=p(`<div class="callout callout-warn" role="status"><div class="callout-words"><strong> </strong> <span> </span> <span class="hint"> </span></div> <div class="callout-actions"><button type="button" class="btn btn-primary btn-sm"> </button> <button type="button" class="btn btn-ghost btn-sm"> </button></div></div>`),$r=p(`<div class="callout callout-bad" role="status"><div class="callout-words"><strong> </strong></div> <div class="callout-actions"><button type="button" class="btn btn-sm"> </button></div></div>`),ei=p(`<div class="callout callout-info" role="status"><div class="callout-words"><strong> </strong></div> <div class="callout-actions"><button type="button" class="btn btn-sm"> </button></div></div>`),ti=p(`<div class="callout callout-warn" role="status"><div class="callout-words"><strong> </strong></div> <div class="callout-actions"><button type="button" class="btn btn-sm"> </button></div></div>`),ni=p(`<label class="flex items-center gap-2 text-sm"><input type="checkbox" class="checkbox checkbox-sm"/> <code class="hint font-mono"> </code></label>`),ri=p(`<div class="flex flex-col gap-1"></div>`),ii=p(`<p class="text-sm opacity-85"> <!>.</p>`),ai=p(`<p class="hint"> </p>`),oi=p(`<!> <!>`,1),si=p(`<p class="text-sm"> <span class="font-mono"> </span> </p>`),ci=p(`<!> <!> <!> <!> <!>`,1),li=p(`<button type="button" class="btn btn-sm self-start"> </button>`),ui=p(`<div class="sheet flex flex-col gap-1 px-4 py-3"><span class="text-sm font-medium"> </span> <span class="hint"> </span> <div class="flex flex-wrap gap-2 pt-2"><button type="button" class="btn btn-sm"> </button> <button type="button" class="btn btn-sm btn-error btn-outline"> </button></div></div>`),di=p(`<div class="sheet flex flex-wrap items-center justify-between gap-2 px-4 py-3"><span class="text-sm font-medium"> </span> <button type="button" class="btn btn-sm btn-error btn-outline"> </button></div>`),fi=p(`<p class="text-sm opacity-85"> </p>`),pi=p(`<!> <!> <!>`,1),mi=p(`<span class="badge badge-success badge-xs"> </span>`),hi=p(`<span class="badge badge-ghost badge-xs"> </span>`),gi=p(`<span class="text-xs text-error"> </span>`),_i=p(`<li class="sheet flex flex-col gap-1 px-4 py-3"><div class="flex items-baseline justify-between gap-3"><span class="text-sm font-medium"> </span> <span class="flex items-baseline gap-2"><!> <!> <button type="button" class="link text-xs text-error"> </button></span></div> <!> <div class="flex flex-wrap gap-x-4 text-xs opacity-80"><span class="font-mono"> </span> <span> </span></div></li>`),vi=p(`<ul class="flex flex-col gap-2"></ul>`),yi=p(`<div class="grid gap-3"></div> <details class="more"><summary> </summary> <div class="grid gap-3 pt-3 sm:grid-cols-2"></div></details> <button type="button" class="btn btn-primary btn-sm self-start"> </button>`,1),bi=p(`<div class="flex flex-col items-start gap-2"><img width="64" height="64" alt=""/> <span class="hint"> </span></div>`),xi=p(`<button type="button" class="btn btn-ghost btn-sm"> </button>`),Si=p(`<span class="hint"> </span>`),Ci=p(`<div class="flex flex-wrap gap-5"></div> <div class="flex flex-wrap items-center gap-2"><label> <input type="file" class="sr-only" accept="image/png,image/jpeg,image/gif,image/webp"/></label> <!> <!></div>`,1),wi=p(`<button type="button" class="btn btn-sm btn-warning btn-outline"> </button>`),Ti=p(`<div class="flex flex-wrap gap-2"><!> <button type="button" class="btn btn-sm btn-error btn-outline"> </button></div>`),Ei=p(`<!> <!> <!> <!> <!> <!> <!> <!> <!> <div class="grid gap-4"><!></div>`,1);function Di(e,r){O(r,!0);let a=z(r,`part`,3,null),l=Qe(),p=[[`nickname`,X(`actor.fields.nickname`)],[`name`,X(`actor.fields.name`)],[`email`,X(`actor.fields.email`)]],m=[[`givenName`,X(`actor.fields.given_name`)],[`familyName`,X(`actor.fields.family_name`)],[`middleName`,X(`actor.fields.middle_name`)],[`profileUrl`,X(`actor.fields.profile_url`)],[`pictureUrl`,X(`actor.fields.picture_url`)],[`websiteUrl`,X(`actor.fields.website_url`)],[`gender`,X(`actor.fields.gender`)],[`birthdate`,X(`actor.fields.birthdate`)],[`zoneinfo`,X(`actor.fields.zoneinfo`)],[`locale`,X(`actor.fields.locale`)]],h=[...p,...m],g=pt(),_=T(null),v=T(null),y=T(w([])),b=T(w([])),x=T(w({})),S=T(!0),E=T(null),D=T(null),k=T(!1),A=P(()=>!!(n(_)&&n(v)&&n(_).uuid===n(v).uuid)),N=[[null,``,X(`actor.parts.profile`)],[`access`,`/access`,X(`actor.parts.access`)],[`sign-in`,`/sign-in`,X(`actor.parts.sign_in`)],[`activity`,`/activity`,X(`actor.parts.activity`)]],L=P(()=>n(_)?[n(_).name,n(_).email??X(`actors.no_email`),n(_).activated?X(`actor.signed_in_lede`,{when:wt(n(_).lastLoginAt,X(`actor.never`))}):X(`actor.invited_lede`)].filter(Boolean).join(` · `):``),R=()=>W(`mutation Approve($uuid: ID!) { approveActor(uuid: $uuid) { actor { uuid } } }`,{uuid:r.uuid},X(`actor.approval.approved`)),ee=()=>confirm(X(`actor.recovery.question`,{identifier:n(_).identifier}))&&W(`mutation Reset($uuid: ID!) { resetSecondFactors(uuid: $uuid) { actor { uuid } } }`,{uuid:r.uuid},X(`actor.recovery.done`)),te=()=>W(`mutation Dismiss($uuid: ID!) { dismissRecovery(uuid: $uuid) { actor { uuid } } }`,{uuid:r.uuid},X(`actor.recovery.dismissed`));async function ne(){C(S,!0);try{let e=await r.api.query(`
58
+ query Actor($uuid: ID!) {
59
+ actor(uuid: $uuid) {
60
+ uuid identifier nickname email emailVerified phone phoneVerified signedUpAt pendingApproval
61
+ recoveryRequestedAt
62
+ groups { key }
63
+ groupLabels
64
+ suspendedAt externalId
65
+ memberships { externalId organization { key name } }
66
+ scopes otpEnabled emailCodesEnabled textCodesEnabled backupCodesRemaining
67
+ backupCodesGeneratedAt lastLoginAt createdAt activated invitedAt
68
+ passkeys { id label aaguid certification compromise userVerified lastUsedAt }
69
+ name givenName familyName middleName profileUrl pictureUrl websiteUrl
70
+ gender birthdate zoneinfo locale
71
+ photoUploaded avatars { photo identicon initials }
72
+ sessions { id ipAddress userAgent authenticatedAt expiresAt }
73
+ devices { id label category known ipAddress userAgent lastSeenAt blockedAt }
74
+ connections {
75
+ id subject label email emailVerified connectedAt signedInAt delegable
76
+ provider { key name }
77
+ delegations { id releasedAt client { clientId name } }
78
+ }
79
+ consents {
80
+ id scopes audience updatedAt expiresAt authorizationDetails
81
+ client { clientId name }
82
+ }
83
+ tokens {
84
+ id kind scopes audience parentId createdAt expiresAt
85
+ client { clientId name }
86
+ device { id label }
87
+ }
88
+ events(limit: 25) {
89
+ id action label createdAt ipAddress details
90
+ actor { uuid identifier }
91
+ by { uuid identifier }
92
+ client { clientId name }
93
+ device { id label }
94
+ }
95
+ }
96
+ groups { key name }
97
+ viewer { uuid }
98
+ scopesSupported
99
+ }
100
+ `,{uuid:r.uuid});C(_,e.actor,!0),C(v,e.viewer,!0),C(y,e.groups,!0),C(b,e.scopesSupported,!0),C(x,Object.fromEntries(h.map(([t])=>[t,e.actor?.[t]??``])),!0)}catch(e){g.blame(e)}finally{C(S,!1)}}ne();async function W(e,t,n){let i=await g.attempt(()=>r.api.query(e,t),n);return i&&await ne(),i}let re=e=>n(_).groups.some(t=>t.key===e.key),ae=e=>W(re(e)?`mutation Leave($key: String!, $uuid: ID!) { removeGroupMember(key: $key, uuid: $uuid) { group { key } } }`:`mutation Join($key: String!, $uuid: ID!) { addGroupMember(key: $key, uuid: $uuid) { group { key } } }`,{key:e.key,uuid:r.uuid},re(e)?X(`actor.left_group`,{group:e.name}):X(`actor.joined_group`,{group:e.name})),K=()=>W(`mutation Save($uuid: ID!, ${h.map(([e])=>`$${e}: String`).join(`, `)}) {
101
+ updateActor(uuid: $uuid, ${h.map(([e])=>`${e}: $${e}`).join(`, `)}) { actor { uuid } }
102
+ }`,{uuid:r.uuid,...Object.fromEntries(Object.entries(n(x)).map(([e,t])=>[e,t===``?null:t]))},X(`actor.profile_saved`)),oe=e=>W(`mutation Scopes($uuid: ID!, $scopes: [String!]!) {
103
+ setActorScopes(uuid: $uuid, scopes: $scopes) { actor { scopes } }
104
+ }`,{uuid:r.uuid,scopes:e},X(`actor.scopes_updated`));async function se(){C(E,null);let e=await W(`mutation Codes($uuid: ID!) { generateBackupCodes(uuid: $uuid) { codes } }`,{uuid:r.uuid},X(`actor.codes_generated`));e&&C(E,e.generateBackupCodes.codes,!0)}async function q(e,t){if(!confirm(t))return;C(D,null);let n=await W(e,{uuid:r.uuid},null);if(!n)return;let i=Object.values(n)[0];i.delivered?g.say(X(`actor.emailed`)):(g.say(X(`actor.no_mailer`)),C(D,i.url,!0))}let ce=()=>q(`mutation Reset($uuid: ID!) { resetPassword(uuid: $uuid) { delivered url } }`,X(`actor.reset_question`)),le=()=>q(`mutation Resend($uuid: ID!) { resendInvitation(uuid: $uuid) { delivered url } }`,X(`actor.resend_question`)),ue=()=>q(`mutation Verify($uuid: ID!) { verifyEmail(uuid: $uuid) { delivered url } }`,X(`actor.confirm_question`));function de(e){confirm(X(`actor.remove_passkey_question`,{label:e.label}))&&W(`mutation Revoke($uuid: ID!, $id: ID!) { revokePasskey(uuid: $uuid, id: $id) { actor { uuid } } }`,{uuid:r.uuid,id:e.id},X(`actor.passkey_removed`))}async function fe(e){let t=e.currentTarget,n=t.files?.[0];n&&(C(k,!0),await W(`mutation Upload($uuid: ID!, $photo: Upload!) {
105
+ uploadAvatar(uuid: $uuid, photo: $photo) { actor { uuid } }
106
+ }`,{uuid:r.uuid,photo:n},X(`actor.photo_updated`)),C(k,!1),t.value=``)}function pe(){confirm(X(`actor.remove_photo_question`))&&W(`mutation Remove($uuid: ID!) { removeAvatar(uuid: $uuid) { actor { uuid } } }`,{uuid:r.uuid},X(`actor.photo_removed`))}function me(){confirm(X(`actor.disable_question`))&&W(`mutation Disable($uuid: ID!) { disableAuthenticator(uuid: $uuid) { actor { otpEnabled } } }`,{uuid:r.uuid},X(`actor.authenticator_removed`))}let he=[[`email`,`emailCodesEnabled`,X(`actor.factors.email.name`),X(`actor.factors.email.lower`)],[`sms`,`textCodesEnabled`,X(`actor.factors.sms.name`),X(`actor.factors.sms.lower`)]];function ge(e,t,n){confirm(X(`actor.turn_off_question`,{name:n}))&&W(`mutation TurnOff($uuid: ID!, $factor: String!) {
107
+ disableCodeFactor(uuid: $uuid, factor: $factor) { actor { uuid } }
108
+ }`,{uuid:r.uuid,factor:e},X(`actor.turned_off`,{name:t}))}function _e(){confirm(X(`actor.suspend_question`,{identifier:n(_).identifier}))&&W(`mutation Suspend($uuid: ID!) { suspendActor(uuid: $uuid) { actor { suspendedAt } } }`,{uuid:r.uuid},X(`actor.suspended`))}function ve(){W(`mutation Restore($uuid: ID!) { restoreActor(uuid: $uuid) { actor { suspendedAt } } }`,{uuid:r.uuid},X(`actor.restored`))}async function ye(){confirm(X(`actor.delete_question`,{identifier:n(_).identifier}))&&await g.attempt(()=>r.api.query(`mutation Delete($uuid: ID!) { deleteActor(uuid: $uuid) { identifier } }`,{uuid:r.uuid}))&&l.go(`/actors`)}var be=V(),xe=d(be),Se=e=>{it(e,{})},Ce=e=>{var n=Kr(),r=G(n,!0);c(e=>H(r,e),[()=>g.state.failure??X(`actor.missing`)]),t(e,n)},we=e=>{{let l=e=>{var r=qr();let i;c(()=>{F(r,`src`,`${n(_).avatars.photo??n(_).avatars.identicon}?size=128`),i=Y(r,1,`size-14 shrink-0 rounded-lg object-cover sm:size-16`,null,i,{drawn:!n(_).avatars.photo})}),t(e,r)},h=e=>{{let t=P(()=>lt(n(_)));st(e,{get marks(){return n(t)}})}},v=P(()=>({to:`/actors`,label:X(`actor.back`)}));kn(e,{get title(){return n(_).identifier},get id(){return n(_).uuid},get back(){return n(v)},get lede(){return n(L)},lead:l,after:h,children:(e,l)=>{var h=Ei(),v=d(h);Cn(v,{get feedback(){return g.state}});var S=u(v,2),C=e=>{var r=Jr(),i=s(r),a=G(i,!0),o=u(i,2),l=G(o,!0);U(r),c(e=>{H(a,e),H(l,n(D))},[()=>X(`actor.link_once`)]),t(e,r)};i(S,e=>{n(D)&&e(C)});var w=u(S,2),T=e=>{var r=Xr(),i=s(r),a=G(i,!0),o=u(i,2);J(o,20,()=>n(E),e=>e,(e,n)=>{var r=Yr(),i=G(r,!0);c(()=>H(i,n)),t(e,r)}),U(o),U(r),c(e=>H(a,e),[()=>X(`actor.write_down`)]),t(e,r)};i(w,e=>{n(E)&&e(T)});var O=u(w,2),L=e=>{var n=Zr(),r=s(n),i=s(r),a=G(i,!0),o=u(i,2),l=G(o,!0);U(r);var d=u(r,2),p=s(d),m=G(p,!0);U(d),U(n),c((e,t,n)=>{H(a,e),H(l,t),H(m,n)},[()=>X(`actor.approval.title`),()=>X(`actor.approval.lede`),()=>X(`actor.approval.approve`)]),f(`click`,p,R),t(e,n)};i(O,e=>{n(_).pendingApproval&&e(L)});var z=u(O,2),B=e=>{var r=Qr(),i=s(r),a=s(i),o=G(a,!0),l=u(a,2),d=G(l,!0),p=u(l,2),m=G(p,!0);U(i);var h=u(i,2),g=s(h),v=G(g,!0),y=u(g,2),b=G(y,!0);U(h),U(r),c((e,t,n,r,i)=>{H(o,e),H(d,t),H(m,n),H(v,r),H(b,i)},[()=>X(`actor.recovery.title`),()=>X(`actor.recovery.lede`,{when:wt(n(_).recoveryRequestedAt)}),()=>X(`actor.recovery.explain`),()=>X(`actor.recovery.reset`),()=>X(`actor.recovery.dismiss`)]),f(`click`,g,ee),f(`click`,y,te),t(e,r)};i(z,e=>{n(_).recoveryRequestedAt&&e(B)});var W=u(z,2),q=e=>{var r=$r(),i=s(r),a=s(i),o=G(a,!0);U(i);var l=u(i,2),d=s(l),p=G(d,!0);U(l),U(r),c((e,t)=>{H(o,e),H(p,t)},[()=>X(`actor.suspended_on`,{day:St(n(_).suspendedAt)}),()=>X(`actor.restore`)]),f(`click`,d,ve),t(e,r)};i(W,e=>{n(_).suspendedAt&&e(q)});var be=u(W,2),xe=e=>{var r=ei(),i=s(r),a=s(i),o=G(a,!0);U(i);var l=u(i,2),d=s(l),p=G(d,!0);U(l),U(r),c((e,t)=>{H(o,e),H(p,t)},[()=>n(_).invitedAt?X(`actor.invited_on`,{day:St(n(_).invitedAt)}):X(`actor.invited`),()=>X(`actor.resend`)]),f(`click`,d,le),t(e,r)};i(be,e=>{n(_).activated||e(xe)});var Se=u(be,2),Ce=e=>{var r=ti(),i=s(r),a=s(i),o=G(a,!0);U(i);var l=u(i,2),d=s(l),p=G(d,!0);U(l),U(r),c((e,t)=>{H(o,e),H(p,t)},[()=>X(`actor.unconfirmed`,{email:n(_).email}),()=>X(`actor.send_confirmation`)]),f(`click`,d,ue),t(e,r)};i(Se,e=>{n(_).email&&!n(_).emailVerified&&e(Ce)});var we=u(Se,2);{let e=P(()=>`/actors/${n(_).uuid}`),t=P(()=>X(`actor.parts.label`));Gr(we,{get base(){return n(e)},get part(){return a()},get parts(){return N},get label(){return n(t)}})}var Te=u(we,2),Ee=s(Te),De=e=>{var a=ci(),l=d(a);{let e=P(()=>X(`actor.scopes`)),t=P(()=>X(`actor.scopes_lede`));Q(l,{row:!0,get title(){return n(e)},get lede(){return n(t)},children:(e,t)=>{hn(e,{get value(){return n(_).scopes},get available(){return n(b)},onchange:oe})},$$slots:{default:!0}})}var p=u(l,2);{let e=P(()=>X(`actor.groups`)),r=P(()=>X(`actor.groups_lede`));Q(p,{row:!0,get title(){return n(e)},get lede(){return n(r)},children:(e,r)=>{var a=oi(),l=d(a),p=e=>{var r=ri();J(r,21,()=>n(y),e=>e.key,(e,r)=>{var i=ni(),a=s(i);M(a);var o=u(a),l=u(o),d=G(l,!0);U(i),c(e=>{ie(a,e),H(o,` ${n(r).name??``} `),H(d,n(r).key)},[()=>re(n(r))]),f(`change`,a,()=>ae(n(r))),t(e,i)}),U(r),t(e,r)},m=e=>{var n=ii(),r=s(n);Z(u(r),{to:`/settings`,children:(e,n)=>{j();var r=o();c(e=>H(r,e),[()=>X(`actor.add_group`)]),t(e,r)},$$slots:{default:!0}}),j(),U(n),c(e=>H(r,`${e??``} `),[()=>X(`actor.no_groups`)]),t(e,n)};i(l,e=>{n(y).length?e(p):e(m,-1)});var h=u(l,2),g=e=>{var r=ai(),i=G(r,!0);c(e=>H(i,e),[()=>X(`actor.group_labels`,{labels:n(_).groupLabels.join(`, `)})]),t(e,r)};i(h,e=>{n(_).groupLabels.length&&e(g)}),t(e,a)},$$slots:{default:!0}})}var m=u(p,2),h=e=>{{let r=P(()=>X(`actor.provisioned`));Q(e,{row:!0,get title(){return n(r)},children:(e,r)=>{var a=oi(),o=d(a),l=e=>{var r=si(),i=s(r),a=u(i),o=G(a,!0),l=u(a);U(r),c((e,t)=>{H(i,`${e??``} `),H(o,n(_).externalId),H(l,`.
109
+ ${t??``}`)},[()=>X(`actor.provisioned_as`),()=>X(`actor.provider_may_change`)]),t(e,r)};i(o,e=>{n(_).externalId&&e(l)});var f=u(o,2);J(f,17,()=>n(_).memberships.filter(e=>e.externalId),e=>e.organization.key,(e,r)=>{var i=si(),a=s(i),o=u(a),l=G(o,!0),d=u(o);U(i),c((e,t)=>{H(a,`${e??``} `),H(l,n(r).externalId),H(d,`, ${t??``}`)},[()=>X(`actor.directory_provisioned`,{organization:n(r).organization.name}),()=>X(`actor.directory_may_change`)]),t(e,i)}),t(e,a)},$$slots:{default:!0}})}},v=P(()=>n(_).externalId||n(_).memberships.some(e=>e.externalId));i(m,e=>{n(v)&&e(h)});var x=u(m,2);{let e=P(()=>X(`actor.consents`)),t=P(()=>X(`actor.consents_lede`));Q(x,{row:!0,get title(){return n(e)},get lede(){return n(t)},children:(e,t)=>{lr(e,{get api(){return r.api},get feedback(){return g},get rows(){return n(_).consents},onchange:ne})},$$slots:{default:!0}})}var S=u(x,2);{let e=P(()=>X(`actor.connections`)),t=P(()=>X(`actor.connections_lede`));Q(S,{row:!0,get title(){return n(e)},get lede(){return n(t)},children:(e,t)=>{tr(e,{get api(){return r.api},get feedback(){return g},get rows(){return n(_).connections},onchange:ne})},$$slots:{default:!0}})}t(e,a)},Oe=e=>{var a=ci(),o=d(a);{let e=P(()=>X(`actor.password`)),r=P(()=>n(_).activated?X(`actor.password_lede`):X(`actor.password_invited`));Q(o,{row:!0,get title(){return n(e)},get lede(){return n(r)},children:(e,r)=>{var a=V(),o=d(a),s=e=>{var n=li(),r=G(n,!0);c(e=>H(r,e),[()=>X(`actor.reset_password`)]),f(`click`,n,ce),t(e,n)},l=e=>{var n=li(),r=G(n,!0);c(e=>H(r,e),[()=>X(`actor.resend`)]),f(`click`,n,le),t(e,n)};i(o,e=>{n(_).activated?e(s):e(l,-1)}),t(e,a)},$$slots:{default:!0}})}var l=u(o,2);{let e=P(()=>X(`actor.second_factor`));Q(l,{row:!0,get title(){return n(e)},children:(e,r)=>{var a=pi(),o=d(a),l=e=>{var r=ui(),i=s(r),a=G(i,!0),o=u(i,2),l=G(o,!0),d=u(o,2),p=s(d),m=G(p,!0),h=u(p,2),g=G(h,!0);U(d),U(r),c((e,t,n,r)=>{H(a,e),H(l,t),H(m,n),H(g,r)},[()=>X(`actor.authenticator`),()=>X(`actor.backup_codes`,{count:n(_).backupCodesRemaining}),()=>X(`actor.generate`),()=>X(`actor.remove_authenticator`)]),f(`click`,p,se),f(`click`,h,me),t(e,r)};i(o,e=>{n(_).otpEnabled&&e(l)});var p=u(o,2);J(p,17,()=>he.filter(([,e])=>n(_)[e]),([e,,t,n])=>e,(e,r)=>{var i=P(()=>I(n(r),4));let a=()=>n(i)[0],o=()=>n(i)[2],l=()=>n(i)[3];var d=di(),p=s(d),m=G(p,!0),h=u(p,2),g=G(h,!0);U(d),c(e=>{H(m,o()),H(g,e)},[()=>X(`actor.turn_off`,{name:l()})]),f(`click`,h,()=>ge(a(),o(),l())),t(e,d)});var m=u(p,2),h=e=>{var n=fi(),r=G(n,!0);c(e=>H(r,e),[()=>X(`actor.password_only`)]),t(e,n)};i(m,e=>{!n(_).otpEnabled&&!n(_).emailCodesEnabled&&!n(_).textCodesEnabled&&e(h)}),t(e,a)},$$slots:{default:!0}})}var p=u(l,2);{let e=P(()=>X(`actor.passkeys`));Q(p,{row:!0,get title(){return n(e)},children:(e,r)=>{var a=V(),o=d(a),l=e=>{var n=fi(),r=G(n,!0);c(e=>H(r,e),[()=>X(`actor.no_passkeys`)]),t(e,n)},p=e=>{var r=vi();J(r,21,()=>n(_).passkeys,e=>e.id,(e,r)=>{var a=_i(),o=s(a),l=s(o),d=G(l,!0),p=u(l,2),m=s(p),h=e=>{var n=mi(),r=G(n,!0);c(e=>H(r,e),[()=>X(`actor.verifying`)]),t(e,n)};i(m,e=>{n(r).userVerified&&e(h)});var g=u(m,2),_=e=>{var i=hi(),a=G(i,!0);c(()=>H(a,n(r).certification)),t(e,i)};i(g,e=>{n(r).certification&&e(_)});var v=u(g,2),y=G(v,!0);U(p),U(o);var b=u(o,2),x=e=>{var i=gi(),a=G(i,!0);c(e=>H(a,e),[()=>X(`actor.compromise`,{compromise:n(r).compromise.toLowerCase().replaceAll(`_`,` `)})]),t(e,i)};i(b,e=>{n(r).compromise&&e(x)});var S=u(b,2),C=s(S),w=G(C,!0),T=u(C,2),E=G(T,!0);U(S),U(a),c((e,t,i)=>{H(d,n(r).label),H(y,e),H(w,t),H(E,i)},[()=>X(`actor.remove`),()=>n(r).aaguid??X(`actor.no_aaguid`),()=>X(`actor.last_used`,{when:wt(n(r).lastUsedAt,X(`actor.never`))})]),f(`click`,v,()=>de(n(r))),t(e,a)}),U(r),t(e,r)};i(o,e=>{n(_).passkeys.length===0?e(l):e(p,-1)}),t(e,a)},$$slots:{default:!0}})}var m=u(p,2);{let e=P(()=>X(`actor.signed_in`)),t=P(()=>n(A)?X(`actor.signed_in_yourself`):null);Q(m,{row:!0,get title(){return n(e)},get lede(){return n(t)},children:(e,t)=>{Nr(e,{get api(){return r.api},get feedback(){return g},get actor(){return n(_)},onchange:ne})},$$slots:{default:!0}})}var h=u(m,2);{let e=P(()=>X(`actor.tokens`)),t=P(()=>X(`actor.tokens_lede`));Q(h,{row:!0,get title(){return n(e)},get lede(){return n(t)},children:(e,t)=>{Ur(e,{get api(){return r.api},get feedback(){return g},get rows(){return n(_).tokens},onchange:ne})},$$slots:{default:!0}})}t(e,a)},ke=e=>{Q(e,{actions:e=>{{let r=P(()=>`/activity?actor=${n(_).uuid}`);Z(e,{get to(){return n(r)},class:`btn btn-ghost btn-sm`,children:(e,n)=>{j();var r=o();c(e=>H(r,e),[()=>X(`actor.all_activity`)]),t(e,r)},$$slots:{default:!0}})}},children:(e,t)=>{{let t=P(()=>X(`actor.no_activity`));Sr(e,{get events(){return n(_).events},showActor:!1,get empty(){return n(t)},limit:25,collapse:!0})}},$$slots:{actions:!0,default:!0}})},Ae=e=>{var r=pi(),a=d(r);{let e=P(()=>X(`actor.profile`));Q(a,{row:!0,get title(){return n(e)},children:(e,r)=>{var i=yi(),a=d(i);J(a,21,()=>p,([e,t])=>e,(e,t)=>{var r=P(()=>I(n(t),2));let i=()=>n(r)[0],a=()=>n(r)[1];$(e,{get label(){return a()},get value(){return n(x)[i()]},set value(e){n(x)[i()]=e}})}),U(a);var o=u(a,2),l=s(o),h=G(l,!0),g=u(l,2);J(g,21,()=>m,([e,t])=>e,(e,t)=>{var r=P(()=>I(n(t),2));let i=()=>n(r)[0],a=()=>n(r)[1];$(e,{get label(){return a()},get value(){return n(x)[i()]},set value(e){n(x)[i()]=e}})}),U(g),U(o);var _=u(o,2),v=G(_,!0);c((e,t,n)=>{o.open=e,H(h,t),H(v,n)},[()=>m.some(([e])=>n(x)[e]),()=>X(`actor.more_fields`),()=>X(`actor.save_profile`)]),f(`click`,_,K),t(e,i)},$$slots:{default:!0}})}var o=u(a,2);{let e=P(()=>X(`actor.photo`)),r=P(()=>X(`actor.photo_lede`));Q(o,{row:!0,get title(){return n(e)},get lede(){return n(r)},children:(e,r)=>{var a=Ci(),o=d(a);J(o,20,()=>[`photo`,`identicon`,`initials`].filter(e=>n(_).avatars[e]),e=>e,(e,r)=>{var i=bi(),a=s(i);let o;var l=u(a,2),d=G(l,!0);U(i),c(e=>{F(a,`src`,`${n(_).avatars[r]}?size=128`),o=Y(a,1,`size-16 rounded-lg object-cover`,null,o,{drawn:r!==`photo`}),H(d,e)},[()=>X(`actor.styles.${r}`)]),t(e,i)}),U(o);var l=u(o,2),p=s(l);let m;var h=s(p),g=u(h);U(p);var v=u(p,2),y=e=>{var n=xi(),r=G(n,!0);c(e=>H(r,e),[()=>X(`actor.remove_photo`)]),f(`click`,n,pe),t(e,n)};i(v,e=>{n(_).photoUploaded&&e(y)});var b=u(v,2),x=e=>{var n=Si(),r=G(n,!0);c(e=>H(r,e),[()=>X(`actor.uploading`)]),t(e,n)};i(b,e=>{n(k)&&e(x)}),U(l),c(e=>{m=Y(p,1,`btn btn-sm`,null,m,{"btn-disabled":n(k)}),H(h,`${e??``} `),g.disabled=n(k)},[()=>n(_).photoUploaded?X(`actor.change_photo`):X(`actor.upload_photo`)]),f(`change`,g,fe),t(e,a)},$$slots:{default:!0}})}var l=u(o,2);{let e=P(()=>X(`actor.danger`)),r=P(()=>n(A)?X(`actor.yourself`):X(`actor.danger_lede`));Q(l,{row:!0,get title(){return n(e)},get lede(){return n(r)},children:(e,r)=>{var a=V(),o=d(a),l=e=>{var r=Ti(),a=s(r),o=e=>{var r=wi(),i=G(r,!0);c(e=>H(i,e),[()=>X(`actor.suspend`,{identifier:n(_).identifier})]),f(`click`,r,_e),t(e,r)};i(a,e=>{n(_).suspendedAt||e(o)});var l=u(a,2),d=G(l,!0);U(r),c(e=>H(d,e),[()=>X(`actor.delete`,{identifier:n(_).identifier})]),f(`click`,l,ye),t(e,r)};i(o,e=>{n(A)||e(l)}),t(e,a)},$$slots:{default:!0}})}t(e,r)};i(Ee,e=>{a()===`access`?e(De):a()===`sign-in`?e(Oe,1):a()===`activity`?e(ke,2):e(Ae,-1)}),U(Te),t(e,h)},$$slots:{lead:!0,after:!0,default:!0}})}};i(xe,e=>{n(S)&&!n(_)?e(Se):n(_)?e(we,-1):e(Ce,1)}),t(e,be),B()}l([`click`,`change`]);var Oi=p(`<dt class="opacity-80"> </dt> <dd> </dd>`,1),ki=p(`<dl class="grid gap-x-4 gap-y-0.5 text-sm sm:grid-cols-3 sm:gap-y-2"></dl>`);function Ai(e,r){var i=ki();J(i,21,()=>r.rows,({term:e,value:t,mono:n})=>e,(e,r)=>{let i=()=>n(r).term,a=()=>n(r).value,o=()=>n(r).mono;var s=Oi(),l=d(s),f=G(l,!0),p=u(l,2),m=G(p,!0);c(()=>{H(f,i()),Y(p,1,`pb-2 sm:col-span-2 sm:pb-0 ${o()?`font-mono text-xs break-all`:``}`),H(m,a()||`—`)}),t(e,s)}),U(i),t(e,i)}var ji=p(`<div class="alert alert-error alert-soft text-sm" role="alert"> </div>`),Mi=p(`<button type="button" class="btn btn-sm"> </button>`),Ni=p(`<button type="button" class="btn btn-sm btn-error btn-outline"> </button>`),Pi=p(`<!> <div class="flex flex-wrap gap-2 pt-1"><!> <!></div>`,1),Fi=p(`<p class="text-sm opacity-85"> </p>`),Ii=p(`<li class="slat"><!></li>`),Li=p(`<ul class="slats"></ul>`),Ri=p(`<li class="slat"><div class="flex flex-wrap items-baseline justify-between gap-x-3 gap-y-1"><!> <span class="font-mono text-xs opacity-80"> </span></div> <div class="flex flex-wrap gap-x-4 text-xs opacity-80"><span> </span> <span> </span></div></li>`),zi=p(`<!> <div class="grid items-start gap-4 md:grid-cols-2"><!> <div class="flex flex-col gap-4"><!> <!> <!></div></div>`,1);function Bi(e,r){O(r,!0);let a=pt(),l=T(null),p=T(w([])),m=T(!0);async function h(){C(m,!0);try{let e=await r.api.query(`
110
+ query Device($id: ID!) {
111
+ device(id: $id) {
112
+ id label name category known ipAddress userAgent lastSeenAt blockedAt createdAt
113
+ actors { uuid identifier }
114
+ sessions {
115
+ id ipAddress userAgent authenticatedAt expiresAt
116
+ actor { uuid identifier }
117
+ }
118
+ }
119
+ events(device: $id, limit: 25) {
120
+ id action label createdAt ipAddress details
121
+ actor { uuid identifier }
122
+ by { uuid identifier }
123
+ client { clientId name }
124
+ }
125
+ }
126
+ `,{id:r.id});C(l,e.device,!0),C(p,e.events,!0)}catch(e){a.blame(e)}finally{C(m,!1)}}h();async function g(e,t,n=null){(!n||confirm(n))&&await a.attempt(()=>r.api.query(`mutation Act($id: ID!) { ${e}(id: $id) { device { id } } }`,{id:r.id}),t)&&await h()}let _=()=>g(`blockDevice`,X(`device.blocked`,{label:n(l).label}),X(`device.block_question`,{label:n(l).label})),v=()=>g(`unblockDevice`,X(`device.unblocked`,{label:n(l).label})),y=()=>g(`signOutDevice`,X(`device.signed_out`,{label:n(l).label}),X(`device.sign_out_question`,{label:n(l).label})),b=P(()=>n(l)?[{term:X(`device.facts.kind`),value:n(l).category},{term:X(`device.facts.ip_address`),value:n(l).ipAddress,mono:!0},{term:X(`device.facts.user_agent`),value:n(l).userAgent,mono:!0},{term:X(`device.facts.first_seen`),value:St(n(l).createdAt)},{term:X(`device.facts.last_seen`),value:Ct(n(l).lastSeenAt)}]:[]);var x=V(),S=d(x),E=e=>{it(e,{})},D=e=>{var n=ji(),r=G(n,!0);c(e=>H(r,e),[()=>a.state.failure??X(`device.missing`)]),t(e,n)},k=e=>{{let r=P(()=>({to:`/actors#devices`,label:X(`device.back`)})),m=P(()=>n(l).blockedAt?X(`device.blocked_lede`,{day:St(n(l).blockedAt)}):X(`device.seen_lede`,{when:wt(n(l).lastSeenAt)}));kn(e,{get title(){return n(l).label},get id(){return n(l).id},get back(){return n(r)},get lede(){return n(m)},children:(e,r)=>{var m=zi(),h=d(m);Cn(h,{get feedback(){return a.state}});var g=u(h,2),x=s(g);{let e=P(()=>X(`device.what`));Q(x,{get title(){return n(e)},children:(e,r)=>{var a=Pi(),o=d(a);Ai(o,{get rows(){return n(b)}});var p=u(o,2),m=s(p),h=e=>{var n=Mi(),r=G(n,!0);c(e=>H(r,e),[()=>X(`device.sign_out_everywhere`)]),f(`click`,n,y),t(e,n)};i(m,e=>{n(l).sessions.length&&e(h)});var g=u(m,2),x=e=>{var n=Mi(),r=G(n,!0);c(e=>H(r,e),[()=>X(`device.unblock`)]),f(`click`,n,v),t(e,n)},S=e=>{var n=Ni(),r=G(n,!0);c(e=>H(r,e),[()=>X(`device.block`)]),f(`click`,n,_),t(e,n)};i(g,e=>{n(l).blockedAt?e(x):e(S,-1)}),U(p),t(e,a)},$$slots:{default:!0}})}var S=u(x,2),C=s(S);{let e=P(()=>X(`device.who`));Q(C,{get title(){return n(e)},children:(e,r)=>{var a=V(),u=d(a),f=e=>{var n=Fi(),r=G(n,!0);c(e=>H(r,e),[()=>X(`device.nobody`)]),t(e,n)},p=e=>{var r=Li();J(r,21,()=>n(l).actors,e=>e.uuid,(e,r)=>{var i=Ii(),a=s(i);{let e=P(()=>`/actors/${n(r).uuid}`);Z(a,{get to(){return n(e)},class:`link link-hover text-sm font-medium`,children:(e,i)=>{j();var a=o();c(()=>H(a,n(r).identifier)),t(e,a)},$$slots:{default:!0}})}U(i),t(e,i)}),U(r),t(e,r)};i(u,e=>{n(l).actors.length===0?e(f):e(p,-1)}),t(e,a)},$$slots:{default:!0}})}var w=u(C,2);{let e=P(()=>X(`device.live_sessions`));Q(w,{get title(){return n(e)},children:(e,r)=>{var a=V(),f=d(a),p=e=>{var n=Fi(),r=G(n,!0);c(e=>H(r,e),[()=>X(`device.no_sessions`)]),t(e,n)},m=e=>{var r=Li();J(r,21,()=>n(l).sessions,e=>e.id,(e,r)=>{var i=Ri(),a=s(i),l=s(a);{let e=P(()=>`/actors/${n(r).actor.uuid}`);Z(l,{get to(){return n(e)},class:`link link-hover text-sm font-medium`,children:(e,i)=>{j();var a=o();c(()=>H(a,n(r).actor.identifier)),t(e,a)},$$slots:{default:!0}})}var d=u(l,2),f=G(d,!0);U(a);var p=u(a,2),m=s(p),h=G(m,!0),g=u(m,2),_=G(g,!0);U(p),U(i),c((e,t,i)=>{H(f,n(r).ipAddress??`—`),F(m,`title`,e),H(h,t),H(_,i)},[()=>Ct(n(r).authenticatedAt),()=>X(`device.signed_in`,{when:wt(n(r).authenticatedAt)}),()=>X(`device.expires`,{when:St(n(r).expiresAt)})]),t(e,i)}),U(r),t(e,r)};i(f,e=>{n(l).sessions.length===0?e(p):e(m,-1)}),t(e,a)},$$slots:{default:!0}})}var T=u(w,2);{let e=P(()=>X(`device.activity`));Q(T,{get title(){return n(e)},children:(e,t)=>{{let t=P(()=>X(`device.no_activity`));Sr(e,{get events(){return n(p)},get empty(){return n(t)}})}},$$slots:{default:!0}})}U(S),U(g),t(e,m)},$$slots:{default:!0}})}};i(S,e=>{n(m)&&!n(l)?e(E):n(l)?e(k,-1):e(D,1)}),t(e,x),B()}l([`click`]);var Vi=p(`<img alt=""/>`),Hi=p(`<span aria-hidden="true"> </span>`);function Ui(e,n){O(n,!0);let r=z(n,`class`,3,`size-8 rounded`);var a=V(),o=d(a),s=e=>{var i=Vi();c(()=>{F(i,`src`,n.client.logoUrl),Y(i,1,`shrink-0 ${r()??``}`)}),t(e,i)},l=e=>{var i=Hi(),a=G(i,!0);c(e=>{Y(i,1,`grid shrink-0 place-items-center bg-base-200 font-semibold ${r()??``}`),H(a,e)},[()=>se(n.client.name)]),t(e,i)};i(o,e=>{n.client.logoUrl?e(s):e(l,-1)}),t(e,a),B()}var Wi=p(`<span class="field-label"> </span>`),Gi=p(`<option> </option>`),Ki=p(`<label class="flex min-w-0 flex-col gap-1.5"><!> <select class="select select-sm w-full"></select></label>`);function qi(r,a){O(a,!0);let o=z(a,`label`,3,null),l=z(a,`disabled`,3,!1),d=z(a,`name`,3,null);var p=Ki(),m=s(p),h=e=>{var n=Wi(),r=G(n,!0);c(()=>H(r,o())),t(e,n)};i(m,e=>{o()&&e(h)});var g=u(m,2);J(g,21,()=>a.options,([e,t,n=!1])=>e,(r,i)=>{var a=P(()=>I(n(i),3));let o=()=>n(a)[0],s=()=>n(a)[1],l=e(()=>ce(n(a)[2],!1));var u=Gi(),d=G(u,!0),f={};c(()=>{u.disabled=n(l),H(d,s()),f!==(f=o())&&(u.value=(u.__value=f)??``)}),t(r,u)}),U(g);var _;L(g),U(p),c(()=>{g.disabled=l(),F(g,`aria-label`,o()?null:d()),_!==(_=a.value)&&(g.value=(g.__value=_)??``,E(g,_))}),f(`change`,g,e=>a.onchange(e.currentTarget.value)),t(r,p),B()}l([`change`]);var Ji=p(`<label class="flex cursor-pointer items-center gap-2 text-sm"><input type="checkbox" class="toggle toggle-sm"/> </label>`);function Yi(e,n){O(n,!0);let r=z(n,`checked`,15,!1),i=z(n,`onchange`,3,null);var a=Ji(),o=s(a);M(o);var l=u(o);U(a),c(()=>H(l,` ${n.label??``}`)),f(`change`,o,function(...e){(i()?e=>i()(e.currentTarget.checked):void 0)?.apply(this,e)}),K(o,r),t(e,a),B()}l([`change`]);var Xi=p(`<!> <!> <button type="button" class="btn btn-primary btn-sm"> </button>`,1),Zi=p(`<button type="button"> </button>`),Qi=p(`<!> <!> <!>`,1),$i=p(`<label class="flex flex-col gap-1.5"><span class="field-label"> </span> <textarea class="textarea textarea-sm w-full font-mono text-xs" rows="3" spellcheck="false" placeholder="&lt;md:EntityDescriptor …"></textarea></label> <button type="button" class="btn btn-sm self-start"> </button> <!> <label class="flex flex-col gap-1.5"><span class="field-label"> </span> <textarea class="textarea textarea-sm w-full font-mono text-xs" rows="2" spellcheck="false" placeholder="https://wiki.example.com/saml/acs"></textarea></label> <label class="flex flex-col gap-1.5"><span class="field-label"> </span> <textarea class="textarea textarea-sm w-full font-mono text-xs" rows="2" spellcheck="false"></textarea></label> <!> <!>`,1),ea=p(`<label class="flex flex-col gap-1.5"><span class="field-label"> </span> <textarea class="textarea textarea-sm w-full font-mono text-xs" rows="2" autocapitalize="none" autocorrect="off" spellcheck="false" placeholder="https://app.example.com/callback"></textarea></label>`),ta=p(`<label class="flex flex-col gap-1.5"><span class="field-label"> </span> <textarea class="textarea textarea-sm w-full font-mono text-xs" rows="2" autocapitalize="none" autocorrect="off" spellcheck="false" placeholder="https://api.example.com/mcp"></textarea></label> <div class="flex flex-col gap-2"><span class="legend"> </span> <!></div>`,1),na=p(`<!> <div class="range" role="group"></div> <!> <p class="hint"> </p> <!> <!> <!> <div class="flex gap-2"><button type="button" class="btn btn-primary btn-sm"> </button> <button type="button" class="btn btn-ghost btn-sm"> </button></div>`,1),ra=p(`<p class="tray px-2 py-1 font-mono text-xs break-all"> </p>`),ia=p(`<a class="link" target="_blank" rel="noreferrer"> </a>.`,1),aa=p(`<dt class="font-mono text-xs opacity-80"> </dt> <dd class="tray m-0 px-2 py-1 font-mono text-xs break-all whitespace-pre-wrap"> </dd>`,1),oa=p(`<p class="text-sm opacity-85"> <!></p> <dl class="grid gap-x-4 gap-y-2 text-sm md:grid-cols-[auto_1fr]"></dl>`,1),sa=p(`<p class="text-sm opacity-85"> </p> <p class="tray px-2 py-1 font-mono text-xs break-all"> </p> <!> <!> <!>`,1),ca=p(`<td class="w-full max-w-0 md:w-auto md:max-w-none"><div class="flex items-center gap-3"><!> <div class="min-w-0"><div class="flex min-w-0 items-center gap-2"><!> <!></div> <div class="hint truncate font-mono text-xs"> </div></div></div></td> <td class="hidden md:table-cell"><div class="hint max-w-[18rem] truncate font-mono text-xs"> </div></td> <td class="hidden text-xs whitespace-nowrap opacity-85 md:table-cell"> </td>`,1),la=p(`<!> <!>`,1),ua=p(`<!> <!> <!> <!>`,1);function da(e,r){O(r,!0);let a=ut(),l=[[`service`,[`client_credentials`]],[`app`,[`authorization_code`,`refresh_token`]],[`saml`,[]],[`preset`,[]]],p=[X(`clients.columns.name`),{label:X(`clients.columns.resources`),hide:!0},{label:X(`clients.columns.registered`),hide:!0}],m=pt(),h=T(!1),g=T(!1),_=T(null),v=T(w([])),y=T(w([])),b=T(w(x()));function x(){return{name:``,kind:`service`,redirects:``,resources:``,scopes:[],metadata:``,entityId:``,certificate:``,sloUrl:``,requestsSigned:!1,preset:``,baseUrl:``,slug:``}}let S=P(()=>n(y).find(e=>e.key===n(b).preset)),E=e=>e.split(`
127
+ `).map(e=>e.trim()).filter(Boolean);async function D(){if(C(b,x(),!0),C(_,null),C(h,!0),m.clear(),n(v).length)return;let e=await m.attempt(()=>r.api.query(`query Scopes { scopesSupported appPresets { key name asks guide } }`));e&&(C(v,e.scopesSupported,!0),C(y,e.appPresets,!0))}async function k(){let e=await m.attempt(()=>r.api.query(`mutation Read($xml: String!) {
128
+ readSamlApplicationMetadata(xml: $xml) { entityId acsUrls certificate requestsSigned sloUrl }
129
+ }`,{xml:n(b).metadata}));if(!e)return;let t=e.readSamlApplicationMetadata;n(b).entityId=t.entityId??n(b).entityId,n(b).redirects=t.acsUrls.join(`
130
+ `)||n(b).redirects,n(b).certificate=t.certificate??n(b).certificate,n(b).sloUrl=t.sloUrl??n(b).sloUrl,n(b).requestsSigned=t.requestsSigned}function A(){return n(b).kind===`preset`?[`
131
+ mutation AddApp($preset: ID!, $baseUrl: String!, $name: String, $slug: String) {
132
+ addApp(preset: $preset, baseUrl: $baseUrl, name: $name, slug: $slug) {
133
+ client { clientId name } secret guide settings { label value }
134
+ }
135
+ }
136
+ `,{preset:n(b).preset,baseUrl:n(b).baseUrl.trim(),name:n(b).name.trim()||null,slug:n(b).slug.trim()||null},`addApp`]:n(b).kind===`saml`?[`
137
+ mutation Saml(
138
+ $name: String!, $entityId: String!, $acsUrls: [String!]!, $certificate: String, $requestsSigned: Boolean,
139
+ $sloUrl: String
140
+ ) {
141
+ createSamlApplication(
142
+ name: $name, entityId: $entityId, acsUrls: $acsUrls, certificate: $certificate, requestsSigned: $requestsSigned,
143
+ sloUrl: $sloUrl
144
+ ) {
145
+ client { clientId name }
146
+ }
147
+ }
148
+ `,{name:n(b).name.trim(),entityId:n(b).entityId.trim(),acsUrls:E(n(b).redirects),certificate:n(b).certificate.trim()||null,requestsSigned:n(b).requestsSigned,sloUrl:n(b).sloUrl.trim()||null},`createSamlApplication`]:[`
149
+ mutation Create(
150
+ $name: String!, $grantTypes: [String!], $redirectUris: [String!],
151
+ $resources: [String!], $allowedScopes: [String!]
152
+ ) {
153
+ createClient(
154
+ name: $name, grantTypes: $grantTypes, redirectUris: $redirectUris,
155
+ resources: $resources, allowedScopes: $allowedScopes
156
+ ) {
157
+ secret client { clientId name }
158
+ }
159
+ }
160
+ `,{name:n(b).name.trim(),grantTypes:l.find(([e])=>e===n(b).kind)[1],redirectUris:n(b).kind===`app`?E(n(b).redirects):[],resources:E(n(b).resources),allowedScopes:n(b).scopes},`createClient`]}async function M(){let[e,t,n]=A();C(g,!0);let i=await m.attempt(()=>r.api.query(e,t));C(g,!1),i&&(C(_,i[n],!0),C(h,!1),ie())}let N=T(``),L=T(``),R=T(!1),z=T(w([])),te=T(!0);async function W(){C(te,!0);let e=await m.attempt(()=>r.api.query(`
161
+ query Clients($search: String, $archived: Boolean, $afterId: ID, $limit: Int) {
162
+ clients(search: $search, archived: $archived, afterId: $afterId, limit: $limit) {
163
+ clientId name dynamic approvedAt archivedAt logoUrl(size: 64)
164
+ resources createdAt
165
+ }
166
+ clientCount(search: $search, archived: $archived)
167
+ }
168
+ `,{search:n(L)||null,archived:n(R),afterId:a.cursor,limit:a.size}));C(te,!1),e&&(C(z,e.clients,!0),a.counted(e.clientCount))}function re(e){e===`forward`?a.forward(n(z).at(-1)?.clientId):a.back(),W()}W();function ie(){a.reset(),W()}function ae(){C(L,n(N),!0),ie()}function K(e){C(R,e,!0),ie()}let oe=P(()=>n(L)?X(n(R)?`clients.empty.archived_matches`:`clients.empty.matches`,{query:n(L)}):n(R)?X(`clients.empty.archived`):X(`clients.empty.none`));{let r=e=>{var r=Xi(),i=d(r);{let e=P(()=>X(`clients.archived`));Yi(i,{get label(){return n(e)},onchange:K,get checked(){return n(R)},set checked(e){C(R,e,!0)}})}var a=u(i,2);{let e=P(()=>X(`clients.search`)),t=P(()=>X(`clients.search_placeholder`));It(a,{get label(){return n(e)},get placeholder(){return n(t)},onsearch:ae,get value(){return n(N)},set value(e){C(N,e,!0)}})}var o=u(a,2),s=G(o,!0);c(e=>H(s,e),[()=>X(`clients.add`)]),f(`click`,o,D),t(e,r)},x=P(()=>X(`clients.title`));kn(e,{get title(){return n(x)},actions:r,children:(e,r)=>{var x=ua(),w=d(x);Cn(w,{get feedback(){return m.state}});var T=u(w,2),E=e=>{{let r=P(()=>X(`clients.add`));Q(e,{get title(){return n(r)},children:(e,r)=>{var a=na(),o=d(a);{let e=P(()=>X(`clients.name`)),t=P(()=>X(`clients.name_placeholder`));$(o,{get label(){return n(e)},get placeholder(){return n(t)},get value(){return n(b).name},set value(e){n(b).name=e}})}var p=u(o,2);J(p,21,()=>l,([e])=>e,(e,r)=>{var i=P(()=>I(n(r),1));let a=()=>n(i)[0];var o=Zi(),s=G(o,!0);c(e=>{F(o,`aria-pressed`,n(b).kind===a()),H(s,e)},[()=>X(`clients.kinds.${a()}`)]),f(`click`,o,()=>n(b).kind=a()),t(e,o)}),U(p);var m=u(p,2),_=e=>{var r=Qi(),a=d(r);{let e=P(()=>X(`clients.app`)),t=P(()=>[[``,X(`clients.choose`)],...n(y).map(e=>[e.key,e.name])]);qi(a,{get label(){return n(e)},get value(){return n(b).preset},get options(){return n(t)},onchange:e=>{n(b).preset=e,n(b).slug=n(y).find(t=>t.key===e)?.asks?.name??``}})}var o=u(a,2);{let e=P(()=>X(`clients.address`));$(o,{get label(){return n(e)},placeholder:`https://grafana.example.com`,get value(){return n(b).baseUrl},set value(e){n(b).baseUrl=e}})}var s=u(o,2),c=e=>{{let t=P(()=>X(`clients.slug`));$(e,{get label(){return n(t)},get placeholder(){return n(S).asks.name},get value(){return n(b).slug},set value(e){n(b).slug=e}})}};i(s,e=>{n(S)?.asks?.name&&e(c)}),t(e,r)};i(m,e=>{n(b).kind===`preset`&&e(_)});var x=u(m,2),w=G(x,!0),T=u(x,2),E=e=>{var r=$i(),i=d(r),a=s(i),o=G(a,!0),l=u(a,2);ne(l),U(i);var p=u(i,2),m=G(p,!0),h=u(p,2);{let e=P(()=>X(`clients.entity_id`));$(h,{get label(){return n(e)},placeholder:`https://wiki.example.com/saml`,get value(){return n(b).entityId},set value(e){n(b).entityId=e}})}var g=u(h,2),_=s(g),v=G(_,!0),y=u(_,2);ne(y),U(g);var x=u(g,2),S=s(x),C=G(S,!0),w=u(S,2);ne(w),U(x);var T=u(x,2);{let e=P(()=>X(`clients.slo_url`));$(T,{get label(){return n(e)},placeholder:`https://wiki.example.com/saml/slo`,get value(){return n(b).sloUrl},set value(e){n(b).sloUrl=e}})}var E=u(T,2);{let e=P(()=>X(`clients.requests_signed`));Yi(E,{get label(){return n(e)},get checked(){return n(b).requestsSigned},set checked(e){n(b).requestsSigned=e}})}c((e,t,n,r,i)=>{H(o,e),p.disabled=t,H(m,n),H(v,r),H(C,i)},[()=>X(`clients.metadata`),()=>!n(b).metadata.trim(),()=>X(`clients.read`),()=>X(`clients.acs`),()=>X(`clients.certificate`)]),ee(l,()=>n(b).metadata,e=>n(b).metadata=e),f(`click`,p,k),ee(y,()=>n(b).redirects,e=>n(b).redirects=e),ee(w,()=>n(b).certificate,e=>n(b).certificate=e),t(e,r)};i(T,e=>{n(b).kind===`saml`&&e(E)});var D=u(T,2),O=e=>{var r=ea(),i=s(r),a=G(i,!0),o=u(i,2);ne(o),U(r),c(e=>H(a,e),[()=>X(`clients.redirect_uris`)]),ee(o,()=>n(b).redirects,e=>n(b).redirects=e),t(e,r)};i(D,e=>{n(b).kind===`app`&&e(O)});var A=u(D,2),j=e=>{var r=ta(),i=d(r),a=s(i),o=G(a,!0),l=u(a,2);ne(l),U(i);var f=u(i,2),p=s(f),m=G(p,!0);hn(u(p,2),{get value(){return n(b).scopes},get available(){return n(v)},onchange:e=>n(b).scopes=e}),U(f),c((e,t)=>{H(o,e),H(m,t)},[()=>X(`clients.resources`),()=>X(`clients.scopes`)]),ee(l,()=>n(b).resources,e=>n(b).resources=e),t(e,r)};i(A,e=>{n(b).kind!==`saml`&&e(j)});var N=u(A,2),L=s(N),R=G(L,!0),z=u(L,2),B=G(z,!0);U(N),c((e,t,n,r,i)=>{F(p,`aria-label`,e),H(w,t),L.disabled=n,H(R,r),H(B,i)},[()=>X(`clients.kind`),()=>n(b).kind===`preset`?X(`clients.hints.preset`):n(b).kind===`service`?X(`clients.hints.service`):n(b).kind===`saml`?X(`clients.hints.saml`):X(`clients.hints.app`),()=>n(g)||(n(b).kind===`preset`?!n(b).preset||!n(b).baseUrl.trim():!n(b).name.trim()||n(b).kind===`saml`&&!n(b).entityId.trim()),()=>n(g)?X(`clients.adding`):X(`clients.submit`),()=>X(`clients.cancel`)]),f(`click`,L,M),f(`click`,z,()=>C(h,!1)),t(e,a)},$$slots:{default:!0}})}};i(T,e=>{n(h)&&e(E)});var D=u(T,2),O=e=>{{let r=P(()=>X(`clients.created.title`,{name:n(_).client.name}));Q(e,{get title(){return n(r)},children:(e,r)=>{var a=sa(),l=d(a),f=G(l,!0),p=u(l,2),m=G(p,!0),h=u(p,2),g=e=>{var r=ra(),i=G(r,!0);c(()=>H(i,n(_).secret)),t(e,r)};i(h,e=>{n(_).secret&&e(g)});var v=u(h,2),y=e=>{var r=oa(),a=d(r),o=s(a),l=u(o),f=e=>{var r=ia(),i=d(r),a=G(i,!0);j(),c(e=>{F(i,`href`,n(_).guide),H(a,e)},[()=>X(`clients.created.guide`)]),t(e,r)};i(l,e=>{n(_).guide&&e(f)}),U(a);var p=u(a,2);J(p,21,()=>n(_).settings,e=>e.label,(e,r)=>{var i=aa(),a=d(i),o=G(a,!0),s=u(a,2),l=G(s,!0);c(()=>{H(o,n(r).label),H(l,n(r).value)}),t(e,i)}),U(p),c(e=>H(o,`${e??``} `),[()=>X(`clients.created.settings`,{name:n(_).client.name})]),t(e,r)};i(v,e=>{n(_).settings&&e(y)});var b=u(v,2);{let e=P(()=>`/clients/${n(_).client.clientId}`);Z(b,{get to(){return n(e)},class:`btn btn-sm self-start`,children:(e,n)=>{j();var r=o();c(e=>H(r,e),[()=>X(`clients.created.open`)]),t(e,r)},$$slots:{default:!0}})}c(e=>{H(f,e),H(m,n(_).client.clientId)},[()=>X(n(_).secret?`clients.created.client_id_and_secret`:`clients.created.client_id`)]),t(e,a)},$$slots:{default:!0}})}};i(D,e=>{n(_)&&e(O)});var A=u(D,2),N=e=>{it(e,{})},L=e=>{var r=la(),i=d(r);zt(i,{get columns(){return p},get count(){return n(z).length},get empty(){return n(oe)},rows:e=>{var r=V(),i=d(r);J(i,17,()=>n(z),e=>e.clientId,(e,r)=>{{let i=P(()=>`/clients/${n(r).clientId}`);Pt(e,{get to(){return n(i)},children:(e,i)=>{var a=ca(),l=d(a),f=s(l),p=s(f);Ui(p,{get client(){return n(r)},class:`size-8 shrink-0 rounded text-sm`});var m=u(p,2),h=s(m),g=s(h);{let e=P(()=>`/clients/${n(r).clientId}`);Z(g,{get to(){return n(e)},class:`link link-hover truncate font-medium`,children:(e,i)=>{j();var a=o();c(()=>H(a,n(r).name)),t(e,a)},$$slots:{default:!0}})}var _=u(g,2);{let e=P(()=>[n(r).archivedAt&&[`archived`,X(`clients.marks.archived`),`quiet`],n(r).dynamic&&!n(r).approvedAt&&[`dynamic`,X(`clients.marks.dynamic`),`warn`],n(r).dynamic&&n(r).approvedAt&&[`dynamic`,X(`clients.marks.dynamic_approved`),`quiet`]].filter(Boolean));st(_,{get marks(){return n(e)}})}U(h);var v=u(h,2),y=G(v,!0);U(m),U(f),U(l);var b=u(l,2),x=s(b),S=G(x,!0);U(b);var C=u(b,2),w=G(C,!0);c((e,t,i)=>{F(v,`title`,n(r).clientId),H(y,n(r).clientId),F(x,`title`,e),H(S,t),H(w,i)},[()=>Tt(n(r).resources),()=>Tt(n(r).resources)||`—`,()=>St(n(r).createdAt)]),t(e,a)},$$slots:{default:!0}})}}),t(e,r)},$$slots:{rows:!0}}),ft(u(i,2),{get pages(){return a},get shown(){return n(z).length},get busy(){return n(te)},onpage:re}),t(e,r)};i(A,e=>{n(te)&&n(z).length===0?e(N):e(L,-1)}),t(e,x)},$$slots:{actions:!0,default:!0}})}B()}l([`click`]);var fa=`
169
+ key name signup nickname email emailVerified phone phoneVerified
170
+ passwordMinimum refuseCommonPasswords passwordRequired firstFactors secondFactors secondFactorRequired appsRequireSecondFactor sessionLifetime sessionIdleTimeout refuseBreachedPasswords riskStepUpAt riskRefuseAt proofOfWork
171
+ emailDomains providers confirmation hidden signupScopes archivedAt
172
+ `,pa=[`password`,`passkey`,`provider`,`email_code`,`otp`,`backup_codes`],ma=[`none`,`code`,`link`,`approval`],ha=[`off`,`optional`,`required`],ga=(e,t,n)=>e.includes(n)?X(`policy_rules.${t}.${n}`):n,_a=(e,t)=>e?.length?e.map(e=>ga(pa,`factors`,e)).join(`, `):X(`policy_rules.values.${t}`),va=e=>X(e?`policy_rules.answers.yes`:`policy_rules.answers.no`),ya=e=>X(`policy_rules.values.${e}`),ba=[[86400,`day`],[3600,`hour`],[60,`minute`]];function xa(e){let[t,n]=ba.find(([t])=>e%t===0)??[1,`second`];return X(`policy_rules.units.${n}`,{count:e/t})}var Sa=e=>X(`policy_rules.terms.${e}`);function Ca(e){return[[Sa(`signup`),e.signup?ya(`open`):ya(`invitation_only`)],[Sa(`email_domains`),_a(e.emailDomains,`any`)],[Sa(`proof_of_work`),e.proofOfWork?X(`policy_rules.values.bits`,{bits:e.proofOfWork}):ya(`off`)],[Sa(`hidden`),va(e.hidden)],[Sa(`nickname`),ga(ha,`presence`,e.nickname)],[Sa(`email`),ga(ha,`presence`,e.email)],[Sa(`email_verified`),va(e.emailVerified)],[Sa(`phone`),ga(ha,`presence`,e.phone)],[Sa(`phone_verified`),va(e.phoneVerified)],[Sa(`first_factors`),_a(e.firstFactors,`nothing`)],[Sa(`providers`),e.providers===null?ya(`every_one`):_a(e.providers,`none`)],[Sa(`password`),X(e.refuseCommonPasswords?`policy_rules.values.not_common`:`policy_rules.values.password`,{minimum:e.passwordMinimum})],[Sa(`password_required`),va(e.passwordRequired)],[Sa(`second_factors`),_a(e.secondFactors,`none`)],[Sa(`second_factor_required`),va(e.secondFactorRequired)],[Sa(`apps_require_second_factor`),va(e.appsRequireSecondFactor)],[Sa(`session_lifetime`),e.sessionLifetime?xa(e.sessionLifetime):ya(`default_lifetime`)],[Sa(`refuse_breached`),va(e.refuseBreachedPasswords)],[Sa(`risk_step_up`),e.riskStepUpAt?X(`policy_rules.values.at`,{score:e.riskStepUpAt}):ya(`never`)],[Sa(`risk_refuse`),e.riskRefuseAt?X(`policy_rules.values.at`,{score:e.riskRefuseAt}):ya(`never`)],[Sa(`idle_timeout`),e.sessionIdleTimeout?xa(e.sessionIdleTimeout):ya(`never`)],[Sa(`confirmation`),ga(ma,`confirmations`,e.confirmation)],[Sa(`signup_scopes`),_a(e.signupScopes,`none`)]]}function wa(e,t){let n=new Map(Ca(t));return Ca(e).filter(([e,t])=>n.get(e)!==t).map(([e,t])=>({term:e,value:t,instead:n.get(e)}))}var Ta=p(`<span class="hint">· <!></span>`),Ea=p(`<button type="button" class="btn btn-xs btn-error btn-outline"> </button>`),Da=p(`<span class="hint text-xs"> </span>`),Oa=p(`<li class="flex-wrap"><div class="flex min-w-0 flex-col"><span class="text-sm"><code class="font-mono"> </code> <!></span> <span class="hint truncate text-xs"><span class="font-mono"> </span> </span></div> <div class="ml-auto"><!></div></li>`),ka=p(`<!> <ul class="compact-list"></ul>`,1);function Aa(e,r){O(r,!0);let a=z(r,`showClient`,3,!1),l=z(r,`row`,3,!1),p=pt();async function m(e){confirm(X(`namespaces.release_confirm`,{name:e.name}))&&await p.attempt(()=>r.api.query(`
173
+ mutation Release($name: String!) {
174
+ releaseNamespace(name: $name) { released }
175
+ }
176
+ `,{name:e.name}),X(`namespaces.released`,{name:e.name}))&&await r.onreleased()}{let h=P(()=>X(`namespaces.title`));Q(e,{get row(){return l()},get title(){return n(h)},children:(e,l)=>{var h=ka(),g=d(h);Cn(g,{get feedback(){return p.state}});var _=u(g,2);J(_,21,()=>r.rows,e=>e.name,(e,r)=>{var l=Oa(),d=s(l),p=s(d),h=s(p),g=G(h,!0),_=u(h,2),v=e=>{var a=Ta(),l=u(s(a)),d=e=>{{let i=P(()=>`/clients/${n(r).client.clientId}`);Z(e,{get to(){return n(i)},class:`link link-hover`,children:(e,i)=>{j();var a=o();c(()=>H(a,n(r).client.name)),t(e,a)},$$slots:{default:!0}})}},f=e=>{var n=o();c(e=>H(n,e),[()=>X(`namespaces.nothing`)]),t(e,n)};i(l,e=>{n(r).client?e(d):e(f,-1)}),U(a),t(e,a)};i(_,e=>{a()&&e(v)}),U(p);var y=u(p,2),b=s(y),x=G(b,!0),S=u(b);U(y),U(d);var C=u(d,2),w=s(C),T=e=>{var i=Ea(),a=G(i,!0);c(e=>H(a,e),[()=>X(`namespaces.release`)]),f(`click`,i,()=>m(n(r))),t(e,i)},E=e=>{var n=Da(),r=G(n,!0);c(e=>H(r,e),[()=>X(`namespaces.archive_to_release`)]),t(e,n)};i(w,e=>{n(r).releasable?e(T):e(E,-1)}),U(C),U(l),c(e=>{H(g,n(r).name),F(b,`title`,n(r).resource),H(x,n(r).resource),H(S,` · ${e??``}`)},[()=>St(n(r).claimedAt)]),t(e,l)}),U(_),t(e,h)},$$slots:{default:!0}})}B()}l([`click`]);var ja=p(`<span class="hint"> </span>`),Ma=p(`<label class="flex flex-col gap-1.5"><span class="field-label"> </span> <textarea class="textarea textarea-sm w-full font-mono text-xs" autocapitalize="none" autocorrect="off" spellcheck="false"></textarea> <!> <button type="button" class="btn btn-sm self-start"> </button></label>`);function Na(e,r){O(r,!0);let a=z(r,`hint`,3,null),o=z(r,`value`,19,()=>[]),l=z(r,`save`,19,()=>X(`ui.save`)),d=z(r,`rows`,3,3),p=T(w(S(()=>o().join(`
177
+ `)))),m=T(w(S(()=>o().join(`
178
+ `))));x(()=>{let e=o().join(`
179
+ `);e!==n(m)&&(C(m,e,!0),C(p,e,!0))});let h=P(()=>n(p)!==n(m)),g=()=>n(p).split(`
180
+ `).map(e=>e.trim()).filter(Boolean);var _=Ma(),v=s(_),y=G(v,!0),b=u(v,2);ne(b);var E=u(b,2),D=e=>{var n=ja(),r=G(n,!0);c(()=>H(r,a())),t(e,n)};i(E,e=>{a()&&e(D)});var k=u(E,2),A=G(k,!0);U(_),c(()=>{H(y,r.label),F(b,`rows`,d()),k.disabled=!n(h),H(A,l())}),ee(b,()=>n(p),e=>C(p,e)),f(`click`,k,()=>r.onsave(g())),t(e,_),B()}l([`click`]);var Pa=p(`<div class="alert alert-error alert-soft text-sm" role="alert"> </div>`),Fa=p(`<div class="alert alert-warning alert-soft flex-wrap items-center gap-3 text-sm" role="status"><span> </span> <button type="button" class="btn btn-sm"> </button></div>`),Ia=p(`<div class="alert alert-warning alert-soft flex-col items-start gap-2" role="status"><span class="font-medium"> </span> <code class="font-mono text-sm break-all"> </code></div>`),La=p(`<label class="flex items-center gap-2 text-sm"><input type="checkbox" class="checkbox checkbox-sm"/> <code class="hint font-mono"> </code></label>`),Ra=p(`<div class="flex flex-col gap-1"></div>`),za=p(`<p class="text-sm opacity-85"> <!> </p>`),Ba=p(`<!> <!> <p class="hint"> </p>`,1),Va=p(`<div class="flex flex-col gap-1.5"><span class="field-label"> </span> <!></div> <div class="flex flex-col gap-1.5"><span class="field-label"> </span> <!></div>`,1),Ha=p(`<!> <!>`,1),Ua=p(`<!> <!> <!>`,1),Wa=p(`<p class="hint"> </p> <!> <label class="flex flex-col gap-1.5"><span class="field-label"> </span> <textarea class="textarea textarea-sm w-full font-mono text-xs" rows="4" spellcheck="false"></textarea> <button type="button" class="btn btn-sm self-start"> </button></label> <!>`,1),Ga=p(`<label class="flex flex-col gap-1.5"><span class="field-label"> </span> <textarea class="textarea textarea-sm w-full font-mono text-xs" rows="6" spellcheck="false"></textarea> <button type="button" class="btn btn-sm self-start"> </button></label>`),Ka=p(`<p class="hint"> </p> <!> <!>`,1),qa=p(`<!> <!> <!> <!>`,1),Ja=p(`<p class="hint"> </p>`),Ya=p(`<option> </option>`),Xa=p(`<label class="flex flex-col gap-1.5"><span class="field-label"> </span> <select class="select select-sm w-full"></select></label>`),Za=p(`<p class="text-xs text-warning"> </p>`),Qa=p(`<label class="flex flex-col gap-1.5"><span class="field-label"> </span> <select class="select select-sm w-full"></select></label> <!> <!>`,1),$a=p(`<button type="button" class="btn btn-sm"> </button>`),eo=p(`<button type="button" class="btn btn-sm btn-error btn-outline"> </button>`),to=p(`<!> <!> <!> <!> <!> <!> <div class="flex flex-wrap gap-2 pt-1"><!> <!></div>`,1),no=p(`<!> <div class="flex flex-col gap-1.5"><!> <span class="hint"> </span></div> <!> <label class="flex flex-col gap-1.5"><span class="field-label"> </span> <select class="select select-sm w-full"></select></label> <label class="flex flex-col gap-1.5"><span class="field-label"> </span> <textarea class="textarea textarea-sm w-full font-mono text-xs" rows="3" spellcheck="false"></textarea> <button type="button" class="btn btn-sm self-start"> </button></label> <label class="flex flex-col gap-1.5"><span class="field-label"> </span> <textarea class="textarea textarea-sm w-full font-mono text-xs" rows="5" spellcheck="false"></textarea> <span class="hint"> </span> <button type="button" class="btn btn-sm self-start"> </button></label> <!> <!>`,1),ro=p(`<div class="flex items-center gap-3"><!> <p class="hint"><!></p></div> <form class="flex flex-col gap-3"><!> <button type="submit" class="btn btn-sm self-start"> </button></form>`,1),io=p(`<dt class="opacity-80"> </dt> <dd> <span class="opacity-75 line-through"> </span></dd>`,1),ao=p(`<div class="flex flex-col gap-1.5"><span class="field-label"> </span> <dl class="grid grid-cols-[auto_1fr] gap-x-4 gap-y-1 text-sm"></dl></div>`),oo=p(`<label class="flex flex-col gap-1.5"><span class="field-label"> </span> <select class="select select-sm w-full"><option> </option><!></select></label> <!> <!> <!> <form class="flex flex-col gap-3"><div class="grid gap-3 sm:grid-cols-3"><!> <!> <!></div> <button type="submit" class="btn btn-sm self-start"> </button></form> <!> <!>`,1),so=p(`<!> <!> <!> <!> <div class="grid gap-4"><!></div>`,1);function co(e,r){O(r,!0);let a=z(r,`part`,3,null),l=`
181
+ query Client($clientId: ID!) {
182
+ client(clientId: $clientId) {
183
+ clientId name dynamic approvedAt archivedAt secretExpiresAt createdAt
184
+ tokenEndpointAuthMethod applicationType clientUri logoUri tosUri policyUri logoUrl(size: 128)
185
+ subjectType sectorIdentifierUri
186
+ redirectUris postLogoutRedirectUris grantTypes responseTypes resources
187
+ requiredScopes allowedScopes allowedGroups
188
+ backchannelLogoutUri backchannelLogoutSessionRequired
189
+ requirePushedAuthorizationRequests requireSignedRequestObject consentRequired jwks jwksUri
190
+ authorizationDetailsTypes authorizationDetailsSchemas consentLifetime
191
+ accessTokenLifetime refreshTokenLifetime
192
+ protocol samlEntityId samlCertificate samlNameIdFormat samlRequestsSigned samlIdpInitiated samlAttributes samlSloUrl
193
+ signInPolicy { ${fa} }
194
+ events(limit: 25) {
195
+ id action label createdAt ipAddress details
196
+ actor { uuid identifier }
197
+ by { uuid identifier }
198
+ device { id label }
199
+ }
200
+ approvedBy { identifier }
201
+ namespaces { name resource claimedAt releasable }
202
+ consents(limit: 25) {
203
+ id scopes audience updatedAt expiresAt authorizationDetails
204
+ actor { uuid identifier }
205
+ }
206
+ tokens(limit: 25) {
207
+ id kind scopes audience parentId createdAt expiresAt
208
+ actor { uuid identifier }
209
+ device { id label }
210
+ }
211
+ }
212
+ scopesSupported
213
+ groups { key name }
214
+ samlMetadataUrl
215
+ signInPolicies { key name }
216
+ defaultSignInPolicy { ${fa} }
217
+ }
218
+ `,p=pt(),m=T(null),h=T(w([])),g=T(w([])),_=T(``),y=T(w([])),b=T(null),x=T(``),S=T(``),D=T(``),k=T(``),A=T(``),N=T(``),R=T(``),te=T(``),W=T(``),re=T(``),ae=T(``),K=T(``),oe=T(``),se=T(``),q=T(w({})),ce=T(``),le=T(!0),Y=T(null),ue=[[`urn:oasis:names:tc:SAML:2.0:nameid-format:persistent`,X(`client.name_ids.persistent`)],[`urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress`,X(`client.name_ids.email`)]],de=P(()=>n(m)?.protocol===`saml`),fe=P(()=>n(m)?[{term:X(`client.facts.origin`),value:n(m).dynamic?X(`client.facts.self_registered`):X(`client.facts.approved`)},{term:X(`client.facts.approved_by`),value:n(m).approvedBy?.identifier},{term:X(`client.facts.registered`),value:St(n(m).createdAt)},{term:X(`client.facts.grants`),value:Tt(n(m).grantTypes),mono:!0},{term:X(`client.facts.response_types`),value:Tt(n(m).responseTypes),mono:!0}]:[]),pe=[[`public`,X(`client.subjects.public`)],[`pairwise`,X(`client.subjects.pairwise`)]],me=[[`refresh_token`,X(`client.grants.refresh_token`)],[`urn:ietf:params:oauth:grant-type:device_code`,X(`client.grants.device_code`)],[`urn:ietf:params:oauth:grant-type:token-exchange`,X(`client.grants.token_exchange`)]],he=[[`logoUri`,`logo_uri`,`https://app.example.com/logo.png`],[`clientUri`,`client_uri`,`https://app.example.com`],[`tosUri`,`tos_uri`,`https://app.example.com/terms`],[`policyUri`,`policy_uri`,`https://app.example.com/privacy`]].map(([e,t,n])=>[e,X(`client.links.${t}.label`),n]);async function ge(){let e=Object.fromEntries(he.map(([e])=>[e,n(q)[e].trim()||null])),t=e.logoUri&&e.logoUri!==n(m).logoUri;await Ce(e,X(`client.notices.saved`)),t&&setTimeout(xe,3e3)}function _e(){return Ce({accessTokenLifetime:n(R)?Number(n(R))*60:0,refreshTokenLifetime:n(te)?Number(n(te))*86400:0,consentLifetime:n(N)?Number(n(N))*86400:0},X(`client.notices.saved`))}let ve=P(()=>n(m)?.signInPolicy&&n(b)?wa(n(m).signInPolicy,n(b)):[]),ye=P(()=>!!(n(m)?.jwks||n(m)?.jwksUri)),be=e=>Object.entries(e??{}).map(([e,t])=>`${e} = ${t}`).join(`
219
+ `);async function xe(){C(le,!0);try{let e=await r.api.query(l,{clientId:r.clientId});C(m,e.client,!0),C(h,e.scopesSupported,!0),C(g,e.groups,!0),C(_,(e.client?.allowedGroups??[]).filter(e=>e.includes(`:`)).join(`, `),!0),C(y,e.signInPolicies,!0),C(b,e.defaultSignInPolicy,!0),C(x,e.client?.name??``,!0),C(S,e.client?.backchannelLogoutUri??``,!0),C(D,e.client?.jwksUri??``,!0),C(k,e.client?.jwks?JSON.stringify(e.client.jwks,null,2):``,!0),C(N,e.client?.consentLifetime?String(Math.round(e.client.consentLifetime/86400)):``,!0),C(R,e.client?.accessTokenLifetime?String(Math.round(e.client.accessTokenLifetime/60)):``,!0),C(te,e.client?.refreshTokenLifetime?String(Math.round(e.client.refreshTokenLifetime/86400)):``,!0),C(A,Object.keys(e.client?.authorizationDetailsSchemas??{}).length?JSON.stringify(e.client.authorizationDetailsSchemas,null,2):``,!0),C(W,e.client?.tokenEndpointAuthMethod??``,!0),C(re,e.client?.sectorIdentifierUri??``,!0),C(ae,e.samlMetadataUrl,!0),C(K,e.client?.samlCertificate??``,!0),C(oe,e.client?.samlEntityId??``,!0),C(se,e.client?.samlSloUrl??``,!0),C(q,Object.fromEntries(he.map(([t])=>[t,e.client?.[t]??``])),!0),C(ce,be(e.client?.samlAttributes),!0)}catch(e){p.blame(e)}finally{C(le,!1)}}xe();async function Se(e,t,n){let i=await p.attempt(()=>r.api.query(e,t),n);return i&&await xe(),i}let Ce=(e,t)=>Se(`mutation Update(
220
+ $clientId: ID!, $name: String, $requiredScopes: [String!], $allowedScopes: [String!],
221
+ $backchannelLogoutUri: String, $redirectUris: [String!],
222
+ $postLogoutRedirectUris: [String!], $resources: [String!],
223
+ $requirePushedAuthorizationRequests: Boolean, $consentRequired: Boolean,
224
+ $signInPolicy: ID, $grantTypes: [String!], $jwksUri: String,
225
+ $tokenEndpointAuthMethod: String, $requireSignedRequestObject: Boolean,
226
+ $samlCertificate: String, $samlRequestsSigned: Boolean, $samlIdpInitiated: Boolean,
227
+ $samlNameIdFormat: String, $samlEntityId: String, $samlAttributes: JSON, $samlSloUrl: String, $jwks: JSON,
228
+ $subjectType: String, $sectorIdentifierUri: String, $dpopBoundAccessTokens: Boolean,
229
+ $backchannelLogoutSessionRequired: Boolean, $clientUri: String, $logoUri: String,
230
+ $tosUri: String, $policyUri: String, $authorizationDetailsTypes: [String!],
231
+ $authorizationDetailsSchemas: JSON, $consentLifetime: Int, $allowedGroups: [String!],
232
+ $accessTokenLifetime: Int, $refreshTokenLifetime: Int
233
+ ) {
234
+ updateClient(
235
+ clientId: $clientId, name: $name, requiredScopes: $requiredScopes,
236
+ allowedScopes: $allowedScopes, backchannelLogoutUri: $backchannelLogoutUri,
237
+ redirectUris: $redirectUris, postLogoutRedirectUris: $postLogoutRedirectUris,
238
+ resources: $resources,
239
+ requirePushedAuthorizationRequests: $requirePushedAuthorizationRequests,
240
+ consentRequired: $consentRequired,
241
+ signInPolicy: $signInPolicy,
242
+ grantTypes: $grantTypes,
243
+ jwksUri: $jwksUri,
244
+ tokenEndpointAuthMethod: $tokenEndpointAuthMethod,
245
+ requireSignedRequestObject: $requireSignedRequestObject,
246
+ samlCertificate: $samlCertificate,
247
+ samlRequestsSigned: $samlRequestsSigned,
248
+ samlIdpInitiated: $samlIdpInitiated,
249
+ samlNameIdFormat: $samlNameIdFormat,
250
+ samlEntityId: $samlEntityId,
251
+ samlAttributes: $samlAttributes,
252
+ samlSloUrl: $samlSloUrl,
253
+ jwks: $jwks,
254
+ subjectType: $subjectType,
255
+ sectorIdentifierUri: $sectorIdentifierUri,
256
+ dpopBoundAccessTokens: $dpopBoundAccessTokens,
257
+ backchannelLogoutSessionRequired: $backchannelLogoutSessionRequired,
258
+ clientUri: $clientUri,
259
+ logoUri: $logoUri,
260
+ tosUri: $tosUri,
261
+ policyUri: $policyUri,
262
+ authorizationDetailsTypes: $authorizationDetailsTypes,
263
+ authorizationDetailsSchemas: $authorizationDetailsSchemas,
264
+ consentLifetime: $consentLifetime
265
+ accessTokenLifetime: $accessTokenLifetime
266
+ refreshTokenLifetime: $refreshTokenLifetime
267
+ allowedGroups: $allowedGroups
268
+ ) {
269
+ client { clientId }
270
+ }
271
+ }`,{clientId:r.clientId,...e},t),we=e=>e.split(/[\s,]+/).map(e=>e.trim()).filter(e=>e.includes(`:`));function Te(e,t){let r=n(m).allowedGroups.filter(t=>t!==e);Ce({allowedGroups:t?[...r,e]:r},X(`client.notices.groups`))}function Ee(){let e=n(m).allowedGroups.filter(e=>!e.includes(`:`));Ce({allowedGroups:[...e,...we(n(_))]},X(`client.notices.groups`))}let De=P(()=>n(m)?.grantTypes.includes(`client_credentials`)??!1),Oe=(e,t)=>t?[...new Set([...n(m).grantTypes,e])]:n(m).grantTypes.filter(t=>t!==e);function ke(e){Ce({grantTypes:Oe(`client_credentials`,e)},X(e?`client.notices.unattended_on`:`client.notices.unattended_off`))}function Ae(e){let t=X(`client.confirm.subject`);if(e===n(m).subjectType||!confirm(t)){xe();return}Ce({subjectType:e},X(`client.notices.subject`))}function je(e){let t=n(W)===`private_key_jwt`&&n(m).tokenEndpointAuthMethod!==`private_key_jwt`,r=t?{...e,tokenEndpointAuthMethod:n(W)}:e;Ce(r,X(t?`client.notices.keys_signing`:`client.notices.keys`))}function Me(){let e=n(k).trim();if(!e){je({jwks:null});return}try{je({jwks:JSON.parse(e),jwksUri:null})}catch{p.blame(Error(X(`client.errors.jwks`)))}}function Ne(){let e=n(A).trim();try{Ce({authorizationDetailsSchemas:e?JSON.parse(e):{}},X(`client.notices.declared`))}catch{p.blame(Error(X(`client.errors.declared`)))}}function Pe(){let e=n(ce).split(`
272
+ `).map(e=>e.trim()).filter(Boolean).map(e=>e.split(`=`).map(e=>e.trim()));if(e.some(e=>e.length!==2||!e[0]||!e[1])){p.blame(Error(X(`client.errors.attributes`)));return}Ce({samlAttributes:Object.fromEntries(e)},e.length?X(`client.notices.attributes`):X(`client.notices.attributes_default`))}let Fe=[[`client_secret_basic`,X(`client.methods.client_secret_basic`)],[`client_secret_post`,X(`client.methods.client_secret_post`)],[`private_key_jwt`,X(`client.methods.private_key_jwt`)]];function Ie(e){if(C(W,e,!0),e===`private_key_jwt`&&!n(ye))return;let t=e===`private_key_jwt`?X(`client.notices.signs_assertions`):n(m).tokenEndpointAuthMethod===`private_key_jwt`?X(`client.notices.uses_secret`):X(`client.notices.saved`);Ce({tokenEndpointAuthMethod:e},t)}function Le(){confirm(X(`client.confirm.restore`))&&Se(`mutation Restore($clientId: ID!) {
273
+ restoreClient(clientId: $clientId) { client { archivedAt } }
274
+ }`,{clientId:r.clientId},X(`client.notices.restored`))}async function Re(){if(!confirm(X(`client.confirm.rotate`)))return;let e=await Se(`mutation Rotate($clientId: ID!) { rotateClientSecret(clientId: $clientId) { secret } }`,{clientId:r.clientId},X(`client.notices.rotated`));e&&C(Y,e.rotateClientSecret.secret,!0)}function ze(){confirm(X(`client.confirm.archive`))&&Se(`mutation Archive($clientId: ID!) { archiveClient(clientId: $clientId) { client { archivedAt } } }`,{clientId:r.clientId},X(`client.notices.archived`))}var Be=V(),Ve=d(Be),He=e=>{it(e,{})},Ue=e=>{var n=Pa(),r=G(n,!0);c(e=>H(r,e),[()=>p.state.failure??X(`client.missing`)]),t(e,n)},We=e=>{{let l=P(()=>({to:`/clients`,label:X(`client.back`)}));kn(e,{get title(){return n(m).name},get id(){return n(m).clientId},get back(){return n(l)},children:(e,l)=>{var w=so(),T=d(w);Cn(T,{get feedback(){return p.state}});var O=u(T,2),z=e=>{var r=Fa(),i=s(r),a=G(i,!0),o=u(i,2),l=G(o,!0);U(r),c((e,t)=>{H(a,e),H(l,t)},[()=>X(`client.archived_on`,{day:St(n(m).archivedAt)}),()=>X(`client.restore`)]),f(`click`,o,Le),t(e,r)};i(O,e=>{n(m).archivedAt&&e(z)});var B=u(O,2),le=e=>{var r=Ia(),i=s(r),a=G(i,!0),o=u(i,2),l=G(o,!0);U(r),c(e=>{H(a,e),H(l,n(Y))},[()=>X(`client.secret_once`)]),t(e,r)};i(B,e=>{n(Y)&&e(le)});var be=u(B,2);{let e=P(()=>`/clients/${r.clientId}`),t=P(()=>X(`client.parts.label`)),i=P(()=>[[null,``,X(`client.parts.general`)],[`access`,`/access`,X(`client.parts.access`)],[`endpoints`,`/endpoints`,X(`client.parts.endpoints`)],[`usage`,`/usage`,X(`client.parts.usage`)]]);Gr(be,{get base(){return n(e)},get part(){return a()},get label(){return n(t)},get parts(){return n(i)}})}var Se=u(be,2),we=s(Se),Be=e=>{var r=Ha(),a=d(r);{let e=P(()=>X(`client.groups.title`)),r=P(()=>X(`client.groups.lede`));Q(a,{row:!0,get title(){return n(e)},get lede(){return n(r)},children:(e,r)=>{var a=Ba(),l=d(a),p=e=>{var r=Ra();J(r,21,()=>n(g),e=>e.key,(e,r)=>{var i=La(),a=s(i);M(a);var o=u(a),l=u(o),d=G(l,!0);U(i),c(e=>{ie(a,e),H(o,` ${n(r).name??``} `),H(d,n(r).key)},[()=>n(m).allowedGroups.includes(n(r).key)]),f(`change`,a,e=>Te(n(r).key,e.currentTarget.checked)),t(e,i)}),U(r),t(e,r)},h=e=>{var n=za(),r=s(n),i=u(r);Z(i,{to:`/settings`,children:(e,n)=>{j();var r=o();c(e=>H(r,e),[()=>X(`client.groups.add`)]),t(e,r)},$$slots:{default:!0}});var a=u(i);U(n),c((e,t)=>{H(r,`${e??``} `),H(a,` ${t??``}`)},[()=>X(`client.groups.none`),()=>X(`client.groups.limit`)]),t(e,n)};i(l,e=>{n(g).length?e(p):e(h,-1)});var v=u(l,2);{let e=P(()=>X(`client.groups.roles`));$(v,{get label(){return n(e)},placeholder:`acme:owner, acme:billing`,onsave:Ee,get value(){return n(_)},set value(e){C(_,e,!0)}})}var y=u(v,2),b=G(y,!0);c(e=>H(b,e),[()=>n(m).allowedGroups.length?X(`client.groups.only`,{groups:n(m).allowedGroups.join(`, `)}):X(`client.groups.everyone`)]),t(e,a)},$$slots:{default:!0}})}var l=u(a,2);{let e=P(()=>X(`client.scopes.title`));Q(l,{row:!0,get title(){return n(e)},children:(e,r)=>{var i=Va(),a=d(i),o=s(a),l=G(o,!0);hn(u(o,2),{get value(){return n(m).requiredScopes},get available(){return n(h)},onchange:e=>Ce({requiredScopes:e},X(`client.notices.scopes`))}),U(a);var f=u(a,2),p=s(f),g=G(p,!0);hn(u(p,2),{get value(){return n(m).allowedScopes},get available(){return n(h)},onchange:e=>Ce({allowedScopes:e},X(`client.notices.scopes`))}),U(f),c((e,t)=>{H(l,e),H(g,t)},[()=>X(`client.scopes.always`),()=>X(`client.scopes.on_request`)]),t(e,i)},$$slots:{default:!0}})}t(e,r)},Ve=e=>{var r=Ua(),a=d(r);{let e=P(()=>X(`client.uris.title`));Q(a,{row:!0,get title(){return n(e)},children:(e,r)=>{var i=Ua(),a=d(i);{let e=P(()=>n(de)?X(`client.uris.acs`):X(`client.uris.redirect`));Na(a,{get label(){return n(e)},get value(){return n(m).redirectUris},onsave:e=>Ce({redirectUris:e},X(`client.notices.redirects`))})}var o=u(a,2);{let e=P(()=>X(`client.uris.post_logout`));Na(o,{get label(){return n(e)},get value(){return n(m).postLogoutRedirectUris},onsave:e=>Ce({postLogoutRedirectUris:e},X(`client.notices.post_logout`))})}var s=u(o,2);{let e=P(()=>X(`client.uris.resources`));Na(s,{get label(){return n(e)},get value(){return n(m).resources},onsave:e=>Ce({resources:e},X(`client.notices.resources`))})}t(e,i)},$$slots:{default:!0}})}var o=u(a,2),l=e=>{{let r=P(()=>X(`client.keys.title`));Q(e,{row:!0,get title(){return n(r)},children:(e,r)=>{var a=Wa(),o=d(a),l=G(o,!0),p=u(o,2);{let e=P(()=>X(`client.keys.jwks_uri`));$(p,{get label(){return n(e)},placeholder:`https://app.example.com/.well-known/jwks.json`,autocapitalize:`none`,autocorrect:`off`,spellcheck:`false`,onsave:()=>je(n(D).trim()?{jwksUri:n(D).trim(),jwks:null}:{jwksUri:null}),get value(){return n(D)},set value(e){C(D,e,!0)}})}var h=u(p,2),g=s(h),_=G(g,!0),v=u(g,2);ne(v),F(v,`placeholder`,`{ "keys": [ ... ] }`);var y=u(v,2),b=G(y,!0);U(h);var x=u(h,2),S=e=>{{let t=P(()=>X(`client.keys.jar`));Yi(e,{get checked(){return n(m).requireSignedRequestObject},get label(){return n(t)},onchange:e=>Ce({requireSignedRequestObject:e},X(e?`client.notices.jar_on`:`client.notices.jar_off`))})}};i(x,e=>{n(ye)&&e(S)}),c((e,t,n)=>{H(l,e),H(_,t),H(b,n)},[()=>X(`client.keys.hint`),()=>X(`client.keys.jwks`),()=>X(`client.save`)]),ee(v,()=>n(k),e=>C(k,e)),f(`click`,y,Me),t(e,a)},$$slots:{default:!0}})}};i(o,e=>{n(de)||e(l)});var p=u(o,2),h=e=>{{let r=P(()=>X(`client.details.title`));Q(e,{row:!0,get title(){return n(r)},children:(e,r)=>{var a=Ka(),o=d(a),l=G(o,!0),p=u(o,2);{let e=P(()=>X(`client.details.types`));Na(p,{get label(){return n(e)},get value(){return n(m).authorizationDetailsTypes},onsave:e=>Ce({authorizationDetailsTypes:e},X(`client.notices.types`))})}var h=u(p,2),g=e=>{var r=Ga(),i=s(r),a=G(i,!0),o=u(i,2);ne(o),F(o,`placeholder`,`{ "payment_initiation": { "label": "Send a payment", "schema": { "type": "object" } } }`);var l=u(o,2),d=G(l,!0);U(r),c((e,t)=>{H(a,e),H(d,t)},[()=>X(`client.details.accepts`),()=>X(`client.save`)]),ee(o,()=>n(A),e=>C(A,e)),f(`click`,l,Ne),t(e,r)};i(h,e=>{n(m).approvedAt&&e(g)}),c(e=>H(l,e),[()=>X(`client.details.hint`)]),t(e,a)},$$slots:{default:!0}})}};i(p,e=>{n(de)||e(h)}),t(e,r)},He=e=>{var a=qa(),s=d(a);{let e=P(()=>X(`client.consents`));Q(s,{get title(){return n(e)},children:(e,t)=>{lr(e,{get api(){return r.api},get feedback(){return p},get rows(){return n(m).consents},onchange:xe,showActor:!0})},$$slots:{default:!0}})}var l=u(s,2);{let e=P(()=>X(`client.tokens`));Q(l,{get title(){return n(e)},children:(e,t)=>{Ur(e,{get api(){return r.api},get feedback(){return p},get rows(){return n(m).tokens},onchange:xe,showActor:!0})},$$slots:{default:!0}})}var f=u(l,2);{let e=e=>{{let r=P(()=>`/activity?client=${n(m).clientId}`);Z(e,{get to(){return n(r)},class:`btn btn-ghost btn-sm`,children:(e,n)=>{j();var r=o();c(e=>H(r,e),[()=>X(`client.activity.all`)]),t(e,r)},$$slots:{default:!0}})}},r=P(()=>X(`client.activity.title`));Q(f,{get title(){return n(r)},actions:e,children:(e,t)=>{{let t=P(()=>X(`client.activity.empty`));Sr(e,{get events(){return n(m).events},get empty(){return n(t)}})}},$$slots:{actions:!0,default:!0}})}var h=u(f,2),g=e=>{Aa(e,{get api(){return r.api},get rows(){return n(m).namespaces},onreleased:xe})};i(h,e=>{n(m).namespaces.length&&e(g)}),t(e,a)},Ue=e=>{var r=qa(),a=d(r);{let e=P(()=>X(`client.registration.title`));Q(a,{row:!0,get title(){return n(e)},children:(e,r)=>{var a=to(),o=d(a);{let e=P(()=>X(`client.registration.name`));$(o,{get label(){return n(e)},onsave:()=>Ce({name:n(x)},X(`client.notices.renamed`)),get value(){return n(x)},set value(e){C(x,e,!0)}})}var l=u(o,2);Ai(l,{get rows(){return n(fe)}});var p=u(l,2),h=e=>{var n=Ja(),r=G(n,!0);c(e=>H(r,e),[()=>X(`client.registration.saml`)]),t(e,n)},g=e=>{var n=Ja(),r=G(n,!0);c(e=>H(r,e),[()=>X(`client.registration.public`)]),t(e,n)},_=e=>{var r=Xa(),i=s(r),a=G(i,!0),o=u(i,2);J(o,21,()=>Fe,([e,t])=>e,(e,r)=>{var i=P(()=>I(n(r),2));let a=()=>n(i)[0],o=()=>n(i)[1];var s=Ya(),l=G(s,!0),u={};c(()=>{H(l,o()),u!==(u=a())&&(s.value=(s.__value=u)??``)}),t(e,s)}),U(o);var l;L(o),U(r),c(e=>{H(a,e),l!==(l=n(W))&&(o.value=(o.__value=l)??``,E(o,l))},[()=>X(`client.registration.authenticates`)]),f(`change`,o,e=>Ie(e.currentTarget.value)),t(e,r)};i(p,e=>{n(de)?e(h):n(m).tokenEndpointAuthMethod===`none`?e(g,1):e(_,-1)});var v=u(p,2),y=e=>{var n=Za(),r=G(n,!0);c(e=>H(r,e),[()=>X(`client.registration.needs_keys`)]),t(e,n)};i(v,e=>{n(W)===`private_key_jwt`&&!n(ye)&&e(y)});var b=u(v,2),S=e=>{var r=Qa(),a=d(r),o=s(a),l=G(o,!0),p=u(o,2);J(p,21,()=>pe,([e,t])=>e,(e,r)=>{var i=P(()=>I(n(r),2));let a=()=>n(i)[0],o=()=>n(i)[1];var s=Ya(),l=G(s,!0),u={};c(()=>{H(l,o()),u!==(u=a())&&(s.value=(s.__value=u)??``)}),t(e,s)}),U(p);var h;L(p),U(a);var g=u(a,2),_=e=>{{let t=P(()=>X(`client.registration.sector`)),r=P(()=>X(`client.registration.sector_placeholder`));$(e,{get label(){return n(t)},get placeholder(){return n(r)},autocapitalize:`none`,autocorrect:`off`,spellcheck:`false`,onsave:()=>Ce({sectorIdentifierUri:n(re).trim()||null},n(re).trim()?X(`client.notices.saved`):X(`client.notices.cleared`)),get value(){return n(re)},set value(e){C(re,e,!0)}})}};i(g,e=>{(n(m).subjectType===`pairwise`||n(m).sectorIdentifierUri)&&e(_)});var v=u(g,2);J(v,17,()=>me,([e,t])=>e,(e,t)=>{var r=P(()=>I(n(t),2));let i=()=>n(r)[0],a=()=>n(r)[1];{let t=P(()=>n(m).grantTypes.includes(i()));Yi(e,{get checked(){return n(t)},get label(){return a()},onchange:e=>Ce({grantTypes:Oe(i(),e)},X(`client.notices.grants`))})}}),c(e=>{H(l,e),h!==(h=n(m).subjectType)&&(p.value=(p.__value=h)??``,E(p,h))},[()=>X(`client.registration.knows_as`)]),f(`change`,p,e=>Ae(e.currentTarget.value)),t(e,r)};i(b,e=>{n(de)||e(S)});var w=u(b,2),T=e=>{{let t=P(()=>X(`client.registration.unattended`));Yi(e,{get checked(){return n(De)},get label(){return n(t)},onchange:ke})}};i(w,e=>{n(m).approvedAt&&n(m).tokenEndpointAuthMethod!==`none`&&e(T)});var D=u(w,2),O=s(D),k=e=>{var n=$a(),r=G(n,!0);c(e=>H(r,e),[()=>X(`client.registration.rotate`)]),f(`click`,n,Re),t(e,n)},A=P(()=>n(m).tokenEndpointAuthMethod.startsWith(`client_secret`));i(O,e=>{n(A)&&e(k)});var j=u(O,2),M=e=>{var n=eo(),r=G(n,!0);c(e=>H(r,e),[()=>X(`client.registration.archive`)]),f(`click`,n,ze),t(e,n)};i(j,e=>{n(m).archivedAt||e(M)}),U(D),t(e,a)},$$slots:{default:!0}})}var l=u(a,2),p=e=>{{let r=P(()=>X(`client.saml.title`));Q(e,{row:!0,get title(){return n(r)},children:(e,r)=>{var i=no(),a=d(i);{let e=P(()=>X(`client.saml.entity_id`));$(a,{get label(){return n(e)},autocapitalize:`none`,autocorrect:`off`,spellcheck:`false`,onsave:()=>Ce({samlEntityId:n(oe).trim()},X(`client.notices.entity_id`)),get value(){return n(oe)},set value(e){C(oe,e,!0)}})}var o=u(a,2),l=s(o);{let e=P(()=>X(`client.saml.slo_url`));$(l,{get label(){return n(e)},placeholder:`https://wiki.example.com/saml/slo`,autocapitalize:`none`,autocorrect:`off`,spellcheck:`false`,onsave:()=>Ce({samlSloUrl:n(se).trim()||null},n(se).trim()?X(`client.notices.saved`):X(`client.notices.cleared`)),get value(){return n(se)},set value(e){C(se,e,!0)}})}var p=u(l,2),h=G(p,!0);U(o);var g=u(o,2);{let e=P(()=>[{term:X(`client.saml.metadata`),value:n(ae),mono:!0},{term:X(`client.saml.initiate`),value:n(m).samlIdpInitiated?`/saml/initiate/${n(m).clientId}`:null,mono:!0}]);Ai(g,{get rows(){return n(e)}})}var _=u(g,2),v=s(_),y=G(v,!0),b=u(v,2);J(b,21,()=>ue,([e,t])=>e,(e,r)=>{var i=P(()=>I(n(r),2));let a=()=>n(i)[0],o=()=>n(i)[1];var s=Ya(),l=G(s,!0),u={};c(()=>{H(l,o()),u!==(u=a())&&(s.value=(s.__value=u)??``)}),t(e,s)}),U(b);var x;L(b),U(_);var S=u(_,2),w=s(S),T=G(w,!0),D=u(w,2);ne(D);var O=u(D,2),k=G(O,!0);U(S);var A=u(S,2),j=s(A),M=G(j,!0),N=u(j,2);ne(N),F(N,`placeholder`,`email = email
275
+ name = name
276
+ given_name = given_name
277
+ family_name = family_name
278
+ preferred_username = preferred_username`);var R=u(N,2),z=G(R,!0),B=u(R,2),V=G(B,!0);U(A);var te=u(A,2);{let e=P(()=>X(`client.saml.requests_signed`));Yi(te,{get checked(){return n(m).samlRequestsSigned},get label(){return n(e)},onchange:e=>Ce({samlRequestsSigned:e},X(e?`client.notices.signed_refused`:`client.notices.signed_read`))})}var W=u(te,2);{let e=P(()=>X(`client.saml.idp_initiated`));Yi(W,{get checked(){return n(m).samlIdpInitiated},get label(){return n(e)},onchange:e=>Ce({samlIdpInitiated:e},X(e?`client.notices.idp_initiated_on`:`client.notices.idp_initiated_off`))})}c((e,t,r,i,a,o,s)=>{H(h,e),H(y,t),x!==(x=n(m).samlNameIdFormat??ue[0][0])&&(b.value=(b.__value=x)??``,E(b,x)),H(T,r),H(k,i),H(M,a),H(z,o),H(V,s)},[()=>X(`client.saml.slo_url_hint`),()=>X(`client.saml.names_by`),()=>X(`client.saml.certificate`),()=>X(`client.save`),()=>X(`client.saml.attributes`),()=>X(`client.saml.attributes_hint`),()=>X(`client.save`)]),f(`change`,b,e=>Ce({samlNameIdFormat:e.currentTarget.value},X(`client.notices.saved`))),ee(D,()=>n(K),e=>C(K,e)),f(`click`,O,()=>Ce({samlCertificate:n(K).trim()},n(K).trim()?X(`client.notices.certificate_saved`):X(`client.notices.certificate_removed`))),ee(N,()=>n(ce),e=>C(ce,e)),f(`click`,B,Pe),t(e,i)},$$slots:{default:!0}})}};i(l,e=>{n(de)&&e(p)});var h=u(l,2);{let e=P(()=>X(`client.shown.title`));Q(h,{row:!0,get title(){return n(e)},children:(e,r)=>{var a=ro(),l=d(a),f=s(l);Ui(f,{get client(){return n(m)},class:`size-14 rounded-lg border border-base-300 text-xl`});var p=u(f,2),h=s(p),g=e=>{var n=o();c(e=>H(n,e),[()=>X(`client.shown.unapproved`)]),t(e,n)},_=e=>{var n=o();c(e=>H(n,e),[()=>X(`client.shown.approved`)]),t(e,n)};i(h,e=>{n(m).approvedAt?e(_,-1):e(g)}),U(p),U(l);var y=u(l,2),b=s(y);J(b,17,()=>he,([e,t,n])=>e,(e,t)=>{var r=P(()=>I(n(t),3));let i=()=>n(r)[0],a=()=>n(r)[1],o=()=>n(r)[2];$(e,{get label(){return a()},get placeholder(){return o()},autocapitalize:`none`,autocorrect:`off`,spellcheck:`false`,get value(){return n(q)[i()]},set value(e){n(q)[i()]=e}})});var x=u(b,2),S=G(x,!0);U(y),c(e=>H(S,e),[()=>X(`client.save`)]),v(`submit`,y,e=>{e.preventDefault(),ge()}),t(e,a)},$$slots:{default:!0}})}var g=u(h,2);{let e=P(()=>X(`client.sign_in.title`));Q(g,{row:!0,get title(){return n(e)},children:(e,r)=>{var a=oo(),o=d(a),l=s(o),p=G(l,!0),h=u(l,2),g=s(h),_=G(g,!0);g.value=g.__value=``;var x=u(g);J(x,17,()=>n(y),e=>e.key,(e,r)=>{var i=Ya(),a=G(i,!0),o={};c(()=>{H(a,n(r).name),o!==(o=n(r).key)&&(i.value=(i.__value=o)??``)}),t(e,i)}),U(h);var w;L(h),U(o);var T=u(o,2),D=e=>{var r=Za(),i=G(r,!0);c(e=>H(i,e),[()=>X(`client.sign_in.archived`,{name:n(m).signInPolicy.name,fallback:n(b)?.name})]),t(e,r)},O=e=>{var r=V(),a=d(r),o=e=>{var r=ao(),i=s(r),a=G(i,!0),o=u(i,2);J(o,21,()=>n(ve),({term:e,value:t,instead:n})=>e,(e,r)=>{let i=()=>n(r).term,a=()=>n(r).value,o=()=>n(r).instead;var l=io(),f=d(l),p=G(f,!0),m=u(f,2),h=s(m),g=u(h),_=G(g,!0);U(m),c(()=>{H(p,i()),H(h,`${a()??``} `),H(_,o())}),t(e,l)}),U(o),U(r),c(e=>H(a,e),[()=>X(`client.sign_in.differs`,{name:n(b)?.name})]),t(e,r)},l=e=>{var r=Ja(),i=G(r,!0);c(e=>H(i,e),[()=>X(`client.sign_in.same`,{name:n(b)?.name})]),t(e,r)};i(a,e=>{n(ve).length?e(o):e(l,-1)}),t(e,r)};i(T,e=>{n(m).signInPolicy?.archivedAt?e(D):n(m).signInPolicy&&e(O,1)});var k=u(T,2),A=e=>{var r=Ha(),i=d(r);{let e=P(()=>X(`client.sign_in.par`));Yi(i,{get checked(){return n(m).requirePushedAuthorizationRequests},get label(){return n(e)},onchange:e=>Ce({requirePushedAuthorizationRequests:e},X(e?`client.notices.par_on`:`client.notices.par_off`))})}var a=u(i,2);{let e=P(()=>X(`client.sign_in.dpop`));Yi(a,{get checked(){return n(m).dpopBoundAccessTokens},get label(){return n(e)},onchange:e=>Ce({dpopBoundAccessTokens:e},X(e?`client.notices.dpop_on`:`client.notices.dpop_off`))})}t(e,r)};i(k,e=>{n(de)||e(A)});var j=u(k,2),M=e=>{{let t=P(()=>X(`client.sign_in.consent`));Yi(e,{get checked(){return n(m).consentRequired},get label(){return n(t)},onchange:e=>Ce({consentRequired:e},X(e?`client.notices.consent_on`:`client.notices.consent_off`))})}};i(j,e=>{n(m).approvedAt&&e(M)});var F=u(j,2),I=s(F),z=s(I);{let e=P(()=>X(`client.sign_in.access`));$(z,{get label(){return n(e)},type:`number`,min:`1`,max:`1440`,get value(){return n(R)},set value(e){C(R,e,!0)}})}var B=u(z,2);{let e=P(()=>X(`client.sign_in.refresh`));$(B,{get label(){return n(e)},type:`number`,min:`1`,max:`400`,get value(){return n(te)},set value(e){C(te,e,!0)}})}var ee=u(B,2);{let e=P(()=>X(`client.sign_in.consent_lifetime`));$(ee,{get label(){return n(e)},type:`number`,min:`1`,max:`400`,get value(){return n(N)},set value(e){C(N,e,!0)}})}U(I);var ne=u(I,2),W=G(ne,!0);U(F);var re=u(F,2);{let e=P(()=>X(`client.sign_in.logout`));$(re,{get label(){return n(e)},placeholder:`https://app.example.com/logout`,autocapitalize:`none`,autocorrect:`off`,spellcheck:`false`,onsave:()=>Ce({backchannelLogoutUri:n(S).trim()||null},n(S).trim()?X(`client.notices.saved`):X(`client.notices.cleared`)),get value(){return n(S)},set value(e){C(S,e,!0)}})}var ie=u(re,2),ae=e=>{{let t=P(()=>X(`client.sign_in.logout_session`));Yi(e,{get checked(){return n(m).backchannelLogoutSessionRequired},get label(){return n(t)},onchange:e=>Ce({backchannelLogoutSessionRequired:e},X(`client.notices.saved`))})}};i(ie,e=>{n(m).backchannelLogoutUri&&e(ae)}),c((e,t,r)=>{H(p,e),H(_,t),w!==(w=n(m).signInPolicy?.key??``)&&(h.value=(h.__value=w)??``,E(h,w)),H(W,r)},[()=>X(`client.sign_in.policy`),()=>X(`client.sign_in.default`,{name:n(b)?.name??X(`client.sign_in.built_in`)}),()=>X(`client.save`)]),f(`change`,h,e=>Ce({signInPolicy:e.currentTarget.value},X(`client.notices.policy`))),v(`submit`,F,e=>{e.preventDefault(),_e()}),t(e,a)},$$slots:{default:!0}})}t(e,r)};i(we,e=>{a()===`access`?e(Be):a()===`endpoints`?e(Ve,1):a()===`usage`?e(He,2):e(Ue,-1)}),U(Se),t(e,w)},$$slots:{default:!0}})}};i(Ve,e=>{n(le)&&!n(m)?e(He):n(m)?e(We,-1):e(Ue,1)}),t(e,Be),B()}l([`click`,`change`]);var lo=p(`<span class="badge badge-warning badge-xs"> </span>`),uo=p(`<span class="flex flex-wrap items-center gap-2"><!> <!></span> <span class="font-mono text-xs opacity-75"> </span> <!>`,1);function fo(e,r){O(r,!0);var a=uo(),l=d(a),f=s(l);{let e=P(()=>`/organizations/${r.organization.key}`);Z(f,{get to(){return n(e)},class:`link link-hover font-medium`,children:(e,n)=>{j();var i=o();c(()=>H(i,r.organization.name)),t(e,i)},$$slots:{default:!0}})}var p=u(f,2),m=e=>{var n=lo(),r=G(n,!0);c(e=>H(r,e),[()=>X(`organization_cell.no_owner`)]),t(e,n)};i(p,e=>{r.organization.ownerCount===0&&e(m)}),U(l);var h=u(l,2),g=G(h,!0),_=u(h,2);y(_,()=>r.children??N),c(()=>H(g,r.organization.key)),t(e,a),B()}var po=p(`<span class="text-xs opacity-75"> </span>`),mo=p(`<span><span> </span> <!></span>`);function ho(e,n){O(n,!0);let r=z(n,`class`,3,`flex flex-col`);var a=mo(),o=s(a),l=G(o,!0),d=u(o,2),f=e=>{var r=po(),i=G(r,!0);c(e=>H(i,e),[()=>X(`organization_headcount.invited`,{count:n.organization.pendingCount})]),t(e,r)};i(d,e=>{n.organization.pendingCount&&e(f)}),U(a),c(e=>{Y(a,1,k(r())),H(l,e)},[()=>X(`organization_headcount.members`,{count:n.organization.memberCount})]),t(e,a),B()}var go=p(`<button type="button" class="btn btn-primary btn-sm"> </button>`),_o=p(`<div class="grid gap-3 sm:grid-cols-2"><!> <!></div> <p class="hint"> <span class="font-mono"> </span> </p> <div class="flex gap-2"><button type="button" class="btn btn-primary btn-sm"> </button> <button type="button" class="btn btn-ghost btn-sm"> </button></div>`,1),vo=p(`<span class="text-xs opacity-85 md:hidden"> </span>`),yo=p(`<span class="badge badge-ghost badge-sm"> </span>`),bo=p(`<td><div class="flex min-w-0 flex-col gap-0.5"><!></div></td> <td class="hidden text-sm md:table-cell"><!></td> <td class="hidden md:table-cell"><div class="flex max-w-64 flex-wrap gap-1"></div></td> <td class="hidden text-sm md:table-cell"><span> </span></td>`,1),xo=p(`<div class="flex flex-wrap items-center justify-between gap-2"><div class="flex min-w-0 flex-col"><!> <span class="hint"><span class="font-mono"> </span> </span></div> <button type="button" class="btn btn-ghost btn-sm"> </button></div>`),So=p(`<!> <!>`,1),Co=p(`<!> <!> <!>`,1);function wo(e,r){O(r,!0);let a=Qe(),l=pt(),p=[X(`organizations.columns.organization`),{label:X(`organizations.columns.members`),hide:!0},{label:X(`organizations.columns.roles`),hide:!0},{label:X(`organizations.columns.signs_in`),hide:!0}],m=T(null),h=T(!0),g=T(!1),_=T(null),v=T(!1);async function y(){C(h,!0);let e=await l.attempt(()=>r.api.query(`
279
+ query Organizations {
280
+ active: organizations {
281
+ key name roles memberCount ownerCount pendingCount
282
+ signInPolicy { name }
283
+ providers { name }
284
+ }
285
+ archived: organizations(archived: true) { key name memberCount archivedAt }
286
+ }
287
+ `));C(h,!1),e&&C(m,e,!0)}y();let b=e=>e.toLowerCase().normalize(`NFKD`).replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``);function x(){C(_,{key:``,name:``},!0),C(v,!1),l.clear()}function S(e){n(_).name=e,n(v)||(n(_).key=b(e))}async function w(){C(g,!0);let e=await l.attempt(()=>r.api.query(`mutation Create($key: ID!, $name: String!) {
288
+ createOrganization(key: $key, name: $name) { organization { key } }
289
+ }`,{key:n(_).key.trim(),name:n(_).name.trim()}));C(g,!1),e&&a.go(`/organizations/${e.createOrganization.organization.key}`)}async function E(e){await l.attempt(()=>r.api.query(`mutation Restore($key: ID!) { restoreOrganization(key: $key) { organization { key } } }`,{key:e.key}),X(`organizations.restored`,{name:e.name}))&&await y()}function D(e){let t=X(`organizations.members`,{count:e.memberCount});return e.pendingCount?X(`organizations.members_invited`,{members:t,count:e.pendingCount}):t}function k(e){return[e.signInPolicy?.name,...e.providers.map(e=>e.name)].filter(Boolean).join(`, `)}{let r=e=>{var n=go(),r=G(n,!0);c(e=>H(r,e),[()=>X(`organizations.add`)]),f(`click`,n,x),t(e,n)},a=P(()=>X(`organizations.title`)),y=P(()=>X(`organizations.lede`));kn(e,{get title(){return n(a)},get lede(){return n(y)},actions:r,children:(e,r)=>{var a=Co(),y=d(a);Cn(y,{get feedback(){return l.state}});var b=u(y,2),x=e=>{{let r=P(()=>X(`organizations.add`)),i=P(()=>X(`organizations.add_lede`));Q(e,{get title(){return n(r)},get lede(){return n(i)},children:(e,r)=>{var i=_o(),a=d(i),o=s(a);{let e=P(()=>X(`organizations.name`));$(o,{get label(){return n(e)},get value(){return n(_).name},oninput:e=>S(e.currentTarget.value),placeholder:`Acme`})}var l=u(o,2);{let e=P(()=>X(`organizations.key`));$(l,{get label(){return n(e)},oninput:()=>C(v,!0),placeholder:`acme`,autocapitalize:`none`,autocorrect:`off`,spellcheck:`false`,get value(){return n(_).key},set value(e){n(_).key=e}})}U(a);var p=u(a,2),m=s(p),h=u(m),y=G(h),b=u(h,1,!0);U(p);var x=u(p,2),T=s(x),E=G(T,!0),D=u(T,2),O=G(D,!0);U(x),c((e,t,n,r,i,a)=>{H(m,`${e??``} `),H(y,`organization=${t??``}`),H(b,n),T.disabled=r,H(E,i),H(O,a)},[()=>X(`organizations.key_hint`),()=>n(_).key||X(`organizations.key_word`),()=>X(`organizations.key_hint_end`),()=>n(g)||!n(_).key.trim()||!n(_).name.trim(),()=>n(g)?X(`organizations.adding`):X(`organizations.add`),()=>X(`organizations.cancel`)]),f(`click`,T,w),f(`click`,D,()=>C(_,null)),t(e,i)},$$slots:{default:!0}})}};i(b,e=>{n(_)&&e(x)});var T=u(b,2),O=e=>{it(e,{})},A=e=>{var r=So(),a=d(r);{let e=e=>{var r=V(),i=d(r);J(i,17,()=>n(m).active,e=>e.key,(e,r)=>{{let i=P(()=>`/organizations/${n(r).key}`);Pt(e,{get to(){return n(i)},children:(e,i)=>{var a=bo(),o=d(a),l=s(o);fo(s(l),{get organization(){return n(r)},children:(e,i)=>{var a=vo(),o=G(a,!0);c(e=>H(o,e),[()=>D(n(r))]),t(e,a)},$$slots:{default:!0}}),U(l),U(o);var f=u(o,2);ho(s(f),{get organization(){return n(r)}}),U(f);var p=u(f,2),m=s(p);J(m,20,()=>n(r).roles,e=>e,(e,n)=>{var r=yo(),i=G(r,!0);c(()=>H(i,n)),t(e,r)}),U(m),U(p);var h=u(p,2),g=s(h);let _;var v=G(g,!0);U(h),c((e,t)=>{_=Y(g,1,``,null,_,{"opacity-60":e}),H(v,t)},[()=>!k(n(r)),()=>k(n(r))||X(`organizations.tenant_policy`)]),t(e,a)},$$slots:{default:!0}})}}),t(e,r)},r=P(()=>X(`organizations.empty`));zt(a,{get columns(){return p},get count(){return n(m).active.length},get empty(){return n(r)},rows:e,$$slots:{rows:!0}})}var l=u(a,2),h=e=>{{let r=P(()=>X(`organizations.archived.title`)),i=P(()=>X(`organizations.archived.lede`));Q(e,{get title(){return n(r)},get lede(){return n(i)},children:(e,r)=>{var i=V(),a=d(i);J(a,17,()=>n(m).archived,e=>e.key,(e,r)=>{var i=xo(),a=s(i),l=s(a);{let e=P(()=>`/organizations/${n(r).key}`);Z(l,{get to(){return n(e)},class:`link link-hover text-sm font-medium`,children:(e,i)=>{j();var a=o();c(()=>H(a,n(r).name)),t(e,a)},$$slots:{default:!0}})}var d=u(l,2),p=s(d),m=G(p,!0),h=u(p);U(d),U(a);var g=u(a,2),_=G(g,!0);U(i),c((e,t)=>{H(m,n(r).key),H(h,` ${e??``}`),H(_,t)},[()=>X(`organizations.archived.detail`,{day:St(n(r).archivedAt),members:X(`organizations.members`,{count:n(r).memberCount})}),()=>X(`organizations.restore`)]),f(`click`,g,()=>E(n(r))),t(e,i)}),t(e,i)},$$slots:{default:!0}})}};i(l,e=>{n(m).archived.length&&e(h)}),t(e,r)};i(T,e=>{n(h)&&!n(m)?e(O):n(m)&&e(A,1)}),t(e,a)},$$slots:{actions:!0,default:!0}})}B()}l([`click`]);var To=p(`<span class="tally-figure"> </span> <span class="tally-label"> </span>`,1),Eo=p(`<div class="tally-cell"><span class="tally-figure"> </span> <span class="tally-label"> </span></div>`),Do=p(`<div class="tally"></div>`);function Oo(e,r){var a=Do();J(a,21,()=>r.counts,e=>e.label,(e,r)=>{var a=V(),o=d(a),l=e=>{Z(e,{get to(){return n(r).to},class:`tally-cell`,children:(e,i)=>{var a=To(),o=d(a),s=G(o,!0),l=u(o,2),f=G(l,!0);c(()=>{H(s,n(r).value),H(f,n(r).label)}),t(e,a)},$$slots:{default:!0}})},f=e=>{var i=Eo(),a=s(i),o=G(a,!0),l=u(a,2),d=G(l,!0);U(i),c(()=>{H(o,n(r).value),H(d,n(r).label)}),t(e,i)};i(o,e=>{n(r).to?e(l):e(f,-1)}),t(e,a)}),U(a),t(e,a)}var ko=p(`<button type="button" class="btn btn-ghost btn-sm"> </button>`),Ao=p(`<!> <button type="button" class="btn btn-ghost btn-sm btn-error"> </button>`,1),jo=p(`<p class="hint"> <!></p>`),Mo=p(`<div class="alert alert-warning alert-soft flex flex-wrap items-center justify-between gap-3" role="status"><span> </span> <button type="button" class="btn btn-sm"> </button></div>`),No=p(`<div class="alert alert-warning alert-soft" role="status"> </div>`),Po=p(`<div class="alert alert-info alert-soft flex-col items-start gap-2" role="status"><span class="font-medium"> </span> <code class="font-mono text-xs break-all"> </code></div>`),Fo=p(`<div class="flex flex-wrap items-center justify-between gap-2 sheet p-3"><div class="flex min-w-0 flex-col"><span class="font-medium"> </span> <span class="hint"> </span></div> <div class="flex gap-2"><button type="button" class="btn btn-sm"> </button> <button type="button" class="btn btn-ghost btn-sm"> </button></div></div>`),Io=p(`<p class="hint"> </p>`),Lo=p(`<div class="flex flex-col gap-3 sheet p-3"><span class="font-medium"> </span> <div class="grid gap-3 sm:grid-cols-2"><!> <!></div> <label class="flex flex-col gap-1.5"><span class="field-label"> </span> <textarea class="textarea w-full font-mono" rows="3" placeholder="Acme Admins = owner"></textarea> <p class="hint"> </p></label> <div class="flex gap-2"><button type="button" class="btn btn-primary btn-sm"> </button> <button type="button" class="btn btn-ghost btn-sm"> </button></div></div>`),Ro=p(`<div class="flex flex-col gap-2"><!> <!></div> <!>`,1),zo=p(`<div class="flex flex-wrap items-center justify-between gap-2"><span class="font-mono text-sm break-all"> </span> <span class="hint"> </span></div>`),Bo=p(`<div class="flex flex-col gap-2"></div>`),Vo=p(`<div class="flex flex-col gap-2"><p class="hint"> <!></p></div>`),Ho=p(`<!> <!> <!> <!>`,1),Uo=p(`<button type="button" class="-mr-1 cursor-pointer px-1 opacity-70 hover:opacity-100 disabled:cursor-not-allowed disabled:opacity-30">×</button>`),Wo=p(`<span><span class="font-medium"> </span> <span class="opacity-70"> </span> <!></span>`),Go=p(`<div class="flex flex-wrap gap-2"></div> <!> <p class="hint"> </p>`,1),Ko=p(`<!> <!>`,1),qo=p(`<button type="button" class="btn btn-sm btn-error btn-outline self-start"> </button>`),Jo=p(`<button type="button"> </button>`),Yo=p(`<button type="button" class="btn btn-primary btn-sm"> </button>`),Xo=p(`<div class="range" role="group"></div> <!>`,1),Zo=p(`<div class="grid gap-3 sm:grid-cols-[minmax(0,1fr)_10rem_auto] sm:items-end"><!> <!> <div class="flex gap-2"><button type="button" class="btn btn-primary btn-sm"> </button> <button type="button" class="btn btn-ghost btn-sm"> </button></div></div> <p class="hint"> </p>`,1),Qo=p(`<span class="badge badge-sm badge-error badge-soft"> </span>`),$o=p(`<span class="badge badge-sm badge-warning badge-soft"> </span>`),es=p(`<span class="badge badge-sm badge-ghost"> </span>`),ts=p(`<tr><td class="w-full min-w-0"><div class="flex min-w-0 flex-col gap-0.5"><span class="flex flex-wrap items-center gap-2"><!> <!> <!></span> <span class="hint"> </span> <div class="mt-2 flex flex-wrap items-center gap-2 md:hidden"><div class="min-w-28 flex-1 basis-28"><!></div> <div class="-me-3 flex shrink-0"><!></div></div></div></td><td class="hidden w-44 min-w-44 md:table-cell"><!></td><td class="hidden text-right whitespace-nowrap md:table-cell"><!></td></tr>`),ns=p(`<!> <!> <!> <!> <!> <div class="grid gap-4"><!></div>`,1);function rs(e,r){O(r,!0);let a=(e,t=N)=>{{let r=P(()=>X(`organization.members.role_of`,{name:oe(t())})),i=P(()=>n(E)||se(t())||!!n(_).archivedAt);qi(e,{get value(){return t().role},get options(){return n(te)},get name(){return n(r)},get disabled(){return n(i)},onchange:e=>de(t(),e)})}},l=(e,r=N)=>{var a=Ao(),o=d(a),s=e=>{var i=ko(),a=G(i,!0);c((e,t)=>{i.disabled=e,H(a,t)},[()=>n(E)||!!n(_).archivedAt,()=>X(`organization.members.send_again`)]),f(`click`,i,()=>pe(r())),t(e,i)};i(o,e=>{r().pending&&e(s)});var l=u(o,2),p=G(l,!0);c((e,t,n)=>{l.disabled=e,F(l,`title`,t),H(p,n)},[()=>n(E)||se(r()),()=>se(r())?X(`organization.members.owner_first`):null,()=>r().pending?X(`organization.members.withdraw`):X(`organization.members.remove`)]),f(`click`,l,()=>fe(r())),t(e,a)},p=z(r,`part`,3,null);Qe();let m=pt(),h=[`owner`,`member`],g=[[`all`,X(`organization.lenses.all`)],[`owners`,X(`organization.lenses.owners`)],[`invited`,X(`organization.lenses.invited`)]],_=T(null),v=T(w([])),y=T(w([])),b=()=>({provider:``,roleClaim:``,roleMap:``,unmappedRole:``}),x=T(w(b())),S=T(!0),E=T(!1),D=T(null),k=T(`all`),A=T(``),M=T(``),L=T(null);async function R(){C(S,!0);let e=await m.attempt(()=>r.api.query(`
290
+ query Organization($key: ID!) {
291
+ organization(key: $key) {
292
+ uuid key name roles archivedAt createdAt
293
+ memberCount ownerCount pendingCount liveTokenCount
294
+ signInPolicy { key }
295
+ providers { key name roleClaim roleMap unmappedRole }
296
+ domains { domain verifiedAt provider { name } }
297
+ provisioningTokens { id }
298
+ members {
299
+ role pending provisioned invitedAs invitedAt expiresAt expired createdAt
300
+ invitedBy { identifier }
301
+ actor { uuid identifier }
302
+ }
303
+ events {
304
+ id action label createdAt ipAddress details
305
+ actor { uuid identifier } by { uuid identifier } client { clientId name } device { id label }
306
+ }
307
+ }
308
+ signInPolicies { key name }
309
+ providers { key name organization { key } }
310
+ }
311
+ `,{key:r.organizationKey}));C(S,!1),e&&(C(_,e.organization,!0),C(v,e.signInPolicies,!0),C(y,e.providers,!0),n(_)&&C(A,n(_).name,!0))}R();let te=P(()=>(n(_)?.roles??[]).map(e=>[e,e])),W=P(()=>Object.fromEntries((n(_)?.roles??[]).map(e=>[e,n(_).members.filter(t=>t.role===e).length]))),re=P(()=>(n(_)?.members??[]).filter(e=>n(k)===`owners`?e.role===`owner`&&!e.pending:n(k)!==`invited`||e.pending).toSorted((e,t)=>Number(e.pending)-Number(t.pending)||Number(t.role===`owner`)-Number(e.role===`owner`)||oe(e).localeCompare(oe(t)))),ie=(e,t)=>n(_).liveTokenCount?X(t,{organization:n(_).name,count:n(_).liveTokenCount}):X(e,{organization:n(_).name}),ae=P(()=>n(_)?[{label:X(`organization.counts.members`,{count:n(_).memberCount}),value:n(_).memberCount},{label:X(`organization.counts.owners`,{count:n(_).ownerCount}),value:n(_).ownerCount},{label:X(`organization.counts.invitations`),value:n(_).pendingCount},{label:X(`organization.counts.live_tokens`),value:n(_).liveTokenCount}]:[]),K=P(()=>n(_)?[{term:X(`organization.facts.key`),value:n(_).key,mono:!0},{term:X(`organization.facts.id`),value:n(_).uuid,mono:!0},{term:X(`organization.facts.asked_for_with`),value:`organization=${n(_).key}`,mono:!0},{term:X(`organization.facts.created`),value:St(n(_).createdAt)}]:[]);function oe(e){return e.pending?e.invitedAs??e.actor.identifier:e.actor.identifier}function se(e){return e.role===`owner`&&!e.pending&&n(_).ownerCount===1}function q(e){return e.expired?X(`organization.status.expired`,{when:wt(e.expiresAt)}):e.pending?e.invitedBy?X(`organization.status.invited_by`,{when:wt(e.invitedAt),by:e.invitedBy.identifier}):X(`organization.status.invited`,{when:wt(e.invitedAt)}):X(e.provisioned?`organization.status.from_directory`:`organization.status.since`,{day:St(e.createdAt)})}async function ce(e,t,n){C(E,!0);let i=await m.attempt(()=>r.api.query(e,t),n);return C(E,!1),i&&await R(),i}function le(){C(D,{email:``,role:`member`},!0),C(L,null),m.clear()}async function ue(){let e=n(D).email.trim();C(L,null);let t=await ce(`mutation Add($organization: ID!, $email: String!, $role: String!) {
312
+ addMember(organization: $organization, email: $email, role: $role) { delivered url }
313
+ }`,{organization:n(_).key,email:e,role:n(D).role},X(`organization.notices.invited`,{email:e,role:n(D).role}));t&&(C(D,null),!t.addMember.delivered&&t.addMember.url&&C(L,t.addMember.url,!0))}function de(e,t){ce(`mutation Role($organization: ID!, $uuid: ID!, $role: String!) {
314
+ setMemberRole(organization: $organization, uuid: $uuid, role: $role) { membership { role } }
315
+ }`,{organization:n(_).key,uuid:e.actor.uuid,role:t},X(`organization.notices.role_set`,{name:oe(e),role:t}))}function fe(e){let t=e.pending?X(`organization.questions.withdraw`,{name:oe(e)}):X(`organization.questions.remove`,{name:oe(e),organization:n(_).name});confirm(t)&&ce(`mutation Remove($organization: ID!, $uuid: ID!) {
316
+ removeMember(organization: $organization, uuid: $uuid) { organization { key } }
317
+ }`,{organization:n(_).key,uuid:e.actor.uuid},e.pending?X(`organization.notices.withdrawn`,{name:oe(e)}):X(`organization.notices.removed`,{name:oe(e),organization:n(_).name}))}function pe(e){ce(`mutation Resend($organization: ID!, $uuid: ID!) {
318
+ resendOrganizationInvitation(organization: $organization, uuid: $uuid) { delivered }
319
+ }`,{organization:n(_).key,uuid:e.actor.uuid},X(`organization.notices.resent`,{name:oe(e)}))}function me(e,t){return ce(`mutation Roles($key: ID!, $roles: [String!]) {
320
+ updateOrganization(key: $key, roles: $roles) { organization { key } }
321
+ }`,{key:n(_).key,roles:e},t)}let he=P(()=>(n(_)?.roles??[]).filter(e=>!h.includes(e)));async function ge(){let e=n(M).trim().toLowerCase();e&&await me([...n(he),e],X(`organization.notices.role_added`,{organization:n(_).name,role:e}))&&C(M,``)}function _e(e){me(n(he).filter(t=>t!==e),X(`organization.notices.role_dropped`,{organization:n(_).name,role:e}))}function ve(){ce(`mutation Rename($key: ID!, $name: String) {
322
+ updateOrganization(key: $key, name: $name) { organization { key } }
323
+ }`,{key:n(_).key,name:n(A).trim()},X(`organization.notices.saved`))}let ye=e=>Object.entries(e??{}).map(([e,t])=>`${e} = ${t}`).join(`
324
+ `),be=e=>Object.fromEntries(e.split(`
325
+ `).map(e=>e.split(`=`)).filter(e=>e.length===2&&e[0].trim()&&e[1].trim()).map(([e,t])=>[e.trim(),t.trim()])),xe=P(()=>n(y).filter(e=>!e.organization));function Se(e){let t=n(_).providers.find(t=>t.key===e);C(x,{provider:e,roleClaim:t?.roleClaim??``,roleMap:ye(t?.roleMap),unmappedRole:t?.unmappedRole??``},!0)}function Ce(){ce(`mutation Hand($key: ID!, $organization: ID, $roleClaim: String, $roleMap: JSON, $unmappedRole: String) {
326
+ setProviderOrganization(key: $key, organization: $organization, roleClaim: $roleClaim, roleMap: $roleMap, unmappedRole: $unmappedRole) {
327
+ provider { key }
328
+ }
329
+ }`,{key:n(x).provider,organization:n(_).key,roleClaim:n(x).roleClaim.trim()||null,roleMap:be(n(x).roleMap),unmappedRole:n(x).unmappedRole||null},X(`organization.notices.provider_saved`)).then(e=>{e&&C(x,b(),!0)})}function we(e){confirm(X(`organization.questions.hand_back`,{provider:e.name,organization:n(_).name}))&&ce(`mutation Back($key: ID!) { setProviderOrganization(key: $key, organization: null) { provider { key } } }`,{key:e.key},X(`organization.notices.provider_back`,{provider:e.name}))}function Te(e){ce(`mutation Policy($key: ID!, $policy: ID!) {
330
+ updateOrganization(key: $key, signInPolicy: $policy) { organization { key } }
331
+ }`,{key:n(_).key,policy:e},X(`organization.notices.saved`))}async function Ee(){confirm(ie(`organization.questions.archive`,`organization.questions.archive_tokens`))&&await ce(`mutation Archive($key: ID!) { archiveOrganization(key: $key) { organization { key } } }`,{key:n(_).key},X(`organization.notices.archived`,{organization:n(_).name}))}function De(){ce(`mutation Restore($key: ID!) { restoreOrganization(key: $key) { organization { key } } }`,{key:n(_).key},X(`organization.notices.restored`,{organization:n(_).name}))}{let w=P(()=>n(_)?.name??X(`organization.title`)),T=P(()=>n(_)?.key),O=P(()=>({to:`/organizations`,label:X(`organization.back`)})),N=P(()=>n(_)?n(_).archivedAt?X(`organization.archived_lede`,{when:wt(n(_).archivedAt)}):X(`organization.lede`,{key:n(_).key}):null);kn(e,{get title(){return n(w)},get id(){return n(T)},get back(){return n(O)},get lede(){return n(N)},children:(e,w)=>{var T=Ko(),O=d(T);Cn(O,{get feedback(){return m.state}});var N=u(O,2),R=e=>{it(e,{})},z=e=>{var n=jo(),i=s(n);Z(u(i),{to:`/organizations`,children:(e,n)=>{j();var r=o();c(e=>H(r,e),[()=>X(`organization.all`)]),t(e,r)},$$slots:{default:!0}}),U(n),c(e=>H(i,`${e??``} `),[()=>X(`organization.missing`,{key:r.organizationKey})]),t(e,n)},B=e=>{var r=ns(),m=d(r),S=e=>{var r=Mo(),i=s(r),a=G(i,!0),o=u(i,2),l=G(o,!0);U(r),c((e,t)=>{H(a,e),o.disabled=n(E),H(l,t)},[()=>X(`organization.archived_alert`,{day:St(n(_).archivedAt)}),()=>X(`organization.restore`)]),f(`click`,o,De),t(e,r)};i(m,e=>{n(_).archivedAt&&e(S)});var w=u(m,2),T=e=>{var r=No(),i=G(r,!0);c(e=>H(i,e),[()=>X(`organization.ownerless`,{organization:n(_).name})]),t(e,r)};i(w,e=>{!n(_).archivedAt&&n(_).ownerCount===0&&e(T)});var O=u(w,2);Oo(O,{get counts(){return n(ae)}});var N=u(O,2),R=e=>{var r=Po(),i=s(r),a=G(i,!0),o=u(i,2),l=G(o,!0);U(r),c(e=>{H(a,e),H(l,n(L))},[()=>X(`organization.invitation_link`)]),t(e,r)};i(N,e=>{n(L)&&e(R)});var z=u(N,2);{let e=P(()=>`/organizations/${n(_).key}`),t=P(()=>X(`organization.parts.label`)),r=P(()=>[[null,``,X(`organization.parts.members`)],[`sign-in`,`/sign-in`,X(`organization.parts.sign_in`)],[`roles`,`/roles`,X(`organization.parts.roles`)],[`activity`,`/activity`,X(`organization.parts.activity`)],[`general`,`/general`,X(`organization.parts.general`)]]);Gr(z,{get base(){return n(e)},get part(){return p()},get label(){return n(t)},get parts(){return n(r)}})}var B=u(z,2),ce=s(B),de=e=>{var r=Ho(),a=d(r);{let e=P(()=>X(`organization.signing_in.policy`)),t=P(()=>X(`organization.signing_in.lede`));Q(a,{row:!0,get title(){return n(e)},get lede(){return n(t)},children:(e,t)=>{{let t=P(()=>X(`organization.signing_in.policy`)),r=P(()=>n(_).signInPolicy?.key??``),i=P(()=>[[``,X(`organization.signing_in.inherited`)],...n(v).map(e=>[e.key,e.name])]);qi(e,{get name(){return n(t)},get value(){return n(r)},get options(){return n(i)},get disabled(){return n(E)},onchange:Te})}},$$slots:{default:!0}})}var l=u(a,2);{let e=P(()=>X(`organization.signing_in.providers`));Q(l,{row:!0,get title(){return n(e)},children:(e,r)=>{var a=Ro(),o=d(a),l=s(o);J(l,17,()=>n(_).providers,e=>e.key,(e,r)=>{var i=Fo(),a=s(i),o=s(a),l=G(o,!0),d=u(o,2),p=G(d,!0);U(a);var m=u(a,2),h=s(m),g=G(h,!0),_=u(h,2),v=G(_,!0);U(m),U(i),c((e,t,i)=>{H(l,n(r).name),H(p,e),h.disabled=n(E),H(g,t),_.disabled=n(E),H(v,i)},[()=>X(`organization.signing_in.joins_as`,{mapping:Object.keys(n(r).roleMap).length?Object.entries(n(r).roleMap).map(([e,t])=>`${e} → ${t}`).join(`, `):X(`organization.signing_in.no_groups_mapped`),role:n(r).unmappedRole??`member`}),()=>X(`organization.signing_in.edit`),()=>X(`organization.signing_in.hand_back`)]),f(`click`,h,()=>Se(n(r).key)),f(`click`,_,()=>we(n(r))),t(e,i)},e=>{var n=Io(),r=G(n,!0);c(e=>H(r,e),[()=>X(`organization.signing_in.no_providers`)]),t(e,n)});var p=u(l,2),m=e=>{{let t=P(()=>X(`organization.signing_in.give_provider`)),r=P(()=>[[``,X(`organization.signing_in.give_provider`)],...n(xe).map(e=>[e.key,e.name])]);qi(e,{value:``,get name(){return n(t)},get options(){return n(r)},onchange:Se})}};i(p,e=>{n(xe).length&&!n(x).provider&&e(m)}),U(o);var h=u(o,2),g=e=>{var r=Lo(),i=s(r),a=G(i,!0),o=u(i,2),l=s(o);{let e=P(()=>X(`organization.signing_in.groups_claim`));$(l,{get label(){return n(e)},placeholder:`groups`,get value(){return n(x).roleClaim},set value(e){n(x).roleClaim=e}})}var d=u(l,2);{let e=P(()=>X(`organization.signing_in.unmapped_role`)),t=P(()=>[[``,`member`],...n(te).filter(([e])=>e!==`member`)]);qi(d,{get label(){return n(e)},get value(){return n(x).unmappedRole},get options(){return n(t)},onchange:e=>n(x).unmappedRole=e})}U(o);var p=u(o,2),m=s(p),h=G(m,!0),g=u(m,2);ne(g);var _=u(g,2),v=G(_,!0);U(p);var S=u(p,2),w=s(S),T=G(w,!0),D=u(w,2),O=G(D,!0);U(S),U(r),c((e,t,r,i,o)=>{H(a,e),H(h,t),H(v,r),w.disabled=n(E),H(T,i),H(O,o)},[()=>n(y).find(e=>e.key===n(x).provider)?.name??n(x).provider,()=>X(`organization.signing_in.role_map`),()=>X(`organization.signing_in.role_map_hint`),()=>X(`organization.signing_in.save`),()=>X(`organization.signing_in.cancel`)]),ee(g,()=>n(x).roleMap,e=>n(x).roleMap=e),f(`click`,w,Ce),f(`click`,D,()=>C(x,b(),!0)),t(e,r)};i(h,e=>{n(x).provider&&e(g)}),t(e,a)},$$slots:{default:!0}})}var p=u(l,2);{let e=P(()=>X(`organization.signing_in.domains`));Q(p,{row:!0,get title(){return n(e)},children:(e,r)=>{var i=Bo();J(i,21,()=>n(_).domains,e=>e.domain,(e,r)=>{var i=zo(),a=s(i),o=G(a,!0),l=u(a,2),d=G(l);U(i),c(e=>{H(o,n(r).domain),H(d,`${e??``} · ${n(r).provider?.name??``}`)},[()=>n(r).verifiedAt?X(`organization.signing_in.proven`,{day:St(n(r).verifiedAt)}):X(`organization.signing_in.waiting`)]),t(e,i)},e=>{var n=jo(),r=s(n);Z(u(r),{to:`/settings`,class:`link`,children:(e,n)=>{j();var r=o();c(e=>H(r,e),[()=>X(`organization.signing_in.domains_link`)]),t(e,r)},$$slots:{default:!0}}),U(n),c(e=>H(r,`${e??``} `),[()=>X(`organization.signing_in.no_domains`)]),t(e,n)}),U(i),t(e,i)},$$slots:{default:!0}})}var m=u(p,2);{let e=P(()=>X(`organization.signing_in.provisioning`));Q(m,{row:!0,get title(){return n(e)},children:(e,r)=>{var i=Vo(),a=s(i),l=s(a);Z(u(l),{to:`/directory`,class:`link`,children:(e,n)=>{j();var r=o();c(e=>H(r,e),[()=>X(`organization.signing_in.provisioning_link`)]),t(e,r)},$$slots:{default:!0}}),U(a),U(i),c(e=>H(l,`${e??``} `),[()=>n(_).provisioningTokens.length?X(`organization.signing_in.tokens_reach`,{count:n(_).provisioningTokens.length}):X(`organization.signing_in.no_tokens`)]),t(e,i)},$$slots:{default:!0}})}t(e,r)},fe=e=>{{let r=P(()=>X(`organization.roles.title`)),a=P(()=>X(`organization.roles.lede`));Q(e,{row:!0,get title(){return n(r)},get lede(){return n(a)},children:(e,r)=>{var a=Go(),o=d(a);J(o,20,()=>n(_).roles,e=>e,(e,r)=>{var a=Wo(),o=s(a),l=G(o,!0),d=u(o,2),p=G(d,!0),m=u(d,2),g=e=>{var i=Uo();c((e,t)=>{F(i,`aria-label`,e),F(i,`title`,t),i.disabled=n(E)||n(W)[r]>0},[()=>X(`organization.roles.stop_offering`,{role:r}),()=>n(W)[r]?X(`organization.roles.held`,{count:n(W)[r]}):X(`organization.roles.stop_offering`,{role:r})]),f(`click`,i,()=>_e(r)),t(e,i)},_=P(()=>!h.includes(r));i(m,e=>{n(_)&&e(g)}),U(a),c(e=>{Y(a,1,`badge badge-lg gap-1.5 ${e??``}`),H(l,r),H(p,n(W)[r]??0)},[()=>h.includes(r)?`badge-ghost`:`badge-outline`]),t(e,a)}),U(o);var l=u(o,2);{let e=P(()=>X(`organization.roles.offer`)),t=P(()=>X(`organization.roles.add`));$(l,{get label(){return n(e)},placeholder:`support`,autocapitalize:`none`,autocorrect:`off`,spellcheck:`false`,onsave:ge,get save(){return n(t)},get value(){return n(M)},set value(e){C(M,e,!0)}})}var p=u(l,2),m=G(p,!0);c(e=>H(m,e),[()=>X(`organization.roles.hint`)]),t(e,a)},$$slots:{default:!0}})}},pe=e=>{{let t=P(()=>X(`organization.activity.lede`));Q(e,{get lede(){return n(t)},children:(e,t)=>{{let t=P(()=>X(`organization.activity.empty`));Sr(e,{get events(){return n(_).events},get empty(){return n(t)},limit:25,collapse:!0})}},$$slots:{default:!0}})}},me=e=>{var r=Ko(),a=d(r);{let e=P(()=>X(`organization.details.title`));Q(a,{row:!0,get title(){return n(e)},children:(e,r)=>{var i=Ko(),a=d(i);{let e=P(()=>X(`organization.details.name`));$(a,{get label(){return n(e)},onsave:ve,get value(){return n(A)},set value(e){C(A,e,!0)}})}Ai(u(a,2),{get rows(){return n(K)}}),t(e,i)},$$slots:{default:!0}})}var o=u(a,2),s=e=>{{let r=P(()=>X(`organization.archive.title`)),i=P(()=>ie(`organization.archive.lede`,`organization.archive.lede_tokens`));Q(e,{row:!0,get title(){return n(r)},get lede(){return n(i)},children:(e,r)=>{var i=qo(),a=G(i,!0);c(e=>{i.disabled=n(E),H(a,e)},[()=>X(`organization.archive.button`,{organization:n(_).name})]),f(`click`,i,Ee),t(e,i)},$$slots:{default:!0}})}};i(o,e=>{n(_).archivedAt||e(s)}),t(e,r)},he=e=>{{let r=e=>{var r=Xo(),a=d(r);J(a,21,()=>g,([e,t])=>e,(e,r)=>{var i=P(()=>I(n(r),2));let a=()=>n(i)[0],o=()=>n(i)[1];var s=Jo(),l=G(s,!0);c(()=>{F(s,`aria-pressed`,n(k)===a()),H(l,o())}),f(`click`,s,()=>C(k,a(),!0)),t(e,s)}),U(a);var o=u(a,2),s=e=>{var n=Yo(),r=G(n,!0);c(e=>H(r,e),[()=>X(`organization.members.add`)]),f(`click`,n,le),t(e,n)};i(o,e=>{n(_).archivedAt||e(s)}),c(e=>F(a,`aria-label`,e),[()=>X(`organization.members.who`)]),t(e,r)},p=P(()=>X(`organization.members.title`)),m=P(()=>X(`organization.members.lede`));Q(e,{get title(){return n(p)},get lede(){return n(m)},actions:r,children:(e,r)=>{var p=Ko(),m=d(p),h=e=>{var r=Zo(),i=d(r),a=s(i);{let e=P(()=>X(`organization.members.email`));$(a,{get label(){return n(e)},type:`email`,placeholder:`person@example.com`,get value(){return n(D).email},set value(e){n(D).email=e}})}var o=u(a,2);{let e=P(()=>X(`organization.members.role`));qi(o,{get label(){return n(e)},get value(){return n(D).role},get options(){return n(te)},onchange:e=>n(D).role=e})}var l=u(o,2),p=s(l),m=G(p,!0),h=u(p,2),g=G(h,!0);U(l),U(i);var _=u(i,2),v=G(_,!0);c((e,t,n,r)=>{p.disabled=e,H(m,t),H(g,n),H(v,r)},[()=>n(E)||!n(D).email.trim(),()=>X(`organization.members.invite`),()=>X(`organization.members.cancel`),()=>X(`organization.members.hint`)]),f(`click`,p,ue),f(`click`,h,()=>C(D,null)),t(e,r)};i(m,e=>{n(D)&&e(h)});var g=u(m,2);{let e=e=>{var r=V(),f=d(r);J(f,17,()=>n(re),e=>e.actor.uuid,(e,r)=>{var d=ts(),f=s(d),p=s(f),m=s(p),h=s(m);{let e=P(()=>`/actors/${n(r).actor.uuid}`);Z(h,{get to(){return n(e)},class:`link link-hover font-medium break-all`,children:(e,i)=>{j();var a=o();c(e=>H(a,e),[()=>oe(n(r))]),t(e,a)},$$slots:{default:!0}})}var g=u(h,2),_=e=>{var n=Qo(),r=G(n,!0);c(e=>H(r,e),[()=>X(`organization.members.expired`)]),t(e,n)},v=e=>{var n=$o(),r=G(n,!0);c(e=>H(r,e),[()=>X(`organization.members.invited`)]),t(e,n)};i(g,e=>{n(r).expired?e(_):n(r).pending&&e(v,1)});var y=u(g,2),b=e=>{var n=es(),r=G(n,!0);c(e=>H(r,e),[()=>X(`organization.members.last_owner`)]),t(e,n)},x=P(()=>se(n(r)));i(y,e=>{n(x)&&e(b)}),U(m);var S=u(m,2),C=G(S,!0),w=u(S,2),T=s(w),E=s(T);a(E,()=>n(r)),U(T);var D=u(T,2),O=s(D);l(O,()=>n(r)),U(D),U(w),U(p),U(f);var k=u(f),A=s(k);a(A,()=>n(r)),U(k);var M=u(k),N=s(M);l(N,()=>n(r)),U(M),U(d),c(e=>H(C,e),[()=>q(n(r))]),t(e,d)}),t(e,r)},r=P(()=>[X(`organization.members.person`),{label:X(`organization.members.role`),hide:!0},{label:``,right:!0,hide:!0}]),f=P(()=>X(`organization.members.empty.${n(k)}`));zt(g,{get columns(){return n(r)},get count(){return n(re).length},get empty(){return n(f)},rows:e,$$slots:{rows:!0}})}t(e,p)},$$slots:{actions:!0,default:!0}})}};i(ce,e=>{p()===`sign-in`?e(de):p()===`roles`?e(fe,1):p()===`activity`?e(pe,2):p()===`general`?e(me,3):e(he,-1)}),U(B),t(e,r)};i(N,e=>{n(S)&&!n(_)?e(R):n(_)?e(B,-1):e(z,1)}),t(e,T)},$$slots:{default:!0}})}B()}l([`click`]);var is=p(`<span class="badge badge-warning badge-soft badge-sm"> </span>`),as=p(`<span class="badge badge-ghost badge-sm"> </span>`),os=p(`<button type="button" class="btn btn-sm"> </button>`),ss=p(`<p class="hint w-full"> <code class="font-mono text-xs break-all"> </code> <code class="font-mono text-xs break-all"> </code></p>`),cs=p(`<li class="flex-wrap"><code class="min-w-0 truncate font-mono text-sm"> </code> <!> <div class="ml-auto flex items-center gap-1"><!> <button type="button" class="btn btn-ghost btn-xs">×</button></div> <!></li>`),ls=p(`<ul class="compact-list"></ul>`),us=p(`<button type="button" class="btn btn-ghost btn-sm"> </button>`),ds=p(`<form class="flex flex-wrap items-center gap-2"><span class="text-sm"> </span> <input class="input input-sm w-full max-w-60 font-mono" autocapitalize="none" spellcheck="false"/> <button type="submit" class="btn btn-sm"> </button> <!></form>`),fs=p(`<!> <form class="join"><input class="input input-sm join-item w-full max-w-60 font-mono" placeholder="acme.example" autocapitalize="none" spellcheck="false"/> <button type="submit" class="btn btn-sm join-item"> </button></form> <!>`,1),ps=p(`<!> <!>`,1);function ms(e,r){O(r,!0);let a=pt(),o=T(null),l=T(!1),p=T(``),m=T(``);async function h(){let e=await a.attempt(()=>r.api.query(`
332
+ query Domains {
333
+ domainClaims { domain recordName recordValue verifiedAt missingSince provider { key name } }
334
+ providers { key name }
335
+ tenant { customHost origins }
336
+ }
337
+ `));e&&(C(o,e,!0),C(m,e.tenant.customHost??``,!0))}h();let g=P(()=>[[``,X(`domains.here`)],...(n(o)?.providers??[]).map(e=>[e.key,X(`domains.to`,{name:e.name})])]),_=P(()=>(n(o)?.domainClaims??[]).filter(e=>e.verifiedAt));async function y(e,t,n){C(l,!0);let i=await a.attempt(()=>r.api.query(e,t),n);return C(l,!1),i&&await h(),i}async function b(){let e=n(p).trim();e&&await y(`mutation Claim($domain: String!) { claimDomain(domain: $domain) { domainClaim { domain } } }`,{domain:e},X(`domains.claimed`,{domain:e}))&&C(p,``)}async function x(e){C(l,!0);let t=await a.attempt(()=>r.api.query(`mutation Check($domain: String!) { checkDomain(domain: $domain) { found } }`,{domain:e.domain}));C(l,!1),t&&(t.checkDomain.found?a.say(X(`domains.proven`,{domain:e.domain})):a.blame(X(`domains.unanswered`,{name:e.recordName})),await h())}function S(e,t){y(`mutation Route($domain: String!, $provider: ID) {
338
+ updateDomainClaim(domain: $domain, provider: $provider) { domainClaim { domain } }
339
+ }`,{domain:e.domain,provider:t||null},X(t?`domains.routed_away`:`domains.routed_here`,{domain:e.domain}))}function w(e){confirm(X(`domains.release_confirm`,{domain:e.domain}))&&y(`mutation Release($domain: String!) { releaseDomain(domain: $domain) { domain } }`,{domain:e.domain},X(`domains.released`,{domain:e.domain}))}function E(e){(e||confirm(X(`domains.stop_confirm`,{host:n(o).tenant.customHost})))&&y(`mutation Serve($host: String) { serveDomain(host: $host) { tenant { customHost } } }`,{host:e},e?X(`domains.served`,{host:e}):X(`domains.unserved`))}{let r=P(()=>X(`domains.title`)),h=P(()=>X(`domains.help`));Q(e,{row:!0,get title(){return n(r)},get help(){return n(h)},children:(e,r)=>{var h=ps(),y=d(h);Cn(y,{get feedback(){return a.state}});var T=u(y,2),D=e=>{var r=fs(),a=d(r),h=e=>{var r=ls();J(r,21,()=>n(o).domainClaims,e=>e.domain,(e,r)=>{var a=cs(),o=s(a),d=G(o,!0),p=u(o,2),m=e=>{var i=is(),a=G(i,!0);c(e=>H(a,e),[()=>X(`domains.missing`,{since:wt(n(r).missingSince)})]),t(e,i)},h=e=>{var n=as(),r=G(n,!0);c(e=>H(r,e),[()=>X(`domains.unproven`)]),t(e,n)};i(p,e=>{n(r).missingSince?e(m):n(r).verifiedAt||e(h,1)});var _=u(p,2),v=s(_),y=e=>{{let t=P(()=>X(`domains.send`,{domain:n(r).domain})),i=P(()=>n(r).provider?.key??``);qi(e,{get name(){return n(t)},get value(){return n(i)},get options(){return n(g)},get disabled(){return n(l)},onchange:e=>S(n(r),e)})}},b=e=>{var i=os(),a=G(i,!0);c(e=>{i.disabled=n(l),H(a,e)},[()=>X(`domains.check`)]),f(`click`,i,()=>x(n(r))),t(e,i)};i(v,e=>{n(r).verifiedAt&&!n(r).missingSince?e(y):e(b,-1)});var C=u(v,2);U(_);var T=u(_,2),E=e=>{var i=ss(),a=s(i),o=u(a),l=G(o,!0),d=u(o,2),f=G(d,!0);U(i),c(e=>{H(a,`${e??``} `),H(l,n(r).recordName),H(f,n(r).recordValue)},[()=>X(`domains.record`)]),t(e,i)};i(T,e=>{(!n(r).verifiedAt||n(r).missingSince)&&e(E)}),U(a),c(e=>{H(d,n(r).domain),F(C,`aria-label`,e),C.disabled=n(l)},[()=>X(`domains.release`,{domain:n(r).domain})]),f(`click`,C,()=>w(n(r))),t(e,a)}),U(r),t(e,r)};i(a,e=>{n(o).domainClaims.length&&e(h)});var y=u(a,2),T=s(y);M(T);var D=u(T,2),O=G(D,!0);U(y);var k=u(y,2),A=e=>{var r=ds(),a=s(r),d=G(a,!0),p=u(a,2);M(p);var h=u(p,2),g=G(h,!0),y=u(h,2),b=e=>{var r=us(),i=G(r,!0);c(e=>{r.disabled=n(l),H(i,e)},[()=>X(`domains.stop`)]),f(`click`,r,()=>E(null)),t(e,r)};i(y,e=>{n(o).tenant.customHost&&e(b)}),U(r),c((e,t,r,i)=>{H(d,e),F(p,`aria-label`,t),F(p,`placeholder`,`login.${n(_)[0]?.domain??`acme.example`??``}`),h.disabled=r,H(g,i)},[()=>X(`domains.serve`),()=>X(`domains.serve`),()=>n(l)||!n(m).trim()||n(m).trim()===n(o).tenant.customHost,()=>X(`domains.save`)]),v(`submit`,r,e=>{e.preventDefault(),E(n(m).trim())}),ee(p,()=>n(m),e=>C(m,e)),t(e,r)};i(k,e=>{(n(_).length||n(o).tenant.customHost)&&e(A)}),c((e,t,n)=>{F(T,`aria-label`,e),D.disabled=t,H(O,n)},[()=>X(`domains.new`),()=>n(l)||!n(p).trim(),()=>X(`domains.add`)]),v(`submit`,y,e=>{e.preventDefault(),b()}),ee(T,()=>n(p),e=>C(p,e)),t(e,r)};i(T,e=>{n(o)&&e(D)}),t(e,h)},$$slots:{default:!0}})}B()}l([`click`]);var hs=p(`<li><span class="min-w-0 truncate text-sm font-medium"> </span> <code class="hint font-mono"> </code> <span class="hint"> </span> <button type="button" class="btn btn-ghost btn-xs ml-auto">×</button></li>`),gs=p(`<ul class="compact-list"></ul>`),_s=p(`<p class="hint"> </p>`),vs=p(`<!> <!> <form class="join"><input class="input input-sm join-item w-full max-w-60"/> <button type="submit" class="btn btn-sm join-item"> </button></form> <!>`,1);function ys(e,r){O(r,!0);let a=pt(),o=T(w([])),l=T(``),p=P(()=>n(l).trim().toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``));async function m(){let e=await a.attempt(()=>r.api.query(`query Groups { groups { key name memberCount } }`));e&&C(o,e.groups,!0)}m();async function h(){if(!n(p))return;let e=n(l).trim();await a.attempt(()=>r.api.query(`mutation Create($key: String!, $name: String!) { createGroup(key: $key, name: $name) { group { key } } }`,{key:n(p),name:e}),X(`groups.added`,{name:e}))&&(C(l,``),await m())}async function g(e){confirm(X(`groups.delete_confirm`,{name:e.name}))&&await a.attempt(()=>r.api.query(`mutation Delete($key: String!) { deleteGroup(key: $key) { key } }`,{key:e.key}),X(`groups.deleted`,{name:e.name}))&&await m()}{let r=P(()=>X(`groups.title`)),m=P(()=>X(`groups.lede`));Q(e,{row:!0,get title(){return n(r)},get help(){return n(m)},children:(e,r)=>{var m=vs(),_=d(m);Cn(_,{get feedback(){return a.state}});var y=u(_,2),b=e=>{var r=gs();J(r,21,()=>n(o),e=>e.key,(e,r)=>{var i=hs(),a=s(i),o=G(a,!0),l=u(a,2),d=G(l,!0),p=u(l,2),m=G(p,!0),h=u(p,2);U(i),c((e,t)=>{H(o,n(r).name),H(d,n(r).key),H(m,e),F(h,`aria-label`,t)},[()=>X(`groups.people`,{count:n(r).memberCount}),()=>X(`groups.delete`,{name:n(r).name})]),f(`click`,h,()=>g(n(r))),t(e,i)}),U(r),t(e,r)};i(y,e=>{n(o).length&&e(b)});var x=u(y,2),S=s(x);M(S);var w=u(S,2),T=G(w,!0);U(x);var E=u(x,2),D=e=>{var r=_s(),i=G(r,!0);c(e=>H(i,e),[()=>X(`groups.key`,{key:n(p)})]),t(e,r)};i(E,e=>{n(p)&&e(D)}),c((e,t,r)=>{F(S,`aria-label`,e),F(S,`placeholder`,t),w.disabled=!n(p),H(T,r)},[()=>X(`groups.new`),()=>X(`groups.new`),()=>X(`groups.add`)]),v(`submit`,x,e=>{e.preventDefault(),h()}),ee(S,()=>n(l),e=>C(l,e)),t(e,m)},$$slots:{default:!0}})}B()}l([`click`]);var bs=p(`<div class="alert alert-error alert-soft text-sm" role="alert"> </div>`),xs=p(`<!> <!>`,1),Ss=p(`<img alt="" width="48" height="48" class="rounded-lg"/>`),Cs=p(`<button type="button" class="btn btn-ghost btn-sm"> </button>`),ws=p(`<div class="flex flex-wrap items-center gap-3"><!> <label class="btn btn-sm"> <input type="file" class="hidden" accept="image/png,image/jpeg,image/webp,image/gif"/></label> <!></div> <div class="flex flex-wrap items-center gap-3"><label class="flex items-center gap-2 text-sm"><input type="color"/> </label> <!></div>`,1),Ts=p(`<div class="ml-auto flex gap-1"><button type="button" class="btn btn-xs"> </button> <button type="button" class="btn btn-xs btn-ghost"> </button></div>`),Es=p(`<li class="flex-wrap"><code class="font-mono text-sm"> </code> <span> </span> <span class="hint text-xs"> <!></span> <!></li>`),Ds=p(`<ul class="compact-list"></ul> <div class="flex flex-wrap items-center gap-2"><!> <button type="button" class="btn btn-sm"> </button> <button type="button" class="btn btn-sm btn-ghost"> </button></div>`,1),Os=p(`<!> <div class="grid gap-4"><!> <!> <!> <!> <!> <!> <!> <!></div>`,1);function ks(e,r){O(r,!0);let a=[[30,X(`settings.retention.days_30`)],[90,X(`settings.retention.days_90`)],[180,X(`settings.retention.days_180`)],[365,X(`settings.retention.a_year`)],[1095,X(`settings.retention.three_years`)],[2555,X(`settings.retention.seven_years`)]],l=(e,t)=>!t||e.some(([e])=>e===t)?e:[...e,[t,X(`settings.after_days`,{days:t})]],p={staged:`badge-warning`,active:`badge-success`,retiring:`badge-info`,retired:`badge-ghost`},m=pt(),h=T(null),g=T(``),_=T(!0);async function v(){C(_,!0);try{C(h,await r.api.query(`
340
+ query Tenant {
341
+ tenant {
342
+ uuid subdomain name dynamicRegistration dynamicClientScopes createdAt mails accentColor logoUrl keyRotationDays
343
+ eventRetentionDays
344
+ signingKeys { kid algorithm activatedAt retiredAt state }
345
+ }
346
+ viewer { identifier scopes }
347
+ namespaces {
348
+ name resource claimedAt releasable
349
+ client { clientId name }
350
+ }
351
+ scopesSupported
352
+ }
353
+ `),!0),C(g,n(h).tenant.name,!0)}catch(e){m.blame(e)}finally{C(_,!1)}}v();async function y(e,t){await m.attempt(()=>r.api.query(`mutation Update(
354
+ $name: String, $dynamicClientScopes: [String!], $dynamicRegistration: String,
355
+ $eventRetentionDays: Int, $accentColor: String, $keyRotationDays: Int
356
+ ) {
357
+ updateTenant(
358
+ name: $name
359
+ dynamicClientScopes: $dynamicClientScopes
360
+ dynamicRegistration: $dynamicRegistration
361
+ eventRetentionDays: $eventRetentionDays
362
+ accentColor: $accentColor
363
+ keyRotationDays: $keyRotationDays
364
+ ) { tenant { name } }
365
+ }`,e),t)&&await v()}async function b(e){let t=e.currentTarget,n=t.files?.[0];n&&(await x(`mutation Logo($logo: Upload!) { uploadTenantLogo(logo: $logo) { tenant { logoUrl } } }`,{logo:n},X(`settings.branding.logo_updated`)),t.value=``)}async function x(e,t,n){await m.attempt(()=>r.api.query(e,t),n)&&await v()}let S=()=>x(`mutation Stage { stageSigningKey { signingKey { kid } } }`,{},X(`settings.keys.staged_notice`));function w(e){if(confirm(X(`settings.keys.activate_confirm`)))return x(`mutation Activate($kid: ID!) { activateSigningKey(kid: $kid) { signingKey { kid } } }`,{kid:e},X(`settings.keys.activated_notice`))}function E(e){if(confirm(X(`settings.keys.discard_confirm`)))return x(`mutation Discard($kid: ID!) { discardSigningKey(kid: $kid) { kid } }`,{kid:e},X(`settings.keys.discarded`))}function D(){if(confirm(X(`settings.keys.rotate_confirm`)))return x(`mutation Rotate { rotateSigningKey { signingKey { kid } } }`,{},X(`settings.keys.rotated`))}var k=V(),A=d(k),j=e=>{it(e,{})},N=e=>{var n=bs(),r=G(n,!0);c(()=>H(r,m.state.failure)),t(e,n)},I=e=>{{let _=P(()=>X(`settings.title`));kn(e,{get title(){return n(_)},children:(e,_)=>{var T=Os(),O=d(T);Cn(O,{get feedback(){return m.state}});var k=u(O,2),A=s(k);{let e=P(()=>X(`settings.tenant.title`)),i=P(()=>X(`settings.tenant.help`));Q(A,{row:!0,get title(){return n(e)},get help(){return n(i)},children:(e,i)=>{var a=xs(),o=d(a);{let e=P(()=>X(`settings.tenant.name`));$(o,{get label(){return n(e)},onsave:()=>y({name:n(g)},X(`settings.tenant.renamed`)),get value(){return n(g)},set value(e){C(g,e,!0)}})}var s=u(o,2);{let e=P(()=>[{term:X(`settings.tenant.subdomain`),value:n(h).tenant.subdomain,mono:!0},{term:X(`settings.tenant.issuer`),value:r.boot.issuer,mono:!0},{term:X(`settings.tenant.resource`),value:r.boot.resource,mono:!0},{term:X(`settings.tenant.since`),value:St(n(h).tenant.createdAt)}]);Ai(s,{get rows(){return n(e)}})}t(e,a)},$$slots:{default:!0}})}var j=u(A,2);{let e=P(()=>X(`settings.branding.title`)),r=P(()=>X(`settings.branding.help`));Q(j,{row:!0,get title(){return n(e)},get help(){return n(r)},children:(e,r)=>{var a=ws(),o=d(a),l=s(o),p=e=>{var r=Ss();c(()=>F(r,`src`,n(h).tenant.logoUrl)),t(e,r)};i(l,e=>{n(h).tenant.logoUrl&&e(p)});var m=u(l,2),g=s(m),_=u(g);U(m);var v=u(m,2),S=e=>{var n=Cs(),r=G(n,!0);c(e=>H(r,e),[()=>X(`settings.branding.remove`)]),f(`click`,n,()=>x(`mutation { removeTenantLogo { tenant { logoUrl } } }`,{},X(`settings.branding.logo_removed`))),t(e,n)};i(v,e=>{n(h).tenant.logoUrl&&e(S)}),U(o);var C=u(o,2),w=s(C),T=s(w);M(T);var E=u(T);U(w);var D=u(w,2),O=e=>{var n=Cs(),r=G(n,!0);c(e=>H(r,e),[()=>X(`settings.branding.own`)]),f(`click`,n,()=>y({accentColor:``},X(`settings.branding.color_reset`))),t(e,n)};i(D,e=>{n(h).tenant.accentColor&&e(O)}),U(C),c((e,t)=>{H(g,`${e??``} `),te(T,n(h).tenant.accentColor??`#b3380f`),H(E,` ${t??``}`)},[()=>n(h).tenant.logoUrl?X(`settings.branding.change_logo`):X(`settings.branding.upload_logo`),()=>X(`settings.branding.accent`)]),f(`change`,_,b),f(`change`,T,e=>y({accentColor:e.currentTarget.value},X(`settings.branding.color_updated`))),t(e,a)},$$slots:{default:!0}})}var N=u(j,2);{let e=P(()=>X(`settings.retention.title`)),t=P(()=>X(`settings.retention.help`));Q(N,{row:!0,get title(){return n(e)},get help(){return n(t)},children:(e,t)=>{{let t=P(()=>l(a,n(h).tenant.eventRetentionDays));qi(e,{get value(){return n(h).tenant.eventRetentionDays},get options(){return n(t)},onchange:e=>y({eventRetentionDays:Number(e)},X(`settings.retention.updated`))})}},$$slots:{default:!0}})}var I=u(N,2);{let e=P(()=>X(`settings.registration.title`)),r=P(()=>X(`settings.registration.help`));Q(I,{row:!0,get title(){return n(e)},get help(){return n(r)},children:(e,r)=>{var a=xs(),o=d(a);{let e=P(()=>[[`off`,X(`settings.registration.off`)],[`anything`,X(`settings.registration.on`)],[`bounded`,X(`settings.registration.bounded`)]]);qi(o,{get value(){return n(h).tenant.dynamicRegistration},get options(){return n(e)},onchange:e=>y({dynamicRegistration:e},X(`settings.registration.updated`))})}var s=u(o,2),c=e=>{{let t=P(()=>n(h).tenant.dynamicClientScopes??[]);hn(e,{get value(){return n(t)},get available(){return n(h).scopesSupported},onchange:e=>y({dynamicClientScopes:e},X(`settings.registration.ceiling_updated`))})}};i(s,e=>{n(h).tenant.dynamicRegistration===`bounded`&&e(c)}),t(e,a)},$$slots:{default:!0}})}var L=u(I,2),R=e=>{Aa(e,{get api(){return r.api},get rows(){return n(h).namespaces},onreleased:v,showClient:!0,row:!0})};i(L,e=>{n(h).namespaces.length&&e(R)});var z=u(L,2);{let e=P(()=>X(`settings.keys.title`)),r=P(()=>X(`settings.keys.help`));Q(z,{row:!0,get title(){return n(e)},get help(){return n(r)},children:(e,r)=>{var a=Ds(),l=d(a);J(l,21,()=>n(h).tenant.signingKeys,e=>e.kid,(e,r)=>{var a=Es(),l=s(a),d=G(l,!0),m=u(l,2),h=G(m,!0),g=u(m,2),_=s(g),v=u(_),y=e=>{var i=o();c(e=>H(i,e),[()=>X(`settings.keys.until`,{day:St(n(r).retiredAt)})]),t(e,i)},b=e=>{var i=o();c(e=>H(i,e),[()=>St(n(r).activatedAt,X(`settings.keys.not_yet`))]),t(e,i)};i(v,e=>{n(r).state===`retiring`?e(y):e(b,-1)}),U(g);var x=u(g,2),S=e=>{var i=Ts(),a=s(i),o=G(a,!0),l=u(a,2),d=G(l,!0);U(i),c((e,t)=>{H(o,e),H(d,t)},[()=>X(`settings.keys.activate`),()=>X(`settings.keys.discard`)]),f(`click`,a,()=>w(n(r).kid)),f(`click`,l,()=>E(n(r).kid)),t(e,i)};i(x,e=>{n(r).state===`staged`&&e(S)}),U(a),c((e,t)=>{H(d,e),Y(m,1,`badge badge-sm ${p[n(r).state]??``}`),H(h,t),H(_,`${n(r).algorithm??``} · `)},[()=>n(r).kid.slice(0,8),()=>p[n(r).state]?X(`settings.keys.states.${n(r).state}`):n(r).state]),t(e,a)}),U(l);var m=u(l,2),g=s(m);{let e=P(()=>X(`settings.keys.schedule`)),t=P(()=>String(n(h).tenant.keyRotationDays??0)),r=P(()=>[0,30,90,180,365].map(e=>[String(e),e?X(`settings.keys.every`,{count:e}):X(`settings.keys.by_hand`)]));qi(g,{get name(){return n(e)},get value(){return n(t)},get options(){return n(r)},onchange:e=>y({keyRotationDays:Number(e)},X(`settings.keys.scheduled`))})}var _=u(g,2),v=G(_,!0),b=u(_,2),x=G(b,!0);U(m),c((e,t)=>{H(v,e),H(x,t)},[()=>X(`settings.keys.stage`),()=>X(`settings.keys.rotate`)]),f(`click`,_,S),f(`click`,b,D),t(e,a)},$$slots:{default:!0}})}var B=u(z,2);ys(B,{get api(){return r.api}}),ms(u(B,2),{get api(){return r.api}}),U(k),t(e,T)},$$slots:{default:!0}})}};i(A,e=>{n(_)&&!n(h)?e(j):n(h)?e(I,-1):e(N,1)}),t(e,k),B()}l([`change`,`click`]);var As=m(`<path></path>`),js=m(`<rect class="chart-hit" y="0" tabindex="-1" role="presentation"></rect>`),Ms=p(`<div class="chart-tip" aria-hidden="true"><strong> </strong> <span> </span></div>`),Ns=p(`<span> </span>`),Ps=p(`<tr><td> </td><td> </td></tr>`),Fs=p(`<figure class="chart"><figcaption class="chart-head"><span class="sr-only"> </span> <span class="chart-peak"> </span></figcaption> <div class="chart-plot tray"><svg class="chart-svg" role="img"><line class="chart-base" x1="0"></line><!><!></svg> <!></div> <div class="chart-axis"></div> <table class="sr-only"><caption> </caption><thead><tr><th> </th><th> </th></tr></thead><tbody></tbody></table></figure>`);function Is(e,r){O(r,!0);let a=P(()=>Math.max(1,...r.points.map(e=>e.value))),o=P(()=>720/Math.max(r.points.length,1)),l=P(()=>Math.max(n(o)-2,1)),d=P(()=>r.points.reduce((e,t)=>e+t.value,0)),f=T(null);function p(e){return(e+.5)/Math.max(r.points.length,1)*100}function m(e,t){let r=e===0?2:Math.max(e/n(a)*138,3),i=146-r,o=Math.min(2,n(l)/2,r);return[`M ${t} 146`,`L ${t} ${i+o}`,`Q ${t} ${i} ${t+o} ${i}`,`L ${t+n(l)-o} ${i}`,`Q ${t+n(l)} ${i} ${t+n(l)} ${i+o}`,`L ${t+n(l)} 146`,`Z`].join(` `)}let h=P(()=>r.points.length?[0,Math.floor((r.points.length-1)/2),r.points.length-1].filter((e,t,n)=>n.indexOf(e)===t).map(e=>({at:e,point:r.points[e]})):[]);var g=Fs(),_=s(g),y=s(_),b=G(y,!0),x=u(y,2),S=G(x,!0);U(_);var w=u(_,2),E=s(w);F(E,`viewBox`,`0 0 720 168`);var D=s(E);F(D,`y1`,146),F(D,`x2`,720),F(D,`y2`,146);var k=u(D);J(k,19,()=>r.points,e=>e.key,(e,r,i)=>{var a=As();let s;c(e=>{s=Y(a,0,`chart-bar`,null,s,{"chart-bar-idle":n(r).value===0,"chart-bar-on":n(f)?.index===n(i)}),F(a,`d`,e)},[()=>m(n(r).value,n(i)*n(o))]),t(e,a)});var A=u(k);J(A,19,()=>r.points,e=>e.key,(e,r,i)=>{var a=js();F(a,`height`,146),c(()=>{F(a,`x`,n(i)*n(o)),F(a,`width`,n(o))}),v(`mouseenter`,a,()=>C(f,{...n(r),index:n(i)},!0)),v(`mouseleave`,a,()=>C(f,null)),v(`focus`,a,()=>C(f,{...n(r),index:n(i)},!0)),v(`blur`,a,()=>C(f,null)),t(e,a)}),U(E);var j=u(E,2),M=e=>{var r=Ms(),i=s(r),a=G(i,!0),o=u(i),l=u(o),d=G(l,!0);U(r),c((e,t)=>{le(r,`--at: ${e??``}%`),H(a,n(f).value),H(o,` ${t??``} `),H(d,n(f).label)},[()=>p(n(f).index),()=>X(`ui.bar_chart.unit`,{count:n(f).value})]),t(e,r)};i(j,e=>{n(f)&&e(M)}),U(w);var N=u(w,2);J(N,21,()=>n(h),e=>e.at,(e,r)=>{var i=Ns(),a=G(i,!0);c(e=>{le(i,`--at: ${e??``}%`),H(a,n(r).point.label)},[()=>p(n(r).at)]),t(e,i)}),U(N);var I=u(N,2),L=s(I),R=G(L,!0),z=u(L),V=s(z),ee=s(V),te=G(ee,!0),ne=u(ee),W=G(ne,!0);U(V),U(z);var re=u(z);J(re,21,()=>r.points,e=>e.key,(e,r)=>{var i=Ps(),a=s(i),o=G(a,!0),l=u(a),d=G(l,!0);U(i),c(()=>{H(o,n(r).label),H(d,n(r).value)}),t(e,i)}),U(re),U(I),U(g),c((e,t,n,i)=>{H(b,r.label),H(S,e),F(E,`aria-label`,t),H(R,r.label),H(te,n),H(W,i)},[()=>X(`ui.bar_chart.peak`,{peak:n(a)}),()=>X(`ui.bar_chart.summary`,{label:r.label,total:n(d),days:r.points.length,peak:n(a)}),()=>X(`ui.bar_chart.day`),()=>X(`ui.bar_chart.units`)]),t(e,g),B()}var Ls=p(`<div class="alert alert-error alert-soft text-sm" role="alert"><span> </span> <button type="button" class="btn btn-sm"> </button></div>`);function Rs(e,n){O(n,!0);let r=w({loading:!0,failure:null,data:null});async function a(){r.loading=!0,r.failure=null;try{r.data=await n.load()}catch(e){r.failure=e.message}finally{r.loading=!1}}a();var o=V(),l=d(o),p=e=>{it(e,{})},m=e=>{var n=Ls(),i=s(n),o=G(i,!0),l=u(i,2),d=G(l,!0);U(n),c(e=>{H(o,r.failure),H(d,e)},[()=>X(`ui.retry`)]),f(`click`,l,a),t(e,n)},h=e=>{var i=V(),o=d(i);y(o,()=>n.children,()=>r.data,()=>a),t(e,i)};i(l,e=>{r.loading?e(p):r.failure?e(m,1):e(h,-1)}),t(e,o),B()}l([`click`]);var zs=p(`<div class="alert alert-error alert-soft text-sm" role="alert"> </div>`),Bs=p(`<span class="hint"> </span>`),Vs=p(`<div role="status"><div class="callout-words"><strong> </strong> <!></div> <div class="callout-actions"><!></div></div>`),Hs=p(`<div class="callout callout-quiet"><div class="callout-words"><strong> </strong> <span class="hint"> </span></div> <div class="callout-actions"><!> <button type="button" class="btn btn-ghost btn-sm"> </button></div></div>`),Us=p(`<div class="flex flex-col gap-2"><!> <!></div>`),Ws=p(`<button type="button"> </button>`),Gs=p(`<div class="range" role="group"></div>`),Ks=p(`<td><!></td> <td class="text-right text-sm whitespace-nowrap"><!></td>`,1),qs=p(`<p class="hint"> </p>`),Js=p(`<!> <!> <div class="dash"><div class="dash-main"><!></div> <div class="dash-side"><!></div></div> <!>`,1);function Ys(e,r){O(r,!0);let l=[7,30,90],p=new Intl.DateTimeFormat(void 0,{day:`numeric`,month:`short`}),m=`masks:manage:skipped`,h=T(null),g=T(null),_=T(30),v=T(w([]));try{C(v,JSON.parse(localStorage.getItem(m)??`[]`),!0)}catch{}function y(e){C(v,[...n(v),e],!0);try{localStorage.setItem(m,JSON.stringify(n(v)))}catch{}}let b=P(()=>n(h)?[{to:`/actors`,label:X(`settings.counts.actors`),value:n(h).tally.actors},{to:`/clients`,label:X(`settings.counts.clients`),value:n(h).tally.clients},{to:`/organizations`,label:X(`settings.counts.organizations`),value:n(h).tally.organizations},{to:`/actors#devices`,label:X(`settings.counts.devices`),value:n(h).tally.devices}]:[]),x=P(()=>n(h)?[n(h).waiting&&{key:`waiting`,tone:`warn`,title:X(`settings.needs.waiting`,{count:n(h).waiting}),to:`/actors?lens=waiting`},n(h).help&&{key:`help`,tone:`warn`,title:X(`settings.needs.help`,{count:n(h).help}),to:`/actors?lens=help`},n(h).worrying&&{key:`worrying`,tone:`bad`,title:X(`settings.needs.worrying`,{count:n(h).worrying}),detail:X(`settings.needs.latest`,{label:n(h).gravest[0].label,when:wt(n(h).gravest[0].createdAt)}),to:`/activity?grave=1`}].filter(Boolean):[]),S=P(()=>n(h)?[!n(h).tenant.mails&&{key:`mail`,title:X(`settings.starting.mail.title`),detail:X(`settings.starting.mail.detail`),to:`/messages`,action:X(`settings.starting.mail.action`)},n(h).tally.clients===0&&{key:`client`,title:X(`settings.starting.client.title`),detail:X(`settings.starting.client.detail`),to:`/clients`,action:X(`settings.starting.client.action`)},n(h).tally.actors<=1&&{key:`invite`,title:X(`settings.starting.invite.title`),detail:X(`settings.starting.invite.detail`),to:`/actors`,action:X(`settings.starting.invite.action`)}].filter(e=>e&&!n(v).includes(e.key)):[]),E=e=>e.map(e=>({key:e.date,value:e.signIns,label:p.format(new Date(`${e.date}T00:00:00`))}));async function D(){try{C(h,await r.api.query(`
366
+ query Overview($since: ISO8601DateTime!) {
367
+ tenant { name mails }
368
+ tally { actors clients devices organizations }
369
+ waiting: actorCount(pendingApproval: true)
370
+ help: actorCount(recoveryRequested: true)
371
+ worrying: eventCount(grave: true, since: $since)
372
+ gravest: events(grave: true, since: $since, limit: 1) { id label createdAt }
373
+ latest: events(limit: 40) {
374
+ id action label createdAt ipAddress details
375
+ actor { uuid identifier }
376
+ by { uuid identifier }
377
+ client { clientId name }
378
+ device { id label }
379
+ }
380
+ organizations(limit: 5) { key name memberCount ownerCount pendingCount }
381
+ }
382
+ `,{since:new Date(Date.now()-864e5).toISOString()}),!0)}catch(e){C(g,e.message,!0)}}D();var k=V(),A=d(k),M=e=>{it(e,{})},I=e=>{var r=zs(),i=G(r,!0);c(()=>H(i,n(g))),t(e,r)},L=e=>{kn(e,{get title(){return n(h).tenant.name},get id(){return r.boot.issuer},hero:!0,children:(e,p)=>{var m=Js(),g=d(m),v=e=>{var r=Us(),a=s(r);J(a,17,()=>n(x),e=>e.key,(e,r)=>{var a=Vs(),l=s(a),d=s(l),f=G(d,!0),p=u(d,2),m=e=>{var i=Bs(),a=G(i,!0);c(()=>H(a,n(r).detail)),t(e,i)};i(p,e=>{n(r).detail&&e(m)}),U(l);var h=u(l,2);Z(s(h),{get to(){return n(r).to},class:`btn btn-sm`,children:(e,n)=>{j();var r=o();c(e=>H(r,e),[()=>X(`settings.needs.review`)]),t(e,r)},$$slots:{default:!0}}),U(h),U(a),c(()=>{Y(a,1,`callout callout-${n(r).tone??``}`),H(f,n(r).title)}),t(e,a)});var l=u(a,2);J(l,17,()=>n(S),e=>e.key,(e,r)=>{var i=Hs(),a=s(i),l=s(a),d=G(l,!0),p=u(l,2),m=G(p,!0);U(a);var h=u(a,2),g=s(h);Z(g,{get to(){return n(r).to},class:`btn btn-sm`,children:(e,i)=>{j();var a=o();c(()=>H(a,n(r).action)),t(e,a)},$$slots:{default:!0}});var _=u(g,2),v=G(_,!0);U(h),U(i),c(e=>{H(d,n(r).title),H(m,n(r).detail),H(v,e)},[()=>X(`settings.starting.hide`)]),f(`click`,_,()=>y(n(r).key)),t(e,i)}),U(r),t(e,r)};i(g,e=>{(n(x).length||n(S).length)&&e(v)});var w=u(g,2);Oo(w,{get counts(){return n(b)}});var T=u(w,2),D=s(T),O=s(D);{let e=e=>{var r=Gs();J(r,20,()=>l,e=>e,(e,r)=>{var i=Ws(),a=G(i,!0);c(e=>{F(i,`aria-pressed`,n(_)===r),H(a,e)},[()=>X(`settings.sign_ins.span`,{days:r})]),f(`click`,i,()=>C(_,r,!0)),t(e,i)}),U(r),c(e=>F(r,`aria-label`,e),[()=>X(`settings.sign_ins.range`)]),t(e,r)},i=P(()=>X(`settings.sign_ins.title`));Q(O,{get title(){return n(i)},actions:e,children:(e,i)=>{var o=V(),s=d(o);a(s,()=>n(_),e=>{Rs(e,{load:()=>r.api.query(`
383
+ query Activity($days: Int) {
384
+ activity(days: $days) { date signIns }
385
+ }
386
+ `,{days:n(_)}),children:(e,t=N)=>{{let r=P(()=>E(t().activity)),i=P(()=>X(`settings.sign_ins.chart`));Is(e,{get points(){return n(r)},get label(){return n(i)}})}},$$slots:{default:!0}})}),t(e,o)},$$slots:{actions:!0,default:!0}})}U(D);var k=u(D,2),A=s(k);{let e=e=>{Z(e,{to:`/organizations`,class:`btn btn-ghost btn-sm`,children:(e,r)=>{j();var i=o();c(e=>H(i,e),[()=>n(h).tally.organizations>5?X(`settings.organizations.all_count`,{count:n(h).tally.organizations}):X(`settings.organizations.all`)]),t(e,i)},$$slots:{default:!0}})},r=P(()=>X(`settings.organizations.title`));Q(A,{get title(){return n(r)},actions:e,children:(e,r)=>{var a=V(),o=d(a),l=e=>{{let r=e=>{var r=V(),i=d(r);J(i,17,()=>n(h).organizations,e=>e.key,(e,r)=>{{let i=P(()=>`/organizations/${n(r).key}`);Pt(e,{get to(){return n(i)},children:(e,i)=>{var a=Ks(),o=d(a);fo(s(o),{get organization(){return n(r)}}),U(o);var c=u(o,2);ho(s(c),{get organization(){return n(r)},class:`flex flex-col items-end`}),U(c),t(e,a)},$$slots:{default:!0}})}}),t(e,r)},i=P(()=>[X(`settings.organizations.organization`),{label:X(`settings.organizations.members`),right:!0}]);zt(e,{get columns(){return n(i)},get count(){return n(h).organizations.length},rows:r,$$slots:{rows:!0}})}},f=e=>{var n=qs(),r=G(n,!0);c(e=>H(r,e),[()=>X(`settings.organizations.empty`)]),t(e,n)};i(o,e=>{n(h).organizations.length?e(l):e(f,-1)}),t(e,a)},$$slots:{actions:!0,default:!0}})}U(k),U(T);var M=u(T,2);{let e=e=>{Z(e,{to:`/activity`,class:`btn btn-ghost btn-sm`,children:(e,n)=>{j();var r=o();c(e=>H(r,e),[()=>X(`settings.recent.all`)]),t(e,r)},$$slots:{default:!0}})},r=P(()=>X(`settings.recent.title`));Q(M,{get title(){return n(r)},actions:e,children:(e,t)=>{{let t=P(()=>X(`settings.recent.empty`));Sr(e,{get events(){return n(h).latest},get empty(){return n(t)},limit:8,collapse:!0})}},$$slots:{actions:!0,default:!0}})}t(e,m)},$$slots:{default:!0}})};i(A,e=>{!n(h)&&!n(g)?e(M):n(h)?e(L,-1):e(I,1)}),t(e,k),B()}l([`click`]);var Xs=p(`<nav class="settings-tabs"><!> <!></nav>`);function Zs(e,r){O(r,!0);var i=Xs(),a=s(i);{let e=P(()=>r.part===`log`?`settings-tab-on`:``);Z(a,{to:`/activity`,get class(){return`settings-tab ${n(e)??``}`},children:(e,n)=>{j();var r=o();c(e=>H(r,e),[()=>X(`activity.parts.log`)]),t(e,r)},$$slots:{default:!0}})}var l=u(a,2);{let e=P(()=>r.part===`streams`?`settings-tab-on`:``);Z(l,{to:`/activity/streams`,get class(){return`settings-tab ${n(e)??``}`},children:(e,n)=>{j();var r=o();c(e=>H(r,e),[()=>X(`activity.parts.streams`)]),t(e,r)},$$slots:{default:!0}})}U(i),c(e=>F(i,`aria-label`,e),[()=>X(`activity.title`)]),t(e,i),B()}var Qs=p(`<span> <!> </span>`),$s=p(`<span> </span>`),ec=p(`<div class="alert alert-info alert-soft flex-wrap items-center gap-3 text-sm" role="status"><!> <!></div>`),tc=p(`<option> </option>`),nc=p(`<div class="flex flex-wrap items-end gap-4"><label class="flex flex-col gap-1.5"><span class="legend"> </span> <select class="select select-sm w-full max-w-xs"><option> </option><!></select></label> <label class="flex items-center gap-2 pb-1 text-sm"><input type="checkbox" class="toggle toggle-sm"/> </label> <div class="flex flex-col gap-1.5 md:ml-auto"><span class="legend flex items-center gap-2"> <!></span> <div class="flex flex-wrap items-center gap-2"><input class="input input-sm w-auto" type="date"/> <span class="hint">–</span> <input class="input input-sm w-auto" type="date"/> <button type="button" class="btn btn-sm"> </button></div></div></div>`),rc=p(`<!> <!>`,1),ic=p(`<!> <!> <!> <!> <!>`,1);function ac(e,r){O(r,!0);let a=ut(),l=pt(),p=Qe(),m=T(w([])),h=T(w([])),g=T(!1),_=()=>new Date().toISOString().slice(0,10),v=w({from:(e=>new Date(Date.now()-e*864e5).toISOString().slice(0,10))(30),to:_()}),y=T(``),b=T(p.query.get(`grave`)===`1`),D=T(!0),k=T(null),A=P(()=>p.query.get(`actor`)),N=P(()=>p.query.get(`client`)),I=P(()=>!!(n(A)||n(N)));async function R(){C(D,!0);let e=await l.attempt(()=>r.api.query(`
387
+ query Activity(
388
+ $action: String, $grave: Boolean, $afterId: ID, $limit: Int,
389
+ $actor: ID, $client: ID
390
+ ) {
391
+ events(
392
+ action: $action, grave: $grave, afterId: $afterId, limit: $limit,
393
+ actor: $actor, client: $client
394
+ ) {
395
+ id action label createdAt ipAddress userAgent details
396
+ actor { uuid identifier }
397
+ by { uuid identifier }
398
+ client { clientId name }
399
+ device { id label }
400
+ }
401
+ eventCount(action: $action, grave: $grave, actor: $actor, client: $client)
402
+ eventActions { action label }
403
+ }
404
+ `,{action:n(y)||null,grave:n(b),afterId:a.cursor,limit:a.size,actor:n(A),client:n(N)}));C(D,!1),e&&(C(h,e.eventActions,!0),C(m,e.events,!0),a.counted(e.eventCount))}function z(e){e===`forward`?a.forward(n(m).at(-1)?.id):a.back(),R()}async function V(){if(C(k,null),n(A)){let e=await r.api.query(`query About($uuid: ID!) { actor(uuid: $uuid) { uuid identifier } }`,{uuid:n(A)}).catch(()=>null);e?.actor&&C(k,{label:e.actor.identifier,to:`/actors/${e.actor.uuid}`,noun:X(`activity.nouns.actor`)},!0);return}if(!n(N))return;let e=await r.api.query(`query About($clientId: ID!) { client(clientId: $clientId) { clientId name } }`,{clientId:n(N)}).catch(()=>null);e?.client&&C(k,{label:e.client.name,to:`/clients/${e.client.clientId}`,noun:X(`activity.nouns.client`)},!0)}x(()=>{n(A),n(N),S(()=>{a.reset(),R(),V()})});function te(e){C(y,e,!0),a.reset(),R()}function ne(e){C(b,e,!0),e&&C(y,``),a.reset(),R()}async function W(){C(g,!0);let e=await l.attempt(()=>r.api.query(`mutation Export($from: ISO8601DateTime!, $to: ISO8601DateTime!, $action: String, $actor: ID) {
405
+ exportEvents(from: $from, to: $to, action: $action, actor: $actor) { url count }
406
+ }`,{from:new Date(`${v.from}T00:00:00`).toISOString(),to:new Date(new Date(`${v.to}T00:00:00`).getTime()+864e5).toISOString(),action:n(y)||null,actor:n(A)||null}));C(g,!1),e&&(l.say(X(`activity.downloading`,{count:e.exportEvents.count})),location.assign(e.exportEvents.url))}{let r=P(()=>X(`activity.title`));kn(e,{get title(){return n(r)},children:(e,r)=>{var p=ic(),x=d(p);Zs(x,{part:`log`});var S=u(x,2);Cn(S,{get feedback(){return l.state}});var C=u(S,2),w=e=>{var r=ec(),a=s(r),l=e=>{var r=Qs(),i=s(r),a=u(i);Z(a,{get to(){return n(k).to},class:`link font-medium`,children:(e,r)=>{j();var i=o();c(()=>H(i,n(k).label)),t(e,i)},$$slots:{default:!0}});var l=u(a,1,!0);U(r),c((e,t)=>{H(i,`${e??``} `),H(l,t)},[()=>X(`activity.involves`,{noun:n(k).noun}),()=>X(`activity.involves_end`)]),t(e,r)},d=e=>{var r=$s(),i=G(r,!0);c(e=>H(i,e),[()=>X(n(A)?`activity.gone.actor`:`activity.gone.client`)]),t(e,r)};i(a,e=>{n(k)?e(l):e(d,-1)}),Z(u(a,2),{to:`/activity`,class:`btn btn-sm`,children:(e,n)=>{j();var r=o();c(e=>H(r,e),[()=>X(`activity.everything`)]),t(e,r)},$$slots:{default:!0}}),U(r),t(e,r)};i(C,e=>{n(I)&&e(w)});var T=u(C,2);Q(T,{children:(e,r)=>{var i=nc(),a=s(i),o=s(a),l=G(o,!0),d=u(o,2),p=s(d),m=G(p,!0);p.value=p.__value=``;var x=u(p);J(x,17,()=>n(h),e=>e.action,(e,r)=>{var i=tc(),a=G(i,!0),o={};c(()=>{H(a,n(r).label),o!==(o=n(r).action)&&(i.value=(i.__value=o)??``)}),t(e,i)}),U(d);var S;L(d),U(a);var C=u(a,2),w=s(C);M(w);var T=u(w);U(C);var D=u(C,2),O=s(D),k=s(O),A=u(k);{let e=P(()=>X(`activity.export.lede`)),t=P(()=>X(`activity.export.title`));Dt(A,{get text(){return n(e)},get label(){return n(t)}})}U(O);var j=u(O,2),N=s(j);M(N);var I=u(N,4);M(I);var R=u(I,2),z=G(R,!0);U(j),U(D),U(i),c((e,t,r,i,a,o,s,c)=>{H(l,e),d.disabled=n(b),H(m,t),S!==(S=n(y))&&(d.value=(d.__value=S)??``,E(d,S)),ie(w,n(b)),H(T,` ${r??``}`),H(k,`${i??``} `),F(N,`aria-label`,a),F(N,`max`,v.to),F(I,`aria-label`,o),F(I,`min`,v.from),F(I,`max`,s),R.disabled=n(g)||!v.from||!v.to,H(z,c)},[()=>X(`activity.show`),()=>X(`activity.all`),()=>X(`activity.grave`),()=>X(`activity.export.title`),()=>X(`activity.export.from`),()=>X(`activity.export.through`),()=>_(),()=>X(`activity.export.download`)]),f(`change`,d,e=>te(e.currentTarget.value)),f(`change`,w,e=>ne(e.currentTarget.checked)),ee(N,()=>v.from,e=>v.from=e),ee(I,()=>v.to,e=>v.to=e),f(`click`,R,W),t(e,i)},$$slots:{default:!0}});var O=u(T,2),N=e=>{it(e,{})},R=e=>{Q(e,{children:(e,r)=>{var i=rc(),o=d(i);{let e=P(()=>n(b)?X(`activity.empty.grave`):X(`activity.empty.plain`));Sr(o,{get events(){return n(m)},limit:1/0,get empty(){return n(e)}})}ft(u(o,2),{get pages(){return a},get shown(){return n(m).length},get busy(){return n(D)},onpage:z}),t(e,i)},$$slots:{default:!0}})};i(O,e=>{n(D)&&n(m).length===0?e(N):e(R,-1)}),t(e,p)},$$slots:{default:!0}})}B()}l([`change`,`click`]);var oc=e=>X(`providers.protocols.${e}`),sc=e=>![`saml`,`mcp`].includes(e.protocol)&&!(e.tokenAuthMethod===`signed_secret`?e.privateKeyHeld:e.secretHeld),cc=e=>[e.role===`delegate`&&e.protocol!==`mcp`&&[`owns`,X(`providers.marks.owns`),`primary`],e.trustsEmail&&[`mail`,X(`providers.marks.trusts_email`),`good`],e.receivesSignals&&[`signals`,X(`providers.marks.signals`),`info`],e.delegates&&[`delegates`,X(`providers.marks.delegates`),`info`],sc(e)&&[`unconfirmed`,X(`providers.marks.no_secret`),`warn`]].filter(Boolean),lc=p(`<button type="button" class="btn btn-primary btn-sm"> </button>`),uc=p(`<div class="hint text-xs"> </div>`),dc=p(`<td class="w-full max-w-0 md:w-auto md:max-w-none"><div class="flex min-w-0 items-center gap-2"><!> <!></div> <div class="hint truncate text-xs"><span class="font-mono"> </span> <!> <span class="md:hidden"> </span></div></td> <td class="hidden text-sm whitespace-nowrap md:table-cell"> <div class="hint text-xs"> </div></td> <td class="hidden text-right text-sm whitespace-nowrap md:table-cell"> <!></td>`,1),fc=p(`<li class="slat"><div class="flex flex-wrap items-baseline justify-between gap-x-3 gap-y-1"><span class="flex flex-wrap items-baseline gap-2"><!> <span class="hint font-mono text-xs"> </span></span> <span class="flex items-baseline gap-3 text-xs"><span class="hint"> </span> <button type="button" class="link"> </button></span></div></li>`),pc=p(`<ul class="slats"></ul>`),mc=p(`<!> <!>`,1);function hc(e,r){O(r,!0);let a=Qe(),l=`
407
+ key name protocol role trustsEmail receivesSignals delegates tokenAuthMethod secretHeld privateKeyHeld
408
+ connections signedIn emailDomains archivedAt createdAt
409
+ organization { key name }
410
+ `,p=`
411
+ query Providers {
412
+ active: providers { ${l} }
413
+ archived: providers(archived: true) { ${l} }
414
+ }
415
+ `,m=[X(`providers.columns.provider`),{label:X(`providers.columns.kind`),hide:!0},{label:X(`providers.columns.connections`),hide:!0,right:!0}],h=pt(),g=T(w([])),_=T(w([])),v=T(!0);async function y(){let e=await h.attempt(()=>r.api.query(p));C(v,!1),e&&(C(g,e.active,!0),C(_,e.archived,!0))}y();async function b(e){await h.attempt(()=>r.api.query(`mutation Restore($key: ID!) { restoreProvider(key: $key) { provider { key } } }`,{key:e.key}),X(`providers.notices.restored`,{name:e.name}))&&await y()}{let r=e=>{var n=lc(),r=G(n,!0);c(e=>H(r,e),[()=>X(`providers.add`)]),f(`click`,n,()=>a.go(`/providers/new`)),t(e,n)},l=P(()=>X(`providers.title`)),p=P(()=>X(`providers.lede`));kn(e,{get title(){return n(l)},get lede(){return n(p)},actions:r,children:(e,r)=>{var a=mc(),l=d(a);Cn(l,{get feedback(){return h.state}});var p=u(l,2),y=e=>{it(e,{})},x=e=>{var r=mc(),a=d(r);{let e=e=>{var r=V(),a=d(r);J(a,17,()=>n(g),e=>e.key,(e,r)=>{{let a=P(()=>`/providers/${n(r).key}`);Pt(e,{get to(){return n(a)},children:(e,a)=>{var l=dc(),f=d(l),p=s(f),m=s(p);{let e=P(()=>`/providers/${n(r).key}`);Z(m,{get to(){return n(e)},class:`link link-hover truncate font-medium`,children:(e,i)=>{j();var a=o();c(()=>H(a,n(r).name)),t(e,a)},$$slots:{default:!0}})}var h=u(m,2);{let e=P(()=>cc(n(r)));st(h,{get marks(){return n(e)}})}U(p);var g=u(p,2),_=s(g),v=G(_,!0),y=u(_,2),b=e=>{var i=o();c(()=>H(i,`· ${n(r).organization.name??``}`)),t(e,i)};i(y,e=>{n(r).organization&&e(b)});var x=u(y,2),S=G(x);U(g),U(f);var C=u(f,2),w=s(C),T=u(w),E=G(T,!0);U(C);var D=u(C,2),O=s(D),k=u(O),A=e=>{var i=uc(),a=G(i,!0);c(e=>H(a,e),[()=>X(`providers.facts.signed_in`,{count:n(r).signedIn})]),t(e,i)};i(k,e=>{n(r).signedIn&&e(A)}),U(D),c((e,t,i)=>{H(v,n(r).key),H(S,`· ${e??``}`),H(w,`${t??``} `),H(E,i),H(O,`${n(r).connections??``} `)},[()=>oc(n(r).protocol),()=>oc(n(r).protocol),()=>n(r).protocol===`mcp`?X(`providers.roles.never`):n(r).role===`delegate`?X(`providers.roles.owns`):X(`providers.roles.existing`)]),t(e,l)},$$slots:{default:!0}})}}),t(e,r)},r=P(()=>X(`providers.empty`));zt(a,{get columns(){return m},get count(){return n(g).length},get empty(){return n(r)},rows:e,$$slots:{rows:!0}})}var l=u(a,2),p=e=>{{let r=P(()=>X(`providers.archived`));Q(e,{get title(){return n(r)},children:(e,r)=>{var i=pc();J(i,21,()=>n(_),e=>e.key,(e,r)=>{var i=fc(),a=s(i),l=s(a),d=s(l);{let e=P(()=>`/providers/${n(r).key}`);Z(d,{get to(){return n(e)},class:`link link-hover text-sm font-medium`,children:(e,i)=>{j();var a=o();c(()=>H(a,n(r).name)),t(e,a)},$$slots:{default:!0}})}var p=u(d,2),m=G(p,!0);U(l);var h=u(l,2),g=s(h),_=G(g,!0),v=u(g,2),y=G(v,!0);U(h),U(a),U(i),c((e,t)=>{H(m,n(r).key),H(_,e),H(y,t)},[()=>X(`providers.archived_on`,{day:St(n(r).archivedAt)}),()=>X(`providers.restore`)]),f(`click`,v,()=>b(n(r))),t(e,i)}),U(i),t(e,i)},$$slots:{default:!0}})}};i(l,e=>{n(_).length&&e(p)}),t(e,r)};i(p,e=>{n(v)?e(y):e(x,-1)}),t(e,a)},$$slots:{actions:!0,default:!0}})}B()}l([`click`]);var gc=(e,n=N,r=N,a=N,o=N)=>{var l=vc(),d=s(l);M(d);var p=u(d,2),m=s(p),h=G(m,!0),g=u(m,2),_=e=>{var n=_c(),r=G(n,!0);c(()=>H(r,o())),t(e,n)};i(g,e=>{o()&&e(_)}),U(p),U(l),c(()=>{ie(d,n()),H(h,a())}),f(`change`,d,e=>r()(e.currentTarget.checked)),t(e,l)},_c=p(`<span class="hint"> </span>`),vc=p(`<label class="flex items-start gap-3 text-sm"><input type="checkbox" class="toggle toggle-sm mt-0.5"/> <span class="flex flex-col gap-0.5"><span> </span> <!></span></label>`),yc=p(`<p class="text-sm"> <a class="link" target="_blank" rel="noreferrer noopener"> </a>.</p>`),bc=p(`<li class="slat"><span class="hint text-xs"> </span> <span class="flex items-center justify-between gap-3"><code class="min-w-0 font-mono text-xs break-all"> </code> <button type="button" class="btn btn-ghost btn-xs shrink-0"> </button></span></li>`),xc=p(`<!> <ul class="slats"></ul>`,1),Sc=p(`<!> <!> <!>`,1),Cc=p(`<p class="hint"> </p>`),wc=p(`<option> </option>`),Tc=p(`<!> <!> <label class="flex flex-col gap-1.5"><span class="field-label"> </span> <textarea class="textarea textarea-sm w-full max-w-sm font-mono text-xs" rows="3"></textarea></label> <!> <!> <label class="flex flex-col gap-1.5"><span class="field-label"> </span> <textarea class="textarea textarea-sm w-full max-w-sm font-mono text-xs" rows="4"></textarea></label> <label class="flex flex-col gap-1.5"><span class="field-label"> </span> <select class="select select-sm w-full"></select></label>`,1),Ec=p(`<code class="font-mono text-xs break-all"> </code> <!>`,1),Dc=p(`<!> <!> <!> <!> <!>`,1),Oc=p(`<!> <!> <label class="flex flex-col gap-1.5"><span class="field-label"> </span> <textarea class="textarea textarea-sm w-full max-w-sm font-mono text-xs" rows="4"></textarea></label>`,1),kc=p(`<label class="flex flex-col gap-1.5"><span class="field-label"> </span> <select class="select select-sm w-full"><option> </option><option> </option><option> </option></select></label> <!>`,1),Ac=p(`<!> <!> <!> <!>`,1),jc=p(`<!> <!> <!> <!> <!> <!>`,1),Mc=p(`<!> <!>`,1),Nc=p(`<p class="text-sm"> </p>`),Pc=p(`<!> <!> <p class="hint"> <code class="font-mono"> </code> </p> <!>`,1),Fc=p(`<span class="text-sm font-medium"> </span> <span class="hint text-xs"> </span>`,1),Ic=p(`<div class="grid gap-2 sm:grid-cols-2 lg:grid-cols-3"></div>`),Lc=p(`<div class="grid gap-4"><!> <!> <!> <div class="flex gap-2 border-t border-[var(--line)] pt-5"><button type="button" class="btn btn-primary btn-sm"> </button> <!></div></div>`),Rc=p(`<div class="alert alert-error alert-soft text-sm" role="alert"> </div>`),zc=p(`<div class="callout callout-quiet" role="status"><div class="callout-words"><strong> </strong></div> <div class="callout-actions"><button type="button" class="btn btn-sm"> </button></div></div>`),Bc=p(`<div class="callout callout-warn" role="status"><div class="callout-words"><strong> </strong> <span> </span></div></div>`),Vc=p(`<div class="callout callout-info"><div class="callout-words"><span> <!> </span></div></div>`),Hc=p(`<button type="button" class="btn btn-sm"> </button>`),Uc=p(`<div class="flex flex-wrap gap-2"><!> <button type="button" class="btn btn-sm btn-error btn-outline"> </button></div>`),Wc=p(`<div class="savebar" role="region"><span class="text-sm font-medium"> </span> <div class="flex gap-2"><button type="button" class="btn btn-ghost btn-sm"> </button> <button type="button" class="btn btn-primary btn-sm"> </button></div></div>`),Gc=p(`<!> <!> <!> <!> <div class="grid gap-4"><!></div> <!>`,1);function Kc(e,r){O(r,!0);let a=e=>{{let r=P(()=>X(`providers.form.give`,{name:n(xe)})),a=P(()=>n(de)?.guide&&n(ue)?null:X(`providers.sections.give_lede`));Q(e,{row:!0,get title(){return n(r)},get lede(){return n(a)},children:(e,r)=>{var a=xc(),o=d(a),l=e=>{var r=yc(),i=s(r),a=u(i),o=G(a,!0);j(),U(r),c((e,t)=>{H(i,`${e??``} `),F(a,`href`,n(de).guide),H(o,t)},[()=>X(`providers.form.guide_lead`,{name:n(de).name}),()=>X(`providers.form.guide_link`,{name:n(de).name})]),t(e,r)};i(o,e=>{n(de)?.guide&&n(ue)&&e(l)});var p=u(o,2);J(p,21,()=>n(pe)?[[X(`providers.form.acs_url`),n(ye)],[X(`providers.form.sp_entity_id`),n(be)]]:[[X(`providers.form.redirect_uri`),n(ye)]],([e,t])=>e,(e,r)=>{var i=P(()=>I(n(r),2));let a=()=>n(i)[0],o=()=>n(i)[1];var l=bc(),d=s(l),p=G(d,!0),m=u(d,2),h=s(m),g=G(h,!0),_=u(h,2),v=G(_,!0);U(m),U(l),c(e=>{H(p,a()),H(g,o()),H(v,e)},[()=>X(`providers.copy`)]),f(`click`,_,()=>Ve(o())),t(e,l)}),U(p),t(e,a)},$$slots:{default:!0}})}},l=e=>{var r=jc(),o=d(r);a(o);var l=u(o,2);{let e=P(()=>X(`providers.sections.identity`)),r=P(()=>X(`providers.sections.identity_lede`));Q(l,{row:!0,get title(){return n(e)},get lede(){return n(r)},children:(e,r)=>{var a=Sc(),o=d(a);{let e=P(()=>X(`providers.form.name`));$(o,{get label(){return n(e)},placeholder:`Acme`,get value(){return n(q).name},set value(e){n(q).name=e}})}var s=u(o,2),c=e=>{{let t=P(()=>X(`providers.form.key`));$(e,{get label(){return n(t)},autocapitalize:`none`,autocorrect:`off`,spellcheck:`false`,placeholder:`acme`,get value(){return n(q).key},set value(e){n(q).key=e}})}};i(s,e=>{n(ue)&&e(c)});var l=u(s,2),f=e=>{var r=V(),i=d(r);J(i,16,()=>n(de).asks,e=>e,(e,t)=>{{let r=P(()=>y[t]?.[0]??t),i=P(()=>y[t]?.[1]??``);$(e,{get label(){return n(r)},get placeholder(){return n(i)},autocapitalize:`none`,autocorrect:`off`,spellcheck:`false`,get value(){return n(q).asked[t]},set value(e){n(q).asked[t]=e}})}}),t(e,r)};i(l,e=>{n(ue)&&!n(fe)&&e(f)}),t(e,a)},$$slots:{default:!0}})}var f=u(l,2),p=e=>{{let r=P(()=>X(`providers.form.identity_provider`)),a=P(()=>X(`providers.form.metadata_hint`));Q(e,{row:!0,get title(){return n(r)},get lede(){return n(a)},children:(e,r)=>{var a=Tc(),o=d(a);{let e=P(()=>X(`providers.form.metadata_url`)),t=P(()=>X(`providers.form.read`));$(o,{get label(){return n(e)},onsave:()=>(n(q).metadataUrl.trim()||n(q).metadataXml.trim())&&!n(Y)&&Pe(),get save(){return n(t)},placeholder:`https://idp.acme.test/metadata`,autocapitalize:`none`,autocorrect:`off`,spellcheck:`false`,get value(){return n(q).metadataUrl},set value(e){n(q).metadataUrl=e}})}var l=u(o,2),f=e=>{var r=Cc(),i=G(r,!0);c(e=>H(i,e),[()=>X(`providers.facts.metadata_read`,{day:n(K).metadataFetchedAt?St(n(K).metadataFetchedAt):X(`providers.facts.never`)})]),t(e,r)};i(l,e=>{n(K)?.metadataUrl&&e(f)});var p=u(l,2),m=s(p),h=G(m,!0),g=u(m,2);ne(g),U(p);var _=u(p,2);{let e=P(()=>X(`providers.form.entity_id`));$(_,{get label(){return n(e)},get value(){return n(q).idpEntityId},set value(e){n(q).idpEntityId=e}})}var y=u(_,2);{let e=P(()=>X(`providers.form.sign_in_url`));$(y,{get label(){return n(e)},get value(){return n(q).idpSsoUrl},set value(e){n(q).idpSsoUrl=e}})}var b=u(y,2),x=s(b),S=G(x,!0),C=u(x,2);ne(C),U(b);var w=u(b,2),T=s(w),E=G(T,!0),D=u(T,2);J(D,21,()=>v,([e,t])=>e,(e,r)=>{var i=P(()=>I(n(r),2));let a=()=>n(i)[0],o=()=>n(i)[1];var s=wc(),l=G(s,!0),u={};c(()=>{H(l,o()),u!==(u=a())&&(s.value=(s.__value=u)??``)}),t(e,s)}),U(D),L(D),U(w),c((e,t,n)=>{H(h,e),H(S,t),H(E,n)},[()=>X(`providers.form.paste_metadata`),()=>X(`providers.form.certificates`),()=>X(`providers.form.name_id_format`)]),ee(g,()=>n(q).metadataXml,e=>n(q).metadataXml=e),ee(C,()=>n(q).idpCertificates,e=>n(q).idpCertificates=e),R(D,()=>n(q).nameIdFormat,e=>n(q).nameIdFormat=e),t(e,a)},$$slots:{default:!0}})}};i(f,e=>{n(pe)&&e(p)});var m=u(f,2),h=e=>{{let r=P(()=>X(`providers.sections.mcp`)),a=P(()=>X(`providers.form.mcp_hint`));Q(e,{row:!0,get title(){return n(r)},get lede(){return n(a)},children:(e,r)=>{var a=V(),o=d(a),s=e=>{{let t=P(()=>X(`providers.form.mcp_url`));$(e,{get label(){return n(t)},autocapitalize:`none`,autocorrect:`off`,spellcheck:`false`,placeholder:`https://mcp.acme.test/mcp`,get value(){return n(q).resourceUrl},set value(e){n(q).resourceUrl=e}})}},l=e=>{var r=Ec(),a=d(r),o=G(a,!0),s=u(a,2),l=e=>{var r=Cc(),i=G(r,!0);c(e=>H(i,e),[()=>X(`providers.facts.registered`,{day:n(K).registeredAt?St(n(K).registeredAt):X(`providers.facts.never`)})]),t(e,r)};i(s,e=>{n(K)&&e(l)}),c(()=>H(o,n(q).resourceUrl)),t(e,r)};i(o,e=>{n(ue)&&n(fe)?e(s):e(l,-1)}),t(e,a)},$$slots:{default:!0}})}};i(m,e=>{n(ge)&&e(h)});var g=u(m,2),_=e=>{{let r=P(()=>X(`providers.sections.endpoints`)),a=P(()=>n(he)?X(`providers.sections.endpoints_oidc`):null);Q(e,{row:!0,get title(){return n(r)},get lede(){return n(a)},children:(e,r)=>{var a=Dc(),o=d(a),s=e=>{{let t=P(()=>X(`providers.form.issuer`)),r=P(()=>X(`providers.form.discover`));$(e,{get label(){return n(t)},onsave:()=>n(q).issuer.trim()&&!n(Y)&&Ne(),get save(){return n(r)},autocapitalize:`none`,autocorrect:`off`,spellcheck:`false`,placeholder:`https://id.acme.test`,get value(){return n(q).issuer},set value(e){n(q).issuer=e}})}};i(o,e=>{n(he)&&e(s)});var c=u(o,2);{let e=P(()=>X(`providers.form.authorization_url`));$(c,{get label(){return n(e)},get value(){return n(q).authorizationUrl},set value(e){n(q).authorizationUrl=e}})}var l=u(c,2);{let e=P(()=>X(`providers.form.token_url`));$(l,{get label(){return n(e)},get value(){return n(q).tokenUrl},set value(e){n(q).tokenUrl=e}})}var f=u(l,2);{let e=P(()=>X(`providers.form.userinfo_url`)),t=P(()=>n(me)?``:X(`providers.form.optional`));$(f,{get label(){return n(e)},get placeholder(){return n(t)},get value(){return n(q).userinfoUrl},set value(e){n(q).userinfoUrl=e}})}var p=u(f,2),m=e=>{{let t=P(()=>X(`providers.form.emails_url`)),r=P(()=>X(`providers.form.optional`));$(e,{get label(){return n(t)},get placeholder(){return n(r)},get value(){return n(q).emailsUrl},set value(e){n(q).emailsUrl=e}})}},h=e=>{{let t=P(()=>X(`providers.form.jwks_uri`)),r=P(()=>X(`providers.form.discovered_if_empty`));$(e,{get label(){return n(t)},get placeholder(){return n(r)},get value(){return n(q).jwksUri},set value(e){n(q).jwksUri=e}})}};i(p,e=>{n(me)?e(m):e(h,-1)}),t(e,a)},$$slots:{default:!0}})}};i(g,e=>{n(fe)&&!n(pe)&&!n(ge)&&e(_)});var b=u(g,2),x=e=>{{let r=P(()=>X(`providers.form.credentials`)),a=P(()=>X(`providers.sections.credentials_lede`,{name:n(xe)}));Q(e,{row:!0,get title(){return n(r)},get lede(){return n(a)},children:(e,r)=>{var a=Ac(),o=d(a);{let e=P(()=>n(_e)?X(`providers.form.services_id`):X(`providers.form.client_id`));$(o,{get label(){return n(e)},autocomplete:`off`,get value(){return n(q).clientId},set value(e){n(q).clientId=e}})}var l=u(o,2),f=e=>{{let t=P(()=>X(`providers.form.client_secret`)),r=P(()=>n(ue)?``:n(K)?.secretHeld?X(`providers.form.unchanged`):``);$(e,{get label(){return n(t)},type:`password`,autocomplete:`off`,get placeholder(){return n(r)},get value(){return n(q).clientSecret},set value(e){n(q).clientSecret=e}})}};i(l,e=>{n(He)&&e(f)});var p=u(l,2),m=e=>{var r=Oc(),i=d(r);{let e=P(()=>X(`providers.form.team_id`));$(i,{get label(){return n(e)},autocomplete:`off`,get value(){return n(q).teamId},set value(e){n(q).teamId=e}})}var a=u(i,2);{let e=P(()=>X(`providers.form.key_id`));$(a,{get label(){return n(e)},autocomplete:`off`,get value(){return n(q).keyId},set value(e){n(q).keyId=e}})}var o=u(a,2),l=s(o),f=G(l,!0),p=u(l,2);ne(p),U(o),c((e,t)=>{H(f,e),F(p,`placeholder`,t)},[()=>X(`providers.form.private_key`),()=>n(ue)?`-----BEGIN PRIVATE KEY-----`:X(`providers.form.unchanged`)]),ee(p,()=>n(q).privateKey,e=>n(q).privateKey=e),t(e,r)};i(p,e=>{n(_e)&&e(m)});var h=u(p,2),g=e=>{var r=kc(),i=d(r),a=s(i),o=G(a,!0),l=u(a,2),f=s(l),p=G(f,!0);f.value=f.__value=`client_secret_post`;var m=u(f),h=G(m,!0);m.value=m.__value=`client_secret_basic`;var g=u(m),_=G(g,!0);g.value=g.__value=`signed_secret`,U(l),L(l),U(i);var v=u(i,2);{let e=P(()=>X(`providers.form.extra_scopes`)),t=P(()=>n(he)?X(`providers.form.oidc_scopes`):`read:user`);$(v,{get label(){return n(e)},autocapitalize:`none`,autocorrect:`off`,spellcheck:`false`,get placeholder(){return n(t)},get value(){return n(q).scopes},set value(e){n(q).scopes=e}})}c((e,t,n,r)=>{H(o,e),H(p,t),H(h,n),H(_,r)},[()=>X(`providers.form.sends_secret`),()=>X(`providers.form.secret_post`),()=>X(`providers.form.secret_basic`),()=>X(`providers.form.secret_signed`)]),R(l,()=>n(q).tokenAuthMethod,e=>n(q).tokenAuthMethod=e),t(e,r)};i(h,e=>{n(fe)&&e(g)}),t(e,a)},$$slots:{default:!0}})}};i(b,e=>{!n(pe)&&!n(ge)&&e(x)}),t(e,r)},p=e=>{var r=Ac(),a=d(r);{let e=P(()=>X(`providers.sections.accounts`)),r=P(()=>X(`providers.form.owns_hint`,{name:n(xe)}));Q(a,{row:!0,get title(){return n(e)},get lede(){return n(r)},children:(e,r)=>{var a=Mc(),o=d(a);{let e=P(()=>X(`providers.form.owns`,{name:n(xe)}));gc(o,()=>n(q).role===`delegate`,()=>e=>n(q).role=e?`delegate`:`credential`,()=>n(e),()=>null)}var s=u(o,2),c=e=>{{let t=P(()=>X(`providers.form.signup_scopes`));$(e,{get label(){return n(t)},autocapitalize:`none`,autocorrect:`off`,spellcheck:`false`,placeholder:`openid profile email offline_access identities`,get value(){return n(q).signupScopes},set value(e){n(q).signupScopes=e}})}};i(s,e=>{n(q).role===`delegate`&&e(c)}),t(e,a)},$$slots:{default:!0}})}var o=u(a,2);{let e=P(()=>X(`providers.sections.addresses`));Q(o,{row:!0,get title(){return n(e)},children:(e,r)=>{var a=Mc(),o=d(a),s=e=>{{let t=P(()=>X(`providers.form.trusts_email`)),r=P(()=>X(`providers.form.trusts_email_hint`));gc(e,()=>n(q).trustsEmail,()=>e=>n(q).trustsEmail=e,()=>n(t),()=>n(r))}};i(o,e=>{n(pe)||e(s)});var c=u(o,2);{let e=P(()=>n(pe)?X(`providers.form.saml_domains`):X(`providers.form.domains`)),t=P(()=>X(`providers.form.any_domain`));$(c,{get label(){return n(e)},autocapitalize:`none`,autocorrect:`off`,spellcheck:`false`,get placeholder(){return n(t)},get value(){return n(q).emailDomains},set value(e){n(q).emailDomains=e}})}t(e,a)},$$slots:{default:!0}})}var s=u(o,2),c=e=>{{let t=P(()=>X(`providers.sections.signals`));Q(e,{row:!0,get title(){return n(t)},children:(e,t)=>{{let t=P(()=>X(`providers.form.signals`)),r=P(()=>`${X(`providers.form.signals_lead`)} ${ve}/ssf/events. ${X(`providers.form.signals_rest`)}`);gc(e,()=>n(q).receivesSignals,()=>e=>n(q).receivesSignals=e,()=>n(t),()=>n(r))}},$$slots:{default:!0}})}};i(s,e=>{n(he)&&e(c)});var l=u(s,2),f=e=>{{let r=P(()=>X(`providers.form.claims`)),i=P(()=>X(`providers.sections.claims_lede`));Q(e,{row:!0,get title(){return n(r)},get lede(){return n(i)},children:(e,r)=>{var i=Mc(),a=d(i);{let e=P(()=>n(pe)?X(`providers.form.subject_saml`):n(he)?X(`providers.form.subject_oidc`):X(`providers.form.subject_path`));$(a,{get label(){return n(e)},autocapitalize:`none`,autocorrect:`off`,spellcheck:`false`,get value(){return n(q).subjectClaim},set value(e){n(q).subjectClaim=e}})}var o=u(a,2);J(o,17,()=>_.filter(([e])=>!(n(pe)&&e===`email_verified`)),([e,t])=>e,(e,t)=>{var r=P(()=>I(n(t),2));let i=()=>n(r)[0],a=()=>n(r)[1];{let t=P(()=>n(pe)?X(`providers.form.attribute_name`):i());$(e,{get label(){return a()},get placeholder(){return n(t)},autocapitalize:`none`,autocorrect:`off`,spellcheck:`false`,get value(){return n(q).claims[i()]},set value(e){n(q).claims[i()]=e}})}}),t(e,i)},$$slots:{default:!0}})}};i(l,e=>{n(fe)&&e(f)}),t(e,r)},m=e=>{{let r=P(()=>X(`providers.sections.delegation`)),a=P(()=>X(`providers.form.delegates_hint`,{name:n(xe)}));Q(e,{row:!0,get title(){return n(r)},get lede(){return n(a)},children:(e,r)=>{var a=Mc(),o=d(a),l=e=>{{let t=P(()=>X(`providers.form.delegates`,{name:n(xe)}));gc(e,()=>n(q).delegates,()=>e=>n(q).delegates=e,()=>n(t),()=>null)}};i(o,e=>{n(ge)||e(l)});var f=u(o,2),p=e=>{var r=Pc(),a=d(r);{let e=P(()=>X(`providers.form.delegated_scopes`)),t=P(()=>n(ge)?X(`providers.form.server_grants`):`https://www.googleapis.com/auth/drive.readonly`);$(a,{get label(){return n(e)},autocapitalize:`none`,autocorrect:`off`,spellcheck:`false`,get placeholder(){return n(t)},get value(){return n(q).delegatedScopes},set value(e){n(q).delegatedScopes=e}})}var o=u(a,2);{let e=P(()=>X(`providers.form.delegation_params`));$(o,{get label(){return n(e)},autocapitalize:`none`,autocorrect:`off`,spellcheck:`false`,placeholder:`access_type=offline prompt=consent`,get value(){return n(q).delegationParams},set value(e){n(q).delegationParams=e}})}var l=u(o,2),f=s(l),p=u(f),m=G(p),h=u(p);U(l);var g=u(l,2),_=e=>{var r=Nc(),i=G(r,!0);c(e=>H(i,e),[()=>X(`providers.facts.delegations_count`,{count:n(K).delegations})]),t(e,r)};i(g,e=>{n(K)&&e(_)}),c((e,t,n)=>{H(f,`${e??``} `),H(m,`masks:delegate:${t??``}`),H(h,`.
416
+ ${n??``}`)},[()=>X(`providers.form.delegation_asks`),()=>n(q).key.trim()||`key`,()=>X(`providers.form.delegation_reconnect`)]),t(e,r)};i(f,e=>{(n(q).delegates||n(ge))&&e(p)}),t(e,a)},$$slots:{default:!0}})}},h=z(r,`part`,3,null),g=Qe(),_=[`email`,`email_verified`,`name`,`given_name`,`family_name`,`preferred_username`,`picture`].map(e=>[e,X(`providers.claims.${e}`)]),v=[[``,X(`providers.name_id_formats.any`)],[`urn:oasis:names:tc:SAML:2.0:nameid-format:persistent`,X(`providers.name_id_formats.persistent`)],[`urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress`,X(`providers.name_id_formats.email`)],[`urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified`,X(`providers.name_id_formats.unspecified`)]],y={domain:[X(`providers.asked.domain`),`acme.okta.com`],tenant:[X(`providers.asked.tenant`),`00000000-0000-0000-0000-000000000000`],realm:[X(`providers.asked.realm`),`staff`]},b=`providerPresets { key name protocol asks needs defaults guide custom trustsEmail delegates delegatedScopes }`,E=`
417
+ query Provider($key: ID!) {
418
+ provider(key: $key) {
419
+ key name protocol preset authorizationUrl tokenUrl userinfoUrl emailsUrl clientId
420
+ scopes subjectClaim claims tokenAuthMethod responseMode teamId keyId
421
+ secretHeld privateKeyHeld connections signedIn archivedAt createdAt callbackUrl
422
+ issuer jwksUri role trustsEmail receivesSignals emailDomains signupScopes
423
+ idpEntityId idpSsoUrl idpCertificates metadataUrl metadataFetchedAt nameIdFormat spEntityId
424
+ delegates delegatedScopes delegationParams delegationScope resourceUrl registeredAt delegations
425
+ organization { key name }
426
+ }
427
+ connections(provider: $key) {
428
+ id subject label email emailVerified connectedAt signedInAt delegable
429
+ provider { key name }
430
+ actor { uuid identifier }
431
+ delegations { id releasedAt client { clientId name } }
432
+ }
433
+ ${b}
434
+ }
435
+ `,D=[[`name`,`String`],[`protocol`,`String`],[`authorizationUrl`,`String`],[`tokenUrl`,`String`],[`userinfoUrl`,`String`],[`emailsUrl`,`String`],[`clientId`,`String`],[`clientSecret`,`String`],[`scopes`,`[String!]`],[`subjectClaim`,`String`],[`claims`,`JSON`],[`issuer`,`String`],[`jwksUri`,`String`],[`tokenAuthMethod`,`String`],[`responseMode`,`String`],[`teamId`,`String`],[`keyId`,`String`],[`privateKey`,`String`],[`idpEntityId`,`String`],[`idpSsoUrl`,`String`],[`idpCertificates`,`String`],[`metadataUrl`,`String`],[`nameIdFormat`,`String`],[`role`,`String`],[`trustsEmail`,`Boolean`],[`receivesSignals`,`Boolean`],[`emailDomains`,`[String!]`],[`signupScopes`,`[String!]`],[`delegates`,`Boolean`],[`delegatedScopes`,`[String!]`],[`delegationParams`,`JSON`],[`resourceUrl`,`String`]],k=e=>[...e,...D].map(([e,t])=>`$${e}: ${t}`).join(`, `),A=e=>[...e,...D].map(([e])=>`${e}: $${e}`).join(`, `),M=[[`key`,`ID!`],[`preset`,`ID`],[`presetValues`,`JSON`]],N=`
436
+ mutation Create(${k(M).replace(`$name: String`,`$name: String!`)}) {
437
+ createProvider(${A(M)}) { provider { key } }
438
+ }
439
+ `,te=`
440
+ mutation Update(${k([[`key`,`ID!`]])}) {
441
+ updateProvider(${A([[`key`,`ID!`]])}) { provider { key } }
442
+ }
443
+ `,W=e=>Object.entries(e??{}).map(([e,t])=>`${e}=${t}`).join(` `),re=e=>({key:e.custom?``:e.key,name:e.custom?``:e.name,preset:e.custom?null:e.key,protocol:e.protocol,asked:{...e.defaults},authorizationUrl:``,tokenUrl:``,userinfoUrl:``,emailsUrl:``,clientId:``,clientSecret:``,scopes:``,subjectClaim:e.protocol===`oidc`?`sub`:e.protocol===`saml`?`name_id`:`id`,claims:Object.fromEntries(_.map(([e])=>[e,``])),issuer:``,jwksUri:``,tokenAuthMethod:e.needs.includes(`private_key`)?`signed_secret`:`client_secret_post`,responseMode:``,teamId:``,keyId:``,privateKey:``,idpEntityId:``,idpSsoUrl:``,idpCertificates:``,metadataUrl:``,metadataXml:``,nameIdFormat:``,role:`credential`,trustsEmail:!!e.trustsEmail,receivesSignals:!1,emailDomains:``,signupScopes:``,delegates:!!e.delegates,delegatedScopes:(e.delegatedScopes??[]).join(` `),delegationParams:``,resourceUrl:``}),ie=e=>({...re({key:e.key,name:e.name,protocol:e.protocol,needs:[],defaults:{},custom:!0}),key:e.key,name:e.name,preset:e.preset,authorizationUrl:e.authorizationUrl??``,tokenUrl:e.tokenUrl??``,userinfoUrl:e.userinfoUrl??``,emailsUrl:e.emailsUrl??``,clientId:e.clientId??``,scopes:e.scopes.join(` `),subjectClaim:e.subjectClaim,claims:{...Object.fromEntries(_.map(([e])=>[e,``])),...e.claims},issuer:e.issuer??``,jwksUri:e.jwksUri??``,tokenAuthMethod:e.tokenAuthMethod,responseMode:e.responseMode??``,teamId:e.teamId??``,keyId:e.keyId??``,idpEntityId:e.idpEntityId??``,idpSsoUrl:e.idpSsoUrl??``,idpCertificates:e.idpCertificates??``,metadataUrl:e.metadataUrl??``,nameIdFormat:e.nameIdFormat??``,role:e.role,trustsEmail:e.trustsEmail,receivesSignals:e.receivesSignals,emailDomains:e.emailDomains.join(` `),signupScopes:e.signupScopes.join(` `),delegates:e.delegates,delegatedScopes:e.delegatedScopes.join(` `),delegationParams:W(e.delegationParams),resourceUrl:e.resourceUrl??``}),ae=pt(),K=T(null),oe=T(w([])),se=T(w([])),q=T(null),ce=T(``),le=T(!0),Y=T(!1),ue=P(()=>r.providerKey===`new`),de=P(()=>n(ue)?n(se).find(e=>e.key===h())??null:n(se).find(e=>e.key===n(K)?.preset)??null),fe=P(()=>!n(ue)||!!n(de)?.custom),pe=P(()=>n(q)?.protocol===`saml`),me=P(()=>n(q)?.protocol===`oauth2`),he=P(()=>n(q)?.protocol===`oidc`),ge=P(()=>n(q)?.protocol===`mcp`),_e=P(()=>n(q)?.tokenAuthMethod===`signed_secret`),ve=typeof window>`u`?``:window.location.origin,ye=P(()=>`${ve}/login/provider/${n(q)?.key?.trim()||`…`}/callback`),be=P(()=>`${ve}/login/provider/${n(q)?.key?.trim()||`…`}/metadata`),xe=P(()=>n(q)?.name.trim()||X(`providers.form.the_provider`)),Se=P(()=>!(!n(q)||n(ue)||JSON.stringify(n(q))===n(ce))),Ce=P(()=>[[null,``,X(`providers.parts.setup`)],!n(ge)&&[`sign-in`,`/sign-in`,X(`providers.parts.sign_in`)],!n(pe)&&[`clients`,`/clients`,X(`providers.parts.clients`)],[`accounts`,`/accounts`,X(`providers.parts.accounts`,{count:n(oe).length})]].filter(Boolean)),we=P(()=>n(se).filter(e=>!e.custom)),Te=P(()=>n(se).filter(e=>e.custom));async function Ee(){C(le,!0);let e=await ae.attempt(()=>n(ue)?r.api.query(`query Presets { ${b} }`):r.api.query(E,{key:r.providerKey}));if(C(le,!1),e){if(C(se,e.providerPresets,!0),n(ue)){C(K,null),C(oe,[],!0);return}C(K,e.provider,!0),C(oe,e.connections,!0),C(q,n(K)?ie(n(K)):null,!0),C(ce,JSON.stringify(n(q)),!0)}}x(()=>{r.providerKey,S(Ee)}),x(()=>{if(!n(ue))return;let e=n(de);S(()=>{C(q,e?re(e):null,!0)})});let De=e=>e?.trim()||null,Oe=e=>e.split(/[\s,]+/).filter(Boolean),ke=e=>Object.fromEntries(Oe(e).map(e=>e.split(`=`)).filter(([e,t])=>e&&t!==void 0).map(([e,...t])=>[e,t.join(`=`)])),Ae=()=>Object.fromEntries(Object.entries(n(q).claims).map(([e,t])=>[e,t?.trim()]).filter(([,e])=>e)),je=()=>({idpEntityId:De(n(q).idpEntityId),idpSsoUrl:De(n(q).idpSsoUrl),idpCertificates:De(n(q).idpCertificates),nameIdFormat:De(n(q).nameIdFormat)});function Me(){let e={key:n(q).key.trim(),name:n(q).name.trim(),role:n(q).role,trustsEmail:!n(pe)&&n(q).trustsEmail,receivesSignals:n(he)?n(q).receivesSignals:!1,emailDomains:Oe(n(q).emailDomains),signupScopes:Oe(n(q).signupScopes),clientSecret:De(n(q).clientSecret),privateKey:De(n(q).privateKey),delegates:n(pe)?!1:n(ge)||n(q).delegates,delegatedScopes:n(pe)?[]:Oe(n(q).delegatedScopes),delegationParams:n(pe)?{}:ke(n(q).delegationParams)};return n(ue)&&!n(fe)?{...e,preset:n(q).preset,presetValues:n(q).asked,clientId:De(n(q).clientId),teamId:De(n(q).teamId),keyId:De(n(q).keyId),metadataUrl:De(n(q).metadataUrl),...n(pe)?je():{},...n(ge)?{resourceUrl:De(n(q).resourceUrl)}:{}}:{...e,protocol:n(q).protocol,authorizationUrl:n(pe)?null:De(n(q).authorizationUrl),tokenUrl:n(pe)?null:De(n(q).tokenUrl),userinfoUrl:n(pe)?null:De(n(q).userinfoUrl),emailsUrl:n(me)?De(n(q).emailsUrl):null,clientId:n(pe)?null:De(n(q).clientId),scopes:n(pe)?[]:Oe(n(q).scopes),subjectClaim:n(q).subjectClaim.trim(),claims:Ae(),issuer:n(he)?De(n(q).issuer):null,jwksUri:n(he)?De(n(q).jwksUri):null,tokenAuthMethod:n(q).tokenAuthMethod,responseMode:De(n(q).responseMode),teamId:n(_e)?De(n(q).teamId):null,keyId:n(_e)?De(n(q).keyId):null,metadataUrl:n(pe)?De(n(q).metadataUrl):null,nameIdFormat:n(pe)?De(n(q).nameIdFormat):null,resourceUrl:n(ge)?De(n(q).resourceUrl):null,...n(pe)?je():{idpEntityId:null,idpSsoUrl:null,idpCertificates:null}}}async function Ne(){C(Y,!0);let e=await ae.attempt(()=>r.api.query(`
444
+ mutation Discover($issuer: String!) {
445
+ discoverProvider(issuer: $issuer) { issuer authorizationUrl tokenUrl userinfoUrl jwksUri }
446
+ }
447
+ `,{issuer:n(q).issuer.trim()}),X(`providers.notices.discovered`));if(C(Y,!1),!e)return;let t=e.discoverProvider;n(q).issuer=t.issuer,n(q).authorizationUrl=t.authorizationUrl,n(q).tokenUrl=t.tokenUrl,n(q).jwksUri=t.jwksUri,n(q).userinfoUrl=t.userinfoUrl??n(q).userinfoUrl}async function Pe(){C(Y,!0);let e=await ae.attempt(()=>r.api.query(`
448
+ mutation Metadata($metadataUrl: String, $metadataXml: String) {
449
+ readSamlMetadata(metadataUrl: $metadataUrl, metadataXml: $metadataXml) { idpEntityId idpSsoUrl idpCertificates }
450
+ }
451
+ `,{metadataUrl:De(n(q).metadataUrl),metadataXml:De(n(q).metadataXml)}),X(`providers.notices.metadata_read`));C(Y,!1),e&&(Object.assign(n(q),e.readSamlMetadata),n(q).metadataXml=``)}async function Fe(){C(Y,!0);let e=n(ue),t=n(q).key.trim(),i=await ae.attempt(()=>r.api.query(e?N:te,Me()),e?n(ge)?X(`providers.notices.registered`,{name:n(q).name}):X(`providers.notices.added`,{name:n(q).name}):X(`providers.notices.saved`,{name:n(q).name}));C(Y,!1),i&&(e?g.go(`/providers/${t}`):await Ee())}let Ie=()=>{C(q,JSON.parse(n(ce)),!0)};async function Le(e,t,i=null){(!i||confirm(i))&&await ae.attempt(()=>r.api.query(`mutation Act($key: ID!) { ${e}(key: $key) { provider { key } } }`,{key:n(K).key}),t)&&await Ee()}let Re=()=>Le(`archiveProvider`,X(`providers.notices.archived`,{name:n(K).name}),X(`providers.confirm.archive`,{name:n(K).name})),ze=()=>Le(`restoreProvider`,X(`providers.notices.restored`,{name:n(K).name})),Be=()=>Le(`registerProvider`,X(`providers.notices.reregistered`,{name:n(K).name}),X(`providers.confirm.register`,{name:n(K).name})),Ve=e=>navigator.clipboard?.writeText(e),He=P(()=>!n(pe)&&!n(ge)&&!n(_e)&&(!n(ue)||(n(de)?.needs??[`client_secret`]).includes(`client_secret`))),Ue=P(()=>!n(q)?.key.trim()||!n(q).name.trim()?!1:n(ue)&&!n(fe)?(n(de)?.asks??[]).every(e=>n(q).asked[e]?.trim()):n(pe)?n(q).idpEntityId.trim()&&n(q).idpSsoUrl.trim()&&n(q).idpCertificates.trim():n(ge)?!n(ue)||n(q).resourceUrl.trim():n(q).clientId.trim()&&n(q).authorizationUrl.trim()&&n(q).tokenUrl.trim()),We=P(()=>n(K)?[oc(n(K).protocol),n(K).protocol===`mcp`?X(`providers.roles.never`):n(K).role===`delegate`?X(`providers.roles.owns`):X(`providers.roles.existing`)].join(` · `):null);var Ge=V(),Ke=d(Ge),qe=e=>{{let r=P(()=>n(de)?X(`providers.form.add_title`,{name:n(de).custom?oc(n(de).protocol):n(de).name}):X(`providers.add`)),a=P(()=>({to:n(de)?`/providers/new`:`/providers`,label:n(de)?X(`providers.picker.back`):X(`providers.back`)})),h=P(()=>n(de)?null:X(`providers.picker.help`));kn(e,{get title(){return n(r)},get back(){return n(a)},get lede(){return n(h)},children:(e,r)=>{var a=Mc(),h=d(a);Cn(h,{get feedback(){return ae.state}});var g=u(h,2),_=e=>{it(e,{})},v=e=>{var r=V(),a=d(r);J(a,17,()=>[[X(`providers.picker.known`),n(we)],[X(`providers.picker.generic`),n(Te)]],([e,t])=>e,(e,r)=>{var a=P(()=>I(n(r),2));let o=()=>n(a)[0],s=()=>n(a)[1];var l=V(),f=d(l),p=e=>{Q(e,{get title(){return o()},children:(e,r)=>{var i=Ic();J(i,21,s,e=>e.key,(e,r)=>{{let i=P(()=>`/providers/new/${n(r).key}`);Z(e,{get to(){return n(i)},class:`sheet sheet-press flex items-baseline justify-between gap-3 px-4 py-3 no-underline`,children:(e,i)=>{var a=Fc(),o=d(a),s=G(o,!0),l=u(o,2),f=G(l,!0);c((e,t)=>{H(s,e),H(f,t)},[()=>n(r).custom?oc(n(r).protocol):n(r).name,()=>n(r).custom?``:oc(n(r).protocol)]),t(e,a)},$$slots:{default:!0}})}}),U(i),t(e,i)},$$slots:{default:!0}})};i(f,e=>{s().length&&e(p)}),t(e,l)}),t(e,r)},y=e=>{var r=Lc(),a=s(r);l(a);var d=u(a,2),h=e=>{p(e)};i(d,e=>{n(ge)||e(h)});var g=u(d,2),_=e=>{m(e)};i(g,e=>{n(pe)||e(_)});var v=u(g,2),y=s(v),b=G(y,!0);Z(u(y,2),{to:`/providers`,class:`btn btn-ghost btn-sm`,children:(e,n)=>{j();var r=o();c(e=>H(r,e),[()=>X(`providers.cancel`)]),t(e,r)},$$slots:{default:!0}}),U(v),U(r),c(e=>{y.disabled=n(Y)||!n(Ue),H(b,e)},[()=>n(Y)?X(`providers.form.saving`):X(`providers.form.add`)]),f(`click`,y,Fe),t(e,r)};i(g,e=>{n(le)?e(_):n(de)?n(q)&&e(y,2):e(v,1)}),t(e,a)},$$slots:{default:!0}})}},Je=e=>{it(e,{})},Ye=e=>{var n=Rc(),r=G(n,!0);c(e=>H(r,e),[()=>ae.state.failure??X(`providers.missing`)]),t(e,n)},Xe=e=>{{let a=e=>{{let t=P(()=>cc(n(K)));st(e,{get marks(){return n(t)}})}},g=P(()=>({to:`/providers`,label:X(`providers.back`)}));kn(e,{get title(){return n(K).name},get id(){return n(K).key},get back(){return n(g)},get lede(){return n(We)},after:a,children:(e,a)=>{var g=Gc(),_=d(g);Cn(_,{get feedback(){return ae.state}});var v=u(_,2),y=e=>{var r=zc(),i=s(r),a=s(i),o=G(a,!0);U(i);var l=u(i,2),d=s(l),p=G(d,!0);U(l),U(r),c((e,t)=>{H(o,e),H(p,t)},[()=>X(`providers.callouts.archived`,{day:St(n(K).archivedAt)}),()=>X(`providers.restore`)]),f(`click`,d,ze),t(e,r)},b=e=>{var r=Bc(),i=s(r),a=s(i),o=G(a,!0),l=u(a,2),d=G(l,!0);U(i),U(r),c((e,t)=>{H(o,e),H(d,t)},[()=>X(`providers.callouts.no_secret`),()=>X(`providers.callouts.no_secret_detail`,{name:n(K).name})]),t(e,r)},x=P(()=>sc(n(K)));i(v,e=>{n(K).archivedAt?e(y):n(x)&&e(b,1)});var S=u(v,2),C=e=>{var r=Vc(),i=s(r),a=s(i),l=s(a),d=u(l);{let e=P(()=>`/organizations/${n(K).organization.key}`);Z(d,{get to(){return n(e)},children:(e,r)=>{j();var i=o();c(()=>H(i,n(K).organization.name)),t(e,i)},$$slots:{default:!0}})}var f=u(d);U(a),U(i),U(r),c((e,t)=>{H(l,`${e??``} `),H(f,`.
452
+ ${t??``}`)},[()=>X(`providers.callouts.organization_lead`),()=>X(`providers.callouts.organization_rest`)]),t(e,r)};i(S,e=>{n(K).organization&&e(C)});var w=u(S,2);{let e=P(()=>`/providers/${n(K).key}`),t=P(()=>X(`providers.parts.label`));Gr(w,{get base(){return n(e)},get part(){return h()},get parts(){return n(Ce)},get label(){return n(t)}})}var T=u(w,2),E=s(T),D=e=>{p(e)},O=e=>{m(e)},k=e=>{Q(e,{children:(e,t)=>{tr(e,{get api(){return r.api},get feedback(){return ae},get rows(){return n(oe)},onchange:Ee,showActor:!0})},$$slots:{default:!0}})},A=e=>{var r=Mc(),a=d(r);l(a);var o=u(a,2),p=e=>{{let r=P(()=>X(`providers.danger`)),a=P(()=>n(ge)?X(`providers.danger_lede_mcp`):X(`providers.danger_lede`));Q(e,{row:!0,get title(){return n(r)},get lede(){return n(a)},children:(e,r)=>{var a=Uc(),o=s(a),l=e=>{var n=Hc(),r=G(n,!0);c(e=>H(r,e),[()=>X(`providers.register`)]),f(`click`,n,Be),t(e,n)};i(o,e=>{n(ge)&&e(l)});var d=u(o,2),p=G(d,!0);U(a),c(e=>H(p,e),[()=>X(`providers.archive`)]),f(`click`,d,Re),t(e,a)},$$slots:{default:!0}})}};i(o,e=>{n(K).archivedAt||e(p)}),t(e,r)};i(E,e=>{h()===`sign-in`&&!n(ge)?e(D):h()===`clients`&&!n(pe)?e(O,1):h()===`accounts`?e(k,2):e(A,-1)}),U(T);var M=u(T,2),N=e=>{var r=Wc(),i=s(r),a=G(i,!0),o=u(i,2),l=s(o),d=G(l,!0),p=u(l,2),m=G(p,!0);U(o),U(r),c((e,t,i,o)=>{F(r,`aria-label`,e),H(a,t),H(d,i),p.disabled=n(Y)||!n(Ue),H(m,o)},[()=>X(`providers.unsaved`),()=>X(`providers.unsaved`),()=>X(`providers.discard`),()=>n(Y)?X(`providers.form.saving`):X(`providers.form.save`)]),f(`click`,l,Ie),f(`click`,p,Fe),t(e,r)};i(M,e=>{n(Se)&&e(N)}),t(e,g)},$$slots:{after:!0,default:!0}})}};i(Ke,e=>{n(ue)?e(qe):n(le)&&!n(K)?e(Je,1):n(K)?e(Xe,-1):e(Ye,2)}),t(e,Ge),B()}l([`change`,`click`]);var qc=p(`<option> </option>`),Jc=p(`<label class="flex flex-col gap-1.5"><span class="field-label"> </span> <select class="select select-sm w-full"></select></label>`),Yc=p(`<p class="hint"> </p>`),Xc=p(`<div class="flex flex-col gap-1 sm:col-span-2"><!> <!></div>`),Zc=p(`<div class="flex flex-col gap-1"><!> <!></div>`),Qc=p(`<!> <div class="grid gap-3 sm:grid-cols-2"><!> <!></div> <div class="grid gap-3 sm:grid-cols-2"></div> <!> <div class="flex gap-2"><button type="button" class="btn btn-primary btn-sm"> </button> <button type="button" class="btn btn-ghost btn-sm"> </button></div>`,1),$c=p(`<button type="button" class="btn btn-sm"> </button>`),el=p(`<span class="badge badge-success badge-sm"> </span>`),tl=p(`<button type="button" class="btn btn-ghost btn-sm"> </button>`),nl=p(`<div class="flex flex-col gap-3 sheet p-3"><div class="flex flex-wrap items-center justify-between gap-2"><div class="flex min-w-0 flex-col"><span class="font-medium"> <!></span> <span class="hint"> <span class="font-mono"> </span> </span></div> <div class="flex flex-wrap gap-2"><!> <button type="button" class="btn btn-sm"> </button> <button type="button" class="btn btn-ghost btn-sm"> </button></div></div> <!></div>`),rl=p(`<div class="flex flex-wrap items-center justify-between gap-2"><span class="text-sm"> <span class="hint"> </span></span> <button type="button" class="btn btn-ghost btn-sm"> </button></div>`),il=p(`<!> <!> <!>`,1),al=p(`<div class="console-page"><!> <!></div>`);function ol(e,r){O(r,!0);let a=`key name kind service label primary settings secretsHeld archivedAt createdAt`,o=`
453
+ query Senders {
454
+ active: senders { ${a} }
455
+ archived: senders(archived: true) { ${a} }
456
+ senderServices {
457
+ service kind label
458
+ fields { key label type secret required options default hint }
459
+ }
460
+ tenant { mails texts }
461
+ }
462
+ `,l=[{kind:`mail`,title:X(`senders.kinds.mail.title`),lede:X(`senders.kinds.mail.lede`),idle:X(`senders.kinds.mail.idle`),to:`you@example.com`},{kind:`sms`,title:X(`senders.kinds.sms.title`),lede:X(`senders.kinds.sms.lede`),idle:X(`senders.kinds.sms.idle`),to:`+15551234567`}],p=pt(),m=T(null),h=T(!0),g=T(!1),_=T(null),v=T(null),y=w({}),b=P(()=>n(m)?.senderServices??[]),x=e=>n(b).find(t=>t.service===e),S=(e,t)=>(e??[]).filter(e=>e.kind===t);async function D(){C(h,!0);let e=await p.attempt(()=>r.api.query(o));C(h,!1),e&&C(m,e,!0)}D();function k(e){return Object.fromEntries(e.fields.map(e=>[e.key,e.secret?``:e.default??(e.type!==`boolean`&&``)]))}function A(e){let t=n(b).find(t=>t.kind===e);C(_,``),C(v,{kind:e,service:t.service,key:``,name:``,primary:S(n(m).active,e).length===0,config:k(t)},!0),p.clear()}function j(e){let t=x(e);n(v).service=e,n(v).config=k(t),n(v).key||(n(v).key=e.replace(/_/g,`-`)),n(v).name||(n(v).name=t.label)}function M(e){let t=x(e.service);C(_,e.key,!0),C(v,{kind:e.kind,service:e.service,key:e.key,name:e.name,primary:e.primary,secretsHeld:e.secretsHeld,config:Object.fromEntries(t.fields.map(t=>[t.key,t.secret?``:e.settings[t.key]??t.default??``]))},!0),p.clear()}function N(){C(_,null),C(v,null),p.clear()}function F(){let e=x(n(v).service);return Object.fromEntries(e.fields.filter(e=>!(e.secret&&!n(v).config[e.key])).map(e=>[e.key,e.type===`integer`?Number(n(v).config[e.key])||null:n(v).config[e.key]]))}async function I(){C(g,!0);let e=n(_)===``,t=await p.attempt(()=>e?r.api.query(`mutation Create($key: ID!, $service: String!, $name: String!, $config: JSON, $primary: Boolean) {
463
+ createSender(key: $key, service: $service, name: $name, config: $config, primary: $primary) {
464
+ sender { key }
465
+ }
466
+ }`,{key:n(v).key.trim(),service:n(v).service,name:n(v).name.trim(),config:F(),primary:n(v).primary}):r.api.query(`mutation Update($key: ID!, $name: String, $config: JSON, $primary: Boolean) {
467
+ updateSender(key: $key, name: $name, config: $config, primary: $primary) {
468
+ sender { key }
469
+ }
470
+ }`,{key:n(v).key,name:n(v).name.trim(),config:F(),primary:n(v).primary}),X(e?`senders.added`:`senders.saved`,{name:n(v).name}));C(g,!1),t&&(N(),await D())}async function z(e,t,n,i=null){(!i||confirm(i))&&await p.attempt(()=>r.api.query(`mutation Act($key: ID!) { ${e}(key: $key) { sender { key } } }`,{key:t.key}),n)&&await D()}async function ee(e){await p.attempt(()=>r.api.query(`mutation Primary($key: ID!) { updateSender(key: $key, primary: true) { sender { key } } }`,{key:e.key}),X(`senders.primary_notice`,{name:e.name}))&&await D()}async function te(e){let t=(y[e.key]??``).trim();if(!t)return;C(g,!0);let n=await p.attempt(()=>r.api.query(`mutation Test($key: ID!, $to: String!) { testSender(key: $key, to: $to) { delivered failure } }`,{key:e.key,to:t}));C(g,!1),n&&(n.testSender.delivered?p.say(X(`senders.tested`,{name:e.name,to:t})):p.blame(n.testSender.failure))}let ne=P(()=>{if(!n(v))return!1;let e=x(n(v).service);return n(v).key.trim()&&n(v).name.trim()&&e.fields.every(e=>!e.required||e.type===`boolean`||e.secret&&n(v).secretsHeld?.includes(e.key)||String(n(v).config[e.key]??``).trim())});var W=al(),re=s(W);Cn(re,{get feedback(){return p.state}});var ie=u(re,2),ae=e=>{it(e,{})},K=e=>{var r=il(),a=d(r),o=e=>{{let r=P(()=>n(_)===``?X(`senders.form.add`):X(`senders.form.edit`,{name:n(v).name}));Q(e,{get title(){return n(r)},children:(e,r)=>{var a=Qc(),o=d(a),l=e=>{var r=Jc(),i=s(r),a=G(i,!0),o=u(i,2);J(o,21,()=>n(b).filter(e=>e.kind===n(v).kind),e=>e.service,(e,r)=>{var i=qc(),a=G(i,!0),o={};c(()=>{H(a,n(r).label),o!==(o=n(r).service)&&(i.value=(i.__value=o)??``)}),t(e,i)}),U(o);var l;L(o),U(r),c(e=>{H(a,e),l!==(l=n(v).service)&&(o.value=(o.__value=l)??``,E(o,l))},[()=>X(`senders.form.service`)]),f(`change`,o,e=>j(e.currentTarget.value)),t(e,r)};i(o,e=>{n(_)===``&&e(l)});var p=u(o,2),m=s(p);{let e=P(()=>X(`senders.form.key`)),t=P(()=>n(_)!==``);$(m,{get label(){return n(e)},get disabled(){return n(t)},autocapitalize:`none`,autocorrect:`off`,spellcheck:`false`,get value(){return n(v).key},set value(e){n(v).key=e}})}var h=u(m,2);{let e=P(()=>X(`senders.form.name`));$(h,{get label(){return n(e)},get value(){return n(v).name},set value(e){n(v).name=e}})}U(p);var y=u(p,2);J(y,21,()=>x(n(v).service).fields,e=>e.key,(e,r)=>{var a=V(),o=d(a),l=e=>{var a=Xc(),o=s(a);Yi(o,{get label(){return n(r).label},get checked(){return n(v).config[n(r).key]},set checked(e){n(v).config[n(r).key]=e}});var l=u(o,2),d=e=>{var i=Yc(),a=G(i,!0);c(()=>H(a,n(r).hint)),t(e,i)};i(l,e=>{n(r).hint&&e(d)}),U(a),t(e,a)},f=e=>{var i=Jc(),a=s(i),o=G(a,!0),l=u(a,2);J(l,20,()=>n(r).options,e=>e,(e,n)=>{var r=qc(),i=G(r,!0),a={};c(()=>{H(i,n),a!==(a=n)&&(r.value=(r.__value=a)??``)}),t(e,r)}),U(l),L(l),U(i),c(()=>H(o,n(r).label)),R(l,()=>n(v).config[n(r).key],e=>n(v).config[n(r).key]=e),t(e,i)},p=e=>{var a=Zc(),o=s(a);{let e=P(()=>n(r).required?n(r).label:X(`senders.form.optional`,{label:n(r).label})),t=P(()=>n(r).secret?`password`:n(r).type===`integer`?`number`:`text`),i=P(()=>n(r).secret&&n(v).secretsHeld?.includes(n(r).key)?X(`senders.form.unchanged`):``);$(o,{get label(){return n(e)},get type(){return n(t)},autocomplete:`off`,autocapitalize:`none`,spellcheck:`false`,get placeholder(){return n(i)},get value(){return n(v).config[n(r).key]},set value(e){n(v).config[n(r).key]=e}})}var l=u(o,2),d=e=>{var i=Yc(),a=G(i,!0);c(()=>H(a,n(r).hint)),t(e,i)};i(l,e=>{n(r).hint&&e(d)}),U(a),t(e,a)};i(o,e=>{n(r).type===`boolean`?e(l):n(r).options?e(f,1):e(p,-1)}),t(e,a)}),U(y);var S=u(y,2);{let e=P(()=>X(`senders.form.primary`));Yi(S,{get label(){return n(e)},get checked(){return n(v).primary},set checked(e){n(v).primary=e}})}var C=u(S,2),w=s(C),T=G(w,!0),D=u(w,2),O=G(D,!0);U(C),c((e,t)=>{w.disabled=n(g)||!n(ne),H(T,e),H(O,t)},[()=>n(_)===``?X(`senders.form.create`):X(`senders.form.save`),()=>X(`senders.form.cancel`)]),f(`click`,w,I),f(`click`,D,N),t(e,a)},$$slots:{default:!0}})}};i(a,e=>{n(v)&&e(o)});var p=u(a,2);J(p,17,()=>l,e=>e.kind,(e,r)=>{let a=P(()=>S(n(m).active,n(r).kind));{let o=e=>{var i=$c(),a=G(i,!0);c(e=>H(a,e),[()=>X(`senders.list.add`)]),f(`click`,i,()=>A(n(r).kind)),t(e,i)},l=P(()=>n(a).length?n(r).lede:n(r).idle);Q(e,{get title(){return n(r).title},get lede(){return n(l)},actions:o,children:(e,o)=>{var l=V(),p=d(l);J(p,17,()=>n(a),e=>e.key,(e,a)=>{var o=nl(),l=s(o),d=s(l),p=s(d),m=s(p),h=u(m),g=e=>{var n=el(),r=G(n,!0);c(e=>H(r,e),[()=>X(`senders.list.primary`)]),t(e,n)};i(h,e=>{n(a).primary&&e(g)}),U(p);var _=u(p,2),v=s(_),b=u(v),x=G(b,!0),S=u(b);U(_),U(d);var C=u(d,2),w=s(C),T=e=>{var r=tl(),i=G(r,!0);c(e=>H(i,e),[()=>X(`senders.list.make_primary`)]),f(`click`,r,()=>ee(n(a))),t(e,r)};i(w,e=>{n(a).primary||e(T)});var E=u(w,2),D=G(E,!0),O=u(E,2),k=G(O,!0);U(C),U(l);var A=u(l,2);{let e=P(()=>X(`senders.list.test_to`)),t=P(()=>X(`senders.list.test`));$(A,{get label(){return n(e)},get placeholder(){return n(r).to},get save(){return n(t)},onsave:()=>te(n(a)),get value(){return y[n(a).key]},set value(e){y[n(a).key]=e}})}U(o),c((e,t,r)=>{H(m,`${n(a).name??``} `),H(v,`${n(a).label??``} · `),H(x,n(a).key),H(S,` · ${e??``}`),H(D,t),H(k,r)},[()=>X(`senders.list.added`,{day:St(n(a).createdAt)}),()=>X(`senders.list.edit`),()=>X(`senders.list.archive`)]),f(`click`,E,()=>M(n(a))),f(`click`,O,()=>z(`archiveSender`,n(a),X(`senders.archived_notice`,{name:n(a).name}),X(`senders.archive_confirm`,{name:n(a).name}))),t(e,o)}),t(e,l)},$$slots:{actions:!0,default:!0}})}});var h=u(p,2),C=e=>{{let r=P(()=>X(`senders.archived.title`));Q(e,{get title(){return n(r)},children:(e,r)=>{var i=V(),a=d(i);J(a,17,()=>n(m).archived,e=>e.key,(e,r)=>{var i=rl(),a=s(i),o=s(a),l=u(o),d=G(l);U(a);var p=u(a,2),m=G(p,!0);U(i),c(e=>{H(o,`${n(r).name??``} `),H(d,`${n(r).label??``} · ${n(r).kind??``}`),H(m,e)},[()=>X(`senders.archived.restore`)]),f(`click`,p,()=>z(`restoreSender`,n(r),X(`senders.restored`,{name:n(r).name}))),t(e,i)}),t(e,i)},$$slots:{default:!0}})}};i(h,e=>{n(m).archived.length&&e(C)}),t(e,r)};i(ie,e=>{n(h)&&!n(m)?e(ae):n(m)&&e(K,1)}),U(W),t(e,W),B()}l([`change`,`click`]);var sl=p(`<button type="button" class="btn btn-sm btn-ghost"> </button>`),cl=p(`<details class="mail-template"><summary class="term"> </summary> <form class="flex flex-col gap-3 pt-3"><!> <!> <label class="flex flex-col gap-1.5"><span class="field-label"> </span> <textarea class="textarea textarea-sm w-full" rows="4" maxlength="2000"></textarea> <span class="hint"> <!></span></label> <div class="flex gap-2"><button type="submit" class="btn btn-sm btn-primary"> </button> <!></div></form></details>`);function ll(e,r){O(r,!0);let a=pt(),l=T(w(S(()=>r.template.subject)??``)),d=T(w(S(()=>r.template.message)??``)),p=T(!1),m=P(()=>r.template.kind===`signature`),h=P(()=>!!(r.template.subject||r.template.message)),g=P(()=>r.template.placeholders.map(e=>`{{${e}}}`).join(`, `));async function _(e=!1){C(p,!0);let t=await a.attempt(()=>r.api.query(`
471
+ mutation Word($kind: ID!, $subject: String, $message: String) {
472
+ updateMailTemplate(kind: $kind, subject: $subject, message: $message) { mailTemplate { kind } }
473
+ }
474
+ `,{kind:r.template.kind,subject:e||n(m)?``:n(l),message:e?``:n(d)}),X(e?`mail_template.reset`:`mail_template.saved`,{title:r.title}));C(p,!1),t&&r.onsaved?.()}var y=cl(),b=s(y),x=G(b),E=u(b,2),D=s(E);Cn(D,{get feedback(){return a.state}});var k=u(D,2),A=e=>{{let t=P(()=>X(`mail_template.subject`)),r=P(()=>X(`mail_template.subject_placeholder`));$(e,{get label(){return n(t)},maxlength:`150`,get placeholder(){return n(r)},get value(){return n(l)},set value(e){C(l,e,!0)}})}};i(k,e=>{n(m)||e(A)});var j=u(k,2),M=s(j),N=G(M,!0),I=u(M,2);ne(I);var L=u(I,2),R=s(L),z=u(R),V=e=>{var n=o();c(e=>H(n,e),[()=>X(`mail_template.hint_more`)]),t(e,n)};i(z,e=>{n(m)||e(V)}),U(L),U(j);var te=u(j,2),W=s(te),re=G(W,!0),ie=u(W,2),ae=e=>{var r=sl(),i=G(r,!0);c(e=>{r.disabled=n(p),H(i,e)},[()=>X(`mail_template.use_default`)]),f(`click`,r,()=>_(!0)),t(e,r)};i(ie,e=>{n(h)&&e(ae)}),U(te),U(E),U(y),c((e,t,r,i,a,o)=>{y.open=n(h)||void 0,H(x,`${e??``}${t??``}`),H(N,r),F(I,`placeholder`,i),H(R,`${a??``} `),W.disabled=n(p),H(re,o)},[()=>X(n(m)?`mail_template.signature`:`mail_template.template`),()=>n(h)?X(`mail_template.customized`):``,()=>X(n(m)?`mail_template.closing`:`mail_template.opening`),()=>X(n(m)?`mail_template.closing_placeholder`:`mail_template.opening_placeholder`),()=>X(`mail_template.hint`,{names:n(g)}),()=>X(`mail_template.save`)]),v(`submit`,E,e=>{e.preventDefault(),_()}),ee(I,()=>n(d),e=>C(d,e)),t(e,y),B()}l([`click`]);var ul=p(`<option> </option>`),dl=p(`<optgroup></optgroup>`),fl=p(`<select class="select select-sm w-full"><option> </option><!></select>`),pl=p(`<button type="button" class="mail-item"> </button>`),ml=p(`<div class="mail-group"><div class="flex items-center gap-2"><span class="term"> </span> <!></div> <!> <!></div>`),hl=p(`<iframe class="mail-frame" sandbox="allow-same-origin"></iframe>`),gl=p(`<pre class="mail-text"> </pre>`),_l=p(`<div class="mail"><div class="mail-pick"><select class="select select-sm w-full"></select> <!></div> <nav class="mail-list"></nav> <article class="mail-view"><header class="mail-head"><div class="flex min-w-0 flex-col gap-0.5"><h2 class="mail-subject"> </h2> <p class="hint"> </p></div> <div class="range" role="group"><button type="button"> </button> <button type="button"> </button></div></header> <div class="mail-words"><!> <!></div> <!></article></div>`),vl=p(`<div class="console-page"><!></div>`);function yl(e,r){O(r,!0);let o=[`sign_in`,`manage`,`account`,`system`],l=e=>e===`invitation_organization`?`invitation`:e,p=T(``),m=T(0),h=T(null),g=T(`html`);function y(e){let t=e.currentTarget;t.style.height=`${t.contentDocument.documentElement.scrollHeight}px`}var b=vl(),x=s(b);a(x,()=>`${n(p)}:${n(m)}`,e=>{Rs(e,{load:()=>r.api.query(`
475
+ query MailPreviews($client: ID) {
476
+ mailPreviews(client: $client) { key name journey heading subject from to html text }
477
+ clients { clientId name approvedAt }
478
+ mailTemplates { kind subject message placeholders }
479
+ }
480
+ `,{client:n(p)||null}),children:(e,b=N)=>{let x=P(()=>b().mailPreviews),S=P(()=>n(x).find(e=>e.key===n(h))??n(x)[0]),w=P(()=>Object.fromEntries(b().mailTemplates.map(e=>[e.kind,e]))),T=P(()=>n(w)[l(n(S).key)]);var D=_l(),O=s(D),k=s(O);J(k,20,()=>o,e=>e,(e,r)=>{let a=P(()=>n(x).filter(e=>e.journey===r));var o=V(),s=d(o),l=e=>{var i=dl();J(i,21,()=>n(a),e=>e.key,(e,r)=>{var i=ul(),a=G(i,!0),o={};c(()=>{H(a,n(r).name),o!==(o=n(r).key)&&(i.value=(i.__value=o)??``)}),t(e,i)}),U(i),c(e=>F(i,`label`,e),[()=>X(`emails.groups.${r}.title`)]),t(e,i)};i(s,e=>{n(a).length&&e(l)}),t(e,o)}),U(k);var A;L(k);var j=u(k,2),M=e=>{var r=fl(),i=s(r),a=G(i,!0);i.value=i.__value=``;var o=u(i);J(o,17,()=>b().clients,e=>e.clientId,(e,r)=>{var i=ul(),a=G(i,!0),o={};c(e=>{H(a,e),o!==(o=n(r).clientId)&&(i.value=(i.__value=o)??``)},[()=>n(r).approvedAt?n(r).name:X(`emails.not_approved`,{name:n(r).name})]),t(e,i)}),U(r);var l;L(r),c((e,t)=>{F(r,`aria-label`,e),H(a,t),l!==(l=n(p))&&(r.value=(r.__value=l)??``,E(r,l))},[()=>X(`emails.app`),()=>X(`emails.no_app`)]),f(`change`,r,e=>C(p,e.currentTarget.value,!0)),t(e,r)};i(j,e=>{n(S).journey===`sign_in`&&e(M)}),U(O);var I=u(O,2);J(I,20,()=>o,e=>e,(e,r)=>{let a=P(()=>n(x).filter(e=>e.journey===r));var o=V(),l=d(o),m=e=>{var o=ml(),l=s(o),d=s(l),m=G(d,!0),g=u(d,2);{let e=P(()=>X(`emails.groups.${r}.help`)),t=P(()=>X(`emails.groups.${r}.about`));Dt(g,{get text(){return n(e)},get label(){return n(t)}})}U(l);var _=u(l,2),v=e=>{var r=fl(),i=s(r),a=G(i,!0);i.value=i.__value=``;var o=u(i);J(o,17,()=>b().clients,e=>e.clientId,(e,r)=>{var i=ul(),a=G(i,!0),o={};c(e=>{H(a,e),o!==(o=n(r).clientId)&&(i.value=(i.__value=o)??``)},[()=>n(r).approvedAt?n(r).name:X(`emails.not_approved`,{name:n(r).name})]),t(e,i)}),U(r);var l;L(r),c((e,t)=>{F(r,`aria-label`,e),H(a,t),l!==(l=n(p))&&(r.value=(r.__value=l)??``,E(r,l))},[()=>X(`emails.app`),()=>X(`emails.no_app`)]),f(`change`,r,e=>C(p,e.currentTarget.value,!0)),t(e,r)};i(_,e=>{r===`sign_in`&&e(v)});var y=u(_,2);J(y,17,()=>n(a),e=>e.key,(e,r)=>{var i=pl(),a=G(i,!0);c(()=>{F(i,`aria-current`,n(r).key===n(S).key?`true`:void 0),H(a,n(r).name)}),f(`click`,i,()=>C(h,n(r).key,!0)),t(e,i)}),U(o),c(e=>H(m,e),[()=>X(`emails.groups.${r}.title`)]),t(e,o)};i(l,e=>{n(a).length&&e(m)}),t(e,o)}),U(I);var R=u(I,2),z=s(R),B=s(z),ee=s(B),te=G(ee,!0),ne=u(ee,2),W=G(ne,!0);U(B);var re=u(B,2),ie=s(re),ae=G(ie,!0),K=u(ie,2),oe=G(K,!0);U(re),U(z);var se=u(z,2),q=s(se),ce=e=>{var i=V(),o=d(i);a(o,()=>n(T).kind,e=>{ll(e,{get api(){return r.api},get template(){return n(T)},get title(){return n(S).name},onsaved:()=>_(m)})}),t(e,i)};i(q,e=>{n(T)&&e(ce)});var le=u(q,2);{let e=P(()=>X(`emails.signature`));ll(le,{get api(){return r.api},get template(){return n(w).signature},get title(){return n(e)},onsaved:()=>_(m)})}U(se);var Y=u(se,2),de=e=>{var r=hl();c(()=>{F(r,`title`,n(S).subject),F(r,`srcdoc`,n(S).html)}),v(`load`,r,y),ue(r),t(e,r)},fe=e=>{var r=gl(),i=G(r,!0);c(()=>H(i,n(S).text??``)),t(e,r)};i(Y,e=>{n(g)===`html`&&n(S).html?e(de):e(fe,-1)}),U(R),U(D),c((e,t,r,i,a,o)=>{F(k,`aria-label`,e),A!==(A=n(S).key)&&(k.value=(k.__value=A)??``,E(k,A)),F(I,`aria-label`,t),H(te,n(S).subject),H(W,r),F(re,`aria-label`,i),F(ie,`aria-pressed`,n(g)===`html`),H(ae,a),F(K,`aria-pressed`,n(g)===`text`),H(oe,o)},[()=>X(`emails.list`),()=>X(`emails.list`),()=>X(`emails.headed`,{heading:n(S).heading,from:n(S).from||X(`emails.no_sender`),to:n(S).to}),()=>X(`emails.part`),()=>X(`emails.html`),()=>X(`emails.text`)]),f(`change`,k,e=>C(h,e.currentTarget.value,!0)),f(`click`,ie,()=>C(g,`html`)),f(`click`,K,()=>C(g,`text`)),t(e,D)},$$slots:{default:!0}})}),U(b),t(e,b),B()}l([`change`,`click`]);var bl=p(`<nav class="settings-tabs"><!> <!></nav> <!>`,1);function xl(e,r){O(r,!0);let a=z(r,`part`,3,null),l=P(()=>a()===`templates`);{let a=P(()=>X(`messages.title`)),f=P(()=>X(n(l)?`messages.templates.lede`:`messages.sending.lede`));kn(e,{get title(){return n(a)},get lede(){return n(f)},children:(e,a)=>{var f=bl(),p=d(f),m=s(p);{let e=P(()=>n(l)?``:`settings-tab-on`);Z(m,{to:`/messages`,get class(){return`settings-tab ${n(e)??``}`},children:(e,n)=>{j();var r=o();c(e=>H(r,e),[()=>X(`messages.sending.title`)]),t(e,r)},$$slots:{default:!0}})}var h=u(m,2);{let e=P(()=>n(l)?`settings-tab-on`:``);Z(h,{to:`/messages/templates`,get class(){return`settings-tab ${n(e)??``}`},children:(e,n)=>{j();var r=o();c(e=>H(r,e),[()=>X(`messages.templates.title`)]),t(e,r)},$$slots:{default:!0}})}U(p);var g=u(p,2),_=e=>{yl(e,{get api(){return r.api}})},v=e=>{ol(e,{get api(){return r.api}})};i(g,e=>{n(l)?e(_):e(v,-1)}),c(e=>F(p,`aria-label`,e),[()=>X(`messages.parts`)]),t(e,f)},$$slots:{default:!0}})}B()}var Sl=p(`<input class="input input-sm w-full font-mono" readonly=""/> <div><button type="button" class="btn btn-ghost btn-sm"> </button></div>`,1),Cl=p(`<div class="grid gap-3 sm:grid-cols-2"><!> <!></div> <!> <label class="flex flex-col gap-1.5"><span class="field-label"> </span> <textarea class="textarea w-full font-mono" rows="4" placeholder="session.started
481
+ actor.deleted"></textarea> <p class="hint"> </p></label> <!> <div class="flex gap-2"><button type="button" class="btn btn-primary btn-sm"> </button> <button type="button" class="btn btn-ghost btn-sm"> </button></div>`,1),wl=p(`<button type="button" class="btn btn-sm"> </button>`),Tl=p(`<span class="text-sm text-error"> </span>`),El=p(`<span class="hint"> </span>`),Dl=p(`<div class="flex flex-col gap-3 sheet p-3"><div class="flex flex-wrap items-center justify-between gap-2"><div class="flex min-w-0 flex-col"><span class="font-medium"> </span> <span class="hint break-all"><span class="font-mono"> </span> </span> <span class="hint"> </span> <!></div> <div class="flex flex-wrap gap-2"><button type="button" class="btn btn-sm"> </button> <button type="button" class="btn btn-sm"> </button> <button type="button" class="btn btn-ghost btn-sm"> </button> <button type="button" class="btn btn-ghost btn-sm"> </button></div></div></div>`),Ol=p(`<div class="flex flex-wrap items-center justify-between gap-2"><span class="text-sm"> <span class="hint"> </span></span> <button type="button" class="btn btn-ghost btn-sm"> </button></div>`),kl=p(`<!> <!> <!> <!>`,1),Al=p(`<!> <!> <!>`,1);function jl(e,r){O(r,!0);let a=`key name url actions lastDeliveredAt lastFailure archivedAt createdAt organization { key name }`,o=`
482
+ query Streams {
483
+ active: eventStreams { ${a} }
484
+ archived: eventStreams(archived: true) { ${a} }
485
+ organizations { key name }
486
+ }
487
+ `,l=pt(),p=T(null),m=T(!0),h=T(!1),g=T(null),_=T(null),y=T(null);async function b(){C(m,!0);let e=await l.attempt(()=>r.api.query(o));C(m,!1),e&&C(p,e,!0)}b();let x=e=>e.split(/[\s,]+/).map(e=>e.trim()).filter(Boolean);function S(){C(g,``),C(_,{key:``,name:``,url:``,actions:``,organization:``},!0),C(y,null),l.clear()}function w(e){C(g,e.key,!0),C(_,{key:e.key,name:e.name,url:e.url,actions:e.actions.join(`
488
+ `),organization:e.organization?.key??``},!0),C(y,null),l.clear()}function E(){C(g,null),C(_,null),l.clear()}async function D(){C(h,!0);let e=n(g)===``,t={key:n(_).key.trim(),name:n(_).name.trim(),url:n(_).url.trim(),actions:x(n(_).actions),organization:n(_).organization},i=await l.attempt(()=>e?r.api.query(`mutation Create($key: ID!, $name: String!, $url: String!, $actions: [String!], $organization: ID) {
489
+ createEventStream(key: $key, name: $name, url: $url, actions: $actions, organization: $organization) { secret }
490
+ }`,t):r.api.query(`mutation Update($key: ID!, $name: String, $url: String, $actions: [String!], $organization: ID) {
491
+ updateEventStream(key: $key, name: $name, url: $url, actions: $actions, organization: $organization) {
492
+ eventStream { key }
493
+ }
494
+ }`,t),X(e?`streams.added`:`streams.saved`,{name:n(_).name}));C(h,!1),i&&(C(y,e?i.createEventStream.secret:null,!0),E(),await b())}async function k(e,t,n,i=null){(!i||confirm(i))&&await l.attempt(()=>r.api.query(`mutation Act($key: ID!) { ${e}(key: $key) { eventStream { key } } }`,{key:t.key}),n)&&await b()}async function A(e){if(!confirm(X(`streams.rotate_confirm`,{name:e.name})))return;let t=await l.attempt(()=>r.api.query(`mutation Rotate($key: ID!) { rotateEventStreamSecret(key: $key) { secret } }`,{key:e.key}));t&&C(y,t.rotateEventStreamSecret.secret,!0)}async function j(e){C(h,!0);let t=await l.attempt(()=>r.api.query(`mutation Test($key: ID!) { testEventStream(key: $key) { delivered failure } }`,{key:e.key}));C(h,!1),t&&(t.testEventStream.delivered?l.say(X(`streams.tested`,{name:e.name})):l.blame(t.testEventStream.failure),await b())}let N=P(()=>n(_)?.key.trim()&&n(_).name.trim()&&n(_).url.trim());{let r=P(()=>X(`activity.title`));kn(e,{get title(){return n(r)},children:(e,r)=>{var a=Al(),o=d(a);Zs(o,{part:`streams`});var b=u(o,2);Cn(b,{get feedback(){return l.state}});var x=u(b,2),T=e=>{it(e,{})},O=e=>{var r=kl(),a=d(r),o=e=>{{let r=P(()=>X(`streams.secret.title`)),i=P(()=>X(`streams.secret.lede`));Q(e,{get title(){return n(r)},get lede(){return n(i)},children:(e,r)=>{var i=Sl(),a=d(i);M(a);var o=u(a,2),l=s(o),p=G(l,!0);U(o),c(e=>{te(a,n(y)),H(p,e)},[()=>X(`streams.secret.saved`)]),v(`focus`,a,e=>e.currentTarget.select()),f(`click`,l,()=>C(y,null)),t(e,i)},$$slots:{default:!0}})}};i(a,e=>{n(y)&&e(o)});var l=u(a,2),m=e=>{{let r=P(()=>n(g)===``?X(`streams.form.add`):X(`streams.form.edit`,{name:n(_).name}));Q(e,{get title(){return n(r)},children:(e,r)=>{var a=Cl(),o=d(a),l=s(o);{let e=P(()=>X(`streams.form.key`)),t=P(()=>n(g)!==``);$(l,{get label(){return n(e)},get disabled(){return n(t)},autocapitalize:`none`,autocorrect:`off`,spellcheck:`false`,get value(){return n(_).key},set value(e){n(_).key=e}})}var m=u(l,2);{let e=P(()=>X(`streams.form.name`));$(m,{get label(){return n(e)},get value(){return n(_).name},set value(e){n(_).name=e}})}U(o);var v=u(o,2);{let e=P(()=>X(`streams.form.address`));$(v,{get label(){return n(e)},type:`url`,placeholder:`https://siem.example.com/masks`,autocapitalize:`none`,spellcheck:`false`,get value(){return n(_).url},set value(e){n(_).url=e}})}var y=u(v,2),b=s(y),x=G(b,!0),S=u(b,2);ne(S);var C=u(S,2),w=G(C,!0);U(y);var T=u(y,2),O=e=>{{let t=P(()=>X(`streams.form.events_from`)),r=P(()=>[[``,X(`streams.form.every_organization`)],...n(p).organizations.map(e=>[e.key,X(`streams.form.only`,{name:e.name})])]);qi(e,{get label(){return n(t)},get value(){return n(_).organization},get options(){return n(r)},onchange:e=>n(_).organization=e})}};i(T,e=>{n(p).organizations.length&&e(O)});var k=u(T,2),A=s(k),j=G(A,!0),M=u(A,2),F=G(M,!0);U(k),c((e,t,r,i)=>{H(x,e),H(w,t),A.disabled=n(h)||!n(N),H(j,r),H(F,i)},[()=>X(`streams.form.actions`),()=>X(`streams.form.actions_hint`),()=>n(g)===``?X(`streams.form.create`):X(`streams.form.save`),()=>X(`streams.form.cancel`)]),ee(S,()=>n(_).actions,e=>n(_).actions=e),f(`click`,A,D),f(`click`,M,E),t(e,a)},$$slots:{default:!0}})}};i(l,e=>{n(_)&&e(m)});var b=u(l,2);{let e=e=>{var n=wl(),r=G(n,!0);c(e=>H(r,e),[()=>X(`streams.list.add`)]),f(`click`,n,S),t(e,n)},r=P(()=>X(`streams.list.title`)),a=P(()=>n(p).active.length?X(`streams.list.lede`):X(`streams.list.empty`));Q(b,{get title(){return n(r)},get lede(){return n(a)},actions:e,children:(e,r)=>{var a=V(),o=d(a);J(o,17,()=>n(p).active,e=>e.key,(e,r)=>{var a=Dl(),o=s(a),l=s(o),d=s(l),p=G(d,!0),m=u(d,2),g=s(m),_=G(g,!0),v=u(g);U(m);var y=u(m,2),b=G(y),x=u(y,2),S=e=>{var i=Tl(),a=G(i,!0);c(()=>H(a,n(r).lastFailure)),t(e,i)},C=e=>{var i=El(),a=G(i,!0);c(e=>H(a,e),[()=>X(`streams.list.last_delivered`,{day:St(n(r).lastDeliveredAt)})]),t(e,i)};i(x,e=>{n(r).lastFailure?e(S):n(r).lastDeliveredAt&&e(C,1)}),U(l);var T=u(l,2),E=s(T),D=G(E,!0),O=u(E,2),M=G(O,!0),N=u(O,2),P=G(N,!0),F=u(N,2),I=G(F,!0);U(T),U(o),U(a),c((e,t,i,a,o,s,c)=>{H(p,n(r).name),H(_,n(r).key),H(v,` · ${n(r).url??``} · ${e??``}`),H(b,`${t??``}${i??``}`),E.disabled=n(h),H(D,a),H(M,o),H(P,s),H(I,c)},[()=>X(`streams.list.added`,{day:St(n(r).createdAt)}),()=>n(r).actions.length?n(r).actions.join(`, `):X(`streams.list.every_action`),()=>n(r).organization?X(`streams.list.only`,{name:n(r).organization.name}):``,()=>X(`streams.list.test`),()=>X(`streams.list.edit`),()=>X(`streams.list.rotate`),()=>X(`streams.list.archive`)]),f(`click`,E,()=>j(n(r))),f(`click`,O,()=>w(n(r))),f(`click`,N,()=>A(n(r))),f(`click`,F,()=>k(`archiveEventStream`,n(r),X(`streams.archived_notice`,{name:n(r).name}),X(`streams.archive_confirm`,{name:n(r).name}))),t(e,a)}),t(e,a)},$$slots:{actions:!0,default:!0}})}var x=u(b,2),T=e=>{{let r=P(()=>X(`streams.archived.title`));Q(e,{get title(){return n(r)},children:(e,r)=>{var i=V(),a=d(i);J(a,17,()=>n(p).archived,e=>e.key,(e,r)=>{var i=Ol(),a=s(i),o=s(a),l=u(o),d=G(l,!0);U(a);var p=u(a,2),m=G(p,!0);U(i),c(e=>{H(o,`${n(r).name??``} `),H(d,n(r).url),H(m,e)},[()=>X(`streams.archived.restore`)]),f(`click`,p,()=>k(`restoreEventStream`,n(r),X(`streams.restored`,{name:n(r).name}))),t(e,i)}),t(e,i)},$$slots:{default:!0}})}};i(x,e=>{n(p).archived.length&&e(T)}),t(e,r)};i(x,e=>{n(m)&&!n(p)?e(T):n(p)&&e(O,1)}),t(e,a)},$$slots:{default:!0}})}B()}l([`click`]);var Ml=p(`<!> <!> <label class="flex flex-col gap-1.5"><span class="field-label"> </span> <textarea class="textarea w-full font-mono" rows="3" placeholder="203.0.113.0/24"></textarea> <span class="hint"> </span></label> <div><button type="button" class="btn btn-sm"> </button></div>`,1),Nl=p(`<div class="grid max-w-xl gap-3 sm:grid-cols-2"><!> <!></div>`),Pl=p(`<!> <!> <!> <!>`,1),Fl=p(`<!> <!>`,1);function Il(e,r){O(r,!0);let a=[[0,X(`settings.idle.never`)],[90,X(`settings.idle.after_90_days`)],[180,X(`settings.idle.after_180_days`)],[365,X(`settings.idle.after_a_year`)],[730,X(`settings.idle.after_two_years`)]],o=[[0,X(`settings.idle.never`)],[180,X(`settings.idle.after_180_days`)],[365,X(`settings.idle.after_a_year`)],[730,X(`settings.idle.after_two_years`)],[1095,X(`settings.idle.after_three_years`)]],l=(e,t)=>!t||e.some(([e])=>e===t)?e:[...e,[t,X(`settings.after_days`,{days:t})]],p=pt(),m=T(null),h=T(``),g=T(``);async function _(){let e=await p.attempt(()=>r.api.query(`
495
+ query SignInRules {
496
+ tenant { namedBy browsersOnly blockedAgents riskyNetworks suspendAfter deleteAfter signInPolicy { key } }
497
+ signInPolicies { key name }
498
+ }
499
+ `));e&&(C(m,e,!0),C(h,e.tenant.blockedAgents??``,!0),C(g,e.tenant.riskyNetworks??``,!0))}_();async function v(e,t){await p.attempt(()=>r.api.query(`mutation Update(
500
+ $namedBy: String, $browsersOnly: Boolean, $blockedAgents: String, $signInPolicy: ID,
501
+ $riskyNetworks: String, $suspendAfter: Int, $deleteAfter: Int
502
+ ) {
503
+ updateTenant(
504
+ namedBy: $namedBy
505
+ browsersOnly: $browsersOnly
506
+ blockedAgents: $blockedAgents
507
+ riskyNetworks: $riskyNetworks
508
+ signInPolicy: $signInPolicy
509
+ suspendAfter: $suspendAfter
510
+ deleteAfter: $deleteAfter
511
+ ) { tenant { name } }
512
+ }`,e),t)&&await _()}function y(e){return e&&!confirm(X(`settings.idle.delete_confirm`))?_():v({deleteAfter:e},X(`settings.idle.updated`))}var b=Fl(),x=d(b);Cn(x,{get feedback(){return p.state}});var S=u(x,2),w=e=>{var r=Pl(),i=d(r);{let e=P(()=>X(`settings.naming.title`)),t=P(()=>X(`settings.naming.help`));Q(i,{row:!0,get title(){return n(e)},get help(){return n(t)},children:(e,t)=>{{let t=P(()=>[[`nickname`,X(`settings.naming.nickname`)],[`email`,X(`settings.naming.email`)],[`either`,X(`settings.naming.either`)]]);qi(e,{get value(){return n(m).tenant.namedBy},get options(){return n(t)},onchange:e=>v({namedBy:e},X(`settings.naming.updated`))})}},$$slots:{default:!0}})}var p=u(i,2);{let e=P(()=>X(`settings.policy.title`)),t=P(()=>X(`settings.policy.help`));Q(p,{row:!0,get title(){return n(e)},get help(){return n(t)},children:(e,t)=>{{let t=P(()=>n(m).tenant.signInPolicy?.key??``),r=P(()=>[[``,X(`settings.policy.built_in`)],...n(m).signInPolicies.map(e=>[e.key,e.name])]);qi(e,{get value(){return n(t)},get options(){return n(r)},onchange:e=>v({signInPolicy:e},X(`settings.policy.updated`))})}},$$slots:{default:!0}})}var _=u(p,2);{let e=P(()=>X(`settings.access.title`)),r=P(()=>X(`settings.access.help`));Q(_,{row:!0,get title(){return n(e)},get help(){return n(r)},children:(e,r)=>{var i=Ml(),a=d(i);{let e=P(()=>X(`settings.access.browsers_only`));Yi(a,{get label(){return n(e)},get checked(){return n(m).tenant.browsersOnly},onchange:e=>v({browsersOnly:e},X(`settings.access.updated`))})}var o=u(a,2);{let e=P(()=>X(`settings.access.refused_agents`));$(o,{get label(){return n(e)},placeholder:`curl, python-requests`,onsave:()=>v({blockedAgents:n(h)},X(`settings.access.updated`)),get value(){return n(h)},set value(e){C(h,e,!0)}})}var l=u(o,2),p=s(l),_=G(p,!0),y=u(p,2);ne(y);var b=u(y,2),x=G(b,!0);U(l);var S=u(l,2),w=s(S),T=G(w,!0);U(S),c((e,t,n)=>{H(_,e),H(x,t),H(T,n)},[()=>X(`settings.access.risky_networks`),()=>X(`settings.access.risky_hint`),()=>X(`settings.access.save_networks`)]),ee(y,()=>n(g),e=>C(g,e)),f(`click`,w,()=>v({riskyNetworks:n(g)},X(`settings.access.networks_saved`))),t(e,i)},$$slots:{default:!0}})}var b=u(_,2);{let e=P(()=>X(`settings.idle.title`)),r=P(()=>X(`settings.idle.help`));Q(b,{row:!0,get title(){return n(e)},get help(){return n(r)},children:(e,r)=>{var i=Nl(),c=s(i);{let e=P(()=>X(`settings.idle.suspend`)),t=P(()=>n(m).tenant.suspendAfter??0),r=P(()=>l(a,n(m).tenant.suspendAfter));qi(c,{get label(){return n(e)},get value(){return n(t)},get options(){return n(r)},onchange:e=>v({suspendAfter:Number(e)},X(`settings.idle.updated`))})}var d=u(c,2);{let e=P(()=>X(`settings.idle.delete`)),t=P(()=>n(m).tenant.deleteAfter??0),r=P(()=>l(o,n(m).tenant.deleteAfter).map(([e,t])=>[e,t,e>0&&e<=(n(m).tenant.suspendAfter??0)]));qi(d,{get label(){return n(e)},get value(){return n(t)},get options(){return n(r)},onchange:e=>y(Number(e))})}U(i),t(e,i)},$$slots:{default:!0}})}t(e,r)};i(S,e=>{n(m)&&e(w)}),t(e,b),B()}l([`click`]);var Ll=p(`<button type="button" class="btn btn-primary btn-sm"> </button>`),Rl=p(`<option> </option>`),zl=p(`<p class="text-xs text-warning"> <!></p>`),Bl=p(`<div class="grid gap-3 sm:grid-cols-2"><!> <label class="flex flex-col gap-1.5"><span class="field-label"> </span> <select class="select select-sm w-full"></select></label> <label class="flex flex-col gap-1.5"><span class="field-label"> </span> <select class="select select-sm w-full"></select></label></div> <p class="hint"> </p> <!> <div class="flex flex-col gap-1.5"><span class="field-label"> </span> <!></div>`,1),Vl=p(`<p class="text-xs opacity-85"> </p> <!>`,1),Hl=p(`<p class="text-xs text-warning"> </p>`),Ul=p(`<label class="flex flex-col gap-1.5"><span class="field-label"> </span> <select class="select select-sm w-full"></select></label>`),Wl=p(`<div class="flex flex-wrap items-center gap-x-5 gap-y-2"><label class="flex items-center gap-2 text-sm"><input class="input input-sm w-16" type="number" min="8"/> </label> <!> <!></div>`),Gl=p(`<div class="flex flex-wrap gap-x-5 gap-y-2"><!> <!></div>`),Kl=p(`<div class="grid gap-3 sm:grid-cols-[2fr_1fr]"><!> <!></div> <div class="policy-rows"><div class="policy-row"><span class="legend"> </span> <div class="policy-controls"><!> <!> <!> <!></div></div> <div class="policy-row"><span class="legend"> </span> <div class="policy-controls"><div class="grid gap-3 sm:grid-cols-3"></div> <div class="flex flex-wrap gap-x-5 gap-y-2"><!> <!></div> <!></div></div> <div class="policy-row"><span class="legend"> </span> <div class="policy-controls"><div class="flex flex-wrap gap-x-5 gap-y-2"></div> <!> <!></div></div> <div class="policy-row"><span class="legend"> </span> <div class="policy-controls"><div class="flex flex-wrap gap-x-5 gap-y-2"></div> <!> <!></div></div> <div class="policy-row"><span class="legend"> </span> <div class="policy-controls"><div class="flex flex-wrap items-center gap-x-5 gap-y-2"><label class="flex items-center gap-2 text-sm"> <select class="select select-sm w-auto"></select></label> <label class="flex items-center gap-2 text-sm"> <select class="select select-sm w-auto"></select></label></div> <!> <p class="hint"> </p></div></div> <div class="policy-row"><span class="legend"> </span> <div class="policy-controls"><div class="flex flex-wrap items-center gap-x-5 gap-y-2"><label class="flex items-center gap-2 text-sm"> <select class="select select-sm w-auto"></select> </label> <label class="flex items-center gap-2 text-sm"> <select class="select select-sm w-auto"></select> </label></div> <p class="hint"> </p></div></div></div> <div class="flex gap-2"><button type="button" class="btn btn-primary btn-sm"> </button> <button type="button" class="btn btn-ghost btn-sm"> </button></div>`,1),ql=p(`<p class="text-sm opacity-85"> </p>`),Jl=p(`<span class="badge badge-success badge-sm"> </span>`),Yl=p(` <!>`,1),Xl=p(`<span class="hint"> <!></span>`),Zl=p(`<button type="button" class="btn btn-ghost btn-sm"> </button>`),Ql=p(`<div class="flex flex-wrap items-start justify-between gap-2 border-b border-base-300 pb-3 last:border-0 last:pb-0"><div class="flex min-w-0 flex-col gap-1"><span class="font-medium"> <!></span> <span class="hint"> </span> <!></div> <div class="flex gap-2"><button type="button" class="btn btn-sm"> </button> <!></div></div>`),$l=p(`<!> <!>`,1),eu=p(`<div class="flex items-center justify-between gap-2"><span class="text-sm"> </span> <button type="button" class="btn btn-ghost btn-sm"> </button></div>`),tu=p(`<!> <!> <!> <!>`,1);function nu(e,r){O(r,!0);let l=`
513
+ key name signup nickname email emailVerified phone phoneVerified
514
+ passwordMinimum refuseCommonPasswords passwordRequired firstFactors secondFactors secondFactorRequired appsRequireSecondFactor
515
+ sessionLifetime sessionIdleTimeout refuseBreachedPasswords riskStepUpAt riskRefuseAt proofOfWork
516
+ emailDomains providers confirmation hidden signupScopes default archivedAt
517
+ clients { clientId name }
518
+ `,p=`
519
+ query Policies {
520
+ active: signInPolicies { ${l} }
521
+ archived: signInPolicies(archived: true) { ${l} }
522
+ providers { key name }
523
+ tenant { namedBy texts mails }
524
+ scopesSupported
525
+ }
526
+ `,m=`
527
+ $key: ID!, $name: String, $signup: Boolean, $nickname: String, $email: String,
528
+ $emailVerified: Boolean, $phone: String, $phoneVerified: Boolean, $passwordMinimum: Int,
529
+ $refuseCommonPasswords: Boolean, $passwordRequired: Boolean, $firstFactors: [String!], $secondFactors: [String!],
530
+ $secondFactorRequired: Boolean, $appsRequireSecondFactor: Boolean,
531
+ $sessionLifetime: Int, $sessionIdleTimeout: Int,
532
+ $refuseBreachedPasswords: Boolean, $riskStepUpAt: Int, $riskRefuseAt: Int, $proofOfWork: Int, $emailDomains: [String!], $providers: [String!],
533
+ $everyProvider: Boolean, $confirmation: String, $hidden: Boolean, $signupScopes: [String!]
534
+ `,h=`
535
+ key: $key, name: $name, signup: $signup, nickname: $nickname, email: $email,
536
+ emailVerified: $emailVerified, phone: $phone, phoneVerified: $phoneVerified,
537
+ passwordMinimum: $passwordMinimum, refuseCommonPasswords: $refuseCommonPasswords, passwordRequired: $passwordRequired,
538
+ firstFactors: $firstFactors, secondFactors: $secondFactors,
539
+ secondFactorRequired: $secondFactorRequired, appsRequireSecondFactor: $appsRequireSecondFactor,
540
+ sessionLifetime: $sessionLifetime, sessionIdleTimeout: $sessionIdleTimeout,
541
+ refuseBreachedPasswords: $refuseBreachedPasswords, riskStepUpAt: $riskStepUpAt, riskRefuseAt: $riskRefuseAt, proofOfWork: $proofOfWork, emailDomains: $emailDomains,
542
+ providers: $providers, everyProvider: $everyProvider, confirmation: $confirmation,
543
+ hidden: $hidden, signupScopes: $signupScopes
544
+ `,g=3600,_=24*g,v=[[null,X(`policy_rules.values.default_lifetime`)],...[g,8*g,12*g,_,7*_,30*_,90*_].map(e=>[e,xa(e)])],y=[[null,X(`policies.never`)],...[900,1800,g,4*g,_].map(e=>[e,xa(e)])],b=[[null,X(`policies.never`)],...[30,50,70,90].map(e=>[e,X(`policies.score`,{score:e})])],x=[[0,X(`policies.form.signup.work_off`)],[14,X(`policies.form.signup.work_light`)],[17,X(`policies.form.signup.work_standard`)],[20,X(`policies.form.signup.work_strong`)]],S=e=>x.some(([t])=>t===e)?x:[...x,[e,X(`policies.form.signup.work_bits`,{bits:e})]],E=(e,t)=>t===null||e.some(([e])=>e===t)?e:[...e,[t,X(`policy_rules.units.second`,{count:t})]],D=(e,t)=>t.map(t=>[t,X(`policies.${e}.${t}`)]),k=D(`presence`,[`off`,`optional`,`required`]),A=D(`first`,[`password`,`passkey`,`provider`,`email_code`]),N=D(`second`,[`otp`,`passkey`,`backup_codes`,`email`,`sms`,`trusted_device`]),F=D(`confirmations`,[`none`,`code`,`link`,`approval`]),z=[`nickname`,`email`,`phone`].map(e=>[e,X(`policies.form.account.${e}`)]),te={key:``,name:``,signup:!1,nickname:`optional`,email:`required`,emailVerified:!1,phone:`off`,phoneVerified:!1,passwordMinimum:8,refuseCommonPasswords:!0,passwordRequired:!1,firstFactors:[`password`,`passkey`,`provider`],secondFactors:[`otp`,`passkey`,`backup_codes`],secondFactorRequired:!1,appsRequireSecondFactor:!1,sessionLifetime:null,sessionIdleTimeout:null,refuseBreachedPasswords:!1,riskStepUpAt:null,riskRefuseAt:null,proofOfWork:17,emailDomains:``,providers:null,confirmation:`none`,hidden:!1,signupScopes:[]},ne=pt(),W=T(null),re=T(!0),ie=T(!1),ae=T(null),K=T(w({...te}));async function se(){C(re,!0);let e=await ne.attempt(()=>r.api.query(p));C(re,!1),e&&C(W,e,!0)}se();function q(){C(ae,``),C(Y,!1),C(K,structuredClone(te),!0),ne.clear()}function ce(e){C(ae,e.key,!0),C(K,{...structuredClone(oe(e)),emailDomains:e.emailDomains.join(` `)},!0),ne.clear()}let le=e=>e.toLowerCase().normalize(`NFKD`).replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``),Y=T(!1);function ue(e){n(K).name=e,n(ae)===``&&!n(Y)&&(n(K).key=le(e))}function de(){C(ae,null),ne.clear()}let fe=(e,t,n)=>n?[...new Set([...e,t])]:e.filter(e=>e!==t);function pe(){return{key:n(K).key.trim(),name:n(K).name.trim(),signup:n(K).signup,nickname:n(K).nickname,email:n(K).email,emailVerified:n(K).emailVerified,phone:n(K).phone,phoneVerified:n(K).phoneVerified,passwordMinimum:Number(n(K).passwordMinimum)||8,refuseCommonPasswords:n(K).refuseCommonPasswords,passwordRequired:n(K).passwordRequired&&n(K).firstFactors.includes(`password`),firstFactors:n(K).firstFactors,secondFactors:n(K).secondFactors,secondFactorRequired:n(K).secondFactorRequired,appsRequireSecondFactor:n(K).appsRequireSecondFactor,sessionLifetime:n(K).sessionLifetime,sessionIdleTimeout:n(K).sessionIdleTimeout,refuseBreachedPasswords:n(K).refuseBreachedPasswords,riskStepUpAt:n(K).riskStepUpAt,riskRefuseAt:n(K).riskRefuseAt,proofOfWork:Number(n(K).proofOfWork)||0,emailDomains:n(K).emailDomains.split(/[\s,]+/).filter(Boolean),providers:n(K).providers??[],everyProvider:n(K).providers===null,confirmation:n(K).confirmation,hidden:n(K).hidden,signupScopes:n(K).signupScopes}}async function me(){C(ie,!0);let e=n(ae)===``,t=await ne.attempt(()=>r.api.query(e?`mutation Create(${m}) { createSignInPolicy(${h}) { signInPolicy { key } } }`:`mutation Update(${m}) { updateSignInPolicy(${h}) { signInPolicy { key } } }`,pe()),X(e?`policies.added`:`policies.saved`,{name:n(K).name}));C(ie,!1),t&&(C(ae,null),await se())}async function he(e,t,n,i=null){(!i||confirm(i))&&await ne.attempt(()=>r.api.query(`mutation Act($key: ID!) { ${e}(key: $key) { signInPolicy { key } } }`,{key:t.key}),n)&&await se()}let ge=e=>[e.signup?X(`policies.summary.signup_open`):X(`policies.summary.invitation_only`),e.secondFactorRequired?X(`policies.summary.second_factor_required`):null,e.appsRequireSecondFactor?X(`policies.summary.apps_require_second_factor`):null,e.sessionLifetime?X(`policies.summary.lifetime`,{duration:xa(e.sessionLifetime)}):null,e.sessionIdleTimeout?X(`policies.summary.idle`,{duration:xa(e.sessionIdleTimeout)}):null,e.confirmation===`none`?null:X(`policies.summary.confirmed_by`,{confirmation:e.confirmation}),e.phone===`required`?X(`policies.summary.phone_required`):null,e.hidden?X(`policies.summary.hidden`):null].filter(Boolean).join(` · `),_e=P(()=>n(W)?.providers??[]);{let l=e=>{var r=V(),a=d(r),o=e=>{var n=Ll(),r=G(n,!0);c(e=>H(r,e),[()=>X(`policies.add`)]),f(`click`,n,q),t(e,n)};i(a,e=>{n(ae)===null&&e(o)}),t(e,r)},p=P(()=>X(`policies.title`));kn(e,{get title(){return n(p)},actions:l,children:(e,l)=>{var p=$l(),m=d(p);Cn(m,{get feedback(){return ne.state}});var h=u(m,2),g=e=>{it(e,{})},_=e=>{var l=tu(),p=d(l),m=e=>{{let r=P(()=>n(ae)===``?X(`policies.form.new`):n(K).name);Q(e,{get title(){return n(r)},children:(e,r)=>{var a=Kl(),l=d(a),p=s(l);{let e=P(()=>X(`policies.form.name`)),t=P(()=>X(`policies.form.name_placeholder`));$(p,{get label(){return n(e)},get value(){return n(K).name},oninput:e=>ue(e.currentTarget.value),get placeholder(){return n(t)}})}var m=u(p,2);{let e=P(()=>X(`policies.form.key`)),t=P(()=>n(ae)!==``);$(m,{get label(){return n(e)},oninput:()=>C(Y,!0),get disabled(){return n(t)},autocapitalize:`none`,autocorrect:`off`,spellcheck:`false`,class:`input input-sm w-full font-mono`,get value(){return n(K).key},set value(e){n(K).key=e}})}U(l);var h=u(l,2),g=s(h),_=s(g),x=G(_,!0),w=u(_,2),T=s(w);{let e=P(()=>X(`policies.form.signup.open`));Yi(T,{get label(){return n(e)},get checked(){return n(K).signup},set checked(e){n(K).signup=e}})}var D=u(T,2),O=e=>{var r=Bl(),a=d(r),l=s(a);{let e=P(()=>X(`policies.form.signup.email_domains`)),t=P(()=>X(`policies.form.signup.email_domains_placeholder`));$(l,{get label(){return n(e)},autocapitalize:`none`,spellcheck:`false`,get placeholder(){return n(t)},get value(){return n(K).emailDomains},set value(e){n(K).emailDomains=e}})}var f=u(l,2),p=s(f),m=G(p,!0),h=u(p,2);J(h,21,()=>F,([e,t])=>e,(e,r)=>{var i=P(()=>I(n(r),2));let a=()=>n(i)[0],o=()=>n(i)[1];var s=Rl(),l=G(s,!0),u={};c(()=>{H(l,o()),u!==(u=a())&&(s.value=(s.__value=u)??``)}),t(e,s)}),U(h),L(h),U(f);var g=u(f,2),_=s(g),v=G(_,!0),y=u(_,2);J(y,21,()=>S(n(K).proofOfWork),([e,t])=>e,(e,r)=>{var i=P(()=>I(n(r),2));let a=()=>n(i)[0],o=()=>n(i)[1];var s=Rl(),l=G(s,!0),u={};c(()=>{H(l,o()),u!==(u=a())&&(s.value=(s.__value=u)??``)}),t(e,s)}),U(y),L(y),U(g),U(a);var b=u(a,2),x=G(b,!0),C=u(b,2),w=e=>{var n=zl(),r=s(n);Z(u(r),{to:`/messages`,class:`link`,children:(e,n)=>{j();var r=o();c(e=>H(r,e),[()=>X(`policies.form.add_one`)]),t(e,r)},$$slots:{default:!0}}),U(n),c(e=>H(r,`${e??``} `),[()=>X(`policies.form.signup.no_mail`)]),t(e,n)};i(C,e=>{(n(K).confirmation===`code`||n(K).confirmation===`link`)&&!n(W).tenant.mails&&e(w)});var T=u(C,2),E=s(T),D=G(E,!0),O=u(E,2);{let e=P(()=>n(W).scopesSupported.filter(e=>!e.startsWith(`masks:`)));hn(O,{get value(){return n(K).signupScopes},get available(){return n(e)},onchange:e=>n(K).signupScopes=e})}U(T),c((e,t,n,r)=>{H(m,e),H(v,t),H(x,n),H(D,r)},[()=>X(`policies.form.signup.confirmation`),()=>X(`policies.form.signup.work`),()=>X(`policies.form.signup.work_hint`),()=>X(`policies.form.signup.scopes`)]),R(h,()=>n(K).confirmation,e=>n(K).confirmation=e),R(y,()=>n(K).proofOfWork,e=>n(K).proofOfWork=e),t(e,r)};i(D,e=>{n(K).signup&&e(O)});var B=u(D,2);{let e=P(()=>X(`policies.form.signup.hidden`));Yi(B,{get label(){return n(e)},get checked(){return n(K).hidden},set checked(e){n(K).hidden=e}})}var te=u(B,2),ne=e=>{var r=Vl(),a=d(r),l=G(a,!0),f=u(a,2),p=e=>{var n=zl(),r=s(n);Z(u(r),{to:`/messages`,class:`link`,children:(e,n)=>{j();var r=o();c(e=>H(r,e),[()=>X(`policies.form.add_one`)]),t(e,r)},$$slots:{default:!0}}),U(n),c(e=>H(r,`${e??``} `),[()=>X(`policies.form.signup.hidden_no_mail`)]),t(e,n)};i(f,e=>{n(W).tenant.mails||e(p)}),c(e=>H(l,e),[()=>X(`policies.form.signup.hidden_hint`)]),t(e,r)},re=e=>{var n=Hl(),r=G(n,!0);c(e=>H(r,e),[()=>X(`policies.form.signup.open_warning`)]),t(e,n)};i(te,e=>{n(K).hidden?e(ne):n(K).signup&&e(re,1)}),U(w),U(g);var oe=u(g,2),se=s(oe),q=G(se,!0),ce=u(se,2),le=s(ce);J(le,21,()=>z,([e,t])=>e,(e,r)=>{var i=P(()=>I(n(r),2));let a=()=>n(i)[0],o=()=>n(i)[1];var l=Ul(),d=s(l),f=G(d,!0),p=u(d,2);J(p,21,()=>k,([e,t])=>e,(e,r)=>{var i=P(()=>I(n(r),2));let a=()=>n(i)[0],o=()=>n(i)[1];var s=Rl(),l=G(s,!0),u={};c(()=>{H(l,o()),u!==(u=a())&&(s.value=(s.__value=u)??``)}),t(e,s)}),U(p),L(p),U(l),c(()=>H(f,o())),R(p,()=>n(K)[a()],e=>n(K)[a()]=e),t(e,l)}),U(le);var pe=u(le,2),he=s(pe);{let e=P(()=>X(`policies.form.account.email_verified`));Yi(he,{get label(){return n(e)},get checked(){return n(K).emailVerified},set checked(e){n(K).emailVerified=e}})}var ge=u(he,2);{let e=P(()=>X(`policies.form.account.phone_verified`));Yi(ge,{get label(){return n(e)},get checked(){return n(K).phoneVerified},set checked(e){n(K).phoneVerified=e}})}U(pe);var ve=u(pe,2),ye=e=>{var n=zl(),r=s(n);Z(u(r),{to:`/messages`,class:`link`,children:(e,n)=>{j();var r=o();c(e=>H(r,e),[()=>X(`policies.form.add_one`)]),t(e,r)},$$slots:{default:!0}}),U(n),c(e=>H(r,`${e??``} `),[()=>X(`policies.form.account.no_sms`)]),t(e,n)};i(ve,e=>{n(K).phone!==`off`&&n(K).phoneVerified&&!n(W).tenant.texts&&e(ye)}),U(ce),U(oe);var be=u(oe,2),xe=s(be),Se=G(xe,!0),Ce=u(xe,2),we=s(Ce);J(we,21,()=>A,([e,t])=>e,(e,t)=>{var r=P(()=>I(n(t),2));let i=()=>n(r)[0],a=()=>n(r)[1];{let t=P(()=>n(K).firstFactors.includes(i()));Yi(e,{get label(){return a()},get checked(){return n(t)},onchange:e=>n(K).firstFactors=fe(n(K).firstFactors,i(),e)})}}),U(we);var Te=u(we,2),Ee=e=>{var r=Wl(),a=s(r),o=s(a);M(o);var l=u(o);U(a);var d=u(a,2);{let e=P(()=>X(`policies.form.sign_in.refuse_common`));Yi(d,{get label(){return n(e)},get checked(){return n(K).refuseCommonPasswords},set checked(e){n(K).refuseCommonPasswords=e}})}var f=u(d,2),p=e=>{{let t=P(()=>X(`policies.form.sign_in.password_required`));Yi(e,{get label(){return n(t)},get checked(){return n(K).passwordRequired},set checked(e){n(K).passwordRequired=e}})}},m=P(()=>n(K).firstFactors.includes(`passkey`));i(f,e=>{n(m)&&e(p)}),U(r),c(e=>H(l,` ${e??``}`),[()=>X(`policies.form.sign_in.characters`)]),ee(o,()=>n(K).passwordMinimum,e=>n(K).passwordMinimum=e),t(e,r)},De=P(()=>n(K).firstFactors.includes(`password`));i(Te,e=>{n(De)&&e(Ee)});var Oe=u(Te,2),ke=e=>{var r=Gl(),a=s(r);{let e=P(()=>X(`policies.form.sign_in.all_providers`)),t=P(()=>n(K).providers===null);Yi(a,{get label(){return n(e)},get checked(){return n(t)},onchange:e=>n(K).providers=e?null:n(_e).map(e=>e.key)})}var o=u(a,2),c=e=>{var r=V(),i=d(r);J(i,17,()=>n(_e),e=>e.key,(e,t)=>{{let r=P(()=>n(K).providers.includes(n(t).key));Yi(e,{get label(){return n(t).name},get checked(){return n(r)},onchange:e=>n(K).providers=fe(n(K).providers,n(t).key,e)})}}),t(e,r)};i(o,e=>{n(K).providers!==null&&e(c)}),U(r),t(e,r)},Ae=P(()=>n(K).firstFactors.includes(`provider`)&&n(_e).length);i(Oe,e=>{n(Ae)&&e(ke)}),U(Ce),U(be);var je=u(be,2),Me=s(je),Ne=G(Me,!0),Pe=u(Me,2),Fe=s(Pe);J(Fe,21,()=>N,([e,t])=>e,(e,t)=>{var r=P(()=>I(n(t),2));let i=()=>n(r)[0],a=()=>n(r)[1];{let t=P(()=>n(K).secondFactors.includes(i()));Yi(e,{get label(){return a()},get checked(){return n(t)},onchange:e=>n(K).secondFactors=fe(n(K).secondFactors,i(),e)})}}),U(Fe);var Ie=u(Fe,2);{let e=P(()=>X(`policies.form.second_factor.required`));Yi(Ie,{get label(){return n(e)},get checked(){return n(K).secondFactorRequired},set checked(e){n(K).secondFactorRequired=e}})}var Le=u(Ie,2);{let e=P(()=>X(`policies.form.second_factor.apps`));Yi(Le,{get label(){return n(e)},get checked(){return n(K).appsRequireSecondFactor},set checked(e){n(K).appsRequireSecondFactor=e}})}U(Pe),U(je);var Re=u(je,2),ze=s(Re),Be=G(ze,!0),Ve=u(ze,2),He=s(Ve),Ue=s(He),We=s(Ue),Ge=u(We);J(Ge,21,()=>E(b,n(K).riskStepUpAt),([e,t])=>e,(e,r)=>{var i=P(()=>I(n(r),2));let a=()=>n(i)[0],o=()=>n(i)[1];var s=Rl(),l=G(s,!0),u={};c(()=>{H(l,o()),u!==(u=a())&&(s.value=(s.__value=u)??``)}),t(e,s)}),U(Ge),L(Ge),U(Ue);var Ke=u(Ue,2),qe=s(Ke),Je=u(qe);J(Je,21,()=>E(b,n(K).riskRefuseAt),([e,t])=>e,(e,r)=>{var i=P(()=>I(n(r),2));let a=()=>n(i)[0],o=()=>n(i)[1];var s=Rl(),l=G(s,!0),u={};c(()=>{H(l,o()),u!==(u=a())&&(s.value=(s.__value=u)??``)}),t(e,s)}),U(Je),L(Je),U(Ke),U(He);var Ye=u(He,2);{let e=P(()=>X(`policies.form.risk.refuse_breached`));Yi(Ye,{get label(){return n(e)},get checked(){return n(K).refuseBreachedPasswords},set checked(e){n(K).refuseBreachedPasswords=e}})}var Xe=u(Ye,2),Ze=G(Xe,!0);U(Ve),U(Re);var Qe=u(Re,2),$e=s(Qe),et=G($e,!0),tt=u($e,2),nt=s(tt),rt=s(nt),it=s(rt),at=u(it);J(at,21,()=>E(v,n(K).sessionLifetime),([e,t])=>e,(e,r)=>{var i=P(()=>I(n(r),2));let a=()=>n(i)[0],o=()=>n(i)[1];var s=Rl(),l=G(s,!0),u={};c(()=>{H(l,o()),u!==(u=a())&&(s.value=(s.__value=u)??``)}),t(e,s)}),U(at),L(at);var ot=u(at);U(rt);var st=u(rt,2),ct=s(st),lt=u(ct);J(lt,21,()=>E(y,n(K).sessionIdleTimeout),([e,t])=>e,(e,r)=>{var i=P(()=>I(n(r),2));let a=()=>n(i)[0],o=()=>n(i)[1];var s=Rl(),l=G(s,!0),u={};c(()=>{H(l,o()),u!==(u=a())&&(s.value=(s.__value=u)??``)}),t(e,s)}),U(lt),L(lt);var ut=u(lt);U(st),U(nt);var dt=u(nt,2),ft=G(dt,!0);U(tt),U(Qe),U(h);var pt=u(h,2),mt=s(pt),ht=G(mt,!0),gt=u(mt,2),_t=G(gt,!0);U(pt),c((e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g)=>{H(x,e),H(q,t),H(Se,n),H(Ne,r),H(Be,i),H(We,`${a??``} `),H(qe,`${o??``} `),H(Ze,s),H(et,c),H(it,`${l??``} `),H(ot,` ${u??``}`),H(ct,`${d??``} `),H(ut,` ${f??``}`),H(ft,p),mt.disabled=m,H(ht,h),H(_t,g)},[()=>X(`policies.form.signup.legend`),()=>X(`policies.form.account.legend`),()=>X(`policies.form.sign_in.legend`),()=>X(`policies.form.second_factor.legend`),()=>X(`policies.form.risk.legend`),()=>X(`policies.form.risk.step_up`),()=>X(`policies.form.risk.refuse`),()=>X(`policies.form.risk.hint`),()=>X(`policies.form.sessions.legend`),()=>X(`policies.form.sessions.last`),()=>X(`policies.form.sessions.after_sign_in`),()=>X(`policies.form.sessions.end_after`),()=>X(`policies.form.sessions.idle`),()=>X(`policies.form.sessions.hint`),()=>n(ie)||!n(K).key.trim()||!n(K).name.trim(),()=>n(ae)===``?X(`policies.form.create`):X(`policies.form.save`),()=>X(`policies.form.cancel`)]),R(Ge,()=>n(K).riskStepUpAt,e=>n(K).riskStepUpAt=e),R(Je,()=>n(K).riskRefuseAt,e=>n(K).riskRefuseAt=e),R(at,()=>n(K).sessionLifetime,e=>n(K).sessionLifetime=e),R(lt,()=>n(K).sessionIdleTimeout,e=>n(K).sessionIdleTimeout=e),f(`click`,mt,me),f(`click`,gt,de),t(e,a)},$$slots:{default:!0}})}};i(p,e=>{n(ae)!==null&&e(m)});var h=u(p,2);Q(h,{children:(e,r)=>{var a=$l(),l=d(a),p=e=>{var n=ql(),r=G(n,!0);c(e=>H(r,e),[()=>X(`policies.list.empty`)]),t(e,n)};i(l,e=>{n(W).active.length===0&&e(p)});var m=u(l,2);J(m,17,()=>n(W).active,e=>e.key,(e,r)=>{var a=Ql(),l=s(a),p=s(l),m=s(p),h=u(m),g=e=>{var n=Jl(),r=G(n,!0);c(e=>H(r,e),[()=>X(`policies.list.default`)]),t(e,n)};i(h,e=>{n(r).default&&e(g)}),U(p);var _=u(p,2),v=G(_,!0),y=u(_,2),b=e=>{var i=Xl(),a=s(i),l=u(a);J(l,19,()=>n(r).clients,e=>e.clientId,(e,r,i)=>{j();var a=Yl(),s=d(a,!0),l=u(s);{let e=P(()=>`/clients/${n(r).clientId}`);Z(l,{get to(){return n(e)},class:`link`,children:(e,i)=>{j();var a=o();c(()=>H(a,n(r).name)),t(e,a)},$$slots:{default:!0}})}c(()=>H(s,n(i)?`, `:``)),t(e,a)}),U(i),c(e=>H(a,`${e??``} `),[()=>X(`policies.list.used_by`)]),t(e,i)};i(y,e=>{n(r).clients.length&&e(b)}),U(l);var x=u(l,2),S=s(x),C=G(S,!0),w=u(S,2),T=e=>{var i=Zl(),a=G(i,!0);c(e=>H(a,e),[()=>X(`policies.list.archive`)]),f(`click`,i,()=>he(`archiveSignInPolicy`,n(r),X(`policies.archived_notice`,{name:n(r).name}),X(`policies.archive_confirm`,{name:n(r).name}))),t(e,i)};i(w,e=>{n(r).default||e(T)}),U(x),U(a),c((e,t)=>{H(m,`${n(r).name??``} `),H(v,e),H(C,t)},[()=>ge(n(r)),()=>X(`policies.list.edit`)]),f(`click`,S,()=>ce(n(r))),t(e,a)}),t(e,a)},$$slots:{default:!0}});var g=u(h,2),_=e=>{var i=V(),o=d(i);a(o,()=>n(W),e=>{Il(e,{get api(){return r.api}})}),t(e,i)};i(g,e=>{n(ae)===null&&e(_)});var x=u(g,2),w=e=>{{let r=P(()=>X(`policies.archived.title`));Q(e,{get title(){return n(r)},children:(e,r)=>{var i=V(),a=d(i);J(a,17,()=>n(W).archived,e=>e.key,(e,r)=>{var i=eu(),a=s(i),o=G(a,!0),l=u(a,2),d=G(l,!0);U(i),c(e=>{H(o,n(r).name),H(d,e)},[()=>X(`policies.archived.restore`)]),f(`click`,l,()=>he(`restoreSignInPolicy`,n(r),X(`policies.restored`,{name:n(r).name}))),t(e,i)}),t(e,i)},$$slots:{default:!0}})}};i(x,e=>{n(W).archived.length&&e(w)}),t(e,l)};i(h,e=>{n(re)&&!n(W)?e(g):n(W)&&e(_,1)}),t(e,p)},$$slots:{actions:!0,default:!0}})}B()}l([`click`]);var ru=p(`<li><div class="min-w-0"><div class="text-sm font-medium"> </div> <code class="hint font-mono text-xs break-all"> </code> <div class="hint text-xs"> </div></div> <button type="button" class="btn btn-ghost btn-xs ml-auto"> </button></li>`),iu=p(`<ul class="compact-list"></ul>`),au=p(`<div class="alert alert-warning alert-soft flex-col items-start gap-2" role="status"><span class="font-medium"> </span> <span class="text-xs"> </span> <code class="font-mono text-xs break-all"> </code> <span class="text-xs"> </span> <code class="font-mono text-xs break-all"> </code></div>`),ou=p(`<dl class="ldap-facts"><dt class="field-label"> </dt> <dd><code class="font-mono text-xs"> </code></dd> <dt class="field-label"> </dt> <dd><code class="font-mono text-xs break-all"> </code></dd></dl> <!> <form class="join"><input class="input input-sm join-item w-full max-w-48" placeholder="jellyfin"/> <button type="submit" class="btn btn-sm join-item"> </button></form> <p class="hint"> </p> <!> <!> <p class="hint"> </p>`,1),su=p(`<!> <!>`,1);function cu(e,r){O(r,!0);let a=pt(),o=T(null),l=T(``),p=T(null);async function m(){try{C(o,await r.api.query(`
545
+ query Ldap {
546
+ ldapBaseDn
547
+ ldapPort
548
+ ldapTls
549
+ ldapCredentials { id label bindDn usedAt createdAt issuedBy { identifier } }
550
+ tenant { ldapEnabled ldapPasswordOnly }
551
+ }
552
+ `),!0)}catch(e){a.blame(e)}}m();async function h(){let e=await a.attempt(()=>r.api.query(`mutation Issue($label: String!) {
553
+ issueLdapCredential(label: $label) { secret ldapCredential { bindDn } }
554
+ }`,{label:n(l).trim()}));e&&(C(p,e.issueLdapCredential,!0),C(l,``),await m())}async function g(e){confirm(X(`ldap.revoke_confirm`,{label:e.label}))&&await a.attempt(()=>r.api.query(`mutation Revoke($id: ID!) { revokeLdapCredential(id: $id) { ldapCredential { id } } }`,{id:e.id}),X(`ldap.revoked`,{label:e.label}))&&await m()}async function _(e){await a.attempt(()=>r.api.query(`mutation Serve($ldapEnabled: Boolean) {
555
+ updateTenant(ldapEnabled: $ldapEnabled) { tenant { ldapEnabled } }
556
+ }`,{ldapEnabled:e}),X(`ldap.serve.updated`))&&await m()}async function y(e){await a.attempt(()=>r.api.query(`mutation PasswordOnly($ldapPasswordOnly: Boolean) {
557
+ updateTenant(ldapPasswordOnly: $ldapPasswordOnly) { tenant { ldapPasswordOnly } }
558
+ }`,{ldapPasswordOnly:e}),X(`ldap.binds.updated`))&&await m()}{let r=P(()=>X(`ldap.title`)),m=P(()=>`${X(`ldap.lede`)} ${X(`ldap.serve.help`)}`);Q(e,{row:!0,get title(){return n(r)},get help(){return n(m)},children:(e,r)=>{var m=su(),b=d(m);Cn(b,{get feedback(){return a.state}});var x=u(b,2),S=e=>{var r=su(),a=d(r);{let e=P(()=>X(`ldap.serve.on`));Yi(a,{get label(){return n(e)},get checked(){return n(o).tenant.ldapEnabled},onchange:_})}var m=u(a,2),b=e=>{var r=ou(),a=d(r),m=s(a),_=G(m,!0),b=u(m,2),x=s(b),S=G(x,!0);U(b);var w=u(b,2),T=G(w,!0),E=u(w,2),D=s(E),O=G(D,!0);U(E),U(a);var k=u(a,2),A=e=>{var r=iu();J(r,21,()=>n(o).ldapCredentials,e=>e.id,(e,r)=>{var i=ru(),a=s(i),o=s(a),l=G(o,!0),d=u(o,2),p=G(d,!0),m=u(d,2),h=G(m,!0);U(a);var _=u(a,2),v=G(_,!0);U(i),c((e,t)=>{H(l,n(r).label),H(p,n(r).bindDn),H(h,e),H(v,t)},[()=>X(`ldap.credentials.used`,{used:wt(n(r).usedAt,X(`ldap.credentials.never`))}),()=>X(`ldap.credentials.revoke`)]),f(`click`,_,()=>g(n(r))),t(e,i)}),U(r),t(e,r)};i(k,e=>{n(o).ldapCredentials.length&&e(A)});var j=u(k,2),N=s(j);M(N);var I=u(N,2),L=G(I,!0);U(j);var R=u(j,2),z=G(R,!0),B=u(R,2),V=e=>{var r=au(),i=s(r),a=G(i,!0),o=u(i,2),l=G(o,!0),d=u(o,2),f=G(d,!0),m=u(d,2),h=G(m,!0),g=u(m,2),_=G(g,!0);U(r),c((e,t,r)=>{H(a,e),H(l,t),H(f,n(p).ldapCredential.bindDn),H(h,r),H(_,n(p).secret)},[()=>X(`ldap.connect.shown_once`),()=>X(`ldap.connect.bind_dn`),()=>X(`ldap.connect.secret`)]),t(e,r)};i(B,e=>{n(p)&&e(V)});var te=u(B,2);{let e=P(()=>X(`ldap.binds.password_only`));Yi(te,{get label(){return n(e)},get checked(){return n(o).tenant.ldapPasswordOnly},onchange:y})}var ne=u(te,2),W=G(ne,!0);c((e,t,r,i,a,s,c,l)=>{H(_,e),H(S,t),H(T,r),H(O,n(o).ldapBaseDn),F(N,`aria-label`,i),I.disabled=a,H(L,s),H(z,c),H(W,l)},[()=>X(`ldap.connect.address`),()=>X(n(o).ldapTls?`ldap.connect.ldaps`:`ldap.connect.port`,{port:n(o).ldapPort}),()=>X(`ldap.connect.base_dn`),()=>X(`ldap.connect.label`),()=>!n(l).trim(),()=>X(`ldap.connect.issue`),()=>X(`ldap.connect.help`),()=>X(`ldap.binds.help`)]),v(`submit`,j,e=>{e.preventDefault(),h()}),ee(N,()=>n(l),e=>C(l,e)),t(e,r)};i(m,e=>{n(o).tenant.ldapEnabled&&e(b)}),t(e,r)};i(x,e=>{n(o)&&e(S)}),t(e,m)},$$slots:{default:!0}})}B()}l([`click`]);var lu=p(`<span class="hint"> </span>`),uu=p(`<li><div class="min-w-0"><div class="text-sm font-medium"> <!></div> <div class="hint text-xs"> </div></div> <button type="button" class="btn btn-ghost btn-xs ml-auto"> </button></li>`),du=p(`<ul class="compact-list"></ul>`),fu=p(`<button type="button"> </button>`),pu=p(`<div class="alert alert-warning alert-soft flex-col items-start gap-2" role="status"><span class="font-medium"> </span> <code class="font-mono text-xs break-all"> </code></div>`),mu=p(`<div class="flex flex-col gap-1.5"><span class="field-label"> </span> <code class="tray px-2 py-1 font-mono text-xs break-all"> </code></div> <!> <form class="flex flex-wrap items-center gap-2"><input class="input input-sm w-full max-w-48" placeholder="Entra ID"/> <!> <div class="range" role="group"></div> <button type="submit" class="btn btn-sm"> </button></form> <!>`,1),hu=p(`<!> <!>`,1);function gu(e,r){O(r,!0);let a=[[30,`month`],[90,`quarter`],[365,`year`]],o=pt(),l=T(null),p=T(``),m=T(``),h=T(90),g=T(null);async function _(){try{C(l,await r.api.query(`
559
+ query Provisioning {
560
+ scimBaseUrl
561
+ provisioningTokens { id label usedAt expiresAt createdAt issuedBy { identifier } organization { name } }
562
+ organizations { key name }
563
+ }
564
+ `),!0)}catch(e){o.blame(e)}}_();async function y(){let e=await o.attempt(()=>r.api.query(`mutation Issue($label: String!, $expiresIn: Int, $organization: ID) {
565
+ issueProvisioningToken(label: $label, expiresIn: $expiresIn, organization: $organization) { secret }
566
+ }`,{label:n(p).trim()||`Provisioning`,expiresIn:n(h)*86400,organization:n(m)||null}));e&&(C(g,e.issueProvisioningToken,!0),C(p,``),await _())}async function b(e){confirm(X(`provisioning.revoke_confirm`,{label:e.label}))&&await o.attempt(()=>r.api.query(`mutation Revoke($id: ID!) { revokeProvisioningToken(id: $id) { provisioningToken { id } } }`,{id:e.id}),X(`provisioning.revoked`,{label:e.label}))&&await _()}{let r=P(()=>X(`provisioning.title`)),_=P(()=>`${X(`provisioning.lede`)} ${X(`provisioning.connect.help`)}`);Q(e,{row:!0,get title(){return n(r)},get help(){return n(_)},children:(e,r)=>{var _=hu(),x=d(_);Cn(x,{get feedback(){return o.state}});var S=u(x,2),w=e=>{var r=mu(),o=d(r),_=s(o),x=G(_,!0),S=u(_,2),w=G(S,!0);U(o);var T=u(o,2),E=e=>{var r=du();J(r,21,()=>n(l).provisioningTokens,e=>e.id,(e,r)=>{var a=uu(),o=s(a),l=s(o),d=s(l,!0),p=u(d),m=e=>{var i=lu(),a=G(i);c(()=>H(a,`· ${n(r).organization.name??``}`)),t(e,i)};i(p,e=>{n(r).organization&&e(m)}),U(l);var h=u(l,2),g=G(h,!0);U(o);var _=u(o,2),v=G(_,!0);U(a),c((e,t)=>{H(d,n(r).label),H(g,e),H(v,t)},[()=>n(r).issuedBy?X(`provisioning.tokens.issued_by`,{identifier:n(r).issuedBy.identifier,used:wt(n(r).usedAt,X(`provisioning.tokens.never`)),expires:St(n(r).expiresAt)}):X(`provisioning.tokens.detail`,{used:wt(n(r).usedAt,X(`provisioning.tokens.never`)),expires:St(n(r).expiresAt)}),()=>X(`provisioning.tokens.revoke`)]),f(`click`,_,()=>b(n(r))),t(e,a)}),U(r),t(e,r)};i(T,e=>{n(l).provisioningTokens.length&&e(E)});var D=u(T,2),O=s(D);M(O);var k=u(O,2),A=e=>{{let t=P(()=>X(`provisioning.connect.provisions`)),r=P(()=>[[``,X(`provisioning.connect.every_account`)],...n(l).organizations.map(e=>[e.key,X(`provisioning.connect.only_members`,{name:e.name})])]);qi(e,{get name(){return n(t)},get value(){return n(m)},get options(){return n(r)},onchange:e=>C(m,e,!0)})}};i(k,e=>{n(l).organizations.length&&e(A)});var j=u(k,2);J(j,21,()=>a,([e,t])=>e,(e,r)=>{var i=P(()=>I(n(r),2));let a=()=>n(i)[0],o=()=>n(i)[1];var s=fu(),l=G(s,!0);c(e=>{F(s,`aria-pressed`,n(h)===a()),H(l,e)},[()=>X(`provisioning.lifetimes.${o()}`)]),f(`click`,s,()=>C(h,a(),!0)),t(e,s)}),U(j);var N=u(j,2),L=G(N,!0);U(D);var R=u(D,2),z=e=>{var r=pu(),i=s(r),a=G(i,!0),o=u(i,2),l=G(o,!0);U(r),c(e=>{H(a,e),H(l,n(g).secret)},[()=>X(`provisioning.connect.shown_once`)]),t(e,r)};i(R,e=>{n(g)&&e(z)}),c((e,t,r,i)=>{H(x,e),H(w,n(l).scimBaseUrl),F(O,`aria-label`,t),F(j,`aria-label`,r),H(L,i)},[()=>X(`provisioning.connect.base_url`),()=>X(`provisioning.connect.label`),()=>X(`provisioning.connect.lifetime`),()=>X(`provisioning.connect.issue`)]),v(`submit`,D,e=>{e.preventDefault(),y()}),ee(O,()=>n(p),e=>C(p,e)),t(e,r)};i(S,e=>{n(l)&&e(w)}),t(e,_)},$$slots:{default:!0}})}B()}l([`click`]);var _u=p(`<div class="grid gap-4"><!> <!></div>`);function vu(e,r){O(r,!0);{let i=P(()=>X(`directory.title`)),a=P(()=>X(`directory.lede`));kn(e,{get title(){return n(i)},get lede(){return n(a)},children:(e,n)=>{var i=_u(),a=s(i);gu(a,{get api(){return r.api}}),cu(u(a,2),{get api(){return r.api}}),U(i),t(e,i)},$$slots:{default:!0}})}B()}var yu=p(`<img width="24" height="24" alt=""/>`),bu=p(`<div class="settings"><div class="settings-bar"><nav class="settings-tabs"></nav> <div class="settings-me"><a class="settings-who"><!> <span> </span></a> <button type="button" class="settings-tab"> </button> <button type="button" class="settings-tab settings-quiet"> </button></div></div> <div class="min-w-0"><!></div></div>`);function xu(e,r){O(r,!0);let a=[`settings`,`policies`,`providers`,`directory`,`messages`,`activity`];function l(){confirm(X(`settings_shell.forget_confirm`))&&r.onunpair()}var d=bu(),p=s(d),m=s(p);J(m,20,()=>a,e=>e,(e,i)=>{{let a=P(()=>`/${i}`),s=P(()=>r.current===i?`settings-tab-on`:``);Z(e,{get to(){return n(a)},get class(){return`settings-tab ${n(s)??``}`},children:(e,n)=>{j();var r=o();c(e=>H(r,e),[()=>X(`settings_shell.tabs.${i}`)]),t(e,r)},$$slots:{default:!0}})}}),U(m);var h=u(m,2),g=s(h),_=s(g),b=e=>{var n=yu();let i;c(()=>{F(n,`src`,`${r.viewer.avatars.photo??r.viewer.avatars.identicon}?size=64`),i=Y(n,1,``,null,i,{drawn:!r.viewer.avatars.photo})}),v(`error`,n,e=>e.currentTarget.src=`${r.viewer.avatars.identicon}?size=64`),ue(n),t(e,n)};i(_,e=>{r.viewer&&e(b)});var x=u(_,2),S=G(x,!0);U(g);var C=u(g,2),w=G(C,!0),T=u(C,2),E=G(T,!0);U(h),U(p);var D=u(p,2),k=s(D);y(k,()=>r.children),U(D),U(d),c((e,t,n,i)=>{F(m,`aria-label`,e),F(g,`href`,r.account),F(g,`title`,t),H(S,r.identifier),H(w,n),H(E,i)},[()=>X(`settings_shell.label`),()=>X(`settings_shell.account`),()=>X(`settings_shell.sign_out`),()=>X(`settings_shell.forget`)]),f(`click`,C,function(...e){r.onsignout?.apply(this,e)}),f(`click`,T,l),t(e,d),B()}l([`click`]);var Su=p(`<div class="grid min-h-screen place-items-center"><!></div>`),Cu=p(`<div class="auth-page"><main class="auth-col surface-terminus"><div class="flow"><span class="state state-bad"> </span> <h1 class="prompt-title"> </h1> <p class="said"> </p> <button type="button" class="action"> </button></div></main></div>`),wu=p(`<img src="/masks-public/icon.svg" alt="" class="brand-mark"/> `,1),Tu=p(`<span class="nav-count"> </span>`),Eu=p(` <!>`,1),Du=m(`<svg viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M17.03 8.46 L19.13 8.85 L19.13 11.15 L17.03 11.54 L16.06 13.88 L17.27 15.64 L15.64 17.27 L13.88 16.06 L11.54 17.03 L11.15 19.13 L8.85 19.13 L8.46 17.03 L6.12 16.06 L4.36 17.27 L2.73 15.64 L3.94 13.88 L2.97 11.54 L0.87 11.15 L0.87 8.85 L2.97 8.46 L3.94 6.12 L2.73 4.36 L4.36 2.73 L6.12 3.94 L8.46 2.97 L8.85 0.87 L11.15 0.87 L11.54 2.97 L13.88 3.94 L15.64 2.73 L17.27 4.36 L16.06 6.12 Z"></path><circle cx="10" cy="10" r="2.75"></circle></svg>`),Ou=p(`<p class="alert alert-info mb-4 text-sm" role="status"> </p>`),ku=p(`<svg viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"></svg> <span> </span>`,1),Au=p(`<div class="flex min-h-screen flex-col"><header class="console-top sticky top-0 z-20"><div class="console-bar mx-auto flex w-full max-w-6xl items-center gap-x-6 py-2"><!> <nav class="nav md:flex-1"></nav> <!></div></header> <main class="console-main mx-auto w-full max-w-6xl flex-1"><!> <!></main> <nav class="tabbar md:hidden"></nav></div>`);function ju(e,a){O(a,!0);let l=S(()=>Je(a.boot)),p=S(()=>Xe(a.boot.root));Ze(p);let m=T(`starting`),h=T(null),g=T(null),_=T(null),v=P(()=>!n(_)||n(_).includes(`owner`)?null:n(_).includes(`security`)&&n(_).includes(`support`)?X(`app.limited.both`):n(_).includes(`security`)?X(`app.limited.security`):n(_).includes(`support`)?X(`app.limited.support`):X(`app.limited.read`)),y=[[``,`overview`,`<path d="M3.5 10.5 10 4l6.5 6.5"/><path d="M5.5 9v7h9V9"/>`],[`/actors`,`actors`,`<circle cx="10" cy="7" r="3"/><path d="M4 17c.8-3 3.2-4.5 6-4.5s5.2 1.5 6 4.5"/>`],[`/organizations`,`organizations`,`<rect x="3.5" y="7" width="13" height="9.5" rx="1.5"/><path d="M7.5 7V4.5h5V7"/><path d="M3.5 11h13"/>`],[`/clients`,`clients`,`<rect x="3" y="3" width="6" height="6" rx="1.5"/><rect x="11" y="3" width="6" height="6" rx="1.5"/><rect x="3" y="11" width="6" height="6" rx="1.5"/><rect x="11" y="11" width="6" height="6" rx="1.5"/>`]],b=[`settings`,`policies`,`providers`,`directory`,`messages`,`activity`],w=`masks:manage:repaired`;function E(e){if(e===`invalid_client`)return!0;if(e!==`invalid_scope`)return!1;try{return!sessionStorage.getItem(w)&&(sessionStorage.setItem(w,`1`),!0)}catch{return!1}}function D(){location.replace(Ge(a.boot))}async function k(){let e=new URLSearchParams(location.search);try{if(E(e.get(`error`))){l.unpair(),D();return}if(e.get(`error`)){C(h,e.get(`error_description`)||e.get(`error`),!0),p.replace(``),C(m,`failed`);return}if(e.get(`initial_access_token`)){await Ke(a.boot,e.get(`initial_access_token`)),p.replace(``),await l.authorize(``);return}if(!l.paired()){D();return}if(p.segments[0]===`callback`){let{returnTo:e}=await l.callback();p.replace(e||``),R();return}if(!l.signedIn()){await l.authorize(p.state.path.slice(a.boot.root.length)+p.state.search+location.hash);return}R()}catch(e){C(h,e.message,!0),C(m,`failed`)}}let A=T(0);async function M(){try{let e=await l.query(`query Waiting { approvals: actorCount(pendingApproval: true) help: actorCount(recoveryRequested: true) }`);C(A,e.approvals+e.help)}catch{C(A,0)}}let N=P(()=>p.segments[0]??``),L=P(()=>X(`app.waiting`,{count:n(A)}));x(()=>{n(m)===`ready`&&n(N)!==void 0&&M()});function R(){C(m,`ready`),l.query(`query Viewer { viewer { identifier avatars { photo identicon } } manageLevels }`).then(e=>{C(g,e.viewer,!0),C(_,e.manageLevels,!0)}).catch(()=>{})}k();let z=P(()=>p.segments[0]??``),ee=P(()=>b.includes(n(z))),te=P(()=>n(g)?.identifier??l.state.identity?.preferred_username??X(`app.account`));function ne(){location.assign(a.boot.root)}function W(){l.unpair(),ne()}async function re(){location.assign(await l.signOut()??a.boot.root)}var ie=V(),ae=d(ie),K=e=>{var r=Su(),i=s(r);{let e=P(()=>X(`app.starting`));it(i,{get label(){return n(e)}})}U(r),t(e,r)},oe=e=>{var r=Cu(),i=s(r),o=s(i),l=s(o),d=G(l,!0),p=u(l,2),m=G(p,!0),g=u(p,2),_=G(g,!0),v=u(g,2),y=G(v,!0);U(o),U(i),U(r),c((e,t,r)=>{H(d,e),H(m,t),H(_,n(h)),H(y,r)},[()=>X(`app.stopped`),()=>X(`app.failed`,{tenant:a.boot.tenant.name}),()=>X(`app.retry`)]),f(`click`,v,ne),t(e,r)},se=e=>{var f=Au(),m=s(f),h=s(m),_=s(h);Z(_,{to:``,class:`brand`,children:(e,n)=>{var r=wu(),i=u(d(r),1,!0);c(()=>H(i,a.boot.tenant.name)),t(e,r)},$$slots:{default:!0}});var b=u(_,2);J(b,21,()=>y,([e,t])=>e,(e,r)=>{var a=P(()=>I(n(r),2));let o=()=>n(a)[0],s=()=>n(a)[1];{let r=P(()=>n(z)===o().replace(`/`,``)?`nav-item-on`:``);Z(e,{get to(){return o()},get class(){return`nav-item ${n(r)??``}`},children:(e,r)=>{j();var a=Eu(),o=d(a,!0),l=u(o),f=e=>{var r=Tu(),i=G(r,!0);c(()=>{F(r,`title`,n(L)),H(i,n(A))}),t(e,r)};i(l,e=>{s()===`actors`&&n(A)>0&&e(f)}),c(e=>H(o,e),[()=>X(`app.nav.${s()}`)]),t(e,a)},$$slots:{default:!0}})}}),U(b);var x=u(b,2);{let e=P(()=>n(ee)?`console-cog-on`:``),r=P(()=>X(`app.settings`)),i=P(()=>X(`app.settings`));Z(x,{to:`/settings`,get class(){return`console-cog ms-auto ${n(e)??``}`},get"aria-label"(){return n(r)},get title(){return n(i)},children:(e,n)=>{var r=Du();t(e,r)},$$slots:{default:!0}})}U(h),U(m);var S=u(m,2),C=s(S),w=e=>{var r=Ou(),i=G(r,!0);c(()=>H(i,n(v))),t(e,r)};i(C,e=>{n(v)&&e(w)});var T=u(C,2),E=e=>{Ys(e,{get api(){return l},get boot(){return a.boot}})},D=e=>{var n=V(),r=d(n),a=e=>{Bi(e,{get api(){return l},get id(){return p.segments[2]}})},o=e=>{Di(e,{get api(){return l},get uuid(){return p.segments[1]},get part(){return p.segments[2]}})},s=e=>{Gn(e,{get api(){return l}})};i(r,e=>{p.segments[1]===`devices`&&p.segments[2]?e(a):p.segments[1]?e(o,1):e(s,-1)}),t(e,n)},O=e=>{var n=V(),r=d(n),a=e=>{rs(e,{get api(){return l},get organizationKey(){return p.segments[1]},get part(){return p.segments[2]}})},o=e=>{wo(e,{get api(){return l}})};i(r,e=>{p.segments[1]?e(a):e(o,-1)}),t(e,n)},k=e=>{var n=V(),r=d(n),a=e=>{co(e,{get api(){return l},get clientId(){return p.segments[1]},get part(){return p.segments[2]}})},o=e=>{da(e,{get api(){return l}})};i(r,e=>{p.segments[1]?e(a):e(o,-1)}),t(e,n)},M=e=>{xu(e,{get current(){return n(z)},get viewer(){return n(g)},get identifier(){return n(te)},get account(){return a.boot.account},onsignout:re,onunpair:W,children:(e,r)=>{var o=V(),s=d(o),c=e=>{Kc(e,{get api(){return l},get providerKey(){return p.segments[1]},get part(){return p.segments[2]}})},u=e=>{hc(e,{get api(){return l}})},f=e=>{nu(e,{get api(){return l}})},m=e=>{vu(e,{get api(){return l}})},h=e=>{xl(e,{get api(){return l},get part(){return p.segments[1]}})},g=e=>{jl(e,{get api(){return l}})},_=e=>{ac(e,{get api(){return l}})},v=e=>{ks(e,{get api(){return l},get boot(){return a.boot}})};i(s,e=>{n(z)===`providers`&&p.segments[1]?e(c):n(z)===`providers`?e(u,1):n(z)===`policies`?e(f,2):n(z)===`directory`?e(m,3):n(z)===`messages`?e(h,4):n(z)===`activity`&&p.segments[1]===`streams`?e(g,5):n(z)===`activity`?e(_,6):e(v,-1)}),t(e,o)},$$slots:{default:!0}})},N=e=>{et(e,{children:(e,n)=>{j();var r=o();c(e=>H(r,e),[()=>X(`app.missing`)]),t(e,r)},$$slots:{default:!0}})};i(T,e=>{n(z)===``?e(E):n(z)===`actors`?e(D,1):n(z)===`organizations`?e(O,2):n(z)===`clients`?e(k,3):n(ee)?e(M,4):e(N,-1)}),U(S);var R=u(S,2);J(R,21,()=>y,([e,t,n])=>e,(e,i)=>{var a=P(()=>I(n(i),3));let o=()=>n(a)[0],s=()=>n(a)[1],l=()=>n(a)[2];{let i=P(()=>n(z)===o().replace(`/`,``)?`tabbar-item-on`:``);Z(e,{get to(){return o()},get class(){return`tabbar-item ${n(i)??``}`},children:(e,n)=>{var i=ku(),a=d(i);r(a,l,!0),U(a);var o=u(a,2),f=G(o,!0);c(e=>H(f,e),[()=>X(`app.nav.${s()}`)]),t(e,i)},$$slots:{default:!0}})}}),U(R),U(f),c(e=>F(R,`aria-label`,e),[()=>X(`app.sections`)]),t(e,f)};i(ae,e=>{n(m)===`starting`?e(K):n(m)===`failed`?e(oe,1):e(se,-1)}),t(e,ie),B()}l([`click`]);var Mu=document.getElementById(`manage`);if(Mu){let e=JSON.parse(Mu.dataset.boot);Fe(e.copy,document.documentElement.lang||`en`),Mu.replaceChildren(),h(ju,{target:Mu,props:{boot:e}})}
567
+ //# sourceMappingURL=manage-isLCrWiU.js.map