@unbrained/pm-web 2026.8.10 → 2026.8.14

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 (173) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/app.d.ts +16 -0
  3. package/dist/app.js +16 -0
  4. package/dist/app.js.map +1 -1
  5. package/dist/auth.d.ts +5 -0
  6. package/dist/auth.js.map +1 -1
  7. package/dist/board.d.ts +53 -0
  8. package/dist/board.js +48 -0
  9. package/dist/board.js.map +1 -1
  10. package/dist/crypto.d.ts +23 -0
  11. package/dist/crypto.js +32 -0
  12. package/dist/crypto.js.map +1 -1
  13. package/dist/db.d.ts +19 -0
  14. package/dist/db.js +19 -0
  15. package/dist/db.js.map +1 -1
  16. package/dist/ical.d.ts +72 -0
  17. package/dist/ical.js +73 -0
  18. package/dist/ical.js.map +1 -1
  19. package/dist/index.d.ts +11 -0
  20. package/dist/index.js +52 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/middleware/auth.d.ts +8 -0
  23. package/dist/middleware/auth.js.map +1 -1
  24. package/dist/oidc.d.ts +87 -0
  25. package/dist/oidc.js +113 -0
  26. package/dist/oidc.js.map +1 -1
  27. package/dist/routes/admin.js +15 -0
  28. package/dist/routes/admin.js.map +1 -1
  29. package/dist/routes/github.js +13 -0
  30. package/dist/routes/github.js.map +1 -1
  31. package/dist/routes/oidc.d.ts +10 -0
  32. package/dist/routes/oidc.js +51 -0
  33. package/dist/routes/oidc.js.map +1 -1
  34. package/dist/routes/pm.js +132 -1
  35. package/dist/routes/pm.js.map +1 -1
  36. package/dist/routes/sharing.js +8 -0
  37. package/dist/routes/sharing.js.map +1 -1
  38. package/dist/services/mutation-event-watcher.js +13 -0
  39. package/dist/services/mutation-event-watcher.js.map +1 -1
  40. package/dist/services/pm-runner.d.ts +82 -0
  41. package/dist/services/pm-runner.js +121 -0
  42. package/dist/services/pm-runner.js.map +1 -1
  43. package/dist/services/project-watcher.d.ts +22 -0
  44. package/dist/services/project-watcher.js +51 -0
  45. package/dist/services/project-watcher.js.map +1 -1
  46. package/dist/services/realtime-bus.d.ts +46 -0
  47. package/dist/services/realtime-bus.js +59 -0
  48. package/dist/services/realtime-bus.js.map +1 -1
  49. package/dist/services/sse.d.ts +134 -0
  50. package/dist/services/sse.js +145 -0
  51. package/dist/services/sse.js.map +1 -1
  52. package/manifest.json +1 -1
  53. package/package.json +5 -3
  54. package/public/src/app.js +44 -1
  55. package/public/src/app.js.map +1 -1
  56. package/public/src/app.ts +44 -1
  57. package/public/src/components/modals.js +11 -0
  58. package/public/src/components/modals.js.map +1 -1
  59. package/public/src/components/modals.ts +11 -0
  60. package/public/src/components/toast.js +2 -0
  61. package/public/src/components/toast.js.map +1 -1
  62. package/public/src/components/toast.ts +2 -0
  63. package/public/src/constants.js +21 -4
  64. package/public/src/constants.js.map +1 -1
  65. package/public/src/constants.ts +21 -4
  66. package/public/src/filters.js +10 -7
  67. package/public/src/filters.js.map +1 -1
  68. package/public/src/filters.ts +10 -7
  69. package/public/src/i18n.js +11 -1
  70. package/public/src/i18n.js.map +1 -1
  71. package/public/src/i18n.ts +13 -1
  72. package/public/src/state.js +3 -0
  73. package/public/src/state.js.map +1 -1
  74. package/public/src/state.ts +3 -0
  75. package/public/src/sw.ts +71 -7
  76. package/public/src/theme.js +13 -1
  77. package/public/src/theme.js.map +1 -1
  78. package/public/src/theme.ts +15 -1
  79. package/public/src/types.ts +2 -0
  80. package/public/src/utils.js +26 -1
  81. package/public/src/utils.js.map +1 -1
  82. package/public/src/utils.ts +26 -1
  83. package/public/src/views/activity.js +1 -0
  84. package/public/src/views/activity.js.map +1 -1
  85. package/public/src/views/activity.ts +1 -0
  86. package/public/src/views/admin.js +134 -0
  87. package/public/src/views/admin.js.map +1 -1
  88. package/public/src/views/admin.ts +134 -0
  89. package/public/src/views/auth.js +31 -0
  90. package/public/src/views/auth.js.map +1 -1
  91. package/public/src/views/auth.ts +31 -0
  92. package/public/src/views/calendar.js +3 -0
  93. package/public/src/views/calendar.js.map +1 -1
  94. package/public/src/views/calendar.ts +3 -0
  95. package/public/src/views/comments-audit.js +1 -0
  96. package/public/src/views/comments-audit.js.map +1 -1
  97. package/public/src/views/comments-audit.ts +1 -0
  98. package/public/src/views/config.js +67 -0
  99. package/public/src/views/config.js.map +1 -1
  100. package/public/src/views/config.ts +67 -0
  101. package/public/src/views/context.js +2 -0
  102. package/public/src/views/context.js.map +1 -1
  103. package/public/src/views/context.ts +2 -0
  104. package/public/src/views/create.js +3 -0
  105. package/public/src/views/create.js.map +1 -1
  106. package/public/src/views/create.ts +3 -0
  107. package/public/src/views/dedupe.js +1 -0
  108. package/public/src/views/dedupe.js.map +1 -1
  109. package/public/src/views/dedupe.ts +1 -0
  110. package/public/src/views/export.js +6 -0
  111. package/public/src/views/export.js.map +1 -1
  112. package/public/src/views/export.ts +6 -0
  113. package/public/src/views/github.js +58 -0
  114. package/public/src/views/github.js.map +1 -1
  115. package/public/src/views/github.ts +58 -0
  116. package/public/src/views/graph-canvas.js +18 -0
  117. package/public/src/views/graph-canvas.js.map +1 -1
  118. package/public/src/views/graph-canvas.ts +20 -0
  119. package/public/src/views/graph.js +41 -0
  120. package/public/src/views/graph.js.map +1 -1
  121. package/public/src/views/graph.ts +42 -1
  122. package/public/src/views/groups.js +45 -0
  123. package/public/src/views/groups.js.map +1 -1
  124. package/public/src/views/groups.ts +45 -0
  125. package/public/src/views/guide.js +3 -0
  126. package/public/src/views/guide.js.map +1 -1
  127. package/public/src/views/guide.ts +3 -0
  128. package/public/src/views/health.js +3 -0
  129. package/public/src/views/health.js.map +1 -1
  130. package/public/src/views/health.ts +3 -0
  131. package/public/src/views/items.js +196 -6
  132. package/public/src/views/items.js.map +1 -1
  133. package/public/src/views/items.ts +196 -6
  134. package/public/src/views/normalize.js +2 -0
  135. package/public/src/views/normalize.js.map +1 -1
  136. package/public/src/views/normalize.ts +2 -0
  137. package/public/src/views/packages.js +41 -0
  138. package/public/src/views/packages.js.map +1 -1
  139. package/public/src/views/packages.ts +41 -0
  140. package/public/src/views/plan-execution.js +6 -0
  141. package/public/src/views/plan-execution.js.map +1 -1
  142. package/public/src/views/plan-execution.ts +8 -0
  143. package/public/src/views/plan.js +145 -0
  144. package/public/src/views/plan.js.map +1 -1
  145. package/public/src/views/plan.ts +146 -1
  146. package/public/src/views/projects.js +60 -0
  147. package/public/src/views/projects.js.map +1 -1
  148. package/public/src/views/projects.ts +60 -0
  149. package/public/src/views/router.js +43 -0
  150. package/public/src/views/router.js.map +1 -1
  151. package/public/src/views/router.ts +43 -0
  152. package/public/src/views/search.js +5 -0
  153. package/public/src/views/search.js.map +1 -1
  154. package/public/src/views/search.ts +5 -0
  155. package/public/src/views/settings.js +36 -0
  156. package/public/src/views/settings.js.map +1 -1
  157. package/public/src/views/settings.ts +36 -0
  158. package/public/src/views/shared.js +1 -0
  159. package/public/src/views/shared.js.map +1 -1
  160. package/public/src/views/shared.ts +1 -0
  161. package/public/src/views/sharing.js +32 -0
  162. package/public/src/views/sharing.js.map +1 -1
  163. package/public/src/views/sharing.ts +32 -0
  164. package/public/src/views/stats.js +1 -0
  165. package/public/src/views/stats.js.map +1 -1
  166. package/public/src/views/stats.ts +1 -0
  167. package/public/src/views/templates.js +4 -0
  168. package/public/src/views/templates.js.map +1 -1
  169. package/public/src/views/templates.ts +4 -0
  170. package/public/src/views/validate.js +1 -0
  171. package/public/src/views/validate.js.map +1 -1
  172. package/public/src/views/validate.ts +1 -0
  173. package/public/sw.js +60 -5
