@portel/photon 1.14.0 → 1.16.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.
- package/dist/auto-ui/beam/routes/api-config.d.ts.map +1 -1
- package/dist/auto-ui/beam/routes/api-config.js +29 -8
- package/dist/auto-ui/beam/routes/api-config.js.map +1 -1
- package/dist/auto-ui/beam/routes/api-marketplace.d.ts.map +1 -1
- package/dist/auto-ui/beam/routes/api-marketplace.js +3 -0
- package/dist/auto-ui/beam/routes/api-marketplace.js.map +1 -1
- package/dist/auto-ui/beam.d.ts.map +1 -1
- package/dist/auto-ui/beam.js +167 -48
- package/dist/auto-ui/beam.js.map +1 -1
- package/dist/auto-ui/bridge/index.d.ts.map +1 -1
- package/dist/auto-ui/bridge/index.js +578 -0
- package/dist/auto-ui/bridge/index.js.map +1 -1
- package/dist/auto-ui/bridge/renderers.d.ts.map +1 -1
- package/dist/auto-ui/bridge/renderers.js +7 -3
- package/dist/auto-ui/bridge/renderers.js.map +1 -1
- package/dist/auto-ui/bridge/types.d.ts +6 -0
- package/dist/auto-ui/bridge/types.d.ts.map +1 -1
- package/dist/auto-ui/frontend/pure-view.html +289 -0
- package/dist/auto-ui/photon-bridge.d.ts +11 -0
- package/dist/auto-ui/photon-bridge.d.ts.map +1 -1
- package/dist/auto-ui/photon-bridge.js +75 -1
- package/dist/auto-ui/photon-bridge.js.map +1 -1
- package/dist/auto-ui/streamable-http-transport.d.ts.map +1 -1
- package/dist/auto-ui/streamable-http-transport.js +29 -3
- package/dist/auto-ui/streamable-http-transport.js.map +1 -1
- package/dist/beam-form.bundle.js +5707 -0
- package/dist/beam-form.bundle.js.map +7 -0
- package/dist/beam.bundle.js +1947 -523
- package/dist/beam.bundle.js.map +4 -4
- package/dist/cli/commands/info.d.ts.map +1 -1
- package/dist/cli/commands/info.js +15 -2
- package/dist/cli/commands/info.js.map +1 -1
- package/dist/daemon/client.d.ts +5 -0
- package/dist/daemon/client.d.ts.map +1 -1
- package/dist/daemon/client.js +50 -0
- package/dist/daemon/client.js.map +1 -1
- package/dist/daemon/manager.d.ts +15 -0
- package/dist/daemon/manager.d.ts.map +1 -1
- package/dist/daemon/manager.js +142 -11
- package/dist/daemon/manager.js.map +1 -1
- package/dist/deploy/cloudflare.d.ts.map +1 -1
- package/dist/deploy/cloudflare.js +10 -2
- package/dist/deploy/cloudflare.js.map +1 -1
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +50 -3
- package/dist/loader.js.map +1 -1
- package/dist/marketplace-manager.d.ts +9 -0
- package/dist/marketplace-manager.d.ts.map +1 -1
- package/dist/marketplace-manager.js +115 -42
- package/dist/marketplace-manager.js.map +1 -1
- package/dist/meta.d.ts +51 -0
- package/dist/meta.d.ts.map +1 -0
- package/dist/meta.js +320 -0
- package/dist/meta.js.map +1 -0
- package/dist/photon-cli-runner.d.ts.map +1 -1
- package/dist/photon-cli-runner.js +30 -5
- package/dist/photon-cli-runner.js.map +1 -1
- package/dist/photon-doc-extractor.d.ts +1 -0
- package/dist/photon-doc-extractor.d.ts.map +1 -1
- package/dist/photon-doc-extractor.js +33 -21
- package/dist/photon-doc-extractor.js.map +1 -1
- package/dist/photons/docs/ui/docs.html +441 -0
- package/dist/photons/docs.photon.d.ts +237 -0
- package/dist/photons/docs.photon.d.ts.map +1 -0
- package/dist/photons/docs.photon.js +483 -0
- package/dist/photons/docs.photon.js.map +1 -0
- package/dist/photons/docs.photon.ts +536 -0
- package/dist/photons/slides.photon.d.ts +212 -0
- package/dist/photons/slides.photon.d.ts.map +1 -0
- package/dist/photons/slides.photon.js +355 -0
- package/dist/photons/slides.photon.js.map +1 -0
- package/dist/photons/slides.photon.ts +370 -0
- package/dist/photons/spreadsheet/ui/spreadsheet.html +779 -0
- package/dist/photons/spreadsheet.photon.d.ts +554 -0
- package/dist/photons/spreadsheet.photon.d.ts.map +1 -0
- package/dist/photons/spreadsheet.photon.js +1050 -0
- package/dist/photons/spreadsheet.photon.js.map +1 -0
- package/dist/photons/spreadsheet.photon.ts +1239 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +17 -57
- package/dist/server.js.map +1 -1
- package/dist/shared/error-handler.d.ts +8 -0
- package/dist/shared/error-handler.d.ts.map +1 -1
- package/dist/shared/error-handler.js +50 -0
- package/dist/shared/error-handler.js.map +1 -1
- package/dist/shared-utils.d.ts +3 -2
- package/dist/shared-utils.d.ts.map +1 -1
- package/dist/shared-utils.js +4 -3
- package/dist/shared-utils.js.map +1 -1
- package/package.json +7 -2
|
@@ -202,6 +202,10 @@ export function generateBridgeScript(context) {
|
|
|
202
202
|
if (m.type === 'photon:result') {
|
|
203
203
|
toolOutput = m.data;
|
|
204
204
|
listeners.result.forEach(function(cb) { cb(m.data); });
|
|
205
|
+
// Also dispatch to named event listeners (proxy.onResult uses photon.on('result', cb))
|
|
206
|
+
if (eventListeners['result']) {
|
|
207
|
+
eventListeners['result'].forEach(function(cb) { cb(m.data); });
|
|
208
|
+
}
|
|
205
209
|
}
|
|
206
210
|
else if (m.type === 'photon:theme-change') {
|
|
207
211
|
ctx.theme = m.theme || 'dark';
|
|
@@ -462,13 +466,61 @@ export function generateBridgeScript(context) {
|
|
|
462
466
|
|
|
463
467
|
// Render data in any auto UI format: table, chart:bar, gauge, metric, etc.
|
|
464
468
|
// Usage: photon.render(container, data, 'chart:bar', { label: 'name', value: 'count' })
|
|
469
|
+
// Accepts optional motion config: photon.render(el, data, 'table', { enter: 'scale-in', transition: 'matte:radial' })
|
|
465
470
|
// Lazy-loads the renderer bundle on first call.
|
|
466
471
|
render: function(container, data, format, opts) {
|
|
467
472
|
if (!container) return;
|
|
468
473
|
format = format || 'json';
|
|
474
|
+
opts = opts || {};
|
|
475
|
+
|
|
476
|
+
// Extract motion options
|
|
477
|
+
var motionEnter = opts.enter;
|
|
478
|
+
var motionTransition = opts.transition;
|
|
469
479
|
|
|
470
480
|
function doRender() {
|
|
481
|
+
// Capture existing content for matte transition
|
|
482
|
+
var existingHTML = '';
|
|
483
|
+
if (motionTransition && container.innerHTML.trim()) {
|
|
484
|
+
existingHTML = container.innerHTML;
|
|
485
|
+
}
|
|
486
|
+
|
|
471
487
|
window._photonRenderers.render(container, data, format, opts);
|
|
488
|
+
|
|
489
|
+
// Apply matte transition if there was previous content
|
|
490
|
+
if (existingHTML && motionTransition) {
|
|
491
|
+
var matteType = motionTransition.replace('matte:', '');
|
|
492
|
+
var outgoing = document.createElement('div');
|
|
493
|
+
outgoing.innerHTML = existingHTML;
|
|
494
|
+
outgoing.style.position = 'absolute';
|
|
495
|
+
outgoing.style.inset = '0';
|
|
496
|
+
|
|
497
|
+
var incoming = document.createElement('div');
|
|
498
|
+
while (container.firstChild) incoming.appendChild(container.firstChild);
|
|
499
|
+
|
|
500
|
+
container.style.position = 'relative';
|
|
501
|
+
container.appendChild(outgoing);
|
|
502
|
+
container.appendChild(incoming);
|
|
503
|
+
|
|
504
|
+
// Apply matte class
|
|
505
|
+
if (matteType === 'radial' || matteType === 'diagonal') {
|
|
506
|
+
incoming.classList.add('motion-matte-' + matteType);
|
|
507
|
+
} else {
|
|
508
|
+
incoming.classList.add('motion-matte-reveal');
|
|
509
|
+
incoming.style.maskImage = "url('" + matteType + "')";
|
|
510
|
+
incoming.style.webkitMaskImage = "url('" + matteType + "')";
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
// Clean up after animation
|
|
514
|
+
incoming.addEventListener('animationend', function() {
|
|
515
|
+
outgoing.remove();
|
|
516
|
+
while (incoming.firstChild) container.appendChild(incoming.firstChild);
|
|
517
|
+
incoming.remove();
|
|
518
|
+
container.style.position = '';
|
|
519
|
+
}, { once: true });
|
|
520
|
+
} else if (motionEnter) {
|
|
521
|
+
// Simple enter animation on the container
|
|
522
|
+
container.classList.add('motion-' + motionEnter);
|
|
523
|
+
}
|
|
472
524
|
}
|
|
473
525
|
|
|
474
526
|
if (window._photonRenderers) { doRender(); return; }
|
|
@@ -496,6 +548,67 @@ export function generateBridgeScript(context) {
|
|
|
496
548
|
container.innerHTML = '<pre style="font-size:11px;color:#888;">' + JSON.stringify(data, null, 2) + '</pre>';
|
|
497
549
|
};
|
|
498
550
|
document.head.appendChild(s);
|
|
551
|
+
},
|
|
552
|
+
|
|
553
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
554
|
+
// MOTION API
|
|
555
|
+
// Usage: photon.motion.enter(el, 'slide-up')
|
|
556
|
+
// photon.motion.exit(el, 'fade-out').then(() => console.log('removed'))
|
|
557
|
+
// photon.motion.stagger(container)
|
|
558
|
+
// photon.motion.depth(el, 'float')
|
|
559
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
560
|
+
motion: {
|
|
561
|
+
enter: function(el, effect) {
|
|
562
|
+
if (!el) return;
|
|
563
|
+
effect = effect || 'fade-in';
|
|
564
|
+
el.classList.add('motion-' + effect);
|
|
565
|
+
},
|
|
566
|
+
exit: function(el, effect) {
|
|
567
|
+
if (!el) return Promise.resolve();
|
|
568
|
+
effect = effect || 'fade-out';
|
|
569
|
+
|
|
570
|
+
// Respect reduced motion
|
|
571
|
+
if (window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
|
|
572
|
+
el.remove();
|
|
573
|
+
return Promise.resolve();
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
el.classList.add('motion-' + effect);
|
|
577
|
+
return new Promise(function(resolve) {
|
|
578
|
+
function onEnd() {
|
|
579
|
+
el.removeEventListener('animationend', onEnd);
|
|
580
|
+
el.remove();
|
|
581
|
+
resolve();
|
|
582
|
+
}
|
|
583
|
+
el.addEventListener('animationend', onEnd);
|
|
584
|
+
// Safety timeout
|
|
585
|
+
setTimeout(function() {
|
|
586
|
+
if (el.parentElement) {
|
|
587
|
+
el.removeEventListener('animationend', onEnd);
|
|
588
|
+
el.remove();
|
|
589
|
+
resolve();
|
|
590
|
+
}
|
|
591
|
+
}, 1000);
|
|
592
|
+
});
|
|
593
|
+
},
|
|
594
|
+
stagger: function(container) {
|
|
595
|
+
if (!container) return;
|
|
596
|
+
container.classList.add('motion-stagger');
|
|
597
|
+
},
|
|
598
|
+
depth: function(el, preset) {
|
|
599
|
+
if (!el) return;
|
|
600
|
+
preset = preset || 'float';
|
|
601
|
+
// Ensure parent has perspective
|
|
602
|
+
var parent = el.parentElement;
|
|
603
|
+
if (parent && !parent.classList.contains('motion-perspective')) {
|
|
604
|
+
parent.classList.add('motion-perspective');
|
|
605
|
+
}
|
|
606
|
+
if (preset === 'tilt' || preset === 'tilt-right') {
|
|
607
|
+
el.classList.add('motion-' + preset);
|
|
608
|
+
} else {
|
|
609
|
+
el.classList.add('motion-depth-' + preset);
|
|
610
|
+
}
|
|
611
|
+
}
|
|
499
612
|
}
|
|
500
613
|
};
|
|
501
614
|
|
|
@@ -600,6 +713,122 @@ export function generateBridgeScript(context) {
|
|
|
600
713
|
// Apply initial theme
|
|
601
714
|
applyThemeTokens();
|
|
602
715
|
|
|
716
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
717
|
+
// MOTION STYLES INJECTION
|
|
718
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
719
|
+
|
|
720
|
+
function _injectMotionStyles() {
|
|
721
|
+
var style = document.createElement('style');
|
|
722
|
+
style.id = 'photon-motion';
|
|
723
|
+
style.textContent = [
|
|
724
|
+
'/* ═══ TIMING TOKENS ═══ */',
|
|
725
|
+
':root {',
|
|
726
|
+
' --motion-fast: 0.15s;',
|
|
727
|
+
' --motion-normal: 0.3s;',
|
|
728
|
+
' --motion-slow: 0.5s;',
|
|
729
|
+
' --motion-slower: 0.8s;',
|
|
730
|
+
' --motion-ease-out: cubic-bezier(0.16, 1, 0.3, 1);',
|
|
731
|
+
' --motion-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);',
|
|
732
|
+
' --motion-ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);',
|
|
733
|
+
'}',
|
|
734
|
+
'',
|
|
735
|
+
'/* ═══ ENTER ANIMATIONS ═══ */',
|
|
736
|
+
'@keyframes motion-fade-in { from { opacity: 0; } to { opacity: 1; } }',
|
|
737
|
+
'@keyframes motion-slide-up { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }',
|
|
738
|
+
'@keyframes motion-slide-down { from { opacity: 0; transform: translateY(-16px); } to { opacity: 1; transform: translateY(0); } }',
|
|
739
|
+
'@keyframes motion-slide-in-right { from { opacity: 0; transform: translateX(20px); } to { opacity: 1; transform: translateX(0); } }',
|
|
740
|
+
'@keyframes motion-slide-in-left { from { opacity: 0; transform: translateX(-20px); } to { opacity: 1; transform: translateX(0); } }',
|
|
741
|
+
'@keyframes motion-scale-in { from { opacity: 0; transform: scale(0.92); } to { opacity: 1; transform: scale(1); } }',
|
|
742
|
+
'@keyframes motion-scale-up { from { opacity: 0; transform: scale(0.5); } to { opacity: 1; transform: scale(1); } }',
|
|
743
|
+
'@keyframes motion-flip-in { from { opacity: 0; transform: perspective(800px) rotateY(90deg); } to { opacity: 1; transform: perspective(800px) rotateY(0deg); } }',
|
|
744
|
+
'@keyframes motion-drop-in { from { opacity: 0; transform: translateY(-40px) scale(0.95); } 60% { opacity: 1; transform: translateY(4px) scale(1.01); } to { opacity: 1; transform: translateY(0) scale(1); } }',
|
|
745
|
+
'',
|
|
746
|
+
'/* ═══ EXIT ANIMATIONS ═══ */',
|
|
747
|
+
'@keyframes motion-fade-out { from { opacity: 1; } to { opacity: 0; } }',
|
|
748
|
+
'@keyframes motion-slide-out-down { from { opacity: 1; transform: translateY(0); } to { opacity: 0; transform: translateY(16px); } }',
|
|
749
|
+
'@keyframes motion-scale-out { from { opacity: 1; transform: scale(1); } to { opacity: 0; transform: scale(0.92); } }',
|
|
750
|
+
'@keyframes motion-zoom-out { from { opacity: 1; transform: scale(1); } to { opacity: 0; transform: scale(0.5); } }',
|
|
751
|
+
'@keyframes motion-flip-out { from { opacity: 1; transform: perspective(800px) rotateY(0deg); } to { opacity: 0; transform: perspective(800px) rotateY(-90deg); } }',
|
|
752
|
+
'',
|
|
753
|
+
'/* ═══ PERSISTENT EFFECTS ═══ */',
|
|
754
|
+
'@keyframes motion-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }',
|
|
755
|
+
'@keyframes motion-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.03); } }',
|
|
756
|
+
'@keyframes motion-glow { 0%, 100% { box-shadow: 0 0 0 0 var(--glow-primary, rgba(100, 180, 255, 0)); } 50% { box-shadow: 0 0 12px 2px var(--glow-primary, rgba(100, 180, 255, 0.3)); } }',
|
|
757
|
+
'',
|
|
758
|
+
'/* ═══ ENTER CLASSES ═══ */',
|
|
759
|
+
'.motion-fade-in { animation: motion-fade-in var(--motion-normal) var(--motion-ease-out) both; }',
|
|
760
|
+
'.motion-slide-up { animation: motion-slide-up var(--motion-normal) var(--motion-ease-out) both; }',
|
|
761
|
+
'.motion-slide-down { animation: motion-slide-down var(--motion-normal) var(--motion-ease-out) both; }',
|
|
762
|
+
'.motion-slide-in-right { animation: motion-slide-in-right var(--motion-normal) var(--motion-ease-out) both; }',
|
|
763
|
+
'.motion-slide-in-left { animation: motion-slide-in-left var(--motion-normal) var(--motion-ease-out) both; }',
|
|
764
|
+
'.motion-scale-in { animation: motion-scale-in var(--motion-normal) var(--motion-ease-out) both; }',
|
|
765
|
+
'.motion-scale-up { animation: motion-scale-up var(--motion-normal) var(--motion-ease-spring) both; }',
|
|
766
|
+
'.motion-flip-in { animation: motion-flip-in var(--motion-slow) var(--motion-ease-out) both; }',
|
|
767
|
+
'.motion-drop-in { animation: motion-drop-in var(--motion-slow) var(--motion-ease-out) both; }',
|
|
768
|
+
'',
|
|
769
|
+
'/* ═══ EXIT CLASSES ═══ */',
|
|
770
|
+
'.motion-fade-out { animation: motion-fade-out var(--motion-normal) var(--motion-ease-in-out) both; }',
|
|
771
|
+
'.motion-slide-out-down { animation: motion-slide-out-down var(--motion-normal) var(--motion-ease-in-out) both; }',
|
|
772
|
+
'.motion-scale-out { animation: motion-scale-out var(--motion-normal) var(--motion-ease-in-out) both; }',
|
|
773
|
+
'.motion-zoom-out { animation: motion-zoom-out var(--motion-normal) var(--motion-ease-in-out) both; }',
|
|
774
|
+
'.motion-flip-out { animation: motion-flip-out var(--motion-slow) var(--motion-ease-in-out) both; }',
|
|
775
|
+
'',
|
|
776
|
+
'/* ═══ PERSISTENT CLASSES ═══ */',
|
|
777
|
+
'.motion-float { animation: motion-float 3s ease-in-out infinite; }',
|
|
778
|
+
'.motion-pulse { animation: motion-pulse 2s ease-in-out infinite; }',
|
|
779
|
+
'.motion-glow { animation: motion-glow 2s ease-in-out infinite; }',
|
|
780
|
+
'',
|
|
781
|
+
'/* ═══ STAGGER ═══ */',
|
|
782
|
+
'.motion-stagger > * { animation: motion-slide-up var(--motion-normal) var(--motion-ease-out) both; }',
|
|
783
|
+
'.motion-stagger > *:nth-child(1) { animation-delay: 0ms; }',
|
|
784
|
+
'.motion-stagger > *:nth-child(2) { animation-delay: 50ms; }',
|
|
785
|
+
'.motion-stagger > *:nth-child(3) { animation-delay: 100ms; }',
|
|
786
|
+
'.motion-stagger > *:nth-child(4) { animation-delay: 150ms; }',
|
|
787
|
+
'.motion-stagger > *:nth-child(5) { animation-delay: 200ms; }',
|
|
788
|
+
'.motion-stagger > *:nth-child(6) { animation-delay: 250ms; }',
|
|
789
|
+
'.motion-stagger > *:nth-child(7) { animation-delay: 300ms; }',
|
|
790
|
+
'.motion-stagger > *:nth-child(8) { animation-delay: 350ms; }',
|
|
791
|
+
'.motion-stagger > *:nth-child(9) { animation-delay: 400ms; }',
|
|
792
|
+
'.motion-stagger > *:nth-child(10) { animation-delay: 450ms; }',
|
|
793
|
+
'.motion-stagger > *:nth-child(n+11) { animation-delay: 500ms; }',
|
|
794
|
+
'',
|
|
795
|
+
'.motion-stagger-fast > * { animation: motion-fade-in var(--motion-fast) var(--motion-ease-out) both; }',
|
|
796
|
+
'.motion-stagger-fast > *:nth-child(1) { animation-delay: 0ms; }',
|
|
797
|
+
'.motion-stagger-fast > *:nth-child(2) { animation-delay: 30ms; }',
|
|
798
|
+
'.motion-stagger-fast > *:nth-child(3) { animation-delay: 60ms; }',
|
|
799
|
+
'.motion-stagger-fast > *:nth-child(4) { animation-delay: 90ms; }',
|
|
800
|
+
'.motion-stagger-fast > *:nth-child(5) { animation-delay: 120ms; }',
|
|
801
|
+
'.motion-stagger-fast > *:nth-child(n+6) { animation-delay: 150ms; }',
|
|
802
|
+
'',
|
|
803
|
+
'/* ═══ DEPTH / PERSPECTIVE ═══ */',
|
|
804
|
+
'.motion-perspective { perspective: 1200px; perspective-origin: center; }',
|
|
805
|
+
'.motion-depth-front { transform: translateZ(30px); }',
|
|
806
|
+
'.motion-depth-back { transform: translateZ(-20px) scale(1.04); filter: blur(0.5px); opacity: 0.85; }',
|
|
807
|
+
'.motion-depth-float { transform: translateZ(15px); filter: drop-shadow(0 8px 16px rgba(0, 0, 0, 0.25)); }',
|
|
808
|
+
'.motion-tilt { transform: rotateY(-5deg) rotateX(2deg); transition: transform var(--motion-slow) var(--motion-ease-out); }',
|
|
809
|
+
'.motion-tilt:hover { transform: rotateY(0deg) rotateX(0deg); }',
|
|
810
|
+
'.motion-tilt-right { transform: rotateY(5deg) rotateX(2deg); transition: transform var(--motion-slow) var(--motion-ease-out); }',
|
|
811
|
+
'.motion-tilt-right:hover { transform: rotateY(0deg) rotateX(0deg); }',
|
|
812
|
+
'',
|
|
813
|
+
'/* ═══ MATTE TRANSITIONS ═══ */',
|
|
814
|
+
'.motion-matte-reveal { mask-size: 0% auto; mask-repeat: no-repeat; mask-position: center; animation: motion-matte-wipe var(--motion-slower) var(--motion-ease-out) forwards; }',
|
|
815
|
+
'@keyframes motion-matte-wipe { to { mask-size: 300% auto; } }',
|
|
816
|
+
'.motion-matte-radial { mask-image: radial-gradient(circle, white, black); mask-size: 0% 0%; mask-position: center; mask-repeat: no-repeat; animation: motion-matte-radial-reveal var(--motion-slower) var(--motion-ease-out) forwards; }',
|
|
817
|
+
'@keyframes motion-matte-radial-reveal { to { mask-size: 200% 200%; } }',
|
|
818
|
+
'.motion-matte-diagonal { mask-image: linear-gradient(135deg, white 0%, black 100%); mask-size: 300% 300%; mask-position: 100% 100%; animation: motion-matte-diagonal-reveal var(--motion-slower) var(--motion-ease-out) forwards; }',
|
|
819
|
+
'@keyframes motion-matte-diagonal-reveal { to { mask-position: 0% 0%; } }',
|
|
820
|
+
'',
|
|
821
|
+
'/* ═══ REDUCED MOTION ═══ */',
|
|
822
|
+
'@media (prefers-reduced-motion: reduce) {',
|
|
823
|
+
' *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }',
|
|
824
|
+
' .motion-float, .motion-pulse, .motion-glow { animation: none !important; }',
|
|
825
|
+
'}'
|
|
826
|
+
].join('\\n');
|
|
827
|
+
document.head.appendChild(style);
|
|
828
|
+
}
|
|
829
|
+
|
|
830
|
+
_injectMotionStyles();
|
|
831
|
+
|
|
603
832
|
// ═══════════════════════════════════════════════════════════════════════════
|
|
604
833
|
// DECLARATIVE DATA BINDING (Datastar-inspired, metadata-driven)
|
|
605
834
|
// ═══════════════════════════════════════════════════════════════════════════
|
|
@@ -635,6 +864,283 @@ export function generateBridgeScript(context) {
|
|
|
635
864
|
// Track bound elements and their last results for theme-change re-rendering
|
|
636
865
|
var _boundElements = [];
|
|
637
866
|
|
|
867
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
868
|
+
// FORM CSS (injected once on first form generation)
|
|
869
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
870
|
+
var _formCSSInjected = false;
|
|
871
|
+
function _injectFormCSS() {
|
|
872
|
+
if (_formCSSInjected) return;
|
|
873
|
+
_formCSSInjected = true;
|
|
874
|
+
var style = document.createElement('style');
|
|
875
|
+
style.id = 'photon-form-css';
|
|
876
|
+
style.textContent = [
|
|
877
|
+
'.photon-auto-form { font-family: Inter, system-ui, sans-serif; max-width: 480px; margin: 0 auto; }',
|
|
878
|
+
'.photon-auto-form .pf-group { margin-bottom: 12px; }',
|
|
879
|
+
'.photon-auto-form label { display: block; font-size: 13px; font-weight: 500; margin-bottom: 4px; color: var(--color-on-surface, var(--text, #c0caf5)); }',
|
|
880
|
+
'.photon-auto-form label .pf-req { color: var(--color-error, var(--error, #f7768e)); margin-left: 2px; }',
|
|
881
|
+
'.photon-auto-form input, .photon-auto-form select, .photon-auto-form textarea {',
|
|
882
|
+
' width: 100%; box-sizing: border-box; padding: 8px 10px; border-radius: 6px;',
|
|
883
|
+
' border: 1px solid var(--color-outline-variant, var(--border, #3b3d57)); background: var(--color-surface-container, var(--input, #1e2030));',
|
|
884
|
+
' color: var(--color-on-surface, var(--text, #c0caf5)); font-size: 14px; font-family: inherit; outline: none;',
|
|
885
|
+
'}',
|
|
886
|
+
'.photon-auto-form input:focus, .photon-auto-form select:focus, .photon-auto-form textarea:focus {',
|
|
887
|
+
' border-color: var(--color-primary, var(--accent, #7aa2f7));',
|
|
888
|
+
'}',
|
|
889
|
+
'.photon-auto-form input[type="checkbox"] { width: auto; margin-right: 8px; }',
|
|
890
|
+
'.photon-auto-form .pf-check-group { display: flex; align-items: center; }',
|
|
891
|
+
'.photon-auto-form .pf-desc { font-size: 11px; color: var(--color-on-surface-muted, var(--muted, #565f89)); margin-top: 2px; }',
|
|
892
|
+
'.photon-auto-form button[type="submit"] {',
|
|
893
|
+
' margin-top: 16px; padding: 10px 24px; border-radius: 6px; border: none; cursor: pointer;',
|
|
894
|
+
' background: var(--color-primary, var(--accent, #7aa2f7)); color: var(--color-on-primary, #fff); font-size: 14px; font-weight: 500;',
|
|
895
|
+
' font-family: inherit; width: 100%;',
|
|
896
|
+
'}',
|
|
897
|
+
'.photon-auto-form button[type="submit"]:hover { opacity: 0.9; }',
|
|
898
|
+
'.photon-auto-form button[type="submit"]:disabled { opacity: 0.5; cursor: not-allowed; }',
|
|
899
|
+
'.photon-auto-form .pf-result { margin-top: 16px; }',
|
|
900
|
+
'.photon-auto-form .pf-error { color: var(--color-error, var(--error, #f7768e)); font-size: 13px; margin-top: 8px; }',
|
|
901
|
+
].join('\\n');
|
|
902
|
+
document.head.appendChild(style);
|
|
903
|
+
}
|
|
904
|
+
|
|
905
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
906
|
+
// FORM GENERATION (vanilla JS from JSON Schema)
|
|
907
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
908
|
+
|
|
909
|
+
function _shouldShowForm(meta, args) {
|
|
910
|
+
// Explicit data-view overrides auto-detection
|
|
911
|
+
// Otherwise: show form if any required params are missing from args
|
|
912
|
+
var schema = meta.inputSchema;
|
|
913
|
+
if (!schema || !schema.properties) return false; // no params → result
|
|
914
|
+
var required = schema.required || [];
|
|
915
|
+
if (required.length === 0) return false; // no required params → result
|
|
916
|
+
for (var i = 0; i < required.length; i++) {
|
|
917
|
+
if (!(required[i] in args)) return true; // missing required → form
|
|
918
|
+
}
|
|
919
|
+
return false; // all required present → result
|
|
920
|
+
}
|
|
921
|
+
|
|
922
|
+
function _escHtml(s) {
|
|
923
|
+
return String(s).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"');
|
|
924
|
+
}
|
|
925
|
+
|
|
926
|
+
/**
|
|
927
|
+
* Load Beam's invoke-form component (Lit) for rich form rendering.
|
|
928
|
+
* Lazy-loads the form bundle on first use — provides custom inputs
|
|
929
|
+
* (date-picker, segmented-control, star-rating, etc.) in pure-view context.
|
|
930
|
+
*/
|
|
931
|
+
function _loadRichForm(el, method, meta, args, proxy, format, renderResult) {
|
|
932
|
+
// Inject form bundle script (once)
|
|
933
|
+
if (!document.querySelector('script[data-form-bundle]')) {
|
|
934
|
+
var s = document.createElement('script');
|
|
935
|
+
s.type = 'module';
|
|
936
|
+
s.src = '/beam-form.bundle.js';
|
|
937
|
+
s.setAttribute('data-form-bundle', '1');
|
|
938
|
+
document.head.appendChild(s);
|
|
939
|
+
}
|
|
940
|
+
|
|
941
|
+
// Wait for invoke-form custom element to be defined
|
|
942
|
+
customElements.whenDefined('invoke-form').then(function() {
|
|
943
|
+
var form = document.createElement('invoke-form');
|
|
944
|
+
form.photonName = ctx.photon;
|
|
945
|
+
form.methodName = method;
|
|
946
|
+
form.params = meta.inputSchema.properties || {};
|
|
947
|
+
// Pass along any pre-set args as shared values
|
|
948
|
+
if (args && Object.keys(args).length > 0) {
|
|
949
|
+
form.sharedValues = args;
|
|
950
|
+
}
|
|
951
|
+
|
|
952
|
+
// Handle form submission — call the method via bridge proxy
|
|
953
|
+
form.addEventListener('submit', function(e) {
|
|
954
|
+
form.loading = true;
|
|
955
|
+
try {
|
|
956
|
+
var p = proxy[method](e.detail.args);
|
|
957
|
+
if (p && typeof p.then === 'function') {
|
|
958
|
+
p.then(function(r) {
|
|
959
|
+
form.loading = false;
|
|
960
|
+
renderResult(r);
|
|
961
|
+
}).catch(function(err) {
|
|
962
|
+
form.loading = false;
|
|
963
|
+
el.insertAdjacentHTML('beforeend',
|
|
964
|
+
'<div style="color:var(--color-error,#f87171);padding:8px;">Error: ' + _escHtml(err.message) + '</div>');
|
|
965
|
+
});
|
|
966
|
+
} else {
|
|
967
|
+
form.loading = false;
|
|
968
|
+
renderResult(p);
|
|
969
|
+
}
|
|
970
|
+
} catch (err) {
|
|
971
|
+
form.loading = false;
|
|
972
|
+
el.insertAdjacentHTML('beforeend',
|
|
973
|
+
'<div style="color:var(--color-error,#f87171);padding:8px;">Error: ' + _escHtml(err.message) + '</div>');
|
|
974
|
+
}
|
|
975
|
+
});
|
|
976
|
+
|
|
977
|
+
el.innerHTML = '';
|
|
978
|
+
el.appendChild(form);
|
|
979
|
+
});
|
|
980
|
+
}
|
|
981
|
+
|
|
982
|
+
function _generateForm(el, method, meta, args, proxy, format, renderResult) {
|
|
983
|
+
_injectFormCSS();
|
|
984
|
+
var schema = meta.inputSchema;
|
|
985
|
+
var props = schema.properties || {};
|
|
986
|
+
var required = schema.required || [];
|
|
987
|
+
var keys = Object.keys(props);
|
|
988
|
+
|
|
989
|
+
var form = document.createElement('form');
|
|
990
|
+
form.className = 'photon-auto-form';
|
|
991
|
+
form.setAttribute('autocomplete', 'off');
|
|
992
|
+
|
|
993
|
+
for (var i = 0; i < keys.length; i++) {
|
|
994
|
+
(function(key) {
|
|
995
|
+
var prop = props[key];
|
|
996
|
+
var isReq = required.indexOf(key) !== -1;
|
|
997
|
+
var type = prop.type || 'string';
|
|
998
|
+
var group = document.createElement('div');
|
|
999
|
+
group.className = 'pf-group';
|
|
1000
|
+
|
|
1001
|
+
var prefilled = args[key] !== undefined ? args[key] : (prop.default !== undefined ? prop.default : '');
|
|
1002
|
+
|
|
1003
|
+
if (type === 'boolean') {
|
|
1004
|
+
group.className += ' pf-check-group';
|
|
1005
|
+
var cb = document.createElement('input');
|
|
1006
|
+
cb.type = 'checkbox';
|
|
1007
|
+
cb.name = key;
|
|
1008
|
+
cb.id = 'pf-' + key;
|
|
1009
|
+
if (prefilled === true || prefilled === 'true') cb.checked = true;
|
|
1010
|
+
var lbl = document.createElement('label');
|
|
1011
|
+
lbl.htmlFor = 'pf-' + key;
|
|
1012
|
+
lbl.textContent = prop.title || key;
|
|
1013
|
+
group.appendChild(cb);
|
|
1014
|
+
group.appendChild(lbl);
|
|
1015
|
+
} else {
|
|
1016
|
+
var lbl = document.createElement('label');
|
|
1017
|
+
lbl.htmlFor = 'pf-' + key;
|
|
1018
|
+
lbl.innerHTML = _escHtml(prop.title || key) + (isReq ? '<span class="pf-req">*</span>' : '');
|
|
1019
|
+
group.appendChild(lbl);
|
|
1020
|
+
|
|
1021
|
+
var input;
|
|
1022
|
+
if (prop.enum && prop.enum.length > 0) {
|
|
1023
|
+
input = document.createElement('select');
|
|
1024
|
+
input.name = key;
|
|
1025
|
+
input.id = 'pf-' + key;
|
|
1026
|
+
var placeholder = document.createElement('option');
|
|
1027
|
+
placeholder.value = '';
|
|
1028
|
+
placeholder.textContent = 'Select...';
|
|
1029
|
+
input.appendChild(placeholder);
|
|
1030
|
+
for (var j = 0; j < prop.enum.length; j++) {
|
|
1031
|
+
var opt = document.createElement('option');
|
|
1032
|
+
opt.value = prop.enum[j];
|
|
1033
|
+
opt.textContent = prop.enum[j];
|
|
1034
|
+
if (String(prefilled) === String(prop.enum[j])) opt.selected = true;
|
|
1035
|
+
input.appendChild(opt);
|
|
1036
|
+
}
|
|
1037
|
+
} else if (type === 'number' || type === 'integer') {
|
|
1038
|
+
input = document.createElement('input');
|
|
1039
|
+
input.type = 'number';
|
|
1040
|
+
input.name = key;
|
|
1041
|
+
input.id = 'pf-' + key;
|
|
1042
|
+
if (prop.minimum !== undefined) input.min = String(prop.minimum);
|
|
1043
|
+
if (prop.maximum !== undefined) input.max = String(prop.maximum);
|
|
1044
|
+
if (type === 'integer') input.step = '1';
|
|
1045
|
+
if (prefilled !== '') input.value = String(prefilled);
|
|
1046
|
+
} else if (prop.format === 'date') {
|
|
1047
|
+
input = document.createElement('input');
|
|
1048
|
+
input.type = 'date';
|
|
1049
|
+
input.name = key;
|
|
1050
|
+
input.id = 'pf-' + key;
|
|
1051
|
+
if (prefilled) input.value = String(prefilled);
|
|
1052
|
+
} else if (prop.maxLength && prop.maxLength > 200) {
|
|
1053
|
+
input = document.createElement('textarea');
|
|
1054
|
+
input.name = key;
|
|
1055
|
+
input.id = 'pf-' + key;
|
|
1056
|
+
input.rows = 4;
|
|
1057
|
+
if (prefilled) input.value = String(prefilled);
|
|
1058
|
+
} else {
|
|
1059
|
+
input = document.createElement('input');
|
|
1060
|
+
input.type = 'text';
|
|
1061
|
+
input.name = key;
|
|
1062
|
+
input.id = 'pf-' + key;
|
|
1063
|
+
if (prefilled !== '') input.value = String(prefilled);
|
|
1064
|
+
}
|
|
1065
|
+
|
|
1066
|
+
if (isReq) input.required = true;
|
|
1067
|
+
if (prop.description) input.placeholder = prop.description;
|
|
1068
|
+
group.appendChild(input);
|
|
1069
|
+
|
|
1070
|
+
if (prop.description) {
|
|
1071
|
+
var desc = document.createElement('div');
|
|
1072
|
+
desc.className = 'pf-desc';
|
|
1073
|
+
desc.textContent = prop.description;
|
|
1074
|
+
group.appendChild(desc);
|
|
1075
|
+
}
|
|
1076
|
+
}
|
|
1077
|
+
|
|
1078
|
+
form.appendChild(group);
|
|
1079
|
+
})(keys[i]);
|
|
1080
|
+
}
|
|
1081
|
+
|
|
1082
|
+
var submitBtn = document.createElement('button');
|
|
1083
|
+
submitBtn.type = 'submit';
|
|
1084
|
+
submitBtn.textContent = 'Run';
|
|
1085
|
+
form.appendChild(submitBtn);
|
|
1086
|
+
|
|
1087
|
+
var resultDiv = document.createElement('div');
|
|
1088
|
+
resultDiv.className = 'pf-result';
|
|
1089
|
+
form.appendChild(resultDiv);
|
|
1090
|
+
|
|
1091
|
+
form.addEventListener('submit', function(e) {
|
|
1092
|
+
e.preventDefault();
|
|
1093
|
+
submitBtn.disabled = true;
|
|
1094
|
+
submitBtn.textContent = 'Running...';
|
|
1095
|
+
|
|
1096
|
+
// Collect form values
|
|
1097
|
+
var formArgs = {};
|
|
1098
|
+
for (var k = 0; k < keys.length; k++) {
|
|
1099
|
+
var key = keys[k];
|
|
1100
|
+
var prop = props[key];
|
|
1101
|
+
var type = prop.type || 'string';
|
|
1102
|
+
var inputEl = form.querySelector('[name="' + key + '"]');
|
|
1103
|
+
if (!inputEl) continue;
|
|
1104
|
+
if (type === 'boolean') {
|
|
1105
|
+
formArgs[key] = inputEl.checked;
|
|
1106
|
+
} else if (type === 'number' || type === 'integer') {
|
|
1107
|
+
var val = inputEl.value;
|
|
1108
|
+
if (val !== '') formArgs[key] = type === 'integer' ? parseInt(val, 10) : parseFloat(val);
|
|
1109
|
+
} else {
|
|
1110
|
+
var val = inputEl.value;
|
|
1111
|
+
if (val !== '') formArgs[key] = val;
|
|
1112
|
+
}
|
|
1113
|
+
}
|
|
1114
|
+
|
|
1115
|
+
try {
|
|
1116
|
+
var p = proxy[method](formArgs);
|
|
1117
|
+
if (p && typeof p.then === 'function') {
|
|
1118
|
+
p.then(function(r) {
|
|
1119
|
+
submitBtn.disabled = false;
|
|
1120
|
+
submitBtn.textContent = 'Run';
|
|
1121
|
+
resultDiv.innerHTML = '';
|
|
1122
|
+
if (format) {
|
|
1123
|
+
window.photon.render(resultDiv, r, format);
|
|
1124
|
+
} else {
|
|
1125
|
+
renderResult(r);
|
|
1126
|
+
}
|
|
1127
|
+
}).catch(function(err) {
|
|
1128
|
+
submitBtn.disabled = false;
|
|
1129
|
+
submitBtn.textContent = 'Run';
|
|
1130
|
+
resultDiv.innerHTML = '<div class="pf-error">Error: ' + _escHtml(err.message) + '</div>';
|
|
1131
|
+
});
|
|
1132
|
+
}
|
|
1133
|
+
} catch (err) {
|
|
1134
|
+
submitBtn.disabled = false;
|
|
1135
|
+
submitBtn.textContent = 'Run';
|
|
1136
|
+
resultDiv.innerHTML = '<div class="pf-error">Error: ' + _escHtml(err.message) + '</div>';
|
|
1137
|
+
}
|
|
1138
|
+
});
|
|
1139
|
+
|
|
1140
|
+
el.innerHTML = '';
|
|
1141
|
+
el.appendChild(form);
|
|
1142
|
+
}
|
|
1143
|
+
|
|
638
1144
|
function _bindElements() {
|
|
639
1145
|
if (!ctx.photon) return;
|
|
640
1146
|
var proxy = window[ctx.photon];
|
|
@@ -736,6 +1242,31 @@ export function generateBridgeScript(context) {
|
|
|
736
1242
|
_originalRender(result);
|
|
737
1243
|
};
|
|
738
1244
|
|
|
1245
|
+
// ── Auto-detect: form vs result ──
|
|
1246
|
+
// data-view="form" forces form, data-view="result" forces invoke
|
|
1247
|
+
// Otherwise: show form if required params are missing from args
|
|
1248
|
+
var viewOverride = el.getAttribute('data-view');
|
|
1249
|
+
var showForm = false;
|
|
1250
|
+
if (viewOverride === 'form') {
|
|
1251
|
+
showForm = true;
|
|
1252
|
+
} else if (viewOverride === 'result') {
|
|
1253
|
+
showForm = false;
|
|
1254
|
+
} else {
|
|
1255
|
+
showForm = _shouldShowForm(meta, args);
|
|
1256
|
+
}
|
|
1257
|
+
|
|
1258
|
+
if (showForm && meta.inputSchema) {
|
|
1259
|
+
// Use rich invoke-form (Lit component) for pure-view form mode.
|
|
1260
|
+
// The form bundle is lazy-loaded on first use — provides custom inputs
|
|
1261
|
+
// (date-picker, segmented-control, etc.) without loading full Beam chrome.
|
|
1262
|
+
if (viewOverride === 'form') {
|
|
1263
|
+
_loadRichForm(el, method, meta, args, proxy, format, renderResult);
|
|
1264
|
+
} else {
|
|
1265
|
+
_generateForm(el, method, meta, args, proxy, format, renderResult);
|
|
1266
|
+
}
|
|
1267
|
+
return; // form handles its own lifecycle
|
|
1268
|
+
}
|
|
1269
|
+
|
|
739
1270
|
// ── Call method and render ──
|
|
740
1271
|
function load() {
|
|
741
1272
|
el.classList.add('photon-loading');
|
|
@@ -810,11 +1341,58 @@ export function generateBridgeScript(context) {
|
|
|
810
1341
|
}
|
|
811
1342
|
}
|
|
812
1343
|
|
|
1344
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
1345
|
+
// VIEWPORT-FILL SCALING (for standalone pure-view pages)
|
|
1346
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
1347
|
+
function _setupViewportScaling() {
|
|
1348
|
+
var container = document.getElementById('pure-view');
|
|
1349
|
+
if (!container) return; // not a standalone pure-view page
|
|
1350
|
+
|
|
1351
|
+
var observer = new ResizeObserver(function() {
|
|
1352
|
+
// Get the rendered content's natural size
|
|
1353
|
+
var content = container.firstElementChild;
|
|
1354
|
+
if (!content) return;
|
|
1355
|
+
|
|
1356
|
+
// Don't scale forms — they should stay at natural size
|
|
1357
|
+
if (content.classList && content.classList.contains('photon-auto-form')) return;
|
|
1358
|
+
|
|
1359
|
+
var viewportH = window.innerHeight;
|
|
1360
|
+
var viewportW = window.innerWidth;
|
|
1361
|
+
var contentH = content.scrollHeight || content.offsetHeight;
|
|
1362
|
+
var contentW = content.scrollWidth || content.offsetWidth;
|
|
1363
|
+
|
|
1364
|
+
if (contentH < 10 || contentW < 10) return; // not yet rendered
|
|
1365
|
+
|
|
1366
|
+
var pad = 32;
|
|
1367
|
+
var zoomH = (viewportH - pad) / contentH;
|
|
1368
|
+
var zoomW = (viewportW - pad) / contentW;
|
|
1369
|
+
var zoom = Math.min(zoomH, zoomW);
|
|
1370
|
+
var clamped = Math.max(0.5, Math.min(3, zoom));
|
|
1371
|
+
|
|
1372
|
+
if (clamped > 1.02 || clamped < 0.95) {
|
|
1373
|
+
container.style.zoom = String(clamped);
|
|
1374
|
+
} else {
|
|
1375
|
+
container.style.zoom = '';
|
|
1376
|
+
}
|
|
1377
|
+
});
|
|
1378
|
+
|
|
1379
|
+
observer.observe(container);
|
|
1380
|
+
window.addEventListener('resize', function() {
|
|
1381
|
+
// Re-trigger observer measurement
|
|
1382
|
+
if (container.firstElementChild) {
|
|
1383
|
+
observer.unobserve(container);
|
|
1384
|
+
observer.observe(container);
|
|
1385
|
+
}
|
|
1386
|
+
});
|
|
1387
|
+
}
|
|
1388
|
+
|
|
813
1389
|
// Only run declarative data binding for .photon.html templates
|
|
814
1390
|
// (signaled by <meta name="photon-template"> injected by custom-ui-renderer)
|
|
815
1391
|
function _maybeBindElements() {
|
|
816
1392
|
if (document.querySelector('meta[name="photon-template"]')) {
|
|
817
1393
|
_bindElements();
|
|
1394
|
+
// Set up viewport scaling after binding (for pure-view standalone pages)
|
|
1395
|
+
_setupViewportScaling();
|
|
818
1396
|
}
|
|
819
1397
|
}
|
|
820
1398
|
|
|
@@ -1 +1 @@
|
|
|
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;IAClD,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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/auto-ui/bridge/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"renderers.d.ts","sourceRoot":"","sources":["../../../src/auto-ui/bridge/renderers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,wBAAgB,uBAAuB,IAAI,MAAM,CAkuChD"}
|