@pwfabric/runtime 1.0.0-rc.0 → 1.0.0-rc.1

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 (455) hide show
  1. package/README.md +35 -5
  2. package/dist/a11y/announcer.d.ts +0 -1
  3. package/dist/a11y/announcer.js.map +1 -1
  4. package/dist/a11y/contrast.d.ts +0 -1
  5. package/dist/a11y/contrast.js.map +1 -1
  6. package/dist/a11y/focus.d.ts +0 -1
  7. package/dist/a11y/focus.js.map +1 -1
  8. package/dist/a11y/index.d.ts +0 -1
  9. package/dist/a11y/index.js.map +1 -1
  10. package/dist/a11y/keyboard.d.ts +0 -1
  11. package/dist/a11y/keyboard.js.map +1 -1
  12. package/dist/adapters/default-image.d.ts +0 -1
  13. package/dist/adapters/default-image.js.map +1 -1
  14. package/dist/adapters/index.d.ts +0 -1
  15. package/dist/adapters/index.js.map +1 -1
  16. package/dist/adapters/next-image.d.ts +0 -1
  17. package/dist/adapters/next-image.js.map +1 -1
  18. package/dist/adapters/types.d.ts +0 -1
  19. package/dist/adapters/types.js.map +1 -1
  20. package/dist/analytics/index.d.ts +0 -1
  21. package/dist/analytics/index.js.map +1 -1
  22. package/dist/analytics/tracker.d.ts +0 -1
  23. package/dist/analytics/tracker.js.map +1 -1
  24. package/dist/analytics/types.d.ts +0 -1
  25. package/dist/analytics/types.js.map +1 -1
  26. package/dist/auth/index.d.ts +0 -1
  27. package/dist/auth/index.js.map +1 -1
  28. package/dist/auth/provider.d.ts +0 -1
  29. package/dist/auth/provider.js.map +1 -1
  30. package/dist/auth/types.d.ts +0 -1
  31. package/dist/auth/types.js.map +1 -1
  32. package/dist/binding/collection.d.ts +0 -1
  33. package/dist/binding/collection.js.map +1 -1
  34. package/dist/binding/datasource.d.ts +0 -1
  35. package/dist/binding/datasource.js.map +1 -1
  36. package/dist/binding/engine.d.ts +0 -1
  37. package/dist/binding/engine.js.map +1 -1
  38. package/dist/binding/expression.d.ts +0 -1
  39. package/dist/binding/expression.js.map +1 -1
  40. package/dist/binding/index.d.ts +0 -1
  41. package/dist/binding/index.js.map +1 -1
  42. package/dist/binding/two-way.d.ts +0 -1
  43. package/dist/binding/two-way.js.map +1 -1
  44. package/dist/binding/types.d.ts +0 -1
  45. package/dist/binding/types.js.map +1 -1
  46. package/dist/blocks/component-types.d.ts +0 -1
  47. package/dist/blocks/component-types.js.map +1 -1
  48. package/dist/blocks/composition-rules.d.ts +0 -1
  49. package/dist/blocks/composition-rules.js.map +1 -1
  50. package/dist/blocks/hooks.d.ts +0 -1
  51. package/dist/blocks/hooks.js.map +1 -1
  52. package/dist/blocks/index.d.ts +0 -2
  53. package/dist/blocks/index.js +5 -6
  54. package/dist/blocks/index.js.map +1 -1
  55. package/dist/blocks/registry.d.ts +0 -1
  56. package/dist/blocks/registry.js.map +1 -1
  57. package/dist/blocks/rule-engine.d.ts +0 -1
  58. package/dist/blocks/rule-engine.js.map +1 -1
  59. package/dist/blocks/surface-event-context.d.ts +0 -1
  60. package/dist/blocks/surface-event-context.js.map +1 -1
  61. package/dist/blocks/surface-id-context.d.ts +0 -1
  62. package/dist/blocks/surface-id-context.js.map +1 -1
  63. package/dist/bus.d.ts +0 -1
  64. package/dist/bus.js.map +1 -1
  65. package/dist/cache/index.d.ts +0 -1
  66. package/dist/cache/index.js.map +1 -1
  67. package/dist/cache/memory.d.ts +0 -1
  68. package/dist/cache/memory.js.map +1 -1
  69. package/dist/cache/types.d.ts +0 -1
  70. package/dist/cache/types.js.map +1 -1
  71. package/dist/capability/index.d.ts +0 -1
  72. package/dist/capability/index.js.map +1 -1
  73. package/dist/capability/kernel-capabilities.d.ts +0 -1
  74. package/dist/capability/kernel-capabilities.js.map +1 -1
  75. package/dist/capability/platform-capabilities.d.ts +0 -1
  76. package/dist/capability/platform-capabilities.js.map +1 -1
  77. package/dist/capability/type-mapping.d.ts +0 -1
  78. package/dist/capability/type-mapping.js.map +1 -1
  79. package/dist/capability/validation.d.ts +0 -1
  80. package/dist/capability/validation.js.map +1 -1
  81. package/dist/connectors/declared-connector.d.ts +0 -1
  82. package/dist/connectors/declared-connector.js.map +1 -1
  83. package/dist/connectors/engine-registry.d.ts +0 -1
  84. package/dist/connectors/engine-registry.js.map +1 -1
  85. package/dist/connectors/index.d.ts +0 -1
  86. package/dist/connectors/index.js.map +1 -1
  87. package/dist/connectors/module-loader.d.ts +0 -1
  88. package/dist/connectors/module-loader.js.map +1 -1
  89. package/dist/connectors/types.d.ts +0 -1
  90. package/dist/connectors/types.js.map +1 -1
  91. package/dist/context.d.ts +0 -1
  92. package/dist/context.js.map +1 -1
  93. package/dist/data/DataCapabilityProvider.d.ts +0 -1
  94. package/dist/data/DataCapabilityProvider.js.map +1 -1
  95. package/dist/data/index.d.ts +0 -1
  96. package/dist/data/index.js.map +1 -1
  97. package/dist/data/manager.d.ts +0 -1
  98. package/dist/data/manager.js.map +1 -1
  99. package/dist/data/types.d.ts +0 -1
  100. package/dist/data/types.js.map +1 -1
  101. package/dist/entity/aggregate.d.ts +0 -1
  102. package/dist/entity/aggregate.js.map +1 -1
  103. package/dist/entity/apply-query.d.ts +0 -1
  104. package/dist/entity/apply-query.js.map +1 -1
  105. package/dist/entity/behavior.d.ts +0 -1
  106. package/dist/entity/behavior.js.map +1 -1
  107. package/dist/entity/connector.d.ts +0 -1
  108. package/dist/entity/connector.js.map +1 -1
  109. package/dist/entity/connectors/index.d.ts +0 -1
  110. package/dist/entity/connectors/index.js.map +1 -1
  111. package/dist/entity/connectors/static.d.ts +0 -1
  112. package/dist/entity/connectors/static.js.map +1 -1
  113. package/dist/entity/entity-datasource.d.ts +0 -1
  114. package/dist/entity/entity-datasource.js.map +1 -1
  115. package/dist/entity/facade.d.ts +0 -1
  116. package/dist/entity/facade.js.map +1 -1
  117. package/dist/entity/http-connector.d.ts +0 -1
  118. package/dist/entity/http-connector.js.map +1 -1
  119. package/dist/entity/index.d.ts +0 -1
  120. package/dist/entity/index.js.map +1 -1
  121. package/dist/entity/postgres-connector.d.ts +0 -1
  122. package/dist/entity/postgres-connector.js.map +1 -1
  123. package/dist/entity/registry.d.ts +0 -1
  124. package/dist/entity/registry.js.map +1 -1
  125. package/dist/entity/store.d.ts +0 -1
  126. package/dist/entity/store.js.map +1 -1
  127. package/dist/entity/types.d.ts +0 -1
  128. package/dist/entity/types.js.map +1 -1
  129. package/dist/execution-context.d.ts +0 -1
  130. package/dist/execution-context.js.map +1 -1
  131. package/dist/executor.d.ts +0 -1
  132. package/dist/executor.js.map +1 -1
  133. package/dist/forms/form-entity-bridge.d.ts +0 -1
  134. package/dist/forms/form-entity-bridge.js.map +1 -1
  135. package/dist/forms/form-write-target.d.ts +0 -1
  136. package/dist/forms/form-write-target.js.map +1 -1
  137. package/dist/forms/index.d.ts +0 -1
  138. package/dist/forms/index.js.map +1 -1
  139. package/dist/forms/named-control-values.d.ts +0 -1
  140. package/dist/forms/named-control-values.js.map +1 -1
  141. package/dist/forms/processor.d.ts +0 -1
  142. package/dist/forms/processor.js.map +1 -1
  143. package/dist/forms/types.d.ts +0 -1
  144. package/dist/forms/types.js.map +1 -1
  145. package/dist/forms/validator.d.ts +0 -1
  146. package/dist/forms/validator.js.map +1 -1
  147. package/dist/graph/index.d.ts +0 -1
  148. package/dist/graph/index.js.map +1 -1
  149. package/dist/graph/resolver.d.ts +0 -1
  150. package/dist/graph/resolver.js.map +1 -1
  151. package/dist/graph/types.d.ts +0 -1
  152. package/dist/graph/types.js.map +1 -1
  153. package/dist/hooks/useInstalledAtoms.d.ts +0 -1
  154. package/dist/hooks/useInstalledAtoms.js.map +1 -1
  155. package/dist/i18n/index.d.ts +0 -1
  156. package/dist/i18n/index.js.map +1 -1
  157. package/dist/i18n/translator.d.ts +0 -1
  158. package/dist/i18n/translator.js.map +1 -1
  159. package/dist/i18n/types.d.ts +0 -1
  160. package/dist/i18n/types.js.map +1 -1
  161. package/dist/index.d.ts +0 -1
  162. package/dist/index.js.map +1 -1
  163. package/dist/kernel.d.ts +0 -1
  164. package/dist/kernel.js.map +1 -1
  165. package/dist/perf/budget.d.ts +0 -1
  166. package/dist/perf/budget.js.map +1 -1
  167. package/dist/perf/index.d.ts +0 -1
  168. package/dist/perf/index.js.map +1 -1
  169. package/dist/perf/render-timer.d.ts +0 -1
  170. package/dist/perf/render-timer.js.map +1 -1
  171. package/dist/perf/reporter.d.ts +0 -1
  172. package/dist/perf/reporter.js.map +1 -1
  173. package/dist/perf/web-vitals.d.ts +0 -1
  174. package/dist/perf/web-vitals.js.map +1 -1
  175. package/dist/registry.d.ts +0 -1
  176. package/dist/registry.js.map +1 -1
  177. package/dist/render/BehaviorSurfaceProvider.d.ts +0 -1
  178. package/dist/render/BehaviorSurfaceProvider.js.map +1 -1
  179. package/dist/render/BlockErrorBoundary.d.ts +0 -1
  180. package/dist/render/BlockErrorBoundary.js.map +1 -1
  181. package/dist/render/DataBoundSurfaceRenderer.d.ts +0 -1
  182. package/dist/render/DataBoundSurfaceRenderer.js.map +1 -1
  183. package/dist/render/DynamicBlockWrapper.d.ts +0 -1
  184. package/dist/render/DynamicBlockWrapper.js.map +1 -1
  185. package/dist/render/appearance-resolver.d.ts +0 -1
  186. package/dist/render/appearance-resolver.js.map +1 -1
  187. package/dist/render/capability-gate.d.ts +0 -1
  188. package/dist/render/capability-gate.js.map +1 -1
  189. package/dist/render/conditional-states-css.d.ts +0 -1
  190. package/dist/render/conditional-states-css.js.map +1 -1
  191. package/dist/render/connections-context.d.ts +0 -1
  192. package/dist/render/connections-context.js.map +1 -1
  193. package/dist/render/dark-theme-css.d.ts +0 -1
  194. package/dist/render/dark-theme-css.js.map +1 -1
  195. package/dist/render/data-binding-types.d.ts +0 -1
  196. package/dist/render/data-binding-types.js.map +1 -1
  197. package/dist/render/data-cache.d.ts +0 -1
  198. package/dist/render/data-cache.js.map +1 -1
  199. package/dist/render/derive-dark-theme.d.ts +0 -1
  200. package/dist/render/derive-dark-theme.js.map +1 -1
  201. package/dist/render/dynamic-artifact-context.d.ts +0 -1
  202. package/dist/render/dynamic-artifact-context.js.map +1 -1
  203. package/dist/render/dynamic-block-loader.d.ts +0 -1
  204. package/dist/render/dynamic-block-loader.js.map +1 -1
  205. package/dist/render/endpoint.d.ts +0 -1
  206. package/dist/render/endpoint.js.map +1 -1
  207. package/dist/render/entity-facade-context.d.ts +0 -1
  208. package/dist/render/entity-facade-context.js.map +1 -1
  209. package/dist/render/group-states-css.d.ts +0 -1
  210. package/dist/render/group-states-css.js.map +1 -1
  211. package/dist/render/hooks/useSurfaceEvents.d.ts +0 -1
  212. package/dist/render/hooks/useSurfaceEvents.js.map +1 -1
  213. package/dist/render/hooks/useSurfaceId.d.ts +0 -1
  214. package/dist/render/hooks/useSurfaceId.js.map +1 -1
  215. package/dist/render/index.d.ts +0 -1
  216. package/dist/render/index.js.map +1 -1
  217. package/dist/render/interaction-rule-engine.d.ts +0 -1
  218. package/dist/render/interaction-rule-engine.js.map +1 -1
  219. package/dist/render/keyframes-css.d.ts +0 -1
  220. package/dist/render/keyframes-css.js.map +1 -1
  221. package/dist/render/query-state.d.ts +0 -1
  222. package/dist/render/query-state.js.map +1 -1
  223. package/dist/render/renderer.d.ts +0 -1
  224. package/dist/render/renderer.js.map +1 -1
  225. package/dist/render/resolve-expressions.d.ts +0 -1
  226. package/dist/render/resolve-expressions.js.map +1 -1
  227. package/dist/render/responsive-style-css.d.ts +0 -1
  228. package/dist/render/responsive-style-css.js.map +1 -1
  229. package/dist/render/responsive.d.ts +0 -1
  230. package/dist/render/responsive.js.map +1 -1
  231. package/dist/render/scoped-css.d.ts +0 -1
  232. package/dist/render/scoped-css.js.map +1 -1
  233. package/dist/render/shell-selection.d.ts +0 -1
  234. package/dist/render/shell-selection.js.map +1 -1
  235. package/dist/render/states-css.d.ts +0 -1
  236. package/dist/render/states-css.js.map +1 -1
  237. package/dist/render/surface-data-context.d.ts +0 -1
  238. package/dist/render/surface-data-context.js.map +1 -1
  239. package/dist/render/surface-event-bus.d.ts +0 -1
  240. package/dist/render/surface-event-bus.js.map +1 -1
  241. package/dist/render/surface-event-context.d.ts +0 -1
  242. package/dist/render/surface-event-context.js.map +1 -1
  243. package/dist/render/surface-id-context.d.ts +0 -1
  244. package/dist/render/surface-id-context.js.map +1 -1
  245. package/dist/render/theme-utils.d.ts +0 -1
  246. package/dist/render/theme-utils.js.map +1 -1
  247. package/dist/render/types.d.ts +0 -1
  248. package/dist/render/types.js.map +1 -1
  249. package/dist/render/visibility-css.d.ts +0 -1
  250. package/dist/render/visibility-css.js.map +1 -1
  251. package/dist/render/width-scope.d.ts +0 -1
  252. package/dist/render/width-scope.js.map +1 -1
  253. package/dist/render/write-only-sources.d.ts +0 -1
  254. package/dist/render/write-only-sources.js.map +1 -1
  255. package/dist/routing/index.d.ts +0 -1
  256. package/dist/routing/index.js.map +1 -1
  257. package/dist/routing/router.d.ts +0 -1
  258. package/dist/routing/router.js.map +1 -1
  259. package/dist/routing/types.d.ts +0 -1
  260. package/dist/routing/types.js.map +1 -1
  261. package/dist/seo/generator.d.ts +0 -1
  262. package/dist/seo/generator.js.map +1 -1
  263. package/dist/seo/index.d.ts +0 -1
  264. package/dist/seo/index.js.map +1 -1
  265. package/dist/seo/types.d.ts +0 -1
  266. package/dist/seo/types.js.map +1 -1
  267. package/dist/state/index.d.ts +0 -1
  268. package/dist/state/index.js.map +1 -1
  269. package/dist/state/manager.d.ts +0 -1
  270. package/dist/state/manager.js.map +1 -1
  271. package/dist/state/store.d.ts +0 -1
  272. package/dist/state/store.js.map +1 -1
  273. package/dist/state/types.d.ts +0 -1
  274. package/dist/state/types.js.map +1 -1
  275. package/dist/surface/expression.d.ts +0 -1
  276. package/dist/surface/expression.js.map +1 -1
  277. package/dist/surface/index.d.ts +0 -1
  278. package/dist/surface/index.js.map +1 -1
  279. package/dist/surface/interpreter.d.ts +0 -1
  280. package/dist/surface/interpreter.js.map +1 -1
  281. package/dist/surface/layout.d.ts +0 -1
  282. package/dist/surface/layout.js.map +1 -1
  283. package/dist/surface/output.d.ts +0 -1
  284. package/dist/surface/output.js.map +1 -1
  285. package/dist/surface/primitives.d.ts +0 -1
  286. package/dist/surface/primitives.js.map +1 -1
  287. package/dist/surface/renderer.d.ts +0 -1
  288. package/dist/surface/renderer.js.map +1 -1
  289. package/dist/surface/schemas.d.ts +0 -1
  290. package/dist/surface/schemas.js.map +1 -1
  291. package/dist/surface/transforms.d.ts +0 -1
  292. package/dist/surface/transforms.js.map +1 -1
  293. package/dist/surface/types.d.ts +0 -1
  294. package/dist/surface/types.js.map +1 -1
  295. package/dist/surface/validation.d.ts +0 -1
  296. package/dist/surface/validation.js.map +1 -1
  297. package/dist/validator.d.ts +0 -1
  298. package/dist/validator.js.map +1 -1
  299. package/package.json +41 -40
  300. package/dist/__tests__/dom-test-setup.d.ts +0 -21
  301. package/dist/__tests__/dom-test-setup.d.ts.map +0 -1
  302. package/dist/__tests__/dom-test-setup.js +0 -36
  303. package/dist/__tests__/dom-test-setup.js.map +0 -1
  304. package/dist/a11y/announcer.d.ts.map +0 -1
  305. package/dist/a11y/contrast.d.ts.map +0 -1
  306. package/dist/a11y/focus.d.ts.map +0 -1
  307. package/dist/a11y/index.d.ts.map +0 -1
  308. package/dist/a11y/keyboard.d.ts.map +0 -1
  309. package/dist/adapters/default-image.d.ts.map +0 -1
  310. package/dist/adapters/index.d.ts.map +0 -1
  311. package/dist/adapters/next-image.d.ts.map +0 -1
  312. package/dist/adapters/types.d.ts.map +0 -1
  313. package/dist/analytics/index.d.ts.map +0 -1
  314. package/dist/analytics/tracker.d.ts.map +0 -1
  315. package/dist/analytics/types.d.ts.map +0 -1
  316. package/dist/auth/index.d.ts.map +0 -1
  317. package/dist/auth/provider.d.ts.map +0 -1
  318. package/dist/auth/types.d.ts.map +0 -1
  319. package/dist/binding/collection.d.ts.map +0 -1
  320. package/dist/binding/datasource.d.ts.map +0 -1
  321. package/dist/binding/engine.d.ts.map +0 -1
  322. package/dist/binding/expression.d.ts.map +0 -1
  323. package/dist/binding/index.d.ts.map +0 -1
  324. package/dist/binding/two-way.d.ts.map +0 -1
  325. package/dist/binding/types.d.ts.map +0 -1
  326. package/dist/blocks/__test-fixtures__/block-fixtures.d.ts +0 -40
  327. package/dist/blocks/__test-fixtures__/block-fixtures.d.ts.map +0 -1
  328. package/dist/blocks/__test-fixtures__/block-fixtures.js +0 -506
  329. package/dist/blocks/__test-fixtures__/block-fixtures.js.map +0 -1
  330. package/dist/blocks/component-types.d.ts.map +0 -1
  331. package/dist/blocks/composition-rules.d.ts.map +0 -1
  332. package/dist/blocks/hooks.d.ts.map +0 -1
  333. package/dist/blocks/index.d.ts.map +0 -1
  334. package/dist/blocks/registry.d.ts.map +0 -1
  335. package/dist/blocks/rule-engine.d.ts.map +0 -1
  336. package/dist/blocks/surface-event-context.d.ts.map +0 -1
  337. package/dist/blocks/surface-id-context.d.ts.map +0 -1
  338. package/dist/bus.d.ts.map +0 -1
  339. package/dist/cache/index.d.ts.map +0 -1
  340. package/dist/cache/memory.d.ts.map +0 -1
  341. package/dist/cache/types.d.ts.map +0 -1
  342. package/dist/capability/index.d.ts.map +0 -1
  343. package/dist/capability/kernel-capabilities.d.ts.map +0 -1
  344. package/dist/capability/platform-capabilities.d.ts.map +0 -1
  345. package/dist/capability/type-mapping.d.ts.map +0 -1
  346. package/dist/capability/validation.d.ts.map +0 -1
  347. package/dist/connectors/declared-connector.d.ts.map +0 -1
  348. package/dist/connectors/engine-registry.d.ts.map +0 -1
  349. package/dist/connectors/index.d.ts.map +0 -1
  350. package/dist/connectors/module-loader.d.ts.map +0 -1
  351. package/dist/connectors/types.d.ts.map +0 -1
  352. package/dist/context.d.ts.map +0 -1
  353. package/dist/data/DataCapabilityProvider.d.ts.map +0 -1
  354. package/dist/data/index.d.ts.map +0 -1
  355. package/dist/data/manager.d.ts.map +0 -1
  356. package/dist/data/types.d.ts.map +0 -1
  357. package/dist/entity/aggregate.d.ts.map +0 -1
  358. package/dist/entity/apply-query.d.ts.map +0 -1
  359. package/dist/entity/behavior.d.ts.map +0 -1
  360. package/dist/entity/connector.d.ts.map +0 -1
  361. package/dist/entity/connectors/index.d.ts.map +0 -1
  362. package/dist/entity/connectors/static.d.ts.map +0 -1
  363. package/dist/entity/entity-datasource.d.ts.map +0 -1
  364. package/dist/entity/facade.d.ts.map +0 -1
  365. package/dist/entity/http-connector.d.ts.map +0 -1
  366. package/dist/entity/index.d.ts.map +0 -1
  367. package/dist/entity/postgres-connector.d.ts.map +0 -1
  368. package/dist/entity/registry.d.ts.map +0 -1
  369. package/dist/entity/store.d.ts.map +0 -1
  370. package/dist/entity/types.d.ts.map +0 -1
  371. package/dist/execution-context.d.ts.map +0 -1
  372. package/dist/executor.d.ts.map +0 -1
  373. package/dist/forms/form-entity-bridge.d.ts.map +0 -1
  374. package/dist/forms/form-write-target.d.ts.map +0 -1
  375. package/dist/forms/index.d.ts.map +0 -1
  376. package/dist/forms/named-control-values.d.ts.map +0 -1
  377. package/dist/forms/processor.d.ts.map +0 -1
  378. package/dist/forms/types.d.ts.map +0 -1
  379. package/dist/forms/validator.d.ts.map +0 -1
  380. package/dist/graph/index.d.ts.map +0 -1
  381. package/dist/graph/resolver.d.ts.map +0 -1
  382. package/dist/graph/types.d.ts.map +0 -1
  383. package/dist/hooks/useInstalledAtoms.d.ts.map +0 -1
  384. package/dist/i18n/index.d.ts.map +0 -1
  385. package/dist/i18n/translator.d.ts.map +0 -1
  386. package/dist/i18n/types.d.ts.map +0 -1
  387. package/dist/index.d.ts.map +0 -1
  388. package/dist/kernel.d.ts.map +0 -1
  389. package/dist/perf/budget.d.ts.map +0 -1
  390. package/dist/perf/index.d.ts.map +0 -1
  391. package/dist/perf/render-timer.d.ts.map +0 -1
  392. package/dist/perf/reporter.d.ts.map +0 -1
  393. package/dist/perf/web-vitals.d.ts.map +0 -1
  394. package/dist/registry.d.ts.map +0 -1
  395. package/dist/render/BehaviorSurfaceProvider.d.ts.map +0 -1
  396. package/dist/render/BlockErrorBoundary.d.ts.map +0 -1
  397. package/dist/render/DataBoundSurfaceRenderer.d.ts.map +0 -1
  398. package/dist/render/DynamicBlockWrapper.d.ts.map +0 -1
  399. package/dist/render/appearance-resolver.d.ts.map +0 -1
  400. package/dist/render/capability-gate.d.ts.map +0 -1
  401. package/dist/render/conditional-states-css.d.ts.map +0 -1
  402. package/dist/render/connections-context.d.ts.map +0 -1
  403. package/dist/render/dark-theme-css.d.ts.map +0 -1
  404. package/dist/render/data-binding-types.d.ts.map +0 -1
  405. package/dist/render/data-cache.d.ts.map +0 -1
  406. package/dist/render/derive-dark-theme.d.ts.map +0 -1
  407. package/dist/render/dynamic-artifact-context.d.ts.map +0 -1
  408. package/dist/render/dynamic-block-loader.d.ts.map +0 -1
  409. package/dist/render/endpoint.d.ts.map +0 -1
  410. package/dist/render/entity-facade-context.d.ts.map +0 -1
  411. package/dist/render/group-states-css.d.ts.map +0 -1
  412. package/dist/render/hooks/useSurfaceEvents.d.ts.map +0 -1
  413. package/dist/render/hooks/useSurfaceId.d.ts.map +0 -1
  414. package/dist/render/index.d.ts.map +0 -1
  415. package/dist/render/interaction-rule-engine.d.ts.map +0 -1
  416. package/dist/render/keyframes-css.d.ts.map +0 -1
  417. package/dist/render/query-state.d.ts.map +0 -1
  418. package/dist/render/renderer.d.ts.map +0 -1
  419. package/dist/render/resolve-expressions.d.ts.map +0 -1
  420. package/dist/render/responsive-style-css.d.ts.map +0 -1
  421. package/dist/render/responsive.d.ts.map +0 -1
  422. package/dist/render/scoped-css.d.ts.map +0 -1
  423. package/dist/render/shell-selection.d.ts.map +0 -1
  424. package/dist/render/states-css.d.ts.map +0 -1
  425. package/dist/render/surface-data-context.d.ts.map +0 -1
  426. package/dist/render/surface-event-bus.d.ts.map +0 -1
  427. package/dist/render/surface-event-context.d.ts.map +0 -1
  428. package/dist/render/surface-id-context.d.ts.map +0 -1
  429. package/dist/render/theme-utils.d.ts.map +0 -1
  430. package/dist/render/types.d.ts.map +0 -1
  431. package/dist/render/visibility-css.d.ts.map +0 -1
  432. package/dist/render/width-scope.d.ts.map +0 -1
  433. package/dist/render/write-only-sources.d.ts.map +0 -1
  434. package/dist/routing/index.d.ts.map +0 -1
  435. package/dist/routing/router.d.ts.map +0 -1
  436. package/dist/routing/types.d.ts.map +0 -1
  437. package/dist/seo/generator.d.ts.map +0 -1
  438. package/dist/seo/index.d.ts.map +0 -1
  439. package/dist/seo/types.d.ts.map +0 -1
  440. package/dist/state/index.d.ts.map +0 -1
  441. package/dist/state/manager.d.ts.map +0 -1
  442. package/dist/state/store.d.ts.map +0 -1
  443. package/dist/state/types.d.ts.map +0 -1
  444. package/dist/surface/expression.d.ts.map +0 -1
  445. package/dist/surface/index.d.ts.map +0 -1
  446. package/dist/surface/interpreter.d.ts.map +0 -1
  447. package/dist/surface/layout.d.ts.map +0 -1
  448. package/dist/surface/output.d.ts.map +0 -1
  449. package/dist/surface/primitives.d.ts.map +0 -1
  450. package/dist/surface/renderer.d.ts.map +0 -1
  451. package/dist/surface/schemas.d.ts.map +0 -1
  452. package/dist/surface/transforms.d.ts.map +0 -1
  453. package/dist/surface/types.d.ts.map +0 -1
  454. package/dist/surface/validation.d.ts.map +0 -1
  455. package/dist/validator.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/seo/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/seo/generator.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * SEO Capability Implementation\n *\n * Meta tag generation, JSON-LD structured data, and Open Graph tags\n *\n * All outputs are plain serializable objects suitable for SSR.\n *\n * @module @pwfabric/runtime/seo/generator\n */\n\nimport type {\n SeoCapability,\n MetaTagInput,\n MetaTagOutput,\n MetaTag,\n LinkTag,\n StructuredDataInput,\n StructuredDataOutput,\n OpenGraphInput,\n OpenGraphOutput,\n SeoConfig,\n SeoOutput,\n} from './types.js'\n\n// ============================================================\n// DEFAULT SEO CAPABILITY\n// ============================================================\n\n/**\n * Default SEO capability implementation\n */\nexport class DefaultSeoCapability implements SeoCapability {\n private readonly defaults: SeoDefaults\n\n constructor(defaults?: Partial<SeoDefaults>) {\n this.defaults = {\n siteName: defaults?.siteName ?? '',\n titleSeparator: defaults?.titleSeparator ?? ' | ',\n defaultViewport: defaults?.defaultViewport ?? 'width=device-width, initial-scale=1',\n defaultCharset: defaults?.defaultCharset ?? 'utf-8',\n defaultRobots: defaults?.defaultRobots ?? 'index, follow',\n }\n }\n\n generateMetaTags(input: MetaTagInput): MetaTagOutput {\n const meta: MetaTag[] = []\n const link: LinkTag[] = []\n\n // Title (may include site name suffix)\n let title = input.title\n if (this.defaults.siteName && !title.includes(this.defaults.siteName)) {\n title = `${input.title}${this.defaults.titleSeparator}${this.defaults.siteName}`\n }\n\n // Charset\n const charset = input.charset ?? this.defaults.defaultCharset\n meta.push({ httpEquiv: 'Content-Type', content: `text/html; charset=${charset}` })\n\n // Viewport\n const viewport = input.viewport ?? this.defaults.defaultViewport\n meta.push({ name: 'viewport', content: viewport })\n\n // Description\n if (input.description) {\n meta.push({ name: 'description', content: input.description })\n }\n\n // Keywords\n if (input.keywords && input.keywords.length > 0) {\n meta.push({ name: 'keywords', content: input.keywords.join(', ') })\n }\n\n // Author\n if (input.author) {\n meta.push({ name: 'author', content: input.author })\n }\n\n // Robots\n const robots = input.robots ?? this.defaults.defaultRobots\n meta.push({ name: 'robots', content: robots })\n\n // Canonical\n if (input.canonical) {\n link.push({ rel: 'canonical', href: input.canonical })\n }\n\n // Custom tags\n if (input.custom) {\n for (const customTag of input.custom) {\n meta.push(customTag)\n }\n }\n\n return { title, meta, link }\n }\n\n generateStructuredData(input: StructuredDataInput): StructuredDataOutput {\n const data: Record<string, unknown> = {\n '@context': 'https://schema.org',\n '@type': input.type,\n name: input.name,\n }\n\n if (input.description) {\n data.description = input.description\n }\n\n if (input.url) {\n data.url = input.url\n }\n\n if (input.image) {\n data.image = input.image\n }\n\n if (input.datePublished) {\n data.datePublished = input.datePublished\n }\n\n if (input.dateModified) {\n data.dateModified = input.dateModified\n }\n\n // Author\n if (input.author) {\n data.author = {\n '@type': input.author.type,\n name: input.author.name,\n ...(input.author.url ? { url: input.author.url } : {}),\n }\n }\n\n // Publisher\n if (input.publisher) {\n const publisher: Record<string, unknown> = {\n '@type': 'Organization',\n name: input.publisher.name,\n }\n if (input.publisher.url) {\n publisher.url = input.publisher.url\n }\n if (input.publisher.logo) {\n publisher.logo = {\n '@type': 'ImageObject',\n url: input.publisher.logo,\n }\n }\n data.publisher = publisher\n }\n\n // Breadcrumbs\n if (input.breadcrumbs && input.breadcrumbs.length > 0) {\n data['@type'] = 'BreadcrumbList'\n data.itemListElement = input.breadcrumbs.map((crumb, index) => ({\n '@type': 'ListItem',\n position: index + 1,\n name: crumb.name,\n item: crumb.url,\n }))\n }\n\n // FAQ\n if (input.faq && input.faq.length > 0) {\n data['@type'] = 'FAQPage'\n data.mainEntity = input.faq.map((item) => ({\n '@type': 'Question',\n name: item.question,\n acceptedAnswer: {\n '@type': 'Answer',\n text: item.answer,\n },\n }))\n }\n\n // Custom properties\n if (input.custom) {\n for (const [key, value] of Object.entries(input.custom)) {\n if (key !== '@context' && key !== '@type') {\n data[key] = value\n }\n }\n }\n\n const script = JSON.stringify(data)\n\n return { script, data }\n }\n\n generateOpenGraph(input: OpenGraphInput): OpenGraphOutput {\n const meta: MetaTag[] = []\n\n // Required OG tags\n meta.push({ property: 'og:title', content: input.title })\n meta.push({ property: 'og:type', content: input.type ?? 'website' })\n\n // Optional OG tags\n if (input.description) {\n meta.push({ property: 'og:description', content: input.description })\n }\n\n if (input.url) {\n meta.push({ property: 'og:url', content: input.url })\n }\n\n if (input.image) {\n meta.push({ property: 'og:image', content: input.image })\n if (input.imageWidth) {\n meta.push({ property: 'og:image:width', content: String(input.imageWidth) })\n }\n if (input.imageHeight) {\n meta.push({ property: 'og:image:height', content: String(input.imageHeight) })\n }\n if (input.imageAlt) {\n meta.push({ property: 'og:image:alt', content: input.imageAlt })\n }\n }\n\n if (input.siteName) {\n meta.push({ property: 'og:site_name', content: input.siteName })\n }\n\n if (input.locale) {\n meta.push({ property: 'og:locale', content: input.locale })\n }\n\n if (input.localeAlternates) {\n for (const alt of input.localeAlternates) {\n meta.push({ property: 'og:locale:alternate', content: alt })\n }\n }\n\n // Article-specific tags\n if (input.article) {\n if (input.article.publishedTime) {\n meta.push({ property: 'article:published_time', content: input.article.publishedTime })\n }\n if (input.article.modifiedTime) {\n meta.push({ property: 'article:modified_time', content: input.article.modifiedTime })\n }\n if (input.article.author) {\n meta.push({ property: 'article:author', content: input.article.author })\n }\n if (input.article.section) {\n meta.push({ property: 'article:section', content: input.article.section })\n }\n if (input.article.tags) {\n for (const tag of input.article.tags) {\n meta.push({ property: 'article:tag', content: tag })\n }\n }\n }\n\n // Twitter card\n if (input.twitter) {\n meta.push({ name: 'twitter:card', content: input.twitter.card ?? 'summary' })\n if (input.twitter.site) {\n meta.push({ name: 'twitter:site', content: input.twitter.site })\n }\n if (input.twitter.creator) {\n meta.push({ name: 'twitter:creator', content: input.twitter.creator })\n }\n }\n\n return { meta }\n }\n\n generateAll(config: SeoConfig): SeoOutput {\n const output: {\n metaTags: MetaTagOutput\n structuredData?: StructuredDataOutput\n openGraph?: OpenGraphOutput\n } = {\n metaTags: this.generateMetaTags(config.meta),\n }\n\n if (config.structuredData) {\n output.structuredData = this.generateStructuredData(config.structuredData)\n }\n\n if (config.openGraph) {\n output.openGraph = this.generateOpenGraph(config.openGraph)\n }\n\n return output\n }\n}\n\n// ============================================================\n// DEFAULTS\n// ============================================================\n\ninterface SeoDefaults {\n siteName: string\n titleSeparator: string\n defaultViewport: string\n defaultCharset: string\n defaultRobots: string\n}\n\n// ============================================================\n// FACTORY FUNCTION\n// ============================================================\n\n/**\n * Create an SEO capability instance\n */\nexport function createSeoCapability(defaults?: {\n siteName?: string\n titleSeparator?: string\n defaultViewport?: string\n defaultCharset?: string\n defaultRobots?: string\n}): SeoCapability {\n return new DefaultSeoCapability(defaults)\n}\n"]}