@@ -6,6 +6,11 @@ import { api } from '../api.js';
6
6
  import { escHtml } from '../utils.js';
7
7
  import { confirmDialog } from '../components/modals.js';
8
8
  import { toast } from '../components/toast.js';
9
+ /**
10
+ * Renders the GitHub integration page for the current project: a header, a
11
+ * token-required prompt when the user has no GitHub token, and otherwise the
12
+ * linked-repository content fetched from the API.
13
+ */
9
14
  export async function renderGitHubView() {
10
15
  const el = document.getElementById('content-github');
11
16
  if (!el)
@@ -47,6 +52,14 @@ export async function renderGitHubView() {
47
52
  contentEl.innerHTML = `<div class="empty-state"><div class="empty-state-text">Error: ${escHtml(err instanceof Error ? err.message : String(err))}</div></div>`;
48
53
  }
49
54
  }
55
+ /**
56
+ * Builds the HTML for the integration page from the repository response: a
57
+ * link panel with owner and repo inputs (plus an unlink control when linked),
58
+ * and import/export panels shown only while a repository is linked.
59
+ *
60
+ * @param data - repository link response describing the current integration
61
+ * state.
62
+ */
50
63
  function renderGitHubContent(data) {
51
64
  const linked = data.linked;
52
65
  const owner = data.owner || '';
@@ -116,6 +129,11 @@ function renderGitHubContent(data) {
116
129
  if (contentEl)
117
130
  contentEl.innerHTML = linkPanel + syncPanels;
118
131
  }
132
+ /**
133
+ * Reads the owner and repo inputs, validates both, and PATCHes them onto the
134
+ * current project's link, then refreshes the view. Surfaces validation and
135
+ * server errors inline.
136
+ */
119
137
  export async function linkGitHubRepo() {
120
138
  const owner = document.getElementById('gh-owner')?.value?.trim() || '';
121
139
  const repo = document.getElementById('gh-repo')?.value?.trim() || '';
@@ -154,6 +172,10 @@ export async function linkGitHubRepo() {
154
172
  }
155
173
  }
156
174
  }
