@memberjunction/core-actions 2.107.0 → 2.108.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/dist/custom/ai/find-best-agent.action.d.ts +53 -0
  2. package/dist/custom/ai/find-best-agent.action.d.ts.map +1 -0
  3. package/dist/custom/ai/find-best-agent.action.js +194 -0
  4. package/dist/custom/ai/find-best-agent.action.js.map +1 -0
  5. package/dist/custom/ai/summarize-content.action.d.ts +3 -3
  6. package/dist/custom/ai/summarize-content.action.d.ts.map +1 -1
  7. package/dist/custom/ai/summarize-content.action.js +51 -143
  8. package/dist/custom/ai/summarize-content.action.js.map +1 -1
  9. package/dist/custom/code-execution/execute-code.action.d.ts +61 -0
  10. package/dist/custom/code-execution/execute-code.action.d.ts.map +1 -0
  11. package/dist/custom/code-execution/execute-code.action.js +172 -0
  12. package/dist/custom/code-execution/execute-code.action.js.map +1 -0
  13. package/dist/custom/data/csv-parser.action.js +1 -1
  14. package/dist/custom/data/csv-parser.action.js.map +1 -1
  15. package/dist/custom/data/execute-research-query.action.d.ts +36 -18
  16. package/dist/custom/data/execute-research-query.action.d.ts.map +1 -1
  17. package/dist/custom/data/execute-research-query.action.js +221 -114
  18. package/dist/custom/data/execute-research-query.action.js.map +1 -1
  19. package/dist/custom/data/explore-database-schema.action.d.ts +4 -0
  20. package/dist/custom/data/explore-database-schema.action.d.ts.map +1 -1
  21. package/dist/custom/data/explore-database-schema.action.js +101 -8
  22. package/dist/custom/data/explore-database-schema.action.js.map +1 -1
  23. package/dist/custom/data/get-entity-details.action.d.ts +63 -0
  24. package/dist/custom/data/get-entity-details.action.d.ts.map +1 -0
  25. package/dist/custom/data/get-entity-details.action.js +284 -0
  26. package/dist/custom/data/get-entity-details.action.js.map +1 -0
  27. package/dist/custom/data/get-entity-list.action.d.ts +57 -0
  28. package/dist/custom/data/get-entity-list.action.d.ts.map +1 -0
  29. package/dist/custom/data/get-entity-list.action.js +177 -0
  30. package/dist/custom/data/get-entity-list.action.js.map +1 -0
  31. package/dist/custom/visualization/create-svg-chart.action.d.ts +97 -0
  32. package/dist/custom/visualization/create-svg-chart.action.d.ts.map +1 -0
  33. package/dist/custom/visualization/create-svg-chart.action.js +290 -0
  34. package/dist/custom/visualization/create-svg-chart.action.js.map +1 -0
  35. package/dist/custom/visualization/create-svg-diagram.action.d.ts +151 -0
  36. package/dist/custom/visualization/create-svg-diagram.action.d.ts.map +1 -0
  37. package/dist/custom/visualization/create-svg-diagram.action.js +764 -0
  38. package/dist/custom/visualization/create-svg-diagram.action.js.map +1 -0
  39. package/dist/custom/visualization/create-svg-infographic.action.d.ts +72 -0
  40. package/dist/custom/visualization/create-svg-infographic.action.d.ts.map +1 -0
  41. package/dist/custom/visualization/create-svg-infographic.action.js +343 -0
  42. package/dist/custom/visualization/create-svg-infographic.action.js.map +1 -0
  43. package/dist/custom/visualization/create-svg-network.action.d.ts +106 -0
  44. package/dist/custom/visualization/create-svg-network.action.d.ts.map +1 -0
  45. package/dist/custom/visualization/create-svg-network.action.js +651 -0
  46. package/dist/custom/visualization/create-svg-network.action.js.map +1 -0
  47. package/dist/custom/visualization/create-svg-word-cloud.action.d.ts +94 -0
  48. package/dist/custom/visualization/create-svg-word-cloud.action.d.ts.map +1 -0
  49. package/dist/custom/visualization/create-svg-word-cloud.action.js +422 -0
  50. package/dist/custom/visualization/create-svg-word-cloud.action.js.map +1 -0
  51. package/dist/custom/visualization/shared/svg-theming.d.ts +91 -0
  52. package/dist/custom/visualization/shared/svg-theming.d.ts.map +1 -0
  53. package/dist/custom/visualization/shared/svg-theming.js +235 -0
  54. package/dist/custom/visualization/shared/svg-theming.js.map +1 -0
  55. package/dist/custom/visualization/shared/svg-types.d.ts +338 -0
  56. package/dist/custom/visualization/shared/svg-types.d.ts.map +1 -0
  57. package/dist/custom/visualization/shared/svg-types.js +11 -0
  58. package/dist/custom/visualization/shared/svg-types.js.map +1 -0
  59. package/dist/custom/visualization/shared/svg-utils.d.ts +129 -0
  60. package/dist/custom/visualization/shared/svg-utils.d.ts.map +1 -0
  61. package/dist/custom/visualization/shared/svg-utils.js +287 -0
  62. package/dist/custom/visualization/shared/svg-utils.js.map +1 -0
  63. package/dist/custom/web/google-custom-search.action.d.ts +6 -1
  64. package/dist/custom/web/google-custom-search.action.d.ts.map +1 -1
  65. package/dist/custom/web/google-custom-search.action.js +78 -10
  66. package/dist/custom/web/google-custom-search.action.js.map +1 -1
  67. package/dist/custom/web/web-page-content.action.d.ts +24 -0
  68. package/dist/custom/web/web-page-content.action.d.ts.map +1 -1
  69. package/dist/custom/web/web-page-content.action.js +90 -9
  70. package/dist/custom/web/web-page-content.action.js.map +1 -1
  71. package/dist/generated/action_subclasses.d.ts +10 -10
  72. package/dist/generated/action_subclasses.d.ts.map +1 -1
  73. package/dist/generated/action_subclasses.js +29 -29
  74. package/dist/generated/action_subclasses.js.map +1 -1
  75. package/dist/index.d.ts +10 -0
  76. package/dist/index.d.ts.map +1 -1
  77. package/dist/index.js +28 -0
  78. package/dist/index.js.map +1 -1
  79. package/package.json +29 -12
