@plures/praxis 0.2.1 → 1.0.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 (486) hide show
  1. package/README.md +188 -61
  2. package/core/codegen/docs-generator.ts +808 -0
  3. package/core/codegen/index.ts +27 -0
  4. package/core/codegen/ts-generator.ts +15 -0
  5. package/core/db-adapter/index.ts +52 -0
  6. package/core/db-adapter/sync-engine.ts +450 -0
  7. package/core/logic-engine/engine.ts +12 -0
  8. package/core/logic-engine/index.ts +16 -0
  9. package/core/logic-engine/protocol.ts +16 -0
  10. package/core/logic-engine/psf-adapter.ts +269 -0
  11. package/core/logic-engine/rules.ts +16 -0
  12. package/core/schema-engine/compiler.ts +431 -0
  13. package/core/schema-engine/generator.ts +635 -0
  14. package/core/schema-engine/index.ts +18 -0
  15. package/core/schema-engine/psf.ts +664 -0
  16. package/core/schema-engine/types.ts +63 -0
  17. package/core/schema-engine/validator.ts +541 -0
  18. package/dist/core/codegen/docs-generator.d.ts +123 -0
  19. package/dist/core/codegen/docs-generator.d.ts.map +1 -0
  20. package/dist/core/codegen/docs-generator.js +674 -0
  21. package/dist/core/codegen/docs-generator.js.map +1 -0
  22. package/dist/core/codegen/index.d.ts +11 -0
  23. package/dist/core/codegen/index.d.ts.map +1 -0
  24. package/dist/core/codegen/index.js +13 -0
  25. package/dist/core/codegen/index.js.map +1 -0
  26. package/dist/core/codegen/ts-generator.d.ts +8 -0
  27. package/dist/core/codegen/ts-generator.d.ts.map +1 -0
  28. package/dist/core/codegen/ts-generator.js +8 -0
  29. package/dist/core/codegen/ts-generator.js.map +1 -0
  30. package/dist/core/db-adapter/index.d.ts +18 -0
  31. package/dist/core/db-adapter/index.d.ts.map +1 -0
  32. package/dist/core/db-adapter/index.js +23 -0
  33. package/dist/core/db-adapter/index.js.map +1 -0
  34. package/dist/core/db-adapter/sync-engine.d.ts +180 -0
  35. package/dist/core/db-adapter/sync-engine.d.ts.map +1 -0
  36. package/dist/core/db-adapter/sync-engine.js +342 -0
  37. package/dist/core/db-adapter/sync-engine.js.map +1 -0
  38. package/dist/core/logic-engine/engine.d.ts +8 -0
  39. package/dist/core/logic-engine/engine.d.ts.map +1 -0
  40. package/dist/core/logic-engine/engine.js +8 -0
  41. package/dist/core/logic-engine/engine.js.map +1 -0
  42. package/dist/core/logic-engine/index.d.ts +16 -0
  43. package/dist/core/logic-engine/index.d.ts.map +1 -0
  44. package/dist/core/logic-engine/index.js +16 -0
  45. package/dist/core/logic-engine/index.js.map +1 -0
  46. package/dist/core/logic-engine/protocol.d.ts +7 -0
  47. package/dist/core/logic-engine/protocol.d.ts.map +1 -0
  48. package/dist/core/logic-engine/protocol.js +7 -0
  49. package/dist/core/logic-engine/protocol.js.map +1 -0
  50. package/dist/core/logic-engine/psf-adapter.d.ts +88 -0
  51. package/dist/core/logic-engine/psf-adapter.d.ts.map +1 -0
  52. package/dist/core/logic-engine/psf-adapter.js +207 -0
  53. package/dist/core/logic-engine/psf-adapter.js.map +1 -0
  54. package/dist/core/logic-engine/rules.d.ts +7 -0
  55. package/dist/core/logic-engine/rules.d.ts.map +1 -0
  56. package/dist/core/logic-engine/rules.js +7 -0
  57. package/dist/core/logic-engine/rules.js.map +1 -0
  58. package/dist/core/schema-engine/compiler.d.ts +198 -0
  59. package/dist/core/schema-engine/compiler.d.ts.map +1 -0
  60. package/dist/core/schema-engine/compiler.js +262 -0
  61. package/dist/core/schema-engine/compiler.js.map +1 -0
  62. package/dist/core/schema-engine/generator.d.ts +115 -0
  63. package/dist/core/schema-engine/generator.d.ts.map +1 -0
  64. package/dist/core/schema-engine/generator.js +506 -0
  65. package/dist/core/schema-engine/generator.js.map +1 -0
  66. package/dist/core/schema-engine/index.d.ts +18 -0
  67. package/dist/core/schema-engine/index.d.ts.map +1 -0
  68. package/dist/core/schema-engine/index.js +18 -0
  69. package/dist/core/schema-engine/index.js.map +1 -0
  70. package/dist/core/schema-engine/psf.d.ts +612 -0
  71. package/dist/core/schema-engine/psf.d.ts.map +1 -0
  72. package/dist/core/schema-engine/psf.js +45 -0
  73. package/dist/core/schema-engine/psf.js.map +1 -0
  74. package/dist/core/schema-engine/types.d.ts +10 -0
  75. package/dist/core/schema-engine/types.d.ts.map +1 -0
  76. package/dist/core/schema-engine/types.js +7 -0
  77. package/dist/core/schema-engine/types.js.map +1 -0
  78. package/dist/core/schema-engine/validator.d.ts +140 -0
  79. package/dist/core/schema-engine/validator.d.ts.map +1 -0
  80. package/dist/core/schema-engine/validator.js +407 -0
  81. package/dist/core/schema-engine/validator.js.map +1 -0
  82. package/dist/src/adapters/cli.d.ts.map +1 -0
  83. package/dist/src/adapters/cli.js.map +1 -0
  84. package/dist/src/cli/commands/auth.d.ts.map +1 -0
  85. package/dist/src/cli/commands/auth.js.map +1 -0
  86. package/dist/src/cli/commands/build.d.ts +23 -0
  87. package/dist/src/cli/commands/build.d.ts.map +1 -0
  88. package/dist/src/cli/commands/build.js +162 -0
  89. package/dist/src/cli/commands/build.js.map +1 -0
  90. package/dist/src/cli/commands/canvas.d.ts +23 -0
  91. package/dist/src/cli/commands/canvas.d.ts.map +1 -0
  92. package/dist/src/cli/commands/canvas.js +215 -0
  93. package/dist/src/cli/commands/canvas.js.map +1 -0
  94. package/dist/src/cli/commands/cloud.d.ts.map +1 -0
  95. package/dist/src/cli/commands/cloud.js.map +1 -0
  96. package/dist/src/cli/commands/create.d.ts +21 -0
  97. package/dist/src/cli/commands/create.d.ts.map +1 -0
  98. package/dist/src/cli/commands/create.js +621 -0
  99. package/dist/src/cli/commands/create.js.map +1 -0
  100. package/dist/src/cli/commands/dev.d.ts +21 -0
  101. package/dist/src/cli/commands/dev.d.ts.map +1 -0
  102. package/dist/src/cli/commands/dev.js +71 -0
  103. package/dist/src/cli/commands/dev.js.map +1 -0
  104. package/dist/src/cli/commands/generate.d.ts.map +1 -0
  105. package/dist/src/cli/commands/generate.js.map +1 -0
  106. package/dist/src/cli/commands/orchestrate.d.ts +44 -0
  107. package/dist/src/cli/commands/orchestrate.d.ts.map +1 -0
  108. package/dist/src/cli/commands/orchestrate.js +150 -0
  109. package/dist/src/cli/commands/orchestrate.js.map +1 -0
  110. package/dist/{cli → src/cli}/index.d.ts.map +1 -1
  111. package/dist/{cli → src/cli}/index.js +53 -21
  112. package/dist/src/cli/index.js.map +1 -0
  113. package/dist/src/cloud/auth.d.ts.map +1 -0
  114. package/dist/src/cloud/auth.js.map +1 -0
  115. package/dist/src/cloud/billing.d.ts.map +1 -0
  116. package/dist/src/cloud/billing.js.map +1 -0
  117. package/dist/src/cloud/client.d.ts.map +1 -0
  118. package/dist/src/cloud/client.js.map +1 -0
  119. package/dist/src/cloud/index.d.ts.map +1 -0
  120. package/dist/src/cloud/index.js.map +1 -0
  121. package/dist/src/cloud/marketplace.d.ts.map +1 -0
  122. package/dist/src/cloud/marketplace.js.map +1 -0
  123. package/dist/src/cloud/provisioning.d.ts.map +1 -0
  124. package/dist/src/cloud/provisioning.js.map +1 -0
  125. package/dist/src/cloud/relay/endpoints.d.ts.map +1 -0
  126. package/dist/src/cloud/relay/endpoints.js.map +1 -0
  127. package/dist/src/cloud/relay/health/index.d.ts.map +1 -0
  128. package/dist/src/cloud/relay/health/index.js.map +1 -0
  129. package/dist/src/cloud/relay/stats/index.d.ts.map +1 -0
  130. package/dist/src/cloud/relay/stats/index.js.map +1 -0
  131. package/dist/src/cloud/relay/sync/index.d.ts.map +1 -0
  132. package/dist/src/cloud/relay/sync/index.js.map +1 -0
  133. package/dist/src/cloud/relay/usage/index.d.ts.map +1 -0
  134. package/dist/src/cloud/relay/usage/index.js.map +1 -0
  135. package/dist/src/cloud/sponsors.d.ts.map +1 -0
  136. package/dist/src/cloud/sponsors.js.map +1 -0
  137. package/dist/src/cloud/types.d.ts.map +1 -0
  138. package/dist/src/cloud/types.js.map +1 -0
  139. package/dist/src/components/index.d.ts.map +1 -0
  140. package/dist/src/components/index.js.map +1 -0
  141. package/dist/src/core/actors.d.ts.map +1 -0
  142. package/dist/src/core/actors.js.map +1 -0
  143. package/dist/src/core/component/generator.d.ts.map +1 -0
  144. package/dist/{core → src/core}/component/generator.js +45 -3
  145. package/dist/src/core/component/generator.js.map +1 -0
  146. package/dist/src/core/engine.d.ts.map +1 -0
  147. package/dist/src/core/engine.js.map +1 -0
  148. package/dist/src/core/introspection.d.ts.map +1 -0
  149. package/dist/src/core/introspection.js.map +1 -0
  150. package/dist/src/core/logic/generator.d.ts.map +1 -0
  151. package/dist/{core → src/core}/logic/generator.js +35 -4
  152. package/dist/src/core/logic/generator.js.map +1 -0
  153. package/dist/src/core/pluresdb/adapter.d.ts +72 -0
  154. package/dist/src/core/pluresdb/adapter.d.ts.map +1 -0
  155. package/dist/src/core/pluresdb/adapter.js +73 -0
  156. package/dist/src/core/pluresdb/adapter.js.map +1 -0
  157. package/dist/src/core/pluresdb/generator.d.ts.map +1 -0
  158. package/dist/{core → src/core}/pluresdb/generator.js +33 -4
  159. package/dist/src/core/pluresdb/generator.js.map +1 -0
  160. package/dist/src/core/pluresdb/index.d.ts +15 -0
  161. package/dist/src/core/pluresdb/index.d.ts.map +1 -0
  162. package/dist/src/core/pluresdb/index.js +11 -0
  163. package/dist/src/core/pluresdb/index.js.map +1 -0
  164. package/dist/src/core/pluresdb/schema-registry.d.ts +104 -0
  165. package/dist/src/core/pluresdb/schema-registry.d.ts.map +1 -0
  166. package/dist/src/core/pluresdb/schema-registry.js +130 -0
  167. package/dist/src/core/pluresdb/schema-registry.js.map +1 -0
  168. package/dist/src/core/pluresdb/store.d.ts +199 -0
  169. package/dist/src/core/pluresdb/store.d.ts.map +1 -0
  170. package/dist/src/core/pluresdb/store.js +344 -0
  171. package/dist/src/core/pluresdb/store.js.map +1 -0
  172. package/dist/src/core/protocol.d.ts.map +1 -0
  173. package/dist/src/core/protocol.js.map +1 -0
  174. package/dist/src/core/rules.d.ts.map +1 -0
  175. package/dist/src/core/rules.js.map +1 -0
  176. package/dist/src/core/schema/loader.d.ts.map +1 -0
  177. package/dist/src/core/schema/loader.js.map +1 -0
  178. package/dist/src/core/schema/normalize.d.ts.map +1 -0
  179. package/dist/src/core/schema/normalize.js.map +1 -0
  180. package/dist/src/core/schema/types.d.ts.map +1 -0
  181. package/dist/src/core/schema/types.js.map +1 -0
  182. package/dist/src/dsl/index.d.ts.map +1 -0
  183. package/dist/src/dsl/index.js.map +1 -0
  184. package/dist/src/dsl.d.ts.map +1 -0
  185. package/dist/src/dsl.js.map +1 -0
  186. package/dist/src/examples/advanced-todo/index.d.ts.map +1 -0
  187. package/dist/src/examples/advanced-todo/index.js.map +1 -0
  188. package/dist/src/examples/auth-basic/index.d.ts.map +1 -0
  189. package/dist/src/examples/auth-basic/index.js.map +1 -0
  190. package/dist/src/examples/cart/index.d.ts.map +1 -0
  191. package/dist/src/examples/cart/index.js.map +1 -0
  192. package/dist/src/examples/hero-ecommerce/index.d.ts.map +1 -0
  193. package/dist/src/examples/hero-ecommerce/index.js.map +1 -0
  194. package/dist/src/examples/svelte-counter/index.d.ts.map +1 -0
  195. package/dist/src/examples/svelte-counter/index.js.map +1 -0
  196. package/dist/src/flows.d.ts.map +1 -0
  197. package/dist/src/flows.js.map +1 -0
  198. package/dist/{index.d.ts → src/index.d.ts} +12 -2
  199. package/dist/src/index.d.ts.map +1 -0
  200. package/dist/{index.js → src/index.js} +6 -1
  201. package/dist/src/index.js.map +1 -0
  202. package/dist/src/integrations/code-canvas.d.ts +265 -0
  203. package/dist/src/integrations/code-canvas.d.ts.map +1 -0
  204. package/dist/src/integrations/code-canvas.js +451 -0
  205. package/dist/src/integrations/code-canvas.js.map +1 -0
  206. package/dist/src/integrations/pluresdb.d.ts +117 -0
  207. package/dist/src/integrations/pluresdb.d.ts.map +1 -0
  208. package/dist/src/integrations/pluresdb.js +117 -0
  209. package/dist/src/integrations/pluresdb.js.map +1 -0
  210. package/dist/src/integrations/state-docs.d.ts +191 -0
  211. package/dist/src/integrations/state-docs.d.ts.map +1 -0
  212. package/dist/src/integrations/state-docs.js +515 -0
  213. package/dist/src/integrations/state-docs.js.map +1 -0
  214. package/dist/src/integrations/svelte.d.ts.map +1 -0
  215. package/dist/src/integrations/svelte.js.map +1 -0
  216. package/dist/src/integrations/tauri.d.ts +360 -0
  217. package/dist/src/integrations/tauri.d.ts.map +1 -0
  218. package/dist/src/integrations/tauri.js +278 -0
  219. package/dist/src/integrations/tauri.js.map +1 -0
  220. package/dist/src/integrations/unum.d.ts +159 -0
  221. package/dist/src/integrations/unum.d.ts.map +1 -0
  222. package/dist/src/integrations/unum.js +240 -0
  223. package/dist/src/integrations/unum.js.map +1 -0
  224. package/dist/src/registry.d.ts.map +1 -0
  225. package/dist/src/registry.js.map +1 -0
  226. package/dist/{runtime → src/runtime}/terminal-adapter.d.ts +58 -7
  227. package/dist/src/runtime/terminal-adapter.d.ts.map +1 -0
  228. package/dist/src/runtime/terminal-adapter.js +237 -0
  229. package/dist/src/runtime/terminal-adapter.js.map +1 -0
  230. package/dist/src/step.d.ts.map +1 -0
  231. package/dist/src/step.js.map +1 -0
  232. package/dist/src/types.d.ts.map +1 -0
  233. package/dist/{cloud → src}/types.js.map +1 -1
  234. package/dist/tools/cli/commands/index.d.ts +7 -0
  235. package/dist/tools/cli/commands/index.d.ts.map +1 -0
  236. package/dist/tools/cli/commands/index.js +7 -0
  237. package/dist/tools/cli/commands/index.js.map +1 -0
  238. package/dist/tools/cli/index.d.ts +8 -0
  239. package/dist/tools/cli/index.d.ts.map +1 -0
  240. package/dist/tools/cli/index.js +9 -0
  241. package/dist/tools/cli/index.js.map +1 -0
  242. package/dist/tools/watcher/index.d.ts +105 -0
  243. package/dist/tools/watcher/index.d.ts.map +1 -0
  244. package/dist/tools/watcher/index.js +213 -0
  245. package/dist/tools/watcher/index.js.map +1 -0
  246. package/dist/ui/canvas/canvas-projection.d.ts +78 -0
  247. package/dist/ui/canvas/canvas-projection.d.ts.map +1 -0
  248. package/dist/ui/canvas/canvas-projection.js +416 -0
  249. package/dist/ui/canvas/canvas-projection.js.map +1 -0
  250. package/dist/ui/canvas/canvas-state.d.ts +200 -0
  251. package/dist/ui/canvas/canvas-state.d.ts.map +1 -0
  252. package/dist/ui/canvas/canvas-state.js +464 -0
  253. package/dist/ui/canvas/canvas-state.js.map +1 -0
  254. package/dist/ui/canvas/components/index.d.ts +95 -0
  255. package/dist/ui/canvas/components/index.d.ts.map +1 -0
  256. package/dist/ui/canvas/components/index.js +19 -0
  257. package/dist/ui/canvas/components/index.js.map +1 -0
  258. package/dist/ui/canvas/index.d.ts +32 -0
  259. package/dist/ui/canvas/index.d.ts.map +1 -0
  260. package/dist/ui/canvas/index.js +32 -0
  261. package/dist/ui/canvas/index.js.map +1 -0
  262. package/dist/ui/svelte-generator/index.d.ts +9 -0
  263. package/dist/ui/svelte-generator/index.d.ts.map +1 -0
  264. package/dist/ui/svelte-generator/index.js +11 -0
  265. package/dist/ui/svelte-generator/index.js.map +1 -0
  266. package/dist/ui/svelte-generator/psf-generator.d.ts +128 -0
  267. package/dist/ui/svelte-generator/psf-generator.d.ts.map +1 -0
  268. package/dist/ui/svelte-generator/psf-generator.js +506 -0
  269. package/dist/ui/svelte-generator/psf-generator.js.map +1 -0
  270. package/docs/README.md +155 -0
  271. package/docs/core/building-extensions.md +553 -0
  272. package/docs/core/cli-usage.md +498 -0
  273. package/docs/core/code-canvas-sync.md +468 -0
  274. package/docs/core/logic-engine.md +566 -0
  275. package/docs/core/pluresdb-integration.md +646 -0
  276. package/docs/core/schema-model.md +414 -0
  277. package/docs/core/ui-generation.md +580 -0
  278. package/docs/core/what-is-praxis.md +240 -0
  279. package/docs/tutorials/README.md +84 -0
  280. package/docs/tutorials/ecommerce-cart.md +631 -0
  281. package/docs/tutorials/first-app.md +529 -0
  282. package/docs/tutorials/form-builder.md +620 -0
  283. package/docs/tutorials/todo-pluresdb.md +589 -0
  284. package/package.json +1 -1
  285. package/src/__tests__/canvas-components.test.ts +450 -0
  286. package/src/__tests__/cli-create.test.ts +178 -0
  287. package/src/__tests__/code-canvas-integration.test.ts +277 -0
  288. package/src/__tests__/docs-generator.test.ts +181 -0
  289. package/src/__tests__/generators.test.ts +3 -2
  290. package/src/__tests__/pluresdb.test.ts +457 -0
  291. package/src/__tests__/psf-schema-engine.test.ts +450 -0
  292. package/src/__tests__/state-docs-integration.test.ts +297 -0
  293. package/src/__tests__/tauri-integration.test.ts +298 -0
  294. package/src/__tests__/terminal-node.test.ts +1 -1
  295. package/src/__tests__/unum-integration.test.ts +142 -0
  296. package/src/cli/commands/build.ts +203 -0
  297. package/src/cli/commands/canvas.ts +246 -0
  298. package/src/cli/commands/create.ts +666 -0
  299. package/src/cli/commands/dev.ts +95 -0
  300. package/src/cli/commands/orchestrate.ts +212 -0
  301. package/src/cli/index.ts +48 -21
  302. package/src/core/component/generator.ts +45 -3
  303. package/src/core/logic/generator.ts +39 -4
  304. package/src/core/pluresdb/adapter.ts +117 -0
  305. package/src/core/pluresdb/generator.ts +33 -4
  306. package/src/core/pluresdb/index.ts +37 -0
  307. package/src/core/pluresdb/schema-registry.ts +162 -0
  308. package/src/core/pluresdb/store.ts +443 -0
  309. package/src/index.ts +109 -0
  310. package/src/integrations/code-canvas.ts +717 -0
  311. package/src/integrations/pluresdb.ts +140 -29
  312. package/src/integrations/state-docs.ts +710 -0
  313. package/src/integrations/tauri.ts +638 -0
  314. package/src/integrations/unum.ts +395 -0
  315. package/src/runtime/terminal-adapter.ts +178 -23
  316. package/dist/adapters/cli.d.ts.map +0 -1
  317. package/dist/adapters/cli.js.map +0 -1
  318. package/dist/cli/commands/auth.d.ts.map +0 -1
  319. package/dist/cli/commands/auth.js.map +0 -1
  320. package/dist/cli/commands/cloud.d.ts.map +0 -1
  321. package/dist/cli/commands/cloud.js.map +0 -1
  322. package/dist/cli/commands/generate.d.ts.map +0 -1
  323. package/dist/cli/commands/generate.js.map +0 -1
  324. package/dist/cli/index.js.map +0 -1
  325. package/dist/cloud/auth.d.ts.map +0 -1
  326. package/dist/cloud/auth.js.map +0 -1
  327. package/dist/cloud/billing.d.ts.map +0 -1
  328. package/dist/cloud/billing.js.map +0 -1
  329. package/dist/cloud/client.d.ts.map +0 -1
  330. package/dist/cloud/client.js.map +0 -1
  331. package/dist/cloud/index.d.ts.map +0 -1
  332. package/dist/cloud/index.js.map +0 -1
  333. package/dist/cloud/marketplace.d.ts.map +0 -1
  334. package/dist/cloud/marketplace.js.map +0 -1
  335. package/dist/cloud/provisioning.d.ts.map +0 -1
  336. package/dist/cloud/provisioning.js.map +0 -1
  337. package/dist/cloud/relay/endpoints.d.ts.map +0 -1
  338. package/dist/cloud/relay/endpoints.js.map +0 -1
  339. package/dist/cloud/relay/health/index.d.ts.map +0 -1
  340. package/dist/cloud/relay/health/index.js.map +0 -1
  341. package/dist/cloud/relay/stats/index.d.ts.map +0 -1
  342. package/dist/cloud/relay/stats/index.js.map +0 -1
  343. package/dist/cloud/relay/sync/index.d.ts.map +0 -1
  344. package/dist/cloud/relay/sync/index.js.map +0 -1
  345. package/dist/cloud/relay/usage/index.d.ts.map +0 -1
  346. package/dist/cloud/relay/usage/index.js.map +0 -1
  347. package/dist/cloud/sponsors.d.ts.map +0 -1
  348. package/dist/cloud/sponsors.js.map +0 -1
  349. package/dist/cloud/types.d.ts.map +0 -1
  350. package/dist/components/index.d.ts.map +0 -1
  351. package/dist/components/index.js.map +0 -1
  352. package/dist/core/actors.d.ts.map +0 -1
  353. package/dist/core/actors.js.map +0 -1
  354. package/dist/core/component/generator.d.ts.map +0 -1
  355. package/dist/core/component/generator.js.map +0 -1
  356. package/dist/core/engine.d.ts.map +0 -1
  357. package/dist/core/engine.js.map +0 -1
  358. package/dist/core/introspection.d.ts.map +0 -1
  359. package/dist/core/introspection.js.map +0 -1
  360. package/dist/core/logic/generator.d.ts.map +0 -1
  361. package/dist/core/logic/generator.js.map +0 -1
  362. package/dist/core/pluresdb/generator.d.ts.map +0 -1
  363. package/dist/core/pluresdb/generator.js.map +0 -1
  364. package/dist/core/protocol.d.ts.map +0 -1
  365. package/dist/core/protocol.js.map +0 -1
  366. package/dist/core/rules.d.ts.map +0 -1
  367. package/dist/core/rules.js.map +0 -1
  368. package/dist/core/schema/loader.d.ts.map +0 -1
  369. package/dist/core/schema/loader.js.map +0 -1
  370. package/dist/core/schema/normalize.d.ts.map +0 -1
  371. package/dist/core/schema/normalize.js.map +0 -1
  372. package/dist/core/schema/types.d.ts.map +0 -1
  373. package/dist/core/schema/types.js.map +0 -1
  374. package/dist/dsl/index.d.ts.map +0 -1
  375. package/dist/dsl/index.js.map +0 -1
  376. package/dist/dsl.d.ts.map +0 -1
  377. package/dist/dsl.js.map +0 -1
  378. package/dist/examples/advanced-todo/index.d.ts.map +0 -1
  379. package/dist/examples/advanced-todo/index.js.map +0 -1
  380. package/dist/examples/auth-basic/index.d.ts.map +0 -1
  381. package/dist/examples/auth-basic/index.js.map +0 -1
  382. package/dist/examples/cart/index.d.ts.map +0 -1
  383. package/dist/examples/cart/index.js.map +0 -1
  384. package/dist/examples/hero-ecommerce/index.d.ts.map +0 -1
  385. package/dist/examples/hero-ecommerce/index.js.map +0 -1
  386. package/dist/examples/svelte-counter/index.d.ts.map +0 -1
  387. package/dist/examples/svelte-counter/index.js.map +0 -1
  388. package/dist/flows.d.ts.map +0 -1
  389. package/dist/flows.js.map +0 -1
  390. package/dist/index.d.ts.map +0 -1
  391. package/dist/index.js.map +0 -1
  392. package/dist/integrations/pluresdb.d.ts +0 -56
  393. package/dist/integrations/pluresdb.d.ts.map +0 -1
  394. package/dist/integrations/pluresdb.js +0 -46
  395. package/dist/integrations/pluresdb.js.map +0 -1
  396. package/dist/integrations/svelte.d.ts.map +0 -1
  397. package/dist/integrations/svelte.js.map +0 -1
  398. package/dist/registry.d.ts.map +0 -1
  399. package/dist/registry.js.map +0 -1
  400. package/dist/runtime/terminal-adapter.d.ts.map +0 -1
  401. package/dist/runtime/terminal-adapter.js +0 -113
  402. package/dist/runtime/terminal-adapter.js.map +0 -1
  403. package/dist/step.d.ts.map +0 -1
  404. package/dist/step.js.map +0 -1
  405. package/dist/types.d.ts.map +0 -1
  406. package/dist/types.js.map +0 -1
  407. /package/dist/{adapters → src/adapters}/cli.d.ts +0 -0
  408. /package/dist/{adapters → src/adapters}/cli.js +0 -0
  409. /package/dist/{cli → src/cli}/commands/auth.d.ts +0 -0
  410. /package/dist/{cli → src/cli}/commands/auth.js +0 -0
  411. /package/dist/{cli → src/cli}/commands/cloud.d.ts +0 -0
  412. /package/dist/{cli → src/cli}/commands/cloud.js +0 -0
  413. /package/dist/{cli → src/cli}/commands/generate.d.ts +0 -0
  414. /package/dist/{cli → src/cli}/commands/generate.js +0 -0
  415. /package/dist/{cli → src/cli}/index.d.ts +0 -0
  416. /package/dist/{cloud → src/cloud}/auth.d.ts +0 -0
  417. /package/dist/{cloud → src/cloud}/auth.js +0 -0
  418. /package/dist/{cloud → src/cloud}/billing.d.ts +0 -0
  419. /package/dist/{cloud → src/cloud}/billing.js +0 -0
  420. /package/dist/{cloud → src/cloud}/client.d.ts +0 -0
  421. /package/dist/{cloud → src/cloud}/client.js +0 -0
  422. /package/dist/{cloud → src/cloud}/index.d.ts +0 -0
  423. /package/dist/{cloud → src/cloud}/index.js +0 -0
  424. /package/dist/{cloud → src/cloud}/marketplace.d.ts +0 -0
  425. /package/dist/{cloud → src/cloud}/marketplace.js +0 -0
  426. /package/dist/{cloud → src/cloud}/provisioning.d.ts +0 -0
  427. /package/dist/{cloud → src/cloud}/provisioning.js +0 -0
  428. /package/dist/{cloud → src/cloud}/relay/endpoints.d.ts +0 -0
  429. /package/dist/{cloud → src/cloud}/relay/endpoints.js +0 -0
  430. /package/dist/{cloud → src/cloud}/relay/health/index.d.ts +0 -0
  431. /package/dist/{cloud → src/cloud}/relay/health/index.js +0 -0
  432. /package/dist/{cloud → src/cloud}/relay/stats/index.d.ts +0 -0
  433. /package/dist/{cloud → src/cloud}/relay/stats/index.js +0 -0
  434. /package/dist/{cloud → src/cloud}/relay/sync/index.d.ts +0 -0
  435. /package/dist/{cloud → src/cloud}/relay/sync/index.js +0 -0
  436. /package/dist/{cloud → src/cloud}/relay/usage/index.d.ts +0 -0
  437. /package/dist/{cloud → src/cloud}/relay/usage/index.js +0 -0
  438. /package/dist/{cloud → src/cloud}/sponsors.d.ts +0 -0
  439. /package/dist/{cloud → src/cloud}/sponsors.js +0 -0
  440. /package/dist/{cloud → src/cloud}/types.d.ts +0 -0
  441. /package/dist/{cloud → src/cloud}/types.js +0 -0
  442. /package/dist/{components → src/components}/index.d.ts +0 -0
  443. /package/dist/{components → src/components}/index.js +0 -0
  444. /package/dist/{core → src/core}/actors.d.ts +0 -0
  445. /package/dist/{core → src/core}/actors.js +0 -0
  446. /package/dist/{core → src/core}/component/generator.d.ts +0 -0
  447. /package/dist/{core → src/core}/engine.d.ts +0 -0
  448. /package/dist/{core → src/core}/engine.js +0 -0
  449. /package/dist/{core → src/core}/introspection.d.ts +0 -0
  450. /package/dist/{core → src/core}/introspection.js +0 -0
  451. /package/dist/{core → src/core}/logic/generator.d.ts +0 -0
  452. /package/dist/{core → src/core}/pluresdb/generator.d.ts +0 -0
  453. /package/dist/{core → src/core}/protocol.d.ts +0 -0
  454. /package/dist/{core → src/core}/protocol.js +0 -0
  455. /package/dist/{core → src/core}/rules.d.ts +0 -0
  456. /package/dist/{core → src/core}/rules.js +0 -0
  457. /package/dist/{core → src/core}/schema/loader.d.ts +0 -0
  458. /package/dist/{core → src/core}/schema/loader.js +0 -0
  459. /package/dist/{core → src/core}/schema/normalize.d.ts +0 -0
  460. /package/dist/{core → src/core}/schema/normalize.js +0 -0
  461. /package/dist/{core → src/core}/schema/types.d.ts +0 -0
  462. /package/dist/{core → src/core}/schema/types.js +0 -0
  463. /package/dist/{dsl → src/dsl}/index.d.ts +0 -0
  464. /package/dist/{dsl → src/dsl}/index.js +0 -0
  465. /package/dist/{dsl.d.ts → src/dsl.d.ts} +0 -0
  466. /package/dist/{dsl.js → src/dsl.js} +0 -0
  467. /package/dist/{examples → src/examples}/advanced-todo/index.d.ts +0 -0
  468. /package/dist/{examples → src/examples}/advanced-todo/index.js +0 -0
  469. /package/dist/{examples → src/examples}/auth-basic/index.d.ts +0 -0
  470. /package/dist/{examples → src/examples}/auth-basic/index.js +0 -0
  471. /package/dist/{examples → src/examples}/cart/index.d.ts +0 -0
  472. /package/dist/{examples → src/examples}/cart/index.js +0 -0
  473. /package/dist/{examples → src/examples}/hero-ecommerce/index.d.ts +0 -0
  474. /package/dist/{examples → src/examples}/hero-ecommerce/index.js +0 -0
  475. /package/dist/{examples → src/examples}/svelte-counter/index.d.ts +0 -0
  476. /package/dist/{examples → src/examples}/svelte-counter/index.js +0 -0
  477. /package/dist/{flows.d.ts → src/flows.d.ts} +0 -0
  478. /package/dist/{flows.js → src/flows.js} +0 -0
  479. /package/dist/{integrations → src/integrations}/svelte.d.ts +0 -0
  480. /package/dist/{integrations → src/integrations}/svelte.js +0 -0
  481. /package/dist/{registry.d.ts → src/registry.d.ts} +0 -0
  482. /package/dist/{registry.js → src/registry.js} +0 -0
  483. /package/dist/{step.d.ts → src/step.d.ts} +0 -0
  484. /package/dist/{step.js → src/step.js} +0 -0
  485. /package/dist/{types.d.ts → src/types.d.ts} +0 -0
  486. /package/dist/{types.js → src/types.js} +0 -0
