@frontmcp/uipack 1.8.5 → 1.8.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.
- package/adapters/index.js +339 -35
- package/adapters/markdown.d.ts +9 -0
- package/adapters/markdown.d.ts.map +1 -0
- package/adapters/template-renderer.d.ts +8 -0
- package/adapters/template-renderer.d.ts.map +1 -1
- package/bridge-runtime/iife-generator.d.ts.map +1 -1
- package/bridge-runtime/index.js +169 -22
- package/component/index.js +223 -26
- package/component/loader.d.ts.map +1 -1
- package/component/transpiler.d.ts.map +1 -1
- package/esm/adapters/index.mjs +339 -35
- package/esm/bridge-runtime/index.mjs +169 -22
- package/esm/component/index.mjs +223 -26
- package/esm/index.mjs +339 -35
- package/esm/package.json +8 -2
- package/esm/shell/index.mjs +169 -22
- package/index.js +339 -35
- package/package.json +8 -2
- package/shell/index.js +169 -22
- package/types/ui-config.d.ts +5 -3
- package/types/ui-config.d.ts.map +1 -1
package/shell/index.js
CHANGED
|
@@ -157,6 +157,23 @@ function __applySizingCss(sizing) {
|
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
159
|
|
|
160
|
+
function __measureHeight() {
|
|
161
|
+
// <html> at fit-content includes body margins and collapsed child margins;
|
|
162
|
+
// content overflowing a fixed-height body is added; a px max-height clamps.
|
|
163
|
+
var de = document.documentElement;
|
|
164
|
+
var body = document.body;
|
|
165
|
+
if (!de || !body) return 0;
|
|
166
|
+
var prev = de.style.height;
|
|
167
|
+
de.style.height = 'fit-content';
|
|
168
|
+
var dr = de.getBoundingClientRect();
|
|
169
|
+
var br = body.getBoundingClientRect();
|
|
170
|
+
var h = Math.max(dr.height, br.top + body.scrollHeight + Math.max(0, dr.bottom - br.bottom) - dr.top);
|
|
171
|
+
de.style.height = prev;
|
|
172
|
+
var maxHeight = getComputedStyle(de).maxHeight;
|
|
173
|
+
var mx = maxHeight && maxHeight.slice(-2) === 'px' ? parseFloat(maxHeight) : NaN;
|
|
174
|
+
return Math.ceil(isNaN(mx) ? h : Math.min(h, mx));
|
|
175
|
+
}
|
|
176
|
+
|
|
160
177
|
function __initAutoResize() {
|
|
161
178
|
if (typeof window === 'undefined') return;
|
|
162
179
|
// Idempotent: a re-injected IIFE must not stack observers.
|
|
@@ -179,23 +196,30 @@ function __initAutoResize() {
|
|
|
179
196
|
if (typeof ResizeObserver === 'undefined') return;
|
|
180
197
|
|
|
181
198
|
function startObserving() {
|
|
182
|
-
|
|
183
|
-
|
|
199
|
+
if (!document.body) return;
|
|
200
|
+
var targets = [document.documentElement, document.body];
|
|
201
|
+
var root = document.getElementById('root');
|
|
202
|
+
if (root) targets.push(root);
|
|
184
203
|
|
|
185
204
|
var rafId = null;
|
|
186
205
|
var lastReported = -1;
|
|
187
206
|
function report() {
|
|
188
207
|
rafId = null;
|
|
189
208
|
try {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
209
|
+
// Before the handshake an ext-apps host can't receive the report; the
|
|
210
|
+
// bridge:ready listener below sends it once the bridge is up.
|
|
211
|
+
if (window.FrontMcpBridge && window.FrontMcpBridge.initialized === false) return;
|
|
212
|
+
var height = __measureHeight();
|
|
213
|
+
var width = Math.ceil(document.documentElement.getBoundingClientRect().width);
|
|
193
214
|
if (height === lastReported || height <= 0) return;
|
|
194
215
|
lastReported = height;
|
|
195
216
|
var payload = { height: height, width: width };
|
|
196
217
|
if (sizing.aspectRatio != null) payload.aspectRatio = sizing.aspectRatio;
|
|
197
218
|
if (window.FrontMcpBridge && typeof window.FrontMcpBridge.setSize === 'function') {
|
|
198
|
-
window.FrontMcpBridge.setSize(payload).catch(function() {
|
|
219
|
+
window.FrontMcpBridge.setSize(payload).catch(function() {
|
|
220
|
+
// Forget a rejected report so the same height is sent again.
|
|
221
|
+
if (lastReported === height) lastReported = -1;
|
|
222
|
+
});
|
|
199
223
|
}
|
|
200
224
|
window.dispatchEvent(new CustomEvent('widget:resize', { detail: payload }));
|
|
201
225
|
} catch (e) {}
|
|
@@ -216,9 +240,17 @@ function __initAutoResize() {
|
|
|
216
240
|
window.__mcpResizeObserver.disconnect();
|
|
217
241
|
}
|
|
218
242
|
var ro = new ResizeObserver(function() { schedule(); });
|
|
219
|
-
ro.observe(
|
|
243
|
+
for (var i = 0; i < targets.length; i++) ro.observe(targets[i]);
|
|
220
244
|
window.__mcpResizeObserver = ro;
|
|
221
245
|
} catch (e) {}
|
|
246
|
+
// Report once the bridge is ready (the report scheduled below is skipped
|
|
247
|
+
// while the handshake is still pending).
|
|
248
|
+
var readySent = false;
|
|
249
|
+
window.addEventListener('bridge:ready', function() {
|
|
250
|
+
if (readySent) return;
|
|
251
|
+
readySent = true;
|
|
252
|
+
schedule();
|
|
253
|
+
});
|
|
222
254
|
// Report once on init so the host gets an initial measurement.
|
|
223
255
|
schedule();
|
|
224
256
|
}
|
|
@@ -266,12 +298,57 @@ function detectViewport() {
|
|
|
266
298
|
return undefined;
|
|
267
299
|
}
|
|
268
300
|
|
|
301
|
+
function __applyHostTheme(theme) {
|
|
302
|
+
// Follow a host-supplied theme: <meta name="color-scheme"> sets the frame's
|
|
303
|
+
// canvas and form controls (a widget's own :root color-scheme still wins),
|
|
304
|
+
// <html data-theme> is a styling hook. The OS fallback is never written.
|
|
305
|
+
if (theme !== 'light' && theme !== 'dark') return;
|
|
306
|
+
if (typeof document === 'undefined' || !document.documentElement) return;
|
|
307
|
+
try {
|
|
308
|
+
var meta = document.querySelector('meta[name="color-scheme"]');
|
|
309
|
+
var head = document.head || document.getElementsByTagName('head')[0];
|
|
310
|
+
if (!meta && head) {
|
|
311
|
+
meta = document.createElement('meta');
|
|
312
|
+
meta.setAttribute('name', 'color-scheme');
|
|
313
|
+
head.appendChild(meta);
|
|
314
|
+
}
|
|
315
|
+
if (meta) meta.setAttribute('content', theme);
|
|
316
|
+
document.documentElement.setAttribute('data-theme', theme);
|
|
317
|
+
} catch (e) {}
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
function extractToolOutput(params) {
|
|
321
|
+
// A host sends a CallToolResult: prefer structuredContent, then parsed text, then the raw content.
|
|
322
|
+
if (!params) return undefined;
|
|
323
|
+
if (params.structuredContent !== undefined && params.structuredContent !== null) return params.structuredContent;
|
|
324
|
+
var content = params.content;
|
|
325
|
+
if (Array.isArray(content)) {
|
|
326
|
+
for (var i = 0; i < content.length; i++) {
|
|
327
|
+
var item = content[i];
|
|
328
|
+
if (item && item.type === 'text' && typeof item.text === 'string') {
|
|
329
|
+
try { return JSON.parse(item.text); } catch (e) { return item.text; }
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
return content;
|
|
334
|
+
}
|
|
335
|
+
|
|
269
336
|
function readInjectedData() {
|
|
270
337
|
var data = { toolInput: {}, toolOutput: undefined, structuredContent: undefined };
|
|
271
338
|
if (typeof window !== 'undefined') {
|
|
272
339
|
if (window.__mcpToolInput) data.toolInput = window.__mcpToolInput;
|
|
273
340
|
if (window.__mcpToolOutput) data.toolOutput = window.__mcpToolOutput;
|
|
274
341
|
if (window.__mcpStructuredContent) data.structuredContent = window.__mcpStructuredContent;
|
|
342
|
+
// The OpenAI Apps SDK hands the widget its data as window.openai.toolInput / toolOutput
|
|
343
|
+
// (toolOutput is the tool's structuredContent).
|
|
344
|
+
var oa = window.openai;
|
|
345
|
+
if (oa && typeof oa === 'object') {
|
|
346
|
+
if (oa.toolInput && !window.__mcpToolInput) data.toolInput = oa.toolInput;
|
|
347
|
+
if (oa.toolOutput !== undefined && oa.toolOutput !== null) {
|
|
348
|
+
if (data.toolOutput === undefined) data.toolOutput = oa.toolOutput;
|
|
349
|
+
if (data.structuredContent === undefined) data.structuredContent = oa.toolOutput;
|
|
350
|
+
}
|
|
351
|
+
}
|
|
275
352
|
}
|
|
276
353
|
return data;
|
|
277
354
|
}
|
|
@@ -320,7 +397,24 @@ var OpenAIAdapter = {
|
|
|
320
397
|
if (sdk.displayMode) {
|
|
321
398
|
context.hostContext.displayMode = sdk.displayMode;
|
|
322
399
|
}
|
|
323
|
-
//
|
|
400
|
+
// The Apps SDK re-dispatches the changed globals in an 'openai:set_globals' event.
|
|
401
|
+
window.addEventListener('openai:set_globals', function(event) {
|
|
402
|
+
var globals = (event && event.detail && event.detail.globals) || window.openai || {};
|
|
403
|
+
if (globals.toolInput !== undefined && globals.toolInput !== null) {
|
|
404
|
+
context.toolInput = globals.toolInput;
|
|
405
|
+
window.dispatchEvent(new CustomEvent('tool:input', { detail: { arguments: context.toolInput } }));
|
|
406
|
+
}
|
|
407
|
+
if (globals.toolOutput !== undefined && globals.toolOutput !== null) {
|
|
408
|
+
context.structuredContent = globals.toolOutput;
|
|
409
|
+
context.notifyToolResult(globals.toolOutput);
|
|
410
|
+
}
|
|
411
|
+
if (globals.theme && globals.theme !== context.hostContext.theme) {
|
|
412
|
+
context.notifyContextChange({ theme: globals.theme });
|
|
413
|
+
}
|
|
414
|
+
if (globals.displayMode && globals.displayMode !== context.hostContext.displayMode) {
|
|
415
|
+
context.notifyContextChange({ displayMode: globals.displayMode });
|
|
416
|
+
}
|
|
417
|
+
});
|
|
324
418
|
return Promise.resolve();
|
|
325
419
|
},
|
|
326
420
|
callTool: function(context, name, args) {
|
|
@@ -372,6 +466,8 @@ var ExtAppsAdapter = {
|
|
|
372
466
|
pendingRequests: {},
|
|
373
467
|
requestId: 0,
|
|
374
468
|
hostCapabilities: {},
|
|
469
|
+
handshakeSettled: false,
|
|
470
|
+
pendingSize: null,
|
|
375
471
|
canHandle: function() {
|
|
376
472
|
if (typeof window === 'undefined') return false;
|
|
377
473
|
if (window.parent === window) return false;
|
|
@@ -465,9 +561,10 @@ var ExtAppsAdapter = {
|
|
|
465
561
|
window.dispatchEvent(new CustomEvent('tool:input-partial', { detail: { arguments: context.toolInput } }));
|
|
466
562
|
break;
|
|
467
563
|
case 'ui/notifications/tool-result':
|
|
468
|
-
|
|
564
|
+
var resultOutput = extractToolOutput(params);
|
|
565
|
+
context.toolOutput = resultOutput;
|
|
469
566
|
context.structuredContent = params.structuredContent;
|
|
470
|
-
context.notifyToolResult(
|
|
567
|
+
context.notifyToolResult(resultOutput);
|
|
471
568
|
window.dispatchEvent(new CustomEvent('tool:result', { detail: params }));
|
|
472
569
|
break;
|
|
473
570
|
case 'ui/notifications/host-context-changed':
|
|
@@ -521,6 +618,15 @@ var ExtAppsAdapter = {
|
|
|
521
618
|
window.parent.postMessage({ jsonrpc: '2.0', id: id, method: method, params: params }, targetOrigin);
|
|
522
619
|
});
|
|
523
620
|
},
|
|
621
|
+
sendNotification: function(method, params) {
|
|
622
|
+
// JSON-RPC notification: no id, no response. Same origin rule as sendRequest.
|
|
623
|
+
if (!this.trustedOrigin && this.trustedOrigins.length === 0) {
|
|
624
|
+
return Promise.reject(new Error('Cannot send notification: no trusted origin established'));
|
|
625
|
+
}
|
|
626
|
+
var targetOrigin = this.trustedOrigin || this.trustedOrigins[0];
|
|
627
|
+
window.parent.postMessage({ jsonrpc: '2.0', method: method, params: params }, targetOrigin);
|
|
628
|
+
return Promise.resolve();
|
|
629
|
+
},
|
|
524
630
|
sendHandshake: function(context) {
|
|
525
631
|
// Send ui/initialize using '*' as target origin since TOFU hasn't
|
|
526
632
|
// been established yet. The response from the host will establish
|
|
@@ -537,6 +643,7 @@ var ExtAppsAdapter = {
|
|
|
537
643
|
var timeout = setTimeout(function() {
|
|
538
644
|
delete self.pendingRequests[id];
|
|
539
645
|
// Handshake timeout is non-fatal \u2014 notifications may still arrive
|
|
646
|
+
self.settleHandshake();
|
|
540
647
|
resolve();
|
|
541
648
|
}, 10000);
|
|
542
649
|
|
|
@@ -550,7 +657,9 @@ var ExtAppsAdapter = {
|
|
|
550
657
|
supportsDisplayModes: true
|
|
551
658
|
});
|
|
552
659
|
if (result.hostContext) {
|
|
553
|
-
|
|
660
|
+
// Notify (not a silent merge) so onContextChange listeners and the
|
|
661
|
+
// host theme see the handshake's context.
|
|
662
|
+
context.notifyContextChange(result.hostContext);
|
|
554
663
|
}
|
|
555
664
|
// Send ui/notifications/initialized to tell the host the view is ready.
|
|
556
665
|
// Per MCP Apps spec, the host waits for this before sending tool-result.
|
|
@@ -560,9 +669,10 @@ var ExtAppsAdapter = {
|
|
|
560
669
|
method: 'ui/notifications/initialized',
|
|
561
670
|
params: {}
|
|
562
671
|
}, targetOrigin);
|
|
672
|
+
self.settleHandshake();
|
|
563
673
|
resolve();
|
|
564
674
|
},
|
|
565
|
-
reject: function(err) { resolve(); }, // Non-fatal
|
|
675
|
+
reject: function(err) { self.settleHandshake(); resolve(); }, // Non-fatal
|
|
566
676
|
timeout: timeout
|
|
567
677
|
};
|
|
568
678
|
|
|
@@ -576,6 +686,18 @@ var ExtAppsAdapter = {
|
|
|
576
686
|
performHandshake: function(context) {
|
|
577
687
|
return this.sendHandshake(context);
|
|
578
688
|
},
|
|
689
|
+
settleHandshake: function() {
|
|
690
|
+
// Deliver the latest size requested while no host origin was trusted.
|
|
691
|
+
this.handshakeSettled = true;
|
|
692
|
+
var pending = this.pendingSize;
|
|
693
|
+
if (!pending) return;
|
|
694
|
+
this.pendingSize = null;
|
|
695
|
+
this.sendNotification('ui/notifications/size-changed', pending.params).then(function(result) {
|
|
696
|
+
for (var i = 0; i < pending.waiters.length; i++) pending.waiters[i].resolve(result);
|
|
697
|
+
}, function(err) {
|
|
698
|
+
for (var i = 0; i < pending.waiters.length; i++) pending.waiters[i].reject(err);
|
|
699
|
+
});
|
|
700
|
+
},
|
|
579
701
|
callTool: function(context, name, args) {
|
|
580
702
|
if (!this.hostCapabilities.serverTools && !this.hostCapabilities.serverToolProxy) {
|
|
581
703
|
return Promise.reject(new Error('Server tool proxy not supported'));
|
|
@@ -597,13 +719,22 @@ var ExtAppsAdapter = {
|
|
|
597
719
|
return this.sendRequest('ui/setDisplayMode', { mode: mode });
|
|
598
720
|
},
|
|
599
721
|
setSize: function(context, size) {
|
|
600
|
-
//
|
|
601
|
-
//
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
722
|
+
// Standard ext-apps sizing: the view tells the host its dimensions with the
|
|
723
|
+
// ui/notifications/size-changed notification ({ width?, height? } in px).
|
|
724
|
+
var params = {};
|
|
725
|
+
if (size && typeof size.width === 'number') params.width = size.width;
|
|
726
|
+
if (size && typeof size.height === 'number') params.height = size.height;
|
|
727
|
+
if (!this.handshakeSettled && !this.trustedOrigin && this.trustedOrigins.length === 0) {
|
|
728
|
+
// No host origin yet: keep only the latest size and send it when the
|
|
729
|
+
// handshake settles; every caller's promise follows that one request.
|
|
730
|
+
var self = this;
|
|
731
|
+
if (!this.pendingSize) this.pendingSize = { params: params, waiters: [] };
|
|
732
|
+
this.pendingSize.params = params;
|
|
733
|
+
return new Promise(function(resolve, reject) {
|
|
734
|
+
self.pendingSize.waiters.push({ resolve: resolve, reject: reject });
|
|
735
|
+
});
|
|
736
|
+
}
|
|
737
|
+
return this.sendNotification('ui/notifications/size-changed', params);
|
|
607
738
|
},
|
|
608
739
|
requestClose: function(context) {
|
|
609
740
|
return this.sendRequest('ui/close', {});
|
|
@@ -849,6 +980,7 @@ function FrontMcpBridge() {
|
|
|
849
980
|
toolResultListeners: [],
|
|
850
981
|
notifyContextChange: function(changes) {
|
|
851
982
|
Object.assign(this.hostContext, changes);
|
|
983
|
+
if (changes && changes.theme) __applyHostTheme(changes.theme);
|
|
852
984
|
for (var i = 0; i < this.contextListeners.length; i++) {
|
|
853
985
|
try { this.contextListeners[i](changes); } catch(e) {}
|
|
854
986
|
}
|
|
@@ -1025,7 +1157,7 @@ FrontMcpBridge.prototype.requestDisplayMode = function(mode) {
|
|
|
1025
1157
|
|
|
1026
1158
|
// Report a desired widget size to the host. \`size\` is { height?, width?, aspectRatio? }.
|
|
1027
1159
|
// Per-adapter behaviour: Claude/generic no-op (host measures the DOM),
|
|
1028
|
-
// ext-apps sends ui/
|
|
1160
|
+
// ext-apps sends ui/notifications/size-changed, OpenAI forwards to its SDK when available.
|
|
1029
1161
|
FrontMcpBridge.prototype.setSize = function(size) {
|
|
1030
1162
|
if (!this._adapter) return Promise.reject(new Error('Not initialized'));
|
|
1031
1163
|
if (!this._adapter.setSize) return Promise.resolve();
|
|
@@ -1127,7 +1259,7 @@ FrontMcpBridge.prototype._setupDataToolCallHandler = function() {
|
|
|
1127
1259
|
target.classList.add('opacity-50', 'cursor-not-allowed');
|
|
1128
1260
|
|
|
1129
1261
|
// Add spinner for buttons
|
|
1130
|
-
var spinner = '<svg class="animate-spin -ml-1 mr-2 h-4 w-4 inline" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>';
|
|
1262
|
+
var spinner = '<svg class="animate-spin -ml-1 mr-2 h-4 w-4 inline" style="width:1em;height:1em;vertical-align:-0.125em" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>';
|
|
1131
1263
|
if (target.tagName === 'BUTTON') {
|
|
1132
1264
|
target.innerHTML = spinner + 'Loading...';
|
|
1133
1265
|
}
|
|
@@ -1208,7 +1340,22 @@ function minifyJS(code) {
|
|
|
1208
1340
|
if (code.length > MAX_MINIFY_CODE_LENGTH) {
|
|
1209
1341
|
return code;
|
|
1210
1342
|
}
|
|
1211
|
-
|
|
1343
|
+
const out = [];
|
|
1344
|
+
let inBlockComment = false;
|
|
1345
|
+
for (const raw of code.split("\n")) {
|
|
1346
|
+
const line = raw.trim();
|
|
1347
|
+
if (inBlockComment) {
|
|
1348
|
+
if (line.includes("*/")) inBlockComment = false;
|
|
1349
|
+
continue;
|
|
1350
|
+
}
|
|
1351
|
+
if (line === "" || line.startsWith("//")) continue;
|
|
1352
|
+
if (line.startsWith("/*")) {
|
|
1353
|
+
if (!line.includes("*/")) inBlockComment = true;
|
|
1354
|
+
continue;
|
|
1355
|
+
}
|
|
1356
|
+
out.push(line);
|
|
1357
|
+
}
|
|
1358
|
+
return out.join("\n");
|
|
1212
1359
|
}
|
|
1213
1360
|
function generatePlatformBundle(platform, options = {}) {
|
|
1214
1361
|
const platformAdapters = {
|
package/types/ui-config.d.ts
CHANGED
|
@@ -404,8 +404,10 @@ export interface UITemplateConfig<In = unknown, Out = unknown> {
|
|
|
404
404
|
*/
|
|
405
405
|
aspectRatio?: string | number;
|
|
406
406
|
/**
|
|
407
|
-
* Whether the widget should auto-report its
|
|
408
|
-
*
|
|
407
|
+
* Whether the widget should auto-report its height to the host as it changes
|
|
408
|
+
* (via a debounced `ResizeObserver` on `<html>`, `<body>` and `#root`). The
|
|
409
|
+
* whole document is measured, margins included; the first report is sent once
|
|
410
|
+
* the host handshake completes.
|
|
409
411
|
*
|
|
410
412
|
* Only takes effect when the widget configures sizing — i.e. at least one
|
|
411
413
|
* sizing field (`preferredHeight` / `minHeight` / `maxHeight` / `aspectRatio` /
|
|
@@ -416,7 +418,7 @@ export interface UITemplateConfig<In = unknown, Out = unknown> {
|
|
|
416
418
|
* - Claude / static widgets: the host measures DOM height itself, so this is
|
|
417
419
|
* a CSS-only no-op.
|
|
418
420
|
* - OpenAI: forwarded through the Apps SDK sizing API.
|
|
419
|
-
* - ext-apps hosts: reported
|
|
421
|
+
* - ext-apps hosts: reported with the standard `ui/notifications/size-changed` notification.
|
|
420
422
|
*
|
|
421
423
|
* @default true (when the widget configures sizing)
|
|
422
424
|
*/
|
package/types/ui-config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-config.d.ts","sourceRoot":"","sources":["../../src/types/ui-config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ui-config.d.ts","sourceRoot":"","sources":["../../src/types/ui-config.ts"],"names":[],"mappings":"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"}
|