@@ -12,4 +12,3 @@
12
12
  */
13
13
  export type { MetaTag, MetaTagInput, MetaTagOutput, LinkTag, StructuredDataType, StructuredDataInput, PersonInput, OrganizationInput, BreadcrumbInput, FaqInput, StructuredDataOutput, OpenGraphType, OpenGraphInput, OpenGraphArticle, TwitterCardInput, OpenGraphOutput, SeoCapability, SeoConfig, SeoOutput, } from './types.js';
14
14
  export { DefaultSeoCapability, createSeoCapability } from './generator.js';
15
- //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/seo/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAyBH,kBAAkB;AAClB,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/seo/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAyBH,kBAAkB;AAClB,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA","sourcesContent":["/**\n * SEO Capability Module\n *\n * Meta tag generation, structured data, and Open Graph tags\n *\n * Exports:\n * - Types: MetaTagInput, StructuredDataInput, OpenGraphInput, SeoCapability, etc.\n * - Implementations: DefaultSeoCapability\n * - Factory functions: createSeoCapability\n *\n * @module @pwfabric/runtime/seo\n */\n\n// Types\nexport type {\n MetaTag,\n MetaTagInput,\n MetaTagOutput,\n LinkTag,\n StructuredDataType,\n StructuredDataInput,\n PersonInput,\n OrganizationInput,\n BreadcrumbInput,\n FaqInput,\n StructuredDataOutput,\n OpenGraphType,\n OpenGraphInput,\n OpenGraphArticle,\n TwitterCardInput,\n OpenGraphOutput,\n SeoCapability,\n SeoConfig,\n SeoOutput,\n} from './types.js'\n\n// Implementations\nexport { DefaultSeoCapability, createSeoCapability } from './generator.js'\n"]}
@@ -179,4 +179,3 @@ export interface SeoOutput {
179
179
  readonly structuredData?: StructuredDataOutput;
180
180
  readonly openGraph?: OpenGraphOutput;
181
181
  }