@@ -0,0 +1,200 @@
1
+ /**
2
+ * Canvas State Management
3
+ *
4
+ * Manages the reactive state of the visual canvas editor.
5
+ * Integrates with PluresDB for real-time synchronization.
6
+ */
7
+ import type { PSFSchema, PSFPosition } from '../../core/schema-engine/psf.js';
8
+ import type { SchemaSyncEngine } from '../../core/db-adapter/sync-engine.js';
9
+ /**
10
+ * Canvas node representation
11
+ */
12
+ export interface CanvasNodeState {
13
+ /** Node ID */
14
+ id: string;
15
+ /** Node type */
16
+ type: 'fact' | 'event' | 'rule' | 'constraint' | 'model' | 'component' | 'flow';
17
+ /** Display label */
18
+ label: string;
19
+ /** Position */
20
+ position: PSFPosition;
21
+ /** Whether position was explicitly set */
22
+ hasExplicitPosition: boolean;
23
+ /** Is selected */
24
+ selected: boolean;
25
+ /** Is being dragged */
26
+ dragging: boolean;
27
+ /** Additional data */
28
+ data: Record<string, unknown>;
29
+ }
30
+ /**
31
+ * Canvas edge representation
32
+ */
33
+ export interface CanvasEdgeState {
34
+ /** Edge ID */
35
+ id: string;
36
+ /** Source node ID */
37
+ source: string;
38
+ /** Source port */
39
+ sourcePort?: string;
40
+ /** Target node ID */
41
+ target: string;
42
+ /** Target port */
43
+ targetPort?: string;
44
+ /** Edge type */
45
+ type: 'data' | 'control' | 'event' | 'reference';
46
+ /** Is selected */
47
+ selected: boolean;
48
+ /** Label */
49
+ label?: string;
50
+ }
51
+ /**
52
+ * Canvas viewport state
53
+ */
54
+ export interface CanvasViewportState {
55
+ /** X offset */
56
+ x: number;
57
+ /** Y offset */
58
+ y: number;
59
+ /** Zoom level */
60
+ zoom: number;
61
+ /** Minimum zoom */
62
+ minZoom: number;
63
+ /** Maximum zoom */
64
+ maxZoom: number;
65
+ }
66
+ /**
67
+ * Canvas grid settings
68
+ */
69
+ export interface CanvasGridState {
70
+ /** Is grid enabled */
71
+ enabled: boolean;
72
+ /** Grid size */
73
+ size: number;
74
+ /** Snap to grid */
75
+ snap: boolean;
76
+ /** Show grid lines */
77
+ visible: boolean;
78
+ }
79
+ /**
80
+ * Canvas selection state
81
+ */
82
+ export interface CanvasSelectionState {
83
+ /** Selected node IDs */
84
+ nodes: Set<string>;
85
+ /** Selected edge IDs */
86
+ edges: Set<string>;
87
+ /** Selection box (for multi-select) */
88
+ box?: {
89
+ x: number;
90
+ y: number;
91
+ width: number;
92
+ height: number;
93
+ };
94
+ }
95
+ /**
96
+ * Canvas interaction mode
97
+ */
98
+ export type CanvasMode = 'select' | 'pan' | 'connect' | 'add';
99
+ /**
100
+ * Full canvas state
101
+ */
102
+ export interface CanvasState {
103
+ /** All nodes */
104
+ nodes: Map<string, CanvasNodeState>;
105
+ /** All edges */
106
+ edges: Map<string, CanvasEdgeState>;
107
+ /** Viewport */
108
+ viewport: CanvasViewportState;
109
+ /** Grid */
110
+ grid: CanvasGridState;
111
+ /** Selection */
112
+ selection: CanvasSelectionState;
113
+ /** Current mode */
114
+ mode: CanvasMode;
115
+ /** Is read-only */
116
+ readonly: boolean;
117
+ /** Is loading */
118
+ loading: boolean;
119
+ /** Last update timestamp */
120
+ lastUpdate: number;
121
+ }
122
+ /**
123
+ * Canvas state manager
124
+ *
125
+ * Manages the reactive state of the canvas editor.
126
+ */
127
+ export declare class CanvasStateManager {
128
+ private state;
129
+ private syncEngine?;
130
+ private subscribers;
131
+ private undoStack;
132
+ private redoStack;
133
+ private maxUndoHistory;
134
+ constructor();
135
+ /**
136
+ * Get current state
137
+ */
138
+ getState(): Readonly<CanvasState>;
139
+ /**
140
+ * Connect to sync engine
141
+ */
142
+ connectToSync(syncEngine: SchemaSyncEngine): void;
143
+ /**
144
+ * Load canvas state from PSF schema
145
+ */
146
+ loadFromSchema(schema: PSFSchema): void;
147
+ /**
148
+ * Export canvas state to PSF schema updates
149
+ */
150
+ exportToSchema(existingSchema: PSFSchema): PSFSchema;
151
+ /**
152
+ * Select node
153
+ */
154
+ selectNode(nodeId: string, addToSelection?: boolean): void;
155
+ /**
156
+ * Move node
157
+ */
158
+ moveNode(nodeId: string, position: PSFPosition): void;
159
+ /**
160
+ * Clear selection
161
+ */
162
+ clearSelection(): void;
163
+ /**
164
+ * Set viewport
165
+ */
166
+ setViewport(viewport: Partial<CanvasViewportState>): void;
167
+ /**
168
+ * Set mode
169
+ */
170
+ setMode(mode: CanvasMode): void;
171
+ /**
172
+ * Toggle grid
173
+ */
174
+ toggleGrid(): void;
175
+ /**
176
+ * Undo
177
+ */
178
+ undo(): boolean;
179
+ /**
180
+ * Redo
181
+ */
182
+ redo(): boolean;
183
+ /**
184
+ * Subscribe to state changes
185
+ */
186
+ subscribe(callback: (state: CanvasState) => void): () => void;
187
+ private createInitialState;
188
+ private setState;
189
+ private updateNode;
190
+ private snapToGrid;
191
+ private saveToUndo;
192
+ private notifySubscribers;
193
+ private handleSchemaChange;
194
+ private syncPositionToSchema;
195
+ }
196
+ /**
197
+ * Create canvas state manager
198
+ */
199
+ export declare function createCanvasStateManager(): CanvasStateManager;
200
+ //# sourceMappingURL=canvas-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas-state.d.ts","sourceRoot":"","sources":["../../../ui/canvas/canvas-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,464 @@
1
+ /**
2
+ * Canvas State Management
3
+ *
4
+ * Manages the reactive state of the visual canvas editor.
5
+ * Integrates with PluresDB for real-time synchronization.
6
+ */
7
+ /**
8
+ * Canvas state manager
9
+ *
10
+ * Manages the reactive state of the canvas editor.
11
+ */
12
+ export class CanvasStateManager {
13
+ state;
14
+ syncEngine;
15
+ subscribers = new Set();
16
+ undoStack = [];
17
+ redoStack = [];
18
+ maxUndoHistory = 50;
19
+ constructor() {
20
+ this.state = this.createInitialState();
21
+ }
22
+ /**
23
+ * Get current state
24
+ */
25
+ getState() {
26
+ return this.state;
27
+ }
28
+ /**
29
+ * Connect to sync engine
30
+ */
31
+ connectToSync(syncEngine) {
32
+ this.syncEngine = syncEngine;
33
+ // Subscribe to schema changes
34
+ syncEngine.subscribe((schema) => {
35
+ this.loadFromSchema(schema);
36
+ });
37
+ // Subscribe to individual changes
38
+ syncEngine.subscribeToChanges((change) => {
39
+ this.handleSchemaChange(change);
40
+ });
41
+ }
42
+ /**
43
+ * Load canvas state from PSF schema
44
+ */
45
+ loadFromSchema(schema) {
46
+ const nodes = new Map();
47
+ const edges = new Map();
48
+ // Helper to check if position was explicitly set
49
+ const hasPosition = (pos) => pos !== undefined && (pos.x !== 0 || pos.y !== 0);
50
+ // Load facts
51
+ for (const fact of schema.facts) {
52
+ nodes.set(fact.id, {
53
+ id: fact.id,
54
+ type: 'fact',
55
+ label: fact.tag,
56
+ position: fact.position || { x: 0, y: 0 },
57
+ hasExplicitPosition: hasPosition(fact.position),
58
+ selected: false,
59
+ dragging: false,
60
+ data: { description: fact.description },
61
+ });
62
+ }
63
+ // Load events
64
+ for (const event of schema.events) {
65
+ nodes.set(event.id, {
66
+ id: event.id,
67
+ type: 'event',
68
+ label: event.tag,
69
+ position: event.position || { x: 0, y: 0 },
70
+ hasExplicitPosition: hasPosition(event.position),
71
+ selected: false,
72
+ dragging: false,
73
+ data: { description: event.description },
74
+ });
75
+ }
76
+ // Load rules
77
+ for (const rule of schema.rules) {
78
+ nodes.set(rule.id, {
79
+ id: rule.id,
80
+ type: 'rule',
81
+ label: rule.name || rule.id,
82
+ position: rule.position || { x: 0, y: 0 },
83
+ hasExplicitPosition: hasPosition(rule.position),
84
+ selected: false,
85
+ dragging: false,
86
+ data: { description: rule.description, triggers: rule.triggers },
87
+ });
88
+ // Create edges from triggers
89
+ if (rule.triggers) {
90
+ for (const trigger of rule.triggers) {
91
+ const eventNode = schema.events.find((e) => e.tag === trigger);
92
+ if (eventNode) {
93
+ const edgeId = `edge_${eventNode.id}_${rule.id}`;
94
+ edges.set(edgeId, {
95
+ id: edgeId,
96
+ source: eventNode.id,
97
+ target: rule.id,
98
+ type: 'event',
99
+ selected: false,
100
+ label: 'triggers',
101
+ });
102
+ }
103
+ }
104
+ }
105
+ }
106
+ // Load constraints
107
+ for (const constraint of schema.constraints) {
108
+ nodes.set(constraint.id, {
109
+ id: constraint.id,
110
+ type: 'constraint',
111
+ label: constraint.name || constraint.id,
112
+ position: constraint.position || { x: 0, y: 0 },
113
+ hasExplicitPosition: hasPosition(constraint.position),
114
+ selected: false,
115
+ dragging: false,
116
+ data: { description: constraint.description },
117
+ });
118
+ }
119
+ // Load models
120
+ for (const model of schema.models) {
121
+ nodes.set(model.id, {
122
+ id: model.id,
123
+ type: 'model',
124
+ label: model.name,
125
+ position: model.position || { x: 0, y: 0 },
126
+ hasExplicitPosition: hasPosition(model.position),
127
+ selected: false,
128
+ dragging: false,
129
+ data: { description: model.description, fields: model.fields },
130
+ });
131
+ // Create edges for relationships
132
+ if (model.relationships) {
133
+ for (const rel of model.relationships) {
134
+ const targetModel = schema.models.find((m) => m.name === rel.target);
135
+ if (targetModel) {
136
+ const edgeId = `edge_${model.id}_${targetModel.id}_${rel.name}`;
137
+ edges.set(edgeId, {
138
+ id: edgeId,
139
+ source: model.id,
140
+ target: targetModel.id,
141
+ type: 'reference',
142
+ selected: false,
143
+ label: `${rel.name} (${rel.type})`,
144
+ });
145
+ }
146
+ }
147
+ }
148
+ }
149
+ // Load components
150
+ for (const component of schema.components) {
151
+ nodes.set(component.id, {
152
+ id: component.id,
153
+ type: 'component',
154
+ label: component.name,
155
+ position: component.position || { x: 0, y: 0 },
156
+ hasExplicitPosition: hasPosition(component.position),
157
+ selected: false,
158
+ dragging: false,
159
+ data: { description: component.description, model: component.model },
160
+ });
161
+ // Create edge to model
162
+ if (component.model) {
163
+ const model = schema.models.find((m) => m.name === component.model);
164
+ if (model) {
165
+ const edgeId = `edge_${component.id}_${model.id}`;
166
+ edges.set(edgeId, {
167
+ id: edgeId,
168
+ source: component.id,
169
+ target: model.id,
170
+ type: 'data',
171
+ selected: false,
172
+ label: 'binds to',
173
+ });
174
+ }
175
+ }
176
+ }
177
+ // Load canvas layout if available
178
+ let viewport = this.state.viewport;
179
+ let grid = this.state.grid;
180
+ if (schema.canvas) {
181
+ if (schema.canvas.viewport) {
182
+ viewport = {
183
+ ...viewport,
184
+ ...schema.canvas.viewport,
185
+ };
186
+ }
187
+ if (schema.canvas.grid) {
188
+ grid = {
189
+ ...grid,
190
+ enabled: schema.canvas.grid.enabled,
191
+ size: schema.canvas.grid.size,
192
+ snap: schema.canvas.grid.snap,
193
+ };
194
+ }
195
+ // Load connections from canvas layout
196
+ if (schema.canvas.connections) {
197
+ for (const conn of schema.canvas.connections) {
198
+ edges.set(conn.id, {
199
+ id: conn.id,
200
+ source: conn.source,
201
+ sourcePort: conn.sourcePort,
202
+ target: conn.target,
203
+ targetPort: conn.targetPort,
204
+ type: conn.type || 'data',
205
+ selected: false,
206
+ label: conn.label,
207
+ });
208
+ }
209
+ }
210
+ }
211
+ // Update state
212
+ this.setState({
213
+ ...this.state,
214
+ nodes,
215
+ edges,
216
+ viewport,
217
+ grid,
218
+ selection: { nodes: new Set(), edges: new Set() },
219
+ loading: false,
220
+ lastUpdate: Date.now(),
221
+ });
222
+ }
223
+ /**
224
+ * Export canvas state to PSF schema updates
225
+ */
226
+ exportToSchema(existingSchema) {
227
+ const updates = {
228
+ modifiedAt: new Date().toISOString(),
229
+ };
230
+ // Update positions for all node types
231
+ const updatePositions = (items, nodeType) => {
232
+ return items.map((item) => {
233
+ const node = this.state.nodes.get(item.id);
234
+ if (node && node.type === nodeType) {
235
+ return { ...item, position: node.position };
236
+ }
237
+ return item;
238
+ });
239
+ };
240
+ updates.facts = updatePositions(existingSchema.facts, 'fact');
241
+ updates.events = updatePositions(existingSchema.events, 'event');
242
+ updates.rules = updatePositions(existingSchema.rules, 'rule');
243
+ updates.constraints = updatePositions(existingSchema.constraints, 'constraint');
244
+ updates.models = updatePositions(existingSchema.models, 'model');
245
+ updates.components = updatePositions(existingSchema.components, 'component');
246
+ // Update canvas layout
247
+ updates.canvas = {
248
+ viewport: {
249
+ x: this.state.viewport.x,
250
+ y: this.state.viewport.y,
251
+ zoom: this.state.viewport.zoom,
252
+ },
253
+ grid: {
254
+ enabled: this.state.grid.enabled,
255
+ size: this.state.grid.size,
256
+ snap: this.state.grid.snap,
257
+ },
258
+ connections: Array.from(this.state.edges.values()).map((edge) => ({
259
+ id: edge.id,
260
+ source: edge.source,
261
+ sourcePort: edge.sourcePort,
262
+ target: edge.target,
263
+ targetPort: edge.targetPort,
264
+ type: edge.type === 'reference' ? 'data' : edge.type,
265
+ label: edge.label,
266
+ })),
267
+ };
268
+ return { ...existingSchema, ...updates };
269
+ }
270
+ /**
271
+ * Select node
272
+ */
273
+ selectNode(nodeId, addToSelection = false) {
274
+ this.saveToUndo();
275
+ const selection = addToSelection
276
+ ? new Set(this.state.selection.nodes)
277
+ : new Set();
278
+ selection.add(nodeId);
279
+ this.setState({
280
+ ...this.state,
281
+ selection: {
282
+ ...this.state.selection,
283
+ nodes: selection,
284
+ edges: addToSelection ? this.state.selection.edges : new Set(),
285
+ },
286
+ nodes: this.updateNode(nodeId, { selected: true }),
287
+ });
288
+ }
289
+ /**
290
+ * Move node
291
+ */
292
+ moveNode(nodeId, position) {
293
+ const finalPosition = this.state.grid.snap
294
+ ? this.snapToGrid(position)
295
+ : position;
296
+ this.setState({
297
+ ...this.state,
298
+ nodes: this.updateNode(nodeId, { position: finalPosition }),
299
+ lastUpdate: Date.now(),
300
+ });
301
+ // Sync to schema if connected
302
+ this.syncPositionToSchema(nodeId, finalPosition);
303
+ }
304
+ /**
305
+ * Clear selection
306
+ */
307
+ clearSelection() {
308
+ const updatedNodes = new Map(this.state.nodes);
309
+ for (const [id, node] of updatedNodes) {
310
+ if (node.selected) {
311
+ updatedNodes.set(id, { ...node, selected: false });
312
+ }
313
+ }
314
+ const updatedEdges = new Map(this.state.edges);
315
+ for (const [id, edge] of updatedEdges) {
316
+ if (edge.selected) {
317
+ updatedEdges.set(id, { ...edge, selected: false });
318
+ }
319
+ }
320
+ this.setState({
321
+ ...this.state,
322
+ nodes: updatedNodes,
323
+ edges: updatedEdges,
324
+ selection: { nodes: new Set(), edges: new Set() },
325
+ });
326
+ }
327
+ /**
328
+ * Set viewport
329
+ */
330
+ setViewport(viewport) {
331
+ this.setState({
332
+ ...this.state,
333
+ viewport: { ...this.state.viewport, ...viewport },
334
+ });
335
+ }
336
+ /**
337
+ * Set mode
338
+ */
339
+ setMode(mode) {
340
+ this.setState({ ...this.state, mode });
341
+ }
342
+ /**
343
+ * Toggle grid
344
+ */
345
+ toggleGrid() {
346
+ this.setState({
347
+ ...this.state,
348
+ grid: { ...this.state.grid, visible: !this.state.grid.visible },
349
+ });
350
+ }
351
+ /**
352
+ * Undo
353
+ */
354
+ undo() {
355
+ if (this.undoStack.length === 0)
356
+ return false;
357
+ const previousState = this.undoStack.pop();
358
+ this.redoStack.push(this.state);
359
+ this.state = previousState;
360
+ this.notifySubscribers();
361
+ return true;
362
+ }
363
+ /**
364
+ * Redo
365
+ */
366
+ redo() {
367
+ if (this.redoStack.length === 0)
368
+ return false;
369
+ const nextState = this.redoStack.pop();
370
+ this.undoStack.push(this.state);
371
+ this.state = nextState;
372
+ this.notifySubscribers();
373
+ return true;
374
+ }
375
+ /**
376
+ * Subscribe to state changes
377
+ */
378
+ subscribe(callback) {
379
+ this.subscribers.add(callback);
380
+ callback(this.state);
381
+ return () => this.subscribers.delete(callback);
382
+ }
383
+ // Private methods
384
+ createInitialState() {
385
+ return {
386
+ nodes: new Map(),
387
+ edges: new Map(),
388
+ viewport: { x: 0, y: 0, zoom: 1, minZoom: 0.25, maxZoom: 4 },
389
+ grid: { enabled: true, size: 20, snap: true, visible: true },
390
+ selection: { nodes: new Set(), edges: new Set() },
391
+ mode: 'select',
392
+ readonly: false,
393
+ loading: true,
394
+ lastUpdate: Date.now(),
395
+ };
396
+ }
397
+ setState(newState) {
398
+ this.state = newState;
399
+ this.notifySubscribers();
400
+ }
401
+ updateNode(nodeId, updates) {
402
+ const updatedNodes = new Map(this.state.nodes);
403
+ const node = updatedNodes.get(nodeId);
404
+ if (node) {
405
+ updatedNodes.set(nodeId, { ...node, ...updates });
406
+ }
407
+ return updatedNodes;
408
+ }
409
+ snapToGrid(position) {
410
+ const size = this.state.grid.size;
411
+ return {
412
+ x: Math.round(position.x / size) * size,
413
+ y: Math.round(position.y / size) * size,
414
+ };
415
+ }
416
+ saveToUndo() {
417
+ this.undoStack.push({ ...this.state });
418
+ if (this.undoStack.length > this.maxUndoHistory) {
419
+ this.undoStack.shift();
420
+ }
421
+ this.redoStack = [];
422
+ }
423
+ notifySubscribers() {
424
+ for (const callback of this.subscribers) {
425
+ callback(this.state);
426
+ }
427
+ }
428
+ handleSchemaChange(change) {
429
+ // Handle external schema changes
430
+ console.log('Schema change:', change);
431
+ }
432
+ async syncPositionToSchema(nodeId, position) {
433
+ if (!this.syncEngine)
434
+ return;
435
+ const node = this.state.nodes.get(nodeId);
436
+ if (!node)
437
+ return;
438
+ const typeMap = {
439
+ fact: 'facts',
440
+ event: 'events',
441
+ rule: 'rules',
442
+ constraint: 'constraints',
443
+ model: 'models',
444
+ component: 'components',
445
+ flow: 'facts', // flows not directly supported yet
446
+ };
447
+ const schemaType = typeMap[node.type];
448
+ if (schemaType) {
449
+ try {
450
+ await this.syncEngine.updateNodePosition(schemaType, nodeId, position);
451
+ }
452
+ catch (error) {
453
+ console.error('Failed to sync position:', error);
454
+ }
455
+ }
456
+ }
457
+ }
458
+ /**
459
+ * Create canvas state manager
460
+ */
461
+ export function createCanvasStateManager() {
462
+ return new CanvasStateManager();
463
+ }
464
+ //# sourceMappingURL=canvas-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas-state.js","sourceRoot":"","sources":["../../../ui/canvas/canvas-state.ts"],"names":[],"mappings":"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"}