@tapflowio/relay 0.9.2 → 0.10.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 (73) hide show
  1. package/dist/RelayServer.d.ts +3 -0
  2. package/dist/RelayServer.d.ts.map +1 -1
  3. package/dist/RelayServer.js +29 -1
  4. package/dist/RelayServer.js.map +1 -1
  5. package/dist/api/builds.d.ts +2 -0
  6. package/dist/api/builds.d.ts.map +1 -1
  7. package/dist/api/builds.js +34 -7
  8. package/dist/api/builds.js.map +1 -1
  9. package/dist/migrations/012_build_delete_after.sql +14 -0
  10. package/package.json +2 -2
  11. package/public/assets/AppCenter-BkK502r-.js +21 -0
  12. package/public/assets/AppCenter-BkK502r-.js.br +0 -0
  13. package/public/assets/{Default-CNIOwJix.js → Default-DJ3O2SsV.js} +1 -1
  14. package/public/assets/Default-DJ3O2SsV.js.br +0 -0
  15. package/public/assets/{Invite-CxAak0QY.js → Invite-CvXlN2kS.js} +1 -1
  16. package/public/assets/Invite-CvXlN2kS.js.br +0 -0
  17. package/public/assets/{MacResources-BkDhO6IY.js → MacResources-5y1xvEIy.js} +1 -1
  18. package/public/assets/MacResources-5y1xvEIy.js.br +0 -0
  19. package/public/assets/{NotFound-C_RPjQyM.js → NotFound-FsRS9tXW.js} +1 -1
  20. package/public/assets/NotFound-FsRS9tXW.js.br +0 -0
  21. package/public/assets/{QASession-BI0UoxxZ.js → QASession-DaXI2EbF.js} +1 -1
  22. package/public/assets/QASession-DaXI2EbF.js.br +0 -0
  23. package/public/assets/{ResetPassword-B3B1vO7t.js → ResetPassword-BmOUZhvy.js} +1 -1
  24. package/public/assets/ResetPassword-BmOUZhvy.js.br +0 -0
  25. package/public/assets/{Setup-DAK5iAZn.js → Setup-DIjEK62E.js} +1 -1
  26. package/public/assets/Setup-DIjEK62E.js.br +0 -0
  27. package/public/assets/{Team-DwGH3nTh.js → Team-BF_Sypz1.js} +1 -1
  28. package/public/assets/Team-BF_Sypz1.js.br +0 -0
  29. package/public/assets/Tokens-CeT9D1an.js +1 -0
  30. package/public/assets/Tokens-CeT9D1an.js.br +0 -0
  31. package/public/assets/{alert-dialog-C9JkZxpw.js → alert-dialog-DdKN_y9-.js} +1 -1
  32. package/public/assets/alert-dialog-DdKN_y9-.js.br +0 -0
  33. package/public/assets/{badge-C4QfN3hf.js → badge-BWfJJL5y.js} +1 -1
  34. package/public/assets/badge-BWfJJL5y.js.br +0 -0
  35. package/public/assets/build-format-B_GKS7x0.js +11 -0
  36. package/public/assets/build-format-B_GKS7x0.js.br +0 -0
  37. package/public/assets/{dialog-BDl6uCtr.js → dialog-C4OyiMxc.js} +1 -1
  38. package/public/assets/dialog-C4OyiMxc.js.br +0 -0
  39. package/public/assets/{index-BgHk9cIy.js → index-C1qD3uWi.js} +3 -3
  40. package/public/assets/index-C1qD3uWi.js.br +0 -0
  41. package/public/assets/{pencil-Fy1ryeVj.js → pencil-CKHOeGOo.js} +1 -1
  42. package/public/assets/pencil-CKHOeGOo.js.br +0 -0
  43. package/public/assets/{table-DAingeQp.js → table-CRKLjzLC.js} +1 -1
  44. package/public/assets/table-CRKLjzLC.js.br +0 -0
  45. package/public/assets/{tabs-BCSJZGsw.js → tabs-LFfwE6UX.js} +1 -1
  46. package/public/assets/tabs-LFfwE6UX.js.br +0 -0
  47. package/public/assets/trash-2-DswjRF4T.js +11 -0
  48. package/public/assets/trash-2-DswjRF4T.js.br +0 -0
  49. package/public/index.html +1 -1
  50. package/public/index.html.br +0 -0
  51. package/public/assets/AppCenter-DMBOeAOk.js +0 -16
  52. package/public/assets/AppCenter-DMBOeAOk.js.br +0 -0
  53. package/public/assets/Default-CNIOwJix.js.br +0 -0
  54. package/public/assets/Invite-CxAak0QY.js.br +0 -0
  55. package/public/assets/MacResources-BkDhO6IY.js.br +0 -0
  56. package/public/assets/NotFound-C_RPjQyM.js.br +0 -0
  57. package/public/assets/QASession-BI0UoxxZ.js.br +0 -0
  58. package/public/assets/ResetPassword-B3B1vO7t.js.br +0 -0
  59. package/public/assets/Setup-DAK5iAZn.js.br +0 -0
  60. package/public/assets/Team-DwGH3nTh.js.br +0 -0
  61. package/public/assets/Tokens-DHSzYss8.js +0 -6
  62. package/public/assets/Tokens-DHSzYss8.js.br +0 -0
  63. package/public/assets/alert-dialog-C9JkZxpw.js.br +0 -0
  64. package/public/assets/badge-C4QfN3hf.js.br +0 -0
  65. package/public/assets/build-format-Dgn-J3If.js +0 -11
  66. package/public/assets/build-format-Dgn-J3If.js.br +0 -0
  67. package/public/assets/dialog-BDl6uCtr.js.br +0 -0
  68. package/public/assets/index-BgHk9cIy.js.br +0 -0
  69. package/public/assets/pencil-Fy1ryeVj.js.br +0 -0
  70. package/public/assets/plus-Ni9nU3x4.js +0 -6
  71. package/public/assets/plus-Ni9nU3x4.js.br +0 -0
  72. package/public/assets/table-DAingeQp.js.br +0 -0
  73. package/public/assets/tabs-BCSJZGsw.js.br +0 -0
