@graphty/graphty-element 2.3.0 → 2.3.1

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 (48) hide show
  1. package/dist/ai.js +115 -222
  2. package/dist/catalog.js +56 -55
  3. package/dist/chunks/{AiManager-Bd_r1Hei.js → AiManager-BBmGJbH4.js} +793 -654
  4. package/dist/chunks/{DataSource-bt0DhBjG.js → DataSource-OeN3NeyD.js} +1 -1
  5. package/dist/chunks/{GraphSession-iNyKm7Ds.js → GraphSession-Bef1AYw9.js} +2136 -2104
  6. package/dist/chunks/{GraphStyle-D0PXnZKu.js → GraphStyle-Cwr55SAE.js} +5 -2
  7. package/dist/chunks/{VoiceInputAdapter-DszYl6Ha.js → VoiceInputAdapter-Dr9Gcmds.js} +1 -1
  8. package/dist/chunks/{XRPivotCameraController-XtxbbZ-D.js → XRPivotCameraController-BbfgZWpS.js} +1 -1
  9. package/dist/chunks/algorithms-CpX56sUB.js +3482 -0
  10. package/dist/chunks/{capability-check-BqIEXcun.js → capability-check-Blhb2aBB.js} +1 -1
  11. package/dist/chunks/{detect-DM29BEaB.js → detect-Cqwshr9a.js} +1 -1
  12. package/dist/chunks/{format-detection-BEdmtvsy.js → format-detection-BXGO1lSn.js} +1 -1
  13. package/dist/chunks/{index-CD0_RJv-.js → index-C0mIoumR.js} +2258 -2129
  14. package/dist/chunks/optionsFromZod-17lkrAJs.js +2565 -0
  15. package/dist/chunks/paletteRegistry-x7WOEKZY.js +1153 -0
  16. package/dist/chunks/scales-BRwl51k8.js +3047 -0
  17. package/dist/custom-elements.json +1 -1
  18. package/dist/extend.js +42 -42
  19. package/dist/graphty-catalog.json +1 -1
  20. package/dist/graphty.bundle.js +25814 -25456
  21. package/dist/graphty.js +29 -29
  22. package/dist/schema.js +1 -1
  23. package/dist/session.d.ts +1 -1
  24. package/dist/session.js +28 -29
  25. package/dist/src/Graph.d.ts +33 -3
  26. package/dist/src/camera/builtins.d.ts +14 -1
  27. package/dist/src/camera/types.d.ts +7 -0
  28. package/dist/src/cameras/CameraManager.d.ts +13 -0
  29. package/dist/src/cameras/OrbitCameraController.d.ts +9 -0
  30. package/dist/src/catalog/types.d.ts +10 -0
  31. package/dist/src/config/GraphStyle.d.ts +5 -1
  32. package/dist/src/config/StyleTemplate.d.ts +2 -2
  33. package/dist/src/graphty-element.d.ts +11 -6
  34. package/dist/src/managers/StylePainter.d.ts +9 -0
  35. package/dist/src/managers/UpdateManager.d.ts +5 -0
  36. package/dist/src/session/results/index.d.ts +1 -1
  37. package/dist/src/session/results/statistics.d.ts +8 -1
  38. package/dist/src/session/results/types.d.ts +33 -0
  39. package/dist/src/session/selection/targets.d.ts +4 -1
  40. package/dist/src/session/styles/predicate.d.ts +26 -1
  41. package/dist/src/session/styles/repaint.d.ts +11 -0
  42. package/dist/src/session/styles/selector.d.ts +13 -1
  43. package/dist/src/session/styles/sources.d.ts +9 -0
  44. package/package.json +1 -1
  45. package/dist/chunks/Algorithm-RQ629NLb.js +0 -494
  46. package/dist/chunks/cameras-ii4vngYY.js +0 -435
  47. package/dist/chunks/paletteRegistry-DnWHQsAD.js +0 -3166
  48. package/dist/chunks/scales-DyuwlJKI.js +0 -6087
