studiograph 1.3.44-next.1 → 1.3.44-next.2

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 (85) hide show
  1. package/dist/server/index.js +36 -0
  2. package/dist/server/index.js.map +1 -1
  3. package/dist/server/routes/insights-api.d.ts +7 -3
  4. package/dist/server/routes/insights-api.js +46 -21
  5. package/dist/server/routes/insights-api.js.map +1 -1
  6. package/dist/server/ws-hub.d.ts +6 -1
  7. package/dist/server/ws-hub.js.map +1 -1
  8. package/dist/services/auth-service.d.ts +11 -0
  9. package/dist/services/auth-service.js +38 -0
  10. package/dist/services/auth-service.js.map +1 -1
  11. package/dist/services/insights.d.ts +18 -11
  12. package/dist/services/insights.js +121 -77
  13. package/dist/services/insights.js.map +1 -1
  14. package/dist/web/_app/immutable/assets/3.zsEg_MDN.css +1 -0
  15. package/dist/web/_app/immutable/assets/{7.CObh-s2-.css → 7.5LBMlZdT.css} +1 -1
  16. package/dist/web/_app/immutable/chunks/{Dv65pOU4.js → 0rsp5-Up.js} +1 -1
  17. package/dist/web/_app/immutable/chunks/{DTDfEpZd.js → 0wBGAod7.js} +1 -1
  18. package/dist/web/_app/immutable/chunks/{Be5VhuaI.js → APIqItee.js} +1 -1
  19. package/dist/web/_app/immutable/chunks/{JDb8RpWX.js → B3NI-DOv.js} +1 -1
  20. package/dist/web/_app/immutable/chunks/BAAbylyg.js +1 -0
  21. package/dist/web/_app/immutable/chunks/{SJusBvJH.js → BHue2Ock.js} +1 -1
  22. package/dist/web/_app/immutable/chunks/{DRJ9YW_E.js → BPXdu_FX.js} +1 -1
  23. package/dist/web/_app/immutable/chunks/BU2bHQbQ.js +4 -0
  24. package/dist/web/_app/immutable/chunks/{DYVSnKKh.js → BUcIsKRk.js} +1 -1
  25. package/dist/web/_app/immutable/chunks/{BJimep0Q.js → BgBJ0u3M.js} +1 -1
  26. package/dist/web/_app/immutable/chunks/{P7PfXw_H.js → Bnl5ADsW.js} +1 -1
  27. package/dist/web/_app/immutable/chunks/Bs4ovbtO.js +2 -0
  28. package/dist/web/_app/immutable/chunks/{7lzM-85A.js → Bt5_mycY.js} +1 -1
  29. package/dist/web/_app/immutable/chunks/{D0zbd2ZV.js → By_Wtb5J.js} +1 -1
  30. package/dist/web/_app/immutable/chunks/{DEyrdHQB.js → CFtRXHDP.js} +1 -1
  31. package/dist/web/_app/immutable/chunks/{BA_Wro7X.js → CRnhIQbv.js} +1 -1
  32. package/dist/web/_app/immutable/chunks/CSzKZPD4.js +1 -0
  33. package/dist/web/_app/immutable/chunks/{RGHlrGBn.js → D-yNNNdf.js} +1 -1
  34. package/dist/web/_app/immutable/chunks/DC9z5DEo.js +1 -0
  35. package/dist/web/_app/immutable/chunks/{BtJ5VKKi.js → DCVmM0L5.js} +1 -1
  36. package/dist/web/_app/immutable/chunks/{CdvQjHNy.js → DHtLlmE0.js} +1 -1
  37. package/dist/web/_app/immutable/chunks/{9QAsBMIK.js → DQ5NTKSo.js} +1 -1
  38. package/dist/web/_app/immutable/chunks/{B-eIKuyV.js → DQJwHeKh.js} +1 -1
  39. package/dist/web/_app/immutable/chunks/{CNVuHNwC.js → DQYNi3YK.js} +1 -1
  40. package/dist/web/_app/immutable/chunks/{CfuRx7rA.js → DSh-OF2y.js} +1 -1
  41. package/dist/web/_app/immutable/chunks/DSkxw4Ss.js +1 -0
  42. package/dist/web/_app/immutable/chunks/{Cwkp_c4R.js → DT3KtxWU.js} +1 -1
  43. package/dist/web/_app/immutable/chunks/DVx_0hnZ.js +1 -0
  44. package/dist/web/_app/immutable/chunks/{mkNdSDMf.js → DiWKchgv.js} +1 -1
  45. package/dist/web/_app/immutable/chunks/{Dg_GUhrt.js → Diui_MO0.js} +1 -1
  46. package/dist/web/_app/immutable/chunks/DodWDTE5.js +1 -0
  47. package/dist/web/_app/immutable/chunks/{fKdE_Jx_.js → KHKAD2Ng.js} +1 -1
  48. package/dist/web/_app/immutable/chunks/{BH82yShn.js → Sk0ODu4Y.js} +1 -1
  49. package/dist/web/_app/immutable/chunks/{Bypyvp-Q.js → azUmHUDT.js} +1 -1
  50. package/dist/web/_app/immutable/chunks/{CajNsaOw.js → b0XUoOIH.js} +2 -2
  51. package/dist/web/_app/immutable/chunks/{DP6MOIr2.js → lsAKkphT.js} +1 -1
  52. package/dist/web/_app/immutable/chunks/{BLi1Oegj.js → vZ2iBqLE.js} +1 -1
  53. package/dist/web/_app/immutable/entry/app.DA5OyPOi.js +2 -0
  54. package/dist/web/_app/immutable/entry/start.DTjSVtws.js +1 -0
  55. package/dist/web/_app/immutable/nodes/0.BIvpQ3Qk.js +2 -0
  56. package/dist/web/_app/immutable/nodes/1.y3j9wcQE.js +1 -0
  57. package/dist/web/_app/immutable/nodes/{10.BqjRpXN6.js → 10.D03BZcr1.js} +1 -1
  58. package/dist/web/_app/immutable/nodes/2.Du0xZVQg.js +84 -0
  59. package/dist/web/_app/immutable/nodes/3.weQEi2lI.js +1 -0
  60. package/dist/web/_app/immutable/nodes/4.DJyhWznw.js +11 -0
  61. package/dist/web/_app/immutable/nodes/{5.pB3H4l7g.js → 5.CipwuwB3.js} +1 -1
  62. package/dist/web/_app/immutable/nodes/6.Daxwm3Lw.js +2 -0
  63. package/dist/web/_app/immutable/nodes/7.TxeJDMtw.js +2 -0
  64. package/dist/web/_app/immutable/nodes/{8.B5sO5Rkn.js → 8.DWNdmB4l.js} +1 -1
  65. package/dist/web/_app/immutable/nodes/{9.DOysjWYm.js → 9.BuTZk7Le.js} +1 -1
  66. package/dist/web/_app/version.json +1 -1
  67. package/dist/web/index.html +11 -12
  68. package/package.json +1 -1
  69. package/dist/web/_app/immutable/assets/3.CHSDCrUY.css +0 -1
  70. package/dist/web/_app/immutable/chunks/BZd_7gpI.js +0 -1
  71. package/dist/web/_app/immutable/chunks/CAEA_aBe.js +0 -1
  72. package/dist/web/_app/immutable/chunks/CHDa87Lu.js +0 -1
  73. package/dist/web/_app/immutable/chunks/D18-Aspv.js +0 -1
  74. package/dist/web/_app/immutable/chunks/DQ_O96iG.js +0 -1
  75. package/dist/web/_app/immutable/chunks/DUsnWwWN.js +0 -1
  76. package/dist/web/_app/immutable/chunks/DgMUDNqD.js +0 -4
  77. package/dist/web/_app/immutable/entry/app.FJ-QaQhu.js +0 -2
  78. package/dist/web/_app/immutable/entry/start.Cae6DI7N.js +0 -1
  79. package/dist/web/_app/immutable/nodes/0.tyq0tjYR.js +0 -2
  80. package/dist/web/_app/immutable/nodes/1.D-QPCIcu.js +0 -1
  81. package/dist/web/_app/immutable/nodes/2.CogYiW3g.js +0 -84
  82. package/dist/web/_app/immutable/nodes/3.CQ8SfijF.js +0 -1
  83. package/dist/web/_app/immutable/nodes/4.BS-4PSr6.js +0 -11
  84. package/dist/web/_app/immutable/nodes/6.CKD5i0Ve.js +0 -2
  85. package/dist/web/_app/immutable/nodes/7.au7lCUbq.js +0 -2
@@ -1,44 +1,45 @@
1
1
  /**
2
2
  * Insights Service
3
3
  *
4
- * Generates AI-driven insights by analyzing entities across collections.
5
- * Insights surface cross-entity connections, trends, and patterns.
4
+ * Generates AI-driven insights by analyzing entities across collections,
5
+ * personalized by the user's home brief. Insights surface actionable
6
+ * patterns: risks, relationship health, opportunities, and graph quality.
7
+ *
8
+ * Adapted from feat/insights-home reference implementation.
6
9
  */
7
- import { join } from 'path';
8
- import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
9
10
  import Anthropic from '@anthropic-ai/sdk';
10
- import { resolveApiKey, resolveProvider, loadUserConfig } from '../core/user-config.js';
11
- const INSIGHTS_FILE = 'insights.json';
12
- /**
13
- * Read cached insights from disk.
14
- */
15
- export function readInsights(workspacePath) {
16
- const filePath = join(workspacePath, '.studiograph', INSIGHTS_FILE);
17
- if (!existsSync(filePath))
18
- return null;
19
- try {
20
- return JSON.parse(readFileSync(filePath, 'utf-8'));
21
- }
22
- catch {
23
- return null;
24
- }
25
- }
26
- /**
27
- * Save insights to disk.
28
- */
29
- function saveInsights(workspacePath, data) {
30
- const dir = join(workspacePath, '.studiograph');
31
- if (!existsSync(dir))
32
- mkdirSync(dir, { recursive: true });
33
- writeFileSync(join(dir, INSIGHTS_FILE), JSON.stringify(data, null, 2), 'utf-8');
34
- }
11
+ import { resolveApiKey, resolveProvider, resolveModelId, loadUserConfig } from '../core/user-config.js';
35
12
  /**
36
13
  * Gather entity summaries for insight generation.
37
- * Returns a compact text representation of recent entities across accessible repos.
14
+ * Includes temporal signals (due dates, staleness) for actionable analysis.
38
15
  */
