@kahitsan/plugin-sdk 0.3.0 → 0.4.0-staging.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +76 -0
  3. package/bin/cli.mjs +6 -4
  4. package/dist/index.js +1 -1
  5. package/package.json +29 -6
  6. package/shell/_build/.vite/manifest.json +189 -0
  7. package/shell/_build/.vite/manifest.json.br +0 -0
  8. package/shell/_build/.vite/manifest.json.gz +0 -0
  9. package/shell/_build/assets/_...slug_-BcdF4l5Z.js +1 -0
  10. package/shell/_build/assets/_...slug_-BcdF4l5Z.js.br +0 -0
  11. package/shell/_build/assets/_...slug_-BcdF4l5Z.js.gz +0 -0
  12. package/shell/_build/assets/api-keys-BNWgFkG0.js +1 -0
  13. package/shell/_build/assets/auth-DnjIzX2B.js +70 -0
  14. package/shell/_build/assets/auth-DnjIzX2B.js.br +0 -0
  15. package/shell/_build/assets/auth-DnjIzX2B.js.gz +0 -0
  16. package/shell/_build/assets/client-BmadCoeU.css +1 -0
  17. package/shell/_build/assets/client-BmadCoeU.css.br +0 -0
  18. package/shell/_build/assets/client-BmadCoeU.css.gz +0 -0
  19. package/shell/_build/assets/client-StEn6jq1.js +2 -0
  20. package/shell/_build/assets/client-StEn6jq1.js.br +0 -0
  21. package/shell/_build/assets/client-StEn6jq1.js.gz +0 -0
  22. package/shell/_build/assets/components-CWmQ2MDX.js +1 -0
  23. package/shell/_build/assets/dashboard-pbkizuaa.js +1 -0
  24. package/shell/_build/assets/index-CwObwzl5.js +1 -0
  25. package/shell/_build/assets/login-pbkizuaa.js +1 -0
  26. package/shell/_build/assets/members-49i-57sG.js +1 -0
  27. package/shell/_build/assets/plugin-ui-CBTroTyb.js +10 -0
  28. package/shell/_build/assets/plugin-ui-CBTroTyb.js.br +0 -0
  29. package/shell/_build/assets/plugin-ui-CBTroTyb.js.gz +0 -0
  30. package/shell/_build/assets/register-pbkizuaa.js +1 -0
  31. package/shell/_build/assets/routing-C6AwqsGL.js +1 -0
  32. package/shell/_build/assets/routing-C6AwqsGL.js.br +0 -0
  33. package/shell/_build/assets/routing-C6AwqsGL.js.gz +0 -0
  34. package/shell/_build/assets/settings-pbkizuaa.js +1 -0
  35. package/shell/_build/assets/users-pbkizuaa.js +1 -0
  36. package/shell/_build/assets/workspace-nav-fkYL3-AV.js +1 -0
  37. package/shell/_build/assets/workspace-nav-fkYL3-AV.js.br +0 -0
  38. package/shell/_build/assets/workspace-nav-fkYL3-AV.js.gz +0 -0
  39. package/shell/_build/assets/workspace-settings-pbkizuaa.js +1 -0
  40. package/shell/_build/assets/workspaces-pbkizuaa.js +1 -0
  41. package/shell/_headers +20 -0
  42. package/shell/_redirects +4 -0
  43. package/shell/_server/assets/app-BmadCoeU.css +1 -0
  44. package/shell/_server/assets/app-BmadCoeU.css.br +0 -0
  45. package/shell/_server/assets/app-BmadCoeU.css.gz +0 -0
  46. package/shell/apple-touch-icon.png +0 -0
  47. package/shell/dev/apple-touch-icon.png +0 -0
  48. package/shell/dev/favicon-32.png +0 -0
  49. package/shell/dev/favicon.ico +0 -0
  50. package/shell/dev/manifest.webmanifest +31 -0
  51. package/shell/dev/pwa-192.png +0 -0
  52. package/shell/dev/pwa-512-maskable.png +0 -0
  53. package/shell/dev/pwa-512.png +0 -0
  54. package/shell/favicon-32.png +0 -0
  55. package/shell/favicon.ico +0 -0
  56. package/shell/index.html +1 -0
  57. package/shell/index.html.br +7 -0
  58. package/shell/index.html.gz +0 -0
  59. package/shell/manifest.webmanifest +31 -0
  60. package/shell/pwa-192.png +0 -0
  61. package/shell/pwa-512-maskable.png +0 -0
  62. package/shell/pwa-512.png +0 -0
  63. package/shell/sw.js +103 -0
  64. package/shell/sw.js.br +0 -0
  65. package/shell/sw.js.gz +0 -0
  66. package/src/dev/serve.ts +141 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kahitsan/plugin-sdk",
3
- "version": "0.3.0",
3
+ "version": "0.4.0-staging.5",
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,7 +18,8 @@
18
18
  "files": [
19
19
  "dist",
20
20
  "bin",
21
- "src/dev"
21
+ "src/dev",
22
+ "shell"
22
23
  ],
23
24
  "bin": {
24
25
  "plugin-sdk": "./bin/cli.mjs"
@@ -29,7 +30,10 @@
29
30
  "ws": "^8.20.1"
30
31
  },
31
32
  "scripts": {
32
- "build": "node build.mjs"
33
+ "build": "node build.mjs",
34
+ "build:shell": "cd shell-src && npm install && npm run build && cd .. && rm -rf shell && cp -r shell-src/.output/public shell",
35
+ "sync-vendor": "node sync-vendor.mjs",
36
+ "vendor:check": "node sync-vendor.mjs"
33
37
  },
34
38
  "publishConfig": {
35
39
  "registry": "https://registry.npmjs.org",
@@ -37,8 +41,27 @@
37
41
  },
38
42
  "repository": {
39
43
  "type": "git",
40
- "url": "git+https://github.com/KahitSan/kserp.git",
41
- "directory": "packages/plugin-sdk"
44
+ "url": "git+https://github.com/KahitSan/plugin-sdk.git"
42
45
  },
43
- "license": "UNLICENSED"
46
+ "license": "UNLICENSED",
47
+ "homepage": "https://ksui.kahitsan.com",
48
+ "bugs": {
49
+ "url": "https://github.com/KahitSan/plugin-sdk/issues"
50
+ },
51
+ "keywords": [
52
+ "hilinga",
53
+ "kahitsan",
54
+ "erp",
55
+ "plugin",
56
+ "sdk",
57
+ "toolkit",
58
+ "createPluginServer"
59
+ ],
60
+ "devDependencies": {
61
+ "esbuild": "^0.28.1",
62
+ "javascript-obfuscator": "^4.1.1",
63
+ "rollup": "^4.62.2",
64
+ "rollup-plugin-dts": "^6.4.1",
65
+ "typescript": "^6.0.2"
66
+ }
44
67
  }
