@visualli/core 0.1.5 → 0.1.7

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/animations/index.cjs +146 -0
  2. package/dist/animations/index.cjs.map +1 -0
  3. package/dist/animations/index.d.cts +81 -0
  4. package/dist/animations/index.d.ts +81 -0
  5. package/dist/animations/index.js +35 -0
  6. package/dist/animations/index.js.map +1 -0
  7. package/dist/chunk-6NXADJK2.js +562 -0
  8. package/dist/chunk-6NXADJK2.js.map +1 -0
  9. package/dist/chunk-F36SMC3K.js +106 -0
  10. package/dist/chunk-F36SMC3K.js.map +1 -0
  11. package/dist/chunk-G5H3P4YZ.js +273 -0
  12. package/dist/chunk-G5H3P4YZ.js.map +1 -0
  13. package/dist/chunk-GQMFBYLK.js +81 -0
  14. package/dist/chunk-GQMFBYLK.js.map +1 -0
  15. package/dist/chunk-I75TMOE4.js +108 -0
  16. package/dist/chunk-I75TMOE4.js.map +1 -0
  17. package/dist/chunk-LDJRGT2Q.js +163 -0
  18. package/dist/chunk-LDJRGT2Q.js.map +1 -0
  19. package/dist/chunk-LI3BVD6H.js +98 -0
  20. package/dist/chunk-LI3BVD6H.js.map +1 -0
  21. package/dist/chunk-LJYSKSCE.js +95 -0
  22. package/dist/chunk-LJYSKSCE.js.map +1 -0
  23. package/dist/chunk-LNTJTDB2.js +349 -0
  24. package/dist/chunk-LNTJTDB2.js.map +1 -0
  25. package/dist/chunk-PDP5CVUL.js +139 -0
  26. package/dist/chunk-PDP5CVUL.js.map +1 -0
  27. package/dist/chunk-VLGR5PZX.js +1 -0
  28. package/dist/chunk-VLGR5PZX.js.map +1 -0
  29. package/dist/config/index.cjs +391 -0
  30. package/dist/config/index.cjs.map +1 -0
  31. package/dist/config/index.d.cts +77 -0
  32. package/dist/config/index.d.ts +77 -0
  33. package/dist/config/index.js +38 -0
  34. package/dist/config/index.js.map +1 -0
  35. package/dist/constants/index.cjs +642 -0
  36. package/dist/constants/index.cjs.map +1 -0
  37. package/dist/constants/index.d.cts +448 -0
  38. package/dist/constants/index.d.ts +448 -0
  39. package/dist/constants/index.js +183 -0
  40. package/dist/constants/index.js.map +1 -0
  41. package/dist/document-B3hnNr-F.d.cts +73 -0
  42. package/dist/document-B3hnNr-F.d.ts +73 -0
  43. package/dist/index.cjs +32 -32
  44. package/dist/index.cjs.map +1 -1
  45. package/dist/index.d.cts +15 -1044
  46. package/dist/index.d.ts +15 -1044
  47. package/dist/index.js +179 -1747
  48. package/dist/index.js.map +1 -1
  49. package/dist/layout/index.cjs +210 -0
  50. package/dist/layout/index.cjs.map +1 -0
  51. package/dist/layout/index.d.cts +80 -0
  52. package/dist/layout/index.d.ts +80 -0
  53. package/dist/layout/index.js +25 -0
  54. package/dist/layout/index.js.map +1 -0
  55. package/dist/mindmap-DWS0WZT_.d.cts +118 -0
  56. package/dist/mindmap-DWS0WZT_.d.ts +118 -0
  57. package/dist/parser/index.cjs +739 -0
  58. package/dist/parser/index.cjs.map +1 -0
  59. package/dist/parser/index.d.cts +87 -0
  60. package/dist/parser/index.d.ts +87 -0
  61. package/dist/parser/index.js +43 -0
  62. package/dist/parser/index.js.map +1 -0
  63. package/dist/performance/index.cjs +167 -0
  64. package/dist/performance/index.cjs.map +1 -0
  65. package/dist/performance/index.d.cts +40 -0
  66. package/dist/performance/index.d.ts +40 -0
  67. package/dist/performance/index.js +12 -0
  68. package/dist/performance/index.js.map +1 -0
  69. package/dist/types/index.cjs +19 -0
  70. package/dist/types/index.cjs.map +1 -0
  71. package/dist/types/index.d.cts +8 -0
  72. package/dist/types/index.d.ts +8 -0
  73. package/dist/types/index.js +2 -0
  74. package/dist/types/index.js.map +1 -0
  75. package/dist/viewport/index.cjs +131 -0
  76. package/dist/viewport/index.cjs.map +1 -0
  77. package/dist/viewport/index.d.cts +56 -0
  78. package/dist/viewport/index.d.ts +56 -0
  79. package/dist/viewport/index.js +26 -0
  80. package/dist/viewport/index.js.map +1 -0
  81. package/package.json +7 -2
  82. package/src/config/README.md +59 -0
  83. package/src/config/USAGE_EXAMPLES.md +285 -0
  84. package/src/config/index.ts +7 -0
  85. package/src/index.ts +1 -2
