@almadar/shell-web 0.0.0-stage → 0.1.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 (274) hide show
  1. package/bundling.d.mts +18 -0
  2. package/bundling.mjs +28 -0
  3. package/dist/ArbitraryClassCompiler-Mzabq-UB.d.ts +100 -0
  4. package/dist/AvlGlyph-JKJOAH23.js +6 -0
  5. package/dist/AvlStateMachine-PI4YGREK.js +8 -0
  6. package/dist/AvlTransitionDetail-ZH7V24UG.js +12 -0
  7. package/dist/AvlTransitionExplainer-ZSRT7L6Y.js +13 -0
  8. package/dist/BehaviorValueFrame-6RUJXT4A.js +29 -0
  9. package/dist/BehaviorValueFrame-SSEMEBTG.css +1756 -0
  10. package/dist/BehaviorView-RFEE5J6E.js +10 -0
  11. package/dist/Canvas3DHost-_Y-5uLM_.d.ts +552 -0
  12. package/dist/EventBusProvider-CVwjkV_2.d.ts +284 -0
  13. package/dist/FileTree-BCFnBEuQ.d.ts +254 -0
  14. package/dist/FlowCanvas-3JRMNJLV.css +1756 -0
  15. package/dist/FlowCanvas-STDC4OWK.js +27 -0
  16. package/dist/GameAudioProvider-Cm9BnvmP.d.ts +93 -0
  17. package/dist/KaTeX_AMS-Regular-CYEKBG2K.woff +0 -0
  18. package/dist/KaTeX_AMS-Regular-JKX5W2C4.ttf +0 -0
  19. package/dist/KaTeX_AMS-Regular-U6PRYMIZ.woff2 +0 -0
  20. package/dist/KaTeX_Caligraphic-Bold-5QL5CMTE.woff2 +0 -0
  21. package/dist/KaTeX_Caligraphic-Bold-WZ3QSGD3.woff +0 -0
  22. package/dist/KaTeX_Caligraphic-Bold-ZTS3R3HK.ttf +0 -0
  23. package/dist/KaTeX_Caligraphic-Regular-3LKEU76G.woff +0 -0
  24. package/dist/KaTeX_Caligraphic-Regular-A7XRTZ5Q.ttf +0 -0
  25. package/dist/KaTeX_Caligraphic-Regular-KX5MEWCF.woff2 +0 -0
  26. package/dist/KaTeX_Fraktur-Bold-2QVFK6NQ.woff2 +0 -0
  27. package/dist/KaTeX_Fraktur-Bold-T4SWXBMT.woff +0 -0
  28. package/dist/KaTeX_Fraktur-Bold-WGHVTYOR.ttf +0 -0
  29. package/dist/KaTeX_Fraktur-Regular-2PEIFJSJ.woff2 +0 -0
  30. package/dist/KaTeX_Fraktur-Regular-5U4OPH2X.ttf +0 -0
  31. package/dist/KaTeX_Fraktur-Regular-PQMHCIK6.woff +0 -0
  32. package/dist/KaTeX_Main-Bold-2GA4IZIN.woff +0 -0
  33. package/dist/KaTeX_Main-Bold-W5FBVCZM.ttf +0 -0
  34. package/dist/KaTeX_Main-Bold-YP5VVQRP.woff2 +0 -0
  35. package/dist/KaTeX_Main-BoldItalic-4P4C7HJH.woff +0 -0
  36. package/dist/KaTeX_Main-BoldItalic-N4V3DX7S.woff2 +0 -0
  37. package/dist/KaTeX_Main-BoldItalic-ODMLBJJQ.ttf +0 -0
  38. package/dist/KaTeX_Main-Italic-I43T2HSR.ttf +0 -0
  39. package/dist/KaTeX_Main-Italic-RELBIK7M.woff2 +0 -0
  40. package/dist/KaTeX_Main-Italic-SASNQFN2.woff +0 -0
  41. package/dist/KaTeX_Main-Regular-ARRPAO67.woff2 +0 -0
  42. package/dist/KaTeX_Main-Regular-P5I74A2A.woff +0 -0
  43. package/dist/KaTeX_Main-Regular-W74P5G27.ttf +0 -0
  44. package/dist/KaTeX_Math-BoldItalic-6EBV3DK5.woff +0 -0
  45. package/dist/KaTeX_Math-BoldItalic-K4WTGH3J.woff2 +0 -0
  46. package/dist/KaTeX_Math-BoldItalic-VB447A4D.ttf +0 -0
  47. package/dist/KaTeX_Math-Italic-6KGCHLFN.woff2 +0 -0
  48. package/dist/KaTeX_Math-Italic-KKK3USB2.woff +0 -0
  49. package/dist/KaTeX_Math-Italic-SON4MRCA.ttf +0 -0
  50. package/dist/KaTeX_SansSerif-Bold-RRNVJFFW.woff2 +0 -0
  51. package/dist/KaTeX_SansSerif-Bold-STQ6RXC7.ttf +0 -0
  52. package/dist/KaTeX_SansSerif-Bold-X5M5EMOD.woff +0 -0
  53. package/dist/KaTeX_SansSerif-Italic-HMPFTM52.woff2 +0 -0
  54. package/dist/KaTeX_SansSerif-Italic-PSN4QKYX.woff +0 -0
  55. package/dist/KaTeX_SansSerif-Italic-WTBAZBGY.ttf +0 -0
  56. package/dist/KaTeX_SansSerif-Regular-2TL3USAE.ttf +0 -0
  57. package/dist/KaTeX_SansSerif-Regular-OQCII6EP.woff +0 -0
  58. package/dist/KaTeX_SansSerif-Regular-XIQ62X4E.woff2 +0 -0
  59. package/dist/KaTeX_Script-Regular-72OLXYNA.ttf +0 -0
  60. package/dist/KaTeX_Script-Regular-A5IFOEBS.woff +0 -0
  61. package/dist/KaTeX_Script-Regular-APUWIHLP.woff2 +0 -0
  62. package/dist/KaTeX_Size1-Regular-4HRHTS65.woff +0 -0
  63. package/dist/KaTeX_Size1-Regular-5LRUTBFT.woff2 +0 -0
  64. package/dist/KaTeX_Size1-Regular-7K6AASVL.ttf +0 -0
  65. package/dist/KaTeX_Size2-Regular-222HN3GT.ttf +0 -0
  66. package/dist/KaTeX_Size2-Regular-K5ZHAIS6.woff +0 -0
  67. package/dist/KaTeX_Size2-Regular-LELKET5D.woff2 +0 -0
  68. package/dist/KaTeX_Size3-Regular-TLFPAHDE.woff +0 -0
  69. package/dist/KaTeX_Size3-Regular-UFCO6WCA.ttf +0 -0
  70. package/dist/KaTeX_Size3-Regular-WQRQ47UD.woff2 +0 -0
  71. package/dist/KaTeX_Size4-Regular-7PGNVPQK.ttf +0 -0
  72. package/dist/KaTeX_Size4-Regular-CDMV7U5C.woff2 +0 -0
  73. package/dist/KaTeX_Size4-Regular-PKMWZHNC.woff +0 -0
  74. package/dist/KaTeX_Typewriter-Regular-3F5K6SQ6.ttf +0 -0
  75. package/dist/KaTeX_Typewriter-Regular-MJMFSK64.woff +0 -0
  76. package/dist/KaTeX_Typewriter-Regular-VBYJ4NRC.woff2 +0 -0
  77. package/dist/KernelEngineContext-BOCQoFwk.d.ts +43 -0
  78. package/dist/LayersPanel-BBQ54IVG.js +7 -0
  79. package/dist/ModuleCard-3TT2X7IW.js +7 -0
  80. package/dist/OrbInspector-K6T6O7GI.js +27 -0
  81. package/dist/OrbInspector-MHLJ6OEE.css +1756 -0
  82. package/dist/Select-mDZIwNqN.d.ts +199 -0
  83. package/dist/ServerBridge-Cm1On51b.d.ts +233 -0
  84. package/dist/ThemeContext-DJmO59xd.d.ts +147 -0
  85. package/dist/TraitValueFrame-2PJGLLVI.js +28 -0
  86. package/dist/TraitValueFrame-4G3KOUBR.css +1756 -0
  87. package/dist/UISlotContext-Dl_ewwCI.d.ts +79 -0
  88. package/dist/UISlotRenderer-JKFSX24W.js +27 -0
  89. package/dist/UISlotRenderer-KVFO6J7R.css +1756 -0
  90. package/dist/UserContext-DqWeZkUZ.d.ts +100 -0
  91. package/dist/auth/browser/index.d.ts +2 -0
  92. package/dist/auth/browser/index.js +1 -0
  93. package/dist/auth/react/index.d.ts +49 -0
  94. package/dist/auth/react/index.js +119 -0
  95. package/dist/avl/index.css +1756 -0
  96. package/dist/avl/index.d.ts +2238 -0
  97. package/dist/avl/index.js +2693 -0
  98. package/dist/avl-3d-context-BIRKWpaL.d.ts +204 -0
  99. package/dist/avl-schema-parser-CtJxJ9KU.d.ts +132 -0
  100. package/dist/avl-zoom-state-CKMVuBFg.d.ts +17 -0
  101. package/dist/chunk-2PY54Z44.js +227 -0
  102. package/dist/chunk-2QOH2HWM.js +95 -0
  103. package/dist/chunk-3BBUBJFF.js +339 -0
  104. package/dist/chunk-42FY4RYA.js +191 -0
  105. package/dist/chunk-5QTYQTPS.js +15 -0
  106. package/dist/chunk-6P3MWXYE.js +440 -0
  107. package/dist/chunk-73SRAB4P.js +1053 -0
  108. package/dist/chunk-A2LR6VQQ.js +349 -0
  109. package/dist/chunk-AILY3XPS.js +562 -0
  110. package/dist/chunk-B4BU77LT.js +432 -0
  111. package/dist/chunk-DFNZUYX4.js +378 -0
  112. package/dist/chunk-DJ433ET5.js +1327 -0
  113. package/dist/chunk-DLZF4PVE.js +24 -0
  114. package/dist/chunk-DYEKAA4L.js +787 -0
  115. package/dist/chunk-DZ42OJQC.js +176 -0
  116. package/dist/chunk-EOWMARUB.js +16 -0
  117. package/dist/chunk-EQAMU2ZC.js +14 -0
  118. package/dist/chunk-FAJDTHWC.js +98 -0
  119. package/dist/chunk-FIW6WN23.js +508 -0
  120. package/dist/chunk-FP3WIKTC.js +303 -0
  121. package/dist/chunk-G7DCAZ22.js +19 -0
  122. package/dist/chunk-GAR5TQ5B.js +199 -0
  123. package/dist/chunk-GKIFONTE.js +131 -0
  124. package/dist/chunk-GYTPOFVC.js +47155 -0
  125. package/dist/chunk-KVQS4GXU.js +328 -0
  126. package/dist/chunk-L2DEKY4J.js +97 -0
  127. package/dist/chunk-L677XGY3.js +701 -0
  128. package/dist/chunk-MBQAMMSE.js +11877 -0
  129. package/dist/chunk-P4LNHAFI.js +1051 -0
  130. package/dist/chunk-P4ZFUQFF.js +93 -0
  131. package/dist/chunk-PC7K4SK7.js +1384 -0
  132. package/dist/chunk-R5O5AUPI.js +573 -0
  133. package/dist/chunk-SGM3FASH.js +672 -0
  134. package/dist/chunk-SJGJJKBY.js +502 -0
  135. package/dist/chunk-TESBIVUA.js +11 -0
  136. package/dist/chunk-TZZBINQY.js +82 -0
  137. package/dist/chunk-U6QRZASX.js +280 -0
  138. package/dist/chunk-VFF5OO47.js +319 -0
  139. package/dist/chunk-YDNJLLG6.js +516 -0
  140. package/dist/chunk-YHMRX6YA.js +455 -0
  141. package/dist/chunk-ZO6MXAS3.js +69 -0
  142. package/dist/components/index.css +1756 -0
  143. package/dist/components/index.d.ts +11093 -0
  144. package/dist/components/index.js +1110 -0
  145. package/dist/context/index.d.ts +9 -0
  146. package/dist/context/index.js +7 -0
  147. package/dist/core.d.ts +2523 -0
  148. package/dist/core.js +2 -0
  149. package/dist/design-classes/index.cjs +429 -0
  150. package/dist/design-classes/index.d.cts +165 -0
  151. package/dist/design-classes/index.d.ts +165 -0
  152. package/dist/design-classes/index.js +397 -0
  153. package/dist/emojiItems-QGSNAABW.js +20 -0
  154. package/dist/fx-CmQjnHmT.d.ts +371 -0
  155. package/dist/hooks/index.d.ts +936 -0
  156. package/dist/hooks/index.js +7 -0
  157. package/dist/index.d.ts +486 -0
  158. package/dist/index.js +38 -0
  159. package/dist/katexPlugin-FA7NX4PE.css +1161 -0
  160. package/dist/katexPlugin-NCDKOOQY.js +2 -0
  161. package/dist/kernel-client-ZH4PSMCN.js +367 -0
  162. package/dist/kernel-wire-B4S8pnP3.d.ts +65 -0
  163. package/dist/lib/index.d.ts +602 -0
  164. package/dist/lib/index.js +1288 -0
  165. package/dist/paintDispatch-ChW5mVuK.d.ts +698 -0
  166. package/dist/parseLessonSegments-GpCeMrb2.d.ts +334 -0
  167. package/dist/perf-CKiBKbkw.d.ts +22 -0
  168. package/dist/perf-Dr28-AgT.d.ts +57 -0
  169. package/dist/prism-AIWGN2X5.js +134 -0
  170. package/dist/providers/index.css +1756 -0
  171. package/dist/providers/index.d.ts +340 -0
  172. package/dist/providers/index.js +30 -0
  173. package/dist/renderer/index.d.ts +467 -0
  174. package/dist/renderer/index.js +3 -0
  175. package/dist/runtime/index.css +1756 -0
  176. package/dist/runtime/index.d.ts +440 -0
  177. package/dist/runtime/index.js +31 -0
  178. package/dist/slot-host-CPzrxLo9.d.ts +48 -0
  179. package/dist/ssr/index.cjs +7631 -0
  180. package/dist/ssr/index.d.cts +487 -0
  181. package/dist/ssr/index.d.ts +487 -0
  182. package/dist/ssr/index.js +7599 -0
  183. package/dist/storage/browser/index.d.ts +1 -0
  184. package/dist/storage/browser/index.js +1 -0
  185. package/dist/test-support.d.ts +35 -0
  186. package/dist/test-support.js +114 -0
  187. package/dist/themeTokens-CRd8AEDF.d.ts +125 -0
  188. package/dist/three/index.css +503 -0
  189. package/dist/three/index.d.ts +1185 -0
  190. package/dist/three/index.js +3896 -0
  191. package/dist/useKeyboardRouter-Dsq553Ur.d.ts +42 -0
  192. package/dist/useUISlots-CiobNFGb.d.ts +211 -0
  193. package/dist/verification-C5pTeMJv.d.ts +66 -0
  194. package/dist/verificationRegistry-CabxhfTv.d.ts +122 -0
  195. package/dist/wrapCallbackForEvent-B9QLbhxX.d.ts +19 -0
  196. package/index.css +199 -0
  197. package/package.json +269 -3
  198. package/src/core/locales/ar.json +1263 -0
  199. package/src/core/locales/en.json +1263 -0
  200. package/src/core/locales/index.ts +54 -0
  201. package/src/core/locales/sl.json +1263 -0
  202. package/src/core/tokens/native-tokens.json +369 -0
  203. package/tailwind-compile.cjs +29 -0
  204. package/tailwind-preset.cjs +991 -0
  205. package/themes/_base.css +451 -0
  206. package/themes/_contract.md +307 -0
  207. package/themes/_fonts-kenney.css +11 -0
  208. package/themes/_fonts.css +12 -0
  209. package/themes/_foundation.css +105 -0
  210. package/themes/_head.css +22 -0
  211. package/themes/_presets.css +67 -0
  212. package/themes/almadar-heritage.css +455 -0
  213. package/themes/almadar-website.css +269 -0
  214. package/themes/almadar.css +269 -0
  215. package/themes/aqua.css +455 -0
  216. package/themes/arabesque.css +459 -0
  217. package/themes/art-deco.css +457 -0
  218. package/themes/art-nouveau.css +459 -0
  219. package/themes/atelier.css +463 -0
  220. package/themes/bauhaus.css +461 -0
  221. package/themes/bloomberg-dense.css +463 -0
  222. package/themes/blueprint.css +457 -0
  223. package/themes/clay.css +449 -0
  224. package/themes/comic.css +453 -0
  225. package/themes/constructivist.css +457 -0
  226. package/themes/corporate.css +449 -0
  227. package/themes/cyberpunk.css +453 -0
  228. package/themes/frutiger-aero.css +458 -0
  229. package/themes/game-adventure.css +201 -0
  230. package/themes/game-rpg.css +203 -0
  231. package/themes/game-sci-fi.css +201 -0
  232. package/themes/game-ui-pack.css +200 -0
  233. package/themes/gazette.css +449 -0
  234. package/themes/glass.css +457 -0
  235. package/themes/gothic.css +453 -0
  236. package/themes/index.css +21 -0
  237. package/themes/ink-wash.css +459 -0
  238. package/themes/kawaii.css +459 -0
  239. package/themes/kflow.css +310 -0
  240. package/themes/kiosk.css +449 -0
  241. package/themes/linear-clean.css +463 -0
  242. package/themes/luxury.css +451 -0
  243. package/themes/mac-classic.css +455 -0
  244. package/themes/material.css +463 -0
  245. package/themes/memphis.css +453 -0
  246. package/themes/mid-century.css +455 -0
  247. package/themes/minimalist.css +449 -0
  248. package/themes/mudcloth.css +459 -0
  249. package/themes/nata.css +310 -0
  250. package/themes/neon.css +453 -0
  251. package/themes/neumorphic.css +451 -0
  252. package/themes/newsprint.css +455 -0
  253. package/themes/notion-editorial.css +463 -0
  254. package/themes/orb.css +465 -0
  255. package/themes/pixel.css +449 -0
  256. package/themes/prism.css +309 -0
  257. package/themes/rawi.css +310 -0
  258. package/themes/retro.css +452 -0
  259. package/themes/risograph.css +463 -0
  260. package/themes/scandi.css +469 -0
  261. package/themes/sketch.css +455 -0
  262. package/themes/solarpunk.css +469 -0
  263. package/themes/steampunk.css +451 -0
  264. package/themes/swiss.css +455 -0
  265. package/themes/terminal.css +466 -0
  266. package/themes/trait-wars.css +487 -0
  267. package/themes/ukiyo-e.css +459 -0
  268. package/themes/vaporwave.css +455 -0
  269. package/themes/victorian.css +453 -0
  270. package/themes/wabi-sabi.css +459 -0
  271. package/themes/win95.css +455 -0
  272. package/themes/wireframe.css +439 -0
  273. package/themes/zine.css +455 -0
  274. package/README.md +0 -3