@@ -0,0 +1,189 @@
1
+ {
2
+ "_auth-DnjIzX2B.js": {
3
+ "file": "assets/auth-DnjIzX2B.js",
4
+ "name": "auth",
5
+ "imports": [
6
+ "_routing-C6AwqsGL.js",
7
+ "_components-CWmQ2MDX.js"
8
+ ]
9
+ },
10
+ "_components-CWmQ2MDX.js": {
11
+ "file": "assets/components-CWmQ2MDX.js",
12
+ "name": "components",
13
+ "imports": [
14
+ "_routing-C6AwqsGL.js"
15
+ ]
16
+ },
17
+ "_plugin-ui-CBTroTyb.js": {
18
+ "file": "assets/plugin-ui-CBTroTyb.js",
19
+ "name": "plugin-ui",
20
+ "imports": [
21
+ "_routing-C6AwqsGL.js",
22
+ "_auth-DnjIzX2B.js"
23
+ ]
24
+ },
25
+ "_routing-C6AwqsGL.js": {
26
+ "file": "assets/routing-C6AwqsGL.js",
27
+ "name": "routing"
28
+ },
29
+ "_workspace-nav-fkYL3-AV.js": {
30
+ "file": "assets/workspace-nav-fkYL3-AV.js",
31
+ "name": "workspace-nav",
32
+ "imports": [
33
+ "_auth-DnjIzX2B.js",
34
+ "_routing-C6AwqsGL.js"
35
+ ]
36
+ },
37
+ "src/routes/[...slug].tsx?pick=default&pick=$css": {
38
+ "file": "assets/_...slug_-BcdF4l5Z.js",
39
+ "name": "_...slug_",
40
+ "src": "src/routes/[...slug].tsx?pick=default&pick=$css",
41
+ "isEntry": true,
42
+ "isDynamicEntry": true,
43
+ "imports": [
44
+ "_routing-C6AwqsGL.js",
45
+ "_plugin-ui-CBTroTyb.js",
46
+ "_auth-DnjIzX2B.js",
47
+ "_components-CWmQ2MDX.js"
48
+ ]
49
+ },
50
+ "src/routes/api-keys.tsx?pick=default&pick=$css": {
51
+ "file": "assets/api-keys-BNWgFkG0.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-C6AwqsGL.js"
58
+ ]
59
+ },
60
+ "src/routes/dashboard.tsx?pick=thisWeekToken&pick=thisYearToken&pick=default&pick=$css": {
61
+ "file": "assets/dashboard-pbkizuaa.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-CWmQ2MDX.js",
68
+ "_routing-C6AwqsGL.js"
69
+ ]
70
+ },
71
+ "src/routes/index.tsx?pick=default&pick=$css": {
72
+ "file": "assets/index-CwObwzl5.js",
73
+ "name": "index",
74
+ "src": "src/routes/index.tsx?pick=default&pick=$css",
75
+ "isEntry": true,
76
+ "isDynamicEntry": true,
77
+ "imports": [
78
+ "_routing-C6AwqsGL.js",
79
+ "_auth-DnjIzX2B.js",
80
+ "_workspace-nav-fkYL3-AV.js",
81
+ "_components-CWmQ2MDX.js"
82
+ ]
83
+ },
84
+ "src/routes/login.tsx?pick=default&pick=$css": {
85
+ "file": "assets/login-pbkizuaa.js",
86
+ "name": "login",
87
+ "src": "src/routes/login.tsx?pick=default&pick=$css",
88
+ "isEntry": true,
89
+ "isDynamicEntry": true,
90
+ "imports": [
91
+ "_components-CWmQ2MDX.js",
92
+ "_routing-C6AwqsGL.js"
93
+ ]
94
+ },
95
+ "src/routes/members.tsx?pick=default&pick=$css": {
96
+ "file": "assets/members-49i-57sG.js",
97
+ "name": "members",
98
+ "src": "src/routes/members.tsx?pick=default&pick=$css",
99
+ "isEntry": true,
100
+ "isDynamicEntry": true,
101
+ "imports": [
102
+ "_routing-C6AwqsGL.js"
103
+ ]
104
+ },
105
+ "src/routes/register.tsx?pick=default&pick=$css": {
106
+ "file": "assets/register-pbkizuaa.js",
107
+ "name": "register",
108
+ "src": "src/routes/register.tsx?pick=default&pick=$css",
109
+ "isEntry": true,
110
+ "isDynamicEntry": true,
111
+ "imports": [
112
+ "_components-CWmQ2MDX.js",
113
+ "_routing-C6AwqsGL.js"
114
+ ]
115
+ },
116
+ "src/routes/settings.tsx?pick=default&pick=$css": {
117
+ "file": "assets/settings-pbkizuaa.js",
118
+ "name": "settings",
119
+ "src": "src/routes/settings.tsx?pick=default&pick=$css",
120
+ "isEntry": true,
121
+ "isDynamicEntry": true,
122
+ "imports": [
123
+ "_components-CWmQ2MDX.js",
124
+ "_routing-C6AwqsGL.js"
125
+ ]
126
+ },
127
+ "src/routes/users.tsx?pick=default&pick=$css": {
128
+ "file": "assets/users-pbkizuaa.js",
129
+ "name": "users",
130
+ "src": "src/routes/users.tsx?pick=default&pick=$css",
131
+ "isEntry": true,
132
+ "isDynamicEntry": true,
133
+ "imports": [
134
+ "_components-CWmQ2MDX.js",
135
+ "_routing-C6AwqsGL.js"
136
+ ]
137
+ },
138
+ "src/routes/workspace-settings.tsx?pick=default&pick=$css": {
139
+ "file": "assets/workspace-settings-pbkizuaa.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-CWmQ2MDX.js",
146
+ "_routing-C6AwqsGL.js"
147
+ ]
148
+ },
149
+ "src/routes/workspaces.tsx?pick=default&pick=$css": {
150
+ "file": "assets/workspaces-pbkizuaa.js",
151
+ "name": "workspaces",
152
+ "src": "src/routes/workspaces.tsx?pick=default&pick=$css",
153
+ "isEntry": true,
154
+ "isDynamicEntry": true,
155
+ "imports": [
156
+ "_components-CWmQ2MDX.js",
157
+ "_routing-C6AwqsGL.js"
158
+ ]
159
+ },
160
+ "virtual:$vinxi/handler/client": {
161
+ "file": "assets/client-StEn6jq1.js",
162
+ "name": "client",
163
+ "src": "virtual:$vinxi/handler/client",
164
+ "isEntry": true,
165
+ "imports": [
166
+ "_routing-C6AwqsGL.js",
167
+ "_plugin-ui-CBTroTyb.js",
168
+ "_auth-DnjIzX2B.js",
169
+ "_workspace-nav-fkYL3-AV.js",
170
+ "_components-CWmQ2MDX.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-BmadCoeU.css"
187
+ ]
188
+ }
189
+ }
@@ -0,0 +1 @@
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-C6AwqsGL.js";import{f as B,u as T,l as D,a as P}from"./plugin-ui-CBTroTyb.js";import{u as J,F as Q}from"./auth-DnjIzX2B.js";import"./components-CWmQ2MDX.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};
@@ -0,0 +1 @@
1
+ import{G as t,Z as n}from"./routing-C6AwqsGL.js";function r(){const e=t();return n(()=>e("/settings",{replace:!0})),null}export{r as default};
@@ -0,0 +1,70 @@
1
+ import{k as se,Z as ln,e as k,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-C6AwqsGL.js";import{N as Lt}from"./components-CWmQ2MDX.js";const Mt=Ne(),Qo=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 k(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.21.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,k(_e,{get each(){return t.iconNode},children:([s,l])=>k(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=>k(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=>k(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=>k(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=>k(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=>k(te,X(e,{iconNode:$n,name:"log-out"})),Ut=Ln,Mn="1.6.22";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,Nn=globalThis.nanostoresGlobal||={epoch:0},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){Nn.epoch++;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},Un=2,In=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])}),zn=(e,t)=>zt(e,t,Un,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}});const Dn=1e3;let jn=(e,t)=>zt(e,r=>{let o=t(r);o&&e.events[je].push(o)},In,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]=[]}},Dn)},()=>{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 Bn(e,t){return zn(e,({newValue:n,abort:r})=>{t(e.value,n)&&r()})}const Xe=Symbol.for("better-auth:focus-manager");var Wn=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 Wn),globalThis[Xe]}const Je=Symbol.for("better-auth:online-manager");var Fn=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 Fn),globalThis[Je]}const Hn={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*:/},Yn=/^\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},qn=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.(\d{1,7}))?(?:Z|([+-])(\d{2}):(\d{2}))$/;function Gn(e){return e instanceof Date&&!isNaN(e.getTime())}function Vn(e){const t=qn.exec(e);if(!t)return null;const[,n,r,o,s,l,f,c,u,a,y]=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 v=(parseInt(a,10)*60+parseInt(y,10))*(u==="+"?-1:1);d.setUTCMinutes(d.getUTCMinutes()+v)}return Gn(d)?d:null}function Xn(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(!Yn.test(l)){if(n)throw new SyntaxError("[better-json] Invalid JSON");return e}if(Object.entries(Hn).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 y=Vn(a);if(y)return y}return o?o(u,a):a})}catch(c){if(n)throw c;return e}}function Jn(e,t={strict:!0}){return Xn(e,t)}const Ze=()=>Math.floor(Date.now()/1e3),Kn=5;function Zn(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<Kn)return;c.lastSessionRequest=Ze(),t();return}t()}},y=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))},v=()=>{c.unsubscribeBroadcast=Ve().subscribe(()=>{a({event:"storage"})})},x=()=>{l&&(c.unsubscribeFocus=ht().subscribe(()=>{a({event:"visibilitychange"})}))},A=()=>{c.unsubscribeOnline=Ke().subscribe(g=>{g&&a({event:"visibilitychange"})})},O=()=>{c.unsubscribeSignal=r.listen(()=>{t()})};return{init:()=>{c.isInitialized||(c.isInitialized=!0,d(),v(),x(),A(),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:y}}var Qn={};const We=Object.create(null),Te=e=>Qn||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 er=47;function jt(e){let t=e.length;for(;t>0&&e.charCodeAt(t-1)===er;)t--;return t===e.length?e:e.slice(0,t)}function tr(e){try{return(jt(new URL(e).pathname)||"/")!=="/"}catch{throw new Ce(`Invalid base URL: ${e}. Please provide a valid base URL.`)}}function nr(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(nr(e),tr(e))return e;const n=jt(e);return!t||t==="/"?n:(t=t.startsWith("/")?t:`/${t}`,`${n}${t}`)}function rr(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 sr=["javascript:","data:","vbscript:"];function or(e){let t;try{t=new URL(e)}catch{return!0}return!sr.includes(t.protocol)}const ir={id:"redirect",name:"Redirect",hooks:{onSuccess(e){if(e.data?.url&&e.data?.redirect&&or(e.data.url)&&typeof window<"u"&&window.location&&window.location)try{window.location.href=e.data.url}catch{}}}},ar=()=>typeof window>"u";function pt(e){return typeof e=="object"&&e!==null&&"data"in e&&"error"in e?e:{data:e,error:null}}function lr(e){return!e||e.session===null&&e.user===null?null:e}function cr(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 ur(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});Bn(s,cr);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 y=s.get();s.set({...y,isPending:y.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:v,error:x}=pt(d);if(v?.needsRefresh)try{const E=await e("/get-session",{method:"POST",signal:a.signal});if(a.signal.aborted){l(a);return}({data:v,error:x}=pt(E))}catch{if(a.signal.aborted){l(a);return}}if(x){const E=s.get(),g=x?.status===401;s.set({data:g?null:E.data,error:x,isPending:!1,isRefetching:!1,refetch:o});return}const A=lr(v),O=s.get(),_=O.data!=null&&A!=null&&Ye(O.data,A)?O.data:A;s.set({data:_,error:null,isPending:!1,isRefetching:!1,refetch:o})}catch(d){if(a.signal.aborted){l(a);return}const v=s.get();s.set({data:v.data,error:d,isPending:!1,isRefetching:!1,refetch:o})}};let c=()=>{};return jn(s,()=>{let u;ar()||(u=setTimeout(()=>{f()},0));const a=Zn({fetchSession:f,shouldPollSession:()=>s.get().data!=null,sessionSignal:n,options:t});return a.init(),c=a.broadcastSessionUpdate,()=>{u&&clearTimeout(u);const y=r;y?.abort(),y&&l(y),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 dr(e){return(...t)=>t.reduce((n,r)=>nt(n,r,"",e),{})}const fr=dr();var hr=Object.defineProperty,gr=Object.defineProperties,pr=Object.getOwnPropertyDescriptors,mt=Object.getOwnPropertySymbols,mr=Object.prototype.hasOwnProperty,vr=Object.prototype.propertyIsEnumerable,vt=(e,t,n)=>t in e?hr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,de=(e,t)=>{for(var n in t||(t={}))mr.call(t,n)&&vt(e,n,t[n]);if(mt)for(var n of mt(t))vr.call(t,n)&&vt(e,n,t[n]);return e},fe=(e,t)=>gr(e,pr(t)),br=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)}},yr=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 y=await((n=a.init)==null?void 0:n.call(a,e.toString(),t));c=y.options||c,e=y.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}},kr=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 wr(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 kr(e);default:throw new Error("Invalid retry strategy")}}var xr=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},_r=/^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;function Sr(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 _r.test(r)?"json":n.has(r)||r.startsWith("text/")?"text":"blob"}function Er(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 Rr(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 Or(e){const t=new Headers(Wt(e?.headers,await xr(e)));if(!t.has("content-type")){const n=Tr(e?.body);n&&t.set("content-type",n)}return t}function Tr(e){return Bt(e)?"application/json":null}function Ar(e){const t=e.get("content-type");return t?t.split(";")[0].trim().toLowerCase():null}function $r(e,t){const{body:n}=e;return n?!Bt(n)||typeof n=="string"?n:Ar(t)==="application/x-www-form-urlencoded"?new URLSearchParams(n).toString():JSON.stringify(n):null}function Lr(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 Mr(e,t){let n;return!e?.signal&&e?.timeout&&(n=setTimeout(()=>t?.abort(),e?.timeout)),{abortTimeout:n,clearTimeout:()=>{n&&clearTimeout(n)}}}var Cr=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 Cr(n.issues);return n.value}var Ht=["get","post","put","patch","delete"],Pr=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((A,O)=>{d[O.toLowerCase()]=A});else if(typeof n.headers=="object")for(const[A,O]of Object.entries(n.headers))O!=null&&(d[A.toLowerCase()]=O)}const v=await Le(u.headers,d),x={};for(const[A,O]of Object.entries(v))x[A.toLowerCase()]=O;a=x}let y=fe(de({},n),{method:u.method,output:u.output,headers:a});return n?.disableValidation||(y=fe(de({},y),{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:y}}}return{url:t,options:n}}}),Nr=e=>{async function t(n,r){const o=fe(de(de({},e),r),{headers:Wt(e?.headers,r?.headers),plugins:[...e?.plugins||[],Pr(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},Ur=e=>e==="."||e==="..";function Ir(e,t){let n=e;for(const[r,o]of t)n=n.replace(r,o);if(Ur(n))throw new TypeError("Path parameters cannot be reserved path segments");return encodeURIComponent(n)}function zr(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 d=e.toString().split("@")[1].split("/")[0];Ht.includes(d)&&(e=e.replace(`@${d}/`,"/"))}s.endsWith("/")||(s+="/");let[l,f]=e.replace(s,"").split("?");const c=new URLSearchParams(f);for(const[d,v]of Object.entries(o||{})){if(v==null)continue;let x;if(typeof v=="string")x=v;else if(Array.isArray(v)){for(const A of v)c.append(d,A);continue}else x=JSON.stringify(v);c.set(d,x)}const u=new Map;if(r)if(Array.isArray(r)){const d=l.split("/").filter(v=>v.startsWith(":"));for(const[v,x]of d.entries()){const A=r[v];u.set(x,String(A))}}else for(const[d,v]of Object.entries(r))u.set(`:${d}`,String(v));l=l.split("/").map(d=>Ir(d,u)).join("/"),l=l.replace(/^\/+/,"");let a=c.toString();return a=a.length>0?`?${a}`.replace(/\+/g,"%20"):"",s.startsWith("http")?new URL(`${l}${a}`,s):`${s}${l}${a}`}var rt=async(e,t)=>{var n,r,o,s,l,f,c,u;const{hooks:a,url:y,options:d}=await yr(e,t),v=Rr(d),x=new AbortController,A=(n=d.signal)!=null?n:x.signal,O=zr(y,d),_=await Or(d),E=$r(d,_),g=Lr(y,d),b=fe(de({},d),{url:O,headers:_,body:E,method:g,signal:A});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}=Mr(d,x);let m=await v(b.url,b);i();const R={response:m,request:b};for(const U of a.onResponse)if(U){const Y=await U(fe(de({},R),{response:(o=t?.hookOptions)!=null&&o.cloneResponse?m.clone():m}));Y instanceof Response?m=Y:typeof Y=="object"&&Y!==null&&(m=Y.response)}if(m.ok){if(!(b.method!=="HEAD"))return{data:"",error:null};const Y=Sr(m),z={data:null,response:m,request:b};if(Y==="json"||Y==="text"){const q=await m.text(),he=(s=b.jsonParser)!=null?s:yt;z.data=await he(q)}else z.data=await m[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?m.clone():m}));return t?.throw?z.data:{data:z.data,error:null}}const C=(f=t?.jsonParser)!=null?f:yt,N=await m.text(),G=Er(N),$=G?await C(N):null,D={response:m,responseText:N,request:b,error:fe(de({},$),{status:m.status,statusText:m.statusText})};for(const U of a.onError)U&&await U(fe(de({},D),{response:(c=t?.hookOptions)!=null&&c.cloneResponse?m.clone():m}));if(t?.retry){const U=wr(t.retry),Y=(u=t.retryAttempt)!=null?u:0;if(await U.shouldAttemptRetry(Y,m)){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 br(m.status,m.statusText,G?$:N);return{data:null,error:fe(de({},$),{status:m.status,statusText:m.statusText})}},we={};const Dr=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{}}},jr=(e,t)=>{const n="credentials"in Request.prototype,r=rr(e?.baseURL,e?.basePath)??Dr(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||{},y=Nr({baseURL:r,...n?{credentials:"include"}:{},method:"GET",jsonParser(i){return i?Jn(i,{strict:!1}):null},customFetchImpl:fetch,...a,plugins:[s,...a.plugins||[],...e?.disableDefaultFetchPlugins?[]:[ir],...o]}),{$sessionSignal:d,session:v,broadcastSessionUpdate:x}=ur(y,e),A=e?.plugins||[];let O={};const _={$sessionSignal:d,session:v},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"?x("signout"):(i==="/update-user"||i==="/update-session")&&x("updateUser")}}];for(const i of A)i.getAtoms&&Object.assign(_,i.getAtoms?.(y)),i.pathMethods&&Object.assign(E,i.pathMethods),i.atomListeners&&g.push(...i.atomListeners);const b={notify:i=>{_[i].set(!_[i].get())},listen:(i,m)=>{_[i].subscribe(m)},atoms:_};for(const i of A)i.getActions&&(O=fr(i.getActions?.(y,b,e)??{},O));return{get baseURL(){return r},pluginsActions:O,pluginsAtoms:_,pluginPathMethods:E,atomListeners:g,$fetch:y,$store:b}};function Br(e){return typeof e=="object"&&e!==null&&"get"in e&&typeof e.get=="function"&&"lc"in e&&typeof e.lc=="number"}function Wr(e){return e.charAt(0).toUpperCase()+e.slice(1)}const Fr=/[\p{Ll}\d]+|\p{Lu}+(?!\p{Ll})|\p{Lu}[\p{Ll}\d]+|\p{Lo}+/gu,Hr=/['\u2019]/g;function Yr(e){return e.replace(Hr,"").match(Fr)??[]}function qr(e){return Yr(e).map(t=>t.toLowerCase()).join("-")}function Gr(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 Vr(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 y of u)if(a&&typeof a=="object"&&y in a)a=a[y];else{a=void 0;break}return typeof a=="function"||Br(a)?a:s(u)},apply:async(f,c,u)=>{const a="/"+l.map(qr).join("/"),y=u[0]||{},d=u[1]||{},{query:v,fetchOptions:x,...A}=y,O={...d,...x},_=Gr(a,n,y);return await t(a,{...O,body:_==="GET"?void 0:{...A,...O?.body||{}},query:v||O?.query,method:_,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 m=r[i.signal];if(!m)return;if(b.has(i.signal))continue;b.add(i.signal);const R=m.get();setTimeout(()=>{m.set(!R)},10),i.callback?.(a)}}})}})}return s()}function Xr(e){const{pluginPathMethods:t,pluginsActions:n,pluginsAtoms:r,$fetch:o,atomListeners:s,$store:l}=jr(e),f={};for(const[c,u]of Object.entries(r))f[`use${Wr(c)}`]=u;return Vr({...n,...f,$fetch:o,$store:l},o,t,r,s)}const Jr=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 Kr(e){return{success:!1,error:`You are not allowed to access resource: ${e}`}}function Zr(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 Qr(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 es(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 ts(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 Kr(o);continue}const f=es(l,Qr(s));if(f&&(r=!0),f&&n==="OR")return{success:!0};if(!f&&n==="AND")return Zr(o)}return r?{success:!0}:{success:!1,error:"Not authorized"}},statements:e}}function ns(e){return{newRole(t){return ts(t)},statements:e}}const rs={user:["create","list","set-role","ban","impersonate","impersonate-admins","delete","set-password","set-email","get","update"],session:["list","revoke","delete"]},Yt=ns(rs),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:[]}),ss={admin:qt,user:Gt},os=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||ss;for(const r of t)if(n[r]?.authorize(e.permissions)?.success)return!0;return!1},is=e=>{const t={admin:qt,user:Gt,...e?.roles};return{id:"admin-client",version:It,$InferServerPlugin:{},getActions:()=>({admin:{checkRolePermission:n=>os({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:Jr}},as=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"}),ls=()=>({id:"username",version:It,$InferServerPlugin:{},atomListeners:[{matcher:e=>e==="/sign-in/username",signal:"$sessionSignal"}],$ERROR_CODES:as}),qe=Xr({plugins:[is(),ls()]});function ei(e){return e}const Vt=Ne();function cs(){const e=Ue(Vt);if(!e)throw new Error("useActiveWorkspace must be used within AuthGuard");return e}const Fe="ks_active_workspace_id";function us(){try{const e=localStorage.getItem(Fe);return e?Number(e):null}catch{return null}}function ds(e){const[t,n]=se(us()),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 k(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 ti(e){const t=Jt();return()=>t.has(e)}async function fs(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 hs(e){const{activeWorkspace:t}=cs(),[n,{refetch:r}]=He(()=>t()?.ws_id??null,async d=>fs(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,y={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 v=o();return d.some(x=>v.has(x))},hasAll:(...d)=>{if(l())return!0;const v=o();return d.every(x=>v.has(x))},hasEffective:d=>l()?!0:s().has(d),refetch:()=>{r()}};return k(Xt.Provider,{value:y,get children(){return e.children}})}function ni(e){const t=Jt();return k(ee,{get when(){return!t.resource.loading||t.resource()!=null},fallback:null,get children(){return k(ee,{get when(){return e.when},get fallback(){return e.fallback??k(Lt,{get href(){return e.redirectTo??"/"}})},get children(){return e.children}})}})}var gs=H('<span style="background-color:var(--ks-ripple-color, rgba(255, 255, 255, 0.3))">');const St="ks-button-inline-style",ps=`
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 ms(){if(typeof document>"u"||document.getElementById(St))return;const e=document.createElement("style");e.id=St,e.textContent=ps,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=>{ms();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),y=ne(()=>!(n.noRipple||n.variant==="link")),d=ne(()=>{const i=[...a().effects];return n.noScanline||i.push("scanline"),i}),v=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)),x=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}}),A=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",m=u().textColor,R=a().overrideType?"":`${u().background} ${u().hover}`,C=a().baseClasses;return Et(i,m,R,C,n.class,y()&&ue["ks-btn-ripple"],!y()&&ue["ks-interactive"],c()&&"aspect-square !p-2",...v(),n.disabled&&"opacity-50 cursor-not-allowed")}),O=i=>{if(!n.disabled&&y()&&l){f=Date.now();const m=l.getBoundingClientRect(),R=i.clientX-m.left,C=i.clientY-m.top,N=Math.max(m.width,m.height)*2,G=Date.now()+Math.random();s($=>[...$,{id:G,x:R,y:C,size:N,isFading:!1}])}},_=()=>{if(!y()||n.disabled)return;const i=Date.now()-f,m=Math.max(0,400-i);setTimeout(()=>{s(R=>R.map(C=>({...C,isFading:!0}))),setTimeout(()=>s([]),400)},m)},E=()=>{n.disabled||_()},g=i=>{n.onClick&&!n.disabled&&n.onClick(i)},b=ne(()=>{const i=n.icon;if(c()&&i)return k(i,{});if(i&&n.children){const m=k(i,{});return n.iconPosition==="left"?[m,ke(()=>n.children)]:[ke(()=>n.children),m]}return i?k(i,{}):n.children});return ot(()=>s([])),k(st,X({get component(){return n.as},ref:i=>{l=i;const m=r.ref;typeof m=="function"&&m(i)},get class(){return A()},get style(){return x()},onMouseDown:O,onMouseUp:_,onMouseLeave:E,onClick:g,get disabled(){return n.disabled}},r,{get children(){return[ke(()=>b()),k(ee,{get when(){return y()},get children(){return k(_e,{get each(){return o()},children:i=>(()=>{var m=gs();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`,$=`${i.size}px`,D=`${i.size}px`;return C!==R.e&&Me(m,R.e=C),N!==R.t&&Se(m,"left",R.t=N),G!==R.a&&Se(m,"top",R.a=G),$!==R.o&&Se(m,"width",R.o=$),D!==R.i&&Se(m,"height",R.i=D),R},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),m})()})}})]}}))};var vs=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],bs=e=>k(te,X(e,{iconNode:vs,name:"x"})),ys=bs;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 ks=[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]],ws=e=>k(te,X(e,{iconNode:ks,name:"chevrons-up-down"})),xs=ws;F(["click","input"]);F(["click"]);F(["click"]);F(["input","keydown","keyup","mouseup","mousedown","click"]);F(["click","input","keydown"]);var _s=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'),Ss=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">'),Es=H("<div><button type=button><span>"),Rs=H('<span class="text-zinc-500 italic">'),Os=H('<div class="px-3 py-3 text-xs text-zinc-500 text-center">'),Ts=H('<span class="text-[10px] text-zinc-500 truncate">'),As=H('<span class="text-amber-400 shrink-0">✓'),$s=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 Ls=240,Ms=320,Cs=200;function ri(e){const[t,n]=se(!1),[r,o]=se(""),[s,l]=se(!1),[f,c]=se({});let u,a,y;const d=()=>{if(!(e.value==null||e.value===""))return e.options.find(_=>String(_.value)===String(e.value))?.label},v=ne(()=>{const _=r().trim().toLowerCase();return _?e.options.filter(E=>E.label.toLowerCase().includes(_)||(E.description?.toLowerCase().includes(_)??!1)):e.options}),x=()=>{if(!u)return;const _=u.getBoundingClientRect(),E=window.innerHeight,g=window.innerWidth,b=Math.max(Ls,_.width),i=E-_.bottom,m=_.top,R=i<Cs&&m>i,C=Math.max(160,Math.min(Ms,(R?m:i)-12)),N=Math.min(Math.max(8,_.left),g-b-8);c({position:"fixed",...R?{bottom:`${Math.max(8,E-_.top+4)}px`}:{top:`${_.bottom+4}px`},left:`${N}px`,width:`${b}px`,"max-height":`${C}px`})};Pe(()=>{if(!t())return;x(),queueMicrotask(()=>y?.focus());const _=b=>{const i=b.target;u?.contains(i)||a?.contains(i)||(n(!1),o(""))},E=b=>{b.key==="Escape"&&(n(!1),o(""))},g=()=>x();document.addEventListener("mousedown",_),document.addEventListener("keydown",E),window.addEventListener("resize",g),window.addEventListener("scroll",g,!0),ot(()=>{document.removeEventListener("mousedown",_),document.removeEventListener("keydown",E),window.removeEventListener("resize",g),window.removeEventListener("scroll",g,!0)})});const A=()=>e.loading?"Loading…":r()?e.noMatchLabel??"No matches":e.emptyLabel??"No options",O=async _=>{l(!0);try{await e.onChange(_)}finally{l(!1),n(!1),o("")}};return(()=>{var _=Es(),E=_.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 m=Rs();return P(m,()=>e.placeholder??"Select…"),m})()})()),P(E,k(xs,{size:12,class:"text-zinc-500 shrink-0"}),null),P(_,k(ee,{get when(){return t()},get children(){return k(un,{get children(){var i=Ss(),m=i.firstChild,R=m.firstChild,C=m.nextSibling,N=a;typeof N=="function"?pe(N,i):a=i,R.$$input=$=>o($.currentTarget.value);var G=y;return typeof G=="function"?pe(G,R):y=R,P(C,k(ee,{get when(){return ke(()=>!e.loading)()&&v().length>0},get fallback(){return(()=>{var $=Os();return P($,A),$})()},get children(){return k(_e,{get each(){return v()},children:$=>{const D=()=>String($.value)===String(e.value??"");return(()=>{var U=$s(),Y=U.firstChild,z=Y.firstChild;return U.$$click=()=>O($),P(z,()=>$.label),P(Y,k(ee,{get when(){return $.description},get children(){var q=Ts();return P(q,()=>$.description),q}}),null),P(U,k(ee,{get when(){return D()},get children(){return As()}}),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,k(ee,{get when(){return ke(()=>!!(e.allowClear&&e.value!=null))()&&e.value!==""},get children(){var $=_s(),D=$.firstChild,U=D.firstChild;return D.$$click=()=>O(null),P(D,k(ys,{size:12}),U),$}}),null),Q($=>{var D=f(),U=e.searchPlaceholder??"Search…";return $.e=tt(i,D,$.e),U!==$.t&&T(R,"placeholder",$.t=U),$},{e:void 0,t:void 0}),Q(()=>R.value=r()),i}})}}),null),Q(i=>{var m=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},$=e.disabled?void 0:"Click to select",D=e.triggerLabelClass??"truncate max-w-[180px]";return m!==i.e&&Me(_,i.e=m),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),$!==i.n&&T(E,"title",i.n=$),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}),_})()}F(["click","input"]);F(["click"]);var Ps=[["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"}]],Ns=e=>k(te,X(e,{iconNode:Ps,name:"app-window"})),Us=Ns,Is=[["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"}]],zs=e=>k(te,X(e,{iconNode:Is,name:"arrow-left-right"})),Ds=zs,js=[["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"}]],Bs=e=>k(te,X(e,{iconNode:js,name:"calculator"})),Ws=Bs,Fs=[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]],Hs=e=>k(te,X(e,{iconNode:Fs,name:"circle-check-big"})),Ys=Hs,qs=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],Gs=e=>k(te,X(e,{iconNode:qs,name:"circle"})),Vs=Gs,Xs=[["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"}]],Js=e=>k(te,X(e,{iconNode:Xs,name:"cloud-download"})),Ks=Js,Zs=[["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"}]],Qs=e=>k(te,X(e,{iconNode:Zs,name:"database"})),eo=Qs,to=[["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"}]],no=e=>k(te,X(e,{iconNode:to,name:"git-branch"})),ro=no,so=[["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"}]],oo=e=>k(te,X(e,{iconNode:so,name:"mouse-pointer-click"})),io=oo,ao=[["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"}]],lo=e=>k(te,X(e,{iconNode:ao,name:"radio"})),co=lo,uo=[["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"}]],fo=e=>k(te,X(e,{iconNode:uo,name:"save"})),ho=fo,go=[["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"}]],po=e=>k(te,X(e,{iconNode:go,name:"sparkles"})),mo=po;F(["click"]);F(["click"]);F(["input"]);F(["click"]);F(["click"]);F(["click","input"]);const vo={nodeW:168,nodeH:48,gapX:72,gapY:18,pad:16};function bo(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 yo(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=bo(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=ko(e,f),u=f.filter(a=>!c.has(`${a.from}\0${a.to}`));for(let a=0;a<e.length;a++){let y=!1;for(const d of u){if(o.has(d.to))continue;const v=(s.get(d.from)??0)+1;v>(s.get(d.to)??0)&&(s.set(d.to,v),y=!0)}if(!y)break}return s}function ko(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 wo(e,t,n="layered",r=vo,o="horizontal"){const{nodeW:s,nodeH:l,gapX:f,gapY:c,pad:u}=r,a=yo(e,t,n),y=o==="vertical",d=xo(e,t,a),v=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+(y?i*(s+f):b*(s+f)),y:u+(y?b*(l+c):i*(l+c))}}),x=v.reduce((g,b)=>Math.max(g,b.x),u),A=v.reduce((g,b)=>Math.max(g,b.y),u),O=x+s+u,_=A+l+u,E=new Map(v.map(g=>[g.id,g]));return{nodes:v,byId:E,width:O,height:_}}function xo(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 y=o.get(u);o.set(u,a),u=y}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(x=>x.id)),y=t.filter(x=>a.has(x.from)&&a.has(x.to)),d=_o(u,y,n);let v=0;for(const[x,A]of d)f.set(x,A+c),v=Math.max(v,A);c+=v+2}return f}function _o(e,t,n){const r=new Set(e.map(d=>d.id)),o=new Map;for(const d of e){const v=n.get(d.id)??0,x=o.get(v)??[];x.push(d.id),o.set(v,x)}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((v,x)=>f.set(v,x));const c=[...o.keys()].sort((d,v)=>d-v),u=d=>d.length?d.reduce((v,x)=>v+(f.get(x)??0),0)/d.length:null;for(let d=0;d<6;d++){const v=d%2===0,x=v?c:[...c].reverse();for(const A of x){const O=o.get(A),_=O.map(b=>{const i=v?s.get(b):l.get(b);return u(i??[])??f.get(b)??0}),E=O.map((b,i)=>i).sort((b,i)=>_[b]-_[i]);let g=-1/0;for(const b of E){const i=Math.max(_[b],g+1);f.set(O[b],i),g=i}}}const a=[...f.values()],y=a.length?Math.min(...a):0;for(const[d,v]of f)f.set(d,v-y);return f}var So=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>'),Eo=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">⤢'),Ro=H("<span class=ksui-fg-hint>drag to pan · scroll to zoom"),Oo=H("<div class=ksui-fg-wrap>"),To=H("<p class=ksui-fg-empty>"),Ao=H("<svg><rect class=ksui-fg-elabel-bg height=12 rx=3></svg>",!1,!0,!1),$o=H("<svg><text class=ksui-fg-elabel text-anchor=middle></svg>",!1,!0,!1),Lo=H("<svg><g><path marker-end=url(#ksui-fg-arrow)></svg>",!1,!0,!1),Mo=H("<span class=ksui-fg-kind>"),Co=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),Po=H('<svg><circle class="ksui-fg-handle in"r=3.5></svg>',!1,!0,!1),No=H("<svg><g></svg>",!1,!0,!1),Uo=H('<svg><circle class="ksui-fg-handle out"r=3.5></svg>',!1,!0,!1);const Io={data:eo,trigger:io,modal:Us,load:Ks,call:Ds,compute:Ws,condition:ro,commit:ho,emit:co,effect:mo,terminal:Ys},zo=e=>Io[e??""]??Vs,Zt={nodeW:190,nodeH:60,gapX:100,gapY:100,pad:28},{nodeW:Re,nodeH:Ae,pad:$e}=Zt,Do=.3,jo=3,Tt="ksui-flow-graph-style";function Bo(){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 Wo(e,t){return e.length>t?e.slice(0,t-1)+"…":e}const si=e=>{Bo();const t=h=>e.testId?`${e.testId}-${h}`:void 0,n=()=>e.direction==="vertical",r=()=>!!e.interactive,o=ne(()=>wo(e.nodes,e.edges,e.layout??"layered",Zt,e.direction)),s=ne(()=>{const h=new Set,p=new Map;for(const L of e.edges){h.add(L.to);const S=p.get(L.from)??[];S.push(L),p.set(L.from,S)}return{incoming:h,outBySource:p}}),l=ne(()=>{const h=new Map,p=L=>{const S=o().byId.get(L);return S?n()?S.x:S.y:0};for(const L of s().outBySource.values())[...L].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,L)=>{const S=(p+1)/(L+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({}),y=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?y(p):void 0},[v,x]=se(null),[A,O]=se(null),_=()=>A()??v(),E=ne(()=>{const h=_();if(!h)return null;const p=new Set([h]);for(const L of e.edges)L.from===h&&p.add(L.to),L.to===h&&p.add(L.from);return p}),g=h=>E()!==null&&!E().has(h),b=h=>E()!==null&&!(E().has(h.from)&&E().has(h.to)&&(h.from===_()||h.to===_())),[i,m]=se({x:0,y:0,k:1}),[R,C]=se(!1);let N,G=!1,$=0,D=0,U=!1;const Y=()=>{if(!N)return;const h=N.getBoundingClientRect(),p=h.width,L=h.height,S=o().nodes.map(y);if(!p||!L||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,L/re,1.4);m({x:(p-B*K)/2-j*K,y:(L-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,L=o().nodes;if(!p||L.length===0)return;const S=Math.min(...L.map(I=>I.x)),j=Math.max(...L.map(I=>I.x))+Re,w=Math.min(...L.map(I=>I.y));m({x:p/2-(S+j)/2,y:$e-w,k:1})}))});const he=h=>Math.min(jo,Math.max(Do,h)),ge=(h,p,L)=>{const S=i(),j=he(S.k*h),w=p??(N?.clientWidth??0)/2,I=L??(N?.clientHeight??0)/2;m({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,$=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-$,L=h.clientY-D;if(Math.abs(p)+Math.abs(L)>2&&(U=!0),$=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+L/j}}})}else m(S=>({...S,x:S.x+p,y:S.y+L}))},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 L=Math.min(140,Math.max(46,Math.abs(p.x-h.x)*.5));return`M ${h.x} ${h.y} C ${h.x+L} ${h.y}, ${p.x-L} ${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=Oo();return P(h,k(ee,{get when(){return o().nodes.length>0},get fallback(){return(()=>{var p=To();return P(p,()=>e.emptyLabel??"Nothing to show yet."),Q(()=>T(p,"data-testid",t("empty"))),p})()},get children(){return[(()=>{var p=So(),L=p.firstChild,S=L.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,k(_e,{get each(){return e.edges},children:w=>{const I=()=>d(w.from),J=()=>d(w.to);return k(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=()=>Wo(w.label??"",18);return(()=>{var M=Lo(),ve=M.firstChild;return P(M,k(ee,{get when(){return w.label},get children(){return[(()=>{var V=Ao();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=$o();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&&M.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}),M})()})()}})}}),null),P(S,k(_e,{get each(){return o().nodes},children:w=>{const I=()=>y(w),J=()=>typeof e.onNodeSelect=="function";return(()=>{var B=Co(),re=B.firstChild,K=re.firstChild,W=K.nextSibling,oe=W.firstChild;return xe(B,"pointerleave",r()?()=>x(null):void 0),xe(B,"pointerenter",r()?()=>x(w.id):void 0),xe(B,"pointerdown",r()?()=>me=w.id:void 0,!0),xe(B,"keydown",J()?M=>sn(M,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,k(st,{get component(){return zo(w.kind)},size:15})),P(oe,()=>w.label),P(W,k(ee,{get when(){return w.sublabel},get children(){var M=Mo();return P(M,()=>w.sublabel),M}}),null),Q(M=>{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!==M.e&&T(B,"x",M.e=ve),V!==M.t&&T(B,"y",M.t=V),Z!==M.a&&B.classList.toggle("clickable",M.a=Z),ae!==M.o&&B.classList.toggle("ksui-fg-dim",M.o=ae),le!==M.i&&T(B,"data-testid",M.i=le),Oe!==M.n&&T(B,"role",M.n=Oe),at!==M.s&&T(B,"tabindex",M.s=at),lt!==M.h&&T(B,"aria-label",M.h=lt),ct!==M.r&&Me(re,M.r=ct),M.d=tt(re,an,M.d),M},{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,k(_e,{get each(){return o().nodes},children:w=>{const I=()=>y(w),J=()=>s().outBySource.get(w.id)??[],B=()=>s().incoming.has(w.id);return(()=>{var re=No();return P(re,k(ee,{get when(){return B()},get children(){var K=Po();return Q(W=>{var oe=c(I()).x,M=c(I()).y;return oe!==W.e&&T(K,"cx",W.e=oe),M!==W.t&&T(K,"cy",W.t=M),W},{e:void 0,t:void 0}),K}}),null),P(re,k(_e,{get each(){return J()},children:(K,W)=>(()=>{var oe=Uo();return Q(M=>{var ve=f(I(),W(),J().length).x,V=f(I(),W(),J().length).y;return ve!==M.e&&T(oe,"cx",M.e=ve),V!==M.t&&T(oe,"cy",M.t=V),M},{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})(),k(ee,{get when(){return r()},get children(){return[(()=>{var p=Eo(),L=p.firstChild,S=L.nextSibling,j=S.nextSibling;return L.$$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})(),Ro()]}})]}})),Q(p=>{var L=!!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 L!==p.e&&h.classList.toggle("interactive",p.e=L),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 Fo=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 Ho=e=>{const[t,n]=se(!1);let r,o,s,l,f,c=null,u=null,a=!1,y=0;const d=[],v=3;function x(){if(r)for(let g=0;g<v;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 A(){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 m=2+Math.random()*8,R=Math.random()>.5?1:-1;g.style.transform=`translateX(${R*m}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)",A(),Math.random()<.4&&A(),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 _(){y=0;const g=()=>{y++,o&&(o.style.transform=`translate(${(Math.random()-.5)*.3}px, ${(Math.random()-.5)*.3}px)`),(y>=8+Math.floor(Math.random()*10)||Math.random()<.03)&&(O(),y=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=Fo(),b=g.firstChild,i=b.firstChild,m=i.nextSibling,R=m.nextSibling,C=R.nextSibling,N=b.nextSibling,G=r;typeof G=="function"?pe(G,g):r=g;var $=o;typeof $=="function"?pe($,i):o=i;var D=s;typeof D=="function"?pe(D,m):s=m;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(m,"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})(),k(ee,{get when(){return t()},get children(){return e.children}})]};var Yo=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.'),qo=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 oi(){const e=Go();return()=>e()?.devMode===!0}const Qt=Ne();function Go(){const e=Ue(Qt);if(!e)throw new Error("useMe must be used within AuthGuard");return e.data}async function Vo(){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 ii(e){const[t]=He(async()=>(await qe.getSession()).data),[n,{mutate:r}]=He(()=>t(),async s=>!s||s==="ssr-pending"?null:Vo()),o=s=>{const l=n();l?.user&&r({...l,user:{...l.user,...s}})};return k(Ho,{get loaded(){return!t.loading},get children(){return k(ee,{get when(){return t()},get fallback(){return k(Lt,{href:"/login"})},get children(){return k(ee,{get when(){return!n.loading},get children(){return k(ee,{get when(){return!n()?.deactivated},get fallback(){return k(Xo,{})},get children(){return k(ee,{get when(){return(n()?.workspaces?.length??0)>0||n()?.user?.role==="superuser"},get fallback(){return k(Jo,{get user(){return n()?.user}})},get children(){return k(Qt.Provider,{value:{data:()=>n(),mutate:o},get children(){return k(ds,{workspaces:()=>n()?.workspaces??[],get children(){return k(hs,{get children(){return e.children}})}})}})}})}})}})}})}})}function Xo(){const e=$t(),{theme:t,toggleTheme:n}=Ct(),r=async()=>{await qe.signOut(),e("/login",{replace:!0})};return(()=>{var o=Yo(),s=o.firstChild,l=s.firstChild,f=l.firstChild,c=f.firstChild,u=c.nextSibling,a=s.nextSibling,y=a.nextSibling,d=y.firstChild,v=d.firstChild,x=v.nextSibling,A=x.nextSibling,O=A.nextSibling,_=O.firstChild,E=O.nextSibling;return E.nextSibling,xe(l,"click",n,!0),P(c,k(Nt,{size:12})),P(u,k(Pt,{size:12})),P(A,k(En,{size:24,class:"text-red-400"})),P(d,k(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`,m=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),m!==g.a&&T(f,"data-active",g.a=m),R!==g.o&&T(_,"src",g.o=R),g},{e:void 0,t:void 0,a:void 0,o:void 0}),o})()}function Jo(e){const t=$t(),{theme:n,toggleTheme:r}=Ct(),o=async()=>{await qe.signOut(),t("/login",{replace:!0})};return(()=>{var s=qo(),l=s.firstChild,f=l.firstChild,c=f.firstChild,u=c.firstChild,a=u.nextSibling,y=l.nextSibling,d=y.nextSibling,v=d.firstChild,x=v.firstChild,A=x.nextSibling,O=A.nextSibling,_=O.nextSibling,E=_.firstChild,g=_.nextSibling,b=g.firstChild,i=b.nextSibling;i.nextSibling;var m=g.nextSibling,R=m.nextSibling;return xe(f,"click",r,!0),P(u,k(Nt,{size:12})),P(a,k(Pt,{size:12})),P(O,k(xn,{size:24,class:"text-amber-400"})),P(g,()=>e.user?.name||"there",i),P(R,()=>e.user?.email),P(v,k(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`,$=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),$!==C.a&&T(c,"data-active",C.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 ai(){const[e,{refetch:t}]=He(async()=>(await qe.getSession()).data);return{session:e,refetch:t}}F(["click"]);export{ii as A,Kt as B,si as F,te as I,ni as P,ri as S,Qo as T,ai as a,Ct as b,Go as c,Jt as d,qe as e,oi as f,ei as g,xs as h,ti as i,Ut as l,Nt as m,Pt as s,cs as u,ys as x};