@@ -0,0 +1,642 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/constants/index.ts
21
+ var constants_exports = {};
22
+ __export(constants_exports, {
23
+ BORDER_WIDTH_NORMAL: () => BORDER_WIDTH_NORMAL,
24
+ BORDER_WIDTH_SELECTED: () => BORDER_WIDTH_SELECTED,
25
+ BRAND_COLORS: () => BRAND_COLORS,
26
+ CANVAS_COLORS: () => CANVAS_COLORS,
27
+ CHAR_WIDTH: () => CHAR_WIDTH,
28
+ CIRCULAR_REFERENCE_MAX_DEPTH: () => CIRCULAR_REFERENCE_MAX_DEPTH,
29
+ CLICK_THRESHOLD: () => CLICK_THRESHOLD,
30
+ COLOR_BORDER_DARK: () => COLOR_BORDER_DARK,
31
+ COLOR_BORDER_LIGHT: () => COLOR_BORDER_LIGHT,
32
+ COLOR_DEFAULT_NODE: () => COLOR_DEFAULT_NODE,
33
+ COLOR_SELECTED: () => COLOR_SELECTED,
34
+ CORNER_RADIUS: () => CORNER_RADIUS,
35
+ CULLING_QUERY_TIME_BUDGET: () => CULLING_QUERY_TIME_BUDGET,
36
+ DEFAULT_CANVAS_HEIGHT: () => DEFAULT_CANVAS_HEIGHT,
37
+ DEFAULT_CANVAS_WIDTH: () => DEFAULT_CANVAS_WIDTH,
38
+ DEFAULT_RENDER_CONFIG: () => DEFAULT_RENDER_CONFIG,
39
+ DOUBLE_CLICK_DELAY: () => DOUBLE_CLICK_DELAY,
40
+ DRAG_START_DISTANCE: () => DRAG_START_DISTANCE,
41
+ DS_COLORS: () => DS_COLORS,
42
+ DS_RADII: () => DS_RADII,
43
+ DS_TYPOGRAPHY: () => DS_TYPOGRAPHY,
44
+ FEATURE_FLAGS: () => FEATURE_FLAGS,
45
+ FONTS: () => FONTS,
46
+ FONT_SIZES: () => FONT_SIZES,
47
+ FPS_CRITICAL_THRESHOLD: () => FPS_CRITICAL_THRESHOLD,
48
+ FPS_DOWNGRADE_THRESHOLD: () => FPS_DOWNGRADE_THRESHOLD,
49
+ FPS_SAMPLE_WINDOW: () => FPS_SAMPLE_WINDOW,
50
+ FPS_STABILIZATION_FRAMES: () => FPS_STABILIZATION_FRAMES,
51
+ FPS_TARGET: () => FPS_TARGET,
52
+ FPS_TARGETS: () => FPS_TARGETS,
53
+ FPS_UPDATE_INTERVAL: () => FPS_UPDATE_INTERVAL,
54
+ FPS_UPGRADE_THRESHOLD: () => FPS_UPGRADE_THRESHOLD,
55
+ FPS_WARNING_THRESHOLD: () => FPS_WARNING_THRESHOLD,
56
+ LAYOUT_SPACING: () => LAYOUT_SPACING,
57
+ LEVEL_COLORS: () => LEVEL_COLORS,
58
+ LEVEL_COLOR_ARRAY: () => LEVEL_COLOR_ARRAY,
59
+ MAX_FRAME_TIME: () => MAX_FRAME_TIME,
60
+ MAX_NODES: () => MAX_NODES,
61
+ MAX_VISIBLE_NODES: () => MAX_VISIBLE_NODES,
62
+ MEMORY_CHECK_INTERVAL: () => MEMORY_CHECK_INTERVAL,
63
+ MEMORY_CRITICAL_MB: () => MEMORY_CRITICAL_MB,
64
+ MEMORY_LIMITS: () => MEMORY_LIMITS,
65
+ MEMORY_TARGET_MB: () => MEMORY_TARGET_MB,
66
+ MEMORY_WARNING_MB: () => MEMORY_WARNING_MB,
67
+ NODE_COUNT_THRESHOLDS: () => NODE_COUNT_THRESHOLDS,
68
+ NODE_HEIGHT: () => NODE_HEIGHT,
69
+ NODE_MIN_WIDTH: () => NODE_MIN_WIDTH,
70
+ NODE_PADDING: () => NODE_PADDING,
71
+ PARENT_FALLBACK_COLORS: () => PARENT_FALLBACK_COLORS,
72
+ PERFORMANCE_TOAST_COOLDOWN: () => PERFORMANCE_TOAST_COOLDOWN,
73
+ QUALITY_HIGH: () => QUALITY_HIGH,
74
+ QUALITY_LEVELS: () => QUALITY_LEVELS,
75
+ QUALITY_LOW: () => QUALITY_LOW,
76
+ QUALITY_MEDIUM: () => QUALITY_MEDIUM,
77
+ QUALITY_SETTINGS: () => QUALITY_SETTINGS,
78
+ RBUSH_MAX_ENTRIES: () => RBUSH_MAX_ENTRIES,
79
+ RENDER_MODES: () => RENDER_MODES,
80
+ RESIZE_DEBOUNCE: () => RESIZE_DEBOUNCE,
81
+ SCROLL_THROTTLE: () => SCROLL_THROTTLE,
82
+ SEARCH_DEBOUNCE: () => SEARCH_DEBOUNCE,
83
+ SEMANTIC_COLORS: () => SEMANTIC_COLORS,
84
+ SIMPLIFIED_RENDER_CONFIG: () => SIMPLIFIED_RENDER_CONFIG,
85
+ SPACING: () => SPACING,
86
+ SPATIAL_INDEX_BUILD_BUDGET: () => SPATIAL_INDEX_BUILD_BUDGET,
87
+ TARGET_FRAME_TIME: () => TARGET_FRAME_TIME,
88
+ TEXT_LABEL_HIDE_BELOW_ZOOM: () => TEXT_LABEL_HIDE_BELOW_ZOOM,
89
+ THEME_COLORS: () => THEME_COLORS,
90
+ TIMING_THRESHOLDS: () => TIMING_THRESHOLDS,
91
+ TITLE_MAX_LENGTH: () => TITLE_MAX_LENGTH,
92
+ VIEWPORT_CONFIG: () => VIEWPORT_CONFIG,
93
+ VIEWPORT_MARGIN: () => VIEWPORT_MARGIN,
94
+ ZOOM_DEFAULT: () => ZOOM_DEFAULT,
95
+ ZOOM_MAX: () => ZOOM_MAX,
96
+ ZOOM_MIN: () => ZOOM_MIN,
97
+ ZOOM_NAV_IN_THRESHOLD: () => ZOOM_NAV_IN_THRESHOLD,
98
+ ZOOM_NAV_OUT_THRESHOLD: () => ZOOM_NAV_OUT_THRESHOLD,
99
+ ZOOM_STEP: () => ZOOM_STEP,
100
+ ZOOM_WHEEL_SENSITIVITY: () => ZOOM_WHEEL_SENSITIVITY,
101
+ darkenHexColor: () => darkenHexColor,
102
+ getColorForLevel: () => getColorForLevel,
103
+ getOptimalQualityLevel: () => getOptimalQualityLevel,
104
+ getRecommendedRenderConfig: () => getRecommendedRenderConfig,
105
+ getRenderConfigForQuality: () => getRenderConfigForQuality,
106
+ getThemeBackground: () => getThemeBackground,
107
+ getThemeBorder: () => getThemeBorder,
108
+ getThemeText: () => getThemeText,
109
+ isFeatureEnabled: () => isFeatureEnabled
110
+ });
111
+ module.exports = __toCommonJS(constants_exports);
112
+
113
+ // src/constants/performanceConstants.ts
114
+ var FPS_TARGET = 60;
115
+ var FPS_WARNING_THRESHOLD = 45;
116
+ var FPS_CRITICAL_THRESHOLD = 30;
117
+ var TARGET_FRAME_TIME = 1e3 / FPS_TARGET;
118
+ var MAX_FRAME_TIME = 18;
119
+ var FPS_TARGETS = {
120
+ PAN_MIN: 30,
121
+ ZOOM_TARGET: 60,
122
+ WARNING_THRESHOLD: 20
123
+ };
124
+ var TIMING_THRESHOLDS = {
125
+ VIEWPORT_QUERY_MAX: 5,
126
+ SPATIAL_UPDATE_MAX: 10,
127
+ DRAG_RESPONSE_MAX: 16,
128
+ LOAD_5K_TARGET: 2e3,
129
+ LOAD_10K_TARGET: 3e3,
130
+ VIEWPORT_DEBOUNCE: 100,
131
+ SPATIAL_INDEX_BUILD: 50
132
+ };
133
+ var MEMORY_TARGET_MB = 500;
134
+ var MEMORY_WARNING_MB = 600;
135
+ var MEMORY_CRITICAL_MB = 800;
136
+ var MEMORY_LIMITS = {
137
+ MAX_10K_NODES: 500,
138
+ MAX_GROWTH_PERCENT: 20,
139
+ WARNING_THRESHOLD: 400
140
+ };
141
+ var VIEWPORT_MARGIN = 0.1;
142
+ var MAX_VISIBLE_NODES = 800;
143
+ var CULLING_QUERY_TIME_BUDGET = 5;
144
+ var RBUSH_MAX_ENTRIES = 16;
145
+ var SPATIAL_INDEX_BUILD_BUDGET = 50;
146
+ var NODE_MIN_WIDTH = 200;
147
+ var NODE_HEIGHT = 80;
148
+ var NODE_PADDING = 40;
149
+ var CHAR_WIDTH = 8;
150
+ var TITLE_MAX_LENGTH = 150;
151
+ var CORNER_RADIUS = 8;
152
+ var BORDER_WIDTH_NORMAL = 2;
153
+ var BORDER_WIDTH_SELECTED = 3;
154
+ var COLOR_SELECTED = "#1B2D4F";
155
+ var COLOR_BORDER_LIGHT = "#4A3728";
156
+ var COLOR_BORDER_DARK = "#FAF6F1";
157
+ var COLOR_DEFAULT_NODE = "#FAF6F1";
158
+ var ZOOM_MIN = 0.05;
159
+ var ZOOM_MAX = 5;
160
+ var ZOOM_DEFAULT = 1;
161
+ var ZOOM_STEP = 0.1;
162
+ var ZOOM_WHEEL_SENSITIVITY = 1e-3;
163
+ var ZOOM_NAV_IN_THRESHOLD = 2.7;
164
+ var ZOOM_NAV_OUT_THRESHOLD = 0.4;
165
+ var TEXT_LABEL_HIDE_BELOW_ZOOM = 0.3;
166
+ var QUALITY_HIGH = {
167
+ shadows: true,
168
+ bezierCurves: true,
169
+ animations: true,
170
+ textQuality: "high",
171
+ antialiasing: true
172
+ };
173
+ var QUALITY_MEDIUM = {
174
+ shadows: false,
175
+ bezierCurves: true,
176
+ animations: true,
177
+ textQuality: "medium",
178
+ antialiasing: true
179
+ };
180
+ var QUALITY_LOW = {
181
+ shadows: false,
182
+ bezierCurves: false,
183
+ animations: false,
184
+ textQuality: "low",
185
+ antialiasing: false
186
+ };
187
+ var FPS_SAMPLE_WINDOW = 60;
188
+ var FPS_UPDATE_INTERVAL = 1e3;
189
+ var MEMORY_CHECK_INTERVAL = 5e3;
190
+ var PERFORMANCE_TOAST_COOLDOWN = 1e4;
191
+ var FPS_DOWNGRADE_THRESHOLD = 45;
192
+ var FPS_UPGRADE_THRESHOLD = 58;
193
+ var FPS_STABILIZATION_FRAMES = 180;
194
+ var DEFAULT_CANVAS_WIDTH = 1920;
195
+ var DEFAULT_CANVAS_HEIGHT = 1080;
196
+ var CLICK_THRESHOLD = 5;
197
+ var DOUBLE_CLICK_DELAY = 300;
198
+ var DRAG_START_DISTANCE = 10;
199
+ var MAX_NODES = 2e4;
200
+ var CIRCULAR_REFERENCE_MAX_DEPTH = 1e3;
201
+ var RESIZE_DEBOUNCE = 300;
202
+ var SCROLL_THROTTLE = 16;
203
+ var SEARCH_DEBOUNCE = 500;
204
+ var NODE_COUNT_THRESHOLDS = {
205
+ SPATIAL_INDEX_MIN: 100,
206
+ VIEWPORT_CULLING_MIN: 500,
207
+ CANVAS_RENDERING_MIN: 2e3,
208
+ DOM_RENDERING_MAX: 5e3
209
+ };
210
+ var VIEWPORT_CONFIG = {
211
+ BUFFER_PERCENT: 0.2,
212
+ MIN_VISIBLE_NODES: 10
213
+ };
214
+
215
+ // src/constants/design.ts
216
+ var DS_COLORS = {
217
+ light: {
218
+ bgApp: "#F0EDE6",
219
+ bgSurface: "#FAF8F4",
220
+ bgInput: "#FFFFFF",
221
+ border: "#DDD9D0",
222
+ borderDivider: "#E8E4DC",
223
+ primary: "#1B2D4F",
224
+ primaryHover: "#243B68",
225
+ textPrimary: "#1A1A18",
226
+ textSecondary: "#6B6860",
227
+ textMuted: "#747270",
228
+ textOnPrimary: "#FAF8F4",
229
+ hoverItem: "rgba(27,45,79,0.07)",
230
+ focusRing: "rgba(27,45,79,0.40)",
231
+ btnMuted: "#8E8C88"
232
+ },
233
+ dark: {
234
+ bgApp: "#141412",
235
+ bgSurface: "#1C1C1A",
236
+ bgInput: "#262622",
237
+ border: "#333330",
238
+ borderDivider: "#2A2A28",
239
+ primary: "#BB532D",
240
+ primaryHover: "#CC6440",
241
+ textPrimary: "#F0EDE6",
242
+ textSecondary: "#B0ABA3",
243
+ textMuted: "#8E8C88",
244
+ textOnPrimary: "#FAF8F4",
245
+ hoverItem: "rgba(198,94,56,0.12)",
246
+ focusRing: "rgba(198,94,56,0.50)",
247
+ btnMuted: "#4A4845"
248
+ }
249
+ };
250
+ var DS_TYPOGRAPHY = {
251
+ fontDisplay: "'Nunito', sans-serif",
252
+ fontBody: "'Nunito Sans', sans-serif",
253
+ logo: { size: "20px", weight: 800, letterSpacing: "0.04em" },
254
+ heading: { size: "16px", weight: 700, letterSpacing: "-0.2px" },
255
+ cta: { size: "11px", weight: 800, letterSpacing: "0.12em", transform: "uppercase" },
256
+ body: { size: "13px", weight: 400 },
257
+ input: { size: "13px", weight: 300, style: "italic" },
258
+ search: { size: "12px", weight: 400 },
259
+ username: { size: "13px", weight: 600 },
260
+ avatar: { size: "11px", weight: 700 },
261
+ footer: { size: "12px", weight: 400 },
262
+ empty: { size: "11px", weight: 300, style: "italic" }
263
+ };
264
+ var DS_RADII = {
265
+ sidebar: 16,
266
+ input: 8,
267
+ cta: 7,
268
+ item: 6,
269
+ swatch: 10
270
+ };
271
+ var BRAND_COLORS = {
272
+ primary: {
273
+ 50: "#EFF6FF",
274
+ 100: "#DBEAFE",
275
+ 200: "#BFDBFE",
276
+ 300: "#93C5FD",
277
+ 400: "#60A5FA",
278
+ 500: "#3B82F6",
279
+ 600: "#2563EB",
280
+ 700: "#1D4ED8",
281
+ 800: "#1E40AF",
282
+ 900: "#1E3A8A"
283
+ },
284
+ secondary: {
285
+ 50: "#F0FDF4",
286
+ 100: "#DCFCE7",
287
+ 200: "#BBF7D0",
288
+ 300: "#86EFAC",
289
+ 400: "#4ADE80",
290
+ 500: "#10B981",
291
+ 600: "#059669",
292
+ 700: "#047857",
293
+ 800: "#065F46",
294
+ 900: "#064E3B"
295
+ },
296
+ accent: {
297
+ purple: "#8B5CF6",
298
+ cyan: "#06B6D4",
299
+ sky: "#0EA5E9",
300
+ lime: "#84CC16",
301
+ amber: "#F59E0B",
302
+ red: "#EF4444"
303
+ }
304
+ };
305
+ var LEVEL_COLORS = {
306
+ level0: BRAND_COLORS.primary[500],
307
+ level1: BRAND_COLORS.primary[400],
308
+ level2: BRAND_COLORS.primary[300],
309
+ level3: BRAND_COLORS.primary[200],
310
+ level4: BRAND_COLORS.primary[300],
311
+ level5: BRAND_COLORS.primary[400],
312
+ level6: BRAND_COLORS.primary[500],
313
+ level7: BRAND_COLORS.primary[600],
314
+ level8: BRAND_COLORS.primary[700]
315
+ };
316
+ var LEVEL_COLOR_ARRAY = [
317
+ LEVEL_COLORS.level0,
318
+ LEVEL_COLORS.level1,
319
+ LEVEL_COLORS.level2,
320
+ LEVEL_COLORS.level3,
321
+ LEVEL_COLORS.level4,
322
+ LEVEL_COLORS.level5,
323
+ LEVEL_COLORS.level6,
324
+ LEVEL_COLORS.level7,
325
+ LEVEL_COLORS.level8
326
+ ];
327
+ var PARENT_FALLBACK_COLORS = [
328
+ "#12C7D3",
329
+ "#325E8C",
330
+ "#8A70A6",
331
+ "#F54A57",
332
+ "#FF6C4D",
333
+ "#F28C16",
334
+ "#FFD347",
335
+ "#7F7F7F",
336
+ "#8D8D8D"
337
+ ];
338
+ var SEMANTIC_COLORS = {
339
+ success: BRAND_COLORS.secondary[500],
340
+ error: BRAND_COLORS.accent.red,
341
+ warning: BRAND_COLORS.accent.amber,
342
+ info: BRAND_COLORS.primary[500]
343
+ };
344
+ var THEME_COLORS = {
345
+ light: {
346
+ background: { primary: "#FAF8F4", secondary: "#F0EDE6", tertiary: "#FFFFFF" },
347
+ text: { primary: "#1A1A18", secondary: "#6B6860", tertiary: "#747270" },
348
+ border: { primary: "#DDD9D0", secondary: "#E8E4DC" }
349
+ },
350
+ dark: {
351
+ background: { primary: "#1C1C1A", secondary: "#141412", tertiary: "#262622" },
352
+ text: { primary: "#F0EDE6", secondary: "#B0ABA3", tertiary: "#8E8C88" },
353
+ border: { primary: "#333330", secondary: "#2A2A28" }
354
+ }
355
+ };
356
+ var CANVAS_COLORS = {
357
+ node: {
358
+ border: "#FFFFFF",
359
+ titleColor: "#1e1b4b",
360
+ badgeBackground: "#FFC107",
361
+ badgeStroke: "#fcd34d"
362
+ }
363
+ };
364
+ var SPACING = {
365
+ xs: 4,
366
+ sm: 8,
367
+ md: 16,
368
+ lg: 24,
369
+ xl: 32,
370
+ "2xl": 48,
371
+ "3xl": 64,
372
+ "4xl": 96
373
+ };
374
+ var LAYOUT_SPACING = {
375
+ nodeSpacing: 200,
376
+ levelSpacing: 150,
377
+ containerPadding: 20,
378
+ gridSize: 50
379
+ };
380
+ var FONTS = {
381
+ primary: "'Inter', sans-serif",
382
+ secondary: "'Poppins', sans-serif",
383
+ mono: "'Roboto Mono', monospace"
384
+ };
385
+ var FONT_SIZES = {
386
+ xs: "0.75rem",
387
+ sm: "0.875rem",
388
+ base: "1rem",
389
+ lg: "1.125rem",
390
+ xl: "1.25rem",
391
+ "2xl": "1.5rem",
392
+ "3xl": "1.875rem",
393
+ "4xl": "2.25rem"
394
+ };
395
+ function getColorForLevel(level) {
396
+ return LEVEL_COLOR_ARRAY[level % LEVEL_COLOR_ARRAY.length];
397
+ }
398
+ function darkenHexColor(hex, amount = 0.22) {
399
+ if (!hex || !hex.startsWith("#")) return hex;
400
+ let r, g, b;
401
+ if (hex.length === 4) {
402
+ r = parseInt(hex[1] + hex[1], 16);
403
+ g = parseInt(hex[2] + hex[2], 16);
404
+ b = parseInt(hex[3] + hex[3], 16);
405
+ } else if (hex.length === 7) {
406
+ r = parseInt(hex.slice(1, 3), 16);
407
+ g = parseInt(hex.slice(3, 5), 16);
408
+ b = parseInt(hex.slice(5, 7), 16);
409
+ } else {
410
+ return hex;
411
+ }
412
+ if (isNaN(r) || isNaN(g) || isNaN(b)) return hex;
413
+ const rn = r / 255, gn = g / 255, bn = b / 255;
414
+ const cmax = Math.max(rn, gn, bn), cmin = Math.min(rn, gn, bn);
415
+ const d = cmax - cmin;
416
+ const l = (cmax + cmin) / 2;
417
+ const s = d === 0 ? 0 : d / (1 - Math.abs(2 * l - 1));
418
+ let h = 0;
419
+ if (d !== 0) {
420
+ const seg = cmax === rn ? (gn - bn) / d : cmax === gn ? (bn - rn) / d + 2 : (rn - gn) / d + 4;
421
+ h = (seg * 60 + 360) % 360;
422
+ }
423
+ const newL = Math.max(0, l - amount);
424
+ const c2 = (1 - Math.abs(2 * newL - 1)) * s;
425
+ const x2 = c2 * (1 - Math.abs(h / 60 % 2 - 1));
426
+ const m2 = newL - c2 / 2;
427
+ let r1 = 0, g1 = 0, b1 = 0;
428
+ if (h < 60) {
429
+ r1 = c2;
430
+ g1 = x2;
431
+ b1 = 0;
432
+ } else if (h < 120) {
433
+ r1 = x2;
434
+ g1 = c2;
435
+ b1 = 0;
436
+ } else if (h < 180) {
437
+ r1 = 0;
438
+ g1 = c2;
439
+ b1 = x2;
440
+ } else if (h < 240) {
441
+ r1 = 0;
442
+ g1 = x2;
443
+ b1 = c2;
444
+ } else if (h < 300) {
445
+ r1 = x2;
446
+ g1 = 0;
447
+ b1 = c2;
448
+ } else {
449
+ r1 = c2;
450
+ g1 = 0;
451
+ b1 = x2;
452
+ }
453
+ const toHex = (v) => Math.round((v + m2) * 255).toString(16).padStart(2, "0");
454
+ return `#${toHex(r1)}${toHex(g1)}${toHex(b1)}`;
455
+ }
456
+ function getThemeBackground(isDark, variant = "primary") {
457
+ return isDark ? THEME_COLORS.dark.background[variant] : THEME_COLORS.light.background[variant];
458
+ }
459
+ function getThemeText(isDark, variant = "primary") {
460
+ return isDark ? THEME_COLORS.dark.text[variant] : THEME_COLORS.light.text[variant];
461
+ }
462
+ function getThemeBorder(isDark, variant = "primary") {
463
+ return isDark ? THEME_COLORS.dark.border[variant] : THEME_COLORS.light.border[variant];
464
+ }
465
+
466
+ // src/constants/renderConfig.ts
467
+ var DEFAULT_RENDER_CONFIG = {
468
+ renderMode: "canvas",
469
+ qualityLevel: "high",
470
+ cullingEnabled: false,
471
+ fpsTarget: FPS_TARGET,
472
+ memoryLimit: MEMORY_TARGET_MB
473
+ };
474
+ var SIMPLIFIED_RENDER_CONFIG = {
475
+ renderMode: "simplified",
476
+ qualityLevel: "low",
477
+ cullingEnabled: true,
478
+ fpsTarget: 30,
479
+ memoryLimit: 400
480
+ };
481
+ var QUALITY_SETTINGS = {
482
+ high: QUALITY_HIGH,
483
+ medium: QUALITY_MEDIUM,
484
+ low: QUALITY_LOW
485
+ };
486
+ var FEATURE_FLAGS = {
487
+ viewportCulling: true,
488
+ spatialIndexing: true,
489
+ shadows: true,
490
+ bezierCurves: true,
491
+ animations: true,
492
+ branchBadges: true,
493
+ autoQualityAdjustment: true,
494
+ performanceMonitoring: true,
495
+ performanceToasts: true,
496
+ debugOverlay: false,
497
+ showFPS: false,
498
+ showMemory: false,
499
+ showVisibleCount: false
500
+ };
501
+ var RENDER_MODES = {
502
+ canvas: {
503
+ name: "Canvas",
504
+ description: "Full Konva canvas rendering with all features",
505
+ features: { culling: true, shadows: true, bezierCurves: true, animations: true }
506
+ },
507
+ simplified: {
508
+ name: "Simplified",
509
+ description: "Reduced feature set for low-end devices",
510
+ features: { culling: true, shadows: false, bezierCurves: false, animations: false }
511
+ }
512
+ };
513
+ var QUALITY_LEVELS = {
514
+ high: { name: "High", description: "All visual features enabled", targetFPS: 60, features: QUALITY_HIGH },
515
+ medium: { name: "Medium", description: "Shadows disabled, other features enabled", targetFPS: 60, features: QUALITY_MEDIUM },
516
+ low: { name: "Low", description: "Minimal visual features, max performance", targetFPS: 30, features: QUALITY_LOW }
517
+ };
518
+ function getOptimalQualityLevel(currentFPS, currentQuality) {
519
+ if (currentFPS < 45 && currentQuality === "high") return "medium";
520
+ if (currentFPS < 30 && currentQuality === "medium") return "low";
521
+ if (currentFPS > 58 && currentQuality === "low") return "medium";
522
+ if (currentFPS > 58 && currentQuality === "medium") return "high";
523
+ return currentQuality;
524
+ }
525
+ function getRenderConfigForQuality(quality) {
526
+ return { qualityLevel: quality, fpsTarget: QUALITY_LEVELS[quality].targetFPS };
527
+ }
528
+ function isFeatureEnabled(featureName, config) {
529
+ if (!FEATURE_FLAGS[featureName]) return false;
530
+ const qs = QUALITY_SETTINGS[config.qualityLevel];
531
+ switch (featureName) {
532
+ case "shadows":
533
+ return qs.shadows;
534
+ case "bezierCurves":
535
+ return qs.bezierCurves;
536
+ case "animations":
537
+ return qs.animations;
538
+ default:
539
+ return FEATURE_FLAGS[featureName];
540
+ }
541
+ }
542
+ function getRecommendedRenderConfig() {
543
+ if (typeof performance === "undefined" || !performance["memory"]) {
544
+ return SIMPLIFIED_RENDER_CONFIG;
545
+ }
546
+ const memory = performance["memory"];
547
+ if (memory?.["jsHeapSizeLimit"] && memory["jsHeapSizeLimit"] < 512 * 1024 * 1024) {
548
+ return SIMPLIFIED_RENDER_CONFIG;
549
+ }
550
+ return DEFAULT_RENDER_CONFIG;
551
+ }
552
+ // Annotate the CommonJS export names for ESM import in node:
553
+ 0 && (module.exports = {
554
+ BORDER_WIDTH_NORMAL,
555
+ BORDER_WIDTH_SELECTED,
556
+ BRAND_COLORS,
557
+ CANVAS_COLORS,
558
+ CHAR_WIDTH,
559
+ CIRCULAR_REFERENCE_MAX_DEPTH,
560
+ CLICK_THRESHOLD,
561
+ COLOR_BORDER_DARK,
562
+ COLOR_BORDER_LIGHT,
563
+ COLOR_DEFAULT_NODE,
564
+ COLOR_SELECTED,
565
+ CORNER_RADIUS,
566
+ CULLING_QUERY_TIME_BUDGET,
567
+ DEFAULT_CANVAS_HEIGHT,
568
+ DEFAULT_CANVAS_WIDTH,
569
+ DEFAULT_RENDER_CONFIG,
570
+ DOUBLE_CLICK_DELAY,
571
+ DRAG_START_DISTANCE,
572
+ DS_COLORS,
573
+ DS_RADII,
574
+ DS_TYPOGRAPHY,
575
+ FEATURE_FLAGS,
576
+ FONTS,
577
+ FONT_SIZES,
578
+ FPS_CRITICAL_THRESHOLD,
579
+ FPS_DOWNGRADE_THRESHOLD,
580
+ FPS_SAMPLE_WINDOW,
581
+ FPS_STABILIZATION_FRAMES,
582
+ FPS_TARGET,
583
+ FPS_TARGETS,
584
+ FPS_UPDATE_INTERVAL,
585
+ FPS_UPGRADE_THRESHOLD,
586
+ FPS_WARNING_THRESHOLD,
587
+ LAYOUT_SPACING,
588
+ LEVEL_COLORS,
589
+ LEVEL_COLOR_ARRAY,
590
+ MAX_FRAME_TIME,
591
+ MAX_NODES,
592
+ MAX_VISIBLE_NODES,
593
+ MEMORY_CHECK_INTERVAL,
594
+ MEMORY_CRITICAL_MB,
595
+ MEMORY_LIMITS,
596
+ MEMORY_TARGET_MB,
597
+ MEMORY_WARNING_MB,
598
+ NODE_COUNT_THRESHOLDS,
599
+ NODE_HEIGHT,
600
+ NODE_MIN_WIDTH,
601
+ NODE_PADDING,
602
+ PARENT_FALLBACK_COLORS,
603
+ PERFORMANCE_TOAST_COOLDOWN,
604
+ QUALITY_HIGH,
605
+ QUALITY_LEVELS,
606
+ QUALITY_LOW,
607
+ QUALITY_MEDIUM,
608
+ QUALITY_SETTINGS,
609
+ RBUSH_MAX_ENTRIES,
610
+ RENDER_MODES,
611
+ RESIZE_DEBOUNCE,
612
+ SCROLL_THROTTLE,
613
+ SEARCH_DEBOUNCE,
614
+ SEMANTIC_COLORS,
615
+ SIMPLIFIED_RENDER_CONFIG,
616
+ SPACING,
617
+ SPATIAL_INDEX_BUILD_BUDGET,
618
+ TARGET_FRAME_TIME,
619
+ TEXT_LABEL_HIDE_BELOW_ZOOM,
620
+ THEME_COLORS,
621
+ TIMING_THRESHOLDS,
622
+ TITLE_MAX_LENGTH,
623
+ VIEWPORT_CONFIG,
624
+ VIEWPORT_MARGIN,
625
+ ZOOM_DEFAULT,
626
+ ZOOM_MAX,
627
+ ZOOM_MIN,
628
+ ZOOM_NAV_IN_THRESHOLD,
629
+ ZOOM_NAV_OUT_THRESHOLD,
630
+ ZOOM_STEP,
631
+ ZOOM_WHEEL_SENSITIVITY,
632
+ darkenHexColor,
633
+ getColorForLevel,
634
+ getOptimalQualityLevel,
635
+ getRecommendedRenderConfig,
636
+ getRenderConfigForQuality,
637
+ getThemeBackground,
638
+ getThemeBorder,
639
+ getThemeText,
640
+ isFeatureEnabled
641
+ });
642
+ //# sourceMappingURL=index.cjs.map