39
16
  function gatherEntityContext(wm, repoNames, maxEntities = 200) {
40
17
  const lines = [];
41
18
  let total = 0;
19
+ const now = new Date();
20
+ // Collection summaries first — gives the AI an accurate overview before entity details
21
+ lines.push('=== COLLECTION SUMMARIES ===');
22
+ for (const repoName of repoNames) {
23
+ try {
24
+ const graph = wm.getGraph(repoName);
25
+ const allEntities = graph.search({});
26
+ const typeCounts = {};
27
+ for (const e of allEntities) {
28
+ const t = e.data?.entity_type ?? e.entityType ?? 'unknown';
29
+ typeCounts[t] = (typeCounts[t] ?? 0) + 1;
30
+ }
31
+ const repoConfig = wm.getRepoConfig(repoName);
32
+ const syncSources = repoConfig?.sync ?? [];
33
+ const summary = Object.entries(typeCounts).map(([t, c]) => `${c} ${t}s`).join(', ');
34
+ lines.push(`[${repoName}] ${allEntities.length} entities: ${summary}`);
35
+ if (syncSources.length > 0) {
36
+ lines.push(` sync sources: ${syncSources.map((s) => s.source ?? 'unknown').join(', ')}`);
37
+ }
38
+ }
39
+ catch { /* skip */ }
40
+ }
41
+ lines.push('');
42
+ lines.push('=== ENTITY DETAILS ===');
42
43
  for (const repoName of repoNames) {
43
44
  try {
44
45
  const graph = wm.getGraph(repoName);
@@ -48,31 +49,47 @@ function gatherEntityContext(wm, repoNames, maxEntities = 200) {
48
49
  break;
49
50
  const fm = entity.data;
50
51
  const type = fm.entity_type ?? entity.entityType ?? 'unknown';
51
- const title = fm.title ?? fm.name ?? entity.id;
52
+ const title = fm.name ?? entity.id;
52
53
  const wikilinks = entity.document?.wikilinks ?? [];
53
54
  const content = entity.document?.content ?? '';
54
- // Truncate content to keep context manageable
55
- const snippet = content.length > 500 ? content.slice(0, 500) + '...' : content;
55
+ const snippet = content.length > 300 ? content.slice(0, 300) + '...' : content;
56
56
  lines.push(`[${repoName}/${type}/${entity.id}] ${title}`);
57
- if (wikilinks.length > 0) {
58
- lines.push(` links: ${wikilinks.join(', ')}`);
59
- }
60
- // Include select frontmatter fields
57
+ // Temporal and status metadata
61
58
  const meta = [];
62
- if (fm.created_at)
63
- meta.push(`created: ${fm.created_at}`);
64
- if (fm.updated_at)
65
- meta.push(`updated: ${fm.updated_at}`);
66
59
  if (fm.status)
67
60
  meta.push(`status: ${fm.status}`);
68
- if (fm.attendees)
69
- meta.push(`attendees: ${JSON.stringify(fm.attendees)}`);
61
+ if (fm.priority)
62
+ meta.push(`priority: ${fm.priority}`);
63
+ if (fm.stage)
64
+ meta.push(`stage: ${fm.stage}`);
65
+ if (fm.assignee)
66
+ meta.push(`assignee: ${fm.assignee}`);
67
+ if (fm.due_date) {
68
+ const dueDate = new Date(fm.due_date);
69
+ const daysUntil = Math.round((dueDate.getTime() - now.getTime()) / 86400000);
70
+ meta.push(`due: ${fm.due_date} (${daysUntil < 0 ? Math.abs(daysUntil) + 'd overdue' : daysUntil + 'd away'})`);
71
+ }
72
+ if (fm.expected_close)
73
+ meta.push(`expected_close: ${fm.expected_close}`);
70
74
  if (fm.client)
71
75
  meta.push(`client: ${fm.client}`);
72
76
  if (fm.project)
73
77
  meta.push(`project: ${fm.project}`);
78
+ if (fm.deal_value)
79
+ meta.push(`deal_value: ${fm.deal_value}`);
80
+ if (fm.attendees)
81
+ meta.push(`attendees: ${JSON.stringify(fm.attendees)}`);
82
+ if (fm.updated_at) {
83
+ const updated = new Date(fm.updated_at);
84
+ const daysSince = Math.round((now.getTime() - updated.getTime()) / 86400000);
85
+ if (daysSince > 14)
86
+ meta.push(`stale: ${daysSince}d since update`);
87
+ }
74
88
  if (meta.length > 0)
75
89
  lines.push(` ${meta.join(' | ')}`);
90
+ if (wikilinks.length > 0) {
91
+ lines.push(` links: ${wikilinks.join(', ')}`);
92
+ }
76
93
  if (snippet)
77
94
  lines.push(` content: ${snippet}`);
78
95
  lines.push('');
@@ -85,60 +102,86 @@ function gatherEntityContext(wm, repoNames, maxEntities = 200) {
85
102
  }
86
103
  return { context: lines.join('\n'), entityCount: total };
87
104
  }
88
- const SYSTEM_PROMPT = `You are an insight engine for a knowledge management workspace. Your job is to analyze entities (meetings, people, projects, decisions, documents, etc.) and surface non-obvious connections, patterns, and trends.
105
+ function buildSystemPrompt(userBrief, tools) {
106
+ const briefSection = userBrief
107
+ ? `\n\nThe user has described what they care about most:\n"${userBrief}"\n\nPrioritize insights that align with their focus. But also surface critical issues they might not have asked about (like overdue tasks or stalled projects).`
108
+ : '';
109
+ return `You are an insight engine for a knowledge management workspace used by creative services teams. Analyze entities (meetings, people, projects, decisions, tasks, deals, documents, etc.) and surface actionable insights.
110
+
111
+ ACCURACY IS CRITICAL. The data provided includes:
112
+ - Collection summaries with exact entity type counts — trust these numbers, do not guess or speculate about what exists
113
+ - Sync source configurations — if a collection lists a sync source, data IS flowing from it
114
+ - Entity details with metadata — only make claims you can back up with the data shown
89
115
 
90
- Generate exactly 3-5 insights. Each insight should:
91
- - Reveal a CONNECTION between entities the user might not have noticed
92
- - Be specific name the entities involved
93
- - Be actionable or thought-provoking
94
- - Feel like an "a-ha" moment
116
+ Generate 3-7 insights. Each insight should be:
117
+ - ACCURATE only state facts supported by the data provided. Never say "no X entities exist" unless the collection summaries confirm zero
118
+ - ACTIONABLEthe action must be something the AI agent can actually execute (see capabilities below)
119
+ - SPECIFIC name the entities involved
120
+ - IMPORTANT focus on things that need attention now
121
+ ${briefSection}
95
122
 
96
123
  Insight patterns to look for:
97
- - cluster: Multiple entities converge on the same topic/person/theme
98
- - trend: Activity increasing/decreasing over time
99
- - gap: Missing connections (e.g., project with meetings but no decisions)
100
- - relationship: A person/org appears across multiple contexts
101
- - recency: New entities that connect to existing ones
124
+ - risk: Overdue tasks, stalled projects, deadlines approaching without progress, deals aging without next steps
125
+ - relationship: Client engagement gaps, key people appearing across contexts, uncontacted stakeholders
126
+ - opportunity: Patterns across deals/projects, uncaptured practice areas, reusable knowledge
127
+ - quality: Isolated entities with no connections, missing data, entities that should be linked but aren't
128
+ - trend: Activity patterns, increasing/decreasing engagement, velocity changes
129
+
130
+ IMPORTANT — The "action" field will be sent to an AI assistant as a prompt. Think of yourself as a concierge offering to do things for the user. The action should be something you'd naturally say: "Shall I create a meeting entity for a check-in with Cooper Hewitt?" or "I can update the status of these overdue tasks — want me to?"
131
+
132
+ The assistant has access to ONLY these tools — no others:
133
+ ${tools.length > 0 ? tools.map(t => `- ${t.name}: ${t.description}`).join('\n') : '(core workspace tools only — create/update/search/delete entities, create views, lint, find orphans)'}
134
+
135
+ CRITICAL: Only suggest actions that use the tools listed above. If a connector (like Pipedrive, Linear, Slack, etc.) is NOT in the tool list, do NOT reference it in any action. Even if entities in the workspace mention an external system, only suggest actions the assistant can actually perform with its available tools. For example, if there is no pipedrive_connector tool, never suggest "Search Pipedrive" — instead suggest workspace-level actions like "Create a deal entity" or "Search for existing deal entities."
102
136
 
103
137
  Respond with valid JSON matching this schema:
104
138
  {
105
139
  "insights": [
106
140
  {
107
- "headline": "One-sentence insight (the a-ha)",
108
- "detail": "2-3 sentence explanation with specifics",
109
- "entities": [{"id": "entity-id", "type": "entity-type", "repo": "collection-name"}],
110
- "pattern": "cluster|trend|gap|relationship|recency"
141
+ "headline": "Short, punchy headline (under 12 words)",
142
+ "detail": "1-2 sentence explanation be concise, not exhaustive",
143
+ "urgency": "high|medium|low",
144
+ "actions": ["Imperative action 1", "Imperative action 2"],
145
+ "entities": [{"id": "entity-id", "type": "entity-type", "repo": "collection-name", "name": "display name"}],
146
+ "pattern": "risk|relationship|opportunity|quality|trend"
111
147
  }
112
148
  ]
113
- }`;
149
+ }
150
+
151
+ Each insight should have exactly 1 action — the single most impactful next step. The action is a short imperative sentence sent directly to the AI assistant as a prompt. Write as an instruction, not a question:
152
+ - Good: "Run a lint check on all Cooper Hewitt entities"
153
+ - Good: "Create a deal entity for the Existence next phase"
154
+ - Bad: "Shall I run a lint check?" (not imperative)
155
+ - Bad: "You should consider updating..." (not an instruction)`;
156
+ }
114
157
  /**
115
- * Generate insights from workspace entities.
158
+ * Generate insights from workspace entities, personalized by user brief.
116
159
  */
117
- export async function generateInsights(wm, workspacePath, repoNames, workspaceConfig) {
160
+ export async function generateInsights(wm, repoNames, userBrief, authService, userId, workspaceConfig, tools) {
118
161
  const { context, entityCount } = gatherEntityContext(wm, repoNames);
119
162
  if (entityCount === 0) {
120
- const empty = { insights: [], generated_at: new Date().toISOString(), entity_count: 0 };
121
- saveInsights(workspacePath, empty);
163
+ const empty = { insights: [], generatedAt: new Date().toISOString(), entityCount: 0 };
164
+ authService.setCachedInsights(userId, []);
122
165
  return empty;
123
166
  }
124
167
  const userConfig = loadUserConfig();
125
168
  const apiKey = resolveApiKey(userConfig, workspaceConfig);
126
169
  const provider = resolveProvider(userConfig, workspaceConfig);
127
170
  if (!apiKey || provider !== 'anthropic') {
128
- // For now, only support Anthropic
129
- const empty = { insights: [], generated_at: new Date().toISOString(), entity_count: entityCount };
130
- saveInsights(workspacePath, empty);
171
+ const empty = { insights: [], generatedAt: new Date().toISOString(), entityCount };
172
+ authService.setCachedInsights(userId, []);
131
173
  return empty;
132
174
  }
175
+ const modelId = resolveModelId(userConfig, workspaceConfig);
133
176
  const client = new Anthropic({ apiKey });
134
177
  const response = await client.messages.create({
135
- model: 'claude-sonnet-4-5-20250929',
136
- max_tokens: 2000,
137
- system: SYSTEM_PROMPT,
178
+ model: modelId,
179
+ max_tokens: 3000,
180
+ system: buildSystemPrompt(userBrief, tools ?? []),
138
181
  messages: [
139
182
  {
140
183
  role: 'user',
141
- content: `Here are the entities in my workspace:\n\n${context}\n\nGenerate insights about the connections and patterns you see.`,
184
+ content: `Here are the entities in my workspace (today is ${new Date().toISOString().split('T')[0]}):\n\n${context}\n\nGenerate actionable insights.`,
142
185
  },
143
186
  ],
144
187
  });
@@ -148,27 +191,28 @@ export async function generateInsights(wm, workspacePath, repoNames, workspaceCo
148
191
  .join('');
149
192
  let insights = [];
150
193
  try {
151
- // Extract JSON from response (may be wrapped in markdown code block)
152
194
  const jsonMatch = text.match(/\{[\s\S]*\}/);
153
195
  if (jsonMatch) {
154
196
  const parsed = JSON.parse(jsonMatch[0]);
155
197
  insights = (parsed.insights ?? []).map((i) => ({
156
198
  headline: i.headline ?? '',
157
199
  detail: i.detail ?? '',
200
+ urgency: (['high', 'medium', 'low'].includes(i.urgency) ? i.urgency : 'medium'),
201
+ actions: Array.isArray(i.actions) ? i.actions.filter((a) => typeof a === 'string') : (i.action ? [i.action] : []),
158
202
  entities: Array.isArray(i.entities) ? i.entities : [],
159
- pattern: i.pattern ?? 'cluster',
203
+ pattern: (['risk', 'relationship', 'opportunity', 'quality', 'trend'].includes(i.pattern) ? i.pattern : 'trend'),
160
204
  }));
161
205
  }
162
206
  }
163
207
  catch {
164
208
  console.error('[insights] Failed to parse LLM response:', text.slice(0, 200));
165
209
  }
166
- const data = {
210
+ // Cache per-user
211
+ authService.setCachedInsights(userId, insights);
212
+ return {
167
213
  insights,
168
- generated_at: new Date().toISOString(),
169
- entity_count: entityCount,
214
+ generatedAt: new Date().toISOString(),
215
+ entityCount,
170
216
  };
171
- saveInsights(workspacePath, data);
172
- return data;
173
217
  }
174
218
  //# sourceMappingURL=insights.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"insights.js","sourceRoot":"","sources":["../../src/services/insights.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"insights.js","sourceRoot":"","sources":["../../src/services/insights.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ .home.svelte-h7bcrl{flex:1;display:flex;flex-direction:column;min-height:0;overflow-y:auto}.home-center.svelte-h7bcrl{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;margin:0 auto;color:var(--color-text-tertiary);padding:24px;box-sizing:border-box}.home-center.svelte-h7bcrl h2:where(.svelte-h7bcrl){font-size:17px;font-weight:500;color:var(--color-text-secondary)}.onboarding.svelte-h7bcrl{gap:20px;max-width:560px;width:100%;text-align:center}.onboarding.svelte-h7bcrl h2:where(.svelte-h7bcrl){font-size:22px;font-weight:600;color:var(--color-text-primary)}.onboarding-subtitle.svelte-h7bcrl{font-size:14px;color:var(--color-text-secondary);line-height:1.5}.suggestions.svelte-h7bcrl{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.suggestion-chip.svelte-h7bcrl{padding:8px 16px;border:1px solid var(--color-border);border-radius:9999px;background:transparent;color:var(--color-text-secondary);font-family:inherit;font-size:13px;cursor:pointer;transition:border-color .15s,color .15s}.suggestion-chip.svelte-h7bcrl:hover{border-color:var(--color-accent);color:var(--color-text-primary)}.custom-brief.svelte-h7bcrl{display:flex;gap:8px;width:100%;max-width:480px}.brief-input.svelte-h7bcrl{flex:1;height:36px;padding:0 12px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg);color:var(--color-text-primary);font-family:inherit;font-size:14px;outline:none}.brief-input.svelte-h7bcrl:focus{border-color:var(--color-accent)}.brief-input.svelte-h7bcrl::placeholder{color:var(--color-text-tertiary)}.generating.svelte-h7bcrl{display:flex;align-items:center;gap:10px;color:var(--color-text-secondary);font-size:14px}.animate-spin{animation:svelte-h7bcrl-spin 1s linear infinite}@keyframes svelte-h7bcrl-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.home-insights.svelte-h7bcrl{padding:24px;max-width:1080px;margin:0 auto;width:100%}.insights-header.svelte-h7bcrl{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.insights-title.svelte-h7bcrl{display:flex;align-items:baseline;gap:10px}.insights-title.svelte-h7bcrl h2:where(.svelte-h7bcrl){font-size:17px;font-weight:600;color:var(--color-text-primary)}.insights-meta.svelte-h7bcrl{font-size:12px;color:var(--color-text-tertiary)}.insights-actions.svelte-h7bcrl{display:flex;align-items:center;gap:8px}.edit-focus-link.svelte-h7bcrl{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-family:inherit;color:var(--color-text-tertiary);background:none;border:none;cursor:pointer;padding:4px 8px;border-radius:4px}.edit-focus-link.svelte-h7bcrl:hover{color:var(--color-text-secondary);background:var(--color-bg-hover)}.insights-grid.svelte-h7bcrl{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,320px));gap:12px}.insight-card.svelte-h7bcrl{padding:16px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg)}.insight-top.svelte-h7bcrl{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.pattern-tag.svelte-h7bcrl{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-tertiary)}.insight-headline.svelte-h7bcrl{font-size:14px;font-weight:600;color:var(--color-text-primary);margin-bottom:6px;line-height:1.3}.insight-detail.svelte-h7bcrl{font-size:13px;color:var(--color-text-secondary);line-height:1.5;margin-bottom:8px}.action-btn.svelte-h7bcrl{display:flex;align-items:flex-start;padding:6px 8px;margin-bottom:8px;font-family:inherit;font-size:13px;font-weight:500;color:var(--color-accent);background:transparent;border:1px solid var(--color-border);border-radius:6px;cursor:pointer;text-align:left;line-height:1.3;transition:border-color .15s,background .15s}.action-btn.svelte-h7bcrl:hover{border-color:var(--color-accent)}.insight-entities.svelte-h7bcrl{display:flex;flex-wrap:wrap;gap:4px}.entity-chip.svelte-h7bcrl{padding:2px 8px;font-size:12px;font-family:inherit;color:var(--color-text-secondary);background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:4px;cursor:pointer}.entity-chip.svelte-h7bcrl:hover{border-color:var(--color-accent);color:var(--color-text-primary)}.no-insights.svelte-h7bcrl{text-align:center;padding:40px;color:var(--color-text-tertiary);font-size:14px}
@@ -1 +1 @@
1
- .json-editor-wrap.svelte-1grruw9{width:100%;max-height:50vh;overflow-y:auto;border-radius:6px}.json-editor-wrap.svelte-1grruw9 .cm-editor{outline:none}.json-editor-wrap.svelte-1grruw9 .cm-scroller{overflow:visible!important}.settings-page.svelte-zymv0t{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.settings-header.svelte-zymv0t{height:40px;flex-shrink:0;border-bottom:1px solid var(--color-border)}.content-toolbar.svelte-zymv0t{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.content-count.svelte-zymv0t{font-size:13px;color:var(--color-text-tertiary)}.settings-content.svelte-zymv0t{flex:1;overflow-y:auto;padding:20px 40px 32px}.tab-header.svelte-zymv0t{margin-bottom:20px}.tab-title.svelte-zymv0t{font-size:17px;font-weight:600;color:var(--color-text-primary);margin:0 0 4px}.tab-description.svelte-zymv0t{font-size:14px;color:var(--color-text-tertiary);margin:0}.accordion-item{border-bottom:1px solid var(--color-border)}.accordion-item:last-child{border-bottom:none}.accordion-trigger{display:flex;align-items:center;gap:0;width:100%;padding:10px 4px;border:none;background:transparent;cursor:pointer;font-family:inherit;text-align:left}.accordion-trigger:hover{background:var(--color-bg-hover);border-radius:6px}.accordion-chevron.svelte-zymv0t{display:flex;align-items:center;justify-content:center;width:16px;height:22px;margin-right:14px;color:var(--color-text-tertiary);flex-shrink:0;transition:transform .15s ease}[data-state=open]>.accordion-trigger .accordion-chevron,.accordion-trigger[data-state=open] .accordion-chevron{transform:rotate(90deg)}.accordion-label.svelte-zymv0t{font-size:14px;font-weight:500;color:var(--color-text-primary);flex:1}.accordion-count{margin-left:auto}.accordion-content{overflow:hidden;padding:0 0 8px 34px}.accordion-content[data-state=closed]{display:none}.section-header.svelte-zymv0t{display:flex;align-items:center;height:32px;gap:0;margin-top:8px}.section-label.svelte-zymv0t{font-size:12px;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;flex:1}.member-row.svelte-zymv0t{display:grid;grid-template-columns:22px 1fr 2fr 80px;align-items:center;height:44px;gap:0 14px;font-size:14px}.member-name-cell.svelte-zymv0t{display:flex;align-items:baseline;gap:0;min-width:0}.member-name.svelte-zymv0t{font-size:15px;font-weight:500;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pill-key{color:var(--color-text-tertiary)}.pill-val{color:var(--color-text-secondary)}.member-pills.svelte-zymv0t{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.member-email.svelte-zymv0t{font-size:13px;color:var(--color-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-list.svelte-zymv0t>.member-row:where(.svelte-zymv0t),.accordion-content .member-row.svelte-zymv0t{border-bottom:1px solid var(--color-border)}.member-list.svelte-zymv0t>.member-row:where(.svelte-zymv0t):last-child,.accordion-content .member-row.svelte-zymv0t:last-child{border-bottom:none}.member-actions.svelte-zymv0t{display:flex;justify-content:flex-end;gap:4px}.icon-danger:hover{color:var(--color-error, #e55)!important}.confirm-row.svelte-zymv0t{display:flex;grid-column:1 / -1;background:#e5555514;border-radius:6px;padding:0 10px 0 12px}.confirm-text.svelte-zymv0t{flex:1;font-size:14px;color:var(--color-text-primary)}.dialog-fields.svelte-zymv0t{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.dialog-field.svelte-zymv0t{display:flex;flex-direction:column;gap:4px}.checkbox-list.svelte-zymv0t{display:flex;flex-direction:column;gap:2px}.checkbox-item.svelte-zymv0t{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:14px;color:var(--color-text-primary);cursor:pointer}.checkbox-item.svelte-zymv0t:hover{background:var(--color-bg-hover)}.modal-member-list.svelte-zymv0t{display:flex;flex-direction:column;gap:2px;margin:8px 0;max-height:300px;overflow-y:auto}.modal-member-row.svelte-zymv0t{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:6px;cursor:pointer}.modal-member-row.svelte-zymv0t:hover{background:var(--color-bg-hover)}.modal-member-info.svelte-zymv0t{display:flex;flex-direction:column;min-width:0}.connector-list.svelte-zymv0t{display:flex;flex-direction:column}.connector-row.svelte-zymv0t{display:flex;align-items:center;gap:14px;height:44px;border-bottom:1px solid var(--color-border);font-size:14px}.connector-row.svelte-zymv0t:last-child{border-bottom:none}.connector-section-label.svelte-zymv0t{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-tertiary);margin-top:20px;margin-bottom:4px}.connector-description{font-size:14px;color:var(--color-text-secondary);margin:0 0 12px}.connector-row-actions.svelte-zymv0t{display:flex;align-items:center;gap:2px;margin-left:auto}.connector-action{margin-left:auto!important;font-size:13px!important;gap:4px!important}.connector-action.connected{color:var(--color-success, #4ade80)!important}.setup-instructions.svelte-zymv0t{display:flex;flex-direction:column;gap:16px}.setup-instructions.svelte-zymv0t p:where(.svelte-zymv0t){margin:0;font-size:14px;line-height:22px;color:var(--color-text-secondary)}.setup-instructions.svelte-zymv0t a:where(.svelte-zymv0t){color:var(--color-accent)}.setup-steps.svelte-zymv0t{display:flex;flex-direction:column;gap:16px}.setup-step.svelte-zymv0t{display:flex;gap:12px}.step-number.svelte-zymv0t{width:24px;height:24px;border-radius:50%;background:var(--color-bg-surface);color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;flex-shrink:0}.env-var.svelte-zymv0t{display:block;margin-top:8px;padding:8px 12px;background:var(--color-bg-surface);border-radius:6px;font-family:var(--font-mono);font-size:13px;color:var(--color-accent)}.connector-row-actions.svelte-zymv0t .connector-action{margin-left:0!important}.connector-hint{font-size:13px;color:var(--color-text-tertiary);margin:0}.connector-form{display:flex;flex-direction:column;gap:16px;margin-top:16px}.connector-field{display:flex;flex-direction:column;gap:6px}.connector-field-hint{font-size:13px;color:var(--color-text-tertiary);margin-top:2px}.connector-docs-link{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:var(--color-text-tertiary);text-decoration:none}.connector-docs-link:hover{color:var(--color-text-secondary)}.status-msg.svelte-zymv0t{font-size:14px;color:var(--color-error, #e55);padding:0;background:none}.loading-text.svelte-zymv0t{font-size:14px;color:var(--color-text-tertiary);padding:20px 0;text-align:center}.spinning{animation:svelte-zymv0t-spin 1s linear infinite}@keyframes svelte-zymv0t-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.about-section.svelte-zymv0t{display:flex;flex-direction:column;gap:16px}.ws-field.svelte-zymv0t{display:flex;flex-direction:column;gap:6px}.about-actions.svelte-zymv0t{display:flex;justify-content:flex-end;gap:8px}.accent-palette.svelte-zymv0t{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.accent-palette.saving.svelte-zymv0t{opacity:.5;pointer-events:none}.accent-swatch.svelte-zymv0t{width:24px;height:24px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:border-color .15s,transform .15s}.accent-swatch.svelte-zymv0t:hover{transform:scale(1.15)}.accent-swatch.active.svelte-zymv0t{border-color:var(--color-text-primary)}.mcp-section.svelte-zymv0t{margin-top:32px;padding-top:24px;border-top:1px solid var(--color-border)}.mcp-header.svelte-zymv0t{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.mcp-actions.svelte-zymv0t{display:flex;gap:4px}.mcp-hint.svelte-zymv0t{font-size:14px;color:var(--color-text-tertiary);margin:0 0 8px}.mcp-config-textarea{font-family:var(--font-mono, ui-monospace, monospace)!important;font-size:13px!important}
1
+ .json-editor-wrap.svelte-1grruw9{width:100%;max-height:50vh;overflow-y:auto;border-radius:6px}.json-editor-wrap.svelte-1grruw9 .cm-editor{outline:none}.json-editor-wrap.svelte-1grruw9 .cm-scroller{overflow:visible!important}.settings-page.svelte-zymv0t{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.settings-header.svelte-zymv0t{height:40px;flex-shrink:0;border-bottom:1px solid var(--color-border)}.content-toolbar.svelte-zymv0t{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.content-count.svelte-zymv0t{font-size:13px;color:var(--color-text-tertiary)}.settings-content.svelte-zymv0t{flex:1;overflow-y:auto;padding:20px 40px 32px}.tab-header.svelte-zymv0t{margin-bottom:20px}.tab-title.svelte-zymv0t{font-size:17px;font-weight:600;color:var(--color-text-primary);margin:0 0 4px}.tab-description.svelte-zymv0t{font-size:14px;color:var(--color-text-tertiary);margin:0}.accordion-item{border-bottom:1px solid var(--color-border)}.accordion-item:last-child{border-bottom:none}.accordion-trigger{display:flex;align-items:center;gap:0;width:100%;padding:10px 4px;border:none;background:transparent;cursor:pointer;font-family:inherit;text-align:left}.accordion-trigger:hover{background:var(--color-bg-hover);border-radius:6px}.accordion-chevron.svelte-zymv0t{display:flex;align-items:center;justify-content:center;width:16px;height:22px;margin-right:14px;color:var(--color-text-tertiary);flex-shrink:0;transition:transform .15s ease}[data-state=open]>.accordion-trigger .accordion-chevron,.accordion-trigger[data-state=open] .accordion-chevron{transform:rotate(90deg)}.accordion-label.svelte-zymv0t{font-size:14px;font-weight:500;color:var(--color-text-primary);flex:1}.accordion-count{margin-left:auto}.accordion-content{overflow:hidden;padding:0 0 8px 34px}.accordion-content[data-state=closed]{display:none}.section-header.svelte-zymv0t{display:flex;align-items:center;height:32px;gap:0;margin-top:8px}.section-label.svelte-zymv0t{font-size:12px;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;flex:1}.member-row.svelte-zymv0t{display:grid;grid-template-columns:22px 1fr 2fr 80px;align-items:center;height:44px;gap:0 14px;font-size:14px}.member-name-cell.svelte-zymv0t{display:flex;align-items:baseline;gap:0;min-width:0}.member-name.svelte-zymv0t{font-size:15px;font-weight:500;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pill-key{color:var(--color-text-tertiary)}.pill-val{color:var(--color-text-secondary)}.member-pills.svelte-zymv0t{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.member-email.svelte-zymv0t{font-size:13px;color:var(--color-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-list.svelte-zymv0t>.member-row:where(.svelte-zymv0t),.accordion-content .member-row.svelte-zymv0t{border-bottom:1px solid var(--color-border)}.member-list.svelte-zymv0t>.member-row:where(.svelte-zymv0t):last-child,.accordion-content .member-row.svelte-zymv0t:last-child{border-bottom:none}.member-actions.svelte-zymv0t{display:flex;justify-content:flex-end;gap:4px}.icon-danger:hover{color:var(--color-error, #e55)!important}.confirm-row.svelte-zymv0t{display:flex;grid-column:1 / -1;background:#e5555514;border-radius:6px;padding:0 10px 0 12px}.confirm-text.svelte-zymv0t{flex:1;font-size:14px;color:var(--color-text-primary)}.dialog-fields.svelte-zymv0t{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.dialog-field.svelte-zymv0t{display:flex;flex-direction:column;gap:4px}.checkbox-list.svelte-zymv0t{display:flex;flex-direction:column;gap:2px}.checkbox-item.svelte-zymv0t{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:14px;color:var(--color-text-primary);cursor:pointer}.checkbox-item.svelte-zymv0t:hover{background:var(--color-bg-hover)}.modal-member-list.svelte-zymv0t{display:flex;flex-direction:column;gap:2px;margin:8px 0;max-height:300px;overflow-y:auto}.modal-member-row.svelte-zymv0t{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:6px;cursor:pointer}.modal-member-row.svelte-zymv0t:hover{background:var(--color-bg-hover)}.modal-member-info.svelte-zymv0t{display:flex;flex-direction:column;min-width:0}.connector-list.svelte-zymv0t{display:flex;flex-direction:column}.connector-row.svelte-zymv0t{display:flex;align-items:center;gap:14px;height:44px;border-bottom:1px solid var(--color-border);font-size:14px}.connector-row.svelte-zymv0t:last-child{border-bottom:none}.connector-section-label.svelte-zymv0t{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-tertiary);margin-top:20px;margin-bottom:4px}.connector-description{font-size:14px;color:var(--color-text-secondary);margin:0 0 12px}.connector-row-actions.svelte-zymv0t{display:flex;align-items:center;gap:2px;margin-left:auto}.connector-action{margin-left:auto!important;font-size:13px!important;gap:4px!important}.connector-action.connected{color:var(--color-success, #4ade80)!important}.setup-instructions.svelte-zymv0t{display:flex;flex-direction:column;gap:16px}.setup-instructions.svelte-zymv0t p:where(.svelte-zymv0t){margin:0;font-size:14px;line-height:22px;color:var(--color-text-secondary)}.setup-instructions.svelte-zymv0t a:where(.svelte-zymv0t){color:var(--color-accent)}.setup-steps.svelte-zymv0t{display:flex;flex-direction:column;gap:16px}.setup-step.svelte-zymv0t{display:flex;gap:12px}.step-number.svelte-zymv0t{width:24px;height:24px;border-radius:50%;background:var(--color-bg-surface);color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;flex-shrink:0}.env-var.svelte-zymv0t{display:block;margin-top:8px;padding:8px 12px;background:var(--color-bg-surface);border-radius:6px;font-family:var(--font-mono);font-size:13px;color:var(--color-accent)}.connector-row-actions.svelte-zymv0t .connector-action{margin-left:0!important}.connector-hint{font-size:13px;color:var(--color-text-tertiary);margin:0}.connector-form{display:flex;flex-direction:column;gap:16px;margin-top:16px}.connector-field{display:flex;flex-direction:column;gap:6px}.connector-field-hint{font-size:13px;color:var(--color-text-tertiary);margin-top:2px}.connector-docs-link{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:var(--color-text-tertiary);text-decoration:none}.connector-docs-link:hover{color:var(--color-text-secondary)}.status-msg.svelte-zymv0t{font-size:14px;color:var(--color-error, #e55);padding:0;background:none}.loading-text.svelte-zymv0t{font-size:14px;color:var(--color-text-tertiary);padding:20px 0;text-align:center}.spinning{animation:svelte-zymv0t-spin 1s linear infinite}@keyframes svelte-zymv0t-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.about-section.svelte-zymv0t{display:flex;flex-direction:column;gap:16px}.ws-field.svelte-zymv0t{display:flex;flex-direction:column;gap:6px}.field-help.svelte-zymv0t{font-size:13px;color:var(--color-text-tertiary);line-height:1.4}.about-actions.svelte-zymv0t{display:flex;justify-content:flex-end;gap:8px}.accent-palette.svelte-zymv0t{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.accent-palette.saving.svelte-zymv0t{opacity:.5;pointer-events:none}.accent-swatch.svelte-zymv0t{width:24px;height:24px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:border-color .15s,transform .15s}.accent-swatch.svelte-zymv0t:hover{transform:scale(1.15)}.accent-swatch.active.svelte-zymv0t{border-color:var(--color-text-primary)}.mcp-section.svelte-zymv0t{margin-top:32px;padding-top:24px;border-top:1px solid var(--color-border)}.mcp-header.svelte-zymv0t{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.mcp-actions.svelte-zymv0t{display:flex;gap:4px}.mcp-hint.svelte-zymv0t{font-size:14px;color:var(--color-text-tertiary);margin:0 0 8px}.mcp-config-textarea{font-family:var(--font-mono, ui-monospace, monospace)!important;font-size:13px!important}
@@ -1 +1 @@
1
- import{c as K,a as u,p as oe,b as q,s as ue,f as Ae,t as ve}from"./CajNsaOw.js";import{p as $,a0 as w,ae as X,b as ee,g as l,c as k,r as T,ac as E,e as Re,f as De,s as be,l as Oe,d as ye,a as ke,n as ce,m as Ce,t as fe,a1 as Pe}from"./CfuRx7rA.js";import{s as I,a as N}from"./BA_Wro7X.js";import{i as Y}from"./Cwkp_c4R.js";import{p as r,r as ae,s as pe,l as Se}from"./RGHlrGBn.js";import{n as D,M as Te,b as h,F as Ke,c as se,a as Le,m as Q,d as Ue,e as Ee,P as Ie,f as xe,i as He,g as Ne,S as je,h as ge,j as ze,k as Be,l as Ve,o as Ze,D as We,p as Ye}from"./CNVuHNwC.js";import{r as Me}from"./D18-Aspv.js";import{i as qe}from"./BLi1Oegj.js";import{c as re}from"./BtJ5VKKi.js";import{A as Ge,a as Je,b as Qe,c as Xe,d as $e,e as et,f as tt,g as rt}from"./SJusBvJH.js";import{a as Fe}from"./9QAsBMIK.js";function nt(v,e){$(e,!0);let c=r(e,"open",15,!1),y=r(e,"onOpenChange",3,D),m=r(e,"onOpenChangeComplete",3,D);Te.create({open:h(()=>c(),f=>{c(f),y()?.(f)}),onOpenChangeComplete:h(()=>m())}),Ke(v,{children:(f,F)=>{var P=K(),g=w(P);I(g,()=>e.children??X),u(f,P)},$$slots:{default:!0}}),ee()}var ot=q("<div><!></div>");function at(v,e){const c=oe();$(e,!0);let y=r(e,"ref",15,null),m=r(e,"id",19,()=>se(c)),f=r(e,"disabled",3,!1),F=r(e,"onSelect",3,D),P=r(e,"closeOnSelect",3,!0),g=ae(e,["$$slots","$$events","$$legacy","child","children","ref","id","disabled","onSelect","closeOnSelect"]);const C=Le.create({id:h(()=>m()),disabled:h(()=>f()),onSelect:h(()=>F()),ref:h(()=>y(),n=>y(n)),closeOnSelect:h(()=>P())}),p=E(()=>Q(g,C.props));var A=K(),i=w(A);{var t=n=>{var d=K(),o=w(d);I(o,()=>e.child,()=>({props:l(p)})),u(n,d)},a=n=>{var d=ot();N(d,()=>({...l(p)}));var o=k(d);I(o,()=>e.children??X),T(d),u(n,d)};Y(i,n=>{e.child?n(t):n(a,!1)})}u(v,A),ee()}var st=q("<div><!></div>");function lt(v,e){const c=oe();$(e,!0);let y=r(e,"ref",15,null),m=r(e,"id",19,()=>se(c)),f=ae(e,["$$slots","$$events","$$legacy","ref","id","child","children"]);const F=Ue.create({id:h(()=>m()),ref:h(()=>y(),i=>y(i))}),P=E(()=>Q(f,F.props));var g=K(),C=w(g);{var p=i=>{var t=K(),a=w(t);I(a,()=>e.child,()=>({props:l(P)})),u(i,t)},A=i=>{var t=st();N(t,()=>({...l(P)}));var a=k(t);I(a,()=>e.children??X),T(t),u(i,t)};Y(C,i=>{e.child?i(p):i(A,!1)})}u(v,g),ee()}var it=q("<div><div><!></div></div>"),dt=q("<div><div><!></div></div>");function ut(v,e){const c=oe();$(e,!0);let y=r(e,"id",19,()=>se(c)),m=r(e,"ref",15,null),f=r(e,"loop",3,!0),F=r(e,"onInteractOutside",3,D),P=r(e,"forceMount",3,!1),g=r(e,"onEscapeKeydown",3,D),C=r(e,"interactOutsideBehavior",3,"defer-otherwise-close"),p=r(e,"escapeKeydownBehavior",3,"defer-otherwise-close"),A=r(e,"onOpenAutoFocus",3,D),i=r(e,"onCloseAutoFocus",3,D),t=r(e,"onFocusOutside",3,D),a=r(e,"side",3,"right"),n=r(e,"trapFocus",3,!1),d=ae(e,["$$slots","$$events","$$legacy","id","ref","children","child","loop","onInteractOutside","forceMount","onEscapeKeydown","interactOutsideBehavior","escapeKeydownBehavior","onOpenAutoFocus","onCloseAutoFocus","onFocusOutside","side","trapFocus","style"]);const o=Ee.create({id:h(()=>y()),loop:h(()=>f()),ref:h(()=>m(),s=>m(s)),isSub:!0,onCloseAutoFocus:h(()=>J)});function M(s){const S=s.currentTarget.contains(s.target),_=je[o.parentMenu.root.opts.dir.current].includes(s.key);S&&_&&(o.parentMenu.onClose(),o.parentMenu.triggerNode?.focus(),s.preventDefault())}const j=E(()=>o.parentMenu.root.getBitsAttr("sub-content")),b=E(()=>Q(d,o.props,{side:a(),onkeydown:M,[l(j)]:""}));function G(s){A()(s),!s.defaultPrevented&&(s.preventDefault(),o.parentMenu.root.isUsingKeyboard&&o.parentMenu.contentNode&&Ne.dispatch(o.parentMenu.contentNode))}function J(s){i()(s),!s.defaultPrevented&&s.preventDefault()}function z(s){F()(s),!s.defaultPrevented&&o.parentMenu.onClose()}function te(s){g()(s),!s.defaultPrevented&&o.parentMenu.onClose()}function B(s){t()(s),!s.defaultPrevented&&He(s.target)&&s.target.id!==o.parentMenu.triggerNode?.id&&o.parentMenu.onClose()}var R=K(),V=w(R);{var L=s=>{Ie(s,pe(()=>l(b),{get ref(){return o.opts.ref},get interactOutsideBehavior(){return C()},get escapeKeydownBehavior(){return p()},onOpenAutoFocus:G,get enabled(){return o.parentMenu.opts.open.current},onInteractOutside:z,onEscapeKeydown:te,onFocusOutside:B,preventScroll:!1,get loop(){return f()},get trapFocus(){return n()},get shouldRender(){return o.shouldRender},popper:(_,O)=>{let Z=()=>O?.().props,le=()=>O?.().wrapperProps;const ie=E(()=>Q(Z(),l(b),{style:ge("menu")},{style:e.style}));var de=K(),_e=w(de);{var he=H=>{var x=K(),W=w(x);{let ne=E(()=>({props:l(ie),wrapperProps:le(),...o.snippetProps}));I(W,()=>e.child,()=>l(ne))}u(H,x)},me=H=>{var x=it();N(x,()=>({...le()}));var W=k(x);N(W,()=>({...l(ie)}));var ne=k(W);I(ne,()=>e.children??X),T(W),T(x),u(H,x)};Y(_e,H=>{e.child?H(he):H(me,!1)})}u(_,de)},$$slots:{popper:!0}}))},U=s=>{xe(s,pe(()=>l(b),{get ref(){return o.opts.ref},get interactOutsideBehavior(){return C()},get escapeKeydownBehavior(){return p()},onCloseAutoFocus:J,onOpenAutoFocus:G,get open(){return o.parentMenu.opts.open.current},onInteractOutside:z,onEscapeKeydown:te,onFocusOutside:B,preventScroll:!1,get loop(){return f()},get trapFocus(){return n()},get shouldRender(){return o.shouldRender},popper:(_,O)=>{let Z=()=>O?.().props,le=()=>O?.().wrapperProps;const ie=E(()=>Q(Z(),l(b),{style:ge("menu")},{style:e.style}));var de=K(),_e=w(de);{var he=H=>{var x=K(),W=w(x);{let ne=E(()=>({props:l(ie),wrapperProps:le(),...o.snippetProps}));I(W,()=>e.child,()=>l(ne))}u(H,x)},me=H=>{var x=dt();N(x,()=>({...le()}));var W=k(x);N(W,()=>({...l(ie)}));var ne=k(W);I(ne,()=>e.children??X),T(W),T(x),u(H,x)};Y(_e,H=>{e.child?H(he):H(me,!1)})}u(_,de)},$$slots:{popper:!0}}))};Y(V,s=>{P()?s(L):P()||s(U,1)})}u(v,R),ee()}var ct=q("<div><!></div>");function ft(v,e){const c=oe();$(e,!0);let y=r(e,"id",19,()=>se(c)),m=r(e,"disabled",3,!1),f=r(e,"ref",15,null),F=r(e,"onSelect",3,D),P=r(e,"openDelay",3,100),g=ae(e,["$$slots","$$events","$$legacy","id","disabled","ref","children","child","onSelect","openDelay"]);const C=ze.create({disabled:h(()=>m()),onSelect:h(()=>F()),id:h(()=>y()),ref:h(()=>f(),A=>f(A)),openDelay:h(()=>P())}),p=E(()=>Q(g,C.props));Be(v,{get id(){return y()},get ref(){return C.opts.ref},children:(A,i)=>{var t=K(),a=w(t);{var n=o=>{var M=K(),j=w(M);I(j,()=>e.child,()=>({props:l(p)})),u(o,M)},d=o=>{var M=ct();N(M,()=>({...l(p)}));var j=k(M);I(j,()=>e.children??X),T(M),u(o,M)};Y(a,o=>{e.child?o(n):o(d,!1)})}u(A,t)},$$slots:{default:!0}}),ee()}function vt(v,e){$(e,!0);let c=r(e,"open",15,!1),y=r(e,"dir",3,"ltr"),m=r(e,"onOpenChange",3,D),f=r(e,"onOpenChangeComplete",3,D),F=r(e,"_internal_variant",3,"dropdown-menu");const P=Ve.create({variant:h(()=>F()),dir:h(()=>y()),onClose:()=>{c(!1),m()(!1)}});Ze.create({open:h(()=>c(),g=>{c(g),m()(g)}),onOpenChangeComplete:h(()=>f())},P),Ke(v,{children:(g,C)=>{var p=K(),A=w(p);I(A,()=>e.children??X),u(g,p)},$$slots:{default:!0}}),ee()}var pt=q("<div><div><!></div></div>"),gt=q("<div><div><!></div></div>");function _t(v,e){const c=oe();$(e,!0);let y=r(e,"id",19,()=>se(c)),m=r(e,"ref",15,null),f=r(e,"loop",3,!0),F=r(e,"onInteractOutside",3,D),P=r(e,"onEscapeKeydown",3,D),g=r(e,"onCloseAutoFocus",3,D),C=r(e,"forceMount",3,!1),p=r(e,"trapFocus",3,!1),A=ae(e,["$$slots","$$events","$$legacy","id","child","children","ref","loop","onInteractOutside","onEscapeKeydown","onCloseAutoFocus","forceMount","trapFocus","style"]);const i=Ee.create({id:h(()=>y()),loop:h(()=>f()),ref:h(()=>m(),b=>m(b)),onCloseAutoFocus:h(()=>g())}),t=E(()=>Q(A,i.props));function a(b){if(i.handleInteractOutside(b),!b.defaultPrevented&&(F()(b),!b.defaultPrevented)){if(b.target&&b.target instanceof Element){const G=`[${i.parentMenu.root.getBitsAttr("sub-content")}]`;if(b.target.closest(G))return}i.parentMenu.onClose()}}function n(b){P()(b),!b.defaultPrevented&&i.parentMenu.onClose()}var d=K(),o=w(d);{var M=b=>{Ie(b,pe(()=>l(t),()=>i.popperProps,{get ref(){return i.opts.ref},get enabled(){return i.parentMenu.opts.open.current},onInteractOutside:a,onEscapeKeydown:n,get trapFocus(){return p()},get loop(){return f()},forceMount:!0,get id(){return y()},get shouldRender(){return i.shouldRender},popper:(J,z)=>{let te=()=>z?.().props,B=()=>z?.().wrapperProps;const R=E(()=>Q(te(),{style:ge("dropdown-menu")},{style:e.style}));var V=K(),L=w(V);{var U=S=>{var _=K(),O=w(_);{let Z=E(()=>({props:l(R),wrapperProps:B(),...i.snippetProps}));I(O,()=>e.child,()=>l(Z))}u(S,_)},s=S=>{var _=pt();N(_,()=>({...B()}));var O=k(_);N(O,()=>({...l(R)}));var Z=k(O);I(Z,()=>e.children??X),T(O),T(_),u(S,_)};Y(L,S=>{e.child?S(U):S(s,!1)})}u(J,V)},$$slots:{popper:!0}}))},j=b=>{xe(b,pe(()=>l(t),()=>i.popperProps,{get ref(){return i.opts.ref},get open(){return i.parentMenu.opts.open.current},onInteractOutside:a,onEscapeKeydown:n,get trapFocus(){return p()},get loop(){return f()},forceMount:!1,get id(){return y()},get shouldRender(){return i.shouldRender},popper:(J,z)=>{let te=()=>z?.().props,B=()=>z?.().wrapperProps;const R=E(()=>Q(te(),{style:ge("dropdown-menu")},{style:e.style}));var V=K(),L=w(V);{var U=S=>{var _=K(),O=w(_);{let Z=E(()=>({props:l(R),wrapperProps:B(),...i.snippetProps}));I(O,()=>e.child,()=>l(Z))}u(S,_)},s=S=>{var _=gt();N(_,()=>({...B()}));var O=k(_);N(O,()=>({...l(R)}));var Z=k(O);I(Z,()=>e.children??X),T(O),T(_),u(S,_)};Y(L,S=>{e.child?S(U):S(s,!1)})}u(J,V)},$$slots:{popper:!0}}))};Y(o,b=>{C()?b(M):C()||b(j,1)})}u(v,d),ee()}var ht=q("<button><!></button>");function mt(v,e){const c=oe();$(e,!0);let y=r(e,"id",19,()=>se(c)),m=r(e,"ref",15,null),f=r(e,"disabled",3,!1),F=r(e,"type",3,"button"),P=ae(e,["$$slots","$$events","$$legacy","id","ref","child","children","disabled","type"]);const g=We.create({id:h(()=>y()),disabled:h(()=>f()??!1),ref:h(()=>m(),p=>m(p))}),C=E(()=>Q(P,g.props,{type:F()}));Be(v,{get id(){return y()},get ref(){return g.opts.ref},children:(p,A)=>{var i=K(),t=w(i);{var a=d=>{var o=K(),M=w(o);I(M,()=>e.child,()=>({props:l(C)})),u(d,o)},n=d=>{var o=ht();N(o,()=>({...l(C)}));var M=k(o);I(M,()=>e.children??X),T(o),u(d,o)};Y(t,d=>{e.child?d(a):d(n,!1)})}u(p,i)},$$slots:{default:!0}}),ee()}const kt=vt,Tt=mt,Lt=Ye,Ut=_t,Ht=at,Nt=lt,jt=nt,zt=ft,Vt=ut;function yt(){let v=Re(De({})),e=null,c=null;function y(t,a,n){c&&(clearInterval(c),c=null),e=`${t}/${a}/${n}`,f("enter",t,a,n),c=setInterval(()=>{e&&f("heartbeat",t,a,n)},3e4)}function m(){if(c&&(clearInterval(c),c=null),e){const[t,a,n]=e.split("/");t&&a&&n&&f("leave",t,a,n),e=null}}function f(t,a,n,d){Me.send({type:"presence",action:t,repo:a,entityType:n,entityId:d})}function F(t){const a=`${t.repo}/${t.entityType}/${t.entityId}`,n=l(v)[a]??[];if(t.action==="leave")l(v)[a]=n.filter(d=>d.id!==t.user.id);else{const d=n.findIndex(o=>o.id===t.user.id);d>=0?(n[d]=t.user,l(v)[a]=[...n]):l(v)[a]=[...n,t.user]}}function P(){if(be(v,{},!0),!e)return;const[t,a,n]=e.split("/");t&&a&&n&&f("enter",t,a,n)}function g(t,a,n,d){const o=`${t}/${a}/${n}`,M=l(v)[o]??[];return d?M.filter(j=>j.id!==d):M}function C(t,a){const n=new Map;for(const[d,o]of Object.entries(l(v)))if(d.startsWith(t))for(const M of o)(!a||M.id!==a)&&n.set(M.id,M);return[...n.values()]}function p(t,a){return C(`${t}/`,a)}function A(t){const a=new Map;for(const n of Object.values(l(v)))for(const d of n)(!t||d.id!==t)&&a.set(d.id,d);return[...a.values()]}const i=E(()=>{const t=new Map;for(const a of Object.values(l(v)))for(const n of a)t.set(n.id,n);return[...t.values()]});return{enter:y,leave:m,handlePresenceEvent:F,resetAndResend:P,getPresence:g,getPresenceByPrefix:C,getRepoPresence:p,getAllUsers:A,get allUsers(){return l(i)}}}const we=yt();Me.setPresenceHandler(v=>we.handlePresenceEvent(v));Me.addConnectHandler(()=>we.resetAndResend());typeof window<"u"&&window.addEventListener("beforeunload",()=>we.leave());var Pt=Ae("<title> </title>"),bt=Ae('<svg><!><path d="M25,12H20v2h5a1.0008,1.0008,0,0,1,1,1v2H22a3.0033,3.0033,0,0,0-3,3v1a3.0033,3.0033,0,0,0,3,3h6V15A3.0033,3.0033,0,0,0,25,12ZM22,22a1.0008,1.0008,0,0,1-1-1V20a1.0008,1.0008,0,0,1,1-1h4v3Z"></path><path d="M16,24h2L12,7H10L4,24H6l1.6936-5h6.6135ZM8.3711,17l2.4966-7.3711.2668.0005L13.63,17Z"></path></svg>');function Zt(v,e){const c=Se(e,["children","$$slots","$$events","$$legacy"]),y=Se(c,["size","title"]);$(e,!1);const m=Ce(),f=Ce();let F=r(e,"size",8,16),P=r(e,"title",8,void 0);Oe(()=>(ye(c),ye(P())),()=>{be(m,c["aria-label"]||c["aria-labelledby"]||P())}),Oe(()=>(l(m),ye(c)),()=>{be(f,{"aria-hidden":l(m)?void 0:!0,role:l(m)?"img":void 0,focusable:Number(c.tabindex)===0?!0:void 0})}),ke(),qe();var g=bt();N(g,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor",preserveAspectRatio:"xMidYMid meet",width:F(),height:F(),...l(f),...y}));var C=k(g);{var p=A=>{var i=Pt(),t=k(i,!0);T(i),fe(()=>ue(t,P())),u(A,i)};Y(C,A=>{P()&&A(p)})}ce(2),T(g),u(v,g),ee()}var Mt=q("<!> <!>",1),wt=q("<!> <!>",1),Ot=q("<!> <!>",1);function Wt(v,e){$(e,!0);let c=r(e,"open",15),y=r(e,"confirmLabel",3,"Confirm"),m=r(e,"cancelLabel",3,"Cancel"),f=r(e,"destructive",3,!1);var F=K(),P=w(F);re(P,()=>rt,(g,C)=>{C(g,{onOpenChange:p=>{p||e.oncancel()},get open(){return c()},set open(p){c(p)},children:(p,A)=>{var i=K(),t=w(i);re(t,()=>Ge,(a,n)=>{n(a,{children:(d,o)=>{var M=Ot(),j=w(M);re(j,()=>Je,(G,J)=>{J(G,{children:(z,te)=>{var B=Mt(),R=w(B);re(R,()=>Qe,(L,U)=>{U(L,{children:(s,S)=>{ce();var _=ve();fe(()=>ue(_,e.title)),u(s,_)},$$slots:{default:!0}})});var V=Pe(R,2);re(V,()=>Xe,(L,U)=>{U(L,{children:(s,S)=>{ce();var _=ve();fe(()=>ue(_,e.message)),u(s,_)},$$slots:{default:!0}})}),u(z,B)},$$slots:{default:!0}})});var b=Pe(j,2);re(b,()=>$e,(G,J)=>{J(G,{children:(z,te)=>{var B=wt(),R=w(B);{let L=E(()=>Fe({variant:"ghost"}));re(R,()=>et,(U,s)=>{s(U,{get class(){return l(L)},get onclick(){return e.oncancel},children:(S,_)=>{ce();var O=ve();fe(()=>ue(O,m())),u(S,O)},$$slots:{default:!0}})})}var V=Pe(R,2);{let L=E(()=>Fe({variant:f()?"destructive":"accent"}));re(V,()=>tt,(U,s)=>{s(U,{get class(){return l(L)},get onclick(){return e.onconfirm},children:(S,_)=>{ce();var O=ve();fe(()=>ue(O,y())),u(S,O)},$$slots:{default:!0}})})}u(z,B)},$$slots:{default:!0}})}),u(d,M)},$$slots:{default:!0}})}),u(p,i)},$$slots:{default:!0}})}),u(v,F),ee()}export{Ut as C,Ht as I,Lt as P,kt as R,Nt as S,Tt as T,Zt as a,Wt as b,jt as c,zt as d,Vt as e,we as p};
1
+ import{c as K,a as u,p as oe,b as q,s as ue,f as Ae,t as ve}from"./b0XUoOIH.js";import{p as $,a0 as w,ae as X,b as ee,g as l,c as k,r as T,a4 as E,e as Re,f as De,s as be,l as Oe,d as ye,a as ke,n as ce,m as Ce,t as fe,a3 as Pe}from"./DSh-OF2y.js";import{s as I,a as N}from"./CRnhIQbv.js";import{i as Y}from"./DT3KtxWU.js";import{p as r,r as ae,s as pe,l as Se}from"./D-yNNNdf.js";import{n as D,M as Te,b as h,F as Ke,c as se,a as Le,m as Q,d as Ue,e as Ee,P as Ie,f as xe,i as He,g as Ne,S as je,h as ge,j as ze,k as Be,l as Ve,o as Ze,D as We,p as Ye}from"./DQYNi3YK.js";import{r as Me}from"./Bs4ovbtO.js";import{i as qe}from"./vZ2iBqLE.js";import{c as re}from"./DCVmM0L5.js";import{A as Ge,a as Je,b as Qe,c as Xe,d as $e,e as et,f as tt,g as rt}from"./BHue2Ock.js";import{a as Fe}from"./DQ5NTKSo.js";function nt(v,e){$(e,!0);let c=r(e,"open",15,!1),y=r(e,"onOpenChange",3,D),m=r(e,"onOpenChangeComplete",3,D);Te.create({open:h(()=>c(),f=>{c(f),y()?.(f)}),onOpenChangeComplete:h(()=>m())}),Ke(v,{children:(f,F)=>{var P=K(),g=w(P);I(g,()=>e.children??X),u(f,P)},$$slots:{default:!0}}),ee()}var ot=q("<div><!></div>");function at(v,e){const c=oe();$(e,!0);let y=r(e,"ref",15,null),m=r(e,"id",19,()=>se(c)),f=r(e,"disabled",3,!1),F=r(e,"onSelect",3,D),P=r(e,"closeOnSelect",3,!0),g=ae(e,["$$slots","$$events","$$legacy","child","children","ref","id","disabled","onSelect","closeOnSelect"]);const C=Le.create({id:h(()=>m()),disabled:h(()=>f()),onSelect:h(()=>F()),ref:h(()=>y(),n=>y(n)),closeOnSelect:h(()=>P())}),p=E(()=>Q(g,C.props));var A=K(),i=w(A);{var t=n=>{var d=K(),o=w(d);I(o,()=>e.child,()=>({props:l(p)})),u(n,d)},a=n=>{var d=ot();N(d,()=>({...l(p)}));var o=k(d);I(o,()=>e.children??X),T(d),u(n,d)};Y(i,n=>{e.child?n(t):n(a,!1)})}u(v,A),ee()}var st=q("<div><!></div>");function lt(v,e){const c=oe();$(e,!0);let y=r(e,"ref",15,null),m=r(e,"id",19,()=>se(c)),f=ae(e,["$$slots","$$events","$$legacy","ref","id","child","children"]);const F=Ue.create({id:h(()=>m()),ref:h(()=>y(),i=>y(i))}),P=E(()=>Q(f,F.props));var g=K(),C=w(g);{var p=i=>{var t=K(),a=w(t);I(a,()=>e.child,()=>({props:l(P)})),u(i,t)},A=i=>{var t=st();N(t,()=>({...l(P)}));var a=k(t);I(a,()=>e.children??X),T(t),u(i,t)};Y(C,i=>{e.child?i(p):i(A,!1)})}u(v,g),ee()}var it=q("<div><div><!></div></div>"),dt=q("<div><div><!></div></div>");function ut(v,e){const c=oe();$(e,!0);let y=r(e,"id",19,()=>se(c)),m=r(e,"ref",15,null),f=r(e,"loop",3,!0),F=r(e,"onInteractOutside",3,D),P=r(e,"forceMount",3,!1),g=r(e,"onEscapeKeydown",3,D),C=r(e,"interactOutsideBehavior",3,"defer-otherwise-close"),p=r(e,"escapeKeydownBehavior",3,"defer-otherwise-close"),A=r(e,"onOpenAutoFocus",3,D),i=r(e,"onCloseAutoFocus",3,D),t=r(e,"onFocusOutside",3,D),a=r(e,"side",3,"right"),n=r(e,"trapFocus",3,!1),d=ae(e,["$$slots","$$events","$$legacy","id","ref","children","child","loop","onInteractOutside","forceMount","onEscapeKeydown","interactOutsideBehavior","escapeKeydownBehavior","onOpenAutoFocus","onCloseAutoFocus","onFocusOutside","side","trapFocus","style"]);const o=Ee.create({id:h(()=>y()),loop:h(()=>f()),ref:h(()=>m(),s=>m(s)),isSub:!0,onCloseAutoFocus:h(()=>J)});function M(s){const S=s.currentTarget.contains(s.target),_=je[o.parentMenu.root.opts.dir.current].includes(s.key);S&&_&&(o.parentMenu.onClose(),o.parentMenu.triggerNode?.focus(),s.preventDefault())}const j=E(()=>o.parentMenu.root.getBitsAttr("sub-content")),b=E(()=>Q(d,o.props,{side:a(),onkeydown:M,[l(j)]:""}));function G(s){A()(s),!s.defaultPrevented&&(s.preventDefault(),o.parentMenu.root.isUsingKeyboard&&o.parentMenu.contentNode&&Ne.dispatch(o.parentMenu.contentNode))}function J(s){i()(s),!s.defaultPrevented&&s.preventDefault()}function z(s){F()(s),!s.defaultPrevented&&o.parentMenu.onClose()}function te(s){g()(s),!s.defaultPrevented&&o.parentMenu.onClose()}function B(s){t()(s),!s.defaultPrevented&&He(s.target)&&s.target.id!==o.parentMenu.triggerNode?.id&&o.parentMenu.onClose()}var R=K(),V=w(R);{var L=s=>{Ie(s,pe(()=>l(b),{get ref(){return o.opts.ref},get interactOutsideBehavior(){return C()},get escapeKeydownBehavior(){return p()},onOpenAutoFocus:G,get enabled(){return o.parentMenu.opts.open.current},onInteractOutside:z,onEscapeKeydown:te,onFocusOutside:B,preventScroll:!1,get loop(){return f()},get trapFocus(){return n()},get shouldRender(){return o.shouldRender},popper:(_,O)=>{let Z=()=>O?.().props,le=()=>O?.().wrapperProps;const ie=E(()=>Q(Z(),l(b),{style:ge("menu")},{style:e.style}));var de=K(),_e=w(de);{var he=H=>{var x=K(),W=w(x);{let ne=E(()=>({props:l(ie),wrapperProps:le(),...o.snippetProps}));I(W,()=>e.child,()=>l(ne))}u(H,x)},me=H=>{var x=it();N(x,()=>({...le()}));var W=k(x);N(W,()=>({...l(ie)}));var ne=k(W);I(ne,()=>e.children??X),T(W),T(x),u(H,x)};Y(_e,H=>{e.child?H(he):H(me,!1)})}u(_,de)},$$slots:{popper:!0}}))},U=s=>{xe(s,pe(()=>l(b),{get ref(){return o.opts.ref},get interactOutsideBehavior(){return C()},get escapeKeydownBehavior(){return p()},onCloseAutoFocus:J,onOpenAutoFocus:G,get open(){return o.parentMenu.opts.open.current},onInteractOutside:z,onEscapeKeydown:te,onFocusOutside:B,preventScroll:!1,get loop(){return f()},get trapFocus(){return n()},get shouldRender(){return o.shouldRender},popper:(_,O)=>{let Z=()=>O?.().props,le=()=>O?.().wrapperProps;const ie=E(()=>Q(Z(),l(b),{style:ge("menu")},{style:e.style}));var de=K(),_e=w(de);{var he=H=>{var x=K(),W=w(x);{let ne=E(()=>({props:l(ie),wrapperProps:le(),...o.snippetProps}));I(W,()=>e.child,()=>l(ne))}u(H,x)},me=H=>{var x=dt();N(x,()=>({...le()}));var W=k(x);N(W,()=>({...l(ie)}));var ne=k(W);I(ne,()=>e.children??X),T(W),T(x),u(H,x)};Y(_e,H=>{e.child?H(he):H(me,!1)})}u(_,de)},$$slots:{popper:!0}}))};Y(V,s=>{P()?s(L):P()||s(U,1)})}u(v,R),ee()}var ct=q("<div><!></div>");function ft(v,e){const c=oe();$(e,!0);let y=r(e,"id",19,()=>se(c)),m=r(e,"disabled",3,!1),f=r(e,"ref",15,null),F=r(e,"onSelect",3,D),P=r(e,"openDelay",3,100),g=ae(e,["$$slots","$$events","$$legacy","id","disabled","ref","children","child","onSelect","openDelay"]);const C=ze.create({disabled:h(()=>m()),onSelect:h(()=>F()),id:h(()=>y()),ref:h(()=>f(),A=>f(A)),openDelay:h(()=>P())}),p=E(()=>Q(g,C.props));Be(v,{get id(){return y()},get ref(){return C.opts.ref},children:(A,i)=>{var t=K(),a=w(t);{var n=o=>{var M=K(),j=w(M);I(j,()=>e.child,()=>({props:l(p)})),u(o,M)},d=o=>{var M=ct();N(M,()=>({...l(p)}));var j=k(M);I(j,()=>e.children??X),T(M),u(o,M)};Y(a,o=>{e.child?o(n):o(d,!1)})}u(A,t)},$$slots:{default:!0}}),ee()}function vt(v,e){$(e,!0);let c=r(e,"open",15,!1),y=r(e,"dir",3,"ltr"),m=r(e,"onOpenChange",3,D),f=r(e,"onOpenChangeComplete",3,D),F=r(e,"_internal_variant",3,"dropdown-menu");const P=Ve.create({variant:h(()=>F()),dir:h(()=>y()),onClose:()=>{c(!1),m()(!1)}});Ze.create({open:h(()=>c(),g=>{c(g),m()(g)}),onOpenChangeComplete:h(()=>f())},P),Ke(v,{children:(g,C)=>{var p=K(),A=w(p);I(A,()=>e.children??X),u(g,p)},$$slots:{default:!0}}),ee()}var pt=q("<div><div><!></div></div>"),gt=q("<div><div><!></div></div>");function _t(v,e){const c=oe();$(e,!0);let y=r(e,"id",19,()=>se(c)),m=r(e,"ref",15,null),f=r(e,"loop",3,!0),F=r(e,"onInteractOutside",3,D),P=r(e,"onEscapeKeydown",3,D),g=r(e,"onCloseAutoFocus",3,D),C=r(e,"forceMount",3,!1),p=r(e,"trapFocus",3,!1),A=ae(e,["$$slots","$$events","$$legacy","id","child","children","ref","loop","onInteractOutside","onEscapeKeydown","onCloseAutoFocus","forceMount","trapFocus","style"]);const i=Ee.create({id:h(()=>y()),loop:h(()=>f()),ref:h(()=>m(),b=>m(b)),onCloseAutoFocus:h(()=>g())}),t=E(()=>Q(A,i.props));function a(b){if(i.handleInteractOutside(b),!b.defaultPrevented&&(F()(b),!b.defaultPrevented)){if(b.target&&b.target instanceof Element){const G=`[${i.parentMenu.root.getBitsAttr("sub-content")}]`;if(b.target.closest(G))return}i.parentMenu.onClose()}}function n(b){P()(b),!b.defaultPrevented&&i.parentMenu.onClose()}var d=K(),o=w(d);{var M=b=>{Ie(b,pe(()=>l(t),()=>i.popperProps,{get ref(){return i.opts.ref},get enabled(){return i.parentMenu.opts.open.current},onInteractOutside:a,onEscapeKeydown:n,get trapFocus(){return p()},get loop(){return f()},forceMount:!0,get id(){return y()},get shouldRender(){return i.shouldRender},popper:(J,z)=>{let te=()=>z?.().props,B=()=>z?.().wrapperProps;const R=E(()=>Q(te(),{style:ge("dropdown-menu")},{style:e.style}));var V=K(),L=w(V);{var U=S=>{var _=K(),O=w(_);{let Z=E(()=>({props:l(R),wrapperProps:B(),...i.snippetProps}));I(O,()=>e.child,()=>l(Z))}u(S,_)},s=S=>{var _=pt();N(_,()=>({...B()}));var O=k(_);N(O,()=>({...l(R)}));var Z=k(O);I(Z,()=>e.children??X),T(O),T(_),u(S,_)};Y(L,S=>{e.child?S(U):S(s,!1)})}u(J,V)},$$slots:{popper:!0}}))},j=b=>{xe(b,pe(()=>l(t),()=>i.popperProps,{get ref(){return i.opts.ref},get open(){return i.parentMenu.opts.open.current},onInteractOutside:a,onEscapeKeydown:n,get trapFocus(){return p()},get loop(){return f()},forceMount:!1,get id(){return y()},get shouldRender(){return i.shouldRender},popper:(J,z)=>{let te=()=>z?.().props,B=()=>z?.().wrapperProps;const R=E(()=>Q(te(),{style:ge("dropdown-menu")},{style:e.style}));var V=K(),L=w(V);{var U=S=>{var _=K(),O=w(_);{let Z=E(()=>({props:l(R),wrapperProps:B(),...i.snippetProps}));I(O,()=>e.child,()=>l(Z))}u(S,_)},s=S=>{var _=gt();N(_,()=>({...B()}));var O=k(_);N(O,()=>({...l(R)}));var Z=k(O);I(Z,()=>e.children??X),T(O),T(_),u(S,_)};Y(L,S=>{e.child?S(U):S(s,!1)})}u(J,V)},$$slots:{popper:!0}}))};Y(o,b=>{C()?b(M):C()||b(j,1)})}u(v,d),ee()}var ht=q("<button><!></button>");function mt(v,e){const c=oe();$(e,!0);let y=r(e,"id",19,()=>se(c)),m=r(e,"ref",15,null),f=r(e,"disabled",3,!1),F=r(e,"type",3,"button"),P=ae(e,["$$slots","$$events","$$legacy","id","ref","child","children","disabled","type"]);const g=We.create({id:h(()=>y()),disabled:h(()=>f()??!1),ref:h(()=>m(),p=>m(p))}),C=E(()=>Q(P,g.props,{type:F()}));Be(v,{get id(){return y()},get ref(){return g.opts.ref},children:(p,A)=>{var i=K(),t=w(i);{var a=d=>{var o=K(),M=w(o);I(M,()=>e.child,()=>({props:l(C)})),u(d,o)},n=d=>{var o=ht();N(o,()=>({...l(C)}));var M=k(o);I(M,()=>e.children??X),T(o),u(d,o)};Y(t,d=>{e.child?d(a):d(n,!1)})}u(p,i)},$$slots:{default:!0}}),ee()}const kt=vt,Tt=mt,Lt=Ye,Ut=_t,Ht=at,Nt=lt,jt=nt,zt=ft,Vt=ut;function yt(){let v=Re(De({})),e=null,c=null;function y(t,a,n){c&&(clearInterval(c),c=null),e=`${t}/${a}/${n}`,f("enter",t,a,n),c=setInterval(()=>{e&&f("heartbeat",t,a,n)},3e4)}function m(){if(c&&(clearInterval(c),c=null),e){const[t,a,n]=e.split("/");t&&a&&n&&f("leave",t,a,n),e=null}}function f(t,a,n,d){Me.send({type:"presence",action:t,repo:a,entityType:n,entityId:d})}function F(t){const a=`${t.repo}/${t.entityType}/${t.entityId}`,n=l(v)[a]??[];if(t.action==="leave")l(v)[a]=n.filter(d=>d.id!==t.user.id);else{const d=n.findIndex(o=>o.id===t.user.id);d>=0?(n[d]=t.user,l(v)[a]=[...n]):l(v)[a]=[...n,t.user]}}function P(){if(be(v,{},!0),!e)return;const[t,a,n]=e.split("/");t&&a&&n&&f("enter",t,a,n)}function g(t,a,n,d){const o=`${t}/${a}/${n}`,M=l(v)[o]??[];return d?M.filter(j=>j.id!==d):M}function C(t,a){const n=new Map;for(const[d,o]of Object.entries(l(v)))if(d.startsWith(t))for(const M of o)(!a||M.id!==a)&&n.set(M.id,M);return[...n.values()]}function p(t,a){return C(`${t}/`,a)}function A(t){const a=new Map;for(const n of Object.values(l(v)))for(const d of n)(!t||d.id!==t)&&a.set(d.id,d);return[...a.values()]}const i=E(()=>{const t=new Map;for(const a of Object.values(l(v)))for(const n of a)t.set(n.id,n);return[...t.values()]});return{enter:y,leave:m,handlePresenceEvent:F,resetAndResend:P,getPresence:g,getPresenceByPrefix:C,getRepoPresence:p,getAllUsers:A,get allUsers(){return l(i)}}}const we=yt();Me.setPresenceHandler(v=>we.handlePresenceEvent(v));Me.addConnectHandler(()=>we.resetAndResend());typeof window<"u"&&window.addEventListener("beforeunload",()=>we.leave());var Pt=Ae("<title> </title>"),bt=Ae('<svg><!><path d="M25,12H20v2h5a1.0008,1.0008,0,0,1,1,1v2H22a3.0033,3.0033,0,0,0-3,3v1a3.0033,3.0033,0,0,0,3,3h6V15A3.0033,3.0033,0,0,0,25,12ZM22,22a1.0008,1.0008,0,0,1-1-1V20a1.0008,1.0008,0,0,1,1-1h4v3Z"></path><path d="M16,24h2L12,7H10L4,24H6l1.6936-5h6.6135ZM8.3711,17l2.4966-7.3711.2668.0005L13.63,17Z"></path></svg>');function Zt(v,e){const c=Se(e,["children","$$slots","$$events","$$legacy"]),y=Se(c,["size","title"]);$(e,!1);const m=Ce(),f=Ce();let F=r(e,"size",8,16),P=r(e,"title",8,void 0);Oe(()=>(ye(c),ye(P())),()=>{be(m,c["aria-label"]||c["aria-labelledby"]||P())}),Oe(()=>(l(m),ye(c)),()=>{be(f,{"aria-hidden":l(m)?void 0:!0,role:l(m)?"img":void 0,focusable:Number(c.tabindex)===0?!0:void 0})}),ke(),qe();var g=bt();N(g,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor",preserveAspectRatio:"xMidYMid meet",width:F(),height:F(),...l(f),...y}));var C=k(g);{var p=A=>{var i=Pt(),t=k(i,!0);T(i),fe(()=>ue(t,P())),u(A,i)};Y(C,A=>{P()&&A(p)})}ce(2),T(g),u(v,g),ee()}var Mt=q("<!> <!>",1),wt=q("<!> <!>",1),Ot=q("<!> <!>",1);function Wt(v,e){$(e,!0);let c=r(e,"open",15),y=r(e,"confirmLabel",3,"Confirm"),m=r(e,"cancelLabel",3,"Cancel"),f=r(e,"destructive",3,!1);var F=K(),P=w(F);re(P,()=>rt,(g,C)=>{C(g,{onOpenChange:p=>{p||e.oncancel()},get open(){return c()},set open(p){c(p)},children:(p,A)=>{var i=K(),t=w(i);re(t,()=>Ge,(a,n)=>{n(a,{children:(d,o)=>{var M=Ot(),j=w(M);re(j,()=>Je,(G,J)=>{J(G,{children:(z,te)=>{var B=Mt(),R=w(B);re(R,()=>Qe,(L,U)=>{U(L,{children:(s,S)=>{ce();var _=ve();fe(()=>ue(_,e.title)),u(s,_)},$$slots:{default:!0}})});var V=Pe(R,2);re(V,()=>Xe,(L,U)=>{U(L,{children:(s,S)=>{ce();var _=ve();fe(()=>ue(_,e.message)),u(s,_)},$$slots:{default:!0}})}),u(z,B)},$$slots:{default:!0}})});var b=Pe(j,2);re(b,()=>$e,(G,J)=>{J(G,{children:(z,te)=>{var B=wt(),R=w(B);{let L=E(()=>Fe({variant:"ghost"}));re(R,()=>et,(U,s)=>{s(U,{get class(){return l(L)},get onclick(){return e.oncancel},children:(S,_)=>{ce();var O=ve();fe(()=>ue(O,m())),u(S,O)},$$slots:{default:!0}})})}var V=Pe(R,2);{let L=E(()=>Fe({variant:f()?"destructive":"accent"}));re(V,()=>tt,(U,s)=>{s(U,{get class(){return l(L)},get onclick(){return e.onconfirm},children:(S,_)=>{ce();var O=ve();fe(()=>ue(O,y())),u(S,O)},$$slots:{default:!0}})})}u(z,B)},$$slots:{default:!0}})}),u(d,M)},$$slots:{default:!0}})}),u(p,i)},$$slots:{default:!0}})}),u(v,F),ee()}export{Ut as C,Ht as I,Lt as P,kt as R,Nt as S,Tt as T,Zt as a,Wt as b,jt as c,zt as d,Vt as e,we as p};
@@ -1 +1 @@
1
- import{e as n,f as m,g as a,s}from"./CfuRx7rA.js";import{g as c}from"./DUsnWwWN.js";import{d as v,u as y,c as g,f as V}from"./DQ_O96iG.js";const x={selectedType:null,groupBy:null,sortKey:"name",sortAsc:!0,filters:{text:{},enum:{},date:{}}};function I(){let r=n(m([])),i=n(null),u=n(!1);async function l(){try{s(r,await V(),!0),s(u,!0)}catch(e){console.error("Failed to load views:",e)}}async function w(e){const t=await g(e,x);return s(r,[...a(r),t],!0),t}async function f(e,t){await y(e,t),s(r,a(r).map(o=>o.id===e?{...o,...t}:o),!0)}async function d(e){if(await v(e),s(r,a(r).filter(t=>t.id!==e),!0),a(i)===e){const t=a(r)[0];t?(s(i,t.id,!0),c(`/views/${t.id}`,{replaceState:!0})):(s(i,null),c("/",{replaceState:!0}))}}function p(e){s(i,e,!0)}return{get views(){return a(r)},get activeViewId(){return a(i)},get loaded(){return a(u)},load:l,create:w,update:f,remove:d,setActive:p}}const h=I();export{h as v};
1
+ import{e as n,f as m,g as a,s}from"./DSh-OF2y.js";import{g as c}from"./BAAbylyg.js";import{d as v,u as y,c as g,f as V}from"./DSkxw4Ss.js";const x={selectedType:null,groupBy:null,sortKey:"name",sortAsc:!0,filters:{text:{},enum:{},date:{}}};function I(){let r=n(m([])),i=n(null),u=n(!1);async function l(){try{s(r,await V(),!0),s(u,!0)}catch(e){console.error("Failed to load views:",e)}}async function w(e){const t=await g(e,x);return s(r,[...a(r),t],!0),t}async function f(e,t){await y(e,t),s(r,a(r).map(o=>o.id===e?{...o,...t}:o),!0)}async function d(e){if(await v(e),s(r,a(r).filter(t=>t.id!==e),!0),a(i)===e){const t=a(r)[0];t?(s(i,t.id,!0),c(`/views/${t.id}`,{replaceState:!0})):(s(i,null),c("/",{replaceState:!0}))}}function p(e){s(i,e,!0)}return{get views(){return a(r)},get activeViewId(){return a(i)},get loaded(){return a(u)},load:l,create:w,update:f,remove:d,setActive:p}}const h=I();export{h as v};
@@ -1 +1 @@
1
- import{a as n,b as c}from"./CajNsaOw.js";import{b as d,c as p}from"./9QAsBMIK.js";import{p as u,b as f}from"./CfuRx7rA.js";import{a as m}from"./BA_Wro7X.js";import{b}from"./Cwkp_c4R.js";import{p as a,r as v}from"./RGHlrGBn.js";var x=c("<input/>");function P(l,r){u(r,!0);let e=a(r,"ref",15,null),s=a(r,"value",15),i=v(r,["$$slots","$$events","$$legacy","class","ref","value"]);var o=x();m(o,t=>({class:t,...i}),[()=>p("h-8 w-full rounded-md border border-[var(--color-border)] bg-[var(--color-bg)] px-2.5 text-[14px] text-[var(--color-text-primary)] font-[inherit] outline-none transition-colors placeholder:text-[var(--color-text-tertiary)] focus:border-[var(--color-accent,#e05050)] disabled:cursor-not-allowed disabled:opacity-50",r.class)],void 0,void 0,void 0,!0),b(o,t=>e(t),()=>e()),d(o,s),n(l,o),f()}export{P as I};
1
+ import{a as n,b as c}from"./b0XUoOIH.js";import{b as d,c as p}from"./DQ5NTKSo.js";import{p as u,b as f}from"./DSh-OF2y.js";import{a as m}from"./CRnhIQbv.js";import{b}from"./DT3KtxWU.js";import{p as a,r as v}from"./D-yNNNdf.js";var x=c("<input/>");function P(l,r){u(r,!0);let e=a(r,"ref",15,null),s=a(r,"value",15),i=v(r,["$$slots","$$events","$$legacy","class","ref","value"]);var o=x();m(o,t=>({class:t,...i}),[()=>p("h-8 w-full rounded-md border border-[var(--color-border)] bg-[var(--color-bg)] px-2.5 text-[14px] text-[var(--color-text-primary)] font-[inherit] outline-none transition-colors placeholder:text-[var(--color-text-tertiary)] focus:border-[var(--color-accent,#e05050)] disabled:cursor-not-allowed disabled:opacity-50",r.class)],void 0,void 0,void 0,!0),b(o,t=>e(t),()=>e()),d(o,s),n(l,o),f()}export{P as I};
@@ -1 +1 @@
1
- import{w as f,h as u,_,$ as o,i as t,C as g,Z as i,u as l,q as d,v as p,y as v}from"./CfuRx7rA.js";function C(n,r){let s=null,y=t;var a;if(t){s=p;for(var e=v(document.head);e!==null&&(e.nodeType!==g||e.data!==n);)e=i(e);if(e===null)l(!1);else{var E=i(e);e.remove(),d(E)}}t||(a=document.head.appendChild(f()));try{u(()=>r(a),_|o)}finally{y&&(l(!0),d(s))}}export{C as h};
1
+ import{w as f,h as u,_,$ as o,i as t,C as g,Z as i,u as l,q as d,v as p,y as v}from"./DSh-OF2y.js";function C(n,r){let s=null,y=t;var a;if(t){s=p;for(var e=v(document.head);e!==null&&(e.nodeType!==g||e.data!==n);)e=i(e);if(e===null)l(!1);else{var E=i(e);e.remove(),d(E)}}t||(a=document.head.appendChild(f()));try{u(()=>r(a),_|o)}finally{y&&(l(!0),d(s))}}export{C as h};
@@ -0,0 +1 @@
1
+ import{bB as Le,aD as Ge,e as A,g as U,s as P,aE as ne,bC as vt}from"./DSh-OF2y.js";class Ae{constructor(t,n){this.status=t,typeof n=="string"?this.body={message:n}:n?this.body=n:this.body={message:`Error: ${t}`}}toString(){return JSON.stringify(this.body)}}class Ue{constructor(t,n){this.status=t,this.location=n}}class Pe extends Error{constructor(t,n,r){super(r),this.status=t,this.text=n}}new URL("sveltekit-internal://");function wt(e,t){return e==="/"||t==="ignore"?e:t==="never"?e.endsWith("/")?e.slice(0,-1):e:t==="always"&&!e.endsWith("/")?e+"/":e}function yt(e){return e.split("%25").map(decodeURI).join("%25")}function bt(e){for(const t in e)e[t]=decodeURIComponent(e[t]);return e}function me({href:e}){return e.split("#")[0]}function kt(e,t,n,r=!1){const a=new URL(e);Object.defineProperty(a,"searchParams",{value:new Proxy(a.searchParams,{get(s,o){if(o==="get"||o==="getAll"||o==="has")return(c,...d)=>(n(c),s[o](c,...d));t();const l=Reflect.get(s,o);return typeof l=="function"?l.bind(s):l}}),enumerable:!0,configurable:!0});const i=["href","pathname","search","toString","toJSON"];r&&i.push("hash");for(const s of i)Object.defineProperty(a,s,{get(){return t(),e[s]},enumerable:!0,configurable:!0});return a}function Et(...e){let t=5381;for(const n of e)if(typeof n=="string"){let r=n.length;for(;r;)t=t*33^n.charCodeAt(--r)}else if(ArrayBuffer.isView(n)){const r=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let a=r.length;for(;a;)t=t*33^r[--a]}else throw new TypeError("value must be a string or TypedArray");return(t>>>0).toString(36)}new TextEncoder;new TextDecoder;function St(e){const t=atob(e),n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=t.charCodeAt(r);return n}const Rt=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||"GET")!=="GET"&&G.delete(Te(e)),Rt(e,t));const G=new Map;function xt(e,t){const n=Te(e,t),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:a,...i}=JSON.parse(r.textContent);const s=r.getAttribute("data-ttl");return s&&G.set(n,{body:a,init:i,ttl:1e3*Number(s)}),r.getAttribute("data-b64")!==null&&(a=St(a)),Promise.resolve(new Response(a,i))}return window.fetch(e,t)}function Lt(e,t,n){if(G.size>0){const r=Te(e,n),a=G.get(r);if(a){if(performance.now()<a.ttl&&["default","force-cache","only-if-cached",void 0].includes(n?.cache))return new Response(a.body,a.init);G.delete(r)}}return window.fetch(t,n)}function Te(e,t){let r=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){const a=[];t.headers&&a.push([...new Headers(t.headers)].join(",")),t.body&&(typeof t.body=="string"||ArrayBuffer.isView(t.body))&&a.push(t.body),r+=`[data-hash="${Et(...a)}"]`}return r}const At=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;function Ut(e){const t=[];return{pattern:e==="/"?/^\/$/:new RegExp(`^${Tt(e).map(r=>{const a=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(r);if(a)return t.push({name:a[1],matcher:a[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const i=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(r);if(i)return t.push({name:i[1],matcher:i[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!r)return;const s=r.split(/\[(.+?)\](?!\])/);return"/"+s.map((l,c)=>{if(c%2){if(l.startsWith("x+"))return _e(String.fromCharCode(parseInt(l.slice(2),16)));if(l.startsWith("u+"))return _e(String.fromCharCode(...l.slice(2).split("-").map(v=>parseInt(v,16))));const d=At.exec(l),[,p,f,u,h]=d;return t.push({name:u,matcher:h,optional:!!p,rest:!!f,chained:f?c===1&&s[0]==="":!1}),f?"([^]*?)":p?"([^/]*)?":"([^/]+?)"}return _e(l)}).join("")}).join("")}/?$`),params:t}}function Pt(e){return e!==""&&!/^\([^)]+\)$/.test(e)}function Tt(e){return e.slice(1).split("/").filter(Pt)}function It(e,t,n){const r={},a=e.slice(1),i=a.filter(o=>o!==void 0);let s=0;for(let o=0;o<t.length;o+=1){const l=t[o];let c=a[o-s];if(l.chained&&l.rest&&s&&(c=a.slice(o-s,o+1).filter(d=>d).join("/"),s=0),c===void 0)if(l.rest)c="";else continue;if(!l.matcher||n[l.matcher](c)){r[l.name]=c;const d=t[o+1],p=a[o+1];d&&!d.rest&&d.optional&&p&&l.chained&&(s=0),!d&&!p&&Object.keys(r).length===i.length&&(s=0);continue}if(l.optional&&l.chained){s++;continue}return}if(!s)return r}function _e(e){return e.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function Ot({nodes:e,server_loads:t,dictionary:n,matchers:r}){const a=new Set(t);return Object.entries(n).map(([o,[l,c,d]])=>{const{pattern:p,params:f}=Ut(o),u={id:o,exec:h=>{const v=p.exec(h);if(v)return It(v,f,r)},errors:[1,...d||[]].map(h=>e[h]),layouts:[0,...c||[]].map(s),leaf:i(l)};return u.errors.length=u.layouts.length=Math.max(u.errors.length,u.layouts.length),u});function i(o){const l=o<0;return l&&(o=~o),[l,e[o]]}function s(o){return o===void 0?o:[a.has(o),e[o]]}}function Xe(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function Me(e,t,n=JSON.stringify){const r=n(t);try{sessionStorage[e]=r}catch{}}const x=globalThis.__sveltekit_uvehpy?.base??"",Ct=globalThis.__sveltekit_uvehpy?.assets??x??"",$t="1774804755940",Qe="sveltekit:snapshot",Ze="sveltekit:scroll",et="sveltekit:states",jt="sveltekit:pageurl",B="sveltekit:history",H="sveltekit:navigation",N={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},he=location.origin;function Ie(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){const n=document.getElementsByTagName("base");t=n.length?n[0].href:document.URL}return new URL(e,t)}function D(){return{x:pageXOffset,y:pageYOffset}}function V(e,t){return e.getAttribute(`data-sveltekit-${t}`)}const He={...N,"":N.hover};function tt(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function nt(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=tt(e)}}function be(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){const o=location.hash.split("#")[1]||"/";r.hash=`#${o}${r.hash}`}}catch{}const a=e instanceof SVGAElement?e.target.baseVal:e.target,i=!r||!!a||pe(r,t,n)||(e.getAttribute("rel")||"").split(/\s+/).includes("external"),s=r?.origin===he&&e.hasAttribute("download");return{url:r,external:i,target:a,download:s}}function re(e){let t=null,n=null,r=null,a=null,i=null,s=null,o=e;for(;o&&o!==document.documentElement;)r===null&&(r=V(o,"preload-code")),a===null&&(a=V(o,"preload-data")),t===null&&(t=V(o,"keepfocus")),n===null&&(n=V(o,"noscroll")),i===null&&(i=V(o,"reload")),s===null&&(s=V(o,"replacestate")),o=tt(o);function l(c){switch(c){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:He[r??"off"],preload_data:He[a??"off"],keepfocus:l(t),noscroll:l(n),reload:l(i),replace_state:l(s)}}function We(e){const t=Le(e);let n=!0;function r(){n=!0,t.update(s=>s)}function a(s){n=!1,t.set(s)}function i(s){let o;return t.subscribe(l=>{(o===void 0||n&&l!==o)&&s(o=l)})}return{notify:r,set:a,subscribe:i}}const rt={v:()=>{}};function Nt(){const{set:e,subscribe:t}=Le(!1);let n;async function r(){clearTimeout(n);try{const a=await fetch(`${Ct}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!a.ok)return!1;const s=(await a.json()).version!==$t;return s&&(e(!0),rt.v(),clearTimeout(n)),s}catch{return!1}}return{subscribe:t,check:r}}function pe(e,t,n){return e.origin!==he||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function cn(e){}const at=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...at];const Dt=new Set([...at]);[...Dt];function qt(e){return e.filter(t=>t!=null)}function Oe(e){return e instanceof Ae||e instanceof Pe?e.status:500}function Vt(e){return e instanceof Pe?e.text:"Internal Error"}let b,W,ve;const Bt=Ge.toString().includes("$$")||/function \w+\(\) \{\}/.test(Ge.toString());Bt?(b={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL("https://example.com")},W={current:null},ve={current:!1}):(b=new class{#e=A({});get data(){return U(this.#e)}set data(t){P(this.#e,t)}#t=A(null);get form(){return U(this.#t)}set form(t){P(this.#t,t)}#n=A(null);get error(){return U(this.#n)}set error(t){P(this.#n,t)}#r=A({});get params(){return U(this.#r)}set params(t){P(this.#r,t)}#a=A({id:null});get route(){return U(this.#a)}set route(t){P(this.#a,t)}#o=A({});get state(){return U(this.#o)}set state(t){P(this.#o,t)}#s=A(-1);get status(){return U(this.#s)}set status(t){P(this.#s,t)}#i=A(new URL("https://example.com"));get url(){return U(this.#i)}set url(t){P(this.#i,t)}},W=new class{#e=A(null);get current(){return U(this.#e)}set current(t){P(this.#e,t)}},ve=new class{#e=A(!1);get current(){return U(this.#e)}set current(t){P(this.#e,t)}},rt.v=()=>ve.current=!0);function ot(e){Object.assign(b,e)}const Je={spanContext(){return Kt},setAttribute(){return this},setAttributes(){return this},addEvent(){return this},setStatus(){return this},updateName(){return this},end(){return this},isRecording(){return!1},recordException(){return this},addLink(){return this},addLinks(){return this}},Kt={traceId:"",spanId:"",traceFlags:0},Ft=new Set(["icon","shortcut icon","apple-touch-icon"]),j=Xe(Ze)??{},J=Xe(Qe)??{},$={url:We({}),page:We({}),navigating:Le(null),updated:Nt()};function Ce(e){j[e]=D()}function Gt(e,t){let n=e+1;for(;j[n];)delete j[n],n+=1;for(n=t+1;J[n];)delete J[n],n+=1}function Y(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(()=>{})}async function st(){if("serviceWorker"in navigator){const e=await navigator.serviceWorker.getRegistration(x||"/");e&&await e.update()}}function ke(){}let $e,Ee,ae,T,Se,w;const oe=[],se=[];let L=null;function ie(){L?.fork?.then(e=>e?.discard()),L=null}const te=new Map,it=new Set,Mt=new Set,M=new Set;let _={branch:[],error:null,url:null},lt=!1,le=!1,Ye=!0,z=!1,F=!1,ct=!1,Q=!1,je,y,R,I;const ce=new Set;let we;const ue=new Map;async function hn(e,t,n){globalThis.__sveltekit_uvehpy?.data&&globalThis.__sveltekit_uvehpy.data,document.URL!==location.href&&(location.href=location.href),w=e,await e.hooks.init?.(),$e=Ot(e),T=document.documentElement,Se=t,Ee=e.nodes[0],ae=e.nodes[1],Ee(),ae(),y=history.state?.[B],R=history.state?.[H],y||(y=R=Date.now(),history.replaceState({...history.state,[B]:y,[H]:R},""));const r=j[y];function a(){r&&(history.scrollRestoration="manual",scrollTo(r.x,r.y))}n?(a(),await rn(Se,n)):(await K({type:"enter",url:Ie(w.hash?sn(new URL(location.href)):location.href),replace_state:!0}),a()),nn()}async function Ht(e=!0,t=!0){if(await(we||=Promise.resolve()),!we)return;we=null;const n=I={},r=await Z(_.url,!0);if(ie(),Q&&ue.forEach(({resource:a})=>{a.refresh?.()}),e){const a=b.state,i=r&&await Ve(r);if(!i||n!==I)return;if(i.type==="redirect")return Ne(new URL(i.location,_.url).href,{replaceState:!0},1,n);t||(i.props.page.state=a),ot(i.props.page),_=i.state,Re(),je.$set(i.props)}else Re();await Promise.all([...ue.values()].map(({resource:a})=>a)).catch(ke)}function Re(){oe.length=0,Q=!1}function ut(e){se.some(t=>t?.snapshot)&&(J[e]=se.map(t=>t?.snapshot?.capture()))}function ft(e){J[e]?.forEach((t,n)=>{se[n]?.snapshot?.restore(t)})}function ze(){Ce(y),Me(Ze,j),ut(R),Me(Qe,J)}async function Ne(e,t,n,r){let a;t.invalidateAll&&ie(),await K({type:"goto",url:Ie(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:n,nav_token:r,accept:()=>{t.invalidateAll&&(Q=!0,a=[...ue.keys()]),t.invalidate&&t.invalidate.forEach(tn)}}),t.invalidateAll&&ne().then(ne).then(()=>{ue.forEach(({resource:i},s)=>{a?.includes(s)&&i.refresh?.()})})}async function Wt(e){if(e.id!==L?.id){ie();const t={};ce.add(t),L={id:e.id,token:t,promise:Ve({...e,preload:t}).then(n=>(ce.delete(t),n.type==="loaded"&&n.state.error&&ie(),n)),fork:null}}return L.promise}async function ye(e){const t=(await Z(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(n=>n[1]()))}async function dt(e,t,n){_=e.state;const r=document.querySelector("style[data-sveltekit]");if(r&&r.remove(),Object.assign(b,e.props.page),je=new w.root({target:t,props:{...e.props,stores:$,components:se},hydrate:n,sync:!1}),await Promise.resolve(),ft(R),n){const a={from:null,to:{params:_.params,route:{id:_.route?.id??null},url:new URL(location.href),scroll:j[y]??D()},willUnload:!1,type:"enter",complete:Promise.resolve()};M.forEach(i=>i(a))}le=!0}function fe({url:e,params:t,branch:n,status:r,error:a,route:i,form:s}){let o="never";if(x&&(e.pathname===x||e.pathname===x+"/"))o="always";else for(const u of n)u?.slash!==void 0&&(o=u.slash);e.pathname=wt(e.pathname,o),e.search=e.search;const l={type:"loaded",state:{url:e,params:t,branch:n,error:a,route:i},props:{constructors:qt(n).map(u=>u.node.component),page:Fe(b)}};s!==void 0&&(l.props.form=s);let c={},d=!b,p=0;for(let u=0;u<Math.max(n.length,_.branch.length);u+=1){const h=n[u],v=_.branch[u];h?.data!==v?.data&&(d=!0),h&&(c={...c,...h.data},d&&(l.props[`data_${p}`]=c),p+=1)}return(!_.url||e.href!==_.url.href||_.error!==a||s!==void 0&&s!==b.form||d)&&(l.props.page={error:a,params:t,route:{id:i?.id??null},state:{},status:r,url:new URL(e),form:s??null,data:d?c:b.data}),l}async function De({loader:e,parent:t,url:n,params:r,route:a,server_data_node:i}){let s=null,o=!0;const l={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},c=await e();if(c.universal?.load){let d=function(...f){for(const u of f){const{href:h}=new URL(u,n);l.dependencies.add(h)}};const p={tracing:{enabled:!1,root:Je,current:Je},route:new Proxy(a,{get:(f,u)=>(o&&(l.route=!0),f[u])}),params:new Proxy(r,{get:(f,u)=>(o&&l.params.add(u),f[u])}),data:i?.data??null,url:kt(n,()=>{o&&(l.url=!0)},f=>{o&&l.search_params.add(f)},w.hash),async fetch(f,u){f instanceof Request&&(u={body:f.method==="GET"||f.method==="HEAD"?void 0:await f.blob(),cache:f.cache,credentials:f.credentials,headers:[...f.headers].length>0?f?.headers:void 0,integrity:f.integrity,keepalive:f.keepalive,method:f.method,mode:f.mode,redirect:f.redirect,referrer:f.referrer,referrerPolicy:f.referrerPolicy,signal:f.signal,...u});const{resolved:h,promise:v}=ht(f,u,n);return o&&d(h.href),v},setHeaders:()=>{},depends:d,parent(){return o&&(l.parent=!0),t()},untrack(f){o=!1;try{return f()}finally{o=!0}}};s=await c.universal.load.call(null,p)??null}return{node:c,loader:e,server:i,universal:c.universal?.load?{type:"data",data:s,uses:l}:null,data:s??i?.data??null,slash:c.universal?.trailingSlash??i?.slash}}function ht(e,t,n){let r=e instanceof Request?e.url:e;const a=new URL(r,n);a.origin===n.origin&&(r=a.href.slice(n.origin.length));const i=le?Lt(r,a.href,t):xt(r,t);return{resolved:a,promise:i}}function Jt(e,t,n,r,a,i){if(Q)return!0;if(!a)return!1;if(a.parent&&e||a.route&&t||a.url&&n)return!0;for(const s of a.search_params)if(r.has(s))return!0;for(const s of a.params)if(i[s]!==_.params[s])return!0;for(const s of a.dependencies)if(oe.some(o=>o(new URL(s))))return!0;return!1}function qe(e,t){return e?.type==="data"?e:e?.type==="skip"?t??null:null}function Yt(e,t){if(!e)return new Set(t.searchParams.keys());const n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(const r of n){const a=e.searchParams.getAll(r),i=t.searchParams.getAll(r);a.every(s=>i.includes(s))&&i.every(s=>a.includes(s))&&n.delete(r)}return n}function zt({error:e,url:t,route:n,params:r}){return{type:"loaded",state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:Fe(b),constructors:[]}}}async function Ve({id:e,invalidating:t,url:n,params:r,route:a,preload:i}){if(L?.id===e)return ce.delete(L.token),L.promise;const{errors:s,layouts:o,leaf:l}=a,c=[...o,l];s.forEach(m=>m?.().catch(()=>{})),c.forEach(m=>m?.[1]().catch(()=>{}));const d=_.url?e!==de(_.url):!1,p=_.route?a.id!==_.route.id:!1,f=Yt(_.url,n);let u=!1;const h=c.map(async(m,g)=>{if(!m)return;const E=_.branch[g];return m[1]===E?.loader&&!Jt(u,p,d,f,E.universal?.uses,r)?E:(u=!0,De({loader:m[1],url:n,params:r,route:a,parent:async()=>{const O={};for(let C=0;C<g;C+=1)Object.assign(O,(await h[C])?.data);return O},server_data_node:qe(m[0]?{type:"skip"}:null,m[0]?E?.server:void 0)}))});for(const m of h)m.catch(()=>{});const v=[];for(let m=0;m<c.length;m+=1)if(c[m])try{v.push(await h[m])}catch(g){if(g instanceof Ue)return{type:"redirect",location:g.location};if(ce.has(i))return zt({error:await X(g,{params:r,url:n,route:{id:a.id}}),url:n,params:r,route:a});let E=Oe(g),S;if(g instanceof Ae)S=g.body;else{if(await $.updated.check())return await st(),await Y(n);S=await X(g,{params:r,url:n,route:{id:a.id}})}const O=await Xt(m,v,s);return O?fe({url:n,params:r,branch:v.slice(0,O.idx).concat(O.node),status:E,error:S,route:a}):await gt(n,{id:a.id},S,E)}else v.push(void 0);return fe({url:n,params:r,branch:v,status:200,error:null,route:a,form:t?void 0:null})}async function Xt(e,t,n){for(;e--;)if(n[e]){let r=e;for(;!t[r];)r-=1;try{return{idx:r+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function Be({status:e,error:t,url:n,route:r}){const a={};let i=null;try{const s=await De({loader:Ee,url:n,params:a,route:r,parent:()=>Promise.resolve({}),server_data_node:qe(i)}),o={node:await ae(),loader:ae,universal:null,server:null,data:null};return fe({url:n,params:a,branch:[s,o],status:e,error:t,route:null})}catch(s){if(s instanceof Ue)return Ne(new URL(s.location,location.href),{},0);throw s}}async function Qt(e){const t=e.href;if(te.has(t))return te.get(t);let n;try{const r=(async()=>{let a=await w.hooks.reroute({url:new URL(e),fetch:async(i,s)=>ht(i,s,e).promise})??e;if(typeof a=="string"){const i=new URL(e);w.hash?i.hash=a:i.pathname=a,a=i}return a})();te.set(t,r),n=await r}catch{te.delete(t);return}return n}async function Z(e,t){if(e&&!pe(e,x,w.hash)){const n=await Qt(e);if(!n)return;const r=Zt(n);for(const a of $e){const i=a.exec(r);if(i)return{id:de(e),invalidating:t,route:a,params:bt(i),url:e}}}}function Zt(e){return yt(w.hash?e.hash.replace(/^#/,"").replace(/[?#].+/,""):e.pathname.slice(x.length))||"/"}function de(e){return(w.hash?e.hash.replace(/^#/,""):e.pathname)+e.search}function pt({url:e,type:t,intent:n,delta:r,event:a,scroll:i}){let s=!1;const o=Ke(_,n,e,t,i??null);r!==void 0&&(o.navigation.delta=r),a!==void 0&&(o.navigation.event=a);const l={...o.navigation,cancel:()=>{s=!0,o.reject(new Error("navigation cancelled"))}};return z||it.forEach(c=>c(l)),s?null:o}async function K({type:e,url:t,popped:n,keepfocus:r,noscroll:a,replace_state:i,state:s={},redirect_count:o=0,nav_token:l={},accept:c=ke,block:d=ke,event:p}){const f=I;I=l;const u=await Z(t,!1),h=e==="enter"?Ke(_,u,t,e):pt({url:t,type:e,delta:n?.delta,intent:u,scroll:n?.scroll,event:p});if(!h){d(),I===l&&(I=f);return}const v=y,m=R;c(),z=!0,le&&h.navigation.type!=="enter"&&$.navigating.set(W.current=h.navigation);let g=u&&await Ve(u);if(!g){if(pe(t,x,w.hash))return await Y(t,i);g=await gt(t,{id:null},await X(new Pe(404,"Not Found",`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404,i)}if(t=u?.url||t,I!==l)return h.reject(new Error("navigation aborted")),!1;if(g.type==="redirect"){if(o<20){await K({type:e,url:new URL(g.location,t),popped:n,keepfocus:r,noscroll:a,replace_state:i,state:s,redirect_count:o+1,nav_token:l}),h.fulfil(void 0);return}g=await Be({status:500,error:await X(new Error("Redirect loop"),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}})}else g.props.page.status>=400&&await $.updated.check()&&(await st(),await Y(t,i));if(Re(),Ce(v),ut(m),g.props.page.url.pathname!==t.pathname&&(t.pathname=g.props.page.url.pathname),s=n?n.state:s,!n){const k=i?0:1,ee={[B]:y+=k,[H]:R+=k,[et]:s};(i?history.replaceState:history.pushState).call(history,ee,"",t),i||Gt(y,R)}const E=u&&L?.id===u.id?L.fork:null;L=null,g.props.page.state=s;let S;if(le){const k=(await Promise.all(Array.from(Mt,q=>q(h.navigation)))).filter(q=>typeof q=="function");if(k.length>0){let q=function(){k.forEach(ge=>{M.delete(ge)})};k.push(q),k.forEach(ge=>{M.add(ge)})}_=g.state,g.props.page&&(g.props.page.url=t);const ee=E&&await E;ee?S=ee.commit():(je.$set(g.props),ot(g.props.page),S=vt?.()),ct=!0}else await dt(g,Se,!1);const{activeElement:O}=document;await S,await ne(),await ne();let C=null;if(Ye){const k=n?n.scroll:a?D():null;k?scrollTo(k.x,k.y):(C=t.hash&&document.getElementById(mt(t)))?C.scrollIntoView():scrollTo(0,0)}const _t=document.activeElement!==O&&document.activeElement!==document.body;!r&&!_t&&on(t,!C),Ye=!0,g.props.page&&Object.assign(b,g.props.page),z=!1,e==="popstate"&&ft(R),h.fulfil(void 0),h.navigation.to&&(h.navigation.to.scroll=D()),M.forEach(k=>k(h.navigation)),$.navigating.set(W.current=null)}async function gt(e,t,n,r,a){return e.origin===he&&e.pathname===location.pathname&&!lt?await Be({status:r,error:n,url:e,route:t}):await Y(e,a)}function en(){let e,t={element:void 0,href:void 0},n;T.addEventListener("mousemove",o=>{const l=o.target;clearTimeout(e),e=setTimeout(()=>{i(l,N.hover)},20)});function r(o){o.defaultPrevented||i(o.composedPath()[0],N.tap)}T.addEventListener("mousedown",r),T.addEventListener("touchstart",r,{passive:!0});const a=new IntersectionObserver(o=>{for(const l of o)l.isIntersecting&&(ye(new URL(l.target.href)),a.unobserve(l.target))},{threshold:0});async function i(o,l){const c=nt(o,T),d=c===t.element&&c?.href===t.href&&l>=n;if(!c||d)return;const{url:p,external:f,download:u}=be(c,x,w.hash);if(f||u)return;const h=re(c),v=p&&de(_.url)===de(p);if(!(h.reload||v))if(l<=h.preload_data){t={element:c,href:c.href},n=N.tap;const m=await Z(p,!1);if(!m)return;Wt(m)}else l<=h.preload_code&&(t={element:c,href:c.href},n=l,ye(p))}function s(){a.disconnect();for(const o of T.querySelectorAll("a")){const{url:l,external:c,download:d}=be(o,x,w.hash);if(c||d)continue;const p=re(o);p.reload||(p.preload_code===N.viewport&&a.observe(o),p.preload_code===N.eager&&ye(l))}}M.add(s),s()}function X(e,t){if(e instanceof Ae)return e.body;const n=Oe(e),r=Vt(e);return w.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function pn(e,t={}){return e=new URL(Ie(e)),e.origin!==he?Promise.reject(new Error("goto: invalid URL")):Ne(e,t,0)}function tn(e){if(typeof e=="function")oe.push(e);else{const{href:t}=new URL(e,location.href);oe.push(n=>n.href===t)}}function gn(){return Q=!0,Ht()}function nn(){history.scrollRestoration="manual",addEventListener("beforeunload",t=>{let n=!1;if(ze(),!z){const r=Ke(_,void 0,null,"leave"),a={...r.navigation,cancel:()=>{n=!0,r.reject(new Error("navigation cancelled"))}};it.forEach(i=>i(a))}n?(t.preventDefault(),t.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&ze()}),navigator.connection?.saveData||en(),T.addEventListener("click",async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;const n=nt(t.composedPath()[0],T);if(!n)return;const{url:r,external:a,target:i,download:s}=be(n,x,w.hash);if(!r)return;if(i==="_parent"||i==="_top"){if(window.parent!==window)return}else if(i&&i!=="_self")return;const o=re(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&!(r.protocol==="https:"||r.protocol==="http:")||s)return;const[c,d]=(w.hash?r.hash.replace(/^#/,""):r.href).split("#"),p=c===me(location);if(a||o.reload&&(!p||!d)){pt({url:r,type:"link",event:t})?z=!0:t.preventDefault();return}if(d!==void 0&&p){const[,f]=_.url.href.split("#");if(f===d){if(t.preventDefault(),d===""||d==="top"&&n.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const u=n.ownerDocument.getElementById(decodeURIComponent(d));u&&(u.scrollIntoView(),u.focus())}return}if(F=!0,Ce(y),e(r),!o.replace_state)return;F=!1}t.preventDefault(),await new Promise(f=>{requestAnimationFrame(()=>{setTimeout(f,0)}),setTimeout(f,100)}),await K({type:"link",url:r,keepfocus:o.keepfocus,noscroll:o.noscroll,replace_state:o.replace_state??r.href===location.href,event:t})}),T.addEventListener("submit",t=>{if(t.defaultPrevented)return;const n=HTMLFormElement.prototype.cloneNode.call(t.target),r=t.submitter;if((r?.formTarget||n.target)==="_blank"||(r?.formMethod||n.method)!=="get")return;const s=new URL(r?.hasAttribute("formaction")&&r?.formAction||n.action);if(pe(s,x,!1))return;const o=t.target,l=re(o);if(l.reload)return;t.preventDefault(),t.stopPropagation();const c=new FormData(o,r);s.search=new URLSearchParams(c).toString(),K({type:"form",url:s,keepfocus:l.keepfocus,noscroll:l.noscroll,replace_state:l.replace_state??s.href===location.href,event:t})}),addEventListener("popstate",async t=>{if(!xe){if(t.state?.[B]){const n=t.state[B];if(I={},n===y)return;const r=j[n],a=t.state[et]??{},i=new URL(t.state[jt]??location.href),s=t.state[H],o=_.url?me(location)===me(_.url):!1;if(s===R&&(ct||o)){a!==b.state&&(b.state=a),e(i),j[y]=D(),r&&scrollTo(r.x,r.y),y=n;return}const c=n-y;await K({type:"popstate",url:i,popped:{state:a,scroll:r,delta:c},accept:()=>{y=n,R=s},block:()=>{history.go(-c)},nav_token:I,event:t})}else if(!F){const n=new URL(location.href);e(n),w.hash&&location.reload()}}}),addEventListener("hashchange",()=>{F&&(F=!1,history.replaceState({...history.state,[B]:++y,[H]:R},"",location.href))});for(const t of document.querySelectorAll("link"))Ft.has(t.rel)&&(t.href=t.href);addEventListener("pageshow",t=>{t.persisted&&$.navigating.set(W.current=null)});function e(t){_.url=b.url=t,$.page.set(Fe(b)),$.page.notify()}}async function rn(e,{status:t=200,error:n,node_ids:r,params:a,route:i,server_route:s,data:o,form:l}){lt=!0;const c=new URL(location.href);let d;({params:a={},route:i={id:null}}=await Z(c,!1)||{}),d=$e.find(({id:u})=>u===i.id);let p,f=!0;try{const u=r.map(async(v,m)=>{const g=o[m];return g?.uses&&(g.uses=an(g.uses)),De({loader:w.nodes[v],url:c,params:a,route:i,parent:async()=>{const E={};for(let S=0;S<m;S+=1)Object.assign(E,(await u[S]).data);return E},server_data_node:qe(g)})}),h=await Promise.all(u);if(d){const v=d.layouts;for(let m=0;m<v.length;m++)v[m]||h.splice(m,0,void 0)}p=fe({url:c,params:a,branch:h,status:t,error:n,form:l,route:d??null})}catch(u){if(u instanceof Ue){await Y(new URL(u.location,location.href));return}p=await Be({status:Oe(u),error:await X(u,{url:c,params:a,route:i}),url:c,route:i}),e.textContent="",f=!1}p.props.page&&(p.props.page.state={}),await dt(p,e,f)}function an(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}let xe=!1;function on(e,t=!0){const n=document.querySelector("[autofocus]");if(n)n.focus();else{const r=mt(e);if(r&&document.getElementById(r)){const{x:i,y:s}=D();setTimeout(()=>{const o=history.state;xe=!0,location.replace(new URL(`#${r}`,location.href)),history.replaceState(o,"",e),t&&scrollTo(i,s),xe=!1})}else{const i=document.body,s=i.getAttribute("tabindex");i.tabIndex=-1,i.focus({preventScroll:!0,focusVisible:!1}),s!==null?i.setAttribute("tabindex",s):i.removeAttribute("tabindex")}const a=getSelection();if(a&&a.type!=="None"){const i=[];for(let s=0;s<a.rangeCount;s+=1)i.push(a.getRangeAt(s));setTimeout(()=>{if(a.rangeCount===i.length){for(let s=0;s<a.rangeCount;s+=1){const o=i[s],l=a.getRangeAt(s);if(o.commonAncestorContainer!==l.commonAncestorContainer||o.startContainer!==l.startContainer||o.endContainer!==l.endContainer||o.startOffset!==l.startOffset||o.endOffset!==l.endOffset)return}a.removeAllRanges()}})}}}function Ke(e,t,n,r,a=null){let i,s;const o=new Promise((c,d)=>{i=c,s=d});return o.catch(()=>{}),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:D()},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n,scroll:a},willUnload:!t,type:r,complete:o},fulfil:i,reject:s}}function Fe(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function sn(e){const t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function mt(e){let t;if(w.hash){const[,,n]=e.hash.split("#",3);t=n??""}else t=e.hash.slice(1);return decodeURIComponent(t)}export{hn as a,pn as g,gn as i,cn as l,b as p,$ as s};