@@ -0,0 +1 @@
1
+ export * from '@almadar/shell-browser/storage';
@@ -0,0 +1 @@
1
+ export * from '@almadar/shell-browser/storage';
@@ -0,0 +1,35 @@
1
+ import { KernelServerClass, KernelModule } from '@almadar/shell-runtime/kernel/wire';
2
+ import { OrbitalSchema, UserContext } from '@almadar/core';
3
+ import { KernelEngineValue } from './providers/index.js';
4
+ import { KernelModule as KernelModule$1 } from './providers/index.js';
5
+ import { EventTransport } from '@almadar/shell-runtime/client/EventTransport';
6
+ import './verification-C5pTeMJv.js';
7
+ import 'react';
8
+
9
+ /**
10
+ * A whole `KernelModule` around a scripted `Server`, for tests that drive the engine without the wasm. Every member a
11
+ * test does not name throws when called, so a double never falls behind the module's surface.
12
+ */
13
+ declare function stubKernelModule(Server: KernelServerClass, overrides?: Partial<Omit<KernelModule, 'Server'>>): KernelModule;
14
+
15
+ declare const KERNEL_AVAILABLE: boolean;
16
+ /** The installed language as the bundle a browser host hands a kernel it opens over a local store. */
17
+ declare const TEST_LANGUAGE: string;
18
+ /** The shared kernel module, loaded once, with the render evaluator installed from it. */
19
+ declare function loadTestKernel(): Promise<KernelModule$1>;
20
+ /** The std mock-seed program as `orb` resolves it from the installed packages, the way a Node host does. */
21
+ declare function loadTestSeedProgram(): Promise<OrbitalSchema>;
22
+ declare const KERNEL_ENGINE: KernelEngineValue;
23
+ declare const ENGINES: ReadonlyArray<readonly [string, KernelEngineValue]>;
24
+ /** A client-build kernel instance of its own, as a browser loads it: nothing has installed language data into it. */
25
+ declare function loadFreshClientKernel(): Promise<KernelModule$1>;
26
+ /** Load the WebAssembly and the adapter chunk before a timing-sensitive test: the first dispatch otherwise waits on both. */
27
+ declare function warmKernel(): Promise<void>;
28
+
29
+ /**
30
+ * The hosted playground's stateless topology: the program is registered once, and every request runs on a fresh
31
+ * session of it (`KernelEngine.fork`) over the kernel's own memory store, the client carrying the circuit state on the leg.
32
+ */
33
+ declare function statelessKernelTransport(schema: OrbitalSchema, user?: () => Promise<UserContext | undefined>): EventTransport;
34
+
35
+ export { ENGINES, KERNEL_AVAILABLE, KERNEL_ENGINE, TEST_LANGUAGE, loadFreshClientKernel, loadTestKernel, loadTestSeedProgram, statelessKernelTransport, stubKernelModule, warmKernel };
@@ -0,0 +1,114 @@
1
+ import { createInProcessTransport, src_exports } from './chunk-6P3MWXYE.js';
2
+ import { openLocalKernel, nativeMemoryPersistence } from './chunk-DYEKAA4L.js';
3
+ import './chunk-G7DCAZ22.js';
4
+ import { execFileSync } from 'child_process';
5
+ import { existsSync, readFileSync } from 'fs';
6
+ import { createRequire } from 'module';
7
+ import { join } from 'path';
8
+ import { pathToFileURL } from 'url';
9
+ import { OrbitalSchemaSchema, installKernelEvaluator } from '@almadar/core';
10
+ import { readLanguageBundle } from '@almadar/core/language-data';
11
+
12
+ // src/test-support/stub-kernel-module.ts
13
+ function stubKernelModule(Server, overrides = {}) {
14
+ const unexpected = (name) => () => {
15
+ throw new Error(`stub kernel module: ${name} was not expected`);
16
+ };
17
+ return {
18
+ Server,
19
+ osGlobMatches: () => false,
20
+ isPublicAddress: () => false,
21
+ osDeferringOps: () => "[]",
22
+ osStreamOps: () => "[]",
23
+ osCompletionEvent: () => "null",
24
+ substrateCompletionEvent: () => "null",
25
+ tabUrlMatches: () => false,
26
+ installLanguage: unexpected("installLanguage"),
27
+ evaluateMany: unexpected("evaluateMany"),
28
+ resolveValues: unexpected("resolveValues"),
29
+ evaluateGuards: unexpected("evaluateGuards"),
30
+ evaluateTraced: unexpected("evaluateTraced"),
31
+ traceEffects: unexpected("traceEffects"),
32
+ mapListenPayload: unexpected("mapListenPayload"),
33
+ scopeRows: unexpected("scopeRows"),
34
+ checkMutationAccess: unexpected("checkMutationAccess"),
35
+ resolveRowBinding: unexpected("resolveRowBinding"),
36
+ ...overrides
37
+ };
38
+ }
39
+ var resolveInstalled = createRequire(import.meta.url).resolve;
40
+ function kernelFiles() {
41
+ const dir = process.env.ALMADAR_KERNEL_DIR;
42
+ if (dir !== void 0 && dir !== "") {
43
+ return { glue: join(dir, "pkg/orbital_wasm.js"), wasm: join(dir, "pkg/orbital_wasm_bg.wasm") };
44
+ }
45
+ return { glue: resolveInstalled("@almadar/kernel"), wasm: resolveInstalled("@almadar/kernel/kernel.wasm") };
46
+ }
47
+ function kernelAvailable() {
48
+ try {
49
+ return existsSync(kernelFiles().glue);
50
+ } catch {
51
+ return false;
52
+ }
53
+ }
54
+ var KERNEL_AVAILABLE = kernelAvailable();
55
+ async function load() {
56
+ const files = kernelFiles();
57
+ const glue = await import(
58
+ /* @vite-ignore */
59
+ pathToFileURL(files.glue).href
60
+ );
61
+ glue.initSync({ module: readFileSync(files.wasm) });
62
+ glue.installLanguage(TEST_LANGUAGE);
63
+ installKernelEvaluator(glue);
64
+ return glue;
65
+ }
66
+ var TEST_LANGUAGE = JSON.stringify(readLanguageBundle(process.cwd()));
67
+ var shared;
68
+ function loadTestKernel() {
69
+ return shared ??= load();
70
+ }
71
+ var WHICH_LINE = /^(\/\S+\.(?:orb|lolo)) \((.+)\)$/;
72
+ function loadTestSeedProgram() {
73
+ const run = (args) => execFileSync("orb", [...args], { cwd: process.cwd(), encoding: "utf8", maxBuffer: 512 * 1024 * 1024 });
74
+ const which = run(["behaviors", "which", "std/behaviors/std-mock-seed"]).trim().split("\n").pop() ?? "";
75
+ const match = WHICH_LINE.exec(which);
76
+ if (match === null) return Promise.reject(new Error(`std/behaviors/std-mock-seed is not installed: ${which}`));
77
+ return Promise.resolve(OrbitalSchemaSchema.parse(JSON.parse(run(["resolve", match[1]]))));
78
+ }
79
+ var KERNEL_ENGINE = { loadModule: () => loadTestKernel(), loadLanguage: () => Promise.resolve(TEST_LANGUAGE), loadSeedProgram: loadTestSeedProgram };
80
+ var ENGINES = KERNEL_AVAILABLE ? [["kernel", KERNEL_ENGINE]] : [];
81
+ async function loadFreshClientKernel() {
82
+ const dir = process.env.ALMADAR_KERNEL_DIR;
83
+ const files = dir !== void 0 && dir !== "" ? { glue: join(dir, "pkg-client/orbital_wasm.js"), wasm: join(dir, "pkg-client/orbital_wasm_bg.wasm") } : { glue: resolveInstalled("@almadar/kernel/client"), wasm: resolveInstalled("@almadar/kernel/client.wasm") };
84
+ const glue = await import(
85
+ /* @vite-ignore */
86
+ `${pathToFileURL(files.glue).href}?fresh=${Math.random()}`
87
+ );
88
+ glue.initSync({ module: readFileSync(files.wasm) });
89
+ installKernelEvaluator(glue);
90
+ return glue;
91
+ }
92
+ async function warmKernel() {
93
+ if (!KERNEL_AVAILABLE) return;
94
+ await KERNEL_ENGINE.loadModule();
95
+ await import('./kernel-client-ZH4PSMCN.js');
96
+ }
97
+
98
+ // src/test-support/stateless-kernel.ts
99
+ function statelessKernelTransport(schema, user = async () => void 0) {
100
+ let template;
101
+ return createInProcessTransport(async (orbital, request) => {
102
+ const viewer = await user();
103
+ template ??= loadTestKernel().then((kernel) => openLocalKernel({ kernel, language: TEST_LANGUAGE, schema, persistence: nativeMemoryPersistence(kernel) }));
104
+ const engine = (await template).fork();
105
+ try {
106
+ engine.seedRuntimeMock(viewer?.id);
107
+ return await (0, src_exports.evaluateOnKernel)({ engine, orbital }, request, viewer, request.locale);
108
+ } finally {
109
+ engine.dispose();
110
+ }
111
+ }, { carriesCircuitState: true });
112
+ }
113
+
114
+ export { ENGINES, KERNEL_AVAILABLE, KERNEL_ENGINE, TEST_LANGUAGE, loadFreshClientKernel, loadTestKernel, loadTestSeedProgram, statelessKernelTransport, stubKernelModule, warmKernel };
@@ -0,0 +1,125 @@
1
+ import { ThemeRef, ThemeDefinition, ThemeTokens, ThemeVariant, DensityTokens, DiagramTokens, ElevationTokens, GeometryTokens, IconographyTokens, MotionDurationKey, MotionEasingKey, MotionIntentMap, MotionShapeTokens, SceneTokens, SurfaceTokens, TypeScaleTokens, TypeIntentMap, TypeSizeKey, EnterAnimation } from '@almadar/core';
2
+
3
+ /**
4
+ * themeTokens — runtime mirror of the orbital compiler's theme codegen.
5
+ *
6
+ * The compile path (orbital-rust/crates/orbital-shell-typescript/src/codegen/theme.rs)
7
+ * reads `OrbitalDefinition.theme.tokens` and emits CSS custom-property
8
+ * declarations into a `[data-theme="<name>-<mode>"]` block. The runtime
9
+ * does not parse compiled CSS — it reads the same `tokens` object directly
10
+ * and produces the same `{ '--color-primary': '…', '--radius-md': '…' }` map
11
+ * that the compiler emits.
12
+ *
13
+ * Keeping the two paths byte-identical at the variable level is the contract:
14
+ * editing tokens via the Studio Design System tab must produce the exact
15
+ * same rendered result as editing them in source and running `orbital
16
+ * compile`. The mapping rules here mirror `generate_tokens_css` /
17
+ * `generate_tokens_css_dark` (theme.rs:122–351).
18
+ *
19
+ * Compile vs runtime difference (intentional):
20
+ * - Compile emits the FULL set: schema overrides on top of defaults. This is
21
+ * needed because the compiled CSS replaces the theme entirely.
22
+ * - Runtime emits ONLY the keys present in `tokens` (and `variants.dark`).
23
+ * Missing keys cascade from the parent `[data-theme]` rule on the document
24
+ * element. The provider scopes overrides to an orbital subtree without
25
+ * shadowing inherited defaults.
26
+ *
27
+ * The per-axis var tables below (`DENSITY_SPACING_VARS`, `TYPE_INTENT_VARS`, …)
28
+ * are the ONE mapping between a typed-axis field and its CSS variable name.
29
+ * `themeTokensToCssVars` reads them forward (token → CSS); `almadar-core`'s
30
+ * one-time `scripts/migrate-css-themes.ts` reads them in reverse (CSS →
31
+ * token) to build `packages/almadar-core/themes/*.json` from the checked-in
32
+ * preset CSS — see that script for the inverse direction.
33
+ *
34
+ * @packageDocumentation
35
+ */
36
+
37
+ /** Resolved color mode. Mirrors `ThemeContext.resolvedMode`. */
38
+ type ThemeMode = 'light' | 'dark';
39
+ /** The keys of `T` whose value is a plain (optional) string — excludes
40
+ * nested-object fields like `DensityTokens['spacing']` or
41
+ * `TypeScaleTokens['scale']`, which are never single CSS values. */
42
+ type StringValueKey<T> = {
43
+ [K in keyof T]-?: T[K] extends string | undefined ? K : never;
44
+ }[keyof T] & string;
45
+ /** One flat scalar field on an axis object and the CSS var name it maps to. */
46
+ interface FlatVarEntry<T> {
47
+ readonly cssVar: string;
48
+ readonly key: StringValueKey<T>;
49
+ }
50
+ /** Density axis — spacing scale steps (`density.spacing.space<N>` → `--space-<N>`). */
51
+ declare const DENSITY_SPACING_VARS: ReadonlyArray<FlatVarEntry<NonNullable<DensityTokens['spacing']>>>;
52
+ /** Density axis — per-element heights + paddings. */
53
+ declare const DENSITY_ELEMENT_VARS: ReadonlyArray<FlatVarEntry<DensityTokens>>;
54
+ /** Type axis — family triplet. */
55
+ declare const TYPE_FAMILY_VARS: ReadonlyArray<FlatVarEntry<TypeScaleTokens>>;
56
+ /** Type axis — heading voice (weight/case/tracking/style/shadow of every heading). */
57
+ declare const TYPE_HEADING_VARS: ReadonlyArray<FlatVarEntry<TypeScaleTokens>>;
58
+ /** Type axis — size scale keys, ordered exactly as emitted. Each pairs `--text-<k>` / `--leading-<k>`. */
59
+ declare const TYPE_SIZE_KEYS: ReadonlyArray<TypeSizeKey>;
60
+ /** Type axis — intent names, ordered exactly as emitted. Each is 3 vars: `-size` / `-weight` / `-leading`. */
61
+ declare const TYPE_INTENT_VARS: ReadonlyArray<{
62
+ key: keyof TypeIntentMap & string;
63
+ cssName: string;
64
+ }>;
65
+ /** Motion axis — duration palette keys, ordered exactly as emitted. */
66
+ declare const MOTION_DURATION_KEYS: ReadonlyArray<MotionDurationKey>;
67
+ /** Motion axis — easing palette keys, ordered exactly as emitted. */
68
+ declare const MOTION_EASING_KEYS: ReadonlyArray<MotionEasingKey>;
69
+ /** Motion axis — intent names, ordered exactly as emitted. Each is 2 vars: `-duration` / `-easing`. */
70
+ declare const MOTION_INTENT_VARS: ReadonlyArray<{
71
+ key: keyof MotionIntentMap & string;
72
+ cssName: string;
73
+ }>;
74
+ /** Motion axis — per-surface shapes (the enter-from / exit-to transform endpoints). */
75
+ declare const MOTION_SHAPE_VARS: ReadonlyArray<FlatVarEntry<MotionShapeTokens>>;
76
+ /** Iconography axis — flat fields. */
77
+ declare const ICONOGRAPHY_VARS: ReadonlyArray<FlatVarEntry<IconographyTokens>>;
78
+ /** Elevation axis — flat fields. */
79
+ declare const ELEVATION_VARS: ReadonlyArray<FlatVarEntry<ElevationTokens>>;
80
+ /** Geometry axis — flat fields. */
81
+ declare const GEOMETRY_VARS: ReadonlyArray<FlatVarEntry<GeometryTokens>>;
82
+ /** Surface axis — panel/page material. */
83
+ declare const SURFACE_VARS: ReadonlyArray<FlatVarEntry<SurfaceTokens>>;
84
+ /** Diagram axis — how marks are drawn on every drawing surface. */
85
+ declare const DIAGRAM_VARS: ReadonlyArray<FlatVarEntry<DiagramTokens>>;
86
+ /** Scene axis — 3D material and lighting. */
87
+ declare const SCENE_VARS: ReadonlyArray<FlatVarEntry<SceneTokens>>;
88
+ /** Legacy free-form map prefixes (`ThemeTokens.colors`/`radii`/`spacing`/`shadows`). `typography` has no prefix — see below. */
89
+ declare const LEGACY_PREFIXES: {
90
+ readonly colors: "--color-";
91
+ readonly radii: "--radius-";
92
+ readonly spacing: "--space-";
93
+ readonly shadows: "--shadow-";
94
+ };
95
+ /**
96
+ * Convert `ThemeTokens` (+ optional dark variant) into a CSS custom-property
97
+ * map keyed by variable name (e.g. `--color-primary`).
98
+ *
99
+ * Mapping rules (mirror theme.rs):
100
+ * - `tokens.colors.<k>` → `--color-<k>`
101
+ * - `tokens.radii.<k>` → `--radius-<k>`
102
+ * - `tokens.spacing.<k>` → `--space-<k>`
103
+ * - `tokens.typography.<k>` → `--<k>` (keys already include their `font-`/
104
+ * `letter-`/`line-` prefix)
105
+ * - `tokens.shadows.<k>` → `--shadow-<k>` (schema key has no prefix)
106
+ *
107
+ * In `'dark'` mode, the `darkVariant` overrides are merged on top of the
108
+ * base tokens per category — same precedence the Rust compiler uses
109
+ * (`generate_tokens_css_dark`). Categories not present in `darkVariant` fall
110
+ * back to the base tokens.
111
+ */
112
+ declare function themeTokensToCssVars(tokens: ThemeTokens, mode?: ThemeMode, darkVariant?: ThemeVariant): Record<string, string>;
113
+ /** The keyframe name an entry keyword plays (`none` stays `none`). */
114
+ declare function enterKeyframe(enter: EnterAnimation): string;
115
+ /**
116
+ * `ThemeRef` is `ThemeDefinition | string`. When it's a string, it's an
117
+ * unresolved import reference (e.g. `"Ocean.theme"`) that should have been
118
+ * inlined by the compiler's import phase before runtime. If we still see a
119
+ * string here, the upstream resolution path didn't run — return `undefined`
120
+ * rather than guess. `OrbitalThemeProvider` falls through to passthrough.
121
+ */
122
+ declare function resolveThemeForRuntime(theme: ThemeRef | undefined): ThemeDefinition | undefined;
123
+
124
+ export { DENSITY_ELEMENT_VARS as D, ELEVATION_VARS as E, GEOMETRY_VARS as G, ICONOGRAPHY_VARS as I, LEGACY_PREFIXES as L, MOTION_DURATION_KEYS as M, SCENE_VARS as S, DENSITY_SPACING_VARS as a, DIAGRAM_VARS as b, MOTION_EASING_KEYS as c, MOTION_INTENT_VARS as d, MOTION_SHAPE_VARS as e, SURFACE_VARS as f, TYPE_FAMILY_VARS as h, TYPE_HEADING_VARS as i, TYPE_INTENT_VARS as j, TYPE_SIZE_KEYS as k, enterKeyframe as l, resolveThemeForRuntime as r, themeTokensToCssVars as t };
125
+ export type { FlatVarEntry as F, ThemeMode as T, StringValueKey as g };