package/dist/ai.js CHANGED
@@ -1,124 +1,17 @@
1
- import { f as p } from "./chunks/AiManager-Bd_r1Hei.js";
2
- import { A as L, a as M, b as D, C as V, M as j, S as E, c as z, V as N, d as q, e as W, g as G, h as T, i as F, j as U, k as _, l as B, m as J, q as O, s as Y, n as H, o as Q, p as K, r as X, z as Z } from "./chunks/AiManager-Bd_r1Hei.js";
3
- import { A as te } from "./chunks/ApiKeyManager-C0ac91dE.js";
4
- import { V as se } from "./chunks/VoiceInputAdapter-DszYl6Ha.js";
5
- import { z as r } from "zod";
6
- import { A as u } from "./chunks/Algorithm-RQ629NLb.js";
7
- const m = r.object({
8
- namespace: r.string().describe("The namespace of the algorithm (e.g., 'graphty')"),
9
- type: r.string().describe("The type of algorithm to run (e.g., 'degree', 'pagerank')")
10
- }), h = r.object({
11
- namespace: r.string().optional().describe("Optional namespace to filter algorithms by")
12
- }), w = {
13
- name: "runAlgorithm",
14
- description: "Run a graph algorithm to analyze the graph structure. Available algorithms include degree centrality, pagerank, and others that compute metrics for nodes and edges.",
15
- parameters: m,
16
- examples: [
17
- {
18
- input: "Calculate the degree of each node",
19
- params: { namespace: "graphty", type: "degree" }
20
- },
21
- {
22
- input: "Run pagerank algorithm",
23
- params: { namespace: "graphty", type: "pagerank" }
24
- },
25
- {
26
- input: "Compute centrality metrics",
27
- params: { namespace: "graphty", type: "degree" }
28
- }
29
- ],
30
- async execute(n, a) {
31
- const e = m.safeParse(a);
32
- if (!e.success)
33
- return {
34
- success: !1,
35
- message: `Invalid parameters: ${e.error.message}`
36
- };
37
- const { namespace: t, type: s } = e.data;
38
- try {
39
- if (!u.get(n, t, s)) {
40
- const i = u.getRegisteredAlgorithms(t), o = i.length > 0 ? `Available in namespace '${t}': ${i.map((l) => l.split(":")[1]).join(", ")}` : `No algorithms found in namespace '${t}'. Use listAlgorithms to see available options.`;
41
- return {
42
- success: !1,
43
- message: `Algorithm not found: ${t}:${s}. ${o}`
44
- };
45
- }
46
- return await n.runAlgorithm(t, s), {
47
- success: !0,
48
- message: `Successfully ran ${t}:${s} algorithm. Results are now available in node data.`,
49
- data: {
50
- namespace: t,
51
- type: s,
52
- nodeCount: n.getNodeCount()
53
- }
54
- };
55
- } catch (c) {
56
- return {
57
- success: !1,
58
- message: `Failed to run algorithm ${t}:${s}: ${c instanceof Error ? c.message : String(c)}`
59
- };
60
- }
61
- }
62
- }, $ = {
63
- name: "listAlgorithms",
64
- description: "List all available graph algorithms that can be run on the graph. Optionally filter by namespace.",
65
- parameters: h,
66
- examples: [
67
- {
68
- input: "What algorithms are available?",
69
- params: {}
70
- },
71
- {
72
- input: "List graphty algorithms",
73
- params: { namespace: "graphty" }
74
- },
75
- {
76
- input: "Show me the available analysis tools",
77
- params: {}
78
- }
79
- ],
80
- // eslint-disable-next-line @typescript-eslint/require-await
81
- async execute(n, a) {
82
- const e = h.safeParse(a);
83
- if (!e.success)
84
- return {
85
- success: !1,
86
- message: `Invalid parameters: ${e.error.message}`
87
- };
88
- const { namespace: t } = e.data;
89
- try {
90
- const s = u.getRegisteredAlgorithms(t);
91
- return s.length === 0 ? {
92
- success: !0,
93
- message: t ? `No algorithms found in namespace '${t}'.` : "No algorithms are currently registered.",
94
- data: {
95
- algorithms: [],
96
- count: 0
97
- }
98
- } : {
99
- success: !0,
100
- message: t ? `Found ${s.length} algorithm(s) in namespace '${t}': ${s.join(", ")}` : `Found ${s.length} available algorithm(s): ${s.join(", ")}`,
101
- data: {
102
- algorithms: s,
103
- count: s.length
104
- }
105
- };
106
- } catch (s) {
107
- return {
108
- success: !1,
109
- message: `Failed to list algorithms: ${s instanceof Error ? s.message : String(s)}`
110
- };
111
- }
112
- }
113
- }, x = {
1
+ import { f as d } from "./chunks/AiManager-BBmGJbH4.js";
2
+ import { A as C, a as P, b as I, C as L, M as $, S as D, c as R, V as k, d as M, e as V, g as q, h as z, i as E, j as G, k as W, l as j, m as N, n as T, q as U, r as _, s as B, o as F, p as J, t as Y, u as H, z as Q } from "./chunks/AiManager-BBmGJbH4.js";
3
+ import { A as O } from "./chunks/ApiKeyManager-C0ac91dE.js";
4
+ import { V as Z } from "./chunks/VoiceInputAdapter-Dr9Gcmds.js";
5
+ import { z as o } from "zod";
6
+ const y = {
114
7
  name: "captureScreenshot",
115
8
  description: "Capture a screenshot of the current graph visualization. Returns a data URL that can be displayed or downloaded. Supports PNG and JPEG formats with configurable size and quality.",
116
- parameters: r.object({
117
- format: r.enum(["png", "jpeg"]).optional().describe("Image format (default: png)"),
118
- width: r.number().positive().optional().describe("Width of the screenshot in pixels"),
119
- height: r.number().positive().optional().describe("Height of the screenshot in pixels"),
120
- quality: r.number().min(0).max(1).optional().describe("JPEG quality 0-1 (default: 0.92)"),
121
- download: r.boolean().optional().describe("Whether to trigger a download (default: false)")
9
+ parameters: o.object({
10
+ format: o.enum(["png", "jpeg"]).optional().describe("Image format (default: png)"),
11
+ width: o.number().positive().optional().describe("Width of the screenshot in pixels"),
12
+ height: o.number().positive().optional().describe("Height of the screenshot in pixels"),
13
+ quality: o.number().min(0).max(1).optional().describe("JPEG quality 0-1 (default: 0.92)"),
14
+ download: o.boolean().optional().describe("Whether to trigger a download (default: false)")
122
15
  }),
123
16
  examples: [
124
17
  { input: "Take a screenshot", params: {} },
@@ -127,79 +20,79 @@ const m = r.object({
127
20
  { input: "High resolution screenshot", params: { width: 1920, height: 1080 } },
128
21
  { input: "Download screenshot", params: { download: !0 } }
129
22
  ],
130
- async execute(n, a) {
23
+ async execute(r, t) {
131
24
  const {
132
25
  format: e = "png",
133
- width: t,
134
- height: s,
135
- quality: c,
136
- download: i = !1
137
- } = a;
26
+ width: a,
27
+ height: i,
28
+ quality: u,
29
+ download: n = !1
30
+ } = t;
138
31
  try {
139
- const o = await n.captureScreenshot({
32
+ const s = await r.captureScreenshot({
140
33
  format: e,
141
- width: t,
142
- height: s,
143
- quality: c
144
- }), l = await g(o.blob);
145
- if (i && typeof document < "u") {
146
- const d = `graph-screenshot-${(/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-")}.${e}`;
147
- f(l, d);
34
+ width: a,
35
+ height: i,
36
+ quality: u
37
+ }), c = await h(s.blob);
38
+ if (n && typeof document < "u") {
39
+ const l = `graph-screenshot-${(/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-")}.${e}`;
40
+ m(c, l);
148
41
  }
149
42
  return {
150
43
  success: !0,
151
- message: `Screenshot captured successfully${i ? " and download initiated" : ""}.`,
44
+ message: `Screenshot captured successfully${n ? " and download initiated" : ""}.`,
152
45
  data: {
153
- dataUrl: l,
46
+ dataUrl: c,
154
47
  format: e,
155
- width: t,
156
- height: s,
157
- downloaded: i
48
+ width: a,
49
+ height: i,
50
+ downloaded: n
158
51
  }
159
52
  };
160
- } catch (o) {
53
+ } catch (s) {
161
54
  return {
162
55
  success: !1,
163
- message: `Failed to capture screenshot: ${o.message}`
56
+ message: `Failed to capture screenshot: ${s.message}`
164
57
  };
165
58
  }
166
59
  }
167
60
  };
168
- function g(n) {
169
- return new Promise((a, e) => {
170
- const t = new FileReader();
171
- t.onload = () => {
172
- a(t.result);
173
- }, t.onerror = () => {
61
+ function h(r) {
62
+ return new Promise((t, e) => {
63
+ const a = new FileReader();
64
+ a.onload = () => {
65
+ t(a.result);
66
+ }, a.onerror = () => {
174
67
  e(new Error("Failed to convert blob to data URL"));
175
- }, t.readAsDataURL(n);
68
+ }, a.readAsDataURL(r);
176
69
  });
177
70
  }
178
- function f(n, a) {
71
+ function m(r, t) {
179
72
  const e = document.createElement("a");
180
- e.href = n, e.download = a, document.body.appendChild(e), e.click(), document.body.removeChild(e);
73
+ e.href = r, e.download = t, document.body.appendChild(e), e.click(), document.body.removeChild(e);
181
74
  }
182
- const C = {
75
+ const S = {
183
76
  name: "captureVideo",
184
77
  description: "Start or stop video recording of the graph visualization. Returns a video blob URL when stopped. Note: This is a browser-only feature that requires MediaRecorder API support.",
185
- parameters: r.object({
186
- action: r.enum(["start", "stop"]).describe("Action to perform: start or stop recording"),
187
- duration: r.number().positive().optional().describe("Auto-stop after this many seconds (only for start action)"),
188
- format: r.enum(["webm", "mp4"]).optional().describe("Video format (default: webm, note: mp4 may not be supported in all browsers)")
78
+ parameters: o.object({
79
+ action: o.enum(["start", "stop"]).describe("Action to perform: start or stop recording"),
80
+ duration: o.number().positive().optional().describe("Auto-stop after this many seconds (only for start action)"),
81
+ format: o.enum(["webm", "mp4"]).optional().describe("Video format (default: webm, note: mp4 may not be supported in all browsers)")
189
82
  }),
190
83
  examples: [
191
84
  { input: "Start recording", params: { action: "start" } },
192
85
  { input: "Stop recording", params: { action: "stop" } },
193
86
  { input: "Record for 5 seconds", params: { action: "start", duration: 5 } }
194
87
  ],
195
- execute(n, a) {
196
- const { action: e, duration: t } = a;
88
+ execute(r, t) {
89
+ const { action: e, duration: a } = t;
197
90
  return e === "start" ? Promise.resolve({
198
91
  success: !0,
199
- message: `Video recording started${t ? ` (will auto-stop in ${t}s)` : ""}.`,
92
+ message: `Video recording started${a ? ` (will auto-stop in ${a}s)` : ""}.`,
200
93
  data: {
201
94
  action: "started",
202
- duration: t,
95
+ duration: a,
203
96
  note: "Video recording functionality requires additional canvas-level implementation."
204
97
  }
205
98
  }) : Promise.resolve({
@@ -212,7 +105,7 @@ const C = {
212
105
  });
213
106
  }
214
107
  };
215
- class y {
108
+ class p {
216
109
  constructor() {
217
110
  this.commands = [], this.graph = null, this.schemaSummary = null;
218
111
  }
@@ -220,22 +113,22 @@ class y {
220
113
  * Set the graph instance for context.
221
114
  * @param graph - The graph instance
222
115
  */
223
- setGraph(a) {
224
- this.graph = a;
116
+ setGraph(t) {
117
+ this.graph = t;
225
118
  }
226
119
  /**
227
120
  * Set the available commands.
228
121
  * @param commands - Array of registered commands
229
122
  */
230
- setCommands(a) {
231
- this.commands = a;
123
+ setCommands(t) {
124
+ this.commands = t;
232
125
  }
233
126
  /**
234
127
  * Set the schema summary for data context.
235
128
  * @param schema - The schema summary to include in prompts
236
129
  */
237
- setSchema(a) {
238
- this.schemaSummary = a;
130
+ setSchema(t) {
131
+ this.schemaSummary = t;
239
132
  }
240
133
  /**
241
134
  * Clear the schema summary.
@@ -248,17 +141,17 @@ class y {
248
141
  * @param options - Build options
249
142
  * @returns The complete system prompt
250
143
  */
251
- build(a = {}) {
144
+ build(t = {}) {
252
145
  const {
253
146
  includeStats: e = !0,
254
- includeLayout: t = !0,
255
- includeCommands: s = !0,
256
- includeSchema: c = !0,
257
- additionalContext: i
258
- } = a, o = [];
259
- return o.push(this.buildBasePrompt()), e && this.graph && o.push(this.buildStatsSection()), c && this.schemaSummary && o.push(this.buildSchemaSection()), t && this.graph && o.push(this.buildLayoutSection()), s && this.commands.length > 0 && o.push(this.buildCommandsSection()), i && o.push(`
147
+ includeLayout: a = !0,
148
+ includeCommands: i = !0,
149
+ includeSchema: u = !0,
150
+ additionalContext: n
151
+ } = t, s = [];
152
+ return s.push(this.buildBasePrompt()), e && this.graph && s.push(this.buildStatsSection()), u && this.schemaSummary && s.push(this.buildSchemaSection()), a && this.graph && s.push(this.buildLayoutSection()), i && this.commands.length > 0 && s.push(this.buildCommandsSection()), n && s.push(`
260
153
  ## Additional Context
261
- ${i}`), o.push(this.buildInstructionsSection()), o.join(`
154
+ ${n}`), s.push(this.buildInstructionsSection()), s.join(`
262
155
 
263
156
  `);
264
157
  }
@@ -283,9 +176,9 @@ You can help users:
283
176
  buildStatsSection() {
284
177
  if (!this.graph)
285
178
  return "";
286
- const a = this.graph.getNodeCount(), e = this.graph.getEdgeCount();
179
+ const t = this.graph.getNodeCount(), e = this.graph.getEdgeCount();
287
180
  return `## Current Graph State
288
- - Total nodes: ${a}
181
+ - Total nodes: ${t}
289
182
  - Total edges: ${e}
290
183
  - Visualization mode: ${this.graph.getViewMode() === "2d" ? "2D" : "3D"}`;
291
184
  }
@@ -294,7 +187,7 @@ You can help users:
294
187
  * @returns Schema information text
295
188
  */
296
189
  buildSchemaSection() {
297
- return this.schemaSummary ? p(this.schemaSummary) : "";
190
+ return this.schemaSummary ? d(this.schemaSummary) : "";
298
191
  }
299
192
  /**
300
193
  * Build the layout section.
@@ -312,9 +205,9 @@ You can help users:
312
205
  buildCommandsSection() {
313
206
  return `## Available Commands (Tools)
314
207
  ${this.commands.map((e) => {
315
- const t = e.examples.length > 0 ? `
316
- Examples: ${e.examples.slice(0, 2).map((s) => `"${s.input}"`).join(", ")}` : "";
317
- return `- **${e.name}**: ${e.description}${t}`;
208
+ const a = e.examples.length > 0 ? `
209
+ Examples: ${e.examples.slice(0, 2).map((i) => `"${i.input}"`).join(", ")}` : "";
210
+ return `- **${e.name}**: ${e.description}${a}`;
318
211
  }).join(`
319
212
  `)}`;
320
213
  }
@@ -349,10 +242,10 @@ When tools are available, use them to:
349
242
  If no tools match the user's request, respond conversationally.`;
350
243
  }
351
244
  }
352
- function P() {
353
- return new y();
245
+ function w() {
246
+ return new p();
354
247
  }
355
- class I {
248
+ class v {
356
249
  constructor() {
357
250
  this.type = "text", this.isSupported = !0, this._isActive = !1, this.callbacks = [];
358
251
  }
@@ -379,26 +272,26 @@ class I {
379
272
  * Register a callback for input events.
380
273
  * @param callback - Function called when input is received
381
274
  */
382
- onInput(a) {
383
- this.callbacks.push(a);
275
+ onInput(t) {
276
+ this.callbacks.push(t);
384
277
  }
385
278
  /**
386
279
  * Submit final text input.
387
280
  * @param text - The complete input text
388
281
  */
389
- submitInput(a) {
282
+ submitInput(t) {
390
283
  if (this._isActive)
391
284
  for (const e of this.callbacks)
392
- e(a, !0);
285
+ e(t, !0);
393
286
  }
394
287
  /**
395
288
  * Submit interim (partial) text input.
396
289
  * @param text - The partial input text
397
290
  */
398
- submitInterim(a) {
291
+ submitInterim(t) {
399
292
  if (this._isActive)
400
293
  for (const e of this.callbacks)
401
- e(a, !1);
294
+ e(t, !1);
402
295
  }
403
296
  /**
404
297
  * Clean up resources and remove all callbacks.
@@ -408,38 +301,38 @@ class I {
408
301
  }
409
302
  }
410
303
  export {
411
- L as AiController,
412
- M as AiManager,
413
- D as AiStatusManager,
414
- te as ApiKeyManager,
415
- V as CommandRegistry,
416
- j as MockLlmProvider,
417
- E as SchemaExtractor,
418
- z as SchemaManager,
419
- y as SystemPromptBuilder,
420
- I as TextInputAdapter,
421
- N as VercelAiProvider,
422
- se as VoiceInputAdapter,
423
- x as captureScreenshot,
424
- C as captureVideo,
425
- q as clearStyles,
426
- W as createAiManager,
427
- G as createProvider,
428
- P as createSystemPromptBuilder,
429
- T as createWebLlmProvider,
430
- F as describeProperty,
431
- U as findAndStyleEdges,
432
- _ as findAndStyleNodes,
433
- B as findNodes,
434
- p as formatSchemaForPrompt,
435
- J as getWebLlmProviderClass,
436
- $ as listAlgorithms,
437
- O as queryGraph,
438
- w as runAlgorithm,
439
- Y as sampleData,
440
- H as setCameraPosition,
441
- Q as setDimension,
442
- K as setImmersiveMode,
443
- X as setLayout,
444
- Z as zoomToNodes
304
+ C as AiController,
305
+ P as AiManager,
306
+ I as AiStatusManager,
307
+ O as ApiKeyManager,
308
+ L as CommandRegistry,
309
+ $ as MockLlmProvider,
310
+ D as SchemaExtractor,
311
+ R as SchemaManager,
312
+ p as SystemPromptBuilder,
313
+ v as TextInputAdapter,
314
+ k as VercelAiProvider,
315
+ Z as VoiceInputAdapter,
316
+ y as captureScreenshot,
317
+ S as captureVideo,
318
+ M as clearStyles,
319
+ V as createAiManager,
320
+ q as createProvider,
321
+ w as createSystemPromptBuilder,
322
+ z as createWebLlmProvider,
323
+ E as describeProperty,
324
+ G as findAndStyleEdges,
325
+ W as findAndStyleNodes,
326
+ j as findNodes,
327
+ d as formatSchemaForPrompt,
328
+ N as getWebLlmProviderClass,
329
+ T as listAlgorithms,
330
+ U as queryGraph,
331
+ _ as runAlgorithm,
332
+ B as sampleData,
333
+ F as setCameraPosition,
334
+ J as setDimension,
335
+ Y as setImmersiveMode,
336
+ H as setLayout,
337
+ Q as zoomToNodes
445
338
  };
package/dist/catalog.js CHANGED
@@ -1,9 +1,10 @@
1
- import { B as y, a as f, L as m, P as T, S, U as v, b as O, c as E, l as A, d as N, e as I, p as R, f as k, s as x, g as _ } from "./chunks/scales-DyuwlJKI.js";
2
- import { C, a as L, b as P, c as W, d as U, e as F, f as B } from "./chunks/cameras-ii4vngYY.js";
3
- import { d as M, a as K } from "./chunks/detect-DM29BEaB.js";
4
- import { F as Y, U as z, y as G, z as V, o as q } from "./chunks/paletteRegistry-DnWHQsAD.js";
5
- import { L as Z, l as $ } from "./chunks/GraphtyLogger-5KEttFUo.js";
6
- import { A as Q, C as ee, f as te, K as ae, a as oe, b as ne, c as re, d as ie, g as se, O as he, R as le, h as de, j as ce, k as we, i as ue, e as pe } from "./chunks/types-B7bX5c0K.js";
1
+ import { B as y, C as f, a as m, b as T, c as S, d as v, e as O, f as E, g as A, h as N } from "./chunks/algorithms-CpX56sUB.js";
2
+ import { d as R, a as k } from "./chunks/detect-Cqwshr9a.js";
3
+ import { F as _, U as D, i as C, j as L } from "./chunks/paletteRegistry-x7WOEKZY.js";
4
+ import { a as W, L as U, P as F, S as B, U as H, l as M, b as j, c as K, p as Y, d as G, s as z, e as V } from "./chunks/scales-BRwl51k8.js";
5
+ import { L as X, l as Z } from "./chunks/GraphtyLogger-5KEttFUo.js";
6
+ import { A as J, C as Q, f as ee, K as te, a as ae, b as oe, c as ne, d as re, g as ie, O as se, R as he, h as le, j as de, k as ce, i as we, e as pe } from "./chunks/types-B7bX5c0K.js";
7
+ import { o as ge } from "./chunks/optionsFromZod-17lkrAJs.js";
7
8
  const d = Object.keys({
8
9
  enabled: 0,
9
10
  font: 0,
@@ -136,7 +137,7 @@ const w = [
136
137
  // caption and no channel could ask for one.
137
138
  ...t("edge", "arrowHead.text", e),
138
139
  ...t("edge", "arrowTail.text", e)
139
- ], u = [
140
+ ], p = [
140
141
  {
141
142
  kind: "by-design",
142
143
  channel: "node.tooltip",
@@ -147,7 +148,7 @@ const w = [
147
148
  channel: "node.tooltipStyle",
148
149
  reason: "A NODE TOOLTIP IS DRAWN and its appearance reaches it, so this waiver is about the reading and not about the capability, exactly as `node.tooltip` above: the two channels are the words and the look of the same hover-only mesh, and this gate paints into a RESTING scene, which is the one moment a tooltip must not be on screen. `test/browser/node-tooltip-style-draws.test.ts` is where it is proved -- it hovers a node with a real pointer, reads the tooltip mesh the element built, and requires the typeface, the panel colour and the size a layer asked for to be the ones drawn."
149
150
  }
150
- ], p = [
151
+ ], u = [
151
152
  {
152
153
  subject: "edge.tooltip",
153
154
  withdrawnIn: "2.0",
@@ -168,58 +169,58 @@ const w = [
168
169
  }
169
170
  ];
170
171
  export {
171
- Q as ATTRIBUTE_TYPES,
172
+ J as ATTRIBUTE_TYPES,
172
173
  y as BUILT_IN_ALGORITHMS,
173
- C as CAMERA_DESCRIPTORS,
174
- L as CHANNELS,
175
- P as CHANNEL_DESCRIPTORS,
176
- ee as COST_CLASSES,
177
- Y as FORMAT_DESCRIPTORS,
178
- te as KNOWN_ALGORITHMS,
179
- ae as KNOWN_CAMERA_IDS,
180
- oe as KNOWN_FORMAT_IDS,
181
- ne as KNOWN_LAYOUT_IDS,
182
- re as KNOWN_LOG_SINK_IDS,
183
- ie as KNOWN_PALETTE_IDS,
174
+ f as CAMERA_DESCRIPTORS,
175
+ m as CHANNELS,
176
+ T as CHANNEL_DESCRIPTORS,
177
+ Q as COST_CLASSES,
178
+ _ as FORMAT_DESCRIPTORS,
179
+ ee as KNOWN_ALGORITHMS,
180
+ te as KNOWN_CAMERA_IDS,
181
+ ae as KNOWN_FORMAT_IDS,
182
+ oe as KNOWN_LAYOUT_IDS,
183
+ ne as KNOWN_LOG_SINK_IDS,
184
+ re as KNOWN_PALETTE_IDS,
184
185
  d as LABEL_STYLE_FIELDS,
185
- f as LAYOUT_CATALOG,
186
- m as LAYOUT_DESCRIPTORS,
187
- Z as LOG_SINK_DESCRIPTORS,
188
- se as OPTION_BOUND_SOURCES,
189
- he as OPTION_TYPES,
190
- T as PALETTE_DESCRIPTORS,
191
- le as RESULT_SHAPES,
192
- S as SCALE_DESCRIPTORS,
193
- u as UNPAINTED_CHANNELS,
186
+ W as LAYOUT_CATALOG,
187
+ U as LAYOUT_DESCRIPTORS,
188
+ X as LOG_SINK_DESCRIPTORS,
189
+ ie as OPTION_BOUND_SOURCES,
190
+ se as OPTION_TYPES,
191
+ F as PALETTE_DESCRIPTORS,
192
+ he as RESULT_SHAPES,
193
+ B as SCALE_DESCRIPTORS,
194
+ p as UNPAINTED_CHANNELS,
194
195
  w as UNREACHABLE_STYLE_FIELDS,
195
- z as UNSERVED_FORMAT_IDS,
196
- v as UNSERVED_LAYOUT_IDS,
196
+ D as UNSERVED_FORMAT_IDS,
197
+ H as UNSERVED_LAYOUT_IDS,
197
198
  l as WAIVER_EXPIRY_UNSET,
198
199
  c as WAIVER_HORIZON_DAYS,
199
200
  h as WAIVER_OWNER_UNASSIGNED,
200
- p as WITHDRAWN_CAPABILITIES,
201
- O as algorithmByKey,
202
- E as algorithmByLegacyKey,
203
- W as cameraDescriptor,
204
- U as camerasForMode,
205
- F as channelDescriptor,
206
- B as channelsFor,
207
- M as detectFormat,
208
- K as detectFormats,
209
- G as formatDescriptor,
210
- V as formatsForExtension,
211
- de as isAttributeType,
212
- ce as isCostClass,
213
- we as isOptionBound,
214
- ue as isOptionType,
201
+ u as WITHDRAWN_CAPABILITIES,
202
+ S as algorithmByKey,
203
+ v as algorithmByLegacyKey,
204
+ O as cameraDescriptor,
205
+ E as camerasForMode,
206
+ A as channelDescriptor,
207
+ N as channelsFor,
208
+ R as detectFormat,
209
+ k as detectFormats,
210
+ C as formatDescriptor,
211
+ L as formatsForExtension,
212
+ le as isAttributeType,
213
+ de as isCostClass,
214
+ ce as isOptionBound,
215
+ we as isOptionType,
215
216
  pe as isResultShape,
216
- A as layoutDescriptor,
217
- N as layoutEntry,
218
- I as layoutIdForEngine,
219
- $ as logSinkDescriptor,
220
- q as optionsFromZod,
221
- R as paletteDescriptor,
222
- k as palettesOfKind,
223
- x as scaleDescriptor,
224
- _ as scalesForDomain
217
+ M as layoutDescriptor,
218
+ j as layoutEntry,
219
+ K as layoutIdForEngine,
220
+ Z as logSinkDescriptor,
221
+ ge as optionsFromZod,
222
+ Y as paletteDescriptor,
223
+ G as palettesOfKind,
224
+ z as scaleDescriptor,
225
+ V as scalesForDomain
225
226
  };