@@ -1 +1 @@
1
- import{ap as X,ab as Z,a7 as i,ai as S,aa as y,ao as I,a4 as e,C as g,d as j,e as v,b as w,L as m,I as u,S as M,i as O,a9 as n,B as h,G as ee,K as se,J as ae,a5 as A,_ as $,a8 as p}from"./index-BgHk9cIy.js";import{B as re}from"./badge-C4QfN3hf.js";import{A as te,h as oe,c as ne,f as ie,g as le,d as ce,e as de,b as me,a as ue}from"./alert-dialog-C9JkZxpw.js";import{P as W}from"./pencil-Fy1ryeVj.js";const he=A({teamName:p().min(1),logo:$(File).nullable().optional()}),pe=A({displayName:p().min(1),avatar:$(File).nullable().optional()}),fe=A({currentPassword:p().min(1),newPassword:p().min(8),confirmPassword:p()}).refine(f=>f.newPassword===f.confirmPassword,{message:"Passwords do not match",path:["confirmPassword"]});function we(){const{resolvedTheme:f}=X(),J=f==="dark"?"/logo-dark.svg":"/logo.svg",{user:o}=Z(),b=(o==null?void 0:o.role)==="Admin",N=(o==null?void 0:o.role)==="Admin"||(o==null?void 0:o.role)==="Developer",[V,P]=i.useState(null),C=i.useRef(null),d=S({resolver:y(he),mode:"onBlur",defaultValues:{teamName:"",logo:null}});i.useEffect(()=>{b&&fetch("/api/v1/settings",{credentials:"include"}).then(s=>s.ok?s.json():null).then(s=>{s&&(d.reset({teamName:s.team_name,logo:null}),P(s.logo_url))})},[b]);async function G(s){const a=new FormData;a.append("team_name",s.teamName),s.logo&&a.append("logo",s.logo);try{if(!(await fetch("/api/v1/settings",{method:"PATCH",credentials:"include",body:a})).ok){n.error("Failed to update workspace");return}n.success("Workspace updated")}catch{n.error("Failed to update workspace")}}const[k,F]=i.useState(null),D=i.useRef(null),c=S({resolver:y(pe),mode:"onBlur",defaultValues:{displayName:"",avatar:null}});i.useEffect(()=>{o&&(c.reset({displayName:o.displayName??"",avatar:null}),F(o.avatarUrl??null))},[o]);async function K(s){const a=new FormData;a.append("display_name",s.displayName),s.avatar&&a.append("avatar",s.avatar);try{if(!(await fetch("/api/v1/profile",{method:"PATCH",credentials:"include",body:a})).ok){n.error("Failed to update profile");return}n.success("Profile updated")}catch{n.error("Failed to update profile")}}const t=S({resolver:y(fe),mode:"onBlur"});async function Q(s){try{const a=await fetch("/api/v1/auth/change-password",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({currentPassword:s.currentPassword,newPassword:s.newPassword})});if(!a.ok){const r=await a.json();t.setError("root",{message:r.error??"Failed to change password"});return}t.reset(),n.success("Password changed")}catch{t.setError("root",{message:"Network error"})}}const[T,E]=i.useState([]),[B,L]=i.useState({}),[U,z]=i.useState({}),[R,_]=i.useState({});i.useEffect(()=>{N&&fetch("/api/v1/apps",{credentials:"include"}).then(s=>s.ok?s.json():null).then(s=>{if(!s)return;E(s.items);const a={};s.items.forEach(r=>{a[r.id]=r.name}),L(a)})},[N]);async function Y(s){_(a=>({...a,[s]:!0}));try{if(!(await fetch(`/api/v1/apps/${s}`,{method:"DELETE",credentials:"include"})).ok){n.error("Failed to delete app");return}E(r=>r.filter(l=>l.id!==s)),n.success("App deleted")}catch{n.error("Failed to delete app")}finally{_(a=>({...a,[s]:!1}))}}async function q(s){z(a=>({...a,[s]:!0}));try{if(!(await fetch(`/api/v1/apps/${s}`,{method:"PATCH",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:B[s]})})).ok){n.error("Failed to update app");return}n.success("App updated")}catch{n.error("Failed to update app")}finally{z(a=>({...a,[s]:!1}))}}const x=I({control:c.control,name:"displayName"});return e.jsxs("div",{className:"flex flex-col gap-6 max-w-[900px] mx-auto w-full p-6",children:[e.jsx("h1",{className:"text-xl font-semibold tracking-display-sm",children:"Settings"}),b&&e.jsxs(g,{children:[e.jsx(j,{children:e.jsx(v,{children:"Workspace"})}),e.jsx(w,{children:e.jsxs("form",{onSubmit:d.handleSubmit(G),className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(m,{htmlFor:"team-name",children:"Team name"}),e.jsx(u,{id:"team-name",placeholder:"My QA Team",...d.register("teamName")}),d.formState.errors.teamName&&e.jsx("p",{className:"text-sm text-destructive",children:d.formState.errors.teamName.message})]}),e.jsx(M,{}),e.jsxs("div",{className:"grid gap-2",children:[e.jsxs(m,{children:["Logo ",e.jsx("span",{className:"text-muted-foreground text-xs",children:"(png · jpg, max 2MB)"})]}),e.jsx(O,{name:"logo",control:d.control,render:({field:s})=>e.jsxs("div",{className:"relative w-16 h-16",children:[e.jsx("img",{src:V??J,alt:"logo",className:"w-16 h-16 rounded-lg object-contain"}),e.jsx("button",{type:"button",onClick:()=>{var a;return(a=C.current)==null?void 0:a.click()},className:"absolute bottom-0 right-0 w-6 h-6 rounded-full bg-background border border-border shadow-sm flex items-center justify-center hover:bg-accent transition-colors",children:e.jsx(W,{className:"w-3 h-3"})}),e.jsx("input",{ref:C,type:"file",accept:".png,.jpg,.jpeg",className:"hidden",onChange:a=>{var l;const r=(l=a.target.files)==null?void 0:l[0];if(r&&r.size>2*1024*1024){n.error("Image must be 2MB or less");return}r&&(s.onChange(r),P(URL.createObjectURL(r)))}})]})})]}),e.jsx("div",{className:"flex justify-end",children:e.jsx(h,{type:"submit",size:"sm",disabled:d.formState.isSubmitting,children:d.formState.isSubmitting?"Saving…":"Save changes"})})]})})]}),e.jsxs(g,{children:[e.jsx(j,{children:e.jsx(v,{children:"Profile"})}),e.jsx(w,{children:e.jsxs("form",{onSubmit:c.handleSubmit(K),className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(m,{htmlFor:"display-name",children:"Nickname"}),e.jsx(u,{id:"display-name",placeholder:"Your name",...c.register("displayName")}),c.formState.errors.displayName&&e.jsx("p",{className:"text-sm text-destructive",children:c.formState.errors.displayName.message})]}),e.jsx(M,{}),e.jsxs("div",{className:"grid gap-2",children:[e.jsxs(m,{children:["Avatar ",e.jsx("span",{className:"text-muted-foreground text-xs",children:"(png · jpg, max 2MB)"})]}),e.jsx(O,{name:"avatar",control:c.control,render:({field:s})=>{var a;return e.jsxs("div",{className:"relative w-14 h-14",children:[k?e.jsx("img",{src:k,alt:"avatar",className:"w-14 h-14 rounded-full object-cover border"}):e.jsx("div",{className:"w-14 h-14 rounded-full flex items-center justify-center text-lg font-medium",style:(()=>{const r=ee(x||(o==null?void 0:o.email)||"");return{backgroundColor:r.bg,color:r.fg}})(),children:((a=x==null?void 0:x[0])==null?void 0:a.toUpperCase())??"?"}),e.jsx("button",{type:"button",onClick:()=>{var r;return(r=D.current)==null?void 0:r.click()},className:"absolute bottom-0 right-0 w-6 h-6 rounded-full bg-background border border-border shadow-sm flex items-center justify-center hover:bg-accent transition-colors",children:e.jsx(W,{className:"w-3 h-3"})}),e.jsx("input",{ref:D,type:"file",accept:".png,.jpg,.jpeg",className:"hidden",onChange:r=>{var H;const l=(H=r.target.files)==null?void 0:H[0];if(l&&l.size>2*1024*1024){n.error("Image must be 2MB or less");return}l&&(s.onChange(l),F(URL.createObjectURL(l)))}})]})}})]}),e.jsx("div",{className:"flex justify-end",children:e.jsx(h,{type:"submit",size:"sm",disabled:c.formState.isSubmitting,children:c.formState.isSubmitting?"Saving…":"Save changes"})})]})})]}),e.jsxs(g,{children:[e.jsx(j,{children:e.jsx(v,{children:"Password"})}),e.jsx(w,{children:e.jsxs("form",{onSubmit:t.handleSubmit(Q),className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(m,{htmlFor:"current-password",children:"Current password"}),e.jsx(u,{id:"current-password",type:"password",...t.register("currentPassword")}),t.formState.errors.currentPassword&&e.jsx("p",{className:"text-sm text-destructive",children:t.formState.errors.currentPassword.message})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(m,{htmlFor:"new-password",children:"New password"}),e.jsx(u,{id:"new-password",type:"password",...t.register("newPassword")}),t.formState.errors.newPassword&&e.jsx("p",{className:"text-sm text-destructive",children:t.formState.errors.newPassword.message})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(m,{htmlFor:"confirm-password",children:"Confirm new password"}),e.jsx(u,{id:"confirm-password",type:"password",...t.register("confirmPassword")}),t.formState.errors.confirmPassword&&e.jsx("p",{className:"text-sm text-destructive",children:t.formState.errors.confirmPassword.message})]}),t.formState.errors.root&&e.jsx("p",{className:"text-sm text-destructive",children:t.formState.errors.root.message}),e.jsx("div",{className:"flex justify-end",children:e.jsx(h,{type:"submit",size:"sm",disabled:t.formState.isSubmitting,children:t.formState.isSubmitting?"Saving…":"Change password"})})]})})]}),N&&T.length>0&&e.jsxs(g,{children:[e.jsx(j,{children:e.jsx(v,{children:"Apps"})}),e.jsx(w,{children:e.jsx("div",{className:"flex flex-col divide-y divide-border",children:T.map(s=>e.jsxs("div",{className:"flex flex-col gap-2 py-4 first:pt-0 last:pb-0",children:[e.jsx(m,{htmlFor:`app-${s.id}`,children:"App Name"}),e.jsx(u,{id:`app-${s.id}`,value:B[s.id]??"",onChange:a=>L(r=>({...r,[s.id]:a.target.value}))}),e.jsxs("div",{className:"flex flex-col gap-1.5 mt-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-xs text-muted-foreground font-mono",children:s.bundle_id_key}),e.jsx(re,{tone:s.platform==="ios"?"ios":s.platform==="android"?"android":void 0,variant:s.platform==="both"?"secondary":void 0,className:"capitalize",children:s.platform})]}),e.jsxs("div",{className:"flex items-center justify-end gap-2",children:[e.jsx(h,{size:"sm",variant:"outline",disabled:U[s.id],onClick:()=>q(s.id),children:U[s.id]?"Saving…":"Save"}),e.jsxs(te,{children:[e.jsx(oe,{asChild:!0,children:e.jsx(h,{size:"sm",variant:"destructive",disabled:R[s.id],children:R[s.id]?"Deleting…":"Delete"})}),e.jsxs(ne,{children:[e.jsxs(ie,{children:[e.jsx(le,{children:"Delete app?"}),e.jsxs(ce,{children:["This will permanently delete ",e.jsx("strong",{children:s.name})," and all its builds. This action cannot be undone."]})]}),e.jsxs(de,{children:[e.jsx(me,{className:"w-24",children:"Cancel"}),e.jsx(ue,{className:se(ae({variant:"destructive"}),"w-24"),onClick:()=>Y(s.id),children:"Delete"})]})]})]})]})]})]},s.id))})})]})]})}export{we as DefaultSettings};
1
+ import{ap as X,ab as Z,a7 as i,ai as S,aa as y,ao as I,a4 as e,C as g,d as j,e as v,b as w,L as m,I as u,S as M,i as O,a9 as n,B as h,G as ee,K as se,J as ae,a5 as A,_ as $,a8 as p}from"./index-C1qD3uWi.js";import{B as re}from"./badge-BWfJJL5y.js";import{A as te,h as oe,c as ne,f as ie,g as le,d as ce,e as de,b as me,a as ue}from"./alert-dialog-DdKN_y9-.js";import{P as W}from"./pencil-CKHOeGOo.js";const he=A({teamName:p().min(1),logo:$(File).nullable().optional()}),pe=A({displayName:p().min(1),avatar:$(File).nullable().optional()}),fe=A({currentPassword:p().min(1),newPassword:p().min(8),confirmPassword:p()}).refine(f=>f.newPassword===f.confirmPassword,{message:"Passwords do not match",path:["confirmPassword"]});function we(){const{resolvedTheme:f}=X(),J=f==="dark"?"/logo-dark.svg":"/logo.svg",{user:o}=Z(),b=(o==null?void 0:o.role)==="Admin",N=(o==null?void 0:o.role)==="Admin"||(o==null?void 0:o.role)==="Developer",[V,P]=i.useState(null),C=i.useRef(null),d=S({resolver:y(he),mode:"onBlur",defaultValues:{teamName:"",logo:null}});i.useEffect(()=>{b&&fetch("/api/v1/settings",{credentials:"include"}).then(s=>s.ok?s.json():null).then(s=>{s&&(d.reset({teamName:s.team_name,logo:null}),P(s.logo_url))})},[b]);async function G(s){const a=new FormData;a.append("team_name",s.teamName),s.logo&&a.append("logo",s.logo);try{if(!(await fetch("/api/v1/settings",{method:"PATCH",credentials:"include",body:a})).ok){n.error("Failed to update workspace");return}n.success("Workspace updated")}catch{n.error("Failed to update workspace")}}const[k,F]=i.useState(null),D=i.useRef(null),c=S({resolver:y(pe),mode:"onBlur",defaultValues:{displayName:"",avatar:null}});i.useEffect(()=>{o&&(c.reset({displayName:o.displayName??"",avatar:null}),F(o.avatarUrl??null))},[o]);async function K(s){const a=new FormData;a.append("display_name",s.displayName),s.avatar&&a.append("avatar",s.avatar);try{if(!(await fetch("/api/v1/profile",{method:"PATCH",credentials:"include",body:a})).ok){n.error("Failed to update profile");return}n.success("Profile updated")}catch{n.error("Failed to update profile")}}const t=S({resolver:y(fe),mode:"onBlur"});async function Q(s){try{const a=await fetch("/api/v1/auth/change-password",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({currentPassword:s.currentPassword,newPassword:s.newPassword})});if(!a.ok){const r=await a.json();t.setError("root",{message:r.error??"Failed to change password"});return}t.reset(),n.success("Password changed")}catch{t.setError("root",{message:"Network error"})}}const[T,E]=i.useState([]),[B,L]=i.useState({}),[U,z]=i.useState({}),[R,_]=i.useState({});i.useEffect(()=>{N&&fetch("/api/v1/apps",{credentials:"include"}).then(s=>s.ok?s.json():null).then(s=>{if(!s)return;E(s.items);const a={};s.items.forEach(r=>{a[r.id]=r.name}),L(a)})},[N]);async function Y(s){_(a=>({...a,[s]:!0}));try{if(!(await fetch(`/api/v1/apps/${s}`,{method:"DELETE",credentials:"include"})).ok){n.error("Failed to delete app");return}E(r=>r.filter(l=>l.id!==s)),n.success("App deleted")}catch{n.error("Failed to delete app")}finally{_(a=>({...a,[s]:!1}))}}async function q(s){z(a=>({...a,[s]:!0}));try{if(!(await fetch(`/api/v1/apps/${s}`,{method:"PATCH",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:B[s]})})).ok){n.error("Failed to update app");return}n.success("App updated")}catch{n.error("Failed to update app")}finally{z(a=>({...a,[s]:!1}))}}const x=I({control:c.control,name:"displayName"});return e.jsxs("div",{className:"flex flex-col gap-6 max-w-[900px] mx-auto w-full p-6",children:[e.jsx("h1",{className:"text-xl font-semibold tracking-display-sm",children:"Settings"}),b&&e.jsxs(g,{children:[e.jsx(j,{children:e.jsx(v,{children:"Workspace"})}),e.jsx(w,{children:e.jsxs("form",{onSubmit:d.handleSubmit(G),className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(m,{htmlFor:"team-name",children:"Team name"}),e.jsx(u,{id:"team-name",placeholder:"My QA Team",...d.register("teamName")}),d.formState.errors.teamName&&e.jsx("p",{className:"text-sm text-destructive",children:d.formState.errors.teamName.message})]}),e.jsx(M,{}),e.jsxs("div",{className:"grid gap-2",children:[e.jsxs(m,{children:["Logo ",e.jsx("span",{className:"text-muted-foreground text-xs",children:"(png · jpg, max 2MB)"})]}),e.jsx(O,{name:"logo",control:d.control,render:({field:s})=>e.jsxs("div",{className:"relative w-16 h-16",children:[e.jsx("img",{src:V??J,alt:"logo",className:"w-16 h-16 rounded-lg object-contain"}),e.jsx("button",{type:"button",onClick:()=>{var a;return(a=C.current)==null?void 0:a.click()},className:"absolute bottom-0 right-0 w-6 h-6 rounded-full bg-background border border-border shadow-sm flex items-center justify-center hover:bg-accent transition-colors",children:e.jsx(W,{className:"w-3 h-3"})}),e.jsx("input",{ref:C,type:"file",accept:".png,.jpg,.jpeg",className:"hidden",onChange:a=>{var l;const r=(l=a.target.files)==null?void 0:l[0];if(r&&r.size>2*1024*1024){n.error("Image must be 2MB or less");return}r&&(s.onChange(r),P(URL.createObjectURL(r)))}})]})})]}),e.jsx("div",{className:"flex justify-end",children:e.jsx(h,{type:"submit",size:"sm",disabled:d.formState.isSubmitting,children:d.formState.isSubmitting?"Saving…":"Save changes"})})]})})]}),e.jsxs(g,{children:[e.jsx(j,{children:e.jsx(v,{children:"Profile"})}),e.jsx(w,{children:e.jsxs("form",{onSubmit:c.handleSubmit(K),className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(m,{htmlFor:"display-name",children:"Nickname"}),e.jsx(u,{id:"display-name",placeholder:"Your name",...c.register("displayName")}),c.formState.errors.displayName&&e.jsx("p",{className:"text-sm text-destructive",children:c.formState.errors.displayName.message})]}),e.jsx(M,{}),e.jsxs("div",{className:"grid gap-2",children:[e.jsxs(m,{children:["Avatar ",e.jsx("span",{className:"text-muted-foreground text-xs",children:"(png · jpg, max 2MB)"})]}),e.jsx(O,{name:"avatar",control:c.control,render:({field:s})=>{var a;return e.jsxs("div",{className:"relative w-14 h-14",children:[k?e.jsx("img",{src:k,alt:"avatar",className:"w-14 h-14 rounded-full object-cover border"}):e.jsx("div",{className:"w-14 h-14 rounded-full flex items-center justify-center text-lg font-medium",style:(()=>{const r=ee(x||(o==null?void 0:o.email)||"");return{backgroundColor:r.bg,color:r.fg}})(),children:((a=x==null?void 0:x[0])==null?void 0:a.toUpperCase())??"?"}),e.jsx("button",{type:"button",onClick:()=>{var r;return(r=D.current)==null?void 0:r.click()},className:"absolute bottom-0 right-0 w-6 h-6 rounded-full bg-background border border-border shadow-sm flex items-center justify-center hover:bg-accent transition-colors",children:e.jsx(W,{className:"w-3 h-3"})}),e.jsx("input",{ref:D,type:"file",accept:".png,.jpg,.jpeg",className:"hidden",onChange:r=>{var H;const l=(H=r.target.files)==null?void 0:H[0];if(l&&l.size>2*1024*1024){n.error("Image must be 2MB or less");return}l&&(s.onChange(l),F(URL.createObjectURL(l)))}})]})}})]}),e.jsx("div",{className:"flex justify-end",children:e.jsx(h,{type:"submit",size:"sm",disabled:c.formState.isSubmitting,children:c.formState.isSubmitting?"Saving…":"Save changes"})})]})})]}),e.jsxs(g,{children:[e.jsx(j,{children:e.jsx(v,{children:"Password"})}),e.jsx(w,{children:e.jsxs("form",{onSubmit:t.handleSubmit(Q),className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(m,{htmlFor:"current-password",children:"Current password"}),e.jsx(u,{id:"current-password",type:"password",...t.register("currentPassword")}),t.formState.errors.currentPassword&&e.jsx("p",{className:"text-sm text-destructive",children:t.formState.errors.currentPassword.message})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(m,{htmlFor:"new-password",children:"New password"}),e.jsx(u,{id:"new-password",type:"password",...t.register("newPassword")}),t.formState.errors.newPassword&&e.jsx("p",{className:"text-sm text-destructive",children:t.formState.errors.newPassword.message})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(m,{htmlFor:"confirm-password",children:"Confirm new password"}),e.jsx(u,{id:"confirm-password",type:"password",...t.register("confirmPassword")}),t.formState.errors.confirmPassword&&e.jsx("p",{className:"text-sm text-destructive",children:t.formState.errors.confirmPassword.message})]}),t.formState.errors.root&&e.jsx("p",{className:"text-sm text-destructive",children:t.formState.errors.root.message}),e.jsx("div",{className:"flex justify-end",children:e.jsx(h,{type:"submit",size:"sm",disabled:t.formState.isSubmitting,children:t.formState.isSubmitting?"Saving…":"Change password"})})]})})]}),N&&T.length>0&&e.jsxs(g,{children:[e.jsx(j,{children:e.jsx(v,{children:"Apps"})}),e.jsx(w,{children:e.jsx("div",{className:"flex flex-col divide-y divide-border",children:T.map(s=>e.jsxs("div",{className:"flex flex-col gap-2 py-4 first:pt-0 last:pb-0",children:[e.jsx(m,{htmlFor:`app-${s.id}`,children:"App Name"}),e.jsx(u,{id:`app-${s.id}`,value:B[s.id]??"",onChange:a=>L(r=>({...r,[s.id]:a.target.value}))}),e.jsxs("div",{className:"flex flex-col gap-1.5 mt-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-xs text-muted-foreground font-mono",children:s.bundle_id_key}),e.jsx(re,{tone:s.platform==="ios"?"ios":s.platform==="android"?"android":void 0,variant:s.platform==="both"?"secondary":void 0,className:"capitalize",children:s.platform})]}),e.jsxs("div",{className:"flex items-center justify-end gap-2",children:[e.jsx(h,{size:"sm",variant:"outline",disabled:U[s.id],onClick:()=>q(s.id),children:U[s.id]?"Saving…":"Save"}),e.jsxs(te,{children:[e.jsx(oe,{asChild:!0,children:e.jsx(h,{size:"sm",variant:"destructive",disabled:R[s.id],children:R[s.id]?"Deleting…":"Delete"})}),e.jsxs(ne,{children:[e.jsxs(ie,{children:[e.jsx(le,{children:"Delete app?"}),e.jsxs(ce,{children:["This will permanently delete ",e.jsx("strong",{children:s.name})," and all its builds. This action cannot be undone."]})]}),e.jsxs(de,{children:[e.jsx(me,{className:"w-24",children:"Cancel"}),e.jsx(ue,{className:se(ae({variant:"destructive"}),"w-24"),onClick:()=>Y(s.id),children:"Delete"})]})]})]})]})]})]},s.id))})})]})]})}export{we as DefaultSettings};
@@ -1 +1 @@
1
- import{al as E,am as L,a7 as i,ai as A,aa as M,ao as T,a4 as e,C as b,d as y,e as C,c as k,b as U,L as d,I as x,i as _,G as D,S as O,B as Y,a5 as z,a8 as h,_ as G}from"./index-BgHk9cIy.js";import{P as H}from"./pencil-Fy1ryeVj.js";const V=z({displayName:h().optional(),avatar:G(File).nullable().optional(),password:h().min(8),confirm:h()}).refine(o=>o.password===o.confirm,{message:"Passwords do not match",path:["confirm"]});function q(){const o=E(),[S]=L(),c=S.get("token")??"",[f,m]=i.useState("loading"),[P,F]=i.useState(""),[v,R]=i.useState(null),j=i.useRef(null),{register:p,handleSubmit:B,control:g,setError:u,formState:{errors:t,isSubmitting:w}}=A({resolver:M(V),mode:"onBlur",defaultValues:{displayName:"",avatar:null}}),l=T({control:g,name:"displayName"})??"";i.useEffect(()=>{if(!c){m("invalid");return}fetch(`/api/v1/invitations/verify?token=${c}`).then(a=>a.ok?a.json():Promise.reject()).then(a=>{F(a.role),m("valid")}).catch(()=>m("invalid"))},[c]);async function I(a){var r;try{const s=new FormData;if(s.append("token",c),s.append("password",a.password),(r=a.displayName)!=null&&r.trim()&&s.append("display_name",a.displayName.trim()),a.avatar&&s.append("avatar",a.avatar),!(await fetch("/api/v1/invitations/accept",{method:"POST",body:s})).ok){u("root",{message:"Failed to accept invitation"});return}o("/app-center",{replace:!0})}catch{u("root",{message:"Network error. Please try again."})}}return f==="loading"?e.jsx("div",{className:"flex min-h-svh items-center justify-center"}):f==="invalid"?e.jsx("div",{className:"bg-mesh-gradient flex min-h-svh items-center justify-center overflow-hidden p-4",children:e.jsx(b,{level:4,className:"w-full max-w-sm text-center",children:e.jsxs(y,{children:[e.jsx(C,{children:"Invitation expired"}),e.jsx(k,{children:"This invite link is invalid or has expired. Ask your admin for a new one."})]})})}):e.jsx("div",{className:"bg-mesh-gradient flex min-h-svh items-center justify-center overflow-hidden p-4",children:e.jsxs(b,{level:4,className:"w-full max-w-sm",children:[e.jsxs(y,{className:"text-center",children:[e.jsx(C,{children:"Set up your account"}),e.jsxs(k,{children:["You're joining as ",e.jsx("strong",{children:P})]})]}),e.jsx(U,{children:e.jsxs("form",{onSubmit:B(I),className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsxs(d,{htmlFor:"display-name",children:["Nickname ",e.jsx("span",{className:"text-muted-foreground text-xs",children:"(optional)"})]}),e.jsx(x,{id:"display-name",placeholder:"Your name",...p("displayName")})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsxs(d,{children:["Avatar ",e.jsx("span",{className:"text-muted-foreground text-xs",children:"(optional, png · jpg, max 2MB)"})]}),e.jsx(_,{name:"avatar",control:g,render:({field:a})=>{var r;return e.jsxs("div",{className:"relative w-14 h-14",children:[v?e.jsx("img",{src:v,alt:"avatar",className:"w-14 h-14 rounded-full object-cover border"}):e.jsx("div",{className:"w-14 h-14 rounded-full flex items-center justify-center text-lg font-medium",style:(()=>{const s=D(l);return{backgroundColor:s.bg,color:s.fg}})(),children:((r=l==null?void 0:l[0])==null?void 0:r.toUpperCase())??"?"}),e.jsx("button",{type:"button",onClick:()=>{var s;return(s=j.current)==null?void 0:s.click()},className:"absolute bottom-0 right-0 w-6 h-6 rounded-full bg-background border border-border shadow-sm flex items-center justify-center hover:bg-accent transition-colors",children:e.jsx(H,{className:"w-3 h-3"})}),e.jsx("input",{ref:j,type:"file",accept:"image/png,image/jpeg",className:"hidden",onChange:s=>{var N;const n=(N=s.target.files)==null?void 0:N[0];if(n){if(n.size>2*1024*1024){u("avatar",{message:"Max 2MB for avatar"});return}a.onChange(n),R(URL.createObjectURL(n))}}})]})}}),t.avatar&&e.jsx("p",{className:"text-sm text-destructive",children:t.avatar.message})]}),e.jsx(O,{}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(d,{htmlFor:"password",children:"Password"}),e.jsx(x,{id:"password",type:"password",...p("password")}),t.password&&e.jsx("p",{className:"text-sm text-destructive",children:t.password.message})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(d,{htmlFor:"confirm",children:"Confirm password"}),e.jsx(x,{id:"confirm",type:"password",...p("confirm")}),t.confirm&&e.jsx("p",{className:"text-sm text-destructive",children:t.confirm.message})]}),t.root&&e.jsx("p",{className:"text-sm text-destructive",children:t.root.message}),e.jsx(Y,{type:"submit",disabled:w,className:"w-full",children:w?"Creating account…":"Create account"})]})})]})})}export{q as Invite};
1
+ import{al as E,am as L,a7 as i,ai as A,aa as M,ao as T,a4 as e,C as b,d as y,e as C,c as k,b as U,L as d,I as x,i as _,G as D,S as O,B as Y,a5 as z,a8 as h,_ as G}from"./index-C1qD3uWi.js";import{P as H}from"./pencil-CKHOeGOo.js";const V=z({displayName:h().optional(),avatar:G(File).nullable().optional(),password:h().min(8),confirm:h()}).refine(o=>o.password===o.confirm,{message:"Passwords do not match",path:["confirm"]});function q(){const o=E(),[S]=L(),c=S.get("token")??"",[f,m]=i.useState("loading"),[P,F]=i.useState(""),[v,R]=i.useState(null),j=i.useRef(null),{register:p,handleSubmit:B,control:g,setError:u,formState:{errors:t,isSubmitting:w}}=A({resolver:M(V),mode:"onBlur",defaultValues:{displayName:"",avatar:null}}),l=T({control:g,name:"displayName"})??"";i.useEffect(()=>{if(!c){m("invalid");return}fetch(`/api/v1/invitations/verify?token=${c}`).then(a=>a.ok?a.json():Promise.reject()).then(a=>{F(a.role),m("valid")}).catch(()=>m("invalid"))},[c]);async function I(a){var r;try{const s=new FormData;if(s.append("token",c),s.append("password",a.password),(r=a.displayName)!=null&&r.trim()&&s.append("display_name",a.displayName.trim()),a.avatar&&s.append("avatar",a.avatar),!(await fetch("/api/v1/invitations/accept",{method:"POST",body:s})).ok){u("root",{message:"Failed to accept invitation"});return}o("/app-center",{replace:!0})}catch{u("root",{message:"Network error. Please try again."})}}return f==="loading"?e.jsx("div",{className:"flex min-h-svh items-center justify-center"}):f==="invalid"?e.jsx("div",{className:"bg-mesh-gradient flex min-h-svh items-center justify-center overflow-hidden p-4",children:e.jsx(b,{level:4,className:"w-full max-w-sm text-center",children:e.jsxs(y,{children:[e.jsx(C,{children:"Invitation expired"}),e.jsx(k,{children:"This invite link is invalid or has expired. Ask your admin for a new one."})]})})}):e.jsx("div",{className:"bg-mesh-gradient flex min-h-svh items-center justify-center overflow-hidden p-4",children:e.jsxs(b,{level:4,className:"w-full max-w-sm",children:[e.jsxs(y,{className:"text-center",children:[e.jsx(C,{children:"Set up your account"}),e.jsxs(k,{children:["You're joining as ",e.jsx("strong",{children:P})]})]}),e.jsx(U,{children:e.jsxs("form",{onSubmit:B(I),className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsxs(d,{htmlFor:"display-name",children:["Nickname ",e.jsx("span",{className:"text-muted-foreground text-xs",children:"(optional)"})]}),e.jsx(x,{id:"display-name",placeholder:"Your name",...p("displayName")})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsxs(d,{children:["Avatar ",e.jsx("span",{className:"text-muted-foreground text-xs",children:"(optional, png · jpg, max 2MB)"})]}),e.jsx(_,{name:"avatar",control:g,render:({field:a})=>{var r;return e.jsxs("div",{className:"relative w-14 h-14",children:[v?e.jsx("img",{src:v,alt:"avatar",className:"w-14 h-14 rounded-full object-cover border"}):e.jsx("div",{className:"w-14 h-14 rounded-full flex items-center justify-center text-lg font-medium",style:(()=>{const s=D(l);return{backgroundColor:s.bg,color:s.fg}})(),children:((r=l==null?void 0:l[0])==null?void 0:r.toUpperCase())??"?"}),e.jsx("button",{type:"button",onClick:()=>{var s;return(s=j.current)==null?void 0:s.click()},className:"absolute bottom-0 right-0 w-6 h-6 rounded-full bg-background border border-border shadow-sm flex items-center justify-center hover:bg-accent transition-colors",children:e.jsx(H,{className:"w-3 h-3"})}),e.jsx("input",{ref:j,type:"file",accept:"image/png,image/jpeg",className:"hidden",onChange:s=>{var N;const n=(N=s.target.files)==null?void 0:N[0];if(n){if(n.size>2*1024*1024){u("avatar",{message:"Max 2MB for avatar"});return}a.onChange(n),R(URL.createObjectURL(n))}}})]})}}),t.avatar&&e.jsx("p",{className:"text-sm text-destructive",children:t.avatar.message})]}),e.jsx(O,{}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(d,{htmlFor:"password",children:"Password"}),e.jsx(x,{id:"password",type:"password",...p("password")}),t.password&&e.jsx("p",{className:"text-sm text-destructive",children:t.password.message})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(d,{htmlFor:"confirm",children:"Confirm password"}),e.jsx(x,{id:"confirm",type:"password",...p("confirm")}),t.confirm&&e.jsx("p",{className:"text-sm text-destructive",children:t.confirm.message})]}),t.root&&e.jsx("p",{className:"text-sm text-destructive",children:t.root.message}),e.jsx(Y,{type:"submit",disabled:w,className:"w-full",children:w?"Creating account…":"Create account"})]})})]})})}export{q as Invite};
@@ -1,4 +1,4 @@
1
- var li=Object.defineProperty;var ci=(e,t,n)=>t in e?li(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var mt=(e,t,n)=>ci(e,typeof t!="symbol"?t+"":t,n);import{a2 as fr,a4 as b,a7 as j,ac as fi,M as hi}from"./index-BgHk9cIy.js";import{u as pi,T as di,b as gi,c as mi}from"./tabs-BCSJZGsw.js";function Xe(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function yi(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function ut(e){let t,n,r;e.length!==2?(t=Xe,n=(u,s)=>Xe(e(u),s),r=(u,s)=>e(u)-s):(t=e===Xe||e===yi?e:xi,n=e,r=e);function i(u,s,l=0,h=u.length){if(l<h){if(t(s,s)!==0)return h;do{const c=l+h>>>1;n(u[c],s)<0?l=c+1:h=c}while(l<h)}return l}function o(u,s,l=0,h=u.length){if(l<h){if(t(s,s)!==0)return h;do{const c=l+h>>>1;n(u[c],s)<=0?l=c+1:h=c}while(l<h)}return l}function a(u,s,l=0,h=u.length){const c=i(u,s,l,h-1);return c>l&&r(u[c-1],s)>-r(u[c],s)?c-1:c}return{left:i,center:a,right:o}}function xi(){return 0}function vi(e){return e===null?NaN:+e}const bi=ut(Xe),wi=bi.right;ut(vi).center;const Mi=Math.sqrt(50),ki=Math.sqrt(10),Ti=Math.sqrt(2);function Ze(e,t,n){const r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),o=r/Math.pow(10,i),a=o>=Mi?10:o>=ki?5:o>=Ti?2:1;let u,s,l;return i<0?(l=Math.pow(10,-i)/a,u=Math.round(e*l),s=Math.round(t*l),u/l<e&&++u,s/l>t&&--s,l=-l):(l=Math.pow(10,i)*a,u=Math.round(e/l),s=Math.round(t/l),u*l<e&&++u,s*l>t&&--s),s<u&&.5<=n&&n<2?Ze(e,t,n*2):[u,s,l]}function Ni(e,t,n){if(t=+t,e=+e,n=+n,!(n>0))return[];if(e===t)return[e];const r=t<e,[i,o,a]=r?Ze(t,e,n):Ze(e,t,n);if(!(o>=i))return[];const u=o-i+1,s=new Array(u);if(r)if(a<0)for(let l=0;l<u;++l)s[l]=(o-l)/-a;else for(let l=0;l<u;++l)s[l]=(o-l)*a;else if(a<0)for(let l=0;l<u;++l)s[l]=(i+l)/-a;else for(let l=0;l<u;++l)s[l]=(i+l)*a;return s}function Yt(e,t,n){return t=+t,e=+e,n=+n,Ze(e,t,n)[2]}function Wt(e,t,n){t=+t,e=+e,n=+n;const r=t<e,i=r?Yt(t,e,n):Yt(e,t,n);return(r?-1:1)*(i<0?1/-i:i)}function hr(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function Pe(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Ye(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function de(){}var we=.7,$e=1/we,Se="\\s*([+-]?\\d+)\\s*",je="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",re="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Ci=/^#([0-9a-f]{3,8})$/,Si=new RegExp(`^rgb\\(${Se},${Se},${Se}\\)$`),_i=new RegExp(`^rgb\\(${re},${re},${re}\\)$`),$i=new RegExp(`^rgba\\(${Se},${Se},${Se},${je}\\)$`),Ei=new RegExp(`^rgba\\(${re},${re},${re},${je}\\)$`),Ai=new RegExp(`^hsl\\(${je},${re},${re}\\)$`),Di=new RegExp(`^hsla\\(${je},${re},${re},${je}\\)$`),fn={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Pe(de,Ie,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:hn,formatHex:hn,formatHex8:Pi,formatHsl:Li,formatRgb:pn,toString:pn});function hn(){return this.rgb().formatHex()}function Pi(){return this.rgb().formatHex8()}function Li(){return pr(this).formatHsl()}function pn(){return this.rgb().formatRgb()}function Ie(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=Ci.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?dn(t):n===3?new Y(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?qe(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?qe(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Si.exec(e))?new Y(t[1],t[2],t[3],1):(t=_i.exec(e))?new Y(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=$i.exec(e))?qe(t[1],t[2],t[3],t[4]):(t=Ei.exec(e))?qe(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Ai.exec(e))?yn(t[1],t[2]/100,t[3]/100,1):(t=Di.exec(e))?yn(t[1],t[2]/100,t[3]/100,t[4]):fn.hasOwnProperty(e)?dn(fn[e]):e==="transparent"?new Y(NaN,NaN,NaN,0):null}function dn(e){return new Y(e>>16&255,e>>8&255,e&255,1)}function qe(e,t,n,r){return r<=0&&(e=t=n=NaN),new Y(e,t,n,r)}function tn(e){return e instanceof de||(e=Ie(e)),e?(e=e.rgb(),new Y(e.r,e.g,e.b,e.opacity)):new Y}function qt(e,t,n,r){return arguments.length===1?tn(e):new Y(e,t,n,r??1)}function Y(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}Pe(Y,qt,Ye(de,{brighter(e){return e=e==null?$e:Math.pow($e,e),new Y(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?we:Math.pow(we,e),new Y(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Y(ve(this.r),ve(this.g),ve(this.b),Qe(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:gn,formatHex:gn,formatHex8:Ri,formatRgb:mn,toString:mn}));function gn(){return`#${xe(this.r)}${xe(this.g)}${xe(this.b)}`}function Ri(){return`#${xe(this.r)}${xe(this.g)}${xe(this.b)}${xe((isNaN(this.opacity)?1:this.opacity)*255)}`}function mn(){const e=Qe(this.opacity);return`${e===1?"rgb(":"rgba("}${ve(this.r)}, ${ve(this.g)}, ${ve(this.b)}${e===1?")":`, ${e})`}`}function Qe(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function ve(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function xe(e){return e=ve(e),(e<16?"0":"")+e.toString(16)}function yn(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new ne(e,t,n,r)}function pr(e){if(e instanceof ne)return new ne(e.h,e.s,e.l,e.opacity);if(e instanceof de||(e=Ie(e)),!e)return new ne;if(e instanceof ne)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),o=Math.max(t,n,r),a=NaN,u=o-i,s=(o+i)/2;return u?(t===o?a=(n-r)/u+(n<r)*6:n===o?a=(r-t)/u+2:a=(t-n)/u+4,u/=s<.5?o+i:2-o-i,a*=60):u=s>0&&s<1?0:a,new ne(a,u,s,e.opacity)}function Vt(e,t,n,r){return arguments.length===1?pr(e):new ne(e,t,n,r??1)}function ne(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Pe(ne,Vt,Ye(de,{brighter(e){return e=e==null?$e:Math.pow($e,e),new ne(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?we:Math.pow(we,e),new ne(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Y(yt(e>=240?e-240:e+120,i,r),yt(e,i,r),yt(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new ne(xn(this.h),Ve(this.s),Ve(this.l),Qe(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Qe(this.opacity);return`${e===1?"hsl(":"hsla("}${xn(this.h)}, ${Ve(this.s)*100}%, ${Ve(this.l)*100}%${e===1?")":`, ${e})`}`}}));function xn(e){return e=(e||0)%360,e<0?e+360:e}function Ve(e){return Math.max(0,Math.min(1,e||0))}function yt(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const dr=Math.PI/180,gr=180/Math.PI,Je=18,mr=.96422,yr=1,xr=.82521,vr=4/29,_e=6/29,br=3*_e*_e,Oi=_e*_e*_e;function wr(e){if(e instanceof ie)return new ie(e.l,e.a,e.b,e.opacity);if(e instanceof se)return Mr(e);e instanceof Y||(e=tn(e));var t=wt(e.r),n=wt(e.g),r=wt(e.b),i=xt((.2225045*t+.7168786*n+.0606169*r)/yr),o,a;return t===n&&n===r?o=a=i:(o=xt((.4360747*t+.3850649*n+.1430804*r)/mr),a=xt((.0139322*t+.0971045*n+.7141733*r)/xr)),new ie(116*i-16,500*(o-i),200*(i-a),e.opacity)}function Bt(e,t,n,r){return arguments.length===1?wr(e):new ie(e,t,n,r??1)}function ie(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}Pe(ie,Bt,Ye(de,{brighter(e){return new ie(this.l+Je*(e??1),this.a,this.b,this.opacity)},darker(e){return new ie(this.l-Je*(e??1),this.a,this.b,this.opacity)},rgb(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,n=isNaN(this.b)?e:e-this.b/200;return t=mr*vt(t),e=yr*vt(e),n=xr*vt(n),new Y(bt(3.1338561*t-1.6168667*e-.4906146*n),bt(-.9787684*t+1.9161415*e+.033454*n),bt(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}}));function xt(e){return e>Oi?Math.pow(e,1/3):e/br+vr}function vt(e){return e>_e?e*e*e:br*(e-vr)}function bt(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function wt(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function Ui(e){if(e instanceof se)return new se(e.h,e.c,e.l,e.opacity);if(e instanceof ie||(e=wr(e)),e.a===0&&e.b===0)return new se(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*gr;return new se(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function Gt(e,t,n,r){return arguments.length===1?Ui(e):new se(e,t,n,r??1)}function se(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function Mr(e){if(isNaN(e.h))return new ie(e.l,0,0,e.opacity);var t=e.h*dr;return new ie(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}Pe(se,Gt,Ye(de,{brighter(e){return new se(this.h,this.c,this.l+Je*(e??1),this.opacity)},darker(e){return new se(this.h,this.c,this.l-Je*(e??1),this.opacity)},rgb(){return Mr(this).rgb()}}));var kr=-.14861,nn=1.78277,rn=-.29227,st=-.90649,He=1.97294,vn=He*st,bn=He*nn,wn=nn*rn-st*kr;function Fi(e){if(e instanceof be)return new be(e.h,e.s,e.l,e.opacity);e instanceof Y||(e=tn(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=(wn*r+vn*t-bn*n)/(wn+vn-bn),o=r-i,a=(He*(n-i)-rn*o)/st,u=Math.sqrt(a*a+o*o)/(He*i*(1-i)),s=u?Math.atan2(a,o)*gr-120:NaN;return new be(s<0?s+360:s,u,i,e.opacity)}function Xt(e,t,n,r){return arguments.length===1?Fi(e):new be(e,t,n,r??1)}function be(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Pe(be,Xt,Ye(de,{brighter(e){return e=e==null?$e:Math.pow($e,e),new be(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?we:Math.pow(we,e),new be(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*dr,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),r=Math.cos(e),i=Math.sin(e);return new Y(255*(t+n*(kr*r+nn*i)),255*(t+n*(rn*r+st*i)),255*(t+n*(He*r)),this.opacity)}}));const lt=e=>()=>e;function Tr(e,t){return function(n){return e+n*t}}function ji(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function on(e,t){var n=t-e;return n?Tr(e,n>180||n<-180?n-360*Math.round(n/360):n):lt(isNaN(e)?t:e)}function Ii(e){return(e=+e)==1?W:function(t,n){return n-t?ji(t,n,e):lt(isNaN(t)?n:t)}}function W(e,t){var n=t-e;return n?Tr(e,n):lt(isNaN(e)?t:e)}const Zt=(function e(t){var n=Ii(t);function r(i,o){var a=n((i=qt(i)).r,(o=qt(o)).r),u=n(i.g,o.g),s=n(i.b,o.b),l=W(i.opacity,o.opacity);return function(h){return i.r=a(h),i.g=u(h),i.b=s(h),i.opacity=l(h),i+""}}return r.gamma=e,r})(1);function Hi(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(o){for(i=0;i<n;++i)r[i]=e[i]*(1-o)+t[i]*o;return r}}function zi(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Yi(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=new Array(r),o=new Array(n),a;for(a=0;a<r;++a)i[a]=an(e[a],t[a]);for(;a<n;++a)o[a]=t[a];return function(u){for(a=0;a<r;++a)o[a]=i[a](u);return o}}function Wi(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Ke(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function qi(e,t){var n={},r={},i;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(i in t)i in e?n[i]=an(e[i],t[i]):r[i]=t[i];return function(o){for(i in n)r[i]=n[i](o);return r}}var Qt=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Mt=new RegExp(Qt.source,"g");function Vi(e){return function(){return e}}function Bi(e){return function(t){return e(t)+""}}function Gi(e,t){var n=Qt.lastIndex=Mt.lastIndex=0,r,i,o,a=-1,u=[],s=[];for(e=e+"",t=t+"";(r=Qt.exec(e))&&(i=Mt.exec(t));)(o=i.index)>n&&(o=t.slice(n,o),u[a]?u[a]+=o:u[++a]=o),(r=r[0])===(i=i[0])?u[a]?u[a]+=i:u[++a]=i:(u[++a]=null,s.push({i:a,x:Ke(r,i)})),n=Mt.lastIndex;return n<t.length&&(o=t.slice(n),u[a]?u[a]+=o:u[++a]=o),u.length<2?s[0]?Bi(s[0].x):Vi(t):(t=s.length,function(l){for(var h=0,c;h<t;++h)u[(c=s[h]).i]=c.x(l);return u.join("")})}function an(e,t){var n=typeof t,r;return t==null||n==="boolean"?lt(t):(n==="number"?Ke:n==="string"?(r=Ie(t))?(t=r,Zt):Gi:t instanceof Ie?Zt:t instanceof Date?Wi:zi(t)?Hi:Array.isArray(t)?Yi:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?qi:Ke)(e,t)}function Nr(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}function Cr(e){return function(t,n){var r=e((t=Vt(t)).h,(n=Vt(n)).h),i=W(t.s,n.s),o=W(t.l,n.l),a=W(t.opacity,n.opacity);return function(u){return t.h=r(u),t.s=i(u),t.l=o(u),t.opacity=a(u),t+""}}}const Xi=Cr(on);var Zi=Cr(W);function Qi(e,t){var n=W((e=Bt(e)).l,(t=Bt(t)).l),r=W(e.a,t.a),i=W(e.b,t.b),o=W(e.opacity,t.opacity);return function(a){return e.l=n(a),e.a=r(a),e.b=i(a),e.opacity=o(a),e+""}}function Sr(e){return function(t,n){var r=e((t=Gt(t)).h,(n=Gt(n)).h),i=W(t.c,n.c),o=W(t.l,n.l),a=W(t.opacity,n.opacity);return function(u){return t.h=r(u),t.c=i(u),t.l=o(u),t.opacity=a(u),t+""}}}const Ji=Sr(on);var Ki=Sr(W);function _r(e){return(function t(n){n=+n;function r(i,o){var a=e((i=Xt(i)).h,(o=Xt(o)).h),u=W(i.s,o.s),s=W(i.l,o.l),l=W(i.opacity,o.opacity);return function(h){return i.h=a(h),i.s=u(h),i.l=s(Math.pow(h,n)),i.opacity=l(h),i+""}}return r.gamma=t,r})(1)}const eo=_r(on);var to=_r(W);function no(e){return function(){return e}}function ro(e){return+e}var Mn=[0,1];function Ce(e){return e}function Jt(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:no(isNaN(t)?NaN:.5)}function io(e,t){var n;return e>t&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function oo(e,t,n){var r=e[0],i=e[1],o=t[0],a=t[1];return i<r?(r=Jt(i,r),o=n(a,o)):(r=Jt(r,i),o=n(o,a)),function(u){return o(r(u))}}function ao(e,t,n){var r=Math.min(e.length,t.length)-1,i=new Array(r),o=new Array(r),a=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++a<r;)i[a]=Jt(e[a],e[a+1]),o[a]=n(t[a],t[a+1]);return function(u){var s=wi(e,u,1,r)-1;return o[s](i[s](u))}}function $r(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function uo(){var e=Mn,t=Mn,n=an,r,i,o,a=Ce,u,s,l;function h(){var f=Math.min(e.length,t.length);return a!==Ce&&(a=io(e[0],e[f-1])),u=f>2?ao:oo,s=l=null,c}function c(f){return f==null||isNaN(f=+f)?o:(s||(s=u(e.map(r),t,n)))(r(a(f)))}return c.invert=function(f){return a(i((l||(l=u(t,e.map(r),Ke)))(f)))},c.domain=function(f){return arguments.length?(e=Array.from(f,ro),h()):e.slice()},c.range=function(f){return arguments.length?(t=Array.from(f),h()):t.slice()},c.rangeRound=function(f){return t=Array.from(f),n=Nr,h()},c.clamp=function(f){return arguments.length?(a=f?!0:Ce,h()):a!==Ce},c.interpolate=function(f){return arguments.length?(n=f,h()):n},c.unknown=function(f){return arguments.length?(o=f,c):o},function(f,y){return r=f,i=y,h()}}function Er(){return uo()(Ce,Ce)}function so(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function et(e,t){if(!isFinite(e)||e===0)return null;var n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"),r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function Ee(e){return e=et(Math.abs(e)),e?e[1]:NaN}function lo(e,t){return function(n,r){for(var i=n.length,o=[],a=0,u=e[0],s=0;i>0&&u>0&&(s+u+1>r&&(u=Math.max(1,r-s)),o.push(n.substring(i-=u,i+u)),!((s+=u+1)>r));)u=e[a=(a+1)%e.length];return o.reverse().join(t)}}function co(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var fo=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function tt(e){if(!(t=fo.exec(e)))throw new Error("invalid format: "+e);var t;return new un({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}tt.prototype=un.prototype;function un(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}un.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function ho(e){e:for(var t=e.length,n=1,r=-1,i;n<t;++n)switch(e[n]){case".":r=i=n;break;case"0":r===0&&(r=n),i=n;break;default:if(!+e[n])break e;r>0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(i+1):e}var nt;function po(e,t){var n=et(e,t);if(!n)return nt=void 0,e.toPrecision(t);var r=n[0],i=n[1],o=i-(nt=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+et(e,Math.max(0,t+o-1))[0]}function kn(e,t){var n=et(e,t);if(!n)return e+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const Tn={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:so,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>kn(e*100,t),r:kn,s:po,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Nn(e){return e}var Cn=Array.prototype.map,Sn=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function go(e){var t=e.grouping===void 0||e.thousands===void 0?Nn:lo(Cn.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",i=e.decimal===void 0?".":e.decimal+"",o=e.numerals===void 0?Nn:co(Cn.call(e.numerals,String)),a=e.percent===void 0?"%":e.percent+"",u=e.minus===void 0?"−":e.minus+"",s=e.nan===void 0?"NaN":e.nan+"";function l(c,f){c=tt(c);var y=c.fill,M=c.align,v=c.sign,T=c.symbol,S=c.zero,m=c.width,g=c.comma,d=c.precision,k=c.trim,p=c.type;p==="n"?(g=!0,p="g"):Tn[p]||(d===void 0&&(d=12),k=!0,p="g"),(S||y==="0"&&M==="=")&&(S=!0,y="0",M="=");var w=(f&&f.prefix!==void 0?f.prefix:"")+(T==="$"?n:T==="#"&&/[boxX]/.test(p)?"0"+p.toLowerCase():""),_=(T==="$"?r:/[%p]/.test(p)?a:"")+(f&&f.suffix!==void 0?f.suffix:""),A=Tn[p],V=/[defgprs%]/.test(p);d=d===void 0?6:/[gprs]/.test(p)?Math.max(1,Math.min(21,d)):Math.max(0,Math.min(20,d));function O(C){var $=w,D=_,H,U,Q;if(p==="c")D=A(C)+D,C="";else{C=+C;var ae=C<0||1/C<0;if(C=isNaN(C)?s:A(Math.abs(C),d),k&&(C=ho(C)),ae&&+C==0&&v!=="+"&&(ae=!1),$=(ae?v==="("?v:u:v==="-"||v==="("?"":v)+$,D=(p==="s"&&!isNaN(C)&&nt!==void 0?Sn[8+nt/3]:"")+D+(ae&&v==="("?")":""),V){for(H=-1,U=C.length;++H<U;)if(Q=C.charCodeAt(H),48>Q||Q>57){D=(Q===46?i+C.slice(H+1):C.slice(H))+D,C=C.slice(0,H);break}}}g&&!S&&(C=t(C,1/0));var ee=$.length+C.length+D.length,P=ee<m?new Array(m-ee+1).join(y):"";switch(g&&S&&(C=t(P+C,P.length?m-D.length:1/0),P=""),M){case"<":C=$+C+D+P;break;case"=":C=$+P+C+D;break;case"^":C=P.slice(0,ee=P.length>>1)+$+C+D+P.slice(ee);break;default:C=P+$+C+D;break}return o(C)}return O.toString=function(){return c+""},O}function h(c,f){var y=Math.max(-8,Math.min(8,Math.floor(Ee(f)/3)))*3,M=Math.pow(10,-y),v=l((c=tt(c),c.type="f",c),{suffix:Sn[8+y/3]});return function(T){return v(M*T)}}return{format:l,formatPrefix:h}}var Be,Ar,Dr;mo({thousands:",",grouping:[3],currency:["$",""]});function mo(e){return Be=go(e),Ar=Be.format,Dr=Be.formatPrefix,Be}function yo(e){return Math.max(0,-Ee(Math.abs(e)))}function xo(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Ee(t)/3)))*3-Ee(Math.abs(e)))}function vo(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Ee(t)-Ee(e))+1}function bo(e,t,n,r){var i=Wt(e,t,n),o;switch(r=tt(r??",f"),r.type){case"s":{var a=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(o=xo(i,a))&&(r.precision=o),Dr(r,a)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(o=vo(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=o-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(o=yo(i))&&(r.precision=o-(r.type==="%")*2);break}}return Ar(r)}function wo(e){var t=e.domain;return e.ticks=function(n){var r=t();return Ni(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var i=t();return bo(i[0],i[i.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),i=0,o=r.length-1,a=r[i],u=r[o],s,l,h=10;for(u<a&&(l=a,a=u,u=l,l=i,i=o,o=l);h-- >0;){if(l=Yt(a,u,n),l===s)return r[i]=a,r[o]=u,t(r);if(l>0)a=Math.floor(a/l)*l,u=Math.ceil(u/l)*l;else if(l<0)a=Math.ceil(a*l)/l,u=Math.floor(u*l)/l;else break;s=l}return e},e}function Pr(){var e=Er();return e.copy=function(){return $r(e,Pr())},hr.apply(e,arguments),wo(e)}function Mo(e,t){e=e.slice();var n=0,r=e.length-1,i=e[n],o=e[r],a;return o<i&&(a=n,n=r,r=a,a=i,i=o,o=a),e[n]=t.floor(i),e[r]=t.ceil(o),e}const kt=new Date,Tt=new Date;function I(e,t,n,r){function i(o){return e(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=o=>(e(o=new Date(+o)),o),i.ceil=o=>(e(o=new Date(o-1)),t(o,1),e(o),o),i.round=o=>{const a=i(o),u=i.ceil(o);return o-a<u-o?a:u},i.offset=(o,a)=>(t(o=new Date(+o),a==null?1:Math.floor(a)),o),i.range=(o,a,u)=>{const s=[];if(o=i.ceil(o),u=u==null?1:Math.floor(u),!(o<a)||!(u>0))return s;let l;do s.push(l=new Date(+o)),t(o,u),e(o);while(l<o&&o<a);return s},i.filter=o=>I(a=>{if(a>=a)for(;e(a),!o(a);)a.setTime(a-1)},(a,u)=>{if(a>=a)if(u<0)for(;++u<=0;)for(;t(a,-1),!o(a););else for(;--u>=0;)for(;t(a,1),!o(a););}),n&&(i.count=(o,a)=>(kt.setTime(+o),Tt.setTime(+a),e(kt),e(Tt),Math.floor(n(kt,Tt))),i.every=o=>(o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(r?a=>r(a)%o===0:a=>i.count(0,a)%o===0):i)),i}const rt=I(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);rt.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?I(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):rt);rt.range;const le=1e3,J=le*60,ce=J*60,fe=ce*24,sn=fe*7,_n=fe*30,Nt=fe*365,he=I(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*le)},(e,t)=>(t-e)/le,e=>e.getUTCSeconds());he.range;const ct=I(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*le)},(e,t)=>{e.setTime(+e+t*J)},(e,t)=>(t-e)/J,e=>e.getMinutes());ct.range;const Lr=I(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*J)},(e,t)=>(t-e)/J,e=>e.getUTCMinutes());Lr.range;const ft=I(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*le-e.getMinutes()*J)},(e,t)=>{e.setTime(+e+t*ce)},(e,t)=>(t-e)/ce,e=>e.getHours());ft.range;const Rr=I(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*ce)},(e,t)=>(t-e)/ce,e=>e.getUTCHours());Rr.range;const Le=I(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*J)/fe,e=>e.getDate()-1);Le.range;const ht=I(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/fe,e=>e.getUTCDate()-1);ht.range;const ko=I(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/fe,e=>Math.floor(e/fe));ko.range;function Me(e){return I(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,n)=>{t.setDate(t.getDate()+n*7)},(t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*J)/sn)}const We=Me(0),it=Me(1),To=Me(2),No=Me(3),Ae=Me(4),Co=Me(5),So=Me(6);We.range;it.range;To.range;No.range;Ae.range;Co.range;So.range;function ke(e){return I(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCDate(t.getUTCDate()+n*7)},(t,n)=>(n-t)/sn)}const ln=ke(0),ot=ke(1),_o=ke(2),$o=ke(3),De=ke(4),Eo=ke(5),Ao=ke(6);ln.range;ot.range;_o.range;$o.range;De.range;Eo.range;Ao.range;const pt=I(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());pt.range;const Or=I(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());Or.range;const oe=I(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());oe.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:I(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)});oe.range;const pe=I(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());pe.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:I(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)});pe.range;function Do(e,t,n,r,i,o){const a=[[he,1,le],[he,5,5*le],[he,15,15*le],[he,30,30*le],[o,1,J],[o,5,5*J],[o,15,15*J],[o,30,30*J],[i,1,ce],[i,3,3*ce],[i,6,6*ce],[i,12,12*ce],[r,1,fe],[r,2,2*fe],[n,1,sn],[t,1,_n],[t,3,3*_n],[e,1,Nt]];function u(l,h,c){const f=h<l;f&&([l,h]=[h,l]);const y=c&&typeof c.range=="function"?c:s(l,h,c),M=y?y.range(l,+h+1):[];return f?M.reverse():M}function s(l,h,c){const f=Math.abs(h-l)/c,y=ut(([,,T])=>T).right(a,f);if(y===a.length)return e.every(Wt(l/Nt,h/Nt,c));if(y===0)return rt.every(Math.max(Wt(l,h,c),1));const[M,v]=a[f/a[y-1][2]<a[y][2]/f?y-1:y];return M.every(v)}return[u,s]}const[Po,Lo]=Do(oe,pt,We,Le,ft,ct);function Ct(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function St(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function Re(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function Ro(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,o=e.days,a=e.shortDays,u=e.months,s=e.shortMonths,l=Oe(i),h=Ue(i),c=Oe(o),f=Ue(o),y=Oe(a),M=Ue(a),v=Oe(u),T=Ue(u),S=Oe(s),m=Ue(s),g={a:Q,A:ae,b:ee,B:P,c:null,d:Ln,e:Ln,f:ia,g:da,G:ma,H:ta,I:na,j:ra,L:Ur,m:oa,M:aa,p:ge,q:ni,Q:Un,s:Fn,S:ua,u:sa,U:la,V:ca,w:fa,W:ha,x:null,X:null,y:pa,Y:ga,Z:ya,"%":On},d={a:ri,A:ii,b:oi,B:ai,c:null,d:Rn,e:Rn,f:wa,g:Aa,G:Pa,H:xa,I:va,j:ba,L:jr,m:Ma,M:ka,p:ui,q:si,Q:Un,s:Fn,S:Ta,u:Na,U:Ca,V:Sa,w:_a,W:$a,x:null,X:null,y:Ea,Y:Da,Z:La,"%":On},k={a:V,A:O,b:C,B:$,c:D,d:Dn,e:Dn,f:Qo,g:An,G:En,H:Pn,I:Pn,j:Bo,L:Zo,m:Vo,M:Go,p:A,q:qo,Q:Ko,s:ea,S:Xo,u:Io,U:Ho,V:zo,w:jo,W:Yo,x:H,X:U,y:An,Y:En,Z:Wo,"%":Jo};g.x=p(n,g),g.X=p(r,g),g.c=p(t,g),d.x=p(n,d),d.X=p(r,d),d.c=p(t,d);function p(N,E){return function(L){var x=[],B=-1,F=0,G=N.length,X,me,cn;for(L instanceof Date||(L=new Date(+L));++B<G;)N.charCodeAt(B)===37&&(x.push(N.slice(F,B)),(me=$n[X=N.charAt(++B)])!=null?X=N.charAt(++B):me=X==="e"?" ":"0",(cn=E[X])&&(X=cn(L,me)),x.push(X),F=B+1);return x.push(N.slice(F,B)),x.join("")}}function w(N,E){return function(L){var x=Re(1900,void 0,1),B=_(x,N,L+="",0),F,G;if(B!=L.length)return null;if("Q"in x)return new Date(x.Q);if("s"in x)return new Date(x.s*1e3+("L"in x?x.L:0));if(E&&!("Z"in x)&&(x.Z=0),"p"in x&&(x.H=x.H%12+x.p*12),x.m===void 0&&(x.m="q"in x?x.q:0),"V"in x){if(x.V<1||x.V>53)return null;"w"in x||(x.w=1),"Z"in x?(F=St(Re(x.y,0,1)),G=F.getUTCDay(),F=G>4||G===0?ot.ceil(F):ot(F),F=ht.offset(F,(x.V-1)*7),x.y=F.getUTCFullYear(),x.m=F.getUTCMonth(),x.d=F.getUTCDate()+(x.w+6)%7):(F=Ct(Re(x.y,0,1)),G=F.getDay(),F=G>4||G===0?it.ceil(F):it(F),F=Le.offset(F,(x.V-1)*7),x.y=F.getFullYear(),x.m=F.getMonth(),x.d=F.getDate()+(x.w+6)%7)}else("W"in x||"U"in x)&&("w"in x||(x.w="u"in x?x.u%7:"W"in x?1:0),G="Z"in x?St(Re(x.y,0,1)).getUTCDay():Ct(Re(x.y,0,1)).getDay(),x.m=0,x.d="W"in x?(x.w+6)%7+x.W*7-(G+5)%7:x.w+x.U*7-(G+6)%7);return"Z"in x?(x.H+=x.Z/100|0,x.M+=x.Z%100,St(x)):Ct(x)}}function _(N,E,L,x){for(var B=0,F=E.length,G=L.length,X,me;B<F;){if(x>=G)return-1;if(X=E.charCodeAt(B++),X===37){if(X=E.charAt(B++),me=k[X in $n?E.charAt(B++):X],!me||(x=me(N,L,x))<0)return-1}else if(X!=L.charCodeAt(x++))return-1}return x}function A(N,E,L){var x=l.exec(E.slice(L));return x?(N.p=h.get(x[0].toLowerCase()),L+x[0].length):-1}function V(N,E,L){var x=y.exec(E.slice(L));return x?(N.w=M.get(x[0].toLowerCase()),L+x[0].length):-1}function O(N,E,L){var x=c.exec(E.slice(L));return x?(N.w=f.get(x[0].toLowerCase()),L+x[0].length):-1}function C(N,E,L){var x=S.exec(E.slice(L));return x?(N.m=m.get(x[0].toLowerCase()),L+x[0].length):-1}function $(N,E,L){var x=v.exec(E.slice(L));return x?(N.m=T.get(x[0].toLowerCase()),L+x[0].length):-1}function D(N,E,L){return _(N,t,E,L)}function H(N,E,L){return _(N,n,E,L)}function U(N,E,L){return _(N,r,E,L)}function Q(N){return a[N.getDay()]}function ae(N){return o[N.getDay()]}function ee(N){return s[N.getMonth()]}function P(N){return u[N.getMonth()]}function ge(N){return i[+(N.getHours()>=12)]}function ni(N){return 1+~~(N.getMonth()/3)}function ri(N){return a[N.getUTCDay()]}function ii(N){return o[N.getUTCDay()]}function oi(N){return s[N.getUTCMonth()]}function ai(N){return u[N.getUTCMonth()]}function ui(N){return i[+(N.getUTCHours()>=12)]}function si(N){return 1+~~(N.getUTCMonth()/3)}return{format:function(N){var E=p(N+="",g);return E.toString=function(){return N},E},parse:function(N){var E=w(N+="",!1);return E.toString=function(){return N},E},utcFormat:function(N){var E=p(N+="",d);return E.toString=function(){return N},E},utcParse:function(N){var E=w(N+="",!0);return E.toString=function(){return N},E}}}var $n={"-":"",_:" ",0:"0"},q=/^\s*\d+/,Oo=/^%/,Uo=/[\\^$*+?|[\]().{}]/g;function R(e,t,n){var r=e<0?"-":"",i=(r?-e:e)+"",o=i.length;return r+(o<n?new Array(n-o+1).join(t)+i:i)}function Fo(e){return e.replace(Uo,"\\$&")}function Oe(e){return new RegExp("^(?:"+e.map(Fo).join("|")+")","i")}function Ue(e){return new Map(e.map((t,n)=>[t.toLowerCase(),n]))}function jo(e,t,n){var r=q.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function Io(e,t,n){var r=q.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function Ho(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function zo(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function Yo(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function En(e,t,n){var r=q.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function An(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function Wo(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function qo(e,t,n){var r=q.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function Vo(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function Dn(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function Bo(e,t,n){var r=q.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function Pn(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function Go(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function Xo(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function Zo(e,t,n){var r=q.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function Qo(e,t,n){var r=q.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Jo(e,t,n){var r=Oo.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function Ko(e,t,n){var r=q.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function ea(e,t,n){var r=q.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function Ln(e,t){return R(e.getDate(),t,2)}function ta(e,t){return R(e.getHours(),t,2)}function na(e,t){return R(e.getHours()%12||12,t,2)}function ra(e,t){return R(1+Le.count(oe(e),e),t,3)}function Ur(e,t){return R(e.getMilliseconds(),t,3)}function ia(e,t){return Ur(e,t)+"000"}function oa(e,t){return R(e.getMonth()+1,t,2)}function aa(e,t){return R(e.getMinutes(),t,2)}function ua(e,t){return R(e.getSeconds(),t,2)}function sa(e){var t=e.getDay();return t===0?7:t}function la(e,t){return R(We.count(oe(e)-1,e),t,2)}function Fr(e){var t=e.getDay();return t>=4||t===0?Ae(e):Ae.ceil(e)}function ca(e,t){return e=Fr(e),R(Ae.count(oe(e),e)+(oe(e).getDay()===4),t,2)}function fa(e){return e.getDay()}function ha(e,t){return R(it.count(oe(e)-1,e),t,2)}function pa(e,t){return R(e.getFullYear()%100,t,2)}function da(e,t){return e=Fr(e),R(e.getFullYear()%100,t,2)}function ga(e,t){return R(e.getFullYear()%1e4,t,4)}function ma(e,t){var n=e.getDay();return e=n>=4||n===0?Ae(e):Ae.ceil(e),R(e.getFullYear()%1e4,t,4)}function ya(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+R(t/60|0,"0",2)+R(t%60,"0",2)}function Rn(e,t){return R(e.getUTCDate(),t,2)}function xa(e,t){return R(e.getUTCHours(),t,2)}function va(e,t){return R(e.getUTCHours()%12||12,t,2)}function ba(e,t){return R(1+ht.count(pe(e),e),t,3)}function jr(e,t){return R(e.getUTCMilliseconds(),t,3)}function wa(e,t){return jr(e,t)+"000"}function Ma(e,t){return R(e.getUTCMonth()+1,t,2)}function ka(e,t){return R(e.getUTCMinutes(),t,2)}function Ta(e,t){return R(e.getUTCSeconds(),t,2)}function Na(e){var t=e.getUTCDay();return t===0?7:t}function Ca(e,t){return R(ln.count(pe(e)-1,e),t,2)}function Ir(e){var t=e.getUTCDay();return t>=4||t===0?De(e):De.ceil(e)}function Sa(e,t){return e=Ir(e),R(De.count(pe(e),e)+(pe(e).getUTCDay()===4),t,2)}function _a(e){return e.getUTCDay()}function $a(e,t){return R(ot.count(pe(e)-1,e),t,2)}function Ea(e,t){return R(e.getUTCFullYear()%100,t,2)}function Aa(e,t){return e=Ir(e),R(e.getUTCFullYear()%100,t,2)}function Da(e,t){return R(e.getUTCFullYear()%1e4,t,4)}function Pa(e,t){var n=e.getUTCDay();return e=n>=4||n===0?De(e):De.ceil(e),R(e.getUTCFullYear()%1e4,t,4)}function La(){return"+0000"}function On(){return"%"}function Un(e){return+e}function Fn(e){return Math.floor(+e/1e3)}var Te,Hr;Ra({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function Ra(e){return Te=Ro(e),Hr=Te.format,Te.parse,Te.utcFormat,Te.utcParse,Te}function Oa(e){return new Date(e)}function Ua(e){return e instanceof Date?+e:+new Date(+e)}function zr(e,t,n,r,i,o,a,u,s,l){var h=Er(),c=h.invert,f=h.domain,y=l(".%L"),M=l(":%S"),v=l("%I:%M"),T=l("%I %p"),S=l("%a %d"),m=l("%b %d"),g=l("%B"),d=l("%Y");function k(p){return(s(p)<p?y:u(p)<p?M:a(p)<p?v:o(p)<p?T:r(p)<p?i(p)<p?S:m:n(p)<p?g:d)(p)}return h.invert=function(p){return new Date(c(p))},h.domain=function(p){return arguments.length?f(Array.from(p,Ua)):f().map(Oa)},h.ticks=function(p){var w=f();return e(w[0],w[w.length-1],p??10)},h.tickFormat=function(p,w){return w==null?k:l(w)},h.nice=function(p){var w=f();return(!p||typeof p.range!="function")&&(p=t(w[0],w[w.length-1],p??10)),p?f(Mo(w,p)):h},h.copy=function(){return $r(h,zr(e,t,n,r,i,o,a,u,s,l))},h}function Fa(){return hr.apply(zr(Po,Lo,oe,pt,We,Le,ft,ct,he,Hr).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function ja(e,t){t.domain&&("nice"in e||"quantiles"in e||"padding"in e,e.domain(t.domain))}function Ia(e,t){t.range&&("padding"in e,e.range(t.range))}function Ha(e,t){"align"in e&&"align"in t&&typeof t.align<"u"&&e.align(t.align)}function za(e,t){"base"in e&&"base"in t&&typeof t.base<"u"&&e.base(t.base)}function Ya(e,t){"clamp"in e&&"clamp"in t&&typeof t.clamp<"u"&&e.clamp(t.clamp)}function Wa(e,t){"constant"in e&&"constant"in t&&typeof t.constant<"u"&&e.constant(t.constant)}function qa(e,t){"exponent"in e&&"exponent"in t&&typeof t.exponent<"u"&&e.exponent(t.exponent)}const jn={lab:Qi,hcl:Ji,"hcl-long":Ki,hsl:Xi,"hsl-long":Zi,cubehelix:eo,"cubehelix-long":to,rgb:Zt};function Va(e){switch(e){case"lab":case"hcl":case"hcl-long":case"hsl":case"hsl-long":case"cubehelix":case"cubehelix-long":case"rgb":return jn[e]}const{type:t,gamma:n}=e,r=jn[t];return typeof n>"u"?r:r.gamma(n)}function Ba(e,t){if("interpolate"in t&&"interpolate"in e&&typeof t.interpolate<"u"){const n=Va(t.interpolate);e.interpolate(n)}}const Ga=new Date(Date.UTC(2020,1,2,3,4,5)),Xa="%Y-%m-%d %H:%M";function Za(e){return e.tickFormat(1,Xa)(Ga)==="2020-02-02 03:04"}const In={day:Le,hour:ft,minute:ct,month:pt,second:he,week:We,year:oe},Hn={day:ht,hour:Rr,minute:Lr,month:Or,second:he,week:ln,year:pe};function Qa(e,t){if("nice"in t&&typeof t.nice<"u"&&"nice"in e){const{nice:n}=t;if(typeof n=="boolean")n&&e.nice();else if(typeof n=="number")e.nice(n);else{const r=e,i=Za(r);if(typeof n=="string")r.nice(i?Hn[n]:In[n]);else{const{interval:o,step:a}=n,u=(i?Hn[o]:In[o]).every(a);u!=null&&r.nice(u)}}}}function Ja(e,t){"padding"in e&&"padding"in t&&typeof t.padding<"u"&&e.padding(t.padding),"paddingInner"in e&&"paddingInner"in t&&typeof t.paddingInner<"u"&&e.paddingInner(t.paddingInner),"paddingOuter"in e&&"paddingOuter"in t&&typeof t.paddingOuter<"u"&&e.paddingOuter(t.paddingOuter)}function Ka(e,t){if(t.reverse){const n=e.range().slice().reverse();"padding"in e,e.range(n)}}function eu(e,t){"round"in t&&typeof t.round<"u"&&(t.round&&"interpolate"in t&&typeof t.interpolate<"u"?console.warn("[visx/scale/applyRound] ignoring round: scale config contains round and interpolate. only applying interpolate. config:",t):"round"in e?e.round(t.round):"interpolate"in e&&t.round&&e.interpolate(Nr))}function tu(e,t){"unknown"in e&&"unknown"in t&&typeof t.unknown<"u"&&e.unknown(t.unknown)}function nu(e,t){if("zero"in t&&t.zero===!0){const n=e.domain(),[r,i]=n,o=i<r,[a,u]=o?[i,r]:[r,i],s=[Math.min(0,a),Math.max(0,u)];e.domain(o?s.reverse():s)}}const ru=["domain","nice","zero","interpolate","round","range","reverse","align","base","clamp","constant","exponent","padding","unknown"],iu={domain:ja,nice:Qa,zero:nu,interpolate:Ba,round:eu,align:Ha,base:za,clamp:Ya,constant:Wa,exponent:qa,padding:Ja,range:Ia,reverse:Ka,unknown:tu};function Yr(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];const r=new Set(t),i=ru.filter(o=>r.has(o));return function(a,u){return typeof u<"u"&&i.forEach(s=>{iu[s](a,u)}),a}}const ou=Yr("domain","range","reverse","clamp","interpolate","nice","round","zero");function au(e){return ou(Pr(),e)}const uu=Yr("domain","range","reverse","clamp","interpolate","nice","round");function su(e){return uu(Fa(),e)}function Wr(e){if((typeof e=="function"||typeof e=="object"&&e)&&"valueOf"in e){const t=e.valueOf();if(typeof t=="number")return t}return e}function qr(e,t){const n=e;return"ticks"in n?n.ticks(t):n.domain().filter((r,i,o)=>t==null||o.length<=t||i%Math.round((o.length-1)/t)===0)}function lu(e){return e==null?void 0:e.toString()}var _t={exports:{}};/*!
1
+ var li=Object.defineProperty;var ci=(e,t,n)=>t in e?li(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var mt=(e,t,n)=>ci(e,typeof t!="symbol"?t+"":t,n);import{a2 as fr,a4 as b,a7 as j,ac as fi,M as hi}from"./index-C1qD3uWi.js";import{u as pi,T as di,b as gi,c as mi}from"./tabs-LFfwE6UX.js";function Xe(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function yi(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function ut(e){let t,n,r;e.length!==2?(t=Xe,n=(u,s)=>Xe(e(u),s),r=(u,s)=>e(u)-s):(t=e===Xe||e===yi?e:xi,n=e,r=e);function i(u,s,l=0,h=u.length){if(l<h){if(t(s,s)!==0)return h;do{const c=l+h>>>1;n(u[c],s)<0?l=c+1:h=c}while(l<h)}return l}function o(u,s,l=0,h=u.length){if(l<h){if(t(s,s)!==0)return h;do{const c=l+h>>>1;n(u[c],s)<=0?l=c+1:h=c}while(l<h)}return l}function a(u,s,l=0,h=u.length){const c=i(u,s,l,h-1);return c>l&&r(u[c-1],s)>-r(u[c],s)?c-1:c}return{left:i,center:a,right:o}}function xi(){return 0}function vi(e){return e===null?NaN:+e}const bi=ut(Xe),wi=bi.right;ut(vi).center;const Mi=Math.sqrt(50),ki=Math.sqrt(10),Ti=Math.sqrt(2);function Ze(e,t,n){const r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),o=r/Math.pow(10,i),a=o>=Mi?10:o>=ki?5:o>=Ti?2:1;let u,s,l;return i<0?(l=Math.pow(10,-i)/a,u=Math.round(e*l),s=Math.round(t*l),u/l<e&&++u,s/l>t&&--s,l=-l):(l=Math.pow(10,i)*a,u=Math.round(e/l),s=Math.round(t/l),u*l<e&&++u,s*l>t&&--s),s<u&&.5<=n&&n<2?Ze(e,t,n*2):[u,s,l]}function Ni(e,t,n){if(t=+t,e=+e,n=+n,!(n>0))return[];if(e===t)return[e];const r=t<e,[i,o,a]=r?Ze(t,e,n):Ze(e,t,n);if(!(o>=i))return[];const u=o-i+1,s=new Array(u);if(r)if(a<0)for(let l=0;l<u;++l)s[l]=(o-l)/-a;else for(let l=0;l<u;++l)s[l]=(o-l)*a;else if(a<0)for(let l=0;l<u;++l)s[l]=(i+l)/-a;else for(let l=0;l<u;++l)s[l]=(i+l)*a;return s}function Yt(e,t,n){return t=+t,e=+e,n=+n,Ze(e,t,n)[2]}function Wt(e,t,n){t=+t,e=+e,n=+n;const r=t<e,i=r?Yt(t,e,n):Yt(e,t,n);return(r?-1:1)*(i<0?1/-i:i)}function hr(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function Pe(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Ye(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function de(){}var we=.7,$e=1/we,Se="\\s*([+-]?\\d+)\\s*",je="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",re="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Ci=/^#([0-9a-f]{3,8})$/,Si=new RegExp(`^rgb\\(${Se},${Se},${Se}\\)$`),_i=new RegExp(`^rgb\\(${re},${re},${re}\\)$`),$i=new RegExp(`^rgba\\(${Se},${Se},${Se},${je}\\)$`),Ei=new RegExp(`^rgba\\(${re},${re},${re},${je}\\)$`),Ai=new RegExp(`^hsl\\(${je},${re},${re}\\)$`),Di=new RegExp(`^hsla\\(${je},${re},${re},${je}\\)$`),fn={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Pe(de,Ie,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:hn,formatHex:hn,formatHex8:Pi,formatHsl:Li,formatRgb:pn,toString:pn});function hn(){return this.rgb().formatHex()}function Pi(){return this.rgb().formatHex8()}function Li(){return pr(this).formatHsl()}function pn(){return this.rgb().formatRgb()}function Ie(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=Ci.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?dn(t):n===3?new Y(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?qe(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?qe(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Si.exec(e))?new Y(t[1],t[2],t[3],1):(t=_i.exec(e))?new Y(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=$i.exec(e))?qe(t[1],t[2],t[3],t[4]):(t=Ei.exec(e))?qe(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Ai.exec(e))?yn(t[1],t[2]/100,t[3]/100,1):(t=Di.exec(e))?yn(t[1],t[2]/100,t[3]/100,t[4]):fn.hasOwnProperty(e)?dn(fn[e]):e==="transparent"?new Y(NaN,NaN,NaN,0):null}function dn(e){return new Y(e>>16&255,e>>8&255,e&255,1)}function qe(e,t,n,r){return r<=0&&(e=t=n=NaN),new Y(e,t,n,r)}function tn(e){return e instanceof de||(e=Ie(e)),e?(e=e.rgb(),new Y(e.r,e.g,e.b,e.opacity)):new Y}function qt(e,t,n,r){return arguments.length===1?tn(e):new Y(e,t,n,r??1)}function Y(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}Pe(Y,qt,Ye(de,{brighter(e){return e=e==null?$e:Math.pow($e,e),new Y(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?we:Math.pow(we,e),new Y(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Y(ve(this.r),ve(this.g),ve(this.b),Qe(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:gn,formatHex:gn,formatHex8:Ri,formatRgb:mn,toString:mn}));function gn(){return`#${xe(this.r)}${xe(this.g)}${xe(this.b)}`}function Ri(){return`#${xe(this.r)}${xe(this.g)}${xe(this.b)}${xe((isNaN(this.opacity)?1:this.opacity)*255)}`}function mn(){const e=Qe(this.opacity);return`${e===1?"rgb(":"rgba("}${ve(this.r)}, ${ve(this.g)}, ${ve(this.b)}${e===1?")":`, ${e})`}`}function Qe(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function ve(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function xe(e){return e=ve(e),(e<16?"0":"")+e.toString(16)}function yn(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new ne(e,t,n,r)}function pr(e){if(e instanceof ne)return new ne(e.h,e.s,e.l,e.opacity);if(e instanceof de||(e=Ie(e)),!e)return new ne;if(e instanceof ne)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),o=Math.max(t,n,r),a=NaN,u=o-i,s=(o+i)/2;return u?(t===o?a=(n-r)/u+(n<r)*6:n===o?a=(r-t)/u+2:a=(t-n)/u+4,u/=s<.5?o+i:2-o-i,a*=60):u=s>0&&s<1?0:a,new ne(a,u,s,e.opacity)}function Vt(e,t,n,r){return arguments.length===1?pr(e):new ne(e,t,n,r??1)}function ne(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Pe(ne,Vt,Ye(de,{brighter(e){return e=e==null?$e:Math.pow($e,e),new ne(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?we:Math.pow(we,e),new ne(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Y(yt(e>=240?e-240:e+120,i,r),yt(e,i,r),yt(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new ne(xn(this.h),Ve(this.s),Ve(this.l),Qe(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Qe(this.opacity);return`${e===1?"hsl(":"hsla("}${xn(this.h)}, ${Ve(this.s)*100}%, ${Ve(this.l)*100}%${e===1?")":`, ${e})`}`}}));function xn(e){return e=(e||0)%360,e<0?e+360:e}function Ve(e){return Math.max(0,Math.min(1,e||0))}function yt(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const dr=Math.PI/180,gr=180/Math.PI,Je=18,mr=.96422,yr=1,xr=.82521,vr=4/29,_e=6/29,br=3*_e*_e,Oi=_e*_e*_e;function wr(e){if(e instanceof ie)return new ie(e.l,e.a,e.b,e.opacity);if(e instanceof se)return Mr(e);e instanceof Y||(e=tn(e));var t=wt(e.r),n=wt(e.g),r=wt(e.b),i=xt((.2225045*t+.7168786*n+.0606169*r)/yr),o,a;return t===n&&n===r?o=a=i:(o=xt((.4360747*t+.3850649*n+.1430804*r)/mr),a=xt((.0139322*t+.0971045*n+.7141733*r)/xr)),new ie(116*i-16,500*(o-i),200*(i-a),e.opacity)}function Bt(e,t,n,r){return arguments.length===1?wr(e):new ie(e,t,n,r??1)}function ie(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}Pe(ie,Bt,Ye(de,{brighter(e){return new ie(this.l+Je*(e??1),this.a,this.b,this.opacity)},darker(e){return new ie(this.l-Je*(e??1),this.a,this.b,this.opacity)},rgb(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,n=isNaN(this.b)?e:e-this.b/200;return t=mr*vt(t),e=yr*vt(e),n=xr*vt(n),new Y(bt(3.1338561*t-1.6168667*e-.4906146*n),bt(-.9787684*t+1.9161415*e+.033454*n),bt(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}}));function xt(e){return e>Oi?Math.pow(e,1/3):e/br+vr}function vt(e){return e>_e?e*e*e:br*(e-vr)}function bt(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function wt(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function Ui(e){if(e instanceof se)return new se(e.h,e.c,e.l,e.opacity);if(e instanceof ie||(e=wr(e)),e.a===0&&e.b===0)return new se(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*gr;return new se(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function Gt(e,t,n,r){return arguments.length===1?Ui(e):new se(e,t,n,r??1)}function se(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function Mr(e){if(isNaN(e.h))return new ie(e.l,0,0,e.opacity);var t=e.h*dr;return new ie(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}Pe(se,Gt,Ye(de,{brighter(e){return new se(this.h,this.c,this.l+Je*(e??1),this.opacity)},darker(e){return new se(this.h,this.c,this.l-Je*(e??1),this.opacity)},rgb(){return Mr(this).rgb()}}));var kr=-.14861,nn=1.78277,rn=-.29227,st=-.90649,He=1.97294,vn=He*st,bn=He*nn,wn=nn*rn-st*kr;function Fi(e){if(e instanceof be)return new be(e.h,e.s,e.l,e.opacity);e instanceof Y||(e=tn(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=(wn*r+vn*t-bn*n)/(wn+vn-bn),o=r-i,a=(He*(n-i)-rn*o)/st,u=Math.sqrt(a*a+o*o)/(He*i*(1-i)),s=u?Math.atan2(a,o)*gr-120:NaN;return new be(s<0?s+360:s,u,i,e.opacity)}function Xt(e,t,n,r){return arguments.length===1?Fi(e):new be(e,t,n,r??1)}function be(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Pe(be,Xt,Ye(de,{brighter(e){return e=e==null?$e:Math.pow($e,e),new be(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?we:Math.pow(we,e),new be(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*dr,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),r=Math.cos(e),i=Math.sin(e);return new Y(255*(t+n*(kr*r+nn*i)),255*(t+n*(rn*r+st*i)),255*(t+n*(He*r)),this.opacity)}}));const lt=e=>()=>e;function Tr(e,t){return function(n){return e+n*t}}function ji(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function on(e,t){var n=t-e;return n?Tr(e,n>180||n<-180?n-360*Math.round(n/360):n):lt(isNaN(e)?t:e)}function Ii(e){return(e=+e)==1?W:function(t,n){return n-t?ji(t,n,e):lt(isNaN(t)?n:t)}}function W(e,t){var n=t-e;return n?Tr(e,n):lt(isNaN(e)?t:e)}const Zt=(function e(t){var n=Ii(t);function r(i,o){var a=n((i=qt(i)).r,(o=qt(o)).r),u=n(i.g,o.g),s=n(i.b,o.b),l=W(i.opacity,o.opacity);return function(h){return i.r=a(h),i.g=u(h),i.b=s(h),i.opacity=l(h),i+""}}return r.gamma=e,r})(1);function Hi(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(o){for(i=0;i<n;++i)r[i]=e[i]*(1-o)+t[i]*o;return r}}function zi(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Yi(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=new Array(r),o=new Array(n),a;for(a=0;a<r;++a)i[a]=an(e[a],t[a]);for(;a<n;++a)o[a]=t[a];return function(u){for(a=0;a<r;++a)o[a]=i[a](u);return o}}function Wi(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Ke(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function qi(e,t){var n={},r={},i;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(i in t)i in e?n[i]=an(e[i],t[i]):r[i]=t[i];return function(o){for(i in n)r[i]=n[i](o);return r}}var Qt=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Mt=new RegExp(Qt.source,"g");function Vi(e){return function(){return e}}function Bi(e){return function(t){return e(t)+""}}function Gi(e,t){var n=Qt.lastIndex=Mt.lastIndex=0,r,i,o,a=-1,u=[],s=[];for(e=e+"",t=t+"";(r=Qt.exec(e))&&(i=Mt.exec(t));)(o=i.index)>n&&(o=t.slice(n,o),u[a]?u[a]+=o:u[++a]=o),(r=r[0])===(i=i[0])?u[a]?u[a]+=i:u[++a]=i:(u[++a]=null,s.push({i:a,x:Ke(r,i)})),n=Mt.lastIndex;return n<t.length&&(o=t.slice(n),u[a]?u[a]+=o:u[++a]=o),u.length<2?s[0]?Bi(s[0].x):Vi(t):(t=s.length,function(l){for(var h=0,c;h<t;++h)u[(c=s[h]).i]=c.x(l);return u.join("")})}function an(e,t){var n=typeof t,r;return t==null||n==="boolean"?lt(t):(n==="number"?Ke:n==="string"?(r=Ie(t))?(t=r,Zt):Gi:t instanceof Ie?Zt:t instanceof Date?Wi:zi(t)?Hi:Array.isArray(t)?Yi:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?qi:Ke)(e,t)}function Nr(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}function Cr(e){return function(t,n){var r=e((t=Vt(t)).h,(n=Vt(n)).h),i=W(t.s,n.s),o=W(t.l,n.l),a=W(t.opacity,n.opacity);return function(u){return t.h=r(u),t.s=i(u),t.l=o(u),t.opacity=a(u),t+""}}}const Xi=Cr(on);var Zi=Cr(W);function Qi(e,t){var n=W((e=Bt(e)).l,(t=Bt(t)).l),r=W(e.a,t.a),i=W(e.b,t.b),o=W(e.opacity,t.opacity);return function(a){return e.l=n(a),e.a=r(a),e.b=i(a),e.opacity=o(a),e+""}}function Sr(e){return function(t,n){var r=e((t=Gt(t)).h,(n=Gt(n)).h),i=W(t.c,n.c),o=W(t.l,n.l),a=W(t.opacity,n.opacity);return function(u){return t.h=r(u),t.c=i(u),t.l=o(u),t.opacity=a(u),t+""}}}const Ji=Sr(on);var Ki=Sr(W);function _r(e){return(function t(n){n=+n;function r(i,o){var a=e((i=Xt(i)).h,(o=Xt(o)).h),u=W(i.s,o.s),s=W(i.l,o.l),l=W(i.opacity,o.opacity);return function(h){return i.h=a(h),i.s=u(h),i.l=s(Math.pow(h,n)),i.opacity=l(h),i+""}}return r.gamma=t,r})(1)}const eo=_r(on);var to=_r(W);function no(e){return function(){return e}}function ro(e){return+e}var Mn=[0,1];function Ce(e){return e}function Jt(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:no(isNaN(t)?NaN:.5)}function io(e,t){var n;return e>t&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function oo(e,t,n){var r=e[0],i=e[1],o=t[0],a=t[1];return i<r?(r=Jt(i,r),o=n(a,o)):(r=Jt(r,i),o=n(o,a)),function(u){return o(r(u))}}function ao(e,t,n){var r=Math.min(e.length,t.length)-1,i=new Array(r),o=new Array(r),a=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++a<r;)i[a]=Jt(e[a],e[a+1]),o[a]=n(t[a],t[a+1]);return function(u){var s=wi(e,u,1,r)-1;return o[s](i[s](u))}}function $r(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function uo(){var e=Mn,t=Mn,n=an,r,i,o,a=Ce,u,s,l;function h(){var f=Math.min(e.length,t.length);return a!==Ce&&(a=io(e[0],e[f-1])),u=f>2?ao:oo,s=l=null,c}function c(f){return f==null||isNaN(f=+f)?o:(s||(s=u(e.map(r),t,n)))(r(a(f)))}return c.invert=function(f){return a(i((l||(l=u(t,e.map(r),Ke)))(f)))},c.domain=function(f){return arguments.length?(e=Array.from(f,ro),h()):e.slice()},c.range=function(f){return arguments.length?(t=Array.from(f),h()):t.slice()},c.rangeRound=function(f){return t=Array.from(f),n=Nr,h()},c.clamp=function(f){return arguments.length?(a=f?!0:Ce,h()):a!==Ce},c.interpolate=function(f){return arguments.length?(n=f,h()):n},c.unknown=function(f){return arguments.length?(o=f,c):o},function(f,y){return r=f,i=y,h()}}function Er(){return uo()(Ce,Ce)}function so(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function et(e,t){if(!isFinite(e)||e===0)return null;var n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"),r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function Ee(e){return e=et(Math.abs(e)),e?e[1]:NaN}function lo(e,t){return function(n,r){for(var i=n.length,o=[],a=0,u=e[0],s=0;i>0&&u>0&&(s+u+1>r&&(u=Math.max(1,r-s)),o.push(n.substring(i-=u,i+u)),!((s+=u+1)>r));)u=e[a=(a+1)%e.length];return o.reverse().join(t)}}function co(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var fo=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function tt(e){if(!(t=fo.exec(e)))throw new Error("invalid format: "+e);var t;return new un({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}tt.prototype=un.prototype;function un(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}un.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function ho(e){e:for(var t=e.length,n=1,r=-1,i;n<t;++n)switch(e[n]){case".":r=i=n;break;case"0":r===0&&(r=n),i=n;break;default:if(!+e[n])break e;r>0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(i+1):e}var nt;function po(e,t){var n=et(e,t);if(!n)return nt=void 0,e.toPrecision(t);var r=n[0],i=n[1],o=i-(nt=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+et(e,Math.max(0,t+o-1))[0]}function kn(e,t){var n=et(e,t);if(!n)return e+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const Tn={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:so,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>kn(e*100,t),r:kn,s:po,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Nn(e){return e}var Cn=Array.prototype.map,Sn=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function go(e){var t=e.grouping===void 0||e.thousands===void 0?Nn:lo(Cn.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",i=e.decimal===void 0?".":e.decimal+"",o=e.numerals===void 0?Nn:co(Cn.call(e.numerals,String)),a=e.percent===void 0?"%":e.percent+"",u=e.minus===void 0?"−":e.minus+"",s=e.nan===void 0?"NaN":e.nan+"";function l(c,f){c=tt(c);var y=c.fill,M=c.align,v=c.sign,T=c.symbol,S=c.zero,m=c.width,g=c.comma,d=c.precision,k=c.trim,p=c.type;p==="n"?(g=!0,p="g"):Tn[p]||(d===void 0&&(d=12),k=!0,p="g"),(S||y==="0"&&M==="=")&&(S=!0,y="0",M="=");var w=(f&&f.prefix!==void 0?f.prefix:"")+(T==="$"?n:T==="#"&&/[boxX]/.test(p)?"0"+p.toLowerCase():""),_=(T==="$"?r:/[%p]/.test(p)?a:"")+(f&&f.suffix!==void 0?f.suffix:""),A=Tn[p],V=/[defgprs%]/.test(p);d=d===void 0?6:/[gprs]/.test(p)?Math.max(1,Math.min(21,d)):Math.max(0,Math.min(20,d));function O(C){var $=w,D=_,H,U,Q;if(p==="c")D=A(C)+D,C="";else{C=+C;var ae=C<0||1/C<0;if(C=isNaN(C)?s:A(Math.abs(C),d),k&&(C=ho(C)),ae&&+C==0&&v!=="+"&&(ae=!1),$=(ae?v==="("?v:u:v==="-"||v==="("?"":v)+$,D=(p==="s"&&!isNaN(C)&&nt!==void 0?Sn[8+nt/3]:"")+D+(ae&&v==="("?")":""),V){for(H=-1,U=C.length;++H<U;)if(Q=C.charCodeAt(H),48>Q||Q>57){D=(Q===46?i+C.slice(H+1):C.slice(H))+D,C=C.slice(0,H);break}}}g&&!S&&(C=t(C,1/0));var ee=$.length+C.length+D.length,P=ee<m?new Array(m-ee+1).join(y):"";switch(g&&S&&(C=t(P+C,P.length?m-D.length:1/0),P=""),M){case"<":C=$+C+D+P;break;case"=":C=$+P+C+D;break;case"^":C=P.slice(0,ee=P.length>>1)+$+C+D+P.slice(ee);break;default:C=P+$+C+D;break}return o(C)}return O.toString=function(){return c+""},O}function h(c,f){var y=Math.max(-8,Math.min(8,Math.floor(Ee(f)/3)))*3,M=Math.pow(10,-y),v=l((c=tt(c),c.type="f",c),{suffix:Sn[8+y/3]});return function(T){return v(M*T)}}return{format:l,formatPrefix:h}}var Be,Ar,Dr;mo({thousands:",",grouping:[3],currency:["$",""]});function mo(e){return Be=go(e),Ar=Be.format,Dr=Be.formatPrefix,Be}function yo(e){return Math.max(0,-Ee(Math.abs(e)))}function xo(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Ee(t)/3)))*3-Ee(Math.abs(e)))}function vo(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Ee(t)-Ee(e))+1}function bo(e,t,n,r){var i=Wt(e,t,n),o;switch(r=tt(r??",f"),r.type){case"s":{var a=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(o=xo(i,a))&&(r.precision=o),Dr(r,a)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(o=vo(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=o-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(o=yo(i))&&(r.precision=o-(r.type==="%")*2);break}}return Ar(r)}function wo(e){var t=e.domain;return e.ticks=function(n){var r=t();return Ni(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var i=t();return bo(i[0],i[i.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),i=0,o=r.length-1,a=r[i],u=r[o],s,l,h=10;for(u<a&&(l=a,a=u,u=l,l=i,i=o,o=l);h-- >0;){if(l=Yt(a,u,n),l===s)return r[i]=a,r[o]=u,t(r);if(l>0)a=Math.floor(a/l)*l,u=Math.ceil(u/l)*l;else if(l<0)a=Math.ceil(a*l)/l,u=Math.floor(u*l)/l;else break;s=l}return e},e}function Pr(){var e=Er();return e.copy=function(){return $r(e,Pr())},hr.apply(e,arguments),wo(e)}function Mo(e,t){e=e.slice();var n=0,r=e.length-1,i=e[n],o=e[r],a;return o<i&&(a=n,n=r,r=a,a=i,i=o,o=a),e[n]=t.floor(i),e[r]=t.ceil(o),e}const kt=new Date,Tt=new Date;function I(e,t,n,r){function i(o){return e(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=o=>(e(o=new Date(+o)),o),i.ceil=o=>(e(o=new Date(o-1)),t(o,1),e(o),o),i.round=o=>{const a=i(o),u=i.ceil(o);return o-a<u-o?a:u},i.offset=(o,a)=>(t(o=new Date(+o),a==null?1:Math.floor(a)),o),i.range=(o,a,u)=>{const s=[];if(o=i.ceil(o),u=u==null?1:Math.floor(u),!(o<a)||!(u>0))return s;let l;do s.push(l=new Date(+o)),t(o,u),e(o);while(l<o&&o<a);return s},i.filter=o=>I(a=>{if(a>=a)for(;e(a),!o(a);)a.setTime(a-1)},(a,u)=>{if(a>=a)if(u<0)for(;++u<=0;)for(;t(a,-1),!o(a););else for(;--u>=0;)for(;t(a,1),!o(a););}),n&&(i.count=(o,a)=>(kt.setTime(+o),Tt.setTime(+a),e(kt),e(Tt),Math.floor(n(kt,Tt))),i.every=o=>(o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(r?a=>r(a)%o===0:a=>i.count(0,a)%o===0):i)),i}const rt=I(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);rt.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?I(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):rt);rt.range;const le=1e3,J=le*60,ce=J*60,fe=ce*24,sn=fe*7,_n=fe*30,Nt=fe*365,he=I(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*le)},(e,t)=>(t-e)/le,e=>e.getUTCSeconds());he.range;const ct=I(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*le)},(e,t)=>{e.setTime(+e+t*J)},(e,t)=>(t-e)/J,e=>e.getMinutes());ct.range;const Lr=I(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*J)},(e,t)=>(t-e)/J,e=>e.getUTCMinutes());Lr.range;const ft=I(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*le-e.getMinutes()*J)},(e,t)=>{e.setTime(+e+t*ce)},(e,t)=>(t-e)/ce,e=>e.getHours());ft.range;const Rr=I(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*ce)},(e,t)=>(t-e)/ce,e=>e.getUTCHours());Rr.range;const Le=I(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*J)/fe,e=>e.getDate()-1);Le.range;const ht=I(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/fe,e=>e.getUTCDate()-1);ht.range;const ko=I(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/fe,e=>Math.floor(e/fe));ko.range;function Me(e){return I(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,n)=>{t.setDate(t.getDate()+n*7)},(t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*J)/sn)}const We=Me(0),it=Me(1),To=Me(2),No=Me(3),Ae=Me(4),Co=Me(5),So=Me(6);We.range;it.range;To.range;No.range;Ae.range;Co.range;So.range;function ke(e){return I(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCDate(t.getUTCDate()+n*7)},(t,n)=>(n-t)/sn)}const ln=ke(0),ot=ke(1),_o=ke(2),$o=ke(3),De=ke(4),Eo=ke(5),Ao=ke(6);ln.range;ot.range;_o.range;$o.range;De.range;Eo.range;Ao.range;const pt=I(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());pt.range;const Or=I(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());Or.range;const oe=I(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());oe.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:I(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)});oe.range;const pe=I(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());pe.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:I(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)});pe.range;function Do(e,t,n,r,i,o){const a=[[he,1,le],[he,5,5*le],[he,15,15*le],[he,30,30*le],[o,1,J],[o,5,5*J],[o,15,15*J],[o,30,30*J],[i,1,ce],[i,3,3*ce],[i,6,6*ce],[i,12,12*ce],[r,1,fe],[r,2,2*fe],[n,1,sn],[t,1,_n],[t,3,3*_n],[e,1,Nt]];function u(l,h,c){const f=h<l;f&&([l,h]=[h,l]);const y=c&&typeof c.range=="function"?c:s(l,h,c),M=y?y.range(l,+h+1):[];return f?M.reverse():M}function s(l,h,c){const f=Math.abs(h-l)/c,y=ut(([,,T])=>T).right(a,f);if(y===a.length)return e.every(Wt(l/Nt,h/Nt,c));if(y===0)return rt.every(Math.max(Wt(l,h,c),1));const[M,v]=a[f/a[y-1][2]<a[y][2]/f?y-1:y];return M.every(v)}return[u,s]}const[Po,Lo]=Do(oe,pt,We,Le,ft,ct);function Ct(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function St(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function Re(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function Ro(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,o=e.days,a=e.shortDays,u=e.months,s=e.shortMonths,l=Oe(i),h=Ue(i),c=Oe(o),f=Ue(o),y=Oe(a),M=Ue(a),v=Oe(u),T=Ue(u),S=Oe(s),m=Ue(s),g={a:Q,A:ae,b:ee,B:P,c:null,d:Ln,e:Ln,f:ia,g:da,G:ma,H:ta,I:na,j:ra,L:Ur,m:oa,M:aa,p:ge,q:ni,Q:Un,s:Fn,S:ua,u:sa,U:la,V:ca,w:fa,W:ha,x:null,X:null,y:pa,Y:ga,Z:ya,"%":On},d={a:ri,A:ii,b:oi,B:ai,c:null,d:Rn,e:Rn,f:wa,g:Aa,G:Pa,H:xa,I:va,j:ba,L:jr,m:Ma,M:ka,p:ui,q:si,Q:Un,s:Fn,S:Ta,u:Na,U:Ca,V:Sa,w:_a,W:$a,x:null,X:null,y:Ea,Y:Da,Z:La,"%":On},k={a:V,A:O,b:C,B:$,c:D,d:Dn,e:Dn,f:Qo,g:An,G:En,H:Pn,I:Pn,j:Bo,L:Zo,m:Vo,M:Go,p:A,q:qo,Q:Ko,s:ea,S:Xo,u:Io,U:Ho,V:zo,w:jo,W:Yo,x:H,X:U,y:An,Y:En,Z:Wo,"%":Jo};g.x=p(n,g),g.X=p(r,g),g.c=p(t,g),d.x=p(n,d),d.X=p(r,d),d.c=p(t,d);function p(N,E){return function(L){var x=[],B=-1,F=0,G=N.length,X,me,cn;for(L instanceof Date||(L=new Date(+L));++B<G;)N.charCodeAt(B)===37&&(x.push(N.slice(F,B)),(me=$n[X=N.charAt(++B)])!=null?X=N.charAt(++B):me=X==="e"?" ":"0",(cn=E[X])&&(X=cn(L,me)),x.push(X),F=B+1);return x.push(N.slice(F,B)),x.join("")}}function w(N,E){return function(L){var x=Re(1900,void 0,1),B=_(x,N,L+="",0),F,G;if(B!=L.length)return null;if("Q"in x)return new Date(x.Q);if("s"in x)return new Date(x.s*1e3+("L"in x?x.L:0));if(E&&!("Z"in x)&&(x.Z=0),"p"in x&&(x.H=x.H%12+x.p*12),x.m===void 0&&(x.m="q"in x?x.q:0),"V"in x){if(x.V<1||x.V>53)return null;"w"in x||(x.w=1),"Z"in x?(F=St(Re(x.y,0,1)),G=F.getUTCDay(),F=G>4||G===0?ot.ceil(F):ot(F),F=ht.offset(F,(x.V-1)*7),x.y=F.getUTCFullYear(),x.m=F.getUTCMonth(),x.d=F.getUTCDate()+(x.w+6)%7):(F=Ct(Re(x.y,0,1)),G=F.getDay(),F=G>4||G===0?it.ceil(F):it(F),F=Le.offset(F,(x.V-1)*7),x.y=F.getFullYear(),x.m=F.getMonth(),x.d=F.getDate()+(x.w+6)%7)}else("W"in x||"U"in x)&&("w"in x||(x.w="u"in x?x.u%7:"W"in x?1:0),G="Z"in x?St(Re(x.y,0,1)).getUTCDay():Ct(Re(x.y,0,1)).getDay(),x.m=0,x.d="W"in x?(x.w+6)%7+x.W*7-(G+5)%7:x.w+x.U*7-(G+6)%7);return"Z"in x?(x.H+=x.Z/100|0,x.M+=x.Z%100,St(x)):Ct(x)}}function _(N,E,L,x){for(var B=0,F=E.length,G=L.length,X,me;B<F;){if(x>=G)return-1;if(X=E.charCodeAt(B++),X===37){if(X=E.charAt(B++),me=k[X in $n?E.charAt(B++):X],!me||(x=me(N,L,x))<0)return-1}else if(X!=L.charCodeAt(x++))return-1}return x}function A(N,E,L){var x=l.exec(E.slice(L));return x?(N.p=h.get(x[0].toLowerCase()),L+x[0].length):-1}function V(N,E,L){var x=y.exec(E.slice(L));return x?(N.w=M.get(x[0].toLowerCase()),L+x[0].length):-1}function O(N,E,L){var x=c.exec(E.slice(L));return x?(N.w=f.get(x[0].toLowerCase()),L+x[0].length):-1}function C(N,E,L){var x=S.exec(E.slice(L));return x?(N.m=m.get(x[0].toLowerCase()),L+x[0].length):-1}function $(N,E,L){var x=v.exec(E.slice(L));return x?(N.m=T.get(x[0].toLowerCase()),L+x[0].length):-1}function D(N,E,L){return _(N,t,E,L)}function H(N,E,L){return _(N,n,E,L)}function U(N,E,L){return _(N,r,E,L)}function Q(N){return a[N.getDay()]}function ae(N){return o[N.getDay()]}function ee(N){return s[N.getMonth()]}function P(N){return u[N.getMonth()]}function ge(N){return i[+(N.getHours()>=12)]}function ni(N){return 1+~~(N.getMonth()/3)}function ri(N){return a[N.getUTCDay()]}function ii(N){return o[N.getUTCDay()]}function oi(N){return s[N.getUTCMonth()]}function ai(N){return u[N.getUTCMonth()]}function ui(N){return i[+(N.getUTCHours()>=12)]}function si(N){return 1+~~(N.getUTCMonth()/3)}return{format:function(N){var E=p(N+="",g);return E.toString=function(){return N},E},parse:function(N){var E=w(N+="",!1);return E.toString=function(){return N},E},utcFormat:function(N){var E=p(N+="",d);return E.toString=function(){return N},E},utcParse:function(N){var E=w(N+="",!0);return E.toString=function(){return N},E}}}var $n={"-":"",_:" ",0:"0"},q=/^\s*\d+/,Oo=/^%/,Uo=/[\\^$*+?|[\]().{}]/g;function R(e,t,n){var r=e<0?"-":"",i=(r?-e:e)+"",o=i.length;return r+(o<n?new Array(n-o+1).join(t)+i:i)}function Fo(e){return e.replace(Uo,"\\$&")}function Oe(e){return new RegExp("^(?:"+e.map(Fo).join("|")+")","i")}function Ue(e){return new Map(e.map((t,n)=>[t.toLowerCase(),n]))}function jo(e,t,n){var r=q.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function Io(e,t,n){var r=q.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function Ho(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function zo(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function Yo(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function En(e,t,n){var r=q.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function An(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function Wo(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function qo(e,t,n){var r=q.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function Vo(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function Dn(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function Bo(e,t,n){var r=q.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function Pn(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function Go(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function Xo(e,t,n){var r=q.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function Zo(e,t,n){var r=q.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function Qo(e,t,n){var r=q.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Jo(e,t,n){var r=Oo.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function Ko(e,t,n){var r=q.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function ea(e,t,n){var r=q.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function Ln(e,t){return R(e.getDate(),t,2)}function ta(e,t){return R(e.getHours(),t,2)}function na(e,t){return R(e.getHours()%12||12,t,2)}function ra(e,t){return R(1+Le.count(oe(e),e),t,3)}function Ur(e,t){return R(e.getMilliseconds(),t,3)}function ia(e,t){return Ur(e,t)+"000"}function oa(e,t){return R(e.getMonth()+1,t,2)}function aa(e,t){return R(e.getMinutes(),t,2)}function ua(e,t){return R(e.getSeconds(),t,2)}function sa(e){var t=e.getDay();return t===0?7:t}function la(e,t){return R(We.count(oe(e)-1,e),t,2)}function Fr(e){var t=e.getDay();return t>=4||t===0?Ae(e):Ae.ceil(e)}function ca(e,t){return e=Fr(e),R(Ae.count(oe(e),e)+(oe(e).getDay()===4),t,2)}function fa(e){return e.getDay()}function ha(e,t){return R(it.count(oe(e)-1,e),t,2)}function pa(e,t){return R(e.getFullYear()%100,t,2)}function da(e,t){return e=Fr(e),R(e.getFullYear()%100,t,2)}function ga(e,t){return R(e.getFullYear()%1e4,t,4)}function ma(e,t){var n=e.getDay();return e=n>=4||n===0?Ae(e):Ae.ceil(e),R(e.getFullYear()%1e4,t,4)}function ya(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+R(t/60|0,"0",2)+R(t%60,"0",2)}function Rn(e,t){return R(e.getUTCDate(),t,2)}function xa(e,t){return R(e.getUTCHours(),t,2)}function va(e,t){return R(e.getUTCHours()%12||12,t,2)}function ba(e,t){return R(1+ht.count(pe(e),e),t,3)}function jr(e,t){return R(e.getUTCMilliseconds(),t,3)}function wa(e,t){return jr(e,t)+"000"}function Ma(e,t){return R(e.getUTCMonth()+1,t,2)}function ka(e,t){return R(e.getUTCMinutes(),t,2)}function Ta(e,t){return R(e.getUTCSeconds(),t,2)}function Na(e){var t=e.getUTCDay();return t===0?7:t}function Ca(e,t){return R(ln.count(pe(e)-1,e),t,2)}function Ir(e){var t=e.getUTCDay();return t>=4||t===0?De(e):De.ceil(e)}function Sa(e,t){return e=Ir(e),R(De.count(pe(e),e)+(pe(e).getUTCDay()===4),t,2)}function _a(e){return e.getUTCDay()}function $a(e,t){return R(ot.count(pe(e)-1,e),t,2)}function Ea(e,t){return R(e.getUTCFullYear()%100,t,2)}function Aa(e,t){return e=Ir(e),R(e.getUTCFullYear()%100,t,2)}function Da(e,t){return R(e.getUTCFullYear()%1e4,t,4)}function Pa(e,t){var n=e.getUTCDay();return e=n>=4||n===0?De(e):De.ceil(e),R(e.getUTCFullYear()%1e4,t,4)}function La(){return"+0000"}function On(){return"%"}function Un(e){return+e}function Fn(e){return Math.floor(+e/1e3)}var Te,Hr;Ra({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function Ra(e){return Te=Ro(e),Hr=Te.format,Te.parse,Te.utcFormat,Te.utcParse,Te}function Oa(e){return new Date(e)}function Ua(e){return e instanceof Date?+e:+new Date(+e)}function zr(e,t,n,r,i,o,a,u,s,l){var h=Er(),c=h.invert,f=h.domain,y=l(".%L"),M=l(":%S"),v=l("%I:%M"),T=l("%I %p"),S=l("%a %d"),m=l("%b %d"),g=l("%B"),d=l("%Y");function k(p){return(s(p)<p?y:u(p)<p?M:a(p)<p?v:o(p)<p?T:r(p)<p?i(p)<p?S:m:n(p)<p?g:d)(p)}return h.invert=function(p){return new Date(c(p))},h.domain=function(p){return arguments.length?f(Array.from(p,Ua)):f().map(Oa)},h.ticks=function(p){var w=f();return e(w[0],w[w.length-1],p??10)},h.tickFormat=function(p,w){return w==null?k:l(w)},h.nice=function(p){var w=f();return(!p||typeof p.range!="function")&&(p=t(w[0],w[w.length-1],p??10)),p?f(Mo(w,p)):h},h.copy=function(){return $r(h,zr(e,t,n,r,i,o,a,u,s,l))},h}function Fa(){return hr.apply(zr(Po,Lo,oe,pt,We,Le,ft,ct,he,Hr).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function ja(e,t){t.domain&&("nice"in e||"quantiles"in e||"padding"in e,e.domain(t.domain))}function Ia(e,t){t.range&&("padding"in e,e.range(t.range))}function Ha(e,t){"align"in e&&"align"in t&&typeof t.align<"u"&&e.align(t.align)}function za(e,t){"base"in e&&"base"in t&&typeof t.base<"u"&&e.base(t.base)}function Ya(e,t){"clamp"in e&&"clamp"in t&&typeof t.clamp<"u"&&e.clamp(t.clamp)}function Wa(e,t){"constant"in e&&"constant"in t&&typeof t.constant<"u"&&e.constant(t.constant)}function qa(e,t){"exponent"in e&&"exponent"in t&&typeof t.exponent<"u"&&e.exponent(t.exponent)}const jn={lab:Qi,hcl:Ji,"hcl-long":Ki,hsl:Xi,"hsl-long":Zi,cubehelix:eo,"cubehelix-long":to,rgb:Zt};function Va(e){switch(e){case"lab":case"hcl":case"hcl-long":case"hsl":case"hsl-long":case"cubehelix":case"cubehelix-long":case"rgb":return jn[e]}const{type:t,gamma:n}=e,r=jn[t];return typeof n>"u"?r:r.gamma(n)}function Ba(e,t){if("interpolate"in t&&"interpolate"in e&&typeof t.interpolate<"u"){const n=Va(t.interpolate);e.interpolate(n)}}const Ga=new Date(Date.UTC(2020,1,2,3,4,5)),Xa="%Y-%m-%d %H:%M";function Za(e){return e.tickFormat(1,Xa)(Ga)==="2020-02-02 03:04"}const In={day:Le,hour:ft,minute:ct,month:pt,second:he,week:We,year:oe},Hn={day:ht,hour:Rr,minute:Lr,month:Or,second:he,week:ln,year:pe};function Qa(e,t){if("nice"in t&&typeof t.nice<"u"&&"nice"in e){const{nice:n}=t;if(typeof n=="boolean")n&&e.nice();else if(typeof n=="number")e.nice(n);else{const r=e,i=Za(r);if(typeof n=="string")r.nice(i?Hn[n]:In[n]);else{const{interval:o,step:a}=n,u=(i?Hn[o]:In[o]).every(a);u!=null&&r.nice(u)}}}}function Ja(e,t){"padding"in e&&"padding"in t&&typeof t.padding<"u"&&e.padding(t.padding),"paddingInner"in e&&"paddingInner"in t&&typeof t.paddingInner<"u"&&e.paddingInner(t.paddingInner),"paddingOuter"in e&&"paddingOuter"in t&&typeof t.paddingOuter<"u"&&e.paddingOuter(t.paddingOuter)}function Ka(e,t){if(t.reverse){const n=e.range().slice().reverse();"padding"in e,e.range(n)}}function eu(e,t){"round"in t&&typeof t.round<"u"&&(t.round&&"interpolate"in t&&typeof t.interpolate<"u"?console.warn("[visx/scale/applyRound] ignoring round: scale config contains round and interpolate. only applying interpolate. config:",t):"round"in e?e.round(t.round):"interpolate"in e&&t.round&&e.interpolate(Nr))}function tu(e,t){"unknown"in e&&"unknown"in t&&typeof t.unknown<"u"&&e.unknown(t.unknown)}function nu(e,t){if("zero"in t&&t.zero===!0){const n=e.domain(),[r,i]=n,o=i<r,[a,u]=o?[i,r]:[r,i],s=[Math.min(0,a),Math.max(0,u)];e.domain(o?s.reverse():s)}}const ru=["domain","nice","zero","interpolate","round","range","reverse","align","base","clamp","constant","exponent","padding","unknown"],iu={domain:ja,nice:Qa,zero:nu,interpolate:Ba,round:eu,align:Ha,base:za,clamp:Ya,constant:Wa,exponent:qa,padding:Ja,range:Ia,reverse:Ka,unknown:tu};function Yr(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];const r=new Set(t),i=ru.filter(o=>r.has(o));return function(a,u){return typeof u<"u"&&i.forEach(s=>{iu[s](a,u)}),a}}const ou=Yr("domain","range","reverse","clamp","interpolate","nice","round","zero");function au(e){return ou(Pr(),e)}const uu=Yr("domain","range","reverse","clamp","interpolate","nice","round");function su(e){return uu(Fa(),e)}function Wr(e){if((typeof e=="function"||typeof e=="object"&&e)&&"valueOf"in e){const t=e.valueOf();if(typeof t=="number")return t}return e}function qr(e,t){const n=e;return"ticks"in n?n.ticks(t):n.domain().filter((r,i,o)=>t==null||o.length<=t||i%Math.round((o.length-1)/t)===0)}function lu(e){return e==null?void 0:e.toString()}var _t={exports:{}};/*!
2
2
  Copyright (c) 2018 Jed Watson.
3
3
  Licensed under the MIT License (MIT), see
4
4
  http://jedwatson.github.io/classnames
@@ -1 +1 @@
1
- import{a4 as e}from"./index-BgHk9cIy.js";function r({code:s,message:t}){return e.jsx("div",{className:"flex min-h-svh items-center justify-center bg-background p-4",children:e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx("span",{className:"text-lg font-semibold tracking-tight text-foreground",children:s}),e.jsx("span",{className:"h-6 w-px bg-border","aria-hidden":"true"}),e.jsx("span",{className:"text-sm text-muted-foreground",children:t})]})})}function a(){return e.jsx(r,{code:404,message:"page not found"})}export{a as NotFound};
1
+ import{a4 as e}from"./index-C1qD3uWi.js";function r({code:s,message:t}){return e.jsx("div",{className:"flex min-h-svh items-center justify-center bg-background p-4",children:e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx("span",{className:"text-lg font-semibold tracking-tight text-foreground",children:s}),e.jsx("span",{className:"h-6 w-px bg-border","aria-hidden":"true"}),e.jsx("span",{className:"text-sm text-muted-foreground",children:t})]})})}function a(){return e.jsx(r,{code:404,message:"page not found"})}export{a as NotFound};
@@ -1,4 +1,4 @@
1
- import{Y as G,a7 as o,am as Jt,a4 as n,K,z as kt,T as we,E as Se,B as ee,y as Re,S as Zt,s as Vn,a9 as at,ae as $e,ag as Xn,u as Ie,t as bt,Q as Qt,N as Ue,ad as qe,ak as Yn,U as Kn,x as Gn,g as qn,af as Jn,an as Zn,al as Qn,ac as er,L as tr}from"./index-BgHk9cIy.js";import{e as nr,a as rr,P as en,c as $t,S as sr,b as or}from"./build-format-Dgn-J3If.js";import{u as tn,T as ar,b as ir,c as It,a as Ft}from"./tabs-BCSJZGsw.js";import{D as nn,a as rn,d as cr,e as sn,b as lr,c as dr,k as ur,u as hr,S as fr,i as pr,j as mr,g as gr,h as Bt}from"./dialog-BDl6uCtr.js";import{B as xr}from"./badge-C4QfN3hf.js";/**
1
+ import{Y as G,a7 as o,am as Jt,a4 as n,K,z as kt,T as we,E as Se,B as ee,y as Re,S as Zt,s as Vn,a9 as at,ae as $e,ag as Xn,u as Ie,t as bt,Q as Qt,N as Ue,ad as qe,ak as Yn,U as Kn,x as Gn,g as qn,af as Jn,an as Zn,al as Qn,ac as er,L as tr}from"./index-C1qD3uWi.js";import{f as nr,a as rr,P as en,c as $t,S as sr,b as or}from"./build-format-B_GKS7x0.js";import{u as tn,T as ar,b as ir,c as It,a as Ft}from"./tabs-LFfwE6UX.js";import{D as nn,a as rn,d as cr,e as sn,b as lr,c as dr,k as ur,u as hr,S as fr,i as pr,j as mr,g as gr,h as Bt}from"./dialog-C4OyiMxc.js";import{B as xr}from"./badge-BWfJJL5y.js";/**
2
2
  * @license lucide-react v0.577.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1 +1 @@
1
- import{al as b,am as S,a7 as m,ai as k,aa as C,a4 as s,C as h,d as p,e as x,c as f,b as P,L as u,I as w,B as E,a5 as F,a8 as j}from"./index-BgHk9cIy.js";const T=F({password:j().min(8),confirm:j()}).refine(r=>r.password===r.confirm,{message:"Passwords do not match",path:["confirm"]});function L(){const r=b(),[g]=S(),a=g.get("token")??"",[n,t]=m.useState("loading"),{register:o,handleSubmit:v,setError:d,formState:{errors:e,isSubmitting:c}}=k({resolver:C(T),mode:"onBlur"});m.useEffect(()=>{if(!a){t("invalid");return}fetch(`/api/v1/auth/reset-password/verify?token=${a}`).then(i=>i.ok?t("valid"):Promise.reject()).catch(()=>t("invalid"))},[a]);async function N(i){try{const l=await fetch("/api/v1/auth/reset-password",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:a,password:i.password})});if(!l.ok){const y=await l.json();d("root",{message:y.error??"Failed to reset password"});return}r("/login",{replace:!0})}catch{d("root",{message:"Network error. Please try again."})}}return n==="loading"?s.jsx("div",{className:"flex min-h-svh items-center justify-center"}):n==="invalid"?s.jsx("div",{className:"bg-mesh-gradient flex min-h-svh items-center justify-center overflow-hidden p-4",children:s.jsx(h,{level:4,className:"w-full max-w-sm text-center",children:s.jsxs(p,{children:[s.jsx(x,{children:"Link expired"}),s.jsx(f,{children:"This password reset link is invalid or has expired. Ask your admin to send a new one."})]})})}):s.jsx("div",{className:"bg-mesh-gradient flex min-h-svh items-center justify-center overflow-hidden p-4",children:s.jsxs(h,{level:4,className:"w-full max-w-sm",children:[s.jsxs(p,{className:"text-center",children:[s.jsx(x,{children:"Reset password"}),s.jsx(f,{children:"Enter your new password below."})]}),s.jsx(P,{children:s.jsxs("form",{onSubmit:v(N),className:"flex flex-col gap-4",children:[s.jsxs("div",{className:"grid gap-2",children:[s.jsx(u,{htmlFor:"password",children:"New password"}),s.jsx(w,{id:"password",type:"password",...o("password")}),e.password&&s.jsx("p",{className:"text-sm text-destructive",children:e.password.message})]}),s.jsxs("div",{className:"grid gap-2",children:[s.jsx(u,{htmlFor:"confirm",children:"Confirm password"}),s.jsx(w,{id:"confirm",type:"password",...o("confirm")}),e.confirm&&s.jsx("p",{className:"text-sm text-destructive",children:e.confirm.message})]}),e.root&&s.jsx("p",{className:"text-sm text-destructive",children:e.root.message}),s.jsx(E,{type:"submit",disabled:c,className:"w-full",children:c?"Saving…":"Set new password"})]})})]})})}export{L as ResetPassword};
1
+ import{al as b,am as S,a7 as m,ai as k,aa as C,a4 as s,C as h,d as p,e as x,c as f,b as P,L as u,I as w,B as E,a5 as F,a8 as j}from"./index-C1qD3uWi.js";const T=F({password:j().min(8),confirm:j()}).refine(r=>r.password===r.confirm,{message:"Passwords do not match",path:["confirm"]});function L(){const r=b(),[g]=S(),a=g.get("token")??"",[n,t]=m.useState("loading"),{register:o,handleSubmit:v,setError:d,formState:{errors:e,isSubmitting:c}}=k({resolver:C(T),mode:"onBlur"});m.useEffect(()=>{if(!a){t("invalid");return}fetch(`/api/v1/auth/reset-password/verify?token=${a}`).then(i=>i.ok?t("valid"):Promise.reject()).catch(()=>t("invalid"))},[a]);async function N(i){try{const l=await fetch("/api/v1/auth/reset-password",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:a,password:i.password})});if(!l.ok){const y=await l.json();d("root",{message:y.error??"Failed to reset password"});return}r("/login",{replace:!0})}catch{d("root",{message:"Network error. Please try again."})}}return n==="loading"?s.jsx("div",{className:"flex min-h-svh items-center justify-center"}):n==="invalid"?s.jsx("div",{className:"bg-mesh-gradient flex min-h-svh items-center justify-center overflow-hidden p-4",children:s.jsx(h,{level:4,className:"w-full max-w-sm text-center",children:s.jsxs(p,{children:[s.jsx(x,{children:"Link expired"}),s.jsx(f,{children:"This password reset link is invalid or has expired. Ask your admin to send a new one."})]})})}):s.jsx("div",{className:"bg-mesh-gradient flex min-h-svh items-center justify-center overflow-hidden p-4",children:s.jsxs(h,{level:4,className:"w-full max-w-sm",children:[s.jsxs(p,{className:"text-center",children:[s.jsx(x,{children:"Reset password"}),s.jsx(f,{children:"Enter your new password below."})]}),s.jsx(P,{children:s.jsxs("form",{onSubmit:v(N),className:"flex flex-col gap-4",children:[s.jsxs("div",{className:"grid gap-2",children:[s.jsx(u,{htmlFor:"password",children:"New password"}),s.jsx(w,{id:"password",type:"password",...o("password")}),e.password&&s.jsx("p",{className:"text-sm text-destructive",children:e.password.message})]}),s.jsxs("div",{className:"grid gap-2",children:[s.jsx(u,{htmlFor:"confirm",children:"Confirm password"}),s.jsx(w,{id:"confirm",type:"password",...o("confirm")}),e.confirm&&s.jsx("p",{className:"text-sm text-destructive",children:e.confirm.message})]}),e.root&&s.jsx("p",{className:"text-sm text-destructive",children:e.root.message}),s.jsx(E,{type:"submit",disabled:c,className:"w-full",children:c?"Saving…":"Set new password"})]})})]})})}export{L as ResetPassword};
@@ -1 +1 @@
1
- import{al as f,ap as g,ai as w,aa as j,a7 as v,a4 as e,C as N,d as b,e as y,b as C,L as i,I as o,B as S,a5 as k,a8 as l}from"./index-BgHk9cIy.js";const E=k({email:l().email("Enter a valid email"),password:l().min(8,"Password must be at least 8 characters"),confirm:l()}).refine(a=>a.password===a.confirm,{message:"Passwords do not match",path:["confirm"]});function P(){const a=f(),{resolvedTheme:d}=g(),p=d==="dark"?"/logo-dark.svg":"/logo.svg",{register:r,handleSubmit:x,setError:c,formState:{errors:s,isSubmitting:n}}=w({resolver:j(E),mode:"onBlur"});v.useEffect(()=>{fetch("/api/v1/auth/status").then(t=>t.json()).then(({initialized:t})=>{t&&a("/login",{replace:!0})}).catch(()=>{})},[a]);async function h(t){try{const m=await fetch("/api/v1/auth/init",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:t.email,password:t.password})});if(!m.ok){const u=await m.json();c("root",{message:u.error??"Failed to create account"});return}a("/login",{replace:!0})}catch{c("root",{message:"Network error. Please try again."})}}return e.jsx("div",{className:"flex min-h-svh items-center justify-center overflow-hidden p-4",children:e.jsxs("div",{className:"flex flex-col items-center gap-6 w-full max-w-sm",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("img",{src:p,alt:"tapflow",className:"w-6 h-6"}),e.jsx("span",{className:"text-base font-semibold tracking-tight",children:"tapflow"})]}),e.jsxs(N,{level:4,className:"w-full",children:[e.jsx(b,{className:"text-center",children:e.jsx(y,{className:"text-2xl tracking-display-md",children:"Set up tapflow"})}),e.jsx(C,{children:e.jsxs("form",{onSubmit:x(h),className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(i,{htmlFor:"email",children:"Admin email"}),e.jsx(o,{id:"email",type:"email",placeholder:"admin@yourteam.com",autoComplete:"email",...r("email")}),s.email&&e.jsx("p",{className:"text-sm text-destructive",children:s.email.message})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(i,{htmlFor:"password",children:"Password"}),e.jsx(o,{id:"password",type:"password",autoComplete:"new-password",...r("password")}),s.password&&e.jsx("p",{className:"text-sm text-destructive",children:s.password.message})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(i,{htmlFor:"confirm",children:"Confirm password"}),e.jsx(o,{id:"confirm",type:"password",autoComplete:"new-password",...r("confirm")}),s.confirm&&e.jsx("p",{className:"text-sm text-destructive",children:s.confirm.message})]}),s.root&&e.jsx("p",{className:"text-sm text-destructive",children:s.root.message}),e.jsx(S,{type:"submit",size:"lg",disabled:n,className:"w-full mt-1",children:n?"Creating account…":"Create admin account"})]})})]})]})})}export{P as Setup};
1
+ import{al as f,ap as g,ai as w,aa as j,a7 as v,a4 as e,C as N,d as b,e as y,b as C,L as i,I as o,B as S,a5 as k,a8 as l}from"./index-C1qD3uWi.js";const E=k({email:l().email("Enter a valid email"),password:l().min(8,"Password must be at least 8 characters"),confirm:l()}).refine(a=>a.password===a.confirm,{message:"Passwords do not match",path:["confirm"]});function P(){const a=f(),{resolvedTheme:d}=g(),p=d==="dark"?"/logo-dark.svg":"/logo.svg",{register:r,handleSubmit:x,setError:c,formState:{errors:s,isSubmitting:n}}=w({resolver:j(E),mode:"onBlur"});v.useEffect(()=>{fetch("/api/v1/auth/status").then(t=>t.json()).then(({initialized:t})=>{t&&a("/login",{replace:!0})}).catch(()=>{})},[a]);async function h(t){try{const m=await fetch("/api/v1/auth/init",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:t.email,password:t.password})});if(!m.ok){const u=await m.json();c("root",{message:u.error??"Failed to create account"});return}a("/login",{replace:!0})}catch{c("root",{message:"Network error. Please try again."})}}return e.jsx("div",{className:"flex min-h-svh items-center justify-center overflow-hidden p-4",children:e.jsxs("div",{className:"flex flex-col items-center gap-6 w-full max-w-sm",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("img",{src:p,alt:"tapflow",className:"w-6 h-6"}),e.jsx("span",{className:"text-base font-semibold tracking-tight",children:"tapflow"})]}),e.jsxs(N,{level:4,className:"w-full",children:[e.jsx(b,{className:"text-center",children:e.jsx(y,{className:"text-2xl tracking-display-md",children:"Set up tapflow"})}),e.jsx(C,{children:e.jsxs("form",{onSubmit:x(h),className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(i,{htmlFor:"email",children:"Admin email"}),e.jsx(o,{id:"email",type:"email",placeholder:"admin@yourteam.com",autoComplete:"email",...r("email")}),s.email&&e.jsx("p",{className:"text-sm text-destructive",children:s.email.message})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(i,{htmlFor:"password",children:"Password"}),e.jsx(o,{id:"password",type:"password",autoComplete:"new-password",...r("password")}),s.password&&e.jsx("p",{className:"text-sm text-destructive",children:s.password.message})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(i,{htmlFor:"confirm",children:"Confirm password"}),e.jsx(o,{id:"confirm",type:"password",autoComplete:"new-password",...r("confirm")}),s.confirm&&e.jsx("p",{className:"text-sm text-destructive",children:s.confirm.message})]}),s.root&&e.jsx("p",{className:"text-sm text-destructive",children:s.root.message}),e.jsx(S,{type:"submit",size:"lg",disabled:n,className:"w-full mt-1",children:n?"Creating account…":"Create admin account"})]})})]})]})})}export{P as Setup};
@@ -1,4 +1,4 @@
1
- import{Y as _,a7 as i,ai as z,aa as J,a4 as e,B as t,L as D,I as q,i as G,C as U,d as Y,e as K,b as W,a9 as j,a5 as I,a8 as u,H as X}from"./index-BgHk9cIy.js";import{D as Z,f as ee,a as se,d as ae,e as ne,S as N,i as w,j as T,g as k,h as n}from"./dialog-BDl6uCtr.js";import{A as ie,c as te,f as le,g as re,d as ce,e as oe,b as de,a as me}from"./alert-dialog-C9JkZxpw.js";import{T as he,d as xe,e as A,c as l,a as je,b as r}from"./table-DAingeQp.js";/**
1
+ import{Y as _,a7 as i,ai as z,aa as J,a4 as e,B as t,L as D,I as q,i as G,C as U,d as Y,e as K,b as W,a9 as j,a5 as I,a8 as u,H as X}from"./index-C1qD3uWi.js";import{D as Z,f as ee,a as se,d as ae,e as ne,S as N,i as w,j as T,g as k,h as n}from"./dialog-C4OyiMxc.js";import{A as ie,c as te,f as le,g as re,d as ce,e as oe,b as de,a as me}from"./alert-dialog-DdKN_y9-.js";import{T as he,d as xe,e as A,c as l,a as je,b as r}from"./table-CRKLjzLC.js";/**
2
2
  * @license lucide-react v0.577.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -0,0 +1 @@
1
+ import{a7 as n,ai as $,aa as H,a4 as e,B as d,a9 as a,L as k,I as S,C as O,d as z,e as V,c as W,b as M,a5 as J,a8 as A}from"./index-C1qD3uWi.js";import{B as I}from"./badge-BWfJJL5y.js";import{A as U,c as q,f as G,g as K,d as Q,e as X,b as Y}from"./alert-dialog-DdKN_y9-.js";import{D as Z,f as ee,a as se,d as ae,e as te,S as ne,i as re,j as oe,g as ie,h as B}from"./dialog-C4OyiMxc.js";import{T as le,d as ce,e as w,c as x,a as de,b as i}from"./table-CRKLjzLC.js";import{P as xe,T as he}from"./trash-2-DswjRF4T.js";async function me(){const t=window.location.protocol==="https:"?"wss":"ws";if(["localhost","127.0.0.1","[::1]"].includes(window.location.hostname))try{const h=await fetch("/api/v1/relay/host",{credentials:"include"});if(h.ok){const{lanHost:l,port:o}=await h.json();if(l)return`${t}://${l}:${o}`}}catch{}return`${t}://${window.location.host}`}const pe=J({name:A().min(1),expiresDays:A().refine(t=>{const r=parseInt(t,10);return!isNaN(r)&&r>=1&&r<=365},{message:"Must be between 1 and 365"})});function ye(){const[t,r]=n.useState([]),[h,l]=n.useState(!1),[o,y]=n.useState(""),[c,v]=n.useState("api"),[N,b]=n.useState(""),[u,j]=n.useState(null),{register:T,handleSubmit:E,reset:_,formState:{errors:m,isSubmitting:C}}=$({resolver:H(pe),mode:"onBlur",defaultValues:{name:"",expiresDays:"30"}});function g(){fetch("/api/v1/tokens",{credentials:"include"}).then(s=>s.json()).then(r)}n.useEffect(()=>{g()},[]);async function R(s){try{const p=await fetch("/api/v1/tokens",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:s.name,expires_in_days:parseInt(s.expiresDays,10),...c==="agent"?{scope:"agent"}:{}})});if(!p.ok){const f=await p.json().catch(()=>null);a.error((f==null?void 0:f.error)??"Failed to create token");return}const P=await p.json();c==="agent"&&b(await me()),a.success("Token created"),y(P.token),g()}catch{a.error("Network error")}}function F(s){l(s),s||(y(""),v("api"),b(""),_())}async function L(s){try{return(await fetch(`/api/v1/tokens/${s}`,{method:"DELETE",credentials:"include"})).ok?(a.success("Token revoked"),g(),!0):(a.error("Failed to revoke token"),!1)}catch{return a.error("Network error"),!1}}function D(s){return s.expires_at&&new Date(s.expires_at)<new Date}return e.jsxs("div",{className:"flex flex-col gap-6 max-w-[900px] mx-auto w-full p-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("h1",{className:"text-xl font-semibold",children:"Personal Access Tokens"}),e.jsxs(Z,{open:h,onOpenChange:F,children:[e.jsx(ee,{asChild:!0,children:e.jsxs(d,{size:"sm",children:[e.jsx(xe,{className:"mr-2 h-4 w-4"}),"New token"]})}),e.jsxs(se,{className:"sm:max-w-md",children:[e.jsx(ae,{children:e.jsx(te,{children:"Create token"})}),o?e.jsxs("div",{className:"flex flex-col gap-3 pt-2",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"Copy this token now — it won't be shown again."}),e.jsx("code",{className:"rounded bg-muted px-3 py-2 text-xs break-all font-mono",children:o}),c==="agent"&&N&&e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"Run this on the agent Mac to connect it to this relay:"}),e.jsx("code",{className:"rounded bg-muted px-3 py-2 text-xs break-all font-mono",children:`tapflow agent start --relay ${N} --token ${o}`})]}),e.jsx(d,{onClick:()=>{navigator.clipboard.writeText(o).then(()=>{a.success("Token copied to clipboard"),l(!1)}).catch(()=>a.error("Failed to copy — copy manually"))},children:"Copy & close"})]}):e.jsxs("form",{onSubmit:E(R),className:"flex flex-col gap-4 pt-2",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(k,{htmlFor:"token-name",children:"Name"}),e.jsx(S,{id:"token-name",placeholder:"e.g. ci-deploy",...T("name")}),m.name&&e.jsx("p",{className:"text-sm text-destructive",children:m.name.message})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(k,{htmlFor:"expires",children:"Expires in (days)"}),e.jsx(S,{id:"expires",type:"number",...T("expiresDays")}),m.expiresDays&&e.jsx("p",{className:"text-sm text-destructive",children:m.expiresDays.message})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(k,{children:"Type"}),e.jsxs(ne,{value:c,onValueChange:s=>v(s),children:[e.jsx(re,{children:e.jsx(oe,{})}),e.jsxs(ie,{children:[e.jsx(B,{value:"api",children:"API — CI uploads & API access"}),e.jsx(B,{value:"agent",children:"Agent — connect remote device agents (Admin only)"})]})]})]}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:["Scope: ",e.jsx(I,{variant:"secondary",children:c==="agent"?"agent":"view, builds:write"})]}),e.jsx(d,{type:"submit",disabled:C,children:C?"Creating…":"Create token"})]})]})]})]}),e.jsxs(O,{children:[e.jsxs(z,{children:[e.jsx(V,{children:"Active tokens"}),e.jsxs(W,{children:["Use these tokens with ",e.jsx("code",{className:"text-xs",children:"Authorization: Bearer <token>"})," for API deployments."]})]}),e.jsx(M,{className:"px-4 pt-0 pb-2",children:e.jsxs(le,{children:[e.jsx(ce,{children:e.jsxs(w,{children:[e.jsx(x,{children:"Name"}),e.jsx(x,{children:"Scope"}),e.jsx(x,{children:"Last used"}),e.jsx(x,{children:"Expires"}),e.jsx(x,{className:"w-10"})]})}),e.jsx(de,{children:t.length===0?e.jsx(w,{children:e.jsx(i,{colSpan:5,className:"h-20 text-center text-muted-foreground",children:"No tokens yet."})}):t.map(s=>e.jsxs(w,{className:"hover:bg-transparent",children:[e.jsx(i,{className:"font-medium",children:s.name}),e.jsx(i,{children:e.jsx(I,{variant:"secondary",children:s.scope})}),e.jsx(i,{className:"text-muted-foreground text-sm",children:s.last_used_at?new Date(s.last_used_at).toLocaleDateString():"Never"}),e.jsx(i,{children:s.expires_at?e.jsx("span",{className:D(s)?"text-destructive text-sm":"text-muted-foreground text-sm",children:D(s)?"Expired":new Date(s.expires_at).toLocaleDateString()}):e.jsx("span",{className:"text-muted-foreground text-sm",children:"Never"})}),e.jsx(i,{children:e.jsx(d,{variant:"destructive",size:"icon",className:"h-7 w-7","aria-label":"Revoke token",onClick:()=>j(s.id),children:e.jsx(he,{className:"h-4 w-4"})})})]},s.id))})]})})]}),e.jsx(U,{open:u!==null,onOpenChange:s=>{s||j(null)},children:e.jsxs(q,{children:[e.jsxs(G,{children:[e.jsx(K,{children:"Revoke token?"}),e.jsx(Q,{children:"Any active API calls using this token will immediately fail."})]}),e.jsxs(X,{children:[e.jsx(Y,{children:"Cancel"}),e.jsx(d,{variant:"destructive",onClick:async()=>{if(u===null)return;await L(u)&&j(null)},children:"Revoke"})]})]})})]})}export{ye as TokenSettings};
@@ -1 +1 @@
1
- import{a4 as o,D as F,a7 as r,p as L,W as D,n as k,ae as A,k as H,N as G,o as V,l as J,j as m,m as K,Q,K as n,J as u}from"./index-BgHk9cIy.js";var v="AlertDialog",[W]=Q(v,[D]),i=D(),N=e=>{const{__scopeAlertDialog:a,...t}=e,l=i(a);return o.jsx(F,{...l,...t,modal:!0})};N.displayName=v;var Y="AlertDialogTrigger",x=r.forwardRef((e,a)=>{const{__scopeAlertDialog:t,...l}=e,s=i(t);return o.jsx(L,{...s,...l,ref:a})});x.displayName=Y;var q="AlertDialogPortal",y=e=>{const{__scopeAlertDialog:a,...t}=e,l=i(a);return o.jsx(k,{...l,...t})};y.displayName=q;var B="AlertDialogOverlay",R=r.forwardRef((e,a)=>{const{__scopeAlertDialog:t,...l}=e,s=i(t);return o.jsx(K,{...s,...l,ref:a})});R.displayName=B;var _="AlertDialogContent",[U,X]=W(_),j=r.forwardRef((e,a)=>{const{__scopeAlertDialog:t,children:l,...s}=e,d=i(t),p=r.useRef(null),z=A(a,p),g=r.useRef(null);return o.jsx(U,{scope:t,cancelRef:g,children:o.jsx(H,{role:"alertdialog",...d,...s,ref:z,onOpenAutoFocus:G(s.onOpenAutoFocus,c=>{var f;c.preventDefault(),(f=g.current)==null||f.focus({preventScroll:!0})}),onPointerDownOutside:c=>c.preventDefault(),onInteractOutside:c=>c.preventDefault(),children:l})})});j.displayName=_;var Z="AlertDialogTitle",C=r.forwardRef((e,a)=>{const{__scopeAlertDialog:t,...l}=e,s=i(t);return o.jsx(V,{...s,...l,ref:a})});C.displayName=Z;var ee="AlertDialogDescription",T=r.forwardRef((e,a)=>{const{__scopeAlertDialog:t,...l}=e,s=i(t);return o.jsx(J,{...s,...l,ref:a})});T.displayName=ee;var ae="AlertDialogAction",w=r.forwardRef((e,a)=>{const{__scopeAlertDialog:t,...l}=e,s=i(t);return o.jsx(m,{...s,...l,ref:a})});w.displayName=ae;var E="AlertDialogCancel",P=r.forwardRef((e,a)=>{const{__scopeAlertDialog:t,...l}=e,{cancelRef:s}=X(E,t),d=i(t),p=A(a,s);return o.jsx(m,{...d,...l,ref:p})});P.displayName=E;var te=N,oe=x,le=y,O=R,S=j,M=w,$=P,b=C,I=T;const De=te,Ae=oe,re=le,h=r.forwardRef(({className:e,...a},t)=>o.jsx(O,{className:n("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...a,ref:t}));h.displayName=O.displayName;const se=r.forwardRef(({className:e,...a},t)=>o.jsxs(re,{children:[o.jsx(h,{}),o.jsx(S,{ref:t,className:n("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...a})]}));se.displayName=S.displayName;const ie=({className:e,...a})=>o.jsx("div",{className:n("flex flex-col space-y-2 text-center sm:text-left",e),...a});ie.displayName="AlertDialogHeader";const ne=({className:e,...a})=>o.jsx("div",{className:n("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...a});ne.displayName="AlertDialogFooter";const ce=r.forwardRef(({className:e,...a},t)=>o.jsx(b,{ref:t,className:n("text-lg font-semibold",e),...a}));ce.displayName=b.displayName;const de=r.forwardRef(({className:e,...a},t)=>o.jsx(I,{ref:t,className:n("text-sm text-muted-foreground",e),...a}));de.displayName=I.displayName;const pe=r.forwardRef(({className:e,...a},t)=>o.jsx(M,{ref:t,className:n(u(),e),...a}));pe.displayName=M.displayName;const ge=r.forwardRef(({className:e,...a},t)=>o.jsx($,{ref:t,className:n(u({variant:"outline"}),"mt-2 sm:mt-0",e),...a}));ge.displayName=$.displayName;export{De as A,pe as a,ge as b,se as c,de as d,ne as e,ie as f,ce as g,Ae as h};
1
+ import{a4 as o,D as F,a7 as r,p as L,W as D,n as k,ae as A,k as H,N as G,o as V,l as J,j as m,m as K,Q,K as n,J as u}from"./index-C1qD3uWi.js";var v="AlertDialog",[W]=Q(v,[D]),i=D(),N=e=>{const{__scopeAlertDialog:a,...t}=e,l=i(a);return o.jsx(F,{...l,...t,modal:!0})};N.displayName=v;var Y="AlertDialogTrigger",x=r.forwardRef((e,a)=>{const{__scopeAlertDialog:t,...l}=e,s=i(t);return o.jsx(L,{...s,...l,ref:a})});x.displayName=Y;var q="AlertDialogPortal",y=e=>{const{__scopeAlertDialog:a,...t}=e,l=i(a);return o.jsx(k,{...l,...t})};y.displayName=q;var B="AlertDialogOverlay",R=r.forwardRef((e,a)=>{const{__scopeAlertDialog:t,...l}=e,s=i(t);return o.jsx(K,{...s,...l,ref:a})});R.displayName=B;var _="AlertDialogContent",[U,X]=W(_),j=r.forwardRef((e,a)=>{const{__scopeAlertDialog:t,children:l,...s}=e,d=i(t),p=r.useRef(null),z=A(a,p),g=r.useRef(null);return o.jsx(U,{scope:t,cancelRef:g,children:o.jsx(H,{role:"alertdialog",...d,...s,ref:z,onOpenAutoFocus:G(s.onOpenAutoFocus,c=>{var f;c.preventDefault(),(f=g.current)==null||f.focus({preventScroll:!0})}),onPointerDownOutside:c=>c.preventDefault(),onInteractOutside:c=>c.preventDefault(),children:l})})});j.displayName=_;var Z="AlertDialogTitle",C=r.forwardRef((e,a)=>{const{__scopeAlertDialog:t,...l}=e,s=i(t);return o.jsx(V,{...s,...l,ref:a})});C.displayName=Z;var ee="AlertDialogDescription",T=r.forwardRef((e,a)=>{const{__scopeAlertDialog:t,...l}=e,s=i(t);return o.jsx(J,{...s,...l,ref:a})});T.displayName=ee;var ae="AlertDialogAction",w=r.forwardRef((e,a)=>{const{__scopeAlertDialog:t,...l}=e,s=i(t);return o.jsx(m,{...s,...l,ref:a})});w.displayName=ae;var E="AlertDialogCancel",P=r.forwardRef((e,a)=>{const{__scopeAlertDialog:t,...l}=e,{cancelRef:s}=X(E,t),d=i(t),p=A(a,s);return o.jsx(m,{...d,...l,ref:p})});P.displayName=E;var te=N,oe=x,le=y,O=R,S=j,M=w,$=P,b=C,I=T;const De=te,Ae=oe,re=le,h=r.forwardRef(({className:e,...a},t)=>o.jsx(O,{className:n("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...a,ref:t}));h.displayName=O.displayName;const se=r.forwardRef(({className:e,...a},t)=>o.jsxs(re,{children:[o.jsx(h,{}),o.jsx(S,{ref:t,className:n("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...a})]}));se.displayName=S.displayName;const ie=({className:e,...a})=>o.jsx("div",{className:n("flex flex-col space-y-2 text-center sm:text-left",e),...a});ie.displayName="AlertDialogHeader";const ne=({className:e,...a})=>o.jsx("div",{className:n("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...a});ne.displayName="AlertDialogFooter";const ce=r.forwardRef(({className:e,...a},t)=>o.jsx(b,{ref:t,className:n("text-lg font-semibold",e),...a}));ce.displayName=b.displayName;const de=r.forwardRef(({className:e,...a},t)=>o.jsx(I,{ref:t,className:n("text-sm text-muted-foreground",e),...a}));de.displayName=I.displayName;const pe=r.forwardRef(({className:e,...a},t)=>o.jsx(M,{ref:t,className:n(u(),e),...a}));pe.displayName=M.displayName;const ge=r.forwardRef(({className:e,...a},t)=>o.jsx($,{ref:t,className:n(u({variant:"outline"}),"mt-2 sm:mt-0",e),...a}));ge.displayName=$.displayName;export{De as A,pe as a,ge as b,se as c,de as d,ne as e,ie as f,ce as g,Ae as h};
@@ -1 +1 @@
1
- import{a4 as n,K as d,a1 as o}from"./index-BgHk9cIy.js";const s=o("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground",secondary:"border-transparent bg-secondary text-secondary-foreground",destructive:"border-transparent bg-destructive text-destructive-foreground",outline:"text-foreground"},tone:{backlog:"border-transparent bg-zinc-100 text-zinc-600 dark:bg-zinc-800 dark:text-zinc-400",progress:"border-transparent bg-blue-50 text-blue-700 dark:bg-blue-950 dark:text-blue-300",done:"border-transparent bg-green-50 text-green-700 dark:bg-green-950 dark:text-green-300",rejected:"border-transparent bg-red-50 text-red-700 dark:bg-red-950 dark:text-red-300",ios:"border-transparent bg-sky-50 text-sky-700 dark:bg-sky-950 dark:text-sky-300",android:"border-transparent bg-emerald-50 text-emerald-700 dark:bg-emerald-950 dark:text-emerald-300"}},defaultVariants:{variant:"default"}});function g({className:r,variant:e,tone:t,...a}){return n.jsx("div",{className:d(s({variant:e,tone:t}),r),...a})}export{g as B};
1
+ import{a4 as n,K as d,a1 as o}from"./index-C1qD3uWi.js";const s=o("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground",secondary:"border-transparent bg-secondary text-secondary-foreground",destructive:"border-transparent bg-destructive text-destructive-foreground",outline:"text-foreground"},tone:{backlog:"border-transparent bg-zinc-100 text-zinc-600 dark:bg-zinc-800 dark:text-zinc-400",progress:"border-transparent bg-blue-50 text-blue-700 dark:bg-blue-950 dark:text-blue-300",done:"border-transparent bg-green-50 text-green-700 dark:bg-green-950 dark:text-green-300",rejected:"border-transparent bg-red-50 text-red-700 dark:bg-red-950 dark:text-red-300",ios:"border-transparent bg-sky-50 text-sky-700 dark:bg-sky-950 dark:text-sky-300",android:"border-transparent bg-emerald-50 text-emerald-700 dark:bg-emerald-950 dark:text-emerald-300"}},defaultVariants:{variant:"default"}});function g({className:r,variant:e,tone:t,...a}){return n.jsx("div",{className:d(s({variant:e,tone:t}),r),...a})}export{g as B};
@@ -0,0 +1,11 @@
1
+ import{Y as r,a4 as i,I as o}from"./index-C1qD3uWi.js";/**
2
+ * @license lucide-react v0.577.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const c=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],f=r("play",c);/**
7
+ * @license lucide-react v0.577.0 - ISC
8
+ *
9
+ * This source code is licensed under the ISC license.
10
+ * See the LICENSE file in the root directory of this source tree.
11
+ */const d=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],l=r("search",d);function h({value:e,onChange:t,placeholder:a,className:n}){return i.jsxs("div",{className:"relative",children:[i.jsx(l,{className:"absolute left-2.5 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none"}),i.jsx(o,{placeholder:a,value:e,onChange:s=>t(s.target.value),className:`h-8 pl-8 ${n??"w-48"}`})]})}async function m(){const e=await fetch("/api/v1/apps",{credentials:"include"});return e.ok?(await e.json()).items:[]}async function y({appId:e,search:t,statusFilter:a}){const n=new URLSearchParams({app_id:String(e),limit:"100",sort:"uploaded_at",dir:"desc"});t&&n.set("q",t),a&&a!=="all"&&n.set("status",a);const s=await fetch(`/api/v1/builds?${n}`,{credentials:"include"});return s.ok?(await s.json()).items:[]}async function b(e){const t=await fetch("/api/v1/apps",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});return t.status===409?{error:"App with this bundle ID and platform already exists"}:t.ok?t.json():null}async function w(e,t){await fetch(`/api/v1/builds/${e}`,{method:"PATCH",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({status_label:t})})}async function _(e){const t=await fetch(`/api/v1/builds/${e}/schedule-deletion`,{method:"POST",credentials:"include"});if(!t.ok)throw new Error(`Failed to schedule deletion (${t.status})`);return(await t.json()).delete_after}async function v(e){const t=await fetch(`/api/v1/builds/${e}/schedule-deletion`,{method:"DELETE",credentials:"include"});if(!t.ok)throw new Error(`Failed to cancel scheduled deletion (${t.status})`)}async function g(e){const t=await fetch(`/api/v1/builds/${e}`,{credentials:"include"});return t.ok?t.json():null}function j(e){const t=new Map;for(const a of e){const n=a.version_name??"Unversioned";t.has(n)||t.set(n,[]),t.get(n).push(a)}return Array.from(t.entries()).map(([a,n])=>({versionName:a,builds:n}))}const k={Backlog:"backlog","In Progress":"progress",Done:"done",Rejected:"rejected"};function S(e){return e.version_name&&e.build_number?`${e.version_name} · build ${e.build_number}`:e.version_name??e.version_label??(e.build_number?`build ${e.build_number}`:"Build")}export{f as P,k as S,l as a,h as b,S as c,v as d,b as e,g as f,m as g,y as h,j as i,_ as s,w as u};
@@ -1,4 +1,4 @@
1
- import{Y as Oe,a7 as n,a4 as r,ae as B,ak as z,u as D,ag as gt,af as De,aj as Ne,w as xt,V as vt,A as St,N as P,P as wt,t as yt,a6 as Ae,Z as ke,O as Ct,ad as Nt,Q as bt,a3 as Tt,ah as It,R as Pt,F as Rt,q as _t,a0 as Et,h as jt,a as Dt,K as E,f as Mt,D as Ot,p as At,n as kt,k as Le,j as Lt,X as Vt,o as Ve,m as Be,l as He}from"./index-BgHk9cIy.js";/**
1
+ import{Y as Oe,a7 as n,a4 as r,ae as B,ak as z,u as D,ag as gt,af as De,aj as Ne,w as xt,V as vt,A as St,N as P,P as wt,t as yt,a6 as Ae,Z as ke,O as Ct,ad as Nt,Q as bt,a3 as Tt,ah as It,R as Pt,F as Rt,q as _t,a0 as Et,h as jt,a as Dt,K as E,f as Mt,D as Ot,p as At,n as kt,k as Le,j as Lt,X as Vt,o as Ve,m as Be,l as He}from"./index-C1qD3uWi.js";/**
2
2
  * @license lucide-react v0.577.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.