@portel/photon 1.20.1 → 1.22.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 (148) hide show
  1. package/README.md +5 -5
  2. package/dist/ag-ui/adapter.d.ts +4 -1
  3. package/dist/ag-ui/adapter.d.ts.map +1 -1
  4. package/dist/ag-ui/adapter.js +58 -3
  5. package/dist/ag-ui/adapter.js.map +1 -1
  6. package/dist/ag-ui/types.d.ts +12 -0
  7. package/dist/ag-ui/types.d.ts.map +1 -1
  8. package/dist/auto-ui/beam/routes/api-browse.d.ts.map +1 -1
  9. package/dist/auto-ui/beam/routes/api-browse.js +8 -49
  10. package/dist/auto-ui/beam/routes/api-browse.js.map +1 -1
  11. package/dist/auto-ui/beam/routes/api-config.d.ts +1 -1
  12. package/dist/auto-ui/beam/routes/api-config.d.ts.map +1 -1
  13. package/dist/auto-ui/beam/routes/api-config.js +79 -1
  14. package/dist/auto-ui/beam/routes/api-config.js.map +1 -1
  15. package/dist/auto-ui/beam.d.ts.map +1 -1
  16. package/dist/auto-ui/beam.js +23 -31
  17. package/dist/auto-ui/beam.js.map +1 -1
  18. package/dist/auto-ui/bridge/index.d.ts.map +1 -1
  19. package/dist/auto-ui/bridge/index.js +107 -11
  20. package/dist/auto-ui/bridge/index.js.map +1 -1
  21. package/dist/auto-ui/bridge/renderers.d.ts +14 -0
  22. package/dist/auto-ui/bridge/renderers.d.ts.map +1 -1
  23. package/dist/auto-ui/bridge/renderers.js +680 -57
  24. package/dist/auto-ui/bridge/renderers.js.map +1 -1
  25. package/dist/auto-ui/frontend/index.html +3 -3
  26. package/dist/auto-ui/frontend/pure-view.html +19 -19
  27. package/dist/auto-ui/streamable-http-transport.d.ts.map +1 -1
  28. package/dist/auto-ui/streamable-http-transport.js +53 -2
  29. package/dist/auto-ui/streamable-http-transport.js.map +1 -1
  30. package/dist/auto-ui/ui-resolver.d.ts +25 -0
  31. package/dist/auto-ui/ui-resolver.d.ts.map +1 -0
  32. package/dist/auto-ui/ui-resolver.js +95 -0
  33. package/dist/auto-ui/ui-resolver.js.map +1 -0
  34. package/dist/beam-form.bundle.js +7 -7
  35. package/dist/beam-form.bundle.js.map +1 -1
  36. package/dist/beam.bundle.js +905 -185
  37. package/dist/beam.bundle.js.map +4 -4
  38. package/dist/cli/commands/build.d.ts.map +1 -1
  39. package/dist/cli/commands/build.js +9 -5
  40. package/dist/cli/commands/build.js.map +1 -1
  41. package/dist/cli/commands/init.d.ts.map +1 -1
  42. package/dist/cli/commands/init.js +93 -53
  43. package/dist/cli/commands/init.js.map +1 -1
  44. package/dist/cli/commands/publish.d.ts +14 -0
  45. package/dist/cli/commands/publish.d.ts.map +1 -0
  46. package/dist/cli/commands/publish.js +126 -0
  47. package/dist/cli/commands/publish.js.map +1 -0
  48. package/dist/cli/commands/run.d.ts.map +1 -1
  49. package/dist/cli/commands/run.js +2 -0
  50. package/dist/cli/commands/run.js.map +1 -1
  51. package/dist/cli/index.d.ts.map +1 -1
  52. package/dist/cli/index.js +3 -0
  53. package/dist/cli/index.js.map +1 -1
  54. package/dist/cli.d.ts +4 -0
  55. package/dist/cli.d.ts.map +1 -1
  56. package/dist/cli.js +11 -1
  57. package/dist/cli.js.map +1 -1
  58. package/dist/context.d.ts +6 -0
  59. package/dist/context.d.ts.map +1 -1
  60. package/dist/context.js +17 -5
  61. package/dist/context.js.map +1 -1
  62. package/dist/daemon/client.d.ts +9 -1
  63. package/dist/daemon/client.d.ts.map +1 -1
  64. package/dist/daemon/client.js +54 -1
  65. package/dist/daemon/client.js.map +1 -1
  66. package/dist/daemon/manager.d.ts +3 -0
  67. package/dist/daemon/manager.d.ts.map +1 -1
  68. package/dist/daemon/manager.js +88 -38
  69. package/dist/daemon/manager.js.map +1 -1
  70. package/dist/daemon/ownership.d.ts +12 -0
  71. package/dist/daemon/ownership.d.ts.map +1 -0
  72. package/dist/daemon/ownership.js +55 -0
  73. package/dist/daemon/ownership.js.map +1 -0
  74. package/dist/daemon/protocol.d.ts +4 -2
  75. package/dist/daemon/protocol.d.ts.map +1 -1
  76. package/dist/daemon/protocol.js +15 -2
  77. package/dist/daemon/protocol.js.map +1 -1
  78. package/dist/daemon/server.js +557 -83
  79. package/dist/daemon/server.js.map +1 -1
  80. package/dist/daemon/session-manager.d.ts +9 -1
  81. package/dist/daemon/session-manager.d.ts.map +1 -1
  82. package/dist/daemon/session-manager.js +54 -1
  83. package/dist/daemon/session-manager.js.map +1 -1
  84. package/dist/daemon/worker-manager.d.ts +12 -0
  85. package/dist/daemon/worker-manager.d.ts.map +1 -1
  86. package/dist/daemon/worker-manager.js +89 -6
  87. package/dist/daemon/worker-manager.js.map +1 -1
  88. package/dist/loader.d.ts +17 -9
  89. package/dist/loader.d.ts.map +1 -1
  90. package/dist/loader.js +415 -141
  91. package/dist/loader.js.map +1 -1
  92. package/dist/photon-cli-runner.d.ts.map +1 -1
  93. package/dist/photon-cli-runner.js +26 -2
  94. package/dist/photon-cli-runner.js.map +1 -1
  95. package/dist/photons/canvas/ui/canvas.photon.html +1493 -0
  96. package/dist/photons/canvas.photon.d.ts +400 -0
  97. package/dist/photons/canvas.photon.d.ts.map +1 -0
  98. package/dist/photons/canvas.photon.js +662 -0
  99. package/dist/photons/canvas.photon.js.map +1 -0
  100. package/dist/photons/canvas.photon.ts +814 -0
  101. package/dist/photons/publish.photon.d.ts +97 -0
  102. package/dist/photons/publish.photon.d.ts.map +1 -0
  103. package/dist/photons/publish.photon.js +569 -0
  104. package/dist/photons/publish.photon.js.map +1 -0
  105. package/dist/photons/publish.photon.ts +683 -0
  106. package/dist/photons/ui/canvas.photon.html +624 -0
  107. package/dist/resource-server.d.ts.map +1 -1
  108. package/dist/resource-server.js +7 -1
  109. package/dist/resource-server.js.map +1 -1
  110. package/dist/server.d.ts +7 -0
  111. package/dist/server.d.ts.map +1 -1
  112. package/dist/server.js +67 -37
  113. package/dist/server.js.map +1 -1
  114. package/dist/shared/error-handler.d.ts +1 -0
  115. package/dist/shared/error-handler.d.ts.map +1 -1
  116. package/dist/shared/error-handler.js +68 -10
  117. package/dist/shared/error-handler.js.map +1 -1
  118. package/dist/shared/logger.d.ts.map +1 -1
  119. package/dist/shared/logger.js +34 -0
  120. package/dist/shared/logger.js.map +1 -1
  121. package/dist/shared-utils.d.ts.map +1 -1
  122. package/dist/shared-utils.js +2 -2
  123. package/dist/shared-utils.js.map +1 -1
  124. package/dist/telemetry/context.d.ts +24 -0
  125. package/dist/telemetry/context.d.ts.map +1 -0
  126. package/dist/telemetry/context.js +17 -0
  127. package/dist/telemetry/context.js.map +1 -0
  128. package/dist/telemetry/logs.d.ts +38 -0
  129. package/dist/telemetry/logs.d.ts.map +1 -0
  130. package/dist/telemetry/logs.js +108 -0
  131. package/dist/telemetry/logs.js.map +1 -0
  132. package/dist/telemetry/metrics.d.ts +71 -0
  133. package/dist/telemetry/metrics.d.ts.map +1 -0
  134. package/dist/telemetry/metrics.js +184 -0
  135. package/dist/telemetry/metrics.js.map +1 -0
  136. package/dist/telemetry/otel.d.ts +20 -1
  137. package/dist/telemetry/otel.d.ts.map +1 -1
  138. package/dist/telemetry/otel.js +79 -2
  139. package/dist/telemetry/otel.js.map +1 -1
  140. package/dist/telemetry/sdk.d.ts +49 -0
  141. package/dist/telemetry/sdk.d.ts.map +1 -0
  142. package/dist/telemetry/sdk.js +110 -0
  143. package/dist/telemetry/sdk.js.map +1 -0
  144. package/dist/tsx-compiler.d.ts +23 -0
  145. package/dist/tsx-compiler.d.ts.map +1 -0
  146. package/dist/tsx-compiler.js +221 -0
  147. package/dist/tsx-compiler.js.map +1 -0
  148. package/package.json +7 -7
