@shumoku/renderer 0.2.1 → 0.2.4

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 (46) hide show
  1. package/dist/html/index.d.ts +25 -0
  2. package/dist/html/index.d.ts.map +1 -1
  3. package/dist/html/index.js +742 -158
  4. package/dist/html/index.js.map +1 -1
  5. package/dist/html/navigation.d.ts +54 -0
  6. package/dist/html/navigation.d.ts.map +1 -0
  7. package/dist/html/navigation.js +210 -0
  8. package/dist/html/navigation.js.map +1 -0
  9. package/dist/html/runtime.d.ts +2 -1
  10. package/dist/html/runtime.d.ts.map +1 -1
  11. package/dist/html/runtime.js +245 -482
  12. package/dist/html/runtime.js.map +1 -1
  13. package/dist/html/spotlight.d.ts +9 -0
  14. package/dist/html/spotlight.d.ts.map +1 -0
  15. package/dist/html/spotlight.js +119 -0
  16. package/dist/html/spotlight.js.map +1 -0
  17. package/dist/html/tooltip.d.ts +14 -0
  18. package/dist/html/tooltip.d.ts.map +1 -0
  19. package/dist/html/tooltip.js +133 -0
  20. package/dist/html/tooltip.js.map +1 -0
  21. package/dist/html/viewbox.d.ts +14 -0
  22. package/dist/html/viewbox.d.ts.map +1 -0
  23. package/dist/html/viewbox.js +21 -0
  24. package/dist/html/viewbox.js.map +1 -0
  25. package/dist/iife-string.d.ts +2 -0
  26. package/dist/iife-string.js +1 -1
  27. package/dist/index.d.ts +1 -0
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/shumoku-interactive.iife.js +25 -20
  30. package/dist/svg.d.ts +27 -0
  31. package/dist/svg.d.ts.map +1 -1
  32. package/dist/svg.js +202 -101
  33. package/dist/svg.js.map +1 -1
  34. package/dist/types.d.ts +2 -0
  35. package/dist/types.d.ts.map +1 -1
  36. package/package.json +5 -2
  37. package/src/build-iife-string.ts +26 -19
  38. package/src/html/index.ts +880 -226
  39. package/src/html/navigation.ts +256 -0
  40. package/src/html/runtime.ts +412 -654
  41. package/src/html/spotlight.ts +135 -0
  42. package/src/html/tooltip.ts +141 -0
  43. package/src/html/viewbox.ts +28 -0
  44. package/src/index.ts +25 -22
  45. package/src/svg.ts +1640 -1502
  46. package/src/types.ts +127 -125
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/html/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAIvC,qCAAqC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,yCAAyC;AACzC,IAAI,gBAAgB,GAAG,EAAE,CAAA;AAEzB;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,gBAAgB,GAAG,IAAI,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO;IACrB,OAAO,gBAAgB,CAAA;AACzB,CAAC;AAID,MAAM,eAAe,GAAG;IACtB,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;CACd,CAAA;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,KAAmB,EAAE,MAAoB,EAAE,OAAuB;IACvF,MAAM,IAAI,GAAG,EAAE,GAAG,eAAe,EAAE,GAAG,OAAO,EAAE,CAAA;IAC/C,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAA;IAClE,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAC7C,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC,IAAI,IAAI,iBAAiB,CAAA;IAE/D,OAAO,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,IAA+B,CAAC,CAAA;AAClE,CAAC;AAED,SAAS,YAAY,CAAC,GAAW,EAAE,KAAa,EAAE,OAAgC;IAChF,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ;QACnC,CAAC,CAAC;;;SAGG;QACL,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO;QACjC,CAAC,CAAC;kCAC4B,UAAU,CAAC,KAAK,CAAC;;;;;;;;SAQ1C;QACL,CAAC,CAAC,EAAE,CAAA;IAEN,OAAO;;;;;WAKE,UAAU,CAAC,KAAK,CAAC;;;;;;;;;;4DAUgC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO;;;;;;;;;;;;;;IAcxG,WAAW;;MAET,GAAG;MACH,YAAY;;YAEN,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA+GpB,CAAA;AACR,CAAC;AAED,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,GAAG;SACP,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;AAC3B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/html/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Navigation UI for hierarchical network diagrams
3
+ * Provides breadcrumb, tabs, and back button for sheet navigation
4
+ */
5
+ /**
6
+ * Navigation state for hierarchical diagrams
7
+ */
8
+ export interface NavigationState {
9
+ /**
10
+ * Current sheet ID (undefined = root)
11
+ */
12
+ currentSheet?: string;
13
+ /**
14
+ * Breadcrumb path from root to current sheet
15
+ */
16
+ breadcrumb: string[];
17
+ /**
18
+ * Available sheets
19
+ */
20
+ sheets: Map<string, SheetInfo>;
21
+ }
22
+ /**
23
+ * Information about a sheet
24
+ */
25
+ export interface SheetInfo {
26
+ id: string;
27
+ label: string;
28
+ parentId?: string;
29
+ }
30
+ /**
31
+ * Generate breadcrumb HTML
32
+ */
33
+ export declare function generateBreadcrumb(state: NavigationState): string;
34
+ /**
35
+ * Generate tab navigation HTML for sibling sheets
36
+ */
37
+ export declare function generateTabs(state: NavigationState, siblingIds: string[]): string;
38
+ /**
39
+ * Generate back button HTML
40
+ */
41
+ export declare function generateBackButton(state: NavigationState): string;
42
+ /**
43
+ * Generate complete navigation toolbar HTML
44
+ */
45
+ export declare function generateNavigationToolbar(state: NavigationState, siblingIds?: string[]): string;
46
+ /**
47
+ * Get CSS styles for navigation components
48
+ */
49
+ export declare function getNavigationStyles(): string;
50
+ /**
51
+ * Get JavaScript code for navigation event handling
52
+ */
53
+ export declare function getNavigationScript(): string;
54
+ //# sourceMappingURL=navigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/html/navigation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,UAAU,EAAE,MAAM,EAAE,CAAA;IAEpB;;OAEG;IACH,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAajE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,CAYjF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAajE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,eAAe,EACtB,UAAU,GAAE,MAAM,EAAO,GACxB,MAAM,CAYR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAiF5C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAkD5C"}
@@ -0,0 +1,210 @@
1
+ /**
2
+ * Navigation UI for hierarchical network diagrams
3
+ * Provides breadcrumb, tabs, and back button for sheet navigation
4
+ */
5
+ /**
6
+ * Generate breadcrumb HTML
7
+ */
8
+ export function generateBreadcrumb(state) {
9
+ const items = state.breadcrumb.map((id, index) => {
10
+ const isLast = index === state.breadcrumb.length - 1;
11
+ const label = id === 'root' ? 'Overview' : (state.sheets.get(id)?.label ?? id);
12
+ if (isLast) {
13
+ return `<span class="breadcrumb-current">${escapeHtml(label)}</span>`;
14
+ }
15
+ return `<button class="breadcrumb-item" data-sheet="${escapeHtml(id)}">${escapeHtml(label)}</button>`;
16
+ });
17
+ return `<nav class="breadcrumb">${items.join('<span class="breadcrumb-sep">/</span>')}</nav>`;
18
+ }
19
+ /**
20
+ * Generate tab navigation HTML for sibling sheets
21
+ */
22
+ export function generateTabs(state, siblingIds) {
23
+ if (siblingIds.length <= 1)
24
+ return '';
25
+ const tabs = siblingIds.map((id) => {
26
+ const info = state.sheets.get(id);
27
+ const label = info?.label ?? id;
28
+ const isActive = id === state.currentSheet;
29
+ return `<button class="tab ${isActive ? 'active' : ''}" data-sheet="${escapeHtml(id)}">${escapeHtml(label)}</button>`;
30
+ });
31
+ return `<div class="tabs">${tabs.join('')}</div>`;
32
+ }
33
+ /**
34
+ * Generate back button HTML
35
+ */
36
+ export function generateBackButton(state) {
37
+ if (state.breadcrumb.length <= 1)
38
+ return '';
39
+ const parentId = state.breadcrumb[state.breadcrumb.length - 2];
40
+ const parentLabel = parentId === 'root' ? 'Overview' : (state.sheets.get(parentId)?.label ?? parentId);
41
+ return `<button class="back-btn" data-sheet="${escapeHtml(parentId)}">
42
+ <svg width="16" height="16" fill="none" stroke="currentColor" viewBox="0 0 24 24">
43
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 19l-7-7 7-7"/>
44
+ </svg>
45
+ ${escapeHtml(parentLabel)}
46
+ </button>`;
47
+ }
48
+ /**
49
+ * Generate complete navigation toolbar HTML
50
+ */
51
+ export function generateNavigationToolbar(state, siblingIds = []) {
52
+ const breadcrumb = generateBreadcrumb(state);
53
+ const backBtn = generateBackButton(state);
54
+ const tabs = generateTabs(state, siblingIds);
55
+ return `<div class="nav-toolbar">
56
+ <div class="nav-row">
57
+ ${backBtn}
58
+ ${breadcrumb}
59
+ </div>
60
+ ${tabs}
61
+ </div>`;
62
+ }
63
+ /**
64
+ * Get CSS styles for navigation components
65
+ */
66
+ export function getNavigationStyles() {
67
+ return `
68
+ .nav-toolbar {
69
+ padding: 8px 16px;
70
+ background: white;
71
+ border-bottom: 1px solid #e5e5e5;
72
+ }
73
+ .nav-row {
74
+ display: flex;
75
+ align-items: center;
76
+ gap: 12px;
77
+ }
78
+ .back-btn {
79
+ display: flex;
80
+ align-items: center;
81
+ gap: 4px;
82
+ padding: 6px 12px;
83
+ border: 1px solid #e5e5e5;
84
+ background: white;
85
+ border-radius: 6px;
86
+ cursor: pointer;
87
+ font-size: 13px;
88
+ color: #555;
89
+ transition: all 0.15s;
90
+ }
91
+ .back-btn:hover {
92
+ background: #f5f5f5;
93
+ border-color: #ccc;
94
+ }
95
+ .breadcrumb {
96
+ display: flex;
97
+ align-items: center;
98
+ gap: 4px;
99
+ font-size: 13px;
100
+ }
101
+ .breadcrumb-item {
102
+ background: none;
103
+ border: none;
104
+ color: #0066cc;
105
+ cursor: pointer;
106
+ padding: 4px 8px;
107
+ border-radius: 4px;
108
+ }
109
+ .breadcrumb-item:hover {
110
+ background: #f0f7ff;
111
+ }
112
+ .breadcrumb-current {
113
+ color: #333;
114
+ font-weight: 500;
115
+ }
116
+ .breadcrumb-sep {
117
+ color: #999;
118
+ }
119
+ .tabs {
120
+ display: flex;
121
+ gap: 4px;
122
+ margin-top: 8px;
123
+ border-bottom: 1px solid #e5e5e5;
124
+ padding-bottom: 0;
125
+ }
126
+ .tab {
127
+ padding: 8px 16px;
128
+ border: none;
129
+ background: none;
130
+ cursor: pointer;
131
+ font-size: 13px;
132
+ color: #666;
133
+ border-bottom: 2px solid transparent;
134
+ margin-bottom: -1px;
135
+ transition: all 0.15s;
136
+ }
137
+ .tab:hover {
138
+ color: #333;
139
+ background: #f5f5f5;
140
+ }
141
+ .tab.active {
142
+ color: #0066cc;
143
+ border-bottom-color: #0066cc;
144
+ font-weight: 500;
145
+ }
146
+ `;
147
+ }
148
+ /**
149
+ * Get JavaScript code for navigation event handling
150
+ */
151
+ export function getNavigationScript() {
152
+ return `
153
+ (function() {
154
+ function navigateToSheet(sheetId) {
155
+ // Dispatch custom event for sheet navigation
156
+ var event = new CustomEvent('shumoku:navigate', {
157
+ detail: { sheetId: sheetId },
158
+ bubbles: true
159
+ });
160
+ document.dispatchEvent(event);
161
+
162
+ // For standalone HTML, show alert (sheets are not embedded yet)
163
+ console.log('[Shumoku] Navigate to sheet:', sheetId);
164
+ alert('Navigate to: ' + sheetId + '\\n\\nNote: Multi-sheet navigation requires embedded sheets.');
165
+ }
166
+
167
+ // Listen for navigation events from subgraph clicks
168
+ document.addEventListener('shumoku:navigate', function(e) {
169
+ var sheetId = e.detail && e.detail.sheetId;
170
+ if (sheetId) {
171
+ console.log('[Shumoku] Subgraph clicked, sheet:', sheetId);
172
+ alert('Navigate to: ' + sheetId + '\\n\\nNote: Multi-sheet navigation requires embedded sheets.');
173
+ }
174
+ });
175
+
176
+ // Handle breadcrumb clicks
177
+ document.querySelectorAll('.breadcrumb-item').forEach(function(btn) {
178
+ btn.addEventListener('click', function() {
179
+ var sheetId = this.getAttribute('data-sheet');
180
+ if (sheetId) navigateToSheet(sheetId);
181
+ });
182
+ });
183
+
184
+ // Handle back button clicks
185
+ document.querySelectorAll('.back-btn').forEach(function(btn) {
186
+ btn.addEventListener('click', function() {
187
+ var sheetId = this.getAttribute('data-sheet');
188
+ if (sheetId) navigateToSheet(sheetId);
189
+ });
190
+ });
191
+
192
+ // Handle tab clicks
193
+ document.querySelectorAll('.tab').forEach(function(btn) {
194
+ btn.addEventListener('click', function() {
195
+ var sheetId = this.getAttribute('data-sheet');
196
+ if (sheetId) navigateToSheet(sheetId);
197
+ });
198
+ });
199
+ })();
200
+ `;
201
+ }
202
+ function escapeHtml(str) {
203
+ return str
204
+ .replace(/&/g, '&amp;')
205
+ .replace(/</g, '&lt;')
206
+ .replace(/>/g, '&gt;')
207
+ .replace(/"/g, '&quot;')
208
+ .replace(/'/g, '&#39;');
209
+ }
210
+ //# sourceMappingURL=navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/html/navigation.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  /**
2
- * Interactive Runtime - Hover tooltip with touch support and pan/zoom
2
+ * Interactive Runtime - Mobile-first pan/zoom with tap tooltips and spotlight effect
3
+ * Google Maps style touch: 1 finger = page scroll (in HTML) / pan (here), 2 fingers = pinch zoom
3
4
  */
4
5
  import type { InteractiveInstance, InteractiveOptions } from '../types.js';
5
6
  export declare function initInteractive(options: InteractiveOptions): InteractiveInstance;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/html/runtime.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAsQ1E,wBAAgB,eAAe,CAAC,OAAO,EAAE,kBAAkB,GAAG,mBAAmB,CAmYhF"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/html/runtime.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAY1E,wBAAgB,eAAe,CAAC,OAAO,EAAE,kBAAkB,GAAG,mBAAmB,CA0YhF"}