@oml/markdown 0.13.0 → 0.14.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 (72) hide show
  1. package/out/index.d.ts +1 -0
  2. package/out/index.js +1 -0
  3. package/out/index.js.map +1 -1
  4. package/out/md/md-execution.d.ts +3 -3
  5. package/out/md/md-execution.js +1 -1
  6. package/out/md/md-execution.js.map +1 -1
  7. package/out/md/md-executor.js +6 -8
  8. package/out/md/md-executor.js.map +1 -1
  9. package/out/md/md-frontmatter.d.ts +1 -1
  10. package/out/md/md-frontmatter.js +15 -10
  11. package/out/md/md-frontmatter.js.map +1 -1
  12. package/out/md/md-runtime.js +1 -1
  13. package/out/md/md-runtime.js.map +1 -1
  14. package/out/md/md-types.d.ts +2 -2
  15. package/out/renderers/diagram-renderer.js +231 -12
  16. package/out/renderers/diagram-renderer.js.map +1 -1
  17. package/out/renderers/graph-renderer.js +2 -2
  18. package/out/renderers/graph-renderer.js.map +1 -1
  19. package/out/renderers/table-renderer.js +25 -10
  20. package/out/renderers/table-renderer.js.map +1 -1
  21. package/out/static/browser-runtime.bundle.js +489 -25
  22. package/out/static/browser-runtime.bundle.js.map +3 -3
  23. package/out/static/browser-runtime.js +258 -0
  24. package/out/static/browser-runtime.js.map +1 -1
  25. package/out/static/runtime-assets.d.ts +1 -1
  26. package/out/static/runtime-assets.js +1 -0
  27. package/out/static/runtime-assets.js.map +1 -1
  28. package/out/template/binder.d.ts +2 -0
  29. package/out/template/binder.js +56 -0
  30. package/out/template/binder.js.map +1 -0
  31. package/out/template/catalog.d.ts +8 -0
  32. package/out/template/catalog.js +26 -0
  33. package/out/template/catalog.js.map +1 -0
  34. package/out/template/compose.d.ts +7 -0
  35. package/out/template/compose.js +93 -0
  36. package/out/template/compose.js.map +1 -0
  37. package/out/template/definition.d.ts +3 -0
  38. package/out/template/definition.js +204 -0
  39. package/out/template/definition.js.map +1 -0
  40. package/out/template/engine.d.ts +8 -0
  41. package/out/template/engine.js +30 -0
  42. package/out/template/engine.js.map +1 -0
  43. package/out/template/index.d.ts +7 -0
  44. package/out/template/index.js +9 -0
  45. package/out/template/index.js.map +1 -0
  46. package/out/template/resolver.d.ts +4 -0
  47. package/out/template/resolver.js +58 -0
  48. package/out/template/resolver.js.map +1 -0
  49. package/out/template/types.d.ts +82 -0
  50. package/out/template/types.js +3 -0
  51. package/out/template/types.js.map +1 -0
  52. package/package.json +2 -2
  53. package/src/index.ts +1 -0
  54. package/src/md/md-execution.ts +3 -3
  55. package/src/md/md-executor.ts +6 -9
  56. package/src/md/md-frontmatter.ts +15 -10
  57. package/src/md/md-runtime.ts +1 -1
  58. package/src/md/md-types.ts +2 -2
  59. package/src/renderers/diagram-renderer.ts +229 -12
  60. package/src/renderers/graph-renderer.ts +2 -2
  61. package/src/renderers/table-renderer.ts +26 -10
  62. package/src/static/browser-runtime.ts +305 -0
  63. package/src/static/markdown-webview.css +13 -0
  64. package/src/static/runtime-assets.ts +1 -0
  65. package/src/template/binder.ts +70 -0
  66. package/src/template/catalog.ts +35 -0
  67. package/src/template/compose.ts +107 -0
  68. package/src/template/definition.ts +222 -0
  69. package/src/template/engine.ts +45 -0
  70. package/src/template/index.ts +9 -0
  71. package/src/template/resolver.ts +75 -0
  72. package/src/template/types.ts +111 -0
@@ -2,6 +2,11 @@
2
2
  import { createMarkdownRendererRegistry } from '../renderers/registry.js';
3
3
  import { setIriLabelSnapshot } from '../renderers/renderer.js';
4
4
  const SUPPORTED = new Set(['table', 'tree', 'graph', 'chart', 'diagram', 'list', 'text', 'matrix', 'table-editor']);
5
+ let wikilinkPreviewCard;
6
+ let wikilinkPreviewHideTimer;
7
+ let wikilinkPreviewRequestToken = 0;
8
+ let tabPreviewModifierActive = false;
9
+ let activeWikilinkHover;
5
10
  function parseJsonNode(id, fallback) {
6
11
  const node = document.getElementById(id);
7
12
  if (!node) {
@@ -160,6 +165,258 @@ function setupIriNavigationHandler(wikilinkIndex, iriAliasIndex, linkingEnabled)
160
165
  window.location.assign(href);
161
166
  });