175
+ /**
176
+ * Confirms, then disables the integration for the current project by
177
+ * clearing the linked owner and repo, and refreshes the view.
178
+ */
157
179
  export function unlinkGitHubRepo() {
158
180
  confirmDialog('Unlink Repository?', 'GitHub integration will be disabled for this project.', async () => {
159
181
  try {
@@ -166,6 +188,11 @@ export function unlinkGitHubRepo() {
166
188
  }
167
189
  });
168
190
  }
191
+ /**
192
+ * Fetches the repository's open issues and renders them as selectable
193
+ * checkboxes with select-all and import controls, or an empty message when
194
+ * none are found.
195
+ */
169
196
  export async function loadGitHubIssues() {
170
197
  const el = document.getElementById('github-issues-list');
171
198
  if (!el)
@@ -202,9 +229,19 @@ export async function loadGitHubIssues() {
202
229
  el.innerHTML = `<div style="color:var(--status-blocked);font-size:13px">Error: ${escHtml(err instanceof Error ? err.message : String(err))}</div>`;
203
230
  }
204
231
  }
232
+ /**
233
+ * Checks or unchecks every issue checkbox in the import list.
234
+ *
235
+ * @param checked - whether to check or clear the boxes.
236
+ */
205
237
  export function selectAllIssues(checked) {
206
238
  document.querySelectorAll('.gh-issue-cb').forEach(cb => { cb.checked = checked; });
207
239
  }
240
+ /**
241
+ * Fetches the project's items and their existing issue links, then renders
242
+ * each item as a selectable checkbox annotated with a link to any
243
+ * already-pushed issue and a per-row update control.
244
+ */
208
245
  export async function loadItemsForPush() {
209
246
  const el = document.getElementById('github-push-list');
210
247
  if (!el)
@@ -252,9 +289,19 @@ export async function loadItemsForPush() {
252
289
  el.innerHTML = `<div style="color:var(--status-blocked);font-size:13px">Error: ${escHtml(err instanceof Error ? err.message : String(err))}</div>`;
253
290
  }
254
291
  }
292
+ /**
293
+ * Checks or unchecks every push-candidate item checkbox in the export list.
294
+ *
295
+ * @param checked - whether to check or clear the boxes.
296
+ */
255
297
  export function selectAllPushItems(checked) {
256
298
  document.querySelectorAll('.gh-push-cb').forEach(cb => { cb.checked = checked; });
257
299
  }
300
+ /**
301
+ * Pushes the checked items to GitHub as issues, toasts the count of created
302
+ * and failed items, renders a results summary, and reloads the push list;
303
+ * re-enables the button afterwards.
304
+ */
258
305
  export async function pushItemsToGitHub() {
259
306
  const checked = Array.from(document.querySelectorAll('.gh-push-cb:checked'));
260
307
  if (checked.length === 0) {
@@ -300,6 +347,12 @@ export async function pushItemsToGitHub() {
300
347
  }
301
348
  }
302
349
  }
350
+ /**
351
+ * Re-pushes a single item to its linked issue to refresh it, toasts the
352
+ * result, and reloads the push list.
353
+ *
354
+ * @param itemId - identifier of the pm item to refresh on GitHub.
355
+ */
303
356
  export async function updateGitHubIssue(itemId) {
304
357
  try {
305
358
  const data = await api('PATCH', `/projects/${state.currentProject.id}/github/push/${encodeURIComponent(itemId)}`);
@@ -310,6 +363,11 @@ export async function updateGitHubIssue(itemId) {
310
363
  toast(`Update failed: ${err instanceof Error ? err.message : String(err)}`, 'error');
311
364
  }
312
365
  }
366
+ /**
367
+ * Imports the checked issues as new pm items, toasts the count of created and
368
+ * failed imports, renders a results summary, refreshes the items badge, and
369
+ * re-enables the button.
370
+ */
313
371
  export async function importGitHubIssues() {
314
372
  const checked = Array.from(document.querySelectorAll('.gh-issue-cb:checked'));
315
373
  if (checked.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"github.js","sourceRoot":"","sources":["github.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github.js","sourceRoot":"","sources":["github.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,11 @@ import { confirmDialog } from '../components/modals.js';
8
8
  import { toast } from '../components/toast.js';
9
9
  import type { GitHubImportResponse, GitHubIssuesResponse, GitHubIssueRow, GitHubPushResponse, GitHubRepoResponse, ListResponse } from '../api-types.js';
10
10
 
11
+ /**
12
+ * Renders the GitHub integration page for the current project: a header, a
13
+ * token-required prompt when the user has no GitHub token, and otherwise the
14
+ * linked-repository content fetched from the API.
15
+ */
11
16
  export async function renderGitHubView(): Promise<void> {
12
17
  const el = document.getElementById('content-github');
13
18
  if (!el) return;
@@ -46,6 +51,14 @@ export async function renderGitHubView(): Promise<void> {
46
51
  }
47
52
  }
48
53
 
54
+ /**
55
+ * Builds the HTML for the integration page from the repository response: a
56
+ * link panel with owner and repo inputs (plus an unlink control when linked),
57
+ * and import/export panels shown only while a repository is linked.
58
+ *
59
+ * @param data - repository link response describing the current integration
60
+ * state.
61
+ */
49
62
  function renderGitHubContent(data: GitHubRepoResponse): void {
50
63
  const linked = data.linked;
51
64
  const owner = data.owner || '';
@@ -119,6 +132,11 @@ function renderGitHubContent(data: GitHubRepoResponse): void {
119
132
  if (contentEl) contentEl.innerHTML = linkPanel + syncPanels;
120
133
  }
121
134
 
135
+ /**
136
+ * Reads the owner and repo inputs, validates both, and PATCHes them onto the
137
+ * current project's link, then refreshes the view. Surfaces validation and
138
+ * server errors inline.
139
+ */
122
140
  export async function linkGitHubRepo(): Promise<void> {
123
141
  const owner = (document.getElementById('gh-owner') as HTMLInputElement | null)?.value?.trim() || '';
124
142
  const repo = (document.getElementById('gh-repo') as HTMLInputElement | null)?.value?.trim() || '';
@@ -137,6 +155,10 @@ export async function linkGitHubRepo(): Promise<void> {
137
155
  }
138
156
  }
139
157
 
158
+ /**
159
+ * Confirms, then disables the integration for the current project by
160
+ * clearing the linked owner and repo, and refreshes the view.
161
+ */
140
162
  export function unlinkGitHubRepo(): void {
141
163
  confirmDialog('Unlink Repository?', 'GitHub integration will be disabled for this project.', async () => {
142
164
  try {
@@ -147,6 +169,11 @@ export function unlinkGitHubRepo(): void {
147
169
  });
148
170
  }
149
171
 
172
+ /**
173
+ * Fetches the repository's open issues and renders them as selectable
174
+ * checkboxes with select-all and import controls, or an empty message when
175
+ * none are found.
176
+ */
150
177
  export async function loadGitHubIssues(): Promise<void> {
151
178
  const el = document.getElementById('github-issues-list');
152
179
  if (!el) return;
@@ -182,10 +209,20 @@ export async function loadGitHubIssues(): Promise<void> {
182
209
  }
183
210
  }
184
211
 
212
+ /**
213
+ * Checks or unchecks every issue checkbox in the import list.
214
+ *
215
+ * @param checked - whether to check or clear the boxes.
216
+ */
185
217
  export function selectAllIssues(checked: boolean): void {
186
218
  document.querySelectorAll('.gh-issue-cb').forEach(cb => { (cb as HTMLInputElement).checked = checked; });
187
219
  }
188
220
 
221
+ /**
222
+ * Fetches the project's items and their existing issue links, then renders
223
+ * each item as a selectable checkbox annotated with a link to any
224
+ * already-pushed issue and a per-row update control.
225
+ */
189
226
  export async function loadItemsForPush(): Promise<void> {
190
227
  const el = document.getElementById('github-push-list');
191
228
  if (!el) return;
@@ -233,10 +270,20 @@ export async function loadItemsForPush(): Promise<void> {
233
270
  }
234
271
  }
235
272
 
273
+ /**
274
+ * Checks or unchecks every push-candidate item checkbox in the export list.
275
+ *
276
+ * @param checked - whether to check or clear the boxes.
277
+ */
236
278
  export function selectAllPushItems(checked: boolean): void {
237
279
  document.querySelectorAll('.gh-push-cb').forEach(cb => { (cb as HTMLInputElement).checked = checked; });
238
280
  }
239
281
 
282
+ /**
283
+ * Pushes the checked items to GitHub as issues, toasts the count of created
284
+ * and failed items, renders a results summary, and reloads the push list;
285
+ * re-enables the button afterwards.
286
+ */
240
287
  export async function pushItemsToGitHub(): Promise<void> {
241
288
  const checked = Array.from(document.querySelectorAll('.gh-push-cb:checked'));
242
289
  if (checked.length === 0) { toast('Select at least one item to push', 'info'); return; }
@@ -267,6 +314,12 @@ export async function pushItemsToGitHub(): Promise<void> {
267
314
  }
268
315
  }
269
316
 
317
+ /**
318
+ * Re-pushes a single item to its linked issue to refresh it, toasts the
319
+ * result, and reloads the push list.
320
+ *
321
+ * @param itemId - identifier of the pm item to refresh on GitHub.
322
+ */
270
323
  export async function updateGitHubIssue(itemId: string): Promise<void> {
271
324
  try {
272
325
  const data = await api('PATCH', `/projects/${state.currentProject!.id}/github/push/${encodeURIComponent(itemId)}`) as { ok?: boolean; issueNumber?: number; issueUrl?: string };
@@ -277,6 +330,11 @@ export async function updateGitHubIssue(itemId: string): Promise<void> {
277
330
  }
278
331
  }
279
332
 
333
+ /**
334
+ * Imports the checked issues as new pm items, toasts the count of created and
335
+ * failed imports, renders a results summary, refreshes the items badge, and
336
+ * re-enables the button.
337
+ */
280
338
  export async function importGitHubIssues(): Promise<void> {
281
339
  const checked = Array.from(document.querySelectorAll('.gh-issue-cb:checked'));
282
340
  if (checked.length === 0) { toast('Select at least one issue to import','info'); return; }
@@ -69,6 +69,7 @@ function getEdgeColor(type) {
69
69
  function truncate(text, maxLen) {
70
70
  return text.length > maxLen ? text.slice(0, maxLen - 1) + '…' : text;
71
71
  }
72
+ /** Parses a six-digit `#rrggbb` hex color string into red, green, and blue byte values, returning null when the input does not match that format. */
72
73
  function hexToRgb(hex) {
73
74
  const m = /^#([0-9a-f]{6})$/i.exec(hex);
74
75
  if (!m)
@@ -82,6 +83,7 @@ function hexAlpha(hex, a) {
82
83
  return hex;
83
84
  return `rgba(${c.r},${c.g},${c.b},${a})`;
84
85
  }
86
+ /** Computes starting positions for the given nodes arranged along a golden-angle (sunflower) spiral so the force simulation begins evenly spread. */
85
87
  function initialPositions(nodes) {
86
88
  const golden = 2.399963;
87
89
  return nodes.map((_, i) => {
@@ -127,6 +129,7 @@ function convexHull(pts) {
127
129
  return hull;
128
130
  }
129
131
  // escHtml is imported from utils.ts in graph.ts — canvas uses its own for DOM tooltip only
132
+ /** Escapes the four HTML-significant characters (ampersand, angle brackets, and double quote) so a string can be safely interpolated into DOM markup such as the canvas tooltip. */
130
133
  function escHtml(s) {
131
134
  return s
132
135
  .replace(/&/g, '&amp;')
@@ -137,6 +140,7 @@ function escHtml(s) {
137
140
  // ═══════════════════════════════════════════════════════════════
138
141
  // GraphCanvas class
139
142
  // ═══════════════════════════════════════════════════════════════
143
+ /** Canvas 2D renderer and force-directed physics simulation for the knowledge graph: draws nodes, edges, particles, minimap, and HUD, and handles pan, zoom, drag, select, and keyboard interaction. */
140
144
  export class GraphCanvas {
141
145
  canvas;
142
146
  ctx;
@@ -250,6 +254,7 @@ export class GraphCanvas {
250
254
  this.startLoop();
251
255
  }
252
256
  // ── Public API ─────────────────────────────────────────────
257
+ /** Loads the given nodes and edges into the simulation, preserving prior node positions where possible, precomputing bidirectional edge pairs, recoloring nodes, scheduling the initial zoom-to-fit, and applying the hierarchical layout when selected. */
253
258
  setData(nodes, edges) {
254
259
  const prevPos = new Map(this.nodes.map((n) => [n.id, { x: n.x, y: n.y }]));
255
260
  const initPos = initialPositions(nodes);
@@ -301,6 +306,7 @@ export class GraphCanvas {
301
306
  this.hoveredEdge = null;
302
307
  this.hideTooltip();
303
308
  }
309
+ /** Merges a partial filter into the current filter, rebuilding keyboard-navigation order, resetting flow particles when the selection changes, and recoloring nodes when the color mode or tag changes. */
304
310
  setFilter(filter) {
305
311
  const prevMode = this.filter.colorMode;
306
312
  const prevTag = this.filter.colorTag;
@@ -317,8 +323,10 @@ export class GraphCanvas {
317
323
  else if (filter.colorTag !== undefined && filter.colorTag !== prevTag)
318
324
  this.recolorNodes();
319
325
  }
326
+ /** Returns the current tag-to-color map used when coloring nodes by tag. */
320
327
  getTagColorMap() { return this.tagColorMap; }
321
328
  // Live physics control — used by the physics sliders panel
329
+ /** Updates one or more live physics constants (repulsion, link distance, center gravity, link strength) and reheats the simulation so the new values take effect. */
322
330
  setPhysicsParams(params) {
323
331
  if (params.repulsion !== undefined)
324
332
  this.REPULSE = params.repulsion;
@@ -332,9 +340,11 @@ export class GraphCanvas {
332
340
  this.SPRING = params.linkStrength;
333
341
  this.reheat();
334
342
  }
343
+ /** Returns the current physics constants (repulsion, link distance, center force, and link strength) so external sliders can reflect them. */
335
344
  getPhysicsParams() {
336
345
  return { repulsion: this.REPULSE, linkDistance: this.REST_LEN, centerForce: this.CENTER, linkStrength: this.SPRING };
337
346
  }
347
+ /** Sets the selected node id, resets flow particles, and flies the camera to the node when an id is given. */
338
348
  setSelected(id) {
339
349
  this.filter = { ...this.filter, selectedId: id };
340
350
  this.particles = [];
@@ -345,11 +355,13 @@ export class GraphCanvas {
345
355
  this.flyTo(node);
346
356
  }
347
357
  }
358
+ /** Flies the camera to center on the node with the given id, if it exists. */
348
359
  jumpToNode(id) {
349
360
  const node = this.nodeMap.get(id);
350
361
  if (node)
351
362
  this.flyTo(node);
352
363
  }
364
+ /** Animates the camera to frame all visible nodes with padding by setting a fly-to target computed from their bounding box. */
353
365
  fitView() {
354
366
  if (!this.nodes.length)
355
367
  return;
@@ -374,16 +386,19 @@ export class GraphCanvas {
374
386
  scale: s,
375
387
  };
376
388
  }
389
+ /** Pauses or resumes the physics simulation and returns the new paused state; resuming also bumps the simulation alpha. */
377
390
  togglePhysics() {
378
391
  this.paused = !this.paused;
379
392
  if (!this.paused)
380
393
  this.alpha = Math.max(this.alpha, 0.05);
381
394
  return this.paused;
382
395
  }
396
+ /** Resumes the simulation and sets the alpha to 0.3 so nodes re-settle into a new layout. */
383
397
  reheat() {
384
398
  this.alpha = 0.3;
385
399
  this.paused = false;
386
400
  }
401
+ /** Switches to the given layout, applying the topological hierarchical layout or, for force mode, jittering node positions and reheating the simulation. */
387
402
  setLayout(layout) {
388
403
  if (this.layout === layout)
389
404
  return;
@@ -400,9 +415,11 @@ export class GraphCanvas {
400
415
  this.reheat();
401
416
  }
402
417
  }
418
+ /** Enables or disables edge bundling, which routes many same-type edges with control points biased toward a shared centroid. */
403
419
  setEdgeBundling(enabled) {
404
420
  this.edgeBundling = enabled;
405
421
  }
422
+ /** Exports the canvas as a PNG, delegating to the configured callback if provided, otherwise triggering a browser download of the canvas image data. */
406
423
  exportPng() {
407
424
  if (this.onExportPng) {
408
425
  this.onExportPng(this.canvas);
@@ -625,6 +642,7 @@ export class GraphCanvas {
625
642
  }
626
643
  return best;
627
644
  }
645
+ /** Tears down the canvas: stops the animation loop and initial-fit timer, aborts bound event listeners, disconnects the ResizeObserver, and removes the canvas and its tooltip from the DOM. */
628
646
  destroy() {
629
647
  this.destroyed = true;
630
648
  if (this.rafId !== null)