182
- //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/seo/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/seo/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG","sourcesContent":["/**\n * SEO Capability Types\n *\n * Meta tag generation, structured data, and Open Graph tags\n *\n * @module @pwfabric/runtime/seo/types\n */\n\n// ============================================================\n// META TAGS\n// ============================================================\n\n/**\n * Meta tag definition\n */\nexport interface MetaTag {\n readonly name?: string\n readonly property?: string\n readonly httpEquiv?: string\n readonly content: string\n}\n\n/**\n * Input for generating meta tags\n */\nexport interface MetaTagInput {\n readonly title: string\n readonly description?: string\n readonly keywords?: readonly string[]\n readonly author?: string\n readonly robots?: string\n readonly canonical?: string\n readonly viewport?: string\n readonly charset?: string\n readonly custom?: readonly MetaTag[]\n}\n\n/**\n * Generated meta tag output (serializable for SSR)\n */\nexport interface MetaTagOutput {\n readonly title: string\n readonly meta: readonly MetaTag[]\n readonly link: readonly LinkTag[]\n}\n\n/**\n * Link tag definition\n */\nexport interface LinkTag {\n readonly rel: string\n readonly href: string\n readonly type?: string\n readonly hreflang?: string\n}\n\n// ============================================================\n// STRUCTURED DATA (JSON-LD)\n// ============================================================\n\n/**\n * JSON-LD structured data type\n */\nexport type StructuredDataType =\n | 'WebSite'\n | 'WebPage'\n | 'Article'\n | 'Organization'\n | 'Person'\n | 'BreadcrumbList'\n | 'FAQPage'\n | 'Product'\n | 'LocalBusiness'\n | string\n\n/**\n * Input for generating structured data\n */\nexport interface StructuredDataInput {\n readonly type: StructuredDataType\n readonly name: string\n readonly description?: string\n readonly url?: string\n readonly image?: string | readonly string[]\n readonly datePublished?: string\n readonly dateModified?: string\n readonly author?: PersonInput | OrganizationInput\n readonly publisher?: OrganizationInput\n readonly breadcrumbs?: readonly BreadcrumbInput[]\n readonly faq?: readonly FaqInput[]\n readonly custom?: Readonly<Record<string, unknown>>\n}\n\n/**\n * Person input for structured data\n */\nexport interface PersonInput {\n readonly type: 'Person'\n readonly name: string\n readonly url?: string\n}\n\n/**\n * Organization input for structured data\n */\nexport interface OrganizationInput {\n readonly type: 'Organization'\n readonly name: string\n readonly url?: string\n readonly logo?: string\n}\n\n/**\n * Breadcrumb input\n */\nexport interface BreadcrumbInput {\n readonly name: string\n readonly url: string\n}\n\n/**\n * FAQ input\n */\nexport interface FaqInput {\n readonly question: string\n readonly answer: string\n}\n\n/**\n * Generated JSON-LD output (serializable)\n */\nexport interface StructuredDataOutput {\n readonly script: string\n readonly data: Readonly<Record<string, unknown>>\n}\n\n// ============================================================\n// OPEN GRAPH\n// ============================================================\n\n/**\n * Open Graph type\n */\nexport type OpenGraphType = 'website' | 'article' | 'profile' | 'video' | 'music' | string\n\n/**\n * Input for generating Open Graph tags\n */\nexport interface OpenGraphInput {\n readonly title: string\n readonly description?: string\n readonly url?: string\n readonly image?: string\n readonly imageWidth?: number\n readonly imageHeight?: number\n readonly imageAlt?: string\n readonly type?: OpenGraphType\n readonly siteName?: string\n readonly locale?: string\n readonly localeAlternates?: readonly string[]\n readonly article?: OpenGraphArticle\n readonly twitter?: TwitterCardInput\n}\n\n/**\n * Article-specific Open Graph data\n */\nexport interface OpenGraphArticle {\n readonly publishedTime?: string\n readonly modifiedTime?: string\n readonly author?: string\n readonly section?: string\n readonly tags?: readonly string[]\n}\n\n/**\n * Twitter card input\n */\nexport interface TwitterCardInput {\n readonly card?: 'summary' | 'summary_large_image' | 'app' | 'player'\n readonly site?: string\n readonly creator?: string\n}\n\n/**\n * Generated Open Graph output (serializable)\n */\nexport interface OpenGraphOutput {\n readonly meta: readonly MetaTag[]\n}\n\n// ============================================================\n// SEO CAPABILITY INTERFACE\n// ============================================================\n\n/**\n * SEO capability interface for generating SEO-related markup\n */\nexport interface SeoCapability {\n /** Generate meta tags from input */\n generateMetaTags(input: MetaTagInput): MetaTagOutput\n\n /** Generate JSON-LD structured data */\n generateStructuredData(input: StructuredDataInput): StructuredDataOutput\n\n /** Generate Open Graph (and Twitter card) tags */\n generateOpenGraph(input: OpenGraphInput): OpenGraphOutput\n\n /** Combine all SEO outputs into a single serializable object */\n generateAll(config: SeoConfig): SeoOutput\n}\n\n/**\n * Combined SEO configuration\n */\nexport interface SeoConfig {\n readonly meta: MetaTagInput\n readonly structuredData?: StructuredDataInput\n readonly openGraph?: OpenGraphInput\n}\n\n/**\n * Combined SEO output (serializable for SSR)\n */\nexport interface SeoOutput {\n readonly metaTags: MetaTagOutput\n readonly structuredData?: StructuredDataOutput\n readonly openGraph?: OpenGraphOutput\n}\n"]}
@@ -13,4 +13,3 @@
13
13
  export type { StateStore, SurfaceStateManager, StateChangeEvent, StateChangeListener, StateStoreConfig, StateHistoryEntry, } from './types.js';