@@ -13,21 +13,21 @@ import { getThemeTokens } from '../design-system/tokens.js';
13
13
  export function generateBridgeScript(context) {
14
14
  // Get theme tokens for the specified theme (light or dark)
15
15
  const themeTokens = getThemeTokens(context.theme);
16
- // When hosted in Beam, override surface tokens to match Beam's blue-tinted backgrounds
16
+ // When hosted in Beam, override surface tokens to match Beam's backgrounds
17
17
  if (context.hostName === 'beam') {
18
18
  if (context.theme === 'dark') {
19
- themeTokens['--color-surface'] = 'hsl(220, 15%, 10%)';
20
- themeTokens['--color-surface-container'] = 'hsl(220, 15%, 12%)';
21
- themeTokens['--color-surface-container-high'] = 'hsl(220, 15%, 14%)';
22
- themeTokens['--color-surface-container-highest'] = 'hsl(220, 15%, 16%)';
23
- themeTokens['--bg'] = 'hsl(220, 15%, 10%)';
19
+ themeTokens['--color-surface'] = '#0B1018';
20
+ themeTokens['--color-surface-container'] = '#131B28';
21
+ themeTokens['--color-surface-container-high'] = '#1A2433';
22
+ themeTokens['--color-surface-container-highest'] = '#212D3E';
23
+ themeTokens['--bg'] = '#0B1018';
24
24
  }
25
25
  else {
26
- themeTokens['--color-surface'] = '#eae4dd';
27
- themeTokens['--color-surface-container'] = '#f8f5f1';
28
- themeTokens['--color-surface-container-high'] = '#f0ebe5';
29
- themeTokens['--color-surface-container-highest'] = '#e8e2db';
30
- themeTokens['--bg'] = '#eae4dd';
26
+ themeTokens['--color-surface'] = '#EEF1F5';
27
+ themeTokens['--color-surface-container'] = '#FFFFFF';
28
+ themeTokens['--color-surface-container-high'] = '#E4EAF1';
29
+ themeTokens['--color-surface-container-highest'] = '#D8E0EA';
30
+ themeTokens['--bg'] = '#EEF1F5';
31
31
  }
32
32
  }
33
33
  const themeTokensJson = JSON.stringify(themeTokens);
@@ -209,6 +209,22 @@ export function generateBridgeScript(context) {
209
209
  else if (m.method === 'photon/notifications/emit') {
210
210
  listeners.emit.forEach(function(cb) { cb(m.params); });
211
211
  }
212
+ // Canvas slot reconciler messages
213
+ else if (m.method === 'canvas/ui') {
214
+ var html = m.params && m.params.html;
215
+ if (html) {
216
+ document.body.innerHTML = html;
217
+ _canvasReconciler.scanSlots();
218
+ }
219
+ }
220
+ else if (m.method === 'canvas/data') {
221
+ var slot = m.params && m.params.slot;
222
+ var data = m.params && m.params.data;
223
+ if (slot) {
224
+ _canvasReconciler.bufferData(slot, data);
225
+ _canvasReconciler.tryRender(slot);
226
+ }
227
+ }
212
228
  return;
213
229
  }
214
230
 
@@ -400,6 +416,9 @@ export function generateBridgeScript(context) {
400
416
  get method() { return ctx.method; },
401
417
  get hostContext() { return hostContext; },
402
418
 
419
+ // List of all supported format names (lazy — loaded when renderers bundle is ready)
420
+ get formats() { return window._photonRenderers ? window._photonRenderers.formats : []; },
421
+
403
422
  sendSizeChanged: sendSizeChanged,
404
423
  setupAutoResize: setupAutoResize,
405
424
  parseSizeMeta: parseSizeMeta,
@@ -427,6 +446,17 @@ export function generateBridgeScript(context) {
427
446
  };
428
447
  },
429
448
 
449
+ // Show a toast notification in the host UI
450
+ // Usage: photon.showToast('Saved!', 'success', 3000)
451
+ showToast: function(message, type, duration) {
452
+ postToHost({
453
+ type: 'photon:toast',
454
+ message: message || '',
455
+ toastType: type || 'info',
456
+ duration: duration || 3000
457
+ });
458
+ },
459
+
430
460
  // Render a QR code into a container element (convenience shortcut)
431
461
  // Usage: photon.renderQR(element, 'https://example.com', { size: 256 })
432
462
  renderQR: function(container, text, opts) {
@@ -846,6 +876,72 @@ export function generateBridgeScript(context) {
846
876
 
847
877
  _injectMotionStyles();
848
878
 
879
+ // ═══════════════════════════════════════════════════════════════════════════
880
+ // CANVAS SLOT RECONCILER
881
+ // ═══════════════════════════════════════════════════════════════════════════
882
+ //
883
+ // Two-stream merge: canvas/ui (HTML with data-slot placeholders) and
884
+ // canvas/data (JSON targeting named slots). Order-independent — either
885
+ // stream can arrive first; the reconciler buffers and renders when both
886
+ // a slot element and its data are available.
887
+ //
888
+ // <div data-slot="revenue" data-format="chart:line"></div>
889
+ // { slot: "revenue", data: [...] }
890
+ // → photon.render(el, data, "chart:line")
891
+
892
+ var _canvasReconciler = (function() {
893
+ var slots = {}; // { [name]: { el, format, data, version } }
894
+
895
+ return {
896
+ scanSlots: function() {
897
+ var els = document.querySelectorAll('[data-slot]');
898
+ // Mark all existing slots as stale, then refresh
899
+ var seen = {};
900
+ for (var i = 0; i < els.length; i++) {
901
+ var name = els[i].getAttribute('data-slot');
902
+ if (!name) continue;
903
+ seen[name] = true;
904
+ var existing = slots[name] || {};
905
+ slots[name] = {
906
+ el: els[i],
907
+ format: els[i].getAttribute('data-format') || 'json',
908
+ data: existing.data !== undefined ? existing.data : null,
909
+ version: existing.version || 0
910
+ };
911
+ // Show loading state
912
+ if (slots[name].data === null) {
913
+ els[i].classList.add('photon-loading');
914
+ }
915
+ // If data was buffered before UI arrived, render now
916
+ if (slots[name].data !== null) {
917
+ this.tryRender(name);
918
+ }
919
+ }
920
+ // Prune orphaned slots (present in old UI but not new)
921
+ for (var key in slots) {
922
+ if (!seen[key]) delete slots[key];
923
+ }
924
+ },
925
+
926
+ bufferData: function(name, data) {
927
+ if (!slots[name]) {
928
+ slots[name] = { el: null, format: null, data: data, version: 1 };
929
+ } else {
930
+ slots[name].data = data;
931
+ slots[name].version++;
932
+ }
933
+ },
934
+
935
+ tryRender: function(name) {
936
+ var s = slots[name];
937
+ if (!s || !s.el || s.data === null) return;
938
+ s.el.classList.remove('photon-loading');
939
+ window.photon.render(s.el, s.data, s.format);
940
+ s.el.setAttribute('data-rendered', 'true');
941
+ }
942
+ };
943
+ })();
944
+
849
945
  // ═══════════════════════════════════════════════════════════════════════════
850
946
  // DECLARATIVE DATA BINDING (Datastar-inspired, metadata-driven)
851
947
  // ═══════════════════════════════════════════════════════════════════════════
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/auto-ui/bridge/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/auto-ui/bridge/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAgB5D,6DAA6D;AAC7D,gFAAgF;AAEhF;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAA4B;IAC/D,2DAA2D;IAC3D,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAElD,2EAA2E;IAC3E,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;QAChC,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC7B,WAAW,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC;YAC3C,WAAW,CAAC,2BAA2B,CAAC,GAAG,SAAS,CAAC;YACrD,WAAW,CAAC,gCAAgC,CAAC,GAAG,SAAS,CAAC;YAC1D,WAAW,CAAC,mCAAmC,CAAC,GAAG,SAAS,CAAC;YAC7D,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC;YAC3C,WAAW,CAAC,2BAA2B,CAAC,GAAG,SAAS,CAAC;YACrD,WAAW,CAAC,gCAAgC,CAAC,GAAG,SAAS,CAAC;YAC1D,WAAW,CAAC,mCAAmC,CAAC,GAAG,SAAS,CAAC;YAC7D,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;QAClC,CAAC;IACH,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAE5C,OAAO;;;;;;;;;cASK,WAAW;sBACH,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UA2+C3B,CAAC;AACX,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,4BAA4B,CAAC,OAS5C;IACC,OAAO,oBAAoB,CAAC;QAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;QAC5B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;QAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,eAAe,EAAE,OAAO,CAAC,eAAe;KACzC,CAAC,CAAC;AACL,CAAC"}
@@ -11,4 +11,18 @@
11
11
  * photon.render(container, data, 'gauge', { min: 0, max: 100 })
12
12
  */
13
13
  export declare function generateRenderersScript(): string;
14
+ /**
15
+ * Format catalog — format name → expected data shape.
16
+ * Used by AI to generate valid canvas data for each slot format.
17
+ *
18
+ * Usage:
19
+ * import { FORMAT_CATALOG, SUPPORTED_FORMATS } from './renderers.js';
20
+ */
21
+ export interface FormatSpec {
22
+ data: string;
23
+ example: unknown;
24
+ }
25
+ export declare const FORMAT_CATALOG: Record<string, FormatSpec>;
26
+ /** Flat list of supported format names */
27
+ export declare const SUPPORTED_FORMATS: string[];
14
28
  //# sourceMappingURL=renderers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderers.d.ts","sourceRoot":"","sources":["../../../src/auto-ui/bridge/renderers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,wBAAgB,uBAAuB,IAAI,MAAM,CAu6ChD"}
1
+ {"version":3,"file":"renderers.d.ts","sourceRoot":"","sources":["../../../src/auto-ui/bridge/renderers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,wBAAgB,uBAAuB,IAAI,MAAM,CA0xDhD;AAED;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CA+PrD,CAAC;AAEF,0CAA0C;AAC1C,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAAgC,CAAC"}