162
167
  }
168
+ function isHoverPreviewEnabled(event) {
169
+ if (!event) {
170
+ return false;
171
+ }
172
+ return event.altKey || tabPreviewModifierActive;
173
+ }
174
+ function normalizeHoverAnchorRect(value) {
175
+ if (!value || typeof value !== 'object') {
176
+ return undefined;
177
+ }
178
+ const obj = value;
179
+ if (typeof obj.left !== 'number' || typeof obj.right !== 'number' ||
180
+ typeof obj.top !== 'number' || typeof obj.bottom !== 'number' ||
181
+ typeof obj.width !== 'number' || typeof obj.height !== 'number') {
182
+ return undefined;
183
+ }
184
+ return {
185
+ left: obj.left,
186
+ right: obj.right,
187
+ top: obj.top,
188
+ bottom: obj.bottom,
189
+ width: obj.width,
190
+ height: obj.height,
191
+ };
192
+ }
193
+ function ensureWikilinkPreviewCard() {
194
+ if (wikilinkPreviewCard) {
195
+ return wikilinkPreviewCard;
196
+ }
197
+ const card = document.createElement('div');
198
+ card.className = 'oml-wikilink-preview-card';
199
+ card.style.position = 'fixed';
200
+ card.style.zIndex = '1200';
201
+ card.style.display = 'none';
202
+ card.style.width = 'min(640px, calc(100vw - 48px))';
203
+ card.style.height = 'min(480px, calc(100vh - 48px))';
204
+ card.style.overflow = 'hidden';
205
+ card.style.padding = '0';
206
+ card.style.border = '1px solid var(--vscode-editorWidget-border, #c8ccd1)';
207
+ card.style.borderRadius = '10px';
208
+ card.style.background = 'var(--vscode-editor-background, #ffffff)';
209
+ card.style.color = 'var(--vscode-editor-foreground, #1f2328)';
210
+ card.style.boxShadow = '0 8px 24px rgb(0 0 0 / 24%)';
211
+ card.style.fontFamily = 'system-ui, -apple-system, Segoe UI, Roboto, sans-serif';
212
+ card.addEventListener('mouseenter', () => {
213
+ if (wikilinkPreviewHideTimer !== undefined) {
214
+ window.clearTimeout(wikilinkPreviewHideTimer);
215
+ wikilinkPreviewHideTimer = undefined;
216
+ }
217
+ });
218
+ // Don't hide on mouse leave - only ESC closes the preview now
219
+ document.body.appendChild(card);
220
+ wikilinkPreviewCard = card;
221
+ return card;
222
+ }
223
+ function scheduleHideWikilinkPreview() {
224
+ wikilinkPreviewRequestToken += 1;
225
+ if (wikilinkPreviewHideTimer !== undefined) {
226
+ window.clearTimeout(wikilinkPreviewHideTimer);
227
+ wikilinkPreviewHideTimer = undefined;
228
+ }
229
+ // Immediately hide the preview (no delay)
230
+ if (wikilinkPreviewCard) {
231
+ wikilinkPreviewCard.style.display = 'none';
232
+ wikilinkPreviewCard.replaceChildren();
233
+ }
234
+ }
235
+ async function scheduleIriPreview(iri, href, anchorRect) {
236
+ if (wikilinkPreviewHideTimer !== undefined) {
237
+ window.clearTimeout(wikilinkPreviewHideTimer);
238
+ wikilinkPreviewHideTimer = undefined;
239
+ }
240
+ const token = ++wikilinkPreviewRequestToken;
241
+ await new Promise((resolve) => window.setTimeout(resolve, 220));
242
+ if (token !== wikilinkPreviewRequestToken) {
243
+ return;
244
+ }
245
+ const card = ensureWikilinkPreviewCard();
246
+ // Create iframe to show the linked page
247
+ const iframe = document.createElement('iframe');
248
+ // Add preview mode parameter to prevent nested previews
249
+ const iframeSrc = new URL(href, window.location.href);
250
+ iframeSrc.searchParams.set('_oml_preview', '1');
251
+ iframe.src = iframeSrc.toString();
252
+ iframe.style.width = '100%';
253
+ iframe.style.height = '100%';
254
+ iframe.style.border = 'none';
255
+ iframe.style.borderRadius = '4px';
256
+ iframe.style.background = 'var(--vscode-editor-background, #ffffff)';
257
+ iframe.style.display = 'block';
258
+ // Intercept clicks in the iframe to navigate the parent page
259
+ iframe.addEventListener('load', () => {
260
+ try {
261
+ const iframeDoc = iframe.contentDocument || iframe.contentWindow?.document;
262
+ if (!iframeDoc) {
263
+ return;
264
+ }
265
+ // Remove download attributes from all links to prevent file downloads
266
+ const allLinks = iframeDoc.querySelectorAll('a[download]');
267
+ allLinks.forEach(link => link.removeAttribute('download'));
268
+ // Add click listener to all links and interactive elements in the iframe
269
+ iframeDoc.addEventListener('click', (event) => {
270
+ const target = event.target;
271
+ if (!(target instanceof Element)) {
272
+ return;
273
+ }
274
+ const link = target.closest('a[href]');
275
+ if (!link || !(link instanceof HTMLAnchorElement)) {
276
+ return;
277
+ }
278
+ const linkHref = link.getAttribute('href');
279
+ if (!linkHref) {
280
+ return;
281
+ }
282
+ // Allow internal anchor links within the iframe
283
+ if (linkHref.startsWith('#')) {
284
+ return;
285
+ }
286
+ // Prevent any navigation in the iframe
287
+ event.preventDefault();
288
+ event.stopPropagation();
289
+ event.stopImmediatePropagation();
290
+ // Get the absolute URL, accounting for any base URL in the iframe
291
+ const iframeLocation = iframe.contentWindow?.location.href;
292
+ const absoluteUrl = new URL(linkHref, iframeLocation || iframe.src);
293
+ // Remove the preview parameter for the main navigation
294
+ absoluteUrl.searchParams.delete('_oml_preview');
295
+ // Close the preview and navigate the parent page
296
+ scheduleHideWikilinkPreview();
297
+ // Navigate the parent window (not the iframe)
298
+ const targetUrl = absoluteUrl.toString();
299
+ window.location.assign(targetUrl);
300
+ return false;
301
+ }, true); // Use capture phase to catch events early
302
+ }
303
+ catch (error) {
304
+ // If we can't access iframe content (CORS), silently fail
305
+ console.warn('Could not access iframe content for click interception:', error);
306
+ }
307
+ });
308
+ card.replaceChildren(iframe);
309
+ card.style.display = 'block';
310
+ const cardRect = card.getBoundingClientRect();
311
+ const margin = 12;
312
+ const left = Math.min(Math.max(16, anchorRect.left), Math.max(16, window.innerWidth - cardRect.width - 16));
313
+ let top = anchorRect.bottom + margin;
314
+ if (top + cardRect.height > window.innerHeight - 16) {
315
+ top = Math.max(16, window.innerHeight - cardRect.height - 16);
316
+ }
317
+ card.style.left = `${left}px`;
318
+ card.style.top = `${top}px`;
319
+ }
320
+ function setupWikilinkHoverPreview(wikilinkIndex, iriAliasIndex, linkingEnabled) {
321
+ // Don't enable previews if we're already in preview mode (prevents nested previews)
322
+ const urlParams = new URLSearchParams(window.location.search);
323
+ if (urlParams.has('_oml_preview')) {
324
+ return;
325
+ }
326
+ // Close preview when clicking anywhere outside the preview card
327
+ document.addEventListener('click', (event) => {
328
+ if (!wikilinkPreviewCard || wikilinkPreviewCard.style.display === 'none') {
329
+ return;
330
+ }
331
+ const target = event.target;
332
+ if (!(target instanceof Element)) {
333
+ return;
334
+ }
335
+ // Check if click is outside the preview card
336
+ if (!target.closest('.oml-wikilink-preview-card')) {
337
+ scheduleHideWikilinkPreview();
338
+ activeWikilinkHover = undefined;
339
+ }
340
+ }, true); // Use capture to catch clicks before they propagate
341
+ // Handle hover events for wikilinks in text content
342
+ document.body.addEventListener('mouseover', (event) => {
343
+ const target = event.target instanceof Element
344
+ ? event.target
345
+ : (event.target instanceof Node ? event.target.parentElement : null);
346
+ if (!target || target.closest('.oml-wikilink-preview-card')) {
347
+ return;
348
+ }
349
+ const link = target.closest('a.wikilink[iri]');
350
+ if (!link) {
351
+ return;
352
+ }
353
+ const iri = link.getAttribute('iri')?.trim();
354
+ const href = link.getAttribute('href')?.trim();
355
+ if (!iri || !href || href === '#') {
356
+ return;
357
+ }
358
+ activeWikilinkHover = { link, iri };
359
+ if (isHoverPreviewEnabled(event)) {
360
+ void scheduleIriPreview(iri, href, link.getBoundingClientRect());
361
+ }
362
+ });
363
+ window.addEventListener('keydown', (event) => {
364
+ // ESC key closes the preview
365
+ if (event.key === 'Escape') {
366
+ scheduleHideWikilinkPreview();
367
+ activeWikilinkHover = undefined;
368
+ return;
369
+ }
370
+ if (event.key === 'Tab') {
371
+ tabPreviewModifierActive = true;
372
+ }
373
+ if (!activeWikilinkHover) {
374
+ return;
375
+ }
376
+ if (!(event.altKey || event.key === 'Alt' || (event.key === 'Tab' && tabPreviewModifierActive))) {
377
+ return;
378
+ }
379
+ const link = activeWikilinkHover.link;
380
+ if (!link.isConnected || !link.matches(':hover')) {
381
+ return;
382
+ }
383
+ const href = link.getAttribute('href')?.trim();
384
+ if (!href || href === '#') {
385
+ return;
386
+ }
387
+ void scheduleIriPreview(activeWikilinkHover.iri, href, link.getBoundingClientRect());
388
+ });
389
+ window.addEventListener('keyup', (event) => {
390
+ if (event.key === 'Tab') {
391
+ tabPreviewModifierActive = false;
392
+ }
393
+ });
394
+ window.addEventListener('blur', () => {
395
+ tabPreviewModifierActive = false;
396
+ });
397
+ // Handle hover events dispatched by renderers (diagram, graph, table, etc.)
398
+ window.addEventListener('md-show-iri-hover', (event) => {
399
+ if (!(event instanceof CustomEvent)) {
400
+ return;
401
+ }
402
+ const eventTarget = event.target;
403
+ if (eventTarget instanceof Element && eventTarget.closest('.oml-wikilink-preview-card')) {
404
+ return;
405
+ }
406
+ const detail = event.detail;
407
+ const iri = typeof detail?.iri === 'string' ? detail.iri.trim() : '';
408
+ const anchorRect = normalizeHoverAnchorRect(detail?.anchorRect);
409
+ const previewEnabled = detail?.previewEnabled === true;
410
+ if (!iri || !anchorRect || !previewEnabled || !linkingEnabled) {
411
+ return;
412
+ }
413
+ const href = resolveWikiHref(iri, wikilinkIndex, iriAliasIndex);
414
+ if (!href || href === '#') {
415
+ return;
416
+ }
417
+ void scheduleIriPreview(iri, href, anchorRect);
418
+ });
419
+ }
163
420
  function getMdKindFromCodeElement(code) {
164
421
  for (const className of Array.from(code.classList)) {
165
422
  if (!className.startsWith('language-')) {
@@ -195,6 +452,7 @@ async function applyExecutionResults() {
195
452
  // Re-apply wikilinks for dynamic renderer re-renders (tables, filters, paging, etc.).
196
453
  installWikilinkObserver(wikilinkIndex, iriAliasIndex, linkingEnabled);
197
454
  setupIriNavigationHandler(wikilinkIndex, iriAliasIndex, linkingEnabled);
455
+ setupWikilinkHoverPreview(wikilinkIndex, iriAliasIndex, linkingEnabled);
198
456
  const manifest = parseJsonNode('oml-md-block-manifest', []);
199
457
  if (!Array.isArray(manifest) || manifest.length === 0) {
200
458
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"browser-runtime.js","sourceRoot":"","sources":["../../src/static/browser-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-runtime.js","sourceRoot":"","sources":["../../src/static/browser-runtime.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  export declare const STATIC_MARKDOWN_RUNTIME_BUNDLE_FILE = "browser-runtime.bundle.js";
2
- export declare const STATIC_MARKDOWN_RUNTIME_CSS = "\n.oml-md-result { margin: 1rem 0; }\n.oml-md-result-message {\n border: 1px solid #e5b567;\n background: #fff8e8;\n color: #6b4c15;\n border-radius: 8px;\n padding: 0.65rem 0.8rem;\n font-size: 0.95rem;\n}\n.oml-md-table-controls {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 0.75rem;\n margin-bottom: 0.5rem;\n flex-wrap: wrap;\n}\n.oml-md-table-controls-left,\n.oml-md-table-controls-right {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.oml-md-table-filter,\n.oml-md-table-page-size {\n font: inherit;\n border: 1px solid #d0d7de;\n border-radius: 6px;\n padding: 0.35rem 0.55rem;\n background: #fff;\n}\n.oml-md-table-action-btn {\n font: inherit;\n border: 1px solid #d0d7de;\n border-radius: 6px;\n padding: 0.35rem 0.55rem;\n background: #fff;\n cursor: pointer;\n}\n.oml-md-table-action-btn:hover {\n background: #f6f8fa;\n}\n.oml-md-table-wrap {\n overflow: auto;\n border: 1px solid #d0d7de;\n border-radius: 8px;\n}\n.oml-md-static-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 0.92rem;\n}\n.oml-md-static-table thead th {\n position: sticky;\n top: 0;\n background: #f6f8fa;\n z-index: 1;\n}\n.oml-md-static-table th,\n.oml-md-static-table td {\n text-align: left;\n border-bottom: 1px solid #eaeef2;\n padding: 0.45rem 0.55rem;\n vertical-align: top;\n}\n.oml-md-static-table tbody tr:nth-child(even) {\n background: #fafbfc;\n}\n.oml-md-table-sortable {\n cursor: pointer;\n user-select: none;\n}\n.oml-md-table-pager {\n margin-top: 0.5rem;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.oml-md-table-pager-btn {\n font: inherit;\n border: 1px solid #d0d7de;\n background: #fff;\n border-radius: 6px;\n padding: 0.2rem 0.55rem;\n cursor: pointer;\n}\n.oml-md-table-pager-btn:disabled {\n opacity: 0.45;\n cursor: default;\n}\n.oml-md-table-page-info {\n color: #57606a;\n font-size: 0.9rem;\n}\n.oml-md-tree-cell {\n display: flex;\n align-items: center;\n gap: 0.35rem;\n}\n.tree-toggle-button {\n width: 1rem;\n height: 1rem;\n padding: 0;\n line-height: 1;\n font-size: 0.85rem;\n border: 1px solid var(--vscode-editorWidget-border);\n background: var(--vscode-editor-background);\n color: var(--vscode-foreground);\n cursor: pointer;\n border-radius: 2px;\n}\n.tree-toggle-spacer {\n display: inline-block;\n width: 1rem;\n}\n\n/* Browser fallback theme values for static render (outside VS Code webview). */\n.oml-md-result .tree-filter {\n background: var(--vscode-input-background, #ffffff);\n color: var(--vscode-input-foreground, #24292f);\n border: 1px solid var(--vscode-input-border, #d0d7de);\n}\n\n.oml-md-result .tree-filter:focus {\n border-color: var(--vscode-focusBorder, #0969da);\n}\n\n.oml-md-result .table-pagesize {\n background: var(--vscode-dropdown-background, #ffffff);\n color: var(--vscode-dropdown-foreground, #24292f);\n border: 1px solid var(--vscode-dropdown-border, #d0d7de);\n}\n\n.oml-md-result .table-results-table-container {\n border: 1px solid var(--vscode-editorWidget-border, #d0d7de);\n}\n\n.oml-md-result .table-header-cell,\n.oml-md-result .table-cell,\n.oml-md-result .table-header-row > .table-header-cell:not(:last-child),\n.oml-md-result .table-row > .table-cell:not(:last-child) {\n border-color: var(--vscode-editorWidget-border, #d0d7de);\n}\n\n.oml-md-result .oml-md-static-table,\n.oml-md-result .oml-md-static-table th,\n.oml-md-result .oml-md-static-table td {\n border-color: var(--vscode-editorWidget-border, #d0d7de);\n}\n\n.oml-md-result .oml-md-static-table th:not(:last-child),\n.oml-md-result .oml-md-static-table td:not(:last-child) {\n border-right: 1px solid var(--vscode-editorWidget-border, #d0d7de);\n}\n\n/* Static fallback framing for canvas widgets (graph/diagram/chart). */\n.oml-md-result .graph-canvas-root {\n border: 1px solid var(--vscode-editorWidget-border, #b8c2cc);\n border-radius: 6px;\n background: var(--vscode-editor-background, var(--oml-static-background, #ffffff));\n}\n\n.oml-md-result .diagram-canvas-root .x6-graph,\n.oml-md-result .diagram-canvas-root .x6-graph-svg,\n.oml-md-result .diagram-canvas-root .x6-svg-stage,\n.oml-md-result .diagram-canvas-root .x6-svg,\n.oml-md-result .diagram-canvas-root svg {\n background: var(--vscode-editor-background, var(--oml-static-background, #ffffff));\n}\n";
2
+ export declare const STATIC_MARKDOWN_RUNTIME_CSS = "\n.oml-md-result { margin: 1rem 0; }\n.oml-md-result-message {\n border: 1px solid #e5b567;\n background: #fff8e8;\n color: #6b4c15;\n border-radius: 8px;\n padding: 0.65rem 0.8rem;\n font-size: 0.95rem;\n}\n.oml-md-table-controls {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 0.75rem;\n margin-bottom: 0.5rem;\n flex-wrap: wrap;\n}\n.oml-md-table-controls-left,\n.oml-md-table-controls-right {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.oml-md-table-filter,\n.oml-md-table-page-size {\n font: inherit;\n border: 1px solid #d0d7de;\n border-radius: 6px;\n padding: 0.35rem 0.55rem;\n background: #fff;\n}\n.oml-md-table-action-btn {\n font: inherit;\n border: 1px solid #d0d7de;\n border-radius: 6px;\n padding: 0.35rem 0.55rem;\n background: #fff;\n cursor: pointer;\n}\n.oml-md-table-action-btn:hover {\n background: #f6f8fa;\n}\n.oml-md-table-wrap {\n overflow: auto;\n border: 1px solid #d0d7de;\n border-radius: 8px;\n}\n.oml-md-static-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 0.92rem;\n}\n.oml-md-static-table thead th {\n position: sticky;\n top: 0;\n background: #f6f8fa;\n z-index: 1;\n}\n.oml-md-static-table th,\n.oml-md-static-table td {\n text-align: left;\n border-bottom: 1px solid #eaeef2;\n padding: 0.45rem 0.55rem;\n vertical-align: top;\n}\n.oml-md-static-table tbody tr:nth-child(even) {\n background: #fafbfc;\n}\n.oml-md-table-sortable {\n cursor: pointer;\n user-select: none;\n}\n.oml-md-table-pager {\n margin-top: 0.5rem;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.oml-md-table-pager-btn {\n font: inherit;\n border: 1px solid #d0d7de;\n background: #fff;\n border-radius: 6px;\n padding: 0.2rem 0.55rem;\n cursor: pointer;\n}\n.oml-md-table-pager-btn:disabled {\n opacity: 0.45;\n cursor: default;\n}\n.oml-md-table-page-info {\n color: #57606a;\n font-size: 0.9rem;\n}\n.oml-md-tree-cell {\n display: flex;\n align-items: center;\n gap: 0.35rem;\n}\n.tree-toggle-button {\n width: 1rem;\n height: 1rem;\n padding: 0;\n line-height: 1;\n font-size: 0.85rem;\n border: 1px solid var(--vscode-editorWidget-border);\n background: var(--vscode-editor-background);\n color: var(--vscode-foreground);\n cursor: pointer;\n border-radius: 2px;\n}\n.tree-toggle-spacer {\n display: inline-block;\n width: 1rem;\n}\n\n/* Browser fallback theme values for static render (outside VS Code webview). */\n.oml-md-result .tree-filter {\n background: var(--vscode-input-background, #ffffff);\n color: var(--vscode-input-foreground, #24292f);\n border: 1px solid var(--vscode-input-border, #d0d7de);\n}\n\n.oml-md-result .tree-filter:focus {\n border-color: var(--vscode-focusBorder, #0969da);\n}\n\n.oml-md-result .table-pagesize {\n background: var(--vscode-dropdown-background, #ffffff);\n color: var(--vscode-dropdown-foreground, #24292f);\n border: 1px solid var(--vscode-dropdown-border, #d0d7de);\n}\n\n.oml-md-result .table-results-table-container {\n border: 1px solid var(--vscode-editorWidget-border, #d0d7de);\n}\n\n.oml-md-result .table-header-cell,\n.oml-md-result .table-cell,\n.oml-md-result .table-header-row > .table-header-cell:not(:last-child),\n.oml-md-result .table-row > .table-cell:not(:last-child) {\n border-color: var(--vscode-editorWidget-border, #d0d7de);\n}\n\n.oml-md-result .oml-md-static-table,\n.oml-md-result .oml-md-static-table th,\n.oml-md-result .oml-md-static-table td {\n border-color: var(--vscode-editorWidget-border, #d0d7de);\n}\n\n.oml-md-result .oml-md-static-table th:not(:last-child),\n.oml-md-result .oml-md-static-table td:not(:last-child) {\n border-right: 1px solid var(--vscode-editorWidget-border, #d0d7de);\n}\n\n/* Static fallback framing for canvas widgets (graph/diagram/chart). */\n.oml-md-result .graph-canvas-root {\n border: 1px solid var(--vscode-editorWidget-border, #b8c2cc);\n border-radius: 6px;\n background: var(--vscode-editor-background, var(--oml-static-background, #ffffff));\n}\n\n.oml-md-result .diagram-canvas-root .x6-graph,\n.oml-md-result .diagram-canvas-root .x6-graph-svg,\n.oml-md-result .diagram-canvas-root .x6-svg-stage,\n.oml-md-result .diagram-canvas-root .x6-svg,\n.oml-md-result .diagram-canvas-root svg {\n background: var(--vscode-editor-background, var(--oml-static-background, #ffffff));\n}\n\n";
@@ -170,5 +170,6 @@ export const STATIC_MARKDOWN_RUNTIME_CSS = `
170
170
  .oml-md-result .diagram-canvas-root svg {
171
171
  background: var(--vscode-editor-background, var(--oml-static-background, #ffffff));
172
172
  }
173
+
173
174
  `;
174
175
  //# sourceMappingURL=runtime-assets.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-assets.js","sourceRoot":"","sources":["../../src/static/runtime-assets.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,MAAM,CAAC,MAAM,mCAAmC,GAAG,2BAA2B,CAAC;AAE/E,MAAM,CAAC,MAAM,2BAA2B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0K1C,CAAC"}
1
+ {"version":3,"file":"runtime-assets.js","sourceRoot":"","sources":["../../src/static/runtime-assets.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,MAAM,CAAC,MAAM,mCAAmC,GAAG,2BAA2B,CAAC;AAE/E,MAAM,CAAC,MAAM,2BAA2B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2K1C,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { TemplateBindResult, TemplateDefinition, TemplateInvocationContext, TemplateValue } from './types.js';
2
+ export declare function bindTemplateParameters(template: TemplateDefinition, context: TemplateInvocationContext, explicitArgs?: Readonly<Record<string, TemplateValue>>): TemplateBindResult;
@@ -0,0 +1,56 @@
1
+ // Copyright (c) 2026 Modelware. All rights reserved.
2
+ export function bindTemplateParameters(template, context, explicitArgs = {}) {
3
+ const values = {};
4
+ const missingRequired = [];
5
+ const parameters = template.parameters ?? [];
6
+ for (const parameter of parameters) {
7
+ const explicit = explicitArgs[parameter.id];
8
+ if (explicit !== undefined) {
9
+ values[parameter.id] = explicit;
10
+ continue;
11
+ }
12
+ const bound = resolveValueFromContext(parameter, context);
13
+ if (bound !== undefined) {
14
+ values[parameter.id] = bound;
15
+ continue;
16
+ }
17
+ if (parameter.defaultValue !== undefined) {
18
+ values[parameter.id] = parameter.defaultValue;
19
+ continue;
20
+ }
21
+ if (parameter.required) {
22
+ missingRequired.push(parameter.id);
23
+ }
24
+ }
25
+ return { values, missingRequired };
26
+ }
27
+ function resolveValueFromContext(parameter, context) {
28
+ switch (parameter.from) {
29
+ case 'context.member':
30
+ return context.focus?.memberIri;
31
+ case 'context.ontology':
32
+ return context.model?.ontologyIri;
33
+ case 'context.modelUri':
34
+ return context.model?.modelUri;
35
+ case 'context.selection[*]':
36
+ return context.selection?.iris ?? [];
37
+ default:
38
+ return resolveSelectionIndexedBinding(parameter.from, context);
39
+ }
40
+ }
41
+ function resolveSelectionIndexedBinding(source, context) {
42
+ if (!source || !source.startsWith('context.selection[')) {
43
+ return undefined;
44
+ }
45
+ const match = /^context\.selection\[(\d+)]$/.exec(source);
46
+ if (!match) {
47
+ return undefined;
48
+ }
49
+ const index = Number.parseInt(match[1] ?? '', 10);
50
+ if (!Number.isFinite(index) || index < 0) {
51
+ return undefined;
52
+ }
53
+ const iris = context.selection?.iris ?? [];
54
+ return iris[index];
55
+ }
56
+ //# sourceMappingURL=binder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binder.js","sourceRoot":"","sources":["../../src/template/binder.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAIrD,MAAM,UAAU,sBAAsB,CAClC,QAA4B,EAC5B,OAAkC,EAClC,eAAwD,EAAE;IAE1D,MAAM,MAAM,GAAkC,EAAE,CAAC;IACjD,MAAM,eAAe,GAAa,EAAE,CAAC;IACrC,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;IAC7C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;YAChC,SAAS;QACb,CAAC;QACD,MAAM,KAAK,GAAG,uBAAuB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC1D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;YAC7B,SAAS;QACb,CAAC;QACD,IAAI,SAAS,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACvC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC;YAC9C,SAAS;QACb,CAAC;QACD,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;YACrB,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACvC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;AACvC,CAAC;AAED,SAAS,uBAAuB,CAC5B,SAAsC,EACtC,OAAkC;IAElC,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,gBAAgB;YACjB,OAAO,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC;QACpC,KAAK,kBAAkB;YACnB,OAAO,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC;QACtC,KAAK,kBAAkB;YACnB,OAAO,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;QACnC,KAAK,sBAAsB;YACvB,OAAO,OAAO,CAAC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC;QACzC;YACI,OAAO,8BAA8B,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;AACL,CAAC;AAED,SAAS,8BAA8B,CACnC,MAA2C,EAC3C,OAAkC;IAElC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACtD,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,KAAK,GAAG,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1D,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACvC,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC;IAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { TemplateDefinition } from './types.js';
2
+ export interface TemplateCatalog {
3
+ readonly byId: ReadonlyMap<string, TemplateDefinition>;
4
+ readonly all: ReadonlyArray<TemplateDefinition>;
5
+ }
6
+ export declare function buildTemplateCatalog(templates: ReadonlyArray<TemplateDefinition>): TemplateCatalog;
7
+ export declare function normalizeTemplateId(value: string): string;
8
+ export declare function getTemplateById(catalog: TemplateCatalog, templateId: string): TemplateDefinition | undefined;
@@ -0,0 +1,26 @@
1
+ // Copyright (c) 2026 Modelware. All rights reserved.
2
+ export function buildTemplateCatalog(templates) {
3
+ const byId = new Map();
4
+ for (const template of templates) {
5
+ const id = normalizeTemplateId(template.id);
6
+ if (!id) {
7
+ continue;
8
+ }
9
+ byId.set(id, { ...template, id });
10
+ }
11
+ return {
12
+ byId,
13
+ all: [...byId.values()]
14
+ };
15
+ }
16
+ export function normalizeTemplateId(value) {
17
+ return value.trim().replace(/^<|>$/g, '');
18
+ }
19
+ export function getTemplateById(catalog, templateId) {
20
+ const normalized = normalizeTemplateId(templateId);
21
+ if (!normalized) {
22
+ return undefined;
23
+ }
24
+ return catalog.byId.get(normalized);
25
+ }
26
+ //# sourceMappingURL=catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/template/catalog.ts"],"names":[],"mappings":"AAAA,qDAAqD;AASrD,MAAM,UAAU,oBAAoB,CAAC,SAA4C;IAC7E,MAAM,IAAI,GAAG,IAAI,GAAG,EAA8B,CAAC;IACnD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC/B,MAAM,EAAE,GAAG,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,EAAE,EAAE,CAAC;YACN,SAAS;QACb,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,OAAO;QACH,IAAI;QACJ,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;KAC1B,CAAC;AACN,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC7C,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAwB,EAAE,UAAkB;IACxE,MAAM,UAAU,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACnD,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { TemplateBindingSource, TemplateValue } from './types.js';
2
+ export interface TemplateComposeDirective {
3
+ id: string;
4
+ args: Record<string, TemplateValue>;
5
+ bind: Record<string, TemplateBindingSource>;
6
+ }
7
+ export declare function parseTemplateComposeDirective(source: string): TemplateComposeDirective | undefined;
@@ -0,0 +1,93 @@
1
+ // Copyright (c) 2026 Modelware. All rights reserved.
2
+ import { parse } from 'yaml';
3
+ export function parseTemplateComposeDirective(source) {
4
+ const normalized = source.replace(/^\uFEFF/, '');
5
+ const frontMatterMatch = /^(---[ \t]*\r?\n[\s\S]*?\r?\n---[ \t]*)([\s\S]*)$/.exec(normalized);
6
+ if (!frontMatterMatch) {
7
+ return undefined;
8
+ }
9
+ const trailing = frontMatterMatch[2] ?? '';
10
+ if (trailing.trim().length > 0) {
11
+ return undefined;
12
+ }
13
+ const yamlBody = frontMatterMatch[1]
14
+ .replace(/^---[ \t]*\r?\n/, '')
15
+ .replace(/\r?\n---[ \t]*$/, '');
16
+ const parsed = parse(yamlBody);
17
+ if (!isRecord(parsed)) {
18
+ return undefined;
19
+ }
20
+ const id = normalizeString(parsed.id);
21
+ if (!id) {
22
+ return undefined;
23
+ }
24
+ const args = parseArgs(parsed.args);
25
+ const bind = parseBind(parsed.bind);
26
+ return { id, args, bind };
27
+ }
28
+ function parseArgs(value) {
29
+ if (!isRecord(value)) {
30
+ return {};
31
+ }
32
+ const args = {};
33
+ for (const [key, raw] of Object.entries(value)) {
34
+ const normalizedKey = normalizeString(key);
35
+ if (!normalizedKey) {
36
+ continue;
37
+ }
38
+ const converted = toTemplateValue(raw);
39
+ if (converted !== undefined) {
40
+ args[normalizedKey] = converted;
41
+ }
42
+ }
43
+ return args;
44
+ }
45
+ function parseBind(value) {
46
+ if (!isRecord(value)) {
47
+ return {};
48
+ }
49
+ const bind = {};
50
+ for (const [key, raw] of Object.entries(value)) {
51
+ const normalizedKey = normalizeString(key);
52
+ const source = normalizeString(raw);
53
+ if (!normalizedKey || !source || !isTemplateBindingSource(source)) {
54
+ continue;
55
+ }
56
+ bind[normalizedKey] = source;
57
+ }
58
+ return bind;
59
+ }
60
+ function toTemplateValue(value) {
61
+ if (value === null) {
62
+ return null;
63
+ }
64
+ if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
65
+ return value;
66
+ }
67
+ if (Array.isArray(value)) {
68
+ return value.every((entry) => typeof entry === 'string') ? value : undefined;
69
+ }
70
+ if (isRecord(value)) {
71
+ return value;
72
+ }
73
+ return undefined;
74
+ }
75
+ function isTemplateBindingSource(value) {
76
+ return value === 'context.member'
77
+ || value === 'context.ontology'
78
+ || value === 'context.modelUri'
79
+ || value === 'context.selection[*]'
80
+ || value === 'user'
81
+ || /^context\.selection\[\d+]$/.test(value);
82
+ }
83
+ function normalizeString(value) {
84
+ if (typeof value !== 'string') {
85
+ return undefined;
86
+ }
87
+ const normalized = value.trim();
88
+ return normalized.length > 0 ? normalized : undefined;
89
+ }
90
+ function isRecord(value) {
91
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
92
+ }
93
+ //# sourceMappingURL=compose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/template/compose.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { TemplateDefinition } from './types.js';
2
+ export declare function parseTemplateDefinition(content: string, sourceUri?: string): TemplateDefinition | undefined;
3
+ export declare function deriveContextLabelFromIri(iri: string): string;