@kahitsan/plugin-sdk 0.3.0-staging.43 → 0.3.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.
- package/bin/cli.mjs +4 -6
- package/dist/index.js +1 -1
- package/package.json +2 -3
- package/shell/_build/.vite/manifest.json +0 -189
- package/shell/_build/.vite/manifest.json.br +0 -0
- package/shell/_build/.vite/manifest.json.gz +0 -0
- package/shell/_build/assets/_...slug_-BNycC89F.js +0 -1
- package/shell/_build/assets/_...slug_-BNycC89F.js.br +0 -0
- package/shell/_build/assets/_...slug_-BNycC89F.js.gz +0 -0
- package/shell/_build/assets/api-keys-zDu0DTIi.js +0 -1
- package/shell/_build/assets/auth-CPW4mGTx.js +0 -70
- package/shell/_build/assets/auth-CPW4mGTx.js.br +0 -0
- package/shell/_build/assets/auth-CPW4mGTx.js.gz +0 -0
- package/shell/_build/assets/client-B0tH7z8C.css +0 -1
- package/shell/_build/assets/client-B0tH7z8C.css.br +0 -0
- package/shell/_build/assets/client-B0tH7z8C.css.gz +0 -0
- package/shell/_build/assets/client-BhDpDGXU.js +0 -2
- package/shell/_build/assets/client-BhDpDGXU.js.br +0 -0
- package/shell/_build/assets/client-BhDpDGXU.js.gz +0 -0
- package/shell/_build/assets/components-kMeatXhB.js +0 -1
- package/shell/_build/assets/dashboard-BwMkrsX2.js +0 -1
- package/shell/_build/assets/index-dCQOOcel.js +0 -1
- package/shell/_build/assets/login-BwMkrsX2.js +0 -1
- package/shell/_build/assets/members-CKVe_2mI.js +0 -1
- package/shell/_build/assets/plugin-ui-rgxz3UHD.js +0 -10
- package/shell/_build/assets/plugin-ui-rgxz3UHD.js.br +0 -0
- package/shell/_build/assets/plugin-ui-rgxz3UHD.js.gz +0 -0
- package/shell/_build/assets/register-BwMkrsX2.js +0 -1
- package/shell/_build/assets/routing-BlHUL5zP.js +0 -1
- package/shell/_build/assets/routing-BlHUL5zP.js.br +0 -0
- package/shell/_build/assets/routing-BlHUL5zP.js.gz +0 -0
- package/shell/_build/assets/settings-BwMkrsX2.js +0 -1
- package/shell/_build/assets/users-BwMkrsX2.js +0 -1
- package/shell/_build/assets/workspace-nav-DsOJmRdY.js +0 -1
- package/shell/_build/assets/workspace-nav-DsOJmRdY.js.br +0 -0
- package/shell/_build/assets/workspace-nav-DsOJmRdY.js.gz +0 -0
- package/shell/_build/assets/workspace-settings-BwMkrsX2.js +0 -1
- package/shell/_build/assets/workspaces-BwMkrsX2.js +0 -1
- package/shell/_headers +0 -20
- package/shell/_redirects +0 -4
- package/shell/_server/assets/app-B0tH7z8C.css +0 -1
- package/shell/_server/assets/app-B0tH7z8C.css.br +0 -0
- package/shell/_server/assets/app-B0tH7z8C.css.gz +0 -0
- package/shell/apple-touch-icon.png +0 -0
- package/shell/dev/apple-touch-icon.png +0 -0
- package/shell/dev/favicon-32.png +0 -0
- package/shell/dev/favicon.ico +0 -0
- package/shell/dev/manifest.webmanifest +0 -31
- package/shell/dev/pwa-192.png +0 -0
- package/shell/dev/pwa-512-maskable.png +0 -0
- package/shell/dev/pwa-512.png +0 -0
- package/shell/favicon-32.png +0 -0
- package/shell/favicon.ico +0 -0
- package/shell/index.html +0 -1
- package/shell/index.html.br +0 -0
- package/shell/index.html.gz +0 -0
- package/shell/manifest.webmanifest +0 -31
- package/shell/pwa-192.png +0 -0
- package/shell/pwa-512-maskable.png +0 -0
- package/shell/pwa-512.png +0 -0
- package/shell/sw.js +0 -103
- package/shell/sw.js.br +0 -0
- package/shell/sw.js.gz +0 -0
- package/src/dev/serve.ts +0 -141
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kahitsan/plugin-sdk",
|
|
3
|
-
"version": "0.3.0
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "THE single public author surface for Hilinga plugins: createPlugin, auth guards, the workspace-scoped data surface (makeDataSurface) + migrations + withTenantContext, cross-plugin RPC, and the wire-protocol verify surface. One npm package, no -composite/-protocol companions. Self-contained, no kernel internals, no signing capability.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -18,8 +18,7 @@
|
|
|
18
18
|
"files": [
|
|
19
19
|
"dist",
|
|
20
20
|
"bin",
|
|
21
|
-
"src/dev"
|
|
22
|
-
"shell"
|
|
21
|
+
"src/dev"
|
|
23
22
|
],
|
|
24
23
|
"bin": {
|
|
25
24
|
"plugin-sdk": "./bin/cli.mjs"
|
|
@@ -1,189 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"_auth-CPW4mGTx.js": {
|
|
3
|
-
"file": "assets/auth-CPW4mGTx.js",
|
|
4
|
-
"name": "auth",
|
|
5
|
-
"imports": [
|
|
6
|
-
"_routing-BlHUL5zP.js",
|
|
7
|
-
"_components-kMeatXhB.js"
|
|
8
|
-
]
|
|
9
|
-
},
|
|
10
|
-
"_components-kMeatXhB.js": {
|
|
11
|
-
"file": "assets/components-kMeatXhB.js",
|
|
12
|
-
"name": "components",
|
|
13
|
-
"imports": [
|
|
14
|
-
"_routing-BlHUL5zP.js"
|
|
15
|
-
]
|
|
16
|
-
},
|
|
17
|
-
"_plugin-ui-rgxz3UHD.js": {
|
|
18
|
-
"file": "assets/plugin-ui-rgxz3UHD.js",
|
|
19
|
-
"name": "plugin-ui",
|
|
20
|
-
"imports": [
|
|
21
|
-
"_routing-BlHUL5zP.js",
|
|
22
|
-
"_auth-CPW4mGTx.js"
|
|
23
|
-
]
|
|
24
|
-
},
|
|
25
|
-
"_routing-BlHUL5zP.js": {
|
|
26
|
-
"file": "assets/routing-BlHUL5zP.js",
|
|
27
|
-
"name": "routing"
|
|
28
|
-
},
|
|
29
|
-
"_workspace-nav-DsOJmRdY.js": {
|
|
30
|
-
"file": "assets/workspace-nav-DsOJmRdY.js",
|
|
31
|
-
"name": "workspace-nav",
|
|
32
|
-
"imports": [
|
|
33
|
-
"_auth-CPW4mGTx.js",
|
|
34
|
-
"_routing-BlHUL5zP.js"
|
|
35
|
-
]
|
|
36
|
-
},
|
|
37
|
-
"src/routes/[...slug].tsx?pick=default&pick=$css": {
|
|
38
|
-
"file": "assets/_...slug_-BNycC89F.js",
|
|
39
|
-
"name": "_...slug_",
|
|
40
|
-
"src": "src/routes/[...slug].tsx?pick=default&pick=$css",
|
|
41
|
-
"isEntry": true,
|
|
42
|
-
"isDynamicEntry": true,
|
|
43
|
-
"imports": [
|
|
44
|
-
"_routing-BlHUL5zP.js",
|
|
45
|
-
"_plugin-ui-rgxz3UHD.js",
|
|
46
|
-
"_auth-CPW4mGTx.js",
|
|
47
|
-
"_components-kMeatXhB.js"
|
|
48
|
-
]
|
|
49
|
-
},
|
|
50
|
-
"src/routes/api-keys.tsx?pick=default&pick=$css": {
|
|
51
|
-
"file": "assets/api-keys-zDu0DTIi.js",
|
|
52
|
-
"name": "api-keys",
|
|
53
|
-
"src": "src/routes/api-keys.tsx?pick=default&pick=$css",
|
|
54
|
-
"isEntry": true,
|
|
55
|
-
"isDynamicEntry": true,
|
|
56
|
-
"imports": [
|
|
57
|
-
"_routing-BlHUL5zP.js"
|
|
58
|
-
]
|
|
59
|
-
},
|
|
60
|
-
"src/routes/dashboard.tsx?pick=thisWeekToken&pick=thisYearToken&pick=default&pick=$css": {
|
|
61
|
-
"file": "assets/dashboard-BwMkrsX2.js",
|
|
62
|
-
"name": "dashboard",
|
|
63
|
-
"src": "src/routes/dashboard.tsx?pick=thisWeekToken&pick=thisYearToken&pick=default&pick=$css",
|
|
64
|
-
"isEntry": true,
|
|
65
|
-
"isDynamicEntry": true,
|
|
66
|
-
"imports": [
|
|
67
|
-
"_components-kMeatXhB.js",
|
|
68
|
-
"_routing-BlHUL5zP.js"
|
|
69
|
-
]
|
|
70
|
-
},
|
|
71
|
-
"src/routes/index.tsx?pick=default&pick=$css": {
|
|
72
|
-
"file": "assets/index-dCQOOcel.js",
|
|
73
|
-
"name": "index",
|
|
74
|
-
"src": "src/routes/index.tsx?pick=default&pick=$css",
|
|
75
|
-
"isEntry": true,
|
|
76
|
-
"isDynamicEntry": true,
|
|
77
|
-
"imports": [
|
|
78
|
-
"_routing-BlHUL5zP.js",
|
|
79
|
-
"_auth-CPW4mGTx.js",
|
|
80
|
-
"_workspace-nav-DsOJmRdY.js",
|
|
81
|
-
"_components-kMeatXhB.js"
|
|
82
|
-
]
|
|
83
|
-
},
|
|
84
|
-
"src/routes/login.tsx?pick=default&pick=$css": {
|
|
85
|
-
"file": "assets/login-BwMkrsX2.js",
|
|
86
|
-
"name": "login",
|
|
87
|
-
"src": "src/routes/login.tsx?pick=default&pick=$css",
|
|
88
|
-
"isEntry": true,
|
|
89
|
-
"isDynamicEntry": true,
|
|
90
|
-
"imports": [
|
|
91
|
-
"_components-kMeatXhB.js",
|
|
92
|
-
"_routing-BlHUL5zP.js"
|
|
93
|
-
]
|
|
94
|
-
},
|
|
95
|
-
"src/routes/members.tsx?pick=default&pick=$css": {
|
|
96
|
-
"file": "assets/members-CKVe_2mI.js",
|
|
97
|
-
"name": "members",
|
|
98
|
-
"src": "src/routes/members.tsx?pick=default&pick=$css",
|
|
99
|
-
"isEntry": true,
|
|
100
|
-
"isDynamicEntry": true,
|
|
101
|
-
"imports": [
|
|
102
|
-
"_routing-BlHUL5zP.js"
|
|
103
|
-
]
|
|
104
|
-
},
|
|
105
|
-
"src/routes/register.tsx?pick=default&pick=$css": {
|
|
106
|
-
"file": "assets/register-BwMkrsX2.js",
|
|
107
|
-
"name": "register",
|
|
108
|
-
"src": "src/routes/register.tsx?pick=default&pick=$css",
|
|
109
|
-
"isEntry": true,
|
|
110
|
-
"isDynamicEntry": true,
|
|
111
|
-
"imports": [
|
|
112
|
-
"_components-kMeatXhB.js",
|
|
113
|
-
"_routing-BlHUL5zP.js"
|
|
114
|
-
]
|
|
115
|
-
},
|
|
116
|
-
"src/routes/settings.tsx?pick=default&pick=$css": {
|
|
117
|
-
"file": "assets/settings-BwMkrsX2.js",
|
|
118
|
-
"name": "settings",
|
|
119
|
-
"src": "src/routes/settings.tsx?pick=default&pick=$css",
|
|
120
|
-
"isEntry": true,
|
|
121
|
-
"isDynamicEntry": true,
|
|
122
|
-
"imports": [
|
|
123
|
-
"_components-kMeatXhB.js",
|
|
124
|
-
"_routing-BlHUL5zP.js"
|
|
125
|
-
]
|
|
126
|
-
},
|
|
127
|
-
"src/routes/users.tsx?pick=default&pick=$css": {
|
|
128
|
-
"file": "assets/users-BwMkrsX2.js",
|
|
129
|
-
"name": "users",
|
|
130
|
-
"src": "src/routes/users.tsx?pick=default&pick=$css",
|
|
131
|
-
"isEntry": true,
|
|
132
|
-
"isDynamicEntry": true,
|
|
133
|
-
"imports": [
|
|
134
|
-
"_components-kMeatXhB.js",
|
|
135
|
-
"_routing-BlHUL5zP.js"
|
|
136
|
-
]
|
|
137
|
-
},
|
|
138
|
-
"src/routes/workspace-settings.tsx?pick=default&pick=$css": {
|
|
139
|
-
"file": "assets/workspace-settings-BwMkrsX2.js",
|
|
140
|
-
"name": "workspace-settings",
|
|
141
|
-
"src": "src/routes/workspace-settings.tsx?pick=default&pick=$css",
|
|
142
|
-
"isEntry": true,
|
|
143
|
-
"isDynamicEntry": true,
|
|
144
|
-
"imports": [
|
|
145
|
-
"_components-kMeatXhB.js",
|
|
146
|
-
"_routing-BlHUL5zP.js"
|
|
147
|
-
]
|
|
148
|
-
},
|
|
149
|
-
"src/routes/workspaces.tsx?pick=default&pick=$css": {
|
|
150
|
-
"file": "assets/workspaces-BwMkrsX2.js",
|
|
151
|
-
"name": "workspaces",
|
|
152
|
-
"src": "src/routes/workspaces.tsx?pick=default&pick=$css",
|
|
153
|
-
"isEntry": true,
|
|
154
|
-
"isDynamicEntry": true,
|
|
155
|
-
"imports": [
|
|
156
|
-
"_components-kMeatXhB.js",
|
|
157
|
-
"_routing-BlHUL5zP.js"
|
|
158
|
-
]
|
|
159
|
-
},
|
|
160
|
-
"virtual:$vinxi/handler/client": {
|
|
161
|
-
"file": "assets/client-BhDpDGXU.js",
|
|
162
|
-
"name": "client",
|
|
163
|
-
"src": "virtual:$vinxi/handler/client",
|
|
164
|
-
"isEntry": true,
|
|
165
|
-
"imports": [
|
|
166
|
-
"_routing-BlHUL5zP.js",
|
|
167
|
-
"_plugin-ui-rgxz3UHD.js",
|
|
168
|
-
"_auth-CPW4mGTx.js",
|
|
169
|
-
"_workspace-nav-DsOJmRdY.js",
|
|
170
|
-
"_components-kMeatXhB.js"
|
|
171
|
-
],
|
|
172
|
-
"dynamicImports": [
|
|
173
|
-
"src/routes/[...slug].tsx?pick=default&pick=$css",
|
|
174
|
-
"src/routes/api-keys.tsx?pick=default&pick=$css",
|
|
175
|
-
"src/routes/dashboard.tsx?pick=thisWeekToken&pick=thisYearToken&pick=default&pick=$css",
|
|
176
|
-
"src/routes/index.tsx?pick=default&pick=$css",
|
|
177
|
-
"src/routes/login.tsx?pick=default&pick=$css",
|
|
178
|
-
"src/routes/members.tsx?pick=default&pick=$css",
|
|
179
|
-
"src/routes/register.tsx?pick=default&pick=$css",
|
|
180
|
-
"src/routes/settings.tsx?pick=default&pick=$css",
|
|
181
|
-
"src/routes/users.tsx?pick=default&pick=$css",
|
|
182
|
-
"src/routes/workspace-settings.tsx?pick=default&pick=$css",
|
|
183
|
-
"src/routes/workspaces.tsx?pick=default&pick=$css"
|
|
184
|
-
],
|
|
185
|
-
"css": [
|
|
186
|
-
"assets/client-B0tH7z8C.css"
|
|
187
|
-
]
|
|
188
|
-
}
|
|
189
|
-
}
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{p as R,G as I,k as w,Z as W,l as j,C as L,a as G,z as s,e as n,S as g,I as H,J as E,Q as M,A as f,F as U,N as A}from"./routing-BlHUL5zP.js";import{f as B,u as T,l as D,a as P}from"./plugin-ui-rgxz3UHD.js";import{u as J,F as Q}from"./auth-CPW4mGTx.js";import"./components-kMeatXhB.js";var X=f('<select class="shrink-0 cursor-pointer rounded border border-zinc-700 bg-zinc-900 px-2 py-1 text-[11px] text-zinc-200">'),Z=f('<div class="fixed inset-0 z-50 flex flex-col bg-zinc-950"><div class="flex shrink-0 items-center justify-between gap-3 border-b border-zinc-800 px-4 py-3"><div class="flex min-w-0 items-center gap-3"><h1 class="truncate text-sm font-semibold text-zinc-200"><span class="ml-2 text-zinc-500">— flow spec</span></h1></div><button type=button class="shrink-0 rounded border border-zinc-700 px-3 py-1 text-xs text-zinc-300 hover:bg-zinc-800"aria-label="Close full-screen flow spec">✕ Close</button></div><div class="min-h-0 flex-1">'),q=f("<option>"),K=f('<div class="flex h-full items-center justify-center text-sm text-zinc-500">');function O(i){const m=I(),{activeWorkspace:p}=J(),[x,_]=w(0),[v,b]=w(600);let a;const h=()=>{a&&b(a.clientHeight)};W(()=>{h(),window.addEventListener("resize",h),j(()=>window.removeEventListener("resize",h))});const[c]=L(()=>({wsId:p()?.ws_id??null,plugin:i.plugin}),async({wsId:t,plugin:o})=>{if(!t)return null;const l=await fetch("/api/plugins/graph",{credentials:"include",headers:{"X-Workspace-Id":String(t)}});return l.ok?(await l.json()).plugins.find($=>$.key===o||$.name===o)??null:null}),d=()=>c()?.flows??[],e=G(()=>{const t=d();return t.length?B(t[Math.min(x(),t.length-1)]):{nodes:[],edges:[]}}),r=()=>m(`/${i.plugin}`);return(()=>{var t=Z(),o=t.firstChild,l=o.firstChild,y=l.firstChild,$=y.firstChild,F=l.nextSibling,z=o.nextSibling;s(y,()=>c()?.label??i.plugin,$),s(l,n(g,{get when(){return d().length>1},get children(){var u=X();return u.addEventListener("change",k=>_(Number(k.currentTarget.value))),s(u,n(H,{get each(){return d()},children:(k,N)=>(()=>{var C=q();return s(C,()=>k.title),E(()=>C.value=N()),C})()})),E(()=>u.value=x()),u}}),null),F.$$click=r;var S=a;return typeof S=="function"?M(S,z):a=z,s(z,n(g,{get when(){return d().length},get fallback(){return(()=>{var u=K();return s(u,()=>c.loading?"Loading…":"No declared flows for this plugin."),u})()},get children(){return n(Q,{get nodes(){return e().nodes},get edges(){return e().edges},layout:"layered",direction:"vertical",interactive:!0,animated:!0,get height(){return v()},get ariaLabel(){return`${c()?.label??i.plugin} full-screen flow spec`}})}})),t})()}R(["click"]);var V=f('<div class=p-8><h1 class="text-xl font-semibold text-zinc-200">Page not found</h1><p class="mt-2 text-sm text-zinc-500">No page matches <code class=text-zinc-400></code>.'),Y=f('<div class="p-6 text-sm text-red-400">Failed to load plugin UI: ');function le(){const i=U(),m=T(),p=()=>i.pathname.split("/").filter(Boolean)[0]??"",x=()=>p().endsWith(".spec"),_=()=>p().slice(0,-5),v=()=>m.plugins().find(e=>e.routeBase===p()),[b,a]=w(""),[h,c]=w(null),[d]=L(()=>v(),async e=>{if(a(""),c(null),!e)return null;try{return(await D(e.name,e.remoteEntry,t=>c(t))).Component}catch(r){return a(r instanceof Error?r.message:String(r)),null}});return n(g,{get when(){return!x()},get fallback(){return n(O,{get plugin(){return _()}})},get children(){return n(g,{get when(){return m.ready()},get fallback(){return n(P,{})},get children(){return n(g,{get when(){return v()},get fallback(){return(()=>{var e=V(),r=e.firstChild,t=r.nextSibling,o=t.firstChild,l=o.nextSibling;return s(l,()=>i.pathname),e})()},get children(){return n(g,{get when(){return d()},get fallback(){return n(g,{get when(){return b()},get fallback(){return n(P,{get retrying(){return h()}})},get children(){var e=Y();return e.firstChild,s(e,b,null),e}})},children:e=>n(A,{get component(){return e()}})})}})}})}})}export{le as default};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{G as t,Z as n}from"./routing-BlHUL5zP.js";function r(){const e=t();return n(()=>e("/settings",{replace:!0})),null}export{r as default};
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import{k as se,Z as ln,e as y,D as Ne,E as Ue,a5 as At,x as cn,y as X,m as ke,z as P,A as H,N as st,I as _e,a as ne,H as Pe,C as He,S as ee,l as ot,J as Q,K as Me,T as Se,p as F,P as un,Q as pe,L as tt,M as T,O as dn,U as xe,G as $t}from"./routing-BlHUL5zP.js";import{N as Lt}from"./components-kMeatXhB.js";const Mt=Ne(),Jo=e=>{const[t,n]=se("dark"),r=s=>{const l=document.documentElement;s==="dark"?(l.classList.add("dark"),l.classList.remove("light")):(l.classList.add("light"),l.classList.remove("dark"))};ln(()=>{const l=localStorage.getItem("ks-erp-theme")||"dark";n(l),r(l)});const o=()=>{const s=t()==="dark"?"light":"dark";n(s),r(s),localStorage.setItem("ks-erp-theme",s)};return y(Mt.Provider,{value:{theme:t,toggleTheme:o},get children(){return e.children}})},Ct=()=>{const e=Ue(Mt);if(!e)throw new Error("useTheme must be used within ThemeProvider");return e};/**
|
|
2
|
-
* @license lucide-solid v1.7.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
|
-
*/var fn={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"},Ee=fn,hn=Ne({size:24,color:"currentColor",strokeWidth:2,absoluteStrokeWidth:!1,class:""}),gn=H("<svg>"),pn=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0;return!1},mn=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim(),vn=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,n,r)=>r?r.toUpperCase():n.toLowerCase()),ut=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),bn=e=>{const t=vn(e);return t.charAt(0).toUpperCase()+t.slice(1)},yn=e=>{const[t,n]=At(e,["color","size","strokeWidth","children","class","name","iconNode","absoluteStrokeWidth"]),r=Ue(hn);return(()=>{var o=gn();return cn(o,X(Ee,{get width(){return t.size??r.size??Ee.width},get height(){return t.size??r.size??Ee.height},get stroke(){return t.color??r.color??Ee.stroke},get"stroke-width"(){return ke(()=>(t.absoluteStrokeWidth??r.absoluteStrokeWidth)===!0)()?Number(t.strokeWidth??r.strokeWidth??Ee["stroke-width"])*24/Number(t.size??r.size):Number(t.strokeWidth??r.strokeWidth??Ee["stroke-width"])},get class(){return mn("lucide","lucide-icon",r.class,...t.name!=null?[`lucide-${ut(bn(t.name))}`,`lucide-${ut(t.name)}`]:[],t.class)},get"aria-hidden"(){return!t.children&&!pn(n)?"true":void 0}},n),!0,!0),P(o,y(_e,{get each(){return t.iconNode},children:([s,l])=>y(st,X({component:s},l))})),o})()},te=yn,kn=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"19",x2:"19",y1:"8",y2:"14",key:"1bvyxn"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]],wn=e=>y(te,X(e,{iconNode:kn,name:"user-plus"})),xn=wn,_n=[["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M5 5a1 1 0 0 0-1 1v7c0 5 3.5 7.5 7.67 8.94a1 1 0 0 0 .67.01c2.35-.82 4.48-1.97 5.9-3.71",key:"1jlk70"}],["path",{d:"M9.309 3.652A12.252 12.252 0 0 0 11.24 2.28a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1v7a9.784 9.784 0 0 1-.08 1.264",key:"18rp1v"}]],Sn=e=>y(te,X(e,{iconNode:_n,name:"shield-off"})),En=Sn,Rn=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],On=e=>y(te,X(e,{iconNode:Rn,name:"sun"})),Pt=On,Tn=[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]],An=e=>y(te,X(e,{iconNode:Tn,name:"moon"})),Nt=An,$n=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],Ln=e=>y(te,X(e,{iconNode:$n,name:"log-out"})),Ut=Ln,Mn="1.6.18";const It=Mn,Ge=Symbol.for("better-auth:broadcast-channel"),Cn=()=>Math.floor(Date.now()/1e3);var Pn=class{listeners=new Set;name;constructor(e="better-auth.message"){this.name=e}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}post(e){if(!(typeof window>"u"))try{localStorage.setItem(this.name,JSON.stringify({...e,timestamp:Cn()}))}catch{}}setup(){if(typeof window>"u"||typeof window.addEventListener>"u")return()=>{};const e=t=>{if(t.key!==this.name)return;const n=JSON.parse(t.newValue??"{}");n?.event!=="session"||!n?.data||this.listeners.forEach(r=>r(n))};return window.addEventListener("storage",e),()=>{window.removeEventListener("storage",e)}}};function Ve(e="better-auth.message"){return globalThis[Ge]||(globalThis[Ge]=new Pn(e)),globalThis[Ge]}let ce=[],be=0;const De=4,dt=e=>{let t=[],n={get(){return n.lc||n.listen(()=>{})(),n.value},init:e,lc:0,listen(r){return n.lc=t.push(r),()=>{for(let s=be+De;s<ce.length;)ce[s]===r?ce.splice(s,De):s+=De;let o=t.indexOf(r);~o&&(t.splice(o,1),--n.lc||n.off())}},notify(r,o){let s=!ce.length;for(let l of t)ce.push(l,n.value,r,o);if(s){for(be=0;be<ce.length;be+=De)ce[be](ce[be+1],ce[be+2],ce[be+3]);ce.length=0}},off(){},set(r){let o=n.value;o!==r&&(n.value=r,n.notify(o))},subscribe(r){let o=n.listen(r);return r(n.value),o},value:e};return n},Nn=2,Un=5,je=6,Be=10;let zt=(e,t,n,r)=>(e.events=e.events||{},e.events[n+Be]||(e.events[n+Be]=r(o=>{e.events[n].reduceRight((s,l)=>(l(s),s),{shared:{},...o})})),e.events[n]=e.events[n]||[],e.events[n].push(t),()=>{let o=e.events[n],s=o.indexOf(t);o.splice(s,1),o.length||(delete e.events[n],e.events[n+Be](),delete e.events[n+Be])}),In=(e,t)=>zt(e,t,Nn,n=>{let r=e.set,o=e.setKey;return e.setKey&&(e.setKey=(s,l)=>{let f;if(n({abort:()=>{f=!0},changed:s,newValue:{...e.value,[s]:l}}),!f)return o(s,l)}),e.set=s=>{let l;if(n({abort:()=>{l=!0},newValue:s}),!l)return r(s)},()=>{e.set=r,e.setKey=o}}),zn=1e3,Dn=(e,t)=>zt(e,r=>{let o=t(r);o&&e.events[je].push(o)},Un,r=>{let o=e.listen;e.listen=(...l)=>(!e.lc&&!e.active&&(e.active=!0,r()),o(...l));let s=e.off;return e.events[je]=[],e.off=()=>{s(),setTimeout(()=>{if(e.active&&!e.lc){e.active=!1;for(let l of e.events[je])l();e.events[je]=[]}},zn)},()=>{e.listen=o,e.off=s}});function ft(e){if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function Ye(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!Ye(e[n],t[n]))return!1;return!0}if(ft(e)&&ft(t)){const n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(const o of n)if(!(o in t)||!Ye(e[o],t[o]))return!1;return!0}return!1}function jn(e,t){return In(e,({newValue:n,abort:r})=>{t(e.value,n)&&r()})}const Xe=Symbol.for("better-auth:focus-manager");var Bn=class{listeners=new Set;subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}setFocused(e){this.listeners.forEach(t=>t(e))}setup(){if(typeof window>"u"||typeof document>"u"||typeof window.addEventListener>"u")return()=>{};const e=()=>{document.visibilityState==="visible"&&this.setFocused(!0)};return document.addEventListener("visibilitychange",e,!1),()=>{document.removeEventListener("visibilitychange",e,!1)}}};function ht(){return globalThis[Xe]||(globalThis[Xe]=new Bn),globalThis[Xe]}const Je=Symbol.for("better-auth:online-manager");var Wn=class{listeners=new Set;isOnline=typeof navigator<"u"?navigator.onLine:!0;subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}setOnline(e){this.isOnline=e,this.listeners.forEach(t=>t(e))}setup(){if(typeof window>"u"||typeof window.addEventListener>"u")return()=>{};const e=()=>this.setOnline(!0),t=()=>this.setOnline(!1);return window.addEventListener("online",e,!1),window.addEventListener("offline",t,!1),()=>{window.removeEventListener("online",e,!1),window.removeEventListener("offline",t,!1)}}};function Ke(){return globalThis[Je]||(globalThis[Je]=new Wn),globalThis[Je]}const Fn={proto:/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,constructor:/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,protoShort:/"__proto__"\s*:/,constructorShort:/"constructor"\s*:/},Hn=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/,gt={true:!0,false:!1,null:null,undefined:void 0,nan:NaN,infinity:Number.POSITIVE_INFINITY,"-infinity":Number.NEGATIVE_INFINITY},Yn=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.(\d{1,7}))?(?:Z|([+-])(\d{2}):(\d{2}))$/;function qn(e){return e instanceof Date&&!isNaN(e.getTime())}function Gn(e){const t=Yn.exec(e);if(!t)return null;const[,n,r,o,s,l,f,c,u,a,m]=t,d=new Date(Date.UTC(parseInt(n,10),parseInt(r,10)-1,parseInt(o,10),parseInt(s,10),parseInt(l,10),parseInt(f,10),c?parseInt(c.padEnd(3,"0"),10):0));if(u){const k=(parseInt(a,10)*60+parseInt(m,10))*(u==="+"?-1:1);d.setUTCMinutes(d.getUTCMinutes()+k)}return qn(d)?d:null}function Vn(e,t={}){const{strict:n=!1,warnings:r=!1,reviver:o,parseDates:s=!0}=t;if(typeof e!="string")return e;const l=e.trim(),f=l.toLowerCase();if(f.length<=9&&f in gt)return gt[f];if(!Hn.test(l)){if(n)throw new SyntaxError("[better-json] Invalid JSON");return e}if(Object.entries(Fn).some(([c,u])=>{const a=u.test(l);return a&&r&&console.warn(`[better-json] Detected potential prototype pollution attempt using ${c} pattern`),a})&&n)throw new Error("[better-json] Potential prototype pollution attempt detected");try{return JSON.parse(l,(u,a)=>{if(u==="__proto__"||u==="constructor"&&a&&typeof a=="object"&&"prototype"in a){r&&console.warn(`[better-json] Dropping "${u}" key to prevent prototype pollution`);return}if(s&&typeof a=="string"){const m=Gn(a);if(m)return m}return o?o(u,a):a})}catch(c){if(n)throw c;return e}}function Xn(e,t={strict:!0}){return Vn(e,t)}const Ze=()=>Math.floor(Date.now()/1e3),Jn=5;function Kn(e){const{fetchSession:t,shouldPollSession:n=()=>!0,sessionSignal:r,options:o={}}=e,s=o.sessionOptions?.refetchInterval??0,l=o.sessionOptions?.refetchOnWindowFocus??!0,f=o.sessionOptions?.refetchWhenOffline??!1,c={isInitialized:!1,lastSessionRequest:0},u=()=>f||Ke().isOnline,a=g=>{if(u()){if(g?.event==="storage"){t();return}if(g?.event==="poll"){c.lastSessionRequest=Ze(),t();return}if(g?.event==="visibilitychange"){if(Ze()-c.lastSessionRequest<Jn)return;c.lastSessionRequest=Ze(),t();return}t()}},m=g=>{Ve().post({event:"session",data:{trigger:g},clientId:Math.random().toString(36).substring(7)})},d=()=>{s&&s>0&&(c.pollInterval=setInterval(()=>{n()&&a({event:"poll"})},s*1e3))},k=()=>{c.unsubscribeBroadcast=Ve().subscribe(()=>{a({event:"storage"})})},_=()=>{l&&(c.unsubscribeFocus=ht().subscribe(()=>{a({event:"visibilitychange"})}))},M=()=>{c.unsubscribeOnline=Ke().subscribe(g=>{g&&a({event:"visibilitychange"})})},O=()=>{c.unsubscribeSignal=r.listen(()=>{t()})};return{init:()=>{c.isInitialized||(c.isInitialized=!0,d(),k(),_(),M(),O(),c.cleanupBroadcastSetup=Ve().setup(),c.cleanupFocusSetup=ht().setup(),c.cleanupOnlineSetup=Ke().setup())},cleanup:()=>{c.isInitialized&&(c.pollInterval&&(clearInterval(c.pollInterval),c.pollInterval=void 0),c.unsubscribeBroadcast&&(c.unsubscribeBroadcast(),c.unsubscribeBroadcast=void 0),c.unsubscribeFocus&&(c.unsubscribeFocus(),c.unsubscribeFocus=void 0),c.unsubscribeOnline&&(c.unsubscribeOnline(),c.unsubscribeOnline=void 0),c.unsubscribeSignal&&(c.unsubscribeSignal(),c.unsubscribeSignal=void 0),c.cleanupBroadcastSetup&&(c.cleanupBroadcastSetup(),c.cleanupBroadcastSetup=void 0),c.cleanupFocusSetup&&(c.cleanupFocusSetup(),c.cleanupFocusSetup=void 0),c.cleanupOnlineSetup&&(c.cleanupOnlineSetup(),c.cleanupOnlineSetup=void 0),c.isInitialized=!1,c.lastSessionRequest=0)},triggerRefetch:a,broadcastSessionUpdate:m}}var Zn={};const We=Object.create(null),Te=e=>Zn||globalThis.Deno?.env.toObject()||globalThis.__env__||(e?We:globalThis),ye=new Proxy(We,{get(e,t){return Te()[t]??We[t]},has(e,t){return t in Te()||t in We},set(e,t,n){const r=Te(!0);return r[t]=n,!0},deleteProperty(e,t){if(!t)return!1;const n=Te(!0);return delete n[t],!0},ownKeys(){const e=Te(!0);return Object.keys(e)}});ye.NODE_ENV;function Dt(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,{code:t,message:n,toString:()=>t}]))}var Ce=class extends Error{constructor(e,t){super(e,t),this.name="BetterAuthError",this.message=e,this.stack=""}};const Qn=47;function jt(e){let t=e.length;for(;t>0&&e.charCodeAt(t-1)===Qn;)t--;return t===e.length?e:e.slice(0,t)}function er(e){try{return(jt(new URL(e).pathname)||"/")!=="/"}catch{throw new Ce(`Invalid base URL: ${e}. Please provide a valid base URL.`)}}function tr(e){try{const t=new URL(e);if(t.protocol!=="http:"&&t.protocol!=="https:")throw new Ce(`Invalid base URL: ${e}. URL must include 'http://' or 'https://'`)}catch(t){throw t instanceof Ce?t:new Ce(`Invalid base URL: ${e}. Please provide a valid base URL.`,{cause:t})}}function Qe(e,t="/api/auth"){if(tr(e),er(e))return e;const n=jt(e);return!t||t==="/"?n:(t=t.startsWith("/")?t:`/${t}`,`${n}${t}`)}function nr(e,t,n,r,o){if(e)return Qe(e,t);{const s=ye.BETTER_AUTH_URL||ye.NEXT_PUBLIC_BETTER_AUTH_URL||ye.PUBLIC_BETTER_AUTH_URL||ye.NUXT_PUBLIC_BETTER_AUTH_URL||ye.NUXT_PUBLIC_AUTH_URL||(ye.BASE_URL!=="/"?ye.BASE_URL:void 0);if(s)return Qe(s,t)}if(typeof window<"u"&&window.location)return Qe(window.location.origin,t)}const rr=["javascript:","data:","vbscript:"];function sr(e){let t;try{t=new URL(e)}catch{return!0}return!rr.includes(t.protocol)}const or={id:"redirect",name:"Redirect",hooks:{onSuccess(e){if(e.data?.url&&e.data?.redirect&&sr(e.data.url)&&typeof window<"u"&&window.location&&window.location)try{window.location.href=e.data.url}catch{}}}},ir=()=>typeof window>"u";function pt(e){return typeof e=="object"&&e!==null&&"data"in e&&"error"in e?e:{data:e,error:null}}function ar(e){return!e||e.session===null&&e.user===null?null:e}function lr(e,t){return Ye(e.data,t.data)&&e.error===t.error&&e.isPending===t.isPending&&e.isRefetching===t.isRefetching&&e.refetch===t.refetch}function cr(e,t){const n=dt(!1);let r;const o=u=>f(u),s=dt({data:null,error:null,isPending:!0,isRefetching:!1,refetch:o});jn(s,lr);const l=u=>{if(r!==u)return;const a=s.get();r=void 0,!(!a.isPending&&!a.isRefetching)&&s.set({...a,isPending:!1,isRefetching:!1,refetch:o})},f=async u=>{r?.abort();const a=new AbortController;r=a;const m=s.get();s.set({...m,isPending:m.data===null,isRefetching:!0,error:null,refetch:o});try{const d=await e("/get-session",{method:"GET",query:u?.query,signal:a.signal});if(a.signal.aborted){l(a);return}let{data:k,error:_}=pt(d);if(k?.needsRefresh)try{const E=await e("/get-session",{method:"POST",signal:a.signal});if(a.signal.aborted){l(a);return}({data:k,error:_}=pt(E))}catch{if(a.signal.aborted){l(a);return}}if(_){const E=s.get(),g=_?.status===401;s.set({data:g?null:E.data,error:_,isPending:!1,isRefetching:!1,refetch:o});return}const M=ar(k),O=s.get(),x=O.data!=null&&M!=null&&Ye(O.data,M)?O.data:M;s.set({data:x,error:null,isPending:!1,isRefetching:!1,refetch:o})}catch(d){if(a.signal.aborted){l(a);return}const k=s.get();s.set({data:k.data,error:d,isPending:!1,isRefetching:!1,refetch:o})}};let c=()=>{};return Dn(s,()=>{let u;ir()||(u=setTimeout(()=>{f()},0));const a=Kn({fetchSession:f,shouldPollSession:()=>s.get().data!=null,sessionSignal:n,options:t});return a.init(),c=a.broadcastSessionUpdate,()=>{u&&clearTimeout(u);const m=r;m?.abort(),m&&l(m),a.cleanup()}}),{session:s,$sessionSignal:n,broadcastSessionUpdate:u=>c(u)}}function et(e){if(e===null||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null||Symbol.iterator in e?!1:Symbol.toStringTag in e?Object.prototype.toString.call(e)==="[object Module]":!0}function nt(e,t,n=".",r){if(!et(t))return nt(e,{},n,r);const o={...t};for(const s of Object.keys(e)){if(s==="__proto__"||s==="constructor")continue;const l=e[s];l!=null&&(r&&r(o,s,l,n)||(Array.isArray(l)&&Array.isArray(o[s])?o[s]=[...l,...o[s]]:et(l)&&et(o[s])?o[s]=nt(l,o[s],(n?`${n}.`:"")+s.toString(),r):o[s]=l))}return o}function ur(e){return(...t)=>t.reduce((n,r)=>nt(n,r,"",e),{})}const dr=ur();var fr=Object.defineProperty,hr=Object.defineProperties,gr=Object.getOwnPropertyDescriptors,mt=Object.getOwnPropertySymbols,pr=Object.prototype.hasOwnProperty,mr=Object.prototype.propertyIsEnumerable,vt=(e,t,n)=>t in e?fr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,de=(e,t)=>{for(var n in t||(t={}))pr.call(t,n)&&vt(e,n,t[n]);if(mt)for(var n of mt(t))mr.call(t,n)&&vt(e,n,t[n]);return e},fe=(e,t)=>hr(e,gr(t)),vr=class extends Error{constructor(e,t,n){super(t||e.toString(),{cause:n}),this.status=e,this.statusText=t,this.error=n,Error.captureStackTrace(this,this.constructor)}},br=async(e,t)=>{var n,r,o,s,l,f;let c=t||{};const u={onRequest:[t?.onRequest],onResponse:[t?.onResponse],onSuccess:[t?.onSuccess],onError:[t?.onError],onRetry:[t?.onRetry]};if(!t||!t?.plugins)return{url:e,options:c,hooks:u};for(const a of t?.plugins||[]){if(a.init){const m=await((n=a.init)==null?void 0:n.call(a,e.toString(),t));c=m.options||c,e=m.url}u.onRequest.push((r=a.hooks)==null?void 0:r.onRequest),u.onResponse.push((o=a.hooks)==null?void 0:o.onResponse),u.onSuccess.push((s=a.hooks)==null?void 0:s.onSuccess),u.onError.push((l=a.hooks)==null?void 0:l.onError),u.onRetry.push((f=a.hooks)==null?void 0:f.onRetry)}return{url:e,options:c,hooks:u}},bt=class{constructor(e){this.options=e}shouldAttemptRetry(e,t){return this.options.shouldRetry?Promise.resolve(e<this.options.attempts&&this.options.shouldRetry(t)):Promise.resolve(e<this.options.attempts)}getDelay(){return this.options.delay}},yr=class{constructor(e){this.options=e}shouldAttemptRetry(e,t){return this.options.shouldRetry?Promise.resolve(e<this.options.attempts&&this.options.shouldRetry(t)):Promise.resolve(e<this.options.attempts)}getDelay(e){return Math.min(this.options.maxDelay,this.options.baseDelay*2**e)}};function kr(e){if(typeof e=="number")return new bt({type:"linear",attempts:e,delay:1e3});switch(e.type){case"linear":return new bt(e);case"exponential":return new yr(e);default:throw new Error("Invalid retry strategy")}}var wr=async e=>{const t={},n=async r=>typeof r=="function"?await r():r;if(e?.auth){if(e.auth.type==="Bearer"){const r=await n(e.auth.token);if(!r)return t;t.authorization=`Bearer ${r}`}else if(e.auth.type==="Basic"){const[r,o]=await Promise.all([n(e.auth.username),n(e.auth.password)]);if(!r||!o)return t;t.authorization=`Basic ${btoa(`${r}:${o}`)}`}else if(e.auth.type==="Custom"){const[r,o]=await Promise.all([n(e.auth.prefix),n(e.auth.value)]);if(!o)return t;t.authorization=`${r??""} ${o}`}}return t},xr=/^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;function _r(e){const t=e.headers.get("content-type"),n=new Set(["image/svg","application/xml","application/xhtml","application/html"]);if(!t)return"json";const r=t.split(";").shift()||"";return xr.test(r)?"json":n.has(r)||r.startsWith("text/")?"text":"blob"}function Sr(e){try{return JSON.parse(e),!0}catch{return!1}}function Bt(e){if(e===void 0)return!1;const t=typeof e;return t==="string"||t==="number"||t==="boolean"||t===null?!0:t!=="object"?!1:Array.isArray(e)?!0:e.buffer?!1:e.constructor&&e.constructor.name==="Object"||typeof e.toJSON=="function"}function yt(e){try{return JSON.parse(e)}catch{return e}}function kt(e){return typeof e=="function"}function Er(e){if(e?.customFetchImpl)return e.customFetchImpl;if(typeof globalThis<"u"&&kt(globalThis.fetch))return globalThis.fetch;if(typeof window<"u"&&kt(window.fetch))return window.fetch;throw new Error("No fetch implementation found")}function Wt(...e){const t={};for(const n of e)if(n)if(n instanceof Headers)n.forEach((r,o)=>{t[o]=r});else{const r=Array.isArray(n)?n:Object.entries(n);for(const[o,s]of r)s!=null&&(t[o]=s)}return t}async function Rr(e){const t=new Headers(Wt(e?.headers,await wr(e)));if(!t.has("content-type")){const n=Or(e?.body);n&&t.set("content-type",n)}return t}function Or(e){return Bt(e)?"application/json":null}function Tr(e){const t=e.get("content-type");return t?t.split(";")[0].trim().toLowerCase():null}function Ar(e,t){const{body:n}=e;return n?!Bt(n)||typeof n=="string"?n:Tr(t)==="application/x-www-form-urlencoded"?new URLSearchParams(n).toString():JSON.stringify(n):null}function $r(e,t){var n;if(t?.method)return t.method.toUpperCase();if(e.startsWith("@")){const r=(n=e.split("@")[1])==null?void 0:n.split("/")[0];return Ht.includes(r)?r.toUpperCase():t?.body?"POST":"GET"}return t?.body?"POST":"GET"}function Lr(e,t){let n;return!e?.signal&&e?.timeout&&(n=setTimeout(()=>t?.abort(),e?.timeout)),{abortTimeout:n,clearTimeout:()=>{n&&clearTimeout(n)}}}var Mr=class Ft extends Error{constructor(t,n){super(n||JSON.stringify(t,null,2)),this.issues=t,Object.setPrototypeOf(this,Ft.prototype)}};async function Le(e,t){const n=await e["~standard"].validate(t);if(n.issues)throw new Mr(n.issues);return n.value}var Ht=["get","post","put","patch","delete"],Cr=e=>({id:"apply-schema",name:"Apply Schema",version:"1.0.0",async init(t,n){var r,o,s,l;const f=((o=(r=e.plugins)==null?void 0:r.find(c=>{var u;return(u=c.schema)!=null&&u.config?t.startsWith(c.schema.config.baseURL||"")||t.startsWith(c.schema.config.prefix||""):!1}))==null?void 0:o.schema)||e.schema;if(f){let c=t;(s=f.config)!=null&&s.prefix&&c.startsWith(f.config.prefix)&&(c=c.replace(f.config.prefix,""),f.config.baseURL&&(t=t.replace(f.config.prefix,f.config.baseURL))),(l=f.config)!=null&&l.baseURL&&c.startsWith(f.config.baseURL)&&(c=c.replace(f.config.baseURL,"")),c.startsWith("/")&&c.charAt(1)==="@"&&(c=c.substring(1));const u=f.schema[c];if(u){let a=n?.headers;if(u.headers&&!n?.disableValidation){const d={};if(n?.headers){if(n.headers instanceof Headers)n.headers.forEach((M,O)=>{d[O.toLowerCase()]=M});else if(typeof n.headers=="object")for(const[M,O]of Object.entries(n.headers))O!=null&&(d[M.toLowerCase()]=O)}const k=await Le(u.headers,d),_={};for(const[M,O]of Object.entries(k))_[M.toLowerCase()]=O;a=_}let m=fe(de({},n),{method:u.method,output:u.output,headers:a});return n?.disableValidation||(m=fe(de({},m),{body:u.input?await Le(u.input,n?.body):n?.body,params:u.params?await Le(u.params,n?.params):n?.params,query:u.query?await Le(u.query,n?.query):n?.query})),{url:t,options:m}}}return{url:t,options:n}}}),Pr=e=>{async function t(n,r){const o=fe(de(de({},e),r),{headers:Wt(e?.headers,r?.headers),plugins:[...e?.plugins||[],Cr(e||{}),...r?.plugins||[]]});if(e?.catchAllError)try{return await rt(n,o)}catch(s){return{data:null,error:{status:500,statusText:"Fetch Error",message:"Fetch related error. Captured by catchAllError option. See error property for more details.",error:s}}}return await rt(n,o)}return t};function Nr(e,t){const{baseURL:n,params:r,query:o}=t||{query:{},params:{},baseURL:""};let s=e.startsWith("http")?e.split("/").slice(0,3).join("/"):n||"";if(e.startsWith("@")){const m=e.toString().split("@")[1].split("/")[0];Ht.includes(m)&&(e=e.replace(`@${m}/`,"/"))}s.endsWith("/")||(s+="/");let[l,f]=e.replace(s,"").split("?");const c=new URLSearchParams(f);for(const[m,d]of Object.entries(o||{})){if(d==null)continue;let k;if(typeof d=="string")k=d;else if(Array.isArray(d)){for(const _ of d)c.append(m,_);continue}else k=JSON.stringify(d);c.set(m,k)}if(r)if(Array.isArray(r)){const m=l.split("/").filter(d=>d.startsWith(":"));for(const[d,k]of m.entries()){const _=r[d];l=l.replace(k,_)}}else for(const[m,d]of Object.entries(r))l=l.replace(`:${m}`,String(d));l=l.split("/").map(encodeURIComponent).join("/"),l.startsWith("/")&&(l=l.slice(1));let u=c.toString();return u=u.length>0?`?${u}`.replace(/\+/g,"%20"):"",s.startsWith("http")?new URL(`${l}${u}`,s):`${s}${l}${u}`}var rt=async(e,t)=>{var n,r,o,s,l,f,c,u;const{hooks:a,url:m,options:d}=await br(e,t),k=Er(d),_=new AbortController,M=(n=d.signal)!=null?n:_.signal,O=Nr(m,d),x=await Rr(d),E=Ar(d,x),g=$r(m,d),b=fe(de({},d),{url:O,headers:x,body:E,method:g,signal:M});for(const U of a.onRequest)if(U){const Y=await U(b);typeof Y=="object"&&Y!==null&&Object.assign(b,Y)}("pipeTo"in b&&typeof b.pipeTo=="function"||typeof((r=t?.body)==null?void 0:r.pipe)=="function")&&("duplex"in b||(b.duplex="half"));const{clearTimeout:i}=Lr(d,_);let v=await k(b.url,b);i();const R={response:v,request:b};for(const U of a.onResponse)if(U){const Y=await U(fe(de({},R),{response:(o=t?.hookOptions)!=null&&o.cloneResponse?v.clone():v}));Y instanceof Response?v=Y:typeof Y=="object"&&Y!==null&&(v=Y.response)}if(v.ok){if(!(b.method!=="HEAD"))return{data:"",error:null};const Y=_r(v),z={data:null,response:v,request:b};if(Y==="json"||Y==="text"){const q=await v.text(),he=(s=b.jsonParser)!=null?s:yt;z.data=await he(q)}else z.data=await v[Y]();b?.output&&b.output&&!b.disableValidation&&(z.data=await Le(b.output,z.data));for(const q of a.onSuccess)q&&await q(fe(de({},z),{response:(l=t?.hookOptions)!=null&&l.cloneResponse?v.clone():v}));return t?.throw?z.data:{data:z.data,error:null}}const C=(f=t?.jsonParser)!=null?f:yt,N=await v.text(),G=Sr(N),A=G?await C(N):null,D={response:v,responseText:N,request:b,error:fe(de({},A),{status:v.status,statusText:v.statusText})};for(const U of a.onError)U&&await U(fe(de({},D),{response:(c=t?.hookOptions)!=null&&c.cloneResponse?v.clone():v}));if(t?.retry){const U=kr(t.retry),Y=(u=t.retryAttempt)!=null?u:0;if(await U.shouldAttemptRetry(Y,v)){for(const q of a.onRetry)q&&await q(R);const z=U.getDelay(Y);return await new Promise(q=>setTimeout(q,z)),await rt(e,fe(de({},t),{retryAttempt:Y+1}))}}if(t?.throw)throw new vr(v.status,v.statusText,G?A:N);return{data:null,error:fe(de({},A),{status:v.status,statusText:v.statusText})}},we={};const Ur=e=>{if(typeof process>"u")return;const t=e??"/api/auth";if(we.NEXT_PUBLIC_AUTH_URL)return we.NEXT_PUBLIC_AUTH_URL;if(typeof window>"u"){if(we.NEXTAUTH_URL)try{return we.NEXTAUTH_URL}catch{}if(we.VERCEL_URL)try{const n=we.VERCEL_URL.startsWith("http")?"":"https://";return`${new URL(`${n}${we.VERCEL_URL}`).origin}${t}`}catch{}}},Ir=(e,t)=>{const n="credentials"in Request.prototype,r=nr(e?.baseURL,e?.basePath)??Ur(e?.basePath)??"/api/auth",o=e?.plugins?.flatMap(i=>i.fetchPlugins).filter(i=>i!==void 0)||[],s={id:"lifecycle-hooks",name:"lifecycle-hooks",hooks:{onSuccess:e?.fetchOptions?.onSuccess,onError:e?.fetchOptions?.onError,onRequest:e?.fetchOptions?.onRequest,onResponse:e?.fetchOptions?.onResponse}},{onSuccess:l,onError:f,onRequest:c,onResponse:u,...a}=e?.fetchOptions||{},m=Pr({baseURL:r,...n?{credentials:"include"}:{},method:"GET",jsonParser(i){return i?Xn(i,{strict:!1}):null},customFetchImpl:fetch,...a,plugins:[s,...a.plugins||[],...e?.disableDefaultFetchPlugins?[]:[or],...o]}),{$sessionSignal:d,session:k,broadcastSessionUpdate:_}=cr(m,e),M=e?.plugins||[];let O={};const x={$sessionSignal:d,session:k},E={"/sign-out":"POST","/revoke-sessions":"POST","/revoke-other-sessions":"POST","/delete-user":"POST"},g=[{signal:"$sessionSignal",matcher(i){return i==="/sign-out"||i==="/update-user"||i==="/update-session"||i==="/sign-up/email"||i==="/sign-in/email"||i==="/delete-user"||i==="/verify-email"||i==="/revoke-sessions"||i==="/revoke-session"||i==="/revoke-other-sessions"||i==="/change-email"||i==="/change-password"},callback(i){i==="/sign-out"?_("signout"):(i==="/update-user"||i==="/update-session")&&_("updateUser")}}];for(const i of M)i.getAtoms&&Object.assign(x,i.getAtoms?.(m)),i.pathMethods&&Object.assign(E,i.pathMethods),i.atomListeners&&g.push(...i.atomListeners);const b={notify:i=>{x[i].set(!x[i].get())},listen:(i,v)=>{x[i].subscribe(v)},atoms:x};for(const i of M)i.getActions&&(O=dr(i.getActions?.(m,b,e)??{},O));return{get baseURL(){return r},pluginsActions:O,pluginsAtoms:x,pluginPathMethods:E,atomListeners:g,$fetch:m,$store:b}};function zr(e){return typeof e=="object"&&e!==null&&"get"in e&&typeof e.get=="function"&&"lc"in e&&typeof e.lc=="number"}function Dr(e){return e.charAt(0).toUpperCase()+e.slice(1)}const jr=/[\p{Ll}\d]+|\p{Lu}+(?!\p{Ll})|\p{Lu}[\p{Ll}\d]+|\p{Lo}+/gu,Br=/['\u2019]/g;function Wr(e){return e.replace(Br,"").match(jr)??[]}function Fr(e){return Wr(e).map(t=>t.toLowerCase()).join("-")}function Hr(e,t,n){const r=t[e],{fetchOptions:o,query:s,...l}=n||{};return r||(o?.method?o.method:l&&Object.keys(l).length>0?"POST":"GET")}function Yr(e,t,n,r,o){function s(l=[]){return new Proxy(function(){},{get(f,c){if(typeof c!="string"||c==="then"||c==="catch"||c==="finally")return;const u=[...l,c];let a=e;for(const m of u)if(a&&typeof a=="object"&&m in a)a=a[m];else{a=void 0;break}return typeof a=="function"||zr(a)?a:s(u)},apply:async(f,c,u)=>{const a="/"+l.map(Fr).join("/"),m=u[0]||{},d=u[1]||{},{query:k,fetchOptions:_,...M}=m,O={...d,..._},x=Hr(a,n,m);return await t(a,{...O,body:x==="GET"?void 0:{...M,...O?.body||{}},query:k||O?.query,method:x,async onSuccess(E){if(await O?.onSuccess?.(E),!o||O.disableSignal)return;const g=o.filter(i=>i.matcher(a));if(!g.length)return;const b=new Set;for(const i of g){const v=r[i.signal];if(!v)return;if(b.has(i.signal))continue;b.add(i.signal);const R=v.get();setTimeout(()=>{v.set(!R)},10),i.callback?.(a)}}})}})}return s()}function qr(e){const{pluginPathMethods:t,pluginsActions:n,pluginsAtoms:r,$fetch:o,atomListeners:s,$store:l}=Ir(e),f={};for(const[c,u]of Object.entries(r))f[`use${Dr(c)}`]=u;return Yr({...n,...f,$fetch:o,$store:l},o,t,r,s)}const Gr=Dt({FAILED_TO_CREATE_USER:"Failed to create user",USER_ALREADY_EXISTS:"User already exists.",USER_ALREADY_EXISTS_USE_ANOTHER_EMAIL:"User already exists. Use another email.",YOU_CANNOT_BAN_YOURSELF:"You cannot ban yourself",YOU_ARE_NOT_ALLOWED_TO_CHANGE_USERS_ROLE:"You are not allowed to change users role",YOU_ARE_NOT_ALLOWED_TO_CREATE_USERS:"You are not allowed to create users",YOU_ARE_NOT_ALLOWED_TO_LIST_USERS:"You are not allowed to list users",YOU_ARE_NOT_ALLOWED_TO_LIST_USERS_SESSIONS:"You are not allowed to list users sessions",YOU_ARE_NOT_ALLOWED_TO_BAN_USERS:"You are not allowed to ban users",YOU_ARE_NOT_ALLOWED_TO_IMPERSONATE_USERS:"You are not allowed to impersonate users",YOU_ARE_NOT_ALLOWED_TO_REVOKE_USERS_SESSIONS:"You are not allowed to revoke users sessions",YOU_ARE_NOT_ALLOWED_TO_DELETE_USERS:"You are not allowed to delete users",YOU_ARE_NOT_ALLOWED_TO_SET_USERS_PASSWORD:"You are not allowed to set users password",BANNED_USER:"You have been banned from this application",YOU_ARE_NOT_ALLOWED_TO_GET_USER:"You are not allowed to get user",NO_DATA_TO_UPDATE:"No data to update",YOU_ARE_NOT_ALLOWED_TO_UPDATE_USERS:"You are not allowed to update users",YOU_CANNOT_REMOVE_YOURSELF:"You cannot remove yourself",YOU_ARE_NOT_ALLOWED_TO_SET_NON_EXISTENT_VALUE:"You are not allowed to set a non-existent role value",YOU_CANNOT_IMPERSONATE_ADMINS:"You cannot impersonate admins",INVALID_ROLE_TYPE:"Invalid role type",YOU_ARE_NOT_ALLOWED_TO_SET_USERS_EMAIL:"You are not allowed to update users email",PASSWORD_CANNOT_BE_UPDATED_VIA_UPDATE_USER:"Password cannot be updated through update-user. Use the set-user-password endpoint instead"});function Vr(e){return{success:!1,error:`You are not allowed to access resource: ${e}`}}function Xr(e){return{success:!1,error:`unauthorized to access resource "${e}"`}}function wt(e){return e==="OR"?"OR":"AND"}function xt(e){return Array.isArray(e)}function Jr(e){if(xt(e))return{actions:e,connector:"AND"};if(!e||typeof e!="object")throw new Ce("Invalid access control request");const{actions:t,connector:n}=e;return xt(t)?{actions:t,connector:wt(n)}:{actions:[],connector:wt(n)}}function _t(e,t){return typeof t=="string"&&e.includes(t)}function Kr(e,{actions:t,connector:n}){return t.length===0?!1:n==="OR"?t.some(r=>_t(e,r)):t.every(r=>_t(e,r))}function Zr(e){return{authorize(t,n="AND"){let r=!1;for(const[o,s]of Object.entries(t)){const l=e[o];if(!l){if(n==="AND")return Vr(o);continue}const f=Kr(l,Jr(s));if(f&&(r=!0),f&&n==="OR")return{success:!0};if(!f&&n==="AND")return Xr(o)}return r?{success:!0}:{success:!1,error:"Not authorized"}},statements:e}}function Qr(e){return{newRole(t){return Zr(t)},statements:e}}const es={user:["create","list","set-role","ban","impersonate","impersonate-admins","delete","set-password","set-email","get","update"],session:["list","revoke","delete"]},Yt=Qr(es),qt=Yt.newRole({user:["create","list","set-role","ban","impersonate","delete","set-password","set-email","get","update"],session:["list","revoke","delete"]}),Gt=Yt.newRole({user:[],session:[]}),ts={admin:qt,user:Gt},ns=e=>{if(e.userId&&e.options?.adminUserIds?.includes(e.userId))return!0;if(!e.permissions)return!1;const t=(e.role||e.options?.defaultRole||"user").split(","),n=e.options?.roles||ts;for(const r of t)if(n[r]?.authorize(e.permissions)?.success)return!0;return!1},rs=e=>{const t={admin:qt,user:Gt,...e?.roles};return{id:"admin-client",version:It,$InferServerPlugin:{},getActions:()=>({admin:{checkRolePermission:n=>ns({role:n.role,options:{ac:e?.ac,roles:t},permissions:n.permissions})}}),pathMethods:{"/admin/list-users":"GET","/admin/impersonate-user":"POST","/admin/stop-impersonating":"POST"},atomListeners:[{matcher:n=>n==="/admin/impersonate-user"||n==="/admin/stop-impersonating",signal:"$sessionSignal"}],$ERROR_CODES:Gr}},ss=Dt({INVALID_USERNAME_OR_PASSWORD:"Invalid username or password",EMAIL_NOT_VERIFIED:"Email not verified",UNEXPECTED_ERROR:"Unexpected error",USERNAME_IS_ALREADY_TAKEN:"Username is already taken. Please try another.",USERNAME_TOO_SHORT:"Username is too short",USERNAME_TOO_LONG:"Username is too long",INVALID_USERNAME:"Username is invalid",INVALID_DISPLAY_USERNAME:"Display username is invalid"}),os=()=>({id:"username",version:It,$InferServerPlugin:{},atomListeners:[{matcher:e=>e==="/sign-in/username",signal:"$sessionSignal"}],$ERROR_CODES:ss}),qe=qr({plugins:[rs(),os()]});function Ko(e){return e}const Vt=Ne();function is(){const e=Ue(Vt);if(!e)throw new Error("useActiveWorkspace must be used within AuthGuard");return e}const Fe="ks_active_workspace_id";function as(){try{const e=localStorage.getItem(Fe);return e?Number(e):null}catch{return null}}function ls(e){const[t,n]=se(as()),r=ne(()=>{const s=e.workspaces();if(s.length===0)return null;const l=t();return(l!=null?s.find(c=>c.ws_id===l):null)??s[0]});Pe(()=>{const s=r();if(s)try{localStorage.getItem(Fe)!==String(s.ws_id)&&localStorage.setItem(Fe,String(s.ws_id))}catch{}});const o=s=>{n(s);try{localStorage.setItem(Fe,String(s))}catch{}};return y(Vt.Provider,{value:{activeWorkspace:r,setActiveWsId:o},get children(){return e.children}})}const Xt=Ne();function Jt(){const e=Ue(Xt);if(!e)throw new Error("usePermissions must be used within a PermissionProvider");return e}function Zo(e){const t=Jt();return()=>t.has(e)}async function cs(e){if(!e)return null;const t=await fetch("/api/permissions/me",{credentials:"include",headers:{"X-Workspace-Id":String(e)}});return t.ok?t.json():null}function us(e){const{activeWorkspace:t}=is(),[n,{refetch:r}]=He(()=>t()?.ws_id??null,async d=>cs(d)),o=ne(()=>{const d=n();return d?new Set(d.permissions):new Set}),s=ne(()=>{const d=n();return d?new Set(d.effectivePermissions??d.permissions):new Set}),l=()=>n()?.bypass??!1,m={resource:n,set:o,effectiveSet:s,bypass:l,loading:()=>n.loading,has:d=>l()?!0:o().has(d),hasAny:(...d)=>{if(l())return!0;const k=o();return d.some(_=>k.has(_))},hasAll:(...d)=>{if(l())return!0;const k=o();return d.every(_=>k.has(_))},hasEffective:d=>l()?!0:s().has(d),refetch:()=>{r()}};return y(Xt.Provider,{value:m,get children(){return e.children}})}function Qo(e){const t=Jt();return y(ee,{get when(){return!t.resource.loading||t.resource()!=null},fallback:null,get children(){return y(ee,{get when(){return e.when},get fallback(){return e.fallback??y(Lt,{get href(){return e.redirectTo??"/"}})},get children(){return e.children}})}})}var ds=H('<span style="background-color:var(--ks-ripple-color, rgba(255, 255, 255, 0.3))">');const St="ks-button-inline-style",fs=`
|
|
7
|
-
.ks-hud-scan-line { position: relative; overflow: hidden; }
|
|
8
|
-
.ks-hud-scan-line::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; opacity: 0; pointer-events: none; z-index: 1; transition: opacity 0.2s ease; background: linear-gradient(90deg, transparent, var(--ks-effect-color, rgba(201, 169, 97, 0.4)), transparent); }
|
|
9
|
-
.ks-hud-scan-line:hover::before { left: 100%; opacity: 1; transition: all 0.8s ease; }
|
|
10
|
-
.ks-hud-clip-top-left-bottom-right { clip-path: polygon(6px 0, 100% 0, 100% calc(100% - 6px), calc(100% - 6px) 100%, 0 100%, 0 6px); border: none !important; border-radius: 0 !important; }
|
|
11
|
-
.ks-hud-clip-top-right-bottom-left { clip-path: polygon(0 0, calc(100% - 6px) 0, 100% 6px, 100% 100%, 6px 100%, 0 calc(100% - 6px)); border: none !important; border-radius: 0 !important; }
|
|
12
|
-
.ks-hud-clip-minimal-top-left-bottom-right { clip-path: polygon(4px 0, 100% 0, 100% calc(100% - 4px), calc(100% - 4px) 100%, 0 100%, 0 4px); border: none !important; border-radius: 0 !important; }
|
|
13
|
-
.ks-hud-clip-minimal-top-right-bottom-left { clip-path: polygon(0 0, calc(100% - 4px) 0, 100% 4px, 100% 100%, 4px 100%, 0 calc(100% - 4px)); border: none !important; border-radius: 0 !important; }
|
|
14
|
-
.ks-hud-glow { transition: box-shadow 0.2s ease; box-shadow: 0 0 8px var(--ks-effect-glow, rgba(201, 169, 97, 0.3)); }
|
|
15
|
-
.ks-hud-glow:hover:not(:disabled) { box-shadow: 0 0 15px var(--ks-effect-glow-hover, rgba(201, 169, 97, 0.5)); }
|
|
16
|
-
.ks-hud-pulse { animation: ksHudPulse 2s infinite ease-in-out; }
|
|
17
|
-
@keyframes ksHudPulse { 0%, 100% { background-color: var(--ks-effect-pulse-bg, rgba(201, 169, 97, 0.1)); box-shadow: 0 0 5px var(--ks-effect-pulse-glow, rgba(201, 169, 97, 0.2)); } 50% { background-color: var(--ks-effect-pulse-bg-mid, rgba(201, 169, 97, 0.2)); box-shadow: 0 0 10px var(--ks-effect-pulse-glow-mid, rgba(201, 169, 97, 0.4)); } }
|
|
18
|
-
.ks-btn-ripple { position: relative; overflow: hidden; }
|
|
19
|
-
.ks-btn-ripple-effect { position: absolute; border-radius: 50%; transform: scale(0.1); opacity: 0.8; animation: ksButtonRippleExpand 0.4s ease-out forwards; pointer-events: none; z-index: 0; background-color: var(--ks-ripple-color, rgba(255, 255, 255, 0.3)); }
|
|
20
|
-
.ks-btn-ripple-fade { animation: ksButtonRippleFadeOnly 0.3s ease-out forwards; }
|
|
21
|
-
@keyframes ksButtonRippleExpand { 0% { transform: scale(0.1); opacity: 0.5; } 100% { transform: scale(1); opacity: 0.25; } }
|
|
22
|
-
@keyframes ksButtonRippleFadeOnly { 0% { opacity: 0.3; transform: scale(1); } 100% { opacity: 0; transform: scale(1.1); } }
|
|
23
|
-
.ks-btn-ripple > *:not(.ks-btn-ripple-effect) { position: relative; z-index: 2; }
|
|
24
|
-
.ks-interactive { transition: all 0.15s ease; }
|
|
25
|
-
.ks-interactive:active:not(:disabled) { transform: scale(0.97); opacity: 0.8; }
|
|
26
|
-
.ks-interactive:hover:not(:disabled) { transform: scale(1.02); }
|
|
27
|
-
`;function hs(){if(typeof document>"u"||document.getElementById(St))return;const e=document.createElement("style");e.id=St,e.textContent=fs,document.head.appendChild(e)}const ue={"ks-hud-scan-line":"ks-hud-scan-line","ks-hud-clip-top-left-bottom-right":"ks-hud-clip-top-left-bottom-right","ks-hud-clip-top-right-bottom-left":"ks-hud-clip-top-right-bottom-left","ks-hud-clip-minimal-top-left-bottom-right":"ks-hud-clip-minimal-top-left-bottom-right","ks-hud-clip-minimal-top-right-bottom-left":"ks-hud-clip-minimal-top-right-bottom-left","ks-hud-glow":"ks-hud-glow","ks-hud-pulse":"ks-hud-pulse","ks-btn-ripple":"ks-btn-ripple","ks-btn-ripple-effect":"ks-btn-ripple-effect","ks-btn-ripple-fade":"ks-btn-ripple-fade","ks-interactive":"ks-interactive"};function Et(...e){return e.filter(Boolean).join(" ")}const Rt={primary:{textColor:"text-amber-400",background:"bg-amber-600/20 border-amber-600/60",hover:"hover:bg-amber-600/30 hover:border-amber-500",colors:{ripple:"rgba(255, 255, 255, 0.3)",effect:"rgba(201, 169, 97, 0.4)",effectBg:"rgba(201, 169, 97, 0.1)",effectBorder:"rgba(201, 169, 97, 0.4)",effectGlow:"rgba(201, 169, 97, 0.3)"}},danger:{textColor:"text-red-400",background:"bg-red-600/20 border-red-600/60",hover:"hover:bg-red-600/30 hover:border-red-500",colors:{ripple:"rgba(255, 255, 255, 0.3)",effect:"rgba(255, 68, 68, 0.4)",effectBg:"rgba(255, 68, 68, 0.1)",effectBorder:"rgba(255, 68, 68, 0.4)",effectGlow:"rgba(255, 68, 68, 0.3)"}},secondary:{textColor:"text-slate-400",background:"bg-slate-600/20 border-slate-600/60",hover:"hover:bg-slate-600/30 hover:border-slate-500",colors:{ripple:"rgba(255, 255, 255, 0.3)",effect:"rgba(148, 163, 184, 0.4)",effectBg:"rgba(148, 163, 184, 0.1)",effectBorder:"rgba(148, 163, 184, 0.4)",effectGlow:"rgba(148, 163, 184, 0.3)"}}},Ot={clip1:{effects:["clip-top-left-bottom-right"],baseClasses:"px-4 py-2 border",overrideType:!1},clip2:{effects:["clip-top-right-bottom-left"],baseClasses:"px-4 py-2 border",overrideType:!1},ghost:{effects:[],baseClasses:"px-4 py-2 bg-transparent border-transparent hover:bg-current/10 hover:border-transparent",overrideType:!0},link:{effects:[],baseClasses:"px-0 py-0 bg-transparent border-transparent underline-offset-4 hover:underline hover:bg-transparent hover:border-transparent",overrideType:!0}},Kt=e=>{hs();const t=X({as:"button",intent:"primary",variant:"clip1",noRipple:!1,noScanline:!1,noGlow:!1,noPulse:!1,iconPosition:"left"},e),[n,r]=At(t,["as","intent","variant","noRipple","noScanline","noGlow","noPulse","icon","iconPosition","class","children","onClick","disabled"]),[o,s]=se([]);let l,f=0;const c=ne(()=>!n.children&&n.icon),u=ne(()=>Rt[n.intent]||Rt.primary),a=ne(()=>Ot[n.variant]||Ot.clip1),m=ne(()=>!(n.noRipple||n.variant==="link")),d=ne(()=>{const i=[...a().effects];return n.noScanline||i.push("scanline"),i}),k=ne(()=>d().map(i=>({scanline:ue["ks-hud-scan-line"],"clip-top-left-bottom-right":ue["ks-hud-clip-top-left-bottom-right"],"clip-top-right-bottom-left":ue["ks-hud-clip-top-right-bottom-left"],"clip-minimal-top-left-bottom-right":ue["ks-hud-clip-minimal-top-left-bottom-right"],"clip-minimal-top-right-bottom-left":ue["ks-hud-clip-minimal-top-right-bottom-left"],glow:ue["ks-hud-glow"],pulse:ue["ks-hud-pulse"]})[i]).filter(Boolean)),_=ne(()=>{const i=u().colors;return{"--ks-effect-color":i.effect,"--ks-effect-bg":i.effectBg,"--ks-effect-border":i.effectBorder,"--ks-effect-bg-hover":i.effect.replace("0.1","0.2"),"--ks-effect-border-hover":i.effect.replace("0.4","0.6"),"--ks-effect-glow":i.effectGlow,"--ks-effect-glow-hover":i.effectGlow.replace("0.3","0.5"),"--ks-effect-pulse-bg":i.effectBg,"--ks-effect-pulse-bg-mid":i.effect.replace("0.4","0.2"),"--ks-effect-pulse-glow":i.effectGlow.replace("0.3","0.2"),"--ks-effect-pulse-glow-mid":i.effectGlow,"--ks-ripple-color":i.ripple}}),M=ne(()=>{const i="select-none inline-flex items-center justify-center gap-2 font-medium transition-all duration-200 focus:outline-none text-sm rounded",v=u().textColor,R=a().overrideType?"":`${u().background} ${u().hover}`,C=a().baseClasses;return Et(i,v,R,C,n.class,m()&&ue["ks-btn-ripple"],!m()&&ue["ks-interactive"],c()&&"aspect-square !p-2",...k(),n.disabled&&"opacity-50 cursor-not-allowed")}),O=i=>{if(!n.disabled&&m()&&l){f=Date.now();const v=l.getBoundingClientRect(),R=i.clientX-v.left,C=i.clientY-v.top,N=Math.max(v.width,v.height)*2,G=Date.now()+Math.random();s(A=>[...A,{id:G,x:R,y:C,size:N,isFading:!1}])}},x=()=>{if(!m()||n.disabled)return;const i=Date.now()-f,v=Math.max(0,400-i);setTimeout(()=>{s(R=>R.map(C=>({...C,isFading:!0}))),setTimeout(()=>s([]),400)},v)},E=()=>{n.disabled||x()},g=i=>{n.onClick&&!n.disabled&&n.onClick(i)},b=ne(()=>{const i=n.icon;if(c()&&i)return y(i,{});if(i&&n.children){const v=y(i,{});return n.iconPosition==="left"?[v,ke(()=>n.children)]:[ke(()=>n.children),v]}return i?y(i,{}):n.children});return ot(()=>s([])),y(st,X({get component(){return n.as},ref:i=>{l=i;const v=r.ref;typeof v=="function"&&v(i)},get class(){return M()},get style(){return _()},onMouseDown:O,onMouseUp:x,onMouseLeave:E,onClick:g,get disabled(){return n.disabled}},r,{get children(){return[ke(()=>b()),y(ee,{get when(){return m()},get children(){return y(_e,{get each(){return o()},children:i=>(()=>{var v=ds();return Q(R=>{var C=Et(ue["ks-btn-ripple-effect"],i.isFading&&ue["ks-btn-ripple-fade"]),N=`${i.x-i.size/2}px`,G=`${i.y-i.size/2}px`,A=`${i.size}px`,D=`${i.size}px`;return C!==R.e&&Me(v,R.e=C),N!==R.t&&Se(v,"left",R.t=N),G!==R.a&&Se(v,"top",R.a=G),A!==R.o&&Se(v,"width",R.o=A),D!==R.i&&Se(v,"height",R.i=D),R},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),v})()})}})]}}))};var gs=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],ps=e=>y(te,X(e,{iconNode:gs,name:"x"})),ms=ps;F(["click"]);F(["click"]);F(["click"]);F(["click"]);F(["click","pointermove","pointerup","pointerdown"]);F(["click"]);F(["click"]);F(["keydown","click"]);F(["click","input"]);F(["click"]);F(["click"]);F(["click","input","keydown","mousedown"]);var vs=[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]],bs=e=>y(te,X(e,{iconNode:vs,name:"chevrons-up-down"})),ys=bs;F(["click","input"]);F(["click"]);F(["click"]);F(["input","keydown","keyup","mouseup","mousedown","click"]);F(["click","input","keydown"]);var ks=H('<div class="border-t border-zinc-800"><button type=button class="w-full text-left px-3 py-2 text-xs text-red-400 hover:bg-red-500/10 transition-colors flex items-center gap-2"><span>Clear selection'),ws=H('<div class="z-[10000] rounded-md border border-zinc-700 bg-zinc-900/95 backdrop-blur shadow-xl overflow-hidden flex flex-col"><div class="px-2 py-1.5 border-b border-zinc-800"><input type=text class="w-full px-2 py-1 text-xs bg-zinc-950 border border-zinc-800 rounded text-zinc-200 placeholder:text-zinc-600 focus:outline-none focus:border-amber-500/50"></div><div class="flex-1 overflow-y-auto">'),xs=H("<div><button type=button><span>"),_s=H('<span class="text-zinc-500 italic">'),Ss=H('<div class="px-3 py-3 text-xs text-zinc-500 text-center">'),Es=H('<span class="text-[10px] text-zinc-500 truncate">'),Rs=H('<span class="text-amber-400 shrink-0">✓'),Os=H('<button type=button class="w-full text-left px-3 py-2 text-xs hover:bg-amber-500/10 transition-colors flex items-center justify-between gap-2"><span class="flex flex-col min-w-0"><span class="font-medium truncate">');const Ts=240,As=320,$s=200;function ei(e){const[t,n]=se(!1),[r,o]=se(""),[s,l]=se(!1),[f,c]=se({});let u,a,m;const d=()=>{if(!(e.value==null||e.value===""))return e.options.find(x=>String(x.value)===String(e.value))?.label},k=ne(()=>{const x=r().trim().toLowerCase();return x?e.options.filter(E=>E.label.toLowerCase().includes(x)||(E.description?.toLowerCase().includes(x)??!1)):e.options}),_=()=>{if(!u)return;const x=u.getBoundingClientRect(),E=window.innerHeight,g=window.innerWidth,b=Math.max(Ts,x.width),i=E-x.bottom,v=x.top,R=i<$s&&v>i,C=Math.max(160,Math.min(As,(R?v:i)-12)),N=Math.min(Math.max(8,x.left),g-b-8);c({position:"fixed",...R?{bottom:`${Math.max(8,E-x.top+4)}px`}:{top:`${x.bottom+4}px`},left:`${N}px`,width:`${b}px`,"max-height":`${C}px`})};Pe(()=>{if(!t())return;_(),queueMicrotask(()=>m?.focus());const x=b=>{const i=b.target;u?.contains(i)||a?.contains(i)||(n(!1),o(""))},E=b=>{b.key==="Escape"&&(n(!1),o(""))},g=()=>_();document.addEventListener("mousedown",x),document.addEventListener("keydown",E),window.addEventListener("resize",g),window.addEventListener("scroll",g,!0),ot(()=>{document.removeEventListener("mousedown",x),document.removeEventListener("keydown",E),window.removeEventListener("resize",g),window.removeEventListener("scroll",g,!0)})});const M=()=>e.loading?"Loading…":r()?e.noMatchLabel??"No matches":e.emptyLabel??"No options",O=async x=>{l(!0);try{await e.onChange(x)}finally{l(!1),n(!1),o("")}};return(()=>{var x=xs(),E=x.firstChild,g=E.firstChild;E.$$click=()=>!e.disabled&&n(i=>!i);var b=u;return typeof b=="function"?pe(b,E):u=E,P(g,(()=>{var i=ke(()=>!!s());return()=>i()?"…":d()??(()=>{var v=_s();return P(v,()=>e.placeholder??"Select…"),v})()})()),P(E,y(ys,{size:12,class:"text-zinc-500 shrink-0"}),null),P(x,y(ee,{get when(){return t()},get children(){return y(un,{get children(){var i=ws(),v=i.firstChild,R=v.firstChild,C=v.nextSibling,N=a;typeof N=="function"?pe(N,i):a=i,R.$$input=A=>o(A.currentTarget.value);var G=m;return typeof G=="function"?pe(G,R):m=R,P(C,y(ee,{get when(){return ke(()=>!e.loading)()&&k().length>0},get fallback(){return(()=>{var A=Ss();return P(A,M),A})()},get children(){return y(_e,{get each(){return k()},children:A=>{const D=()=>String(A.value)===String(e.value??"");return(()=>{var U=Os(),Y=U.firstChild,z=Y.firstChild;return U.$$click=()=>O(A),P(z,()=>A.label),P(Y,y(ee,{get when(){return A.description},get children(){var q=Es();return P(q,()=>A.description),q}}),null),P(U,y(ee,{get when(){return D()},get children(){return Rs()}}),null),Q(q=>{var he=!!D(),ge=!D();return he!==q.e&&U.classList.toggle("text-amber-400",q.e=he),ge!==q.t&&U.classList.toggle("text-zinc-200",q.t=ge),q},{e:void 0,t:void 0}),U})()}})}})),P(i,y(ee,{get when(){return ke(()=>!!(e.allowClear&&e.value!=null))()&&e.value!==""},get children(){var A=ks(),D=A.firstChild,U=D.firstChild;return D.$$click=()=>O(null),P(D,y(ms,{size:12}),U),A}}),null),Q(A=>{var D=f(),U=e.searchPlaceholder??"Search…";return A.e=tt(i,D,A.e),U!==A.t&&T(R,"placeholder",A.t=U),A},{e:void 0,t:void 0}),Q(()=>R.value=r()),i}})}}),null),Q(i=>{var v=e.wrapperClass??"relative inline-block",R=e.triggerTestId,C=e.disabled||s(),N=e.triggerClass??"inline-flex items-center gap-1.5 text-xs text-zinc-300 bg-zinc-800/60 hover:bg-zinc-800 border border-zinc-700/60 rounded px-2 py-1 cursor-pointer transition-colors",G={"cursor-not-allowed opacity-60":e.disabled},A=e.disabled?void 0:"Click to select",D=e.triggerLabelClass??"truncate max-w-[180px]";return v!==i.e&&Me(x,i.e=v),R!==i.t&&T(E,"data-testid",i.t=R),C!==i.a&&(E.disabled=i.a=C),N!==i.o&&Me(E,i.o=N),i.i=dn(E,G,i.i),A!==i.n&&T(E,"title",i.n=A),D!==i.s&&Me(g,i.s=D),i},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),x})()}F(["click","input"]);F(["click"]);var Ls=[["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}],["path",{d:"M10 4v4",key:"pp8u80"}],["path",{d:"M2 8h20",key:"d11cs7"}],["path",{d:"M6 4v4",key:"1svtjw"}]],Ms=e=>y(te,X(e,{iconNode:Ls,name:"app-window"})),Cs=Ms,Ps=[["path",{d:"M8 3 4 7l4 4",key:"9rb6wj"}],["path",{d:"M4 7h16",key:"6tx8e3"}],["path",{d:"m16 21 4-4-4-4",key:"siv7j2"}],["path",{d:"M20 17H4",key:"h6l3hr"}]],Ns=e=>y(te,X(e,{iconNode:Ps,name:"arrow-left-right"})),Us=Ns,Is=[["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",key:"1nb95v"}],["line",{x1:"8",x2:"16",y1:"6",y2:"6",key:"x4nwl0"}],["line",{x1:"16",x2:"16",y1:"14",y2:"18",key:"wjye3r"}],["path",{d:"M16 10h.01",key:"1m94wz"}],["path",{d:"M12 10h.01",key:"1nrarc"}],["path",{d:"M8 10h.01",key:"19clt8"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M8 18h.01",key:"lrp35t"}]],zs=e=>y(te,X(e,{iconNode:Is,name:"calculator"})),Ds=zs,js=[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]],Bs=e=>y(te,X(e,{iconNode:js,name:"circle-check-big"})),Ws=Bs,Fs=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],Hs=e=>y(te,X(e,{iconNode:Fs,name:"circle"})),Ys=Hs,qs=[["path",{d:"M12 13v8l-4-4",key:"1f5nwf"}],["path",{d:"m12 21 4-4",key:"1lfcce"}],["path",{d:"M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284",key:"ui1hmy"}]],Gs=e=>y(te,X(e,{iconNode:qs,name:"cloud-download"})),Vs=Gs,Xs=[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]],Js=e=>y(te,X(e,{iconNode:Xs,name:"database"})),Ks=Js,Zs=[["path",{d:"M15 6a9 9 0 0 0-9 9V3",key:"1cii5b"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}]],Qs=e=>y(te,X(e,{iconNode:Zs,name:"git-branch"})),eo=Qs,to=[["path",{d:"M14 4.1 12 6",key:"ita8i4"}],["path",{d:"m5.1 8-2.9-.8",key:"1go3kf"}],["path",{d:"m6 12-1.9 2",key:"mnht97"}],["path",{d:"M7.2 2.2 8 5.1",key:"1cfko1"}],["path",{d:"M9.037 9.69a.498.498 0 0 1 .653-.653l11 4.5a.5.5 0 0 1-.074.949l-4.349 1.041a1 1 0 0 0-.74.739l-1.04 4.35a.5.5 0 0 1-.95.074z",key:"s0h3yz"}]],no=e=>y(te,X(e,{iconNode:to,name:"mouse-pointer-click"})),ro=no,so=[["path",{d:"M16.247 7.761a6 6 0 0 1 0 8.478",key:"1fwjs5"}],["path",{d:"M19.075 4.933a10 10 0 0 1 0 14.134",key:"ehdyv1"}],["path",{d:"M4.925 19.067a10 10 0 0 1 0-14.134",key:"1q22gi"}],["path",{d:"M7.753 16.239a6 6 0 0 1 0-8.478",key:"r2q7qm"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]],oo=e=>y(te,X(e,{iconNode:so,name:"radio"})),io=oo,ao=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],lo=e=>y(te,X(e,{iconNode:ao,name:"save"})),co=lo,uo=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],fo=e=>y(te,X(e,{iconNode:uo,name:"sparkles"})),ho=fo;F(["click"]);F(["click"]);F(["input"]);F(["click"]);F(["click"]);F(["click","input"]);const go={nodeW:168,nodeH:48,gapX:72,gapY:18,pad:16};function po(e,t){const n=new Map;for(const r of e)n.set(r,0);for(const r of t)e.has(r.from)&&e.has(r.to)&&n.set(r.to,(n.get(r.to)??0)+1);return n}function mo(e,t,n){const r=new Set(e.map(a=>a.id)),o=new Set(e.filter(a=>typeof a.lane=="number").map(a=>a.id)),s=new Map;for(const a of e)typeof a.lane=="number"&&s.set(a.id,a.lane);const l=po(r,t);if(n==="bipartite"){for(const a of e)s.has(a.id)||s.set(a.id,(l.get(a.id)??0)>0?1:0);return s}for(const a of e)s.has(a.id)||s.set(a.id,0);const f=t.filter(a=>r.has(a.from)&&r.has(a.to)),c=vo(e,f),u=f.filter(a=>!c.has(`${a.from}\0${a.to}`));for(let a=0;a<e.length;a++){let m=!1;for(const d of u){if(o.has(d.to))continue;const k=(s.get(d.from)??0)+1;k>(s.get(d.to)??0)&&(s.set(d.to,k),m=!0)}if(!m)break}return s}function vo(e,t){const n=new Map;for(const s of t)(n.get(s.from)??n.set(s.from,[]).get(s.from)).push(s.to);const r=new Map;for(const s of e)r.set(s.id,0);const o=new Set;for(const s of e){if(r.get(s.id)!==0)continue;const l=[{id:s.id,i:0}];for(r.set(s.id,1);l.length;){const f=l[l.length-1],c=n.get(f.id)??[];if(f.i<c.length){const u=c[f.i++],a=r.get(u);a===1?o.add(`${f.id}\0${u}`):a===0&&(r.set(u,1),l.push({id:u,i:0}))}else r.set(f.id,2),l.pop()}}return o}function bo(e,t,n="layered",r=go,o="horizontal"){const{nodeW:s,nodeH:l,gapX:f,gapY:c,pad:u}=r,a=mo(e,t,n),m=o==="vertical",d=yo(e,t,a),k=e.map(g=>{const b=a.get(g.id)??0,i=d.get(g.id)??0;return{...g,lane:b,row:Math.round(i),x:u+(m?i*(s+f):b*(s+f)),y:u+(m?b*(l+c):i*(l+c))}}),_=k.reduce((g,b)=>Math.max(g,b.x),u),M=k.reduce((g,b)=>Math.max(g,b.y),u),O=_+s+u,x=M+l+u,E=new Map(k.map(g=>[g.id,g]));return{nodes:k,byId:E,width:O,height:x}}function yo(e,t,n){const r=new Set(e.map(u=>u.id)),o=new Map(e.map(u=>[u.id,u.id])),s=u=>{let a=u;for(;o.get(a)!==a;)a=o.get(a);for(;o.get(u)!==a;){const m=o.get(u);o.set(u,a),u=m}return a};for(const u of t)r.has(u.from)&&r.has(u.to)&&o.set(s(u.from),s(u.to));const l=new Map;for(const u of e){const a=s(u.id);(l.get(a)??l.set(a,[]).get(a)).push(u)}const f=new Map;let c=0;for(const u of l.values()){const a=new Set(u.map(_=>_.id)),m=t.filter(_=>a.has(_.from)&&a.has(_.to)),d=ko(u,m,n);let k=0;for(const[_,M]of d)f.set(_,M+c),k=Math.max(k,M);c+=k+2}return f}function ko(e,t,n){const r=new Set(e.map(d=>d.id)),o=new Map;for(const d of e){const k=n.get(d.id)??0,_=o.get(k)??[];_.push(d.id),o.set(k,_)}const s=new Map,l=new Map;for(const d of t)!r.has(d.from)||!r.has(d.to)||((l.get(d.from)??l.set(d.from,[]).get(d.from)).push(d.to),(s.get(d.to)??s.set(d.to,[]).get(d.to)).push(d.from));const f=new Map;for(const d of o.values())d.forEach((k,_)=>f.set(k,_));const c=[...o.keys()].sort((d,k)=>d-k),u=d=>d.length?d.reduce((k,_)=>k+(f.get(_)??0),0)/d.length:null;for(let d=0;d<6;d++){const k=d%2===0,_=k?c:[...c].reverse();for(const M of _){const O=o.get(M),x=O.map(b=>{const i=k?s.get(b):l.get(b);return u(i??[])??f.get(b)??0}),E=O.map((b,i)=>i).sort((b,i)=>x[b]-x[i]);let g=-1/0;for(const b of E){const i=Math.max(x[b],g+1);f.set(O[b],i),g=i}}}const a=[...f.values()],m=a.length?Math.min(...a):0;for(const[d,k]of f)f.set(d,k-m);return f}var wo=H('<svg class=ksui-fg-svg role=img><defs><marker id=ksui-fg-arrow viewBox="0 0 8 8"refX=7 refY=4 markerWidth=6 markerHeight=6 orient=auto-start-reverse><path d="M0 0 L8 4 L0 8 z"fill=var(--ksui-fg-edge,rgba(255,255,255,0.45))></path></marker></defs><g>'),xo=H('<div class=ksui-fg-controls><button type=button class=ksui-fg-ctrl aria-label="Zoom in">+</button><button type=button class=ksui-fg-ctrl aria-label="Zoom out">−</button><button type=button class=ksui-fg-ctrl aria-label="Fit to view">⤢'),_o=H("<span class=ksui-fg-hint>drag to pan · scroll to zoom"),So=H("<div class=ksui-fg-wrap>"),Eo=H("<p class=ksui-fg-empty>"),Ro=H("<svg><rect class=ksui-fg-elabel-bg height=12 rx=3></svg>",!1,!0,!1),Oo=H("<svg><text class=ksui-fg-elabel text-anchor=middle></svg>",!1,!0,!1),To=H("<svg><g><path marker-end=url(#ksui-fg-arrow)></svg>",!1,!0,!1),Ao=H("<span class=ksui-fg-kind>"),$o=H("<svg><foreignObject class=ksui-fg-node><div xmlns=http://www.w3.org/1999/xhtml><span class=ksui-fg-chip></span><span class=ksui-fg-txt><span class=ksui-fg-title></svg>",!1,!0,!1),Lo=H('<svg><circle class="ksui-fg-handle in"r=3.5></svg>',!1,!0,!1),Mo=H("<svg><g></svg>",!1,!0,!1),Co=H('<svg><circle class="ksui-fg-handle out"r=3.5></svg>',!1,!0,!1);const Po={data:Ks,trigger:ro,modal:Cs,load:Vs,call:Us,compute:Ds,condition:eo,commit:co,emit:io,effect:ho,terminal:Ws},No=e=>Po[e??""]??Ys,Zt={nodeW:190,nodeH:60,gapX:100,gapY:100,pad:28},{nodeW:Re,nodeH:Ae,pad:$e}=Zt,Uo=.3,Io=3,Tt="ksui-flow-graph-style";function zo(){if(typeof document>"u"||document.getElementById(Tt))return;const e=document.createElement("style");e.id=Tt,e.textContent=`
|
|
28
|
-
.ksui-fg-wrap{width:100%;overflow:auto;position:relative;user-select:none;-webkit-user-select:none;}
|
|
29
|
-
.ksui-fg-card,.ksui-fg-title,.ksui-fg-kind,.ksui-fg-elabel{user-select:none;-webkit-user-select:none;}
|
|
30
|
-
.ksui-fg-wrap.interactive{overflow:hidden;border:1px solid var(--ksui-fg-node-border,rgba(255,255,255,0.12));border-radius:10px;background:var(--ksui-fg-canvas,#101014);background-image:radial-gradient(var(--ksui-fg-dot,rgba(255,255,255,0.05)) 1px,transparent 1px);background-size:20px 20px;cursor:grab;touch-action:none;}
|
|
31
|
-
.ksui-fg-wrap.interactive.grabbing{cursor:grabbing;}
|
|
32
|
-
.ksui-fg-wrap.scroll{overflow:auto;border:1px solid var(--ksui-fg-node-border,rgba(255,255,255,0.12));border-radius:10px;background:var(--ksui-fg-canvas,#101014);background-image:radial-gradient(var(--ksui-fg-dot,rgba(255,255,255,0.05)) 1px,transparent 1px);background-size:20px 20px;}
|
|
33
|
-
.ksui-fg-svg{display:block;max-width:100%;height:auto;font-family:inherit;}
|
|
34
|
-
.ksui-fg-wrap.scroll .ksui-fg-svg{margin:0 auto;}
|
|
35
|
-
.ksui-fg-wrap.interactive .ksui-fg-svg{max-width:none;width:100%;height:100%;}
|
|
36
|
-
.ksui-fg-edge{fill:none;stroke:var(--ksui-fg-edge,rgba(255,255,255,0.28));stroke-width:1.75;}
|
|
37
|
-
.ksui-fg-edge.dashed{stroke-dasharray:5 4;}
|
|
38
|
-
.ksui-fg-edge.primary{stroke:var(--ksui-fg-primary,#c9a961);}
|
|
39
|
-
.ksui-fg-edge.info{stroke:#5b9bf0;}
|
|
40
|
-
.ksui-fg-edge.success{stroke:#43c478;}
|
|
41
|
-
.ksui-fg-edge.danger{stroke:#ef6a6a;}
|
|
42
|
-
.ksui-fg-edge.muted{stroke:rgba(255,255,255,0.2);}
|
|
43
|
-
.ksui-fg-edge.flow{stroke-dasharray:6 5;animation:ksui-fg-march .8s linear infinite;}
|
|
44
|
-
@keyframes ksui-fg-march{to{stroke-dashoffset:-11;}}
|
|
45
|
-
@media (prefers-reduced-motion:reduce){.ksui-fg-edge.flow{animation:none;}}
|
|
46
|
-
.ksui-fg-handle{fill:var(--ksui-fg-canvas,#101014);stroke:var(--ksui-fg-edge,rgba(255,255,255,0.4));stroke-width:1.5;}
|
|
47
|
-
.ksui-fg-node,.ksui-fg-edge,.ksui-fg-elabel,.ksui-fg-elabel-bg,.ksui-fg-handle{transition:opacity .12s ease;}
|
|
48
|
-
.ksui-fg-dim{opacity:0.14;}
|
|
49
|
-
.ksui-fg-elabel{fill:var(--ksui-fg-muted,rgba(255,255,255,0.78));font-size:9.5px;}
|
|
50
|
-
.ksui-fg-elabel-bg{fill:var(--ksui-fg-canvas,#101014);opacity:0.92;}
|
|
51
|
-
.ksui-fg-card{box-sizing:border-box;height:100%;display:flex;align-items:center;gap:9px;padding:0 11px;border-radius:9px;background:var(--ksui-fg-card,#1c1c22);border:1px solid var(--ksui-fg-node-border,rgba(255,255,255,0.14));border-left-width:3px;overflow:hidden;}
|
|
52
|
-
.ksui-fg-node.clickable .ksui-fg-card{cursor:pointer;}
|
|
53
|
-
.ksui-fg-node.clickable .ksui-fg-card:hover{background:#23232b;}
|
|
54
|
-
.ksui-fg-node:focus{outline:none;}
|
|
55
|
-
.ksui-fg-node:focus-visible .ksui-fg-card{border-color:var(--ksui-fg-primary,#c9a961);}
|
|
56
|
-
.ksui-fg-chip{flex:none;width:30px;height:30px;border-radius:7px;display:flex;align-items:center;justify-content:center;color:#fff;}
|
|
57
|
-
.ksui-fg-txt{min-width:0;display:flex;flex-direction:column;line-height:1.15;}
|
|
58
|
-
.ksui-fg-title{font-size:12px;font-weight:600;color:var(--ksui-fg-fg,#ececef);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
|
|
59
|
-
.ksui-fg-kind{font-size:9px;text-transform:uppercase;letter-spacing:0.06em;color:var(--ksui-fg-muted,rgba(255,255,255,0.45));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
|
|
60
|
-
.ksui-fg-card.primary{border-left-color:#c9a961;} .ksui-fg-card.primary .ksui-fg-chip{background:#c9a961;color:#18181b;}
|
|
61
|
-
.ksui-fg-card.info{border-left-color:#5b9bf0;} .ksui-fg-card.info .ksui-fg-chip{background:#3f6fb0;}
|
|
62
|
-
.ksui-fg-card.success{border-left-color:#43c478;} .ksui-fg-card.success .ksui-fg-chip{background:#2f8e57;}
|
|
63
|
-
.ksui-fg-card.danger{border-left-color:#ef6a6a;} .ksui-fg-card.danger .ksui-fg-chip{background:#b04545;}
|
|
64
|
-
.ksui-fg-card.muted{border-left-color:rgba(255,255,255,0.3);} .ksui-fg-card.muted .ksui-fg-chip{background:#3a3a42;}
|
|
65
|
-
.ksui-fg-empty{padding:1.75rem 1rem;text-align:center;font-size:0.82rem;color:var(--ksui-fg-muted,rgba(255,255,255,0.55));}
|
|
66
|
-
.ksui-fg-controls{position:absolute;right:8px;bottom:8px;display:flex;gap:4px;z-index:1;}
|
|
67
|
-
.ksui-fg-ctrl{width:24px;height:24px;display:grid;place-items:center;border-radius:5px;border:1px solid var(--ksui-fg-node-border,rgba(255,255,255,0.18));background:var(--ksui-fg-card,#1c1c22);color:var(--ksui-fg-fg,#ececef);font-size:14px;line-height:1;cursor:pointer;user-select:none;}
|
|
68
|
-
.ksui-fg-ctrl:hover{background:#23232b;}
|
|
69
|
-
.ksui-fg-hint{position:absolute;left:8px;bottom:8px;font-size:9.5px;color:var(--ksui-fg-muted,rgba(255,255,255,0.4));pointer-events:none;}
|
|
70
|
-
`,document.head.appendChild(e)}function Do(e,t){return e.length>t?e.slice(0,t-1)+"…":e}const ti=e=>{zo();const t=h=>e.testId?`${e.testId}-${h}`:void 0,n=()=>e.direction==="vertical",r=()=>!!e.interactive,o=ne(()=>bo(e.nodes,e.edges,e.layout??"layered",Zt,e.direction)),s=ne(()=>{const h=new Set,p=new Map;for(const $ of e.edges){h.add($.to);const S=p.get($.from)??[];S.push($),p.set($.from,S)}return{incoming:h,outBySource:p}}),l=ne(()=>{const h=new Map,p=$=>{const S=o().byId.get($);return S?n()?S.x:S.y:0};for(const $ of s().outBySource.values())[...$].map((S,j)=>({e:S,i:j})).sort((S,j)=>p(S.e.to)-p(j.e.to)||S.i-j.i).forEach(({e:S},j)=>h.set(S,j));return h}),f=(h,p,$)=>{const S=(p+1)/($+1);return n()?{x:h.x+Re*S,y:h.y+Ae}:{x:h.x+Re,y:h.y+Ae*S}},c=h=>n()?{x:h.x+Re/2,y:h.y}:{x:h.x,y:h.y+Ae/2},[u,a]=se({}),m=h=>{const p=u()[h.id];return p?{...h,x:h.x+p.dx,y:h.y+p.dy}:h},d=h=>{const p=o().byId.get(h);return p?m(p):void 0},[k,_]=se(null),[M,O]=se(null),x=()=>M()??k(),E=ne(()=>{const h=x();if(!h)return null;const p=new Set([h]);for(const $ of e.edges)$.from===h&&p.add($.to),$.to===h&&p.add($.from);return p}),g=h=>E()!==null&&!E().has(h),b=h=>E()!==null&&!(E().has(h.from)&&E().has(h.to)&&(h.from===x()||h.to===x())),[i,v]=se({x:0,y:0,k:1}),[R,C]=se(!1);let N,G=!1,A=0,D=0,U=!1;const Y=()=>{if(!N)return;const h=N.getBoundingClientRect(),p=h.width,$=h.height,S=o().nodes.map(m);if(!p||!$||S.length===0)return;const j=Math.min(...S.map(W=>W.x))-$e,w=Math.min(...S.map(W=>W.y))-$e,I=Math.max(...S.map(W=>W.x))+Re+$e,J=Math.max(...S.map(W=>W.y))+Ae+$e,B=Math.max(1,I-j),re=Math.max(1,J-w),K=Math.min(p/B,$/re,1.4);v({x:(p-B*K)/2-j*K,y:($-re*K)/2-w*K,k:K})},z=ne(()=>e.nodes.map(h=>h.id).join("|"));let q=null;Pe(()=>{const h=z();r()&&h!==q&&o().nodes.length>0&&N&&(q=h,a({}),requestAnimationFrame(()=>{if(!N)return;const p=N.clientWidth||0,$=o().nodes;if(!p||$.length===0)return;const S=Math.min(...$.map(I=>I.x)),j=Math.max(...$.map(I=>I.x))+Re,w=Math.min(...$.map(I=>I.y));v({x:p/2-(S+j)/2,y:$e-w,k:1})}))});const he=h=>Math.min(Io,Math.max(Uo,h)),ge=(h,p,$)=>{const S=i(),j=he(S.k*h),w=p??(N?.clientWidth??0)/2,I=$??(N?.clientHeight??0)/2;v({x:w-(w-S.x)*(j/S.k),y:I-(I-S.y)*(j/S.k),k:j})},Ie=h=>{if(!r())return;h.preventDefault();const p=N?.getBoundingClientRect();ge(h.deltaY<0?1.12:1/1.12,h.clientX-(p?.left??0),h.clientY-(p?.top??0))};let me=null,ie=null;const ze=h=>{r()&&(U=!1,A=h.clientX,D=h.clientY,N?.setPointerCapture(h.pointerId),me?(ie=me,me=null):(G=!0,C(!0)))},en=h=>{if(!G&&!ie)return;const p=h.clientX-A,$=h.clientY-D;if(Math.abs(p)+Math.abs($)>2&&(U=!0),A=h.clientX,D=h.clientY,ie){const S=ie,j=i().k||1;a(w=>{const I=w[S]??{dx:0,dy:0};return{...w,[S]:{dx:I.dx+p/j,dy:I.dy+$/j}}})}else v(S=>({...S,x:S.x+p,y:S.y+$}))},it=h=>{ie&&!U?O(p=>p===ie?null:ie):G&&!U&&O(null),G=!1,ie=null,me=null,C(!1);try{N?.releasePointerCapture(h.pointerId)}catch{}},tn=(h,p)=>{if(n()){const S=Math.min(110,Math.max(34,Math.abs(p.y-h.y)*.5));return`M ${h.x} ${h.y} C ${h.x} ${h.y+S}, ${p.x} ${p.y-S}, ${p.x} ${p.y}`}const $=Math.min(140,Math.max(46,Math.abs(p.x-h.x)*.5));return`M ${h.x} ${h.y} C ${h.x+$} ${h.y}, ${p.x-$} ${p.y}, ${p.x} ${p.y}`},nn=(h,p)=>({x:(h.x+p.x)/2,y:(h.y+p.y)/2}),rn=h=>{U||e.onNodeSelect?.(h)},sn=(h,p)=>{(h.key==="Enter"||h.key===" ")&&(h.preventDefault(),e.onNodeSelect?.(p))},on=()=>r()?`translate(${i().x} ${i().y}) scale(${i().k})`:void 0;return(()=>{var h=So();return P(h,y(ee,{get when(){return o().nodes.length>0},get fallback(){return(()=>{var p=Eo();return P(p,()=>e.emptyLabel??"Nothing to show yet."),Q(()=>T(p,"data-testid",t("empty"))),p})()},get children(){return[(()=>{var p=wo(),$=p.firstChild,S=$.nextSibling;p.addEventListener("pointercancel",it),p.$$pointerup=it,p.$$pointermove=en,p.$$pointerdown=ze,p.addEventListener("wheel",Ie);var j=N;return typeof j=="function"?pe(j,p):N=p,P(S,y(_e,{get each(){return e.edges},children:w=>{const I=()=>d(w.from),J=()=>d(w.to);return y(ee,{get when(){return ke(()=>!!I())()&&J()},get children(){return(()=>{const B=s().outBySource.get(w.from)??[],re=()=>f(I(),l().get(w)??0,B.length||1),K=()=>c(J()),W=()=>nn(re(),K()),oe=()=>Do(w.label??"",18);return(()=>{var L=To(),ve=L.firstChild;return P(L,y(ee,{get when(){return w.label},get children(){return[(()=>{var V=Ro();return Q(Z=>{var ae=W().x-oe().length*2.7-3,le=W().y-7,Oe=oe().length*5.4+6;return ae!==Z.e&&T(V,"x",Z.e=ae),le!==Z.t&&T(V,"y",Z.t=le),Oe!==Z.a&&T(V,"width",Z.a=Oe),Z},{e:void 0,t:void 0,a:void 0}),V})(),(()=>{var V=Oo();return P(V,oe),Q(Z=>{var ae=W().x,le=W().y+2;return ae!==Z.e&&T(V,"x",Z.e=ae),le!==Z.t&&T(V,"y",Z.t=le),Z},{e:void 0,t:void 0}),V})()]}}),null),Q(V=>{var Z=!!b(w),ae=`ksui-fg-edge ${w.accent??""} ${w.dashed?"dashed":""} ${e.animated?"flow":""}`,le=tn(re(),K());return Z!==V.e&&L.classList.toggle("ksui-fg-dim",V.e=Z),ae!==V.t&&T(ve,"class",V.t=ae),le!==V.a&&T(ve,"d",V.a=le),V},{e:void 0,t:void 0,a:void 0}),L})()})()}})}}),null),P(S,y(_e,{get each(){return o().nodes},children:w=>{const I=()=>m(w),J=()=>typeof e.onNodeSelect=="function";return(()=>{var B=$o(),re=B.firstChild,K=re.firstChild,W=K.nextSibling,oe=W.firstChild;return xe(B,"pointerleave",r()?()=>_(null):void 0),xe(B,"pointerenter",r()?()=>_(w.id):void 0),xe(B,"pointerdown",r()?()=>me=w.id:void 0,!0),xe(B,"keydown",J()?L=>sn(L,w.id):void 0,!0),xe(B,"click",J()?()=>rn(w.id):void 0,!0),T(B,"width",Re),T(B,"height",Ae),P(K,y(st,{get component(){return No(w.kind)},size:15})),P(oe,()=>w.label),P(W,y(ee,{get when(){return w.sublabel},get children(){var L=Ao();return P(L,()=>w.sublabel),L}}),null),Q(L=>{var ve=I().x,V=I().y,Z=!!J(),ae=!!g(w.id),le=t(`node-${w.id}`),Oe=J()?"button":void 0,at=J()?0:void 0,lt=w.sublabel?`${w.label} — ${w.sublabel}`:w.label,ct=`ksui-fg-card ${w.accent??"muted"}`,an=r()?{cursor:"grab"}:{"pointer-events":"none"};return ve!==L.e&&T(B,"x",L.e=ve),V!==L.t&&T(B,"y",L.t=V),Z!==L.a&&B.classList.toggle("clickable",L.a=Z),ae!==L.o&&B.classList.toggle("ksui-fg-dim",L.o=ae),le!==L.i&&T(B,"data-testid",L.i=le),Oe!==L.n&&T(B,"role",L.n=Oe),at!==L.s&&T(B,"tabindex",L.s=at),lt!==L.h&&T(B,"aria-label",L.h=lt),ct!==L.r&&Me(re,L.r=ct),L.d=tt(re,an,L.d),L},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0}),B})()}}),null),P(S,y(_e,{get each(){return o().nodes},children:w=>{const I=()=>m(w),J=()=>s().outBySource.get(w.id)??[],B=()=>s().incoming.has(w.id);return(()=>{var re=Mo();return P(re,y(ee,{get when(){return B()},get children(){var K=Lo();return Q(W=>{var oe=c(I()).x,L=c(I()).y;return oe!==W.e&&T(K,"cx",W.e=oe),L!==W.t&&T(K,"cy",W.t=L),W},{e:void 0,t:void 0}),K}}),null),P(re,y(_e,{get each(){return J()},children:(K,W)=>(()=>{var oe=Co();return Q(L=>{var ve=f(I(),W(),J().length).x,V=f(I(),W(),J().length).y;return ve!==L.e&&T(oe,"cx",L.e=ve),V!==L.t&&T(oe,"cy",L.t=V),L},{e:void 0,t:void 0}),oe})()}),null),Q(()=>re.classList.toggle("ksui-fg-dim",!!g(w.id))),re})()}}),null),Q(w=>{var I=r()?void 0:`0 0 ${o().width} ${o().height}`,J=r()?"100%":o().width,B=r()?"100%":o().height,re=e.ariaLabel??"Flow graph",K=t("svg"),W=on();return I!==w.e&&T(p,"viewBox",w.e=I),J!==w.t&&T(p,"width",w.t=J),B!==w.a&&T(p,"height",w.a=B),re!==w.o&&T(p,"aria-label",w.o=re),K!==w.i&&T(p,"data-testid",w.i=K),W!==w.n&&T(S,"transform",w.n=W),w},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),p})(),y(ee,{get when(){return r()},get children(){return[(()=>{var p=xo(),$=p.firstChild,S=$.nextSibling,j=S.nextSibling;return $.$$click=()=>ge(1.2),S.$$click=()=>ge(1/1.2),j.$$click=Y,Q(w=>{var I=t("controls"),J=t("reset");return I!==w.e&&T(p,"data-testid",w.e=I),J!==w.t&&T(j,"data-testid",w.t=J),w},{e:void 0,t:void 0}),p})(),_o()]}})]}})),Q(p=>{var $=!!r(),S=!!n(),j=!!R(),w=r()?{height:`${e.height??360}px`}:n()?{"max-height":`${e.height??360}px`}:void 0,I=t("root");return $!==p.e&&h.classList.toggle("interactive",p.e=$),S!==p.t&&h.classList.toggle("scroll",p.t=S),j!==p.a&&h.classList.toggle("grabbing",p.a=j),p.o=tt(h,w,p.o),I!==p.i&&T(h,"data-testid",p.i=I),p},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),h})()};F(["pointerdown","pointermove","pointerup","click","keydown"]);var jo=H('<div class="h-screen flex flex-col items-center justify-center fixed inset-0 z-[9999]"style="background:var(--ks-page-bg, #09090b);transition:opacity 0.5s ease"><div class=relative style=width:120px;height:120px><img alt style=position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:5><img alt style="position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:10;mix-blend-mode:screen;filter:hue-rotate(0deg) saturate(3) contrast(1.2);opacity:0"><img alt style="position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:15;mix-blend-mode:screen;filter:hue-rotate(120deg) saturate(3) contrast(1.2);opacity:0"><img alt style="position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:20;mix-blend-mode:screen;filter:hue-rotate(240deg) saturate(3) contrast(1.2);opacity:0"></div><p class="text-zinc-500 text-xs uppercase tracking-[0.3em] mt-4"style="transition:opacity 0.3s">Hilinga');const Bo=e=>{const[t,n]=se(!1);let r,o,s,l,f,c=null,u=null,a=!1,m=0;const d=[],k=3;function _(){if(r)for(let g=0;g<k;g++){const b=document.createElement("div");b.style.cssText=`position:fixed;top:0;left:0;width:100%;height:100%;background-image:url(${"/pwa-192.png"});background-size:contain;background-repeat:no-repeat;background-position:center;z-index:25;pointer-events:none;opacity:0;display:none`,r.appendChild(b),d.push(b)}}function M(){const g=d.find(C=>C.style.display==="none");if(!g)return;g.style.display="block",g.style.transition="none";const b=2+Math.random()*6,i=Math.random()*(100-b);g.style.clipPath=`inset(${i}% 0 ${100-i-b}% 0)`;const v=2+Math.random()*8,R=Math.random()>.5?1:-1;g.style.transform=`translateX(${R*v}px)`,g.style.opacity=String(.3+Math.random()*.25),setTimeout(()=>{g.style.transition="transform 0.15s, opacity 0.15s",g.style.transform="translateX(0)",g.style.opacity="0",setTimeout(()=>{g.style.display="none",g.style.clipPath="none"},150)},50+Math.random()*80)}function O(){if(a||!s||!f||!l||!o)return;a=!0;const g=.35+Math.random()*.35;s.style.opacity=String(g),l.style.opacity=String(g*.5),f.style.opacity=String(g);const b=2+Math.random()*6,i=-3+Math.random()*6;s.style.transform=`translate(${-b}px, ${i}px)`,f.style.transform=`translate(${b}px, ${-i}px)`,l.style.transform=`translate(${(Math.random()-.5)*3}px, ${(Math.random()-.5)*3}px)`,o.style.filter="contrast(1.15) saturate(1.3) brightness(1.05)",M(),Math.random()<.4&&M(),setTimeout(()=>{s&&(s.style.opacity="0"),l&&(l.style.opacity="0"),f&&(f.style.opacity="0"),o&&(o.style.filter="none"),a=!1},100+Math.random()*100)}function x(){m=0;const g=()=>{m++,o&&(o.style.transform=`translate(${(Math.random()-.5)*.3}px, ${(Math.random()-.5)*.3}px)`),(m>=8+Math.floor(Math.random()*10)||Math.random()<.03)&&(O(),m=0),c=requestAnimationFrame(g)};c=requestAnimationFrame(g)}function E(){c&&(cancelAnimationFrame(c),c=null)}return Pe(()=>{e.loaded&&(E(),u=setTimeout(()=>n(!0),300))}),Pe(()=>{r&&(_(),x()),ot(()=>{E(),u&&clearTimeout(u)})}),[(()=>{var g=jo(),b=g.firstChild,i=b.firstChild,v=i.nextSibling,R=v.nextSibling,C=R.nextSibling,N=b.nextSibling,G=r;typeof G=="function"?pe(G,g):r=g;var A=o;typeof A=="function"?pe(A,i):o=i;var D=s;typeof D=="function"?pe(D,v):s=v;var U=l;typeof U=="function"?pe(U,R):l=R;var Y=f;return typeof Y=="function"?pe(Y,C):f=C,Q(z=>{var q=t()?0:1,he=t()?"none":"auto",ge="/pwa-192.png",Ie="/pwa-192.png",me="/pwa-192.png",ie="/pwa-192.png",ze=t()?0:1;return q!==z.e&&Se(g,"opacity",z.e=q),he!==z.t&&Se(g,"pointer-events",z.t=he),ge!==z.a&&T(i,"src",z.a=ge),Ie!==z.o&&T(v,"src",z.o=Ie),me!==z.i&&T(R,"src",z.i=me),ie!==z.n&&T(C,"src",z.n=ie),ze!==z.s&&Se(N,"opacity",z.s=ze),z},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),g})(),y(ee,{get when(){return t()},get children(){return e.children}})]};var Wo=H('<div class="page-bg min-h-screen flex flex-col items-center justify-center p-4 relative overflow-hidden"><div class="fixed top-4 right-4 z-50"><button class=ks-theme-toggle><span class=ks-theme-toggle-track><span class="ks-theme-toggle-icon ks-theme-toggle-icon-moon"></span><span class="ks-theme-toggle-icon ks-theme-toggle-icon-sun"></span></span></button></div><div class="absolute inset-0 z-0 overflow-hidden pointer-events-none"><div class="absolute top-[-10%] left-[-10%] w-[40%] h-[40%] rounded-full bg-red-500/[0.03] blur-[120px]"></div><div class="absolute bottom-[-10%] right-[-10%] w-[40%] h-[40%] rounded-full bg-red-600/[0.03] blur-[120px]"></div></div><main class="relative z-10 w-full max-w-md"><div class="bg-zinc-950 border border-zinc-800/60 p-8 md:p-10 relative ks-hud-clip-top-right-bottom-left text-center"style="box-shadow:0 25px 50px -12px rgba(0, 0, 0, 0.5)"><div class="absolute top-0 right-0 w-6 h-6 border-t-2 border-r-2 border-red-500/30 pointer-events-none"></div><div class="absolute bottom-0 left-0 w-6 h-6 border-b-2 border-l-2 border-red-500/30 pointer-events-none"></div><div class="w-14 h-14 rounded-full bg-red-500/10 border border-red-500/20 flex items-center justify-center mx-auto mb-5"></div><div class="inline-flex items-center justify-center mb-2"><img alt=Hilinga width=40 height=40 class="h-10 w-10 rounded"></div><h1 class="text-lg font-semibold text-white mb-2 mt-3">Account Deactivated</h1><p class="text-zinc-500 text-sm mb-6 leading-relaxed">Your account has been deactivated by an administrator. Contact your workspace admin to restore access.</p></div><div class="mt-6 text-center"><p class="text-[9px] text-zinc-700 uppercase tracking-[0.3em] leading-relaxed">Hilinga by Kahitsan Corp.'),Fo=H(`<div class="page-bg min-h-screen flex flex-col items-center justify-center p-4 relative overflow-hidden"><div class="fixed top-4 right-4 z-50"><button class=ks-theme-toggle><span class=ks-theme-toggle-track><span class="ks-theme-toggle-icon ks-theme-toggle-icon-moon"></span><span class="ks-theme-toggle-icon ks-theme-toggle-icon-sun"></span></span></button></div><div class="absolute inset-0 z-0 overflow-hidden pointer-events-none"><div class="absolute top-[-10%] left-[-10%] w-[40%] h-[40%] rounded-full bg-amber-500/[0.03] blur-[120px]"></div><div class="absolute bottom-[-10%] right-[-10%] w-[40%] h-[40%] rounded-full bg-amber-600/[0.03] blur-[120px]"></div></div><main class="relative z-10 w-full max-w-md"><div class="bg-zinc-950 border border-zinc-800/60 p-8 md:p-10 relative ks-hud-clip-top-right-bottom-left text-center"style="box-shadow:0 25px 50px -12px rgba(0, 0, 0, 0.5)"><div class="absolute top-0 right-0 w-6 h-6 border-t-2 border-r-2 border-amber-500/30 pointer-events-none"></div><div class="absolute bottom-0 left-0 w-6 h-6 border-b-2 border-l-2 border-amber-500/30 pointer-events-none"></div><div class="w-14 h-14 rounded-full bg-amber-500/10 border border-amber-500/20 flex items-center justify-center mx-auto mb-5"></div><div class="inline-flex items-center justify-center mb-2"><img alt=Hilinga width=40 height=40 class="h-10 w-10 rounded"></div><h1 class="text-lg font-semibold text-white mb-2 mt-3">Welcome, <!>!</h1><p class="text-zinc-500 text-sm mb-6 leading-relaxed">Your account isn't part of any workspace yet. Ask an administrator to invite you, or contact support.</p><div class="text-[11px] text-zinc-600 uppercase tracking-widest mb-6"></div></div><div class="mt-6 text-center"><p class="text-[9px] text-zinc-700 uppercase tracking-[0.3em] leading-relaxed">Hilinga by Kahitsan Corp.`);function ni(){const e=Ho();return()=>e()?.devMode===!0}const Qt=Ne();function Ho(){const e=Ue(Qt);if(!e)throw new Error("useMe must be used within AuthGuard");return e.data}async function Yo(){const e=await fetch("/api/me",{credentials:"include"});return e.ok?e.json():e.status===403&&(await e.json().catch(()=>({error:""}))).error==="Account is deactivated"?{workspaces:[],workspace:null,deactivated:!0}:null}function ri(e){const[t]=He(async()=>(await qe.getSession()).data),[n,{mutate:r}]=He(()=>t(),async s=>!s||s==="ssr-pending"?null:Yo()),o=s=>{const l=n();l?.user&&r({...l,user:{...l.user,...s}})};return y(Bo,{get loaded(){return!t.loading},get children(){return y(ee,{get when(){return t()},get fallback(){return y(Lt,{href:"/login"})},get children(){return y(ee,{get when(){return!n.loading},get children(){return y(ee,{get when(){return!n()?.deactivated},get fallback(){return y(qo,{})},get children(){return y(ee,{get when(){return(n()?.workspaces?.length??0)>0||n()?.user?.role==="superuser"},get fallback(){return y(Go,{get user(){return n()?.user}})},get children(){return y(Qt.Provider,{value:{data:()=>n(),mutate:o},get children(){return y(ls,{workspaces:()=>n()?.workspaces??[],get children(){return y(us,{get children(){return e.children}})}})}})}})}})}})}})}})}function qo(){const e=$t(),{theme:t,toggleTheme:n}=Ct(),r=async()=>{await qe.signOut(),e("/login",{replace:!0})};return(()=>{var o=Wo(),s=o.firstChild,l=s.firstChild,f=l.firstChild,c=f.firstChild,u=c.nextSibling,a=s.nextSibling,m=a.nextSibling,d=m.firstChild,k=d.firstChild,_=k.nextSibling,M=_.nextSibling,O=M.nextSibling,x=O.firstChild,E=O.nextSibling;return E.nextSibling,xe(l,"click",n,!0),P(c,y(Nt,{size:12})),P(u,y(Pt,{size:12})),P(M,y(En,{size:24,class:"text-red-400"})),P(d,y(Kt,{intent:"secondary",variant:"clip1",icon:Ut,onClick:r,class:"w-full py-2.5 text-xs uppercase tracking-wider",children:"Sign out"}),null),Q(g=>{var b=`Switch to ${t()==="dark"?"light":"dark"} mode`,i=`Switch to ${t()==="dark"?"light":"dark"} mode`,v=t()==="light"?"":void 0,R="/pwa-192.png";return b!==g.e&&T(l,"aria-label",g.e=b),i!==g.t&&T(l,"title",g.t=i),v!==g.a&&T(f,"data-active",g.a=v),R!==g.o&&T(x,"src",g.o=R),g},{e:void 0,t:void 0,a:void 0,o:void 0}),o})()}function Go(e){const t=$t(),{theme:n,toggleTheme:r}=Ct(),o=async()=>{await qe.signOut(),t("/login",{replace:!0})};return(()=>{var s=Fo(),l=s.firstChild,f=l.firstChild,c=f.firstChild,u=c.firstChild,a=u.nextSibling,m=l.nextSibling,d=m.nextSibling,k=d.firstChild,_=k.firstChild,M=_.nextSibling,O=M.nextSibling,x=O.nextSibling,E=x.firstChild,g=x.nextSibling,b=g.firstChild,i=b.nextSibling;i.nextSibling;var v=g.nextSibling,R=v.nextSibling;return xe(f,"click",r,!0),P(u,y(Nt,{size:12})),P(a,y(Pt,{size:12})),P(O,y(xn,{size:24,class:"text-amber-400"})),P(g,()=>e.user?.name||"there",i),P(R,()=>e.user?.email),P(k,y(Kt,{intent:"secondary",variant:"clip1",icon:Ut,onClick:o,class:"w-full py-2.5 text-xs uppercase tracking-wider",children:"Sign out"}),null),Q(C=>{var N=`Switch to ${n()==="dark"?"light":"dark"} mode`,G=`Switch to ${n()==="dark"?"light":"dark"} mode`,A=n()==="light"?"":void 0,D="/pwa-192.png";return N!==C.e&&T(f,"aria-label",C.e=N),G!==C.t&&T(f,"title",C.t=G),A!==C.a&&T(c,"data-active",C.a=A),D!==C.o&&T(E,"src",C.o=D),C},{e:void 0,t:void 0,a:void 0,o:void 0}),s})()}function si(){const[e,{refetch:t}]=He(async()=>(await qe.getSession()).data);return{session:e,refetch:t}}F(["click"]);export{ri as A,Kt as B,ti as F,te as I,Qo as P,ei as S,Jo as T,si as a,Ct as b,Ho as c,Jt as d,qe as e,ni as f,Ko as g,ys as h,Zo as i,Ut as l,Nt as m,Pt as s,is as u,ms as x};
|
|
Binary file
|
|
Binary file
|