@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.
Files changed (106) hide show
  1. package/README.md +5 -5
  2. package/dist/ag-ui/adapter.d.ts.map +1 -1
  3. package/dist/ag-ui/adapter.js +25 -0
  4. package/dist/ag-ui/adapter.js.map +1 -1
  5. package/dist/auto-ui/beam/routes/api-browse.d.ts.map +1 -1
  6. package/dist/auto-ui/beam/routes/api-browse.js +8 -49
  7. package/dist/auto-ui/beam/routes/api-browse.js.map +1 -1
  8. package/dist/auto-ui/beam.d.ts.map +1 -1
  9. package/dist/auto-ui/beam.js +23 -31
  10. package/dist/auto-ui/beam.js.map +1 -1
  11. package/dist/auto-ui/bridge/index.d.ts.map +1 -1
  12. package/dist/auto-ui/bridge/index.js +107 -11
  13. package/dist/auto-ui/bridge/index.js.map +1 -1
  14. package/dist/auto-ui/bridge/renderers.d.ts +14 -0
  15. package/dist/auto-ui/bridge/renderers.d.ts.map +1 -1
  16. package/dist/auto-ui/bridge/renderers.js +680 -57
  17. package/dist/auto-ui/bridge/renderers.js.map +1 -1
  18. package/dist/auto-ui/frontend/index.html +3 -3
  19. package/dist/auto-ui/frontend/pure-view.html +19 -19
  20. package/dist/auto-ui/streamable-http-transport.d.ts.map +1 -1
  21. package/dist/auto-ui/streamable-http-transport.js +29 -0
  22. package/dist/auto-ui/streamable-http-transport.js.map +1 -1
  23. package/dist/auto-ui/ui-resolver.d.ts +25 -0
  24. package/dist/auto-ui/ui-resolver.d.ts.map +1 -0
  25. package/dist/auto-ui/ui-resolver.js +95 -0
  26. package/dist/auto-ui/ui-resolver.js.map +1 -0
  27. package/dist/beam-form.bundle.js +7 -7
  28. package/dist/beam-form.bundle.js.map +1 -1
  29. package/dist/beam.bundle.js +905 -185
  30. package/dist/beam.bundle.js.map +4 -4
  31. package/dist/cli/commands/build.d.ts.map +1 -1
  32. package/dist/cli/commands/build.js +9 -5
  33. package/dist/cli/commands/build.js.map +1 -1
  34. package/dist/cli/commands/init.d.ts.map +1 -1
  35. package/dist/cli/commands/init.js +90 -50
  36. package/dist/cli/commands/init.js.map +1 -1
  37. package/dist/cli/commands/publish.d.ts +14 -0
  38. package/dist/cli/commands/publish.d.ts.map +1 -0
  39. package/dist/cli/commands/publish.js +126 -0
  40. package/dist/cli/commands/publish.js.map +1 -0
  41. package/dist/cli/commands/run.d.ts.map +1 -1
  42. package/dist/cli/commands/run.js +2 -0
  43. package/dist/cli/commands/run.js.map +1 -1
  44. package/dist/cli/index.d.ts.map +1 -1
  45. package/dist/cli/index.js +3 -0
  46. package/dist/cli/index.js.map +1 -1
  47. package/dist/context.d.ts +6 -0
  48. package/dist/context.d.ts.map +1 -1
  49. package/dist/context.js +17 -5
  50. package/dist/context.js.map +1 -1
  51. package/dist/daemon/client.d.ts +9 -1
  52. package/dist/daemon/client.d.ts.map +1 -1
  53. package/dist/daemon/client.js +54 -1
  54. package/dist/daemon/client.js.map +1 -1
  55. package/dist/daemon/manager.d.ts +3 -0
  56. package/dist/daemon/manager.d.ts.map +1 -1
  57. package/dist/daemon/manager.js +88 -38
  58. package/dist/daemon/manager.js.map +1 -1
  59. package/dist/daemon/ownership.d.ts +12 -0
  60. package/dist/daemon/ownership.d.ts.map +1 -0
  61. package/dist/daemon/ownership.js +55 -0
  62. package/dist/daemon/ownership.js.map +1 -0
  63. package/dist/daemon/protocol.d.ts +3 -1
  64. package/dist/daemon/protocol.d.ts.map +1 -1
  65. package/dist/daemon/protocol.js +14 -2
  66. package/dist/daemon/protocol.js.map +1 -1
  67. package/dist/daemon/server.js +549 -83
  68. package/dist/daemon/server.js.map +1 -1
  69. package/dist/daemon/session-manager.d.ts +9 -1
  70. package/dist/daemon/session-manager.d.ts.map +1 -1
  71. package/dist/daemon/session-manager.js +54 -1
  72. package/dist/daemon/session-manager.js.map +1 -1
  73. package/dist/daemon/worker-manager.d.ts +12 -0
  74. package/dist/daemon/worker-manager.d.ts.map +1 -1
  75. package/dist/daemon/worker-manager.js +89 -6
  76. package/dist/daemon/worker-manager.js.map +1 -1
  77. package/dist/loader.d.ts +3 -9
  78. package/dist/loader.d.ts.map +1 -1
  79. package/dist/loader.js +168 -113
  80. package/dist/loader.js.map +1 -1
  81. package/dist/photon-cli-runner.d.ts.map +1 -1
  82. package/dist/photon-cli-runner.js +26 -2
  83. package/dist/photon-cli-runner.js.map +1 -1
  84. package/dist/photons/canvas/ui/canvas.photon.html +1493 -0
  85. package/dist/photons/canvas.photon.d.ts +400 -0
  86. package/dist/photons/canvas.photon.d.ts.map +1 -0
  87. package/dist/photons/canvas.photon.js +662 -0
  88. package/dist/photons/canvas.photon.js.map +1 -0
  89. package/dist/photons/canvas.photon.ts +814 -0
  90. package/dist/photons/publish.photon.d.ts +97 -0
  91. package/dist/photons/publish.photon.d.ts.map +1 -0
  92. package/dist/photons/publish.photon.js +569 -0
  93. package/dist/photons/publish.photon.js.map +1 -0
  94. package/dist/photons/publish.photon.ts +683 -0
  95. package/dist/photons/ui/canvas.photon.html +624 -0
  96. package/dist/resource-server.d.ts.map +1 -1
  97. package/dist/resource-server.js +7 -1
  98. package/dist/resource-server.js.map +1 -1
  99. package/dist/shared-utils.d.ts.map +1 -1
  100. package/dist/shared-utils.js +2 -2
  101. package/dist/shared-utils.js.map +1 -1
  102. package/dist/tsx-compiler.d.ts +23 -0
  103. package/dist/tsx-compiler.d.ts.map +1 -0
  104. package/dist/tsx-compiler.js +221 -0
  105. package/dist/tsx-compiler.js.map +1 -0
  106. 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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"}
@@ -623,9 +623,9 @@ var theme = i`
623
623
  --radius-full: 9999px;
624
624
 
625
625
  /* Typography - same for all themes */
626
- --font-display: 'Space Grotesk', 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
627
- --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
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;