@harperfast/harper 5.1.0-beta.3 → 5.1.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 (52) hide show
  1. package/bin/copyDb.ts +16 -3
  2. package/dist/bin/copyDb.js +16 -3
  3. package/dist/bin/copyDb.js.map +1 -1
  4. package/dist/resources/Table.js +43 -4
  5. package/dist/resources/Table.js.map +1 -1
  6. package/dist/resources/databases.js +135 -41
  7. package/dist/resources/databases.js.map +1 -1
  8. package/dist/resources/graphql.js +3 -0
  9. package/dist/resources/graphql.js.map +1 -1
  10. package/dist/resources/replayLogs.d.ts +1 -0
  11. package/dist/resources/replayLogs.js +100 -40
  12. package/dist/resources/replayLogs.js.map +1 -1
  13. package/dist/resources/replayLogsGuards.d.ts +25 -8
  14. package/dist/resources/replayLogsGuards.js +50 -10
  15. package/dist/resources/replayLogsGuards.js.map +1 -1
  16. package/dist/server/nodeName.js +9 -3
  17. package/dist/server/nodeName.js.map +1 -1
  18. package/dist/server/operationsServer.js +20 -0
  19. package/dist/server/operationsServer.js.map +1 -1
  20. package/dist/utility/install/installer.js +12 -6
  21. package/dist/utility/install/installer.js.map +1 -1
  22. package/package.json +3 -3
  23. package/resources/Table.ts +41 -4
  24. package/resources/databases.ts +134 -42
  25. package/resources/graphql.ts +3 -0
  26. package/resources/replayLogs.ts +114 -42
  27. package/resources/replayLogsGuards.ts +58 -9
  28. package/server/nodeName.ts +9 -3
  29. package/server/operationsServer.ts +17 -0
  30. package/studio/web/assets/{Chat-BdFickL8.js → Chat-DMBW4pI2.js} +2 -2
  31. package/studio/web/assets/{Chat-BdFickL8.js.map → Chat-DMBW4pI2.js.map} +1 -1
  32. package/studio/web/assets/{FloatingChat-CaAoco8I.js → FloatingChat-DTmhPsrm.js} +4 -4
  33. package/studio/web/assets/{FloatingChat-CaAoco8I.js.map → FloatingChat-DTmhPsrm.js.map} +1 -1
  34. package/studio/web/assets/{applications-C3y3xwyG.js → applications-CigxJarn.js} +2 -2
  35. package/studio/web/assets/{applications-C3y3xwyG.js.map → applications-CigxJarn.js.map} +1 -1
  36. package/studio/web/assets/{index-Cd3Zh3nK.js → index-oRZw5GW3.js} +6 -6
  37. package/studio/web/assets/index-oRZw5GW3.js.map +1 -0
  38. package/studio/web/assets/{index.lazy-0hLbh5Fo.js → index.lazy-DY3VcR86.js} +4 -4
  39. package/studio/web/assets/{index.lazy-0hLbh5Fo.js.map → index.lazy-DY3VcR86.js.map} +1 -1
  40. package/studio/web/assets/{profile-CwBWGuVt.js → profile-DiV60L50.js} +2 -2
  41. package/studio/web/assets/{profile-CwBWGuVt.js.map → profile-DiV60L50.js.map} +1 -1
  42. package/studio/web/assets/{setComponentFile-Dhrmd8eR.js → setComponentFile-Bz6WI4jy.js} +2 -2
  43. package/studio/web/assets/{setComponentFile-Dhrmd8eR.js.map → setComponentFile-Bz6WI4jy.js.map} +1 -1
  44. package/studio/web/assets/{status-Bykq6QcD.js → status-fW6PBpPM.js} +2 -2
  45. package/studio/web/assets/{status-Bykq6QcD.js.map → status-fW6PBpPM.js.map} +1 -1
  46. package/studio/web/assets/{swagger-ui-react-CF94s29D.js → swagger-ui-react-DRYf7G3J.js} +2 -2
  47. package/studio/web/assets/{swagger-ui-react-CF94s29D.js.map → swagger-ui-react-DRYf7G3J.js.map} +1 -1
  48. package/studio/web/assets/{useEntityRestURL-D7vuaG2W.js → useEntityRestURL-14jWKu9J.js} +2 -2
  49. package/studio/web/assets/{useEntityRestURL-D7vuaG2W.js.map → useEntityRestURL-14jWKu9J.js.map} +1 -1
  50. package/studio/web/index.html +1 -1
  51. package/utility/install/installer.ts +12 -5
  52. package/studio/web/assets/index-Cd3Zh3nK.js.map +0 -1
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/setup-BhFZv4af.js","assets/vendor-datadog-Bq_0f1ke.js","assets/rolldown-runtime-Cyuzqnbw.js","assets/dist-Cjh2xdPt.js","assets/editor.api-B3GrPa_a.js","assets/editor-B55U_qvj.css","assets/monaco.contribution-P371-WG4.js","assets/setup-C0w6qn7l.css","assets/index.lazy-0hLbh5Fo.js","assets/vendor-tanstack-DmFvmRiZ.js","assets/vendor-react-BqTNj-ZI.js","assets/button-kCMf1ZBL.js","assets/vendor-ui-to0aD0Fq.js","assets/vendor-core-BIhSIGPv.js","assets/useEntityRestURL-D7vuaG2W.js","assets/index-DbKauQoC.css","assets/applications-C3y3xwyG.js","assets/createLucideIcon-D6HmSa4x.js","assets/tabs-BwkcW6ok.js","assets/setComponentFile-Dhrmd8eR.js","assets/applications-Bsqlfqjl.css","assets/FloatingChat-CaAoco8I.js","assets/proxy-BJ77EweZ.js","assets/status-Bykq6QcD.js","assets/linear-BJWzVAVE.js","assets/step-BudVE2GU.js","assets/defaultLocale-C8Fc0cco.js","assets/init-Cs1-1e_z.js","assets/time-BFiCeQ_5.js","assets/band-CcbG6rPL.js","assets/ordinal-BeZAVUpG.js","assets/with-selector-DZDEkpbZ.js","assets/getAnalytics-HqW0hniG.js","assets/profile-CwBWGuVt.js"])))=>i.map(i=>d[i]);
2
- import{a as e,t}from"./rolldown-runtime-Cyuzqnbw.js";import{_ as n,a as r,c as i,d as a,f as o,g as s,h as c,i as l,l as u,m as d,n as f,o as p,p as m,r as h,s as g,t as _,u as v}from"./button-kCMf1ZBL.js";import{A as y,S as b,_ as x,a as S,c as C,f as ee,h as w,j as T,l as E,n as D,o as te,r as ne,v as O,x as k,y as re}from"./vendor-core-BIhSIGPv.js";import{A,C as j,D as ie,E as ae,F as oe,I as se,L as ce,M,N as le,O as ue,P as de,R as fe,S as N,_ as P,a as pe,b as me,c as he,d as ge,f as _e,g as ve,i as ye,j as be,k as F,l as xe,m as Se,n as Ce,o as we,p as Te,r as Ee,s as De,t as Oe,u as ke,v as I,w as Ae,x as je,y as Me}from"./vendor-tanstack-DmFvmRiZ.js";import{a as Ne,i as Pe,n as Fe,r as Ie,t as Le}from"./vendor-datadog-Bq_0f1ke.js";import{r as Re,t as ze}from"./vendor-react-BqTNj-ZI.js";import{$ as Be,A as Ve,B as He,C as Ue,Ct as We,D as Ge,E as Ke,Et as qe,F as Je,G as Ye,H as Xe,I as Ze,J as Qe,K as $e,L as et,M as tt,N as nt,O as rt,P as it,Q as at,R as ot,S as st,St as ct,T as lt,Tt as L,U as ut,V as dt,W as ft,X as pt,Y as mt,Z as ht,_ as gt,_t,at as R,b as vt,bt as yt,ct as bt,dt as xt,et as St,ft as Ct,g as wt,gt as Tt,h as Et,ht as Dt,j as Ot,k as kt,lt as At,m as jt,mt as Mt,ot as Nt,pt as Pt,q as Ft,st as It,tt as Lt,ut as z,v as Rt,vt as zt,w as Bt,wt as Vt,x as Ht,xt as Ut,y as Wt,yt as Gt,z as Kt}from"./vendor-ui-to0aD0Fq.js";import{t as B}from"./createLucideIcon-D6HmSa4x.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var V=e(Ne(),1);function qt(){let[e,t]=(0,V.useState)(l.getAllConnections());return(0,V.useEffect)(()=>l.listenToAllEntities((n,r)=>{t({...e,[r]:n})}),[e]),e}function Jt(){let e=l.calculateIdFromEntity(h),[t,n]=(0,V.useState)(l.getConnectionById(h));return(0,V.useEffect)(()=>l.listenToEntity(e,n),[e]),t}function Yt(){return Jt()}function Xt(){let{user:e}=Yt();return Zt(e)}function Zt(e){return e?.fabricRole===`fabric_admin`||e?.fabricRole===`super_user`}function Qt(e){let t=h,{clusterId:n,instanceId:r}=j({strict:!1}),[i,a]=(0,V.useState)(l.getConnectionById(t??r??n));return(0,V.useEffect)(()=>l.listenToEntity(t,a),[t]),i}var H=Re();function $t({className:e,...t}){return(0,H.jsx)(`div`,{"data-slot":`card`,className:f(`bg-card text-card-foreground flex flex-col gap-4 rounded-2xl py-5 shadow-deep ring-1 ring-black/5 dark:ring-white/5`,e),...t})}function en({className:e,...t}){return(0,H.jsx)(`div`,{"data-slot":`card-header`,className:f(`flex flex-col gap-1.5 px-6`,e),...t})}function tn({className:e,...t}){return(0,H.jsx)(`div`,{"data-slot":`card-title`,className:f(`leading-none text-lg`,e),...t})}function nn({className:e,...t}){return(0,H.jsx)(`div`,{"data-slot":`card-description`,className:f(`text-muted-foreground text-xs`,e),...t})}function rn({className:e,...t}){return(0,H.jsx)(`div`,{"data-slot":`card-content`,className:f(`px-6`,e),...t})}function an(e){return e!==null&&!!e.username}function on(e){if(e&&!an(e)){let t=Object.keys(e.roles);if(t.length===1)return`/${t[0]}`}return`/`}var sn=B(`activity`,[[`path`,{d:`M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2`,key:`169zse`}]]),cn=B(`arrow-down-to-line`,[[`path`,{d:`M12 17V3`,key:`1cwfxf`}],[`path`,{d:`m6 11 6 6 6-6`,key:`12ii2o`}],[`path`,{d:`M19 21H5`,key:`150jfl`}]]),ln=B(`arrow-down`,[[`path`,{d:`M12 5v14`,key:`s699le`}],[`path`,{d:`m19 12-7 7-7-7`,key:`1idqje`}]]),un=B(`arrow-left`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]),dn=B(`arrow-right`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]),fn=B(`arrow-up-down`,[[`path`,{d:`m21 16-4 4-4-4`,key:`f6ql7i`}],[`path`,{d:`M17 20V4`,key:`1ejh1v`}],[`path`,{d:`m3 8 4-4 4 4`,key:`11wl7u`}],[`path`,{d:`M7 4v16`,key:`1glfcx`}]]),pn=B(`arrow-up-from-line`,[[`path`,{d:`m18 9-6-6-6 6`,key:`kcunyi`}],[`path`,{d:`M12 3v14`,key:`7cf3v8`}],[`path`,{d:`M5 21h14`,key:`11awu3`}]]),mn=B(`arrow-up`,[[`path`,{d:`m5 12 7-7 7 7`,key:`hav0vg`}],[`path`,{d:`M12 19V5`,key:`x0mq9r`}]]),hn=B(`bell`,[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}]]),gn=B(`book-open-text`,[[`path`,{d:`M12 7v14`,key:`1akyts`}],[`path`,{d:`M16 12h2`,key:`7q9ll5`}],[`path`,{d:`M16 8h2`,key:`msurwy`}],[`path`,{d:`M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z`,key:`ruj8y`}],[`path`,{d:`M6 12h2`,key:`32wvfc`}],[`path`,{d:`M6 8h2`,key:`30oboj`}]]),_n=B(`brush-cleaning`,[[`path`,{d:`m16 22-1-4`,key:`1ow2iv`}],[`path`,{d:`M19 14a1 1 0 0 0 1-1v-1a2 2 0 0 0-2-2h-3a1 1 0 0 1-1-1V4a2 2 0 0 0-4 0v5a1 1 0 0 1-1 1H6a2 2 0 0 0-2 2v1a1 1 0 0 0 1 1`,key:`11gii7`}],[`path`,{d:`M19 14H5l-1.973 6.767A1 1 0 0 0 4 22h16a1 1 0 0 0 .973-1.233z`,key:`bju7h4`}],[`path`,{d:`m8 22 1-4`,key:`s3unb`}]]),vn=B(`bug`,[[`path`,{d:`M12 20v-9`,key:`1qisl0`}],[`path`,{d:`M14 7a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4z`,key:`uouzyp`}],[`path`,{d:`M14.12 3.88 16 2`,key:`qol33r`}],[`path`,{d:`M21 21a4 4 0 0 0-3.81-4`,key:`1b0z45`}],[`path`,{d:`M21 5a4 4 0 0 1-3.55 3.97`,key:`5cxbf6`}],[`path`,{d:`M22 13h-4`,key:`1jl80f`}],[`path`,{d:`M3 21a4 4 0 0 1 3.81-4`,key:`1fjd4g`}],[`path`,{d:`M3 5a4 4 0 0 0 3.55 3.97`,key:`1d7oge`}],[`path`,{d:`M6 13H2`,key:`82j7cp`}],[`path`,{d:`m8 2 1.88 1.88`,key:`fmnt4t`}],[`path`,{d:`M9 7.13V6a3 3 0 1 1 6 0v1.13`,key:`1vgav8`}]]);B(`building`,[[`path`,{d:`M12 10h.01`,key:`1nrarc`}],[`path`,{d:`M12 14h.01`,key:`1etili`}],[`path`,{d:`M12 6h.01`,key:`1vi96p`}],[`path`,{d:`M16 10h.01`,key:`1m94wz`}],[`path`,{d:`M16 14h.01`,key:`1gbofw`}],[`path`,{d:`M16 6h.01`,key:`1x0f13`}],[`path`,{d:`M8 10h.01`,key:`19clt8`}],[`path`,{d:`M8 14h.01`,key:`6423bh`}],[`path`,{d:`M8 6h.01`,key:`1dz90k`}],[`path`,{d:`M9 22v-3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v3`,key:`cabbwy`}],[`rect`,{x:`4`,y:`2`,width:`16`,height:`20`,rx:`2`,key:`1uxh74`}]]);var yn=B(`calendar-clock`,[[`path`,{d:`M16 14v2.2l1.6 1`,key:`fo4ql5`}],[`path`,{d:`M16 2v4`,key:`4m81vk`}],[`path`,{d:`M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5`,key:`1osxxc`}],[`path`,{d:`M3 10h5`,key:`r794hk`}],[`path`,{d:`M8 2v4`,key:`1cmpym`}],[`circle`,{cx:`16`,cy:`16`,r:`6`,key:`qoo3c4`}]]),bn=B(`chart-pie`,[[`path`,{d:`M21 12c.552 0 1.005-.449.95-.998a10 10 0 0 0-8.953-8.951c-.55-.055-.998.398-.998.95v8a1 1 0 0 0 1 1z`,key:`pzmjnu`}],[`path`,{d:`M21.21 15.89A10 10 0 1 1 8 2.83`,key:`k2fpak`}]]),xn=B(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),Sn=B(`chevron-down`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]),Cn=B(`chevron-right`,[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]),wn=B(`chevron-up`,[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]),Tn=B(`circle-alert`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`,key:`1pkeuh`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`,key:`4dfq90`}]]),En=B(`circle-check-big`,[[`path`,{d:`M21.801 10A10 10 0 1 1 17 3.335`,key:`yps3ct`}],[`path`,{d:`m9 11 3 3L22 4`,key:`1pflzl`}]]),Dn=B(`circle`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]]),On=B(`clipboard-check`,[[`rect`,{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`,key:`tgr4d6`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2`,key:`116196`}],[`path`,{d:`m9 14 2 2 4-4`,key:`df797q`}]]),kn=B(`clipboard`,[[`rect`,{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`,key:`tgr4d6`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2`,key:`116196`}]]),An=B(`cloud-alert`,[[`path`,{d:`M12 12v4`,key:`tww15h`}],[`path`,{d:`M12 20h.01`,key:`zekei9`}],[`path`,{d:`M8.128 16.949A7 7 0 1 1 15.71 8h1.79a1 1 0 0 1 0 9h-1.642`,key:`1namsd`}]]),jn=B(`cloud-download`,[[`path`,{d:`M12 13v8l-4-4`,key:`1f5nwf`}],[`path`,{d:`m12 21 4-4`,key:`1lfcce`}],[`path`,{d:`M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284`,key:`ui1hmy`}]]),Mn=B(`cloud-upload`,[[`path`,{d:`M12 13v8`,key:`1l5pq0`}],[`path`,{d:`M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242`,key:`1pljnt`}],[`path`,{d:`m8 17 4-4 4 4`,key:`1quai1`}]]),Nn=B(`columns-3-cog`,[[`path`,{d:`M10.5 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v5.5`,key:`1g2yzs`}],[`path`,{d:`m14.3 19.6 1-.4`,key:`11sv9r`}],[`path`,{d:`M15 3v7.5`,key:`7lm50a`}],[`path`,{d:`m15.2 16.9-.9-.3`,key:`1t7mvx`}],[`path`,{d:`m16.6 21.7.3-.9`,key:`1j67ps`}],[`path`,{d:`m16.8 15.3-.4-1`,key:`1ei7r6`}],[`path`,{d:`m19.1 15.2.3-.9`,key:`18r7jp`}],[`path`,{d:`m19.6 21.7-.4-1`,key:`z2vh2`}],[`path`,{d:`m20.7 16.8 1-.4`,key:`19m87a`}],[`path`,{d:`m21.7 19.4-.9-.3`,key:`1qgwi9`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}]]),Pn=B(`copy`,[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]),Fn=B(`credit-card`,[[`rect`,{width:`20`,height:`14`,x:`2`,y:`5`,rx:`2`,key:`ynyp8z`}],[`line`,{x1:`2`,x2:`22`,y1:`10`,y2:`10`,key:`1b3vmo`}]]),In=B(`database`,[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}],[`path`,{d:`M3 5V19A9 3 0 0 0 21 19V5`,key:`1wlel7`}],[`path`,{d:`M3 12A9 3 0 0 0 21 12`,key:`mv7ke4`}]]),Ln=B(`ellipsis`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`19`,cy:`12`,r:`1`,key:`1wjl8i`}],[`circle`,{cx:`5`,cy:`12`,r:`1`,key:`1pcz8c`}]]),Rn=B(`external-link`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]),zn=B(`funnel-plus`,[[`path`,{d:`M13.354 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14v6a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341l1.218-1.348`,key:`8mvsmf`}],[`path`,{d:`M16 6h6`,key:`1dogtp`}],[`path`,{d:`M19 3v6`,key:`1ytpjt`}]]),Bn=B(`funnel-x`,[[`path`,{d:`M12.531 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14v6a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341l.427-.473`,key:`ol2ft2`}],[`path`,{d:`m16.5 3.5 5 5`,key:`15e6fa`}],[`path`,{d:`m21.5 3.5-5 5`,key:`m0lwru`}]]),Vn=B(`funnel`,[[`path`,{d:`M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z`,key:`sc7q7i`}]]),Hn=B(`gauge`,[[`path`,{d:`m12 14 4-4`,key:`9kzdfg`}],[`path`,{d:`M3.34 19a10 10 0 1 1 17.32 0`,key:`19p75a`}]]),Un=B(`git-graph`,[[`circle`,{cx:`5`,cy:`6`,r:`3`,key:`1qnov2`}],[`path`,{d:`M5 9v6`,key:`158jrl`}],[`circle`,{cx:`5`,cy:`18`,r:`3`,key:`104gr9`}],[`path`,{d:`M12 3v18`,key:`108xh3`}],[`circle`,{cx:`19`,cy:`6`,r:`3`,key:`108a5v`}],[`path`,{d:`M16 15.7A9 9 0 0 0 19 9`,key:`1e3vqb`}]]);B(`globe`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`,key:`13o1zl`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}]]);var Wn=B(`grip-vertical`,[[`circle`,{cx:`9`,cy:`12`,r:`1`,key:`1vctgf`}],[`circle`,{cx:`9`,cy:`5`,r:`1`,key:`hp0tcf`}],[`circle`,{cx:`9`,cy:`19`,r:`1`,key:`fkjjf6`}],[`circle`,{cx:`15`,cy:`12`,r:`1`,key:`1tmaij`}],[`circle`,{cx:`15`,cy:`5`,r:`1`,key:`19l28e`}],[`circle`,{cx:`15`,cy:`19`,r:`1`,key:`f4zoj3`}]]),Gn=B(`handshake`,[[`path`,{d:`m11 17 2 2a1 1 0 1 0 3-3`,key:`efffak`}],[`path`,{d:`m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4`,key:`9pr0kb`}],[`path`,{d:`m21 3 1 11h-2`,key:`1tisrp`}],[`path`,{d:`M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3`,key:`1uvwmv`}],[`path`,{d:`M3 4h8`,key:`1ep09j`}]]),Kn=B(`house`,[[`path`,{d:`M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8`,key:`5wwlr5`}],[`path`,{d:`M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`,key:`r6nss1`}]]),qn=B(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),Jn=B(`key-round`,[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]]),Yn=B(`key`,[[`path`,{d:`m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4`,key:`g0fldk`}],[`path`,{d:`m21 2-9.6 9.6`,key:`1j0ho8`}],[`circle`,{cx:`7.5`,cy:`15.5`,r:`5.5`,key:`yqb3hr`}]]),Xn=B(`list-todo`,[[`path`,{d:`M13 5h8`,key:`a7qcls`}],[`path`,{d:`M13 12h8`,key:`h98zly`}],[`path`,{d:`M13 19h8`,key:`c3s6r1`}],[`path`,{d:`m3 17 2 2 4-4`,key:`1jhpwq`}],[`rect`,{x:`3`,y:`4`,width:`6`,height:`6`,rx:`1`,key:`cif1o7`}]]),Zn=B(`loader-circle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]),Qn=B(`log-in`,[[`path`,{d:`m10 17 5-5-5-5`,key:`1bsop3`}],[`path`,{d:`M15 12H3`,key:`6jk70r`}],[`path`,{d:`M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4`,key:`u53s6r`}]]),$n=B(`log-out`,[[`path`,{d:`m16 17 5-5-5-5`,key:`1bji2h`}],[`path`,{d:`M21 12H9`,key:`dn1m92`}],[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,key:`1uf3rs`}]]),er=B(`mail-warning`,[[`path`,{d:`M22 10.5V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h12.5`,key:`e61zoh`}],[`path`,{d:`m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7`,key:`1ocrg3`}],[`path`,{d:`M20 14v4`,key:`1hm744`}],[`path`,{d:`M20 22v.01`,key:`12bgn6`}]]),tr=B(`map-pin`,[[`path`,{d:`M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0`,key:`1r0f0z`}],[`circle`,{cx:`12`,cy:`10`,r:`3`,key:`ilqhr7`}]]),nr=B(`menu`,[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]),rr=B(`monitor`,[[`rect`,{width:`20`,height:`14`,x:`2`,y:`3`,rx:`2`,key:`48i651`}],[`line`,{x1:`8`,x2:`16`,y1:`21`,y2:`21`,key:`1svkeh`}],[`line`,{x1:`12`,x2:`12`,y1:`17`,y2:`21`,key:`vw1qmm`}]]),ir=B(`moon`,[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`,key:`kfwtm`}]]),ar=B(`notepad-text`,[[`path`,{d:`M8 2v4`,key:`1cmpym`}],[`path`,{d:`M12 2v4`,key:`3427ic`}],[`path`,{d:`M16 2v4`,key:`4m81vk`}],[`rect`,{width:`16`,height:`18`,x:`4`,y:`4`,rx:`2`,key:`1u9h20`}],[`path`,{d:`M8 10h6`,key:`3oa6kw`}],[`path`,{d:`M8 14h8`,key:`1fgep2`}],[`path`,{d:`M8 18h5`,key:`17enja`}]]),or=B(`package`,[[`path`,{d:`M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z`,key:`1a0edw`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}],[`polyline`,{points:`3.29 7 12 12 20.71 7`,key:`ousv84`}],[`path`,{d:`m7.5 4.27 9 5.15`,key:`1c824w`}]]),sr=B(`pencil`,[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}]]),cr=B(`plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]),lr=B(`receipt-text`,[[`path`,{d:`M13 16H8`,key:`wsln4y`}],[`path`,{d:`M14 8H8`,key:`1l3xfs`}],[`path`,{d:`M16 12H8`,key:`1fr5h0`}],[`path`,{d:`M4 3a1 1 0 0 1 1-1 1.3 1.3 0 0 1 .7.2l.933.6a1.3 1.3 0 0 0 1.4 0l.934-.6a1.3 1.3 0 0 1 1.4 0l.933.6a1.3 1.3 0 0 0 1.4 0l.933-.6a1.3 1.3 0 0 1 1.4 0l.934.6a1.3 1.3 0 0 0 1.4 0l.933-.6A1.3 1.3 0 0 1 19 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1 1.3 1.3 0 0 1-.7-.2l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.934.6a1.3 1.3 0 0 1-1.4 0l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-1.4 0l-.934-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-.7.2 1 1 0 0 1-1-1z`,key:`ycz6yz`}]]),ur=B(`receipt`,[[`path`,{d:`M12 17V7`,key:`pyj7ub`}],[`path`,{d:`M16 8h-6a2 2 0 0 0 0 4h4a2 2 0 0 1 0 4H8`,key:`1elt7d`}],[`path`,{d:`M4 3a1 1 0 0 1 1-1 1.3 1.3 0 0 1 .7.2l.933.6a1.3 1.3 0 0 0 1.4 0l.934-.6a1.3 1.3 0 0 1 1.4 0l.933.6a1.3 1.3 0 0 0 1.4 0l.933-.6a1.3 1.3 0 0 1 1.4 0l.934.6a1.3 1.3 0 0 0 1.4 0l.933-.6A1.3 1.3 0 0 1 19 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1 1.3 1.3 0 0 1-.7-.2l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.934.6a1.3 1.3 0 0 1-1.4 0l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-1.4 0l-.934-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-.7.2 1 1 0 0 1-1-1z`,key:`ycz6yz`}]]),dr=B(`refresh-cw`,[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`,key:`v9h5vc`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`,key:`3uifl3`}],[`path`,{d:`M8 16H3v5`,key:`1cv678`}]]),fr=B(`rotate-ccw`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]),pr=B(`save`,[[`path`,{d:`M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z`,key:`1c8476`}],[`path`,{d:`M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7`,key:`1ydtos`}],[`path`,{d:`M7 3v4a1 1 0 0 0 1 1h7`,key:`t51u73`}]]),mr=B(`scale`,[[`path`,{d:`M12 3v18`,key:`108xh3`}],[`path`,{d:`m19 8 3 8a5 5 0 0 1-6 0zV7`,key:`zcdpyk`}],[`path`,{d:`M3 7h1a17 17 0 0 0 8-2 17 17 0 0 0 8 2h1`,key:`1yorad`}],[`path`,{d:`m5 8 3 8a5 5 0 0 1-6 0zV7`,key:`eua70x`}],[`path`,{d:`M7 21h10`,key:`1b0cd5`}]]),hr=B(`search`,[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]),gr=B(`server`,[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`,key:`ngkwjq`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`,key:`iecqi9`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`,key:`16zg32`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`,key:`nzw8ys`}]]),_r=B(`settings`,[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`,key:`1i5ecw`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),vr=B(`shield-check`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),yr=B(`shield-x`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m14.5 9.5-5 5`,key:`17q4r4`}],[`path`,{d:`m9.5 9.5 5 5`,key:`18nt4w`}]]),br=B(`sliders-horizontal`,[[`path`,{d:`M10 5H3`,key:`1qgfaw`}],[`path`,{d:`M12 19H3`,key:`yhmn1j`}],[`path`,{d:`M14 3v4`,key:`1sua03`}],[`path`,{d:`M16 17v4`,key:`1q0r14`}],[`path`,{d:`M21 12h-9`,key:`1o4lsq`}],[`path`,{d:`M21 19h-5`,key:`1rlt1p`}],[`path`,{d:`M21 5h-7`,key:`1oszz2`}],[`path`,{d:`M8 10v4`,key:`tgpxqk`}],[`path`,{d:`M8 12H3`,key:`a7s4jb`}]]),xr=B(`square-pen`,[[`path`,{d:`M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7`,key:`1m0v6g`}],[`path`,{d:`M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z`,key:`ohrbg2`}]]),Sr=B(`sun`,[[`circle`,{cx:`12`,cy:`12`,r:`4`,key:`4exip2`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`m4.93 4.93 1.41 1.41`,key:`149t6j`}],[`path`,{d:`m17.66 17.66 1.41 1.41`,key:`ptbguv`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`m6.34 17.66-1.41 1.41`,key:`1m8zz5`}],[`path`,{d:`m19.07 4.93-1.41 1.41`,key:`1shlcs`}]]),Cr=B(`table`,[[`path`,{d:`M12 3v18`,key:`108xh3`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M3 9h18`,key:`1pudct`}],[`path`,{d:`M3 15h18`,key:`5xshup`}]]),wr=B(`terminal`,[[`path`,{d:`M12 19h8`,key:`baeox8`}],[`path`,{d:`m4 17 6-6-6-6`,key:`1yngyt`}]]),Tr=B(`ticket`,[[`path`,{d:`M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z`,key:`qn84l0`}],[`path`,{d:`M13 5v2`,key:`dyzc3o`}],[`path`,{d:`M13 17v2`,key:`1ont0d`}],[`path`,{d:`M13 11v2`,key:`1wjjxi`}]]),Er=B(`trash-2`,[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]),Dr=B(`trash`,[[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]),Or=B(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),kr=B(`user`,[[`path`,{d:`M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2`,key:`975kel`}],[`circle`,{cx:`12`,cy:`7`,r:`4`,key:`17ys0d`}]]),Ar=B(`users`,[[`path`,{d:`M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2`,key:`1yyitq`}],[`path`,{d:`M16 3.128a4 4 0 0 1 0 7.744`,key:`16gr8j`}],[`path`,{d:`M22 21v-2a4 4 0 0 0-3-3.87`,key:`kshegd`}],[`circle`,{cx:`9`,cy:`7`,r:`4`,key:`nufk8`}]]),jr=B(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]);function Mr({className:e,error:t,title:n,showReturnToHome:r,children:i}){let{user:a,isLoading:o}=Jt();return on(a),(0,H.jsxs)($t,{className:f(`text-red p-5 border border-red rounded-md m-12 mt-36`,e),children:[(0,H.jsxs)(en,{children:[(0,H.jsx)(tn,{className:`text-2xl`,children:(0,H.jsx)(`h2`,{children:n??`Component Error`})}),(0,H.jsx)(nn,{children:t.message})]}),(0,H.jsxs)(rn,{children:[i,r!==!1&&(a&&!o?(0,H.jsx)(I,{to:`/`,children:(0,H.jsxs)(_,{children:[` `,(0,H.jsx)(un,{}),` Return to Home`]})}):(0,H.jsx)(I,{to:`/sign-in`,children:(0,H.jsxs)(_,{children:[` `,(0,H.jsx)(un,{}),` Go to Sign In Page`]})}))]})]})}function Nr(){let{user:e,isLoading:t}=Jt();return on(e),(0,H.jsx)(`div`,{className:`flex items-center justify-center h-screen px-3`,children:(0,H.jsxs)($t,{className:`text-red p-5 border border-red rounded-md w-full max-w-md`,children:[(0,H.jsx)(en,{children:(0,H.jsx)(tn,{className:`text-2xl`,children:(0,H.jsx)(`h2`,{children:`Sorry, Page Not Found`})})}),(0,H.jsx)(rn,{children:e&&!t?(0,H.jsx)(I,{to:`/`,children:(0,H.jsxs)(_,{children:[` `,(0,H.jsx)(un,{}),` Return to Home`]})}):(0,H.jsx)(I,{to:`/sign-in`,children:(0,H.jsxs)(_,{children:[` `,(0,H.jsx)(un,{}),` Go Sign In Page`]})})})]})})}function Pr(){return`ontouchstart`in window||navigator.maxTouchPoints>0}function Fr(e){let t=`Error`,n=`We had some trouble!`;console.error(e);let r=e,i=e;if(typeof e==`string`?n=e:r?.response?.data?typeof r.response.data==`string`?n=r.response.data:r.response.data.error?n=r.response.data.error:r.response.data.message&&(n=r.response.data.message):i?.message&&(n=i.message),n.includes(`:`)){let e=n.split(`:`);t=e.shift(),n=e.join(`:`)}let a=r?.code===`ECONNABORTED`||r?.code===`ETIMEDOUT`;L.error(t,{id:a?`request-timeout`:void 0,description:n,action:{label:`Dismiss`,onClick:()=>L.dismiss()}})}var Ir=new oe({queryCache:new se({onError:Fr}),mutationCache:new ce({onError:Fr})});function Lr(e){return!!e}var Rr=!1,zr=!1;function Br(e){if(e.type!==`error`)return!0;let t=e.error?.message??``,n=e.error?.source;if(/Request aborted/i.test(t)||t.includes(`Fabric Connect not established`))return!1;let r=e.error?.resource?.url??``,i=/\/(HDBInstance|Cluster)\/[^/]+\/operation/.test(r),a=/timeout of \d+ms exceeded/i.test(t)||/Network Error/i.test(t)||n===`network`;return!(i&&a)}function Vr(){(0,V.useEffect)(()=>{Rr||(Rr=!0,zr&&(Ie.init({applicationId:`f590deee-4bac-49b4-a202-3b6963d9721d`,clientToken:`pub27aa29cea521492f4fef73032f86a023`,site:`datadoghq.com`,service:`studio`,env:void 0,version:`v5.1.0-beta.3`,trackViewsManually:!0,trackUserInteractions:!0,beforeSend:Br,sessionSampleRate:100,sessionReplaySampleRate:0,defaultPrivacyLevel:`mask`,plugins:[Fe()]}),Ie.onReady(()=>{Ie.startView({service:`studio`,version:`v5.1.0-beta.3`,name:window.location.pathname||`initial`})})))},[])}function Hr(e){if(!zr)return;Ie.setUser({id:e.id,email:e.email,name:[e.firstname,e.lastname].filter(Boolean).join(` `)||void 0});let t=`hasLoggedInBefore:${e.id}`;localStorage.getItem(t)?Ie.addAction(`return_login`):(Ie.addAction(`first_time_login`),localStorage.setItem(t,`true`));let n=`lastLoginTimestamp:${e.id}`,r=localStorage.getItem(n),i=Date.now();if(r){let e=Math.floor((i-Number(r))/1e3);!Number.isNaN(e)&&e>=0&&Ie.addAction(`login_time_gap`,{value:e})}localStorage.setItem(n,String(i)),Ie.addAction(`login_success`,{userId:e.id})}function Ur(){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(xe,{}),(0,H.jsx)(Te,{})]})}var Wr=ve()({component:Ur});function Gr(){return(0,H.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 126.644 96`,width:24,height:24,children:(0,H.jsx)(`path`,{fill:`currentColor`,d:`M81.15,0c-1.2376,2.1973-2.3489,4.4704-3.3591,6.794-9.5975-1.4396-19.3718-1.4396-28.9945,0-.985-2.3236-2.1216-4.5967-3.3591-6.794-9.0166,1.5407-17.8059,4.2431-26.1405,8.0568C2.779,32.5304-1.6914,56.3725.5312,79.8863c9.6732,7.1476,20.5083,12.603,32.0505,16.0884,2.6014-3.4854,4.8998-7.1981,6.8698-11.0623-3.738-1.3891-7.3497-3.1318-10.8098-5.1523.9092-.6567,1.7932-1.3386,2.6519-1.9953,20.281,9.547,43.7696,9.547,64.0758,0,.8587.7072,1.7427,1.3891,2.6519,1.9953-3.4601,2.0457-7.0718,3.7632-10.835,5.1776,1.97,3.8642,4.2683,7.5769,6.8698,11.0623,11.5419-3.4854,22.3769-8.9156,32.0509-16.0631,2.626-27.2771-4.496-50.9172-18.817-71.8548C98.9811,4.2684,90.1918,1.5659,81.1752.0505l-.0252-.0505ZM42.2802,65.4144c-6.2383,0-11.4159-5.6575-11.4159-12.6535s4.9755-12.6788,11.3907-12.6788,11.5169,5.708,11.4159,12.6788c-.101,6.9708-5.026,12.6535-11.3907,12.6535ZM84.3576,65.4144c-6.2637,0-11.3907-5.6575-11.3907-12.6535s4.9755-12.6788,11.3907-12.6788,11.4917,5.708,11.3906,12.6788c-.101,6.9708-5.026,12.6535-11.3906,12.6535Z`})})}function Kr(){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`img`,{src:`/harper-studio_white.png`,alt:`Harper Studio`,className:`w-64 hidden md:inline-block`}),(0,H.jsx)(`img`,{src:`/HDBDogOnly.svg`,width:`50px`,height:`44px`,alt:`Harper`,className:`inline-block md:hidden`})]})}function qr(e){try{return e===`null`||e===`undefined`||e==null?null:JSON.parse(e)}catch(e){return console.error(`safeParse failed to parse value, returning null instead`,e),null}}function Jr(e,t){return qr(localStorage.getItem(e))??t}function Yr(e,t){t==null?localStorage.removeItem(e):localStorage.setItem(e,JSON.stringify(t))}function Xr(e,t){let n=(0,V.useState)(Jr(e,t)),[r]=n;return(0,V.useEffect)(()=>Yr(e,r),[e,r]),n}function Zr(){let[e,t]=(0,V.useState)(()=>window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`);return(0,V.useEffect)(()=>{let e=window.matchMedia(`(prefers-color-scheme: dark)`),n=e=>t(e.matches?`dark`:`light`);return e.addEventListener(`change`,n),()=>e.removeEventListener(`change`,n)},[]),e}var Qr=function(e){return e.ApplicationChatPosition=`ApplicationChatPosition`,e.ApplicationChatWidth=`ApplicationChatWidth`,e.ChatAlwaysApprovedTools=`ChatAlwaysApprovedTools`,e.SavedClusterState=`SavedClusterState`,e.Theme=`Theme`,e}({}),$r=(0,V.createContext)([`system`,()=>{}]);function ei({children:e}){let[t,n]=Xr(Qr.Theme,`system`),r=Zr();return(0,V.useEffect)(()=>{let e=t===`dark`||t===`system`&&r===`dark`;document.documentElement.classList.toggle(`dark`,e)},[t,r]),(0,H.jsx)($r.Provider,{value:[t,n],children:e})}function ti(){return(0,V.useContext)($r)}var ni=[{value:`light`,icon:(0,H.jsx)(Sr,{className:`size-4`}),label:`Light`},{value:`system`,icon:(0,H.jsx)(rr,{className:`size-4`}),label:`System`},{value:`dark`,icon:(0,H.jsx)(ir,{className:`size-4`}),label:`Dark`}];function ri(){let[e,t]=ti();return(0,H.jsx)(`div`,{className:`flex items-center bg-muted dark:bg-black rounded-xl p-0.5 gap-0.5`,children:ni.map(({value:n,icon:r,label:i})=>(0,H.jsx)(`button`,{type:`button`,title:i,onClick:()=>t(n),className:`p-1.5 rounded-lg transition-colors ${e===n?`bg-background text-foreground shadow-xs`:`text-muted-foreground hover:text-foreground`}`,children:r},n))})}function ii({className:e,...t}){return(0,H.jsx)(`div`,{className:f(`absolute top-full left-0 isolate z-50 flex justify-center`),children:(0,H.jsx)(We,{"data-slot":`navigation-menu-viewport`,className:f(`origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border shadow md:w-[var(--radix-navigation-menu-viewport-width)]`,e),...t})})}function ai({className:e,children:t,viewport:n=!0,...r}){return(0,H.jsxs)(ct,{"data-slot":`navigation-menu`,"data-viewport":n,className:f(`group/navigation-menu relative flex max-w-max flex-1 items-center justify-center`,e),...r,children:[t,n&&(0,H.jsx)(ii,{})]})}function oi({className:e,...t}){return(0,H.jsx)(Gt,{"data-slot":`navigation-menu-item`,className:f(`relative`,e),...t})}function si({className:e,...t}){return(0,H.jsx)(yt,{"data-slot":`navigation-menu-link`,className:f(`hover:text-foreground dark:hover:text-white ring-ring/10 dark:ring-ring/20 dark:outline-ring/40 outline-ring/50 flex flex-col gap-1 rounded-sm p-2 text-sm transition-[color,box-shadow] focus-visible:ring-4 focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-4`,e),...t})}function ci({className:e,...t}){return(0,H.jsx)(Ut,{"data-slot":`navigation-menu-list`,className:f(`group flex flex-1 list-none items-center justify-center gap-1`,e),...t})}var li=y(`inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-auto`,{variants:{variant:{default:`border-primary bg-primary/40 text-primary-foreground [a&]:hover:bg-primary/90`,secondary:`border-secondary bg-secondary/40 text-secondary-foreground [a&]:hover:bg-secondary/90`,warning:`border-yellow bg-yellow/40 text-foreground [a&]:hover:bg-yellow/90`,success:`border-green bg-green/40 text-foreground [a&]:hover:bg-green/90`,destructive:`border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40`,outline:`text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground`}},defaultVariants:{variant:`default`}});function ui(){let e=`v5.1.0-beta.3`;return(0,H.jsx)(`a`,{href:e.startsWith(`v`)?`https://github.com/HarperFast/studio/releases/tag/${e}`:`https://github.com/HarperFast/studio/releases`,target:`_blank`,rel:`noopener noreferrer`,children:(0,H.jsxs)(`span`,{className:f(li({variant:`default`}),`text-xs inline-block ml-2 align-text-top`),children:[e,` BETA`]})})}function di(e={}){let{instanceId:t,clusterId:n}=j({strict:!1});return o({id:h,...e})}function fi(e={}){let{instanceId:t,clusterId:n}=j({strict:!1});return{instanceClient:o({id:h,...e}),entityType:`instance`}}function U(e={}){let{instanceId:t,clusterId:n}=j({strict:!1});return(0,V.useMemo)(()=>pi({instanceId:t,clusterId:n,...e}),[e.instanceId??t,e.clusterId??n,e.operationsUrl,e.port,e.secure,e.disableFabricConnect,e.forceFabricConnect])}function pi({instanceId:e,clusterId:t,...n}){let r=h;if(!r)throw Error(`id could not be automatically calculated in useInstanceClientIdParams`);return{instanceClient:o({id:r,...n}),entityId:r,entityType:`instance`}}function mi(){localStorage.clear()}function hi(){sessionStorage.clear()}async function gi(){l.setUserForEntity(h,null),Ir.getQueryCache().clear(),mi(),hi(),await Ir.invalidateQueries({refetchType:`none`})}async function _i(e){await l.signOutFromPotentiallyAuthenticatedInstances(),await i({...e,entityId:h})}function vi(){let e=di();return F({mutationFn:()=>_i({instanceClient:e}),onSuccess:gi})}function yi(e){let{user:t}=Yt(),{organizationId:n}=j({strict:!1});if(Zt(t))return{update:!0,remove:!0};let r=t?.roles?.[e??n];return!r||`oauthProviders`in r||!r.permission&&!r.organization?{update:!1,remove:!1}:r.permission?.super_user?{update:!0,remove:!0}:{update:r.organization.update,remove:r.organization.delete}}function bi(e){let{user:t}=Yt(),{organizationId:n}=j({strict:!1});if(Zt(t))return{create:!0,remove:!0,update:!0,view:!0};let r=t?.roles?.[e??n];if(!r||`oauthProviders`in r||!r.permission&&!r.organization?.roles)return{create:!1,remove:!1,update:!1,view:!1};if(r.permission?.super_user)return{create:!0,remove:!0,update:!0,view:!0};let i=r.organization.roles;return{create:i.create,remove:i.delete,update:i.update,view:i.view}}function xi(e,t){let{user:n}=Yt(),{organizationId:r,clusterId:i}=j({strict:!1});return Si(n,e??r,t??i)}function Si(e,t,n){if(Zt(e))return{create:!0,remove:!0,update:!0,view:!0};let r=e?.roles?.[t];if(!r||`oauthProviders`in r||!r.permission&&!r.organization?.clusters)return{create:!1,remove:!1,update:!1,view:!1};if(r.permission?.super_user)return{create:!0,remove:!0,update:!0,view:!0};let i=r.organization.clusters.resources?.find(e=>e.id===n),a=r.organization.clusters;return{create:a.create,remove:i?i.delete:a.delete,update:i?i.update:a.update,view:i?i.view:a.view}}function Ci(e,t){let{user:n}=Yt(),{organizationId:r,clusterId:i}=j({strict:!1});return wi(n,e??r,t??i)}function wi(e,t,n){if(Zt(e))return{create:!0,remove:!0,update:!0,view:!0};let r=e?.roles?.[t];if(!r||`oauthProviders`in r||!r.permission&&!r.organization?.clusters)return{create:!1,remove:!1,update:!1,view:!1};if(r.permission?.super_user)return{create:!0,remove:!0,update:!0,view:!0};let i=r.organization.clusters.resources?.find(e=>e.id===n)?.instances,a=r.organization.clusters;return{create:i?i.create:a.create,remove:i?i.delete:a.delete,update:i?i.update:a.update,view:i?i.view:a.view}}function Ti(e){let{clusterId:t,instanceId:n}=j({strict:!1}),{user:r}=Qt(e??n??t),i=r?.role?.permission;return i?i.super_user===!0:!1}function Ei(e){let{clusterId:t,instanceId:n}=j({strict:!1}),{user:r}=Qt(e??n??t),i=r?.role?.permission;return i?i.super_user===!0||i.structure_user===!0:!1}function Di(e,t,n,r){let{clusterId:i,instanceId:a}=j({strict:!1}),{user:o}=Qt(e??a??i),s=o?.role?.permission;return s?s.super_user===!0||s.structure_user===!0?!0:s[t]?.tables?.[n][r]===!0:!1}var Oi={className:`text-foreground dark:text-white font-semibold`};function ki(){let{mutate:e}=vi(),t=je(),{user:n}=Jt(),r=ae(),{organizationId:i}=j({strict:!1}),{update:a}=yi(i),{view:o}=bi(i),s=a,c=(0,V.useCallback)(()=>{e(void 0,{onSuccess:async()=>{L.success(`Success`,{description:`You have been signed out successfully.`,action:{label:`Dismiss`,onClick:()=>L.dismiss()}}),t({to:`/sign-in`}),r.invalidate()}})},[e,r,t]),l=(0,V.useMemo)(()=>[!1,!1,!1,{to:`https://docs.harperdb.io/docs`,target:`_blank`,icon:(0,H.jsx)(gn,{}),text:`Docs`,textBreakpoint:`md`},{to:`https://github.com/HarperFast/studio/issues`,target:`_blank`,icon:(0,H.jsx)(vn,{}),text:`Report an Issue`,textBreakpoint:`lg`},{to:`https://discord.gg/VzZuaw3Xay`,target:`_blank`,icon:(0,H.jsx)(Gr,{}),text:`Discord`,textBreakpoint:`lg`},{onClick:c,icon:(0,H.jsx)($n,{}),text:`Sign Out`,textBreakpoint:`md`}].filter(Lr),[i,s,o,c]);return n?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(Pi,{menuItems:l}),(0,H.jsx)(Mi,{menuItems:l})]}):(0,H.jsx)(ji,{})}function Ai(e){return e.items!==void 0}function ji(){return(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,H.jsxs)(`div`,{className:`inline-block`,children:[(0,H.jsx)(I,{to:`/sign-in`,children:(0,H.jsx)(Kr,{})}),(0,H.jsx)(ui,{})]}),(0,H.jsx)(ai,{children:(0,H.jsxs)(ci,{className:`text-muted-foreground dark:text-grey-400`,children:[(0,H.jsx)(oi,{children:(0,H.jsx)(si,{asChild:!0,children:(0,H.jsxs)(I,{to:`https://docs.harperdb.io/docs`,target:`_blank`,rel:`noreferrer noopener`,className:`flex-row items-center`,children:[(0,H.jsx)(gn,{}),` `,(0,H.jsx)(`span`,{className:`hidden md:inline-block`,children:`Docs`})]})})}),(0,H.jsx)(oi,{children:(0,H.jsx)(ri,{})}),(0,H.jsx)(oi,{children:(0,H.jsx)(si,{asChild:!0,children:(0,H.jsxs)(I,{to:`/sign-in`,className:`flex-row items-center`,activeProps:Oi,children:[(0,H.jsx)(Qn,{}),` Sign In`]})})})]})})]})}function Mi({menuItems:e}){let{user:t}=Jt();return on(t),(0,H.jsx)(`div`,{className:`hidden md:block`,children:(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,H.jsxs)(`div`,{className:`inline-block`,children:[(0,H.jsx)(I,{to:`/`,children:(0,H.jsx)(Kr,{})}),(0,H.jsx)(ui,{})]}),(0,H.jsx)(ai,{children:(0,H.jsxs)(ci,{className:`text-muted-foreground dark:text-grey-400`,children:[e.map(e=>Ai(e)?!!e.items.length&&(0,H.jsx)(`div`,{className:`bg-muted dark:bg-black rounded-2xl flex`,children:e.items.map(e=>(0,H.jsx)(Ni,{menuItem:e},e.text))},e.text):(0,H.jsx)(Ni,{menuItem:e},e.text)),(0,H.jsx)(oi,{children:(0,H.jsx)(ri,{})})]})})]})})}function Ni({menuItem:e}){return(0,H.jsx)(oi,{className:`text-muted-foreground dark:text-gray-400 hover:text-foreground dark:hover:text-white`,children:(0,H.jsx)(si,{asChild:!0,children:(0,H.jsxs)(I,{to:e.to,onClick:e.onClick,className:`flex-row items-center`,target:e.target,activeProps:e.to?Oi:void 0,children:[e.icon,(0,H.jsx)(`span`,{className:`hidden ${e.textBreakpoint}:inline-block`,children:e.text}),(0,H.jsx)(`span`,{className:`${e.textBreakpoint}:hidden`,children:`\xA0`})]})})})}function Pi({menuItems:e}){let{user:t}=Jt();on(t);let[n,r]=(0,V.useState)(!1),i=(0,V.useCallback)(()=>r(e=>!e),[]),a=(0,V.useCallback)(()=>r(!1),[]);return(0,H.jsxs)(`div`,{className:`md:hidden`,id:`mobile-menu`,children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,H.jsx)(I,{to:`/`,children:(0,H.jsx)(Kr,{})}),(0,H.jsx)(ui,{}),(0,H.jsxs)(`button`,{type:`button`,className:`shadow-xs text-muted-foreground dark:text-grey-400 hover:text-foreground dark:hover:text-white hover:bg-muted dark:hover:bg-black-dark`,onClick:i,children:[(0,H.jsx)(`span`,{className:`sr-only`,children:n?`Close menu`:`Open menu`}),n?(0,H.jsx)(jr,{}):(0,H.jsx)(nr,{})]})]}),(0,H.jsx)(`div`,{className:`${n?`fixed`:`hidden`} top-40 bottom-0 left-0 right-0 bg-foreground/20 dark:bg-black-dark dark:opacity-70`,onClick:a}),(0,H.jsxs)(`div`,{className:`${n?`block`:`hidden`} md:hidden z-50 space-y-1 pb-3 bg-card border-b border-border dark:bg-black-dark dark:border-none absolute left-0 top-full w-full rounded-b-md`,children:[(0,H.jsx)(`div`,{className:`flex justify-end px-3 pt-2`,children:(0,H.jsx)(ri,{})}),e.map(e=>Ai(e)?!!e.items.length&&(0,H.jsx)(`div`,{className:`bg-muted dark:bg-black pl-10 pr-2 py-2`,children:e.items.map(e=>(0,H.jsx)(Fi,{menuItem:e,onClick:a},e.text))},e.text):(0,H.jsx)(Fi,{menuItem:e,onClick:a},e.text))]})]})}function Fi({menuItem:e,onClick:t}){let n=(0,V.useCallback)(()=>{e.onClick?.(),t()},[e,t]);return(0,H.jsxs)(I,{to:e.to,onClick:n,target:e.target,className:`flex flex-row px-3 py-2 text-base font-medium rounded-md text-muted-foreground dark:text-gray-400 hover:text-foreground dark:hover:text-white`,activeProps:e.to?Oi:void 0,children:[e.icon,(0,H.jsx)(`span`,{className:`ml-4`,children:e.text})]})}function Ii(){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`header`,{className:`fixed top-0 z-40 w-full h-20 p-4 bg-gradient-to-r from-violet-100 to-white border-b border-violet-200 dark:from-purple-950 dark:to-zinc-900 dark:border-purple-950 md:px-12`,children:(0,H.jsx)(ki,{})}),(0,H.jsxs)(`div`,{className:`pt-20 h-screen grid grid-cols-1 md:grid-cols-2`,children:[(0,H.jsx)(`section`,{"aria-label":`Harper Fabric overview`,className:`items-center justify-center hidden text-white md:flex px-6 fabricSignupTextContainer`,children:(0,H.jsx)(`img`,{className:`object-scale-down max-h-[calc(100vh-80px-40px)] min-h-115`,src:`/fabric-signup-text.png`,alt:`One Runtime: App, database, Cache and Messaging. Distributed by design, free to deploy, and live in minutes. Deploy!`})}),(0,H.jsx)(`main`,{className:`overflow-y-auto px-6 bg-white dark:bg-linear-(--black-dark-gradient) border-l border-border dark:border-none`,children:(0,H.jsx)(`div`,{className:`min-h-full flex items-start justify-center py-12`,children:(0,H.jsx)(Te,{})})})]})]})}var Li;function Ri(){(0,V.useEffect)(()=>{},[])}var zi=[`gmail.com`,`yahoo.com`,`hotmail.com`,`outlook.com`,`icloud.com`,`aol.com`,`protonmail.com`,`mail.com`,`zoho.com`,`yandex.com`,`gmx.com`,`live.com`,`msn.com`,`me.com`,`inbox.com`];function Bi(e){if(!e||!e.includes(`@`))return null;let t=e.split(`@`).pop()||``;if(!t)return null;for(let e of zi)if(t===e||t.endsWith(`.`+e))return null;return t}var Vi=null;function Hi(){let e=je(),t=ae(),n=de(),{redirect:r}=N({strict:!1});return(0,V.useEffect)(()=>{Vi||=(async function(){let i=await v().catch(()=>null);if(!i)L.error(`We were not able to verify your sign-in. Please try signing in again.`,{duration:1e4}),await e({to:`/sign-in`});else{l.setUserForEntity(h,i);let a=on(i);Hr(i);let o=Bi(i.email);Li?.identify?.({username:i.email,type:`email`,...o?{company:o}:{}}),await n.invalidateQueries({queryKey:u,refetchType:`none`}),await t.invalidate(),await e({to:r?.startsWith(`/`)?r:a})}Vi=null})()},[]),(0,H.jsxs)(`div`,{role:`status`,"aria-live":`polite`,className:`text-foreground dark:text-white w-lg flex flex-col gap-4`,children:[(0,H.jsxs)(`h1`,{className:`text-3xl font-light`,children:[(0,H.jsx)(`span`,{"aria-hidden":`true`,className:`text-2xl animate-flower-dance mr-4`,title:`Loading`,children:`🌼`}),`Checking...`]}),(0,H.jsx)(`div`,{className:`underline flex gap-4`,children:(0,H.jsx)(I,{className:`text-sm opacity-50 text-muted-foreground hover:text-foreground dark:text-inherit dark:hover:text-blue-300`,to:`/sign-in`,children:`Try signing in again`})})]})}function Ui({delayDuration:e=0,...t}){return(0,H.jsx)(Tt,{"data-slot":`tooltip-provider`,delayDuration:e,...t})}function Wi({...e}){return(0,H.jsx)(Ui,{children:(0,H.jsx)(_t,{"data-slot":`tooltip`,...e})})}function Gi({...e}){return(0,H.jsx)(zt,{"data-slot":`tooltip-trigger`,...e})}function Ki({className:e,sideOffset:t=0,arrowClassName:n,children:r,...i}){return(0,H.jsx)(Dt,{children:(0,H.jsxs)(Mt,{"data-slot":`tooltip-content`,sideOffset:t,className:f(`bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance`,e),...i,children:[r,(0,H.jsx)(Pt,{className:f(`bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]`,n)})]})})}var qi=new Map;function Ji(e){if(!e)return``;if(qi.has(e))return qi.get(e);let t=e.replace(/[-_]+/g,` `).replace(/\s+/g,` `).trim();if(!t)return qi.set(e,``),``;let n=t.match(/([A-Z]+(?=[A-Z][a-z])|[A-Z]?[a-z]+|[A-Z]+|[0-9]+)/g);if(!n)return qi.set(e,``),``;let r=[];for(let e=0;e<n.length;e++){let t=n[e],i=e+1<n.length?n[e+1]:void 0;/^[A-Z]{2,}$/.test(t)&&i&&/[A-Z]*s$/.test(i)||/^[A-Z]$/.test(t)&&i!==void 0&&/^[A-Z]s$/.test(i)?(r.push(t+i),e++):r.push(t)}let i=r.map(Yi).join(` `);return qi.set(e,i),i}function Yi(e){return/^[A-Z]{2,3}s?$/.test(e)||/^[0-9]+$/.test(e)?e:e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()}function Xi({restartRequired:e}){let t=ke(),{organization:n,instance:r,cluster:i}=Me({strict:!1});return(0,H.jsxs)(`div`,{role:`list`,className:`flex items-center space-x-2 xl:space-x-4 sm:max-w-9/10 max-w-[calc(100%-56px)]`,children:[...(0,V.useMemo)(()=>{let e=t.pathname.split(`/`).filter(e=>e&&e.length>0),a=[(0,H.jsxs)(I,{to:`/`,children:[(0,H.jsx)(Kn,{"aria-hidden":`true`,className:`size-5 shrink-0`}),(0,H.jsx)(`span`,{className:`sr-only`,children:`Home`})]},`home`)];for(let t=0;t<e.length;t++){let o=e[t];if(o===`instance`)continue;let s=`/${e.slice(0,t+1).join(`/`)}`,c=Ji(o);o===`databases`&&e.length===t+3?(c=e[t+2],t+=2):c.startsWith(`Org `)?c=n?.name||`Org`:c.startsWith(`Clu `)?(c=i?.name||`Cluster`,e[t+1]===`instance`&&(s+=`/instances`)):c.startsWith(`Ins `)?c=r?.name?.split(`.`)?.shift()||`Instance`:c===`Apis`&&(c=`APIs`),a.push((0,H.jsx)(`svg`,{fill:`currentColor`,viewBox:`0 0 20 20`,"aria-hidden":`true`,className:`size-5 shrink-0 text-grey`,children:(0,H.jsx)(`path`,{d:`M5.555 17.776l8-16 .894.448-8 16-.894-.448z`})},a.length+`-dash`),(0,H.jsx)(I,{to:s,className:`text-xs md:text-sm font-medium hover:text-grey truncate max-w-48`,children:c},s))}return a},[t.pathname,i?.name,r?.name,n?.name]),e&&(0,H.jsxs)(Wi,{children:[(0,H.jsx)(Gi,{asChild:!0,children:(0,H.jsxs)(`div`,{className:`text-xs italic text-muted-foreground`,children:[`* Restart `,(0,H.jsx)(`span`,{className:`hidden lg:inline-block`,children:`Requested`})]})}),(0,H.jsxs)(Ki,{side:`bottom`,children:[`This `,`Instance`,` is requesting a restart, when convenient, to apply your latest changes.`,(0,H.jsx)(`br`,{}),`You can do this from the Apps or Config pages.`]})]})]})}var W=bt,Zi=(0,V.createContext)({}),Qi=(0,V.createContext)({});function $i(){let e=(0,V.useContext)(Zi),t=(0,V.useContext)(Qi),{getFieldState:n}=xt(),r=Ct({name:e.name}),i=n(e.name,r);if(!e)throw Error(`useFormField should be used within <FormField>`);let{id:a}=t;return{id:a,name:e.name,formItemId:`${a}-form-item`,formDescriptionId:`${a}-form-item-description`,formMessageId:`${a}-form-item-message`,...i}}function G({...e}){let{error:t,formItemId:n,formDescriptionId:r,formMessageId:i}=$i();return(0,H.jsx)(qe,{"data-slot":`form-control`,id:n,"aria-describedby":t?`${r} ${i}`:`${r}`,"aria-invalid":!!t,...e})}function K({...e}){return(0,H.jsx)(Zi,{value:{name:e.name},children:(0,H.jsx)(It,{...e})})}function q({className:e,...t}){return(0,H.jsx)(Qi,{value:{id:(0,V.useId)()},children:(0,H.jsx)(`div`,{"data-slot":`form-item`,className:f(`grid gap-2`,e),...t})})}function ea({className:e,...t}){return(0,H.jsx)(Nt,{"data-slot":`label`,className:f(`text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50`,e),...t})}function J({className:e,...t}){let{error:n,formItemId:r}=$i();return(0,H.jsx)(ea,{"data-slot":`form-label`,"data-error":!!n,className:f(`data-[error=true]:text-destructive`,e),htmlFor:r,...t})}function Y({className:e,...t}){let{error:n,formMessageId:r}=$i(),i=n?String(n?.message):t.children;return i?(0,H.jsx)(`p`,{"data-slot":`form-message`,id:r,className:f(`text-destructive text-sm`,e),...t,children:i}):null}function X({className:e,type:t,...n}){return(0,H.jsx)(`input`,{type:t,"data-slot":`input`,className:f(`border-input file:text-foreground placeholder:text-muted-foreground selection:bg-purple
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/setup-BhFZv4af.js","assets/vendor-datadog-Bq_0f1ke.js","assets/rolldown-runtime-Cyuzqnbw.js","assets/dist-Cjh2xdPt.js","assets/editor.api-B3GrPa_a.js","assets/editor-B55U_qvj.css","assets/monaco.contribution-P371-WG4.js","assets/setup-C0w6qn7l.css","assets/index.lazy-DY3VcR86.js","assets/vendor-tanstack-DmFvmRiZ.js","assets/vendor-react-BqTNj-ZI.js","assets/button-kCMf1ZBL.js","assets/vendor-ui-to0aD0Fq.js","assets/vendor-core-BIhSIGPv.js","assets/useEntityRestURL-14jWKu9J.js","assets/index-DbKauQoC.css","assets/applications-CigxJarn.js","assets/createLucideIcon-D6HmSa4x.js","assets/tabs-BwkcW6ok.js","assets/setComponentFile-Bz6WI4jy.js","assets/applications-Bsqlfqjl.css","assets/FloatingChat-DTmhPsrm.js","assets/proxy-BJ77EweZ.js","assets/status-fW6PBpPM.js","assets/linear-BJWzVAVE.js","assets/step-BudVE2GU.js","assets/defaultLocale-C8Fc0cco.js","assets/init-Cs1-1e_z.js","assets/time-BFiCeQ_5.js","assets/band-CcbG6rPL.js","assets/ordinal-BeZAVUpG.js","assets/with-selector-DZDEkpbZ.js","assets/getAnalytics-HqW0hniG.js","assets/profile-DiV60L50.js"])))=>i.map(i=>d[i]);
2
+ import{a as e,t}from"./rolldown-runtime-Cyuzqnbw.js";import{_ as n,a as r,c as i,d as a,f as o,g as s,h as c,i as l,l as u,m as d,n as f,o as p,p as m,r as h,s as g,t as _,u as v}from"./button-kCMf1ZBL.js";import{A as y,S as b,_ as x,a as S,c as C,f as ee,h as w,j as T,l as E,n as D,o as te,r as ne,v as O,x as k,y as re}from"./vendor-core-BIhSIGPv.js";import{A,C as j,D as ie,E as ae,F as oe,I as se,L as ce,M,N as le,O as ue,P as de,R as fe,S as N,_ as P,a as pe,b as me,c as he,d as ge,f as _e,g as ve,i as ye,j as be,k as F,l as xe,m as Se,n as Ce,o as we,p as Te,r as Ee,s as De,t as Oe,u as ke,v as I,w as Ae,x as je,y as Me}from"./vendor-tanstack-DmFvmRiZ.js";import{a as Ne,i as Pe,n as Fe,r as Ie,t as Le}from"./vendor-datadog-Bq_0f1ke.js";import{r as Re,t as ze}from"./vendor-react-BqTNj-ZI.js";import{$ as Be,A as Ve,B as He,C as Ue,Ct as We,D as Ge,E as Ke,Et as qe,F as Je,G as Ye,H as Xe,I as Ze,J as Qe,K as $e,L as et,M as tt,N as nt,O as rt,P as it,Q as at,R as ot,S as st,St as ct,T as lt,Tt as L,U as ut,V as dt,W as ft,X as pt,Y as mt,Z as ht,_ as gt,_t,at as R,b as vt,bt as yt,ct as bt,dt as xt,et as St,ft as Ct,g as wt,gt as Tt,h as Et,ht as Dt,j as Ot,k as kt,lt as At,m as jt,mt as Mt,ot as Nt,pt as Pt,q as Ft,st as It,tt as Lt,ut as z,v as Rt,vt as zt,w as Bt,wt as Vt,x as Ht,xt as Ut,y as Wt,yt as Gt,z as Kt}from"./vendor-ui-to0aD0Fq.js";import{t as B}from"./createLucideIcon-D6HmSa4x.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var V=e(Ne(),1);function qt(){let[e,t]=(0,V.useState)(l.getAllConnections());return(0,V.useEffect)(()=>l.listenToAllEntities((n,r)=>{t({...e,[r]:n})}),[e]),e}function Jt(){let e=l.calculateIdFromEntity(h),[t,n]=(0,V.useState)(l.getConnectionById(h));return(0,V.useEffect)(()=>l.listenToEntity(e,n),[e]),t}function Yt(){return Jt()}function Xt(){let{user:e}=Yt();return Zt(e)}function Zt(e){return e?.fabricRole===`fabric_admin`||e?.fabricRole===`super_user`}function Qt(e){let t=h,{clusterId:n,instanceId:r}=j({strict:!1}),[i,a]=(0,V.useState)(l.getConnectionById(t??r??n));return(0,V.useEffect)(()=>l.listenToEntity(t,a),[t]),i}var H=Re();function $t({className:e,...t}){return(0,H.jsx)(`div`,{"data-slot":`card`,className:f(`bg-card text-card-foreground flex flex-col gap-4 rounded-2xl py-5 shadow-deep ring-1 ring-black/5 dark:ring-white/5`,e),...t})}function en({className:e,...t}){return(0,H.jsx)(`div`,{"data-slot":`card-header`,className:f(`flex flex-col gap-1.5 px-6`,e),...t})}function tn({className:e,...t}){return(0,H.jsx)(`div`,{"data-slot":`card-title`,className:f(`leading-none text-lg`,e),...t})}function nn({className:e,...t}){return(0,H.jsx)(`div`,{"data-slot":`card-description`,className:f(`text-muted-foreground text-xs`,e),...t})}function rn({className:e,...t}){return(0,H.jsx)(`div`,{"data-slot":`card-content`,className:f(`px-6`,e),...t})}function an(e){return e!==null&&!!e.username}function on(e){if(e&&!an(e)){let t=Object.keys(e.roles);if(t.length===1)return`/${t[0]}`}return`/`}var sn=B(`activity`,[[`path`,{d:`M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2`,key:`169zse`}]]),cn=B(`arrow-down-to-line`,[[`path`,{d:`M12 17V3`,key:`1cwfxf`}],[`path`,{d:`m6 11 6 6 6-6`,key:`12ii2o`}],[`path`,{d:`M19 21H5`,key:`150jfl`}]]),ln=B(`arrow-down`,[[`path`,{d:`M12 5v14`,key:`s699le`}],[`path`,{d:`m19 12-7 7-7-7`,key:`1idqje`}]]),un=B(`arrow-left`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]),dn=B(`arrow-right`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]),fn=B(`arrow-up-down`,[[`path`,{d:`m21 16-4 4-4-4`,key:`f6ql7i`}],[`path`,{d:`M17 20V4`,key:`1ejh1v`}],[`path`,{d:`m3 8 4-4 4 4`,key:`11wl7u`}],[`path`,{d:`M7 4v16`,key:`1glfcx`}]]),pn=B(`arrow-up-from-line`,[[`path`,{d:`m18 9-6-6-6 6`,key:`kcunyi`}],[`path`,{d:`M12 3v14`,key:`7cf3v8`}],[`path`,{d:`M5 21h14`,key:`11awu3`}]]),mn=B(`arrow-up`,[[`path`,{d:`m5 12 7-7 7 7`,key:`hav0vg`}],[`path`,{d:`M12 19V5`,key:`x0mq9r`}]]),hn=B(`bell`,[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}]]),gn=B(`book-open-text`,[[`path`,{d:`M12 7v14`,key:`1akyts`}],[`path`,{d:`M16 12h2`,key:`7q9ll5`}],[`path`,{d:`M16 8h2`,key:`msurwy`}],[`path`,{d:`M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z`,key:`ruj8y`}],[`path`,{d:`M6 12h2`,key:`32wvfc`}],[`path`,{d:`M6 8h2`,key:`30oboj`}]]),_n=B(`brush-cleaning`,[[`path`,{d:`m16 22-1-4`,key:`1ow2iv`}],[`path`,{d:`M19 14a1 1 0 0 0 1-1v-1a2 2 0 0 0-2-2h-3a1 1 0 0 1-1-1V4a2 2 0 0 0-4 0v5a1 1 0 0 1-1 1H6a2 2 0 0 0-2 2v1a1 1 0 0 0 1 1`,key:`11gii7`}],[`path`,{d:`M19 14H5l-1.973 6.767A1 1 0 0 0 4 22h16a1 1 0 0 0 .973-1.233z`,key:`bju7h4`}],[`path`,{d:`m8 22 1-4`,key:`s3unb`}]]),vn=B(`bug`,[[`path`,{d:`M12 20v-9`,key:`1qisl0`}],[`path`,{d:`M14 7a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4z`,key:`uouzyp`}],[`path`,{d:`M14.12 3.88 16 2`,key:`qol33r`}],[`path`,{d:`M21 21a4 4 0 0 0-3.81-4`,key:`1b0z45`}],[`path`,{d:`M21 5a4 4 0 0 1-3.55 3.97`,key:`5cxbf6`}],[`path`,{d:`M22 13h-4`,key:`1jl80f`}],[`path`,{d:`M3 21a4 4 0 0 1 3.81-4`,key:`1fjd4g`}],[`path`,{d:`M3 5a4 4 0 0 0 3.55 3.97`,key:`1d7oge`}],[`path`,{d:`M6 13H2`,key:`82j7cp`}],[`path`,{d:`m8 2 1.88 1.88`,key:`fmnt4t`}],[`path`,{d:`M9 7.13V6a3 3 0 1 1 6 0v1.13`,key:`1vgav8`}]]);B(`building`,[[`path`,{d:`M12 10h.01`,key:`1nrarc`}],[`path`,{d:`M12 14h.01`,key:`1etili`}],[`path`,{d:`M12 6h.01`,key:`1vi96p`}],[`path`,{d:`M16 10h.01`,key:`1m94wz`}],[`path`,{d:`M16 14h.01`,key:`1gbofw`}],[`path`,{d:`M16 6h.01`,key:`1x0f13`}],[`path`,{d:`M8 10h.01`,key:`19clt8`}],[`path`,{d:`M8 14h.01`,key:`6423bh`}],[`path`,{d:`M8 6h.01`,key:`1dz90k`}],[`path`,{d:`M9 22v-3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v3`,key:`cabbwy`}],[`rect`,{x:`4`,y:`2`,width:`16`,height:`20`,rx:`2`,key:`1uxh74`}]]);var yn=B(`calendar-clock`,[[`path`,{d:`M16 14v2.2l1.6 1`,key:`fo4ql5`}],[`path`,{d:`M16 2v4`,key:`4m81vk`}],[`path`,{d:`M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5`,key:`1osxxc`}],[`path`,{d:`M3 10h5`,key:`r794hk`}],[`path`,{d:`M8 2v4`,key:`1cmpym`}],[`circle`,{cx:`16`,cy:`16`,r:`6`,key:`qoo3c4`}]]),bn=B(`chart-pie`,[[`path`,{d:`M21 12c.552 0 1.005-.449.95-.998a10 10 0 0 0-8.953-8.951c-.55-.055-.998.398-.998.95v8a1 1 0 0 0 1 1z`,key:`pzmjnu`}],[`path`,{d:`M21.21 15.89A10 10 0 1 1 8 2.83`,key:`k2fpak`}]]),xn=B(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),Sn=B(`chevron-down`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]),Cn=B(`chevron-right`,[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]),wn=B(`chevron-up`,[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]),Tn=B(`circle-alert`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`,key:`1pkeuh`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`,key:`4dfq90`}]]),En=B(`circle-check-big`,[[`path`,{d:`M21.801 10A10 10 0 1 1 17 3.335`,key:`yps3ct`}],[`path`,{d:`m9 11 3 3L22 4`,key:`1pflzl`}]]),Dn=B(`circle`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]]),On=B(`clipboard-check`,[[`rect`,{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`,key:`tgr4d6`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2`,key:`116196`}],[`path`,{d:`m9 14 2 2 4-4`,key:`df797q`}]]),kn=B(`clipboard`,[[`rect`,{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`,key:`tgr4d6`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2`,key:`116196`}]]),An=B(`cloud-alert`,[[`path`,{d:`M12 12v4`,key:`tww15h`}],[`path`,{d:`M12 20h.01`,key:`zekei9`}],[`path`,{d:`M8.128 16.949A7 7 0 1 1 15.71 8h1.79a1 1 0 0 1 0 9h-1.642`,key:`1namsd`}]]),jn=B(`cloud-download`,[[`path`,{d:`M12 13v8l-4-4`,key:`1f5nwf`}],[`path`,{d:`m12 21 4-4`,key:`1lfcce`}],[`path`,{d:`M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284`,key:`ui1hmy`}]]),Mn=B(`cloud-upload`,[[`path`,{d:`M12 13v8`,key:`1l5pq0`}],[`path`,{d:`M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242`,key:`1pljnt`}],[`path`,{d:`m8 17 4-4 4 4`,key:`1quai1`}]]),Nn=B(`columns-3-cog`,[[`path`,{d:`M10.5 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v5.5`,key:`1g2yzs`}],[`path`,{d:`m14.3 19.6 1-.4`,key:`11sv9r`}],[`path`,{d:`M15 3v7.5`,key:`7lm50a`}],[`path`,{d:`m15.2 16.9-.9-.3`,key:`1t7mvx`}],[`path`,{d:`m16.6 21.7.3-.9`,key:`1j67ps`}],[`path`,{d:`m16.8 15.3-.4-1`,key:`1ei7r6`}],[`path`,{d:`m19.1 15.2.3-.9`,key:`18r7jp`}],[`path`,{d:`m19.6 21.7-.4-1`,key:`z2vh2`}],[`path`,{d:`m20.7 16.8 1-.4`,key:`19m87a`}],[`path`,{d:`m21.7 19.4-.9-.3`,key:`1qgwi9`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}]]),Pn=B(`copy`,[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]),Fn=B(`credit-card`,[[`rect`,{width:`20`,height:`14`,x:`2`,y:`5`,rx:`2`,key:`ynyp8z`}],[`line`,{x1:`2`,x2:`22`,y1:`10`,y2:`10`,key:`1b3vmo`}]]),In=B(`database`,[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}],[`path`,{d:`M3 5V19A9 3 0 0 0 21 19V5`,key:`1wlel7`}],[`path`,{d:`M3 12A9 3 0 0 0 21 12`,key:`mv7ke4`}]]),Ln=B(`ellipsis`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`19`,cy:`12`,r:`1`,key:`1wjl8i`}],[`circle`,{cx:`5`,cy:`12`,r:`1`,key:`1pcz8c`}]]),Rn=B(`external-link`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]),zn=B(`funnel-plus`,[[`path`,{d:`M13.354 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14v6a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341l1.218-1.348`,key:`8mvsmf`}],[`path`,{d:`M16 6h6`,key:`1dogtp`}],[`path`,{d:`M19 3v6`,key:`1ytpjt`}]]),Bn=B(`funnel-x`,[[`path`,{d:`M12.531 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14v6a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341l.427-.473`,key:`ol2ft2`}],[`path`,{d:`m16.5 3.5 5 5`,key:`15e6fa`}],[`path`,{d:`m21.5 3.5-5 5`,key:`m0lwru`}]]),Vn=B(`funnel`,[[`path`,{d:`M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z`,key:`sc7q7i`}]]),Hn=B(`gauge`,[[`path`,{d:`m12 14 4-4`,key:`9kzdfg`}],[`path`,{d:`M3.34 19a10 10 0 1 1 17.32 0`,key:`19p75a`}]]),Un=B(`git-graph`,[[`circle`,{cx:`5`,cy:`6`,r:`3`,key:`1qnov2`}],[`path`,{d:`M5 9v6`,key:`158jrl`}],[`circle`,{cx:`5`,cy:`18`,r:`3`,key:`104gr9`}],[`path`,{d:`M12 3v18`,key:`108xh3`}],[`circle`,{cx:`19`,cy:`6`,r:`3`,key:`108a5v`}],[`path`,{d:`M16 15.7A9 9 0 0 0 19 9`,key:`1e3vqb`}]]);B(`globe`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`,key:`13o1zl`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}]]);var Wn=B(`grip-vertical`,[[`circle`,{cx:`9`,cy:`12`,r:`1`,key:`1vctgf`}],[`circle`,{cx:`9`,cy:`5`,r:`1`,key:`hp0tcf`}],[`circle`,{cx:`9`,cy:`19`,r:`1`,key:`fkjjf6`}],[`circle`,{cx:`15`,cy:`12`,r:`1`,key:`1tmaij`}],[`circle`,{cx:`15`,cy:`5`,r:`1`,key:`19l28e`}],[`circle`,{cx:`15`,cy:`19`,r:`1`,key:`f4zoj3`}]]),Gn=B(`handshake`,[[`path`,{d:`m11 17 2 2a1 1 0 1 0 3-3`,key:`efffak`}],[`path`,{d:`m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4`,key:`9pr0kb`}],[`path`,{d:`m21 3 1 11h-2`,key:`1tisrp`}],[`path`,{d:`M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3`,key:`1uvwmv`}],[`path`,{d:`M3 4h8`,key:`1ep09j`}]]),Kn=B(`house`,[[`path`,{d:`M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8`,key:`5wwlr5`}],[`path`,{d:`M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`,key:`r6nss1`}]]),qn=B(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),Jn=B(`key-round`,[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]]),Yn=B(`key`,[[`path`,{d:`m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4`,key:`g0fldk`}],[`path`,{d:`m21 2-9.6 9.6`,key:`1j0ho8`}],[`circle`,{cx:`7.5`,cy:`15.5`,r:`5.5`,key:`yqb3hr`}]]),Xn=B(`list-todo`,[[`path`,{d:`M13 5h8`,key:`a7qcls`}],[`path`,{d:`M13 12h8`,key:`h98zly`}],[`path`,{d:`M13 19h8`,key:`c3s6r1`}],[`path`,{d:`m3 17 2 2 4-4`,key:`1jhpwq`}],[`rect`,{x:`3`,y:`4`,width:`6`,height:`6`,rx:`1`,key:`cif1o7`}]]),Zn=B(`loader-circle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]),Qn=B(`log-in`,[[`path`,{d:`m10 17 5-5-5-5`,key:`1bsop3`}],[`path`,{d:`M15 12H3`,key:`6jk70r`}],[`path`,{d:`M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4`,key:`u53s6r`}]]),$n=B(`log-out`,[[`path`,{d:`m16 17 5-5-5-5`,key:`1bji2h`}],[`path`,{d:`M21 12H9`,key:`dn1m92`}],[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,key:`1uf3rs`}]]),er=B(`mail-warning`,[[`path`,{d:`M22 10.5V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h12.5`,key:`e61zoh`}],[`path`,{d:`m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7`,key:`1ocrg3`}],[`path`,{d:`M20 14v4`,key:`1hm744`}],[`path`,{d:`M20 22v.01`,key:`12bgn6`}]]),tr=B(`map-pin`,[[`path`,{d:`M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0`,key:`1r0f0z`}],[`circle`,{cx:`12`,cy:`10`,r:`3`,key:`ilqhr7`}]]),nr=B(`menu`,[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]),rr=B(`monitor`,[[`rect`,{width:`20`,height:`14`,x:`2`,y:`3`,rx:`2`,key:`48i651`}],[`line`,{x1:`8`,x2:`16`,y1:`21`,y2:`21`,key:`1svkeh`}],[`line`,{x1:`12`,x2:`12`,y1:`17`,y2:`21`,key:`vw1qmm`}]]),ir=B(`moon`,[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`,key:`kfwtm`}]]),ar=B(`notepad-text`,[[`path`,{d:`M8 2v4`,key:`1cmpym`}],[`path`,{d:`M12 2v4`,key:`3427ic`}],[`path`,{d:`M16 2v4`,key:`4m81vk`}],[`rect`,{width:`16`,height:`18`,x:`4`,y:`4`,rx:`2`,key:`1u9h20`}],[`path`,{d:`M8 10h6`,key:`3oa6kw`}],[`path`,{d:`M8 14h8`,key:`1fgep2`}],[`path`,{d:`M8 18h5`,key:`17enja`}]]),or=B(`package`,[[`path`,{d:`M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z`,key:`1a0edw`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}],[`polyline`,{points:`3.29 7 12 12 20.71 7`,key:`ousv84`}],[`path`,{d:`m7.5 4.27 9 5.15`,key:`1c824w`}]]),sr=B(`pencil`,[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}]]),cr=B(`plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]),lr=B(`receipt-text`,[[`path`,{d:`M13 16H8`,key:`wsln4y`}],[`path`,{d:`M14 8H8`,key:`1l3xfs`}],[`path`,{d:`M16 12H8`,key:`1fr5h0`}],[`path`,{d:`M4 3a1 1 0 0 1 1-1 1.3 1.3 0 0 1 .7.2l.933.6a1.3 1.3 0 0 0 1.4 0l.934-.6a1.3 1.3 0 0 1 1.4 0l.933.6a1.3 1.3 0 0 0 1.4 0l.933-.6a1.3 1.3 0 0 1 1.4 0l.934.6a1.3 1.3 0 0 0 1.4 0l.933-.6A1.3 1.3 0 0 1 19 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1 1.3 1.3 0 0 1-.7-.2l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.934.6a1.3 1.3 0 0 1-1.4 0l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-1.4 0l-.934-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-.7.2 1 1 0 0 1-1-1z`,key:`ycz6yz`}]]),ur=B(`receipt`,[[`path`,{d:`M12 17V7`,key:`pyj7ub`}],[`path`,{d:`M16 8h-6a2 2 0 0 0 0 4h4a2 2 0 0 1 0 4H8`,key:`1elt7d`}],[`path`,{d:`M4 3a1 1 0 0 1 1-1 1.3 1.3 0 0 1 .7.2l.933.6a1.3 1.3 0 0 0 1.4 0l.934-.6a1.3 1.3 0 0 1 1.4 0l.933.6a1.3 1.3 0 0 0 1.4 0l.933-.6a1.3 1.3 0 0 1 1.4 0l.934.6a1.3 1.3 0 0 0 1.4 0l.933-.6A1.3 1.3 0 0 1 19 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1 1.3 1.3 0 0 1-.7-.2l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.934.6a1.3 1.3 0 0 1-1.4 0l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-1.4 0l-.934-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-.7.2 1 1 0 0 1-1-1z`,key:`ycz6yz`}]]),dr=B(`refresh-cw`,[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`,key:`v9h5vc`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`,key:`3uifl3`}],[`path`,{d:`M8 16H3v5`,key:`1cv678`}]]),fr=B(`rotate-ccw`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]),pr=B(`save`,[[`path`,{d:`M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z`,key:`1c8476`}],[`path`,{d:`M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7`,key:`1ydtos`}],[`path`,{d:`M7 3v4a1 1 0 0 0 1 1h7`,key:`t51u73`}]]),mr=B(`scale`,[[`path`,{d:`M12 3v18`,key:`108xh3`}],[`path`,{d:`m19 8 3 8a5 5 0 0 1-6 0zV7`,key:`zcdpyk`}],[`path`,{d:`M3 7h1a17 17 0 0 0 8-2 17 17 0 0 0 8 2h1`,key:`1yorad`}],[`path`,{d:`m5 8 3 8a5 5 0 0 1-6 0zV7`,key:`eua70x`}],[`path`,{d:`M7 21h10`,key:`1b0cd5`}]]),hr=B(`search`,[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]),gr=B(`server`,[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`,key:`ngkwjq`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`,key:`iecqi9`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`,key:`16zg32`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`,key:`nzw8ys`}]]),_r=B(`settings`,[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`,key:`1i5ecw`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),vr=B(`shield-check`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),yr=B(`shield-x`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m14.5 9.5-5 5`,key:`17q4r4`}],[`path`,{d:`m9.5 9.5 5 5`,key:`18nt4w`}]]),br=B(`sliders-horizontal`,[[`path`,{d:`M10 5H3`,key:`1qgfaw`}],[`path`,{d:`M12 19H3`,key:`yhmn1j`}],[`path`,{d:`M14 3v4`,key:`1sua03`}],[`path`,{d:`M16 17v4`,key:`1q0r14`}],[`path`,{d:`M21 12h-9`,key:`1o4lsq`}],[`path`,{d:`M21 19h-5`,key:`1rlt1p`}],[`path`,{d:`M21 5h-7`,key:`1oszz2`}],[`path`,{d:`M8 10v4`,key:`tgpxqk`}],[`path`,{d:`M8 12H3`,key:`a7s4jb`}]]),xr=B(`square-pen`,[[`path`,{d:`M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7`,key:`1m0v6g`}],[`path`,{d:`M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z`,key:`ohrbg2`}]]),Sr=B(`sun`,[[`circle`,{cx:`12`,cy:`12`,r:`4`,key:`4exip2`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`m4.93 4.93 1.41 1.41`,key:`149t6j`}],[`path`,{d:`m17.66 17.66 1.41 1.41`,key:`ptbguv`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`m6.34 17.66-1.41 1.41`,key:`1m8zz5`}],[`path`,{d:`m19.07 4.93-1.41 1.41`,key:`1shlcs`}]]),Cr=B(`table`,[[`path`,{d:`M12 3v18`,key:`108xh3`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M3 9h18`,key:`1pudct`}],[`path`,{d:`M3 15h18`,key:`5xshup`}]]),wr=B(`terminal`,[[`path`,{d:`M12 19h8`,key:`baeox8`}],[`path`,{d:`m4 17 6-6-6-6`,key:`1yngyt`}]]),Tr=B(`ticket`,[[`path`,{d:`M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z`,key:`qn84l0`}],[`path`,{d:`M13 5v2`,key:`dyzc3o`}],[`path`,{d:`M13 17v2`,key:`1ont0d`}],[`path`,{d:`M13 11v2`,key:`1wjjxi`}]]),Er=B(`trash-2`,[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]),Dr=B(`trash`,[[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]),Or=B(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),kr=B(`user`,[[`path`,{d:`M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2`,key:`975kel`}],[`circle`,{cx:`12`,cy:`7`,r:`4`,key:`17ys0d`}]]),Ar=B(`users`,[[`path`,{d:`M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2`,key:`1yyitq`}],[`path`,{d:`M16 3.128a4 4 0 0 1 0 7.744`,key:`16gr8j`}],[`path`,{d:`M22 21v-2a4 4 0 0 0-3-3.87`,key:`kshegd`}],[`circle`,{cx:`9`,cy:`7`,r:`4`,key:`nufk8`}]]),jr=B(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]);function Mr({className:e,error:t,title:n,showReturnToHome:r,children:i}){let{user:a,isLoading:o}=Jt();return on(a),(0,H.jsxs)($t,{className:f(`text-red p-5 border border-red rounded-md m-12 mt-36`,e),children:[(0,H.jsxs)(en,{children:[(0,H.jsx)(tn,{className:`text-2xl`,children:(0,H.jsx)(`h2`,{children:n??`Component Error`})}),(0,H.jsx)(nn,{children:t.message})]}),(0,H.jsxs)(rn,{children:[i,r!==!1&&(a&&!o?(0,H.jsx)(I,{to:`/`,children:(0,H.jsxs)(_,{children:[` `,(0,H.jsx)(un,{}),` Return to Home`]})}):(0,H.jsx)(I,{to:`/sign-in`,children:(0,H.jsxs)(_,{children:[` `,(0,H.jsx)(un,{}),` Go to Sign In Page`]})}))]})]})}function Nr(){let{user:e,isLoading:t}=Jt();return on(e),(0,H.jsx)(`div`,{className:`flex items-center justify-center h-screen px-3`,children:(0,H.jsxs)($t,{className:`text-red p-5 border border-red rounded-md w-full max-w-md`,children:[(0,H.jsx)(en,{children:(0,H.jsx)(tn,{className:`text-2xl`,children:(0,H.jsx)(`h2`,{children:`Sorry, Page Not Found`})})}),(0,H.jsx)(rn,{children:e&&!t?(0,H.jsx)(I,{to:`/`,children:(0,H.jsxs)(_,{children:[` `,(0,H.jsx)(un,{}),` Return to Home`]})}):(0,H.jsx)(I,{to:`/sign-in`,children:(0,H.jsxs)(_,{children:[` `,(0,H.jsx)(un,{}),` Go Sign In Page`]})})})]})})}function Pr(){return`ontouchstart`in window||navigator.maxTouchPoints>0}function Fr(e){let t=`Error`,n=`We had some trouble!`;console.error(e);let r=e,i=e;if(typeof e==`string`?n=e:r?.response?.data?typeof r.response.data==`string`?n=r.response.data:r.response.data.error?n=r.response.data.error:r.response.data.message&&(n=r.response.data.message):i?.message&&(n=i.message),n.includes(`:`)){let e=n.split(`:`);t=e.shift(),n=e.join(`:`)}let a=r?.code===`ECONNABORTED`||r?.code===`ETIMEDOUT`;L.error(t,{id:a?`request-timeout`:void 0,description:n,action:{label:`Dismiss`,onClick:()=>L.dismiss()}})}var Ir=new oe({queryCache:new se({onError:Fr}),mutationCache:new ce({onError:Fr})});function Lr(e){return!!e}var Rr=!1,zr=!1;function Br(e){if(e.type!==`error`)return!0;let t=e.error?.message??``,n=e.error?.source;if(/Request aborted/i.test(t)||t.includes(`Fabric Connect not established`))return!1;let r=e.error?.resource?.url??``,i=/\/(HDBInstance|Cluster)\/[^/]+\/operation/.test(r),a=/timeout of \d+ms exceeded/i.test(t)||/Network Error/i.test(t)||n===`network`;return!(i&&a)}function Vr(){(0,V.useEffect)(()=>{Rr||(Rr=!0,zr&&(Ie.init({applicationId:`f590deee-4bac-49b4-a202-3b6963d9721d`,clientToken:`pub27aa29cea521492f4fef73032f86a023`,site:`datadoghq.com`,service:`studio`,env:void 0,version:`v5.1.0`,trackViewsManually:!0,trackUserInteractions:!0,beforeSend:Br,sessionSampleRate:100,sessionReplaySampleRate:0,defaultPrivacyLevel:`mask`,plugins:[Fe()]}),Ie.onReady(()=>{Ie.startView({service:`studio`,version:`v5.1.0`,name:window.location.pathname||`initial`})})))},[])}function Hr(e){if(!zr)return;Ie.setUser({id:e.id,email:e.email,name:[e.firstname,e.lastname].filter(Boolean).join(` `)||void 0});let t=`hasLoggedInBefore:${e.id}`;localStorage.getItem(t)?Ie.addAction(`return_login`):(Ie.addAction(`first_time_login`),localStorage.setItem(t,`true`));let n=`lastLoginTimestamp:${e.id}`,r=localStorage.getItem(n),i=Date.now();if(r){let e=Math.floor((i-Number(r))/1e3);!Number.isNaN(e)&&e>=0&&Ie.addAction(`login_time_gap`,{value:e})}localStorage.setItem(n,String(i)),Ie.addAction(`login_success`,{userId:e.id})}function Ur(){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(xe,{}),(0,H.jsx)(Te,{})]})}var Wr=ve()({component:Ur});function Gr(){return(0,H.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 126.644 96`,width:24,height:24,children:(0,H.jsx)(`path`,{fill:`currentColor`,d:`M81.15,0c-1.2376,2.1973-2.3489,4.4704-3.3591,6.794-9.5975-1.4396-19.3718-1.4396-28.9945,0-.985-2.3236-2.1216-4.5967-3.3591-6.794-9.0166,1.5407-17.8059,4.2431-26.1405,8.0568C2.779,32.5304-1.6914,56.3725.5312,79.8863c9.6732,7.1476,20.5083,12.603,32.0505,16.0884,2.6014-3.4854,4.8998-7.1981,6.8698-11.0623-3.738-1.3891-7.3497-3.1318-10.8098-5.1523.9092-.6567,1.7932-1.3386,2.6519-1.9953,20.281,9.547,43.7696,9.547,64.0758,0,.8587.7072,1.7427,1.3891,2.6519,1.9953-3.4601,2.0457-7.0718,3.7632-10.835,5.1776,1.97,3.8642,4.2683,7.5769,6.8698,11.0623,11.5419-3.4854,22.3769-8.9156,32.0509-16.0631,2.626-27.2771-4.496-50.9172-18.817-71.8548C98.9811,4.2684,90.1918,1.5659,81.1752.0505l-.0252-.0505ZM42.2802,65.4144c-6.2383,0-11.4159-5.6575-11.4159-12.6535s4.9755-12.6788,11.3907-12.6788,11.5169,5.708,11.4159,12.6788c-.101,6.9708-5.026,12.6535-11.3907,12.6535ZM84.3576,65.4144c-6.2637,0-11.3907-5.6575-11.3907-12.6535s4.9755-12.6788,11.3907-12.6788,11.4917,5.708,11.3906,12.6788c-.101,6.9708-5.026,12.6535-11.3906,12.6535Z`})})}function Kr(){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`img`,{src:`/harper-studio_white.png`,alt:`Harper Studio`,className:`w-64 hidden md:inline-block`}),(0,H.jsx)(`img`,{src:`/HDBDogOnly.svg`,width:`50px`,height:`44px`,alt:`Harper`,className:`inline-block md:hidden`})]})}function qr(e){try{return e===`null`||e===`undefined`||e==null?null:JSON.parse(e)}catch(e){return console.error(`safeParse failed to parse value, returning null instead`,e),null}}function Jr(e,t){return qr(localStorage.getItem(e))??t}function Yr(e,t){t==null?localStorage.removeItem(e):localStorage.setItem(e,JSON.stringify(t))}function Xr(e,t){let n=(0,V.useState)(Jr(e,t)),[r]=n;return(0,V.useEffect)(()=>Yr(e,r),[e,r]),n}function Zr(){let[e,t]=(0,V.useState)(()=>window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`);return(0,V.useEffect)(()=>{let e=window.matchMedia(`(prefers-color-scheme: dark)`),n=e=>t(e.matches?`dark`:`light`);return e.addEventListener(`change`,n),()=>e.removeEventListener(`change`,n)},[]),e}var Qr=function(e){return e.ApplicationChatPosition=`ApplicationChatPosition`,e.ApplicationChatWidth=`ApplicationChatWidth`,e.ChatAlwaysApprovedTools=`ChatAlwaysApprovedTools`,e.SavedClusterState=`SavedClusterState`,e.Theme=`Theme`,e}({}),$r=(0,V.createContext)([`system`,()=>{}]);function ei({children:e}){let[t,n]=Xr(Qr.Theme,`system`),r=Zr();return(0,V.useEffect)(()=>{let e=t===`dark`||t===`system`&&r===`dark`;document.documentElement.classList.toggle(`dark`,e)},[t,r]),(0,H.jsx)($r.Provider,{value:[t,n],children:e})}function ti(){return(0,V.useContext)($r)}var ni=[{value:`light`,icon:(0,H.jsx)(Sr,{className:`size-4`}),label:`Light`},{value:`system`,icon:(0,H.jsx)(rr,{className:`size-4`}),label:`System`},{value:`dark`,icon:(0,H.jsx)(ir,{className:`size-4`}),label:`Dark`}];function ri(){let[e,t]=ti();return(0,H.jsx)(`div`,{className:`flex items-center bg-muted dark:bg-black rounded-xl p-0.5 gap-0.5`,children:ni.map(({value:n,icon:r,label:i})=>(0,H.jsx)(`button`,{type:`button`,title:i,onClick:()=>t(n),className:`p-1.5 rounded-lg transition-colors ${e===n?`bg-background text-foreground shadow-xs`:`text-muted-foreground hover:text-foreground`}`,children:r},n))})}function ii({className:e,...t}){return(0,H.jsx)(`div`,{className:f(`absolute top-full left-0 isolate z-50 flex justify-center`),children:(0,H.jsx)(We,{"data-slot":`navigation-menu-viewport`,className:f(`origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border shadow md:w-[var(--radix-navigation-menu-viewport-width)]`,e),...t})})}function ai({className:e,children:t,viewport:n=!0,...r}){return(0,H.jsxs)(ct,{"data-slot":`navigation-menu`,"data-viewport":n,className:f(`group/navigation-menu relative flex max-w-max flex-1 items-center justify-center`,e),...r,children:[t,n&&(0,H.jsx)(ii,{})]})}function oi({className:e,...t}){return(0,H.jsx)(Gt,{"data-slot":`navigation-menu-item`,className:f(`relative`,e),...t})}function si({className:e,...t}){return(0,H.jsx)(yt,{"data-slot":`navigation-menu-link`,className:f(`hover:text-foreground dark:hover:text-white ring-ring/10 dark:ring-ring/20 dark:outline-ring/40 outline-ring/50 flex flex-col gap-1 rounded-sm p-2 text-sm transition-[color,box-shadow] focus-visible:ring-4 focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-4`,e),...t})}function ci({className:e,...t}){return(0,H.jsx)(Ut,{"data-slot":`navigation-menu-list`,className:f(`group flex flex-1 list-none items-center justify-center gap-1`,e),...t})}var li=y(`inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-auto`,{variants:{variant:{default:`border-primary bg-primary/40 text-primary-foreground [a&]:hover:bg-primary/90`,secondary:`border-secondary bg-secondary/40 text-secondary-foreground [a&]:hover:bg-secondary/90`,warning:`border-yellow bg-yellow/40 text-foreground [a&]:hover:bg-yellow/90`,success:`border-green bg-green/40 text-foreground [a&]:hover:bg-green/90`,destructive:`border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40`,outline:`text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground`}},defaultVariants:{variant:`default`}});function ui(){let e=`v5.1.0`;return(0,H.jsx)(`a`,{href:e.startsWith(`v`)?`https://github.com/HarperFast/studio/releases/tag/${e}`:`https://github.com/HarperFast/studio/releases`,target:`_blank`,rel:`noopener noreferrer`,children:(0,H.jsxs)(`span`,{className:f(li({variant:`default`}),`text-xs inline-block ml-2 align-text-top`),children:[e,` BETA`]})})}function di(e={}){let{instanceId:t,clusterId:n}=j({strict:!1});return o({id:h,...e})}function fi(e={}){let{instanceId:t,clusterId:n}=j({strict:!1});return{instanceClient:o({id:h,...e}),entityType:`instance`}}function U(e={}){let{instanceId:t,clusterId:n}=j({strict:!1});return(0,V.useMemo)(()=>pi({instanceId:t,clusterId:n,...e}),[e.instanceId??t,e.clusterId??n,e.operationsUrl,e.port,e.secure,e.disableFabricConnect,e.forceFabricConnect])}function pi({instanceId:e,clusterId:t,...n}){let r=h;if(!r)throw Error(`id could not be automatically calculated in useInstanceClientIdParams`);return{instanceClient:o({id:r,...n}),entityId:r,entityType:`instance`}}function mi(){localStorage.clear()}function hi(){sessionStorage.clear()}async function gi(){l.setUserForEntity(h,null),Ir.getQueryCache().clear(),mi(),hi(),await Ir.invalidateQueries({refetchType:`none`})}async function _i(e){await l.signOutFromPotentiallyAuthenticatedInstances(),await i({...e,entityId:h})}function vi(){let e=di();return F({mutationFn:()=>_i({instanceClient:e}),onSuccess:gi})}function yi(e){let{user:t}=Yt(),{organizationId:n}=j({strict:!1});if(Zt(t))return{update:!0,remove:!0};let r=t?.roles?.[e??n];return!r||`oauthProviders`in r||!r.permission&&!r.organization?{update:!1,remove:!1}:r.permission?.super_user?{update:!0,remove:!0}:{update:r.organization.update,remove:r.organization.delete}}function bi(e){let{user:t}=Yt(),{organizationId:n}=j({strict:!1});if(Zt(t))return{create:!0,remove:!0,update:!0,view:!0};let r=t?.roles?.[e??n];if(!r||`oauthProviders`in r||!r.permission&&!r.organization?.roles)return{create:!1,remove:!1,update:!1,view:!1};if(r.permission?.super_user)return{create:!0,remove:!0,update:!0,view:!0};let i=r.organization.roles;return{create:i.create,remove:i.delete,update:i.update,view:i.view}}function xi(e,t){let{user:n}=Yt(),{organizationId:r,clusterId:i}=j({strict:!1});return Si(n,e??r,t??i)}function Si(e,t,n){if(Zt(e))return{create:!0,remove:!0,update:!0,view:!0};let r=e?.roles?.[t];if(!r||`oauthProviders`in r||!r.permission&&!r.organization?.clusters)return{create:!1,remove:!1,update:!1,view:!1};if(r.permission?.super_user)return{create:!0,remove:!0,update:!0,view:!0};let i=r.organization.clusters.resources?.find(e=>e.id===n),a=r.organization.clusters;return{create:a.create,remove:i?i.delete:a.delete,update:i?i.update:a.update,view:i?i.view:a.view}}function Ci(e,t){let{user:n}=Yt(),{organizationId:r,clusterId:i}=j({strict:!1});return wi(n,e??r,t??i)}function wi(e,t,n){if(Zt(e))return{create:!0,remove:!0,update:!0,view:!0};let r=e?.roles?.[t];if(!r||`oauthProviders`in r||!r.permission&&!r.organization?.clusters)return{create:!1,remove:!1,update:!1,view:!1};if(r.permission?.super_user)return{create:!0,remove:!0,update:!0,view:!0};let i=r.organization.clusters.resources?.find(e=>e.id===n)?.instances,a=r.organization.clusters;return{create:i?i.create:a.create,remove:i?i.delete:a.delete,update:i?i.update:a.update,view:i?i.view:a.view}}function Ti(e){let{clusterId:t,instanceId:n}=j({strict:!1}),{user:r}=Qt(e??n??t),i=r?.role?.permission;return i?i.super_user===!0:!1}function Ei(e){let{clusterId:t,instanceId:n}=j({strict:!1}),{user:r}=Qt(e??n??t),i=r?.role?.permission;return i?i.super_user===!0||i.structure_user===!0:!1}function Di(e,t,n,r){let{clusterId:i,instanceId:a}=j({strict:!1}),{user:o}=Qt(e??a??i),s=o?.role?.permission;return s?s.super_user===!0||s.structure_user===!0?!0:s[t]?.tables?.[n][r]===!0:!1}var Oi={className:`text-foreground dark:text-white font-semibold`};function ki(){let{mutate:e}=vi(),t=je(),{user:n}=Jt(),r=ae(),{organizationId:i}=j({strict:!1}),{update:a}=yi(i),{view:o}=bi(i),s=a,c=(0,V.useCallback)(()=>{e(void 0,{onSuccess:async()=>{L.success(`Success`,{description:`You have been signed out successfully.`,action:{label:`Dismiss`,onClick:()=>L.dismiss()}}),t({to:`/sign-in`}),r.invalidate()}})},[e,r,t]),l=(0,V.useMemo)(()=>[!1,!1,!1,{to:`https://docs.harperdb.io/docs`,target:`_blank`,icon:(0,H.jsx)(gn,{}),text:`Docs`,textBreakpoint:`md`},{to:`https://github.com/HarperFast/studio/issues`,target:`_blank`,icon:(0,H.jsx)(vn,{}),text:`Report an Issue`,textBreakpoint:`lg`},{to:`https://discord.gg/VzZuaw3Xay`,target:`_blank`,icon:(0,H.jsx)(Gr,{}),text:`Discord`,textBreakpoint:`lg`},{onClick:c,icon:(0,H.jsx)($n,{}),text:`Sign Out`,textBreakpoint:`md`}].filter(Lr),[i,s,o,c]);return n?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(Pi,{menuItems:l}),(0,H.jsx)(Mi,{menuItems:l})]}):(0,H.jsx)(ji,{})}function Ai(e){return e.items!==void 0}function ji(){return(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,H.jsxs)(`div`,{className:`inline-block`,children:[(0,H.jsx)(I,{to:`/sign-in`,children:(0,H.jsx)(Kr,{})}),(0,H.jsx)(ui,{})]}),(0,H.jsx)(ai,{children:(0,H.jsxs)(ci,{className:`text-muted-foreground dark:text-grey-400`,children:[(0,H.jsx)(oi,{children:(0,H.jsx)(si,{asChild:!0,children:(0,H.jsxs)(I,{to:`https://docs.harperdb.io/docs`,target:`_blank`,rel:`noreferrer noopener`,className:`flex-row items-center`,children:[(0,H.jsx)(gn,{}),` `,(0,H.jsx)(`span`,{className:`hidden md:inline-block`,children:`Docs`})]})})}),(0,H.jsx)(oi,{children:(0,H.jsx)(ri,{})}),(0,H.jsx)(oi,{children:(0,H.jsx)(si,{asChild:!0,children:(0,H.jsxs)(I,{to:`/sign-in`,className:`flex-row items-center`,activeProps:Oi,children:[(0,H.jsx)(Qn,{}),` Sign In`]})})})]})})]})}function Mi({menuItems:e}){let{user:t}=Jt();return on(t),(0,H.jsx)(`div`,{className:`hidden md:block`,children:(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,H.jsxs)(`div`,{className:`inline-block`,children:[(0,H.jsx)(I,{to:`/`,children:(0,H.jsx)(Kr,{})}),(0,H.jsx)(ui,{})]}),(0,H.jsx)(ai,{children:(0,H.jsxs)(ci,{className:`text-muted-foreground dark:text-grey-400`,children:[e.map(e=>Ai(e)?!!e.items.length&&(0,H.jsx)(`div`,{className:`bg-muted dark:bg-black rounded-2xl flex`,children:e.items.map(e=>(0,H.jsx)(Ni,{menuItem:e},e.text))},e.text):(0,H.jsx)(Ni,{menuItem:e},e.text)),(0,H.jsx)(oi,{children:(0,H.jsx)(ri,{})})]})})]})})}function Ni({menuItem:e}){return(0,H.jsx)(oi,{className:`text-muted-foreground dark:text-gray-400 hover:text-foreground dark:hover:text-white`,children:(0,H.jsx)(si,{asChild:!0,children:(0,H.jsxs)(I,{to:e.to,onClick:e.onClick,className:`flex-row items-center`,target:e.target,activeProps:e.to?Oi:void 0,children:[e.icon,(0,H.jsx)(`span`,{className:`hidden ${e.textBreakpoint}:inline-block`,children:e.text}),(0,H.jsx)(`span`,{className:`${e.textBreakpoint}:hidden`,children:`\xA0`})]})})})}function Pi({menuItems:e}){let{user:t}=Jt();on(t);let[n,r]=(0,V.useState)(!1),i=(0,V.useCallback)(()=>r(e=>!e),[]),a=(0,V.useCallback)(()=>r(!1),[]);return(0,H.jsxs)(`div`,{className:`md:hidden`,id:`mobile-menu`,children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,H.jsx)(I,{to:`/`,children:(0,H.jsx)(Kr,{})}),(0,H.jsx)(ui,{}),(0,H.jsxs)(`button`,{type:`button`,className:`shadow-xs text-muted-foreground dark:text-grey-400 hover:text-foreground dark:hover:text-white hover:bg-muted dark:hover:bg-black-dark`,onClick:i,children:[(0,H.jsx)(`span`,{className:`sr-only`,children:n?`Close menu`:`Open menu`}),n?(0,H.jsx)(jr,{}):(0,H.jsx)(nr,{})]})]}),(0,H.jsx)(`div`,{className:`${n?`fixed`:`hidden`} top-40 bottom-0 left-0 right-0 bg-foreground/20 dark:bg-black-dark dark:opacity-70`,onClick:a}),(0,H.jsxs)(`div`,{className:`${n?`block`:`hidden`} md:hidden z-50 space-y-1 pb-3 bg-card border-b border-border dark:bg-black-dark dark:border-none absolute left-0 top-full w-full rounded-b-md`,children:[(0,H.jsx)(`div`,{className:`flex justify-end px-3 pt-2`,children:(0,H.jsx)(ri,{})}),e.map(e=>Ai(e)?!!e.items.length&&(0,H.jsx)(`div`,{className:`bg-muted dark:bg-black pl-10 pr-2 py-2`,children:e.items.map(e=>(0,H.jsx)(Fi,{menuItem:e,onClick:a},e.text))},e.text):(0,H.jsx)(Fi,{menuItem:e,onClick:a},e.text))]})]})}function Fi({menuItem:e,onClick:t}){let n=(0,V.useCallback)(()=>{e.onClick?.(),t()},[e,t]);return(0,H.jsxs)(I,{to:e.to,onClick:n,target:e.target,className:`flex flex-row px-3 py-2 text-base font-medium rounded-md text-muted-foreground dark:text-gray-400 hover:text-foreground dark:hover:text-white`,activeProps:e.to?Oi:void 0,children:[e.icon,(0,H.jsx)(`span`,{className:`ml-4`,children:e.text})]})}function Ii(){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`header`,{className:`fixed top-0 z-40 w-full h-20 p-4 bg-gradient-to-r from-violet-100 to-white border-b border-violet-200 dark:from-purple-950 dark:to-zinc-900 dark:border-purple-950 md:px-12`,children:(0,H.jsx)(ki,{})}),(0,H.jsxs)(`div`,{className:`pt-20 h-screen grid grid-cols-1 md:grid-cols-2`,children:[(0,H.jsx)(`section`,{"aria-label":`Harper Fabric overview`,className:`items-center justify-center hidden text-white md:flex px-6 fabricSignupTextContainer`,children:(0,H.jsx)(`img`,{className:`object-scale-down max-h-[calc(100vh-80px-40px)] min-h-115`,src:`/fabric-signup-text.png`,alt:`One Runtime: App, database, Cache and Messaging. Distributed by design, free to deploy, and live in minutes. Deploy!`})}),(0,H.jsx)(`main`,{className:`overflow-y-auto px-6 bg-white dark:bg-linear-(--black-dark-gradient) border-l border-border dark:border-none`,children:(0,H.jsx)(`div`,{className:`min-h-full flex items-start justify-center py-12`,children:(0,H.jsx)(Te,{})})})]})]})}var Li;function Ri(){(0,V.useEffect)(()=>{},[])}var zi=[`gmail.com`,`yahoo.com`,`hotmail.com`,`outlook.com`,`icloud.com`,`aol.com`,`protonmail.com`,`mail.com`,`zoho.com`,`yandex.com`,`gmx.com`,`live.com`,`msn.com`,`me.com`,`inbox.com`];function Bi(e){if(!e||!e.includes(`@`))return null;let t=e.split(`@`).pop()||``;if(!t)return null;for(let e of zi)if(t===e||t.endsWith(`.`+e))return null;return t}var Vi=null;function Hi(){let e=je(),t=ae(),n=de(),{redirect:r}=N({strict:!1});return(0,V.useEffect)(()=>{Vi||=(async function(){let i=await v().catch(()=>null);if(!i)L.error(`We were not able to verify your sign-in. Please try signing in again.`,{duration:1e4}),await e({to:`/sign-in`});else{l.setUserForEntity(h,i);let a=on(i);Hr(i);let o=Bi(i.email);Li?.identify?.({username:i.email,type:`email`,...o?{company:o}:{}}),await n.invalidateQueries({queryKey:u,refetchType:`none`}),await t.invalidate(),await e({to:r?.startsWith(`/`)?r:a})}Vi=null})()},[]),(0,H.jsxs)(`div`,{role:`status`,"aria-live":`polite`,className:`text-foreground dark:text-white w-lg flex flex-col gap-4`,children:[(0,H.jsxs)(`h1`,{className:`text-3xl font-light`,children:[(0,H.jsx)(`span`,{"aria-hidden":`true`,className:`text-2xl animate-flower-dance mr-4`,title:`Loading`,children:`🌼`}),`Checking...`]}),(0,H.jsx)(`div`,{className:`underline flex gap-4`,children:(0,H.jsx)(I,{className:`text-sm opacity-50 text-muted-foreground hover:text-foreground dark:text-inherit dark:hover:text-blue-300`,to:`/sign-in`,children:`Try signing in again`})})]})}function Ui({delayDuration:e=0,...t}){return(0,H.jsx)(Tt,{"data-slot":`tooltip-provider`,delayDuration:e,...t})}function Wi({...e}){return(0,H.jsx)(Ui,{children:(0,H.jsx)(_t,{"data-slot":`tooltip`,...e})})}function Gi({...e}){return(0,H.jsx)(zt,{"data-slot":`tooltip-trigger`,...e})}function Ki({className:e,sideOffset:t=0,arrowClassName:n,children:r,...i}){return(0,H.jsx)(Dt,{children:(0,H.jsxs)(Mt,{"data-slot":`tooltip-content`,sideOffset:t,className:f(`bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance`,e),...i,children:[r,(0,H.jsx)(Pt,{className:f(`bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]`,n)})]})})}var qi=new Map;function Ji(e){if(!e)return``;if(qi.has(e))return qi.get(e);let t=e.replace(/[-_]+/g,` `).replace(/\s+/g,` `).trim();if(!t)return qi.set(e,``),``;let n=t.match(/([A-Z]+(?=[A-Z][a-z])|[A-Z]?[a-z]+|[A-Z]+|[0-9]+)/g);if(!n)return qi.set(e,``),``;let r=[];for(let e=0;e<n.length;e++){let t=n[e],i=e+1<n.length?n[e+1]:void 0;/^[A-Z]{2,}$/.test(t)&&i&&/[A-Z]*s$/.test(i)||/^[A-Z]$/.test(t)&&i!==void 0&&/^[A-Z]s$/.test(i)?(r.push(t+i),e++):r.push(t)}let i=r.map(Yi).join(` `);return qi.set(e,i),i}function Yi(e){return/^[A-Z]{2,3}s?$/.test(e)||/^[0-9]+$/.test(e)?e:e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()}function Xi({restartRequired:e}){let t=ke(),{organization:n,instance:r,cluster:i}=Me({strict:!1});return(0,H.jsxs)(`div`,{role:`list`,className:`flex items-center space-x-2 xl:space-x-4 sm:max-w-9/10 max-w-[calc(100%-56px)]`,children:[...(0,V.useMemo)(()=>{let e=t.pathname.split(`/`).filter(e=>e&&e.length>0),a=[(0,H.jsxs)(I,{to:`/`,children:[(0,H.jsx)(Kn,{"aria-hidden":`true`,className:`size-5 shrink-0`}),(0,H.jsx)(`span`,{className:`sr-only`,children:`Home`})]},`home`)];for(let t=0;t<e.length;t++){let o=e[t];if(o===`instance`)continue;let s=`/${e.slice(0,t+1).join(`/`)}`,c=Ji(o);o===`databases`&&e.length===t+3?(c=e[t+2],t+=2):c.startsWith(`Org `)?c=n?.name||`Org`:c.startsWith(`Clu `)?(c=i?.name||`Cluster`,e[t+1]===`instance`&&(s+=`/instances`)):c.startsWith(`Ins `)?c=r?.name?.split(`.`)?.shift()||`Instance`:c===`Apis`&&(c=`APIs`),a.push((0,H.jsx)(`svg`,{fill:`currentColor`,viewBox:`0 0 20 20`,"aria-hidden":`true`,className:`size-5 shrink-0 text-grey`,children:(0,H.jsx)(`path`,{d:`M5.555 17.776l8-16 .894.448-8 16-.894-.448z`})},a.length+`-dash`),(0,H.jsx)(I,{to:s,className:`text-xs md:text-sm font-medium hover:text-grey truncate max-w-48`,children:c},s))}return a},[t.pathname,i?.name,r?.name,n?.name]),e&&(0,H.jsxs)(Wi,{children:[(0,H.jsx)(Gi,{asChild:!0,children:(0,H.jsxs)(`div`,{className:`text-xs italic text-muted-foreground`,children:[`* Restart `,(0,H.jsx)(`span`,{className:`hidden lg:inline-block`,children:`Requested`})]})}),(0,H.jsxs)(Ki,{side:`bottom`,children:[`This `,`Instance`,` is requesting a restart, when convenient, to apply your latest changes.`,(0,H.jsx)(`br`,{}),`You can do this from the Apps or Config pages.`]})]})]})}var W=bt,Zi=(0,V.createContext)({}),Qi=(0,V.createContext)({});function $i(){let e=(0,V.useContext)(Zi),t=(0,V.useContext)(Qi),{getFieldState:n}=xt(),r=Ct({name:e.name}),i=n(e.name,r);if(!e)throw Error(`useFormField should be used within <FormField>`);let{id:a}=t;return{id:a,name:e.name,formItemId:`${a}-form-item`,formDescriptionId:`${a}-form-item-description`,formMessageId:`${a}-form-item-message`,...i}}function G({...e}){let{error:t,formItemId:n,formDescriptionId:r,formMessageId:i}=$i();return(0,H.jsx)(qe,{"data-slot":`form-control`,id:n,"aria-describedby":t?`${r} ${i}`:`${r}`,"aria-invalid":!!t,...e})}function K({...e}){return(0,H.jsx)(Zi,{value:{name:e.name},children:(0,H.jsx)(It,{...e})})}function q({className:e,...t}){return(0,H.jsx)(Qi,{value:{id:(0,V.useId)()},children:(0,H.jsx)(`div`,{"data-slot":`form-item`,className:f(`grid gap-2`,e),...t})})}function ea({className:e,...t}){return(0,H.jsx)(Nt,{"data-slot":`label`,className:f(`text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50`,e),...t})}function J({className:e,...t}){let{error:n,formItemId:r}=$i();return(0,H.jsx)(ea,{"data-slot":`form-label`,"data-error":!!n,className:f(`data-[error=true]:text-destructive`,e),htmlFor:r,...t})}function Y({className:e,...t}){let{error:n,formMessageId:r}=$i(),i=n?String(n?.message):t.children;return i?(0,H.jsx)(`p`,{"data-slot":`form-message`,id:r,className:f(`text-destructive text-sm`,e),...t,children:i}):null}function X({className:e,type:t,...n}){return(0,H.jsx)(`input`,{type:t,"data-slot":`input`,className:f(`border-input file:text-foreground placeholder:text-muted-foreground selection:bg-purple
3
3
  selection:text-primary-foreground
4
4
  dark:aria-invalid:outline-destructive dark:aria-invalid:ring-destructive/50 ring-ring/10
5
5
  dark:ring-ring/20 dark:outline-ring/40 outline-ring/50 aria-invalid:outline-destructive/60
@@ -9,7 +9,7 @@ import{a as e,t}from"./rolldown-runtime-Cyuzqnbw.js";import{_ as n,a as r,c as i
9
9
  focus-visible:ring-1 focus-visible:outline-none focus-visible:ring-purple disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50
10
10
  aria-invalid:focus-visible:ring-[1px] aria-invalid:focus-visible:outline-none md:text-sm dark:aria-invalid:focus-visible:ring-1`,e),...n})}var ta=[`RUNNING`],na=[`TERMINATING`,`TERMINATED`,`REMOVED`];function ra(){return`https://fabric.harper.fast/#/?createCluster=`+encodeURIComponent(JSON.stringify({deploymentDescription:`Self-Hosted`,performanceDescription:`Self Supported and Managed`,instances:[{secure:String(location.protocol===`https:`),fqdn:location.hostname,port:parseInt(location.port,10)}]}))}async function ia({username:e,password:t,instanceClient:n,entityId:r}){let i={username:e,password:t};l.checkForBasicAuth(r)&&(n.defaults.auth=i,n.defaults.withCredentials=!1);let{data:{message:a}}=await n.post(`/`,{operation:`login`,username:e,password:t});if(!l.checkForBasicAuth(r))try{return{message:a,user:await g({instanceClient:n})}}catch(e){console.error(`Failed to get user after login, trying basic auth`,e)}try{n.defaults.auth=i,n.defaults.withCredentials=!1;let e=await g({instanceClient:n,auth:i});return l.flagForBasicAuth(r,i),{message:a,user:e}}catch(e){throw n.defaults.auth=void 0,n.defaults.withCredentials=!0,e}let s=o({id:r,forceFabricConnect:!0}),c=await g({instanceClient:s});return l.flagForFabricConnect(r,!0),{message:a,user:c,instanceClient:s}}function aa(){return F({mutationFn:ia})}function oa({cluster:e,instance:t,instanceParams:n}){let r=je(),i=ae(),{redirect:a}=N({strict:!1}),{mutate:o,isPending:s}=aa();return{isPending:s,submitForm:(0,V.useCallback)(async s=>{o({...s,...n},{onSuccess:async({message:n,user:o})=>{if(L.success(n),e?.instances?.length&&!t)for(let t of e.instances)l.setUserForEntity(t,o);let s=h;if(!s)throw Error(`Sign in failed due to missing cluster or instance.`);l.setUserForEntity(s,o),i.invalidate(),await r({to:a?.startsWith(`/`)?a:`/`})}})},[e,t,n,r,a,i,o])}}async function sa(e){let{data:t}=await c.get(`/Cluster/${e}`);return t}function ca(e,t){return A({queryKey:[e],queryFn:()=>sa(e),retry:!1,staleTime:1900,enabled:!!e,refetchInterval:t?t===!0?1e4:t:void 0})}var la=ee({error:`Please enter a valid email address.`}).toLowerCase().trim(),ua=k().nonempty({error:`Please enter your password.`}),da=k().nonempty({error:`Please enter a username.`}),fa=O({username:da,password:ua}),pa=O({email:la,password:ua});function ma({entityId:e,instanceClient:t}){return A({queryKey:[e,`health`],queryFn:async()=>{try{return await t.get(`/health`),!0}catch{return!1}},retry:2,refetchInterval:5e3})}var ha=[`localhost`,`127.0.0.1`],ga=function(e){return e.MixedLoopback=`MixedLoopback`,e.InsecureCookieOutsideChromeAndFirefox=`InsecureCookieOutsideChromeAndFirefox`,e}({});function _a(e,t,n){if(!n||!t||!e)return null;let r=new URL(n).hostname,i=ha.includes(t),a=ha.includes(r);if(i&&a&&r!==t)return`MixedLoopback`;if(!i&&a){let t=e.indexOf(`Chrome`)>=0,n=e.indexOf(`Firefox`)>=0;if(!t&&!n)return`InsecureCookieOutsideChromeAndFirefox`}return null}function va(){let{clusterId:e,instanceId:t}=j({strict:!1}),{data:n}=M(ca(e,!0)),i=(0,V.useMemo)(()=>t&&n&&n?.instances?.find(e=>e.id===t)||void 0,[n,t]),a=(0,V.useMemo)(()=>n?.status&&ta.includes(n.status),[n?.status]),o=`instance`,s=(0,V.useMemo)(()=>n?i?(l.flagForFabricConnect(i.id,!1),r(i)):(l.flagForFabricConnect(n.id,!1),p(n)):null,[n,i]),c=U({operationsUrl:s}),u=(0,V.useMemo)(()=>s?.includes(`localhost`)||s?.includes(`127.0.0.1`),[s]),d=(0,V.useMemo)(()=>_a(navigator.userAgent,location.hostname,s),[s]),{data:f}=M(ma(c)),m=z({resolver:R(fa),defaultValues:{username:``,password:``}}),{control:h,handleSubmit:g}=m,{submitForm:v,isPending:y}=oa({cluster:n,instance:i,instanceParams:c});return!t&&n&&!n?.fqdn?(0,H.jsx)(me,{to:`../instances`,replace:!0}):a&&n?.resetPassword?(0,H.jsx)(me,{to:`/${n.organizationId}/${n.id}/finish-setup`,replace:!0}):!a&&n?.resetPassword?(0,H.jsx)(me,{to:`/${n.organizationId}/${n.id}/starting-up`,replace:!0}):(0,H.jsxs)(H.Fragment,{children:[!1,(0,H.jsx)(`div`,{className:T(`min-h-screen`,`items-center justify-center flex`),children:(0,H.jsxs)(`div`,{className:`text-foreground w-xs py-8`,children:[(0,H.jsxs)(`h1`,{className:`text-2xl font-light`,children:[`Sign in to Harper `,`Local`]}),(0,H.jsx)(W,{...m,children:(0,H.jsxs)(`form`,{id:`auth-${o}-signin-form`,name:`auth-${o}-signin-form`,onSubmit:g(v),className:`my-4`,children:[(0,H.jsx)(K,{control:h,name:`username`,render:({field:e})=>(0,H.jsxs)(q,{className:`my-4`,children:[(0,H.jsx)(J,{children:`Username`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{autoComplete:`username`,autoFocus:!0,type:`text`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:h,name:`password`,render:({field:e})=>(0,H.jsxs)(q,{className:`my-4`,children:[(0,H.jsx)(J,{children:`Password`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`password`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(_,{disabled:y,type:`submit`,variant:`submit`,className:`w-full my-2 rounded-full`,children:`Sign In`}),f===!1&&(0,H.jsxs)(`div`,{className:`p-4 mt-4 text-sm text-yellow-800 rounded-lg bg-yellow-50 dark:bg-gray-800 dark:text-yellow-300`,role:`alert`,children:[(0,H.jsx)(`span`,{className:`font-medium`,children:`Warning!`}),` This `,o,` is not responding to GET`,` `,(0,H.jsxs)(`a`,{href:`${s}health`,className:`underline`,target:`_blank`,children:[s,`health`]}),` `,`checks.`,(0,H.jsxs)(`ol`,{className:`list-decimal ml-8 mt-2`,children:[(0,H.jsx)(`li`,{children:`Is the server running?`}),(0,H.jsxs)(`li`,{children:[`Have you`,` `,(0,H.jsx)(`a`,{href:`https://docs.harperdb.io/docs/developers/security/configuration#cors`,target:`_blank`,rel:`noreferrer`,className:`underline`,children:`enabled CORS`}),` `,`for the operations API?`]}),u&&(0,H.jsxs)(`li`,{children:[`Have you allowed`,` `,(0,H.jsx)(`a`,{href:`https://www.google.com/search?q=How+do+I+enable+local+network+access+in+my+browser%3F`,className:`underline`,target:`_blank`,rel:`noreferrer`,children:`local network access`}),` `,`in your browser?`]})]})]}),d===ga.MixedLoopback&&(0,H.jsxs)(`div`,{className:`p-4 mt-4 text-sm text-yellow-800 rounded-lg bg-yellow-50 dark:bg-gray-800 dark:text-yellow-300`,role:`alert`,children:[(0,H.jsx)(`span`,{className:`font-medium`,children:`Warning!`}),` `,`Your login might not work because you're mixing 127.0.0.1 and localhost. Pick one or the other.`]}),d===ga.InsecureCookieOutsideChromeAndFirefox&&(0,H.jsxs)(`div`,{className:`p-4 mt-4 text-sm text-yellow-800 rounded-lg bg-yellow-50 dark:bg-gray-800 dark:text-yellow-300`,role:`alert`,children:[(0,H.jsx)(`span`,{className:`font-medium`,children:`Warning!`}),` `,`Your login might not work because your browser doesn't consider localhost to be secure, so it doesn't pass the cookies along. Firefox or Chromium based browsers should pass the cookies properly.`]}),(0,H.jsxs)(`div`,{className:`p-4 mt-4 text-sm rounded-lg bg-purple-950`,role:`alert`,children:[(0,H.jsx)(`span`,{className:`font-medium`,children:`Did you know?`}),` `,`You can add this instance to your Harper account to manage it remotely.`,(0,H.jsx)(`div`,{className:`text-center pt-2`,children:(0,H.jsx)(I,{to:ra(),target:`_blank`,children:(0,H.jsx)(_,{type:`button`,variant:`positive`,children:`Connect to Harper Fabric`})})})]})]})})]})})]})}async function ya({email:e}){let{data:t}=await c.post(`/ForgotPassword/`,{email:e});if(t)return t;throw Error(`Something went wrong`)}function ba(){return F({mutationFn:e=>ya(e)})}var xa=O({email:la});function Sa(){let e=je(),{me:t}=N({strict:!1}),n=z({resolver:R(xa),defaultValues:{email:t||``}}),r=n.watch(`email`),{setFocus:i,control:a,handleSubmit:o}=n;(0,V.useEffect)(()=>{i(`email`)},[i]);let{mutate:s,isPending:c}=ba(),l=async t=>{s(t,{onSuccess:t=>{L.success(`Success`,{description:`${t}`,action:{label:`Dismiss`,onClick:()=>L.dismiss()}}),e({to:`/sign-in`,search:{me:r}})}})};return(0,H.jsxs)(`div`,{className:`text-foreground dark:text-white w-xs`,children:[(0,H.jsx)(`h1`,{className:`text-2xl font-light`,children:`Enter your account email`}),(0,H.jsx)(`p`,{className:`text-sm pt-1`,children:`If a matching account exists, we'll send you a password reset link.`}),(0,H.jsx)(W,{...n,children:(0,H.jsxs)(`form`,{id:`auth-forgot-password-form`,name:`auth-forgot-password-form`,onSubmit:o(l),className:`my-4`,children:[(0,H.jsx)(K,{control:a,name:`email`,render:({field:e})=>(0,H.jsxs)(q,{className:`my-2`,children:[(0,H.jsx)(J,{children:`Email`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{disabled:c,type:`email`,className:`dark:bg-black dark:border-black`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(_,{type:`submit`,variant:`submit`,disabled:c,className:`w-full my-2 rounded-full`,children:`Send Password Reset Email`})]})}),(0,H.jsxs)(`div`,{className:`flex px-4 mt-4 underline place-content-between`,children:[(0,H.jsx)(I,{className:`text-sm hover:text-blue-300`,to:`/sign-in`,search:{me:r},children:`Sign in to your account`}),(0,H.jsx)(I,{className:`text-sm hover:text-blue-300`,to:`/sign-up`,search:{me:r},children:`Sign up for free`})]})]})}var Ca=async({token:e,password:t})=>{let{data:n}=await c.put(`/ResetPassword/`,{token:e,newPassword:t});return n};function wa(){return F({mutationFn:e=>Ca(e)})}var Ta=O({password:ua.min(8,{error:`Password must be at least 8 characters long.`}).max(50,{error:`Password cannot be longer than 50 characters.`}),confirmPassword:k()}).refine(e=>e.password===e.confirmPassword,{error:`Passwords do not match.`,path:[`confirmPassword`]});function Ea(){let{token:e}=N({strict:!1}),t=je();(0,V.useEffect)(()=>{e||t({to:`/sign-in`})},[e,t]);let n=z({resolver:R(Ta),defaultValues:{password:``,confirmPassword:``}}),{setFocus:r,control:i,handleSubmit:a}=n;(0,V.useEffect)(()=>{r(`password`)},[r]);let{mutate:o,isPending:s}=wa(),c=(0,V.useCallback)(async n=>{o({token:e,password:n.password},{onSuccess:()=>{L.success(`Success`,{description:`Your password has been reset successfully.`,action:{label:`Dismiss`,onClick:()=>L.dismiss()}}),t({to:`/sign-in`})}})},[t,o,e]);return(0,H.jsxs)(`div`,{className:`text-foreground dark:text-white w-xs`,children:[(0,H.jsx)(`h1`,{className:`text-2xl font-light`,children:`Reset Password`}),(0,H.jsx)(W,{...n,children:(0,H.jsxs)(`form`,{id:`auth-reset-password-form`,name:`auth-reset-password-form`,className:`my-4`,onSubmit:a(c),children:[(0,H.jsx)(K,{control:i,name:`password`,render:({field:e})=>(0,H.jsxs)(q,{className:`my-2`,children:[(0,H.jsx)(J,{children:`New Password`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{disabled:s,type:`password`,autoComplete:`new-password`,className:`dark:bg-black dark:border-black`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:i,name:`confirmPassword`,render:({field:e})=>(0,H.jsxs)(q,{className:`my-2`,children:[(0,H.jsx)(J,{children:`Confirm Password`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{disabled:s,type:`password`,autoComplete:`new-password`,className:`dark:bg-black dark:border-black`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(_,{variant:`submit`,type:`submit`,disabled:s,className:`w-full my-2 rounded-full`,children:`Submit New Password`})]})})]})}function Da({text:e,disabled:t,onClick:n}){return(0,H.jsxs)(`a`,{href:`/oauth/github/login?redirect=%2F%23%2Fcheck-oauth`,onClick:n,"aria-disabled":t||void 0,className:T(`github-signin-btn`,t&&`opacity-50 cursor-default`),children:[(0,H.jsx)(`img`,{src:`/github/GitHub_Invertocat_White.svg`,alt:``,className:`github-icon`}),e]})}function Oa({text:e,disabled:t,onClick:n}){return(0,H.jsxs)(`a`,{href:`/oauth/google/login?redirect=%2F%23%2Fcheck-oauth`,onClick:n,"aria-disabled":t||void 0,className:T(`gsi-material-button`,t&&`opacity-50 cursor-default`),children:[(0,H.jsx)(`div`,{"aria-hidden":`true`,className:`gsi-material-button-state`}),(0,H.jsxs)(`div`,{className:`gsi-material-button-content-wrapper`,children:[(0,H.jsx)(`div`,{"aria-hidden":`true`,className:`gsi-material-button-icon`,children:(0,H.jsxs)(`svg`,{version:`1.1`,xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 48 48`,xmlnsXlink:`http://www.w3.org/1999/xlink`,className:`block`,children:[(0,H.jsx)(`path`,{fill:`#EA4335`,d:`M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z`}),(0,H.jsx)(`path`,{fill:`#4285F4`,d:`M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z`}),(0,H.jsx)(`path`,{fill:`#FBBC05`,d:`M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z`}),(0,H.jsx)(`path`,{fill:`#34A853`,d:`M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z`}),(0,H.jsx)(`path`,{fill:`none`,d:`M0 0h48v48H0z`})]})}),(0,H.jsx)(`span`,{className:`gsi-material-button-contents`,children:e}),(0,H.jsx)(`span`,{className:`hidden`,children:e})]})]})}function ka(){let e=je(),t=de(),n=ae(),{redirect:r}=N({strict:!1}),{mutate:i,isPending:a}=Aa();return{isPending:a,submitForm:(0,V.useCallback)(a=>{i(a,{onSuccess:async i=>{l.setUserForEntity(h,i);let a=on(i);Hr(i);let o=Bi(i.email);Li?.identify?.({username:i.email,type:`email`,...o?{company:o}:{}}),await t.invalidateQueries({queryKey:u,refetchType:`none`}),n.invalidate(),await e({to:r?.startsWith(`/`)?r:a})}})},[e,t,r,n,i])}}function Aa(){return F({mutationFn:e=>ja(e)})}async function ja({email:e,password:t}){let{data:n}=await c.post(`/Login/`,{email:e,password:t});if(n)return n;throw Error(`Something went wrong`)}function Ma(){let{me:e}=N({strict:!1}),t=z({resolver:R(pa),defaultValues:{email:e||``,password:``}}),{handleSubmit:n,control:r}=t,i=t.watch(`email`),{submitForm:a,isPending:o}=ka();return(0,H.jsxs)(`div`,{className:`text-foreground dark:text-white w-xs`,children:[(0,H.jsx)(`h1`,{className:`text-2xl font-light text-center`,children:`Sign in to Harper Fabric`}),(0,H.jsx)(W,{...t,children:(0,H.jsxs)(`form`,{id:`auth-signin-form`,name:`auth-signin-form`,onSubmit:n(a),className:`my-4`,children:[(0,H.jsx)(K,{control:r,name:`email`,render:({field:e})=>(0,H.jsxs)(q,{className:`my-4`,children:[(0,H.jsx)(J,{children:`Email`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`email`,autoFocus:!0,autoComplete:`email`,className:`dark:bg-black dark:border-black`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:r,name:`password`,render:({field:e})=>(0,H.jsxs)(q,{className:`my-4`,children:[(0,H.jsx)(J,{children:`Password`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`password`,autoComplete:`current-password`,className:`dark:bg-black dark:border-black`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(_,{type:`submit`,variant:`submit`,className:`w-full my-2 rounded-full`,disabled:o,children:`Sign In`}),(0,H.jsxs)(`div`,{className:`flex px-4 mt-4 underline place-content-between`,children:[(0,H.jsx)(I,{className:`text-sm text-muted-foreground hover:text-foreground dark:text-inherit dark:hover:text-blue-300`,to:`/sign-up`,search:{me:i},children:`Sign up for free`}),(0,H.jsx)(I,{className:`text-sm text-muted-foreground hover:text-foreground dark:text-inherit dark:hover:text-blue-300`,to:`/forgot-password`,search:{me:i},children:`Forgot password?`})]})]})}),(0,H.jsx)(`hr`,{"aria-hidden":`true`,className:`border-border dark:border-gray-600 my-6`}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,H.jsx)(Oa,{text:`Sign in with Google`}),(0,H.jsx)(Da,{text:`Sign in with GitHub`})]})]})}var Na=/^[a-zA-ZàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýżźñçčšžæÀÁÂÄÃÅĄĆČĖĘÈÉÊËÌÍÎÏĮŁŃÒÓÔÖÕØÙÚÛÜŲŪŸÝŻŹÑßÇŒÆČŠŽ∂ð ,'-]+$/u;async function Pa(e){let{data:t}=await c.post(`/User/`,e);if(t)return t;throw Error(`Something went wrong`)}function Fa(){return F({mutationFn:e=>Pa(e)})}var Ia=O({email:la.max(80,{error:`Email cannot be longer than 80 characters.`}),firstname:k().trim().min(2,{error:`Please enter your first name.`}).regex(Na,{error:`First name can only contain letters, spaces, and hyphens.`}).max(40,{error:`First name cannot be longer than 40 characters.`}),lastname:k().trim().min(2,{error:`Please enter your last name.`}).regex(Na,{error:`Last name can only contain letters, spaces, and hyphens.`}).max(80,{error:`Last name cannot be longer than 80 characters.`}),password:ua.min(8,{error:`Password must be at least 8 characters long.`}),confirmPassword:k(),acceptTerms:E().refine(e=>e===!0,{message:`You must accept the Privacy Policy and Terms of Service.`})}).refine(e=>e.password===e.confirmPassword,{error:`Passwords do not match.`,path:[`confirmPassword`]});function La(){let e=je(),{email:t,me:n}=N({strict:!1}),[r,i]=(0,V.useState)(!1),a=z({resolver:R(Ia),defaultValues:{firstname:``,lastname:``,email:n||t||``,password:``,confirmPassword:``,acceptTerms:!1}}),o=a.watch(`email`),s=a.watch(`acceptTerms`),{setFocus:c,control:l,handleSubmit:u}=a;(0,V.useEffect)(()=>{c(`firstname`)},[c]);let{mutate:d}=Fa(),f=(0,V.useCallback)(async t=>{let{confirmPassword:n,acceptTerms:r,...i}=t;d(i,{onSuccess:()=>{let t=Bi(i.email);Li?.identify?.({username:i.email,type:`email`,firstname:i.firstname,lastname:i.lastname,...t?{company:t}:{}}),e({to:`/verifying?email=`+encodeURIComponent(i.email)})}})},[e,d]),p=(0,V.useCallback)(e=>{if(!s)return i(!0),setTimeout(()=>i(!1),1e3),e.preventDefault(),!1},[s]),m=(0,H.jsx)(K,{control:l,name:`acceptTerms`,render:({field:e})=>(0,H.jsxs)(q,{className:`flex flex-row items-start space-x-3 space-y-0 p-1 transition-colors duration-300 ${r?`bg-red-500/20 animate-pulse rounded`:``}`,children:[(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`checkbox`,className:`size-4 rounded border-gray-300 bg-white text-purple-600 focus:ring-purple-500`,checked:e.value,onChange:e.onChange})}),(0,H.jsxs)(`div`,{className:`space-y-1 leading-none`,children:[(0,H.jsxs)(J,{className:`text-xs font-normal`,children:[`I accept the`,` `,(0,H.jsx)(`a`,{href:`https://www.harper.fast/resources/privacy-policy`,target:`_blank`,rel:`noreferrer`,className:`underline hover:text-blue-300`,"aria-label":`Privacy Policy (opens in new tab)`,children:`Privacy Policy`}),` `,`and`,` `,(0,H.jsx)(`a`,{href:`https://www.harper.fast/resources/paas-terms-of-service`,target:`_blank`,rel:`noreferrer`,className:`underline hover:text-blue-300`,"aria-label":`Terms of Service (opens in new tab)`,children:`Terms of Service`})]}),(0,H.jsx)(Y,{})]})]})});return(0,H.jsxs)(`div`,{className:`text-foreground dark:text-white w-xs`,children:[(0,H.jsx)(`h1`,{className:`text-2xl font-light text-center`,children:`Sign up for Harper Fabric`}),(0,H.jsxs)(W,{...a,children:[(0,H.jsxs)(`div`,{className:`flex flex-col gap-2 my-6`,children:[m,(0,H.jsx)(Oa,{text:`Sign up with Google`,disabled:!s,onClick:p}),(0,H.jsx)(Da,{text:`Sign up with GitHub`,disabled:!s,onClick:p})]}),(0,H.jsx)(`hr`,{className:`border-gray-600`}),(0,H.jsxs)(`form`,{id:`auth-signup-form`,name:`auth-signup-form`,onSubmit:u(f),className:`grid gap-4 my-4`,children:[(0,H.jsx)(K,{control:l,name:`firstname`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`First Name`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`text`,className:`dark:bg-black dark:border-black`,autoCapitalize:`words`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:l,name:`lastname`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Last Name`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`text`,className:`dark:bg-black dark:border-black`,autoCapitalize:`words`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:l,name:`email`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Email`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`email`,readOnly:!!t,disabled:!!t,className:`dark:bg-black dark:border-black`,autoComplete:`email`,autoCapitalize:`none`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:l,name:`password`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Password`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`password`,autoComplete:`new-password`,className:`dark:bg-black dark:border-black`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:l,name:`confirmPassword`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Confirm Password`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`password`,autoComplete:`new-password`,className:`dark:bg-black dark:border-black`,...e})}),(0,H.jsx)(Y,{})]})}),m,(0,H.jsx)(_,{type:`submit`,variant:`submit`,className:`w-full rounded-full my-4`,children:`Sign Up For Free`})]})]}),(0,H.jsx)(`div`,{className:`flex px-4 mt-4 underline place-content-between`,children:(0,H.jsx)(I,{className:`m-auto text-sm hover:text-blue-300`,to:`/sign-in`,search:{me:o},children:`Already have an account? Sign in instead.`})})]})}var Ra=async({email:e})=>{let{data:t}=await c.post(`/ResendVerificationEmail/`,{email:e});return t};function za(){return F({mutationFn:e=>Ra(e)})}var Ba=async e=>{let{data:t}=await c.put(`/VerifyEmail/`,{token:e.toString()});return t};function Va(){return F({mutationFn:e=>Ba(e)})}var Ha=O({email:la});function Ua(){let e=je(),{mutate:t,isPending:n}=za(),r=z({resolver:R(Ha),defaultValues:{email:``}}),i=r.watch(`email`),{setFocus:a,control:o,handleSubmit:s}=r;(0,V.useEffect)(()=>{a(`email`)},[a]);let c=(0,V.useCallback)(async n=>{t(n,{onSuccess:t=>{L.success(`Success`,{description:`${t}`,action:{label:`Dismiss`,onClick:()=>L.dismiss()}}),e({to:`/sign-in`,search:{me:i}})}})},[i,e,t]);return(0,H.jsxs)(W,{...r,children:[(0,H.jsx)(`p`,{className:`text-sm py-2`,children:`Please Enter an Email`}),(0,H.jsxs)(`form`,{id:`auth-verify-email-form`,name:`auth-verify-email-form`,onSubmit:s(c),className:`my-4`,children:[(0,H.jsx)(K,{control:o,name:`email`,render:({field:e})=>(0,H.jsxs)(q,{className:`my-2`,children:[(0,H.jsx)(J,{children:`Email`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{disabled:n,type:`email`,className:`dark:bg-black dark:border-black`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(_,{type:`submit`,variant:`submit`,disabled:n,className:`w-full my-2 rounded-full`,children:`Send Verification Email`})]})]})}function Wa(){let{token:e}=N({strict:!1}),t=je(),{mutate:n,isPending:r}=Va(),i=(0,V.useCallback)(e=>{n(e,{onSuccess:()=>{L.success(`Success`,{description:`Email verified successfully`,action:{label:`Dismiss`,onClick:()=>L.dismiss()}}),t({to:`/sign-in`})}})},[n,t]);return(0,V.useEffect)(()=>{e&&i(e)},[i,e]),(0,H.jsxs)(`div`,{className:`text-foreground dark:text-white w-xs`,children:[(0,H.jsx)(`h1`,{className:`text-3xl font-light`,children:`Verify Email`}),r?(0,H.jsx)(`p`,{className:`text-sm pt-1`,children:`Verifying email...`}):(0,H.jsx)(Ua,{})]})}function Ga(){let{email:e}=N({strict:!1}),{mutate:t,isPending:n}=za(),r=(0,V.useCallback)(n=>(n.preventDefault(),e&&t({email:e},{onSuccess:e=>{L.success(`Code Sent`,{description:`${e}`,action:{label:`Dismiss`,onClick:()=>L.dismiss()}})}}),!1),[e,t]);return(0,H.jsxs)(`div`,{className:`text-foreground dark:text-white w-lg flex flex-col gap-4`,children:[(0,H.jsxs)(`h1`,{className:`text-3xl font-light`,children:[(0,H.jsx)(`span`,{"aria-hidden":`true`,className:`text-2xl animate-flower-dance mr-4`,title:`Loading`,children:`🌼`}),`Check your email!`]}),(0,H.jsxs)(`p`,{children:[`Your account has been created! You should receive an email with a link to `,(0,H.jsx)(`strong`,{children:`[Verify My Email]`}),`!`]}),(0,H.jsxs)(`p`,{children:[`From: `,(0,H.jsx)(`strong`,{children:`harper@notifications.harperfabric.com`})]}),(0,H.jsxs)(`p`,{children:[`To: `,(0,H.jsx)(`strong`,{children:e||`your email`})]}),(0,H.jsx)(`p`,{children:`Can you click it? Then we can carry on to more fun things!`}),(0,H.jsxs)(`div`,{className:`underline flex gap-4`,children:[(0,H.jsx)(I,{className:`text-sm text-muted-foreground hover:text-foreground dark:text-inherit dark:hover:text-blue-300`,to:`/sign-in`,search:{me:e},children:`I did it, let me sign in!`}),(0,H.jsx)(I,{className:`text-sm opacity-50 text-muted-foreground hover:text-foreground dark:text-inherit dark:hover:text-blue-300`,to:void 0,onClick:r,disabled:n,children:`Send me another code, please.`})]})]})}var Ka=P({getParentRoute:()=>Wr,id:`_authLayout`,component:Ii}),qa=P({getParentRoute:()=>Ka,path:`sign-in`,head:()=>({meta:[{title:`Sign In — Harper Fabric`}]}),component:Ma,beforeLoad:({context:e,location:t})=>{let n=e.authentication[h]?.user;if(n){let e=t?.search,r=on(n);throw ue({to:e?.redirect?.startsWith(`/`)?e.redirect:r})}}}),Ja=P({getParentRoute:()=>Wr,path:`sign-in`,head:()=>({meta:[{title:`Sign In — Harper Fabric`}]}),component:va,beforeLoad:({context:e,location:t})=>{if(e.authentication.OverallAppSignIn?.user){let e=t?.search;throw ue({to:e?.redirect?.startsWith(`/`)?e.redirect:`/`})}}}),Ya=P({getParentRoute:()=>Ka,path:`sign-up`,head:()=>({meta:[{title:`Sign Up — Harper Fabric`}]}),component:La}),Xa=P({getParentRoute:()=>Ka,path:`forgot-password`,head:()=>({meta:[{title:`Forgot Password — Harper Fabric`}]}),component:Sa}),Za=P({getParentRoute:()=>Ka,path:`verify-email`,head:()=>({meta:[{title:`Verify Email — Harper Fabric`}]}),component:Wa}),Qa=P({getParentRoute:()=>Ka,path:`verifying`,head:()=>({meta:[{title:`Check Your Email — Harper Fabric`}]}),component:Ga}),$a=P({getParentRoute:()=>Ka,path:`check-oauth`,head:()=>({meta:[{title:`Signing In — Harper Fabric`}]}),component:Hi}),eo=P({getParentRoute:()=>Ka,path:`reset-password`,head:()=>({meta:[{title:`Reset Password — Harper Fabric`}]}),component:Ea});Ka.addChildren([qa,Ya,$a,Xa,Za,Qa,eo]);var to=[Ja];function no({children:e}){return(0,H.jsx)(`nav`,{className:`fixed top-20 w-full h-12 z-39 py-2 px-4 md:px-12 bg-violet-50 border-b border-violet-100 dark:bg-grey-700 dark:border-none`,children:(0,H.jsxs)(`div`,{className:`flex items-center h-full space-x-2`,children:[(0,H.jsx)(Xi,{}),e]})})}function ro(e){if(so(e)||co(e))return`warning`;if(io(e))return`success`;switch(e){case`STOPPED`:return`secondary`;case`TERMINATING`:case`TERMINATED`:case`FAILED`:case`REMOVED`:case`ERROR`:return`destructive`;default:return`default`}}function io(e){switch(e){case`RUNNING`:case`UPDATED`:return!0;default:return!1}}function ao(e){switch(e){case`FAILED`:return!0;default:return!1}}function oo(e){switch(e){case`TERMINATED`:return!0;default:return!1}}function so(e){switch(e){case`CLONE_PENDING`:case`PENDING_UPGRADE`:return!0;default:return!1}}function co(e){switch(e){case`PROVISIONING`:case`CLONING`:case`CLONE_READY`:case`UPDATING_HDB_NODES`:case`DRAINING`:case`UPDATING`:return!0;default:return!1}}function lo({...e}){return(0,H.jsx)(Be,{"data-slot":`dialog`,...e})}function uo({...e}){return(0,H.jsx)(Lt,{"data-slot":`dialog-trigger`,...e})}function fo({...e}){return(0,H.jsx)(at,{"data-slot":`dialog-portal`,...e})}function po({className:e,...t}){return(0,H.jsx)(ht,{"data-slot":`dialog-overlay`,className:f(`data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-white/80 backdrop-blur-xs dark:bg-black-dark/90 dark:backdrop-blur-none`,e),...t})}function mo({className:e,children:t,...n}){return(0,H.jsxs)(fo,{"data-slot":`dialog-portal`,children:[(0,H.jsx)(po,{}),(0,H.jsxs)(mt,{"data-slot":`dialog-content`,className:f(`bg-popover data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] lg:max-w-2xl max-h-screen overflow-y-auto translate-x-[-50%] translate-y-[-50%] gap-4 rounded-md border p-6 shadow-2xl duration-200`,e),...n,children:[t,(0,H.jsxs)(Qe,{className:`ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,children:[(0,H.jsx)(jr,{className:`text-popover-foreground`}),(0,H.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})]})}function ho({className:e,...t}){return(0,H.jsx)(`div`,{"data-slot":`dialog-header`,className:f(`flex flex-col gap-2 text-center sm:text-left`,e),...t})}function Z({className:e,...t}){return(0,H.jsx)(`div`,{"data-slot":`dialog-footer`,className:f(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,e),...t})}function go({className:e,...t}){return(0,H.jsx)(St,{"data-slot":`dialog-title`,className:f(`text-lg leading-none text-popover-foreground font-semibold`,e),...t})}function _o({className:e,...t}){return(0,H.jsx)(pt,{"data-slot":`dialog-description`,className:f(`text-muted-foreground text-sm`,e),...t})}function vo({typeOfThingBeingDeleted:e,nameOfThingBeingDeleted:t,isModalOpen:n,hideDataLossWarning:r,setIsModalOpen:i,deletionConfirmed:a,deletionPending:o,trigger:s,presentParticiple:c=`Deleting`,transitiveVerb:l=`Delete`}){return(0,H.jsxs)(lo,{open:n,onOpenChange:i,children:[s&&(0,H.jsx)(uo,{asChild:!0,children:s}),(0,H.jsxs)(mo,{className:`sm:max-w-[750px]`,children:[(0,H.jsxs)(ho,{children:[(0,H.jsxs)(go,{children:[`Are you sure you want to `,l.toLowerCase(),` this `,e,`?`]}),(0,H.jsx)(_o,{children:`This action cannot be undone.`})]}),!r&&(0,H.jsxs)(`div`,{className:`p-3 my-5 text-white rounded-md bg-amber-600`,children:[(0,H.jsxs)(`p`,{className:`flex space-x-1 font-semibold align-baseline`,children:[(0,H.jsx)(Or,{className:`inline-block size-5`}),` `,(0,H.jsx)(`span`,{children:`Warning`})]}),(0,H.jsxs)(`p`,{className:`pt-2 text-base`,children:[`By `,c.toLowerCase(),` `,e,` `,(0,H.jsx)(`span`,{className:`font-semibold`,children:t}),` `,`you will lose the data stored in it permanently.`]})]}),(0,H.jsx)(Z,{children:(0,H.jsxs)(`div`,{className:`flex justify-center space-x-5`,children:[(0,H.jsxs)(_,{type:`button`,className:`rounded-full`,onClick:()=>i(!1),children:[(0,H.jsx)(un,{}),` Cancel`]}),(0,H.jsxs)(_,{variant:`destructive`,className:`rounded-full`,onClick:a,disabled:o,children:[(0,H.jsx)(Dr,{}),` `,l]})]})})]})]})}function yo({className:e,variant:t,asChild:n=!1,...r}){return(0,H.jsx)(n?qe:`span`,{"data-slot":`badge`,className:f(li({variant:t}),e),...r})}function bo({...e}){return(0,H.jsx)(Xe,{"data-slot":`dropdown-menu`,...e})}function xo({...e}){return(0,H.jsx)(Ft,{"data-slot":`dropdown-menu-trigger`,...e})}function So({className:e,sideOffset:t=4,...n}){return(0,H.jsx)(dt,{children:(0,H.jsx)(et,{"data-slot":`dropdown-menu-content`,sideOffset:t,className:f(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-border p-1 shadow-md`,e),...n})})}function Co({className:e,inset:t,variant:n=`default`,...r}){return(0,H.jsx)(ot,{"data-slot":`dropdown-menu-item`,"data-inset":t,"data-variant":n,className:f(`focus:bg-accent focus:text-grey`,`data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10`,`dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive`,`data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground`,`relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm`,`outline-hidden select-none`,`data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8`,`[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),...r})}function wo({className:e,children:t,checked:n,...r}){return(0,H.jsxs)(Ze,{"data-slot":`dropdown-menu-checkbox-item`,className:f(`focus:bg-accent focus:text-accent-foreground relative flex cursor-pointer items-center gap-2 rounded-sm`,`py-1.5 pr-2 pl-8`,`text-sm outline-hidden`,`select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,`[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),checked:n,...r,children:[(0,H.jsx)(`span`,{className:`pointer-events-none absolute left-2 flex size-3.5 items-center justify-center`,children:(0,H.jsx)(Kt,{children:(0,H.jsx)(xn,{className:`size-4`})})}),t]})}function To({className:e,inset:t,...n}){return(0,H.jsx)(He,{"data-slot":`dropdown-menu-label`,"data-inset":t,className:f(`px-2 py-1.5 text-sm font-medium data-[inset]:pl-8`,e),...n})}function Eo({className:e,...t}){return(0,H.jsx)(ut,{"data-slot":`dropdown-menu-separator`,className:f(`bg-border -mx-1 my-1 h-px`,e),...t})}function Do({className:e,...t}){return(0,H.jsx)(`span`,{"data-slot":`dropdown-menu-shortcut`,className:f(`text-muted-foreground ml-auto text-xs tracking-widest`,e),...t})}function Oo({...e}){return(0,H.jsx)(ft,{"data-slot":`dropdown-menu-sub`,...e})}function ko({className:e,inset:t,children:n,...r}){return(0,H.jsxs)($e,{"data-slot":`dropdown-menu-sub-trigger`,"data-inset":t,className:f(`focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground`,`flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none`,`data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0`,`[&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground`,e),...r,children:[n,(0,H.jsx)(Cn,{className:`ml-auto size-4`})]})}function Ao({className:e,...t}){return(0,H.jsx)(Ye,{"data-slot":`dropdown-menu-sub-content`,className:f(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg`,e),...t})}function jo(e){return!!e?.plans?.[0]?.planId?.startsWith(`self-hosted`)}function Mo({cluster:e}){let t=Qt(e.id),{view:n,update:r}=xi(e.organizationId,e.id),i=!l.checkForFabricConnect(e.id)&&!!t.user,a=(0,V.useCallback)(()=>{l.setUserForEntity(e,null),l.flagForFabricConnect(e.id,!1)},[e]);if(n){if(!e.fqdn)return(0,H.jsx)(I,{to:`/${e.organizationId}/${e.id}/instances`,className:`text-sm text-nowrap`,"aria-label":`View ${e.name}`,title:`View ${e.name}`,children:(0,H.jsxs)(`span`,{className:`py-2 hover:border-b-2`,children:[`Instances `,(0,H.jsx)(dn,{className:`inline-block`})]})});if(e.resetPassword)return r?(0,H.jsx)(I,{to:`/${e.organizationId}/${e.id}/finish-setup`,className:`text-sm text-nowrap`,"aria-label":`Set Password on ${e.name}`,title:`Set Password on ${e.name}`,children:(0,H.jsxs)(_,{variant:`positive`,className:`py-2 hover:border-b-2 animate-glow-pulse`,children:[`Finish Setup `,(0,H.jsx)(dn,{className:`inline-block`})]})}):(0,H.jsx)(`span`,{className:`py-2 text-nowrap`,children:`Pending Owner Setup`});if(!t.isLoading)return i?(0,H.jsx)(I,{to:`/${e.organizationId}/${e.id}/`,className:`text-sm text-nowrap`,"aria-label":`View ${e.name}`,title:`View ${e.name}`,children:(0,H.jsxs)(`span`,{className:`py-2 hover:border-b-2`,children:[`Direct Connect `,(0,H.jsx)(dn,{className:`inline-block`})]})}):r&&!jo(e)?(0,H.jsx)(I,{to:`/${e.organizationId}/${e.id}/`,className:`text-sm text-nowrap`,"aria-label":`Connect to ${e.name}`,title:`Connect to ${e.name}`,children:(0,H.jsxs)(`span`,{className:`py-2 hover:border-b-2`,children:[`Fabric Connect `,(0,H.jsx)(dn,{className:`inline-block`})]})}):(0,H.jsx)(I,{to:`/${e.organizationId}/${e.id}/sign-in`,className:`text-sm text-nowrap`,"aria-label":`Sign In to ${e.name}`,title:`Sign In to ${e.name}`,onClick:a,children:(0,H.jsxs)(`span`,{className:`py-2 hover:border-b-2`,children:[`Direct Sign In `,(0,H.jsx)(dn,{className:`inline-block`})]})})}}function No(e,t){let n=[];if(e)for(let r of e)n.push(r[t]);return n}function Po({cluster:e,forceProgressBarVisible:t}){let[n,r]=(0,V.useState)(t||!1),{data:i}=M(ca(n&&e.id,2e3));(0,V.useEffect)(function(){(so(e.status)||co(e.status))&&r(!0)},[n,e.status,i?.instances]);let a=(0,V.useMemo)(()=>{let e=No(i?.plans??[],`planId`),t=i?.instances??[],n=0,r={},a=0,o={},s=0,c={},l=0,u={};for(let i of t){let t=i.status;!t||oo(t)||(so(t)?(n+=1,r[t]=`${n} ${Ji(t)}`):co(t)?(a+=1,o[t]=`${a} ${Ji(t)}`):ao(t)?(l+=1,u[t]=`${l} ${Ji(t)}`):!i.planId||!e.includes(i.planId)?(a+=1,o.DRAINING_TRAFFIC=`${a} ${Ji(`Draining Traffic`)}`):io(t)&&(s+=1,c[t]=`${s} ${Ji(t)}`))}let d=n+a+s;return{pendingWidth:`${d===0?100:n===0?0:n/d*100}%`,updatingWidth:`${a===0?0:a/d*100}%`,failedWidth:`${l===0?0:l/d*100}%`,runningWidth:`${s===0?0:s/d*100}%`,text:[...Object.values(c).sort(),...Object.values(u).sort(),...Object.values(o).sort(),...Object.values(r).sort()].join(` · `)}},[i]);return n?(0,H.jsxs)(`div`,{className:`w-full text-center`,children:[(0,H.jsxs)(`div`,{className:`w-full h-2.5 rounded-full overflow-clip flex shadow`,children:[(0,H.jsx)(`div`,{style:{width:a.runningWidth},className:`grow bg-green/80 transition-[width] duration-1000 ease-in-out motion-reduce:transition-none`}),(0,H.jsx)(`div`,{style:{width:a.failedWidth},className:`grow bg-red/80 transition-[width] duration-1000 ease-in-out motion-reduce:transition-none`}),(0,H.jsx)(`div`,{style:{width:a.updatingWidth},className:`grow animate-pulse bg-yellow/80 transition-[width] duration-1000 ease-in-out motion-reduce:transition-none`}),(0,H.jsx)(`div`,{style:{width:a.pendingWidth},className:`grow bg-gray-600 transition-[width] duration-1000 ease-in-out motion-reduce:transition-none`})]}),a.text&&(0,H.jsx)(`div`,{className:`text-xs text-muted-foreground font-light mt-2`,children:a.text})]}):null}async function Fo(e){let{data:t}=await c.delete(`/Cluster/${e}`,{timeout:0});return t}function Io(){return F({mutationFn:e=>Fo(e)})}function Lo(...e){return(0,V.useMemo)(()=>e.map(e=>(()=>{navigator.clipboard.writeText(e),L.info(`Copied to clipboard!`,{icon:(0,H.jsx)(On,{}),duration:1e3})})),e)}function Ro({cluster:e}){let t=ae(),n=de(),r=(0,V.useMemo)(()=>p(e),[e]),a=di({operationsUrl:r}),o=Qt(e.id),[,s]=Xr(Qr.SavedClusterState,null),{view:c,update:u,remove:d,create:f}=xi(e.organizationId,e.id),{mutate:m,isPending:h}=Io(),[g,_]=(0,V.useState)(!1),[v,y]=(0,V.useState)(!1),b=(0,V.useMemo)(()=>e.status&&ta.includes(e.status),[e.status]),x=jo(e),S=l.checkForFabricConnect(e.id),C=!S&&!!o.user,ee=(0,V.useMemo)(()=>e.status&&na.includes(e.status),[e.status]),w=(0,V.useMemo)(()=>e.status&&ao(e.status),[e.status]),T=(0,V.useCallback)(async()=>{_(!0);let t=await sa(e.id).catch(e=>(console.error(`Failed to lookup cluster details, proceeding without checking instances.`,e),null));if(await i({entityId:e.id,instanceClient:a}),t?.instances?.length)for(let e of t.instances)l.setUserForEntity(e,null);l.setUserForEntity(e,null)},[e,a]),E=(0,V.useCallback)(()=>{s(e),t.navigate({to:`/${e.organizationId}/new-cluster`})},[e,t,s]),D=(0,V.useCallback)(()=>y(!0),[]),te=(0,V.useCallback)(()=>{let r=e.organizationId;m(e.id,{onSuccess:async()=>{await n.invalidateQueries({queryKey:[r],refetchType:`active`}),await t.invalidate(),L.success(`Success`,{description:x?`Cluster successfully removed.`:`Cluster successfully terminated.`,duration:5e3,action:{label:`Dismiss`,onClick:()=>L.dismiss()}}),y(!1)},onError:()=>{L.error(`Error`,{description:x?`Failed to remove cluster: ${e.name}`:`Failed to terminate cluster: ${e.name}.`,duration:5e3,action:{label:`Dismiss`,onClick:()=>L.dismiss()}}),y(!1)}})},[t,e.organizationId,e.id,e.name,m,x,n]),ne=e.domains?.[0]?.domain||e.fqdn,[O,k]=Lo(`${ne}`,`https://${ne}`),re=[b&&u&&!o.isLoading&&(!C||S)&&(0,H.jsx)(I,{to:`${e.id}/sign-in`,disabled:g,children:(0,H.jsxs)(Co,{children:[(0,H.jsx)(Yn,{className:`text-green`}),` Direct Sign In`]})},`sign-in`),b&&c&&!!r&&!o.isLoading&&C&&(0,H.jsx)(Co,{onClick:T,disabled:g,children:`Direct Sign Out`},`direct-sign-out`),b&&u&&(0,H.jsx)(I,{to:`${e.id}/edit`,disabled:g,children:(0,H.jsxs)(Co,{children:[(0,H.jsx)(mr,{className:`text-purple-600`}),` `,x?`Edit`:`Edit Scaling`]})},`edit`),b&&u&&!x&&(0,H.jsx)(I,{to:`${e.id}/edit/version`,disabled:g,children:(0,H.jsxs)(Co,{children:[(0,H.jsx)(Un,{className:`text-fuchsia-300`}),` Edit Version`]})},`edit-version`),b&&u&&!1,b&&c&&(0,H.jsx)(I,{to:`${e.id}/instances`,disabled:g,children:(0,H.jsxs)(Co,{children:[(0,H.jsx)(gr,{className:`text-orange-300`}),` Instances`]})},`instances`),b&&c&&e.fqdn&&(0,H.jsx)(Eo,{},`copy-separator`),b&&c&&e.fqdn&&(0,H.jsxs)(Co,{onClick:O,disabled:g,children:[(0,H.jsx)(kn,{}),` Copy Host Name`]},`copy-host-name`),b&&c&&e.fqdn&&(0,H.jsxs)(Co,{onClick:k,disabled:g,children:[(0,H.jsx)(kn,{}),` Copy API URL`]},`copy-api-url`),w&&f&&(0,H.jsx)(Co,{className:`focus:bg-green/70 focus:text-white`,onClick:E,children:`Try Again`},`try-again`),!ee&&d&&b&&(0,H.jsx)(Eo,{},`remove-separator`),!ee&&d&&(0,H.jsxs)(Co,{className:`focus:bg-red/70 focus:text-white`,onClick:D,children:[(0,H.jsx)(Dr,{className:`text-red-300`}),` `,x?`Remove`:`Terminate`]},`remove`)].filter(Lr);return(0,H.jsxs)($t,{className:`relative h-full justify-between hover:shadow-lg transition-shadow duration-200`,children:[(0,H.jsxs)(en,{children:[(0,H.jsxs)(nn,{className:`flex items-center justify-between`,children:[ne?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`span`,{className:`truncate max-w-48`,children:ne}),(0,H.jsx)(Pn,{onClick:O,size:16,className:`cursor-pointer`}),(0,H.jsx)(`span`,{className:`grow`})]}):(0,H.jsx)(`span`,{children:`Self-Hosted`}),!ee&&(0,H.jsxs)(bo,{children:[(0,H.jsx)(xo,{children:(0,H.jsx)(Ln,{"aria-label":`Cluster options`})}),(0,H.jsx)(So,{children:[...re]})]})]}),(0,H.jsx)(tn,{children:(0,H.jsx)(`h2`,{children:e.name})})]}),(0,H.jsxs)(rn,{className:`flex items-center justify-between gap-2`,children:[(0,H.jsx)(Po,{cluster:e}),b&&c&&(0,H.jsx)(Mo,{cluster:e}),w&&e.status&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(yo,{variant:ro(e.status),children:Ji(e.status)}),(0,H.jsx)(`span`,{className:`text-xs`,children:`Click "..." to choose how to proceed.`})]})]}),(0,H.jsx)(vo,{typeOfThingBeingDeleted:`cluster`,transitiveVerb:x?`Remove`:`Terminate`,presentParticiple:x?`Removing`:`Terminating`,nameOfThingBeingDeleted:e.name,isModalOpen:v,hideDataLossWarning:x,setIsModalOpen:e=>y(e),deletionConfirmed:te,deletionPending:h})]})}function zo({overEmail:e}){return(0,H.jsx)(`a`,{href:e?`mailto:support@harperdb.io`:`https://discord.com/channels/1415002037439041710/1415002038286286994`,target:`_blank`,rel:`noreferrer`,className:`underline`,children:`Contact us`})}function Bo({className:e,text:t,centered:n,...r}){return(0,H.jsxs)(`div`,{className:`text-foreground h-full w-full ${e||``} ${n?`flex flex-col items-center justify-center`:``}`,...r,children:[(0,H.jsx)(`img`,{src:`/HDBDogOnly.svg`,width:`100px`,height:`100px`,alt:`HDB Dog Logo Loading`,className:`inline-block`}),(0,H.jsx)(`p`,{className:`pt-4`,children:t||`Loading...`})]})}function Vo({children:e,className:t}){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(no,{}),(0,H.jsx)(`div`,{className:`mt-32 px-4 pt-4 md:px-12 min-h-[calc(100vh-(--spacing(32)))] relative ${t??``}`,children:e})]})}async function Ho(e){let{data:t}=await c.get(`/Plan/`,{params:{organizationId:e}});return t}function Uo(e){return A({queryKey:[e,`instancePlan`],queryFn:()=>Ho(e),retry:!1})}async function Wo(){let{data:e}=await c.get(`/HarperVersions/`);return e}function Go(){return A({queryKey:[`HarperVersions`],queryFn:Wo,staleTime:6e4,retry:!1})}async function Ko({organizationId:e,availableHosts:t}={}){let{data:n}=await c.get(`/Region/`,{params:{availableHosts:t,organizationId:e}});return n}function qo({organizationId:e,availableHosts:t}={}){return A({queryKey:[e,`regionLocations`,t],queryFn:()=>Ko({organizationId:e,availableHosts:t}),retry:!1})}function Jo(e){return(t,n)=>t[e]===n[e]?0:t[e]>n[e]?1:-1}function Yo(e){let t=e.split(`.`).map(Number);return(t[0]<<24|t[1]<<16|t[2]<<8|t[3])>>>0}function Xo(e){return typeof e==`string`?/^(?:25[0-5]|2[0-4]\d|1?\d?\d)(?:\.(?:25[0-5]|2[0-4]\d|1?\d?\d)){3}$/.test(e):!1}function Zo(e,t){return e.instanceFqdn===t.instanceFqdn?e.operationsApiPort-t.operationsApiPort:Xo(e.instanceFqdn)&&Xo(t.instanceFqdn)?Yo(e.instanceFqdn)-Yo(t.instanceFqdn):e.instanceFqdn>t.instanceFqdn?1:-1}function Qo(e,t){let n={};for(let r of e){let e=r[t];if(e!==void 0)if(Array.isArray(e))for(let t of e)n[t]||(n[t]=[]),n[t].push(r);else n[e]||(n[e]=[]),n[e].push(r)}return n}function $o(e,t){let n={};for(let r of e){let e=r[t];if(e!==void 0)if(Array.isArray(e))for(let t of e)n[t]=r;else n[e]=r}return n}function es(e,t,n){let r=Qo(e,t),i={};for(let e in r)i[e]=$o(r[e],n);return i}function ts(e,t){let n=rs(e),r=rs(t);return!n||!r?!1:os(r,n)>=0}function ns(e,t){let n=rs(e),r=rs(t);return!n&&!r?0:n?r?os(n,r):1:-1}function rs(e){if(typeof e!=`string`)return null;let[t]=e.split(`+`,1).concat(``),n=t.indexOf(`-`),r=n===-1?t:t.slice(0,n),i=n===-1?``:t.slice(n+1),a=r.split(`.`);if(a.length===0)return null;let o=is(a[0]),s=is(a[1]??`0`),c=is(a[2]??`0`);return o==null||s==null||c==null?null:{major:o,minor:s,patch:c,pre:i?i.split(`.`).map(e=>as(e)?Number(e):e):[]}}function is(e){return e==null||e===``||!/^\d+$/.test(e)?null:Number(e)}function as(e){return/^\d+$/.test(e)}function os(e,t){if(e.major!==t.major)return e.major<t.major?-1:1;if(e.minor!==t.minor)return e.minor<t.minor?-1:1;if(e.patch!==t.patch)return e.patch<t.patch?-1:1;let n=e.pre.length>0,r=t.pre.length>0;if(!n&&!r)return 0;if(!n&&r)return 1;if(n&&!r)return-1;let i=Math.min(e.pre.length,t.pre.length);for(let n=0;n<i;n++){let r=e.pre[n],i=t.pre[n],a=typeof r==`number`,o=typeof i==`number`;if(a&&o){if(r!==i)return r<i?-1:1;continue}if(a&&!o)return-1;if(!a&&o)return 1;if(r!==i)return String(r)<String(i)?-1:1}return e.pre.length===t.pre.length?0:e.pre.length<t.pre.length?-1:1}function ss({width:e,className:t,animated:n,placeholder:r}){return(0,H.jsxs)(`div`,{className:T(`w-full bg-gray-200 rounded-full relative`,r?`h-6`:`h-2.5`),children:[r&&(0,H.jsx)(`div`,{className:`absolute top-0 h-full w-full font-bold text-xs flex flex-col items-center justify-center text-black/60 text-shadow-2xs`,children:r}),(0,H.jsx)(`div`,{className:T(`rounded-full`,r?`h-6`:`h-2.5`,!t?.includes(`bg-`)&&`bg-purple/40`,n&&`transition-[width] duration-1000 ease-in-out motion-reduce:transition-none`,t),style:{width:e}})]})}function cs({duration:e,message:t,lateMessage:n}){let r=(0,V.useRef)(0),i=(0,V.useRef)(0),[a,o]=(0,V.useState)(!1),[s,c]=(0,V.useState)(`5%`),l=(0,V.useCallback)(function t(n){i.current||=n;let a=n-i.current,s=Math.min(a/e,1);c(Math.max(5,s*100)+`%`),s<1?r.current=requestAnimationFrame(t):o(!0)},[e]);return(0,V.useEffect)(()=>(r.current=requestAnimationFrame(l),()=>cancelAnimationFrame(r.current)),[l]),(0,H.jsxs)(H.Fragment,{children:[a?n:t,(0,H.jsx)(ss,{width:s,animated:!1})]})}async function ls(e){let{data:t}=await c.post(`/Cluster/`,e,{timeout:0});return t}function us(){return F({mutationFn:e=>ls(e)})}async function ds(e){let{id:t,...n}=e,{data:r}=await c.put(`/Cluster/${t}`,n,{timeout:0});return r}function fs(){return F({mutationFn:e=>ds(e)})}function ps(e){return!!e&&e!==`undefined`&&e!==`null`}async function ms(e){if(!ps(e))throw Error(`getOrganization called without a valid organization id (got: ${e})`);let{data:t}=await c.get(`/Organization/${e}`);return t}function hs(e){return A({queryKey:[e],queryFn:()=>ms(e),retry:!1,enabled:ps(e),refetchInterval:1e4})}var gs=`ENTERPRISE`;function _s(e,t){if(t<=0)return``;if(e.length<=t)return e;let n=e.split(`-`);if(n.length===1)return n[0].slice(0,t);let r=[n[0],...n.slice(1).map(e=>e.charAt(0))],i=r.join(`-`);if(i.length<=t)return i;let a=r.slice(1).join(``).length,o=r.length-1,s=t-a-o;if(s>0)return r[0]=r[0].slice(0,s),r.join(`-`);{let e=[],i=0;t>0&&(e.push(n[0].charAt(0)),i=1);for(let n=1;n<r.length&&i+2<=t;n++)e.push(r[n]),i+=2;return e.join(`-`)}}function vs(e,t,n=`-`){let r=t.split(n)[0];return e.findIndex(e=>e.startsWith(r))!==-1}function ys(e){return e.replace(/[^a-zA-Z0-9]/g,`-`).replace(/([a-z])([A-Z])/g,`$1-$2`).toLowerCase().replace(/-+/g,`-`).replace(/^-+|-+$/g,``)}function Q(e){return e!==void 0&&e>0}async function bs(e){await c.put(`/Payment/`,e)}function xs(){return F({mutationFn:e=>bs(e)})}function Ss(e){let{mutate:t}=xs();return(0,V.useCallback)((n,r)=>{t({paymentMethodId:typeof n==`string`?n:n.id,organizationId:e},{onSuccess:()=>{L.success(`Success! Your payment method has been saved.`),r(!0)},onError:()=>{L.error(`Failed to process payment method details. Please try another payment method.`),r(!1)}})},[t,e])}var Cs=(0,V.createContext)(null);function ws(){return(0,V.useContext)(Cs)}var Ts=t(((e,t)=>{t.exports=`SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED`})),Es=t(((e,t)=>{var n=Ts();function r(){}function i(){}i.resetWarningCache=r,t.exports=function(){function e(e,t,r,i,a,o){if(o!==n){var s=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name=`Invariant Violation`,s}}e.isRequired=e;function t(){return e}var a={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:r};return a.PropTypes=a,a}})),Ds=t(((e,t)=>{t.exports=Es()()})),Os=e(Ds(),1);function ks(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function As(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?ks(Object(n),!0).forEach(function(t){Ms(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ks(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function js(e){"@babel/helpers - typeof";return js=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},js(e)}function Ms(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ns(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,a;for(a=0;a<r.length;a++)i=r[a],!(t.indexOf(i)>=0)&&(n[i]=e[i]);return n}function Ps(e,t){if(e==null)return{};var n=Ns(e,t),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Fs(e,t){return Is(e)||Ls(e,t)||Rs(e,t)||Bs()}function Is(e){if(Array.isArray(e))return e}function Ls(e,t){var n=e&&(typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`]);if(n!=null){var r=[],i=!0,a=!1,o,s;try{for(n=n.call(e);!(i=(o=n.next()).done)&&(r.push(o.value),!(t&&r.length===t));i=!0);}catch(e){a=!0,s=e}finally{try{!i&&n.return!=null&&n.return()}finally{if(a)throw s}}return r}}function Rs(e,t){if(e){if(typeof e==`string`)return zs(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`)return Array.from(e);if(n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return zs(e,t)}}function zs(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Bs(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
11
11
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var Vs=function(e,t,n){var r=!!n,i=V.useRef(n);V.useEffect(function(){i.current=n},[n]),V.useEffect(function(){if(!r||!e)return function(){};var n=function(){if(i.current)return i.current.apply(i,arguments)};return e.on(t,n),function(){e.off(t,n)}},[r,t,e,i])},Hs=function(e){var t=V.useRef(e);return V.useEffect(function(){t.current=e},[e]),t.current},Us=function(e){return e!==null&&js(e)===`object`},Ws=function(e){return Us(e)&&typeof e.then==`function`},Gs=function(e){return Us(e)&&typeof e.elements==`function`&&typeof e.createToken==`function`&&typeof e.createPaymentMethod==`function`&&typeof e.confirmCardPayment==`function`},Ks=`[object Object]`,qs=function e(t,n){if(!Us(t)||!Us(n))return t===n;var r=Array.isArray(t);if(r!==Array.isArray(n))return!1;var i=Object.prototype.toString.call(t)===Ks;if(i!==(Object.prototype.toString.call(n)===Ks))return!1;if(!i&&!r)return t===n;var a=Object.keys(t),o=Object.keys(n);if(a.length!==o.length)return!1;for(var s={},c=0;c<a.length;c+=1)s[a[c]]=!0;for(var l=0;l<o.length;l+=1)s[o[l]]=!0;var u=Object.keys(s);if(u.length!==a.length)return!1;var d=t,f=n;return u.every(function(t){return e(d[t],f[t])})},Js=function(e,t,n){return Us(e)?Object.keys(e).reduce(function(r,i){var a=!Us(t)||!qs(e[i],t[i]);return n.includes(i)?(a&&console.warn(`Unsupported prop change: options.${i} is not a mutable property.`),r):a?As(As({},r||{}),{},Ms({},i,e[i])):r},null):null},Ys="Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.",Xs=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Ys;if(e===null||Gs(e))return e;throw Error(t)},Zs=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Ys;if(Ws(e))return{tag:`async`,stripePromise:Promise.resolve(e).then(function(e){return Xs(e,t)})};var n=Xs(e,t);return n===null?{tag:`empty`}:{tag:`sync`,stripe:n}},Qs=function(e){!e||!e._registerWrapper||!e.registerAppInfo||(e._registerWrapper({name:`react-stripe-js`,version:`6.6.0`}),e.registerAppInfo({name:`react-stripe-js`,version:`6.6.0`,url:`https://stripe.com/docs/stripe-js/react`}))},$s=V.createContext(null);$s.displayName=`ElementsContext`;var ec=function(e,t){if(!e)throw Error(`Could not find Elements context; You need to wrap the part of your app that ${t} in an <Elements> provider.`);return e},tc=function(e){var t=e.stripe,n=e.options,r=e.children,i=V.useMemo(function(){return Zs(t)},[t]),a=Fs(V.useState(function(){return{stripe:i.tag===`sync`?i.stripe:null,elements:i.tag===`sync`?i.stripe.elements(n):null}}),2),o=a[0],s=a[1];V.useEffect(function(){var e=!0,t=function(e){s(function(t){return t.stripe?t:{stripe:e,elements:e.elements(n)}})};return i.tag===`async`&&!o.stripe?i.stripePromise.then(function(n){n&&e&&t(n)}):i.tag===`sync`&&!o.stripe&&t(i.stripe),function(){e=!1}},[i,o,n]);var c=Hs(t);V.useEffect(function(){c!==null&&c!==t&&console.warn("Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.")},[c,t]);var l=Hs(n);return V.useEffect(function(){if(o.elements){var e=Js(n,l,[`clientSecret`,`fonts`]);e&&o.elements.update(e)}},[n,l,o.elements]),V.useEffect(function(){Qs(o.stripe)},[o.stripe]),V.createElement($s.Provider,{value:o},r)};tc.propTypes={stripe:Os.default.any,options:Os.default.object};var nc=function(e){return ec(V.useContext($s),e)},rc=function(){return nc(`calls useElements()`).elements},ic=function(e){var t=e.children;return t(nc(`mounts <ElementsConsumer>`))};ic.propTypes={children:Os.default.func.isRequired};var ac=V.createContext(null);ac.displayName=`CheckoutContext`;var oc=function(e){var t=V.useContext(ac),n=V.useContext($s);if(t){if(n)throw Error(`You cannot wrap the part of your app that ${e} in both a checkout provider and <Elements> provider.`);return t}else return ec(n,e)},sc=[`mode`],cc=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},lc=function(e,t,n){var r=`${cc(e)}Element`,i=t?function(e){oc(`mounts <${r}>`);var t=e.id,n=e.className;return V.createElement(`div`,{id:t,className:n})}:function(t){var n=t.id,i=t.className,a=t.options,o=a===void 0?{}:a,s=t.onBlur,c=t.onFocus,l=t.onReady,u=t.onChange,d=t.onEscape,f=t.onClick,p=t.onLoadError,m=t.onLoaderStart,h=t.onNetworksChange,g=t.onConfirm,_=t.onCancel,v=t.onShippingAddressChange,y=t.onShippingRateChange,b=t.onSavedPaymentMethodRemove,x=t.onSavedPaymentMethodUpdate,S=t.onAvailablePaymentMethodsChange,C=oc(`mounts <${r}>`),ee=`elements`in C?C.elements:null,w=`checkoutState`in C?C.checkoutState:null,T=w?.type===`success`||w?.type===`loading`?w.sdk:null,E=Fs(V.useState(null),2),D=E[0],te=E[1],ne=V.useRef(null),O=V.useRef(null);Vs(D,`blur`,s),Vs(D,`focus`,c),Vs(D,`escape`,d),Vs(D,`click`,f),Vs(D,`loaderror`,p),Vs(D,`loaderstart`,m),Vs(D,`networkschange`,h),Vs(D,`confirm`,g),Vs(D,`cancel`,_),Vs(D,`shippingaddresschange`,v),Vs(D,`shippingratechange`,y),Vs(D,`savedpaymentmethodremove`,b),Vs(D,`savedpaymentmethodupdate`,x),Vs(D,`availablepaymentmethodschange`,S),Vs(D,`change`,u);var k;l&&(k=e===`expressCheckout`?l:function(){l(D)}),Vs(D,`ready`,k),V.useLayoutEffect(function(){if(ne.current===null&&O.current!==null&&(ee||T)){var t=null;if(T){var n=T,i=T;switch(e){case`paymentForm`:t=i.createForm(o);break;case`payment`:t=n.createPaymentElement(o);break;case`address`:if(`mode`in o){var a=o.mode,s=Ps(o,sc);if(a===`shipping`)t=n.createShippingAddressElement(s);else if(a===`billing`)t=n.createBillingAddressElement(s);else throw Error(`Invalid options.mode. mode must be 'billing' or 'shipping'.`)}else throw Error(`You must supply options.mode. mode must be 'billing' or 'shipping'.`);break;case`expressCheckout`:t=n.createExpressCheckoutElement(o);break;case`currencySelector`:t=T.createCurrencySelectorElement();break;case`taxId`:t=n.createTaxIdElement(o);break;case`contactDetails`:t=n.createContactDetailsElement();break;default:throw Error(`<${r}> is not supported inside a checkout provider. Use an <Elements> provider instead.`)}}else ee&&(t=ee.create(e,o));ne.current=t,te(t),t&&t.mount(O.current)}},[ee,T,o]);var re=Hs(o);return V.useEffect(function(){if(ne.current){var e=Js(o,re,[`paymentRequest`]);e&&`update`in ne.current&&ne.current.update(e)}},[o,re]),V.useLayoutEffect(function(){return function(){if(ne.current&&typeof ne.current.destroy==`function`)try{ne.current.destroy(),ne.current=null}catch{}}},[]),V.createElement(`div`,{id:n,className:i,ref:O})};return i.propTypes={id:Os.default.string,className:Os.default.string,onChange:Os.default.func,onBlur:Os.default.func,onFocus:Os.default.func,onReady:Os.default.func,onEscape:Os.default.func,onClick:Os.default.func,onLoadError:Os.default.func,onLoaderStart:Os.default.func,onNetworksChange:Os.default.func,onConfirm:Os.default.func,onCancel:Os.default.func,onShippingAddressChange:Os.default.func,onShippingRateChange:Os.default.func,onSavedPaymentMethodRemove:Os.default.func,onSavedPaymentMethodUpdate:Os.default.func,onAvailablePaymentMethodsChange:Os.default.func,options:Os.default.object},i.displayName=r,i.__elementType=e,i},uc=typeof window>`u`,dc=V.createContext(null);dc.displayName=`EmbeddedCheckoutProviderContext`;var fc=function(){return oc(`calls useStripe()`).stripe};lc(`auBankAccount`,uc),lc(`card`,uc),lc(`cardNumber`,uc),lc(`cardExpiry`,uc),lc(`cardCvc`,uc),lc(`currencySelector`,uc),lc(`iban`,uc);var pc=lc(`payment`,uc);lc(`expressCheckout`,uc),lc(`paymentRequestButton`,uc),lc(`linkAuthentication`,uc),lc(`contactDetails`,uc);var mc=lc(`address`,uc);lc(`shippingAddress`,uc),lc(`paymentMethodMessaging`,uc),lc(`taxId`,uc),lc(`issuingCardNumberDisplay`,uc),lc(`issuingCardCvcDisplay`,uc),lc(`issuingCardExpiryDisplay`,uc),lc(`issuingCardPinDisplay`,uc),lc(`issuingCardCopyButton`,uc);function hc({hasExistingBilling:e,onPaymentAdded:t,onSaveStateForBillingRedirect:n}){let{organizationId:r}=j({strict:!1}),i=fc(),a=ws(),o=rc(),[s,c]=(0,V.useState)(!1),l=Ss(r),u=(0,V.useCallback)(()=>{t(!1)},[t]);return(0,H.jsxs)(`form`,{id:`billing-add-payment-method-form`,name:`billing-add-payment-method-form`,onSubmit:(0,V.useCallback)(async e=>{if(e.preventDefault(),!i||!o)return;c(!0),await o.submit(),n?.(!0);let s=await i.confirmSetup({clientSecret:a.clientSecret,elements:o,redirect:`if_required`,confirmParams:{return_url:`${window.location.origin}/#/${r}/billing/confirm`}});s.error?(console.error(s.error.message),L.error(s.error.message),c(!1),n?.(!1)):s.setupIntent.payment_method&&(l(s.setupIntent.payment_method,t),n?.(!1))},[o,t,n,r,l,i,a.clientSecret]),className:`max-w-xl`,children:[(0,H.jsx)(pc,{}),(0,H.jsx)(mc,{options:{mode:`billing`}}),(0,H.jsxs)(`div`,{className:`mt-4 flex gap-8 items-center`,children:[(0,H.jsxs)(_,{disabled:!i||!o||s,variant:`submit`,className:`rounded-full`,children:[(0,H.jsx)(pr,{}),` Add Payment Method`]}),e&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{className:`text-xs text-gray-600`,children:`Your existing payment method will be overwritten.`}),(0,H.jsx)(_,{variant:`defaultOutline`,type:`button`,onClick:u,children:`Cancel`})]})]})]})}var gc=`dahlia`,_c=`https://js.stripe.com`,vc=`${_c}/${gc}/stripe.js`,yc=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,bc=/^https:\/\/js\.stripe\.com\/(v3|[a-z]+)\/stripe\.js(\?.*)?$/,xc=`loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used`,Sc=function(e){return yc.test(e)||bc.test(e)},Cc=function(){for(var e=document.querySelectorAll(`script[src^="${_c}"]`),t=0;t<e.length;t++){var n=e[t];if(Sc(n.src))return n}return null},wc=function(e){var t=e&&!e.advancedFraudSignals?`?advancedFraudSignals=false`:``,n=document.createElement(`script`);n.src=`${vc}${t}`;var r=document.head||document.body;if(!r)throw Error(`Expected document.body not to be null. Stripe.js requires a <body> element.`);return r.appendChild(n),n},Tc=null,Ec=null,Dc=null,Oc=function(e){return function(t){e(Error(`Failed to load Stripe.js`,{cause:t}))}},kc=function(e,t){return function(){window.Stripe?e(window.Stripe):t(Error(`Stripe.js not available`))}},Ac=function(e){return Tc===null?(Tc=new Promise(function(t,n){if(typeof window>`u`||typeof document>`u`){t(null);return}if(window.Stripe&&e&&console.warn(xc),window.Stripe){t(window.Stripe);return}try{var r=Cc();if(r&&e)console.warn(xc);else if(!r)r=wc(e);else if(r&&Dc!==null&&Ec!==null){var i;r.removeEventListener(`load`,Dc),r.removeEventListener(`error`,Ec),(i=r.parentNode)==null||i.removeChild(r),r=wc(e)}Dc=kc(t,n),Ec=Oc(n),r.addEventListener(`load`,Dc),r.addEventListener(`error`,Ec)}catch(e){n(e);return}}),Tc.catch(function(e){return Tc=null,Promise.reject(e)})):Tc},jc,Mc=!1,Nc=function(){return jc||(jc=Ac(null).catch(function(e){return jc=null,Promise.reject(e)}),jc)};Promise.resolve().then(function(){return Nc()}).catch(function(e){Mc||console.warn(e)});async function Pc(e){let{data:t}=await c.post(`/StripeAccount/`,e);return t}function Fc(){return F({mutationFn:e=>Pc(e)})}async function Ic(e){let{data:t}=await c.post(`/Payment/`,{organizationId:e.organizationId});return t}function Lc(){return F({mutationFn:e=>Ic(e)})}function Rc(e){let{enabled:t,existingStripeId:n,organizationId:r}=e,{mutate:i}=Fc(),{mutate:a}=Lc(),[o,s]=(0,V.useState)(void 0);return(0,V.useEffect)(()=>{},[i,t,n,a,(0,V.useCallback)(e=>{s(e.clientSecret)},[]),r]),o}function zc({children:e}){let{organizationId:t}=j({strict:!1}),{data:n}=M(hs(t)),r=Rc({organizationId:t,enabled:!!n,existingStripeId:n?.stripeId}),i=Zr();return(0,V.useMemo)(()=>({clientSecret:r||``,appearance:{theme:i===`dark`?`night`:`stripe`}}),[r,i]),console.error(`No VITE_PUBLIC_STRIPE_KEY is configured for this environment.`),(0,H.jsx)(`div`,{className:`mt-20 px-4 pt-4 md:px-12 min-h-[calc(100vh-theme(spacing.32))]`,children:`Setting up your billing is currently disabled. Please check back again later.`})}function Bc({onPaymentAdded:e,onSaveStateForBillingRedirect:t}){let{organizationId:n}=j({strict:!1}),{data:r}=M(hs(n)),i=r?.billing,a=i?.paymentMethod;return(0,H.jsxs)(zc,{children:[(0,H.jsx)(`div`,{className:`mt-2 mb-6`,children:!a&&`You currently have no payment method on file. Please fill out the secure form below.`}),(0,H.jsx)(hc,{hasExistingBilling:!!i,onSaveStateForBillingRedirect:t,onPaymentAdded:e})]})}var Vc=function(e){return e.PASS=`pass`,e.FAIL=`fail`,e.PENDING=`pending`,e.ERROR=`error`,e}({});function Hc(e){switch(e){case Vc.PASS:return`success`;case Vc.FAIL:case Vc.ERROR:return`destructive`;case Vc.PENDING:default:return`default`}}function Uc(e){switch(e){case Vc.PASS:return`READY`;case Vc.FAIL:case Vc.ERROR:case Vc.PENDING:default:return e.toUpperCase()}}function Wc(e,t){return`${String(e).padStart(2,`0`)}/${String(t%100).padStart(2,`0`)}`}function Gc(e){let{onSaveStateForBillingRedirect:t,onReplacingPaymentMethod:n}=e??{},{organizationId:r}=j({strict:!1}),{update:i}=yi(r),{data:a,refetch:o}=M(hs(r)),s=a?.billing?.paymentMethod,[c,l]=(0,V.useState)(!1),u=(0,V.useCallback)(()=>{l(!c),n?.(!c)},[n,c]),d=(0,V.useCallback)(e=>{l(!1),n?.(!1),e&&o()},[n,o]);return a?.type===`ENTERPRISE`?(0,H.jsxs)(`span`,{children:[`You are part of an enterprise organization! We don’t currently show your payment methods on this page. Want to explore your solution with Harper more? `,(0,H.jsx)(zo,{}),`, we would love to talk!`]}):s&&!c?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`div`,{className:`mt-2`,children:[s.brand?.toUpperCase()??`Card`,` ending in `,s.last4??`••••`,s.expMonth&&s.expYear?(0,H.jsxs)(H.Fragment,{children:[`(exp `,Wc(s.expMonth,s.expYear),`)`]}):null,s.status?(0,H.jsxs)(H.Fragment,{children:[`—`,` `,(0,H.jsx)(yo,{variant:Hc(s.status),children:Uc(s.status)})]}):null]}),i&&(0,H.jsx)(`div`,{className:`mt-2 mb-6`,children:(0,H.jsx)(_,{variant:`defaultOutline`,type:`button`,onClick:u,children:`Replace Payment Method`})})]}):i?(0,H.jsx)(Bc,{onSaveStateForBillingRedirect:t,onPaymentAdded:d}):(0,H.jsx)(`div`,{children:`This org doesn't have a payment method, and you don't have access to add one. Please contact your administrator.`})}function Kc({clusterId:e,isPending:t,onGoBackToDetails:n,onSaveStateForBillingRedirect:r,onSubmit:i,organizationId:a,selectedPlan:o}){let{data:s}=M(hs(a)),c=s?.billing,l=s?.type===gs,u=l||c?.paymentMethod?.status===Vc.PASS,[f,p]=(0,V.useState)(!1),m=Q(o?.planLimits?.expirationMonths)&&o.planLimits.expirationMonths<1e3&&o.planLimits.expirationMonths,h=(0,H.jsx)(H.Fragment,{children:(0,H.jsxs)(`div`,{className:`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end mt-3 max-w-xl`,children:[(0,H.jsxs)(_,{type:`button`,variant:`defaultOutline`,className:`rounded-full`,disabled:t,onClick:n,children:[(0,H.jsx)(un,{}),` Back to Details`]}),(0,H.jsxs)(_,{disabled:t||!u||f,type:`submit`,variant:`submit`,className:`rounded-full`,onClick:i,children:[e?`Edit Cluster`:`Create New Cluster`,` `,(0,H.jsx)(dn,{})]})]})});if(l)return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`ul`,{className:`list-disc ml-6 max-w-lg`,children:[(0,H.jsx)(`li`,{children:`Reminder: you will be billed at your contracted rate for any additional infrastructure.`}),(0,H.jsxs)(`li`,{children:[`Your account representative can work with you to sort out more precise details, and to help accomplish your objectives with this cluster. `,(0,H.jsx)(zo,{overEmail:!0}),`, we are here to help.`]})]}),h]});let g=m&&`, or ${d(m,`month`,`months`)} elapse`;return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`ul`,{className:`list-disc ml-6 mb-6`,children:[(0,H.jsx)(`li`,{children:`You will be billed for this cluster today, and will receive a license for the block of usage you've requested.`}),e&&(0,H.jsx)(`li`,{children:`If you scale up, you'll be charged for the additional blocks you've purchased now, and your next auto renewal will be for all purchased blocks.`}),e&&(0,H.jsx)(`li`,{children:`If you remove a region, that region's usage block will not be used anymore (because it is specific to that region).`}),(0,H.jsxs)(`li`,{children:[`When that block is used up`,g,`, you will be automatically renewed.`]}),(0,H.jsx)(`li`,{children:`While refunds are not available, we’d be happy to assist you with troubleshooting.`}),(0,H.jsxs)(`li`,{children:[`We would love to work with you to sort out more precise details, and to help accomplish your objectives with this cluster. `,(0,H.jsx)(zo,{overEmail:!0}),`, we are here to help.`]})]}),(0,H.jsx)(`p`,{className:`text-muted-foreground text-sm mb-6`,children:`Payment method:`}),(0,H.jsx)(Gc,{onSaveStateForBillingRedirect:r,onReplacingPaymentMethod:p}),h]})}var qc=/(^$|^(?:localhost|(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}|(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,})$)/i,Jc=65535,Yc=k().max(20,`Must be at most 20 characters long.`).regex(/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/,`Can only contain lowercase letters, numbers and dashes. Must not start or end with a dash.`),Xc=O({clusterName:k().nonempty(`Please enter a cluster name.`).max(255,`Cluster name cannot be longer than 255 characters long.`),abbreviatedName:b([w(``),te(),Yc]).optional(),fqdn:k().regex(qc,`Please enter a valid host name without the port or any path.`).optional(),version:k().optional(),deploymentDescription:k().nonempty(`Please select a deployment tier.`),performanceDescription:k().nonempty(`Please select a performance tier.`),regionPlans:C(O({regionName:k().nonempty(`Please select a region.`),latencyDescription:k().nonempty(`Please select a latency tier.`)})).max(50,{error:`A maximum of 50 regions can be selected for each cluster. `}),instances:C(O({secure:ne([`true`,`false`]),fqdn:k().nonempty(`Please enter the host name of your instance.`).regex(qc,`Please enter a valid host name without the port or any path.`),port:x().min(0,`Positive thinking only, please.`).max(Jc,`That port number is too high.`).optional()})).max(100,{error:`A maximum of 100 instances can be added to each cluster.`}),skipToBilling:E().optional(),skipGtmWait:E().optional(),sourceClusterId:k().optional()});function Zc({calculatedNames:e,disabled:t,form:n}){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(K,{control:n.control,name:`abbreviatedName`,render:({field:n})=>(0,H.jsxs)(q,{className:`col-span-3`,children:[(0,H.jsx)(J,{className:`pb-1`,children:`Host Name`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{...n,type:`text`,maxLength:Yc.maxLength,autoCapitalize:`none`,autoComplete:`off`,autoCorrect:`off`,placeholder:e.suggestedAbbreviatedName,disabled:t})}),(0,H.jsx)(Y,{})]})}),(0,H.jsxs)(q,{className:`col-span-3 `,children:[(0,H.jsx)(J,{className:`pb-1`,children:`Full Host Name`}),(0,H.jsx)(G,{children:(0,H.jsx)(`span`,{children:e.fullHostName})}),(0,H.jsx)(Y,{})]})]})}function Qc({className:e}={}){return(0,H.jsx)(`div`,{className:(0,V.useMemo)(()=>T(`animate-pulse h-2.5 bg-gray-200 rounded-full dark:bg-gray-700`,!e?.includes(`mb-`)&&`mb-4 `,!e?.includes(`w-`)&&`w-48 `,e),[e])})}function $c({...e}){return(0,H.jsx)(Ve,{"data-slot":`select`,...e})}function el({...e}){return(0,H.jsx)(Ue,{"data-slot":`select-group`,...e})}function tl({...e}){return(0,H.jsx)(it,{"data-slot":`select-value`,...e})}function nl({className:e,children:t,...n}){return(0,H.jsxs)(nt,{"data-slot":`select-trigger`,className:f(`border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive flex h-9 w-fit items-center justify-between gap-2 rounded-md border bg-white text-foreground dark:bg-grey-700 dark:text-white px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 *:data-[slot=select-value]:truncate *:data-[slot=select-value]:block *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),...n,children:[t,(0,H.jsx)(Bt,{asChild:!0,children:(0,H.jsx)(Sn,{className:`opacity-50 size-4`})})]})}function rl({className:e,children:t,position:n=`popper`,...r}){return(0,H.jsx)(kt,{children:(0,H.jsxs)(st,{"data-slot":`select-content`,className:f(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border shadow-md`,n===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`,e),position:n,...r,children:[(0,H.jsx)(al,{}),(0,H.jsx)(Je,{className:f(`p-1`,n===`popper`&&`h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1`),children:t}),(0,H.jsx)(ol,{})]})})}function il({className:e,...t}){return(0,H.jsx)(rt,{"data-slot":`select-label`,className:f(`px-2 py-1.5 text-sm font-medium`,e),...t})}function $({className:e,children:t,...n}){return(0,H.jsxs)(lt,{"data-slot":`select-item`,className:f(`focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2`,e),...n,children:[(0,H.jsx)(Ge,{children:t}),(0,H.jsx)(`span`,{className:`absolute right-2 flex size-3.5 items-center justify-center`,children:(0,H.jsx)(Ke,{children:(0,H.jsx)(xn,{className:`size-4`})})})]})}function al({className:e,...t}){return(0,H.jsx)(tt,{"data-slot":`select-scroll-up-button`,className:f(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,H.jsx)(wn,{className:`size-4`})})}function ol({className:e,...t}){return(0,H.jsx)(Ot,{"data-slot":`select-scroll-down-button`,className:f(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,H.jsx)(Sn,{className:`size-4`})})}var sl={Colocated:`Shared infrastructure for optimized value`,Dedicated:`Dedicated infrastructure for consistent performance`,"Self-Hosted":`Your own infrastructure`};function cl({availableDeploymentTypes:e,disabled:t,form:n}){return(0,H.jsx)(K,{control:n.control,name:`deploymentDescription`,render:({field:r})=>(0,H.jsxs)(q,{className:`col-span-3`,children:[(0,H.jsx)(J,{className:`pb-1`,children:`Harper Deployment`}),(0,H.jsx)(V.Suspense,{fallback:(0,H.jsx)(Qc,{}),children:(0,H.jsx)(G,{children:(0,H.jsxs)($c,{...r,disabled:t,onValueChange:e=>{r.onChange(e),n.trigger()},children:[(0,H.jsx)(nl,{className:`w-full h-auto`,children:(0,H.jsx)(tl,{placeholder:`Choose Tier`})}),(0,H.jsx)(rl,{children:(0,H.jsx)(el,{children:e.map(e=>(0,H.jsxs)($,{value:e,children:[(0,H.jsx)(`dt`,{className:`text-left font-bold text-sm/6`,children:e}),sl[e]&&(0,H.jsx)(`dd`,{className:`font-light`,children:sl[e]})]},e))})})]})})}),(0,H.jsx)(Y,{})]})})}function ll({disabled:e,form:t}){return(0,H.jsx)(K,{control:t.control,name:`fqdn`,render:({field:t})=>(0,H.jsxs)(q,{className:`md:col-span-6 col-span-3`,children:[(0,H.jsx)(J,{className:`pb-1`,children:`Optional Cluster Load Balancer Host Name`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{...t,type:`text`,autoCapitalize:`none`,autoComplete:`off`,autoCorrect:`off`,placeholder:`example.your-company.com`,disabled:e})}),(0,H.jsx)(Y,{})]})})}function ul({className:e,disabled:t,form:n}){return(0,H.jsx)(K,{control:n.control,name:`clusterName`,render:({field:n})=>(0,H.jsxs)(q,{className:e,children:[(0,H.jsx)(J,{className:`pb-1`,children:`Cluster Name`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{autoFocus:!0,type:`text`,maxLength:Xc.shape.clusterName.maxLength,autoCapitalize:`words`,disabled:t,...n})}),(0,H.jsx)(Y,{})]})})}function dl({availablePerformanceDescriptions:e,form:t,selectedDeployment:n}){return(0,H.jsx)(K,{control:t.control,name:`performanceDescription`,render:({field:r})=>(0,H.jsxs)(q,{className:`col-span-3`,children:[(0,H.jsxs)(J,{className:`pb-1`,children:[n.startsWith(`Self`)?`Support`:`Performance`,` & Usage`]}),(0,H.jsx)(V.Suspense,{fallback:(0,H.jsx)(Qc,{}),children:(0,H.jsx)(G,{children:(0,H.jsxs)($c,{...r,onValueChange:e=>{r.onChange(e),t.trigger()},disabled:!e?.length,children:[(0,H.jsx)(nl,{className:`w-full h-auto`,children:(0,H.jsx)(tl,{placeholder:`Choose Tier`})}),(0,H.jsx)(rl,{children:(0,H.jsx)(el,{children:e.map(e=>(0,H.jsxs)($,{value:e.performanceTier,children:[(0,H.jsxs)(`dt`,{className:`text-left font-bold text-sm/6 flex items-center gap-2`,children:[e.name,e.isPremium&&(0,H.jsx)(yo,{children:`Premium`})]}),e.description&&(0,H.jsx)(`dd`,{className:`text-left font-light`,children:e.description})]},e.name))})})]})})}),(0,H.jsx)(Y,{})]})})}function fl({className:e,...t}){let{formDescriptionId:n}=$i();return(0,H.jsx)(`p`,{"data-slot":`form-description`,id:n,className:f(`text-muted-foreground text-sm`,e),...t})}function pl({className:e,form:t}){return(0,H.jsx)(K,{control:t.control,name:`skipGtmWait`,render:({field:t})=>(0,H.jsxs)(q,{className:e,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`checkbox`,className:`w-4 h-4 cursor-pointer`,checked:t.value||!1,onChange:t.onChange,onBlur:t.onBlur,name:t.name,ref:t.ref})}),(0,H.jsx)(J,{className:`cursor-pointer`,children:`Immediate upgrade and restart`})]}),(0,H.jsx)(fl,{children:`Apply changes immediately without waiting for each instance to be taken out of the load balancer (faster, but potentially less safe).`})]})})}function ml({className:e,disabled:t,form:n,harperVersions:r}){return r?.value?.length?(0,H.jsx)(K,{control:n.control,name:`version`,render:({field:i})=>(0,H.jsxs)(q,{className:e,children:[(0,H.jsx)(J,{className:`pb-1`,children:`Harper Version`}),(0,H.jsx)(V.Suspense,{fallback:(0,H.jsx)(Qc,{}),children:(0,H.jsx)(G,{children:(0,H.jsxs)($c,{...i,disabled:t,onValueChange:e=>{i.onChange(e),n.trigger()},children:[(0,H.jsx)(nl,{className:`w-full h-auto`,children:(0,H.jsx)(tl,{placeholder:`Choose Version`})}),(0,H.jsx)(rl,{children:(0,H.jsx)(el,{children:r?.value.map(e=>(0,H.jsxs)($,{value:e.version,children:[e.version,` `,(0,H.jsx)(`span`,{className:`font-light opacity-50`,children:e.name})]},e.version))})})]})})}),(0,H.jsx)(Y,{})]})}):null}var hl=new RegExp(/^\d+/);function gl(e,t){let n=parseInt(e.match(hl)?.[0]||`0`,10),r=parseInt(t.match(hl)?.[0]||`0`,10);return n===r?0:n>r?1:-1}var _l=[`B`,`KB`,`MB`,`GB`,`TB`,`PB`,`EB`,`ZB`,`YB`],vl=[`secs`,`mins`,`hrs`],yl={bytes:1e3,secs:60};function bl(e,t,n){let r,i;switch(t){case`bytes`:r=_l,i=yl.bytes;break;case`secs`:r=vl,i=yl.secs;break;default:return e}let a=r.indexOf(n);return a===-1?e:e/i**a}function xl(e,t){let n,r;switch(e){case`bytes`:n=_l,r=yl.bytes;break;case`secs`:n=vl,r=yl.secs;break;default:return e}let i=0;for(;t>=r&&i<n.length-1;)t/=r,i++;return n[i]}function Sl(e,t=1){let n=e*t,r=xl(`bytes`,n),i=bl(n,`bytes`,r);return`${new Intl.NumberFormat().format(Math.round(i))} ${r}`}function Cl(e){return new Intl.NumberFormat().format(e)}var wl=[`K`,`M`,`B`,`T`,`Qa`,`Qi`,`Sx`,`Sp`,`Oc`,`No`,`Dc`];function Tl(e){let t=1e3,n=e;if(Math.abs(n)<t)return String(Math.round(n));let r=-1;do n/=t,++r;while(Math.round(Math.abs(n)*10)/10>=t&&r<wl.length-1);return`${Cl(Math.round(n))} ${wl[r]}`}function El(e,t){let n=Object.values(t).flatMap(e=>Object.values(e)).map(e=>e.purchasedBlockMultiplier??1),r=Math.max(...n,1),i=Math.min(...n,r),a=t=>{let n=e.map(t).filter(e=>typeof e==`number`&&e>0);return n.length?{min:Math.min(...n),max:Math.max(...n)}:{min:0,max:0}},o=a(e=>e.planLimits?.readsPerMinuteCount),s=a(e=>e.planLimits?.totalReadCount);return{readRate:{min:o.min*i,max:o.max*r},totalReads:{min:s.min*i,max:s.max*r},writeRate:a(e=>e.planLimits?.writesPerMinuteCount),totalWrites:a(e=>e.planLimits?.totalWriteCount)}}function Dl(e,{min:t,max:n}){if(e<=0)return 0;let r=Math.max(Math.min(t,e),1),i=Math.max(n,e);if(i<=r)return 1;let a=(Math.log(e)-Math.log(r))/(Math.log(i)-Math.log(r));return Math.min(Math.max(a,0),1)}function Ol({selectedPlan:e,selectedRegion:t,usageScale:n,isEnterprise:r,cloudProvider:i}){let[a,o]=(0,V.useState)(!1),s=(0,V.useCallback)(()=>{o(!a)},[a,o]),c=e?.planLimits,l=e?.resourcesPerInstance,u=i&&e?.cloudInstanceTypes?.[i],p=Q(c?.expirationMonths)&&c.expirationMonths<1e3&&c.expirationMonths,m=t?.purchasedBlockMultiplier??1,h=(0,V.useMemo)(()=>c?[Q(c.totalReadCount)&&{label:`Total Reads`,value:Tl(c.totalReadCount*m)},Q(c.totalReadsBytes)&&{label:`Total Read Transfer`,value:`${Sl(c.totalReadsBytes*m)}`},Q(c.readsPerMinuteCount)&&{label:`Read Rate`,value:`${Tl(c.readsPerMinuteCount*60*m)}/hr`},Q(c.readsPerMinuteBytes)&&{label:`Read Bandwidth`,value:`${Sl(c.readsPerMinuteBytes*60*m)}/hr`},Q(c.totalWriteCount)&&{label:`Total Writes`,value:Tl(c.totalWriteCount)},Q(c.totalWritesBytes)&&{label:`Total Write Transfer`,value:`${Sl(c.totalWritesBytes)}`},Q(c.writesPerMinuteCount)&&{label:`Write Rate`,value:`${Tl(c.writesPerMinuteCount*60)}/hr`},Q(c.writesPerMinuteBytes)&&{label:`Write Bandwidth`,value:`${Sl(c.writesPerMinuteBytes*60)}/hr`},Q(c.totalRealTimeMessageDeliveries)&&{label:`Total Real-Time Messages`,value:`${Tl(c.totalRealTimeMessageDeliveries*m)} messages`},Q(c.totalRealTimeMessageDeliveryBytes)&&{label:`Total Real-Time Message Transfer`,value:`${Sl(c.totalRealTimeMessageDeliveryBytes*m)}`},Q(c.realTimeMessageDeliveriesPerMinute)&&{label:`Real-Time Message Rate`,value:`${Tl(c.realTimeMessageDeliveriesPerMinute*60*m)}/hr`},Q(c.realTimeMessageDeliveryBytesPerMinute)&&{label:`Real-Time Message Bandwidth`,value:`${Sl(c.realTimeMessageDeliveryBytesPerMinute*60*m)}/hr`},Q(c.tlsHandshakes)&&{label:`TLS Handshakes`,value:`${Tl(c.tlsHandshakes*60*m)}`},Q(c.applicationComputeHours)&&{label:`Application Compute Hours`,value:`${Tl(c.applicationComputeHours*m)}`},!!l&&Q(l.storageGb)&&{label:`Storage`,value:`${Sl(l.storageGb*1e9)}`},!!l&&Q(l.cpuCores)&&{label:`Maximum CPU Cores`,value:`${Tl(l.cpuCores)}`},!!l&&Q(l.memoryMb)&&{label:`Memory`,value:`${l.memoryMb/1024} GB`},!!u&&{label:`Cloud Instance Type`,value:u},!!p&&{label:`Expiration`,value:d(p,`month`,`months`)},!!t?.id&&{label:`Region ID`,value:t.id},!!e?.id&&{label:`Plan ID`,value:e.id}].filter(Lr):[],[p,t,e,m]);if(!c)return``;if(!Q(c.totalReadCount))return`This plan has no usage limits.`;let g=r?`for the contracted rate`:`for the price listed above`,v=p?` in ${d(p,`month`,`months`)} or`:``,y=Q(c.readsPerMinuteCount)?c.readsPerMinuteCount*m:0,b=Q(c.writesPerMinuteCount)?c.writesPerMinuteCount:0,x=c.totalReadCount*m,S=Q(c.totalWriteCount)?c.totalWriteCount:0,C=[y>0&&{icon:Hn,label:`Read Rate`,value:`${Tl(y)}/min`,fill:Dl(y,n.readRate)},x>0&&{icon:pn,label:`Total Reads`,value:Tl(x),fill:Dl(x,n.totalReads)},b>0&&{icon:Hn,label:`Write Rate`,value:`${Tl(b)}/min`,fill:Dl(b,n.writeRate)},S>0&&{icon:cn,label:`Total Writes`,value:Tl(S),fill:Dl(S,n.totalWrites)},!!p&&{icon:yn,label:`License Term`,value:d(p,`month`,`months`)}].filter(Lr);return(0,H.jsxs)(q,{className:`basis-full`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-x-2`,children:[(0,H.jsx)(J,{onClick:s,className:`cursor-pointer`,children:`Usage block included with this plan`}),(0,H.jsxs)(_,{type:`button`,variant:`link`,className:`text-foreground`,onClick:s,children:[`Learn More `,a?(0,H.jsx)(ln,{}):(0,H.jsx)(dn,{})]})]}),(0,H.jsx)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-3 lg:grid-cols-5`,children:C.map(e=>(0,H.jsx)(kl,{icon:e.icon,label:e.label,value:e.value,fill:e.fill},e.label))}),(0,H.jsx)(G,{children:(0,H.jsxs)(`dl`,{className:f(`divide-y divide-border rounded-md overflow-hidden transition-[max-height] duration-200 ease-in`,a?`max-h-fit border border-border`:`max-h-0`),children:[(0,H.jsxs)(`div`,{className:`text-sm px-4 py-5 leading-relaxed text-muted-foreground`,children:[`This plan licenses Harper for the usage limits below, `,g,`. The usage license expires`,v,` `,`when any usage limit is reached. New usage blocks are automatically purchased/billed as blocks are consumed.`]}),h.map((e,t)=>(0,H.jsxs)(`div`,{className:f(`px-4 py-1 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-3`,t%2==0&&`bg-muted dark:bg-grey-700`),children:[(0,H.jsx)(`dt`,{className:`text-sm/6 font-medium text-foreground`,children:e.label}),(0,H.jsx)(`dd`,{className:`mt-1 text-sm/6 text-muted-foreground sm:col-span-2 sm:mt-0`,children:e.value})]},e.label))]})}),(0,H.jsx)(Y,{})]})}function kl({icon:e,label:t,value:n,fill:r}){return(0,H.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-md border border-border bg-background/50 p-3`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-1.5 text-muted-foreground`,children:[(0,H.jsx)(e,{className:`size-4 shrink-0`}),(0,H.jsx)(`span`,{className:`text-xs font-medium`,children:t})]}),(0,H.jsx)(`span`,{className:`text-lg font-bold text-foreground tabular-nums`,children:n}),r!==void 0&&(0,H.jsx)(`div`,{className:`h-1.5 w-full overflow-hidden rounded-full bg-sky-500/15`,children:(0,H.jsx)(`div`,{className:`h-full rounded-full bg-sky-500 transition-[width] duration-300`,style:{width:`${Math.max(Math.min(r,1)*100,4)}%`}})})]})}function Al({control:e,fieldArray:t,form:n,index:r,regionNameToLatencyToRegion:i,premiumOnlyRegions:a,usageScale:o,selectedPlan:s,isEnterprise:c,cloudProvider:l}){let u=(0,V.useMemo)(()=>Object.keys(i).sort(),[i]),d=n.watch(`deploymentDescription`)?.startsWith(`Dedicated`),f=n.watch(`regionPlans.${r}.regionName`),p=n.watch(`regionPlans.${r}.latencyDescription`),m=(0,V.useMemo)(()=>Object.keys(i[f]||{}).sort(gl).reverse(),[i,f]),h=s?.allowedRegionIds,g=(0,V.useCallback)(e=>!h?.length||Object.values(i[e]||{}).some(e=>h.includes(e.id)),[h,i]),v=(0,V.useCallback)(e=>{if(!h?.length)return!0;let t=i[f]?.[e]?.id;return!t||h.includes(t)},[h,i,f]);(0,V.useEffect)(function(){if(f&&m?.length&&!m?.includes(p)){let e=p?.split(` `)[0].toLowerCase(),t=m.find(t=>e?t.split(` `)[0].toLowerCase()===e:!0)||m[0];n.setValue(`regionPlans.${r}.latencyDescription`,t),n.trigger()}},[m,n,r,p,f]);let y=(0,V.useCallback)(()=>{t?.remove(r),n.trigger()},[t,n,r]);return(0,H.jsxs)(`div`,{className:`md:col-span-6 col-span-3 py-2 pl-4 border-l-4 border-border gap-6 flex flex-wrap items-start`,children:[(0,H.jsx)(K,{control:e,name:`regionPlans.${r}.regionName`,render:({field:e})=>(0,H.jsxs)(q,{className:`flex-1`,children:[(0,H.jsxs)(J,{className:`flex items-center gap-1.5`,children:[(0,H.jsx)(tr,{className:`size-4 shrink-0`}),`Region `,t.fields.length>1?r+1:``]}),(0,H.jsx)(G,{children:(0,H.jsxs)($c,{onValueChange:t=>{e.onChange(t),n.trigger()},...e,children:[(0,H.jsx)(nl,{className:`w-full`,children:(0,H.jsx)(tl,{placeholder:`Choose Region`})}),(0,H.jsx)(rl,{children:(0,H.jsx)(el,{children:u.map(e=>(0,H.jsx)($,{value:e,disabled:!g(e),children:(0,H.jsxs)(`span`,{className:`flex items-center gap-2`,children:[e,a.regionNames.has(e)&&(0,H.jsx)(yo,{children:`Premium`})]})},e))})})]})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:e,name:`regionPlans.${r}.latencyDescription`,render:({field:e})=>(0,H.jsxs)(q,{className:`flex-1`,children:[(0,H.jsxs)(J,{children:[`Estimated `,d?`P95`:`P90`,` Latency, Distribution`]}),(0,H.jsx)(G,{children:(0,H.jsxs)($c,{onValueChange:t=>{e.onChange(t),n.trigger()},...e,disabled:!m?.length,children:[(0,H.jsx)(nl,{className:`w-full`,children:(0,H.jsx)(tl,{placeholder:`Choose Latency Tier`})}),(0,H.jsx)(rl,{children:(0,H.jsx)(el,{children:m.map(e=>(0,H.jsx)($,{value:e,disabled:!v(e),children:(0,H.jsxs)(`span`,{className:`flex items-center gap-2`,children:[e,(()=>{let t=i[f]?.[e]?.id;return t&&a.regionIds.has(t)&&(0,H.jsx)(yo,{children:`Premium`})})()]})},e))})})]})}),(0,H.jsx)(Y,{})]})}),t?.fields?.length&&t?.fields?.length>1&&(0,H.jsx)(`div`,{className:`flex-none mt-6`,children:(0,H.jsxs)(_,{type:`button`,variant:`destructiveOutline`,size:`sm`,onClick:y,children:[(0,H.jsx)(Dr,{}),` `,(0,H.jsx)(`span`,{className:`sr-only`,children:`Remove`})]})}),(0,H.jsx)(Ol,{selectedPlan:s,selectedRegion:i[f]?.[p],usageScale:o,isEnterprise:c,cloudProvider:l})]})}function jl({form:e,regionLocations:t,regionNameToLatencyToRegion:n,premiumOnlyRegions:r,usageScale:i,selectedPlan:a,totalPrice:o,isEnterprise:s,cloudProvider:c}){let l=e.watch(`regionPlans`),u=At({control:e.control,name:`regionPlans`}),d=(0,V.useMemo)(()=>{let e=l.map(e=>n?.[e.regionName]?.[e.latencyDescription]?.region);return o?t?.find(t=>!e.includes(t.region)):null},[t,n,l,o]),f=(0,V.useCallback)(()=>{d&&(u.append({regionName:d.region,latencyDescription:d.latencyDescription}),e.trigger())},[e,d,u]);return t?.length?(0,H.jsxs)(H.Fragment,{children:[u.fields.map((t,o)=>(0,H.jsx)(Al,{control:e.control,fieldArray:u,form:e,index:o,regionNameToLatencyToRegion:n,premiumOnlyRegions:r,usageScale:i,selectedPlan:a,isEnterprise:s,cloudProvider:c},t.id)),d&&(0,H.jsx)(`div`,{className:`md:col-span-6 col-span-3`,children:(0,H.jsxs)(_,{type:`button`,variant:`positiveOutline`,className:`rounded-full`,onClick:f,children:[(0,H.jsx)(cr,{}),`Add Additional Region Usage`]})})]}):(0,H.jsx)(`div`,{className:`md:col-span-6 col-span-3`,children:(0,H.jsx)(Mr,{className:`mt-0 m-0`,title:`No Regions Available`,showReturnToHome:!1,error:{message:(0,H.jsxs)(H.Fragment,{children:[`The deployment type you selected currently has no available regions. Please try a different deployment type, try again later, or `,(0,H.jsx)(zo,{}),`.`]})}})})}function Ml({control:e,fieldArray:t,form:r,index:i}){let a=(0,V.useCallback)(()=>{t?.remove(i)},[t,i]);return(0,H.jsxs)(`div`,{className:`md:col-span-6 col-span-3 p-4 rounded-md bg-accent gap-6 flex flex-wrap items-start`,children:[(0,H.jsx)(K,{control:e,name:`instances.${i}.secure`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsxs)(J,{children:[`Instance `,t.fields.length>1?i+1:``]}),(0,H.jsx)(G,{children:(0,H.jsxs)($c,{...e,onValueChange:t=>{e.onChange(t),r.trigger()},children:[(0,H.jsx)(nl,{className:`w-full`,children:(0,H.jsx)(tl,{placeholder:`https://`})}),(0,H.jsx)(rl,{children:(0,H.jsxs)(el,{children:[(0,H.jsx)($,{value:`true`,children:`https://`}),(0,H.jsx)($,{value:`false`,children:`http://`})]})})]})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:e,name:`instances.${i}.fqdn`,render:({field:e})=>(0,H.jsxs)(q,{className:`flex-3`,children:[(0,H.jsx)(J,{children:`Host Name`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{...e,type:`text`,autoCapitalize:`none`,autoComplete:`off`,autoCorrect:`off`,onChange:t=>{e.onChange(t);let n=t.target.value,a=n===`localhost`||n===`127.0.0.1`,o=r.getFieldState(`instances.${i}.secure`);a&&!o.isDirty&&r.setValue(`instances.${i}.secure`,`false`)}})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:e,name:`instances.${i}.port`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{children:`Operations API Port`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{...e,type:`number`,min:0,max:Jc,autoCapitalize:`none`,autoComplete:`off`,autoCorrect:`off`,placeholder:String(n),onChange:t=>{e.onChange(t.target.value?parseInt(t.target.value,10):void 0),r.trigger()}})}),(0,H.jsx)(Y,{})]})}),t?.fields?.length&&t?.fields?.length>1&&(0,H.jsx)(`div`,{className:`flex-none mt-6`,children:(0,H.jsxs)(_,{type:`button`,variant:`destructiveOutline`,size:`sm`,onClick:a,children:[(0,H.jsx)(Dr,{}),` `,(0,H.jsx)(`span`,{className:`sr-only`,children:`Remove`})]})})]})}function Nl({form:e}){let t=At({control:e.control,name:`instances`}),r=(0,V.useCallback)(()=>{t.append({secure:`true`,fqdn:``,port:n})},[t]);return(0,H.jsxs)(H.Fragment,{children:[t.fields.map((n,r)=>(0,H.jsx)(Ml,{control:e.control,fieldArray:t,form:e,index:r},n.id)),(0,H.jsx)(`div`,{className:`md:col-span-6 col-span-3`,children:(0,H.jsxs)(_,{type:`button`,variant:`positiveOutline`,className:`rounded-full`,onClick:r,children:[(0,H.jsx)(cr,{}),`Add Instance`]})})]})}function Pl(e,t){return!e.allowedRegionIds?.length||e.allowedRegionIds.includes(t)}function Fl(e,t){let n=new Set,r=new Set;if(!e.length)return{regionNames:n,regionIds:r};let i=Math.min(...e.map(e=>e.planLevel??0)),a=e.filter(e=>(e.planLevel??0)===i),o=e.filter(e=>(e.planLevel??0)>i);if(!o.length)return{regionNames:n,regionIds:r};for(let[e,i]of Object.entries(t)){let t=!1,s=!0;for(let e of Object.values(i)){let n=a.some(t=>Pl(t,e.id)),i=o.some(t=>Pl(t,e.id));!n&&!i||(t=!0,n?s=!1:r.add(e.id))}t&&s&&n.add(e)}return{regionNames:n,regionIds:r}}function Il({calculatedNames:e,clusterId:t,deploymentToPerformanceToPlan:n,form:r,harperVersions:i,isEnterprise:a,cloudProvider:o,isPending:s,mode:c,partialUpgrade:l,regionLocations:u,regionNameToLatencyToRegion:d,selectedDeployment:f,selectedPerformance:p,selectedPlan:m,totalPrice:h}){let{isDirty:g,isValid:v}=Ct(),y=(0,V.useMemo)(()=>{let e=n[f]||{},t=Object.values(e).map(e=>e.planLevel??0),r=t.length?Math.min(...t):0;return Object.keys(e).map(t=>{let n=(e[t].planLevel??0)>r,i=t.slice(0,-1).split(`(`);if(i.length>1)return{performanceTier:t,name:i[0],description:i[1],isPremium:n};let a=t.split(` for `);return a.length>1?{performanceTier:t,name:a[0],description:`For `+a[1],isPremium:n}:{performanceTier:t,name:t,description:``,isPremium:n}})},[n,f]),b=(0,V.useMemo)(()=>Object.keys(n).sort(),[n]),x=(0,V.useMemo)(()=>Fl(Object.values(n[f]||{}),d),[n,d,f]),S=(0,V.useMemo)(()=>El(Object.values(n).flatMap(e=>Object.values(e)),d),[n,d]);(0,V.useEffect)(function(){y?.length&&!y.find(e=>e.performanceTier===p)&&(r.setValue(`performanceDescription`,y[0].performanceTier),r.trigger())},[f,p,y,r]);let C=f===`Self-Hosted`,ee=(0,H.jsx)(Z,{className:`mt-3 mb-12`,children:(0,H.jsxs)(_,{type:`submit`,variant:`submit`,className:`rounded-full`,disabled:s||t&&!g&&!(c===`version`&&l)||!v,children:[c!==`version`&&h>0?`Confirm Payment Details`:t?`Edit Cluster`:`Create New Cluster`,(0,H.jsx)(dn,{})]})});return c===`version`?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`div`,{className:`grid grid-cols-3 items-start gap-6 text-foreground md:grid-cols-6`,children:[(0,H.jsx)(ul,{className:i?.value?.length?`col-span-3`:`md:col-span-6 col-span-3`,disabled:!0,form:r}),(0,H.jsx)(ml,{className:`col-span-3`,form:r,harperVersions:i}),(0,H.jsx)(pl,{className:`col-span-3 md:col-span-6`,form:r}),l&&(0,H.jsxs)(`p`,{className:`col-span-3 md:col-span-6 max-w-prose text-xs font-light text-amber-600 dark:text-amber-400`,children:[l.behindCount,` of `,l.total,` instances`,` `,l.behindCount===1?`is`:`are`,` still on an older version. Re-run the upgrade to bring`,` `,l.behindCount===1?`it`:`them`,` up to `,l.latest,`.`]})]}),ee]}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`div`,{className:`grid grid-cols-3 items-start gap-6 text-foreground md:grid-cols-6`,children:[(0,H.jsx)(ul,{className:i?.value?.length?`col-span-3`:`md:col-span-6 col-span-3`,disabled:!!t,form:r}),(0,H.jsx)(ml,{className:`col-span-3`,disabled:!!t,form:r,harperVersions:i}),C?(0,H.jsx)(ll,{form:r,disabled:!!t}):(0,H.jsx)(Zc,{form:r,calculatedNames:e,disabled:!!t}),(0,H.jsx)(cl,{form:r,availableDeploymentTypes:b}),(0,H.jsx)(dl,{availablePerformanceDescriptions:y,form:r,selectedDeployment:f}),C?(0,H.jsx)(Nl,{form:r}):(0,H.jsx)(jl,{form:r,regionLocations:u,regionNameToLatencyToRegion:d,premiumOnlyRegions:x,usageScale:S,selectedPlan:m,totalPrice:h,isEnterprise:a,cloudProvider:o}),t&&!C&&(0,H.jsx)(pl,{className:`col-span-3 md:col-span-6`,form:r})]}),ee]})}function Ll(e){let{fqdn:t}=e,{secure:r,port:i}=e;return i||=n,i===443&&r===`false`&&(r=`true`),i===80&&r===`true`&&(r=`false`),`${r===`true`?`https`:`http`}://${t}${i===443||i===80?``:`:`+i}`.toLowerCase()}function Rl(e,t,n){let r=e.find(e=>(n?!!e.priceUsd:!e.priceUsd)&&e.deploymentType===`colocated`)||e.find(e=>e.deploymentType===`colocated`)||e[0],i=r?.allowedRegionIds;if(r){let e=i?t.filter(e=>i.includes(e.id)):t,n=e.find(e=>e.region===`US`)||e[0];if(n)return{deploymentDescription:r.deploymentDescription,performanceDescription:r.performanceDescription,regionPlans:[{regionName:n.region,latencyDescription:n.latencyDescription}]}}return null}function zl(e,t,n){if(t&&n){let r=e.getValues();if(!r.deploymentDescription||!r.performanceDescription||!r.regionPlans.length){let i=Rl(t,n);i&&(!r.deploymentDescription&&!r.performanceDescription&&(e.setValue(`deploymentDescription`,i.deploymentDescription),e.setValue(`performanceDescription`,i.performanceDescription)),r.regionPlans.length||e.setValue(`regionPlans`,i.regionPlans))}}}function Bl({price:e}){return(0,H.jsx)(`span`,{className:`text-4xl`,children:new Intl.NumberFormat(`en-US`,{style:`currency`,currency:`USD`}).formatToParts(e||0).map((e,t)=>(0,H.jsx)(Vl,{type:e.type,value:e.value},t))})}function Vl({type:e,value:t}){switch(e){case`currency`:case`decimal`:case`fraction`:return(0,H.jsx)(`sup`,{className:`font-light text-xl`,children:t});default:return t}}function Hl({alreadyUsingFree:e,clusterId:t,defaultValues:r,deploymentToPerformanceToPlan:i,harperVersions:a,mode:o,organization:s,organizationId:c,partialUpgrade:l,planTypes:u,regionLocationsColocated:f,regionLocationsDedicated:p,setSavedClusterState:m,startOffOnBilling:h}){let g=je(),_=ae(),v=s?.type===gs,y=s?.channel===`Akamai`?`linode`:void 0,b=de(),{mutate:x,isPending:S}=us(),{mutate:C,isPending:ee}=fs(),[w,E]=(0,V.useState)(h),D=(0,V.useMemo)(()=>es(f?.sort(Jo(`latencyDescription`))||[],`region`,`latencyDescription`),[f]),te=(0,V.useMemo)(()=>es(p?.sort(Jo(`latencyDescription`))||[],`region`,`latencyDescription`),[p]),ne=(0,V.useCallback)((t,n)=>{let r=new Set,a=i?.[t.deploymentDescription]?.[t.performanceDescription];if(t.deploymentDescription===`Self-Hosted`)for(let e=0;e<t.instances.length;e++){let i=Ll(t.instances[e]);r.has(i)?n.addIssue({code:`custom`,path:[`instances.${e}.fqdn`],message:`Every instance url must be unique!`}):r.add(i)}else{a?.priceUsd===0&&e&&n.addIssue({code:`custom`,path:[`performanceDescription`],message:`Only one free cluster is allowed per organization.`});let i=a?.deploymentDescription===`Dedicated`?te:D;for(let e=0;e<t.regionPlans.length;e++){let o=t.regionPlans[e],s=i[o.regionName]?.[o.latencyDescription];r.has(o.regionName)?n.addIssue({code:`custom`,path:[`regionPlans.${e}.regionName`],message:`You can only select a region once!`}):r.add(o.regionName),a?.allowedRegionIds?.length&&s?.id&&(a.allowedRegionIds.includes(s.id)?e>=1&&n.addIssue({code:`custom`,path:[`regionPlans.${e}.regionName`],message:`You can only select one region with this performance tier!`}):vs(a.allowedRegionIds,s.id)?n.addIssue({code:`custom`,path:[`regionPlans.${e}.latencyDescription`],message:`This latency is not available with the selected performance tier!`}):n.addIssue({code:`custom`,path:[`regionPlans.${e}.regionName`],message:`This region is not available with the selected performance tier!`}))}}},[e,D,te,i]),O=z({mode:`onChange`,resolver:R(Xc.superRefine(ne)),defaultValues:r}),[k,re]=(0,V.useState)(!0);(0,V.useEffect)(()=>{k&&r&&(m(null),re(!1))},[r,k,m]);let A=O.watch(`clusterName`),j=O.watch(`abbreviatedName`),ie=O.watch(`deploymentDescription`),oe=O.watch(`performanceDescription`),se=O.watch(`regionPlans`),ce=O.watch(`instances`),M=ie===`Dedicated`?te:D,le=ie===`Dedicated`?p:f;(0,V.useEffect)(function(){let e=O.getValues();ie&&(ie===`Self-Hosted`?(e.abbreviatedName&&O.setValue(`abbreviatedName`,``),e.regionPlans.length&&O.setValue(`regionPlans`,[]),e.instances.length||O.setValue(`instances`,[{secure:`true`,fqdn:``,port:n}])):(e.fqdn&&O.setValue(`fqdn`,``),e.instances.length&&O.setValue(`instances`,[]),e.regionPlans.length||zl(O,u,le)))},[O,u,le,ie]);let ue=(0,V.useMemo)(()=>{let e=_s(ys(A),Yc.maxLength);return{suggestedAbbreviatedName:e,fullHostName:`${j||e}.${s.subdomain||`your-org`}.harperfabric.com`}},[A,j,s]),fe=(0,V.useMemo)(()=>i?.[ie]?.[oe],[i,ie,oe]);(0,V.useEffect)(function(){let e=fe?.allowedRegionIds;if(e?.length&&se?.length===1){let t=se[0],n=M?.[t.regionName]?.[t.latencyDescription];if(!e.includes(n?.id)){let t=le?.filter(t=>e.includes(t.id)),n=t?.find(e=>e.region===`US`)||t?.[0];n&&(O.setValue(`regionPlans.0.regionName`,n.region),O.setValue(`regionPlans.0.latencyDescription`,n.latencyDescription),O.trigger())}}},[fe,se,O,M,le]),(0,V.useEffect)(function(){if(ie!==`Self-Hosted`&&Object.keys(M).length&&se.length)for(let e=0;e<se.length;e++)M[se[e].regionName]||O.setValue(`regionPlans.${e}.regionName`,``)},[O,M,ie,se]);let N=fe?.priceUsd?ie===`Self-Hosted`?ce.length*fe.priceUsd:se.reduce((e,t)=>{let n=M?.[t.regionName]?.[t.latencyDescription];return e+(n?fe.priceUsd*n.instanceCount/2:0)},0):0,P=fe?.planLimits?.expirationMonths,pe=Q(P)&&P<1e3?P:void 0,me=pe?N/pe:N,he=(0,V.useCallback)(({creating:e,deploymentDescription:t})=>L.message(e?`Creating Cluster`:`Updating Cluster`,{description:(0,H.jsx)(cs,{message:`This may take a little bit, hold tight!`,lateMessage:`Still working on it... why don't you grab a coffee, and I'll let you know when it's done?`,duration:t===`Dedicated`?6e4:5e3}),duration:0}),[]),ge=(0,V.useCallback)(async({clusterId:e,sourceClusterId:t,creating:n,toastId:r,isSelfManaged:i})=>{if(t){let e=(await ms(c)).clusters?.find(e=>e.id===t);ao(e?.status)&&await Fo(t)}b.invalidateQueries({queryKey:[c],refetchType:`active`}),n||b.invalidateQueries({queryKey:[e],refetchType:`active`}),_.invalidate(),g(i?{to:`/${c}/${e}/instances`}:n?{to:`/${c}/${e}/starting-up`}:{to:`/${c}/${e}/scaling`}),O.reset(),L.success(n?`Cluster Created`:`Cluster Updated`,{id:r,description:i?void 0:n?`It is being provisioned now.`:`The updates are being provisioned now.`,duration:5e3})},[b,_,g,c,O]),_e=(0,V.useCallback)(async()=>{let e=O.getValues(),n=[],r=i[e.deploymentDescription][e.performanceDescription],a=e.deploymentDescription===`Self-Hosted`;if(a)for(let t of e.instances)n.push({autoRenew:!0,instanceFqdn:t.fqdn,operationsApiPort:t.port||9925,operationsApiSecure:t.secure===`true`,planId:r.id});else for(let t of e.regionPlans){let e=M[t.regionName][t.latencyDescription];n.push({autoRenew:!0,planId:r.id,regionId:e.id})}m(null);let s=he({creating:!t,deploymentDescription:e.deploymentDescription}),l=()=>L.dismiss(s);t?C(o===`version`?{id:t,version:e.version,skipGtmWait:e.skipGtmWait}:{id:t,regionPlans:n,skipGtmWait:e.skipGtmWait},{onSuccess:t=>ge({clusterId:t.id,sourceClusterId:e.sourceClusterId,isSelfManaged:a,creating:!1,toastId:s}),onError:l}):x({abbreviatedName:a?void 0:e.abbreviatedName||ue.suggestedAbbreviatedName,autoRenew:!0,fqdn:a&&e.fqdn||void 0,name:e.clusterName,version:e.version,organizationId:c,regionPlans:n},{onSuccess:t=>ge({clusterId:t.id,sourceClusterId:e.sourceClusterId,isSelfManaged:a,creating:!0,toastId:s}),onError:l})},[ue.suggestedAbbreviatedName,t,i,O,ge,he,c,M,m,C,x]),ve=(0,V.useCallback)(()=>{if(o!==`version`&&N>0){E(!0);return}return _e()},[o,_e,N]),ye=(0,V.useCallback)(e=>{m(e?{clusterId:t,...O.getValues(),skipToBilling:!0}:null)},[t,O,m]),be=(0,V.useCallback)(()=>{E(!1)},[]),F=!v&&`mr-37.5`;return(0,H.jsxs)(H.Fragment,{children:[!v&&o!==`version`&&(0,H.jsxs)(`div`,{className:`absolute top-3 right-4 md:right-12 flex flex-col items-end text-right`,children:[(0,H.jsx)(`dt`,{className:`font-light`,children:pe?`Monthly Price`:`Total Price`}),(0,H.jsx)(`dd`,{className:`font-bold`,children:N>0?(0,H.jsxs)(`span`,{className:`inline-flex items-baseline`,children:[(0,H.jsx)(Bl,{price:me}),!!pe&&(0,H.jsxs)(`span`,{className:`font-light text-base text-muted-foreground`,children:[`/mo`,pe>1&&(0,H.jsx)(`sup`,{children:`*`})]})]}):(0,H.jsx)(`span`,{className:`text-4xl text-green`,children:`Free`})})]}),(0,H.jsx)(W,{...O,children:w?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`h1`,{className:T(`text-lg leading-none text-foreground font-semibold mb-4`,F),children:`Cluster Billing`}),(0,H.jsx)(`p`,{className:T(`text-muted-foreground text-sm mb-2`,F),children:`Please confirm the following billing details:`}),(0,H.jsx)(Kc,{clusterId:t,isPending:S||ee,onGoBackToDetails:be,onSaveStateForBillingRedirect:ye,onSubmit:_e,organizationId:c,selectedPlan:fe})]}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`h1`,{className:T(`text-lg leading-none text-foreground font-semibold mb-4`,F),children:`Cluster Configuration`}),(0,H.jsxs)(`div`,{className:T(`mb-6 flex flex-col items-start gap-2`,F),children:[(0,H.jsx)(`p`,{className:`sr-only`,children:`Configure your Harper cluster and define deployment plans.`}),!v&&o!==`version`&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(yo,{variant:`warning`,children:`Beta pricing subject to change.`}),!!pe&&pe>1&&N>0&&(0,H.jsxs)(`p`,{className:`max-w-prose text-xs font-light text-muted-foreground`,children:[`* Billed as`,` `,new Intl.NumberFormat(`en-US`,{style:`currency`,currency:`USD`}).format(N),` `,`every`,` `,d(pe,`month`,`months`),`, or sooner if you reach a usage limit — then a new license is issued.`]})]})]}),(0,H.jsx)(`form`,{id:`cluster-upsert-form`,name:`cluster-upsert-form`,onSubmit:O.handleSubmit(ve),children:(0,H.jsx)(Il,{calculatedNames:ue,clusterId:t,deploymentToPerformanceToPlan:i,form:O,isPending:S||ee,harperVersions:a,mode:o,partialUpgrade:l,regionLocations:le,regionNameToLatencyToRegion:M,selectedDeployment:ie,selectedPerformance:oe,selectedPlan:fe,totalPrice:N,isEnterprise:v,cloudProvider:y})})]})})]})}function Ul(e){return e?.clusterName!==void 0}function Wl(e){let t=e.filter(e=>!!e);if(t.length<2)return null;let n=t.reduce((e,t)=>ns(t,e)>0?t:e),r=t.filter(e=>e!==n).length;return r>0?{latest:n,behindCount:r,total:t.length}:null}function Gl(){let{organizationId:e,clusterId:t,mode:n}=j({strict:!1}),{create:r,update:i}=xi(e),{organization:a,cluster:o}=Me({strict:!1}),[s,c]=Xr(Qr.SavedClusterState,null),{data:l}=M(Uo(e)),{data:u}=M(qo({availableHosts:!0,organizationId:e})),{data:d}=M(qo({organizationId:e})),{data:f}=M(Go()),p=(0,V.useMemo)(()=>{if(o){let e=o.instances?.map(e=>e.version).filter(Lr);if(f&&e){let t=e.sort(ns).pop();return{...f,value:[!!t&&{name:`current`,version:t},...(f?.value||[]).filter(e=>t!==e.version&&(!t||ts(t,e.version)))].filter(Lr)}}}return f},[f,o]),m=(0,V.useMemo)(()=>Wl(o?.instances?.map(e=>e.version)??[]),[o]),h=(0,V.useMemo)(()=>{for(let e of a?.clusters??[])if(e.id!==o?.id&&l&&!oo(e.status)&&!ao(e.status)&&e.plans)for(let t of e.plans){let e=l.find(e=>e.id===t.planId);if(e?.priceUsd===0&&!e.id.startsWith(`self-hosted`))return!0}return!1},[o?.id,a?.clusters,l]),g=(0,V.useMemo)(()=>es(l?.sort(Jo(`priceUsd`))||[],`deploymentDescription`,`performanceDescription`),[l]),_=(0,V.useMemo)(()=>{if(!l||!p||!u||!d||t&&!o)return null;let e=o;if(s){if(Ul(s))return{...s,clusterName:s.clusterName||``,abbreviatedName:s.abbreviatedName||``,version:s.version,deploymentDescription:s.deploymentDescription||``,performanceDescription:s.performanceDescription||``,fqdn:s.fqdn||``,regionPlans:s.regionPlans||[],instances:s.instances||[]};e=s}let n=l?.find(e=>e.id===o?.plans?.[0].planId),r=[],i=[],a=n?.deploymentDescription===`Dedicated`?d:u,c=Rl(l,a,h),f=!1;if(e){if(e.plans){for(let t of e.plans)if(t.regionId){let e=a.find(e=>e.id===t.regionId);e&&r.push({regionName:e.region,latencyDescription:e.latencyDescription})}}if(!r.length&&e.instances){let t=e.instances.filter(e=>e.status&&!na.includes(e.status)).sort(Zo);for(let e of t)f=!0,i.push({fqdn:e.instanceFqdn,port:e.operationsApiPort,secure:e.operationsApiSecure?`true`:`false`})}}else c&&r.push(...c.regionPlans);!f&&!r.length&&r.push({regionName:``,latencyDescription:``});let m=p.value?.find(e=>e.name===`current`)?.version??p.value?.find(e=>e.name===`stable`)?.version;return{sourceClusterId:e?.id,autoRenew:e?.plans?.[0]?.autoRenew??!0,clusterName:e?.name??``,abbreviatedName:e?.abbreviatedName??``,version:m,deploymentDescription:n?.deploymentDescription??c?.deploymentDescription??``,performanceDescription:n?.performanceDescription??c?.performanceDescription??``,fqdn:f?e?.fqdn??``:``,instances:i,regionPlans:r}},[h,o,t,l,p,u,d,s]);return!_||!a||!l||!u||!d?(0,H.jsx)(Vo,{children:(0,H.jsx)(Bo,{centered:!0,text:`Loading...`})}):(o?.id?!i:!r)?(0,H.jsx)(Vo,{children:(0,H.jsx)(Mr,{title:`Not Allowed`,error:{message:(0,H.jsxs)(H.Fragment,{children:[`You do not have permission to `,o?.id?`update`:`create`,` clusters in this org.`]})}})}):l.length===0?(0,H.jsx)(Vo,{children:(0,H.jsx)(Mr,{title:`Cluster ${t?`Modification`:`Creation`} Not Currently Allowed`,error:{message:(0,H.jsxs)(H.Fragment,{children:[`There are no available deployment types right now! Please try again later, or `,(0,H.jsx)(zo,{}),`.`]})}})}):(0,H.jsx)(Vo,{className:`max-w-4xl mx-auto`,children:(0,H.jsx)(Hl,{alreadyUsingFree:h,clusterId:t,defaultValues:_,deploymentToPerformanceToPlan:g,harperVersions:p,mode:n,organization:a,organizationId:e,partialUpgrade:m,planTypes:l,regionLocationsColocated:u,regionLocationsDedicated:d,setSavedClusterState:c,startOffOnBilling:Ul(s)&&s.skipToBilling===!0})})}var Kl={FAILED:0,UPDATING:1,PROVISIONING:2,RUNNING:3,TERMINATED:4},ql=Kl.RUNNING;function Jl(e,t){return e.status===t.status?e.name.localeCompare(t.name):(e.status?Kl[e.status]??ql:ql)-(t.status?Kl[t.status]??ql:ql)}function Yl(e,t){let n=t.toLowerCase();return t=>{for(let r of e){let e=t[r];if(e!=null)if(typeof e==`string`){if(e.toLowerCase().includes(n))return!0}else if(typeof e==`boolean`){if(e&&(n===`yes`||n===`true`||n===`1`)||!e&&(n===`no`||n===`false`||n===`0`))return!0}else throw Error(`curryFilterByFuzzySearch has not implemented support for `+typeof e+` fields yet!`)}return!1}}function Xl(){let{organizationId:e}=j({strict:!1}),{create:t}=xi(e),{data:n,isSuccess:r}=be(hs(e)),[i]=Xr(Qr.SavedClusterState,null),[a,o]=(0,V.useState)(``),s=(0,V.useCallback)(()=>o(``),[]),c=(0,V.useCallback)(e=>{o(e.currentTarget.value?.toLowerCase()||``)},[]),l=(0,V.useMemo)(()=>n?.clusters?.slice().filter(e=>!oo(e.status)).sort(Jl)||[],[n?.clusters]),u=(0,V.useMemo)(()=>l.filter(Yl([`id`,`name`],a))||[],[a,l]);return n&&l.length===0&&t?(0,H.jsx)(Gl,{}):i?(0,H.jsx)(me,{to:`/${e}/new-cluster`}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(no,{children:r?(0,H.jsxs)(`div`,{className:`flex w-full justify-end gap-2`,children:[(0,H.jsx)(X,{placeholder:`Filter by name`,className:`inline-block w-full text-xs`,value:a,onChange:c}),t&&(0,H.jsx)(I,{to:`new-cluster`,children:(0,H.jsxs)(_,{variant:`positive`,accessKey:`n`,children:[(0,H.jsx)(cr,{}),` `,(0,H.jsxs)(`span`,{className:`hidden sm:inline-block`,children:[(0,H.jsx)(`u`,{children:`N`}),`ew `,(0,H.jsx)(`span`,{className:`hidden md:inline-block`,children:`Cluster`})]})]})})]}):null}),(0,H.jsx)(`section`,{className:`mt-32 px-4 pt-4 md:px-12 min-h-[calc(100vh-(--spacing(32)))]`,children:(0,H.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-12 mb-4`,children:[u.map(e=>(0,H.jsx)(`div`,{className:`col-span-1 md:col-span-4 lg:col-span-3 2xl:col-span-2`,children:(0,H.jsx)(Ro,{cluster:e})},e.id)),!u.length&&(0,H.jsxs)(`div`,{className:`col-span-1 md:col-span-12 text-center`,children:[(0,H.jsx)(`h2`,{className:`my-4 text-xl`,children:`No matches found.`}),(0,H.jsx)(_,{type:`button`,variant:`outline`,onClick:s,children:`Clear Filters`})]})]})})]})}function Zl(){let e=location.hash;return e?e.startsWith(`#/`)?e.slice(1):e:`/`}function Ql(){return`/#`+Zl()}function $l(){let{organizationId:e}=j({strict:!1}),t=je(),n=new URLSearchParams(window.location.search).get(`setup_intent_client_secret`),{setup_intent_client_secret:r}=N({strict:!1}),[i]=Xr(Qr.SavedClusterState,null),a=n||r,o=fc(),s=Ss(e),c=(0,V.useCallback)(()=>{let e=i?i.clusterId?`../../${i.clusterId}/edit`:`../../new-cluster`:`../`;window.history.replaceState(null,``,Ql()),t({search:void 0,to:e})},[t,i]);return(0,V.useEffect)(()=>{!o||!a||!s||!e||!c||(async function(){try{let{setupIntent:e}=await o.retrieveSetupIntent(a);switch(e?.status){case`succeeded`:e.payment_method===null?(L.error(`Failed to process payment method details. Please try another payment method.`),c()):s(e.payment_method,c);break;case`processing`:L.warning(`Processing payment method. Please check back later.`),c();break;case`requires_payment_method`:L.error(`Failed to process payment method details. Please try another payment method.`),c();break;default:L.error(`Failed to process payment method details. Please try another payment method.`),c();break}}catch(e){console.error(e),L.error(`Failed to process payment method details. Please try another payment method.`),c()}})()},[a,c,e,s,o]),(0,H.jsx)(Bo,{centered:!0})}function eu(){return(0,H.jsx)(zc,{children:(0,H.jsx)($l,{})})}function tu({clusterId:e,instanceId:t,organizationId:n},r){return`/`+[n,e,t&&`instance`,t,r].filter(Lr).join(`/`)}var nu=`flex items-center p-2 rounded-lg group`,ru={className:`text-foreground hover:bg-accent dark:text-white dark:hover:bg-gray-700`},iu={className:`text-black bg-white pointer-events-none cursor-default`};function au(){let{organizationId:e}=j({strict:!1}),{update:t}=yi(e);return t?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(no,{}),(0,H.jsx)(`div`,{className:`mt-32 px-4 pt-4 md:px-12 min-h-[calc(100vh-theme(spacing.32))]`,children:(0,H.jsxs)(`div`,{className:`md:grid gap-4 md:grid-cols-12 min-h-[calc(100vh-theme(spacing.36))] mb-12`,children:[(0,H.jsxs)(`section`,{className:`col-span-1 text-foreground md:col-span-4 lg:col-span-3 md:border-r-1 border-b md:border-b-0 md:pr-4 border-gray-700`,children:[(0,H.jsx)(ou,{}),(0,H.jsx)(su,{})]}),(0,H.jsx)(`section`,{className:`col-span-1 text-foreground md:col-span-8 lg:col-span-9`,children:(0,H.jsx)(Te,{})})]})})]}):(0,H.jsx)(`div`,{className:`mt-32 px-4 pt-4 md:px-12 min-h-[calc(100vh-theme(spacing.32))]`,children:`You don't have access to manage payments for this organization. Please contact your administrator.`})}function ou(){let e=j({strict:!1});return(0,H.jsxs)(`div`,{className:`hidden md:block`,children:[(0,H.jsxs)(`span`,{className:nu,children:[(0,H.jsx)(ur,{className:`inline-block`}),(0,H.jsx)(`h3`,{className:`ms-3 text-2xl font-extrabold text-foreground`,children:`Billing`})]}),(0,H.jsxs)(`ul`,{className:`border-t border-gray-700 pt-4 mt-4 space-y-2`,children:[(0,H.jsx)(`li`,{children:(0,H.jsxs)(I,{to:tu(e,`billing`),className:nu,activeOptions:{exact:!0},inactiveProps:ru,activeProps:iu,children:[(0,H.jsx)(Fn,{className:`inline-block`}),` `,(0,H.jsx)(`span`,{className:`ms-3`,children:`Payment Method`})]})}),(0,H.jsx)(`li`,{children:(0,H.jsxs)(I,{to:tu(e,`billing/invoices`),className:nu,inactiveProps:ru,activeProps:iu,children:[(0,H.jsx)(lr,{className:`inline-block`}),(0,H.jsx)(`span`,{className:`ms-3`,children:`Invoices & Payments`})]})})]})]})}function su(){let e=j({strict:!1});return(0,H.jsxs)(`ul`,{className:`flex space-x-4 md:hidden py-2`,children:[(0,H.jsx)(`li`,{children:(0,H.jsxs)(I,{to:tu(e,`billing`),className:nu,activeOptions:{exact:!0},inactiveProps:ru,activeProps:iu,children:[(0,H.jsx)(Fn,{className:`inline-block`}),` `,(0,H.jsx)(`span`,{className:`ms-3`,children:`Payment Method`})]})}),(0,H.jsx)(`li`,{children:(0,H.jsxs)(I,{to:tu(e,`billing/invoices`),className:nu,inactiveProps:ru,activeProps:iu,children:[(0,H.jsx)(lr,{className:`inline-block`}),` `,(0,H.jsx)(`span`,{className:`ms-3`,children:`Invoices & Payments`})]})})]})}function cu({className:e,containerClassName:t,...n}){return(0,H.jsx)(`div`,{"data-slot":`table-container`,className:f(`relative w-full overflow-x-auto`,t),children:(0,H.jsx)(`table`,{"data-slot":`table`,className:f(`w-full caption-bottom text-sm`,e),...n})})}function lu({className:e,...t}){return(0,H.jsx)(`thead`,{"data-slot":`table-header`,className:f(`[&_tr]:border-b`,e),...t})}function uu({className:e,...t}){return(0,H.jsx)(`tbody`,{"data-slot":`table-body`,className:f(`[&_tr:last-child]:border-0`,e),...t})}function du({className:e,...t}){return(0,H.jsx)(`tr`,{"data-slot":`table-row`,className:f(`border-b border-grey-700 transition-colors`,e),...t})}function fu({className:e,...t}){return(0,H.jsx)(`th`,{"data-slot":`table-head`,className:f(`h-10 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]`,e),...t})}function pu({header:e,onColumnClick:t,...n}){let r=(0,V.useCallback)(()=>{e.column.toggleSorting(e.column.getIsSorted()===`asc`);let n=e.column.getIsSorted()===!1||e.column.getIsSorted()!==`asc`;t?.(e.column.columnDef.accessorKey,n)},[e,t]),i=e.column.columnDef.enableSorting,a=e.column.columnDef.enableResizing,o=e.isPlaceholder?null:Ee(e.column.columnDef.header,e.getContext()),s=(0,V.useCallback)(()=>{e.column.resetSize()},[e]);return(0,H.jsx)(fu,{...n,style:{width:`${e.getSize()}px`},className:i?`px-0`:`px-2`,children:(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[i?(0,H.jsxs)(_,{type:`button`,variant:`ghost`,className:f(`rounded-none`,!e.column.getIsSorted()||e.column.getIsSorted()===`asc`?`cursor-n-resize`:`cursor-s-resize`),onClick:r,children:[o,e.column.getIsSorted()===`asc`?(0,H.jsx)(mn,{}):e.column.getIsSorted()===`desc`?(0,H.jsx)(ln,{}):(0,H.jsx)(fn,{className:`text-gray-600`})]}):o,a&&(0,H.jsx)(_,{type:`button`,variant:`ghost`,className:`cursor-col-resize`,onMouseDown:e.getResizeHandler(),onTouchStart:e.getResizeHandler(),onDoubleClick:s,style:{transform:e.column.getIsResizing()?`translateX(${e.getContext().table.getState().columnSizingInfo.deltaOffset}px)`:``},children:(0,H.jsx)(Wn,{})})]})})}function mu({className:e,...t}){return(0,H.jsx)(`td`,{"data-slot":`table-cell`,className:f(`align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]`,e),...t})}function hu({columns:e,data:t,isFetching:n,onRowClick:r,onColumnClick:i,sortingState:a,children:o}){let s=ye({data:t,columns:e,getCoreRowModel:we(),getSortedRowModel:he(),initialState:{sorting:a}});return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-end space-x-2 pb-4`,children:[(0,H.jsx)(`div`,{className:`grow lg:hidden`}),o,(0,H.jsx)(`div`,{className:`grow hidden lg:visible`})]}),(0,H.jsxs)(cu,{containerClassName:`rounded-md bg-card dark:bg-black-dark`,children:[(0,H.jsx)(lu,{children:s.getHeaderGroups().map(e=>(0,H.jsx)(du,{className:`border-none`,children:e.headers.map(e=>(0,H.jsx)(pu,{header:e,onColumnClick:i},e.id))},e.id))}),(0,H.jsx)(uu,{className:`bg-background dark:bg-black border border-border dark:border-grey-700`,children:s.getRowModel().rows?.length?s.getRowModel().rows.map(e=>(0,H.jsx)(du,{"data-state":e.getIsSelected()&&`selected`,onClick:()=>r?.(e),className:f(`hover:bg-muted/10 data-[state=selected]:bg-muted`,r&&`cursor-pointer`),children:e.getVisibleCells().map(e=>(0,H.jsx)(mu,{className:`py-2 px-2 overflow-x-hidden max-w-32 text-ellipsis whitespace-nowrap`,style:{width:`${e.column.getSize()}px`},children:Ee(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,H.jsx)(du,{children:(0,H.jsx)(mu,{colSpan:e.length,className:`h-24 text-center`,children:n?(0,H.jsx)(`div`,{children:(0,H.jsx)(Bo,{className:`p-12`})}):(0,H.jsx)(`span`,{children:`No results.`})})})})]})]})}function gu(e){switch(e){case`paid`:return`success`;case`void`:case`uncollectible`:return`destructive`;default:return`default`}}function _u(e){return new Intl.NumberFormat(`en-US`,{style:`currency`,currency:`USD`}).format(e)}function vu(e,t){if(e<45)return`a few seconds ago`;if(e<120)return`a minute ago`;let n=Math.floor(e/60);if(n<60)return`${n} minutes ago`;if(n<120)return`an hour ago`;let r=Math.floor(e/3600);return r>48?new Date(t).toLocaleString():`${r} hours ago`}var yu=[{header:`Invoice Id`,accessorKey:`id`,enableSorting:!1},{header:`Status`,accessorKey:`status`,enableSorting:!1,cell:({cell:e})=>(0,H.jsx)(yo,{variant:gu(e.getValue()),children:e.getValue()})},{header:`Date`,accessorKey:`periodStart`,enableSorting:!1,cell:({cell:e})=>{let t=e.row.original.periodStart*1e3,n=e.row.original.periodEnd*1e3,r=(Date.now()-t)/1e3,i=(Date.now()-n)/1e3;return Math.abs(r-i)<1e3?vu(r,t):[t?vu(r,t):`-`,n?vu(i,n):`-`].join(` to `)}},{header:`Amount Due`,accessorKey:`amountDue`,enableSorting:!1,cell:({cell:e})=>_u(e.getValue()?e.getValue()/100:0)},{header:`Amount Paid`,accessorKey:`amountPaid`,enableSorting:!1,cell:({cell:e})=>_u(e.getValue()?e.getValue()/100:0)},{header:`Lines`,accessorKey:`lines`,enableSorting:!1,cell:({cell:e})=>{let t=e.getValue(),n=[];for(let e of t)n.push(`${e.quantity}x ${e.description} @ ${_u(e.amount/100)}`);return n.join(`
12
- `)}}];function bu(e){return(0,V.useCallback)(async()=>{L.loading(`Refreshing...`,{id:`refreshing`});let t=Date.now();await e(),Date.now()-t<500&&await m(500),L.success(`Refreshed!`,{id:`refreshing`})},[e])}async function xu(e){let{data:t}=await c.get(`/Invoice/${e}`);return t}function Su(e,t){return A({queryKey:[e,`invoices`],queryFn:()=>xu(e),retry:!1,enabled:!!e,refetchInterval:t?1e4:void 0})}function Cu(){let{organizationId:e}=j({strict:!1}),{data:t}=M(hs(e)),{data:n,refetch:r,isLoading:i,isFetching:a,isRefetching:o}=M(Su(t?.type!==`ENTERPRISE`&&t?.id,!1)),s=bu(r);return t?.type===`ENTERPRISE`?(0,H.jsxs)(`span`,{children:[`You are part of an enterprise organization! We don’t currently show your invoices on this page. Want to explore your solution with Harper more? `,(0,H.jsx)(zo,{}),`, we would love to talk!`]}):i?(0,H.jsx)(Bo,{centered:!0}):!n||!n.length?(0,H.jsxs)(`span`,{children:[`Your invoices will be shown here once one is available! Want to explore your solution with Harper more?`,` `,(0,H.jsx)(zo,{overEmail:!0}),`, we would love to talk!`]}):(0,H.jsx)(hu,{data:n,columns:yu,children:(0,H.jsxs)(_,{variant:`defaultOutline`,onClick:s,accessKey:`r`,disabled:a||o,children:[(0,H.jsx)(dr,{}),(0,H.jsxs)(`span`,{className:`hidden lg:inline-block`,children:[(0,H.jsx)(`u`,{children:`R`}),`efresh`]})]})})}function wu(e){let t=P({getParentRoute:()=>e,path:`billing`,head:()=>({meta:[{title:`Billing — Harper Fabric`}]}),component:au}),n=P({getParentRoute:()=>t,path:`/`,head:()=>({meta:[{title:`Payment Methods — Harper Fabric`}]}),component:Gc}),r=P({getParentRoute:()=>t,path:`invoices`,head:()=>({meta:[{title:`Invoices — Harper Fabric`}]}),component:Cu}),i=P({getParentRoute:()=>t,path:`confirm`,head:()=>({meta:[{title:`Confirm Payment — Harper Fabric`}]}),component:eu});return t.addChildren([n,r,i])}async function Tu(e){let{data:t}=await c.get(`/OrganizationRole/${e}`);return t}function Eu(e){return A({queryKey:[e,`roles`],queryFn:()=>Tu(e),retry:!1,refetchInterval:10*1e3})}var Du=[{header:`Role Name`,accessorKey:`roleName`,enableSorting:!1},pe().display({header:`Users Assigned`,enableSorting:!1,id:`userIds`,cell:e=>!e.row.original.userIds||e.row.original.userIds.length===0?`No users assigned`:e.row.original.userIds.length})];async function Ou(e){let{data:t}=await c.post(`/Role/`,e);return t}function ku(){return F({mutationFn:Ou})}var Au=O({name:k().nonempty({error:`Please enter a role name.`}).regex(/^[a-zA-Z_]*$/,{error:`Role must contain only letters and underscores.`}).max(30,{error:`Role name cannot be longer than 30 characters.`}),update:E(),delete:E()});O({roles:O({create:E(),delete:E(),update:E(),view:E()}),clusters:O({create:E(),delete:E(),update:E(),view:E(),resources:C(O({id:k(),delete:E(),update:E(),view:E(),instances:O({create:E(),delete:E(),update:E(),view:E()})}))})});function ju(){let[e]=ti(),t=Zr();return e===`dark`||e===`system`&&t===`dark`?`vs-dark`:`light`}var Mu=(0,V.lazy)(async()=>(await Pe(()=>import(`./setup-BhFZv4af.js`),__vite__mapDeps([0,1,2,3,4,5,6,7])),{default:(await Pe(()=>import(`./dist-Cjh2xdPt.js`),__vite__mapDeps([3,2,1]))).default}));function Nu(e){return(0,H.jsx)(V.Suspense,{fallback:e.loading??null,children:(0,H.jsx)(Mu,{...e})})}var Pu={roles:{create:!0,view:!0,update:!0,delete:!0},clusters:{create:!0,view:!0,update:!0,delete:!0,resources:[]}};function Fu({isModalOpen:e,setIsModalOpen:t}){let n=ju(),r=de(),{organizationId:i}=j({strict:!1}),[a,o]=(0,V.useState)(!0),[s,c]=(0,V.useState)(JSON.stringify(Pu,null,2)),{mutate:l,isPending:u}=ku(),d=z({resolver:R(Au),defaultValues:{name:``,update:!1,delete:!1}}),f=(0,V.useCallback)(e=>{o(e.length===0)},[o]),p=(0,V.useCallback)(async e=>{let n=qr(s);if(!n)return;let o={...e,...n,organizationId:i};e&&a&&l(o,{onSuccess:()=>{L.success(`Organization role added successfully!`),t(!1),r.invalidateQueries({queryKey:[i,`roles`],refetchType:`active`}),d.reset()},onError:e=>{L.error(`Failed to add organization role: ${e.message}`)}})},[a,s,l,d,r,t,i]);return(0,H.jsx)(lo,{onOpenChange:t,open:e,children:(0,H.jsxs)(mo,{children:[(0,H.jsx)(go,{children:`Add New Organization Role`}),(0,H.jsx)(_o,{children:`Set the new organization role permissions.`}),(0,H.jsx)(W,{...d,children:(0,H.jsxs)(`form`,{id:`org-add-role-form`,name:`org-add-role-form`,className:`grid grid-cols-2 gap-4 my-4`,onSubmit:d.handleSubmit(p),children:[(0,H.jsx)(K,{control:d.control,name:`name`,render:({field:e})=>(0,H.jsxs)(q,{className:`col-span-2`,children:[(0,H.jsx)(J,{className:`pb-1`,children:`Role Name`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`text`,className:``,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:d.control,name:`update`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Can Update Organization`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`checkbox`,className:`w-6 ml-2`,checked:e.value,onChange:t=>e.onChange(t.target.checked)})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:d.control,name:`delete`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Can Delete Organization`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`checkbox`,className:`w-6 ml-2`,checked:e.value,onChange:t=>e.onChange(t.target.checked)})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(`div`,{className:`col-span-2`,children:(0,H.jsx)(Nu,{theme:n,height:`300px`,defaultLanguage:`json`,onValidate:f,onChange:e=>{e&&c(e)},defaultValue:JSON.stringify(Pu,null,2)})}),(0,H.jsx)(Z,{className:`col-span-2`,children:(0,H.jsxs)(`div`,{className:`flex justify-between w-full`,children:[(0,H.jsx)(_,{variant:`destructiveOutline`,className:`rounded-full`,type:`button`,onClick:()=>t(!1),disabled:u,children:`Cancel`}),(0,H.jsx)(_,{variant:`submit`,className:`rounded-full`,disabled:u||!a||!d.formState.isValid,children:`Save Changes`})]})})]})})]})})}async function Iu({roleId:e}){let{data:t}=await c.delete(`/Role/${e}`,{id:e,deleted:!0});return t}function Lu(){return F({mutationFn:({roleId:e})=>Iu({roleId:e})})}async function Ru({roleId:e,updatedRoleInfo:t}){let{data:n}=await c.put(`/Role/${e}`,t);return n}function zu(){return F({mutationFn:({roleId:e,updatedRoleInfo:t})=>Ru({roleId:e,updatedRoleInfo:t})})}function Bu({organizationId:e,roleId:t}){return A({queryKey:[e,`roles`,t],queryFn:()=>Vu(t),refetchInterval:10*1e3})}async function Vu(e){let{data:t}=await c.get(`/Role/${e}`);return t}function Hu({onRoleDeleteClick:e,setIsConfirmingRoleDeletion:t,isRoleDeletionPending:n}){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(go,{children:`Confirm Role Deletion`}),(0,H.jsx)(_o,{children:`Are you sure you want to delete this role? This action cannot be undone.`}),(0,H.jsxs)(Z,{children:[(0,H.jsx)(_,{type:`button`,variant:`defaultOutline`,className:`rounded-full`,onClick:()=>t(!1),children:`Cancel`}),(0,H.jsx)(_,{variant:`destructiveOutline`,className:`rounded-full`,onClick:e,disabled:n,children:n?`Deleting...`:`Delete Role`})]})]})}function Uu({data:e,isModalOpen:t,closeModal:n}){let r=de(),{data:i}=be(Bu({roleId:e.id,organizationId:e.organizationId})),a=Yt(),o=a.user&&a.user?.roles?.[e.organizationId]?.role===e.roleName,{update:s,remove:c}=bi(e.organizationId),{mutate:l,isPending:u}=zu(),{mutate:d,isPending:f}=Lu(),p=ju(),[m,h]=(0,V.useState)(!1),g=z({resolver:R(Au),defaultValues:{name:e.roleName,update:i.organization.update||!1,delete:i.organization.delete||!1}}),v=(0,V.useCallback)(()=>{d({roleId:e.id},{onSuccess:()=>{L.success(`Role deleted successfully!`),n(!0),g.reset()},onError:e=>{L.error(`Error`,{description:`Failed to delete role: ${e instanceof Error?e.message:String(e)}.`,action:{label:`Dismiss`,onClick:()=>L.dismiss()}})}})},[e.id,d,g,n]),[y,b]=(0,V.useState)(!0),[x,S]=(0,V.useState)(JSON.stringify({roles:{...i.organization.roles},clusters:{...i.organization.clusters}},null,2)),C=(0,V.useCallback)(e=>{b(e.length===0)},[b]),ee=(0,V.useCallback)(async t=>{if(!s)return;let i=qr(x);if(!i)return;let a={...t,...i,organizationId:e.organizationId};x&&y&&l({roleId:e.id,updatedRoleInfo:a},{onSuccess:async()=>{L.success(`Role updated successfully!`),await r.invalidateQueries({queryKey:[e.organizationId,`roles`,e.id]}),n(!1),g.reset()},onError:e=>{L.error(`Error`,{description:`Failed to update role: ${e instanceof Error?e.message:String(e)}.`,action:{label:`Dismiss`,onClick:()=>L.dismiss()}})}})},[n,e.id,e.organizationId,g,y,r,i,s,x,l]);return(0,H.jsx)(lo,{onOpenChange:(0,V.useCallback)(()=>n(!1),[n]),open:t,children:(0,H.jsx)(mo,{children:m?(0,H.jsx)(Hu,{onRoleDeleteClick:v,setIsConfirmingRoleDeletion:h,isRoleDeletionPending:f}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(go,{children:[o||!s?`View`:`Edit`,` Organization Role "`,e.roleName,`"`]}),(0,H.jsx)(W,{...g,children:(0,H.jsxs)(`form`,{id:`org-edit-role-form`,name:`org-edit-role-form`,className:`grid grid-cols-2 gap-4 my-4`,onSubmit:g.handleSubmit(ee),children:[(0,H.jsx)(K,{control:g.control,name:`name`,render:({field:e})=>(0,H.jsxs)(q,{className:`col-span-2`,children:[(0,H.jsx)(J,{className:`pb-1`,children:`Role Name`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`text`,className:``,...e,disabled:!0,readOnly:!0})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:g.control,name:`update`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Can Update Organization`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`checkbox`,className:`w-6 ml-2`,disabled:o||!s,readOnly:o||!s,checked:e.value,onChange:t=>e.onChange(t.target.checked)})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:g.control,name:`delete`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Can Delete Organization`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`checkbox`,className:`w-6 ml-2`,disabled:o||!s,readOnly:o||!s,checked:e.value,onChange:t=>e.onChange(t.target.checked)})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(`div`,{className:`col-span-2`,children:(0,H.jsx)(Nu,{theme:p,height:`300px`,defaultLanguage:`json`,onValidate:C,onChange:e=>{e&&S(e)},options:o||!s?{readOnly:!0}:void 0,defaultValue:x})}),!o&&(c||s)&&(0,H.jsx)(Z,{className:`col-span-2`,children:(0,H.jsxs)(`div`,{className:`flex justify-between w-full`,children:[c&&(0,H.jsx)(_,{type:`button`,variant:`destructiveOutline`,className:`rounded-full`,onClick:()=>h(!0),disabled:u,children:`Delete Role`}),s&&(0,H.jsx)(_,{variant:`submit`,className:`rounded-full`,disabled:!y||u||!g.formState.isValid||!g.formState.isDirty,children:`Save Changes`})]})})]})})]})})})}function Wu(){let e=je(),t=de(),{organizationId:n,orgRoleId:r}=j({strict:!1}),{create:i}=bi(n),{data:a,refetch:o,isFetching:s,isRefetching:c}=be(Eu(n)),l=(0,V.useMemo)(()=>a&&a?.find(e=>e.id===r),[a,r]),u=!!r&&!!l,[d,f]=(0,V.useState)(!1),p=(0,V.useCallback)(async(i,a)=>{await e({to:[r?`..`:``,i].filter(Boolean).join(`/`)}),a&&await t.invalidateQueries({queryKey:[n,`roles`],refetchType:`active`})},[r,e,t]),m=(0,V.useCallback)(()=>{f(!0)},[f]),h=(0,V.useCallback)(e=>p(e.original.id,!1),[p]),g=(0,V.useCallback)(e=>p(void 0,e),[p]),v=bu(o);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(no,{}),(0,H.jsx)(`div`,{className:`mt-32 px-4 pt-4 md:px-12 min-h-[calc(100vh-(--spacing(32)))]`,children:(0,H.jsxs)(V.Suspense,{fallback:(0,H.jsx)(Bo,{className:`flex flex-col items-center justify-center h-full`,text:`Loading...`}),children:[(0,H.jsxs)(hu,{data:a,columns:Du,onRowClick:h,children:[(0,H.jsxs)(_,{variant:`defaultOutline`,onClick:v,accessKey:`r`,disabled:s||c,children:[(0,H.jsx)(dr,{}),(0,H.jsxs)(`span`,{className:`hidden lg:inline-block`,children:[(0,H.jsx)(`u`,{children:`R`}),`efresh`]})]}),i&&(0,H.jsxs)(_,{variant:`positiveOutline`,onClick:m,accessKey:`a`,disabled:d,children:[(0,H.jsx)(cr,{}),(0,H.jsxs)(`span`,{children:[(0,H.jsx)(`u`,{children:`A`}),`dd`]})]})]}),i&&(0,H.jsx)(Fu,{isModalOpen:d,setIsModalOpen:f}),u&&(0,H.jsx)(Uu,{data:l,isModalOpen:u,closeModal:g})]})})]})}function Gu({className:e,...t}){return(0,H.jsx)(vt,{"data-slot":`switch`,className:f(`peer data-[state=checked]:bg-green data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-grey-500 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50`,e),...t,children:(0,H.jsx)(Ht,{"data-slot":`switch-thumb`,className:f(`bg-white dark:data-[state=unchecked]:bg-white dark:data-[state=checked]:bg-white pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0`)})})}function Ku(e){return`//oauth/${e}/login`}async function qu(e,t){let{data:n}=await c.patch(`/Organization/${e}/settings/oauth`,t);return n}var Ju=O({domain:k().min(1,`Domain is required`),clientId:k().min(1,`Client ID is required`),clientSecret:k().min(1,`Client secret is required`),scope:k().optional()}),Yu=O({domain:k().min(1,`Domain is required`),clientId:k().optional(),clientSecret:k().optional(),scope:k().optional()});function Xu(){let{organizationId:e}=j({strict:!1}),{user:t}=Yt(),{update:n}=yi(e),{data:r}=be(hs(e)),i=de(),[a,o]=(0,V.useState)(!1),[s,c]=(0,V.useState)(null),l=r.settings?.oauthConfigs??[],{mutate:u,isPending:d}=F({mutationFn:t=>qu(e,t),onSuccess:()=>void i.invalidateQueries({queryKey:[e]}),onError:()=>L.error(`Failed to update OAuth settings.`)}),f=z({resolver:R(Ju),defaultValues:{domain:``,clientId:``,clientSecret:``,scope:`openid email profile`}}),p=e=>{u({provider:`okta`,...e},{onSuccess:()=>{L.success(`OAuth provider added.`),f.reset(),o(!1)}})},m=z({resolver:R(Yu)}),h=e=>{c(e.id??null),m.reset({domain:e.domain,clientId:``,clientSecret:``,scope:e.scope??``})},g=(e,t)=>{let n={id:e.id,provider:e.provider,domain:t.domain,scope:t.scope};t.clientId&&(n.clientId=t.clientId),t.clientSecret&&(n.clientSecret=t.clientSecret),u(n,{onSuccess:()=>{L.success(`OAuth provider updated.`),c(null)}})},v=(e,t)=>{u({id:e.id,provider:e.provider,[t]:!e[t]})},y=e=>`//oauth/${e}/callback`,b=async e=>{await navigator.clipboard.writeText(e),L.success(`Sign-in URL copied.`)},x=async e=>{await navigator.clipboard.writeText(e),L.success(`Redirect URI copied.`)};return n?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(no,{}),(0,H.jsx)(`div`,{className:`mt-32 px-4 pt-4 md:px-12 min-h-[calc(100vh-theme(spacing.32))]`,children:(0,H.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,H.jsx)(`h2`,{className:`text-2xl text-foreground font-light mb-6`,children:`Authentication`}),(0,H.jsxs)(`section`,{children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,H.jsx)(`h3`,{className:`text-lg text-foreground font-medium`,children:`OAuth Providers`}),!a&&(0,H.jsxs)(_,{variant:`positiveOutline`,size:`sm`,onClick:()=>o(!0),children:[(0,H.jsx)(cr,{}),`Add Provider`]})]}),l.length===0&&!a&&(0,H.jsx)(`p`,{className:`text-muted-foreground text-sm mb-4`,children:`No OAuth providers configured.`}),l.map(e=>{let n=t?.oauthConfigId===e.id;return s===e.id?(0,H.jsxs)(`div`,{className:`border rounded-lg p-4 mb-3 text-foreground`,children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,H.jsx)(`h4`,{className:`font-medium`,children:`Edit Provider`}),(0,H.jsx)(`button`,{type:`button`,onClick:()=>c(null),className:`text-muted-foreground hover:text-foreground`,children:(0,H.jsx)(jr,{className:`size-4`})})]}),(0,H.jsx)(W,{...m,children:(0,H.jsxs)(`form`,{onSubmit:m.handleSubmit(t=>g(e,t)),className:`space-y-4`,children:[(0,H.jsx)(K,{control:m.control,name:`domain`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{children:`Domain`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{placeholder:`company.okta.com`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:m.control,name:`clientId`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{children:`Client ID`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{placeholder:`Leave blank to keep existing`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:m.control,name:`clientSecret`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{children:`Client Secret`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`password`,placeholder:`Leave blank to keep existing`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:m.control,name:`scope`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{children:`Scope`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{placeholder:`openid email profile`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsxs)(`div`,{className:`flex gap-2 pt-2`,children:[(0,H.jsx)(_,{type:`submit`,variant:`positive`,disabled:d,children:d?`Saving...`:`Save`}),(0,H.jsx)(_,{type:`button`,variant:`outline`,onClick:()=>c(null),children:`Cancel`})]})]})})]},e.id):(0,H.jsx)(`div`,{className:`border rounded-lg p-4 mb-3 text-foreground`,children:(0,H.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between sm:gap-4`,children:[(0,H.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2 mb-1`,children:[(0,H.jsx)(`span`,{className:`font-medium`,children:e.domain}),(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground uppercase bg-muted px-2 py-0.5 rounded`,children:e.provider}),e.enabled===!1&&(0,H.jsx)(`span`,{className:`text-xs text-destructive bg-destructive/10 px-2 py-0.5 rounded`,children:`Disabled`})]}),(0,H.jsxs)(`p`,{className:`text-sm text-muted-foreground mb-2`,children:[`Client ID: `,(0,H.jsx)(`span`,{className:`text-foreground font-mono`,children:`****`})]}),e.id&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`div`,{className:`mt-3 rounded-md bg-muted px-3 py-2`,children:[(0,H.jsx)(`p`,{className:`text-xs font-medium text-muted-foreground mb-1`,children:`Okta redirect URI`}),(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground mb-1.5`,children:[`Add to `,(0,H.jsx)(`span`,{className:`font-medium text-foreground`,children:`Login redirect URIs`}),` `,`in your Okta app settings.`]}),(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`span`,{className:`text-sm text-foreground font-mono truncate`,children:y(e.id)}),(0,H.jsx)(`button`,{type:`button`,onClick:()=>void x(y(e.id)),className:`hover:text-foreground shrink-0 text-muted-foreground`,title:`Copy redirect URI`,children:(0,H.jsx)(Pn,{className:`size-3.5`})})]})]}),(0,H.jsxs)(`div`,{className:`mt-2 rounded-md bg-muted px-3 py-2`,children:[(0,H.jsx)(`p`,{className:`text-xs font-medium text-muted-foreground mb-1.5`,children:`User login link`}),(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`a`,{href:Ku(e.id),target:`_blank`,rel:`noreferrer`,className:`text-sm text-foreground truncate hover:underline`,children:Ku(e.id)}),(0,H.jsxs)(`div`,{className:`flex items-center gap-1.5 shrink-0 text-muted-foreground`,children:[(0,H.jsx)(`button`,{type:`button`,onClick:()=>void b(Ku(e.id)),className:`hover:text-foreground`,title:`Copy login link`,children:(0,H.jsx)(Pn,{className:`size-3.5`})}),(0,H.jsx)(`a`,{href:Ku(e.id),target:`_blank`,rel:`noreferrer`,className:`hover:text-foreground`,title:`Open login link`,children:(0,H.jsx)(Rn,{className:`size-3.5`})})]})]})]})]})]}),(0,H.jsxs)(`div`,{className:`flex items-center gap-3 sm:shrink-0`,children:[(0,H.jsxs)(`label`,{className:`flex items-center gap-2 text-sm text-foreground cursor-pointer`,children:[(0,H.jsx)(Gu,{checked:e.enabled!==!1,onCheckedChange:()=>v(e,`enabled`),disabled:d}),`Enabled`]}),(0,H.jsxs)(Wi,{children:[(0,H.jsx)(Gi,{asChild:!0,children:(0,H.jsxs)(`span`,{className:`inline-flex items-center gap-2 text-sm text-foreground ${n?`cursor-pointer`:`cursor-not-allowed opacity-50`}`,children:[(0,H.jsx)(Gu,{checked:!!e.required,onCheckedChange:()=>v(e,`required`),disabled:d||!n}),`Required`]})}),!n&&(0,H.jsxs)(Ki,{children:[`Sign in via `,e.provider,` first to enable Required`]})]}),(0,H.jsx)(_,{variant:`outline`,size:`sm`,onClick:()=>h(e),disabled:d,children:(0,H.jsx)(sr,{className:`size-4`})})]})]})},e.id)}),a&&(0,H.jsxs)(`div`,{className:`border rounded-lg p-4 text-foreground`,children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,H.jsx)(`h4`,{className:`font-medium`,children:`Add Okta Provider`}),(0,H.jsx)(`button`,{type:`button`,onClick:()=>{o(!1),f.reset()},className:`text-muted-foreground hover:text-foreground`,children:(0,H.jsx)(jr,{className:`size-4`})})]}),(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground mb-4`,children:[`After saving, copy the `,(0,H.jsx)(`span`,{className:`font-medium text-foreground`,children:`Okta redirect URI`}),` `,`from the provider card and add it to your Okta app's`,` `,(0,H.jsx)(`span`,{className:`font-medium text-foreground`,children:`Login redirect URIs`}),`.`]}),(0,H.jsx)(W,{...f,children:(0,H.jsxs)(`form`,{onSubmit:f.handleSubmit(p),className:`space-y-4`,children:[(0,H.jsx)(K,{control:f.control,name:`domain`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{children:`Domain`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{placeholder:`company.okta.com`,autoFocus:!0,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:f.control,name:`clientId`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{children:`Client ID`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{placeholder:`Okta Client ID`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:f.control,name:`clientSecret`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{children:`Client Secret`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`password`,placeholder:`Okta Client Secret`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:f.control,name:`scope`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{children:`Scope`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{placeholder:`openid email profile`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsxs)(`div`,{className:`flex gap-2 pt-2`,children:[(0,H.jsx)(_,{type:`submit`,variant:`positive`,disabled:d,children:d?`Adding...`:`Add Provider`}),(0,H.jsx)(_,{type:`button`,variant:`outline`,onClick:()=>{o(!1),f.reset()},children:`Cancel`})]})]})})]})]})]})})]}):(0,H.jsx)(`div`,{className:`mt-32 px-4 pt-4 md:px-12 min-h-[calc(100vh-theme(spacing.32))] text-foreground`,children:`You don't have permission to manage settings for this organization.`})}var Zu=[{header:`User Id`,accessorKey:`id`,enableSorting:!1},{header:`Email`,accessorKey:`email`,enableSorting:!1},{header:`First Name`,accessorKey:`firstname`,enableSorting:!1},{header:`Last Name`,accessorKey:`lastname`,enableSorting:!1},pe().display({header:`Roles`,enableSorting:!1,id:`roles`,cell:e=>e.row.original.roles?.map(e=>e.roleName)?.sort()?.join(`, `)}),{header:`Status`,accessorKey:`status`,enableSorting:!1},{header:`Verified`,accessorKey:`isVerified`,enableSorting:!1}],Qu=D.object({email:la.max(80,{error:`Email cannot be longer than 80 characters.`}),roleId:D.string().nonempty({error:`Please select a role.`})});async function $u(e){let{data:t}=await c.post(`/OrganizationRole/`,e);return t}function ed(){return F({mutationFn:e=>$u(e)})}D.object({email:la.max(80,{error:`Email cannot be longer than 80 characters.`}),roleId:D.string().nonempty({error:`Please select a role.`})});async function td(e){let{data:t}=await c.post(`/UserInvite/`,e);return t}function nd(){return F({mutationFn:e=>td(e)})}function rd({isModalOpen:e,onChangesSaved:t,setIsModalOpen:n}){let{organizationId:r}=j({strict:!1}),{data:i}=be(Eu(r)),[a,o]=(0,V.useState)(!1),s=z({resolver:R(Qu),defaultValues:{email:``,roleId:``}}),{mutate:c,isPending:l}=ed(),{mutate:u,isPending:d}=nd(),f=(0,V.useCallback)(async e=>{e&&(a?u:c)(e,{onSuccess:()=>{let r=e.roleId;s.reset(),s.setValue(`roleId`,r),t(),L.success(`User invited successfully!`),n(!1),o(!1)},onError:e=>{e?.status===404&&o(!0)}})},[c,s,u,t,n,a]);return(0,H.jsx)(lo,{onOpenChange:()=>{n(!1),o(!1),s.reset()},open:e,children:(0,H.jsx)(mo,{"aria-describedby":void 0,children:(0,H.jsx)(W,{...s,children:(0,H.jsxs)(`form`,{id:`org-add-user-form`,name:`org-add-user-form`,onSubmit:s.handleSubmit(f),className:`grid gap-4 my-4`,children:[(0,H.jsx)(ho,{children:(0,H.jsx)(go,{children:a?`Invite User`:`Add User`})}),(0,H.jsx)(K,{control:s.control,name:`email`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Email`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`email`,enterKeyHint:`next`,autoComplete:`email`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:s.control,name:`roleId`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Roles`}),(0,H.jsx)(V.Suspense,{fallback:(0,H.jsx)(Qc,{}),children:(0,H.jsx)(G,{children:(0,H.jsxs)($c,{...e,onValueChange:t=>e.onChange(t),children:[(0,H.jsx)(nl,{className:`w-full`,children:(0,H.jsx)(tl,{placeholder:`Choose Role`})}),(0,H.jsx)(rl,{children:(0,H.jsxs)(el,{children:[(0,H.jsx)(il,{children:`Role`}),i?.map(e=>(0,H.jsx)($,{value:e.id,children:e.roleName},e.id))]})})]})})}),(0,H.jsx)(Y,{})]})}),a&&(0,H.jsxs)(_o,{className:`p-3 my-5 text-white rounded-md bg-amber-600 flex`,children:[(0,H.jsx)(er,{className:`inline-block size-12 pr-2`}),(0,H.jsx)(`span`,{children:`This person doesn’t have a Fabric account. Do you want to invite them?`})]}),(0,H.jsx)(Z,{children:(0,H.jsx)(`div`,{className:`flex justify-between w-full`,children:(0,H.jsxs)(_,{type:`submit`,variant:`submit`,className:`rounded-full`,disabled:l||d,children:[(0,H.jsx)(pr,{}),` `,a?`Invite User`:`Add User`]})})})]})})})})}async function id({roleId:e,userId:t}){let{data:n}=await c.delete(`/OrganizationRole/role/${e}/user/${t}`);return n}function ad(){return F({mutationFn:({roleId:e,userId:t})=>id({roleId:e,userId:t})})}function od(e){let[t,n]=(0,V.useState)(e||!1);return[t,(0,V.useCallback)(e=>{n(typeof e==`boolean`?e:e.target.checked)},[])]}function sd({data:e,readOnly:t,canRemove:n,orgRole:r,selectedRoles:i,setChangesMade:a}){let{mutate:o,isPending:s}=ed(),{mutate:c,isPending:l}=ad(),u=!!i[r.roleName],[d,f]=(0,V.useState)(u),[p,m]=od(u);return(0,V.useEffect)(()=>{p!==d&&(p?o({email:e.email,roleId:r.id},{onSuccess:()=>{f(p),a(!0),L.success(`Role added successfully`)}}):c({userId:e.id,roleId:r.id},{onSuccess:()=>{f(p),a(!0),L.success(`Role removed successfully`)}}))},[o,e.email,e.id,p,r.id,c,a,d]),(0,H.jsxs)(ea,{className:`flex`,children:[(0,H.jsx)(X,{type:`checkbox`,className:`w-6`,disabled:t||s||l||!n&&p,checked:p,onChange:m}),(0,H.jsx)(`span`,{className:`pl-4 pr-8 flex-1 py-2.5`,children:r.roleName})]},r.id)}function cd({closeModal:e,data:t,isModalOpen:n,onUserUpdated:r}){let{organizationId:i}=j({strict:!1}),a=Yt(),{update:o,remove:s}=bi(i),c=a.user?.email===t.email,{data:l}=be(Eu(i)),u=(0,V.useMemo)(()=>t.roles?$o(t.roles,`roleName`):{},[t]),[d,f]=(0,V.useState)(!1);return(0,H.jsx)(lo,{onOpenChange:d?r:e,open:n,children:(0,H.jsxs)(mo,{className:`sm:max-w-[750px]`,children:[(0,H.jsx)(ho,{children:(0,H.jsxs)(go,{children:[o?`Edit `:`View `,` `,t.email,` `,c?`(yourself)`:``]})}),o&&(0,H.jsxs)(_o,{children:[`To remove `,c?`your self`:`this user`,` from the organization, uncheck all of the boxes below.`]}),l.map(e=>(0,H.jsx)(sd,{readOnly:!o,canRemove:s,data:t,orgRole:e,selectedRoles:u,setChangesMade:f},e.id))]})})}function ld(e,t){return e.email>t.email?1:-1}function ud(){let e=je(),{organizationId:t,orgUserId:n}=j({strict:!1}),{update:r}=bi(t),{data:i,refetch:a,isFetching:o,isRefetching:s}=be(Eu(t)),c=(0,V.useMemo)(()=>{let e={};for(let t of i)if(t.users)for(let n of t.users)e[n.id]||(e[n.id]={...n,roles:[]}),e[n.id].roles.push(t);return Object.values(e).sort(ld)},[i]),l=(0,V.useMemo)(()=>c?.find(e=>e.id===n),[c,n]),u=(0,V.useCallback)(t=>{e({to:[n?`..`:``,t].filter(Boolean).join(`/`)})},[n,e]),d=!!n&&!!l,[f,p]=(0,V.useState)(!1),[m]=(0,V.useState)({attribute:`email`,descending:!1}),h=(0,V.useMemo)(()=>[{desc:m.descending,id:m.attribute}],[m]),g=(0,V.useCallback)(()=>{p(!0)},[p]),v=(0,V.useCallback)(()=>{a(),p(!1)},[a,p]),y=(0,V.useCallback)(e=>{u(e.original.id)},[u]),b=(0,V.useCallback)(()=>{u(void 0)},[u]),x=(0,V.useCallback)(()=>{a(),u(void 0)},[u,a]),S=bu(a);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(no,{}),(0,H.jsx)(`div`,{className:`mt-32 px-4 pt-4 md:px-12 min-h-[calc(100vh-theme(spacing.32))]`,children:(0,H.jsxs)(V.Suspense,{fallback:(0,H.jsx)(Bo,{className:`flex flex-col items-center justify-center h-full`,text:`Loading...`}),children:[(0,H.jsxs)(hu,{data:c,isFetching:o||s,columns:Zu,onRowClick:y,sortingState:h,children:[(0,H.jsxs)(_,{variant:`defaultOutline`,onClick:S,accessKey:`r`,disabled:o||s,children:[(0,H.jsx)(dr,{}),` `,(0,H.jsxs)(`span`,{className:`hidden lg:inline-block`,children:[(0,H.jsx)(`u`,{children:`R`}),`efresh`]})]}),r&&(0,H.jsxs)(_,{variant:`positiveOutline`,onClick:g,accessKey:`a`,disabled:f,children:[(0,H.jsx)(cr,{}),` `,(0,H.jsxs)(`span`,{children:[(0,H.jsx)(`u`,{children:`A`}),`dd`]})]})]}),r&&(0,H.jsx)(rd,{isModalOpen:f,onChangesSaved:v,setIsModalOpen:p}),d&&(0,H.jsx)(cd,{closeModal:b,data:l,isModalOpen:d,onUserUpdated:x})]})})]})}function dd({className:e,...t}){return(0,H.jsx)(`div`,{"data-slot":`skeleton`,className:f(`bg-primary/10 animate-pulse rounded-md`,e),...t})}function fd({organizationId:e,organizationName:t,providers:n}){return(0,H.jsxs)($t,{className:`relative h-full justify-between opacity-90`,children:[(0,H.jsxs)(en,{children:[(0,H.jsx)(nn,{className:`truncate`,children:e}),(0,H.jsx)(tn,{children:(0,H.jsx)(`h2`,{children:t})})]}),(0,H.jsxs)(rn,{className:`flex flex-col gap-2`,children:[(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground flex items-center gap-1.5 mb-1`,children:[(0,H.jsx)(Jn,{className:`size-3 shrink-0`}),`Sign in with an OAuth provider to access this organization.`]}),n.map(e=>(0,H.jsx)(`a`,{href:Ku(e.oauthConfigId),children:(0,H.jsxs)(_,{variant:`outline`,className:`w-full`,children:[`Sign in with `,e.name]})},e.oauthConfigId))]})]})}var pd=O({couponId:k().nonempty({message:`Please enter a coupon ID.`}).trim()});async function md({organizationId:e,couponId:t}){let{data:n}=await c.post(`/Coupon`,{organizationId:e,couponId:t},{validateStatus:e=>e>=200&&e<400||e===400||e===409});return n}function hd(){return F({mutationFn:md})}function gd({organizationId:e,organizationName:t,isOpen:n,onClose:r}){let{mutate:i,isPending:a}=hd(),o=z({resolver:R(pd),defaultValues:{couponId:``}}),{handleSubmit:s,control:c,reset:l}=o;(0,V.useEffect)(()=>{n&&l({couponId:``})},[n,l]);let u=(0,V.useCallback)(n=>{i({organizationId:e,couponId:n.couponId},{onSuccess:i=>{i?L.error(`Error`,{description:i||`Failed to add coupon.`}):(L.success(`Success`,{description:`Coupon "${n.couponId}" added to ${t||e}.`}),r())}})},[i,e,t,r]);return(0,H.jsx)(lo,{open:n,onOpenChange:e=>!e&&r(),children:(0,H.jsxs)(mo,{children:[(0,H.jsxs)(ho,{children:[(0,H.jsx)(go,{children:`Add Coupon`}),(0,H.jsxs)(_o,{children:[`Add a coupon code to`,` `,t||e,`. This coupon will be applied to the next billing cycle.`,(0,H.jsx)(`br`,{}),`Coupons can be created in our`,` `,(0,H.jsx)(`a`,{href:`https://dashboard.stripe.com/`,target:`_blank`,rel:`noreferrer`,className:`text-purple hover:underline`,children:`Stripe Dashboard`}),`.`]})]}),(0,H.jsx)(W,{...o,children:(0,H.jsxs)(`form`,{onSubmit:s(u),children:[(0,H.jsx)(`div`,{className:`grid gap-4 py-4`,children:(0,H.jsx)(K,{control:c,name:`couponId`,render:({field:e})=>(0,H.jsxs)(q,{className:`grid items-center gap-4`,children:[(0,H.jsx)(J,{children:`Coupon ID`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{...e,placeholder:`e.g. 100OFF`,disabled:a})}),(0,H.jsx)(Y,{})]})})}),(0,H.jsxs)(Z,{children:[(0,H.jsx)(_,{type:`button`,variant:`ghost`,onClick:r,disabled:a,children:`Cancel`}),(0,H.jsx)(_,{type:`submit`,disabled:a,children:a?`Adding...`:`Add Coupon`})]})]})})]})})}function _d({organizationRole:e,onDeleteOrgModal:t}){let{organizationId:n,organizationName:r,roleName:i}=e,{remove:a,update:o}=yi(n),s=o,{view:c}=bi(n),l=Xt(),[u,d]=(0,V.useState)(!1),f=(0,V.useCallback)(()=>{t(e)},[t,e]);return(0,H.jsxs)($t,{className:`relative h-full justify-between hover:shadow-lg transition-shadow duration-200`,children:[(0,H.jsxs)(en,{children:[(0,H.jsxs)(nn,{className:`flex items-center justify-between`,children:[(0,H.jsx)(`span`,{className:`truncate`,children:n}),a&&(0,H.jsxs)(bo,{children:[(0,H.jsx)(xo,{className:`p-4 -m-4 -mr-6 hover:text-foreground`,children:(0,H.jsx)(Ln,{"aria-label":`Options`})}),(0,H.jsxs)(So,{children:[(0,H.jsx)(To,{className:`text-gray-600 text-xs`,children:`Options`}),(0,H.jsx)(Eo,{}),(0,H.jsx)(I,{to:`${n}`,children:(0,H.jsxs)(Co,{children:[(0,H.jsx)(gr,{className:`size-4 mr-2 text-blue-500`}),`Clusters`]})}),c&&(0,H.jsx)(I,{to:`${n}/roles`,children:(0,H.jsxs)(Co,{children:[(0,H.jsx)(vr,{className:`size-4 mr-2 text-purple`}),`Roles`]})}),c&&(0,H.jsx)(I,{to:`${n}/users`,children:(0,H.jsxs)(Co,{children:[(0,H.jsx)(Ar,{className:`size-4 mr-2 text-orange-500`}),`Users`]})}),s&&(0,H.jsx)(I,{to:`${n}/billing`,children:(0,H.jsxs)(Co,{children:[(0,H.jsx)(Fn,{className:`size-4 mr-2 text-green-500`}),`Billing`]})}),o&&(0,H.jsx)(I,{to:`${n}/settings`,children:(0,H.jsxs)(Co,{children:[(0,H.jsx)(Jn,{className:`size-4 mr-2 text-yellow-500`}),`Settings`]})}),l&&(0,H.jsxs)(Co,{onClick:()=>d(!0),children:[(0,H.jsx)(Tr,{className:`size-4 mr-2 text-pink-500`}),`Add Coupon`]}),(0,H.jsx)(Eo,{}),a&&(0,H.jsxs)(Co,{className:`focus:bg-red/70 focus:text-white`,onClick:f,children:[(0,H.jsx)(Er,{className:`size-4 mr-2 text-red-500`}),`Delete`]})]})]})]}),(0,H.jsx)(tn,{children:(0,H.jsx)(`h2`,{children:r})})]}),(0,H.jsxs)(rn,{className:`flex justify-between`,children:[(0,H.jsx)(yo,{children:Ji(i)}),(0,H.jsx)(I,{to:n,className:`text-sm`,"aria-label":`View ${r}`,title:`View ${r}`,children:(0,H.jsxs)(`span`,{className:`py-2 transition-all duration-100 ease-in-out border-0 hover:border-b-2`,children:[`View `,(0,H.jsx)(dn,{className:`inline-block`})]})})]}),(0,H.jsx)(gd,{organizationId:n,organizationName:r,isOpen:u,onClose:()=>d(!1)})]})}async function vd(e){let{data:t}=await c.delete(`/Organization/${e}`);return t}function yd(){return F({mutationFn:e=>vd(e)})}async function bd(e){let{data:t}=await c.post(`/Organization/`,{...e});return t}function xd(){return F({mutationFn:e=>bd(e)})}var Sd=k().max(62,{error:`Must be at most 62 characters long.`}).regex(/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/,{error:`Please only use lowercase letters, digits and dashes (-) in the subdomain. Must not start or end with a dash.`}),Cd=O({name:k().max(255,{error:`Name cannot be longer than 255 characters.`}),subdomain:b([w(``),te(),Sd]).optional()});function wd(){let{user:e}=Yt(),t=je(),n=z({resolver:R(Cd),defaultValues:{name:``,subdomain:``}}),{setFocus:r,watch:i}=n;(0,V.useEffect)(()=>{r(`name`)},[r]);let a=`${e?.firstname} ${e?.lastname} Org`,o=i(`name`)||a,s=i(`subdomain`),c=(0,V.useMemo)(()=>{let e=_s(ys(o),Sd.maxLength);return{suggestedSubdomain:e,fullHostName:`future-cluster-names.${s||e}.harperfabric.com`}},[o,s]),{mutate:d,isPending:f}=xd(),p=de(),m=(0,V.useCallback)(async e=>{d({name:e.name||a,subdomain:e.subdomain||c.suggestedSubdomain},{onSuccess:e=>{p.invalidateQueries({queryKey:u,refetchType:`active`}),l.reloadUser(h),t({to:`/${e.id}`})}})},[c.suggestedSubdomain,p,d,a,t]);return(0,H.jsx)(H.Fragment,{children:(0,H.jsx)(W,{...n,children:(0,H.jsxs)(`form`,{id:`org-add-form`,name:`org-add-form`,onSubmit:n.handleSubmit(m),className:`grid gap-6 text-foreground max-w-xl`,children:[(0,H.jsx)(K,{control:n.control,name:`name`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Name`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`text`,maxLength:Cd.shape.name.maxLength,autoCapitalize:`words`,placeholder:a,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:n.control,name:`subdomain`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Subdomain`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`text`,maxLength:Sd.maxLength,autoCapitalize:`none`,placeholder:c.suggestedSubdomain,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Full Host Name`}),(0,H.jsx)(G,{children:(0,H.jsx)(`span`,{children:c.fullHostName})}),(0,H.jsx)(Y,{})]}),(0,H.jsx)(Z,{children:(0,H.jsxs)(_,{type:`submit`,variant:`submit`,className:`rounded-full`,disabled:f,children:[`Create New Organization `,(0,H.jsx)(dn,{})]})})]})})})}function Td(){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(no,{}),(0,H.jsx)(`section`,{className:`mt-32 px-4 pt-4 md:px-12 min-h-[calc(100vh-theme(spacing.32))]`,children:(0,H.jsx)(wd,{})})]})}function Ed(e,t){let n=e*12;return`/Admin/Organization/?${[...t?[`name=ct=${encodeURIComponent(t)}`]:[],`status=ne=DELETED`,`sort(name)`,`limit(${n},${n+12+1})`].join(`&`)}`}async function Dd(e,t){let{data:n}=await c.get(Ed(e,t));return{organizations:n.slice(0,12),hasNextPage:n.length>12}}function Od(e,t){return A({queryKey:[`admin-all-organizations`,t,e],queryFn:()=>Dd(e,t),placeholderData:fe,retry:!1})}function kd(e,t=300,n){let[r,i]=(0,V.useState)(e);return(0,V.useEffect)(()=>{let n=setTimeout(()=>i(e),t);return()=>clearTimeout(n)},[n?n(e):e,t]),r}function Ad(e,t){if(e===t)return!0;if(!e||!t)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let i of n)if(!r.includes(i)||e[i]!==t[i])return!1;return!0}function jd(e,t){let[n,r]=(0,V.useState)(t),[i,a]=(0,V.useState)(e);return(0,V.useEffect)(()=>{Ad(n,t)||(r(t),a(e))},[n,t,e]),Ad(n,t)?[i,a]:[e,a]}var Md={};function Nd(e,t,n){let r=(0,V.useCallback)((e,n)=>t(e,n),[n]);(0,V.useEffect)(()=>(Md[e]||(Md[e]=[]),Md[e].push(r),function(){let t=Md[e].indexOf(r);t>=0&&Md[e].splice(t,1)}),[e,t,r])}function Pd(e,t,n){let r=Md[e];if(r)for(let e of r)e(t,n)}function Fd(e,t,n){return r=>Pd(e,t,n??r)}function Id(e,t,n){return(0,V.useCallback)(r=>Pd(e,t,n??r),[e,t,n])}function Ld(e,t){return qr(sessionStorage.getItem(String(e)))??t}function Rd(e,t){t==null?sessionStorage.removeItem(String(e)):sessionStorage.setItem(String(e),JSON.stringify(t))}function zd(e,t){let n=jd(Ld(e,t),[e]),[r,i]=n;return(0,V.useEffect)(()=>{Rd(e,r),Pd(`Session:${e}`,r)},[e,r]),Nd(`Session:${e}`,function(e){r!==e&&i(e)},[r,e,t]),(0,V.useEffect)(function(){let n=n=>{n.key===e&&i(Ld(e,t))};return window.addEventListener(`storage`,n),()=>{window.removeEventListener(`storage`,n)}},[e,i,t]),n}function Bd(){let e=de(),{data:t}=be(a()),{mutate:n,isPending:r}=yd(),[i,o]=(0,V.useState)(!1),[s,c]=(0,V.useState)(null),[l,u]=(0,V.useState)(``),d=(0,V.useCallback)(()=>u(``),[]),f=Xt(),[p,m]=zd(`ShowAllOrganizations`,!1),[h,g]=(0,V.useState)(0),v=f&&p,y=(0,V.useCallback)(e=>{m(e),g(0)},[m]),{data:b,isPending:x}=M({...Od(h,kd(l,300)),enabled:v}),{organizationRoles:S,oauthLockedOrgs:C}=(0,V.useMemo)(()=>{let e=t?.roles||{},n=[],r=[];for(let[t,i]of Object.entries(e))`oauthProviders`in i&&!f?r.push({organizationId:t,organizationName:i.organizationName,providers:i.oauthProviders}):n.push({organizationId:t,organizationName:i.organizationName,roleName:i.role??`fabric admin`});return{organizationRoles:n.filter(Yl([`organizationId`,`organizationName`],l)).sort((e,t)=>(e.organizationName||``)>(t.organizationName||``)?1:-1),oauthLockedOrgs:r}},[l,t?.roles,f]),ee=(0,V.useMemo)(()=>{let e=t?.roles||{};return(b?.organizations||[]).map(t=>({organizationId:t.id,organizationName:t.name,roleName:e[t.id]?.role||`fabric admin`}))},[b?.organizations,t?.roles]),w=v?ee:S,T=(0,V.useCallback)(e=>{u(e.currentTarget.value||``),g(0)},[]),E=(0,V.useCallback)(t=>{t?.organizationId&&n(t.organizationId,{onSuccess:()=>{L.success(`Success`,{description:`Organization successfully deleted.`,duration:5e3,action:{label:`Dismiss`,onClick:()=>L.dismiss()}}),e.invalidateQueries({queryKey:[]}),o(!1)},onError:()=>o(!1)})},[n,e,o]),D=(0,V.useCallback)(e=>{c(e),o(!0)},[]),{createCluster:te}=N({strict:!1});return!v&&S.length===1&&!l.length&&te?(0,H.jsx)(me,{to:`/${S[0].organizationId}/new-cluster`,replace:!0}):!v&&!S.length&&!C.length&&!l.length?(0,H.jsx)(Td,{}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(no,{children:(0,H.jsxs)(`div`,{className:`flex w-full items-center justify-end gap-2`,children:[f&&(0,H.jsxs)(`label`,{className:`flex shrink-0 cursor-pointer items-center gap-2 text-xs`,children:[(0,H.jsx)(Gu,{checked:p,onCheckedChange:y,"aria-label":`Show all organizations`}),(0,H.jsx)(`span`,{className:`hidden sm:inline-block`,children:`All Orgs`})]}),(0,H.jsx)(X,{placeholder:`Filter by name`,className:`inline-block w-full text-xs`,value:l,onChange:T}),(0,H.jsx)(I,{to:`/new-org`,children:(0,H.jsxs)(_,{variant:`positive`,accessKey:`n`,children:[(0,H.jsx)(cr,{}),(0,H.jsxs)(`span`,{className:`hidden sm:inline-block`,children:[(0,H.jsx)(`u`,{children:`N`}),`ew `,(0,H.jsx)(`span`,{className:`hidden md:inline-block`,children:`Organization`})]})]})})]})}),(0,H.jsxs)(`section`,{className:`mt-32 px-4 pt-4 md:px-12 min-h-[calc(100vh-theme(spacing.32))]`,children:[(0,H.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-12`,children:[!v&&C.map(e=>(0,H.jsx)(`div`,{className:`col-span-1 md:col-span-4 lg:col-span-3 2xl:col-span-2`,children:(0,H.jsx)(fd,{organizationId:e.organizationId,organizationName:e.organizationName,providers:e.providers})},e.organizationId)),v&&x?Array.from({length:12},(e,t)=>(0,H.jsx)(dd,{className:`col-span-1 h-40 md:col-span-4 lg:col-span-3 2xl:col-span-2`},t)):w.map(e=>(0,H.jsx)(`div`,{className:`col-span-1 md:col-span-4 lg:col-span-3 2xl:col-span-2`,children:(0,H.jsx)(_d,{organizationRole:e,onDeleteOrgModal:D})},e.organizationId)),!w.length&&!(v&&x)&&(v||!C.length)&&(0,H.jsxs)(`div`,{className:`col-span-1 md:col-span-12 text-center`,children:[(0,H.jsx)(`h2`,{className:`my-4 text-xl`,children:`No matches found.`}),(0,H.jsx)(_,{variant:`outline`,onClick:d,children:`Clear Filters`})]})]}),v&&(h>0||b?.hasNextPage)&&(0,H.jsxs)(`div`,{className:`flex items-center justify-center gap-4 py-6`,children:[(0,H.jsxs)(_,{variant:`defaultOutline`,size:`sm`,className:`select-none`,disabled:h===0,onClick:()=>g(e=>e-1),children:[(0,H.jsx)(un,{}),`Previous`]}),(0,H.jsxs)(`span`,{className:`text-sm text-gray-500 dark:text-gray-400`,children:[`Page `,h+1]}),(0,H.jsxs)(_,{variant:`defaultOutline`,size:`sm`,className:`select-none`,disabled:!b?.hasNextPage,onClick:()=>g(e=>e+1),children:[`Next`,(0,H.jsx)(dn,{})]})]})]}),s&&(0,H.jsx)(vo,{typeOfThingBeingDeleted:`organization`,nameOfThingBeingDeleted:s.organizationName,isModalOpen:i,setIsModalOpen:()=>o(!1),deletionConfirmed:()=>E(s),deletionPending:r})]})}function Vd(){let{isLoading:e}=Jt(),{createCluster:t}=N({strict:!1}),[,n]=Xr(Qr.SavedClusterState,null);return(0,V.useEffect)(()=>{t&&n(t)},[t,n]),e?(0,H.jsx)(Bo,{className:`fixed z-50 translate-1/2`}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`header`,{className:`fixed top-0 z-40 w-full h-20 p-4 bg-gradient-to-r from-violet-100 to-white border-b border-violet-200 dark:from-purple-950 dark:to-zinc-900 dark:border-purple-950 md:px-12`,children:(0,H.jsx)(ki,{})}),(0,H.jsx)(`main`,{children:(0,H.jsx)(Te,{})})]})}var Hd=[`/`,`/forgot-password`,`/reset-password`,`/sign-in`,`/sign-up`,`/verify-email`];function Ud(){let e=Zl();return!Hd.includes(e)&&{redirect:e}}var Wd=P({getParentRoute:()=>Wr,id:`_dashboardLayout`,component:Vd,beforeLoad:({context:e})=>{let t=e.authentication[h];if(t&&!t.isLoading&&!t.user)throw ue({to:`/sign-in`,search:Ud()})}}),Gd=P({getParentRoute:()=>Wd,id:`_orgsLayout`});P({getParentRoute:()=>Gd,path:`/`,head:()=>({meta:[{title:`Organizations — Harper Fabric`}]}),component:Bd}),P({getParentRoute:()=>Gd,path:`/new-org`,head:()=>({meta:[{title:`New Organization — Harper Fabric`}]}),component:Td});var Kd=P({getParentRoute:()=>Gd,path:`$organizationId`,beforeLoad:async e=>{let{organizationId:t}=e.params;if(!ps(t))throw ue({to:`/`});return{organization:await e.context.queryClient.ensureQueryData(hs(t))}}});P({getParentRoute:()=>Kd,path:`/roles`,head:()=>({meta:[{title:`Organization Roles — Harper Fabric`}]}),component:Wu}),P({getParentRoute:()=>Kd,path:`/roles/$orgRoleId`,head:()=>({meta:[{title:`Organization Roles — Harper Fabric`}]}),component:Wu}),P({getParentRoute:()=>Kd,path:`/users`,head:()=>({meta:[{title:`Organization Users — Harper Fabric`}]}),component:ud}),P({getParentRoute:()=>Kd,path:`/users/$orgUserId`,head:()=>({meta:[{title:`Organization Users — Harper Fabric`}]}),component:ud}),P({getParentRoute:()=>Kd,path:`/settings`,component:Xu}),wu(Kd);var qd=P({getParentRoute:()=>Kd,id:`_clusterLayout`});P({getParentRoute:()=>qd,path:`/`,head:()=>({meta:[{title:`Clusters — Harper Fabric`}]}),component:Xl}),P({getParentRoute:()=>Kd,path:`/new-cluster`,head:()=>({meta:[{title:`New Cluster — Harper Fabric`}]}),component:Gl}),P({getParentRoute:()=>Yd,path:`/edit`,head:()=>({meta:[{title:`Edit Cluster — Harper Fabric`}]}),component:Gl}),P({getParentRoute:()=>Yd,path:`/edit/$mode`,head:()=>({meta:[{title:`Edit Cluster — Harper Fabric`}]}),component:Gl});function Jd(){return(0,H.jsx)(Te,{})}var Yd=P({getParentRoute:()=>qd,path:`$clusterId`,component:Jd,beforeLoad:async({context:e,params:t})=>({cluster:await e.queryClient.ensureQueryData(ca(t.clusterId))})});function Xd({children:e,className:t}){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(no,{}),(0,H.jsx)(`div`,{className:T(`mt-32 px-4 py-4 md:px-12 min-h-[calc(100vh-(--spacing(32)))] flex justify-center`,t),children:e})]})}var Zd=new Set([`com`,`co`,`org`,`net`,`edu`,`gov`,`mil`,`me`,`biz`,`info`,`ac`,`or`,`ne`,`go`,`lg`,`asn`,`id`,`nom`,`sch`,`ltd`,`plc`]);function Qd(e){let t=e.split(`.`);if(t.length<=2)return`@`;let n=t[t.length-1],r=t[t.length-2],i=n.length===2&&Zd.has(r)?3:2;return t.length<=i?`@`:t.slice(0,-i).join(`.`)}function $d({cluster:{fqdn:e},domain:{domain:t,id:n}}){let r=Qd(t),[i,a,o]=Lo(r,e||``,n);return(0,H.jsxs)(`div`,{className:`grid gap-4 grid-cols-1 md:grid-cols-[80px_1fr] pb-6`,children:[(0,H.jsx)(`div`,{className:`text-muted-foreground md:col-span-2 text-wrap`,children:`This domain has been verified! Now to associate it with this cluster, add the following to your DNS registrar:`}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`Type:`}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`CNAME`}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`Name:`}),(0,H.jsx)(`div`,{className:`col-span-1 flex gap-2 items-center`,children:(0,H.jsxs)(`div`,{className:`flex items-center gap-1 bg-muted rounded-md px-3 py-1 flex-1 overflow-hidden`,children:[(0,H.jsx)(`input`,{className:`bg-transparent border-none outline-none w-full cursor-text truncate`,type:`text`,readOnly:!0,name:`recordName`,value:r,onClick:i}),(0,H.jsx)(_,{type:`button`,variant:`ghost`,className:`h-6 w-6 p-0 shrink-0`,onClick:i,children:(0,H.jsx)(Pn,{className:`w-3.5 h-3.5`})})]})}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`TTL:`}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`Auto`}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`Target:`}),(0,H.jsx)(`div`,{className:`col-span-1 flex gap-2 items-center`,children:(0,H.jsxs)(`div`,{className:`flex items-center gap-1 bg-muted rounded-md px-3 py-1 flex-1 overflow-hidden`,children:[(0,H.jsx)(`input`,{className:`bg-transparent border-none outline-none w-full cursor-text truncate`,type:`text`,readOnly:!0,name:`recordTarget`,value:e,onClick:a}),(0,H.jsx)(_,{type:`button`,variant:`ghost`,className:`h-6 w-6 p-0 shrink-0`,onClick:a,children:(0,H.jsx)(Pn,{className:`w-3.5 h-3.5`})})]})}),(0,H.jsx)(`div`,{className:`col-span-1 text-xs`,children:`Domain ID:`}),(0,H.jsx)(`div`,{className:`col-span-1 flex gap-2 items-center`,children:(0,H.jsxs)(`div`,{className:`flex items-center gap-1 bg-muted rounded-md px-3 py-0.5 text-xs text-muted-foreground italic flex-1 overflow-hidden`,children:[(0,H.jsx)(`input`,{className:`bg-transparent border-none outline-none w-full cursor-text truncate`,type:`text`,readOnly:!0,name:`domainId`,value:n,onClick:o}),(0,H.jsx)(_,{type:`button`,variant:`ghost`,className:`h-5 w-5 p-0 shrink-0`,onClick:o,children:(0,H.jsx)(Pn,{className:`w-3 h-3`})})]})}),(0,H.jsx)(`div`,{className:`text-muted-foreground md:col-span-2 text-wrap italic text-sm`,children:`Select this domain using the checkbox to the left, then click "Bind" in the top right to finish associating it with this cluster.`})]})}function ef({certificate:e,domain:t,cluster:n}){let r=Qd(t.domain),[i,a,o]=Lo(r,n.fqdn||``,t.id),s=(0,V.useMemo)(()=>e.issueDate&&!e.inProgress?{width:`100%`,color:`bg-green/80`,pulse:!1,text:`Certificate Issued`}:e.inProgress?{width:`100%`,color:`bg-yellow/80`,pulse:!0,text:`Generating Certificate...`}:{width:`100%`,color:`bg-gray-600`,pulse:!1,text:`Pending Certificate Generation...`},[e]);return(0,H.jsxs)(`div`,{className:`w-full max-w-2xl border border-border/50 rounded-md p-4 bg-gray-900/20`,children:[(0,H.jsxs)(`div`,{className:`mb-4`,children:[(0,H.jsx)(`div`,{className:`w-full h-1.5 rounded-full overflow-clip flex shadow-sm bg-gray-800`,children:(0,H.jsx)(`div`,{style:{width:s.width},className:`grow transition-[width] duration-1000 ease-in-out motion-reduce:transition-none ${s.color} ${s.pulse?`animate-pulse`:``}`})}),(0,H.jsx)(`div`,{className:`text-[10px] text-muted-foreground font-light mt-1 italic`,children:s.text})]}),(0,H.jsxs)(`div`,{className:`grid gap-2 grid-cols-1 md:grid-cols-[80px_1fr] text-sm`,children:[(0,H.jsx)(`div`,{className:`col-span-1 text-xs text-muted-foreground`,children:`CNAME:`}),(0,H.jsxs)(`div`,{className:`col-span-1 flex gap-2 items-center flex-wrap`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-1 bg-muted px-2 py-0.5 rounded text-xs`,children:[(0,H.jsx)(`span`,{className:`truncate max-w-[150px]`,title:r,children:r}),(0,H.jsx)(_,{type:`button`,variant:`ghost`,size:`sm`,className:`h-4 w-4 p-0`,onClick:i,title:`Copy Name`,children:(0,H.jsx)(Pn,{className:`w-3 h-3`})})]}),(0,H.jsx)(tf,{}),(0,H.jsxs)(`div`,{className:`flex items-center gap-1 bg-muted px-2 py-0.5 rounded text-xs`,children:[(0,H.jsx)(`span`,{className:`truncate max-w-[200px]`,title:n.fqdn||``,children:n.fqdn}),(0,H.jsx)(_,{type:`button`,variant:`ghost`,size:`sm`,className:`h-4 w-4 p-0`,onClick:a,title:`Copy Target`,children:(0,H.jsx)(Pn,{className:`w-3 h-3`})})]})]}),(0,H.jsx)(`div`,{className:`col-span-1 text-[10px] text-muted-foreground`,children:`Domain ID:`}),(0,H.jsx)(`div`,{className:`col-span-1 flex gap-2 items-center`,children:(0,H.jsxs)(`div`,{className:`flex items-center gap-1 bg-muted px-2 py-0.5 rounded text-[10px] text-muted-foreground italic`,children:[(0,H.jsx)(`span`,{className:`truncate max-w-[200px]`,children:t.id}),(0,H.jsx)(_,{type:`button`,variant:`ghost`,size:`sm`,className:`h-3 w-3 p-0`,onClick:o,title:`Copy ID`,children:(0,H.jsx)(Pn,{className:`w-2.5 h-2.5`})})]})})]})]})}function tf(){return(0,H.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,className:`w-3 h-3 text-muted-foreground`,children:[(0,H.jsx)(`path`,{d:`M5 12h14`}),(0,H.jsx)(`path`,{d:`m12 5 7 7-7 7`})]})}function nf(e){let{enabled:t,entityId:n,databaseName:r,tableName:i,searchAttribute:a,sort:o,pageIndex:s,pageSize:c,onlyIfCached:l}=e;return A({enabled:t,queryKey:[n,r,i,`search_by_value`,a,o.attribute||`default`,o.descending||!1,s||0,c||0,l],retry:!1,staleTime:6e4,gcTime:5e3,queryFn:()=>rf(e)})}async function rf({instanceClient:e,databaseName:t,tableName:n,searchAttribute:r,sort:i,pageIndex:a,pageSize:o,onlyIfCached:s,headers:c}){let l=i.attribute.length&&!(i.attribute===r&&!i.descending),u=await e.post(`/`,{operation:`search_by_value`,get_attributes:[`*`],database:t,table:n,search_attribute:r,search_value:`*`,sort:l?i:void 0,offset:a*o,limit:o,onlyIfCached:s,noCacheStore:s},{timeout:0,headers:c,validateStatus:e=>e>=200&&e<400||e===404});return u.status===404?{data:[]}:u}function af(e){return A({queryKey:[e,`ChallengeCertificate`],queryFn:async()=>{if(!e)return[];let{data:t}=await rf({searchAttribute:`domain`,entityId:e,databaseName:`data`,tableName:`ChallengeCertificate`,sort:{attribute:`domain`,descending:!0},instanceClient:o({id:e,forceFabricConnect:!0}),onlyIfCached:!1,pageIndex:0,pageSize:100});return t},enabled:!!e,refetchInterval:5e3})}function of(e){return M(af(e))}function sf({domain:{challengeToken:e,challengeTxtRecord:t,domain:n,id:r},cluster:{fqdn:i}}){let a=Qd(n),[o,s,c,l,u]=Lo(t,e,a,i||``,r);return(0,H.jsxs)(`div`,{className:`grid gap-2 grid-cols-1 md:grid-cols-[80px_1fr] pb-6`,children:[(0,H.jsx)(`div`,{className:`text-muted-foreground md:col-span-2 text-wrap`,children:`Prove that you own this domain by adding the following to your DNS registrar:`}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`Type:`}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`TXT`}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`Name:`}),(0,H.jsx)(`div`,{className:`col-span-1 flex gap-2 items-center`,children:(0,H.jsxs)(`div`,{className:`flex items-center gap-1 bg-muted rounded-md px-3 py-1 flex-1 overflow-hidden`,children:[(0,H.jsx)(`input`,{className:`bg-transparent border-none outline-none w-full cursor-text truncate`,type:`text`,readOnly:!0,name:`challengeName`,value:t,onClick:o}),(0,H.jsx)(_,{type:`button`,size:`sm`,variant:`ghost`,className:`h-6 w-6 p-0 shrink-0`,onClick:o,children:(0,H.jsx)(Pn,{className:`w-3.5 h-3.5`})})]})}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`TTL:`}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`Auto`}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`Content:`}),(0,H.jsx)(`div`,{className:`col-span-1 flex gap-2 items-center`,children:(0,H.jsxs)(`div`,{className:`flex items-center gap-1 bg-muted rounded-md px-3 py-1 flex-1 overflow-hidden`,children:[(0,H.jsx)(`input`,{className:`bg-transparent border-none outline-none w-full cursor-text truncate`,type:`text`,readOnly:!0,name:`challengeToken`,value:e,onClick:s}),(0,H.jsx)(_,{type:`button`,size:`sm`,variant:`ghost`,className:`h-6 w-6 p-0 shrink-0`,onClick:s,children:(0,H.jsx)(Pn,{className:`w-3.5 h-3.5`})})]})}),(0,H.jsx)(`div`,{className:`text-muted-foreground md:col-span-2 text-wrap mt-4`,children:`While you're at it, you should also add the CNAME record to point to this cluster:`}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`Type:`}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`CNAME`}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`Name:`}),(0,H.jsx)(`div`,{className:`col-span-1 flex gap-2 items-center`,children:(0,H.jsxs)(`div`,{className:`flex items-center gap-1 bg-muted rounded-md px-3 py-1 flex-1 overflow-hidden`,children:[(0,H.jsx)(`input`,{className:`bg-transparent border-none outline-none w-full cursor-text truncate`,type:`text`,readOnly:!0,name:`recordName`,value:a,onClick:c}),(0,H.jsx)(_,{type:`button`,size:`sm`,variant:`ghost`,className:`h-6 w-6 p-0 shrink-0`,onClick:c,children:(0,H.jsx)(Pn,{className:`w-3.5 h-3.5`})})]})}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`TTL:`}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`Auto`}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`Target:`}),(0,H.jsx)(`div`,{className:`col-span-1 flex gap-2 items-center`,children:(0,H.jsxs)(`div`,{className:`flex items-center gap-1 bg-muted rounded-md px-3 py-1 flex-1 overflow-hidden`,children:[(0,H.jsx)(`input`,{className:`bg-transparent border-none outline-none w-full cursor-text truncate`,type:`text`,readOnly:!0,name:`recordTarget`,value:i,onClick:l}),(0,H.jsx)(_,{type:`button`,size:`sm`,variant:`ghost`,className:`h-6 w-6 p-0 shrink-0`,onClick:l,children:(0,H.jsx)(Pn,{className:`w-3.5 h-3.5`})})]})}),(0,H.jsx)(`div`,{className:`col-span-1 text-xs`,children:`Domain ID:`}),(0,H.jsx)(`div`,{className:`col-span-1 flex gap-2 items-center`,children:(0,H.jsxs)(`div`,{className:`flex items-center gap-1 bg-muted rounded-md px-3 py-0.5 text-xs text-muted-foreground italic flex-1 overflow-hidden`,children:[(0,H.jsx)(`input`,{className:`bg-transparent border-none outline-none w-full cursor-text truncate`,type:`text`,readOnly:!0,name:`domainId`,value:r,onClick:u}),(0,H.jsx)(_,{type:`button`,size:`sm`,variant:`ghost`,className:`h-5 w-5 p-0 shrink-0`,onClick:u,children:(0,H.jsx)(Pn,{className:`w-3 h-3`})})]})}),(0,H.jsx)(`div`,{className:`text-muted-foreground md:col-span-2 text-wrap mt-2`,children:`Then after your DNS TTL elapses, click the "Validate" button above.`})]})}async function cf({clusterId:e,domainIds:t,generateDomainCerts:n}){let{data:r}=await c.put(`/Cluster/${e}`,{domainIds:t,generateDomainCerts:n},{timeout:0});return r}function lf(){return F({mutationFn:e=>cf(e)})}D.object({domainId:D.string()});async function uf(e){let{data:t}=await c.delete(`/Domain/${e.domainId}`);return t}function df(){return F({mutationFn:e=>uf(e)})}function ff(e){return[...new Set(e)]}var pf=pe();function mf(e,t,n){let{data:r}=of(e.id),i=(0,V.useMemo)(()=>!!r?.some(e=>!e.issueDate||e.inProgress),[r]),{mutate:a,isPending:o}=lf(),{mutate:s,isPending:c}=df(),l=o||c,u=(0,V.useCallback)((t,n)=>{if(!io(e.status)){L.error(`Cluster is currently `+e.status,{description:`To bind a domain, it must be running.`});return}a({clusterId:e.id,domainIds:ff((e.domainIds?.slice()||[]).concat([t])),generateDomainCerts:n},{onSuccess:()=>{Ir.invalidateQueries({queryKey:[e.organizationId],refetchType:`active`}),L.success(`Domain bound!`+(n?` Certificates are being generated in the background now.`:``))}})},[a,e]),d=(0,V.useCallback)(t=>{s({domainId:t},{onSuccess:()=>{Ir.invalidateQueries({queryKey:[e.organizationId,`domains`],refetchType:`active`}),L.success(`Domain removed!`)}})},[s]),f=(0,V.useCallback)(t=>{a({clusterId:e.id,domainIds:(e.domainIds?.slice()||[]).filter(e=>e!==t),generateDomainCerts:!1},{onSuccess:()=>{Ir.invalidateQueries({queryKey:[e.organizationId],refetchType:`active`}),L.success(`Domain unbound!`)}})},[s]);return(0,V.useMemo)(()=>[pf.display({id:`select`,header:`Bind`,size:50,cell:r=>{let a=r.row.original;return a.status===`ACTIVE`&&!a.clusterId&&!jo(e)?(0,H.jsx)(`label`,{className:`p-10 -m-10`,children:(0,H.jsx)(`input`,{type:`checkbox`,checked:t.includes(a.id),onChange:()=>n(a.id),disabled:l||i})}):null}}),pf.display({header:`Domains`,id:`domain`,enableSorting:!1,size:150,cell:e=>{let t=e.row.original;return(0,H.jsxs)(Wi,{children:[(0,H.jsx)(Gi,{asChild:!0,children:(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{children:t.domain}),(0,H.jsx)(_,{type:`button`,variant:`destructiveGhost`,className:`text-muted-foreground text-xs`,disabled:l||!!t.clusterId,onClick:()=>d(t.id),children:`Remove Domain`})]})}),(0,H.jsx)(Ki,{side:`bottom`,align:`center`,children:t.clusterId?`To delete this domain, please unbind it from all clusters first.`:`Remember to clean up your DNS records!`})]})}}),pf.display({header:`Next Steps`,enableSorting:!1,size:500,id:`nextSteps`,cell:t=>{let n=t.row.original,i=r?.find(e=>e.domain===n.domain);return n.status===`ACTIVE`&&n.clusterId?e.id===n.clusterId?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{children:`Bound to this cluster`}),i&&(!i.issueDate||i.inProgress)&&(0,H.jsx)(`div`,{className:`py-2`,children:(0,H.jsx)(ef,{certificate:i,domain:n,cluster:e})}),(0,H.jsx)(_,{type:`button`,variant:`destructiveGhost`,className:`text-muted-foreground text-xs`,disabled:l,onClick:()=>f(n.id),children:`Unbind Domain`})]}):`Bound to cluster ${n.clusterId}`:n.status===`PENDING_VALIDATION`?(0,H.jsx)(sf,{domain:n,cluster:e}):jo(e)?`Cannot be associated with this self-managed cluster.`:n.status===`ACTIVE`&&!n.clusterId?(0,H.jsx)($d,{cluster:e,domain:n}):n.status}})],[e,u,l,r,i,t,n])}var hf=D.object({domain:D.string(),organizationId:D.string()});async function gf(e){let{data:t}=await c.post(`/Domain/`,e);return t}function _f(){return F({mutationFn:e=>gf(e)})}async function vf(e){let{data:t}=await c.post(`/Domain/${e}/validate`);return t}async function yf(e){let{data:t}=await c.get(`/Domain/?organizationId=${e}`);return t}function bf(e){return A({queryKey:[e,`domains`],queryFn:()=>yf(e)})}function xf(){let{organizationId:e,clusterId:t}=j({strict:!1}),{data:n}=be(ca(t,!0)),{update:r}=bi(e),{data:i,refetch:a,isFetching:o,isRefetching:s}=M(bf(e)),c=(0,V.useMemo)(()=>i?.filter(e=>e.status===`PENDING_VALIDATION`)||[],[i]),[l]=(0,V.useState)({attribute:`domain`,descending:!1}),u=(0,V.useMemo)(()=>[{desc:l.descending,id:l.attribute}],[l]),f=bu(a),[p,m]=(0,V.useState)([]),h=(0,V.useCallback)(e=>{m(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[]),{mutate:g,isPending:v}=lf(),y=(0,V.useCallback)(()=>{if(!io(n.status)){L.error(`Cluster is currently `+n.status,{description:`To bind a domain, it must be running.`});return}g({clusterId:n.id,domainIds:ff((n.domainIds?.slice()||[]).concat(p)),generateDomainCerts:!0},{onSuccess:()=>{Ir.invalidateQueries({queryKey:[n.organizationId],refetchType:`active`}),L.success(`Domain(s) bound! Certificates are being generated in the background now.`),m([])}})},[n,p,g]),{mutateAsync:b,isPending:x}=_f(),S=z({resolver:R(hf),defaultValues:{domain:``,organizationId:e}}),C=(0,V.useCallback)(async e=>{if(e){let t=e.domain.split(/[,\s]+/).map(e=>e.trim()).filter(Boolean);for(let n of t)await b({...e,domain:n});S.reset(),await a(),L.success(`${d(t.length,`Domain`,`Domains`)} added! Please add the txt record above to your domain registrar.`)}},[b,S,a]),ee=(0,V.useCallback)(async()=>{let e=`Validating ${d(c.length,`domain`,`domains`)}...`,t=`validatingDomains`,n=0,r=0;for(let i of c)try{L.loading(e,{description:`${n++} of ${c.length} checked`,id:t}),await vf(i.id)}catch{r+=1}r>0?L.error(`Validation failed!`,{description:`Please make sure the TXT record has been put in place. You may need to wait a bit for the DNS change to propagate.`,id:t}):(await a(),L.success(`Validation succeeded!`,{description:`Please take a look at the next steps for newly verified domains.`,id:t}))},[c]),w=mf(n,p,h),T=S.watch(`domain`),E=(0,V.useMemo)(()=>typeof T==`string`?T.trim().split(`.`).length===2:!1,[T]),D=(0,V.useCallback)(()=>{typeof T==`string`&&S.setValue(`domain`,`${T.trim()}, www.${T.trim()}`)},[T,S]);return(0,H.jsx)(hu,{data:i||[],isFetching:o||s,columns:w,sortingState:u,children:(0,H.jsxs)(`div`,{className:`w-full flex flex-col md:flex-row items-center md:justify-between md:space-x-2 space-y-2 md:space-y-0`,children:[r&&(0,H.jsx)(W,{...S,children:(0,H.jsxs)(`form`,{id:`cluster-add-domain-form`,name:`cluster-add-domain-form`,onSubmit:S.handleSubmit(C),className:`flex gap-1 flex-col md:flex-row`,children:[(0,H.jsx)(K,{control:S.control,name:`domain`,render:({field:e})=>(0,H.jsxs)(q,{className:`flex-1`,children:[(0,H.jsx)(J,{className:`pb-1`,children:`New Domain Name`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`text`,enterKeyHint:`done`,autoComplete:`off`,...e})}),E&&(0,H.jsxs)(`div`,{className:`mt-1 flex gap-4`,children:[`Adding an apex domain?`,(0,H.jsx)(_,{variant:`positiveOutline`,type:`button`,onClick:D,children:`Add www as well`})]}),(0,H.jsx)(Y,{children:(0,H.jsx)(`span`,{className:`text-muted-foreground italic`,children:`Type in a domain like example.com or your.example.com, and you'll be guided through validating and binding your cluster to it.`})})]})}),(0,H.jsxs)(`div`,{className:`flex-0 self-start flex gap-1 md:pt-6.5`,children:[(0,H.jsxs)(_,{type:`submit`,variant:`submit`,disabled:x,children:[(0,H.jsx)(cr,{}),` Add`]}),c.length>0&&(0,H.jsxs)(_,{variant:`positiveOutline`,onClick:ee,accessKey:`r`,type:`button`,disabled:o||s,children:[(0,H.jsx)(Xn,{}),` `,(0,H.jsxs)(`span`,{children:[(0,H.jsx)(`u`,{children:`V`}),`alidate`]})]}),(0,H.jsxs)(_,{variant:`defaultOutline`,onClick:f,accessKey:`r`,type:`button`,disabled:o||s,children:[(0,H.jsx)(dr,{}),` `,(0,H.jsxs)(`span`,{className:`hidden lg:inline-block`,children:[(0,H.jsx)(`u`,{children:`R`}),`efresh`]})]})]})]})}),p.length>0&&(0,H.jsx)(`div`,{className:`flex-0 self-start md:pt-6.5`,children:(0,H.jsxs)(_,{variant:`submit`,onClick:y,disabled:v,children:[(0,H.jsx)(pr,{}),` Bind `,d(p.length,`Domain`,`Domains`)]})})]})})}function Sf(){return(0,H.jsx)(Xd,{className:`flex flex-col justify-start max-w-4xl`,children:(0,H.jsx)(xf,{})})}var Cf=O({username:da,role:k().nonempty({error:`Please select a role.`}),password:ua.min(8,{error:`Password must be at least 8 characters long.`}),confirmPassword:k()}).refine(e=>e.password===e.confirmPassword,{error:`Passwords do not match.`,path:[`confirmPassword`]});async function wf(e){await c.patch(`/ResetPasswordUpdater/${e}`)}async function Tf(e){let{instanceClient:t,...n}=e,{data:r}=await t.post(`/`,{operation:`add_user`,...n});return r}function Ef(){return F({mutationFn:Tf})}async function Df({username:e,password:t,role:n,active:r,instanceClient:i}){let{data:a}=await i.post(`/`,{operation:`alter_user`,username:e,password:t,role:n,active:r});return a}function Of(){return F({mutationFn:Df})}async function kf({username:e,instanceClient:t}){let{data:n}=await t.post(`/`,{operation:`drop_user`,username:e});return n}function Af(){return F({mutationFn:kf})}async function jf({clusterId:e,initialUsername:t,desiredUsername:n,newPassword:r,tempPassword:a,instanceClient:o}){if(!a)throw Error(`You may not have permission to set the password on this cluster.`);let c=o;try{let i=await ia({username:t,password:a,instanceClient:c,entityId:e});return i.instanceClient&&(c=i.instanceClient),n===`HDB_ADMIN`?await Df({username:n,password:r,instanceClient:c}):(await Tf({username:n,password:r,role:`super_user`,active:!0,instanceClient:c}),await ia({username:n,password:r,instanceClient:c,entityId:e}),await kf({username:s,instanceClient:c})),await wf(e),i}catch(t){throw await i({entityId:e,instanceClient:c}),t}}function Mf(){return F({mutationFn:jf})}function Nf(){let{user:e}=Yt(),{clusterId:t}=j({strict:!1}),{data:n}=M(ca(t,!0)),r=je(),i=(0,V.useMemo)(()=>p(n),[n]),a=di({operationsUrl:i}),{redirect:o}=N({strict:!1}),c=ae(),u=z({resolver:R(Cf),defaultValues:{confirmPassword:``,password:``,role:`super_user`,username:e?.email??``}}),{setFocus:d,control:f,handleSubmit:m}=u;(0,V.useEffect)(()=>{d(`password`)},[d]);let h=n?.instances?.find(e=>e.tempPassword)?.tempPassword,{mutate:g,isPending:v}=Mf(),y=(0,V.useCallback)(async e=>{if(!i){L.error(`Cluster is not yet fully loaded, please wait a moment before trying to sign in.`);return}g({instanceClient:a,clusterId:t,newPassword:e.password,tempPassword:h,initialUsername:s,desiredUsername:e.username},{onSuccess:async({message:e,user:t})=>{L.success(e),l.setUserForEntity(n,t),c.invalidate(),await r({to:o?.startsWith(`/`)?o:`../`})}})},[n,t,a,r,i,o,c,g,h]);return n&&!n.resetPassword?(0,H.jsx)(me,{to:`../sign-in`,replace:!0}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`nav`,{"aria-label":`Breadcrumb`,className:`fixed top-20 w-full h-12 z-39 px-4 md:px-12 bg-violet-50 border-b border-violet-100 dark:bg-grey-700 dark:border-none flex items-center`,children:(0,H.jsx)(Xi,{})}),(0,H.jsx)(`div`,{className:`items-center justify-center flex mt-32 py-4 min-h-[calc(100vh-(--spacing(32)))]`,children:(0,H.jsxs)(`div`,{className:`text-foreground w-xs`,children:[(0,H.jsx)(`h1`,{className:`text-2xl font-light`,children:`Create Admin User`}),(0,H.jsx)(`p`,{className:`text-muted-foreground`,children:`You are ready to create your first user in your new cluster. These credentials belong to you alone, and you can create more users and roles once you create this first one.`}),(0,H.jsx)(W,{...u,children:(0,H.jsxs)(`form`,{id:`cluster-create-admin-form`,name:`cluster-create-admin-form`,onSubmit:m(y),className:`my-4`,children:[(0,H.jsx)(K,{control:f,name:`username`,render:({field:e})=>(0,H.jsxs)(q,{className:`my-4`,children:[(0,H.jsx)(J,{children:`Username`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{autoComplete:`username`,type:`text`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:f,name:`password`,render:({field:e})=>(0,H.jsxs)(q,{className:`my-4`,children:[(0,H.jsx)(J,{children:`Password`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`password`,autoComplete:`new-password`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:f,name:`confirmPassword`,render:({field:e})=>(0,H.jsxs)(q,{className:`my-4`,children:[(0,H.jsx)(J,{children:`Confirm Password`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`password`,autoComplete:`new-password`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(_,{disabled:v,type:`submit`,variant:`submit`,className:`w-full my-2 rounded-full`,children:`Create Admin User`})]})}),(0,H.jsxs)(`p`,{className:`text-muted-foreground flex gap-2 align-middle`,children:[(0,H.jsx)(sn,{size:36,className:`flex-none`}),(0,H.jsx)(`span`,{children:`These credentials will be used to sign into your cluster directly, providing you a secure connection from your browser to your cluster.`})]})]})})]})}function Pf({columns:e,data:t}){let n=ye({data:t,columns:e,getCoreRowModel:we()});return(0,H.jsx)(`div`,{className:`bg-card dark:bg-black-dark rounded-md`,children:(0,H.jsxs)(cu,{children:[(0,H.jsx)(lu,{children:n.getHeaderGroups().map(e=>(0,H.jsx)(du,{className:`border-none`,children:e.headers.map(e=>(0,H.jsx)(fu,{className:`p-4`,style:{width:`${e.getSize()}%`},children:e.isPlaceholder?null:Ee(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,H.jsx)(uu,{className:`bg-background dark:bg-black`,children:n.getRowModel().rows?.length?n.getRowModel().rows.map(e=>(0,H.jsx)(du,{"data-state":e.getIsSelected()&&`selected`,className:`hover:bg-muted/10 data-[state=selected]:bg-muted`,children:e.getVisibleCells().map(e=>(0,H.jsx)(mu,{className:`p-4`,style:{width:`${e.column.getSize()}%`},children:Ee(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,H.jsx)(du,{children:(0,H.jsx)(mu,{colSpan:e.length,className:`h-24 text-center`,children:`No results.`})})})]})})}function Ff(){return(0,H.jsx)(`div`,{className:`flex-col items-center justify-center px-16 space-y-3 text-center pt-30`,children:(0,H.jsx)(`p`,{children:`No instances found.`})})}function If({isSelfManaged:e,instance:t}){let{user:n,isLoading:a}=Qt(t.id),o=di({operationsUrl:(0,V.useMemo)(()=>r(t),[t])}),{update:s}=Ci(),c=l.checkForFabricConnect(t.id),u=(0,V.useCallback)(async()=>{await i({instanceClient:o,entityId:t.id}),l.setUserForEntity(t,null)},[t,o]);return a||!t.status||![`CLONE_READY`,`RUNNING`,`UPDATED`,`PENDING_UPGRADE`].includes(t.status)?(0,H.jsx)(Zn,{className:`animate-spin`,color:`gray`}):!n||c?(0,H.jsxs)(`span`,{className:`flex gap-4`,children:[s&&!e&&(0,H.jsx)(I,{to:`../instance/${t.id}/`,className:`text-sm`,"aria-label":`Connect to ${t.name} instance`,title:`Connect to ${t.name} instance`,children:(0,H.jsx)(_,{variant:`positiveOutline`,children:`Fabric Connect`})}),(0,H.jsx)(I,{to:`../instance/${t.id}/sign-in`,className:`text-sm`,"aria-label":`Sign in to ${t.name} instance`,title:`Sign in to ${t.name} instance`,children:(0,H.jsx)(_,{variant:s?`defaultOutline`:`positiveOutline`,children:`Direct Sign In`})})]}):(0,H.jsxs)(`span`,{className:`flex gap-4`,children:[(0,H.jsx)(I,{to:`../instance/${t.id}/`,className:`text-sm`,"aria-label":`Go to ${t.name} instance`,title:`Go to ${t.name} instance`,children:(0,H.jsx)(_,{variant:`positiveOutline`,children:`Direct Connect`})}),(0,H.jsx)(_,{variant:`destructiveOutline`,className:`text-sm`,"aria-label":`Sign out from ${t.name} instance`,title:`Sign out from ${t.name} instance`,onClick:u,children:`Direct Sign Out`})]})}function Lf({entityId:e,instanceClient:t},n){return A({queryKey:[e,`get_status`],staleTime:9e3,refetchInterval:1e4,retryDelay:1e4,throwOnError:!1,enabled:n,queryFn:async()=>{let{data:e}=await t.post(`/`,{operation:`get_status`});return e}})}function Rf(e,t){return e?.systemStatus?.find(e=>e.id===t)?.status}async function zf({instanceClient:e,id:t,status:n}){let{data:r}=await e.post(`/`,{operation:`set_status`,id:t,status:n});return r}function Bf(){return F({mutationFn:zf,onSuccess:(e,t)=>Ir.invalidateQueries({queryKey:[t.entityId,`get_status`]})})}function Vf({instance:e,index:t}){let{update:n}=Ci(),i=U({operationsUrl:(0,V.useMemo)(()=>r(e),[e]),instanceId:e.id,forceFabricConnect:!0}),{mutate:a,isPending:o}=Bf(),[s,c]=(0,V.useState)(!1);(0,V.useEffect)(()=>{let e=setTimeout(()=>c(!0),t*500);return()=>clearTimeout(e)},[t]);let{data:l,isLoading:u,isFetching:d}=M(Lf(i,s&&n)),f=Rf(l,`availability`)||`Unknown`,p=f===`Available`,m=f===`Unavailable`;return n?(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsxs)(Wi,{children:[(0,H.jsx)(Gi,{asChild:!0,children:(0,H.jsx)(`div`,{className:`flex items-center`,children:u||!s||d&&!l?(0,H.jsx)(Zn,{className:`animate-spin size-5 text-muted-foreground`}):(0,H.jsx)(yo,{variant:p?`success`:m?`destructive`:`default`,className:`size-4 rounded-full p-0`,children:(0,H.jsx)(`span`,{className:`sr-only`,children:p?`Online`:`Offline`})})})}),(0,H.jsxs)(Ki,{children:[d&&l?`Refreshing... `:``,f]})]}),n&&(0,H.jsxs)(`div`,{className:`flex gap-1`,children:[p&&(0,H.jsxs)(Wi,{children:[(0,H.jsx)(Gi,{asChild:!0,children:(0,H.jsx)(_,{type:`button`,variant:`destructiveGhost`,size:`icon`,onClick:()=>a({...i,id:`availability`,status:`Unavailable`}),disabled:o,children:o?(0,H.jsx)(Zn,{className:`animate-spin size-4`}):(0,H.jsx)(yr,{className:`size-4`})})}),(0,H.jsx)(Ki,{children:`Bring out of rotation`})]}),m&&(0,H.jsxs)(Wi,{children:[(0,H.jsx)(Gi,{asChild:!0,children:(0,H.jsx)(_,{type:`button`,variant:`ghost`,size:`icon`,onClick:()=>a({...i,id:`availability`,status:`Available`}),disabled:o,children:o?(0,H.jsx)(Zn,{className:`animate-spin size-4`}):(0,H.jsx)(vr,{className:`size-4`})})}),(0,H.jsx)(Ki,{children:`Bring back into rotation`})]})]})]}):null}function Hf(){let{clusterId:e}=j({strict:!1}),{data:t,isLoading:n}=M(ca(e,!0)),r=jo(t),i=(0,V.useMemo)(()=>[{id:`instanceActions`,size:1,minSize:1,cell:e=>(0,H.jsx)(`div`,{className:`flex justify-end gap-2 items-center`,children:(0,H.jsx)(If,{isSelfManaged:r,instance:e.row.original})})},r&&{accessorKey:`instanceFqdn`,size:90,header:`URL`,cell:e=>Ll({secure:e.row.original.operationsApiSecure?`true`:`false`,port:e.row.original.operationsApiPort,fqdn:e.row.original.instanceFqdn})},!r&&{accessorKey:`name`,size:90,header:`Name`},{accessorKey:`status`,header:`Status`,size:1,minSize:1,cell:e=>{let t=e.getValue();return(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(Vf,{instance:e.row.original,index:e.row.index}),t?(0,H.jsx)(yo,{variant:ro(t),children:Ji(t)}):null]})}},!r&&{accessorKey:`version`,size:1,minSize:1,header:`Version`},!r&&{accessorKey:`storageGb`,size:1,minSize:1,header:`Storage`,cell:e=>`${e.getValue()} GB`},!r&&{accessorKey:`usedStorageGb`,size:1,minSize:1,header:`Used Storage`,cell:e=>{let t=e.getValue();return t===void 0?`-`:`${t} GB`}},!r&&{accessorKey:`cpuCores`,size:1,minSize:1,header:`Cores/Threads`,cell:e=>(0,H.jsxs)(H.Fragment,{children:[e.row.original.cpuCores,` / `,e.row.original.threads]})},!r&&{accessorKey:`memoryMb`,size:1,minSize:1,header:`Memory`,cell:e=>`${e.getValue()/1024} GB`}].filter(Lr),[r]),a=(0,V.useMemo)(()=>t?.instances?t.instances.filter(e=>e.status&&!na.includes(e.status)).sort(Zo):[],[t]);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(no,{}),(0,H.jsx)(`div`,{className:`mt-32 px-4 pt-4 md:px-12 min-h-[calc(100vh-(--spacing(32)))]`,children:(0,H.jsx)($t,{className:`p-0 mt-4 min-h-96`,children:(0,H.jsx)(rn,{className:`p-0 min-h-96`,children:n?(0,H.jsx)(Qc,{}):a.length?(0,H.jsx)(Pf,{data:a,columns:i}):(0,H.jsx)(Ff,{})})})})]})}function Uf(){let{clusterId:e}=j({strict:!1}),{data:t,isLoading:n}=M(ca(e,2e3)),r=t?.status,i=(0,V.useMemo)(()=>r&&ta.includes(r),[r]);return n||!t?(0,H.jsx)(Xd,{className:`flex justify-center`,children:(0,H.jsx)(Qc,{})}):i?(0,H.jsx)(Xd,{className:`flex justify-center`,children:(0,H.jsxs)(`div`,{className:`center w-2xl flex flex-col gap-4`,children:[(0,H.jsx)(`h1`,{className:`text-xl text-center`,children:`All done!`}),(0,H.jsx)(Po,{cluster:t,forceProgressBarVisible:!0}),(0,H.jsx)(`p`,{children:`Your cluster finished updating, and is ready for interaction.`}),(0,H.jsx)(`div`,{className:`text-center`,children:(0,H.jsx)(Mo,{cluster:t})})]})}):(0,H.jsx)(Xd,{className:`flex justify-center`,children:(0,H.jsxs)(`div`,{className:`center w-2xl flex flex-col gap-4`,children:[(0,H.jsx)(`h1`,{className:`text-xl text-center`,children:`Here we go!`}),(0,H.jsx)(Po,{cluster:t,forceProgressBarVisible:!0}),(0,H.jsxs)(`p`,{children:[`Your cluster is updating with the latest changes. This includes waiting several minutes to let traffic drain safely.`,` `,(0,H.jsxs)(`span`,{className:`text-muted-foreground`,children:[`We will let you know when we are ready for you to connect! In the meantime, join us on`,` `,(0,H.jsx)(`a`,{href:`https://discord.gg/VzZuaw3Xay`,target:`_blank`,rel:`noreferrer`,className:`underline hover:text-blue-300`,children:`Discord`}),`! Get real-time help from our engineers, see feature drops early, and connect with others building on Fabric.`]})]})]})})}function Wf(){let e=ae(),{clusterId:t}=j({strict:!1}),{data:n,isLoading:r}=M(ca(t,2e3)),i=n?.status,a=(0,V.useMemo)(()=>i&&ta.includes(i),[i]),o=ao(i),[,s]=Xr(Qr.SavedClusterState,null),c=(0,V.useCallback)(()=>{s(n),e.navigate({to:`/${n.organizationId}/new-cluster`})},[n,e,s]);return r||!n?(0,H.jsx)(Xd,{className:`flex justify-center`,children:(0,H.jsx)(Qc,{})}):o?(0,H.jsx)(Xd,{className:`flex justify-center`,children:(0,H.jsxs)(`div`,{className:`center max-w-2xl flex flex-col gap-4 items-center`,children:[(0,H.jsx)(An,{className:`w-24 h-24`}),(0,H.jsxs)(`span`,{children:[`Your cluster failed to successfully start. This is usually caused by temporary communication problems. Would you like to try again? We also get notified about these failures. `,(0,H.jsx)(zo,{}),` if you want more help.`]}),(0,H.jsx)(_,{type:`button`,variant:`positiveOutline`,onClick:c,children:`Try Again`})]})}):a?(0,H.jsx)(Xd,{className:`flex justify-center`,children:(0,H.jsxs)(`div`,{className:`center max-w-2xl flex flex-col gap-4`,children:[(0,H.jsx)(`h1`,{className:`text-xl text-center`,children:`It's ready!`}),(0,H.jsx)(Po,{cluster:n,forceProgressBarVisible:!0}),(0,H.jsxs)(`p`,{children:[`Let's set up your secure, browser-to-cluster connection now.`,` `,(0,H.jsxs)(`span`,{className:`text-muted-foreground`,children:[`Did you know during this step, you connect straight to your cluster, providing a private secure connection? That's `,(0,H.jsx)(`em`,{children:`Direct Connect`}),`! Once you create your user, you will have the option to`,` `,(0,H.jsx)(`em`,{children:`Fabric Connect`}),` from your Fabric account without having to sign in again.`]})]}),(0,H.jsx)(`div`,{className:`text-center`,children:(0,H.jsx)(Mo,{cluster:n})})]})}):(0,H.jsx)(Xd,{className:`flex justify-center`,children:(0,H.jsxs)(`div`,{className:`center max-w-2xl flex flex-col gap-4`,children:[(0,H.jsx)(`h1`,{className:`text-xl text-center`,children:`Here we go!`}),(0,H.jsx)(Po,{cluster:n,forceProgressBarVisible:!0}),(0,H.jsxs)(`p`,{children:[`Your cluster is spinning up with the latest changes, including your own DNS records and private connections. Please wait while we get everything going.`,` `,(0,H.jsxs)(`span`,{className:`text-muted-foreground`,children:[`We will let you know when we are ready for you to connect! In the meantime, join us on`,` `,(0,H.jsx)(`a`,{href:`https://discord.gg/VzZuaw3Xay`,target:`_blank`,rel:`noreferrer`,className:`underline hover:text-blue-300`,children:`Discord`}),`! Get real-time help from our engineers, see feature drops early, and connect with others building on Fabric.`]})]})]})})}P({getParentRoute:()=>Yd,path:`instances`,head:()=>({meta:[{title:`Instances — Harper Fabric`}]}),component:Hf}),P({getParentRoute:()=>Yd,path:`starting-up`,head:()=>({meta:[{title:`Starting Up — Harper Fabric`}]}),component:Wf}),P({getParentRoute:()=>Yd,path:`scaling`,head:()=>({meta:[{title:`Scaling — Harper Fabric`}]}),component:Uf}),P({getParentRoute:()=>Yd,path:`domains`,head:()=>({meta:[{title:`Domains — Harper Fabric`}]}),component:Sf}),P({getParentRoute:()=>Yd,path:`sign-in`,head:()=>({meta:[{title:`Sign In — Harper Fabric`}]}),component:va,beforeLoad:({context:e,location:t,params:n})=>{let r=l.checkForFabricConnect(n.clusterId);if(e.authentication[n.clusterId]?.user&&!r){let e=t?.search;throw ue({to:e?.redirect?.startsWith(`/`)?e.redirect:`../`})}}}),P({getParentRoute:()=>Yd,path:`instance/$instanceId/sign-in`,head:()=>({meta:[{title:`Sign In — Harper Fabric`}]}),component:va,beforeLoad:({context:e,location:t,params:n})=>{if(!(l.checkForFabricConnect(n.clusterId)||l.checkForFabricConnect(n.instanceId))&&e.authentication[n.instanceId]?.user){let e=t?.search;throw ue({to:e?.redirect?.startsWith(`/`)?e.redirect:`../`})}}}),P({getParentRoute:()=>Yd,path:`finish-setup`,head:()=>({meta:[{title:`Create Admin User — Harper Fabric`}]}),component:Nf});function Gf(e){return P({getParentRoute:()=>e,path:`apis`,head:()=>({meta:[{title:`APIs — Harper Fabric`}]})}).lazy(()=>Pe(()=>import(`./index.lazy-0hLbh5Fo.js`).then(e=>e.route),__vite__mapDeps([8,2,1,9,10,11,12,13,14,15])))}function Kf(e){return[P({getParentRoute:()=>e,path:`/`,head:()=>({meta:[{title:`Applications — Harper Fabric`}]}),component:Se(()=>Pe(()=>import(`./applications-C3y3xwyG.js`),__vite__mapDeps([16,2,1,12,13,10,9,17,18,11,19,4,5,14,20])),`ApplicationsEditor`)})]}async function qf({instanceClient:e}){let{data:t}=await e.post(`/`,{operation:`list_certificates`});return t}function Jf(e){return A({queryKey:[e.entityId,`list_certificates`],queryFn:()=>qf(e)})}var Yf=[{header:`Certificate Name`,accessorKey:`name`,enableSorting:!0},{header:`Issuer`,accessorKey:`details.issuer`,enableSorting:!0},pe().display({header:`Expires At`,enableSorting:!1,id:`details.valid_to`,cell:e=>e.row.original.details.valid_to?new Date(e.row.original.details.valid_to).toLocaleString():`N/A`})];function Xf({className:e,...t}){return(0,H.jsx)(`textarea`,{"data-slot":`input`,className:f(`border-input file:text-foreground placeholder:text-muted-foreground selection:bg-purple
12
+ `)}}];function bu(e){return(0,V.useCallback)(async()=>{L.loading(`Refreshing...`,{id:`refreshing`});let t=Date.now();await e(),Date.now()-t<500&&await m(500),L.success(`Refreshed!`,{id:`refreshing`})},[e])}async function xu(e){let{data:t}=await c.get(`/Invoice/${e}`);return t}function Su(e,t){return A({queryKey:[e,`invoices`],queryFn:()=>xu(e),retry:!1,enabled:!!e,refetchInterval:t?1e4:void 0})}function Cu(){let{organizationId:e}=j({strict:!1}),{data:t}=M(hs(e)),{data:n,refetch:r,isLoading:i,isFetching:a,isRefetching:o}=M(Su(t?.type!==`ENTERPRISE`&&t?.id,!1)),s=bu(r);return t?.type===`ENTERPRISE`?(0,H.jsxs)(`span`,{children:[`You are part of an enterprise organization! We don’t currently show your invoices on this page. Want to explore your solution with Harper more? `,(0,H.jsx)(zo,{}),`, we would love to talk!`]}):i?(0,H.jsx)(Bo,{centered:!0}):!n||!n.length?(0,H.jsxs)(`span`,{children:[`Your invoices will be shown here once one is available! Want to explore your solution with Harper more?`,` `,(0,H.jsx)(zo,{overEmail:!0}),`, we would love to talk!`]}):(0,H.jsx)(hu,{data:n,columns:yu,children:(0,H.jsxs)(_,{variant:`defaultOutline`,onClick:s,accessKey:`r`,disabled:a||o,children:[(0,H.jsx)(dr,{}),(0,H.jsxs)(`span`,{className:`hidden lg:inline-block`,children:[(0,H.jsx)(`u`,{children:`R`}),`efresh`]})]})})}function wu(e){let t=P({getParentRoute:()=>e,path:`billing`,head:()=>({meta:[{title:`Billing — Harper Fabric`}]}),component:au}),n=P({getParentRoute:()=>t,path:`/`,head:()=>({meta:[{title:`Payment Methods — Harper Fabric`}]}),component:Gc}),r=P({getParentRoute:()=>t,path:`invoices`,head:()=>({meta:[{title:`Invoices — Harper Fabric`}]}),component:Cu}),i=P({getParentRoute:()=>t,path:`confirm`,head:()=>({meta:[{title:`Confirm Payment — Harper Fabric`}]}),component:eu});return t.addChildren([n,r,i])}async function Tu(e){let{data:t}=await c.get(`/OrganizationRole/${e}`);return t}function Eu(e){return A({queryKey:[e,`roles`],queryFn:()=>Tu(e),retry:!1,refetchInterval:10*1e3})}var Du=[{header:`Role Name`,accessorKey:`roleName`,enableSorting:!1},pe().display({header:`Users Assigned`,enableSorting:!1,id:`userIds`,cell:e=>!e.row.original.userIds||e.row.original.userIds.length===0?`No users assigned`:e.row.original.userIds.length})];async function Ou(e){let{data:t}=await c.post(`/Role/`,e);return t}function ku(){return F({mutationFn:Ou})}var Au=O({name:k().nonempty({error:`Please enter a role name.`}).regex(/^[a-zA-Z_]*$/,{error:`Role must contain only letters and underscores.`}).max(30,{error:`Role name cannot be longer than 30 characters.`}),update:E(),delete:E()});O({roles:O({create:E(),delete:E(),update:E(),view:E()}),clusters:O({create:E(),delete:E(),update:E(),view:E(),resources:C(O({id:k(),delete:E(),update:E(),view:E(),instances:O({create:E(),delete:E(),update:E(),view:E()})}))})});function ju(){let[e]=ti(),t=Zr();return e===`dark`||e===`system`&&t===`dark`?`vs-dark`:`light`}var Mu=(0,V.lazy)(async()=>(await Pe(()=>import(`./setup-BhFZv4af.js`),__vite__mapDeps([0,1,2,3,4,5,6,7])),{default:(await Pe(()=>import(`./dist-Cjh2xdPt.js`),__vite__mapDeps([3,2,1]))).default}));function Nu(e){return(0,H.jsx)(V.Suspense,{fallback:e.loading??null,children:(0,H.jsx)(Mu,{...e})})}var Pu={roles:{create:!0,view:!0,update:!0,delete:!0},clusters:{create:!0,view:!0,update:!0,delete:!0,resources:[]}};function Fu({isModalOpen:e,setIsModalOpen:t}){let n=ju(),r=de(),{organizationId:i}=j({strict:!1}),[a,o]=(0,V.useState)(!0),[s,c]=(0,V.useState)(JSON.stringify(Pu,null,2)),{mutate:l,isPending:u}=ku(),d=z({resolver:R(Au),defaultValues:{name:``,update:!1,delete:!1}}),f=(0,V.useCallback)(e=>{o(e.length===0)},[o]),p=(0,V.useCallback)(async e=>{let n=qr(s);if(!n)return;let o={...e,...n,organizationId:i};e&&a&&l(o,{onSuccess:()=>{L.success(`Organization role added successfully!`),t(!1),r.invalidateQueries({queryKey:[i,`roles`],refetchType:`active`}),d.reset()},onError:e=>{L.error(`Failed to add organization role: ${e.message}`)}})},[a,s,l,d,r,t,i]);return(0,H.jsx)(lo,{onOpenChange:t,open:e,children:(0,H.jsxs)(mo,{children:[(0,H.jsx)(go,{children:`Add New Organization Role`}),(0,H.jsx)(_o,{children:`Set the new organization role permissions.`}),(0,H.jsx)(W,{...d,children:(0,H.jsxs)(`form`,{id:`org-add-role-form`,name:`org-add-role-form`,className:`grid grid-cols-2 gap-4 my-4`,onSubmit:d.handleSubmit(p),children:[(0,H.jsx)(K,{control:d.control,name:`name`,render:({field:e})=>(0,H.jsxs)(q,{className:`col-span-2`,children:[(0,H.jsx)(J,{className:`pb-1`,children:`Role Name`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`text`,className:``,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:d.control,name:`update`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Can Update Organization`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`checkbox`,className:`w-6 ml-2`,checked:e.value,onChange:t=>e.onChange(t.target.checked)})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:d.control,name:`delete`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Can Delete Organization`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`checkbox`,className:`w-6 ml-2`,checked:e.value,onChange:t=>e.onChange(t.target.checked)})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(`div`,{className:`col-span-2`,children:(0,H.jsx)(Nu,{theme:n,height:`300px`,defaultLanguage:`json`,onValidate:f,onChange:e=>{e&&c(e)},defaultValue:JSON.stringify(Pu,null,2)})}),(0,H.jsx)(Z,{className:`col-span-2`,children:(0,H.jsxs)(`div`,{className:`flex justify-between w-full`,children:[(0,H.jsx)(_,{variant:`destructiveOutline`,className:`rounded-full`,type:`button`,onClick:()=>t(!1),disabled:u,children:`Cancel`}),(0,H.jsx)(_,{variant:`submit`,className:`rounded-full`,disabled:u||!a||!d.formState.isValid,children:`Save Changes`})]})})]})})]})})}async function Iu({roleId:e}){let{data:t}=await c.delete(`/Role/${e}`,{id:e,deleted:!0});return t}function Lu(){return F({mutationFn:({roleId:e})=>Iu({roleId:e})})}async function Ru({roleId:e,updatedRoleInfo:t}){let{data:n}=await c.put(`/Role/${e}`,t);return n}function zu(){return F({mutationFn:({roleId:e,updatedRoleInfo:t})=>Ru({roleId:e,updatedRoleInfo:t})})}function Bu({organizationId:e,roleId:t}){return A({queryKey:[e,`roles`,t],queryFn:()=>Vu(t),refetchInterval:10*1e3})}async function Vu(e){let{data:t}=await c.get(`/Role/${e}`);return t}function Hu({onRoleDeleteClick:e,setIsConfirmingRoleDeletion:t,isRoleDeletionPending:n}){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(go,{children:`Confirm Role Deletion`}),(0,H.jsx)(_o,{children:`Are you sure you want to delete this role? This action cannot be undone.`}),(0,H.jsxs)(Z,{children:[(0,H.jsx)(_,{type:`button`,variant:`defaultOutline`,className:`rounded-full`,onClick:()=>t(!1),children:`Cancel`}),(0,H.jsx)(_,{variant:`destructiveOutline`,className:`rounded-full`,onClick:e,disabled:n,children:n?`Deleting...`:`Delete Role`})]})]})}function Uu({data:e,isModalOpen:t,closeModal:n}){let r=de(),{data:i}=be(Bu({roleId:e.id,organizationId:e.organizationId})),a=Yt(),o=a.user&&a.user?.roles?.[e.organizationId]?.role===e.roleName,{update:s,remove:c}=bi(e.organizationId),{mutate:l,isPending:u}=zu(),{mutate:d,isPending:f}=Lu(),p=ju(),[m,h]=(0,V.useState)(!1),g=z({resolver:R(Au),defaultValues:{name:e.roleName,update:i.organization.update||!1,delete:i.organization.delete||!1}}),v=(0,V.useCallback)(()=>{d({roleId:e.id},{onSuccess:()=>{L.success(`Role deleted successfully!`),n(!0),g.reset()},onError:e=>{L.error(`Error`,{description:`Failed to delete role: ${e instanceof Error?e.message:String(e)}.`,action:{label:`Dismiss`,onClick:()=>L.dismiss()}})}})},[e.id,d,g,n]),[y,b]=(0,V.useState)(!0),[x,S]=(0,V.useState)(JSON.stringify({roles:{...i.organization.roles},clusters:{...i.organization.clusters}},null,2)),C=(0,V.useCallback)(e=>{b(e.length===0)},[b]),ee=(0,V.useCallback)(async t=>{if(!s)return;let i=qr(x);if(!i)return;let a={...t,...i,organizationId:e.organizationId};x&&y&&l({roleId:e.id,updatedRoleInfo:a},{onSuccess:async()=>{L.success(`Role updated successfully!`),await r.invalidateQueries({queryKey:[e.organizationId,`roles`,e.id]}),n(!1),g.reset()},onError:e=>{L.error(`Error`,{description:`Failed to update role: ${e instanceof Error?e.message:String(e)}.`,action:{label:`Dismiss`,onClick:()=>L.dismiss()}})}})},[n,e.id,e.organizationId,g,y,r,i,s,x,l]);return(0,H.jsx)(lo,{onOpenChange:(0,V.useCallback)(()=>n(!1),[n]),open:t,children:(0,H.jsx)(mo,{children:m?(0,H.jsx)(Hu,{onRoleDeleteClick:v,setIsConfirmingRoleDeletion:h,isRoleDeletionPending:f}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(go,{children:[o||!s?`View`:`Edit`,` Organization Role "`,e.roleName,`"`]}),(0,H.jsx)(W,{...g,children:(0,H.jsxs)(`form`,{id:`org-edit-role-form`,name:`org-edit-role-form`,className:`grid grid-cols-2 gap-4 my-4`,onSubmit:g.handleSubmit(ee),children:[(0,H.jsx)(K,{control:g.control,name:`name`,render:({field:e})=>(0,H.jsxs)(q,{className:`col-span-2`,children:[(0,H.jsx)(J,{className:`pb-1`,children:`Role Name`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`text`,className:``,...e,disabled:!0,readOnly:!0})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:g.control,name:`update`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Can Update Organization`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`checkbox`,className:`w-6 ml-2`,disabled:o||!s,readOnly:o||!s,checked:e.value,onChange:t=>e.onChange(t.target.checked)})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:g.control,name:`delete`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Can Delete Organization`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`checkbox`,className:`w-6 ml-2`,disabled:o||!s,readOnly:o||!s,checked:e.value,onChange:t=>e.onChange(t.target.checked)})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(`div`,{className:`col-span-2`,children:(0,H.jsx)(Nu,{theme:p,height:`300px`,defaultLanguage:`json`,onValidate:C,onChange:e=>{e&&S(e)},options:o||!s?{readOnly:!0}:void 0,defaultValue:x})}),!o&&(c||s)&&(0,H.jsx)(Z,{className:`col-span-2`,children:(0,H.jsxs)(`div`,{className:`flex justify-between w-full`,children:[c&&(0,H.jsx)(_,{type:`button`,variant:`destructiveOutline`,className:`rounded-full`,onClick:()=>h(!0),disabled:u,children:`Delete Role`}),s&&(0,H.jsx)(_,{variant:`submit`,className:`rounded-full`,disabled:!y||u||!g.formState.isValid||!g.formState.isDirty,children:`Save Changes`})]})})]})})]})})})}function Wu(){let e=je(),t=de(),{organizationId:n,orgRoleId:r}=j({strict:!1}),{create:i}=bi(n),{data:a,refetch:o,isFetching:s,isRefetching:c}=be(Eu(n)),l=(0,V.useMemo)(()=>a&&a?.find(e=>e.id===r),[a,r]),u=!!r&&!!l,[d,f]=(0,V.useState)(!1),p=(0,V.useCallback)(async(i,a)=>{await e({to:[r?`..`:``,i].filter(Boolean).join(`/`)}),a&&await t.invalidateQueries({queryKey:[n,`roles`],refetchType:`active`})},[r,e,t]),m=(0,V.useCallback)(()=>{f(!0)},[f]),h=(0,V.useCallback)(e=>p(e.original.id,!1),[p]),g=(0,V.useCallback)(e=>p(void 0,e),[p]),v=bu(o);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(no,{}),(0,H.jsx)(`div`,{className:`mt-32 px-4 pt-4 md:px-12 min-h-[calc(100vh-(--spacing(32)))]`,children:(0,H.jsxs)(V.Suspense,{fallback:(0,H.jsx)(Bo,{className:`flex flex-col items-center justify-center h-full`,text:`Loading...`}),children:[(0,H.jsxs)(hu,{data:a,columns:Du,onRowClick:h,children:[(0,H.jsxs)(_,{variant:`defaultOutline`,onClick:v,accessKey:`r`,disabled:s||c,children:[(0,H.jsx)(dr,{}),(0,H.jsxs)(`span`,{className:`hidden lg:inline-block`,children:[(0,H.jsx)(`u`,{children:`R`}),`efresh`]})]}),i&&(0,H.jsxs)(_,{variant:`positiveOutline`,onClick:m,accessKey:`a`,disabled:d,children:[(0,H.jsx)(cr,{}),(0,H.jsxs)(`span`,{children:[(0,H.jsx)(`u`,{children:`A`}),`dd`]})]})]}),i&&(0,H.jsx)(Fu,{isModalOpen:d,setIsModalOpen:f}),u&&(0,H.jsx)(Uu,{data:l,isModalOpen:u,closeModal:g})]})})]})}function Gu({className:e,...t}){return(0,H.jsx)(vt,{"data-slot":`switch`,className:f(`peer data-[state=checked]:bg-green data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-grey-500 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50`,e),...t,children:(0,H.jsx)(Ht,{"data-slot":`switch-thumb`,className:f(`bg-white dark:data-[state=unchecked]:bg-white dark:data-[state=checked]:bg-white pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0`)})})}function Ku(e){return`//oauth/${e}/login`}async function qu(e,t){let{data:n}=await c.patch(`/Organization/${e}/settings/oauth`,t);return n}var Ju=O({domain:k().min(1,`Domain is required`),clientId:k().min(1,`Client ID is required`),clientSecret:k().min(1,`Client secret is required`),scope:k().optional()}),Yu=O({domain:k().min(1,`Domain is required`),clientId:k().optional(),clientSecret:k().optional(),scope:k().optional()});function Xu(){let{organizationId:e}=j({strict:!1}),{user:t}=Yt(),{update:n}=yi(e),{data:r}=be(hs(e)),i=de(),[a,o]=(0,V.useState)(!1),[s,c]=(0,V.useState)(null),l=r.settings?.oauthConfigs??[],{mutate:u,isPending:d}=F({mutationFn:t=>qu(e,t),onSuccess:()=>void i.invalidateQueries({queryKey:[e]}),onError:()=>L.error(`Failed to update OAuth settings.`)}),f=z({resolver:R(Ju),defaultValues:{domain:``,clientId:``,clientSecret:``,scope:`openid email profile`}}),p=e=>{u({provider:`okta`,...e},{onSuccess:()=>{L.success(`OAuth provider added.`),f.reset(),o(!1)}})},m=z({resolver:R(Yu)}),h=e=>{c(e.id??null),m.reset({domain:e.domain,clientId:``,clientSecret:``,scope:e.scope??``})},g=(e,t)=>{let n={id:e.id,provider:e.provider,domain:t.domain,scope:t.scope};t.clientId&&(n.clientId=t.clientId),t.clientSecret&&(n.clientSecret=t.clientSecret),u(n,{onSuccess:()=>{L.success(`OAuth provider updated.`),c(null)}})},v=(e,t)=>{u({id:e.id,provider:e.provider,[t]:!e[t]})},y=e=>`//oauth/${e}/callback`,b=async e=>{await navigator.clipboard.writeText(e),L.success(`Sign-in URL copied.`)},x=async e=>{await navigator.clipboard.writeText(e),L.success(`Redirect URI copied.`)};return n?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(no,{}),(0,H.jsx)(`div`,{className:`mt-32 px-4 pt-4 md:px-12 min-h-[calc(100vh-theme(spacing.32))]`,children:(0,H.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,H.jsx)(`h2`,{className:`text-2xl text-foreground font-light mb-6`,children:`Authentication`}),(0,H.jsxs)(`section`,{children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,H.jsx)(`h3`,{className:`text-lg text-foreground font-medium`,children:`OAuth Providers`}),!a&&(0,H.jsxs)(_,{variant:`positiveOutline`,size:`sm`,onClick:()=>o(!0),children:[(0,H.jsx)(cr,{}),`Add Provider`]})]}),l.length===0&&!a&&(0,H.jsx)(`p`,{className:`text-muted-foreground text-sm mb-4`,children:`No OAuth providers configured.`}),l.map(e=>{let n=t?.oauthConfigId===e.id;return s===e.id?(0,H.jsxs)(`div`,{className:`border rounded-lg p-4 mb-3 text-foreground`,children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,H.jsx)(`h4`,{className:`font-medium`,children:`Edit Provider`}),(0,H.jsx)(`button`,{type:`button`,onClick:()=>c(null),className:`text-muted-foreground hover:text-foreground`,children:(0,H.jsx)(jr,{className:`size-4`})})]}),(0,H.jsx)(W,{...m,children:(0,H.jsxs)(`form`,{onSubmit:m.handleSubmit(t=>g(e,t)),className:`space-y-4`,children:[(0,H.jsx)(K,{control:m.control,name:`domain`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{children:`Domain`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{placeholder:`company.okta.com`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:m.control,name:`clientId`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{children:`Client ID`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{placeholder:`Leave blank to keep existing`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:m.control,name:`clientSecret`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{children:`Client Secret`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`password`,placeholder:`Leave blank to keep existing`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:m.control,name:`scope`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{children:`Scope`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{placeholder:`openid email profile`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsxs)(`div`,{className:`flex gap-2 pt-2`,children:[(0,H.jsx)(_,{type:`submit`,variant:`positive`,disabled:d,children:d?`Saving...`:`Save`}),(0,H.jsx)(_,{type:`button`,variant:`outline`,onClick:()=>c(null),children:`Cancel`})]})]})})]},e.id):(0,H.jsx)(`div`,{className:`border rounded-lg p-4 mb-3 text-foreground`,children:(0,H.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between sm:gap-4`,children:[(0,H.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2 mb-1`,children:[(0,H.jsx)(`span`,{className:`font-medium`,children:e.domain}),(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground uppercase bg-muted px-2 py-0.5 rounded`,children:e.provider}),e.enabled===!1&&(0,H.jsx)(`span`,{className:`text-xs text-destructive bg-destructive/10 px-2 py-0.5 rounded`,children:`Disabled`})]}),(0,H.jsxs)(`p`,{className:`text-sm text-muted-foreground mb-2`,children:[`Client ID: `,(0,H.jsx)(`span`,{className:`text-foreground font-mono`,children:`****`})]}),e.id&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`div`,{className:`mt-3 rounded-md bg-muted px-3 py-2`,children:[(0,H.jsx)(`p`,{className:`text-xs font-medium text-muted-foreground mb-1`,children:`Okta redirect URI`}),(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground mb-1.5`,children:[`Add to `,(0,H.jsx)(`span`,{className:`font-medium text-foreground`,children:`Login redirect URIs`}),` `,`in your Okta app settings.`]}),(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`span`,{className:`text-sm text-foreground font-mono truncate`,children:y(e.id)}),(0,H.jsx)(`button`,{type:`button`,onClick:()=>void x(y(e.id)),className:`hover:text-foreground shrink-0 text-muted-foreground`,title:`Copy redirect URI`,children:(0,H.jsx)(Pn,{className:`size-3.5`})})]})]}),(0,H.jsxs)(`div`,{className:`mt-2 rounded-md bg-muted px-3 py-2`,children:[(0,H.jsx)(`p`,{className:`text-xs font-medium text-muted-foreground mb-1.5`,children:`User login link`}),(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`a`,{href:Ku(e.id),target:`_blank`,rel:`noreferrer`,className:`text-sm text-foreground truncate hover:underline`,children:Ku(e.id)}),(0,H.jsxs)(`div`,{className:`flex items-center gap-1.5 shrink-0 text-muted-foreground`,children:[(0,H.jsx)(`button`,{type:`button`,onClick:()=>void b(Ku(e.id)),className:`hover:text-foreground`,title:`Copy login link`,children:(0,H.jsx)(Pn,{className:`size-3.5`})}),(0,H.jsx)(`a`,{href:Ku(e.id),target:`_blank`,rel:`noreferrer`,className:`hover:text-foreground`,title:`Open login link`,children:(0,H.jsx)(Rn,{className:`size-3.5`})})]})]})]})]})]}),(0,H.jsxs)(`div`,{className:`flex items-center gap-3 sm:shrink-0`,children:[(0,H.jsxs)(`label`,{className:`flex items-center gap-2 text-sm text-foreground cursor-pointer`,children:[(0,H.jsx)(Gu,{checked:e.enabled!==!1,onCheckedChange:()=>v(e,`enabled`),disabled:d}),`Enabled`]}),(0,H.jsxs)(Wi,{children:[(0,H.jsx)(Gi,{asChild:!0,children:(0,H.jsxs)(`span`,{className:`inline-flex items-center gap-2 text-sm text-foreground ${n?`cursor-pointer`:`cursor-not-allowed opacity-50`}`,children:[(0,H.jsx)(Gu,{checked:!!e.required,onCheckedChange:()=>v(e,`required`),disabled:d||!n}),`Required`]})}),!n&&(0,H.jsxs)(Ki,{children:[`Sign in via `,e.provider,` first to enable Required`]})]}),(0,H.jsx)(_,{variant:`outline`,size:`sm`,onClick:()=>h(e),disabled:d,children:(0,H.jsx)(sr,{className:`size-4`})})]})]})},e.id)}),a&&(0,H.jsxs)(`div`,{className:`border rounded-lg p-4 text-foreground`,children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,H.jsx)(`h4`,{className:`font-medium`,children:`Add Okta Provider`}),(0,H.jsx)(`button`,{type:`button`,onClick:()=>{o(!1),f.reset()},className:`text-muted-foreground hover:text-foreground`,children:(0,H.jsx)(jr,{className:`size-4`})})]}),(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground mb-4`,children:[`After saving, copy the `,(0,H.jsx)(`span`,{className:`font-medium text-foreground`,children:`Okta redirect URI`}),` `,`from the provider card and add it to your Okta app's`,` `,(0,H.jsx)(`span`,{className:`font-medium text-foreground`,children:`Login redirect URIs`}),`.`]}),(0,H.jsx)(W,{...f,children:(0,H.jsxs)(`form`,{onSubmit:f.handleSubmit(p),className:`space-y-4`,children:[(0,H.jsx)(K,{control:f.control,name:`domain`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{children:`Domain`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{placeholder:`company.okta.com`,autoFocus:!0,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:f.control,name:`clientId`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{children:`Client ID`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{placeholder:`Okta Client ID`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:f.control,name:`clientSecret`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{children:`Client Secret`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`password`,placeholder:`Okta Client Secret`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:f.control,name:`scope`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{children:`Scope`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{placeholder:`openid email profile`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsxs)(`div`,{className:`flex gap-2 pt-2`,children:[(0,H.jsx)(_,{type:`submit`,variant:`positive`,disabled:d,children:d?`Adding...`:`Add Provider`}),(0,H.jsx)(_,{type:`button`,variant:`outline`,onClick:()=>{o(!1),f.reset()},children:`Cancel`})]})]})})]})]})]})})]}):(0,H.jsx)(`div`,{className:`mt-32 px-4 pt-4 md:px-12 min-h-[calc(100vh-theme(spacing.32))] text-foreground`,children:`You don't have permission to manage settings for this organization.`})}var Zu=[{header:`User Id`,accessorKey:`id`,enableSorting:!1},{header:`Email`,accessorKey:`email`,enableSorting:!1},{header:`First Name`,accessorKey:`firstname`,enableSorting:!1},{header:`Last Name`,accessorKey:`lastname`,enableSorting:!1},pe().display({header:`Roles`,enableSorting:!1,id:`roles`,cell:e=>e.row.original.roles?.map(e=>e.roleName)?.sort()?.join(`, `)}),{header:`Status`,accessorKey:`status`,enableSorting:!1},{header:`Verified`,accessorKey:`isVerified`,enableSorting:!1}],Qu=D.object({email:la.max(80,{error:`Email cannot be longer than 80 characters.`}),roleId:D.string().nonempty({error:`Please select a role.`})});async function $u(e){let{data:t}=await c.post(`/OrganizationRole/`,e);return t}function ed(){return F({mutationFn:e=>$u(e)})}D.object({email:la.max(80,{error:`Email cannot be longer than 80 characters.`}),roleId:D.string().nonempty({error:`Please select a role.`})});async function td(e){let{data:t}=await c.post(`/UserInvite/`,e);return t}function nd(){return F({mutationFn:e=>td(e)})}function rd({isModalOpen:e,onChangesSaved:t,setIsModalOpen:n}){let{organizationId:r}=j({strict:!1}),{data:i}=be(Eu(r)),[a,o]=(0,V.useState)(!1),s=z({resolver:R(Qu),defaultValues:{email:``,roleId:``}}),{mutate:c,isPending:l}=ed(),{mutate:u,isPending:d}=nd(),f=(0,V.useCallback)(async e=>{e&&(a?u:c)(e,{onSuccess:()=>{let r=e.roleId;s.reset(),s.setValue(`roleId`,r),t(),L.success(`User invited successfully!`),n(!1),o(!1)},onError:e=>{e?.status===404&&o(!0)}})},[c,s,u,t,n,a]);return(0,H.jsx)(lo,{onOpenChange:()=>{n(!1),o(!1),s.reset()},open:e,children:(0,H.jsx)(mo,{"aria-describedby":void 0,children:(0,H.jsx)(W,{...s,children:(0,H.jsxs)(`form`,{id:`org-add-user-form`,name:`org-add-user-form`,onSubmit:s.handleSubmit(f),className:`grid gap-4 my-4`,children:[(0,H.jsx)(ho,{children:(0,H.jsx)(go,{children:a?`Invite User`:`Add User`})}),(0,H.jsx)(K,{control:s.control,name:`email`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Email`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`email`,enterKeyHint:`next`,autoComplete:`email`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:s.control,name:`roleId`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Roles`}),(0,H.jsx)(V.Suspense,{fallback:(0,H.jsx)(Qc,{}),children:(0,H.jsx)(G,{children:(0,H.jsxs)($c,{...e,onValueChange:t=>e.onChange(t),children:[(0,H.jsx)(nl,{className:`w-full`,children:(0,H.jsx)(tl,{placeholder:`Choose Role`})}),(0,H.jsx)(rl,{children:(0,H.jsxs)(el,{children:[(0,H.jsx)(il,{children:`Role`}),i?.map(e=>(0,H.jsx)($,{value:e.id,children:e.roleName},e.id))]})})]})})}),(0,H.jsx)(Y,{})]})}),a&&(0,H.jsxs)(_o,{className:`p-3 my-5 text-white rounded-md bg-amber-600 flex`,children:[(0,H.jsx)(er,{className:`inline-block size-12 pr-2`}),(0,H.jsx)(`span`,{children:`This person doesn’t have a Fabric account. Do you want to invite them?`})]}),(0,H.jsx)(Z,{children:(0,H.jsx)(`div`,{className:`flex justify-between w-full`,children:(0,H.jsxs)(_,{type:`submit`,variant:`submit`,className:`rounded-full`,disabled:l||d,children:[(0,H.jsx)(pr,{}),` `,a?`Invite User`:`Add User`]})})})]})})})})}async function id({roleId:e,userId:t}){let{data:n}=await c.delete(`/OrganizationRole/role/${e}/user/${t}`);return n}function ad(){return F({mutationFn:({roleId:e,userId:t})=>id({roleId:e,userId:t})})}function od(e){let[t,n]=(0,V.useState)(e||!1);return[t,(0,V.useCallback)(e=>{n(typeof e==`boolean`?e:e.target.checked)},[])]}function sd({data:e,readOnly:t,canRemove:n,orgRole:r,selectedRoles:i,setChangesMade:a}){let{mutate:o,isPending:s}=ed(),{mutate:c,isPending:l}=ad(),u=!!i[r.roleName],[d,f]=(0,V.useState)(u),[p,m]=od(u);return(0,V.useEffect)(()=>{p!==d&&(p?o({email:e.email,roleId:r.id},{onSuccess:()=>{f(p),a(!0),L.success(`Role added successfully`)}}):c({userId:e.id,roleId:r.id},{onSuccess:()=>{f(p),a(!0),L.success(`Role removed successfully`)}}))},[o,e.email,e.id,p,r.id,c,a,d]),(0,H.jsxs)(ea,{className:`flex`,children:[(0,H.jsx)(X,{type:`checkbox`,className:`w-6`,disabled:t||s||l||!n&&p,checked:p,onChange:m}),(0,H.jsx)(`span`,{className:`pl-4 pr-8 flex-1 py-2.5`,children:r.roleName})]},r.id)}function cd({closeModal:e,data:t,isModalOpen:n,onUserUpdated:r}){let{organizationId:i}=j({strict:!1}),a=Yt(),{update:o,remove:s}=bi(i),c=a.user?.email===t.email,{data:l}=be(Eu(i)),u=(0,V.useMemo)(()=>t.roles?$o(t.roles,`roleName`):{},[t]),[d,f]=(0,V.useState)(!1);return(0,H.jsx)(lo,{onOpenChange:d?r:e,open:n,children:(0,H.jsxs)(mo,{className:`sm:max-w-[750px]`,children:[(0,H.jsx)(ho,{children:(0,H.jsxs)(go,{children:[o?`Edit `:`View `,` `,t.email,` `,c?`(yourself)`:``]})}),o&&(0,H.jsxs)(_o,{children:[`To remove `,c?`your self`:`this user`,` from the organization, uncheck all of the boxes below.`]}),l.map(e=>(0,H.jsx)(sd,{readOnly:!o,canRemove:s,data:t,orgRole:e,selectedRoles:u,setChangesMade:f},e.id))]})})}function ld(e,t){return e.email>t.email?1:-1}function ud(){let e=je(),{organizationId:t,orgUserId:n}=j({strict:!1}),{update:r}=bi(t),{data:i,refetch:a,isFetching:o,isRefetching:s}=be(Eu(t)),c=(0,V.useMemo)(()=>{let e={};for(let t of i)if(t.users)for(let n of t.users)e[n.id]||(e[n.id]={...n,roles:[]}),e[n.id].roles.push(t);return Object.values(e).sort(ld)},[i]),l=(0,V.useMemo)(()=>c?.find(e=>e.id===n),[c,n]),u=(0,V.useCallback)(t=>{e({to:[n?`..`:``,t].filter(Boolean).join(`/`)})},[n,e]),d=!!n&&!!l,[f,p]=(0,V.useState)(!1),[m]=(0,V.useState)({attribute:`email`,descending:!1}),h=(0,V.useMemo)(()=>[{desc:m.descending,id:m.attribute}],[m]),g=(0,V.useCallback)(()=>{p(!0)},[p]),v=(0,V.useCallback)(()=>{a(),p(!1)},[a,p]),y=(0,V.useCallback)(e=>{u(e.original.id)},[u]),b=(0,V.useCallback)(()=>{u(void 0)},[u]),x=(0,V.useCallback)(()=>{a(),u(void 0)},[u,a]),S=bu(a);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(no,{}),(0,H.jsx)(`div`,{className:`mt-32 px-4 pt-4 md:px-12 min-h-[calc(100vh-theme(spacing.32))]`,children:(0,H.jsxs)(V.Suspense,{fallback:(0,H.jsx)(Bo,{className:`flex flex-col items-center justify-center h-full`,text:`Loading...`}),children:[(0,H.jsxs)(hu,{data:c,isFetching:o||s,columns:Zu,onRowClick:y,sortingState:h,children:[(0,H.jsxs)(_,{variant:`defaultOutline`,onClick:S,accessKey:`r`,disabled:o||s,children:[(0,H.jsx)(dr,{}),` `,(0,H.jsxs)(`span`,{className:`hidden lg:inline-block`,children:[(0,H.jsx)(`u`,{children:`R`}),`efresh`]})]}),r&&(0,H.jsxs)(_,{variant:`positiveOutline`,onClick:g,accessKey:`a`,disabled:f,children:[(0,H.jsx)(cr,{}),` `,(0,H.jsxs)(`span`,{children:[(0,H.jsx)(`u`,{children:`A`}),`dd`]})]})]}),r&&(0,H.jsx)(rd,{isModalOpen:f,onChangesSaved:v,setIsModalOpen:p}),d&&(0,H.jsx)(cd,{closeModal:b,data:l,isModalOpen:d,onUserUpdated:x})]})})]})}function dd({className:e,...t}){return(0,H.jsx)(`div`,{"data-slot":`skeleton`,className:f(`bg-primary/10 animate-pulse rounded-md`,e),...t})}function fd({organizationId:e,organizationName:t,providers:n}){return(0,H.jsxs)($t,{className:`relative h-full justify-between opacity-90`,children:[(0,H.jsxs)(en,{children:[(0,H.jsx)(nn,{className:`truncate`,children:e}),(0,H.jsx)(tn,{children:(0,H.jsx)(`h2`,{children:t})})]}),(0,H.jsxs)(rn,{className:`flex flex-col gap-2`,children:[(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground flex items-center gap-1.5 mb-1`,children:[(0,H.jsx)(Jn,{className:`size-3 shrink-0`}),`Sign in with an OAuth provider to access this organization.`]}),n.map(e=>(0,H.jsx)(`a`,{href:Ku(e.oauthConfigId),children:(0,H.jsxs)(_,{variant:`outline`,className:`w-full`,children:[`Sign in with `,e.name]})},e.oauthConfigId))]})]})}var pd=O({couponId:k().nonempty({message:`Please enter a coupon ID.`}).trim()});async function md({organizationId:e,couponId:t}){let{data:n}=await c.post(`/Coupon`,{organizationId:e,couponId:t},{validateStatus:e=>e>=200&&e<400||e===400||e===409});return n}function hd(){return F({mutationFn:md})}function gd({organizationId:e,organizationName:t,isOpen:n,onClose:r}){let{mutate:i,isPending:a}=hd(),o=z({resolver:R(pd),defaultValues:{couponId:``}}),{handleSubmit:s,control:c,reset:l}=o;(0,V.useEffect)(()=>{n&&l({couponId:``})},[n,l]);let u=(0,V.useCallback)(n=>{i({organizationId:e,couponId:n.couponId},{onSuccess:i=>{i?L.error(`Error`,{description:i||`Failed to add coupon.`}):(L.success(`Success`,{description:`Coupon "${n.couponId}" added to ${t||e}.`}),r())}})},[i,e,t,r]);return(0,H.jsx)(lo,{open:n,onOpenChange:e=>!e&&r(),children:(0,H.jsxs)(mo,{children:[(0,H.jsxs)(ho,{children:[(0,H.jsx)(go,{children:`Add Coupon`}),(0,H.jsxs)(_o,{children:[`Add a coupon code to`,` `,t||e,`. This coupon will be applied to the next billing cycle.`,(0,H.jsx)(`br`,{}),`Coupons can be created in our`,` `,(0,H.jsx)(`a`,{href:`https://dashboard.stripe.com/`,target:`_blank`,rel:`noreferrer`,className:`text-purple hover:underline`,children:`Stripe Dashboard`}),`.`]})]}),(0,H.jsx)(W,{...o,children:(0,H.jsxs)(`form`,{onSubmit:s(u),children:[(0,H.jsx)(`div`,{className:`grid gap-4 py-4`,children:(0,H.jsx)(K,{control:c,name:`couponId`,render:({field:e})=>(0,H.jsxs)(q,{className:`grid items-center gap-4`,children:[(0,H.jsx)(J,{children:`Coupon ID`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{...e,placeholder:`e.g. 100OFF`,disabled:a})}),(0,H.jsx)(Y,{})]})})}),(0,H.jsxs)(Z,{children:[(0,H.jsx)(_,{type:`button`,variant:`ghost`,onClick:r,disabled:a,children:`Cancel`}),(0,H.jsx)(_,{type:`submit`,disabled:a,children:a?`Adding...`:`Add Coupon`})]})]})})]})})}function _d({organizationRole:e,onDeleteOrgModal:t}){let{organizationId:n,organizationName:r,roleName:i}=e,{remove:a,update:o}=yi(n),s=o,{view:c}=bi(n),l=Xt(),[u,d]=(0,V.useState)(!1),f=(0,V.useCallback)(()=>{t(e)},[t,e]);return(0,H.jsxs)($t,{className:`relative h-full justify-between hover:shadow-lg transition-shadow duration-200`,children:[(0,H.jsxs)(en,{children:[(0,H.jsxs)(nn,{className:`flex items-center justify-between`,children:[(0,H.jsx)(`span`,{className:`truncate`,children:n}),a&&(0,H.jsxs)(bo,{children:[(0,H.jsx)(xo,{className:`p-4 -m-4 -mr-6 hover:text-foreground`,children:(0,H.jsx)(Ln,{"aria-label":`Options`})}),(0,H.jsxs)(So,{children:[(0,H.jsx)(To,{className:`text-gray-600 text-xs`,children:`Options`}),(0,H.jsx)(Eo,{}),(0,H.jsx)(I,{to:`${n}`,children:(0,H.jsxs)(Co,{children:[(0,H.jsx)(gr,{className:`size-4 mr-2 text-blue-500`}),`Clusters`]})}),c&&(0,H.jsx)(I,{to:`${n}/roles`,children:(0,H.jsxs)(Co,{children:[(0,H.jsx)(vr,{className:`size-4 mr-2 text-purple`}),`Roles`]})}),c&&(0,H.jsx)(I,{to:`${n}/users`,children:(0,H.jsxs)(Co,{children:[(0,H.jsx)(Ar,{className:`size-4 mr-2 text-orange-500`}),`Users`]})}),s&&(0,H.jsx)(I,{to:`${n}/billing`,children:(0,H.jsxs)(Co,{children:[(0,H.jsx)(Fn,{className:`size-4 mr-2 text-green-500`}),`Billing`]})}),o&&(0,H.jsx)(I,{to:`${n}/settings`,children:(0,H.jsxs)(Co,{children:[(0,H.jsx)(Jn,{className:`size-4 mr-2 text-yellow-500`}),`Settings`]})}),l&&(0,H.jsxs)(Co,{onClick:()=>d(!0),children:[(0,H.jsx)(Tr,{className:`size-4 mr-2 text-pink-500`}),`Add Coupon`]}),(0,H.jsx)(Eo,{}),a&&(0,H.jsxs)(Co,{className:`focus:bg-red/70 focus:text-white`,onClick:f,children:[(0,H.jsx)(Er,{className:`size-4 mr-2 text-red-500`}),`Delete`]})]})]})]}),(0,H.jsx)(tn,{children:(0,H.jsx)(`h2`,{children:r})})]}),(0,H.jsxs)(rn,{className:`flex justify-between`,children:[(0,H.jsx)(yo,{children:Ji(i)}),(0,H.jsx)(I,{to:n,className:`text-sm`,"aria-label":`View ${r}`,title:`View ${r}`,children:(0,H.jsxs)(`span`,{className:`py-2 transition-all duration-100 ease-in-out border-0 hover:border-b-2`,children:[`View `,(0,H.jsx)(dn,{className:`inline-block`})]})})]}),(0,H.jsx)(gd,{organizationId:n,organizationName:r,isOpen:u,onClose:()=>d(!1)})]})}async function vd(e){let{data:t}=await c.delete(`/Organization/${e}`);return t}function yd(){return F({mutationFn:e=>vd(e)})}async function bd(e){let{data:t}=await c.post(`/Organization/`,{...e});return t}function xd(){return F({mutationFn:e=>bd(e)})}var Sd=k().max(62,{error:`Must be at most 62 characters long.`}).regex(/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/,{error:`Please only use lowercase letters, digits and dashes (-) in the subdomain. Must not start or end with a dash.`}),Cd=O({name:k().max(255,{error:`Name cannot be longer than 255 characters.`}),subdomain:b([w(``),te(),Sd]).optional()});function wd(){let{user:e}=Yt(),t=je(),n=z({resolver:R(Cd),defaultValues:{name:``,subdomain:``}}),{setFocus:r,watch:i}=n;(0,V.useEffect)(()=>{r(`name`)},[r]);let a=`${e?.firstname} ${e?.lastname} Org`,o=i(`name`)||a,s=i(`subdomain`),c=(0,V.useMemo)(()=>{let e=_s(ys(o),Sd.maxLength);return{suggestedSubdomain:e,fullHostName:`future-cluster-names.${s||e}.harperfabric.com`}},[o,s]),{mutate:d,isPending:f}=xd(),p=de(),m=(0,V.useCallback)(async e=>{d({name:e.name||a,subdomain:e.subdomain||c.suggestedSubdomain},{onSuccess:e=>{p.invalidateQueries({queryKey:u,refetchType:`active`}),l.reloadUser(h),t({to:`/${e.id}`})}})},[c.suggestedSubdomain,p,d,a,t]);return(0,H.jsx)(H.Fragment,{children:(0,H.jsx)(W,{...n,children:(0,H.jsxs)(`form`,{id:`org-add-form`,name:`org-add-form`,onSubmit:n.handleSubmit(m),className:`grid gap-6 text-foreground max-w-xl`,children:[(0,H.jsx)(K,{control:n.control,name:`name`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Name`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`text`,maxLength:Cd.shape.name.maxLength,autoCapitalize:`words`,placeholder:a,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:n.control,name:`subdomain`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Subdomain`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`text`,maxLength:Sd.maxLength,autoCapitalize:`none`,placeholder:c.suggestedSubdomain,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Full Host Name`}),(0,H.jsx)(G,{children:(0,H.jsx)(`span`,{children:c.fullHostName})}),(0,H.jsx)(Y,{})]}),(0,H.jsx)(Z,{children:(0,H.jsxs)(_,{type:`submit`,variant:`submit`,className:`rounded-full`,disabled:f,children:[`Create New Organization `,(0,H.jsx)(dn,{})]})})]})})})}function Td(){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(no,{}),(0,H.jsx)(`section`,{className:`mt-32 px-4 pt-4 md:px-12 min-h-[calc(100vh-theme(spacing.32))]`,children:(0,H.jsx)(wd,{})})]})}function Ed(e,t){let n=e*12;return`/Admin/Organization/?${[...t?[`name=ct=${encodeURIComponent(t)}`]:[],`status=ne=DELETED`,`sort(name)`,`limit(${n},${n+12+1})`].join(`&`)}`}async function Dd(e,t){let{data:n}=await c.get(Ed(e,t));return{organizations:n.slice(0,12),hasNextPage:n.length>12}}function Od(e,t){return A({queryKey:[`admin-all-organizations`,t,e],queryFn:()=>Dd(e,t),placeholderData:fe,retry:!1})}function kd(e,t=300,n){let[r,i]=(0,V.useState)(e);return(0,V.useEffect)(()=>{let n=setTimeout(()=>i(e),t);return()=>clearTimeout(n)},[n?n(e):e,t]),r}function Ad(e,t){if(e===t)return!0;if(!e||!t)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let i of n)if(!r.includes(i)||e[i]!==t[i])return!1;return!0}function jd(e,t){let[n,r]=(0,V.useState)(t),[i,a]=(0,V.useState)(e);return(0,V.useEffect)(()=>{Ad(n,t)||(r(t),a(e))},[n,t,e]),Ad(n,t)?[i,a]:[e,a]}var Md={};function Nd(e,t,n){let r=(0,V.useCallback)((e,n)=>t(e,n),[n]);(0,V.useEffect)(()=>(Md[e]||(Md[e]=[]),Md[e].push(r),function(){let t=Md[e].indexOf(r);t>=0&&Md[e].splice(t,1)}),[e,t,r])}function Pd(e,t,n){let r=Md[e];if(r)for(let e of r)e(t,n)}function Fd(e,t,n){return r=>Pd(e,t,n??r)}function Id(e,t,n){return(0,V.useCallback)(r=>Pd(e,t,n??r),[e,t,n])}function Ld(e,t){return qr(sessionStorage.getItem(String(e)))??t}function Rd(e,t){t==null?sessionStorage.removeItem(String(e)):sessionStorage.setItem(String(e),JSON.stringify(t))}function zd(e,t){let n=jd(Ld(e,t),[e]),[r,i]=n;return(0,V.useEffect)(()=>{Rd(e,r),Pd(`Session:${e}`,r)},[e,r]),Nd(`Session:${e}`,function(e){r!==e&&i(e)},[r,e,t]),(0,V.useEffect)(function(){let n=n=>{n.key===e&&i(Ld(e,t))};return window.addEventListener(`storage`,n),()=>{window.removeEventListener(`storage`,n)}},[e,i,t]),n}function Bd(){let e=de(),{data:t}=be(a()),{mutate:n,isPending:r}=yd(),[i,o]=(0,V.useState)(!1),[s,c]=(0,V.useState)(null),[l,u]=(0,V.useState)(``),d=(0,V.useCallback)(()=>u(``),[]),f=Xt(),[p,m]=zd(`ShowAllOrganizations`,!1),[h,g]=(0,V.useState)(0),v=f&&p,y=(0,V.useCallback)(e=>{m(e),g(0)},[m]),{data:b,isPending:x}=M({...Od(h,kd(l,300)),enabled:v}),{organizationRoles:S,oauthLockedOrgs:C}=(0,V.useMemo)(()=>{let e=t?.roles||{},n=[],r=[];for(let[t,i]of Object.entries(e))`oauthProviders`in i&&!f?r.push({organizationId:t,organizationName:i.organizationName,providers:i.oauthProviders}):n.push({organizationId:t,organizationName:i.organizationName,roleName:i.role??`fabric admin`});return{organizationRoles:n.filter(Yl([`organizationId`,`organizationName`],l)).sort((e,t)=>(e.organizationName||``)>(t.organizationName||``)?1:-1),oauthLockedOrgs:r}},[l,t?.roles,f]),ee=(0,V.useMemo)(()=>{let e=t?.roles||{};return(b?.organizations||[]).map(t=>({organizationId:t.id,organizationName:t.name,roleName:e[t.id]?.role||`fabric admin`}))},[b?.organizations,t?.roles]),w=v?ee:S,T=(0,V.useCallback)(e=>{u(e.currentTarget.value||``),g(0)},[]),E=(0,V.useCallback)(t=>{t?.organizationId&&n(t.organizationId,{onSuccess:()=>{L.success(`Success`,{description:`Organization successfully deleted.`,duration:5e3,action:{label:`Dismiss`,onClick:()=>L.dismiss()}}),e.invalidateQueries({queryKey:[]}),o(!1)},onError:()=>o(!1)})},[n,e,o]),D=(0,V.useCallback)(e=>{c(e),o(!0)},[]),{createCluster:te}=N({strict:!1});return!v&&S.length===1&&!l.length&&te?(0,H.jsx)(me,{to:`/${S[0].organizationId}/new-cluster`,replace:!0}):!v&&!S.length&&!C.length&&!l.length?(0,H.jsx)(Td,{}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(no,{children:(0,H.jsxs)(`div`,{className:`flex w-full items-center justify-end gap-2`,children:[f&&(0,H.jsxs)(`label`,{className:`flex shrink-0 cursor-pointer items-center gap-2 text-xs`,children:[(0,H.jsx)(Gu,{checked:p,onCheckedChange:y,"aria-label":`Show all organizations`}),(0,H.jsx)(`span`,{className:`hidden sm:inline-block`,children:`All Orgs`})]}),(0,H.jsx)(X,{placeholder:`Filter by name`,className:`inline-block w-full text-xs`,value:l,onChange:T}),(0,H.jsx)(I,{to:`/new-org`,children:(0,H.jsxs)(_,{variant:`positive`,accessKey:`n`,children:[(0,H.jsx)(cr,{}),(0,H.jsxs)(`span`,{className:`hidden sm:inline-block`,children:[(0,H.jsx)(`u`,{children:`N`}),`ew `,(0,H.jsx)(`span`,{className:`hidden md:inline-block`,children:`Organization`})]})]})})]})}),(0,H.jsxs)(`section`,{className:`mt-32 px-4 pt-4 md:px-12 min-h-[calc(100vh-theme(spacing.32))]`,children:[(0,H.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-12`,children:[!v&&C.map(e=>(0,H.jsx)(`div`,{className:`col-span-1 md:col-span-4 lg:col-span-3 2xl:col-span-2`,children:(0,H.jsx)(fd,{organizationId:e.organizationId,organizationName:e.organizationName,providers:e.providers})},e.organizationId)),v&&x?Array.from({length:12},(e,t)=>(0,H.jsx)(dd,{className:`col-span-1 h-40 md:col-span-4 lg:col-span-3 2xl:col-span-2`},t)):w.map(e=>(0,H.jsx)(`div`,{className:`col-span-1 md:col-span-4 lg:col-span-3 2xl:col-span-2`,children:(0,H.jsx)(_d,{organizationRole:e,onDeleteOrgModal:D})},e.organizationId)),!w.length&&!(v&&x)&&(v||!C.length)&&(0,H.jsxs)(`div`,{className:`col-span-1 md:col-span-12 text-center`,children:[(0,H.jsx)(`h2`,{className:`my-4 text-xl`,children:`No matches found.`}),(0,H.jsx)(_,{variant:`outline`,onClick:d,children:`Clear Filters`})]})]}),v&&(h>0||b?.hasNextPage)&&(0,H.jsxs)(`div`,{className:`flex items-center justify-center gap-4 py-6`,children:[(0,H.jsxs)(_,{variant:`defaultOutline`,size:`sm`,className:`select-none`,disabled:h===0,onClick:()=>g(e=>e-1),children:[(0,H.jsx)(un,{}),`Previous`]}),(0,H.jsxs)(`span`,{className:`text-sm text-gray-500 dark:text-gray-400`,children:[`Page `,h+1]}),(0,H.jsxs)(_,{variant:`defaultOutline`,size:`sm`,className:`select-none`,disabled:!b?.hasNextPage,onClick:()=>g(e=>e+1),children:[`Next`,(0,H.jsx)(dn,{})]})]})]}),s&&(0,H.jsx)(vo,{typeOfThingBeingDeleted:`organization`,nameOfThingBeingDeleted:s.organizationName,isModalOpen:i,setIsModalOpen:()=>o(!1),deletionConfirmed:()=>E(s),deletionPending:r})]})}function Vd(){let{isLoading:e}=Jt(),{createCluster:t}=N({strict:!1}),[,n]=Xr(Qr.SavedClusterState,null);return(0,V.useEffect)(()=>{t&&n(t)},[t,n]),e?(0,H.jsx)(Bo,{className:`fixed z-50 translate-1/2`}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`header`,{className:`fixed top-0 z-40 w-full h-20 p-4 bg-gradient-to-r from-violet-100 to-white border-b border-violet-200 dark:from-purple-950 dark:to-zinc-900 dark:border-purple-950 md:px-12`,children:(0,H.jsx)(ki,{})}),(0,H.jsx)(`main`,{children:(0,H.jsx)(Te,{})})]})}var Hd=[`/`,`/forgot-password`,`/reset-password`,`/sign-in`,`/sign-up`,`/verify-email`];function Ud(){let e=Zl();return!Hd.includes(e)&&{redirect:e}}var Wd=P({getParentRoute:()=>Wr,id:`_dashboardLayout`,component:Vd,beforeLoad:({context:e})=>{let t=e.authentication[h];if(t&&!t.isLoading&&!t.user)throw ue({to:`/sign-in`,search:Ud()})}}),Gd=P({getParentRoute:()=>Wd,id:`_orgsLayout`});P({getParentRoute:()=>Gd,path:`/`,head:()=>({meta:[{title:`Organizations — Harper Fabric`}]}),component:Bd}),P({getParentRoute:()=>Gd,path:`/new-org`,head:()=>({meta:[{title:`New Organization — Harper Fabric`}]}),component:Td});var Kd=P({getParentRoute:()=>Gd,path:`$organizationId`,beforeLoad:async e=>{let{organizationId:t}=e.params;if(!ps(t))throw ue({to:`/`});return{organization:await e.context.queryClient.ensureQueryData(hs(t))}}});P({getParentRoute:()=>Kd,path:`/roles`,head:()=>({meta:[{title:`Organization Roles — Harper Fabric`}]}),component:Wu}),P({getParentRoute:()=>Kd,path:`/roles/$orgRoleId`,head:()=>({meta:[{title:`Organization Roles — Harper Fabric`}]}),component:Wu}),P({getParentRoute:()=>Kd,path:`/users`,head:()=>({meta:[{title:`Organization Users — Harper Fabric`}]}),component:ud}),P({getParentRoute:()=>Kd,path:`/users/$orgUserId`,head:()=>({meta:[{title:`Organization Users — Harper Fabric`}]}),component:ud}),P({getParentRoute:()=>Kd,path:`/settings`,component:Xu}),wu(Kd);var qd=P({getParentRoute:()=>Kd,id:`_clusterLayout`});P({getParentRoute:()=>qd,path:`/`,head:()=>({meta:[{title:`Clusters — Harper Fabric`}]}),component:Xl}),P({getParentRoute:()=>Kd,path:`/new-cluster`,head:()=>({meta:[{title:`New Cluster — Harper Fabric`}]}),component:Gl}),P({getParentRoute:()=>Yd,path:`/edit`,head:()=>({meta:[{title:`Edit Cluster — Harper Fabric`}]}),component:Gl}),P({getParentRoute:()=>Yd,path:`/edit/$mode`,head:()=>({meta:[{title:`Edit Cluster — Harper Fabric`}]}),component:Gl});function Jd(){return(0,H.jsx)(Te,{})}var Yd=P({getParentRoute:()=>qd,path:`$clusterId`,component:Jd,beforeLoad:async({context:e,params:t})=>({cluster:await e.queryClient.ensureQueryData(ca(t.clusterId))})});function Xd({children:e,className:t}){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(no,{}),(0,H.jsx)(`div`,{className:T(`mt-32 px-4 py-4 md:px-12 min-h-[calc(100vh-(--spacing(32)))] flex justify-center`,t),children:e})]})}var Zd=new Set([`com`,`co`,`org`,`net`,`edu`,`gov`,`mil`,`me`,`biz`,`info`,`ac`,`or`,`ne`,`go`,`lg`,`asn`,`id`,`nom`,`sch`,`ltd`,`plc`]);function Qd(e){let t=e.split(`.`);if(t.length<=2)return`@`;let n=t[t.length-1],r=t[t.length-2],i=n.length===2&&Zd.has(r)?3:2;return t.length<=i?`@`:t.slice(0,-i).join(`.`)}function $d({cluster:{fqdn:e},domain:{domain:t,id:n}}){let r=Qd(t),[i,a,o]=Lo(r,e||``,n);return(0,H.jsxs)(`div`,{className:`grid gap-4 grid-cols-1 md:grid-cols-[80px_1fr] pb-6`,children:[(0,H.jsx)(`div`,{className:`text-muted-foreground md:col-span-2 text-wrap`,children:`This domain has been verified! Now to associate it with this cluster, add the following to your DNS registrar:`}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`Type:`}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`CNAME`}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`Name:`}),(0,H.jsx)(`div`,{className:`col-span-1 flex gap-2 items-center`,children:(0,H.jsxs)(`div`,{className:`flex items-center gap-1 bg-muted rounded-md px-3 py-1 flex-1 overflow-hidden`,children:[(0,H.jsx)(`input`,{className:`bg-transparent border-none outline-none w-full cursor-text truncate`,type:`text`,readOnly:!0,name:`recordName`,value:r,onClick:i}),(0,H.jsx)(_,{type:`button`,variant:`ghost`,className:`h-6 w-6 p-0 shrink-0`,onClick:i,children:(0,H.jsx)(Pn,{className:`w-3.5 h-3.5`})})]})}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`TTL:`}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`Auto`}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`Target:`}),(0,H.jsx)(`div`,{className:`col-span-1 flex gap-2 items-center`,children:(0,H.jsxs)(`div`,{className:`flex items-center gap-1 bg-muted rounded-md px-3 py-1 flex-1 overflow-hidden`,children:[(0,H.jsx)(`input`,{className:`bg-transparent border-none outline-none w-full cursor-text truncate`,type:`text`,readOnly:!0,name:`recordTarget`,value:e,onClick:a}),(0,H.jsx)(_,{type:`button`,variant:`ghost`,className:`h-6 w-6 p-0 shrink-0`,onClick:a,children:(0,H.jsx)(Pn,{className:`w-3.5 h-3.5`})})]})}),(0,H.jsx)(`div`,{className:`col-span-1 text-xs`,children:`Domain ID:`}),(0,H.jsx)(`div`,{className:`col-span-1 flex gap-2 items-center`,children:(0,H.jsxs)(`div`,{className:`flex items-center gap-1 bg-muted rounded-md px-3 py-0.5 text-xs text-muted-foreground italic flex-1 overflow-hidden`,children:[(0,H.jsx)(`input`,{className:`bg-transparent border-none outline-none w-full cursor-text truncate`,type:`text`,readOnly:!0,name:`domainId`,value:n,onClick:o}),(0,H.jsx)(_,{type:`button`,variant:`ghost`,className:`h-5 w-5 p-0 shrink-0`,onClick:o,children:(0,H.jsx)(Pn,{className:`w-3 h-3`})})]})}),(0,H.jsx)(`div`,{className:`text-muted-foreground md:col-span-2 text-wrap italic text-sm`,children:`Select this domain using the checkbox to the left, then click "Bind" in the top right to finish associating it with this cluster.`})]})}function ef({certificate:e,domain:t,cluster:n}){let r=Qd(t.domain),[i,a,o]=Lo(r,n.fqdn||``,t.id),s=(0,V.useMemo)(()=>e.issueDate&&!e.inProgress?{width:`100%`,color:`bg-green/80`,pulse:!1,text:`Certificate Issued`}:e.inProgress?{width:`100%`,color:`bg-yellow/80`,pulse:!0,text:`Generating Certificate...`}:{width:`100%`,color:`bg-gray-600`,pulse:!1,text:`Pending Certificate Generation...`},[e]);return(0,H.jsxs)(`div`,{className:`w-full max-w-2xl border border-border/50 rounded-md p-4 bg-gray-900/20`,children:[(0,H.jsxs)(`div`,{className:`mb-4`,children:[(0,H.jsx)(`div`,{className:`w-full h-1.5 rounded-full overflow-clip flex shadow-sm bg-gray-800`,children:(0,H.jsx)(`div`,{style:{width:s.width},className:`grow transition-[width] duration-1000 ease-in-out motion-reduce:transition-none ${s.color} ${s.pulse?`animate-pulse`:``}`})}),(0,H.jsx)(`div`,{className:`text-[10px] text-muted-foreground font-light mt-1 italic`,children:s.text})]}),(0,H.jsxs)(`div`,{className:`grid gap-2 grid-cols-1 md:grid-cols-[80px_1fr] text-sm`,children:[(0,H.jsx)(`div`,{className:`col-span-1 text-xs text-muted-foreground`,children:`CNAME:`}),(0,H.jsxs)(`div`,{className:`col-span-1 flex gap-2 items-center flex-wrap`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-1 bg-muted px-2 py-0.5 rounded text-xs`,children:[(0,H.jsx)(`span`,{className:`truncate max-w-[150px]`,title:r,children:r}),(0,H.jsx)(_,{type:`button`,variant:`ghost`,size:`sm`,className:`h-4 w-4 p-0`,onClick:i,title:`Copy Name`,children:(0,H.jsx)(Pn,{className:`w-3 h-3`})})]}),(0,H.jsx)(tf,{}),(0,H.jsxs)(`div`,{className:`flex items-center gap-1 bg-muted px-2 py-0.5 rounded text-xs`,children:[(0,H.jsx)(`span`,{className:`truncate max-w-[200px]`,title:n.fqdn||``,children:n.fqdn}),(0,H.jsx)(_,{type:`button`,variant:`ghost`,size:`sm`,className:`h-4 w-4 p-0`,onClick:a,title:`Copy Target`,children:(0,H.jsx)(Pn,{className:`w-3 h-3`})})]})]}),(0,H.jsx)(`div`,{className:`col-span-1 text-[10px] text-muted-foreground`,children:`Domain ID:`}),(0,H.jsx)(`div`,{className:`col-span-1 flex gap-2 items-center`,children:(0,H.jsxs)(`div`,{className:`flex items-center gap-1 bg-muted px-2 py-0.5 rounded text-[10px] text-muted-foreground italic`,children:[(0,H.jsx)(`span`,{className:`truncate max-w-[200px]`,children:t.id}),(0,H.jsx)(_,{type:`button`,variant:`ghost`,size:`sm`,className:`h-3 w-3 p-0`,onClick:o,title:`Copy ID`,children:(0,H.jsx)(Pn,{className:`w-2.5 h-2.5`})})]})})]})]})}function tf(){return(0,H.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,className:`w-3 h-3 text-muted-foreground`,children:[(0,H.jsx)(`path`,{d:`M5 12h14`}),(0,H.jsx)(`path`,{d:`m12 5 7 7-7 7`})]})}function nf(e){let{enabled:t,entityId:n,databaseName:r,tableName:i,searchAttribute:a,sort:o,pageIndex:s,pageSize:c,onlyIfCached:l}=e;return A({enabled:t,queryKey:[n,r,i,`search_by_value`,a,o.attribute||`default`,o.descending||!1,s||0,c||0,l],retry:!1,staleTime:6e4,gcTime:5e3,queryFn:()=>rf(e)})}async function rf({instanceClient:e,databaseName:t,tableName:n,searchAttribute:r,sort:i,pageIndex:a,pageSize:o,onlyIfCached:s,headers:c}){let l=i.attribute.length&&!(i.attribute===r&&!i.descending),u=await e.post(`/`,{operation:`search_by_value`,get_attributes:[`*`],database:t,table:n,search_attribute:r,search_value:`*`,sort:l?i:void 0,offset:a*o,limit:o,onlyIfCached:s,noCacheStore:s},{timeout:0,headers:c,validateStatus:e=>e>=200&&e<400||e===404});return u.status===404?{data:[]}:u}function af(e){return A({queryKey:[e,`ChallengeCertificate`],queryFn:async()=>{if(!e)return[];let{data:t}=await rf({searchAttribute:`domain`,entityId:e,databaseName:`data`,tableName:`ChallengeCertificate`,sort:{attribute:`domain`,descending:!0},instanceClient:o({id:e,forceFabricConnect:!0}),onlyIfCached:!1,pageIndex:0,pageSize:100});return t},enabled:!!e,refetchInterval:5e3})}function of(e){return M(af(e))}function sf({domain:{challengeToken:e,challengeTxtRecord:t,domain:n,id:r},cluster:{fqdn:i}}){let a=Qd(n),[o,s,c,l,u]=Lo(t,e,a,i||``,r);return(0,H.jsxs)(`div`,{className:`grid gap-2 grid-cols-1 md:grid-cols-[80px_1fr] pb-6`,children:[(0,H.jsx)(`div`,{className:`text-muted-foreground md:col-span-2 text-wrap`,children:`Prove that you own this domain by adding the following to your DNS registrar:`}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`Type:`}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`TXT`}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`Name:`}),(0,H.jsx)(`div`,{className:`col-span-1 flex gap-2 items-center`,children:(0,H.jsxs)(`div`,{className:`flex items-center gap-1 bg-muted rounded-md px-3 py-1 flex-1 overflow-hidden`,children:[(0,H.jsx)(`input`,{className:`bg-transparent border-none outline-none w-full cursor-text truncate`,type:`text`,readOnly:!0,name:`challengeName`,value:t,onClick:o}),(0,H.jsx)(_,{type:`button`,size:`sm`,variant:`ghost`,className:`h-6 w-6 p-0 shrink-0`,onClick:o,children:(0,H.jsx)(Pn,{className:`w-3.5 h-3.5`})})]})}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`TTL:`}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`Auto`}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`Content:`}),(0,H.jsx)(`div`,{className:`col-span-1 flex gap-2 items-center`,children:(0,H.jsxs)(`div`,{className:`flex items-center gap-1 bg-muted rounded-md px-3 py-1 flex-1 overflow-hidden`,children:[(0,H.jsx)(`input`,{className:`bg-transparent border-none outline-none w-full cursor-text truncate`,type:`text`,readOnly:!0,name:`challengeToken`,value:e,onClick:s}),(0,H.jsx)(_,{type:`button`,size:`sm`,variant:`ghost`,className:`h-6 w-6 p-0 shrink-0`,onClick:s,children:(0,H.jsx)(Pn,{className:`w-3.5 h-3.5`})})]})}),(0,H.jsx)(`div`,{className:`text-muted-foreground md:col-span-2 text-wrap mt-4`,children:`While you're at it, you should also add the CNAME record to point to this cluster:`}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`Type:`}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`CNAME`}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`Name:`}),(0,H.jsx)(`div`,{className:`col-span-1 flex gap-2 items-center`,children:(0,H.jsxs)(`div`,{className:`flex items-center gap-1 bg-muted rounded-md px-3 py-1 flex-1 overflow-hidden`,children:[(0,H.jsx)(`input`,{className:`bg-transparent border-none outline-none w-full cursor-text truncate`,type:`text`,readOnly:!0,name:`recordName`,value:a,onClick:c}),(0,H.jsx)(_,{type:`button`,size:`sm`,variant:`ghost`,className:`h-6 w-6 p-0 shrink-0`,onClick:c,children:(0,H.jsx)(Pn,{className:`w-3.5 h-3.5`})})]})}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`TTL:`}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`Auto`}),(0,H.jsx)(`div`,{className:`col-span-1`,children:`Target:`}),(0,H.jsx)(`div`,{className:`col-span-1 flex gap-2 items-center`,children:(0,H.jsxs)(`div`,{className:`flex items-center gap-1 bg-muted rounded-md px-3 py-1 flex-1 overflow-hidden`,children:[(0,H.jsx)(`input`,{className:`bg-transparent border-none outline-none w-full cursor-text truncate`,type:`text`,readOnly:!0,name:`recordTarget`,value:i,onClick:l}),(0,H.jsx)(_,{type:`button`,size:`sm`,variant:`ghost`,className:`h-6 w-6 p-0 shrink-0`,onClick:l,children:(0,H.jsx)(Pn,{className:`w-3.5 h-3.5`})})]})}),(0,H.jsx)(`div`,{className:`col-span-1 text-xs`,children:`Domain ID:`}),(0,H.jsx)(`div`,{className:`col-span-1 flex gap-2 items-center`,children:(0,H.jsxs)(`div`,{className:`flex items-center gap-1 bg-muted rounded-md px-3 py-0.5 text-xs text-muted-foreground italic flex-1 overflow-hidden`,children:[(0,H.jsx)(`input`,{className:`bg-transparent border-none outline-none w-full cursor-text truncate`,type:`text`,readOnly:!0,name:`domainId`,value:r,onClick:u}),(0,H.jsx)(_,{type:`button`,size:`sm`,variant:`ghost`,className:`h-5 w-5 p-0 shrink-0`,onClick:u,children:(0,H.jsx)(Pn,{className:`w-3 h-3`})})]})}),(0,H.jsx)(`div`,{className:`text-muted-foreground md:col-span-2 text-wrap mt-2`,children:`Then after your DNS TTL elapses, click the "Validate" button above.`})]})}async function cf({clusterId:e,domainIds:t,generateDomainCerts:n}){let{data:r}=await c.put(`/Cluster/${e}`,{domainIds:t,generateDomainCerts:n},{timeout:0});return r}function lf(){return F({mutationFn:e=>cf(e)})}D.object({domainId:D.string()});async function uf(e){let{data:t}=await c.delete(`/Domain/${e.domainId}`);return t}function df(){return F({mutationFn:e=>uf(e)})}function ff(e){return[...new Set(e)]}var pf=pe();function mf(e,t,n){let{data:r}=of(e.id),i=(0,V.useMemo)(()=>!!r?.some(e=>!e.issueDate||e.inProgress),[r]),{mutate:a,isPending:o}=lf(),{mutate:s,isPending:c}=df(),l=o||c,u=(0,V.useCallback)((t,n)=>{if(!io(e.status)){L.error(`Cluster is currently `+e.status,{description:`To bind a domain, it must be running.`});return}a({clusterId:e.id,domainIds:ff((e.domainIds?.slice()||[]).concat([t])),generateDomainCerts:n},{onSuccess:()=>{Ir.invalidateQueries({queryKey:[e.organizationId],refetchType:`active`}),L.success(`Domain bound!`+(n?` Certificates are being generated in the background now.`:``))}})},[a,e]),d=(0,V.useCallback)(t=>{s({domainId:t},{onSuccess:()=>{Ir.invalidateQueries({queryKey:[e.organizationId,`domains`],refetchType:`active`}),L.success(`Domain removed!`)}})},[s]),f=(0,V.useCallback)(t=>{a({clusterId:e.id,domainIds:(e.domainIds?.slice()||[]).filter(e=>e!==t),generateDomainCerts:!1},{onSuccess:()=>{Ir.invalidateQueries({queryKey:[e.organizationId],refetchType:`active`}),L.success(`Domain unbound!`)}})},[s]);return(0,V.useMemo)(()=>[pf.display({id:`select`,header:`Bind`,size:50,cell:r=>{let a=r.row.original;return a.status===`ACTIVE`&&!a.clusterId&&!jo(e)?(0,H.jsx)(`label`,{className:`p-10 -m-10`,children:(0,H.jsx)(`input`,{type:`checkbox`,checked:t.includes(a.id),onChange:()=>n(a.id),disabled:l||i})}):null}}),pf.display({header:`Domains`,id:`domain`,enableSorting:!1,size:150,cell:e=>{let t=e.row.original;return(0,H.jsxs)(Wi,{children:[(0,H.jsx)(Gi,{asChild:!0,children:(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{children:t.domain}),(0,H.jsx)(_,{type:`button`,variant:`destructiveGhost`,className:`text-muted-foreground text-xs`,disabled:l||!!t.clusterId,onClick:()=>d(t.id),children:`Remove Domain`})]})}),(0,H.jsx)(Ki,{side:`bottom`,align:`center`,children:t.clusterId?`To delete this domain, please unbind it from all clusters first.`:`Remember to clean up your DNS records!`})]})}}),pf.display({header:`Next Steps`,enableSorting:!1,size:500,id:`nextSteps`,cell:t=>{let n=t.row.original,i=r?.find(e=>e.domain===n.domain);return n.status===`ACTIVE`&&n.clusterId?e.id===n.clusterId?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{children:`Bound to this cluster`}),i&&(!i.issueDate||i.inProgress)&&(0,H.jsx)(`div`,{className:`py-2`,children:(0,H.jsx)(ef,{certificate:i,domain:n,cluster:e})}),(0,H.jsx)(_,{type:`button`,variant:`destructiveGhost`,className:`text-muted-foreground text-xs`,disabled:l,onClick:()=>f(n.id),children:`Unbind Domain`})]}):`Bound to cluster ${n.clusterId}`:n.status===`PENDING_VALIDATION`?(0,H.jsx)(sf,{domain:n,cluster:e}):jo(e)?`Cannot be associated with this self-managed cluster.`:n.status===`ACTIVE`&&!n.clusterId?(0,H.jsx)($d,{cluster:e,domain:n}):n.status}})],[e,u,l,r,i,t,n])}var hf=D.object({domain:D.string(),organizationId:D.string()});async function gf(e){let{data:t}=await c.post(`/Domain/`,e);return t}function _f(){return F({mutationFn:e=>gf(e)})}async function vf(e){let{data:t}=await c.post(`/Domain/${e}/validate`);return t}async function yf(e){let{data:t}=await c.get(`/Domain/?organizationId=${e}`);return t}function bf(e){return A({queryKey:[e,`domains`],queryFn:()=>yf(e)})}function xf(){let{organizationId:e,clusterId:t}=j({strict:!1}),{data:n}=be(ca(t,!0)),{update:r}=bi(e),{data:i,refetch:a,isFetching:o,isRefetching:s}=M(bf(e)),c=(0,V.useMemo)(()=>i?.filter(e=>e.status===`PENDING_VALIDATION`)||[],[i]),[l]=(0,V.useState)({attribute:`domain`,descending:!1}),u=(0,V.useMemo)(()=>[{desc:l.descending,id:l.attribute}],[l]),f=bu(a),[p,m]=(0,V.useState)([]),h=(0,V.useCallback)(e=>{m(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[]),{mutate:g,isPending:v}=lf(),y=(0,V.useCallback)(()=>{if(!io(n.status)){L.error(`Cluster is currently `+n.status,{description:`To bind a domain, it must be running.`});return}g({clusterId:n.id,domainIds:ff((n.domainIds?.slice()||[]).concat(p)),generateDomainCerts:!0},{onSuccess:()=>{Ir.invalidateQueries({queryKey:[n.organizationId],refetchType:`active`}),L.success(`Domain(s) bound! Certificates are being generated in the background now.`),m([])}})},[n,p,g]),{mutateAsync:b,isPending:x}=_f(),S=z({resolver:R(hf),defaultValues:{domain:``,organizationId:e}}),C=(0,V.useCallback)(async e=>{if(e){let t=e.domain.split(/[,\s]+/).map(e=>e.trim()).filter(Boolean);for(let n of t)await b({...e,domain:n});S.reset(),await a(),L.success(`${d(t.length,`Domain`,`Domains`)} added! Please add the txt record above to your domain registrar.`)}},[b,S,a]),ee=(0,V.useCallback)(async()=>{let e=`Validating ${d(c.length,`domain`,`domains`)}...`,t=`validatingDomains`,n=0,r=0;for(let i of c)try{L.loading(e,{description:`${n++} of ${c.length} checked`,id:t}),await vf(i.id)}catch{r+=1}r>0?L.error(`Validation failed!`,{description:`Please make sure the TXT record has been put in place. You may need to wait a bit for the DNS change to propagate.`,id:t}):(await a(),L.success(`Validation succeeded!`,{description:`Please take a look at the next steps for newly verified domains.`,id:t}))},[c]),w=mf(n,p,h),T=S.watch(`domain`),E=(0,V.useMemo)(()=>typeof T==`string`?T.trim().split(`.`).length===2:!1,[T]),D=(0,V.useCallback)(()=>{typeof T==`string`&&S.setValue(`domain`,`${T.trim()}, www.${T.trim()}`)},[T,S]);return(0,H.jsx)(hu,{data:i||[],isFetching:o||s,columns:w,sortingState:u,children:(0,H.jsxs)(`div`,{className:`w-full flex flex-col md:flex-row items-center md:justify-between md:space-x-2 space-y-2 md:space-y-0`,children:[r&&(0,H.jsx)(W,{...S,children:(0,H.jsxs)(`form`,{id:`cluster-add-domain-form`,name:`cluster-add-domain-form`,onSubmit:S.handleSubmit(C),className:`flex gap-1 flex-col md:flex-row`,children:[(0,H.jsx)(K,{control:S.control,name:`domain`,render:({field:e})=>(0,H.jsxs)(q,{className:`flex-1`,children:[(0,H.jsx)(J,{className:`pb-1`,children:`New Domain Name`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`text`,enterKeyHint:`done`,autoComplete:`off`,...e})}),E&&(0,H.jsxs)(`div`,{className:`mt-1 flex gap-4`,children:[`Adding an apex domain?`,(0,H.jsx)(_,{variant:`positiveOutline`,type:`button`,onClick:D,children:`Add www as well`})]}),(0,H.jsx)(Y,{children:(0,H.jsx)(`span`,{className:`text-muted-foreground italic`,children:`Type in a domain like example.com or your.example.com, and you'll be guided through validating and binding your cluster to it.`})})]})}),(0,H.jsxs)(`div`,{className:`flex-0 self-start flex gap-1 md:pt-6.5`,children:[(0,H.jsxs)(_,{type:`submit`,variant:`submit`,disabled:x,children:[(0,H.jsx)(cr,{}),` Add`]}),c.length>0&&(0,H.jsxs)(_,{variant:`positiveOutline`,onClick:ee,accessKey:`r`,type:`button`,disabled:o||s,children:[(0,H.jsx)(Xn,{}),` `,(0,H.jsxs)(`span`,{children:[(0,H.jsx)(`u`,{children:`V`}),`alidate`]})]}),(0,H.jsxs)(_,{variant:`defaultOutline`,onClick:f,accessKey:`r`,type:`button`,disabled:o||s,children:[(0,H.jsx)(dr,{}),` `,(0,H.jsxs)(`span`,{className:`hidden lg:inline-block`,children:[(0,H.jsx)(`u`,{children:`R`}),`efresh`]})]})]})]})}),p.length>0&&(0,H.jsx)(`div`,{className:`flex-0 self-start md:pt-6.5`,children:(0,H.jsxs)(_,{variant:`submit`,onClick:y,disabled:v,children:[(0,H.jsx)(pr,{}),` Bind `,d(p.length,`Domain`,`Domains`)]})})]})})}function Sf(){return(0,H.jsx)(Xd,{className:`flex flex-col justify-start max-w-4xl`,children:(0,H.jsx)(xf,{})})}var Cf=O({username:da,role:k().nonempty({error:`Please select a role.`}),password:ua.min(8,{error:`Password must be at least 8 characters long.`}),confirmPassword:k()}).refine(e=>e.password===e.confirmPassword,{error:`Passwords do not match.`,path:[`confirmPassword`]});async function wf(e){await c.patch(`/ResetPasswordUpdater/${e}`)}async function Tf(e){let{instanceClient:t,...n}=e,{data:r}=await t.post(`/`,{operation:`add_user`,...n});return r}function Ef(){return F({mutationFn:Tf})}async function Df({username:e,password:t,role:n,active:r,instanceClient:i}){let{data:a}=await i.post(`/`,{operation:`alter_user`,username:e,password:t,role:n,active:r});return a}function Of(){return F({mutationFn:Df})}async function kf({username:e,instanceClient:t}){let{data:n}=await t.post(`/`,{operation:`drop_user`,username:e});return n}function Af(){return F({mutationFn:kf})}async function jf({clusterId:e,initialUsername:t,desiredUsername:n,newPassword:r,tempPassword:a,instanceClient:o}){if(!a)throw Error(`You may not have permission to set the password on this cluster.`);let c=o;try{let i=await ia({username:t,password:a,instanceClient:c,entityId:e});return i.instanceClient&&(c=i.instanceClient),n===`HDB_ADMIN`?await Df({username:n,password:r,instanceClient:c}):(await Tf({username:n,password:r,role:`super_user`,active:!0,instanceClient:c}),await ia({username:n,password:r,instanceClient:c,entityId:e}),await kf({username:s,instanceClient:c})),await wf(e),i}catch(t){throw await i({entityId:e,instanceClient:c}),t}}function Mf(){return F({mutationFn:jf})}function Nf(){let{user:e}=Yt(),{clusterId:t}=j({strict:!1}),{data:n}=M(ca(t,!0)),r=je(),i=(0,V.useMemo)(()=>p(n),[n]),a=di({operationsUrl:i}),{redirect:o}=N({strict:!1}),c=ae(),u=z({resolver:R(Cf),defaultValues:{confirmPassword:``,password:``,role:`super_user`,username:e?.email??``}}),{setFocus:d,control:f,handleSubmit:m}=u;(0,V.useEffect)(()=>{d(`password`)},[d]);let h=n?.instances?.find(e=>e.tempPassword)?.tempPassword,{mutate:g,isPending:v}=Mf(),y=(0,V.useCallback)(async e=>{if(!i){L.error(`Cluster is not yet fully loaded, please wait a moment before trying to sign in.`);return}g({instanceClient:a,clusterId:t,newPassword:e.password,tempPassword:h,initialUsername:s,desiredUsername:e.username},{onSuccess:async({message:e,user:t})=>{L.success(e),l.setUserForEntity(n,t),c.invalidate(),await r({to:o?.startsWith(`/`)?o:`../`})}})},[n,t,a,r,i,o,c,g,h]);return n&&!n.resetPassword?(0,H.jsx)(me,{to:`../sign-in`,replace:!0}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`nav`,{"aria-label":`Breadcrumb`,className:`fixed top-20 w-full h-12 z-39 px-4 md:px-12 bg-violet-50 border-b border-violet-100 dark:bg-grey-700 dark:border-none flex items-center`,children:(0,H.jsx)(Xi,{})}),(0,H.jsx)(`div`,{className:`items-center justify-center flex mt-32 py-4 min-h-[calc(100vh-(--spacing(32)))]`,children:(0,H.jsxs)(`div`,{className:`text-foreground w-xs`,children:[(0,H.jsx)(`h1`,{className:`text-2xl font-light`,children:`Create Admin User`}),(0,H.jsx)(`p`,{className:`text-muted-foreground`,children:`You are ready to create your first user in your new cluster. These credentials belong to you alone, and you can create more users and roles once you create this first one.`}),(0,H.jsx)(W,{...u,children:(0,H.jsxs)(`form`,{id:`cluster-create-admin-form`,name:`cluster-create-admin-form`,onSubmit:m(y),className:`my-4`,children:[(0,H.jsx)(K,{control:f,name:`username`,render:({field:e})=>(0,H.jsxs)(q,{className:`my-4`,children:[(0,H.jsx)(J,{children:`Username`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{autoComplete:`username`,type:`text`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:f,name:`password`,render:({field:e})=>(0,H.jsxs)(q,{className:`my-4`,children:[(0,H.jsx)(J,{children:`Password`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`password`,autoComplete:`new-password`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:f,name:`confirmPassword`,render:({field:e})=>(0,H.jsxs)(q,{className:`my-4`,children:[(0,H.jsx)(J,{children:`Confirm Password`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`password`,autoComplete:`new-password`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(_,{disabled:v,type:`submit`,variant:`submit`,className:`w-full my-2 rounded-full`,children:`Create Admin User`})]})}),(0,H.jsxs)(`p`,{className:`text-muted-foreground flex gap-2 align-middle`,children:[(0,H.jsx)(sn,{size:36,className:`flex-none`}),(0,H.jsx)(`span`,{children:`These credentials will be used to sign into your cluster directly, providing you a secure connection from your browser to your cluster.`})]})]})})]})}function Pf({columns:e,data:t}){let n=ye({data:t,columns:e,getCoreRowModel:we()});return(0,H.jsx)(`div`,{className:`bg-card dark:bg-black-dark rounded-md`,children:(0,H.jsxs)(cu,{children:[(0,H.jsx)(lu,{children:n.getHeaderGroups().map(e=>(0,H.jsx)(du,{className:`border-none`,children:e.headers.map(e=>(0,H.jsx)(fu,{className:`p-4`,style:{width:`${e.getSize()}%`},children:e.isPlaceholder?null:Ee(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,H.jsx)(uu,{className:`bg-background dark:bg-black`,children:n.getRowModel().rows?.length?n.getRowModel().rows.map(e=>(0,H.jsx)(du,{"data-state":e.getIsSelected()&&`selected`,className:`hover:bg-muted/10 data-[state=selected]:bg-muted`,children:e.getVisibleCells().map(e=>(0,H.jsx)(mu,{className:`p-4`,style:{width:`${e.column.getSize()}%`},children:Ee(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,H.jsx)(du,{children:(0,H.jsx)(mu,{colSpan:e.length,className:`h-24 text-center`,children:`No results.`})})})]})})}function Ff(){return(0,H.jsx)(`div`,{className:`flex-col items-center justify-center px-16 space-y-3 text-center pt-30`,children:(0,H.jsx)(`p`,{children:`No instances found.`})})}function If({isSelfManaged:e,instance:t}){let{user:n,isLoading:a}=Qt(t.id),o=di({operationsUrl:(0,V.useMemo)(()=>r(t),[t])}),{update:s}=Ci(),c=l.checkForFabricConnect(t.id),u=(0,V.useCallback)(async()=>{await i({instanceClient:o,entityId:t.id}),l.setUserForEntity(t,null)},[t,o]);return a||!t.status||![`CLONE_READY`,`RUNNING`,`UPDATED`,`PENDING_UPGRADE`].includes(t.status)?(0,H.jsx)(Zn,{className:`animate-spin`,color:`gray`}):!n||c?(0,H.jsxs)(`span`,{className:`flex gap-4`,children:[s&&!e&&(0,H.jsx)(I,{to:`../instance/${t.id}/`,className:`text-sm`,"aria-label":`Connect to ${t.name} instance`,title:`Connect to ${t.name} instance`,children:(0,H.jsx)(_,{variant:`positiveOutline`,children:`Fabric Connect`})}),(0,H.jsx)(I,{to:`../instance/${t.id}/sign-in`,className:`text-sm`,"aria-label":`Sign in to ${t.name} instance`,title:`Sign in to ${t.name} instance`,children:(0,H.jsx)(_,{variant:s?`defaultOutline`:`positiveOutline`,children:`Direct Sign In`})})]}):(0,H.jsxs)(`span`,{className:`flex gap-4`,children:[(0,H.jsx)(I,{to:`../instance/${t.id}/`,className:`text-sm`,"aria-label":`Go to ${t.name} instance`,title:`Go to ${t.name} instance`,children:(0,H.jsx)(_,{variant:`positiveOutline`,children:`Direct Connect`})}),(0,H.jsx)(_,{variant:`destructiveOutline`,className:`text-sm`,"aria-label":`Sign out from ${t.name} instance`,title:`Sign out from ${t.name} instance`,onClick:u,children:`Direct Sign Out`})]})}function Lf({entityId:e,instanceClient:t},n){return A({queryKey:[e,`get_status`],staleTime:9e3,refetchInterval:1e4,retryDelay:1e4,throwOnError:!1,enabled:n,queryFn:async()=>{let{data:e}=await t.post(`/`,{operation:`get_status`});return e}})}function Rf(e,t){return e?.systemStatus?.find(e=>e.id===t)?.status}async function zf({instanceClient:e,id:t,status:n}){let{data:r}=await e.post(`/`,{operation:`set_status`,id:t,status:n});return r}function Bf(){return F({mutationFn:zf,onSuccess:(e,t)=>Ir.invalidateQueries({queryKey:[t.entityId,`get_status`]})})}function Vf({instance:e,index:t}){let{update:n}=Ci(),i=U({operationsUrl:(0,V.useMemo)(()=>r(e),[e]),instanceId:e.id,forceFabricConnect:!0}),{mutate:a,isPending:o}=Bf(),[s,c]=(0,V.useState)(!1);(0,V.useEffect)(()=>{let e=setTimeout(()=>c(!0),t*500);return()=>clearTimeout(e)},[t]);let{data:l,isLoading:u,isFetching:d}=M(Lf(i,s&&n)),f=Rf(l,`availability`)||`Unknown`,p=f===`Available`,m=f===`Unavailable`;return n?(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsxs)(Wi,{children:[(0,H.jsx)(Gi,{asChild:!0,children:(0,H.jsx)(`div`,{className:`flex items-center`,children:u||!s||d&&!l?(0,H.jsx)(Zn,{className:`animate-spin size-5 text-muted-foreground`}):(0,H.jsx)(yo,{variant:p?`success`:m?`destructive`:`default`,className:`size-4 rounded-full p-0`,children:(0,H.jsx)(`span`,{className:`sr-only`,children:p?`Online`:`Offline`})})})}),(0,H.jsxs)(Ki,{children:[d&&l?`Refreshing... `:``,f]})]}),n&&(0,H.jsxs)(`div`,{className:`flex gap-1`,children:[p&&(0,H.jsxs)(Wi,{children:[(0,H.jsx)(Gi,{asChild:!0,children:(0,H.jsx)(_,{type:`button`,variant:`destructiveGhost`,size:`icon`,onClick:()=>a({...i,id:`availability`,status:`Unavailable`}),disabled:o,children:o?(0,H.jsx)(Zn,{className:`animate-spin size-4`}):(0,H.jsx)(yr,{className:`size-4`})})}),(0,H.jsx)(Ki,{children:`Bring out of rotation`})]}),m&&(0,H.jsxs)(Wi,{children:[(0,H.jsx)(Gi,{asChild:!0,children:(0,H.jsx)(_,{type:`button`,variant:`ghost`,size:`icon`,onClick:()=>a({...i,id:`availability`,status:`Available`}),disabled:o,children:o?(0,H.jsx)(Zn,{className:`animate-spin size-4`}):(0,H.jsx)(vr,{className:`size-4`})})}),(0,H.jsx)(Ki,{children:`Bring back into rotation`})]})]})]}):null}function Hf(){let{clusterId:e}=j({strict:!1}),{data:t,isLoading:n}=M(ca(e,!0)),r=jo(t),i=(0,V.useMemo)(()=>[{id:`instanceActions`,size:1,minSize:1,cell:e=>(0,H.jsx)(`div`,{className:`flex justify-end gap-2 items-center`,children:(0,H.jsx)(If,{isSelfManaged:r,instance:e.row.original})})},r&&{accessorKey:`instanceFqdn`,size:90,header:`URL`,cell:e=>Ll({secure:e.row.original.operationsApiSecure?`true`:`false`,port:e.row.original.operationsApiPort,fqdn:e.row.original.instanceFqdn})},!r&&{accessorKey:`name`,size:90,header:`Name`},{accessorKey:`status`,header:`Status`,size:1,minSize:1,cell:e=>{let t=e.getValue();return(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(Vf,{instance:e.row.original,index:e.row.index}),t?(0,H.jsx)(yo,{variant:ro(t),children:Ji(t)}):null]})}},!r&&{accessorKey:`version`,size:1,minSize:1,header:`Version`},!r&&{accessorKey:`storageGb`,size:1,minSize:1,header:`Storage`,cell:e=>`${e.getValue()} GB`},!r&&{accessorKey:`usedStorageGb`,size:1,minSize:1,header:`Used Storage`,cell:e=>{let t=e.getValue();return t===void 0?`-`:`${t} GB`}},!r&&{accessorKey:`cpuCores`,size:1,minSize:1,header:`Cores/Threads`,cell:e=>(0,H.jsxs)(H.Fragment,{children:[e.row.original.cpuCores,` / `,e.row.original.threads]})},!r&&{accessorKey:`memoryMb`,size:1,minSize:1,header:`Memory`,cell:e=>`${e.getValue()/1024} GB`}].filter(Lr),[r]),a=(0,V.useMemo)(()=>t?.instances?t.instances.filter(e=>e.status&&!na.includes(e.status)).sort(Zo):[],[t]);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(no,{}),(0,H.jsx)(`div`,{className:`mt-32 px-4 pt-4 md:px-12 min-h-[calc(100vh-(--spacing(32)))]`,children:(0,H.jsx)($t,{className:`p-0 mt-4 min-h-96`,children:(0,H.jsx)(rn,{className:`p-0 min-h-96`,children:n?(0,H.jsx)(Qc,{}):a.length?(0,H.jsx)(Pf,{data:a,columns:i}):(0,H.jsx)(Ff,{})})})})]})}function Uf(){let{clusterId:e}=j({strict:!1}),{data:t,isLoading:n}=M(ca(e,2e3)),r=t?.status,i=(0,V.useMemo)(()=>r&&ta.includes(r),[r]);return n||!t?(0,H.jsx)(Xd,{className:`flex justify-center`,children:(0,H.jsx)(Qc,{})}):i?(0,H.jsx)(Xd,{className:`flex justify-center`,children:(0,H.jsxs)(`div`,{className:`center w-2xl flex flex-col gap-4`,children:[(0,H.jsx)(`h1`,{className:`text-xl text-center`,children:`All done!`}),(0,H.jsx)(Po,{cluster:t,forceProgressBarVisible:!0}),(0,H.jsx)(`p`,{children:`Your cluster finished updating, and is ready for interaction.`}),(0,H.jsx)(`div`,{className:`text-center`,children:(0,H.jsx)(Mo,{cluster:t})})]})}):(0,H.jsx)(Xd,{className:`flex justify-center`,children:(0,H.jsxs)(`div`,{className:`center w-2xl flex flex-col gap-4`,children:[(0,H.jsx)(`h1`,{className:`text-xl text-center`,children:`Here we go!`}),(0,H.jsx)(Po,{cluster:t,forceProgressBarVisible:!0}),(0,H.jsxs)(`p`,{children:[`Your cluster is updating with the latest changes. This includes waiting several minutes to let traffic drain safely.`,` `,(0,H.jsxs)(`span`,{className:`text-muted-foreground`,children:[`We will let you know when we are ready for you to connect! In the meantime, join us on`,` `,(0,H.jsx)(`a`,{href:`https://discord.gg/VzZuaw3Xay`,target:`_blank`,rel:`noreferrer`,className:`underline hover:text-blue-300`,children:`Discord`}),`! Get real-time help from our engineers, see feature drops early, and connect with others building on Fabric.`]})]})]})})}function Wf(){let e=ae(),{clusterId:t}=j({strict:!1}),{data:n,isLoading:r}=M(ca(t,2e3)),i=n?.status,a=(0,V.useMemo)(()=>i&&ta.includes(i),[i]),o=ao(i),[,s]=Xr(Qr.SavedClusterState,null),c=(0,V.useCallback)(()=>{s(n),e.navigate({to:`/${n.organizationId}/new-cluster`})},[n,e,s]);return r||!n?(0,H.jsx)(Xd,{className:`flex justify-center`,children:(0,H.jsx)(Qc,{})}):o?(0,H.jsx)(Xd,{className:`flex justify-center`,children:(0,H.jsxs)(`div`,{className:`center max-w-2xl flex flex-col gap-4 items-center`,children:[(0,H.jsx)(An,{className:`w-24 h-24`}),(0,H.jsxs)(`span`,{children:[`Your cluster failed to successfully start. This is usually caused by temporary communication problems. Would you like to try again? We also get notified about these failures. `,(0,H.jsx)(zo,{}),` if you want more help.`]}),(0,H.jsx)(_,{type:`button`,variant:`positiveOutline`,onClick:c,children:`Try Again`})]})}):a?(0,H.jsx)(Xd,{className:`flex justify-center`,children:(0,H.jsxs)(`div`,{className:`center max-w-2xl flex flex-col gap-4`,children:[(0,H.jsx)(`h1`,{className:`text-xl text-center`,children:`It's ready!`}),(0,H.jsx)(Po,{cluster:n,forceProgressBarVisible:!0}),(0,H.jsxs)(`p`,{children:[`Let's set up your secure, browser-to-cluster connection now.`,` `,(0,H.jsxs)(`span`,{className:`text-muted-foreground`,children:[`Did you know during this step, you connect straight to your cluster, providing a private secure connection? That's `,(0,H.jsx)(`em`,{children:`Direct Connect`}),`! Once you create your user, you will have the option to`,` `,(0,H.jsx)(`em`,{children:`Fabric Connect`}),` from your Fabric account without having to sign in again.`]})]}),(0,H.jsx)(`div`,{className:`text-center`,children:(0,H.jsx)(Mo,{cluster:n})})]})}):(0,H.jsx)(Xd,{className:`flex justify-center`,children:(0,H.jsxs)(`div`,{className:`center max-w-2xl flex flex-col gap-4`,children:[(0,H.jsx)(`h1`,{className:`text-xl text-center`,children:`Here we go!`}),(0,H.jsx)(Po,{cluster:n,forceProgressBarVisible:!0}),(0,H.jsxs)(`p`,{children:[`Your cluster is spinning up with the latest changes, including your own DNS records and private connections. Please wait while we get everything going.`,` `,(0,H.jsxs)(`span`,{className:`text-muted-foreground`,children:[`We will let you know when we are ready for you to connect! In the meantime, join us on`,` `,(0,H.jsx)(`a`,{href:`https://discord.gg/VzZuaw3Xay`,target:`_blank`,rel:`noreferrer`,className:`underline hover:text-blue-300`,children:`Discord`}),`! Get real-time help from our engineers, see feature drops early, and connect with others building on Fabric.`]})]})]})})}P({getParentRoute:()=>Yd,path:`instances`,head:()=>({meta:[{title:`Instances — Harper Fabric`}]}),component:Hf}),P({getParentRoute:()=>Yd,path:`starting-up`,head:()=>({meta:[{title:`Starting Up — Harper Fabric`}]}),component:Wf}),P({getParentRoute:()=>Yd,path:`scaling`,head:()=>({meta:[{title:`Scaling — Harper Fabric`}]}),component:Uf}),P({getParentRoute:()=>Yd,path:`domains`,head:()=>({meta:[{title:`Domains — Harper Fabric`}]}),component:Sf}),P({getParentRoute:()=>Yd,path:`sign-in`,head:()=>({meta:[{title:`Sign In — Harper Fabric`}]}),component:va,beforeLoad:({context:e,location:t,params:n})=>{let r=l.checkForFabricConnect(n.clusterId);if(e.authentication[n.clusterId]?.user&&!r){let e=t?.search;throw ue({to:e?.redirect?.startsWith(`/`)?e.redirect:`../`})}}}),P({getParentRoute:()=>Yd,path:`instance/$instanceId/sign-in`,head:()=>({meta:[{title:`Sign In — Harper Fabric`}]}),component:va,beforeLoad:({context:e,location:t,params:n})=>{if(!(l.checkForFabricConnect(n.clusterId)||l.checkForFabricConnect(n.instanceId))&&e.authentication[n.instanceId]?.user){let e=t?.search;throw ue({to:e?.redirect?.startsWith(`/`)?e.redirect:`../`})}}}),P({getParentRoute:()=>Yd,path:`finish-setup`,head:()=>({meta:[{title:`Create Admin User — Harper Fabric`}]}),component:Nf});function Gf(e){return P({getParentRoute:()=>e,path:`apis`,head:()=>({meta:[{title:`APIs — Harper Fabric`}]})}).lazy(()=>Pe(()=>import(`./index.lazy-DY3VcR86.js`).then(e=>e.route),__vite__mapDeps([8,2,1,9,10,11,12,13,14,15])))}function Kf(e){return[P({getParentRoute:()=>e,path:`/`,head:()=>({meta:[{title:`Applications — Harper Fabric`}]}),component:Se(()=>Pe(()=>import(`./applications-CigxJarn.js`),__vite__mapDeps([16,2,1,12,13,10,9,17,18,11,19,4,5,14,20])),`ApplicationsEditor`)})]}async function qf({instanceClient:e}){let{data:t}=await e.post(`/`,{operation:`list_certificates`});return t}function Jf(e){return A({queryKey:[e.entityId,`list_certificates`],queryFn:()=>qf(e)})}var Yf=[{header:`Certificate Name`,accessorKey:`name`,enableSorting:!0},{header:`Issuer`,accessorKey:`details.issuer`,enableSorting:!0},pe().display({header:`Expires At`,enableSorting:!1,id:`details.valid_to`,cell:e=>e.row.original.details.valid_to?new Date(e.row.original.details.valid_to).toLocaleString():`N/A`})];function Xf({className:e,...t}){return(0,H.jsx)(`textarea`,{"data-slot":`input`,className:f(`border-input file:text-foreground placeholder:text-muted-foreground selection:bg-purple
13
13
  selection:text-primary-foreground
14
14
  dark:aria-invalid:outline-destructive dark:aria-invalid:ring-destructive/50 ring-ring/10
15
15
  dark:ring-ring/20 dark:outline-ring/40 outline-ring/50 aria-invalid:outline-destructive/60
@@ -665,7 +665,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
665
665
  `),zp=`inmemory://harper/config-root.json`,Bp=`harper://schemas/config-root.json`;function Vp(e){let t=e.languages.json.jsonDefaults,{schemas:n=[],...r}=t.diagnosticsOptions;n.some(e=>e.uri===Bp)||t.setDiagnosticsOptions({...r,validate:!0,enableSchemaRequest:!1,schemas:[...n,{uri:Bp,fileMatch:[zp],schema:Rp}]})}var Hp=({children:e})=>(0,H.jsx)(H.Fragment,{children:e});function Up(){let{clusterId:e,instanceId:t}=j({strict:!1}),{data:n,isLoading:r}=M(Cp({clusterId:e,instanceId:t})),i=U(),{version:a}=Ae({strict:!1}),{data:o}=M(Mp(i,!1));n?.cluster;let s=n?.instance,{data:c,isLoading:l}=M(jp(i)),{data:u,isLoading:d}=M(Ap(i)),f=Ti(),{data:p,isLoading:m}=M(kp({...i,enabled:f})),h=(0,V.useMemo)(()=>{if(!p)return null;let e=0,t=n=>{n.mtime&&(e=Math.max(e,new Date(n.mtime).getTime())),`entries`in n&&n.entries&&n.entries.forEach(t)};return t(p),e||null},[p]),g=(0,V.useMemo)(()=>u?Fp(u):null,[u]),v=ju(),[y,b]=(0,V.useState)(!1),[x,S]=(0,V.useState)(``),[C,ee]=(0,V.useState)(null),[w,T]=(0,V.useState)([]),{onConfigUpdate:E,isPending:D}=Dp();(0,V.useEffect)(()=>{g&&!y&&(S(JSON.stringify(g,null,4)),ee(null),T([]))},[g,y]);let te=(0,V.useCallback)(e=>{if(S(e||``),e)try{let t=JSON.parse(e);ee(null);let n=[],r=(e,t,i=``)=>{for(let a in e){let o=i?`${i}.${a}`:a,s=e[a],c=t?.[a];Pp(o,s,c)?n.push(o):typeof s==`object`&&s&&!Array.isArray(s)&&r(s,c,o)}for(let r in t){let a=i?`${i}.${r}`:r;r in e||Pp(a,void 0,t[r])&&n.push(a)}};g&&r(t,g),T(n)}catch(e){ee(e.message),T([])}},[u]),ne=(0,V.useCallback)((e,t)=>{Vp(t)},[]),O=(0,V.useCallback)(()=>{if(!(C||w.length>0))try{E(Lp(Ip(g,JSON.parse(x)))),b(!1)}catch(e){ee(e.message)}},[x,C,E,g,w.length]);return(0,V.useMemo)(()=>[],[o,s]),(0,H.jsxs)(`div`,{className:`h-full flex flex-col`,children:[(0,H.jsx)(Hp,{children:(0,H.jsxs)(`dl`,{className:`grid grid-cols-1 sm:grid-cols-3`,children:[(0,H.jsx)(`div`,{className:`px-4 pb-4 sm:col-span-1 sm:px-0`,children:(0,H.jsx)(wp,{loadingRegistration:l,registrationInfo:c})}),(0,H.jsx)(`div`,{className:`px-4 pb-4 sm:col-span-1 sm:px-0`,children:(0,H.jsx)(Tp,{loading:m,timestamp:h})}),(0,H.jsx)(`div`,{className:`px-4 pb-4 text-right sm:col-span-1 sm:px-0`,children:(0,H.jsx)(_p,{targetNoun:`Instance`,instanceClient:i.instanceClient,operation:`restart`})})]})}),(0,H.jsxs)(`div`,{className:`flex-none flex items-center justify-between mb-2`,children:[(0,H.jsxs)(`div`,{children:[(0,H.jsxs)(`h3`,{className:`font-bold text-sm/6`,children:[`Instance Config `,y?`(editing)`:`(read only)`]}),!t&&!1]}),(0,H.jsx)(`div`,{className:`flex items-center gap-2 pr-4`,children:y?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(_,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>b(!1),children:[(0,H.jsx)(jr,{className:`w-4 h-4 mr-1`}),` Cancel`]}),(0,H.jsxs)(_,{size:`sm`,disabled:!!C||w.length>0||D,onClick:O,children:[(0,H.jsx)(pr,{className:`w-4 h-4 mr-1`}),` `,D?`Saving...`:`Save & Restart`]})]}):(0,H.jsxs)(_,{size:`sm`,onClick:()=>b(!0),children:[(0,H.jsx)(xr,{className:`w-4 h-4 mr-1`}),` Edit`]})})]}),C&&(0,H.jsxs)(yp,{variant:`destructive`,className:`mb-4`,children:[(0,H.jsx)(Tn,{className:`h-4 w-4`}),(0,H.jsx)(bp,{children:`Invalid JSON`}),(0,H.jsx)(xp,{children:C})]}),w.length>0&&(0,H.jsxs)(yp,{variant:`destructive`,className:`mb-4`,children:[(0,H.jsx)(Tn,{className:`h-4 w-4`}),(0,H.jsx)(bp,{children:`Restricted Configuration`}),(0,H.jsxs)(xp,{children:[`The following fields cannot be modified via Studio:`,(0,H.jsx)(`ul`,{className:`list-disc ml-4 mt-2`,children:w.map(e=>(0,H.jsx)(`li`,{children:(0,H.jsx)(`code`,{children:e})},e))})]})]}),(0,H.jsx)(`div`,{className:`grow`,children:d?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(Qc,{className:`w-full`}),(0,H.jsx)(Qc,{className:`w-full`}),(0,H.jsx)(Qc,{className:`w-1/2`})]}):(0,H.jsx)(Nu,{className:`w-full min-h-full h-96`,path:zp,language:`json`,theme:v,onMount:ne,options:{readOnly:!y,scrollBeyondLastLine:!1},value:y?x:JSON.stringify(g,null,4),onChange:te})})]})}var Wp=pe(),Gp=[{header:`Role`,accessorKey:`role`,enableSorting:!1},Wp.display({header:`Created`,enableSorting:!1,id:`__createdtime__`,cell:e=>vu((Date.now()-e.row.original.__createdtime__)/1e3,e.row.original.__createdtime__)}),Wp.display({header:`Updated`,id:`__updatedtime__`,enableSorting:!1,cell:e=>vu((Date.now()-e.row.original.__updatedtime__)/1e3,e.row.original.__updatedtime__)}),Wp.display({header:`Super User`,id:`super_user`,enableSorting:!1,cell:e=>e.row.original.permission.super_user?`Yes`:`No`}),Wp.display({header:`Structure User`,id:`structure_user`,enableSorting:!1,cell:e=>e.row.original.permission.structure_user?`Yes`:`No`})];async function Kp(e){let{role:t,super_user:n,structure_user:r,instanceClient:i}=e,{data:a}=await i.post(`/`,{operation:`add_role`,role:t,permission:{super_user:n,structure_user:r}});return a}function qp(){return F({mutationFn:Kp})}var Jp=O({role:k().nonempty({error:`Please enter a role.`}).regex(/^[a-zA-Z_]*$/,{error:`Role must contain only letters and underscores.`}).max(30,{error:`Role cannot be longer than 30 characters.`}),super_user:E(),structure_user:E()});function Yp({isModalOpen:e,onChangesSaved:t,setIsModalOpen:n}){let r=z({resolver:R(Jp),defaultValues:{role:``,super_user:!1,structure_user:!1}}),i=U(),{mutate:a,isPending:o}=qp(),s=(0,V.useCallback)(async e=>{e&&a({role:e.role,super_user:e.super_user,structure_user:e.structure_user,...i},{onSuccess:()=>{r.reset(),t(e.role),L.success(`Role added successfully!`),n(!1)}})},[a,r,i,t,n]),c=(0,V.useCallback)(()=>{r.reset(),n(!1)},[r,n]);return(0,H.jsx)(lo,{onOpenChange:n,open:e,children:(0,H.jsx)(mo,{"aria-describedby":void 0,children:(0,H.jsx)(W,{...r,children:(0,H.jsxs)(`form`,{id:`instance-add-role-form`,name:`instance-add-role-form`,onSubmit:r.handleSubmit(s),className:`grid gap-4 my-4 md:grid-cols-2`,children:[(0,H.jsxs)(ho,{className:`md:col-span-2`,children:[(0,H.jsx)(go,{children:`Add New Role`}),(0,H.jsx)(_o,{children:`After adding the role, you will be able to edit the per-table permissions.`})]}),(0,H.jsx)(K,{control:r.control,name:`role`,render:({field:e})=>(0,H.jsxs)(q,{className:`md:col-span-2`,children:[(0,H.jsx)(J,{className:`pb-1`,children:`Name`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`text`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:r.control,name:`super_user`,render:({field:e})=>(0,H.jsxs)(q,{className:`flex`,children:[(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`checkbox`,className:`w-6`,checked:e.value,onChange:t=>e.onChange(t.target.checked)})}),(0,H.jsx)(J,{className:`pl-4 pr-8 flex-1 py-2.5`,children:`Super User`}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:r.control,name:`structure_user`,render:({field:e})=>(0,H.jsxs)(q,{className:`flex`,children:[(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`checkbox`,className:`w-6`,checked:e.value,onChange:t=>e.onChange(t.target.checked)})}),(0,H.jsx)(J,{className:`pl-4 pr-8 flex-1 py-2.5`,children:`Structure User`}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(Z,{className:`md:col-span-2`,children:(0,H.jsxs)(`div`,{className:`flex justify-between w-full`,children:[(0,H.jsx)(_,{variant:`destructiveOutline`,type:`button`,className:`rounded-full`,onClick:c,disabled:o,children:`Cancel`}),(0,H.jsxs)(_,{type:`submit`,variant:`submit`,className:`rounded-full`,disabled:o,children:[(0,H.jsx)(pr,{}),` Add Role`]})]})})]})})})})}function Xp({entityId:e,instanceClient:t}){return A({queryKey:[e,`list_roles`],queryFn:()=>Zp({instanceClient:t}),refetchInterval:1e4})}async function Zp({instanceClient:e}){let{data:t}=await e.post(`/`,{operation:`list_roles`});return t}function Qp({instanceDatabaseMap:e,currentRolePermissions:t,version:n,showAttributes:r}){let i={...t};if(t.super_user||t.structure_user||t.cluster_user)return t;let[a,o,s]=n.split(`.`).map(e=>parseInt(e,10)),c=n!==`2.0.000`&&a<=2&&o<=1&&s<=2;for(let n in e){i[n]={tables:{}};for(let a in e[n]){let o=e[n][a].attributes.map(e=>e.attribute).sort();if(c){let e=t&&t[n]&&t[n].tables[a];i[n].tables[a]=$p(e,o,r)}else{let e=t&&t[n]&&t[n].tables[a];i[n].tables[a]=em(e,o,r)}}}return i}function $p(e,t,n){let r=e&&$o(e.attribute_restrictions,`attribute_name`);return{read:e?e.read:!0,insert:e?e.insert:!0,update:e?e.update:!0,delete:e?e.delete:!0,attribute_restrictions:t.filter(()=>n).map(t=>{let n=r?.[t];return{attribute_name:t,read:n?n.read:e?e.read:!0,insert:n?n.insert:e?e.insert:!0,update:n?n.update:e?e.update:!0,delete:n?n.delete:e?e.delete:!0}})}}function em(e,t,n){let r=e&&$o(e.attribute_permissions||[],`attribute_name`);return{read:e?e.read:!1,insert:e?e.insert:!1,update:e?e.update:!1,delete:e?e.delete:!1,attribute_permissions:n?t.map(t=>{let n=r?.[t];return{attribute_name:t,read:n?n.read:e?.attribute_permissions?.length?!1:e?.read||!1,insert:n?n.insert:e?.attribute_permissions?.length?!1:e?.insert||!1,update:n?n.update:e?.attribute_permissions?.length?!1:e?.update||!1}}):null}}async function tm({id:e,permission:t,instanceClient:n}){let{data:r}=await n.post(`/`,{operation:`alter_role`,id:e,permission:t});return r}function nm(){return F({mutationFn:tm})}async function rm({id:e,instanceClient:t}){let{data:n}=await t.post(`/`,{operation:`drop_role`,id:e});return n}function im(){return F({mutationFn:rm})}async function am({instanceClient:e}){let{data:t}=await e.post(`/`,{operation:`describe_all`});return t}function om(e){return A({queryKey:[e.entityId,`describe_all`],queryFn:()=>am(e),staleTime:6e4,gcTime:5e3,retry:!1})}function sm({data:e,instanceId:t,clusterId:n,isModalOpen:r,closeModal:i,onSelectRole:a,onChangesSaved:o}){let s=ju(),{role:c,permission:l}=e,[u,d]=(0,V.useState)(JSON.stringify(l,null,2)),f=U(),[p,m]=(0,V.useState)(!0),{data:h}=M(om(f)),{data:g}=M(jp(f)),v=Qt(t??n).user?.role?.role===e.role,[y,b]=od(u?.includes(`attribute_name`)),{mutate:x,isPending:S}=nm(),{mutate:C}=im(),ee=(0,V.useCallback)(e=>{m(e.length===0)},[m]),w=(0,V.useMemo)(()=>JSON.stringify(h&&g&&Qp({instanceDatabaseMap:h,currentRolePermissions:u&&qr(u)||l,version:g.version,showAttributes:y}),null,2),[l,h,g,y]);(0,V.useEffect)(()=>{d(w)},[w]);let T=(0,V.useCallback)(t=>{if(t){let n=JSON.parse(t);if(n.super_user||n.structure_user||n.cluster_user)for(let e in n)(e!==`super_user`&&e!==`structure_user`&&e!==`cluster_user`||n[e]===!1)&&delete n[e];x({id:e.id,permission:n,...f},{onSuccess:()=>{L.success(`Role updated successfully!`),a(void 0),o()}})}},[x,e.id,f,o,a]),E=(0,V.useCallback)(()=>{C({id:e.id,...f},{onSuccess:()=>{L.success(`Role deleted successfully!`),a(void 0),o()}})},[e.id,C,f,o,a]),D=(0,V.useCallback)(()=>{u&&p&&T(u)},[u,T,p]),te=(0,V.useCallback)(()=>{E()},[E]);return(0,H.jsx)(lo,{onOpenChange:i,open:r,children:(0,H.jsxs)(mo,{className:`sm:max-w-[750px]`,children:[(0,H.jsxs)(go,{children:[v?`View`:`Edit`,` Role "`,c,`"`]}),(0,H.jsx)(_o,{children:v?`You can view your own role, but you cannot edit it. Please assign yourself a different role to edit this role.`:`Edit the role's permissions in JSON format or remove the role entirely.`}),w?(0,H.jsx)(Nu,{theme:s,height:`400px`,defaultLanguage:`json`,value:u,options:v?{readOnly:!0}:void 0,onValidate:ee,onChange:d,defaultValue:w}):(0,H.jsx)(Qc,{}),(0,H.jsx)(Z,{children:!v&&(0,H.jsxs)(`div`,{className:`flex justify-between w-full`,children:[(0,H.jsx)(_,{type:`button`,variant:`destructiveOutline`,className:`rounded-full`,onClick:te,disabled:S,children:`Delete Role`}),(0,H.jsx)(`div`,{className:`grow`}),(0,H.jsxs)(ea,{className:`flex`,children:[(0,H.jsx)(X,{type:`checkbox`,className:`w-6`,checked:y,onChange:b}),(0,H.jsx)(`span`,{className:`pl-4 pr-8 flex-1 py-2.5`,children:`Pick Attributes`})]}),(0,H.jsx)(_,{variant:`submit`,className:`rounded-full`,onClick:D,disabled:S||!p,children:`Save Changes`})]})})]})})}function cm(){let e=je(),{clusterId:t,instanceId:n,roleId:r}=j({strict:!1}),{data:i,refetch:a,isFetching:o,isRefetching:s}=be(Xp(U())),c=(0,V.useMemo)(()=>i?.find(e=>e.id===r),[i,r]),l=(0,V.useCallback)(t=>{e({to:[r?`..`:``,t].filter(Boolean).join(`/`)})},[r,e]),u=!!r&&!!c,[d,f]=(0,V.useState)(!1),p=(0,V.useCallback)(()=>{f(!0)},[f]),m=(0,V.useCallback)(e=>{a(),f(!1),l(e)},[l,a]),h=(0,V.useCallback)(e=>{l(e.original.role)},[l]),g=(0,V.useCallback)(()=>{l(void 0)},[l]),v=bu(a);return(0,H.jsxs)(V.Suspense,{fallback:(0,H.jsx)(Bo,{className:`flex flex-col items-center justify-center h-full`,text:`Loading...`}),children:[(0,H.jsxs)(hu,{columns:Gp,data:i,isFetching:o,onRowClick:h,children:[(0,H.jsxs)(_,{variant:`defaultOutline`,onClick:v,accessKey:`r`,disabled:o||s,children:[(0,H.jsx)(dr,{}),(0,H.jsxs)(`span`,{className:`hidden lg:inline-block`,children:[(0,H.jsx)(`u`,{children:`R`}),`efresh`]})]}),(0,H.jsxs)(_,{variant:`positiveOutline`,onClick:p,accessKey:`a`,disabled:d,children:[(0,H.jsx)(cr,{}),(0,H.jsxs)(`span`,{children:[(0,H.jsx)(`u`,{children:`A`}),`dd`]})]})]}),(0,H.jsx)(Yp,{isModalOpen:d,onChangesSaved:m,setIsModalOpen:f}),u&&(0,H.jsx)(sm,{instanceId:n,clusterId:t,isModalOpen:u,closeModal:g,data:c,onSelectRole:l,onChangesSaved:()=>a()})]})}async function lm({instanceClient:e}){let{data:t}=await e.post(`/`,{operation:`list_ssh_keys`});return t}function um(e){return A({queryKey:[e.entityId,`list_ssh_keys`],queryFn:()=>lm(e)})}var dm=[{header:`SSH Key Name`,accessorKey:`name`,enableSorting:!1}];async function fm({instanceClient:e}){let{data:t}=await e.post(`/`,{operation:`get_ssh_known_hosts`});return t}function pm(e){return A({queryKey:[e.entityId,`get_ssh_known_hosts`],queryFn:()=>fm(e)})}var mm=O({known_hosts:k().trim()});async function hm(e){let{instanceClient:t,entityType:n,...r}=e,{data:i}=await t.post(`/`,{operation:`set_ssh_known_hosts`,replicated:n===`cluster`,...r});return i}function gm(){return F({mutationFn:hm})}function _m(){let e=U(),{data:t}=be(pm(e)),n=z({resolver:R(mm),defaultValues:{known_hosts:t?.known_hosts||``}}),{mutate:r,isPending:i}=gm(),a=(0,V.useCallback)(async t=>{let{known_hosts:i}=t;i&&r({known_hosts:i.trim()+`
666
666
  `,...e},{onSuccess:()=>{n.reset(t),L.success(`Known hosts saved!`)}})},[r,n,e]);return(0,H.jsx)(W,{...n,children:(0,H.jsx)(`form`,{id:`instance-edit-known-hosts-form`,name:`instance-edit-known-hosts-form`,onSubmit:n.handleSubmit(a),className:`grid my-4 md:grid-cols-2 overflow-x-auto rounded-md`,children:(0,H.jsx)(K,{control:n.control,name:`known_hosts`,render:({field:e})=>(0,H.jsxs)(q,{className:`md:col-span-2 gap-0`,children:[(0,H.jsx)(J,{className:`bg-muted dark:bg-black-dark py-3 px-2 m-0 text-left font-medium whitespace-nowrap`,children:`Known Hosts`}),(0,H.jsxs)(`div`,{className:`border border-grey-700 p-2 pb-3`,children:[(0,H.jsx)(fl,{className:`pb-2`,children:`Manage your known hosts here. When you add a SSH Key with a hostname of "github.com", we'll automatically attempt to resolve GitHub's known hosts for you.`}),(0,H.jsx)(G,{children:(0,H.jsx)(Xf,{autoComplete:`off`,autoCapitalize:`off`,className:`whitespace-nowrap`,rows:10,...e})}),(0,H.jsx)(Y,{}),(0,H.jsxs)(_,{type:`submit`,variant:`submit`,className:`rounded-full mt-2`,disabled:i||!n.formState.isDirty||!n.formState.isValid,children:[(0,H.jsx)(pr,{}),` `,i?`Saving`:`Save`,` Known Hosts`,i?`...`:``]})]})]})})})})}var vm=O({name:k().trim().min(1).regex(/^[a-zA-Z0-9-_]*$/,{error:`Can only contain letters, numbers, dashes and underscores.`}),key:k().min(1).trim(),host:k().min(1).trim(),hostname:k().min(1).trim(),known_hosts:k().trim().optional()});async function ym(e){let{instanceClient:t,entityType:n,entityId:r,...i}=e,{data:a}=await t.post(`/`,{operation:`add_ssh_key`,replicated:n===`cluster`,...i});return a}function bm(){return F({mutationFn:ym})}function xm({isModalOpen:e,onChangesSaved:t,setIsModalOpen:n}){let r=z({resolver:R(vm),defaultValues:{name:``,key:``,host:``,hostname:``,known_hosts:``}}),i=U(),{mutate:a,isPending:o}=bm(),s=(0,V.useCallback)(async e=>{if(e){let{name:o,key:s,host:c,hostname:l,known_hosts:u}=e;a({name:o,key:s.trim()+`
667
667
  `,host:c,hostname:l,known_hosts:u||void 0,...i},{onSuccess:()=>{r.reset(),t(),L.success(`SSH Key added successfully!`),n(!1)}})}},[a,r,i,t,n]),c=(0,V.useCallback)(()=>{r.reset(),n(!1)},[r,n]);return(0,H.jsx)(lo,{onOpenChange:n,open:e,children:(0,H.jsx)(mo,{"aria-describedby":void 0,children:(0,H.jsx)(W,{...r,children:(0,H.jsxs)(`form`,{id:`instance-add-ssh-key-form`,name:`instance-add-ssh-key-form`,onSubmit:r.handleSubmit(s),className:`grid gap-4 my-4 md:grid-cols-2`,children:[(0,H.jsxs)(ho,{className:`md:col-span-2`,children:[(0,H.jsx)(go,{children:`Add New SSH Key`}),(0,H.jsx)(_o,{children:`Enter the details of your SSH Key below.`})]}),(0,H.jsx)(K,{control:r.control,name:`name`,render:({field:e})=>(0,H.jsxs)(q,{className:`md:col-span-2`,children:[(0,H.jsx)(J,{className:`pb-1`,children:`Name`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`text`,autoComplete:`off`,autoCapitalize:`off`,autoFocus:!0,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:r.control,name:`key`,render:({field:e})=>(0,H.jsxs)(q,{className:`md:col-span-2`,children:[(0,H.jsx)(J,{className:`pb-1`,children:`Key`}),(0,H.jsx)(fl,{children:`Your private key. Don't have one? Try out "ssh-keygen"! You'll want to add your public key to your registry, i.e. GitHub.`}),(0,H.jsx)(G,{children:(0,H.jsx)(Xf,{autoComplete:`off`,autoCapitalize:`off`,rows:3,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:r.control,name:`host`,render:({field:e})=>(0,H.jsxs)(q,{className:`md:col-span-2`,children:[(0,H.jsx)(J,{className:`pb-1`,children:`Host`}),(0,H.jsx)(fl,{children:`A unique identifying name for the combination of this key and your hostname, i.e. "your-repo.github.com". You will use this instead of the direct hostname to pick your key when importing applications.`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`text`,autoComplete:`off`,autoCapitalize:`off`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:r.control,name:`hostname`,render:({field:e})=>(0,H.jsxs)(q,{className:`md:col-span-2`,children:[(0,H.jsx)(J,{className:`pb-1`,children:`Hostname`}),(0,H.jsx)(fl,{children:`When making the request, the actual hostname to use, i.e. "github.com".`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`text`,autoComplete:`off`,autoCapitalize:`off`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:r.control,name:`known_hosts`,render:({field:e})=>(0,H.jsxs)(q,{className:`md:col-span-2`,children:[(0,H.jsx)(J,{className:`pb-1`,children:`Known Hosts`}),(0,H.jsx)(fl,{children:`Optionally, append known hosts, one per line. GitHub known hosts should resolve automatically.`}),(0,H.jsx)(G,{children:(0,H.jsx)(Xf,{autoComplete:`off`,autoCapitalize:`off`,className:`whitespace-nowrap`,rows:3,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(Z,{className:`md:col-span-2`,children:(0,H.jsxs)(`div`,{className:`flex justify-between w-full`,children:[(0,H.jsx)(_,{variant:`destructiveOutline`,type:`button`,className:`rounded-full`,onClick:c,disabled:o,children:`Cancel`}),(0,H.jsxs)(_,{type:`submit`,variant:`submit`,className:`rounded-full`,disabled:o||!r.formState.isDirty||!r.formState.isValid,children:[(0,H.jsx)(pr,{}),` Add SSH Key`]})]})})]})})})})}async function Sm(e){let{instanceClient:t,entityType:n,name:r}=e,{data:i}=await t.post(`/`,{operation:`delete_ssh_key`,replicated:n===`cluster`,name:r});return i}function Cm(){return F({mutationFn:Sm})}async function wm({name:e,instanceClient:t}){let{data:n}=await t.post(`/`,{operation:`get_ssh_key`,name:e});return n}function Tm(e){return A({queryKey:[e.entityId,`get_ssh_key`],queryFn:()=>wm(e),refetchInterval:1e4})}var Em=O({name:k().trim(),key:k().min(1).trim()});async function Dm(e){let{instanceClient:t,entityType:n,name:r,key:i}=e,{data:a}=await t.post(`/`,{operation:`update_ssh_key`,replicated:n===`cluster`,name:r,key:i});return a}function Om(){return F({mutationFn:Dm})}function km({data:e,isModalOpen:t,closeModal:n,onSelectSSHKey:r,onChangesSaved:i}){let{name:a}=e,o=z({resolver:R(Em),defaultValues:{name:a,key:``}}),s=U(),{data:c}=M(Tm({...s,name:a})),{mutate:l,isPending:u}=Om(),{mutate:d}=Cm(),f=(0,V.useCallback)(async({key:e})=>{e&&l({name:a,key:e.trim()+`
668
- `,...s},{onSuccess:()=>{L.success(`SSH Key updated successfully!`),r(void 0),i()}})},[l,a,s,r,i]),p=(0,V.useCallback)(()=>{d({name:a,...s},{onSuccess:()=>{L.success(`SSH Key deleted successfully!`),r(void 0),i()}})},[a,d,s,i,r]);return(0,H.jsx)(lo,{onOpenChange:n,open:t,children:(0,H.jsx)(mo,{className:`sm:max-w-[750px]`,"aria-describedby":void 0,children:(0,H.jsx)(W,{...o,children:(0,H.jsxs)(`form`,{id:`instance-edit-ssh-key-form`,name:`instance-edit-ssh-key-form`,onSubmit:o.handleSubmit(f),className:`grid gap-4 my-4 md:grid-cols-2`,children:[(0,H.jsx)(go,{children:`Edit SSH Key`}),(0,H.jsx)(K,{control:o.control,name:`name`,render:({field:e})=>(0,H.jsxs)(q,{className:`md:col-span-2`,children:[(0,H.jsx)(J,{className:`pb-1`,children:`Name`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`text`,autoComplete:`off`,autoCapitalize:`off`,readOnly:!0,disabled:!0,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:o.control,name:`key`,render:({field:e})=>(0,H.jsxs)(q,{className:`md:col-span-2`,children:[(0,H.jsx)(J,{className:`pb-1`,children:`Key`}),(0,H.jsx)(fl,{children:`Replace your existing private key. Lost it? Try out "ssh-keygen"! You'll want to add your public key to your registry, i.e. GitHub.`}),(0,H.jsx)(G,{children:(0,H.jsx)(Xf,{autoComplete:`off`,autoCapitalize:`off`,autoFocus:!0,rows:3,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsxs)(q,{className:`md:col-span-2`,children:[(0,H.jsx)(J,{className:`pb-1`,children:`Host`}),(0,H.jsx)(fl,{children:`A unique identifying name for the combination of this key and your hostname, i.e. "your-repo.github.com". You will use this instead of the direct hostname to pick your key when importing applications.`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`text`,autoComplete:`off`,autoCapitalize:`off`,value:c?.host||``,disabled:!0,readOnly:!0})}),(0,H.jsx)(Y,{})]}),(0,H.jsxs)(q,{className:`md:col-span-2`,children:[(0,H.jsx)(J,{className:`pb-1`,children:`Hostname`}),(0,H.jsx)(fl,{children:`When making the request, the actual hostname to use, i.e. "github.com".`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`text`,autoComplete:`off`,autoCapitalize:`off`,value:c?.hostname||``,disabled:!0,readOnly:!0})}),(0,H.jsx)(Y,{})]}),(0,H.jsxs)(Z,{children:[(0,H.jsx)(_,{type:`button`,variant:`destructiveOutline`,className:`rounded-full`,onClick:p,disabled:u,children:`Delete SSH Key`}),(0,H.jsx)(`div`,{className:`grow`}),(0,H.jsx)(_,{type:`submit`,variant:`submit`,className:`rounded-full`,disabled:u||!o.formState.isValid,children:`Update SSH Key`})]})]})})})})}function Am(){let e=je(),{keyName:t}=j({strict:!1}),{data:n,refetch:r,isFetching:i,isRefetching:a}=M(um(U())),o=(0,V.useMemo)(()=>n?.find(e=>e.name===t),[n,t]),s=(0,V.useCallback)(n=>{let r=n?.original?.name;e({to:[t?`..`:``,r].filter(Boolean).join(`/`)})},[t,e]),c=!!t&&!!o,[l,u]=(0,V.useState)(!1),d=(0,V.useCallback)(()=>{u(!0)},[u]),f=bu(r);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(hu,{columns:dm,data:n||[],isFetching:i,onRowClick:s,children:[(0,H.jsx)(I,{className:`inline-block underline text-sm text-muted-foreground hover:text-foreground`,to:`https://docs.harperdb.io/docs/developers/security/certificate-management`,target:`_blank`,children:`Certificate Management Docs`}),(0,H.jsxs)(_,{variant:`defaultOutline`,onClick:f,accessKey:`r`,disabled:i||a,children:[(0,H.jsx)(dr,{}),(0,H.jsxs)(`span`,{className:`hidden lg:inline-block`,children:[(0,H.jsx)(`u`,{children:`R`}),`efresh`]})]}),(0,H.jsxs)(_,{variant:`positiveOutline`,onClick:d,accessKey:`a`,disabled:l,children:[(0,H.jsx)(cr,{}),(0,H.jsxs)(`span`,{children:[(0,H.jsx)(`u`,{children:`A`}),`dd`]})]})]}),l&&(0,H.jsx)(xm,{isModalOpen:l,onChangesSaved:r,setIsModalOpen:u}),c&&(0,H.jsx)(km,{isModalOpen:c,closeModal:s,data:o,onSelectSSHKey:s,onChangesSaved:r}),(0,H.jsx)(V.Suspense,{fallback:(0,H.jsx)(Bo,{text:`Loading...`}),children:(0,H.jsx)(_m,{})})]})}var jm=pe(),Mm=[{header:`Username`,accessorKey:`username`,enableSorting:!1},jm.display({header:`Role`,enableSorting:!1,id:`role`,cell:e=>e.row.original.role.role}),{header:`Active`,accessorKey:`active`,enableSorting:!1},jm.display({header:`Created`,enableSorting:!1,id:`__createdtime__`,cell:e=>vu((Date.now()-e.row.original.__createdtime__)/1e3,e.row.original.__createdtime__)}),{header:`Updated`,accessorKey:`__updatedtime__`,enableSorting:!1,cell:e=>vu((Date.now()-e.row.original.__updatedtime__)/1e3,e.row.original.__updatedtime__)}];function Nm({isModalOpen:e,onChangesSaved:t,setIsModalOpen:n}){let r=U(),{data:i}=be(Xp(r)),a=z({resolver:R(Cf),defaultValues:{username:``,role:``,password:``,confirmPassword:``}}),{mutate:o,isPending:s}=Ef(),c=(0,V.useCallback)(async e=>{e&&o({active:!0,password:e.password,role:e.role,username:e.username,...r},{onSuccess:()=>{let r=e.role;a.reset(),a.setValue(`role`,r),t(),L.success(`User added successfully!`),n(!1)}})},[o,a,r,t,n]);return(0,H.jsx)(lo,{onOpenChange:n,open:e,children:(0,H.jsx)(mo,{"aria-describedby":void 0,children:(0,H.jsx)(W,{...a,children:(0,H.jsxs)(`form`,{id:`instance-add-user-form`,name:`instance-add-user-form`,onSubmit:a.handleSubmit(c),className:`grid gap-4 my-4`,children:[(0,H.jsx)(ho,{children:(0,H.jsx)(go,{children:`Add New User`})}),(0,H.jsx)(K,{control:a.control,name:`username`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Username`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`text`,enterKeyHint:`next`,autoComplete:`username`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:a.control,name:`password`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Password`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`password`,enterKeyHint:`next`,autoComplete:`new-password`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:a.control,name:`confirmPassword`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Confirm Password`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`password`,enterKeyHint:`next`,autoComplete:`new-password`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:a.control,name:`role`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Role`}),(0,H.jsx)(V.Suspense,{fallback:(0,H.jsx)(Qc,{}),children:(0,H.jsx)(G,{children:(0,H.jsxs)($c,{...e,onValueChange:t=>e.onChange(t),children:[(0,H.jsx)(nl,{className:`w-full`,children:(0,H.jsx)(tl,{placeholder:`Choose Role`})}),(0,H.jsx)(rl,{children:(0,H.jsxs)(el,{children:[(0,H.jsx)(il,{children:`Role`}),i?.map(e=>(0,H.jsx)($,{value:e.id,children:e.role},e.id))]})})]})})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(Z,{children:(0,H.jsx)(`div`,{className:`flex justify-between w-full`,children:(0,H.jsxs)(_,{type:`submit`,variant:`submit`,className:`rounded-full`,disabled:s,children:[(0,H.jsx)(pr,{}),` Add User`]})})})]})})})})}var Pm=O({username:Cf.shape.username,role:Cf.shape.role,newPassword:Cf.shape.password.or(w(``)).optional(),confirmPassword:Cf.shape.confirmPassword}).refine(e=>!e.newPassword||e.newPassword.length>=8,{error:`Password must be at least 8 characters long.`,path:[`password`]}).refine(e=>!e.newPassword||e.newPassword===e.confirmPassword,{error:`Passwords do not match.`,path:[`confirmPassword`]});function Fm({data:e,onUserUpdated:t}){let n=U(),{data:r}=be(Xp(n)),{mutate:i,isPending:a}=Of(),o=z({resolver:R(Pm),defaultValues:{username:e.username,role:e.role.role,newPassword:``,confirmPassword:``}}),s=(0,V.useCallback)(r=>{let a={username:e.username,role:r.role,...n};r.newPassword&&(a.password=r.newPassword),i(a,{onSuccess:()=>{o.reset(),L.success(`User edited successfully!`),t()}})},[o,i,e.username,n,t]);return(0,H.jsx)(W,{...o,children:(0,H.jsxs)(`form`,{id:`instance-edit-user-form`,name:`instance-edit-user-form`,onSubmit:o.handleSubmit(s),className:`grid gap-4 my-4`,children:[(0,H.jsx)(ho,{children:(0,H.jsx)(go,{children:`Edit User`})}),(0,H.jsx)(K,{control:o.control,name:`username`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Username`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`text`,enterKeyHint:`next`,autoComplete:`username`,disabled:!0,readOnly:!0,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:o.control,name:`newPassword`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Change Password`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`password`,enterKeyHint:`next`,autoComplete:`new-password`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:o.control,name:`confirmPassword`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Confirm Password`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`password`,enterKeyHint:`next`,autoComplete:`new-password`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:o.control,name:`role`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Role`}),(0,H.jsx)(V.Suspense,{fallback:(0,H.jsx)(Qc,{}),children:(0,H.jsx)(G,{children:(0,H.jsxs)($c,{...e,onValueChange:t=>e.onChange(t),children:[(0,H.jsx)(nl,{className:`w-full`,children:(0,H.jsx)(tl,{placeholder:`Choose Role`})}),(0,H.jsx)(rl,{children:(0,H.jsxs)(el,{children:[(0,H.jsx)(il,{children:`Role`}),r?.map(e=>(0,H.jsx)($,{value:e.id,children:e.role},e.id))]})})]})})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(Z,{children:(0,H.jsx)(`div`,{className:`flex justify-between w-full`,children:(0,H.jsxs)(_,{variant:`submit`,className:`rounded-full`,disabled:a,children:[(0,H.jsx)(pr,{}),` Save Changes`]})})})]})})}var Im=O({username:da,confirmUsernameForDeletion:k().nonempty({error:`Please type the username again to confirm deletion.`}).toLowerCase()}).refine(e=>e.username===e.confirmUsernameForDeletion,{error:`Username does not match.`,path:[`confirmUsernameForDeletion`]});function Lm({data:e,onUserDeleted:t}){let{mutate:n,isPending:r}=Af(),i=z({resolver:R(Im),defaultValues:{username:e.username,confirmUsernameForDeletion:``}}),a=fi(),o=(0,V.useCallback)(()=>{n({username:e.username,...a},{onSuccess:()=>{i.reset(),L.success(`User deleted successfully!`),t()}})},[e.username,i,n,a,t]);return(0,H.jsx)(W,{...i,children:(0,H.jsxs)(`form`,{id:`instance-delete-user-form`,name:`instance-delete-user-form`,onSubmit:i.handleSubmit(o),className:`grid gap-4 my-4`,children:[(0,H.jsx)(K,{control:i.control,name:`confirmUsernameForDeletion`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Confirm Username`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`text`,enterKeyHint:`next`,autoComplete:`username`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(Z,{children:(0,H.jsx)(`div`,{className:`flex justify-between w-full`,children:(0,H.jsxs)(_,{variant:`destructive`,className:`rounded-full`,disabled:r||!i.formState.isValid,children:[(0,H.jsx)(Dr,{}),` Delete User`]})})})]})})}function Rm({closeModal:e,clusterId:t,instanceId:n,data:r,isModalOpen:i,onUserDeleted:a,onUserUpdated:o}){let s=l.checkForFabricConnect(n??t),c=Qt(n??t),u=!(!s&&c.user?.username===r.username);return(0,H.jsx)(lo,{onOpenChange:e,open:i,children:(0,H.jsxs)(mo,{className:`sm:max-w-[750px]`,children:[(0,H.jsx)(Fm,{data:r,onUserUpdated:o}),u&&(0,H.jsx)(Lm,{data:r,onUserDeleted:a})]})})}function zm({entityId:e,instanceClient:t}){return A({queryKey:[e,`list_users`],queryFn:()=>Bm({instanceClient:t}),refetchInterval:1e4})}async function Bm({instanceClient:e}){let{data:t}=await e.post(`/`,{operation:`list_users`});return t}function Vm(){let e=je(),{instanceId:t,clusterId:n,username:r}=j({strict:!1}),{data:i,refetch:a,isFetching:o,isRefetching:s}=be(zm(U())),c=(0,V.useMemo)(()=>i?.find(e=>e.username===r),[i,r]),l=(0,V.useCallback)(t=>{e({to:[r?`..`:``,t].filter(Boolean).join(`/`)})},[r,e]),u=!!r&&!!c,[d,f]=(0,V.useState)(!1),[p]=(0,V.useState)({attribute:`username`,descending:!1}),m=(0,V.useMemo)(()=>[{desc:p.descending,id:p.attribute}],[p]),h=(0,V.useCallback)(()=>{f(!0)},[f]),g=(0,V.useCallback)(()=>{a(),f(!1)},[a,f]),v=(0,V.useCallback)(e=>{l(e.original.username)},[l]),y=(0,V.useCallback)(()=>{l(void 0)},[l]),b=(0,V.useCallback)(()=>{a(),l(void 0)},[l,a]),x=(0,V.useCallback)(()=>{a(),l(void 0)},[l,a]),S=bu(a);return(0,H.jsxs)(V.Suspense,{fallback:(0,H.jsx)(Bo,{className:`flex flex-col items-center justify-center h-full`,text:`Loading...`}),children:[(0,H.jsxs)(hu,{data:i,isFetching:o||s,columns:Mm,onRowClick:v,sortingState:m,children:[(0,H.jsxs)(_,{variant:`defaultOutline`,onClick:S,accessKey:`r`,disabled:o||s,children:[(0,H.jsx)(dr,{}),` `,(0,H.jsxs)(`span`,{className:`hidden lg:inline-block`,children:[(0,H.jsx)(`u`,{children:`R`}),`efresh`]})]}),(0,H.jsxs)(_,{variant:`positiveOutline`,onClick:h,accessKey:`a`,disabled:d,children:[(0,H.jsx)(cr,{}),` `,(0,H.jsxs)(`span`,{children:[(0,H.jsx)(`u`,{children:`A`}),`dd`]})]})]}),(0,H.jsx)(Nm,{isModalOpen:d,onChangesSaved:g,setIsModalOpen:f}),u&&(0,H.jsx)(Rm,{instanceId:t,clusterId:n,closeModal:y,data:c,isModalOpen:u,onUserDeleted:x,onUserUpdated:b})]})}function Hm({context:e,params:t}){let n=pi(t);return e.queryClient.ensureQueryData(jp(n))}function Um(e){let t=P({getParentRoute:()=>e,path:`config`,head:()=>({meta:[{title:`Config — Harper Fabric`}]}),component:lp,loader:Hm}),n=P({getParentRoute:()=>t,path:`/`,head:()=>({meta:[{title:`Overview — Harper Fabric`}]}),component:Up,loader:Hm}),r=P({getParentRoute:()=>t,path:`roles`,head:()=>({meta:[{title:`Instance Roles — Harper Fabric`}]}),component:cm}),i=P({getParentRoute:()=>t,path:`roles/$roleId`,head:()=>({meta:[{title:`Instance Roles — Harper Fabric`}]}),component:cm}),a=P({getParentRoute:()=>t,path:`users`,head:()=>({meta:[{title:`Instance Users — Harper Fabric`}]}),component:Vm}),o=P({getParentRoute:()=>t,path:`users/$username`,head:()=>({meta:[{title:`Instance Users — Harper Fabric`}]}),component:Vm}),s=P({getParentRoute:()=>t,path:`domains`,head:()=>({meta:[{title:`Instance Domains — Harper Fabric`}]}),component:ap}),c=P({getParentRoute:()=>t,path:`ssh-keys`,head:()=>({meta:[{title:`SSH Keys — Harper Fabric`}]}),component:Am}),l=P({getParentRoute:()=>t,path:`ssh-keys/$keyName`,head:()=>({meta:[{title:`SSH Keys — Harper Fabric`}]}),component:Am}),u=P({getParentRoute:()=>t,path:`certificates`,head:()=>({meta:[{title:`Certificates — Harper Fabric`}]}),component:ip}),d=P({getParentRoute:()=>t,path:`certificates/$certName`,head:()=>({meta:[{title:`Certificates — Harper Fabric`}]}),component:ip});return t.addChildren([n,r,i,a,o,s,c,l,u,d])}function Wm({clusterId:e,databaseName:t,instanceId:n,organizationId:r,tableName:i}){let a=[`databases`,t,i].filter(Lr).join(`/`);return tu({organizationId:r,instanceId:n,clusterId:e},a)}function Gm({className:e,children:t,...n}){return(0,H.jsxs)(wt,{"data-slot":`scroll-area`,className:f(`relative`,e),...n,children:[(0,H.jsx)(Wt,{"data-slot":`scroll-area-viewport`,className:`focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1`,children:t}),(0,H.jsx)(Km,{}),(0,H.jsx)(Et,{})]})}function Km({className:e,orientation:t=`vertical`,...n}){return(0,H.jsx)(gt,{"data-slot":`scroll-area-scrollbar`,orientation:t,className:f(`flex touch-none p-px transition-colors select-none`,t===`vertical`&&`h-full w-2.5 border-l border-l-transparent`,t===`horizontal`&&`h-2.5 flex-col border-t border-t-transparent`,e),...n,children:(0,H.jsx)(Rt,{"data-slot":`scroll-area-thumb`,className:`bg-border relative flex-1 rounded-full`})})}async function qm({databaseName:e,tableName:t,primaryKey:n,replicated:r,instanceClient:i}){let{data:a}=await i.post(`/`,{operation:`create_table`,database:e,table:t,primary_key:n,replicated:r});return a}function Jm(){return F({mutationFn:qm})}var Ym=/^[\x20-\x2E|\x30-\x5F|\x61-\x7E]*$/,Xm=k().regex(Ym,{error:`Database name cannot include backticks or forward slashes.`}).max(75,{error:`Database name cannot be longer than 75 characters.`}),Zm=k().nonempty({error:`Table name is required.`}).regex(Ym,{error:`Table name cannot include backticks or forward slashes.`}).max(250,{error:`Table name cannot be longer than 250 characters.`}),Qm=O({databaseName:Xm,tableName:Zm,primaryKey:k().regex(Ym,{error:`Primary key cannot include backticks or forward slashes.`}).max(250,{error:`Primary key cannot be longer than 250 characters.`})});function $m({databaseName:e,onSelectTable:t}){let n=de(),r=U(),i=ae(),[a,o]=(0,V.useState)(!1),s=z({resolver:R(Qm),defaultValues:{databaseName:e||``,tableName:``,primaryKey:``}}),{mutate:c}=Jm(),l=async e=>{let a=e.databaseName||`data`,l=e.tableName;c({databaseName:a,tableName:l,primaryKey:e.primaryKey||`id`,...r,replicated:r.entityType===`cluster`},{onSuccess:async()=>{await n.invalidateQueries({queryKey:[r.entityId,`describe_all`],refetchType:`all`}),L.success(`Table ${l} created successfully`),o(!1),s.reset(),t(a,l),await i.invalidate()}})};return(0,H.jsxs)(lo,{open:a,onOpenChange:o,children:[(0,H.jsx)(uo,{asChild:!0,children:(0,H.jsx)(`div`,{className:`sticky bottom-0 py-4 bg-background/80 backdrop-blur-xs dark:bg-black/70`,children:(0,H.jsxs)(_,{variant:`positiveOutline`,className:`w-full rounded-full`,size:`lg`,accessKey:`t`,children:[(0,H.jsx)(cr,{}),(0,H.jsxs)(`span`,{children:[`Create a `,(0,H.jsx)(`u`,{children:`T`}),`able`]})]})})}),(0,H.jsxs)(mo,{className:`sm:max-w-[425px]`,children:[(0,H.jsxs)(ho,{children:[(0,H.jsx)(go,{children:`Create a New Table`}),(0,H.jsx)(_o,{children:`What would you like to create?`})]}),(0,H.jsx)(W,{...s,children:(0,H.jsxs)(`form`,{id:`instance-new-table-form`,name:`instance-new-table-form`,onSubmit:s.handleSubmit(l),className:`grid gap-6 text-popover-foreground`,children:[(0,H.jsx)(K,{control:s.control,name:`tableName`,render:({field:e})=>(0,H.jsxs)(q,{className:``,children:[(0,H.jsx)(J,{className:`pb-1`,children:`Table Name`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{...e,type:`text`,maxLength:Qm.shape.tableName.maxLength,autoFocus:!0,autoCapitalize:`off`,autoComplete:`off`,autoCorrect:`off`})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:s.control,name:`primaryKey`,render:({field:e})=>(0,H.jsxs)(q,{className:``,children:[(0,H.jsx)(J,{className:`pb-1`,children:`Primary Key`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{...e,placeholder:`id`,type:`text`,maxLength:Qm.shape.primaryKey.maxLength,autoCapitalize:`off`,autoComplete:`off`,autoCorrect:`off`})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:s.control,name:`databaseName`,render:({field:e})=>(0,H.jsxs)(q,{className:``,children:[(0,H.jsx)(J,{className:`pb-1`,children:`Database Name`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{...e,type:`text`,placeholder:`data`,maxLength:Qm.shape.databaseName.maxLength,autoCapitalize:`off`,autoComplete:`off`,autoCorrect:`off`})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(Z,{children:(0,H.jsxs)(_,{type:`submit`,variant:`submit`,className:`rounded-full`,children:[(0,H.jsx)(Cr,{}),`Create New Table`]})})]})})]})]})}function eh({instanceDatabaseMap:e}){let t=ae(),n=!e,r=j({strict:!1}),i=je(),a=Ei(),{databaseNames:o,tableNames:s}=(0,V.useMemo)(()=>({databaseNames:Object.keys(e||{}).sort(),tableNames:r.databaseName?Object.keys(e?.[r.databaseName]||[]).sort():[]}),[e,r.databaseName]),c=(0,V.useCallback)(n=>{let a=n?Object.keys(e?.[n]||[]).sort():[];r.databaseName?i({to:Wm({...r,databaseName:n,tableName:a[0]})}):t.invalidate()},[e,r,t,i]),l=(0,V.useCallback)((e,t)=>{i({to:Wm({...r,databaseName:e,tableName:t})})},[i,r]);return(0,H.jsxs)(`div`,{className:`pl-3`,children:[(0,H.jsx)(`h1`,{className:`pt-3 pb-3 text-3xl`,children:`Databases`}),n?(0,H.jsx)(Qc,{className:`w-full h-9 m-0 rounded-md`}):(0,H.jsx)(`div`,{className:`flex space-x-2`,children:(0,H.jsxs)($c,{name:`databaseSelect`,value:r.databaseName||``,disabled:o.length===0,onValueChange:c,children:[(0,H.jsx)(nl,{className:`w-full`,children:(0,H.jsx)(tl,{placeholder:`Select a Database`})}),(0,H.jsx)(rl,{children:(0,H.jsx)(el,{children:o.map(e=>(0,H.jsx)($,{value:e,children:e},e))})})]})}),n?(0,H.jsx)(Qc,{className:`w-full min-h-80 rounded-md mb-0`}):(0,H.jsxs)(Gm,{className:`border rounded-md min-h-80 border-grey-700 mt-4`,children:[s.length===0&&r.databaseName?.length?(0,H.jsxs)(`div`,{className:`w-full h-full text-center`,children:[(0,H.jsx)(`p`,{className:`py-6`,children:`No tables found in this database.`}),a&&(0,H.jsx)(`p`,{children:`Tap "Create a Table" below!`})]}):s.length===0&&!r.databaseName?.length?a?(0,H.jsxs)(`p`,{className:`pt-2 text-sm text-center`,children:[`Please `,o.length===0?`create`:`select`,` a table.`]}):(0,H.jsxs)(`p`,{className:`pt-2 text-sm text-center`,children:[`Please `,o.length===0?`ask your admin to create`:`select`,` a table.`]}):``,(0,H.jsx)(`ul`,{children:s.map(e=>(0,H.jsx)(`li`,{className:`flex items-center p-2 border-b hover:bg-accent border-border dark:hover:bg-grey-700/80 dark:border-grey-700`,children:(0,H.jsxs)(_,{onClick:()=>l(r.databaseName,e),size:`lg`,className:`items-center justify-between w-full bg-transparent border-none shadow-none hover:bg-transparent text-foreground`,children:[e,(0,H.jsx)(`span`,{children:r.tableName===e&&(0,H.jsx)(dn,{})})]})},e))})]}),a&&(0,H.jsx)($m,{databaseName:r.databaseName,onSelectTable:l})]})}function th(e){if(!e)return{dataTableColumns:[],primaryKey:``};let t=e.primary_key??e.hash_attribute??``,{attributes:n}=e,r=[],i=[],a=[],o=[];for(let e=n.length-1;e>=0;e--){let{attribute:t,type:s,is_primary_key:c,indexed:l}=n[e],u={header:t,accessorKey:t,enableSorting:!!(c||l),enableColumnFilter:!!(c||l),size:nh(s)};c?r.push(u):t===`__createdtime__`||t===`__updatedtime__`?o.push(u):u.enableSorting?i.push(u):a.push(u)}return{dataTableColumns:[...r,...i,...a,...o],primaryKey:t}}function nh(e){switch(e){case`Id`:case`ID`:return 1;case`Boolean`:return 1;case`Int`:case`Long`:case`Float`:case`BigInt`:return 1;default:return Math.round(window.innerWidth*.1)}}async function rh({databaseName:e,tableName:t,records:n,instanceClient:r}){let{data:i}=await r.post(`/`,{operation:`insert`,database:e,table:t,records:n});return i}function ih(){return F({mutationFn:rh})}function ah({isModalOpen:e,instanceTable:t,setIsModalOpen:n,refreshTable:r}){let i=ju(),{mutate:a,isPending:o}=ih(),s=U(),[c,l]=(0,V.useState)(!0),[u,f]=(0,V.useState)(),[p,m]=(0,V.useState)(!1),[h,g]=(0,V.useState)([]),v=(0,V.useMemo)(()=>{let e={};for(let n of t.attributes)n.is_primary_key||n.attribute===`__createdtime__`||n.attribute===`__updatedtime__`||(e[n.attribute]=oh(n.type));return JSON.stringify(e,null,4)},[t]),y=(0,V.useCallback)(e=>{m(!0),l(e.length===0)},[l]),b=(0,V.useCallback)(()=>{if(u&&c){let e=JSON.parse(u),i=Array.isArray(e)?e:[e],o=L.loading(`Adding ${i.length} records...`);a({...s,databaseName:t.schema,tableName:t.name,records:i},{onSuccess:e=>{r(),e.skipped_hashes?.length||n(!1),g(e.skipped_hashes),(e.skipped_hashes?.length>0?L.warning:L.success)(e.skipped_hashes?.length>0?`Warning!`:`Success!`,{id:o,description:(0,H.jsxs)(H.Fragment,{children:[e.inserted_hashes.length>0&&(0,H.jsxs)(`p`,{children:[`Added `,d(e.inserted_hashes.length,`record`,`records`)]}),e.skipped_hashes.length>0&&(0,H.jsxs)(`p`,{children:[`Skipped `,d(e.skipped_hashes.length,`record`,`records`)]})]})})}})}},[u,a,s,t.name,t.schema,c,r,n]),x=(0,V.useCallback)(e=>{e?.focus()},[]);return(0,H.jsx)(lo,{onOpenChange:n,open:e,children:(0,H.jsxs)(mo,{"aria-describedby":void 0,onEscapeKeyDown:e=>{p&&e.preventDefault()},children:[(0,H.jsx)(ho,{children:(0,H.jsxs)(go,{children:[`Add New `,t.name]})}),(t?.primary_key??t?.hash_attribute)&&(0,H.jsxs)(`div`,{className:`text-sm text-gray-500`,children:[`The primary key for this table is`,` `,(0,H.jsxs)(`strong`,{children:[`“`,t.primary_key??t.hash_attribute,`”`]}),`, and will auto-generate. You may manually add it if you want to specify its value.`]}),(0,H.jsx)(Nu,{className:`w-full h-96`,language:`json`,theme:i,value:v,onValidate:y,onChange:f,options:{minimap:{enabled:!1}},onMount:x}),(0,H.jsxs)(`div`,{className:`text-sm text-gray-500`,children:[(0,H.jsx)(`strong`,{children:`Provide an [array]`}),` if you want to add more than one record at a time.`]}),h.length>0&&(0,H.jsxs)(yp,{className:`mt-2`,children:[(0,H.jsx)(wr,{className:`w-4 h-4`}),(0,H.jsxs)(bp,{children:[`Skipped `,h.length===1?`Hash`:`Hashes`,` Detected`]}),(0,H.jsx)(xp,{className:`max-h-36 overflow-auto`,children:(0,H.jsx)(`ol`,{children:h.map(e=>(0,H.jsx)(`li`,{children:e},e))})})]}),(0,H.jsx)(Z,{children:(0,H.jsx)(`div`,{className:`flex justify-between w-full`,children:(0,H.jsxs)(_,{variant:`submit`,className:`rounded-full`,onClick:b,accessKey:`s`,disabled:!u||!c||o,children:[(0,H.jsx)(pr,{}),` `,(0,H.jsxs)(`span`,{children:[(0,H.jsx)(`u`,{children:`S`}),`ave Changes`]})]})})})]})})}function oh(e){switch(e){case`Date`:return new Date().toISOString();case`Id`:case`ID`:case`String`:return``;case`Boolean`:return!1;case`Int`:case`Long`:case`Float`:case`BigInt`:return 0;default:return null}}async function sh({databaseName:e,replicated:t,instanceClient:n}){let{data:r}=await n.post(`/`,{operation:`drop_database`,database:e,replicated:t});return r}function ch(){return F({mutationFn:sh})}function lh(e){let t=e;if(t?.focus)uh(t);else{let t=e;t?.target?.focus&&uh(t.target)}}function uh(e){m(1).then(()=>{e.focus?.()})}function dh(e,t){let[n,r]=(0,V.useState)({value:t});return Nd(e,(e,t)=>r({value:e,trigger:t}),[r]),n}function fh(e,t,n){Pd(e,t,n)}function ph(e,t,n){return r=>fh(e,t,n??r)}function mh(e,t,n){return(0,V.useCallback)(r=>{fh(e,t,n??r)},[e,t,n])}function hh({databaseName:e,onDeleted:t}){let{value:n,trigger:r}=dh(`ShowDeleteDatabase`,!1),i=(0,V.useCallback)(()=>{fh(`ShowDeleteDatabase`,!1),lh(r)},[r]),a=Ei(),o=de(),s=U(),c=ae(),{mutate:l,isPending:u}=ch(),d=(0,V.useCallback)(()=>{l({databaseName:e,...s,replicated:s.entityType===`cluster`},{onSuccess:async()=>{i(),await o.invalidateQueries({queryKey:[s.entityId,`describe_all`],refetchType:`all`}),await c.invalidate(),L.success(`Database ${e} dropped successfully`),t(`database`)}})},[i,e,l,s,t,o,c]);return!a||!e?(0,H.jsx)(H.Fragment,{}):(0,H.jsx)(vo,{typeOfThingBeingDeleted:`database`,nameOfThingBeingDeleted:e,transitiveVerb:`Drop`,presentParticiple:`Dropping`,isModalOpen:n,setIsModalOpen:i,deletionConfirmed:d,deletionPending:u})}async function gh({databaseName:e,tableName:t,replicated:n,instanceClient:r}){let{data:i}=await r.post(`/`,{operation:`drop_table`,database:e,table:t,replicated:n});return i}function _h(){return F({mutationFn:gh})}function vh({databaseName:e,tableName:t,onDeleted:n}){let{value:r,trigger:i}=dh(`ShowDeleteTable`,!1),a=(0,V.useCallback)(()=>{fh(`ShowDeleteTable`,!1),lh(i)},[i]),o=Ei(),s=de(),c=U(),l=ae(),{mutate:u,isPending:d}=_h(),f=(0,V.useCallback)(()=>{u({databaseName:e,tableName:t,...c,replicated:c.entityType===`cluster`},{onSuccess:async()=>{a(),await s.invalidateQueries({queryKey:[c.entityId,`describe_all`],refetchType:`all`}),await l.invalidate(),L.success(`Table ${t} dropped successfully`),n(`table`)}})},[a,e,u,c,n,s,l,t]);return!o||!e?(0,H.jsx)(H.Fragment,{}):(0,H.jsx)(vo,{typeOfThingBeingDeleted:`table`,nameOfThingBeingDeleted:`${e} > ${t}`,transitiveVerb:`Drop`,presentParticiple:`Dropping`,isModalOpen:r,setIsModalOpen:a,deletionConfirmed:f,deletionPending:d})}function yh({canEditRecords:e,canDeleteRecords:t,setIsModalOpen:n,isModalOpen:r,primaryKey:i,data:a,onSaveChanges:o,onDeleteRecord:s,isUpdateTableRecordsPending:c,isDeleteTableRecordsPending:l}){let u=ju(),[d,f]=(0,V.useState)(!0),[p,m]=(0,V.useState)(!1),[h,g]=(0,V.useState)(),v=(0,V.useMemo)(()=>{let e=a?.map(({__createdtime__:e,__updatedtime__:t,...n})=>n);return JSON.stringify(e,null,4)},[a]),y=(0,V.useCallback)(e=>{m(!0),f(e.length===0)},[f]);return(0,H.jsx)(lo,{onOpenChange:n,open:r,children:(0,H.jsxs)(mo,{"aria-describedby":void 0,autoFocus:e,onEscapeKeyDown:e?e=>{p&&e.preventDefault()}:void 0,children:[(0,H.jsx)(ho,{children:(0,H.jsxs)(go,{children:[e?`Edit`:`View`,` Row`]})}),a?(0,H.jsx)(Nu,{className:`w-full h-96`,language:`json`,theme:u,options:e?void 0:{readOnly:!0},value:v,onValidate:y,onChange:e=>{g(e)}}):(0,H.jsx)(Bo,{}),(0,H.jsx)(Z,{children:(0,H.jsxs)(`div`,{className:`flex justify-between w-full`,children:[t&&(0,H.jsxs)(_,{variant:`destructive`,className:`rounded-full`,type:`button`,autoFocus:!1,onClick:()=>{let e=a[0]?.[i];e&&s([e])},disabled:l,children:[(0,H.jsx)(Dr,{}),` Delete Row`]}),e&&(0,H.jsxs)(_,{variant:`submit`,className:`rounded-full`,autoFocus:!0,accessKey:`s`,onClick:()=>{h&&d?o(JSON.parse(h)):n(!1)},disabled:!d||c,children:[(0,H.jsx)(pr,{}),` `,(0,H.jsxs)(`span`,{children:[(0,H.jsx)(`u`,{children:`S`}),`ave Changes`]})]})]})})]})})}async function bh(e){let{database:t,table:n,fileData:r,instanceClient:i}=e,{data:a}=await i.post(`/`,{operation:`csv_data_load`,database:t,action:`insert`,table:n,data:r});return a}function xh(){return F({mutationFn:bh})}var Sh=O({fileData:k(),database:k(),table:k()});function Ch({setIsModalOpen:e,isModalOpen:t,onSaveChanges:n,database:r,table:i}){let[a,o]=(0,V.useState)(null),s=U(),{mutate:c,isPending:l}=xh(),u=e=>{if(!e.target.files)return;let t=e.target.files[0];if(t){let e=new FileReader;e.onload=e=>{let n=e.target?.result;typeof n==`string`&&(o(t),d.setValue(`fileData`,n))},e.readAsText(t)}},d=z({resolver:R(Sh),defaultValues:{database:r,table:i,fileData:``}}),f=e=>{c({fileData:e.fileData,database:r,table:i,...s},{onSuccess:({message:e})=>{d.reset(),o(null),n(e)}})};return(0,H.jsx)(lo,{onOpenChange:()=>{e(!1),d.reset()},open:t,children:(0,H.jsxs)(mo,{children:[(0,H.jsxs)(ho,{children:[(0,H.jsx)(go,{children:`Import CSV`}),(0,H.jsx)(_o,{children:`Upload a CSV file to import data into the table.`})]}),(0,H.jsx)(W,{...d,children:(0,H.jsxs)(`form`,{id:`instance-import-csv-form`,name:`instance-import-csv-form`,onSubmit:d.handleSubmit(f),children:[(0,H.jsx)(`div`,{className:`w-full`,children:(0,H.jsx)(K,{control:d.control,name:`fileData`,render:({field:e})=>(0,H.jsxs)(q,{className:`relative`,children:[(0,H.jsx)(J,{htmlFor:`dropzone-file`,className:`flex flex-col items-center justify-center w-full h-64 border-2 border-border border-dashed rounded-lg cursor-pointer bg-muted dark:bg-grey-700 hover:bg-muted/80 dark:hover:bg-grey-700/80`,children:(0,H.jsx)(G,{children:(0,H.jsxs)(`div`,{children:[(0,H.jsxs)(`div`,{className:`flex flex-col items-center justify-center pt-5 pb-6`,children:[(0,H.jsx)(Mn,{className:`text-muted-foreground`,size:48}),(0,H.jsx)(`p`,{className:`mb-2 text-sm text-muted-foreground`,children:a?a.name:(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`span`,{className:`font-semibold`,children:`Click to upload`}),` or drag and drop a CSV File`]})})]}),(0,H.jsx)(X,{id:`dropzone-file`,type:`file`,className:`opacity-0 w-full h-full absolute left-0 top-0 cursor-pointer`,accept:`.csv`,name:e.name,ref:e.ref,onBlur:e.onBlur,disabled:e.disabled,onChange:u})]})})}),(0,H.jsx)(Y,{})]})})}),(0,H.jsx)(Z,{className:`mt-4`,children:(0,H.jsxs)(_,{variant:`submit`,className:`rounded-full`,accessKey:`u`,disabled:!a||l,children:[(0,H.jsx)(pr,{}),(0,H.jsxs)(`span`,{children:[(0,H.jsx)(`u`,{children:`U`}),`pload CSV`]})]})})]})})]})})}function wh(e=!1){let[t,n]=(0,V.useState)(e),r=(0,V.useCallback)(e=>{e?.preventDefault?.(),n(e=>!e)},[]),i=(0,V.useCallback)(e=>{e?.preventDefault?.(),n(!0)},[]),a=(0,V.useCallback)(e=>{e?.preventDefault?.(),n(!1)},[]);return(0,V.useMemo)(()=>({toggled:t,setToggled:n,toggle:r,toggleOn:i,toggleOff:a}),[r,n,a,i,t])}async function Th({databaseName:e,instanceClient:t}){let{data:n}=await t.post(`/`,{operation:`cleanup_orphan_blobs`,database:e});return n}function Eh(){return F({mutationFn:Th})}async function Dh({databaseName:e,tableName:t,hashValues:n,instanceClient:r}){let{data:i}=await r.post(`/`,{operation:`delete`,database:e,table:t,hash_values:n});return i}function Oh(){return F({mutationFn:Dh})}async function kh({databaseName:e,tableName:t,instanceClient:n}){let{data:r}=await n.post(`/`,{operation:`describe_table`,database:e,table:t});return r}function Ah(e){return A({queryKey:[e.entityId,e.databaseName,e.tableName,`describe_table`],queryFn:()=>kh(e),staleTime:6e4,gcTime:5e3,enabled:!!e.databaseName&&!!e.tableName,retry:!1})}var jh=[`1`,`bet`,`k`,`ok`,`si`,`tru`,`true`,`yes`,`yup`];function Mh(e){let t=e.toLowerCase().trim();return jh.includes(t)}function Nh(e){return!isNaN(e)&&!isNaN(parseFloat(e))}function Ph(e){if(e.startsWith(`0.`)&&Nh(e))return!0;let t=e.toUpperCase().includes(`E`);return!(e!==`0`&&e.startsWith(`0`))&&!t&&Nh(e)}var Fh={true:!0,TRUE:!0,false:!1,FALSE:!1,undefined:null,null:null,NULL:null,NaN:NaN},Ih=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/;function Lh(e){return e==null||e===``||typeof e!=`string`?e:Fh[e]===void 0?Ph(e)?Number(e):Ih.test(e)?new Date(e):e:Fh[e]}function Rh(e){let{enabled:t,entityId:n,databaseName:r,tableName:i,conditions:a,sort:o,pageIndex:s,pageSize:c,onlyIfCached:l}=e;return A({enabled:t&&!!a,queryKey:[n,r,i,`search_by_conditions`,a,o.attribute||`default`,o.descending||!1,s||0,c||0,l],staleTime:6e4,gcTime:5e3,retry:!1,queryFn:()=>zh(e)})}function zh({instanceClient:e,databaseName:t,tableName:n,conditions:r,sort:i,pageIndex:a,pageSize:o,onlyIfCached:s,headers:c}){return e.post(`/`,{operation:`search_by_conditions`,get_attributes:[`*`],database:t,table:n,conditions:r,sort:i.attribute.length?i:void 0,offset:a*o,limit:o,onlyIfCached:s,noCacheStore:s},{timeout:0,headers:c})}function Bh(e,t,n){return t.split(/ & /).map(t=>Vh(e,t,n))}function Vh(e,t,n){t.startsWith(e)&&(t=t.substring(e.length));let{comparator:r,value:i}=Wh(t);switch(n?.type){case`ID`:case`String`:return{search_attribute:e,search_type:r,search_value:i};case`Int`:case`BigInt`:case`Long`:case`Float`:{let t=n.type.includes(`Int`)?parseInt(i,10):parseFloat(i);if(isNaN(t))throw Error(`${i} does not appear to be a valid number.`);return{search_attribute:e,search_type:r,search_value:t}}case`Date`:return{search_attribute:e,search_type:r,search_value:new Date(i).toISOString()};case`Boolean`:return{search_attribute:e,search_type:r,search_value:Mh(i)};case`Blob`:case`Bytes`:return{search_attribute:e,search_type:r,search_value:i};default:return{search_attribute:e,search_type:r,search_value:Lh(i)}}}var Hh={"=== ":`equals`,"== ":`eq`,"equals ":`equals`,"equal ":`equals`,"eq ":`eq`,"!== ":`not_equal`,"!= ":`ne`,"notequals ":`not_equal`,"notequal ":`not_equal`,"ne ":`ne`},Uh={">":`greater_than`,g:`greater_than`,gt:`greater_than`,"=gt":`greater_than`,greater:`greater_than`,greaterthan:`greater_than`,">=":`greater_than_equal`,ge:`greater_than_equal`,"=ge":`greater_than_equal`,gte:`greater_than_equal`,greaterorequal:`greater_than_equal`,greaterthanequal:`greater_than_equal`,greaterthanorequal:`greater_than_equal`,"<":`less_than`,l:`less_than`,lt:`less_than`,"=lt":`less_than`,less:`less_than`,lessthan:`less_than`,"<=":`less_than_equal`,lte:`less_than_equal`,le:`less_than_equal`,"=le":`less_than_equal`,lessorequal:`less_than_equal`,lessthanequal:`less_than_equal`,lessthanorequal:`less_than_equal`};function Wh(e){let t=e.toLowerCase(),n=t.match(/^ *([>=<]+[a-z]*[_ ]*|[a-z]+[>=<]+[_ ]*|[a-z]+[_ ]+)([\d._:tz-]+) *$/);if(n){let e=n[1].replace(/[_ ]+/g,``).replace(/^([a-z]+)=$/g,`$1`),t=n[2],r=Uh[e];if(r)return{comparator:r,value:t}}for(let n in Hh)if(t.startsWith(n))return{comparator:Hh[n],value:e.slice(n.length)};return t.endsWith(`*`)?{comparator:`starts_with`,value:e.slice(0,-1)}:{comparator:`equals`,value:e}}function Gh({enabled:e,entityId:t,instanceClient:n,databaseName:r,tableName:i,ids:a}){return A({queryKey:[t,`search_by_id`,r,i,a],queryFn:()=>n.post(`/`,{get_attributes:[`*`],ids:a,noCacheStore:!0,onlyIfCached:!0,operation:`search_by_id`,database:r,table:i}),enabled:e&&!!a?.length,retry:!1})}async function Kh(e){let{databaseName:t,tableName:n,records:r,instanceClient:i}=e,{data:a}=await i.post(`/`,{operation:`update`,database:t,table:n,records:r});return a}function qh(){return F({mutationFn:Kh})}function Jh(e){e.stopPropagation()}var Yh=re(k(),k());function Xh({applyFilters:e,columnFiltersForm:t,headerGroups:n}){let r=(0,V.useCallback)(t=>{if(t.key===`Enter`)return t.preventDefault(),e(),!1},[e]);return(0,H.jsx)(lu,{children:(0,H.jsx)(W,{...t,children:n.map(e=>(0,H.jsx)(du,{className:`border-none`,children:e.headers.map(e=>(0,H.jsx)(mu,{style:{width:`${e.column.getSize()}px`},children:e.column.columnDef.enableColumnFilter&&(0,H.jsx)(K,{control:t.control,name:e.id,render:({field:e})=>(0,H.jsxs)(q,{className:`border-r-1 border-r-black`,children:[(0,H.jsx)(G,{children:(0,H.jsx)(X,{...e,type:`text`,autoCapitalize:`none`,autoComplete:`off`,className:`rounded-none`,onKeyDown:r,value:e.value??``})}),(0,H.jsx)(Y,{})]})})},e.id))},e.id))})})}function Zh({columns:e,columnVisibility:t,setColumnVisibility:n}){let r=(0,V.useMemo)(()=>e.map(e=>typeof e.header==`string`?e.header:void 0).filter(Lr),[e]),i=(0,V.useCallback)((e,r)=>{n({...t,[e]:r})},[t,n]);return(0,H.jsxs)(bo,{children:[(0,H.jsx)(xo,{asChild:!0,children:(0,H.jsxs)(_,{variant:`ghost`,children:[(0,H.jsx)(Nn,{className:`inline-block `}),`Columns`]})}),(0,H.jsx)(So,{children:r.map(e=>(0,H.jsx)(Qh,{columnHeader:e,isChecked:t[e]??!0,toggleColumn:i},e))})]})}function Qh({columnHeader:e,isChecked:t,toggleColumn:n}){return(0,H.jsx)(wo,{checked:t,onCheckedChange:(0,V.useCallback)(t=>{n(e,t)},[e,n]),onSelect:e=>e.preventDefault(),children:e})}function $h({className:e}){return(0,H.jsx)(Zn,{className:T(`animate-spin`,e)})}function eg({applyFilters:e,columnFiltersForm:t,columns:n,columnVisibility:r,data:i,isFetching:a,onColumnClick:o,onRowClick:s,pageIndex:c,pageSize:l,primaryKey:u,setPageIndex:d,setPageSize:f,filtersToggled:p,totalPages:m,totalRecords:h}){let g=ye({data:i||[],columns:n,manualPagination:!0,enableColumnResizing:!0,columnResizeMode:`onEnd`,pageCount:m,defaultColumn:{minSize:1},state:{columnVisibility:r},rowCount:h,getCoreRowModel:we(),getPaginationRowModel:De()}),v=(0,V.useCallback)(()=>{d(c-1)},[c,d]),y=(0,V.useCallback)(()=>{d(c+1)},[c,d]);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(cu,{containerClassName:`rounded-md bg-card dark:bg-black-dark grow max-h-[calc(100vh-128px-16px-112px-80px)]`,children:[(0,H.jsx)(lu,{children:g.getHeaderGroups().map(e=>(0,H.jsx)(du,{className:`border-none`,children:e.headers.map(e=>(0,H.jsx)(pu,{header:e,onColumnClick:o},e.id))},e.id))}),p&&(0,H.jsx)(Xh,{applyFilters:e,columnFiltersForm:t,headerGroups:g.getHeaderGroups()}),(0,H.jsx)(uu,{className:`bg-background dark:bg-black border border-border dark:border-grey-700`,children:g.getRowModel().rows?.length?g.getRowModel().rows.map(e=>(0,H.jsx)(tg,{row:e,onRowClick:s,primaryKey:u},e.id)):(0,H.jsx)(du,{children:(0,H.jsx)(mu,{colSpan:n.length,className:`h-24 text-center`,children:a||i===void 0?(0,H.jsx)($h,{className:`opacity-50 inline-block`}):(0,H.jsx)(`span`,{children:`No results.`})})})})]}),(0,H.jsxs)(`div`,{className:`flex items-center justify-end py-4 space-x-2 pr-4`,children:[(0,H.jsxs)(_,{variant:`defaultOutline`,size:`sm`,onClick:v,className:`select-none`,disabled:c===0,children:[(0,H.jsx)(un,{}),`Previous`]}),(0,H.jsx)(`div`,{className:`grow`}),(0,H.jsxs)(`div`,{className:`text-center`,children:[(0,H.jsx)(`dt`,{className:`font-medium text-gray-500 text-sm/6 dark:text-gray-400`,children:`Records`}),(0,H.jsx)(`dd`,{className:`font-semibold tracking-tight`,children:h===void 0?(0,H.jsx)(Qc,{}):Cl(h)})]}),h!==void 0&&h>0&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{children:(0,H.jsxs)($c,{defaultValue:l.toString(),onValueChange:e=>{f(Number(e))},children:[(0,H.jsx)(nl,{className:`h-10 w-20`,children:(0,H.jsx)(tl,{})}),(0,H.jsx)(rl,{side:`top`,children:[20,50,100,250].map(e=>(0,H.jsx)($,{value:`${e}`,children:e},e))})]})}),m!==void 0&&m>1&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`div`,{className:`text-center`,children:[(0,H.jsx)(`dt`,{className:`font-medium text-gray-500 text-sm/6 dark:text-gray-400`,children:`Pages`}),(0,H.jsx)(`dd`,{className:`font-semibold tracking-tight`,children:Cl(m)})]}),(0,H.jsxs)(`div`,{className:`text-center`,children:[(0,H.jsx)(`dt`,{className:`font-medium text-gray-500 text-sm/6 dark:text-gray-400`,children:`Page`}),(0,H.jsx)(`dd`,{className:`font-semibold tracking-tight`,children:Cl(c+1)})]})]})]}),(0,H.jsx)(`div`,{className:`grow`}),(0,H.jsxs)(_,{variant:`defaultOutline`,size:`sm`,onClick:y,className:`select-none`,disabled:m===void 0||c===m-1,children:[`Next`,(0,H.jsx)(dn,{})]})]})]})}function tg({row:e,primaryKey:t,onRowClick:n}){let r=(0,V.useMemo)(()=>{let n=e.original,r=n&&n.message===`This entry has expired`,i=e.getVisibleCells();return console.log(`primaryKey, visibleCells`,t,i),r?i[0]?.column?.id===t?[(0,H.jsx)(ng,{cell:i[0]},i[0].id),(0,H.jsx)(rg,{colSpan:i.length-1},`expired`)]:[(0,H.jsx)(rg,{colSpan:i.length},`expired`)]:i.map(e=>(0,H.jsx)(ng,{cell:e},e.id))},[e,t]);return(0,H.jsx)(du,{"data-state":e.getIsSelected()&&`selected`,onClick:()=>n?.(e),className:f(`hover:bg-muted/10 data-[state=selected]:bg-muted`,n&&`cursor-pointer`),children:r})}function ng({cell:e}){return(0,H.jsx)(mu,{style:{width:`${e.column.getSize()}px`},className:`px-2 py-2 overflow-x-hidden max-w-32 text-ellipsis whitespace-nowrap`,children:e.getValue()==`[object Object]`?JSON.stringify(e.getValue()):Ee(e.column.columnDef.cell,e.getContext())})}function rg({colSpan:e}){return(0,H.jsx)(mu,{colSpan:e,className:`px-2 py-2 overflow-x-hidden max-w-32 text-ellipsis whitespace-nowrap`,children:(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:`This entry has expired`})})}function ig({instanceDatabaseMap:e,databaseName:t,tableName:n}){let r=j({strict:!1}),i=je(),a=U(),{clusterId:o,instanceId:s}=r,{toggled:c,toggle:l}=wh(!0),u=Xt(),d=Di(s??o,t,n,`insert`),f=Di(s??o,t,n,`update`),p=Di(s??o,t,n,`delete`),m=Ei(),{data:h}=M(Ah({...a,databaseName:t,tableName:n})),g=(0,V.useMemo)(()=>$o(h?.attributes??[],`attribute`),[h]),[v,y]=jd(null,r),[b,x]=(0,V.useState)(!1),S=(0,V.useMemo)(()=>(t?Object.keys(e?.[t]||[]).sort():[]).length===1,[e,t]),{toggled:C,toggleOn:ee,toggleOff:w}=wh(!1),T=z({resolver:R(Yh)}),{reset:E}=T,D=T.watch(),[te,ne]=jd(null,[r.clusterId,r.instanceId,t,n]),O=(0,V.useCallback)(()=>{let e=[];for(let t in D)if(D[t]?.length)try{e.push(...Bh(t,D[t],g[t]))}catch(e){L.error(String(e))}ne(e.length?e:null),E({...D})},[g,E,D]),k=(0,V.useCallback)(()=>{E({},{keepValues:!1,keepDirtyValues:!1,keepDefaultValues:!1}),E(),ne(null),w()},[w,E]);(0,V.useEffect)(function(){return k()},[r,k]);let{dataTableColumns:re,primaryKey:A}=th(h),[ie,ae]=(0,V.useState)(!1),[oe,se]=(0,V.useState)(!1),[ce,le]=jd({attribute:A,descending:!1},r),[ue,fe]=jd(0,[t,n]),[N,P]=(0,V.useState)(20),pe=h?.record_count,me=h?.record_count?Math.ceil(h.record_count/N):0,he=C&&!!te,ge={...a,enabled:!he&&!!A,databaseName:t,tableName:n,searchAttribute:A,sort:ce,pageSize:N,pageIndex:ue,onlyIfCached:c},_e=nf(ge),{data:ve,isFetching:ye}=M(_e),be={...a,enabled:he&&!!A,databaseName:t,tableName:n,conditions:te,sort:ce,pageSize:N,pageIndex:ue,onlyIfCached:c},F=Rh(be),{data:xe,isFetching:Se}=M(F),Ce=he?xe:ve,we=ye||Se,{data:Te}=M(Gh({...a,enabled:b,databaseName:t,tableName:n,ids:v})),{mutate:Ee,isPending:De}=qh(),{mutate:Oe,isPending:ke}=Oh(),{mutate:Ae,isPending:Me}=Eh(),Ne=de(),Pe=(0,V.useCallback)(()=>Ne.invalidateQueries({queryKey:[a.entityId,t,n]}),[Ne,a.entityId,t,n]),Fe=(0,V.useCallback)(async()=>{confirm(`Are you sure you want to cleanup orphan blobs for database "${t}"?`)&&Ae({...a,databaseName:t},{onSuccess:e=>{L.success(e.message||`Orphan blobs cleanup started successfully`),Pe()},onError:e=>{L.error(e instanceof Error?e.message:`Failed to cleanup orphan blobs`)}})},[Ae,t,a,Pe]),[Ie,Le]=(0,V.useState)(!1),Re=(0,V.useCallback)(async()=>{if(!A)return;let e=L.loading(`Loading CSV...`);Le(!0);let r={pageIndex:0,pageSize:1e6,headers:{Accept:`text/csv`}},i=await(he?zh({...be,...r}):rf({...ge,...r}));L.loading(`Preparing CSV...`,{id:e});let a=i.data,o=new Blob([a],{type:`text/csv`}),s=URL.createObjectURL(o),c=document.createElement(`a`);c.href=s,c.setAttribute(`download`,`${t}.${n}.${new Date().toISOString()}.csv`),c.click(),L.success(`CSV Exported!`,{id:e}),Le(!1)},[t,n,_e,F]),ze=(0,V.useCallback)(e=>{Ee({...a,databaseName:t,tableName:n,records:e},{onSuccess:()=>{Pe(),x(!1),L.success(`Record updated successfully`)}})},[Ee,a,t,n,Pe]),Be=(0,V.useCallback)(e=>{Oe({...a,databaseName:t,tableName:n,hashValues:e},{onSuccess:()=>{Pe(),x(!1),L.success(`Record deleted successfully`)}})},[Oe,a,t,n,Pe]),Ve=(0,V.useCallback)(e=>{Pe(),se(!1),L.success(`${e}. Please wait a few moments then refresh the table.`)},[Pe]),He=e=>{y([e.original[A]]),x(!b)},Ue=(e,t)=>{le({attribute:e,descending:!t})},We=bu(Pe),Ge=(0,V.useCallback)(()=>{ae(!0)},[ae]),Ke=(0,V.useCallback)(()=>{se(!0)},[se]),qe=(0,V.useCallback)(e=>void i({to:e===`table`?`../`:`../../`}),[i]),[Je,Ye]=zd(`ColumnDisplayed/${t}/${n}`,{}),Xe=mh(`ShowDeleteTable`,!0),Ze=mh(`ShowDeleteDatabase`,!0);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`div`,{className:`flex flex-col md:flex-row items-center justify-between space-y-3 md:space-y-0 md:space-x-3 pt-15 pb-4 pr-4`,children:[(0,H.jsxs)(`div`,{className:`flex space-x-2`,children:[d&&(0,H.jsxs)(_,{variant:`positiveOutline`,onClick:Ge,disabled:ie,accessKey:`n`,children:[(0,H.jsx)(cr,{}),(0,H.jsxs)(`span`,{children:[`Add `,(0,H.jsx)(`u`,{children:`N`}),`ew Record(s)`]})]}),d&&(0,H.jsxs)(_,{variant:`positiveOutline`,onClick:Ke,disabled:oe,accessKey:`c`,children:[(0,H.jsx)(Mn,{}),(0,H.jsxs)(`span`,{children:[`Import `,(0,H.jsx)(`u`,{children:`C`}),`SV`]})]}),(0,H.jsxs)(_,{variant:`positiveOutline`,onClick:Re,disabled:Ie,accessKey:`e`,children:[(0,H.jsx)(jn,{}),(0,H.jsxs)(`span`,{children:[(0,H.jsx)(`u`,{children:`E`}),`xport CSV`]})]})]}),(0,H.jsxs)(`div`,{className:`flex space-x-2`,children:[C&&te&&(0,H.jsxs)(_,{type:`button`,variant:`ghost`,onClick:k,accessKey:`f`,children:[(0,H.jsx)(Bn,{className:`inline-block `}),(0,H.jsxs)(`span`,{children:[`Clear `,(0,H.jsx)(`u`,{children:`F`}),`ilters`]})]}),C&&T.formState.isDirty&&(0,H.jsxs)(_,{variant:`default`,onClick:O,children:[(0,H.jsx)(zn,{className:`inline-block `}),`Apply Filters`]}),C&&!te&&(0,H.jsxs)(_,{variant:`ghost`,onClick:w,accessKey:`f`,children:[(0,H.jsx)(Bn,{className:`inline-block `}),(0,H.jsxs)(`span`,{children:[`Hide `,(0,H.jsx)(`u`,{children:`F`}),`ilters`]})]}),!C&&(0,H.jsxs)(_,{variant:`ghost`,onClick:ee,accessKey:`f`,children:[(0,H.jsx)(Vn,{className:`inline-block `}),(0,H.jsxs)(`span`,{children:[`Show `,(0,H.jsx)(`u`,{children:`F`}),`ilters`]})]}),(0,H.jsx)(_,{variant:`defaultOutline`,onClick:We,disabled:we,children:(0,H.jsx)(dr,{})}),(0,H.jsx)(Zh,{columns:re,columnVisibility:Je,setColumnVisibility:Ye}),(0,H.jsxs)(bo,{children:[(0,H.jsx)(xo,{asChild:!0,disabled:!e,children:(0,H.jsx)(_,{variant:`ghost`,size:`icon`,disabled:!e,children:(0,H.jsx)(Ln,{"aria-label":`Table options`})})}),(0,H.jsxs)(So,{side:`bottom`,align:`end`,children:[(0,H.jsxs)(Co,{className:`focus:bg-primary/70 focus:text-white`,onClick:l,children:[c?(0,H.jsx)(En,{className:`text-green`}):(0,H.jsx)(Dn,{}),`Only If Cached`,(0,H.jsx)(I,{to:`https://docs.harperdb.io/docs/developers/applications/caching#cache-control-header`,target:`_blank`,rel:`noopener noreferrer`,onClick:Jh,children:(0,H.jsx)(Rn,{})})]}),m&&u&&!!s&&(0,H.jsxs)(Co,{className:`focus:bg-yellow/70 focus:text-white`,onClick:Fe,disabled:Me,children:[(0,H.jsx)(_n,{className:`text-yellow `}),`Cleanup Orphan Blobs`]}),m&&!S&&(0,H.jsxs)(Co,{className:`focus:bg-red/70 focus:text-white`,onClick:Xe,children:[(0,H.jsx)(Dr,{className:`inline-block `}),`Drop Table`]}),m&&(0,H.jsxs)(Co,{className:`focus:bg-red/70 focus:text-white`,onClick:Ze,children:[(0,H.jsx)(Er,{}),`Drop Database`]})]})]})]})]}),(0,H.jsx)(eg,{primaryKey:A,data:Ce?.data,isFetching:we,filtersToggled:C,columns:re,columnVisibility:Je,onRowClick:He,onColumnClick:Ue,totalPages:me,totalRecords:pe,pageIndex:ue,pageSize:N,columnFiltersForm:T,applyFilters:O,setPageIndex:fe,setPageSize:P}),d&&h&&ie&&(0,H.jsx)(ah,{instanceTable:h,isModalOpen:ie,refreshTable:Pe,setIsModalOpen:ae}),(0,H.jsx)(yh,{canEditRecords:f,canDeleteRecords:p,setIsModalOpen:x,isModalOpen:b,primaryKey:A,data:Te?.data,onSaveChanges:ze,onDeleteRecord:Be,isUpdateTableRecordsPending:De,isDeleteTableRecordsPending:ke}),(0,H.jsx)(hh,{databaseName:t,onDeleted:qe}),(0,H.jsx)(vh,{databaseName:t,tableName:n,onDeleted:qe}),(0,H.jsx)(Ch,{isModalOpen:oe,setIsModalOpen:se,onSaveChanges:Ve,database:t,table:n})]})}function ag(){let e=j({strict:!1}),{data:t}=M(om(U())),n,r;if(t){e.databaseName||(n=Object.keys(t).sort()[0]);let i=e.databaseName??n;!e.tableName&&i&&t[i]&&(r=Object.keys(t[i]).sort()[0])}return n||r?(0,H.jsx)(me,{to:Wm({...e,databaseName:n??e.databaseName,tableName:r}),replace:!0}):(0,H.jsxs)(`main`,{className:`grid grid-cols-1 gap-4 md:grid-cols-12 min-h-[calc(100vh-(--spacing(36)))]`,children:[(0,H.jsx)(`section`,{className:`col-span-1 text-foreground md:col-span-4 lg:col-span-3`,children:(0,H.jsx)(eh,{instanceDatabaseMap:t})}),(0,H.jsx)(`section`,{className:`col-span-1 text-foreground md:col-span-8 lg:col-span-9 flex flex-col`,children:e.databaseName&&e.tableName&&(0,H.jsx)(ig,{instanceDatabaseMap:t,databaseName:e.databaseName,tableName:e.tableName})})]})}function og(e){return P({getParentRoute:()=>e,path:`/databases/{-$databaseName}/{-$tableName}`,head:()=>({meta:[{title:`Databases — Harper Fabric`}]}),component:ag})}var sg={className:`text-primary font-semibold bg-primary/10 rounded-md dark:text-white dark:bg-white/10`};function cg(){let e=Ti(),t=j({strict:!1}),{version:n}=Ae({strict:!1}),r=ts(`4.6.0`,n)&&e,i=ts(`4.7.0-beta.7`,n),{data:a}=M(Lf(U(),r)),o=a?.restartRequired??!1,s=(0,V.useMemo)(()=>[e&&{to:tu(t),activeOptions:{exact:!0},name:`Applications`,shortName:`Apps`,icon:(0,H.jsx)(or,{className:`inline-block`})},{to:tu(t,`databases`),icon:(0,H.jsx)(In,{className:`inline-block`}),name:`Databases`},e&&i&&{to:tu(t,`apis`),name:`APIs`,icon:(0,H.jsx)(gr,{className:`inline-block`})},e&&r&&{to:tu(t,`status`),icon:(0,H.jsx)(Hn,{className:`inline-block`}),name:`Status`},e&&{to:tu(t,`logs`),icon:(0,H.jsx)(ar,{className:`inline-block`}),name:`Logs`},e&&{to:tu(t,`config`),icon:(0,H.jsx)(_r,{className:`inline-block`}),name:`Config`}].filter(Lr),[e,t,i,r]);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(lg,{links:s,restartRequired:o}),(0,H.jsx)(ug,{links:s,restartRequired:o})]})}function lg({links:e,restartRequired:t}){return(0,H.jsxs)(`div`,{className:`hidden md:flex items-center justify-between h-full text-sm text-foreground`,children:[(0,H.jsx)(Xi,{restartRequired:t}),(0,H.jsx)(`div`,{className:`flex space-x-2`,children:e.map(({shortName:e,...t})=>(0,H.jsxs)(I,{className:`p-2 text-center text-muted-foreground hover:text-foreground`,activeProps:sg,...t,children:[t.icon,(0,H.jsx)(`span`,{className:`hidden xl:inline-block ml-1`,children:t.name}),e&&(0,H.jsx)(`span`,{className:`visible xl:hidden ml-1`,children:e})]},t.to))})]})}function ug({links:e,restartRequired:t}){return(0,H.jsx)(H.Fragment,{children:(0,H.jsxs)(`div`,{className:`flex md:hidden items-center justify-between h-full px-2 text-foreground`,children:[(0,H.jsx)(Xi,{restartRequired:t}),(0,H.jsxs)(bo,{children:[(0,H.jsx)(xo,{asChild:!0,children:(0,H.jsx)(_,{variant:`ghost`,className:`p-0`,children:(0,H.jsx)(nr,{className:`h-8 w-8`})})}),(0,H.jsxs)(So,{children:[(0,H.jsx)(To,{children:`Instance Menu`}),(0,H.jsx)(Eo,{}),e.map(e=>(0,H.jsx)(Co,{asChild:!0,children:(0,H.jsx)(I,{to:e.to,activeProps:sg,children:e.name})},e.to))]})]})]})})}(0,V.lazy)(()=>Pe(()=>import(`./FloatingChat-CaAoco8I.js`).then(e=>({default:e.FloatingChat})),__vite__mapDeps([21,2,1,22,17,10])));function dg(){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`nav`,{className:`fixed top-20 w-full z-39 h-12 md:px-12 bg-violet-50 border-b border-violet-100 dark:bg-grey-700 dark:border-none`,children:(0,H.jsx)(cg,{})}),(0,H.jsx)(`div`,{className:`mt-32 min-h-[calc(100vh-(--spacing(32)))]`,children:(0,H.jsx)(Te,{})}),!1]})}function fg(e){switch(e){case`local`:return P({getParentRoute:()=>Wd,id:`_instanceLayout`,component:dg,loader:Hm});case`cluster`:return P({getParentRoute:()=>Yd,id:`_instanceLayout`,component:dg,beforeLoad:pg,loader:Hm});case`instance`:return P({getParentRoute:()=>Yd,path:`instance/$instanceId`,component:dg,beforeLoad:pg,loader:Hm})}}async function pg({context:e,params:t}){let n=e.authentication[t.instanceId||t.clusterId];if(n?.isLoading||n?.user)return;let r=e.authentication[h];if(r?.isLoading)return;let{update:i}=t.instanceId?wi(r.user,t.organizationId,t.clusterId):Si(r.user,t.organizationId,t.clusterId);if(i){let e=t.instanceId||t.clusterId,n=o({id:e,forceFabricConnect:!0});try{let t=await g({instanceClient:n});l.setUserForIdAndKey(e,n.defaults.baseURL,t),l.flagForFabricConnect(e,!0);return}catch(e){console.debug(`Fabric Connect not established`,e)}}throw ue({to:`/${t.organizationId}/${t.clusterId}/`+(t.instanceId?`instance/${t.instanceId}`:``)+`/sign-in`,search:Ud()})}var mg=y(`inline-flex
668
+ `,...s},{onSuccess:()=>{L.success(`SSH Key updated successfully!`),r(void 0),i()}})},[l,a,s,r,i]),p=(0,V.useCallback)(()=>{d({name:a,...s},{onSuccess:()=>{L.success(`SSH Key deleted successfully!`),r(void 0),i()}})},[a,d,s,i,r]);return(0,H.jsx)(lo,{onOpenChange:n,open:t,children:(0,H.jsx)(mo,{className:`sm:max-w-[750px]`,"aria-describedby":void 0,children:(0,H.jsx)(W,{...o,children:(0,H.jsxs)(`form`,{id:`instance-edit-ssh-key-form`,name:`instance-edit-ssh-key-form`,onSubmit:o.handleSubmit(f),className:`grid gap-4 my-4 md:grid-cols-2`,children:[(0,H.jsx)(go,{children:`Edit SSH Key`}),(0,H.jsx)(K,{control:o.control,name:`name`,render:({field:e})=>(0,H.jsxs)(q,{className:`md:col-span-2`,children:[(0,H.jsx)(J,{className:`pb-1`,children:`Name`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`text`,autoComplete:`off`,autoCapitalize:`off`,readOnly:!0,disabled:!0,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:o.control,name:`key`,render:({field:e})=>(0,H.jsxs)(q,{className:`md:col-span-2`,children:[(0,H.jsx)(J,{className:`pb-1`,children:`Key`}),(0,H.jsx)(fl,{children:`Replace your existing private key. Lost it? Try out "ssh-keygen"! You'll want to add your public key to your registry, i.e. GitHub.`}),(0,H.jsx)(G,{children:(0,H.jsx)(Xf,{autoComplete:`off`,autoCapitalize:`off`,autoFocus:!0,rows:3,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsxs)(q,{className:`md:col-span-2`,children:[(0,H.jsx)(J,{className:`pb-1`,children:`Host`}),(0,H.jsx)(fl,{children:`A unique identifying name for the combination of this key and your hostname, i.e. "your-repo.github.com". You will use this instead of the direct hostname to pick your key when importing applications.`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`text`,autoComplete:`off`,autoCapitalize:`off`,value:c?.host||``,disabled:!0,readOnly:!0})}),(0,H.jsx)(Y,{})]}),(0,H.jsxs)(q,{className:`md:col-span-2`,children:[(0,H.jsx)(J,{className:`pb-1`,children:`Hostname`}),(0,H.jsx)(fl,{children:`When making the request, the actual hostname to use, i.e. "github.com".`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`text`,autoComplete:`off`,autoCapitalize:`off`,value:c?.hostname||``,disabled:!0,readOnly:!0})}),(0,H.jsx)(Y,{})]}),(0,H.jsxs)(Z,{children:[(0,H.jsx)(_,{type:`button`,variant:`destructiveOutline`,className:`rounded-full`,onClick:p,disabled:u,children:`Delete SSH Key`}),(0,H.jsx)(`div`,{className:`grow`}),(0,H.jsx)(_,{type:`submit`,variant:`submit`,className:`rounded-full`,disabled:u||!o.formState.isValid,children:`Update SSH Key`})]})]})})})})}function Am(){let e=je(),{keyName:t}=j({strict:!1}),{data:n,refetch:r,isFetching:i,isRefetching:a}=M(um(U())),o=(0,V.useMemo)(()=>n?.find(e=>e.name===t),[n,t]),s=(0,V.useCallback)(n=>{let r=n?.original?.name;e({to:[t?`..`:``,r].filter(Boolean).join(`/`)})},[t,e]),c=!!t&&!!o,[l,u]=(0,V.useState)(!1),d=(0,V.useCallback)(()=>{u(!0)},[u]),f=bu(r);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(hu,{columns:dm,data:n||[],isFetching:i,onRowClick:s,children:[(0,H.jsx)(I,{className:`inline-block underline text-sm text-muted-foreground hover:text-foreground`,to:`https://docs.harperdb.io/docs/developers/security/certificate-management`,target:`_blank`,children:`Certificate Management Docs`}),(0,H.jsxs)(_,{variant:`defaultOutline`,onClick:f,accessKey:`r`,disabled:i||a,children:[(0,H.jsx)(dr,{}),(0,H.jsxs)(`span`,{className:`hidden lg:inline-block`,children:[(0,H.jsx)(`u`,{children:`R`}),`efresh`]})]}),(0,H.jsxs)(_,{variant:`positiveOutline`,onClick:d,accessKey:`a`,disabled:l,children:[(0,H.jsx)(cr,{}),(0,H.jsxs)(`span`,{children:[(0,H.jsx)(`u`,{children:`A`}),`dd`]})]})]}),l&&(0,H.jsx)(xm,{isModalOpen:l,onChangesSaved:r,setIsModalOpen:u}),c&&(0,H.jsx)(km,{isModalOpen:c,closeModal:s,data:o,onSelectSSHKey:s,onChangesSaved:r}),(0,H.jsx)(V.Suspense,{fallback:(0,H.jsx)(Bo,{text:`Loading...`}),children:(0,H.jsx)(_m,{})})]})}var jm=pe(),Mm=[{header:`Username`,accessorKey:`username`,enableSorting:!1},jm.display({header:`Role`,enableSorting:!1,id:`role`,cell:e=>e.row.original.role.role}),{header:`Active`,accessorKey:`active`,enableSorting:!1},jm.display({header:`Created`,enableSorting:!1,id:`__createdtime__`,cell:e=>vu((Date.now()-e.row.original.__createdtime__)/1e3,e.row.original.__createdtime__)}),{header:`Updated`,accessorKey:`__updatedtime__`,enableSorting:!1,cell:e=>vu((Date.now()-e.row.original.__updatedtime__)/1e3,e.row.original.__updatedtime__)}];function Nm({isModalOpen:e,onChangesSaved:t,setIsModalOpen:n}){let r=U(),{data:i}=be(Xp(r)),a=z({resolver:R(Cf),defaultValues:{username:``,role:``,password:``,confirmPassword:``}}),{mutate:o,isPending:s}=Ef(),c=(0,V.useCallback)(async e=>{e&&o({active:!0,password:e.password,role:e.role,username:e.username,...r},{onSuccess:()=>{let r=e.role;a.reset(),a.setValue(`role`,r),t(),L.success(`User added successfully!`),n(!1)}})},[o,a,r,t,n]);return(0,H.jsx)(lo,{onOpenChange:n,open:e,children:(0,H.jsx)(mo,{"aria-describedby":void 0,children:(0,H.jsx)(W,{...a,children:(0,H.jsxs)(`form`,{id:`instance-add-user-form`,name:`instance-add-user-form`,onSubmit:a.handleSubmit(c),className:`grid gap-4 my-4`,children:[(0,H.jsx)(ho,{children:(0,H.jsx)(go,{children:`Add New User`})}),(0,H.jsx)(K,{control:a.control,name:`username`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Username`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`text`,enterKeyHint:`next`,autoComplete:`username`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:a.control,name:`password`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Password`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`password`,enterKeyHint:`next`,autoComplete:`new-password`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:a.control,name:`confirmPassword`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Confirm Password`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`password`,enterKeyHint:`next`,autoComplete:`new-password`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:a.control,name:`role`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Role`}),(0,H.jsx)(V.Suspense,{fallback:(0,H.jsx)(Qc,{}),children:(0,H.jsx)(G,{children:(0,H.jsxs)($c,{...e,onValueChange:t=>e.onChange(t),children:[(0,H.jsx)(nl,{className:`w-full`,children:(0,H.jsx)(tl,{placeholder:`Choose Role`})}),(0,H.jsx)(rl,{children:(0,H.jsxs)(el,{children:[(0,H.jsx)(il,{children:`Role`}),i?.map(e=>(0,H.jsx)($,{value:e.id,children:e.role},e.id))]})})]})})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(Z,{children:(0,H.jsx)(`div`,{className:`flex justify-between w-full`,children:(0,H.jsxs)(_,{type:`submit`,variant:`submit`,className:`rounded-full`,disabled:s,children:[(0,H.jsx)(pr,{}),` Add User`]})})})]})})})})}var Pm=O({username:Cf.shape.username,role:Cf.shape.role,newPassword:Cf.shape.password.or(w(``)).optional(),confirmPassword:Cf.shape.confirmPassword}).refine(e=>!e.newPassword||e.newPassword.length>=8,{error:`Password must be at least 8 characters long.`,path:[`password`]}).refine(e=>!e.newPassword||e.newPassword===e.confirmPassword,{error:`Passwords do not match.`,path:[`confirmPassword`]});function Fm({data:e,onUserUpdated:t}){let n=U(),{data:r}=be(Xp(n)),{mutate:i,isPending:a}=Of(),o=z({resolver:R(Pm),defaultValues:{username:e.username,role:e.role.role,newPassword:``,confirmPassword:``}}),s=(0,V.useCallback)(r=>{let a={username:e.username,role:r.role,...n};r.newPassword&&(a.password=r.newPassword),i(a,{onSuccess:()=>{o.reset(),L.success(`User edited successfully!`),t()}})},[o,i,e.username,n,t]);return(0,H.jsx)(W,{...o,children:(0,H.jsxs)(`form`,{id:`instance-edit-user-form`,name:`instance-edit-user-form`,onSubmit:o.handleSubmit(s),className:`grid gap-4 my-4`,children:[(0,H.jsx)(ho,{children:(0,H.jsx)(go,{children:`Edit User`})}),(0,H.jsx)(K,{control:o.control,name:`username`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Username`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`text`,enterKeyHint:`next`,autoComplete:`username`,disabled:!0,readOnly:!0,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:o.control,name:`newPassword`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Change Password`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`password`,enterKeyHint:`next`,autoComplete:`new-password`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:o.control,name:`confirmPassword`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Confirm Password`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`password`,enterKeyHint:`next`,autoComplete:`new-password`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:o.control,name:`role`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Role`}),(0,H.jsx)(V.Suspense,{fallback:(0,H.jsx)(Qc,{}),children:(0,H.jsx)(G,{children:(0,H.jsxs)($c,{...e,onValueChange:t=>e.onChange(t),children:[(0,H.jsx)(nl,{className:`w-full`,children:(0,H.jsx)(tl,{placeholder:`Choose Role`})}),(0,H.jsx)(rl,{children:(0,H.jsxs)(el,{children:[(0,H.jsx)(il,{children:`Role`}),r?.map(e=>(0,H.jsx)($,{value:e.id,children:e.role},e.id))]})})]})})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(Z,{children:(0,H.jsx)(`div`,{className:`flex justify-between w-full`,children:(0,H.jsxs)(_,{variant:`submit`,className:`rounded-full`,disabled:a,children:[(0,H.jsx)(pr,{}),` Save Changes`]})})})]})})}var Im=O({username:da,confirmUsernameForDeletion:k().nonempty({error:`Please type the username again to confirm deletion.`}).toLowerCase()}).refine(e=>e.username===e.confirmUsernameForDeletion,{error:`Username does not match.`,path:[`confirmUsernameForDeletion`]});function Lm({data:e,onUserDeleted:t}){let{mutate:n,isPending:r}=Af(),i=z({resolver:R(Im),defaultValues:{username:e.username,confirmUsernameForDeletion:``}}),a=fi(),o=(0,V.useCallback)(()=>{n({username:e.username,...a},{onSuccess:()=>{i.reset(),L.success(`User deleted successfully!`),t()}})},[e.username,i,n,a,t]);return(0,H.jsx)(W,{...i,children:(0,H.jsxs)(`form`,{id:`instance-delete-user-form`,name:`instance-delete-user-form`,onSubmit:i.handleSubmit(o),className:`grid gap-4 my-4`,children:[(0,H.jsx)(K,{control:i.control,name:`confirmUsernameForDeletion`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{className:`pb-1`,children:`Confirm Username`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`text`,enterKeyHint:`next`,autoComplete:`username`,...e})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(Z,{children:(0,H.jsx)(`div`,{className:`flex justify-between w-full`,children:(0,H.jsxs)(_,{variant:`destructive`,className:`rounded-full`,disabled:r||!i.formState.isValid,children:[(0,H.jsx)(Dr,{}),` Delete User`]})})})]})})}function Rm({closeModal:e,clusterId:t,instanceId:n,data:r,isModalOpen:i,onUserDeleted:a,onUserUpdated:o}){let s=l.checkForFabricConnect(n??t),c=Qt(n??t),u=!(!s&&c.user?.username===r.username);return(0,H.jsx)(lo,{onOpenChange:e,open:i,children:(0,H.jsxs)(mo,{className:`sm:max-w-[750px]`,children:[(0,H.jsx)(Fm,{data:r,onUserUpdated:o}),u&&(0,H.jsx)(Lm,{data:r,onUserDeleted:a})]})})}function zm({entityId:e,instanceClient:t}){return A({queryKey:[e,`list_users`],queryFn:()=>Bm({instanceClient:t}),refetchInterval:1e4})}async function Bm({instanceClient:e}){let{data:t}=await e.post(`/`,{operation:`list_users`});return t}function Vm(){let e=je(),{instanceId:t,clusterId:n,username:r}=j({strict:!1}),{data:i,refetch:a,isFetching:o,isRefetching:s}=be(zm(U())),c=(0,V.useMemo)(()=>i?.find(e=>e.username===r),[i,r]),l=(0,V.useCallback)(t=>{e({to:[r?`..`:``,t].filter(Boolean).join(`/`)})},[r,e]),u=!!r&&!!c,[d,f]=(0,V.useState)(!1),[p]=(0,V.useState)({attribute:`username`,descending:!1}),m=(0,V.useMemo)(()=>[{desc:p.descending,id:p.attribute}],[p]),h=(0,V.useCallback)(()=>{f(!0)},[f]),g=(0,V.useCallback)(()=>{a(),f(!1)},[a,f]),v=(0,V.useCallback)(e=>{l(e.original.username)},[l]),y=(0,V.useCallback)(()=>{l(void 0)},[l]),b=(0,V.useCallback)(()=>{a(),l(void 0)},[l,a]),x=(0,V.useCallback)(()=>{a(),l(void 0)},[l,a]),S=bu(a);return(0,H.jsxs)(V.Suspense,{fallback:(0,H.jsx)(Bo,{className:`flex flex-col items-center justify-center h-full`,text:`Loading...`}),children:[(0,H.jsxs)(hu,{data:i,isFetching:o||s,columns:Mm,onRowClick:v,sortingState:m,children:[(0,H.jsxs)(_,{variant:`defaultOutline`,onClick:S,accessKey:`r`,disabled:o||s,children:[(0,H.jsx)(dr,{}),` `,(0,H.jsxs)(`span`,{className:`hidden lg:inline-block`,children:[(0,H.jsx)(`u`,{children:`R`}),`efresh`]})]}),(0,H.jsxs)(_,{variant:`positiveOutline`,onClick:h,accessKey:`a`,disabled:d,children:[(0,H.jsx)(cr,{}),` `,(0,H.jsxs)(`span`,{children:[(0,H.jsx)(`u`,{children:`A`}),`dd`]})]})]}),(0,H.jsx)(Nm,{isModalOpen:d,onChangesSaved:g,setIsModalOpen:f}),u&&(0,H.jsx)(Rm,{instanceId:t,clusterId:n,closeModal:y,data:c,isModalOpen:u,onUserDeleted:x,onUserUpdated:b})]})}function Hm({context:e,params:t}){let n=pi(t);return e.queryClient.ensureQueryData(jp(n))}function Um(e){let t=P({getParentRoute:()=>e,path:`config`,head:()=>({meta:[{title:`Config — Harper Fabric`}]}),component:lp,loader:Hm}),n=P({getParentRoute:()=>t,path:`/`,head:()=>({meta:[{title:`Overview — Harper Fabric`}]}),component:Up,loader:Hm}),r=P({getParentRoute:()=>t,path:`roles`,head:()=>({meta:[{title:`Instance Roles — Harper Fabric`}]}),component:cm}),i=P({getParentRoute:()=>t,path:`roles/$roleId`,head:()=>({meta:[{title:`Instance Roles — Harper Fabric`}]}),component:cm}),a=P({getParentRoute:()=>t,path:`users`,head:()=>({meta:[{title:`Instance Users — Harper Fabric`}]}),component:Vm}),o=P({getParentRoute:()=>t,path:`users/$username`,head:()=>({meta:[{title:`Instance Users — Harper Fabric`}]}),component:Vm}),s=P({getParentRoute:()=>t,path:`domains`,head:()=>({meta:[{title:`Instance Domains — Harper Fabric`}]}),component:ap}),c=P({getParentRoute:()=>t,path:`ssh-keys`,head:()=>({meta:[{title:`SSH Keys — Harper Fabric`}]}),component:Am}),l=P({getParentRoute:()=>t,path:`ssh-keys/$keyName`,head:()=>({meta:[{title:`SSH Keys — Harper Fabric`}]}),component:Am}),u=P({getParentRoute:()=>t,path:`certificates`,head:()=>({meta:[{title:`Certificates — Harper Fabric`}]}),component:ip}),d=P({getParentRoute:()=>t,path:`certificates/$certName`,head:()=>({meta:[{title:`Certificates — Harper Fabric`}]}),component:ip});return t.addChildren([n,r,i,a,o,s,c,l,u,d])}function Wm({clusterId:e,databaseName:t,instanceId:n,organizationId:r,tableName:i}){let a=[`databases`,t,i].filter(Lr).join(`/`);return tu({organizationId:r,instanceId:n,clusterId:e},a)}function Gm({className:e,children:t,...n}){return(0,H.jsxs)(wt,{"data-slot":`scroll-area`,className:f(`relative`,e),...n,children:[(0,H.jsx)(Wt,{"data-slot":`scroll-area-viewport`,className:`focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1`,children:t}),(0,H.jsx)(Km,{}),(0,H.jsx)(Et,{})]})}function Km({className:e,orientation:t=`vertical`,...n}){return(0,H.jsx)(gt,{"data-slot":`scroll-area-scrollbar`,orientation:t,className:f(`flex touch-none p-px transition-colors select-none`,t===`vertical`&&`h-full w-2.5 border-l border-l-transparent`,t===`horizontal`&&`h-2.5 flex-col border-t border-t-transparent`,e),...n,children:(0,H.jsx)(Rt,{"data-slot":`scroll-area-thumb`,className:`bg-border relative flex-1 rounded-full`})})}async function qm({databaseName:e,tableName:t,primaryKey:n,replicated:r,instanceClient:i}){let{data:a}=await i.post(`/`,{operation:`create_table`,database:e,table:t,primary_key:n,replicated:r});return a}function Jm(){return F({mutationFn:qm})}var Ym=/^[\x20-\x2E|\x30-\x5F|\x61-\x7E]*$/,Xm=k().regex(Ym,{error:`Database name cannot include backticks or forward slashes.`}).max(75,{error:`Database name cannot be longer than 75 characters.`}),Zm=k().nonempty({error:`Table name is required.`}).regex(Ym,{error:`Table name cannot include backticks or forward slashes.`}).max(250,{error:`Table name cannot be longer than 250 characters.`}),Qm=O({databaseName:Xm,tableName:Zm,primaryKey:k().regex(Ym,{error:`Primary key cannot include backticks or forward slashes.`}).max(250,{error:`Primary key cannot be longer than 250 characters.`})});function $m({databaseName:e,onSelectTable:t}){let n=de(),r=U(),i=ae(),[a,o]=(0,V.useState)(!1),s=z({resolver:R(Qm),defaultValues:{databaseName:e||``,tableName:``,primaryKey:``}}),{mutate:c}=Jm(),l=async e=>{let a=e.databaseName||`data`,l=e.tableName;c({databaseName:a,tableName:l,primaryKey:e.primaryKey||`id`,...r,replicated:r.entityType===`cluster`},{onSuccess:async()=>{await n.invalidateQueries({queryKey:[r.entityId,`describe_all`],refetchType:`all`}),L.success(`Table ${l} created successfully`),o(!1),s.reset(),t(a,l),await i.invalidate()}})};return(0,H.jsxs)(lo,{open:a,onOpenChange:o,children:[(0,H.jsx)(uo,{asChild:!0,children:(0,H.jsx)(`div`,{className:`sticky bottom-0 py-4 bg-background/80 backdrop-blur-xs dark:bg-black/70`,children:(0,H.jsxs)(_,{variant:`positiveOutline`,className:`w-full rounded-full`,size:`lg`,accessKey:`t`,children:[(0,H.jsx)(cr,{}),(0,H.jsxs)(`span`,{children:[`Create a `,(0,H.jsx)(`u`,{children:`T`}),`able`]})]})})}),(0,H.jsxs)(mo,{className:`sm:max-w-[425px]`,children:[(0,H.jsxs)(ho,{children:[(0,H.jsx)(go,{children:`Create a New Table`}),(0,H.jsx)(_o,{children:`What would you like to create?`})]}),(0,H.jsx)(W,{...s,children:(0,H.jsxs)(`form`,{id:`instance-new-table-form`,name:`instance-new-table-form`,onSubmit:s.handleSubmit(l),className:`grid gap-6 text-popover-foreground`,children:[(0,H.jsx)(K,{control:s.control,name:`tableName`,render:({field:e})=>(0,H.jsxs)(q,{className:``,children:[(0,H.jsx)(J,{className:`pb-1`,children:`Table Name`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{...e,type:`text`,maxLength:Qm.shape.tableName.maxLength,autoFocus:!0,autoCapitalize:`off`,autoComplete:`off`,autoCorrect:`off`})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:s.control,name:`primaryKey`,render:({field:e})=>(0,H.jsxs)(q,{className:``,children:[(0,H.jsx)(J,{className:`pb-1`,children:`Primary Key`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{...e,placeholder:`id`,type:`text`,maxLength:Qm.shape.primaryKey.maxLength,autoCapitalize:`off`,autoComplete:`off`,autoCorrect:`off`})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:s.control,name:`databaseName`,render:({field:e})=>(0,H.jsxs)(q,{className:``,children:[(0,H.jsx)(J,{className:`pb-1`,children:`Database Name`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{...e,type:`text`,placeholder:`data`,maxLength:Qm.shape.databaseName.maxLength,autoCapitalize:`off`,autoComplete:`off`,autoCorrect:`off`})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(Z,{children:(0,H.jsxs)(_,{type:`submit`,variant:`submit`,className:`rounded-full`,children:[(0,H.jsx)(Cr,{}),`Create New Table`]})})]})})]})]})}function eh({instanceDatabaseMap:e}){let t=ae(),n=!e,r=j({strict:!1}),i=je(),a=Ei(),{databaseNames:o,tableNames:s}=(0,V.useMemo)(()=>({databaseNames:Object.keys(e||{}).sort(),tableNames:r.databaseName?Object.keys(e?.[r.databaseName]||[]).sort():[]}),[e,r.databaseName]),c=(0,V.useCallback)(n=>{let a=n?Object.keys(e?.[n]||[]).sort():[];r.databaseName?i({to:Wm({...r,databaseName:n,tableName:a[0]})}):t.invalidate()},[e,r,t,i]),l=(0,V.useCallback)((e,t)=>{i({to:Wm({...r,databaseName:e,tableName:t})})},[i,r]);return(0,H.jsxs)(`div`,{className:`pl-3`,children:[(0,H.jsx)(`h1`,{className:`pt-3 pb-3 text-3xl`,children:`Databases`}),n?(0,H.jsx)(Qc,{className:`w-full h-9 m-0 rounded-md`}):(0,H.jsx)(`div`,{className:`flex space-x-2`,children:(0,H.jsxs)($c,{name:`databaseSelect`,value:r.databaseName||``,disabled:o.length===0,onValueChange:c,children:[(0,H.jsx)(nl,{className:`w-full`,children:(0,H.jsx)(tl,{placeholder:`Select a Database`})}),(0,H.jsx)(rl,{children:(0,H.jsx)(el,{children:o.map(e=>(0,H.jsx)($,{value:e,children:e},e))})})]})}),n?(0,H.jsx)(Qc,{className:`w-full min-h-80 rounded-md mb-0`}):(0,H.jsxs)(Gm,{className:`border rounded-md min-h-80 border-grey-700 mt-4`,children:[s.length===0&&r.databaseName?.length?(0,H.jsxs)(`div`,{className:`w-full h-full text-center`,children:[(0,H.jsx)(`p`,{className:`py-6`,children:`No tables found in this database.`}),a&&(0,H.jsx)(`p`,{children:`Tap "Create a Table" below!`})]}):s.length===0&&!r.databaseName?.length?a?(0,H.jsxs)(`p`,{className:`pt-2 text-sm text-center`,children:[`Please `,o.length===0?`create`:`select`,` a table.`]}):(0,H.jsxs)(`p`,{className:`pt-2 text-sm text-center`,children:[`Please `,o.length===0?`ask your admin to create`:`select`,` a table.`]}):``,(0,H.jsx)(`ul`,{children:s.map(e=>(0,H.jsx)(`li`,{className:`flex items-center p-2 border-b hover:bg-accent border-border dark:hover:bg-grey-700/80 dark:border-grey-700`,children:(0,H.jsxs)(_,{onClick:()=>l(r.databaseName,e),size:`lg`,className:`items-center justify-between w-full bg-transparent border-none shadow-none hover:bg-transparent text-foreground`,children:[e,(0,H.jsx)(`span`,{children:r.tableName===e&&(0,H.jsx)(dn,{})})]})},e))})]}),a&&(0,H.jsx)($m,{databaseName:r.databaseName,onSelectTable:l})]})}function th(e){if(!e)return{dataTableColumns:[],primaryKey:``};let t=e.primary_key??e.hash_attribute??``,{attributes:n}=e,r=[],i=[],a=[],o=[];for(let e=n.length-1;e>=0;e--){let{attribute:t,type:s,is_primary_key:c,indexed:l}=n[e],u={header:t,accessorKey:t,enableSorting:!!(c||l),enableColumnFilter:!!(c||l),size:nh(s)};c?r.push(u):t===`__createdtime__`||t===`__updatedtime__`?o.push(u):u.enableSorting?i.push(u):a.push(u)}return{dataTableColumns:[...r,...i,...a,...o],primaryKey:t}}function nh(e){switch(e){case`Id`:case`ID`:return 1;case`Boolean`:return 1;case`Int`:case`Long`:case`Float`:case`BigInt`:return 1;default:return Math.round(window.innerWidth*.1)}}async function rh({databaseName:e,tableName:t,records:n,instanceClient:r}){let{data:i}=await r.post(`/`,{operation:`insert`,database:e,table:t,records:n});return i}function ih(){return F({mutationFn:rh})}function ah({isModalOpen:e,instanceTable:t,setIsModalOpen:n,refreshTable:r}){let i=ju(),{mutate:a,isPending:o}=ih(),s=U(),[c,l]=(0,V.useState)(!0),[u,f]=(0,V.useState)(),[p,m]=(0,V.useState)(!1),[h,g]=(0,V.useState)([]),v=(0,V.useMemo)(()=>{let e={};for(let n of t.attributes)n.is_primary_key||n.attribute===`__createdtime__`||n.attribute===`__updatedtime__`||(e[n.attribute]=oh(n.type));return JSON.stringify(e,null,4)},[t]),y=(0,V.useCallback)(e=>{m(!0),l(e.length===0)},[l]),b=(0,V.useCallback)(()=>{if(u&&c){let e=JSON.parse(u),i=Array.isArray(e)?e:[e],o=L.loading(`Adding ${i.length} records...`);a({...s,databaseName:t.schema,tableName:t.name,records:i},{onSuccess:e=>{r(),e.skipped_hashes?.length||n(!1),g(e.skipped_hashes),(e.skipped_hashes?.length>0?L.warning:L.success)(e.skipped_hashes?.length>0?`Warning!`:`Success!`,{id:o,description:(0,H.jsxs)(H.Fragment,{children:[e.inserted_hashes.length>0&&(0,H.jsxs)(`p`,{children:[`Added `,d(e.inserted_hashes.length,`record`,`records`)]}),e.skipped_hashes.length>0&&(0,H.jsxs)(`p`,{children:[`Skipped `,d(e.skipped_hashes.length,`record`,`records`)]})]})})}})}},[u,a,s,t.name,t.schema,c,r,n]),x=(0,V.useCallback)(e=>{e?.focus()},[]);return(0,H.jsx)(lo,{onOpenChange:n,open:e,children:(0,H.jsxs)(mo,{"aria-describedby":void 0,onEscapeKeyDown:e=>{p&&e.preventDefault()},children:[(0,H.jsx)(ho,{children:(0,H.jsxs)(go,{children:[`Add New `,t.name]})}),(t?.primary_key??t?.hash_attribute)&&(0,H.jsxs)(`div`,{className:`text-sm text-gray-500`,children:[`The primary key for this table is`,` `,(0,H.jsxs)(`strong`,{children:[`“`,t.primary_key??t.hash_attribute,`”`]}),`, and will auto-generate. You may manually add it if you want to specify its value.`]}),(0,H.jsx)(Nu,{className:`w-full h-96`,language:`json`,theme:i,value:v,onValidate:y,onChange:f,options:{minimap:{enabled:!1}},onMount:x}),(0,H.jsxs)(`div`,{className:`text-sm text-gray-500`,children:[(0,H.jsx)(`strong`,{children:`Provide an [array]`}),` if you want to add more than one record at a time.`]}),h.length>0&&(0,H.jsxs)(yp,{className:`mt-2`,children:[(0,H.jsx)(wr,{className:`w-4 h-4`}),(0,H.jsxs)(bp,{children:[`Skipped `,h.length===1?`Hash`:`Hashes`,` Detected`]}),(0,H.jsx)(xp,{className:`max-h-36 overflow-auto`,children:(0,H.jsx)(`ol`,{children:h.map(e=>(0,H.jsx)(`li`,{children:e},e))})})]}),(0,H.jsx)(Z,{children:(0,H.jsx)(`div`,{className:`flex justify-between w-full`,children:(0,H.jsxs)(_,{variant:`submit`,className:`rounded-full`,onClick:b,accessKey:`s`,disabled:!u||!c||o,children:[(0,H.jsx)(pr,{}),` `,(0,H.jsxs)(`span`,{children:[(0,H.jsx)(`u`,{children:`S`}),`ave Changes`]})]})})})]})})}function oh(e){switch(e){case`Date`:return new Date().toISOString();case`Id`:case`ID`:case`String`:return``;case`Boolean`:return!1;case`Int`:case`Long`:case`Float`:case`BigInt`:return 0;default:return null}}async function sh({databaseName:e,replicated:t,instanceClient:n}){let{data:r}=await n.post(`/`,{operation:`drop_database`,database:e,replicated:t});return r}function ch(){return F({mutationFn:sh})}function lh(e){let t=e;if(t?.focus)uh(t);else{let t=e;t?.target?.focus&&uh(t.target)}}function uh(e){m(1).then(()=>{e.focus?.()})}function dh(e,t){let[n,r]=(0,V.useState)({value:t});return Nd(e,(e,t)=>r({value:e,trigger:t}),[r]),n}function fh(e,t,n){Pd(e,t,n)}function ph(e,t,n){return r=>fh(e,t,n??r)}function mh(e,t,n){return(0,V.useCallback)(r=>{fh(e,t,n??r)},[e,t,n])}function hh({databaseName:e,onDeleted:t}){let{value:n,trigger:r}=dh(`ShowDeleteDatabase`,!1),i=(0,V.useCallback)(()=>{fh(`ShowDeleteDatabase`,!1),lh(r)},[r]),a=Ei(),o=de(),s=U(),c=ae(),{mutate:l,isPending:u}=ch(),d=(0,V.useCallback)(()=>{l({databaseName:e,...s,replicated:s.entityType===`cluster`},{onSuccess:async()=>{i(),await o.invalidateQueries({queryKey:[s.entityId,`describe_all`],refetchType:`all`}),await c.invalidate(),L.success(`Database ${e} dropped successfully`),t(`database`)}})},[i,e,l,s,t,o,c]);return!a||!e?(0,H.jsx)(H.Fragment,{}):(0,H.jsx)(vo,{typeOfThingBeingDeleted:`database`,nameOfThingBeingDeleted:e,transitiveVerb:`Drop`,presentParticiple:`Dropping`,isModalOpen:n,setIsModalOpen:i,deletionConfirmed:d,deletionPending:u})}async function gh({databaseName:e,tableName:t,replicated:n,instanceClient:r}){let{data:i}=await r.post(`/`,{operation:`drop_table`,database:e,table:t,replicated:n});return i}function _h(){return F({mutationFn:gh})}function vh({databaseName:e,tableName:t,onDeleted:n}){let{value:r,trigger:i}=dh(`ShowDeleteTable`,!1),a=(0,V.useCallback)(()=>{fh(`ShowDeleteTable`,!1),lh(i)},[i]),o=Ei(),s=de(),c=U(),l=ae(),{mutate:u,isPending:d}=_h(),f=(0,V.useCallback)(()=>{u({databaseName:e,tableName:t,...c,replicated:c.entityType===`cluster`},{onSuccess:async()=>{a(),await s.invalidateQueries({queryKey:[c.entityId,`describe_all`],refetchType:`all`}),await l.invalidate(),L.success(`Table ${t} dropped successfully`),n(`table`)}})},[a,e,u,c,n,s,l,t]);return!o||!e?(0,H.jsx)(H.Fragment,{}):(0,H.jsx)(vo,{typeOfThingBeingDeleted:`table`,nameOfThingBeingDeleted:`${e} > ${t}`,transitiveVerb:`Drop`,presentParticiple:`Dropping`,isModalOpen:r,setIsModalOpen:a,deletionConfirmed:f,deletionPending:d})}function yh({canEditRecords:e,canDeleteRecords:t,setIsModalOpen:n,isModalOpen:r,primaryKey:i,data:a,onSaveChanges:o,onDeleteRecord:s,isUpdateTableRecordsPending:c,isDeleteTableRecordsPending:l}){let u=ju(),[d,f]=(0,V.useState)(!0),[p,m]=(0,V.useState)(!1),[h,g]=(0,V.useState)(),v=(0,V.useMemo)(()=>{let e=a?.map(({__createdtime__:e,__updatedtime__:t,...n})=>n);return JSON.stringify(e,null,4)},[a]),y=(0,V.useCallback)(e=>{m(!0),f(e.length===0)},[f]);return(0,H.jsx)(lo,{onOpenChange:n,open:r,children:(0,H.jsxs)(mo,{"aria-describedby":void 0,autoFocus:e,onEscapeKeyDown:e?e=>{p&&e.preventDefault()}:void 0,children:[(0,H.jsx)(ho,{children:(0,H.jsxs)(go,{children:[e?`Edit`:`View`,` Row`]})}),a?(0,H.jsx)(Nu,{className:`w-full h-96`,language:`json`,theme:u,options:e?void 0:{readOnly:!0},value:v,onValidate:y,onChange:e=>{g(e)}}):(0,H.jsx)(Bo,{}),(0,H.jsx)(Z,{children:(0,H.jsxs)(`div`,{className:`flex justify-between w-full`,children:[t&&(0,H.jsxs)(_,{variant:`destructive`,className:`rounded-full`,type:`button`,autoFocus:!1,onClick:()=>{let e=a[0]?.[i];e&&s([e])},disabled:l,children:[(0,H.jsx)(Dr,{}),` Delete Row`]}),e&&(0,H.jsxs)(_,{variant:`submit`,className:`rounded-full`,autoFocus:!0,accessKey:`s`,onClick:()=>{h&&d?o(JSON.parse(h)):n(!1)},disabled:!d||c,children:[(0,H.jsx)(pr,{}),` `,(0,H.jsxs)(`span`,{children:[(0,H.jsx)(`u`,{children:`S`}),`ave Changes`]})]})]})})]})})}async function bh(e){let{database:t,table:n,fileData:r,instanceClient:i}=e,{data:a}=await i.post(`/`,{operation:`csv_data_load`,database:t,action:`insert`,table:n,data:r});return a}function xh(){return F({mutationFn:bh})}var Sh=O({fileData:k(),database:k(),table:k()});function Ch({setIsModalOpen:e,isModalOpen:t,onSaveChanges:n,database:r,table:i}){let[a,o]=(0,V.useState)(null),s=U(),{mutate:c,isPending:l}=xh(),u=e=>{if(!e.target.files)return;let t=e.target.files[0];if(t){let e=new FileReader;e.onload=e=>{let n=e.target?.result;typeof n==`string`&&(o(t),d.setValue(`fileData`,n))},e.readAsText(t)}},d=z({resolver:R(Sh),defaultValues:{database:r,table:i,fileData:``}}),f=e=>{c({fileData:e.fileData,database:r,table:i,...s},{onSuccess:({message:e})=>{d.reset(),o(null),n(e)}})};return(0,H.jsx)(lo,{onOpenChange:()=>{e(!1),d.reset()},open:t,children:(0,H.jsxs)(mo,{children:[(0,H.jsxs)(ho,{children:[(0,H.jsx)(go,{children:`Import CSV`}),(0,H.jsx)(_o,{children:`Upload a CSV file to import data into the table.`})]}),(0,H.jsx)(W,{...d,children:(0,H.jsxs)(`form`,{id:`instance-import-csv-form`,name:`instance-import-csv-form`,onSubmit:d.handleSubmit(f),children:[(0,H.jsx)(`div`,{className:`w-full`,children:(0,H.jsx)(K,{control:d.control,name:`fileData`,render:({field:e})=>(0,H.jsxs)(q,{className:`relative`,children:[(0,H.jsx)(J,{htmlFor:`dropzone-file`,className:`flex flex-col items-center justify-center w-full h-64 border-2 border-border border-dashed rounded-lg cursor-pointer bg-muted dark:bg-grey-700 hover:bg-muted/80 dark:hover:bg-grey-700/80`,children:(0,H.jsx)(G,{children:(0,H.jsxs)(`div`,{children:[(0,H.jsxs)(`div`,{className:`flex flex-col items-center justify-center pt-5 pb-6`,children:[(0,H.jsx)(Mn,{className:`text-muted-foreground`,size:48}),(0,H.jsx)(`p`,{className:`mb-2 text-sm text-muted-foreground`,children:a?a.name:(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`span`,{className:`font-semibold`,children:`Click to upload`}),` or drag and drop a CSV File`]})})]}),(0,H.jsx)(X,{id:`dropzone-file`,type:`file`,className:`opacity-0 w-full h-full absolute left-0 top-0 cursor-pointer`,accept:`.csv`,name:e.name,ref:e.ref,onBlur:e.onBlur,disabled:e.disabled,onChange:u})]})})}),(0,H.jsx)(Y,{})]})})}),(0,H.jsx)(Z,{className:`mt-4`,children:(0,H.jsxs)(_,{variant:`submit`,className:`rounded-full`,accessKey:`u`,disabled:!a||l,children:[(0,H.jsx)(pr,{}),(0,H.jsxs)(`span`,{children:[(0,H.jsx)(`u`,{children:`U`}),`pload CSV`]})]})})]})})]})})}function wh(e=!1){let[t,n]=(0,V.useState)(e),r=(0,V.useCallback)(e=>{e?.preventDefault?.(),n(e=>!e)},[]),i=(0,V.useCallback)(e=>{e?.preventDefault?.(),n(!0)},[]),a=(0,V.useCallback)(e=>{e?.preventDefault?.(),n(!1)},[]);return(0,V.useMemo)(()=>({toggled:t,setToggled:n,toggle:r,toggleOn:i,toggleOff:a}),[r,n,a,i,t])}async function Th({databaseName:e,instanceClient:t}){let{data:n}=await t.post(`/`,{operation:`cleanup_orphan_blobs`,database:e});return n}function Eh(){return F({mutationFn:Th})}async function Dh({databaseName:e,tableName:t,hashValues:n,instanceClient:r}){let{data:i}=await r.post(`/`,{operation:`delete`,database:e,table:t,hash_values:n});return i}function Oh(){return F({mutationFn:Dh})}async function kh({databaseName:e,tableName:t,instanceClient:n}){let{data:r}=await n.post(`/`,{operation:`describe_table`,database:e,table:t});return r}function Ah(e){return A({queryKey:[e.entityId,e.databaseName,e.tableName,`describe_table`],queryFn:()=>kh(e),staleTime:6e4,gcTime:5e3,enabled:!!e.databaseName&&!!e.tableName,retry:!1})}var jh=[`1`,`bet`,`k`,`ok`,`si`,`tru`,`true`,`yes`,`yup`];function Mh(e){let t=e.toLowerCase().trim();return jh.includes(t)}function Nh(e){return!isNaN(e)&&!isNaN(parseFloat(e))}function Ph(e){if(e.startsWith(`0.`)&&Nh(e))return!0;let t=e.toUpperCase().includes(`E`);return!(e!==`0`&&e.startsWith(`0`))&&!t&&Nh(e)}var Fh={true:!0,TRUE:!0,false:!1,FALSE:!1,undefined:null,null:null,NULL:null,NaN:NaN},Ih=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/;function Lh(e){return e==null||e===``||typeof e!=`string`?e:Fh[e]===void 0?Ph(e)?Number(e):Ih.test(e)?new Date(e):e:Fh[e]}function Rh(e){let{enabled:t,entityId:n,databaseName:r,tableName:i,conditions:a,sort:o,pageIndex:s,pageSize:c,onlyIfCached:l}=e;return A({enabled:t&&!!a,queryKey:[n,r,i,`search_by_conditions`,a,o.attribute||`default`,o.descending||!1,s||0,c||0,l],staleTime:6e4,gcTime:5e3,retry:!1,queryFn:()=>zh(e)})}function zh({instanceClient:e,databaseName:t,tableName:n,conditions:r,sort:i,pageIndex:a,pageSize:o,onlyIfCached:s,headers:c}){return e.post(`/`,{operation:`search_by_conditions`,get_attributes:[`*`],database:t,table:n,conditions:r,sort:i.attribute.length?i:void 0,offset:a*o,limit:o,onlyIfCached:s,noCacheStore:s},{timeout:0,headers:c})}function Bh(e,t,n){return t.split(/ & /).map(t=>Vh(e,t,n))}function Vh(e,t,n){t.startsWith(e)&&(t=t.substring(e.length));let{comparator:r,value:i}=Wh(t);switch(n?.type){case`ID`:case`String`:return{search_attribute:e,search_type:r,search_value:i};case`Int`:case`BigInt`:case`Long`:case`Float`:{let t=n.type.includes(`Int`)?parseInt(i,10):parseFloat(i);if(isNaN(t))throw Error(`${i} does not appear to be a valid number.`);return{search_attribute:e,search_type:r,search_value:t}}case`Date`:return{search_attribute:e,search_type:r,search_value:new Date(i).toISOString()};case`Boolean`:return{search_attribute:e,search_type:r,search_value:Mh(i)};case`Blob`:case`Bytes`:return{search_attribute:e,search_type:r,search_value:i};default:return{search_attribute:e,search_type:r,search_value:Lh(i)}}}var Hh={"=== ":`equals`,"== ":`eq`,"equals ":`equals`,"equal ":`equals`,"eq ":`eq`,"!== ":`not_equal`,"!= ":`ne`,"notequals ":`not_equal`,"notequal ":`not_equal`,"ne ":`ne`},Uh={">":`greater_than`,g:`greater_than`,gt:`greater_than`,"=gt":`greater_than`,greater:`greater_than`,greaterthan:`greater_than`,">=":`greater_than_equal`,ge:`greater_than_equal`,"=ge":`greater_than_equal`,gte:`greater_than_equal`,greaterorequal:`greater_than_equal`,greaterthanequal:`greater_than_equal`,greaterthanorequal:`greater_than_equal`,"<":`less_than`,l:`less_than`,lt:`less_than`,"=lt":`less_than`,less:`less_than`,lessthan:`less_than`,"<=":`less_than_equal`,lte:`less_than_equal`,le:`less_than_equal`,"=le":`less_than_equal`,lessorequal:`less_than_equal`,lessthanequal:`less_than_equal`,lessthanorequal:`less_than_equal`};function Wh(e){let t=e.toLowerCase(),n=t.match(/^ *([>=<]+[a-z]*[_ ]*|[a-z]+[>=<]+[_ ]*|[a-z]+[_ ]+)([\d._:tz-]+) *$/);if(n){let e=n[1].replace(/[_ ]+/g,``).replace(/^([a-z]+)=$/g,`$1`),t=n[2],r=Uh[e];if(r)return{comparator:r,value:t}}for(let n in Hh)if(t.startsWith(n))return{comparator:Hh[n],value:e.slice(n.length)};return t.endsWith(`*`)?{comparator:`starts_with`,value:e.slice(0,-1)}:{comparator:`equals`,value:e}}function Gh({enabled:e,entityId:t,instanceClient:n,databaseName:r,tableName:i,ids:a}){return A({queryKey:[t,`search_by_id`,r,i,a],queryFn:()=>n.post(`/`,{get_attributes:[`*`],ids:a,noCacheStore:!0,onlyIfCached:!0,operation:`search_by_id`,database:r,table:i}),enabled:e&&!!a?.length,retry:!1})}async function Kh(e){let{databaseName:t,tableName:n,records:r,instanceClient:i}=e,{data:a}=await i.post(`/`,{operation:`update`,database:t,table:n,records:r});return a}function qh(){return F({mutationFn:Kh})}function Jh(e){e.stopPropagation()}var Yh=re(k(),k());function Xh({applyFilters:e,columnFiltersForm:t,headerGroups:n}){let r=(0,V.useCallback)(t=>{if(t.key===`Enter`)return t.preventDefault(),e(),!1},[e]);return(0,H.jsx)(lu,{children:(0,H.jsx)(W,{...t,children:n.map(e=>(0,H.jsx)(du,{className:`border-none`,children:e.headers.map(e=>(0,H.jsx)(mu,{style:{width:`${e.column.getSize()}px`},children:e.column.columnDef.enableColumnFilter&&(0,H.jsx)(K,{control:t.control,name:e.id,render:({field:e})=>(0,H.jsxs)(q,{className:`border-r-1 border-r-black`,children:[(0,H.jsx)(G,{children:(0,H.jsx)(X,{...e,type:`text`,autoCapitalize:`none`,autoComplete:`off`,className:`rounded-none`,onKeyDown:r,value:e.value??``})}),(0,H.jsx)(Y,{})]})})},e.id))},e.id))})})}function Zh({columns:e,columnVisibility:t,setColumnVisibility:n}){let r=(0,V.useMemo)(()=>e.map(e=>typeof e.header==`string`?e.header:void 0).filter(Lr),[e]),i=(0,V.useCallback)((e,r)=>{n({...t,[e]:r})},[t,n]);return(0,H.jsxs)(bo,{children:[(0,H.jsx)(xo,{asChild:!0,children:(0,H.jsxs)(_,{variant:`ghost`,children:[(0,H.jsx)(Nn,{className:`inline-block `}),`Columns`]})}),(0,H.jsx)(So,{children:r.map(e=>(0,H.jsx)(Qh,{columnHeader:e,isChecked:t[e]??!0,toggleColumn:i},e))})]})}function Qh({columnHeader:e,isChecked:t,toggleColumn:n}){return(0,H.jsx)(wo,{checked:t,onCheckedChange:(0,V.useCallback)(t=>{n(e,t)},[e,n]),onSelect:e=>e.preventDefault(),children:e})}function $h({className:e}){return(0,H.jsx)(Zn,{className:T(`animate-spin`,e)})}function eg({applyFilters:e,columnFiltersForm:t,columns:n,columnVisibility:r,data:i,isFetching:a,onColumnClick:o,onRowClick:s,pageIndex:c,pageSize:l,primaryKey:u,setPageIndex:d,setPageSize:f,filtersToggled:p,totalPages:m,totalRecords:h}){let g=ye({data:i||[],columns:n,manualPagination:!0,enableColumnResizing:!0,columnResizeMode:`onEnd`,pageCount:m,defaultColumn:{minSize:1},state:{columnVisibility:r},rowCount:h,getCoreRowModel:we(),getPaginationRowModel:De()}),v=(0,V.useCallback)(()=>{d(c-1)},[c,d]),y=(0,V.useCallback)(()=>{d(c+1)},[c,d]);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(cu,{containerClassName:`rounded-md bg-card dark:bg-black-dark grow max-h-[calc(100vh-128px-16px-112px-80px)]`,children:[(0,H.jsx)(lu,{children:g.getHeaderGroups().map(e=>(0,H.jsx)(du,{className:`border-none`,children:e.headers.map(e=>(0,H.jsx)(pu,{header:e,onColumnClick:o},e.id))},e.id))}),p&&(0,H.jsx)(Xh,{applyFilters:e,columnFiltersForm:t,headerGroups:g.getHeaderGroups()}),(0,H.jsx)(uu,{className:`bg-background dark:bg-black border border-border dark:border-grey-700`,children:g.getRowModel().rows?.length?g.getRowModel().rows.map(e=>(0,H.jsx)(tg,{row:e,onRowClick:s,primaryKey:u},e.id)):(0,H.jsx)(du,{children:(0,H.jsx)(mu,{colSpan:n.length,className:`h-24 text-center`,children:a||i===void 0?(0,H.jsx)($h,{className:`opacity-50 inline-block`}):(0,H.jsx)(`span`,{children:`No results.`})})})})]}),(0,H.jsxs)(`div`,{className:`flex items-center justify-end py-4 space-x-2 pr-4`,children:[(0,H.jsxs)(_,{variant:`defaultOutline`,size:`sm`,onClick:v,className:`select-none`,disabled:c===0,children:[(0,H.jsx)(un,{}),`Previous`]}),(0,H.jsx)(`div`,{className:`grow`}),(0,H.jsxs)(`div`,{className:`text-center`,children:[(0,H.jsx)(`dt`,{className:`font-medium text-gray-500 text-sm/6 dark:text-gray-400`,children:`Records`}),(0,H.jsx)(`dd`,{className:`font-semibold tracking-tight`,children:h===void 0?(0,H.jsx)(Qc,{}):Cl(h)})]}),h!==void 0&&h>0&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{children:(0,H.jsxs)($c,{defaultValue:l.toString(),onValueChange:e=>{f(Number(e))},children:[(0,H.jsx)(nl,{className:`h-10 w-20`,children:(0,H.jsx)(tl,{})}),(0,H.jsx)(rl,{side:`top`,children:[20,50,100,250].map(e=>(0,H.jsx)($,{value:`${e}`,children:e},e))})]})}),m!==void 0&&m>1&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`div`,{className:`text-center`,children:[(0,H.jsx)(`dt`,{className:`font-medium text-gray-500 text-sm/6 dark:text-gray-400`,children:`Pages`}),(0,H.jsx)(`dd`,{className:`font-semibold tracking-tight`,children:Cl(m)})]}),(0,H.jsxs)(`div`,{className:`text-center`,children:[(0,H.jsx)(`dt`,{className:`font-medium text-gray-500 text-sm/6 dark:text-gray-400`,children:`Page`}),(0,H.jsx)(`dd`,{className:`font-semibold tracking-tight`,children:Cl(c+1)})]})]})]}),(0,H.jsx)(`div`,{className:`grow`}),(0,H.jsxs)(_,{variant:`defaultOutline`,size:`sm`,onClick:y,className:`select-none`,disabled:m===void 0||c===m-1,children:[`Next`,(0,H.jsx)(dn,{})]})]})]})}function tg({row:e,primaryKey:t,onRowClick:n}){let r=(0,V.useMemo)(()=>{let n=e.original,r=n&&n.message===`This entry has expired`,i=e.getVisibleCells();return console.log(`primaryKey, visibleCells`,t,i),r?i[0]?.column?.id===t?[(0,H.jsx)(ng,{cell:i[0]},i[0].id),(0,H.jsx)(rg,{colSpan:i.length-1},`expired`)]:[(0,H.jsx)(rg,{colSpan:i.length},`expired`)]:i.map(e=>(0,H.jsx)(ng,{cell:e},e.id))},[e,t]);return(0,H.jsx)(du,{"data-state":e.getIsSelected()&&`selected`,onClick:()=>n?.(e),className:f(`hover:bg-muted/10 data-[state=selected]:bg-muted`,n&&`cursor-pointer`),children:r})}function ng({cell:e}){return(0,H.jsx)(mu,{style:{width:`${e.column.getSize()}px`},className:`px-2 py-2 overflow-x-hidden max-w-32 text-ellipsis whitespace-nowrap`,children:e.getValue()==`[object Object]`?JSON.stringify(e.getValue()):Ee(e.column.columnDef.cell,e.getContext())})}function rg({colSpan:e}){return(0,H.jsx)(mu,{colSpan:e,className:`px-2 py-2 overflow-x-hidden max-w-32 text-ellipsis whitespace-nowrap`,children:(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:`This entry has expired`})})}function ig({instanceDatabaseMap:e,databaseName:t,tableName:n}){let r=j({strict:!1}),i=je(),a=U(),{clusterId:o,instanceId:s}=r,{toggled:c,toggle:l}=wh(!0),u=Xt(),d=Di(s??o,t,n,`insert`),f=Di(s??o,t,n,`update`),p=Di(s??o,t,n,`delete`),m=Ei(),{data:h}=M(Ah({...a,databaseName:t,tableName:n})),g=(0,V.useMemo)(()=>$o(h?.attributes??[],`attribute`),[h]),[v,y]=jd(null,r),[b,x]=(0,V.useState)(!1),S=(0,V.useMemo)(()=>(t?Object.keys(e?.[t]||[]).sort():[]).length===1,[e,t]),{toggled:C,toggleOn:ee,toggleOff:w}=wh(!1),T=z({resolver:R(Yh)}),{reset:E}=T,D=T.watch(),[te,ne]=jd(null,[r.clusterId,r.instanceId,t,n]),O=(0,V.useCallback)(()=>{let e=[];for(let t in D)if(D[t]?.length)try{e.push(...Bh(t,D[t],g[t]))}catch(e){L.error(String(e))}ne(e.length?e:null),E({...D})},[g,E,D]),k=(0,V.useCallback)(()=>{E({},{keepValues:!1,keepDirtyValues:!1,keepDefaultValues:!1}),E(),ne(null),w()},[w,E]);(0,V.useEffect)(function(){return k()},[r,k]);let{dataTableColumns:re,primaryKey:A}=th(h),[ie,ae]=(0,V.useState)(!1),[oe,se]=(0,V.useState)(!1),[ce,le]=jd({attribute:A,descending:!1},r),[ue,fe]=jd(0,[t,n]),[N,P]=(0,V.useState)(20),pe=h?.record_count,me=h?.record_count?Math.ceil(h.record_count/N):0,he=C&&!!te,ge={...a,enabled:!he&&!!A,databaseName:t,tableName:n,searchAttribute:A,sort:ce,pageSize:N,pageIndex:ue,onlyIfCached:c},_e=nf(ge),{data:ve,isFetching:ye}=M(_e),be={...a,enabled:he&&!!A,databaseName:t,tableName:n,conditions:te,sort:ce,pageSize:N,pageIndex:ue,onlyIfCached:c},F=Rh(be),{data:xe,isFetching:Se}=M(F),Ce=he?xe:ve,we=ye||Se,{data:Te}=M(Gh({...a,enabled:b,databaseName:t,tableName:n,ids:v})),{mutate:Ee,isPending:De}=qh(),{mutate:Oe,isPending:ke}=Oh(),{mutate:Ae,isPending:Me}=Eh(),Ne=de(),Pe=(0,V.useCallback)(()=>Ne.invalidateQueries({queryKey:[a.entityId,t,n]}),[Ne,a.entityId,t,n]),Fe=(0,V.useCallback)(async()=>{confirm(`Are you sure you want to cleanup orphan blobs for database "${t}"?`)&&Ae({...a,databaseName:t},{onSuccess:e=>{L.success(e.message||`Orphan blobs cleanup started successfully`),Pe()},onError:e=>{L.error(e instanceof Error?e.message:`Failed to cleanup orphan blobs`)}})},[Ae,t,a,Pe]),[Ie,Le]=(0,V.useState)(!1),Re=(0,V.useCallback)(async()=>{if(!A)return;let e=L.loading(`Loading CSV...`);Le(!0);let r={pageIndex:0,pageSize:1e6,headers:{Accept:`text/csv`}},i=await(he?zh({...be,...r}):rf({...ge,...r}));L.loading(`Preparing CSV...`,{id:e});let a=i.data,o=new Blob([a],{type:`text/csv`}),s=URL.createObjectURL(o),c=document.createElement(`a`);c.href=s,c.setAttribute(`download`,`${t}.${n}.${new Date().toISOString()}.csv`),c.click(),L.success(`CSV Exported!`,{id:e}),Le(!1)},[t,n,_e,F]),ze=(0,V.useCallback)(e=>{Ee({...a,databaseName:t,tableName:n,records:e},{onSuccess:()=>{Pe(),x(!1),L.success(`Record updated successfully`)}})},[Ee,a,t,n,Pe]),Be=(0,V.useCallback)(e=>{Oe({...a,databaseName:t,tableName:n,hashValues:e},{onSuccess:()=>{Pe(),x(!1),L.success(`Record deleted successfully`)}})},[Oe,a,t,n,Pe]),Ve=(0,V.useCallback)(e=>{Pe(),se(!1),L.success(`${e}. Please wait a few moments then refresh the table.`)},[Pe]),He=e=>{y([e.original[A]]),x(!b)},Ue=(e,t)=>{le({attribute:e,descending:!t})},We=bu(Pe),Ge=(0,V.useCallback)(()=>{ae(!0)},[ae]),Ke=(0,V.useCallback)(()=>{se(!0)},[se]),qe=(0,V.useCallback)(e=>void i({to:e===`table`?`../`:`../../`}),[i]),[Je,Ye]=zd(`ColumnDisplayed/${t}/${n}`,{}),Xe=mh(`ShowDeleteTable`,!0),Ze=mh(`ShowDeleteDatabase`,!0);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`div`,{className:`flex flex-col md:flex-row items-center justify-between space-y-3 md:space-y-0 md:space-x-3 pt-15 pb-4 pr-4`,children:[(0,H.jsxs)(`div`,{className:`flex space-x-2`,children:[d&&(0,H.jsxs)(_,{variant:`positiveOutline`,onClick:Ge,disabled:ie,accessKey:`n`,children:[(0,H.jsx)(cr,{}),(0,H.jsxs)(`span`,{children:[`Add `,(0,H.jsx)(`u`,{children:`N`}),`ew Record(s)`]})]}),d&&(0,H.jsxs)(_,{variant:`positiveOutline`,onClick:Ke,disabled:oe,accessKey:`c`,children:[(0,H.jsx)(Mn,{}),(0,H.jsxs)(`span`,{children:[`Import `,(0,H.jsx)(`u`,{children:`C`}),`SV`]})]}),(0,H.jsxs)(_,{variant:`positiveOutline`,onClick:Re,disabled:Ie,accessKey:`e`,children:[(0,H.jsx)(jn,{}),(0,H.jsxs)(`span`,{children:[(0,H.jsx)(`u`,{children:`E`}),`xport CSV`]})]})]}),(0,H.jsxs)(`div`,{className:`flex space-x-2`,children:[C&&te&&(0,H.jsxs)(_,{type:`button`,variant:`ghost`,onClick:k,accessKey:`f`,children:[(0,H.jsx)(Bn,{className:`inline-block `}),(0,H.jsxs)(`span`,{children:[`Clear `,(0,H.jsx)(`u`,{children:`F`}),`ilters`]})]}),C&&T.formState.isDirty&&(0,H.jsxs)(_,{variant:`default`,onClick:O,children:[(0,H.jsx)(zn,{className:`inline-block `}),`Apply Filters`]}),C&&!te&&(0,H.jsxs)(_,{variant:`ghost`,onClick:w,accessKey:`f`,children:[(0,H.jsx)(Bn,{className:`inline-block `}),(0,H.jsxs)(`span`,{children:[`Hide `,(0,H.jsx)(`u`,{children:`F`}),`ilters`]})]}),!C&&(0,H.jsxs)(_,{variant:`ghost`,onClick:ee,accessKey:`f`,children:[(0,H.jsx)(Vn,{className:`inline-block `}),(0,H.jsxs)(`span`,{children:[`Show `,(0,H.jsx)(`u`,{children:`F`}),`ilters`]})]}),(0,H.jsx)(_,{variant:`defaultOutline`,onClick:We,disabled:we,children:(0,H.jsx)(dr,{})}),(0,H.jsx)(Zh,{columns:re,columnVisibility:Je,setColumnVisibility:Ye}),(0,H.jsxs)(bo,{children:[(0,H.jsx)(xo,{asChild:!0,disabled:!e,children:(0,H.jsx)(_,{variant:`ghost`,size:`icon`,disabled:!e,children:(0,H.jsx)(Ln,{"aria-label":`Table options`})})}),(0,H.jsxs)(So,{side:`bottom`,align:`end`,children:[(0,H.jsxs)(Co,{className:`focus:bg-primary/70 focus:text-white`,onClick:l,children:[c?(0,H.jsx)(En,{className:`text-green`}):(0,H.jsx)(Dn,{}),`Only If Cached`,(0,H.jsx)(I,{to:`https://docs.harperdb.io/docs/developers/applications/caching#cache-control-header`,target:`_blank`,rel:`noopener noreferrer`,onClick:Jh,children:(0,H.jsx)(Rn,{})})]}),m&&u&&!!s&&(0,H.jsxs)(Co,{className:`focus:bg-yellow/70 focus:text-white`,onClick:Fe,disabled:Me,children:[(0,H.jsx)(_n,{className:`text-yellow `}),`Cleanup Orphan Blobs`]}),m&&!S&&(0,H.jsxs)(Co,{className:`focus:bg-red/70 focus:text-white`,onClick:Xe,children:[(0,H.jsx)(Dr,{className:`inline-block `}),`Drop Table`]}),m&&(0,H.jsxs)(Co,{className:`focus:bg-red/70 focus:text-white`,onClick:Ze,children:[(0,H.jsx)(Er,{}),`Drop Database`]})]})]})]})]}),(0,H.jsx)(eg,{primaryKey:A,data:Ce?.data,isFetching:we,filtersToggled:C,columns:re,columnVisibility:Je,onRowClick:He,onColumnClick:Ue,totalPages:me,totalRecords:pe,pageIndex:ue,pageSize:N,columnFiltersForm:T,applyFilters:O,setPageIndex:fe,setPageSize:P}),d&&h&&ie&&(0,H.jsx)(ah,{instanceTable:h,isModalOpen:ie,refreshTable:Pe,setIsModalOpen:ae}),(0,H.jsx)(yh,{canEditRecords:f,canDeleteRecords:p,setIsModalOpen:x,isModalOpen:b,primaryKey:A,data:Te?.data,onSaveChanges:ze,onDeleteRecord:Be,isUpdateTableRecordsPending:De,isDeleteTableRecordsPending:ke}),(0,H.jsx)(hh,{databaseName:t,onDeleted:qe}),(0,H.jsx)(vh,{databaseName:t,tableName:n,onDeleted:qe}),(0,H.jsx)(Ch,{isModalOpen:oe,setIsModalOpen:se,onSaveChanges:Ve,database:t,table:n})]})}function ag(){let e=j({strict:!1}),{data:t}=M(om(U())),n,r;if(t){e.databaseName||(n=Object.keys(t).sort()[0]);let i=e.databaseName??n;!e.tableName&&i&&t[i]&&(r=Object.keys(t[i]).sort()[0])}return n||r?(0,H.jsx)(me,{to:Wm({...e,databaseName:n??e.databaseName,tableName:r}),replace:!0}):(0,H.jsxs)(`main`,{className:`grid grid-cols-1 gap-4 md:grid-cols-12 min-h-[calc(100vh-(--spacing(36)))]`,children:[(0,H.jsx)(`section`,{className:`col-span-1 text-foreground md:col-span-4 lg:col-span-3`,children:(0,H.jsx)(eh,{instanceDatabaseMap:t})}),(0,H.jsx)(`section`,{className:`col-span-1 text-foreground md:col-span-8 lg:col-span-9 flex flex-col`,children:e.databaseName&&e.tableName&&(0,H.jsx)(ig,{instanceDatabaseMap:t,databaseName:e.databaseName,tableName:e.tableName})})]})}function og(e){return P({getParentRoute:()=>e,path:`/databases/{-$databaseName}/{-$tableName}`,head:()=>({meta:[{title:`Databases — Harper Fabric`}]}),component:ag})}var sg={className:`text-primary font-semibold bg-primary/10 rounded-md dark:text-white dark:bg-white/10`};function cg(){let e=Ti(),t=j({strict:!1}),{version:n}=Ae({strict:!1}),r=ts(`4.6.0`,n)&&e,i=ts(`4.7.0-beta.7`,n),{data:a}=M(Lf(U(),r)),o=a?.restartRequired??!1,s=(0,V.useMemo)(()=>[e&&{to:tu(t),activeOptions:{exact:!0},name:`Applications`,shortName:`Apps`,icon:(0,H.jsx)(or,{className:`inline-block`})},{to:tu(t,`databases`),icon:(0,H.jsx)(In,{className:`inline-block`}),name:`Databases`},e&&i&&{to:tu(t,`apis`),name:`APIs`,icon:(0,H.jsx)(gr,{className:`inline-block`})},e&&r&&{to:tu(t,`status`),icon:(0,H.jsx)(Hn,{className:`inline-block`}),name:`Status`},e&&{to:tu(t,`logs`),icon:(0,H.jsx)(ar,{className:`inline-block`}),name:`Logs`},e&&{to:tu(t,`config`),icon:(0,H.jsx)(_r,{className:`inline-block`}),name:`Config`}].filter(Lr),[e,t,i,r]);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(lg,{links:s,restartRequired:o}),(0,H.jsx)(ug,{links:s,restartRequired:o})]})}function lg({links:e,restartRequired:t}){return(0,H.jsxs)(`div`,{className:`hidden md:flex items-center justify-between h-full text-sm text-foreground`,children:[(0,H.jsx)(Xi,{restartRequired:t}),(0,H.jsx)(`div`,{className:`flex space-x-2`,children:e.map(({shortName:e,...t})=>(0,H.jsxs)(I,{className:`p-2 text-center text-muted-foreground hover:text-foreground`,activeProps:sg,...t,children:[t.icon,(0,H.jsx)(`span`,{className:`hidden xl:inline-block ml-1`,children:t.name}),e&&(0,H.jsx)(`span`,{className:`visible xl:hidden ml-1`,children:e})]},t.to))})]})}function ug({links:e,restartRequired:t}){return(0,H.jsx)(H.Fragment,{children:(0,H.jsxs)(`div`,{className:`flex md:hidden items-center justify-between h-full px-2 text-foreground`,children:[(0,H.jsx)(Xi,{restartRequired:t}),(0,H.jsxs)(bo,{children:[(0,H.jsx)(xo,{asChild:!0,children:(0,H.jsx)(_,{variant:`ghost`,className:`p-0`,children:(0,H.jsx)(nr,{className:`h-8 w-8`})})}),(0,H.jsxs)(So,{children:[(0,H.jsx)(To,{children:`Instance Menu`}),(0,H.jsx)(Eo,{}),e.map(e=>(0,H.jsx)(Co,{asChild:!0,children:(0,H.jsx)(I,{to:e.to,activeProps:sg,children:e.name})},e.to))]})]})]})})}(0,V.lazy)(()=>Pe(()=>import(`./FloatingChat-DTmhPsrm.js`).then(e=>({default:e.FloatingChat})),__vite__mapDeps([21,2,1,22,17,10])));function dg(){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`nav`,{className:`fixed top-20 w-full z-39 h-12 md:px-12 bg-violet-50 border-b border-violet-100 dark:bg-grey-700 dark:border-none`,children:(0,H.jsx)(cg,{})}),(0,H.jsx)(`div`,{className:`mt-32 min-h-[calc(100vh-(--spacing(32)))]`,children:(0,H.jsx)(Te,{})}),!1]})}function fg(e){switch(e){case`local`:return P({getParentRoute:()=>Wd,id:`_instanceLayout`,component:dg,loader:Hm});case`cluster`:return P({getParentRoute:()=>Yd,id:`_instanceLayout`,component:dg,beforeLoad:pg,loader:Hm});case`instance`:return P({getParentRoute:()=>Yd,path:`instance/$instanceId`,component:dg,beforeLoad:pg,loader:Hm})}}async function pg({context:e,params:t}){let n=e.authentication[t.instanceId||t.clusterId];if(n?.isLoading||n?.user)return;let r=e.authentication[h];if(r?.isLoading)return;let{update:i}=t.instanceId?wi(r.user,t.organizationId,t.clusterId):Si(r.user,t.organizationId,t.clusterId);if(i){let e=t.instanceId||t.clusterId,n=o({id:e,forceFabricConnect:!0});try{let t=await g({instanceClient:n});l.setUserForIdAndKey(e,n.defaults.baseURL,t),l.flagForFabricConnect(e,!0);return}catch(e){console.debug(`Fabric Connect not established`,e)}}throw ue({to:`/${t.organizationId}/${t.clusterId}/`+(t.instanceId?`instance/${t.instanceId}`:``)+`/sign-in`,search:Ud()})}var mg=y(`inline-flex
669
669
  items-center
670
670
  justify-center
671
671
  gap-2
@@ -685,5 +685,5 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
685
685
  focus-visible:ring-1
686
686
  focus-visible:outline-1
687
687
  focus-visible:ring-purple-200
688
- aria-invalid:focus-visible:ring-0`,{variants:{variant:{default:`bg-primary text-primary-foreground shadow-sm hover:bg-primary/90`,outline:`border bg-default border-primary border-2 text-foreground shadow-xs hover:-translate-y-1 transition duration-200 hover:bg-accent/60 dark:text-white dark:hover:bg-grey-700/40`},size:{default:`h-9 px-4 py-2 has-[>svg]:px-3`,sm:`h-8 px-1.5 min-w-8`,lg:`h-10 px-2.5 min-w-10`}},defaultVariants:{variant:`default`,size:`default`}});function hg({className:e,variant:t,size:n,...r}){return(0,H.jsx)(jt,{"data-slot":`toggle`,className:f(mg({variant:t,size:n,className:e})),...r})}function gg(e){switch(e){case`warn`:return`warning`;case`notify`:return`success`;case`info`:case`debug`:case`trace`:case void 0:case`stdout`:return`secondary`;case`stderr`:case`error`:return`destructive`;default:return e}}var _g=[`secondary`,`default`,`warning`,`outline`,`success`,`destructive`],vg=0,yg=new Map,bg=e=>{if(yg.has(e))return yg.get(e);vg++;let t=_g[vg%_g.length];return yg.set(e,t),t};function xg(e){switch(e){case`error`:case`stderr`:return`border-l-destructive`;case`warn`:return`border-l-yellow-500`;case`notify`:return`border-l-green-500`;default:return`border-l-transparent`}}function Sg({columns:e,data:t,onRowClick:n}){let r=ye({data:t,columns:e,getCoreRowModel:we()});return(0,H.jsx)(`div`,{className:`rounded-md bg-card dark:bg-black-dark logsTable overflow-hidden`,children:(0,H.jsxs)(cu,{className:`text-xs`,children:[(0,H.jsx)(lu,{children:r.getHeaderGroups().map(e=>(0,H.jsx)(du,{className:`border-b border-border`,children:e.headers.map(e=>(0,H.jsx)(fu,{className:`p-4 max-w-96`,children:e.isPlaceholder?null:Ee(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,H.jsx)(uu,{className:`bg-background dark:bg-black`,children:r.getRowModel().rows?.length?r.getRowModel().rows.map(e=>(0,H.jsx)(du,{"data-state":e.getIsSelected()&&`selected`,className:f(`hover:bg-muted/20 data-[state=selected]:bg-muted max-w-full border-l-2`,xg(e.original.level),n&&`cursor-pointer`),onClick:()=>n?.(e),children:e.getVisibleCells().map(e=>(0,H.jsx)(mu,{className:`p-2`,children:Ee(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,H.jsx)(du,{children:(0,H.jsx)(mu,{colSpan:e.length,className:`h-24 text-center`,children:`No results.`})})})]})})}function Cg(e){try{JSON.parse(e)}catch{return!1}return!0}function wg({label:e,children:t}){return(0,H.jsxs)(`div`,{className:`flex items-start gap-3 py-1.5 border-b border-border/50 last:border-0`,children:[(0,H.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground w-20 shrink-0 pt-0.5`,children:e}),(0,H.jsx)(`span`,{className:`text-xs`,children:t})]})}function Tg({setIsModalOpen:e,isModalOpen:t,data:n}){let r=n?bg(n.node):`default`,i=ju();return(0,H.jsx)(lo,{onOpenChange:e,open:t,children:(0,H.jsxs)(mo,{"aria-describedby":void 0,className:`max-w-2xl`,children:[(0,H.jsx)(ho,{children:(0,H.jsx)(go,{children:`Log Entry`})}),n?(0,H.jsxs)(`div`,{className:`flex flex-col gap-2 text-popover-foreground`,children:[(0,H.jsxs)(`div`,{className:`rounded-md border border-border/50 bg-muted/20 px-3 py-1`,children:[(0,H.jsx)(wg,{label:`Level`,children:(0,H.jsx)(yo,{variant:gg(n.level),children:Ji(n.level)})}),(0,H.jsx)(wg,{label:`Timestamp`,children:(0,H.jsx)(`span`,{className:`tabular-nums`,children:new Date(n.timestamp).toLocaleString()})}),(0,H.jsx)(wg,{label:`Thread`,children:(0,H.jsx)(`span`,{className:`tabular-nums font-mono`,children:n.thread})}),n.node&&(0,H.jsx)(wg,{label:`Node`,children:(0,H.jsx)(yo,{variant:r,children:n.node})}),n.tags&&n.tags.length>0&&(0,H.jsx)(wg,{label:`Tags`,children:(0,H.jsx)(`span`,{className:`font-mono`,children:n.tags})})]}),(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`p`,{className:`text-xs font-medium text-muted-foreground mb-1.5`,children:`Message`}),(0,H.jsx)(`div`,{className:`rounded-md overflow-hidden border border-border/50 h-72`,children:(0,H.jsx)(Nu,{className:`w-full h-full`,language:Cg(n.message)?`json`:`text`,theme:i,value:n.message,options:{readOnly:!0,minimap:{enabled:!1},scrollBeyondLastLine:!1,fontSize:12,padding:{top:12,bottom:12}}})})]})]}):(0,H.jsx)(Bo,{})]})})}async function Eg({instanceClient:e,logFilters:t,replicated:n}){let{data:r}=await e.post(`/`,{operation:`read_log`,start:0,replicated:n,limit:t.limit?parseInt(t.limit,10):void 0,level:t.level===`undefined`?void 0:t.level,from:t.from?new Date(t.from).toISOString():void 0,until:t.until?new Date(t.until).toISOString():void 0,log_name:t.log_name??void 0,filter:t.filter?t.filter:void 0,order:`desc`});return r}function Dg(e){let t=e.logFilters;return A({queryKey:[e.entityId,`read_log`,t.limit,t.level,t.from,t.until,t.log_name,t.filter,e.replicated],queryFn:()=>Eg(e),retry:!1,refetchInterval:e.isAutoRefreshEnabled?5e3:!1})}var Og=O({limit:k().or(te()).or(S()).optional(),level:ne([`notify`,`error`,`warn`,`info`,`debug`,`trace`,`undefined`]).or(te()).or(S()).optional(),from:k().or(te()).or(S()).optional(),until:k().or(te()).or(S()).optional(),log_name:ne([`hdb.log`,`system.log`]).or(te()).or(S()).optional(),filter:k().or(te()).or(S()).optional()});function kg({form:e,resetFilters:t,submitFilters:n,showLogName:r,showFilter:i}){let[a,o]=(0,V.useState)(!1);return(0,H.jsxs)($t,{children:[(0,H.jsx)(en,{children:(0,H.jsxs)(`button`,{type:`button`,onClick:()=>o(e=>!e),"aria-expanded":a,"aria-controls":`logs-filters-content`,className:`flex w-full items-center justify-between md:pointer-events-none`,children:[(0,H.jsxs)(tn,{className:`flex items-center gap-2 text-base`,children:[(0,H.jsx)(br,{className:`size-4 text-muted-foreground`}),`Filters`]}),(0,H.jsx)(Sn,{className:f(`size-4 text-muted-foreground transition-transform md:hidden`,a&&`rotate-180`)})]})}),(0,H.jsx)(rn,{id:`logs-filters-content`,className:f(!a&&`hidden`,`md:block`),children:(0,H.jsx)(W,{...e,children:(0,H.jsxs)(`form`,{id:`instance-edit-log-filters-form`,name:`instance-edit-log-filters-form`,onSubmit:e.handleSubmit(n),className:`flex-col space-y-4`,children:[i&&(0,H.jsx)(K,{control:e.control,name:`filter`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(G,{children:(0,H.jsxs)(`div`,{className:`relative`,children:[(0,H.jsx)(hr,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground`}),(0,H.jsx)(X,{type:`search`,placeholder:`Search logs…`,className:`pl-9`,value:e.value??``,onChange:e.onChange})]})}),(0,H.jsx)(Y,{})]})}),r&&(0,H.jsx)(K,{control:e.control,name:`log_name`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{children:`Log file`}),(0,H.jsxs)($c,{onValueChange:e.onChange,value:e.value??void 0,children:[(0,H.jsx)(nl,{className:`w-full bg-white dark:bg-grey-700`,children:(0,H.jsx)(tl,{placeholder:`Select log file`})}),(0,H.jsx)(rl,{children:(0,H.jsxs)(el,{children:[(0,H.jsx)($,{value:`hdb.log`,children:`Application (hdb.log)`}),(0,H.jsx)($,{value:`system.log`,children:`System (system.log)`})]})})]}),(0,H.jsx)(Y,{})]})}),(0,H.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,H.jsx)(K,{control:e.control,name:`limit`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{children:`Limit`}),(0,H.jsxs)($c,{onValueChange:e.onChange,value:e.value??void 0,children:[(0,H.jsx)(nl,{className:`w-full bg-white dark:bg-grey-700`,children:(0,H.jsx)(tl,{placeholder:`Limit`})}),(0,H.jsx)(rl,{children:(0,H.jsxs)(el,{children:[(0,H.jsx)($,{value:`1000`,children:`1000`}),(0,H.jsx)($,{value:`500`,children:`500`}),(0,H.jsx)($,{value:`250`,children:`250`}),(0,H.jsx)($,{value:`100`,children:`100`}),(0,H.jsx)($,{value:`10`,children:`10`})]})})]}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:e.control,name:`level`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{children:`Level`}),(0,H.jsxs)($c,{onValueChange:e.onChange,value:e.value??void 0,children:[(0,H.jsx)(nl,{className:`w-full bg-white dark:bg-grey-700`,children:(0,H.jsx)(tl,{placeholder:`Level`})}),(0,H.jsx)(rl,{children:(0,H.jsxs)(el,{children:[(0,H.jsx)($,{value:`undefined`,children:`All`}),(0,H.jsx)($,{value:`notify`,children:`Notify`}),(0,H.jsx)($,{value:`error`,children:`Error`}),(0,H.jsx)($,{value:`warn`,children:`Warn`}),(0,H.jsx)($,{value:`info`,children:`Info`}),(0,H.jsx)($,{value:`debug`,children:`Debug`}),(0,H.jsx)($,{value:`trace`,children:`Trace`})]})})]}),(0,H.jsx)(Y,{})]})})]}),(0,H.jsx)(K,{control:e.control,name:`from`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{children:`Start date`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`datetime-local`,value:e.value??void 0,onChange:e.onChange})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:e.control,name:`until`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{children:`End date`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`datetime-local`,value:e.value??void 0,onChange:e.onChange})}),(0,H.jsx)(Y,{})]})}),(0,H.jsxs)(`div`,{className:`flex items-center gap-2 pt-1`,children:[(0,H.jsx)(_,{type:`submit`,variant:`positiveOutline`,className:`grow`,children:`Apply Filters`}),(0,H.jsx)(_,{type:`reset`,variant:`destructiveOutline`,onClick:t,children:`Clear`})]})]})})})]})}var Ag={log_name:`hdb.log`,limit:`100`,level:`undefined`,from:``,until:``,filter:``},jg={error:(0,H.jsx)(Tn,{className:`size-3`}),stderr:(0,H.jsx)(Tn,{className:`size-3`}),warn:(0,H.jsx)(Or,{className:`size-3`}),notify:(0,H.jsx)(hn,{className:`size-3`}),info:(0,H.jsx)(qn,{className:`size-3`}),debug:(0,H.jsx)(vn,{className:`size-3`}),trace:(0,H.jsx)(sn,{className:`size-3`}),stdout:(0,H.jsx)(wr,{className:`size-3`})},Mg=[{accessorKey:`level`,header:`Level`,cell:({row:e})=>{let{level:t}=e.original;return(0,H.jsxs)(yo,{variant:gg(t),children:[jg[t],Ji(t)]})}},{accessorKey:`timestamp`,header:`Timestamp`,cell:({row:e})=>{let{timestamp:t}=e.original,n=new Date(t);return(0,H.jsxs)(`span`,{className:`tabular-nums whitespace-nowrap text-muted-foreground`,children:[n.getFullYear()===new Date().getFullYear()?n.toLocaleDateString(void 0,{month:`numeric`,day:`2-digit`}):n.toLocaleDateString(),` `,n.toLocaleTimeString()]})}},{accessorKey:`message`,header:`Message`,cell:({row:e})=>{let{message:t}=e.original;return(0,H.jsx)(`span`,{className:`block max-w-xl truncate font-mono text-xs`,children:t})}},{accessorKey:`thread`,header:`Thread`,cell:({row:e})=>(0,H.jsx)(`span`,{className:`text-muted-foreground tabular-nums`,children:e.original.thread})},{accessorKey:`node`,header:`Node`,cell:({row:e})=>{let{node:t}=e.original,n=bg(t);return(0,H.jsx)(H.Fragment,{children:t?(0,H.jsxs)(Wi,{children:[(0,H.jsx)(Gi,{asChild:!0,children:(0,H.jsxs)(yo,{variant:n,children:[t.split(`.`)[0],`...`]})}),(0,H.jsx)(Ki,{className:`bg-popover text-popover-foreground border border-border`,arrowClassName:`bg-popover fill-popover`,children:t})]}):null})}},{accessorKey:`tags`,header:`Tags`,cell:({row:e})=>{let{tags:t}=e.original;return t&&t.length>0?(0,H.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:t}):null}}],Ng=(e,t)=>!e&&!t||!e||!t?!0:new Date(e)<=new Date(t);function Pg(){return(0,H.jsxs)(`div`,{className:`rounded-md bg-card dark:bg-black-dark overflow-hidden`,children:[(0,H.jsx)(`div`,{className:`flex gap-4 p-4 border-b border-border`,children:[`w-14`,`w-32`,`w-14`,`w-24`,`w-16`,`flex-1`].map((e,t)=>(0,H.jsx)(dd,{className:`h-4 ${e}`},t))}),Array.from({length:12}).map((e,t)=>(0,H.jsxs)(`div`,{className:`flex gap-4 p-3 border-b border-border/40 border-l-2 border-l-transparent`,children:[(0,H.jsx)(dd,{className:`h-5 w-14`}),(0,H.jsx)(dd,{className:`h-5 w-32`}),(0,H.jsx)(dd,{className:`h-5 w-10`}),(0,H.jsx)(dd,{className:`h-5 w-20`}),(0,H.jsx)(dd,{className:`h-5 w-12`}),(0,H.jsx)(dd,{className:`h-5 flex-1 max-w-xs`})]},t))]})}function Fg(){let[e,t]=(0,V.useState)(Ag),[n,r]=(0,V.useState)(!1),[i,a]=(0,V.useState)(),[o,s]=(0,V.useState)(!1),c=U(),{data:l}=M(jp(c)),u=l?.version,d=!!u&&ts(`4.7.16`,u),{data:f,isLoading:p,refetch:m,isFetching:h}=M(Dg({logFilters:e,...c,replicated:c.entityType===`cluster`,isAutoRefreshEnabled:o})),g=z({resolver:R(Og),defaultValues:Ag,mode:`onChange`}),v=e=>{a(e.original),r(!0)},y=async e=>{if(!Ng(e.from,e.until)){g.setError(`from`,{type:`onChange`,message:`Start date must be before end date`}),g.setError(`until`,{type:`onChange`,message:`End date must be after start date`});return}t(e)},b=async()=>{g.reset(),t(Ag)},x=bu(m);return(0,H.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 pt-2 text-foreground md:grid-cols-12`,children:[(0,H.jsxs)(`section`,{className:`col-span-1 md:col-span-4 lg:col-span-3 px-2 pb-4 md:self-start md:sticky md:top-34 md:max-h-[calc(100vh-(--spacing(34)))] md:overflow-y-auto`,children:[(0,H.jsx)(kg,{form:g,resetFilters:b,submitFilters:y,showLogName:!1,showFilter:d}),(0,H.jsxs)(`div`,{className:`flex items-center gap-2 mt-3`,children:[(0,H.jsxs)(_,{variant:`defaultOutline`,onClick:x,disabled:h||p||o,className:`grow`,children:[(0,H.jsx)(dr,{}),`Refresh`]}),(0,H.jsxs)(Wi,{children:[(0,H.jsx)(Gi,{asChild:!0,children:(0,H.jsxs)(hg,{variant:`outline`,"aria-label":`Toggle Auto Refresh`,pressed:o,onPressedChange:s,className:`shrink-0`,children:[(0,H.jsx)(dr,{className:o?`animate-spin`:``}),`Auto`]})}),(0,H.jsx)(Ki,{children:o?`Auto refresh on — click to disable`:`Enable auto refresh (every 5s)`})]})]})]}),(0,H.jsx)(`section`,{className:`col-span-1 md:col-span-8 lg:col-span-9`,children:p?(0,H.jsx)(Pg,{}):(0,H.jsx)(Sg,{columns:Mg,data:f||[],onRowClick:v})}),(0,H.jsx)(Tg,{isModalOpen:n,setIsModalOpen:r,data:i})]})}function Ig(e){return P({getParentRoute:()=>e,path:`logs`,head:()=>({meta:[{title:`Logs — Harper Fabric`}]}),component:Fg})}function Lg(e){return P({getParentRoute:()=>e,path:`status`,head:()=>({meta:[{title:`Status — Harper Fabric`}]}),component:Se(async()=>Pe(()=>import(`./status-Bykq6QcD.js`),__vite__mapDeps([23,2,1,12,13,10,9,24,25,26,27,28,29,30,17,18,11,31,32])),`StatusIndex`)})}function Rg(e){let t=fg(e),n=[Ig(t),...Kf(t),Gf(t),Lg(t),Um(t),og(t)];return t.addChildren(n)}P({getParentRoute:()=>Wd,path:`profile`,head:()=>({meta:[{title:`Profile — Harper Fabric`}]}),component:Se(async()=>Pe(()=>import(`./profile-CwBWGuVt.js`),__vite__mapDeps([33,2,1,12,13,10,9,11])),`ProfileIndex`)});var zg=Wr.addChildren([...to,Wd.addChildren([Rg(`local`)])]);function Bg({routeTree:e=zg,authentication:t}){return _e({routeTree:e,history:ie(),defaultNotFoundComponent:Nr,defaultErrorComponent:Mr,defaultPreload:Pr()?!1:`intent`,trailingSlash:`never`,defaultPreloadStaleTime:0,scrollRestoration:!0,context:{queryClient:Ir,authentication:t||{}}})}function Vg(){let e=qt(),t=Bg({authentication:e});return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(ge,{router:t,context:{authentication:e}}),(0,H.jsx)(Ce,{router:t,position:`bottom-right`})]})}var Hg=({...e})=>(0,H.jsx)(Vt,{className:`toaster group`,toastOptions:{classNames:{toast:`group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg`,description:`group-[.toast]:text-muted-foreground`,actionButton:`group-[.toast]:bg-primary group-[.toast]:text-primary-foreground font-medium`,cancelButton:`group-[.toast]:bg-muted group-[.toast]:text-muted-foreground font-medium`}},...e}),Ug=!1,Wg=!1;function Gg(){(0,V.useEffect)(()=>{Ug||(Ug=!0,Wg&&(function(e,t,n,r,i){e[r]=e[r]||[],e[r].push({"gtm.start":new Date().getTime(),event:`gtm.js`});let a=t.getElementsByTagName(n)[0],o=t.createElement(n),s=r===`dataLayer`?``:`&l=${r}`;o.async=!0,o.src=`https://www.googletagmanager.com/gtm.js?id=`+i+s,a.parentNode.insertBefore(o,a)})(window,document,`script`,`dataLayer`,`GTM-5QQX432`))},[])}function Kg(){return Ri(),Vr(),Gg(),(0,H.jsxs)(ei,{children:[(0,H.jsxs)(le,{client:Ir,children:[(0,H.jsx)(Vg,{}),(0,H.jsx)(Oe,{buttonPosition:`bottom-right`})]}),(0,H.jsx)(Hg,{richColors:!0})]})}(0,ze().createRoot)(document.getElementById(`root`),{onUncaughtError:(e,t)=>{Le(e,t),console.error(`Uncaught error:`,e,t)},onCaughtError:(e,t)=>{Le(e,t),console.error(`Caught error:`,e,t)},onRecoverableError:(e,t)=>{Le(e,t),console.warn(`Recoverable error:`,e,t)}}).render((0,H.jsx)(V.StrictMode,{children:(0,H.jsx)(Kg,{})}));export{Bo as $,cr as $t,zd as A,Ei as At,Ql as B,Fr as Bt,yp as C,K as Ct,Lf as D,Wi as Dt,pp as E,Ji as Et,Nd as F,fi as Ft,rl as G,Dr as Gt,Sl as H,Mr as Ht,Nu as I,Qr as It,tl as J,Cr as Jt,$ as K,Er as Kt,ju as L,Zr as Lt,Fd as M,gi as Mt,Pd as N,di as Nt,ff as O,Ki as Ot,Id as P,U as Pt,ts as Q,dr as Qt,vu as R,Xr as Rt,Dp as S,q as St,gp as T,W as Tt,fl as U,jr as Ut,Zl as V,Ir as Vt,$c as W,kr as Wt,ys as X,pr as Xt,Ds as Y,hr as Yt,ss as Z,fr as Zt,am as _,en as _n,ca as _t,kh as a,Pn as an,Do as at,Op as b,Qt as bn,J as bt,ph as c,wn as cn,ko as ct,dh as d,dn,lo as dt,sr as en,Lo as et,lh as f,un as fn,mo as ft,Ym as g,nn as gn,go as gt,Xm as h,rn as hn,ho as ht,zh as i,In as in,Eo as it,Ld as j,Ti as jt,rf as k,Gi as kt,fh as l,Sn as ln,xo as lt,Zm as m,$t as mn,Z as mt,Jh as n,Zn as nn,So as nt,Dh as o,Dn as on,Oo as ot,rh as p,ln as pn,_o as pt,nl as q,wr as qt,Kh as r,qn as rn,Co as rt,wh as s,Tn as sn,Ao as st,Eg as t,or as tn,bo as tt,mh as u,xn as un,yo as ut,jp as v,tn as vn,X as vt,xp as w,G as wt,kp as x,ea as xt,Ap as y,Yt as yn,Y as yt,tu as z,Lr as zt};
689
- //# sourceMappingURL=index-Cd3Zh3nK.js.map
688
+ aria-invalid:focus-visible:ring-0`,{variants:{variant:{default:`bg-primary text-primary-foreground shadow-sm hover:bg-primary/90`,outline:`border bg-default border-primary border-2 text-foreground shadow-xs hover:-translate-y-1 transition duration-200 hover:bg-accent/60 dark:text-white dark:hover:bg-grey-700/40`},size:{default:`h-9 px-4 py-2 has-[>svg]:px-3`,sm:`h-8 px-1.5 min-w-8`,lg:`h-10 px-2.5 min-w-10`}},defaultVariants:{variant:`default`,size:`default`}});function hg({className:e,variant:t,size:n,...r}){return(0,H.jsx)(jt,{"data-slot":`toggle`,className:f(mg({variant:t,size:n,className:e})),...r})}function gg(e){switch(e){case`warn`:return`warning`;case`notify`:return`success`;case`info`:case`debug`:case`trace`:case void 0:case`stdout`:return`secondary`;case`stderr`:case`error`:return`destructive`;default:return e}}var _g=[`secondary`,`default`,`warning`,`outline`,`success`,`destructive`],vg=0,yg=new Map,bg=e=>{if(yg.has(e))return yg.get(e);vg++;let t=_g[vg%_g.length];return yg.set(e,t),t};function xg(e){switch(e){case`error`:case`stderr`:return`border-l-destructive`;case`warn`:return`border-l-yellow-500`;case`notify`:return`border-l-green-500`;default:return`border-l-transparent`}}function Sg({columns:e,data:t,onRowClick:n}){let r=ye({data:t,columns:e,getCoreRowModel:we()});return(0,H.jsx)(`div`,{className:`rounded-md bg-card dark:bg-black-dark logsTable overflow-hidden`,children:(0,H.jsxs)(cu,{className:`text-xs`,children:[(0,H.jsx)(lu,{children:r.getHeaderGroups().map(e=>(0,H.jsx)(du,{className:`border-b border-border`,children:e.headers.map(e=>(0,H.jsx)(fu,{className:`p-4 max-w-96`,children:e.isPlaceholder?null:Ee(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,H.jsx)(uu,{className:`bg-background dark:bg-black`,children:r.getRowModel().rows?.length?r.getRowModel().rows.map(e=>(0,H.jsx)(du,{"data-state":e.getIsSelected()&&`selected`,className:f(`hover:bg-muted/20 data-[state=selected]:bg-muted max-w-full border-l-2`,xg(e.original.level),n&&`cursor-pointer`),onClick:()=>n?.(e),children:e.getVisibleCells().map(e=>(0,H.jsx)(mu,{className:`p-2`,children:Ee(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,H.jsx)(du,{children:(0,H.jsx)(mu,{colSpan:e.length,className:`h-24 text-center`,children:`No results.`})})})]})})}function Cg(e){try{JSON.parse(e)}catch{return!1}return!0}function wg({label:e,children:t}){return(0,H.jsxs)(`div`,{className:`flex items-start gap-3 py-1.5 border-b border-border/50 last:border-0`,children:[(0,H.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground w-20 shrink-0 pt-0.5`,children:e}),(0,H.jsx)(`span`,{className:`text-xs`,children:t})]})}function Tg({setIsModalOpen:e,isModalOpen:t,data:n}){let r=n?bg(n.node):`default`,i=ju();return(0,H.jsx)(lo,{onOpenChange:e,open:t,children:(0,H.jsxs)(mo,{"aria-describedby":void 0,className:`max-w-2xl`,children:[(0,H.jsx)(ho,{children:(0,H.jsx)(go,{children:`Log Entry`})}),n?(0,H.jsxs)(`div`,{className:`flex flex-col gap-2 text-popover-foreground`,children:[(0,H.jsxs)(`div`,{className:`rounded-md border border-border/50 bg-muted/20 px-3 py-1`,children:[(0,H.jsx)(wg,{label:`Level`,children:(0,H.jsx)(yo,{variant:gg(n.level),children:Ji(n.level)})}),(0,H.jsx)(wg,{label:`Timestamp`,children:(0,H.jsx)(`span`,{className:`tabular-nums`,children:new Date(n.timestamp).toLocaleString()})}),(0,H.jsx)(wg,{label:`Thread`,children:(0,H.jsx)(`span`,{className:`tabular-nums font-mono`,children:n.thread})}),n.node&&(0,H.jsx)(wg,{label:`Node`,children:(0,H.jsx)(yo,{variant:r,children:n.node})}),n.tags&&n.tags.length>0&&(0,H.jsx)(wg,{label:`Tags`,children:(0,H.jsx)(`span`,{className:`font-mono`,children:n.tags})})]}),(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`p`,{className:`text-xs font-medium text-muted-foreground mb-1.5`,children:`Message`}),(0,H.jsx)(`div`,{className:`rounded-md overflow-hidden border border-border/50 h-72`,children:(0,H.jsx)(Nu,{className:`w-full h-full`,language:Cg(n.message)?`json`:`text`,theme:i,value:n.message,options:{readOnly:!0,minimap:{enabled:!1},scrollBeyondLastLine:!1,fontSize:12,padding:{top:12,bottom:12}}})})]})]}):(0,H.jsx)(Bo,{})]})})}async function Eg({instanceClient:e,logFilters:t,replicated:n}){let{data:r}=await e.post(`/`,{operation:`read_log`,start:0,replicated:n,limit:t.limit?parseInt(t.limit,10):void 0,level:t.level===`undefined`?void 0:t.level,from:t.from?new Date(t.from).toISOString():void 0,until:t.until?new Date(t.until).toISOString():void 0,log_name:t.log_name??void 0,filter:t.filter?t.filter:void 0,order:`desc`});return r}function Dg(e){let t=e.logFilters;return A({queryKey:[e.entityId,`read_log`,t.limit,t.level,t.from,t.until,t.log_name,t.filter,e.replicated],queryFn:()=>Eg(e),retry:!1,refetchInterval:e.isAutoRefreshEnabled?5e3:!1})}var Og=O({limit:k().or(te()).or(S()).optional(),level:ne([`notify`,`error`,`warn`,`info`,`debug`,`trace`,`undefined`]).or(te()).or(S()).optional(),from:k().or(te()).or(S()).optional(),until:k().or(te()).or(S()).optional(),log_name:ne([`hdb.log`,`system.log`]).or(te()).or(S()).optional(),filter:k().or(te()).or(S()).optional()});function kg({form:e,resetFilters:t,submitFilters:n,showLogName:r,showFilter:i}){let[a,o]=(0,V.useState)(!1);return(0,H.jsxs)($t,{children:[(0,H.jsx)(en,{children:(0,H.jsxs)(`button`,{type:`button`,onClick:()=>o(e=>!e),"aria-expanded":a,"aria-controls":`logs-filters-content`,className:`flex w-full items-center justify-between md:pointer-events-none`,children:[(0,H.jsxs)(tn,{className:`flex items-center gap-2 text-base`,children:[(0,H.jsx)(br,{className:`size-4 text-muted-foreground`}),`Filters`]}),(0,H.jsx)(Sn,{className:f(`size-4 text-muted-foreground transition-transform md:hidden`,a&&`rotate-180`)})]})}),(0,H.jsx)(rn,{id:`logs-filters-content`,className:f(!a&&`hidden`,`md:block`),children:(0,H.jsx)(W,{...e,children:(0,H.jsxs)(`form`,{id:`instance-edit-log-filters-form`,name:`instance-edit-log-filters-form`,onSubmit:e.handleSubmit(n),className:`flex-col space-y-4`,children:[i&&(0,H.jsx)(K,{control:e.control,name:`filter`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(G,{children:(0,H.jsxs)(`div`,{className:`relative`,children:[(0,H.jsx)(hr,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground`}),(0,H.jsx)(X,{type:`search`,placeholder:`Search logs…`,className:`pl-9`,value:e.value??``,onChange:e.onChange})]})}),(0,H.jsx)(Y,{})]})}),r&&(0,H.jsx)(K,{control:e.control,name:`log_name`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{children:`Log file`}),(0,H.jsxs)($c,{onValueChange:e.onChange,value:e.value??void 0,children:[(0,H.jsx)(nl,{className:`w-full bg-white dark:bg-grey-700`,children:(0,H.jsx)(tl,{placeholder:`Select log file`})}),(0,H.jsx)(rl,{children:(0,H.jsxs)(el,{children:[(0,H.jsx)($,{value:`hdb.log`,children:`Application (hdb.log)`}),(0,H.jsx)($,{value:`system.log`,children:`System (system.log)`})]})})]}),(0,H.jsx)(Y,{})]})}),(0,H.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,H.jsx)(K,{control:e.control,name:`limit`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{children:`Limit`}),(0,H.jsxs)($c,{onValueChange:e.onChange,value:e.value??void 0,children:[(0,H.jsx)(nl,{className:`w-full bg-white dark:bg-grey-700`,children:(0,H.jsx)(tl,{placeholder:`Limit`})}),(0,H.jsx)(rl,{children:(0,H.jsxs)(el,{children:[(0,H.jsx)($,{value:`1000`,children:`1000`}),(0,H.jsx)($,{value:`500`,children:`500`}),(0,H.jsx)($,{value:`250`,children:`250`}),(0,H.jsx)($,{value:`100`,children:`100`}),(0,H.jsx)($,{value:`10`,children:`10`})]})})]}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:e.control,name:`level`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{children:`Level`}),(0,H.jsxs)($c,{onValueChange:e.onChange,value:e.value??void 0,children:[(0,H.jsx)(nl,{className:`w-full bg-white dark:bg-grey-700`,children:(0,H.jsx)(tl,{placeholder:`Level`})}),(0,H.jsx)(rl,{children:(0,H.jsxs)(el,{children:[(0,H.jsx)($,{value:`undefined`,children:`All`}),(0,H.jsx)($,{value:`notify`,children:`Notify`}),(0,H.jsx)($,{value:`error`,children:`Error`}),(0,H.jsx)($,{value:`warn`,children:`Warn`}),(0,H.jsx)($,{value:`info`,children:`Info`}),(0,H.jsx)($,{value:`debug`,children:`Debug`}),(0,H.jsx)($,{value:`trace`,children:`Trace`})]})})]}),(0,H.jsx)(Y,{})]})})]}),(0,H.jsx)(K,{control:e.control,name:`from`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{children:`Start date`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`datetime-local`,value:e.value??void 0,onChange:e.onChange})}),(0,H.jsx)(Y,{})]})}),(0,H.jsx)(K,{control:e.control,name:`until`,render:({field:e})=>(0,H.jsxs)(q,{children:[(0,H.jsx)(J,{children:`End date`}),(0,H.jsx)(G,{children:(0,H.jsx)(X,{type:`datetime-local`,value:e.value??void 0,onChange:e.onChange})}),(0,H.jsx)(Y,{})]})}),(0,H.jsxs)(`div`,{className:`flex items-center gap-2 pt-1`,children:[(0,H.jsx)(_,{type:`submit`,variant:`positiveOutline`,className:`grow`,children:`Apply Filters`}),(0,H.jsx)(_,{type:`reset`,variant:`destructiveOutline`,onClick:t,children:`Clear`})]})]})})})]})}var Ag={log_name:`hdb.log`,limit:`100`,level:`undefined`,from:``,until:``,filter:``},jg={error:(0,H.jsx)(Tn,{className:`size-3`}),stderr:(0,H.jsx)(Tn,{className:`size-3`}),warn:(0,H.jsx)(Or,{className:`size-3`}),notify:(0,H.jsx)(hn,{className:`size-3`}),info:(0,H.jsx)(qn,{className:`size-3`}),debug:(0,H.jsx)(vn,{className:`size-3`}),trace:(0,H.jsx)(sn,{className:`size-3`}),stdout:(0,H.jsx)(wr,{className:`size-3`})},Mg=[{accessorKey:`level`,header:`Level`,cell:({row:e})=>{let{level:t}=e.original;return(0,H.jsxs)(yo,{variant:gg(t),children:[jg[t],Ji(t)]})}},{accessorKey:`timestamp`,header:`Timestamp`,cell:({row:e})=>{let{timestamp:t}=e.original,n=new Date(t);return(0,H.jsxs)(`span`,{className:`tabular-nums whitespace-nowrap text-muted-foreground`,children:[n.getFullYear()===new Date().getFullYear()?n.toLocaleDateString(void 0,{month:`numeric`,day:`2-digit`}):n.toLocaleDateString(),` `,n.toLocaleTimeString()]})}},{accessorKey:`message`,header:`Message`,cell:({row:e})=>{let{message:t}=e.original;return(0,H.jsx)(`span`,{className:`block max-w-xl truncate font-mono text-xs`,children:t})}},{accessorKey:`thread`,header:`Thread`,cell:({row:e})=>(0,H.jsx)(`span`,{className:`text-muted-foreground tabular-nums`,children:e.original.thread})},{accessorKey:`node`,header:`Node`,cell:({row:e})=>{let{node:t}=e.original,n=bg(t);return(0,H.jsx)(H.Fragment,{children:t?(0,H.jsxs)(Wi,{children:[(0,H.jsx)(Gi,{asChild:!0,children:(0,H.jsxs)(yo,{variant:n,children:[t.split(`.`)[0],`...`]})}),(0,H.jsx)(Ki,{className:`bg-popover text-popover-foreground border border-border`,arrowClassName:`bg-popover fill-popover`,children:t})]}):null})}},{accessorKey:`tags`,header:`Tags`,cell:({row:e})=>{let{tags:t}=e.original;return t&&t.length>0?(0,H.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:t}):null}}],Ng=(e,t)=>!e&&!t||!e||!t?!0:new Date(e)<=new Date(t);function Pg(){return(0,H.jsxs)(`div`,{className:`rounded-md bg-card dark:bg-black-dark overflow-hidden`,children:[(0,H.jsx)(`div`,{className:`flex gap-4 p-4 border-b border-border`,children:[`w-14`,`w-32`,`w-14`,`w-24`,`w-16`,`flex-1`].map((e,t)=>(0,H.jsx)(dd,{className:`h-4 ${e}`},t))}),Array.from({length:12}).map((e,t)=>(0,H.jsxs)(`div`,{className:`flex gap-4 p-3 border-b border-border/40 border-l-2 border-l-transparent`,children:[(0,H.jsx)(dd,{className:`h-5 w-14`}),(0,H.jsx)(dd,{className:`h-5 w-32`}),(0,H.jsx)(dd,{className:`h-5 w-10`}),(0,H.jsx)(dd,{className:`h-5 w-20`}),(0,H.jsx)(dd,{className:`h-5 w-12`}),(0,H.jsx)(dd,{className:`h-5 flex-1 max-w-xs`})]},t))]})}function Fg(){let[e,t]=(0,V.useState)(Ag),[n,r]=(0,V.useState)(!1),[i,a]=(0,V.useState)(),[o,s]=(0,V.useState)(!1),c=U(),{data:l}=M(jp(c)),u=l?.version,d=!!u&&ts(`4.7.16`,u),{data:f,isLoading:p,refetch:m,isFetching:h}=M(Dg({logFilters:e,...c,replicated:c.entityType===`cluster`,isAutoRefreshEnabled:o})),g=z({resolver:R(Og),defaultValues:Ag,mode:`onChange`}),v=e=>{a(e.original),r(!0)},y=async e=>{if(!Ng(e.from,e.until)){g.setError(`from`,{type:`onChange`,message:`Start date must be before end date`}),g.setError(`until`,{type:`onChange`,message:`End date must be after start date`});return}t(e)},b=async()=>{g.reset(),t(Ag)},x=bu(m);return(0,H.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 pt-2 text-foreground md:grid-cols-12`,children:[(0,H.jsxs)(`section`,{className:`col-span-1 md:col-span-4 lg:col-span-3 px-2 pb-4 md:self-start md:sticky md:top-34 md:max-h-[calc(100vh-(--spacing(34)))] md:overflow-y-auto`,children:[(0,H.jsx)(kg,{form:g,resetFilters:b,submitFilters:y,showLogName:!1,showFilter:d}),(0,H.jsxs)(`div`,{className:`flex items-center gap-2 mt-3`,children:[(0,H.jsxs)(_,{variant:`defaultOutline`,onClick:x,disabled:h||p||o,className:`grow`,children:[(0,H.jsx)(dr,{}),`Refresh`]}),(0,H.jsxs)(Wi,{children:[(0,H.jsx)(Gi,{asChild:!0,children:(0,H.jsxs)(hg,{variant:`outline`,"aria-label":`Toggle Auto Refresh`,pressed:o,onPressedChange:s,className:`shrink-0`,children:[(0,H.jsx)(dr,{className:o?`animate-spin`:``}),`Auto`]})}),(0,H.jsx)(Ki,{children:o?`Auto refresh on — click to disable`:`Enable auto refresh (every 5s)`})]})]})]}),(0,H.jsx)(`section`,{className:`col-span-1 md:col-span-8 lg:col-span-9`,children:p?(0,H.jsx)(Pg,{}):(0,H.jsx)(Sg,{columns:Mg,data:f||[],onRowClick:v})}),(0,H.jsx)(Tg,{isModalOpen:n,setIsModalOpen:r,data:i})]})}function Ig(e){return P({getParentRoute:()=>e,path:`logs`,head:()=>({meta:[{title:`Logs — Harper Fabric`}]}),component:Fg})}function Lg(e){return P({getParentRoute:()=>e,path:`status`,head:()=>({meta:[{title:`Status — Harper Fabric`}]}),component:Se(async()=>Pe(()=>import(`./status-fW6PBpPM.js`),__vite__mapDeps([23,2,1,12,13,10,9,24,25,26,27,28,29,30,17,18,11,31,32])),`StatusIndex`)})}function Rg(e){let t=fg(e),n=[Ig(t),...Kf(t),Gf(t),Lg(t),Um(t),og(t)];return t.addChildren(n)}P({getParentRoute:()=>Wd,path:`profile`,head:()=>({meta:[{title:`Profile — Harper Fabric`}]}),component:Se(async()=>Pe(()=>import(`./profile-DiV60L50.js`),__vite__mapDeps([33,2,1,12,13,10,9,11])),`ProfileIndex`)});var zg=Wr.addChildren([...to,Wd.addChildren([Rg(`local`)])]);function Bg({routeTree:e=zg,authentication:t}){return _e({routeTree:e,history:ie(),defaultNotFoundComponent:Nr,defaultErrorComponent:Mr,defaultPreload:Pr()?!1:`intent`,trailingSlash:`never`,defaultPreloadStaleTime:0,scrollRestoration:!0,context:{queryClient:Ir,authentication:t||{}}})}function Vg(){let e=qt(),t=Bg({authentication:e});return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(ge,{router:t,context:{authentication:e}}),(0,H.jsx)(Ce,{router:t,position:`bottom-right`})]})}var Hg=({...e})=>(0,H.jsx)(Vt,{className:`toaster group`,toastOptions:{classNames:{toast:`group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg`,description:`group-[.toast]:text-muted-foreground`,actionButton:`group-[.toast]:bg-primary group-[.toast]:text-primary-foreground font-medium`,cancelButton:`group-[.toast]:bg-muted group-[.toast]:text-muted-foreground font-medium`}},...e}),Ug=!1,Wg=!1;function Gg(){(0,V.useEffect)(()=>{Ug||(Ug=!0,Wg&&(function(e,t,n,r,i){e[r]=e[r]||[],e[r].push({"gtm.start":new Date().getTime(),event:`gtm.js`});let a=t.getElementsByTagName(n)[0],o=t.createElement(n),s=r===`dataLayer`?``:`&l=${r}`;o.async=!0,o.src=`https://www.googletagmanager.com/gtm.js?id=`+i+s,a.parentNode.insertBefore(o,a)})(window,document,`script`,`dataLayer`,`GTM-5QQX432`))},[])}function Kg(){return Ri(),Vr(),Gg(),(0,H.jsxs)(ei,{children:[(0,H.jsxs)(le,{client:Ir,children:[(0,H.jsx)(Vg,{}),(0,H.jsx)(Oe,{buttonPosition:`bottom-right`})]}),(0,H.jsx)(Hg,{richColors:!0})]})}(0,ze().createRoot)(document.getElementById(`root`),{onUncaughtError:(e,t)=>{Le(e,t),console.error(`Uncaught error:`,e,t)},onCaughtError:(e,t)=>{Le(e,t),console.error(`Caught error:`,e,t)},onRecoverableError:(e,t)=>{Le(e,t),console.warn(`Recoverable error:`,e,t)}}).render((0,H.jsx)(V.StrictMode,{children:(0,H.jsx)(Kg,{})}));export{Bo as $,cr as $t,zd as A,Ei as At,Ql as B,Fr as Bt,yp as C,K as Ct,Lf as D,Wi as Dt,pp as E,Ji as Et,Nd as F,fi as Ft,rl as G,Dr as Gt,Sl as H,Mr as Ht,Nu as I,Qr as It,tl as J,Cr as Jt,$ as K,Er as Kt,ju as L,Zr as Lt,Fd as M,gi as Mt,Pd as N,di as Nt,ff as O,Ki as Ot,Id as P,U as Pt,ts as Q,dr as Qt,vu as R,Xr as Rt,Dp as S,q as St,gp as T,W as Tt,fl as U,jr as Ut,Zl as V,Ir as Vt,$c as W,kr as Wt,ys as X,pr as Xt,Ds as Y,hr as Yt,ss as Z,fr as Zt,am as _,en as _n,ca as _t,kh as a,Pn as an,Do as at,Op as b,Qt as bn,J as bt,ph as c,wn as cn,ko as ct,dh as d,dn,lo as dt,sr as en,Lo as et,lh as f,un as fn,mo as ft,Ym as g,nn as gn,go as gt,Xm as h,rn as hn,ho as ht,zh as i,In as in,Eo as it,Ld as j,Ti as jt,rf as k,Gi as kt,fh as l,Sn as ln,xo as lt,Zm as m,$t as mn,Z as mt,Jh as n,Zn as nn,So as nt,Dh as o,Dn as on,Oo as ot,rh as p,ln as pn,_o as pt,nl as q,wr as qt,Kh as r,qn as rn,Co as rt,wh as s,Tn as sn,Ao as st,Eg as t,or as tn,bo as tt,mh as u,xn as un,yo as ut,jp as v,tn as vn,X as vt,xp as w,G as wt,kp as x,ea as xt,Ap as y,Yt as yn,Y as yt,tu as z,Lr as zt};
689
+ //# sourceMappingURL=index-oRZw5GW3.js.map