@portel/photon 1.20.1 → 1.21.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/README.md +5 -5
- package/dist/ag-ui/adapter.d.ts.map +1 -1
- package/dist/ag-ui/adapter.js +25 -0
- package/dist/ag-ui/adapter.js.map +1 -1
- package/dist/auto-ui/beam/routes/api-browse.d.ts.map +1 -1
- package/dist/auto-ui/beam/routes/api-browse.js +8 -49
- package/dist/auto-ui/beam/routes/api-browse.js.map +1 -1
- package/dist/auto-ui/beam.d.ts.map +1 -1
- package/dist/auto-ui/beam.js +23 -31
- 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 +107 -11
- package/dist/auto-ui/bridge/index.js.map +1 -1
- package/dist/auto-ui/bridge/renderers.d.ts +14 -0
- package/dist/auto-ui/bridge/renderers.d.ts.map +1 -1
- package/dist/auto-ui/bridge/renderers.js +680 -57
- package/dist/auto-ui/bridge/renderers.js.map +1 -1
- package/dist/auto-ui/frontend/index.html +3 -3
- package/dist/auto-ui/frontend/pure-view.html +19 -19
- package/dist/auto-ui/streamable-http-transport.d.ts.map +1 -1
- package/dist/auto-ui/streamable-http-transport.js +29 -0
- package/dist/auto-ui/streamable-http-transport.js.map +1 -1
- package/dist/auto-ui/ui-resolver.d.ts +25 -0
- package/dist/auto-ui/ui-resolver.d.ts.map +1 -0
- package/dist/auto-ui/ui-resolver.js +95 -0
- package/dist/auto-ui/ui-resolver.js.map +1 -0
- package/dist/beam-form.bundle.js +7 -7
- package/dist/beam-form.bundle.js.map +1 -1
- package/dist/beam.bundle.js +905 -185
- package/dist/beam.bundle.js.map +4 -4
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/build.js +9 -5
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +90 -50
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/publish.d.ts +14 -0
- package/dist/cli/commands/publish.d.ts.map +1 -0
- package/dist/cli/commands/publish.js +126 -0
- package/dist/cli/commands/publish.js.map +1 -0
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +2 -0
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +3 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/context.d.ts +6 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +17 -5
- package/dist/context.js.map +1 -1
- package/dist/daemon/client.d.ts +9 -1
- package/dist/daemon/client.d.ts.map +1 -1
- package/dist/daemon/client.js +54 -1
- package/dist/daemon/client.js.map +1 -1
- package/dist/daemon/manager.d.ts +3 -0
- package/dist/daemon/manager.d.ts.map +1 -1
- package/dist/daemon/manager.js +88 -38
- package/dist/daemon/manager.js.map +1 -1
- package/dist/daemon/ownership.d.ts +12 -0
- package/dist/daemon/ownership.d.ts.map +1 -0
- package/dist/daemon/ownership.js +55 -0
- package/dist/daemon/ownership.js.map +1 -0
- package/dist/daemon/protocol.d.ts +3 -1
- package/dist/daemon/protocol.d.ts.map +1 -1
- package/dist/daemon/protocol.js +14 -2
- package/dist/daemon/protocol.js.map +1 -1
- package/dist/daemon/server.js +549 -83
- package/dist/daemon/server.js.map +1 -1
- package/dist/daemon/session-manager.d.ts +9 -1
- package/dist/daemon/session-manager.d.ts.map +1 -1
- package/dist/daemon/session-manager.js +54 -1
- package/dist/daemon/session-manager.js.map +1 -1
- package/dist/daemon/worker-manager.d.ts +12 -0
- package/dist/daemon/worker-manager.d.ts.map +1 -1
- package/dist/daemon/worker-manager.js +89 -6
- package/dist/daemon/worker-manager.js.map +1 -1
- package/dist/loader.d.ts +3 -9
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +168 -113
- package/dist/loader.js.map +1 -1
- package/dist/photon-cli-runner.d.ts.map +1 -1
- package/dist/photon-cli-runner.js +26 -2
- package/dist/photon-cli-runner.js.map +1 -1
- package/dist/photons/canvas/ui/canvas.photon.html +1493 -0
- package/dist/photons/canvas.photon.d.ts +400 -0
- package/dist/photons/canvas.photon.d.ts.map +1 -0
- package/dist/photons/canvas.photon.js +662 -0
- package/dist/photons/canvas.photon.js.map +1 -0
- package/dist/photons/canvas.photon.ts +814 -0
- package/dist/photons/publish.photon.d.ts +97 -0
- package/dist/photons/publish.photon.d.ts.map +1 -0
- package/dist/photons/publish.photon.js +569 -0
- package/dist/photons/publish.photon.js.map +1 -0
- package/dist/photons/publish.photon.ts +683 -0
- package/dist/photons/ui/canvas.photon.html +624 -0
- package/dist/resource-server.d.ts.map +1 -1
- package/dist/resource-server.js +7 -1
- package/dist/resource-server.js.map +1 -1
- package/dist/shared-utils.d.ts.map +1 -1
- package/dist/shared-utils.js +2 -2
- package/dist/shared-utils.js.map +1 -1
- package/dist/tsx-compiler.d.ts +23 -0
- package/dist/tsx-compiler.d.ts.map +1 -0
- package/dist/tsx-compiler.js +221 -0
- package/dist/tsx-compiler.js.map +1 -0
- package/package.json +7 -7
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared UI asset resolution logic — used by Beam and api-browse routes.
|
|
3
|
+
*
|
|
4
|
+
* Resolves a UI asset ID to a file path, respecting the priority order:
|
|
5
|
+
* .photon.html > .photon.tsx > .photon.md > .html > .tsx
|
|
6
|
+
*/
|
|
7
|
+
import * as path from 'node:path';
|
|
8
|
+
import * as fs from 'node:fs/promises';
|
|
9
|
+
/**
|
|
10
|
+
* Resolve a UI asset by probing candidate extensions in priority order.
|
|
11
|
+
*/
|
|
12
|
+
export async function resolveUIAssetPath(photonDir, photonBaseName, uiId) {
|
|
13
|
+
const uiBase = path.join(photonDir, photonBaseName, 'ui');
|
|
14
|
+
const candidates = [
|
|
15
|
+
{
|
|
16
|
+
path: path.join(uiBase, `${uiId}.photon.html`),
|
|
17
|
+
isPhotonTemplate: true,
|
|
18
|
+
isPhotonMarkdown: false,
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
path: path.join(uiBase, `${uiId}.photon.tsx`),
|
|
22
|
+
isPhotonTemplate: true,
|
|
23
|
+
isPhotonMarkdown: false,
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
path: path.join(uiBase, `${uiId}.photon.md`),
|
|
27
|
+
isPhotonTemplate: false,
|
|
28
|
+
isPhotonMarkdown: true,
|
|
29
|
+
},
|
|
30
|
+
{ path: path.join(uiBase, `${uiId}.html`), isPhotonTemplate: false, isPhotonMarkdown: false },
|
|
31
|
+
{ path: path.join(uiBase, `${uiId}.tsx`), isPhotonTemplate: false, isPhotonMarkdown: false },
|
|
32
|
+
];
|
|
33
|
+
for (const candidate of candidates) {
|
|
34
|
+
try {
|
|
35
|
+
await fs.access(candidate.path);
|
|
36
|
+
return candidate;
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
// try next
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// Default fallback to last candidate (lowest priority)
|
|
43
|
+
return candidates[candidates.length - 1];
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* If a resolved path points to .html, check for higher-priority siblings
|
|
47
|
+
* (.photon.html, .photon.tsx, .photon.md).
|
|
48
|
+
*/
|
|
49
|
+
export async function upgradeToSibling(resolvedPath) {
|
|
50
|
+
if (!resolvedPath.endsWith('.html')) {
|
|
51
|
+
return {
|
|
52
|
+
path: resolvedPath,
|
|
53
|
+
isPhotonTemplate: resolvedPath.endsWith('.photon.html') || resolvedPath.endsWith('.photon.tsx'),
|
|
54
|
+
isPhotonMarkdown: resolvedPath.endsWith('.photon.md'),
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
const siblings = [
|
|
58
|
+
{
|
|
59
|
+
path: resolvedPath.replace(/\.html$/, '.photon.html'),
|
|
60
|
+
isPhotonTemplate: true,
|
|
61
|
+
isPhotonMarkdown: false,
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
path: resolvedPath.replace(/\.html$/, '.photon.tsx'),
|
|
65
|
+
isPhotonTemplate: true,
|
|
66
|
+
isPhotonMarkdown: false,
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
path: resolvedPath.replace(/\.html$/, '.photon.md'),
|
|
70
|
+
isPhotonTemplate: false,
|
|
71
|
+
isPhotonMarkdown: true,
|
|
72
|
+
},
|
|
73
|
+
];
|
|
74
|
+
for (const sibling of siblings) {
|
|
75
|
+
try {
|
|
76
|
+
await fs.access(sibling.path);
|
|
77
|
+
return sibling;
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
// try next
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return { path: resolvedPath, isPhotonTemplate: false, isPhotonMarkdown: false };
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Read a UI file, compiling TSX if needed.
|
|
87
|
+
*/
|
|
88
|
+
export async function readUIContent(filePath) {
|
|
89
|
+
if (filePath.endsWith('.tsx')) {
|
|
90
|
+
const { compileTsxCached } = await import('../tsx-compiler.js');
|
|
91
|
+
return compileTsxCached(filePath);
|
|
92
|
+
}
|
|
93
|
+
return fs.readFile(filePath, 'utf-8');
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=ui-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui-resolver.js","sourceRoot":"","sources":["../../src/auto-ui/ui-resolver.ts"],"names":[],"mappings":"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"}
|
package/dist/beam-form.bundle.js
CHANGED
|
@@ -623,9 +623,9 @@ var theme = i`
|
|
|
623
623
|
--radius-full: 9999px;
|
|
624
624
|
|
|
625
625
|
/* Typography - same for all themes */
|
|
626
|
-
--font-display: '
|
|
627
|
-
--font-sans: '
|
|
628
|
-
--font-mono: 'JetBrains Mono', monospace;
|
|
626
|
+
--font-display: 'Sora', 'Space Grotesk', -apple-system, BlinkMacSystemFont, sans-serif;
|
|
627
|
+
--font-sans: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;
|
|
628
|
+
--font-mono: 'Berkeley Mono', 'JetBrains Mono', 'Fira Code', monospace;
|
|
629
629
|
|
|
630
630
|
/* Type scale */
|
|
631
631
|
--text-3xl: 2rem;
|
|
@@ -652,17 +652,17 @@ var theme = i`
|
|
|
652
652
|
/* Shared Utility Classes */
|
|
653
653
|
.glass {
|
|
654
654
|
background: var(--bg-glass);
|
|
655
|
-
backdrop-filter: blur(16px);
|
|
656
|
-
-webkit-backdrop-filter: blur(16px);
|
|
657
655
|
border: 1px solid var(--border-glass);
|
|
656
|
+
border-top-color: color-mix(in srgb, var(--border-glass) 100%, white 8%);
|
|
657
|
+
border-left-color: color-mix(in srgb, var(--border-glass) 100%, white 5%);
|
|
658
658
|
box-shadow: var(--shadow-md);
|
|
659
659
|
}
|
|
660
660
|
|
|
661
661
|
.glass-panel {
|
|
662
662
|
background: var(--bg-glass-strong);
|
|
663
|
-
backdrop-filter: blur(24px);
|
|
664
|
-
-webkit-backdrop-filter: blur(24px);
|
|
665
663
|
border: 1px solid var(--border-glass);
|
|
664
|
+
border-top-color: color-mix(in srgb, var(--border-glass) 100%, white 8%);
|
|
665
|
+
border-left-color: color-mix(in srgb, var(--border-glass) 100%, white 5%);
|
|
666
666
|
border-radius: var(--radius-md);
|
|
667
667
|
box-shadow: var(--shadow-sm);
|
|
668
668
|
color: inherit;
|