14
14
  export { InMemoryStateStore, createStateStore } from './store.js';
15
15
  export { DefaultSurfaceStateManager, createSurfaceStateManager } from './manager.js';
16
- //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/state/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAYH,kBAAkB;AAClB,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AACjE,OAAO,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/state/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAYH,kBAAkB;AAClB,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AACjE,OAAO,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA","sourcesContent":["/**\n * State Management Module\n *\n * State management capability for surfaces\n *\n * Exports:\n * - Types: StateStore, SurfaceStateManager, StateChangeEvent, etc.\n * - Implementations: InMemoryStateStore, DefaultSurfaceStateManager\n * - Factory functions: createStateStore, createSurfaceStateManager\n *\n * @module @pwfabric/runtime/state\n */\n\n// Types\nexport type {\n StateStore,\n SurfaceStateManager,\n StateChangeEvent,\n StateChangeListener,\n StateStoreConfig,\n StateHistoryEntry,\n} from './types.js'\n\n// Implementations\nexport { InMemoryStateStore, createStateStore } from './store.js'\nexport { DefaultSurfaceStateManager, createSurfaceStateManager } from './manager.js'\n"]}
@@ -31,4 +31,3 @@ export declare class DefaultSurfaceStateManager implements SurfaceStateManager {
31
31
  * Create a surface state manager
32
32
  */
33
33
  export declare function createSurfaceStateManager(config?: StateStoreConfig): SurfaceStateManager;
34
- //# sourceMappingURL=manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/state/manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAE/C,+DAA+D;AAC/D,gCAAgC;AAChC,+DAA+D;AAE/D;;;GAGG;AACH,MAAM,OAAO,0BAA0B;IACpB,MAAM,GAAG,IAAI,GAAG,EAA+B,CAAA;IAC/C,aAAa,CAAkB;IAEhD,YAAY,gBAAkC,EAAE;QAC9C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;IACpC,CAAC;IAED,WAAW,CAAI,SAAiB,EAAE,YAAe;QAC/C,wEAAwE;QACxE,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,2CAA2C,SAAS,EAAE,CAAC,CAAA;QACzE,CAAC;QAED,+DAA+D;QAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAA;QAC5D,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAU,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QAE9E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QAEjC,OAAO,KAAsB,CAAA;IAC/B,CAAC;IAED,QAAQ,CAAI,SAAiB;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAA8B,CAAA;IAChE,CAAC;IAED,QAAQ,CAAC,SAAiB;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACnC,CAAC;IAED,YAAY,CAAC,SAAiB;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACxC,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,KAAK,EAAE,CAAA;YACb,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC;IAED,UAAU;QACR,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,KAAK,CAAC,KAAK,EAAE,CAAA;QACf,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;IACrB,CAAC;IAED,aAAa;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;IACvC,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAI,SAAiB,EAAE,YAAgB;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAI,SAAS,CAAC,CAAA;QAC5C,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAA;QACjB,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAI,SAAS,EAAE,YAAY,IAAK,EAAQ,CAAC,CAAA;IAClE,CAAC;IAEO,qBAAqB,CAAI,YAAe;QAC9C,6DAA6D;QAC7D,IAAI,YAAY,KAAK,IAAI,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9F,OAAO,YAAuC,CAAA;QAChD,CAAC;QAED,mCAAmC;QACnC,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAA;IAChC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAyB;IACjE,OAAO,IAAI,0BAA0B,CAAC,MAAM,CAAC,CAAA;AAC/C,CAAC"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/state/manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAE/C,+DAA+D;AAC/D,gCAAgC;AAChC,+DAA+D;AAE/D;;;GAGG;AACH,MAAM,OAAO,0BAA0B;IACpB,MAAM,GAAG,IAAI,GAAG,EAA+B,CAAA;IAC/C,aAAa,CAAkB;IAEhD,YAAY,gBAAkC,EAAE;QAC9C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;IACpC,CAAC;IAED,WAAW,CAAI,SAAiB,EAAE,YAAe;QAC/C,wEAAwE;QACxE,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,2CAA2C,SAAS,EAAE,CAAC,CAAA;QACzE,CAAC;QAED,+DAA+D;QAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAA;QAC5D,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAU,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QAE9E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QAEjC,OAAO,KAAsB,CAAA;IAC/B,CAAC;IAED,QAAQ,CAAI,SAAiB;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAA8B,CAAA;IAChE,CAAC;IAED,QAAQ,CAAC,SAAiB;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACnC,CAAC;IAED,YAAY,CAAC,SAAiB;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACxC,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,KAAK,EAAE,CAAA;YACb,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC;IAED,UAAU;QACR,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,KAAK,CAAC,KAAK,EAAE,CAAA;QACf,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;IACrB,CAAC;IAED,aAAa;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;IACvC,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAI,SAAiB,EAAE,YAAgB;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAI,SAAS,CAAC,CAAA;QAC5C,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAA;QACjB,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAI,SAAS,EAAE,YAAY,IAAK,EAAQ,CAAC,CAAA;IAClE,CAAC;IAEO,qBAAqB,CAAI,YAAe;QAC9C,6DAA6D;QAC7D,IAAI,YAAY,KAAK,IAAI,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9F,OAAO,YAAuC,CAAA;QAChD,CAAC;QAED,mCAAmC;QACnC,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAA;IAChC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAyB;IACjE,OAAO,IAAI,0BAA0B,CAAC,MAAM,CAAC,CAAA;AAC/C,CAAC","sourcesContent":["/**\n * Surface State Manager\n *\n * Manager for surface-scoped state stores\n *\n * @module @pwfabric/runtime/state/manager\n */\n\nimport type { SurfaceStateManager, StateStore, StateStoreConfig } from './types.js'\nimport { InMemoryStateStore } from './store.js'\n\n// ============================================================\n// DEFAULT SURFACE STATE MANAGER\n// ============================================================\n\n/**\n * Default implementation of SurfaceStateManager\n * Manages multiple state stores, one per surface\n */\nexport class DefaultSurfaceStateManager implements SurfaceStateManager {\n private readonly stores = new Map<string, StateStore<unknown>>()\n private readonly defaultConfig: StateStoreConfig\n\n constructor(defaultConfig: StateStoreConfig = {}) {\n this.defaultConfig = defaultConfig\n }\n\n createStore<T>(surfaceId: string, initialState: T): StateStore<T> {\n // If store already exists, throw error to prevent accidental overwrites\n if (this.stores.has(surfaceId)) {\n throw new Error(`State store already exists for surface: ${surfaceId}`)\n }\n\n // Convert single value initialState to object format if needed\n const stateObject = this.normalizeInitialState(initialState)\n const store = new InMemoryStateStore<unknown>(stateObject, this.defaultConfig)\n\n this.stores.set(surfaceId, store)\n\n return store as StateStore<T>\n }\n\n getStore<T>(surfaceId: string): StateStore<T> | undefined {\n return this.stores.get(surfaceId) as StateStore<T> | undefined\n }\n\n hasStore(surfaceId: string): boolean {\n return this.stores.has(surfaceId)\n }\n\n destroyStore(surfaceId: string): void {\n const store = this.stores.get(surfaceId)\n if (store) {\n store.clear()\n this.stores.delete(surfaceId)\n }\n }\n\n destroyAll(): void {\n for (const store of this.stores.values()) {\n store.clear()\n }\n this.stores.clear()\n }\n\n getSurfaceIds(): string[] {\n return Array.from(this.stores.keys())\n }\n\n /**\n * Get or create a store for a surface\n * Creates a new store with empty initial state if it doesn't exist\n */\n getOrCreateStore<T>(surfaceId: string, initialState?: T): StateStore<T> {\n const existing = this.getStore<T>(surfaceId)\n if (existing) {\n return existing\n }\n\n return this.createStore<T>(surfaceId, initialState ?? ({} as T))\n }\n\n private normalizeInitialState<T>(initialState: T): Record<string, unknown> {\n // If already an object (but not null/array), use it directly\n if (initialState !== null && typeof initialState === 'object' && !Array.isArray(initialState)) {\n return initialState as Record<string, unknown>\n }\n\n // Otherwise, wrap in a 'value' key\n return { value: initialState }\n }\n}\n\n/**\n * Create a surface state manager\n */\nexport function createSurfaceStateManager(config?: StateStoreConfig): SurfaceStateManager {\n return new DefaultSurfaceStateManager(config)\n}\n"]}
@@ -38,4 +38,3 @@ export declare class InMemoryStateStore<T = unknown> implements StateStore<T> {
38
38
  * Create an in-memory state store
39
39
  */
40
40
  export declare function createStateStore<T = unknown>(initialState?: Record<string, T>, config?: StateStoreConfig): StateStore<T>;
41
- //# sourceMappingURL=store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/state/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/state/store.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * In-Memory State Store\n *\n * In-memory state store implementation with reactive subscriptions\n *\n * @module @pwfabric/runtime/state/store\n */\n\nimport type {\n StateStore,\n StateChangeEvent,\n StateChangeListener,\n StateStoreConfig,\n StateHistoryEntry,\n} from './types.js'\n\n// ============================================================\n// IN-MEMORY STATE STORE\n// ============================================================\n\n/**\n * In-memory implementation of StateStore with reactive subscriptions\n */\nexport class InMemoryStateStore<T = unknown> implements StateStore<T> {\n private readonly state = new Map<string, T>()\n private readonly listeners = new Map<string, Set<StateChangeListener<T>>>()\n private readonly history = new Map<string, StateHistoryEntry<T>[]>()\n private readonly config: Required<StateStoreConfig>\n\n constructor(initialState: Record<string, T> = {}, config: StateStoreConfig = {}) {\n this.config = {\n enableHistory: config.enableHistory ?? false,\n maxHistorySize: config.maxHistorySize ?? 100,\n deepClone: config.deepClone ?? false,\n }\n\n // Initialize with initial state\n for (const [key, value] of Object.entries(initialState)) {\n this.state.set(key, this.maybeClone(value))\n }\n }\n\n get(key: string): T | undefined {\n const value = this.state.get(key)\n return value !== undefined ? this.maybeClone(value) : undefined\n }\n\n set(key: string, value: T): void {\n const previousValue = this.state.get(key)\n const newValue = this.maybeClone(value)\n\n this.state.set(key, newValue)\n\n // Record history if enabled\n if (this.config.enableHistory) {\n this.recordHistory(key, newValue)\n }\n\n // Notify listeners\n const event: StateChangeEvent<T> = {\n key,\n previousValue,\n newValue,\n timestamp: Date.now(),\n }\n\n this.notifyListeners(key, newValue, event)\n }\n\n subscribe(key: string, listener: StateChangeListener<T>): () => void {\n let keyListeners = this.listeners.get(key)\n if (!keyListeners) {\n keyListeners = new Set()\n this.listeners.set(key, keyListeners)\n }\n\n keyListeners.add(listener)\n\n // Return unsubscribe function\n return () => {\n keyListeners.delete(listener)\n if (keyListeners.size === 0) {\n this.listeners.delete(key)\n }\n }\n }\n\n clear(): void {\n this.state.clear()\n this.listeners.clear()\n this.history.clear()\n }\n\n keys(): string[] {\n return Array.from(this.state.keys())\n }\n\n has(key: string): boolean {\n return this.state.has(key)\n }\n\n size(): number {\n return this.state.size\n }\n\n /**\n * Get state change history for a key (if history is enabled)\n */\n getHistory(key: string): readonly StateHistoryEntry<T>[] {\n return this.history.get(key) ?? []\n }\n\n /**\n * Get all current state as an object\n */\n getSnapshot(): Record<string, T> {\n const snapshot: Record<string, T> = {}\n for (const [key, value] of this.state) {\n snapshot[key] = this.maybeClone(value)\n }\n return snapshot\n }\n\n private notifyListeners(key: string, value: T, event: StateChangeEvent<T>): void {\n const keyListeners = this.listeners.get(key)\n if (keyListeners) {\n for (const listener of keyListeners) {\n try {\n listener(value, event)\n } catch {\n // Swallow errors from listeners to prevent one bad listener from breaking others\n }\n }\n }\n }\n\n private recordHistory(key: string, value: T): void {\n let keyHistory = this.history.get(key)\n if (!keyHistory) {\n keyHistory = []\n this.history.set(key, keyHistory)\n }\n\n keyHistory.push({\n value: this.maybeClone(value),\n timestamp: Date.now(),\n })\n\n // Trim history if exceeds max size\n while (keyHistory.length > this.config.maxHistorySize) {\n keyHistory.shift()\n }\n }\n\n private maybeClone(value: T): T {\n if (!this.config.deepClone) {\n return value\n }\n\n // Simple deep clone using JSON (works for most cases)\n // For more complex cases, a proper deep clone library would be needed\n try {\n return JSON.parse(JSON.stringify(value)) as T\n } catch {\n // If cloning fails, return original value\n return value\n }\n }\n}\n\n/**\n * Create an in-memory state store\n */\nexport function createStateStore<T = unknown>(\n initialState?: Record<string, T>,\n config?: StateStoreConfig\n): StateStore<T> {\n return new InMemoryStateStore<T>(initialState, config)\n}\n"]}
@@ -105,4 +105,3 @@ export interface StateHistoryEntry<T = unknown> {
105
105
  readonly value: T;
106
106
  readonly timestamp: number;
107
107
  }
108
- //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/state/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/state/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG","sourcesContent":["/**\n * State Management Types\n *\n * State management capability for surfaces\n *\n * @module @pwfabric/runtime/state/types\n */\n\n// ============================================================\n// STATE CHANGE EVENT\n// ============================================================\n\n/**\n * Event emitted when state changes\n */\nexport interface StateChangeEvent<T = unknown> {\n readonly key: string\n readonly previousValue: T | undefined\n readonly newValue: T\n readonly timestamp: number\n}\n\n/**\n * State change listener callback\n */\nexport type StateChangeListener<T = unknown> = (value: T, event: StateChangeEvent<T>) => void\n\n// ============================================================\n// STATE STORE\n// ============================================================\n\n/**\n * State store interface for managing reactive state\n */\nexport interface StateStore<T = unknown> {\n /**\n * Get a value from the store\n */\n get(key: string): T | undefined\n\n /**\n * Set a value in the store\n */\n set(key: string, value: T): void\n\n /**\n * Subscribe to changes for a specific key\n * Returns an unsubscribe function\n */\n subscribe(key: string, listener: StateChangeListener<T>): () => void\n\n /**\n * Clear all state from the store\n */\n clear(): void\n\n /**\n * Get all keys in the store\n */\n keys(): string[]\n\n /**\n * Check if a key exists in the store\n */\n has(key: string): boolean\n\n /**\n * Get the number of entries in the store\n */\n size(): number\n}\n\n// ============================================================\n// SURFACE STATE MANAGER\n// ============================================================\n\n/**\n * Manager for surface-scoped state stores\n */\nexport interface SurfaceStateManager {\n /**\n * Create a new store for a surface with initial state\n */\n createStore<T>(surfaceId: string, initialState: T): StateStore<T>\n\n /**\n * Get an existing store for a surface\n */\n getStore<T>(surfaceId: string): StateStore<T> | undefined\n\n /**\n * Check if a store exists for a surface\n */\n hasStore(surfaceId: string): boolean\n\n /**\n * Destroy a store for a surface\n */\n destroyStore(surfaceId: string): void\n\n /**\n * Destroy all stores\n */\n destroyAll(): void\n\n /**\n * Get all surface IDs with active stores\n */\n getSurfaceIds(): string[]\n}\n\n// ============================================================\n// STATE CONFIGURATION\n// ============================================================\n\n/**\n * Configuration for state store\n */\nexport interface StateStoreConfig {\n /**\n * Whether to enable state change history\n */\n readonly enableHistory?: boolean\n\n /**\n * Maximum history entries to keep per key\n */\n readonly maxHistorySize?: number\n\n /**\n * Whether to deep clone values on get/set\n */\n readonly deepClone?: boolean\n}\n\n/**\n * State history entry\n */\nexport interface StateHistoryEntry<T = unknown> {\n readonly value: T\n readonly timestamp: number\n}\n"]}
@@ -63,4 +63,3 @@ export declare const DEFAULT_HELPERS: Record<string, (...args: unknown[]) => unk
63
63
  * Create an expression context with default helpers
64
64
  */
65
65
  export declare function createExpressionContext(data: Record<string, unknown>, additionalHelpers?: Record<string, (...args: unknown[]) => unknown>): ExpressionContext;
66
- //# sourceMappingURL=expression.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"expression.js","sourceRoot":"","sources":["../../src/surface/expression.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expression.js","sourceRoot":"","sources":["../../src/surface/expression.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Expression Evaluator\n *\n * Safe expression evaluation for surface rendering\n *\n * Expressions are used in conditionals, loops, and data bindings.\n * This evaluator provides a safe, sandboxed way to evaluate expressions.\n *\n * @module @pwfabric/runtime/surface/expression\n */\n\n// ============================================================\n// EXPRESSION TYPES\n// ============================================================\n\n/**\n * Expression result\n */\nimport { DEFAULT_BINDING_HELPERS, evaluateWithScope, readProperty } from '../binding/expression.js'\n\nexport type ExpressionResult<T = unknown> =\n | { readonly success: true; readonly value: T }\n | { readonly success: false; readonly error: string }\n\n/**\n * Expression context - the scope for evaluation\n */\nexport interface ExpressionContext {\n readonly data: Record<string, unknown>\n readonly helpers?: Record<string, (...args: unknown[]) => unknown>\n}\n\n// ============================================================\n// PATH RESOLUTION\n// ============================================================\n\n/**\n * Resolve a dotted path in an object\n * e.g., \"user.profile.name\" -> obj.user.profile.name\n */\nexport function resolvePath(obj: unknown, path: string): unknown {\n if (!path || typeof obj !== 'object' || obj === null) {\n return undefined\n }\n\n const parts = path.split('.')\n let current: unknown = obj\n\n for (const part of parts) {\n if (current === null || current === undefined) {\n return undefined\n }\n\n // Handle array indexing: items[0]\n const arrayMatch = part.match(/^(\\w+)\\[(\\d+)\\]$/)\n if (arrayMatch) {\n const prop = arrayMatch[1]\n const index = arrayMatch[2]\n if (prop && index) {\n current = readProperty(current, prop)\n if (Array.isArray(current)) {\n current = current[parseInt(index, 10)]\n } else {\n return undefined\n }\n }\n } else if (typeof current === 'object') {\n // A list of ONE record is read through — see readProperty.\n current = readProperty(current, part)\n } else {\n return undefined\n }\n }\n\n return current\n}\n\n// ============================================================\n// EXPRESSION EVALUATOR\n// ============================================================\n\n/**\n * Evaluate an expression (the text between `{{` and `}}`).\n *\n * THE SAME PARSER AS THE BINDING EVALUATOR (binding/expression.ts). This used\n * to be a regex/`split` evaluator of its own, and the two drifted: no\n * parentheses, no arithmetic, helper arguments split on every comma — so\n * `{{a == 'x' && (b || c)}}` failed, and a failed `visibleWhen` rendered its\n * raw template, which counts as visible.\n *\n * Supported: paths (`user.name`, `items[0]`, `items.0`, hyphenated source ids\n * `hero-stats.0.text`), literals, `! - +`, `* / %`, `+ -`, comparisons,\n * `&& || ??` (short-circuit), `?:`, parentheses, array literals, helper calls\n * (`join(xs, ', ')`) and a safe list of string / array / number methods\n * (`name.toLowerCase().includes(q)`).\n *\n * Names resolve against `context.data`; a call resolves against\n * `context.helpers`. In this mode a `-` between two name characters is part of\n * the name (source ids are hyphenated) — write subtraction as `a - b`.\n *\n * A syntax error, an unknown helper or an unsupported method is a FAILURE\n * (`success: false`), never a partial value.\n */\nexport function evaluate(expression: string, context: ExpressionContext): ExpressionResult {\n try {\n const data = context.data\n const helpers = context.helpers\n const value = evaluateWithScope(\n expression,\n {\n lookup: (name) => data[name],\n helper: (name) =>\n helpers && Object.prototype.hasOwnProperty.call(helpers, name) ? helpers[name] : undefined,\n },\n { hyphenNames: true }\n )\n return { success: true, value }\n } catch (e) {\n return { success: false, error: `Unable to evaluate expression: ${expression.trim()} — ${e instanceof Error ? e.message : String(e)}` }\n }\n}\n\n// ============================================================\n// INTERPOLATION\n// ============================================================\n\n/**\n * Interpolate expressions within a template string\n * e.g., \"Hello, {{user.name}}!\" -> \"Hello, John!\"\n */\nexport function interpolate(\n template: string,\n context: ExpressionContext\n): ExpressionResult<string> {\n const pattern = /\\{\\{(.+?)\\}\\}/g\n let result = template\n let match: RegExpExecArray | null\n\n while ((match = pattern.exec(template)) !== null) {\n const placeholder = match[0]\n const expression = match[1]\n if (!expression) continue\n const evalResult = evaluate(expression.trim(), context)\n if (!evalResult.success) {\n return evalResult as ExpressionResult<string>\n }\n // CALLBACK replacer, NOT a string replacement. When its second argument is\n // a string, `String.replace` treats `$&`, `$\\``, `$'`, `$$` as REPLACEMENT\n // PATTERNS: `\"$$5\"` in the data would print as `\"$5\"`, and `\"a$&b\"` would\n // bring back the placeholder itself. The sibling evaluator\n // (binding/expression.ts) uses a callback too.\n const replacement = String(evalResult.value ?? '')\n result = result.replace(placeholder, () => replacement)\n }\n\n return { success: true, value: result }\n}\n\n// ============================================================\n// BUILT-IN HELPERS\n// ============================================================\n\n/**\n * Default helper functions available in expressions\n */\nexport const DEFAULT_HELPERS: Record<string, (...args: unknown[]) => unknown> = {\n // The binding evaluator's helper set comes first. Two evaluators exist —\n // binding/expression (bindings, computed values) and this one (block props\n // through resolveBlockExpressions) — and their helper lists drifted:\n // `sumBy`, `groupCount`, `min`, `max`, `currency`, `date`… live in the\n // binding set, and without it a KPI tile authored as\n // `{{sumBy(customers,'mrr')}}` would render the raw template. One name, one meaning: the surface-specific entries below\n // override where both define the same name.\n ...DEFAULT_BINDING_HELPERS,\n // String helpers\n upper: (s: unknown) => String(s).toUpperCase(),\n lower: (s: unknown) => String(s).toLowerCase(),\n trim: (s: unknown) => String(s).trim(),\n length: (s: unknown) => (Array.isArray(s) ? s.length : String(s).length),\n concat: (...args: unknown[]) => args.map(String).join(''),\n\n // Number helpers\n // `round` comes from the binding set: `round(n)` as before, `round(n, 2)`\n // to two decimals (this override used to drop the second argument).\n floor: (n: unknown) => Math.floor(Number(n)),\n ceil: (n: unknown) => Math.ceil(Number(n)),\n abs: (n: unknown) => Math.abs(Number(n)),\n\n // Array helpers\n first: (arr: unknown) => (Array.isArray(arr) ? arr[0] : undefined),\n last: (arr: unknown) => (Array.isArray(arr) ? arr[arr.length - 1] : undefined),\n isEmpty: (v: unknown) =>\n v === null || v === undefined || v === '' || (Array.isArray(v) && v.length === 0),\n isNotEmpty: (v: unknown) =>\n v !== null && v !== undefined && v !== '' && !(Array.isArray(v) && v.length === 0),\n\n // Type helpers\n typeof: (v: unknown) => typeof v,\n isArray: (v: unknown) => Array.isArray(v),\n isString: (v: unknown) => typeof v === 'string',\n isNumber: (v: unknown) => typeof v === 'number',\n isBool: (v: unknown) => typeof v === 'boolean',\n\n // Formatting helpers\n json: (v: unknown) => JSON.stringify(v),\n}\n\n/**\n * Create an expression context with default helpers\n */\nexport function createExpressionContext(\n data: Record<string, unknown>,\n additionalHelpers?: Record<string, (...args: unknown[]) => unknown>\n): ExpressionContext {\n return {\n data,\n helpers: { ...DEFAULT_HELPERS, ...additionalHelpers },\n }\n}\n"]}
@@ -30,4 +30,3 @@ export type { MapTransformConfig, FilterTransformConfig, PickTransformConfig, Om
30
30
  export { mapTransformConfigSchema, filterTransformConfigSchema, pickTransformConfigSchema, omitTransformConfigSchema, customTransformConfigSchema, validateTransformConfig, narrowTransformDescriptor, createMapTransform, createFilterTransform, createPickTransform, createOmitTransform, createCustomTransform, } from './transforms.js';
31
31
  export type { TypedWebOutput, TypedApiOutput, TypedCliOutput, OutputFactoryResult, } from './output.js';
32
32
  export { createWebOutput, createApiOutput, createCliOutput } from './output.js';
33
- //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/surface/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAiBH,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,WAAW,GACZ,MAAM,YAAY,CAAA;AAInB,OAAO,EACL,QAAQ,EACR,WAAW,EACX,WAAW,EACX,uBAAuB,EACvB,eAAe,GAChB,MAAM,iBAAiB,CAAA;AAIxB,OAAO,EACL,aAAa,EACb,aAAa,EACb,YAAY,EACZ,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,aAAa,CAAA;AAqBpB,OAAO,EACL,qBAAqB,EACrB,IAAI,EACJ,SAAS,EACT,MAAM,EACN,OAAO,EACP,MAAM,EACN,OAAO,EACP,WAAW,EACX,sBAAsB,GACvB,MAAM,iBAAiB,CAAA;AAExB,UAAU;AACV,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,aAAa,GACd,MAAM,cAAc,CAAA;AAQrB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,OAAO,EACP,oBAAoB,GACrB,MAAM,kBAAkB,CAAA;AAIzB,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,aAAa,EACb,eAAe,EACf,aAAa,EACb,aAAa,EACb,eAAe,EACf,QAAQ,EACR,iBAAiB,GAClB,MAAM,eAAe,CAAA;AAYtB,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,iBAAiB,CAAA;AAYxB,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EACzB,yBAAyB,EACzB,2BAA2B,EAC3B,uBAAuB,EACvB,yBAAyB,EACzB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,iBAAiB,CAAA;AASxB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/surface/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAiBH,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,WAAW,GACZ,MAAM,YAAY,CAAA;AAInB,OAAO,EACL,QAAQ,EACR,WAAW,EACX,WAAW,EACX,uBAAuB,EACvB,eAAe,GAChB,MAAM,iBAAiB,CAAA;AAIxB,OAAO,EACL,aAAa,EACb,aAAa,EACb,YAAY,EACZ,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,aAAa,CAAA;AAqBpB,OAAO,EACL,qBAAqB,EACrB,IAAI,EACJ,SAAS,EACT,MAAM,EACN,OAAO,EACP,MAAM,EACN,OAAO,EACP,WAAW,EACX,sBAAsB,GACvB,MAAM,iBAAiB,CAAA;AAExB,UAAU;AACV,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,aAAa,GACd,MAAM,cAAc,CAAA;AAQrB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,OAAO,EACP,oBAAoB,GACrB,MAAM,kBAAkB,CAAA;AAIzB,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,aAAa,EACb,eAAe,EACf,aAAa,EACb,aAAa,EACb,eAAe,EACf,QAAQ,EACR,iBAAiB,GAClB,MAAM,eAAe,CAAA;AAYtB,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,iBAAiB,CAAA;AAYxB,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EACzB,yBAAyB,EACzB,2BAA2B,EAC3B,uBAAuB,EACvB,yBAAyB,EACzB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,iBAAiB,CAAA;AASxB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA","sourcesContent":["/**\n * Surface Rendering Module\n *\n * Surface JSON interpreter, renderer, layout system, and primitives\n *\n * This module provides the complete surface rendering pipeline:\n * - JSON interpretation and validation\n * - Layout resolution (slots, conditionals, loops)\n * - Deterministic rendering\n * - Built-in primitives\n *\n * @module @pwfabric/runtime/surface\n */\n\n// Types\nexport type {\n PrimitiveType,\n BaseNodeProps,\n RenderNode,\n SurfaceJSON,\n BindingJSON,\n LayoutJSON,\n RenderContext,\n RenderResult,\n RenderOutput,\n RenderError,\n RenderErrorCode,\n} from './types.js'\n\nexport {\n createNode,\n createRenderContext,\n createChildContext,\n renderSuccess,\n renderError,\n} from './types.js'\n\n// Expression evaluation\nexport type { ExpressionResult, ExpressionContext } from './expression.js'\nexport {\n evaluate,\n interpolate,\n resolvePath,\n createExpressionContext,\n DEFAULT_HELPERS,\n} from './expression.js'\n\n// Layout system\nexport type { LayoutResult } from './layout.js'\nexport {\n resolveLayout,\n createSlotMap,\n extractSlots,\n composeLayouts,\n wrapInContainer,\n validateLayout,\n} from './layout.js'\n\n// Primitives\nexport type {\n TextProps,\n ContainerProps,\n ButtonProps,\n InputProps,\n ImageProps,\n LinkProps,\n ListProps,\n HeadingProps,\n SpacerProps,\n DividerProps,\n SlotProps,\n ConditionalProps,\n LoopProps,\n PrimitiveDefinition,\n PropDefinition,\n} from './primitives.js'\n\nexport {\n PRIMITIVE_DEFINITIONS,\n text,\n container,\n button,\n heading,\n spacer,\n divider,\n isPrimitive,\n getPrimitiveDefinition,\n} from './primitives.js'\n\n// Schemas\nexport {\n surfaceJsonSchema,\n layoutJsonSchema,\n bindingJsonSchema,\n environmentSchema,\n isSurfaceJSON,\n isLayoutJSON,\n isBindingJSON,\n} from './schemas.js'\n\n// Interpreter\nexport type {\n InterpretedSurface,\n InterpretationResult,\n InterpretSurfaceOptions,\n} from './interpreter.js'\nexport {\n interpretSurface,\n parseSurfaceJSON,\n SurfaceBuilder,\n surface,\n createSurfaceContext,\n} from './interpreter.js'\n\n// Renderer\nexport type { RenderOptions, SurfaceRenderer } from './renderer.js'\nexport {\n DeterministicRenderer,\n createRenderer,\n renderSurface,\n isRenderSuccess,\n isRenderError,\n serializeNode,\n serializeOutput,\n hashNode,\n verifyDeterminism,\n} from './renderer.js'\n\n// Block Props Validation\nexport type {\n BlockPropsValidationResult,\n BlockPropsValidationOptions,\n LayoutPropsIssue,\n ManifestPropSpec,\n BlockManifestPropsMap,\n ManifestPropFinding,\n ManifestPropFindingCode,\n} from './validation.js'\nexport {\n validateBlockProps,\n validateLayoutProps,\n blockManifestPropFindings,\n manifestPropFindings,\n} from './validation.js'\n\n// Typed Transform Wrappers\nexport type {\n MapTransformConfig,\n FilterTransformConfig,\n PickTransformConfig,\n OmitTransformConfig,\n CustomTransformConfig,\n TypedTransformConfig,\n TransformValidationResult,\n} from './transforms.js'\nexport {\n mapTransformConfigSchema,\n filterTransformConfigSchema,\n pickTransformConfigSchema,\n omitTransformConfigSchema,\n customTransformConfigSchema,\n validateTransformConfig,\n narrowTransformDescriptor,\n createMapTransform,\n createFilterTransform,\n createPickTransform,\n createOmitTransform,\n createCustomTransform,\n} from './transforms.js'\n\n// Typed Output Factories\nexport type {\n TypedWebOutput,\n TypedApiOutput,\n TypedCliOutput,\n OutputFactoryResult,\n} from './output.js'\nexport { createWebOutput, createApiOutput, createCliOutput } from './output.js'\n"]}
@@ -94,4 +94,3 @@ export declare function surface(id: string): SurfaceBuilder;
94
94
  * Create a render context for an interpreted surface
95
95
  */
96
96
  export declare function createSurfaceContext(surface: InterpretedSurface, data?: Record<string, unknown>): RenderContext;
97
- //# sourceMappingURL=interpreter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interpreter.js","sourceRoot":"","sources":["../../src/surface/interpreter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interpreter.js","sourceRoot":"","sources":["../../src/surface/interpreter.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Surface JSON Interpreter\n *\n * Parse and validate Surface JSON definitions\n *\n * The interpreter converts Surface JSON into a validated Surface object\n * that can be rendered by the renderer.\n *\n * @module @pwfabric/runtime/surface/interpreter\n */\n\nimport type { SurfaceId, CapabilityId } from '@pwfabric/contracts'\nimport { surfaceId, capabilityId, parseVersion } from '@pwfabric/contracts'\nimport type { SurfaceJSON, LayoutJSON, BindingJSON, RenderContext } from './types.js'\nimport { createRenderContext } from './types.js'\nimport { validateLayout } from './layout.js'\nimport {\n manifestPropFindings,\n validateLayoutProps,\n type BlockPropsValidationOptions,\n type ManifestPropFinding,\n} from './validation.js'\nimport type { EnvironmentType } from '@pwfabric/contracts'\n\n// ============================================================\n// INTERPRETATION TYPES\n// ============================================================\n\n/**\n * Interpreted surface\n */\nexport interface InterpretedSurface {\n readonly id: SurfaceId\n readonly version: string\n readonly environment: EnvironmentType\n readonly metadata: {\n readonly name: string\n readonly description?: string\n readonly tags?: readonly string[]\n }\n readonly bindings: Map<string, CapabilityId>\n readonly layout: LayoutJSON\n}\n\n/**\n * Interpretation result\n */\nexport type InterpretationResult =\n | {\n readonly success: true\n readonly surface: InterpretedSurface\n /**\n * Manifest findings when `validation.manifests` was supplied.\n * Warnings only: the surface is interpreted all the same.\n */\n readonly warnings?: readonly ManifestPropFinding[]\n }\n | { readonly success: false; readonly errors: readonly string[] }\n\n// ============================================================\n// SCHEMA VALIDATION\n// ============================================================\n\n/**\n * Validate Surface JSON structure\n */\nfunction validateSurfaceJSON(json: unknown): { valid: boolean; errors: string[] } {\n const errors: string[] = []\n\n if (!json || typeof json !== 'object') {\n return { valid: false, errors: ['Surface JSON must be an object'] }\n }\n\n const obj = json as Record<string, unknown>\n\n // Required fields\n if (typeof obj.id !== 'string' || !obj.id) {\n errors.push('Surface must have a string id')\n }\n\n if (typeof obj.version !== 'string' || !obj.version) {\n errors.push('Surface must have a string version')\n }\n\n if (typeof obj.environment !== 'string' || !obj.environment) {\n errors.push('Surface must have a string environment')\n }\n\n // Validate environment\n const validEnvironments = ['web', 'api', 'cli', 'worker', 'edge', 'node', 'native', 'test']\n if (obj.environment && !validEnvironments.includes(obj.environment as string)) {\n errors.push(\n `Invalid environment: ${obj.environment}. Must be one of: ${validEnvironments.join(', ')}`\n )\n }\n\n // Validate layout\n if (!obj.layout || typeof obj.layout !== 'object') {\n errors.push('Surface must have a layout object')\n } else {\n const layoutResult = validateLayout(obj.layout as LayoutJSON)\n if (!layoutResult.valid) {\n errors.push(...layoutResult.errors.map((e) => `layout: ${e}`))\n }\n }\n\n // Validate bindings if present\n if (obj.bindings !== undefined) {\n if (!Array.isArray(obj.bindings)) {\n errors.push('bindings must be an array')\n } else {\n for (let i = 0; i < obj.bindings.length; i++) {\n const binding = obj.bindings[i] as Record<string, unknown>\n if (typeof binding.capability !== 'string') {\n errors.push(`bindings[${i}]: capability must be a string`)\n }\n }\n }\n }\n\n // Validate metadata if present\n if (obj.metadata !== undefined && typeof obj.metadata !== 'object') {\n errors.push('metadata must be an object')\n }\n\n return { valid: errors.length === 0, errors }\n}\n\n// ============================================================\n// INTERPRETER\n// ============================================================\n\n/**\n * Options for surface interpretation\n */\nexport interface InterpretSurfaceOptions {\n /**\n * Block props validation options.\n * Set to false to disable prop validation entirely.\n */\n readonly validation?: BlockPropsValidationOptions | false\n}\n\n/**\n * Interpret a Surface JSON definition\n */\nexport function interpretSurface(\n json: SurfaceJSON,\n options: InterpretSurfaceOptions = {}\n): InterpretationResult {\n // Validate structure\n const validation = validateSurfaceJSON(json)\n if (!validation.valid) {\n return { success: false, errors: validation.errors }\n }\n\n // Parse version\n const version = parseVersion(json.version)\n if (!version) {\n return { success: false, errors: [`Invalid version format: ${json.version}`] }\n }\n\n // Validate block props if not disabled\n if (options.validation !== false) {\n const propIssues = validateLayoutProps(json.layout, options.validation ?? {})\n if (propIssues.length > 0) {\n const propErrors = propIssues.flatMap((issue) =>\n issue.errors.map((e) => `${issue.path} (${issue.type}): ${e}`)\n )\n return { success: false, errors: propErrors }\n }\n }\n\n // Build bindings map\n const bindings = new Map<string, CapabilityId>()\n if (json.bindings) {\n for (const binding of json.bindings) {\n const alias = binding.alias ?? binding.capability\n bindings.set(alias, capabilityId(binding.capability))\n }\n }\n\n // Build metadata with only defined properties\n const metadata: InterpretedSurface['metadata'] = {\n name: json.metadata?.name ?? json.id,\n }\n if (json.metadata?.description !== undefined) {\n ;(metadata as { description?: string }).description = json.metadata.description\n }\n if (json.metadata?.tags !== undefined) {\n ;(metadata as { tags?: readonly string[] }).tags = json.metadata.tags\n }\n\n // Build interpreted surface\n const surface: InterpretedSurface = {\n id: surfaceId(json.id),\n version: json.version,\n environment: json.environment as EnvironmentType,\n metadata,\n bindings,\n layout: json.layout,\n }\n\n const manifests = options.validation !== false ? options.validation?.manifests : undefined\n if (manifests) {\n const warnings = manifestPropFindings(json.layout, manifests)\n if (warnings.length > 0) return { success: true, surface, warnings }\n }\n return { success: true, surface }\n}\n\n/**\n * Parse Surface JSON from a string\n */\nexport function parseSurfaceJSON(jsonString: string): InterpretationResult {\n try {\n const json = JSON.parse(jsonString) as SurfaceJSON\n return interpretSurface(json)\n } catch (e) {\n return { success: false, errors: [`Invalid JSON: ${e}`] }\n }\n}\n\n// ============================================================\n// SURFACE BUILDER\n// ============================================================\n\n/**\n * Surface builder for programmatic construction\n */\nexport class SurfaceBuilder {\n private _id: string\n private _version = '1.0.0'\n private _environment: EnvironmentType = 'web'\n private _metadata: { name?: string; description?: string; tags?: string[] } = {}\n private _bindings: BindingJSON[] = []\n private _layout: LayoutJSON | null = null\n private _validationOptions: BlockPropsValidationOptions | false = {}\n\n constructor(id: string) {\n this._id = id\n }\n\n version(v: string): this {\n this._version = v\n return this\n }\n\n environment(env: EnvironmentType): this {\n this._environment = env\n return this\n }\n\n name(n: string): this {\n this._metadata.name = n\n return this\n }\n\n description(d: string): this {\n this._metadata.description = d\n return this\n }\n\n tags(...t: string[]): this {\n this._metadata.tags = t\n return this\n }\n\n bind(capability: string, alias?: string): this {\n const binding: BindingJSON = alias ? { capability, alias } : { capability }\n this._bindings.push(binding)\n return this\n }\n\n layout(l: LayoutJSON): this {\n this._layout = l\n return this\n }\n\n /**\n * Configure block props validation.\n * Pass false to disable validation entirely.\n */\n validation(options: BlockPropsValidationOptions | false): this {\n this._validationOptions = options\n return this\n }\n\n build(): InterpretationResult {\n if (!this._layout) {\n return { success: false, errors: ['Surface must have a layout'] }\n }\n\n const json: SurfaceJSON = {\n id: this._id,\n version: this._version,\n environment: this._environment,\n metadata: this._metadata,\n bindings: this._bindings,\n layout: this._layout,\n }\n\n return interpretSurface(json, { validation: this._validationOptions })\n }\n}\n\n/**\n * Create a surface builder\n */\nexport function surface(id: string): SurfaceBuilder {\n return new SurfaceBuilder(id)\n}\n\n// ============================================================\n// RENDER CONTEXT CREATION\n// ============================================================\n\n/**\n * Create a render context for an interpreted surface\n */\nexport function createSurfaceContext(\n surface: InterpretedSurface,\n data?: Record<string, unknown>\n): RenderContext {\n return createRenderContext({\n surfaceId: surface.id,\n bindings: surface.bindings,\n data: data ?? {},\n })\n}\n"]}
@@ -52,4 +52,3 @@ export declare function validateLayout(layout: LayoutJSON): {
52
52
  valid: boolean;
53
53
  errors: string[];
54
54
  };
55
- //# sourceMappingURL=layout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/surface/layout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/surface/layout.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Layout System\n *\n * Slot and layout resolution for surfaces\n *\n * The layout system handles:\n * - Slot resolution (named slots with fallback content)\n * - Layout composition (nesting surfaces)\n * - Conditional rendering\n * - Loop expansion\n *\n * @module @pwfabric/runtime/surface/layout\n */\n\nimport type { RenderNode, RenderContext, LayoutJSON } from './types.js'\nimport { createNode, createChildContext } from './types.js'\nimport {\n evaluate,\n createExpressionContext,\n type ExpressionContext,\n type ExpressionResult,\n} from './expression.js'\nimport { isPrimitive } from './primitives.js'\n\n// ============================================================\n// LAYOUT RESOLUTION\n// ============================================================\n\n/**\n * Layout resolution result\n */\nexport type LayoutResult =\n | { readonly success: true; readonly nodes: readonly RenderNode[] }\n | { readonly success: false; readonly error: string }\n\n/**\n * Resolve a layout definition into render nodes\n */\nexport function resolveLayout(layout: LayoutJSON, context: RenderContext): LayoutResult {\n const exprContext = createExpressionContext(context.data)\n\n return resolveLayoutNode(layout, context, exprContext)\n}\n\n/**\n * Resolve a single layout node\n */\nfunction resolveLayoutNode(\n layout: LayoutJSON,\n context: RenderContext,\n exprContext: ExpressionContext\n): LayoutResult {\n // Handle conditional rendering\n if (layout.if) {\n const condResult = evaluate(layout.if, exprContext)\n if (!condResult.success) {\n return { success: false, error: `Condition error: ${condResult.error}` }\n }\n if (!condResult.value) {\n // Condition is false, render nothing\n return { success: true, nodes: [] }\n }\n }\n\n // Handle loop expansion\n if (layout.each) {\n return resolveLoop(layout, context, exprContext)\n }\n\n // Handle slot\n if (layout.slot) {\n return resolveSlot(layout, context, exprContext)\n }\n\n // Handle primitive or custom component\n return resolvePrimitive(layout, context, exprContext)\n}\n\n/**\n * Resolve a loop layout into multiple nodes\n */\nfunction resolveLoop(\n layout: LayoutJSON,\n context: RenderContext,\n exprContext: ExpressionContext\n): LayoutResult {\n const { each } = layout\n if (!each) {\n return { success: false, error: 'Loop layout missing each config' }\n }\n\n const itemsResult = evaluate(each.items, exprContext)\n if (!itemsResult.success) {\n return { success: false, error: `Loop items error: ${itemsResult.error}` }\n }\n\n const items = itemsResult.value\n if (!Array.isArray(items)) {\n return { success: false, error: `Loop items must be an array, got ${typeof items}` }\n }\n\n const nodes: RenderNode[] = []\n\n for (let index = 0; index < items.length; index++) {\n const item = items[index]\n\n // Create child context with loop variables\n const loopData: Record<string, unknown> = {\n [each.as]: item,\n [`${each.as}Index`]: index,\n [`${each.as}First`]: index === 0,\n [`${each.as}Last`]: index === items.length - 1,\n }\n\n const childContext = createChildContext(context, loopData)\n const childExprContext = createExpressionContext({ ...exprContext.data, ...loopData })\n\n // Generate key\n let key: string\n if (each.key) {\n const keyResult = evaluate(each.key, childExprContext)\n key = keyResult.success ? String(keyResult.value) : `loop-${index}`\n } else {\n key = `loop-${index}`\n }\n\n // Resolve children for this iteration\n if (layout.children) {\n for (const child of layout.children) {\n const childResult = resolveLayoutNode(child, childContext, childExprContext)\n if (!childResult.success) {\n return childResult\n }\n // Add key to each child\n for (const node of childResult.nodes) {\n nodes.push(createNode(node.type, { ...node.props, key }, node.children))\n }\n }\n }\n }\n\n return { success: true, nodes }\n}\n\n/**\n * Resolve a slot layout\n */\nfunction resolveSlot(\n layout: LayoutJSON,\n context: RenderContext,\n exprContext: ExpressionContext\n): LayoutResult {\n const slotName = layout.slot\n if (!slotName) {\n return { success: false, error: 'Slot layout missing slot name' }\n }\n const slotContent = context.slots.get(slotName)\n\n if (slotContent && slotContent.length > 0) {\n // Slot has content, use it\n return { success: true, nodes: slotContent }\n }\n\n // No slot content, use fallback (children)\n if (layout.children) {\n const nodes: RenderNode[] = []\n for (const child of layout.children) {\n const childResult = resolveLayoutNode(child, context, exprContext)\n if (!childResult.success) {\n return childResult\n }\n nodes.push(...childResult.nodes)\n }\n return { success: true, nodes }\n }\n\n // No fallback either\n return { success: true, nodes: [] }\n}\n\n/**\n * Resolve a primitive or custom component\n */\nfunction resolvePrimitive(\n layout: LayoutJSON,\n context: RenderContext,\n exprContext: ExpressionContext\n): LayoutResult {\n const { type, props = {}, children = [] } = layout\n\n // Resolve props (evaluate expressions in prop values)\n const resolvedProps: Record<string, unknown> = {}\n for (const [key, value] of Object.entries(props)) {\n if (typeof value === 'string' && value.startsWith('{{') && value.endsWith('}}')) {\n // Expression prop\n const expr = value.slice(2, -2).trim()\n const result = evaluate(expr, exprContext)\n if (!result.success) {\n return { success: false, error: `Prop ${key} expression error: ${result.error}` }\n }\n resolvedProps[key] = result.value\n } else if (typeof value === 'string' && value.includes('{{')) {\n // Template string with interpolation\n const result = interpolateString(value, exprContext)\n if (!result.success) {\n return { success: false, error: `Prop ${key} interpolation error: ${result.error}` }\n }\n resolvedProps[key] = result.value\n } else {\n resolvedProps[key] = value\n }\n }\n\n // Resolve children recursively\n const resolvedChildren: RenderNode[] = []\n for (const child of children) {\n const childResult = resolveLayoutNode(child, context, exprContext)\n if (!childResult.success) {\n return childResult\n }\n resolvedChildren.push(...childResult.nodes)\n }\n\n // Validate primitive type\n if (!isPrimitive(type) && !type.includes(':')) {\n // Unknown type - could be a custom component, let it pass\n }\n\n const node = createNode(type, resolvedProps, resolvedChildren)\n return { success: true, nodes: [node] }\n}\n\n/**\n * Interpolate a string with expressions\n */\nfunction interpolateString(\n template: string,\n exprContext: ExpressionContext\n): ExpressionResult<string> {\n const pattern = /\\{\\{(.+?)\\}\\}/g\n let result = template\n let match: RegExpExecArray | null\n\n // Need to reset lastIndex since we're using the regex multiple times\n pattern.lastIndex = 0\n\n const replacements: { from: string; to: string }[] = []\n\n while ((match = pattern.exec(template)) !== null) {\n const placeholder = match[0]\n const expression = match[1]\n if (!expression) continue\n const evalResult = evaluate(expression.trim(), exprContext)\n if (!evalResult.success) {\n return { success: false, error: evalResult.error }\n }\n replacements.push({ from: placeholder, to: String(evalResult.value ?? '') })\n }\n\n for (const { from, to } of replacements) {\n result = result.replace(from, to)\n }\n\n return { success: true, value: result }\n}\n\n// ============================================================\n// SLOT MANAGEMENT\n// ============================================================\n\n/**\n * Create a slot map from slot content\n */\nexport function createSlotMap(\n slots: Record<string, readonly RenderNode[]>\n): Map<string, readonly RenderNode[]> {\n return new Map(Object.entries(slots))\n}\n\n/**\n * Extract slots from children based on slot attribute\n */\nexport function extractSlots(children: readonly RenderNode[]): {\n default: readonly RenderNode[]\n named: Map<string, readonly RenderNode[]>\n} {\n const defaultSlot: RenderNode[] = []\n const namedSlots = new Map<string, RenderNode[]>()\n\n for (const child of children) {\n const slotName = child.props.slot as string | undefined\n if (slotName) {\n const existing = namedSlots.get(slotName) ?? []\n existing.push(child)\n namedSlots.set(slotName, existing)\n } else {\n defaultSlot.push(child)\n }\n }\n\n return { default: defaultSlot, named: namedSlots }\n}\n\n// ============================================================\n// LAYOUT COMPOSITION\n// ============================================================\n\n/**\n * Compose multiple layouts into one\n */\nexport function composeLayouts(\n layouts: readonly LayoutJSON[],\n context: RenderContext\n): LayoutResult {\n const nodes: RenderNode[] = []\n\n for (const layout of layouts) {\n const result = resolveLayout(layout, context)\n if (!result.success) {\n return result\n }\n nodes.push(...result.nodes)\n }\n\n return { success: true, nodes }\n}\n\n/**\n * Wrap nodes in a container\n */\nexport function wrapInContainer(\n nodes: readonly RenderNode[],\n props?: Record<string, unknown>\n): RenderNode {\n return createNode('container', props ?? {}, nodes)\n}\n\n// ============================================================\n// LAYOUT VALIDATION\n// ============================================================\n\n/**\n * Validate a layout definition\n */\nexport function validateLayout(layout: LayoutJSON): { valid: boolean; errors: string[] } {\n const errors: string[] = []\n\n // Must have a type\n if (!layout.type) {\n errors.push('Layout must have a type')\n }\n\n // Validate each config\n if (layout.each) {\n if (!layout.each.items) {\n errors.push('Loop layout must have items expression')\n }\n if (!layout.each.as) {\n errors.push('Loop layout must have as variable name')\n }\n }\n\n // Validate children recursively\n if (layout.children) {\n for (let i = 0; i < layout.children.length; i++) {\n const child = layout.children[i]\n if (!child) continue\n const childResult = validateLayout(child)\n if (!childResult.valid) {\n errors.push(...childResult.errors.map((e) => `children[${i}]: ${e}`))\n }\n }\n }\n\n return { valid: errors.length === 0, errors }\n}\n"]}
@@ -88,4 +88,3 @@ export declare function createCliOutput(options: {
88
88
  readonly stdout?: string;
89
89
  readonly stderr?: string;
90
90
  }): OutputFactoryResult<TypedCliOutput>;
91
- //# sourceMappingURL=output.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/surface/output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/surface/output.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Typed Output Factories\n *\n * Typed wrappers for BaseSurfaceOutput.data.\n * These do NOT modify @pwfabric/contracts. They extend the contract types\n * with narrowed data fields and provide factory functions that validate.\n *\n * @module @pwfabric/runtime/surface/output\n */\n\nimport { z } from 'zod'\nimport type { WebSurfaceOutput, ApiSurfaceOutput, CliSurfaceOutput } from '@pwfabric/contracts'\n\n// ============================================================\n// TYPED OUTPUT INTERFACES\n// ============================================================\n\n/**\n * Web output with narrowed data type\n */\nexport interface TypedWebOutput extends WebSurfaceOutput {\n readonly data: {\n readonly html: string\n readonly css?: string\n readonly head?: string\n }\n}\n\n/**\n * API output with narrowed data type\n */\nexport interface TypedApiOutput extends ApiSurfaceOutput {\n readonly data: {\n readonly json: unknown\n readonly status: number\n }\n}\n\n/**\n * CLI output with narrowed data type\n */\nexport interface TypedCliOutput extends CliSurfaceOutput {\n readonly data: {\n readonly formatted: string\n readonly raw?: unknown\n }\n}\n\n// ============================================================\n// ZOD SCHEMAS\n// ============================================================\n\nconst webOutputDataSchema = z.object({\n html: z.string(),\n css: z.string().optional(),\n head: z.string().optional(),\n})\n\nconst apiOutputDataSchema = z.object({\n json: z.unknown(),\n status: z.number().int().min(100).max(599),\n})\n\nconst cliOutputDataSchema = z.object({\n formatted: z.string(),\n raw: z.unknown().optional(),\n})\n\n// ============================================================\n// VALIDATION RESULT\n// ============================================================\n\n/**\n * Result of creating a typed output\n */\nexport type OutputFactoryResult<T> =\n | { readonly success: true; readonly output: T }\n | { readonly success: false; readonly errors: readonly string[] }\n\n// ============================================================\n// FACTORY FUNCTIONS\n// ============================================================\n\n/**\n * Create a validated TypedWebOutput.\n *\n * Validates the data shape and returns a typed output or errors.\n */\nexport function createWebOutput(options: {\n readonly data: { readonly html: string; readonly css?: string; readonly head?: string }\n readonly component?: unknown\n readonly html?: string\n}): OutputFactoryResult<TypedWebOutput> {\n const dataResult = webOutputDataSchema.safeParse(options.data)\n\n if (!dataResult.success) {\n return {\n success: false,\n errors: dataResult.error.issues.map((i) => `data.${i.path.join('.')}: ${i.message}`),\n }\n }\n\n const data: TypedWebOutput['data'] = {\n html: dataResult.data.html,\n ...(dataResult.data.css !== undefined ? { css: dataResult.data.css } : {}),\n ...(dataResult.data.head !== undefined ? { head: dataResult.data.head } : {}),\n }\n\n const output: TypedWebOutput = {\n type: 'web',\n data,\n ...(options.component !== undefined ? { component: options.component } : {}),\n ...(options.html !== undefined ? { html: options.html } : {}),\n }\n\n return { success: true, output }\n}\n\n/**\n * Create a validated TypedApiOutput.\n *\n * Validates the data shape and returns a typed output or errors.\n */\nexport function createApiOutput(options: {\n readonly data: { readonly json: unknown; readonly status: number }\n readonly status: number\n readonly headers?: Record<string, string>\n readonly body?: unknown\n}): OutputFactoryResult<TypedApiOutput> {\n const dataResult = apiOutputDataSchema.safeParse(options.data)\n\n if (!dataResult.success) {\n return {\n success: false,\n errors: dataResult.error.issues.map((i) => `data.${i.path.join('.')}: ${i.message}`),\n }\n }\n\n const data: TypedApiOutput['data'] = {\n json: dataResult.data.json,\n status: dataResult.data.status,\n }\n\n const output: TypedApiOutput = {\n type: 'api',\n data,\n status: options.status,\n body: options.body ?? null,\n ...(options.headers ? { headers: options.headers } : {}),\n }\n\n return { success: true, output }\n}\n\n/**\n * Create a validated TypedCliOutput.\n *\n * Validates the data shape and returns a typed output or errors.\n */\nexport function createCliOutput(options: {\n readonly data: { readonly formatted: string; readonly raw?: unknown }\n readonly exitCode: number\n readonly stdout?: string\n readonly stderr?: string\n}): OutputFactoryResult<TypedCliOutput> {\n const dataResult = cliOutputDataSchema.safeParse(options.data)\n\n if (!dataResult.success) {\n return {\n success: false,\n errors: dataResult.error.issues.map((i) => `data.${i.path.join('.')}: ${i.message}`),\n }\n }\n\n const output: TypedCliOutput = {\n type: 'cli',\n data: dataResult.data,\n exitCode: options.exitCode,\n ...(options.stdout !== undefined && { stdout: options.stdout }),\n ...(options.stderr !== undefined && { stderr: options.stderr }),\n }\n\n return { success: true, output }\n}\n"]}
@@ -178,4 +178,3 @@ export declare function isPrimitive(type: string): type is PrimitiveType;
178
178
  * Get primitive definition
179
179
  */
180
180
  export declare function getPrimitiveDefinition(type: PrimitiveType): PrimitiveDefinition | undefined;
181
- //# sourceMappingURL=primitives.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/surface/primitives.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/surface/primitives.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Built-in Primitives\n *\n * Core primitive definitions for the runtime\n *\n * These are the built-in primitives that the runtime knows how to render.\n * Each primitive has a defined contract for its props.\n *\n * @module @pwfabric/runtime/surface/primitives\n */\n\nimport type { PrimitiveType, RenderNode, BaseNodeProps } from './types.js'\nimport { createNode } from './types.js'\n\n// ============================================================\n// PRIMITIVE DEFINITIONS\n// ============================================================\n\n/**\n * Text primitive props\n */\nexport interface TextProps extends BaseNodeProps {\n readonly content: string\n readonly variant?: 'body' | 'caption' | 'label'\n readonly weight?: 'normal' | 'medium' | 'bold'\n readonly truncate?: boolean\n}\n\n/**\n * Container primitive props\n */\nexport interface ContainerProps extends BaseNodeProps {\n readonly direction?: 'row' | 'column'\n readonly align?: 'start' | 'center' | 'end' | 'stretch'\n readonly justify?: 'start' | 'center' | 'end' | 'between' | 'around'\n readonly gap?: number | string\n readonly padding?: number | string\n readonly wrap?: boolean\n}\n\n/**\n * Button primitive props\n */\nexport interface ButtonProps extends BaseNodeProps {\n readonly label: string\n readonly variant?: 'primary' | 'secondary' | 'ghost' | 'danger'\n readonly size?: 'sm' | 'md' | 'lg'\n readonly disabled?: boolean\n readonly loading?: boolean\n readonly onClick?: string // Expression or capability reference\n}\n\n/**\n * Input primitive props\n */\nexport interface InputProps extends BaseNodeProps {\n readonly name: string\n readonly type?: 'text' | 'email' | 'password' | 'number' | 'tel' | 'url'\n readonly placeholder?: string\n readonly value?: string\n readonly disabled?: boolean\n readonly required?: boolean\n readonly onChange?: string\n}\n\n/**\n * Image primitive props\n */\nexport interface ImageProps extends BaseNodeProps {\n readonly src: string\n readonly alt: string\n readonly width?: number | string\n readonly height?: number | string\n readonly loading?: 'eager' | 'lazy'\n readonly fit?: 'contain' | 'cover' | 'fill' | 'none'\n}\n\n/**\n * Link primitive props\n */\nexport interface LinkProps extends BaseNodeProps {\n readonly href: string\n readonly target?: '_self' | '_blank' | '_parent' | '_top'\n readonly rel?: string\n}\n\n/**\n * List primitive props\n */\nexport interface ListProps extends BaseNodeProps {\n readonly type?: 'ordered' | 'unordered'\n readonly marker?: 'disc' | 'circle' | 'square' | 'decimal' | 'none'\n}\n\n/**\n * Heading primitive props\n */\nexport interface HeadingProps extends BaseNodeProps {\n readonly level: 1 | 2 | 3 | 4 | 5 | 6\n readonly content: string\n}\n\n/**\n * Spacer primitive props\n */\nexport interface SpacerProps extends BaseNodeProps {\n readonly size: number | string\n readonly direction?: 'horizontal' | 'vertical'\n}\n\n/**\n * Divider primitive props\n */\nexport interface DividerProps extends BaseNodeProps {\n readonly orientation?: 'horizontal' | 'vertical'\n readonly variant?: 'solid' | 'dashed' | 'dotted'\n}\n\n/**\n * Slot primitive props - placeholder for injected content\n */\nexport interface SlotProps extends BaseNodeProps {\n readonly name: string\n readonly fallback?: readonly RenderNode[]\n}\n\n/**\n * Conditional primitive props\n */\nexport interface ConditionalProps extends BaseNodeProps {\n readonly condition: string // Expression\n readonly then?: readonly RenderNode[]\n readonly else?: readonly RenderNode[]\n}\n\n/**\n * Loop primitive props\n */\nexport interface LoopProps extends BaseNodeProps {\n readonly items: string // Expression\n readonly as: string\n readonly keyExpr?: string\n}\n\n// ============================================================\n// PRIMITIVE REGISTRY\n// ============================================================\n\n/**\n * Primitive definition\n */\nexport interface PrimitiveDefinition {\n readonly type: PrimitiveType\n readonly name: string\n readonly description: string\n readonly props: Record<string, PropDefinition>\n readonly allowsChildren: boolean\n}\n\n/**\n * Property definition\n */\nexport interface PropDefinition {\n readonly type: 'string' | 'number' | 'boolean' | 'object' | 'array' | 'expression'\n readonly required: boolean\n readonly description: string\n readonly defaultValue?: unknown\n readonly oneOf?: readonly unknown[]\n}\n\n/**\n * Built-in primitive definitions\n */\nexport const PRIMITIVE_DEFINITIONS: Record<PrimitiveType, PrimitiveDefinition> = {\n text: {\n type: 'text',\n name: 'Text',\n description: 'Display text content',\n props: {\n content: { type: 'string', required: true, description: 'Text content to display' },\n variant: {\n type: 'string',\n required: false,\n description: 'Text variant',\n oneOf: ['body', 'caption', 'label'],\n defaultValue: 'body',\n },\n weight: {\n type: 'string',\n required: false,\n description: 'Font weight',\n oneOf: ['normal', 'medium', 'bold'],\n defaultValue: 'normal',\n },\n truncate: {\n type: 'boolean',\n required: false,\n description: 'Truncate with ellipsis',\n defaultValue: false,\n },\n },\n allowsChildren: false,\n },\n\n container: {\n type: 'container',\n name: 'Container',\n description: 'Layout container for child elements',\n props: {\n direction: {\n type: 'string',\n required: false,\n description: 'Flex direction',\n oneOf: ['row', 'column'],\n defaultValue: 'column',\n },\n align: {\n type: 'string',\n required: false,\n description: 'Align items',\n oneOf: ['start', 'center', 'end', 'stretch'],\n },\n justify: {\n type: 'string',\n required: false,\n description: 'Justify content',\n oneOf: ['start', 'center', 'end', 'between', 'around'],\n },\n gap: { type: 'string', required: false, description: 'Gap between children' },\n padding: { type: 'string', required: false, description: 'Container padding' },\n wrap: { type: 'boolean', required: false, description: 'Wrap children', defaultValue: false },\n },\n allowsChildren: true,\n },\n\n button: {\n type: 'button',\n name: 'Button',\n description: 'Interactive button element',\n props: {\n label: { type: 'string', required: true, description: 'Button label' },\n variant: {\n type: 'string',\n required: false,\n description: 'Button style variant',\n oneOf: ['primary', 'secondary', 'ghost', 'danger'],\n defaultValue: 'primary',\n },\n size: {\n type: 'string',\n required: false,\n description: 'Button size',\n oneOf: ['sm', 'md', 'lg'],\n defaultValue: 'md',\n },\n disabled: { type: 'boolean', required: false, description: 'Disable button' },\n loading: { type: 'boolean', required: false, description: 'Show loading state' },\n onClick: { type: 'expression', required: false, description: 'Click handler expression' },\n },\n allowsChildren: false,\n },\n\n input: {\n type: 'input',\n name: 'Input',\n description: 'Text input field',\n props: {\n name: { type: 'string', required: true, description: 'Input name' },\n type: {\n type: 'string',\n required: false,\n description: 'Input type',\n oneOf: ['text', 'email', 'password', 'number', 'tel', 'url'],\n defaultValue: 'text',\n },\n placeholder: { type: 'string', required: false, description: 'Placeholder text' },\n value: { type: 'string', required: false, description: 'Current value' },\n disabled: { type: 'boolean', required: false, description: 'Disable input' },\n required: { type: 'boolean', required: false, description: 'Mark as required' },\n onChange: { type: 'expression', required: false, description: 'Change handler expression' },\n },\n allowsChildren: false,\n },\n\n image: {\n type: 'image',\n name: 'Image',\n description: 'Display an image',\n props: {\n src: { type: 'string', required: true, description: 'Image source URL' },\n alt: { type: 'string', required: true, description: 'Alt text for accessibility' },\n width: { type: 'string', required: false, description: 'Image width' },\n height: { type: 'string', required: false, description: 'Image height' },\n loading: {\n type: 'string',\n required: false,\n description: 'Loading strategy',\n oneOf: ['eager', 'lazy'],\n defaultValue: 'lazy',\n },\n fit: {\n type: 'string',\n required: false,\n description: 'Object fit',\n oneOf: ['contain', 'cover', 'fill', 'none'],\n },\n },\n allowsChildren: false,\n },\n\n link: {\n type: 'link',\n name: 'Link',\n description: 'Navigation link',\n props: {\n href: { type: 'string', required: true, description: 'Link destination' },\n target: {\n type: 'string',\n required: false,\n description: 'Link target',\n oneOf: ['_self', '_blank', '_parent', '_top'],\n },\n rel: { type: 'string', required: false, description: 'Link relationship' },\n },\n allowsChildren: true,\n },\n\n list: {\n type: 'list',\n name: 'List',\n description: 'List container',\n props: {\n type: {\n type: 'string',\n required: false,\n description: 'List type',\n oneOf: ['ordered', 'unordered'],\n defaultValue: 'unordered',\n },\n marker: {\n type: 'string',\n required: false,\n description: 'List marker style',\n oneOf: ['disc', 'circle', 'square', 'decimal', 'none'],\n },\n },\n allowsChildren: true,\n },\n\n 'list-item': {\n type: 'list-item',\n name: 'List Item',\n description: 'Item within a list',\n props: {},\n allowsChildren: true,\n },\n\n heading: {\n type: 'heading',\n name: 'Heading',\n description: 'Section heading',\n props: {\n level: {\n type: 'number',\n required: true,\n description: 'Heading level (1-6)',\n oneOf: [1, 2, 3, 4, 5, 6],\n },\n content: { type: 'string', required: true, description: 'Heading text' },\n },\n allowsChildren: false,\n },\n\n paragraph: {\n type: 'paragraph',\n name: 'Paragraph',\n description: 'Text paragraph',\n props: {},\n allowsChildren: true,\n },\n\n spacer: {\n type: 'spacer',\n name: 'Spacer',\n description: 'Empty space',\n props: {\n size: { type: 'string', required: true, description: 'Space size' },\n direction: {\n type: 'string',\n required: false,\n description: 'Space direction',\n oneOf: ['horizontal', 'vertical'],\n defaultValue: 'vertical',\n },\n },\n allowsChildren: false,\n },\n\n divider: {\n type: 'divider',\n name: 'Divider',\n description: 'Visual separator',\n props: {\n orientation: {\n type: 'string',\n required: false,\n description: 'Divider orientation',\n oneOf: ['horizontal', 'vertical'],\n defaultValue: 'horizontal',\n },\n variant: {\n type: 'string',\n required: false,\n description: 'Divider style',\n oneOf: ['solid', 'dashed', 'dotted'],\n defaultValue: 'solid',\n },\n },\n allowsChildren: false,\n },\n\n slot: {\n type: 'slot',\n name: 'Slot',\n description: 'Named slot for content injection',\n props: {\n name: { type: 'string', required: true, description: 'Slot name' },\n },\n allowsChildren: true, // Children are fallback content\n },\n\n fragment: {\n type: 'fragment',\n name: 'Fragment',\n description: 'Invisible wrapper for multiple children',\n props: {},\n allowsChildren: true,\n },\n\n conditional: {\n type: 'conditional',\n name: 'Conditional',\n description: 'Conditionally render content',\n props: {\n condition: { type: 'expression', required: true, description: 'Condition expression' },\n },\n allowsChildren: true,\n },\n\n loop: {\n type: 'loop',\n name: 'Loop',\n description: 'Iterate over items',\n props: {\n items: { type: 'expression', required: true, description: 'Items expression' },\n as: { type: 'string', required: true, description: 'Item variable name' },\n keyExpr: { type: 'expression', required: false, description: 'Key expression' },\n },\n allowsChildren: true,\n },\n}\n\n// ============================================================\n// PRIMITIVE FACTORY FUNCTIONS\n// ============================================================\n\n/**\n * Create a text node\n */\nexport function text(content: string, props?: Omit<TextProps, 'content'>): RenderNode {\n return createNode('text', { content, ...props })\n}\n\n/**\n * Create a container node\n */\nexport function container(children: readonly RenderNode[], props?: ContainerProps): RenderNode {\n return createNode('container', props ? { ...props } : {}, children)\n}\n\n/**\n * Create a button node\n */\nexport function button(label: string, props?: Omit<ButtonProps, 'label'>): RenderNode {\n return createNode('button', { label, ...props })\n}\n\n/**\n * Create a heading node\n */\nexport function heading(\n level: 1 | 2 | 3 | 4 | 5 | 6,\n content: string,\n props?: Omit<HeadingProps, 'level' | 'content'>\n): RenderNode {\n return createNode('heading', { level, content, ...props })\n}\n\n/**\n * Create a spacer node\n */\nexport function spacer(size: number | string, direction?: 'horizontal' | 'vertical'): RenderNode {\n return createNode('spacer', { size, direction })\n}\n\n/**\n * Create a divider node\n */\nexport function divider(props?: DividerProps): RenderNode {\n return createNode('divider', props ? { ...props } : {})\n}\n\n/**\n * Check if a type is a known primitive\n */\nexport function isPrimitive(type: string): type is PrimitiveType {\n return type in PRIMITIVE_DEFINITIONS\n}\n\n/**\n * Get primitive definition\n */\nexport function getPrimitiveDefinition(type: PrimitiveType): PrimitiveDefinition | undefined {\n return PRIMITIVE_DEFINITIONS[type]\n}\n"]}
@@ -94,4 +94,3 @@ export declare function verifyDeterminism(surface: InterpretedSurface, options?:
94
94
  hash1: string;
95
95
  hash2: string;
96
96
  };
97
- //# sourceMappingURL=renderer.d.ts.map