@@ -0,0 +1,91 @@
1
+ /**
2
+ * @fileoverview Theming system for SVG visualizations.
3
+ * Provides color palettes, font stacks, and CSS generation for consistent branding.
4
+ *
5
+ * @module @memberjunction/actions-core/visualization
6
+ * @since 2.107.0
7
+ */
8
+ import { Palette, Branding, FontSpec } from './svg-types';
9
+ /**
10
+ * Predefined color palettes for visualizations
11
+ */
12
+ export declare const PALETTES: {
13
+ mjDefault: {
14
+ background: string;
15
+ foreground: string;
16
+ categorical: string[];
17
+ sequential: string[];
18
+ };
19
+ gray: {
20
+ background: string;
21
+ foreground: string;
22
+ categorical: string[];
23
+ sequential: string[];
24
+ };
25
+ pastel: {
26
+ background: string;
27
+ foreground: string;
28
+ categorical: string[];
29
+ sequential: string[];
30
+ };
31
+ highContrast: {
32
+ background: string;
33
+ foreground: string;
34
+ categorical: string[];
35
+ sequential: string[];
36
+ };
37
+ };
38
+ /**
39
+ * Default font stack with system font fallbacks
40
+ */
41
+ export declare const DEFAULT_FONT_STACK = "-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif";
42
+ /**
43
+ * Retrieves a palette by name or returns manual palette configuration
44
+ *
45
+ * @param palette - Palette configuration
46
+ * @returns Resolved palette colors
47
+ */
48
+ export declare function getPalette(palette?: Palette): {
49
+ background: string;
50
+ foreground: string;
51
+ categorical: string[];
52
+ sequential: string[];
53
+ };
54
+ /**
55
+ * Gets a categorical color by index, cycling through the palette
56
+ *
57
+ * @param index - Color index
58
+ * @param palette - Palette configuration
59
+ * @returns Hex color string
60
+ */
61
+ export declare function getColorForIndex(index: number, palette?: Palette): string;
62
+ /**
63
+ * Gets a sequential color by normalized value (0-1)
64
+ *
65
+ * @param value - Normalized value between 0 and 1
66
+ * @param palette - Palette configuration
67
+ * @returns Hex color string
68
+ */
69
+ export declare function getSequentialColor(value: number, palette?: Palette): string;
70
+ /**
71
+ * Generates inline CSS from branding configuration
72
+ *
73
+ * @param branding - Branding configuration
74
+ * @returns CSS string for injection into <style> element
75
+ */
76
+ export declare function generateCSS(branding?: Branding): string;
77
+ /**
78
+ * Gets font specification with defaults applied
79
+ *
80
+ * @param font - Optional font configuration
81
+ * @returns Complete font specification
82
+ */
83
+ export declare function getFontSpec(font?: FontSpec): Required<FontSpec>;
84
+ /**
85
+ * Gets font stack for CSS font-family property
86
+ *
87
+ * @param font - Optional font configuration
88
+ * @returns Font family stack string
89
+ */
90
+ export declare function getFontStack(font?: FontSpec): string;
91
+ //# sourceMappingURL=svg-theming.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg-theming.d.ts","sourceRoot":"","sources":["../../../../src/custom/visualization/shared/svg-theming.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;CA2FpB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,mGACiE,CAAC;AAEjG;;;;;GAKG;AACH,wBAAgB,UAAU,CACtB,OAAO,CAAC,EAAE,OAAO,GAClB;IACC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;CACxB,CAaA;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAGzE;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAK3E;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,CAoDvD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAO/D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAEpD"}
@@ -0,0 +1,235 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Theming system for SVG visualizations.
4
+ * Provides color palettes, font stacks, and CSS generation for consistent branding.
5
+ *
6
+ * @module @memberjunction/actions-core/visualization
7
+ * @since 2.107.0
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.getFontStack = exports.getFontSpec = exports.generateCSS = exports.getSequentialColor = exports.getColorForIndex = exports.getPalette = exports.DEFAULT_FONT_STACK = exports.PALETTES = void 0;
11
+ /**
12
+ * Predefined color palettes for visualizations
13
+ */
14
+ exports.PALETTES = {
15
+ mjDefault: {
16
+ background: '#FFFFFF',
17
+ foreground: '#1A1A1A',
18
+ categorical: [
19
+ '#2E7D32', // Green
20
+ '#1976D2', // Blue
21
+ '#F57C00', // Orange
22
+ '#7B1FA2', // Purple
23
+ '#C62828', // Red
24
+ '#00796B', // Teal
25
+ '#F9A825', // Yellow
26
+ '#5D4037', // Brown
27
+ '#455A64', // Blue Grey
28
+ '#E91E63', // Pink
29
+ ],
30
+ sequential: [
31
+ '#E8F5E9', // Light Green
32
+ '#A5D6A7',
33
+ '#66BB6A',
34
+ '#43A047',
35
+ '#2E7D32',
36
+ '#1B5E20', // Dark Green
37
+ ],
38
+ },
39
+ gray: {
40
+ background: '#FFFFFF',
41
+ foreground: '#212121',
42
+ categorical: [
43
+ '#424242',
44
+ '#616161',
45
+ '#757575',
46
+ '#9E9E9E',
47
+ '#BDBDBD',
48
+ '#E0E0E0',
49
+ ],
50
+ sequential: [
51
+ '#FAFAFA',
52
+ '#E0E0E0',
53
+ '#BDBDBD',
54
+ '#9E9E9E',
55
+ '#757575',
56
+ '#424242',
57
+ ],
58
+ },
59
+ pastel: {
60
+ background: '#FAFAFA',
61
+ foreground: '#333333',
62
+ categorical: [
63
+ '#A5D6A7', // Pastel Green
64
+ '#90CAF9', // Pastel Blue
65
+ '#FFCC80', // Pastel Orange
66
+ '#CE93D8', // Pastel Purple
67
+ '#EF9A9A', // Pastel Red
68
+ '#80CBC4', // Pastel Teal
69
+ '#FFF59D', // Pastel Yellow
70
+ '#BCAAA4', // Pastel Brown
71
+ '#B0BEC5', // Pastel Blue Grey
72
+ '#F48FB1', // Pastel Pink
73
+ ],
74
+ sequential: [
75
+ '#F1F8E9',
76
+ '#DCEDC8',
77
+ '#C5E1A5',
78
+ '#AED581',
79
+ '#9CCC65',
80
+ '#7CB342',
81
+ ],
82
+ },
83
+ highContrast: {
84
+ background: '#FFFFFF',
85
+ foreground: '#000000',
86
+ categorical: [
87
+ '#000000', // Black
88
+ '#E60000', // Red
89
+ '#0000FF', // Blue
90
+ '#00A000', // Green
91
+ '#FF8C00', // Dark Orange
92
+ '#9400D3', // Dark Violet
93
+ '#FFD700', // Gold
94
+ '#00CED1', // Dark Turquoise
95
+ ],
96
+ sequential: [
97
+ '#FFFFFF',
98
+ '#CCCCCC',
99
+ '#999999',
100
+ '#666666',
101
+ '#333333',
102
+ '#000000',
103
+ ],
104
+ },
105
+ };
106
+ /**
107
+ * Default font stack with system font fallbacks
108
+ */
109
+ exports.DEFAULT_FONT_STACK = '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif';
110
+ /**
111
+ * Retrieves a palette by name or returns manual palette configuration
112
+ *
113
+ * @param palette - Palette configuration
114
+ * @returns Resolved palette colors
115
+ */
116
+ function getPalette(palette) {
117
+ if (!palette || palette.type === 'named') {
118
+ const paletteName = palette?.type === 'named' ? palette.name : 'mjDefault';
119
+ return exports.PALETTES[paletteName] || exports.PALETTES.mjDefault;
120
+ }
121
+ // Manual palette
122
+ return {
123
+ background: palette.background || '#FFFFFF',
124
+ foreground: palette.foreground || '#1A1A1A',
125
+ categorical: palette.categorical || exports.PALETTES.mjDefault.categorical,
126
+ sequential: palette.sequential || exports.PALETTES.mjDefault.sequential,
127
+ };
128
+ }
129
+ exports.getPalette = getPalette;
130
+ /**
131
+ * Gets a categorical color by index, cycling through the palette
132
+ *
133
+ * @param index - Color index
134
+ * @param palette - Palette configuration
135
+ * @returns Hex color string
136
+ */
137
+ function getColorForIndex(index, palette) {
138
+ const colors = getPalette(palette).categorical;
139
+ return colors[index % colors.length];
140
+ }
141
+ exports.getColorForIndex = getColorForIndex;
142
+ /**
143
+ * Gets a sequential color by normalized value (0-1)
144
+ *
145
+ * @param value - Normalized value between 0 and 1
146
+ * @param palette - Palette configuration
147
+ * @returns Hex color string
148
+ */
149
+ function getSequentialColor(value, palette) {
150
+ const colors = getPalette(palette).sequential;
151
+ const clampedValue = Math.max(0, Math.min(1, value));
152
+ const index = Math.floor(clampedValue * (colors.length - 1));
153
+ return colors[index];
154
+ }
155
+ exports.getSequentialColor = getSequentialColor;
156
+ /**
157
+ * Generates inline CSS from branding configuration
158
+ *
159
+ * @param branding - Branding configuration
160
+ * @returns CSS string for injection into <style> element
161
+ */
162
+ function generateCSS(branding) {
163
+ const pal = getPalette(branding?.palette);
164
+ const font = getFontSpec(branding?.font);
165
+ const css = `
166
+ .bg-default { fill: ${pal.background}; }
167
+ .fg-default { fill: ${pal.foreground}; stroke: ${pal.foreground}; }
168
+ .text-default {
169
+ fill: ${pal.foreground};
170
+ font-family: ${font.family};
171
+ font-size: ${font.size}px;
172
+ font-weight: ${font.weight};
173
+ }
174
+ .node-text {
175
+ fill: ${pal.foreground};
176
+ font-family: ${font.family};
177
+ font-size: ${font.size}px;
178
+ text-anchor: middle;
179
+ dominant-baseline: middle;
180
+ }
181
+ .edge-line {
182
+ fill: none;
183
+ stroke: ${pal.foreground};
184
+ stroke-width: 2;
185
+ }
186
+ .edge-label {
187
+ fill: ${pal.foreground};
188
+ font-family: ${font.family};
189
+ font-size: ${font.size - 2}px;
190
+ text-anchor: middle;
191
+ }
192
+ ${pal.categorical
193
+ .map((color, i) => `
194
+ .cat-${i} { fill: ${color}; }
195
+ .cat-${i}-stroke { stroke: ${color}; }
196
+ .cat-${i}-text { fill: ${color}; }
197
+ `)
198
+ .join('')}
199
+ ${pal.sequential
200
+ .map((color, i) => `
201
+ .seq-${i} { fill: ${color}; }
202
+ `)
203
+ .join('')}
204
+ `
205
+ .replace(/\n\s+/g, '\n')
206
+ .trim();
207
+ return css;
208
+ }
209
+ exports.generateCSS = generateCSS;
210
+ /**
211
+ * Gets font specification with defaults applied
212
+ *
213
+ * @param font - Optional font configuration
214
+ * @returns Complete font specification
215
+ */
216
+ function getFontSpec(font) {
217
+ return {
218
+ family: font?.family || exports.DEFAULT_FONT_STACK,
219
+ size: font?.size || 14,
220
+ weight: font?.weight || 400,
221
+ lineHeight: font?.lineHeight || 1.5,
222
+ };
223
+ }
224
+ exports.getFontSpec = getFontSpec;
225
+ /**
226
+ * Gets font stack for CSS font-family property
227
+ *
228
+ * @param font - Optional font configuration
229
+ * @returns Font family stack string
230
+ */
231
+ function getFontStack(font) {
232
+ return font?.family || exports.DEFAULT_FONT_STACK;
233
+ }
234
+ exports.getFontStack = getFontStack;
235
+ //# sourceMappingURL=svg-theming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg-theming.js","sourceRoot":"","sources":["../../../../src/custom/visualization/shared/svg-theming.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,338 @@
1
+ /**
2
+ * @fileoverview Type definitions for server-rendered SVG visualizations.
3
+ * These types support the MemberJunction infographic system and provide
4
+ * consistent interfaces across all visualization actions.
5
+ *
6
+ * @module @memberjunction/actions-core/visualization
7
+ * @since 2.107.0
8
+ */
9
+ import { ActionResultSimple } from '@memberjunction/actions-base';
10
+ /**
11
+ * ViewBox configuration for SVG canvas dimensions and padding
12
+ */
13
+ export interface ViewBox {
14
+ /** Final pixel width of the SVG */
15
+ width: number;
16
+ /** Final pixel height of the SVG */
17
+ height: number;
18
+ /** Padding around content (uniform or per-side) */
19
+ padding?: number | {
20
+ top?: number;
21
+ right?: number;
22
+ bottom?: number;
23
+ left?: number;
24
+ };
25
+ }
26
+ /**
27
+ * Font specification for text rendering
28
+ */
29
+ export interface FontSpec {
30
+ /** Font family stack (e.g., 'Inter, Arial, sans-serif') */
31
+ family?: string;
32
+ /** Font size in pixels (default: 12-14) */
33
+ size?: number;
34
+ /** Font weight (400, 600, 'bold', etc.) */
35
+ weight?: number | string;
36
+ /** Line height in em units */
37
+ lineHeight?: number;
38
+ }
39
+ /**
40
+ * Color palette configuration
41
+ */
42
+ export type Palette = {
43
+ type: 'named';
44
+ name: 'mjDefault' | 'gray' | 'pastel' | 'highContrast';
45
+ } | {
46
+ type: 'manual';
47
+ background?: string;
48
+ foreground?: string;
49
+ categorical?: string[];
50
+ sequential?: string[];
51
+ };
52
+ /**
53
+ * Branding and visual identity configuration
54
+ */
55
+ export interface Branding {
56
+ /** Color palette to use */
57
+ palette?: Palette;
58
+ /** Font specification */
59
+ font?: FontSpec;
60
+ /** Optional logo SVG snippet to place in corner */
61
+ logoSvg?: string;
62
+ /** Optional watermark text */
63
+ watermarkText?: string;
64
+ }
65
+ /**
66
+ * Accessibility configuration for WCAG compliance
67
+ */
68
+ export interface Accessibility {
69
+ /** Title for <title> element */
70
+ title?: string;
71
+ /** Description for <desc> element */
72
+ desc?: string;
73
+ /** ARIA role for root SVG */
74
+ ariaRole?: 'img' | 'graphics-document';
75
+ /** Include data table for screen readers */
76
+ includeDataTable?: boolean;
77
+ }
78
+ /**
79
+ * Animation configuration (primarily for web display)
80
+ */
81
+ export interface AnimationOptions {
82
+ /** Enable animations (default: false for print-first) */
83
+ enabled?: boolean;
84
+ /** Prefer CSS animations over inline JS */
85
+ preferCSS?: boolean;
86
+ /** Animation duration in milliseconds */
87
+ durationMs?: number;
88
+ /** Easing function */
89
+ ease?: 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out';
90
+ /** Stagger delay between items in milliseconds */
91
+ staggerMs?: number;
92
+ }
93
+ /**
94
+ * Interactivity configuration (requires inline JS)
95
+ */
96
+ export interface InteractivityOptions {
97
+ /** Enable interactivity (default: false) */
98
+ enabled?: boolean;
99
+ /** Show tooltips on hover */
100
+ tooltips?: boolean;
101
+ /** Enable expand/collapse for trees */
102
+ expandCollapse?: boolean;
103
+ }
104
+ /**
105
+ * Export and rendering controls
106
+ */
107
+ export interface ExportControls {
108
+ /** Inline CSS in <style> tag (default: true) */
109
+ embedCSS?: boolean;
110
+ /** Inline JavaScript in <script> tag (default: false) */
111
+ embedJS?: boolean;
112
+ /** Prefix for element IDs to ensure uniqueness */
113
+ idPrefix?: string;
114
+ /** Seed for deterministic random layouts */
115
+ seed?: number;
116
+ }
117
+ /**
118
+ * Base configuration shared by all SVG actions
119
+ */
120
+ export interface ActionBase {
121
+ /** ViewBox dimensions and padding */
122
+ viewBox: ViewBox;
123
+ /** Branding and visual identity */
124
+ branding?: Branding;
125
+ /** Accessibility configuration */
126
+ a11y?: Accessibility;
127
+ /** Animation options */
128
+ animation?: AnimationOptions;
129
+ /** Interactivity options */
130
+ interactivity?: InteractivityOptions;
131
+ /** Export controls */
132
+ export?: ExportControls;
133
+ /** Pass-through metadata for tracing/debugging */
134
+ meta?: Record<string, unknown>;
135
+ }
136
+ /**
137
+ * Standardized result from SVG actions
138
+ */
139
+ export interface SVGActionResult extends ActionResultSimple {
140
+ /** SVG XML string ready to embed */
141
+ svg?: string;
142
+ /** Width in pixels */
143
+ width?: number;
144
+ /** Height in pixels */
145
+ height?: number;
146
+ /** Warnings about rendering issues */
147
+ warnings?: string[];
148
+ /** Diagnostic information */
149
+ diagnostics?: Record<string, unknown>;
150
+ }
151
+ /**
152
+ * Types of nodes in flowcharts
153
+ */
154
+ export type FlowNodeKind = 'start' | 'end' | 'process' | 'decision' | 'input' | 'output' | 'subprocess';
155
+ /**
156
+ * Node in a flowchart
157
+ */
158
+ export interface FlowNode {
159
+ /** Unique node identifier */
160
+ id: string;
161
+ /** Node type/shape */
162
+ kind: FlowNodeKind;
163
+ /** Display label */
164
+ label: string;
165
+ /** Optional note/description */
166
+ note?: string;
167
+ /** Optional icon SVG */
168
+ icon?: string;
169
+ /** Override width (auto-calculated if not provided) */
170
+ width?: number;
171
+ /** Override height (auto-calculated if not provided) */
172
+ height?: number;
173
+ }
174
+ /**
175
+ * Edge connecting flowchart nodes
176
+ */
177
+ export interface FlowEdge {
178
+ /** Source node ID */
179
+ from: string;
180
+ /** Target node ID */
181
+ to: string;
182
+ /** Optional edge label */
183
+ label?: string;
184
+ /** Render as dashed line */
185
+ dashed?: boolean;
186
+ }
187
+ /**
188
+ * Layout configuration for flowcharts
189
+ */
190
+ export interface FlowLayout {
191
+ /** Layout direction */
192
+ direction?: 'TB' | 'LR' | 'RL' | 'BT';
193
+ /** Vertical spacing between ranks */
194
+ rankSep?: number;
195
+ /** Horizontal spacing between nodes */
196
+ nodeSep?: number;
197
+ }
198
+ /**
199
+ * Node in an org chart
200
+ */
201
+ export interface OrgNode {
202
+ /** Unique node identifier */
203
+ id: string;
204
+ /** Person/position name */
205
+ label: string;
206
+ /** Job title/role */
207
+ role?: string;
208
+ /** Avatar URL (data URI or omitted) */
209
+ avatarUrl?: string;
210
+ /** Child nodes in hierarchy */
211
+ children?: OrgNode[];
212
+ /** Highlight this node */
213
+ highlight?: boolean;
214
+ }
215
+ /**
216
+ * Attribute in an entity
217
+ */
218
+ export interface ERAttribute {
219
+ /** Attribute name */
220
+ name: string;
221
+ /** Data type */
222
+ type?: string;
223
+ /** Primary key indicator */
224
+ pk?: boolean;
225
+ /** Foreign key indicator */
226
+ fk?: boolean;
227
+ }
228
+ /**
229
+ * Table/Entity in ER diagram
230
+ */
231
+ export interface ERTable {
232
+ /** Unique table identifier */
233
+ id: string;
234
+ /** Table display name */
235
+ name: string;
236
+ /** Table attributes/columns */
237
+ attrs: ERAttribute[];
238
+ }
239
+ /**
240
+ * Relationship between entities
241
+ */
242
+ export interface ERRelation {
243
+ /** Source table ID */
244
+ from: string;
245
+ /** Target table ID */
246
+ to: string;
247
+ /** Relationship cardinality */
248
+ label?: '1-1' | '1-N' | 'N-M';
249
+ }
250
+ /**
251
+ * Word with weight for cloud/tag visualization
252
+ */
253
+ export interface WordItem {
254
+ /** The word/term */
255
+ text: string;
256
+ /** Weight/frequency/importance */
257
+ weight: number;
258
+ }
259
+ /**
260
+ * Word cloud layout configuration
261
+ */
262
+ export interface CloudLayout {
263
+ /** Rotation strategy */
264
+ rotate?: 'none' | 'few' | 'mixed';
265
+ /** Padding between words */
266
+ padding?: number;
267
+ /** Spiral algorithm type */
268
+ spiral?: 'archimedean' | 'rectangular';
269
+ /** Minimum font size */
270
+ minFont?: number;
271
+ /** Maximum font size */
272
+ maxFont?: number;
273
+ }
274
+ /**
275
+ * Node in a network graph
276
+ */
277
+ export interface GraphNode {
278
+ /** Unique node identifier */
279
+ id: string;
280
+ /** Display label */
281
+ label?: string;
282
+ /** Group/category for coloring */
283
+ group?: string;
284
+ /** Node size (auto-calculated if not provided) */
285
+ size?: number;
286
+ }
287
+ /**
288
+ * Edge connecting graph nodes
289
+ */
290
+ export interface GraphEdge {
291
+ /** Optional edge identifier */
292
+ id?: string;
293
+ /** Source node ID */
294
+ source: string;
295
+ /** Target node ID */
296
+ target: string;
297
+ /** Edge weight/strength */
298
+ weight?: number;
299
+ /** Directed edge (arrow) */
300
+ directed?: boolean;
301
+ }
302
+ /**
303
+ * Network layout type
304
+ */
305
+ export type NetworkLayoutType = 'force' | 'radial' | 'tree' | 'grid';
306
+ /**
307
+ * Physics simulation parameters for force-directed layouts
308
+ */
309
+ export interface PhysicsParams {
310
+ /** Charge/repulsion strength (negative = repel) */
311
+ charge?: number;
312
+ /** Ideal distance between connected nodes */
313
+ linkDistance?: number;
314
+ /** Number of simulation iterations */
315
+ iterations?: number;
316
+ }
317
+ /**
318
+ * Decision tree node (hierarchical)
319
+ */
320
+ export interface DecisionNode {
321
+ /** Unique node identifier */
322
+ id: string;
323
+ /** Node label */
324
+ label: string;
325
+ /** Optional value/probability */
326
+ value?: number;
327
+ /** Child nodes in tree */
328
+ children?: DecisionNode[];
329
+ /** Collapsed state (if interactivity enabled) */
330
+ collapsed?: boolean;
331
+ /** Optional note */
332
+ note?: string;
333
+ }
334
+ /**
335
+ * Node shape for decision trees
336
+ */
337
+ export type NodeShape = 'rect' | 'circle' | 'pill';
338
+ //# sourceMappingURL=svg-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg-types.d.ts","sourceRoot":"","sources":["../../../../src/custom/visualization/shared/svg-types.ts"],"names":[],"mappings":"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"}