@pwfabric/runtime 0.0.0-stage → 1.0.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (603) hide show
  1. package/LICENSE +90 -0
  2. package/README.md +13 -2
  3. package/dist/__tests__/dom-test-setup.d.ts +21 -0
  4. package/dist/__tests__/dom-test-setup.d.ts.map +1 -0
  5. package/dist/__tests__/dom-test-setup.js +36 -0
  6. package/dist/__tests__/dom-test-setup.js.map +1 -0
  7. package/dist/a11y/announcer.d.ts +66 -0
  8. package/dist/a11y/announcer.d.ts.map +1 -0
  9. package/dist/a11y/announcer.js +140 -0
  10. package/dist/a11y/announcer.js.map +1 -0
  11. package/dist/a11y/contrast.d.ts +55 -0
  12. package/dist/a11y/contrast.d.ts.map +1 -0
  13. package/dist/a11y/contrast.js +93 -0
  14. package/dist/a11y/contrast.js.map +1 -0
  15. package/dist/a11y/focus.d.ts +124 -0
  16. package/dist/a11y/focus.d.ts.map +1 -0
  17. package/dist/a11y/focus.js +282 -0
  18. package/dist/a11y/focus.js.map +1 -0
  19. package/dist/a11y/index.d.ts +22 -0
  20. package/dist/a11y/index.d.ts.map +1 -0
  21. package/dist/a11y/index.js +18 -0
  22. package/dist/a11y/index.js.map +1 -0
  23. package/dist/a11y/keyboard.d.ts +145 -0
  24. package/dist/a11y/keyboard.d.ts.map +1 -0
  25. package/dist/a11y/keyboard.js +317 -0
  26. package/dist/a11y/keyboard.js.map +1 -0
  27. package/dist/adapters/default-image.d.ts +26 -0
  28. package/dist/adapters/default-image.d.ts.map +1 -0
  29. package/dist/adapters/default-image.js +37 -0
  30. package/dist/adapters/default-image.js.map +1 -0
  31. package/dist/adapters/index.d.ts +28 -0
  32. package/dist/adapters/index.d.ts.map +1 -0
  33. package/dist/adapters/index.js +28 -0
  34. package/dist/adapters/index.js.map +1 -0
  35. package/dist/adapters/next-image.d.ts +39 -0
  36. package/dist/adapters/next-image.d.ts.map +1 -0
  37. package/dist/adapters/next-image.js +124 -0
  38. package/dist/adapters/next-image.js.map +1 -0
  39. package/dist/adapters/types.d.ts +62 -0
  40. package/dist/adapters/types.d.ts.map +1 -0
  41. package/dist/adapters/types.js +11 -0
  42. package/dist/adapters/types.js.map +1 -0
  43. package/dist/analytics/index.d.ts +15 -0
  44. package/dist/analytics/index.d.ts.map +1 -0
  45. package/dist/analytics/index.js +15 -0
  46. package/dist/analytics/index.js.map +1 -0
  47. package/dist/analytics/tracker.d.ts +66 -0
  48. package/dist/analytics/tracker.d.ts.map +1 -0
  49. package/dist/analytics/tracker.js +251 -0
  50. package/dist/analytics/tracker.js.map +1 -0
  51. package/dist/analytics/types.d.ts +131 -0
  52. package/dist/analytics/types.d.ts.map +1 -0
  53. package/dist/analytics/types.js +11 -0
  54. package/dist/analytics/types.js.map +1 -0
  55. package/dist/auth/index.d.ts +16 -0
  56. package/dist/auth/index.d.ts.map +1 -0
  57. package/dist/auth/index.js +14 -0
  58. package/dist/auth/index.js.map +1 -0
  59. package/dist/auth/provider.d.ts +133 -0
  60. package/dist/auth/provider.d.ts.map +1 -0
  61. package/dist/auth/provider.js +473 -0
  62. package/dist/auth/provider.js.map +1 -0
  63. package/dist/auth/types.d.ts +118 -0
  64. package/dist/auth/types.d.ts.map +1 -0
  65. package/dist/auth/types.js +9 -0
  66. package/dist/auth/types.js.map +1 -0
  67. package/dist/binding/collection.d.ts +191 -0
  68. package/dist/binding/collection.d.ts.map +1 -0
  69. package/dist/binding/collection.js +358 -0
  70. package/dist/binding/collection.js.map +1 -0
  71. package/dist/binding/datasource.d.ts +320 -0
  72. package/dist/binding/datasource.d.ts.map +1 -0
  73. package/dist/binding/datasource.js +556 -0
  74. package/dist/binding/datasource.js.map +1 -0
  75. package/dist/binding/engine.d.ts +66 -0
  76. package/dist/binding/engine.d.ts.map +1 -0
  77. package/dist/binding/engine.js +268 -0
  78. package/dist/binding/engine.js.map +1 -0
  79. package/dist/binding/expression.d.ts +151 -0
  80. package/dist/binding/expression.d.ts.map +1 -0
  81. package/dist/binding/expression.js +787 -0
  82. package/dist/binding/expression.js.map +1 -0
  83. package/dist/binding/index.d.ts +20 -0
  84. package/dist/binding/index.d.ts.map +1 -0
  85. package/dist/binding/index.js +14 -0
  86. package/dist/binding/index.js.map +1 -0
  87. package/dist/binding/two-way.d.ts +150 -0
  88. package/dist/binding/two-way.d.ts.map +1 -0
  89. package/dist/binding/two-way.js +462 -0
  90. package/dist/binding/two-way.js.map +1 -0
  91. package/dist/binding/types.d.ts +120 -0
  92. package/dist/binding/types.d.ts.map +1 -0
  93. package/dist/binding/types.js +9 -0
  94. package/dist/binding/types.js.map +1 -0
  95. package/dist/blocks/__test-fixtures__/block-fixtures.d.ts +40 -0
  96. package/dist/blocks/__test-fixtures__/block-fixtures.d.ts.map +1 -0
  97. package/dist/blocks/__test-fixtures__/block-fixtures.js +506 -0
  98. package/dist/blocks/__test-fixtures__/block-fixtures.js.map +1 -0
  99. package/dist/blocks/component-types.d.ts +82 -0
  100. package/dist/blocks/component-types.d.ts.map +1 -0
  101. package/dist/blocks/component-types.js +11 -0
  102. package/dist/blocks/component-types.js.map +1 -0
  103. package/dist/blocks/composition-rules.d.ts +169 -0
  104. package/dist/blocks/composition-rules.d.ts.map +1 -0
  105. package/dist/blocks/composition-rules.js +391 -0
  106. package/dist/blocks/composition-rules.js.map +1 -0
  107. package/dist/blocks/hooks.d.ts +32 -0
  108. package/dist/blocks/hooks.d.ts.map +1 -0
  109. package/dist/blocks/hooks.js +42 -0
  110. package/dist/blocks/hooks.js.map +1 -0
  111. package/dist/blocks/index.d.ts +16 -0
  112. package/dist/blocks/index.d.ts.map +1 -0
  113. package/dist/blocks/index.js +24 -0
  114. package/dist/blocks/index.js.map +1 -0
  115. package/dist/blocks/registry.d.ts +85 -0
  116. package/dist/blocks/registry.d.ts.map +1 -0
  117. package/dist/blocks/registry.js +136 -0
  118. package/dist/blocks/registry.js.map +1 -0
  119. package/dist/blocks/rule-engine.d.ts +132 -0
  120. package/dist/blocks/rule-engine.d.ts.map +1 -0
  121. package/dist/blocks/rule-engine.js +321 -0
  122. package/dist/blocks/rule-engine.js.map +1 -0
  123. package/dist/blocks/surface-event-context.d.ts +14 -0
  124. package/dist/blocks/surface-event-context.d.ts.map +1 -0
  125. package/dist/blocks/surface-event-context.js +14 -0
  126. package/dist/blocks/surface-event-context.js.map +1 -0
  127. package/dist/blocks/surface-id-context.d.ts +14 -0
  128. package/dist/blocks/surface-id-context.d.ts.map +1 -0
  129. package/dist/blocks/surface-id-context.js +15 -0
  130. package/dist/blocks/surface-id-context.js.map +1 -0
  131. package/dist/bus.d.ts +42 -0
  132. package/dist/bus.d.ts.map +1 -0
  133. package/dist/bus.js +158 -0
  134. package/dist/bus.js.map +1 -0
  135. package/dist/cache/index.d.ts +10 -0
  136. package/dist/cache/index.d.ts.map +1 -0
  137. package/dist/cache/index.js +10 -0
  138. package/dist/cache/index.js.map +1 -0
  139. package/dist/cache/memory.d.ts +33 -0
  140. package/dist/cache/memory.d.ts.map +1 -0
  141. package/dist/cache/memory.js +138 -0
  142. package/dist/cache/memory.js.map +1 -0
  143. package/dist/cache/types.d.ts +63 -0
  144. package/dist/cache/types.d.ts.map +1 -0
  145. package/dist/cache/types.js +9 -0
  146. package/dist/cache/types.js.map +1 -0
  147. package/dist/capability/index.d.ts +73 -0
  148. package/dist/capability/index.d.ts.map +1 -0
  149. package/dist/capability/index.js +87 -0
  150. package/dist/capability/index.js.map +1 -0
  151. package/dist/capability/kernel-capabilities.d.ts +32 -0
  152. package/dist/capability/kernel-capabilities.d.ts.map +1 -0
  153. package/dist/capability/kernel-capabilities.js +36 -0
  154. package/dist/capability/kernel-capabilities.js.map +1 -0
  155. package/dist/capability/platform-capabilities.d.ts +72 -0
  156. package/dist/capability/platform-capabilities.d.ts.map +1 -0
  157. package/dist/capability/platform-capabilities.js +267 -0
  158. package/dist/capability/platform-capabilities.js.map +1 -0
  159. package/dist/capability/type-mapping.d.ts +71 -0
  160. package/dist/capability/type-mapping.d.ts.map +1 -0
  161. package/dist/capability/type-mapping.js +107 -0
  162. package/dist/capability/type-mapping.js.map +1 -0
  163. package/dist/capability/validation.d.ts +47 -0
  164. package/dist/capability/validation.d.ts.map +1 -0
  165. package/dist/capability/validation.js +54 -0
  166. package/dist/capability/validation.js.map +1 -0
  167. package/dist/connectors/declared-connector.d.ts +49 -0
  168. package/dist/connectors/declared-connector.d.ts.map +1 -0
  169. package/dist/connectors/declared-connector.js +333 -0
  170. package/dist/connectors/declared-connector.js.map +1 -0
  171. package/dist/connectors/engine-registry.d.ts +51 -0
  172. package/dist/connectors/engine-registry.d.ts.map +1 -0
  173. package/dist/connectors/engine-registry.js +135 -0
  174. package/dist/connectors/engine-registry.js.map +1 -0
  175. package/dist/connectors/index.d.ts +15 -0
  176. package/dist/connectors/index.d.ts.map +1 -0
  177. package/dist/connectors/index.js +14 -0
  178. package/dist/connectors/index.js.map +1 -0
  179. package/dist/connectors/module-loader.d.ts +71 -0
  180. package/dist/connectors/module-loader.d.ts.map +1 -0
  181. package/dist/connectors/module-loader.js +143 -0
  182. package/dist/connectors/module-loader.js.map +1 -0
  183. package/dist/connectors/types.d.ts +175 -0
  184. package/dist/connectors/types.d.ts.map +1 -0
  185. package/dist/connectors/types.js +23 -0
  186. package/dist/connectors/types.js.map +1 -0
  187. package/dist/context.d.ts +28 -0
  188. package/dist/context.d.ts.map +1 -0
  189. package/dist/context.js +38 -0
  190. package/dist/context.js.map +1 -0
  191. package/dist/data/DataCapabilityProvider.d.ts +40 -0
  192. package/dist/data/DataCapabilityProvider.d.ts.map +1 -0
  193. package/dist/data/DataCapabilityProvider.js +58 -0
  194. package/dist/data/DataCapabilityProvider.js.map +1 -0
  195. package/dist/data/index.d.ts +18 -0
  196. package/dist/data/index.d.ts.map +1 -0
  197. package/dist/data/index.js +18 -0
  198. package/dist/data/index.js.map +1 -0
  199. package/dist/data/manager.d.ts +41 -0
  200. package/dist/data/manager.d.ts.map +1 -0
  201. package/dist/data/manager.js +442 -0
  202. package/dist/data/manager.js.map +1 -0
  203. package/dist/data/types.d.ts +219 -0
  204. package/dist/data/types.d.ts.map +1 -0
  205. package/dist/data/types.js +2 -0
  206. package/dist/data/types.js.map +1 -0
  207. package/dist/entity/aggregate.d.ts +9 -0
  208. package/dist/entity/aggregate.d.ts.map +1 -0
  209. package/dist/entity/aggregate.js +24 -0
  210. package/dist/entity/aggregate.js.map +1 -0
  211. package/dist/entity/apply-query.d.ts +59 -0
  212. package/dist/entity/apply-query.d.ts.map +1 -0
  213. package/dist/entity/apply-query.js +264 -0
  214. package/dist/entity/apply-query.js.map +1 -0
  215. package/dist/entity/behavior.d.ts +95 -0
  216. package/dist/entity/behavior.d.ts.map +1 -0
  217. package/dist/entity/behavior.js +78 -0
  218. package/dist/entity/behavior.js.map +1 -0
  219. package/dist/entity/connector.d.ts +142 -0
  220. package/dist/entity/connector.d.ts.map +1 -0
  221. package/dist/entity/connector.js +89 -0
  222. package/dist/entity/connector.js.map +1 -0
  223. package/dist/entity/connectors/index.d.ts +13 -0
  224. package/dist/entity/connectors/index.d.ts.map +1 -0
  225. package/dist/entity/connectors/index.js +11 -0
  226. package/dist/entity/connectors/index.js.map +1 -0
  227. package/dist/entity/connectors/static.d.ts +52 -0
  228. package/dist/entity/connectors/static.d.ts.map +1 -0
  229. package/dist/entity/connectors/static.js +245 -0
  230. package/dist/entity/connectors/static.js.map +1 -0
  231. package/dist/entity/entity-datasource.d.ts +51 -0
  232. package/dist/entity/entity-datasource.d.ts.map +1 -0
  233. package/dist/entity/entity-datasource.js +33 -0
  234. package/dist/entity/entity-datasource.js.map +1 -0
  235. package/dist/entity/facade.d.ts +71 -0
  236. package/dist/entity/facade.d.ts.map +1 -0
  237. package/dist/entity/facade.js +70 -0
  238. package/dist/entity/facade.js.map +1 -0
  239. package/dist/entity/http-connector.d.ts +124 -0
  240. package/dist/entity/http-connector.d.ts.map +1 -0
  241. package/dist/entity/http-connector.js +295 -0
  242. package/dist/entity/http-connector.js.map +1 -0
  243. package/dist/entity/index.d.ts +39 -0
  244. package/dist/entity/index.d.ts.map +1 -0
  245. package/dist/entity/index.js +31 -0
  246. package/dist/entity/index.js.map +1 -0
  247. package/dist/entity/postgres-connector.d.ts +65 -0
  248. package/dist/entity/postgres-connector.d.ts.map +1 -0
  249. package/dist/entity/postgres-connector.js +239 -0
  250. package/dist/entity/postgres-connector.js.map +1 -0
  251. package/dist/entity/registry.d.ts +60 -0
  252. package/dist/entity/registry.d.ts.map +1 -0
  253. package/dist/entity/registry.js +90 -0
  254. package/dist/entity/registry.js.map +1 -0
  255. package/dist/entity/store.d.ts +67 -0
  256. package/dist/entity/store.d.ts.map +1 -0
  257. package/dist/entity/store.js +349 -0
  258. package/dist/entity/store.js.map +1 -0
  259. package/dist/entity/types.d.ts +181 -0
  260. package/dist/entity/types.d.ts.map +1 -0
  261. package/dist/entity/types.js +10 -0
  262. package/dist/entity/types.js.map +1 -0
  263. package/dist/execution-context.d.ts +89 -0
  264. package/dist/execution-context.d.ts.map +1 -0
  265. package/dist/execution-context.js +146 -0
  266. package/dist/execution-context.js.map +1 -0
  267. package/dist/executor.d.ts +28 -0
  268. package/dist/executor.d.ts.map +1 -0
  269. package/dist/executor.js +33 -0
  270. package/dist/executor.js.map +1 -0
  271. package/dist/forms/form-entity-bridge.d.ts +95 -0
  272. package/dist/forms/form-entity-bridge.d.ts.map +1 -0
  273. package/dist/forms/form-entity-bridge.js +96 -0
  274. package/dist/forms/form-entity-bridge.js.map +1 -0
  275. package/dist/forms/form-write-target.d.ts +35 -0
  276. package/dist/forms/form-write-target.d.ts.map +1 -0
  277. package/dist/forms/form-write-target.js +81 -0
  278. package/dist/forms/form-write-target.js.map +1 -0
  279. package/dist/forms/index.d.ts +23 -0
  280. package/dist/forms/index.d.ts.map +1 -0
  281. package/dist/forms/index.js +25 -0
  282. package/dist/forms/index.js.map +1 -0
  283. package/dist/forms/named-control-values.d.ts +28 -0
  284. package/dist/forms/named-control-values.d.ts.map +1 -0
  285. package/dist/forms/named-control-values.js +42 -0
  286. package/dist/forms/named-control-values.js.map +1 -0
  287. package/dist/forms/processor.d.ts +56 -0
  288. package/dist/forms/processor.d.ts.map +1 -0
  289. package/dist/forms/processor.js +154 -0
  290. package/dist/forms/processor.js.map +1 -0
  291. package/dist/forms/types.d.ts +175 -0
  292. package/dist/forms/types.d.ts.map +1 -0
  293. package/dist/forms/types.js +33 -0
  294. package/dist/forms/types.js.map +1 -0
  295. package/dist/forms/validator.d.ts +62 -0
  296. package/dist/forms/validator.d.ts.map +1 -0
  297. package/dist/forms/validator.js +218 -0
  298. package/dist/forms/validator.js.map +1 -0
  299. package/dist/graph/index.d.ts +11 -0
  300. package/dist/graph/index.d.ts.map +1 -0
  301. package/dist/graph/index.js +9 -0
  302. package/dist/graph/index.js.map +1 -0
  303. package/dist/graph/resolver.d.ts +67 -0
  304. package/dist/graph/resolver.d.ts.map +1 -0
  305. package/dist/graph/resolver.js +243 -0
  306. package/dist/graph/resolver.js.map +1 -0
  307. package/dist/graph/types.d.ts +126 -0
  308. package/dist/graph/types.d.ts.map +1 -0
  309. package/dist/graph/types.js +9 -0
  310. package/dist/graph/types.js.map +1 -0
  311. package/dist/hooks/useInstalledAtoms.d.ts +97 -0
  312. package/dist/hooks/useInstalledAtoms.d.ts.map +1 -0
  313. package/dist/hooks/useInstalledAtoms.js +92 -0
  314. package/dist/hooks/useInstalledAtoms.js.map +1 -0
  315. package/dist/i18n/index.d.ts +16 -0
  316. package/dist/i18n/index.d.ts.map +1 -0
  317. package/dist/i18n/index.js +14 -0
  318. package/dist/i18n/index.js.map +1 -0
  319. package/dist/i18n/translator.d.ts +77 -0
  320. package/dist/i18n/translator.d.ts.map +1 -0
  321. package/dist/i18n/translator.js +357 -0
  322. package/dist/i18n/translator.js.map +1 -0
  323. package/dist/i18n/types.d.ts +94 -0
  324. package/dist/i18n/types.d.ts.map +1 -0
  325. package/dist/i18n/types.js +9 -0
  326. package/dist/i18n/types.js.map +1 -0
  327. package/dist/index.d.ts +65 -0
  328. package/dist/index.d.ts.map +1 -0
  329. package/dist/index.js +95 -0
  330. package/dist/index.js.map +1 -0
  331. package/dist/kernel.d.ts +48 -0
  332. package/dist/kernel.d.ts.map +1 -0
  333. package/dist/kernel.js +258 -0
  334. package/dist/kernel.js.map +1 -0
  335. package/dist/perf/budget.d.ts +93 -0
  336. package/dist/perf/budget.d.ts.map +1 -0
  337. package/dist/perf/budget.js +122 -0
  338. package/dist/perf/budget.js.map +1 -0
  339. package/dist/perf/index.d.ts +17 -0
  340. package/dist/perf/index.d.ts.map +1 -0
  341. package/dist/perf/index.js +13 -0
  342. package/dist/perf/index.js.map +1 -0
  343. package/dist/perf/render-timer.d.ts +91 -0
  344. package/dist/perf/render-timer.d.ts.map +1 -0
  345. package/dist/perf/render-timer.js +136 -0
  346. package/dist/perf/render-timer.js.map +1 -0
  347. package/dist/perf/reporter.d.ts +127 -0
  348. package/dist/perf/reporter.d.ts.map +1 -0
  349. package/dist/perf/reporter.js +241 -0
  350. package/dist/perf/reporter.js.map +1 -0
  351. package/dist/perf/web-vitals.d.ts +112 -0
  352. package/dist/perf/web-vitals.d.ts.map +1 -0
  353. package/dist/perf/web-vitals.js +268 -0
  354. package/dist/perf/web-vitals.js.map +1 -0
  355. package/dist/registry.d.ts +64 -0
  356. package/dist/registry.d.ts.map +1 -0
  357. package/dist/registry.js +126 -0
  358. package/dist/registry.js.map +1 -0
  359. package/dist/render/BehaviorSurfaceProvider.d.ts +66 -0
  360. package/dist/render/BehaviorSurfaceProvider.d.ts.map +1 -0
  361. package/dist/render/BehaviorSurfaceProvider.js +185 -0
  362. package/dist/render/BehaviorSurfaceProvider.js.map +1 -0
  363. package/dist/render/BlockErrorBoundary.d.ts +27 -0
  364. package/dist/render/BlockErrorBoundary.d.ts.map +1 -0
  365. package/dist/render/BlockErrorBoundary.js +41 -0
  366. package/dist/render/BlockErrorBoundary.js.map +1 -0
  367. package/dist/render/DataBoundSurfaceRenderer.d.ts +79 -0
  368. package/dist/render/DataBoundSurfaceRenderer.d.ts.map +1 -0
  369. package/dist/render/DataBoundSurfaceRenderer.js +998 -0
  370. package/dist/render/DataBoundSurfaceRenderer.js.map +1 -0
  371. package/dist/render/DynamicBlockWrapper.d.ts +24 -0
  372. package/dist/render/DynamicBlockWrapper.d.ts.map +1 -0
  373. package/dist/render/DynamicBlockWrapper.js +117 -0
  374. package/dist/render/DynamicBlockWrapper.js.map +1 -0
  375. package/dist/render/appearance-resolver.d.ts +51 -0
  376. package/dist/render/appearance-resolver.d.ts.map +1 -0
  377. package/dist/render/appearance-resolver.js +78 -0
  378. package/dist/render/appearance-resolver.js.map +1 -0
  379. package/dist/render/capability-gate.d.ts +70 -0
  380. package/dist/render/capability-gate.d.ts.map +1 -0
  381. package/dist/render/capability-gate.js +94 -0
  382. package/dist/render/capability-gate.js.map +1 -0
  383. package/dist/render/conditional-states-css.d.ts +42 -0
  384. package/dist/render/conditional-states-css.d.ts.map +1 -0
  385. package/dist/render/conditional-states-css.js +82 -0
  386. package/dist/render/conditional-states-css.js.map +1 -0
  387. package/dist/render/connections-context.d.ts +32 -0
  388. package/dist/render/connections-context.d.ts.map +1 -0
  389. package/dist/render/connections-context.js +34 -0
  390. package/dist/render/connections-context.js.map +1 -0
  391. package/dist/render/dark-theme-css.d.ts +37 -0
  392. package/dist/render/dark-theme-css.d.ts.map +1 -0
  393. package/dist/render/dark-theme-css.js +67 -0
  394. package/dist/render/dark-theme-css.js.map +1 -0
  395. package/dist/render/data-binding-types.d.ts +192 -0
  396. package/dist/render/data-binding-types.d.ts.map +1 -0
  397. package/dist/render/data-binding-types.js +11 -0
  398. package/dist/render/data-binding-types.js.map +1 -0
  399. package/dist/render/data-cache.d.ts +31 -0
  400. package/dist/render/data-cache.d.ts.map +1 -0
  401. package/dist/render/data-cache.js +37 -0
  402. package/dist/render/data-cache.js.map +1 -0
  403. package/dist/render/derive-dark-theme.d.ts +18 -0
  404. package/dist/render/derive-dark-theme.d.ts.map +1 -0
  405. package/dist/render/derive-dark-theme.js +18 -0
  406. package/dist/render/derive-dark-theme.js.map +1 -0
  407. package/dist/render/dynamic-artifact-context.d.ts +78 -0
  408. package/dist/render/dynamic-artifact-context.d.ts.map +1 -0
  409. package/dist/render/dynamic-artifact-context.js +89 -0
  410. package/dist/render/dynamic-artifact-context.js.map +1 -0
  411. package/dist/render/dynamic-block-loader.d.ts +81 -0
  412. package/dist/render/dynamic-block-loader.d.ts.map +1 -0
  413. package/dist/render/dynamic-block-loader.js +197 -0
  414. package/dist/render/dynamic-block-loader.js.map +1 -0
  415. package/dist/render/endpoint.d.ts +19 -0
  416. package/dist/render/endpoint.d.ts.map +1 -0
  417. package/dist/render/endpoint.js +109 -0
  418. package/dist/render/endpoint.js.map +1 -0
  419. package/dist/render/entity-facade-context.d.ts +35 -0
  420. package/dist/render/entity-facade-context.d.ts.map +1 -0
  421. package/dist/render/entity-facade-context.js +37 -0
  422. package/dist/render/entity-facade-context.js.map +1 -0
  423. package/dist/render/group-states-css.d.ts +42 -0
  424. package/dist/render/group-states-css.d.ts.map +1 -0
  425. package/dist/render/group-states-css.js +73 -0
  426. package/dist/render/group-states-css.js.map +1 -0
  427. package/dist/render/hooks/useSurfaceEvents.d.ts +9 -0
  428. package/dist/render/hooks/useSurfaceEvents.d.ts.map +1 -0
  429. package/dist/render/hooks/useSurfaceEvents.js +9 -0
  430. package/dist/render/hooks/useSurfaceEvents.js.map +1 -0
  431. package/dist/render/hooks/useSurfaceId.d.ts +9 -0
  432. package/dist/render/hooks/useSurfaceId.d.ts.map +1 -0
  433. package/dist/render/hooks/useSurfaceId.js +9 -0
  434. package/dist/render/hooks/useSurfaceId.js.map +1 -0
  435. package/dist/render/index.d.ts +49 -0
  436. package/dist/render/index.d.ts.map +1 -0
  437. package/dist/render/index.js +61 -0
  438. package/dist/render/index.js.map +1 -0
  439. package/dist/render/interaction-rule-engine.d.ts +13 -0
  440. package/dist/render/interaction-rule-engine.d.ts.map +1 -0
  441. package/dist/render/interaction-rule-engine.js +47 -0
  442. package/dist/render/interaction-rule-engine.js.map +1 -0
  443. package/dist/render/keyframes-css.d.ts +32 -0
  444. package/dist/render/keyframes-css.d.ts.map +1 -0
  445. package/dist/render/keyframes-css.js +44 -0
  446. package/dist/render/keyframes-css.js.map +1 -0
  447. package/dist/render/query-state.d.ts +4 -0
  448. package/dist/render/query-state.d.ts.map +1 -0
  449. package/dist/render/query-state.js +70 -0
  450. package/dist/render/query-state.js.map +1 -0
  451. package/dist/render/renderer.d.ts +45 -0
  452. package/dist/render/renderer.d.ts.map +1 -0
  453. package/dist/render/renderer.js +937 -0
  454. package/dist/render/renderer.js.map +1 -0
  455. package/dist/render/resolve-expressions.d.ts +38 -0
  456. package/dist/render/resolve-expressions.d.ts.map +1 -0
  457. package/dist/render/resolve-expressions.js +309 -0
  458. package/dist/render/resolve-expressions.js.map +1 -0
  459. package/dist/render/responsive-style-css.d.ts +43 -0
  460. package/dist/render/responsive-style-css.d.ts.map +1 -0
  461. package/dist/render/responsive-style-css.js +123 -0
  462. package/dist/render/responsive-style-css.js.map +1 -0
  463. package/dist/render/responsive.d.ts +50 -0
  464. package/dist/render/responsive.d.ts.map +1 -0
  465. package/dist/render/responsive.js +99 -0
  466. package/dist/render/responsive.js.map +1 -0
  467. package/dist/render/scoped-css.d.ts +72 -0
  468. package/dist/render/scoped-css.d.ts.map +1 -0
  469. package/dist/render/scoped-css.js +102 -0
  470. package/dist/render/scoped-css.js.map +1 -0
  471. package/dist/render/shell-selection.d.ts +70 -0
  472. package/dist/render/shell-selection.d.ts.map +1 -0
  473. package/dist/render/shell-selection.js +117 -0
  474. package/dist/render/shell-selection.js.map +1 -0
  475. package/dist/render/states-css.d.ts +33 -0
  476. package/dist/render/states-css.d.ts.map +1 -0
  477. package/dist/render/states-css.js +63 -0
  478. package/dist/render/states-css.js.map +1 -0
  479. package/dist/render/surface-data-context.d.ts +19 -0
  480. package/dist/render/surface-data-context.d.ts.map +1 -0
  481. package/dist/render/surface-data-context.js +21 -0
  482. package/dist/render/surface-data-context.js.map +1 -0
  483. package/dist/render/surface-event-bus.d.ts +20 -0
  484. package/dist/render/surface-event-bus.d.ts.map +1 -0
  485. package/dist/render/surface-event-bus.js +68 -0
  486. package/dist/render/surface-event-bus.js.map +1 -0
  487. package/dist/render/surface-event-context.d.ts +12 -0
  488. package/dist/render/surface-event-context.d.ts.map +1 -0
  489. package/dist/render/surface-event-context.js +12 -0
  490. package/dist/render/surface-event-context.js.map +1 -0
  491. package/dist/render/surface-id-context.d.ts +9 -0
  492. package/dist/render/surface-id-context.d.ts.map +1 -0
  493. package/dist/render/surface-id-context.js +9 -0
  494. package/dist/render/surface-id-context.js.map +1 -0
  495. package/dist/render/theme-utils.d.ts +15 -0
  496. package/dist/render/theme-utils.d.ts.map +1 -0
  497. package/dist/render/theme-utils.js +15 -0
  498. package/dist/render/theme-utils.js.map +1 -0
  499. package/dist/render/types.d.ts +283 -0
  500. package/dist/render/types.d.ts.map +1 -0
  501. package/dist/render/types.js +9 -0
  502. package/dist/render/types.js.map +1 -0
  503. package/dist/render/visibility-css.d.ts +43 -0
  504. package/dist/render/visibility-css.d.ts.map +1 -0
  505. package/dist/render/visibility-css.js +119 -0
  506. package/dist/render/visibility-css.js.map +1 -0
  507. package/dist/render/width-scope.d.ts +35 -0
  508. package/dist/render/width-scope.d.ts.map +1 -0
  509. package/dist/render/width-scope.js +44 -0
  510. package/dist/render/width-scope.js.map +1 -0
  511. package/dist/render/write-only-sources.d.ts +34 -0
  512. package/dist/render/write-only-sources.d.ts.map +1 -0
  513. package/dist/render/write-only-sources.js +99 -0
  514. package/dist/render/write-only-sources.js.map +1 -0
  515. package/dist/routing/index.d.ts +15 -0
  516. package/dist/routing/index.d.ts.map +1 -0
  517. package/dist/routing/index.js +15 -0
  518. package/dist/routing/index.js.map +1 -0
  519. package/dist/routing/router.d.ts +43 -0
  520. package/dist/routing/router.d.ts.map +1 -0
  521. package/dist/routing/router.js +218 -0
  522. package/dist/routing/router.js.map +1 -0
  523. package/dist/routing/types.d.ts +125 -0
  524. package/dist/routing/types.d.ts.map +1 -0
  525. package/dist/routing/types.js +9 -0
  526. package/dist/routing/types.js.map +1 -0
  527. package/dist/seo/generator.d.ts +40 -0
  528. package/dist/seo/generator.d.ts.map +1 -0
  529. package/dist/seo/generator.js +236 -0
  530. package/dist/seo/generator.js.map +1 -0
  531. package/dist/seo/index.d.ts +15 -0
  532. package/dist/seo/index.d.ts.map +1 -0
  533. package/dist/seo/index.js +15 -0
  534. package/dist/seo/index.js.map +1 -0
  535. package/dist/seo/types.d.ts +182 -0
  536. package/dist/seo/types.d.ts.map +1 -0
  537. package/dist/seo/types.js +9 -0
  538. package/dist/seo/types.js.map +1 -0
  539. package/dist/state/index.d.ts +16 -0
  540. package/dist/state/index.d.ts.map +1 -0
  541. package/dist/state/index.js +16 -0
  542. package/dist/state/index.js.map +1 -0
  543. package/dist/state/manager.d.ts +34 -0
  544. package/dist/state/manager.d.ts.map +1 -0
  545. package/dist/state/manager.js +81 -0
  546. package/dist/state/manager.js.map +1 -0
  547. package/dist/state/store.d.ts +41 -0
  548. package/dist/state/store.d.ts.map +1 -0
  549. package/dist/state/store.js +145 -0
  550. package/dist/state/store.js.map +1 -0
  551. package/dist/state/types.d.ts +108 -0
  552. package/dist/state/types.d.ts.map +1 -0
  553. package/dist/state/types.js +9 -0
  554. package/dist/state/types.js.map +1 -0
  555. package/dist/surface/expression.d.ts +66 -0
  556. package/dist/surface/expression.d.ts.map +1 -0
  557. package/dist/surface/expression.js +179 -0
  558. package/dist/surface/expression.js.map +1 -0
  559. package/dist/surface/index.d.ts +33 -0
  560. package/dist/surface/index.d.ts.map +1 -0
  561. package/dist/surface/index.js +25 -0
  562. package/dist/surface/index.js.map +1 -0
  563. package/dist/surface/interpreter.d.ts +97 -0
  564. package/dist/surface/interpreter.d.ts.map +1 -0
  565. package/dist/surface/interpreter.js +231 -0
  566. package/dist/surface/interpreter.js.map +1 -0
  567. package/dist/surface/layout.d.ts +55 -0
  568. package/dist/surface/layout.d.ts.map +1 -0
  569. package/dist/surface/layout.js +288 -0
  570. package/dist/surface/layout.js.map +1 -0
  571. package/dist/surface/output.d.ts +91 -0
  572. package/dist/surface/output.d.ts.map +1 -0
  573. package/dist/surface/output.js +104 -0
  574. package/dist/surface/output.js.map +1 -0
  575. package/dist/surface/primitives.d.ts +181 -0
  576. package/dist/surface/primitives.d.ts.map +1 -0
  577. package/dist/surface/primitives.js +339 -0
  578. package/dist/surface/primitives.js.map +1 -0
  579. package/dist/surface/renderer.d.ts +97 -0
  580. package/dist/surface/renderer.d.ts.map +1 -0
  581. package/dist/surface/renderer.js +190 -0
  582. package/dist/surface/renderer.js.map +1 -0
  583. package/dist/surface/schemas.d.ts +182 -0
  584. package/dist/surface/schemas.d.ts.map +1 -0
  585. package/dist/surface/schemas.js +142 -0
  586. package/dist/surface/schemas.js.map +1 -0
  587. package/dist/surface/transforms.d.ts +145 -0
  588. package/dist/surface/transforms.d.ts.map +1 -0
  589. package/dist/surface/transforms.js +120 -0
  590. package/dist/surface/transforms.js.map +1 -0
  591. package/dist/surface/types.d.ts +161 -0
  592. package/dist/surface/types.d.ts.map +1 -0
  593. package/dist/surface/types.js +51 -0
  594. package/dist/surface/types.js.map +1 -0
  595. package/dist/surface/validation.d.ts +124 -0
  596. package/dist/surface/validation.d.ts.map +1 -0
  597. package/dist/surface/validation.js +147 -0
  598. package/dist/surface/validation.js.map +1 -0
  599. package/dist/validator.d.ts +56 -0
  600. package/dist/validator.d.ts.map +1 -0
  601. package/dist/validator.js +100 -0
  602. package/dist/validator.js.map +1 -0
  603. package/package.json +105 -3
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Surface Data Context
3
+ *
4
+ * What the data-bound renderer has CURRENTLY bound, keyed by source id — the
5
+ * same object block expressions resolve `{{<sourceId>}}` against, offered to
6
+ * the providers that sit between the data layer and the blocks.
7
+ *
8
+ * The form writer needs it: a binding that says `PATCH` can only name a
9
+ * record the page has loaded, and until this context existed the writer
10
+ * could not see one — so it patched the collection path and the API said
11
+ * 404. `null` outside the data-bound path (behaviours-only surfaces, plain
12
+ * `SurfaceRenderer`), where there is nothing bound to consult.
13
+ *
14
+ * @module @pwfabric/runtime/render/surface-data-context
15
+ */
16
+ export type SurfaceData = Readonly<Record<string, unknown>>;
17
+ export declare const SurfaceDataContext: import("react").Context<Readonly<Record<string, unknown>> | null>;
18
+ export declare function useSurfaceData(): SurfaceData | null;
19
+ //# sourceMappingURL=surface-data-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface-data-context.d.ts","sourceRoot":"","sources":["../../src/render/surface-data-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAE3D,eAAO,MAAM,kBAAkB,mEAA0C,CAAA;AAEzE,wBAAgB,cAAc,IAAI,WAAW,GAAG,IAAI,CAEnD"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Surface Data Context
3
+ *
4
+ * What the data-bound renderer has CURRENTLY bound, keyed by source id — the
5
+ * same object block expressions resolve `{{<sourceId>}}` against, offered to
6
+ * the providers that sit between the data layer and the blocks.
7
+ *
8
+ * The form writer needs it: a binding that says `PATCH` can only name a
9
+ * record the page has loaded, and until this context existed the writer
10
+ * could not see one — so it patched the collection path and the API said
11
+ * 404. `null` outside the data-bound path (behaviours-only surfaces, plain
12
+ * `SurfaceRenderer`), where there is nothing bound to consult.
13
+ *
14
+ * @module @pwfabric/runtime/render/surface-data-context
15
+ */
16
+ import { createContext, useContext } from 'react';
17
+ export const SurfaceDataContext = createContext(null);
18
+ export function useSurfaceData() {
19
+ return useContext(SurfaceDataContext);
20
+ }
21
+ //# sourceMappingURL=surface-data-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface-data-context.js","sourceRoot":"","sources":["../../src/render/surface-data-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAIjD,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAAqB,IAAI,CAAC,CAAA;AAEzE,MAAM,UAAU,cAAc;IAC5B,OAAO,UAAU,CAAC,kBAAkB,CAAC,CAAA;AACvC,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Surface Event Bus Implementation
3
+ *
4
+ * In-process pub/sub bus scoped to a single rendered surface.
5
+ *
6
+ * @module @pwfabric/runtime/render/surface-event-bus
7
+ */
8
+ import type { SurfaceEventBus } from '@pwfabric/contracts';
9
+ /**
10
+ * Create a new `SurfaceEventBus` instance.
11
+ *
12
+ * Each surface renderer creates its own bus so that events from one surface
13
+ * do not leak into sibling or parent surfaces.
14
+ *
15
+ * Wildcard support: listeners registered as `"<namespace>:*"` (e.g.
16
+ * `"capability:*"`) receive every event whose type starts with that namespace
17
+ * prefix (e.g. `"capability:data-loaded"`).
18
+ */
19
+ export declare function createSurfaceEventBus(): SurfaceEventBus;
20
+ //# sourceMappingURL=surface-event-bus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface-event-bus.d.ts","sourceRoot":"","sources":["../../src/render/surface-event-bus.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,eAAe,EAIhB,MAAM,qBAAqB,CAAA;AAE5B;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CA2DvD"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Surface Event Bus Implementation
3
+ *
4
+ * In-process pub/sub bus scoped to a single rendered surface.
5
+ *
6
+ * @module @pwfabric/runtime/render/surface-event-bus
7
+ */
8
+ /**
9
+ * Create a new `SurfaceEventBus` instance.
10
+ *
11
+ * Each surface renderer creates its own bus so that events from one surface
12
+ * do not leak into sibling or parent surfaces.
13
+ *
14
+ * Wildcard support: listeners registered as `"<namespace>:*"` (e.g.
15
+ * `"capability:*"`) receive every event whose type starts with that namespace
16
+ * prefix (e.g. `"capability:data-loaded"`).
17
+ */
18
+ export function createSurfaceEventBus() {
19
+ const handlers = new Map();
20
+ return {
21
+ emit(event) {
22
+ // Dev-mode payload validation — async/lazy, does not block emit
23
+ if (process.env.NODE_ENV === 'development') {
24
+ // Import lazily to avoid prod bundle size impact
25
+ void import('@pwfabric/contracts').then(({ SURFACE_EVENT_PAYLOAD_SCHEMAS }) => {
26
+ const schema = SURFACE_EVENT_PAYLOAD_SCHEMAS[event.type];
27
+ if (schema && event.payload !== undefined) {
28
+ const result = schema.safeParse(event.payload);
29
+ if (!result.success) {
30
+ console.warn(`[SurfaceEventBus] Payload validation warning for '${event.type}':`, result.error.flatten());
31
+ }
32
+ }
33
+ });
34
+ }
35
+ // Exact-match listeners
36
+ const exactSet = handlers.get(event.type);
37
+ if (exactSet) {
38
+ exactSet.forEach((h) => h(event));
39
+ }
40
+ // Wildcard listeners for the namespace prefix (e.g. "block:*")
41
+ const ns = event.type.split(':')[0];
42
+ const wildcardSet = handlers.get(`${ns}:*`);
43
+ if (wildcardSet) {
44
+ wildcardSet.forEach((h) => h(event));
45
+ }
46
+ // Global wildcard "*" — every event. The surface renderer subscribes its
47
+ // single event handler here so block-emitted events (with their full
48
+ // payload, incl. a declarative `action`) reach the action dispatcher. This
49
+ // is what lets a form's submit→setState run via the canonical bus path
50
+ // instead of the retired legacy `context.onEvent` shim.
51
+ const globalSet = handlers.get('*');
52
+ if (globalSet) {
53
+ globalSet.forEach((h) => h(event));
54
+ }
55
+ },
56
+ on(eventType, handler) {
57
+ if (!handlers.has(eventType)) {
58
+ handlers.set(eventType, new Set());
59
+ }
60
+ handlers.get(eventType)?.add(handler);
61
+ return () => handlers.get(eventType)?.delete(handler);
62
+ },
63
+ off(eventType, handler) {
64
+ handlers.get(eventType)?.delete(handler);
65
+ },
66
+ };
67
+ }
68
+ //# sourceMappingURL=surface-event-bus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface-event-bus.js","sourceRoot":"","sources":["../../src/render/surface-event-bus.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoC,CAAA;IAE5D,OAAO;QACL,IAAI,CAAC,KAA6B;YAChC,gEAAgE;YAChE,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;gBAC3C,iDAAiD;gBACjD,KAAK,MAAM,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,6BAA6B,EAAE,EAAE,EAAE;oBAC5E,MAAM,MAAM,GACV,6BAA6B,CAAC,KAAK,CAAC,IAAkD,CAAC,CAAA;oBACzF,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;wBAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;wBAC9C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;4BACpB,OAAO,CAAC,IAAI,CACV,qDAAqD,KAAK,CAAC,IAAI,IAAI,EACnE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CACvB,CAAA;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC;YAED,wBAAwB;YACxB,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACzC,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;YACnC,CAAC;YAED,+DAA+D;YAC/D,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YACnC,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YAC3C,IAAI,WAAW,EAAE,CAAC;gBAChB,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;YACtC,CAAC;YAED,yEAAyE;YACzE,qEAAqE;YACrE,2EAA2E;YAC3E,uEAAuE;YACvE,wDAAwD;YACxD,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACnC,IAAI,SAAS,EAAE,CAAC;gBACd,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;YACpC,CAAC;QACH,CAAC;QAED,EAAE,CAAC,SAAiB,EAAE,OAA4B;YAChD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;YACpC,CAAC;YACD,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;YACrC,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QACvD,CAAC;QAED,GAAG,CAAC,SAAiB,EAAE,OAA4B;YACjD,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QAC1C,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Surface Event Context
3
+ *
4
+ * Re-exports the canonical `SurfaceEventContext` from `@pwfabric/runtime/blocks`.
5
+ * Runtime code that sets the context via
6
+ * `BehaviorSurfaceProvider` and block components that consume it via
7
+ * `useSurfaceEvents` share the same context object through this re-export.
8
+ *
9
+ * @module @pwfabric/runtime/render/surface-event-context
10
+ */
11
+ export { SurfaceEventContext } from '../blocks/surface-event-context.js';
12
+ //# sourceMappingURL=surface-event-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface-event-context.d.ts","sourceRoot":"","sources":["../../src/render/surface-event-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAA"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Surface Event Context
3
+ *
4
+ * Re-exports the canonical `SurfaceEventContext` from `@pwfabric/runtime/blocks`.
5
+ * Runtime code that sets the context via
6
+ * `BehaviorSurfaceProvider` and block components that consume it via
7
+ * `useSurfaceEvents` share the same context object through this re-export.
8
+ *
9
+ * @module @pwfabric/runtime/render/surface-event-context
10
+ */
11
+ export { SurfaceEventContext } from '../blocks/surface-event-context.js';
12
+ //# sourceMappingURL=surface-event-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface-event-context.js","sourceRoot":"","sources":["../../src/render/surface-event-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAA"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Surface ID Context
3
+ *
4
+ * Re-exports the canonical `SurfaceIdContext` from `@pwfabric/runtime/blocks`.
5
+ *
6
+ * @module @pwfabric/runtime/render/surface-id-context
7
+ */
8
+ export { SurfaceIdContext } from '../blocks/surface-id-context.js';
9
+ //# sourceMappingURL=surface-id-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface-id-context.d.ts","sourceRoot":"","sources":["../../src/render/surface-id-context.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Surface ID Context
3
+ *
4
+ * Re-exports the canonical `SurfaceIdContext` from `@pwfabric/runtime/blocks`.
5
+ *
6
+ * @module @pwfabric/runtime/render/surface-id-context
7
+ */
8
+ export { SurfaceIdContext } from '../blocks/surface-id-context.js';
9
+ //# sourceMappingURL=surface-id-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface-id-context.js","sourceRoot":"","sources":["../../src/render/surface-id-context.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Surface Theme Utilities
3
+ *
4
+ * Surface Theme Engine — converts SurfaceTheme to CSS custom properties.
5
+ *
6
+ * The implementation MOVED to `@pwfabric/contracts`
7
+ * (`fabric/appearance-cascade`) shared with the theme exporter (export
8
+ * `theme.css`) and the authoring studio (bake the dark variant at write time) need the same
9
+ * transform, and `contracts` is the only leaf all three can reach. This module
10
+ * stays as the runtime-facing name so existing import paths keep working.
11
+ *
12
+ * @module @pwfabric/runtime/render/theme-utils
13
+ */
14
+ export { surfaceThemeToCSS } from '@pwfabric/contracts';
15
+ //# sourceMappingURL=theme-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-utils.d.ts","sourceRoot":"","sources":["../../src/render/theme-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Surface Theme Utilities
3
+ *
4
+ * Surface Theme Engine — converts SurfaceTheme to CSS custom properties.
5
+ *
6
+ * The implementation MOVED to `@pwfabric/contracts`
7
+ * (`fabric/appearance-cascade`) shared with the theme exporter (export
8
+ * `theme.css`) and the authoring studio (bake the dark variant at write time) need the same
9
+ * transform, and `contracts` is the only leaf all three can reach. This module
10
+ * stays as the runtime-facing name so existing import paths keep working.
11
+ *
12
+ * @module @pwfabric/runtime/render/theme-utils
13
+ */
14
+ export { surfaceThemeToCSS } from '@pwfabric/contracts';
15
+ //# sourceMappingURL=theme-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-utils.js","sourceRoot":"","sources":["../../src/render/theme-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,283 @@
1
+ /**
2
+ * Surface Renderer Types
3
+ *
4
+ * Phase 2A.1: Type definitions for Surface-to-React rendering
5
+ *
6
+ * @module @pwfabric/runtime/render/types
7
+ */
8
+ import type { Block, BreakpointName, SurfaceDocument, SurfaceTheme } from '@pwfabric/contracts';
9
+ import type { CSSProperties, ReactNode } from 'react';
10
+ import type { ImageAdapter as ImageAdapterType } from '../adapters/types.js';
11
+ import type { EntityFacade } from '../entity/facade.js';
12
+ import type { SurfaceConnectionsValue } from '../connectors/types.js';
13
+ export type { EntityFacade } from '../entity/facade.js';
14
+ export type { ImageAdapter, ImageAdapterProps } from '../adapters/types.js';
15
+ type ImageAdapter = ImageAdapterType;
16
+ /**
17
+ * Capability types that can be required by surfaces
18
+ * (defined capabilities)
19
+ */
20
+ export type CapabilityType = 'auth' | 'data' | 'state' | 'navigation' | 'analytics' | 'seo' | 'i18n' | 'forms';
21
+ /**
22
+ * Renderable surface interface
23
+ *
24
+ * A structural projection of SurfaceDocument containing only the fields
25
+ * needed for rendering. Any object with the matching shape can be rendered,
26
+ * including custom definitions.
27
+ *
28
+ * Derived from SurfaceDocument so it stays structurally aligned with the
29
+ * canonical type.
30
+ */
31
+ export type RenderableSurface = Pick<SurfaceDocument, 'blocks' | 'appearance' | 'capabilities'> & {
32
+ /** Optional surface identifier — used by `BehaviorSurfaceProvider` to scope the event bus */
33
+ readonly id?: string;
34
+ };
35
+ /**
36
+ * Props passed to block components
37
+ */
38
+ export interface BlockComponentProps<T = Record<string, unknown>> {
39
+ /** Block definition */
40
+ readonly block: Block;
41
+ /** Resolved props (validated and defaulted) */
42
+ readonly props: T;
43
+ /** Rendered children (for container blocks) */
44
+ readonly children?: ReactNode;
45
+ /** Block context for capability access */
46
+ readonly context: BlockContext;
47
+ }
48
+ /**
49
+ * Block component type
50
+ */
51
+ export type BlockComponent<T = Record<string, unknown>> = ((props: BlockComponentProps<T>) => ReactNode) & {
52
+ /**
53
+ * How the block wants to be sized when it sits in a flex ROW.
54
+ *
55
+ * The engine's default for a row child is an equal share (`flex: 1 1 0`) —
56
+ * right for two content columns, wrong for an avatar, a badge, a button: an
57
+ * intrinsic thing stretched to half a row is the single most measured layout
58
+ * defect of the 2026-09 surface audit (127 hand-written `flex: 0 0 auto`
59
+ * overrides across 14 receipts). A block whose natural width is its content
60
+ * declares `sizing: 'intrinsic'` — as a static on the component, the same
61
+ * way `displayName` travels — and the engine gives it `flex: 0 0 auto`.
62
+ * An authored flex hint on the instance still wins. The engine memorises no
63
+ * block names: the block declares, the engine obeys.
64
+ */
65
+ sizing?: BlockSizing;
66
+ };
67
+ /** The only sizing word the engine knows besides its default (fluid share). */
68
+ export type BlockSizing = 'intrinsic';
69
+ /**
70
+ * Block component registry
71
+ */
72
+ export type BlockComponentRegistry = Record<string, BlockComponent>;
73
+ /**
74
+ * Capability provider interface
75
+ */
76
+ export interface CapabilityProvider {
77
+ /** Capability type */
78
+ readonly type: CapabilityType;
79
+ /** Provider-specific data */
80
+ readonly data?: unknown;
81
+ }
82
+ /**
83
+ * Block rendering context
84
+ */
85
+ export interface BlockContext {
86
+ /** Available capabilities */
87
+ readonly capabilities: Map<CapabilityType, CapabilityProvider>;
88
+ /** Base path for routing */
89
+ readonly basePath: string;
90
+ /** Event handler */
91
+ readonly onEvent: ((event: SurfaceEvent) => void) | undefined;
92
+ /** Image adapter for framework-specific optimization */
93
+ readonly imageAdapter: ImageAdapter | undefined;
94
+ /** Current viewport breakpoint for responsive rendering */
95
+ readonly viewport?: BreakpointName;
96
+ /**
97
+ * Interaction mode (ADR render-unification). `onEvent` is a pure notification
98
+ * and always fires; `interactionMode` gates real SIDE-EFFECTS. Blocks that
99
+ * perform real navigation or data writes (e.g. `window.location.href`) MUST
100
+ * skip those when `interactionMode === 'inert'` so editor/preview renders
101
+ * don't trigger navigation or external mutations. Defaults to `live`.
102
+ */
103
+ readonly interactionMode?: BlockInteractionMode;
104
+ }
105
+ /**
106
+ * Surface event types
107
+ */
108
+ export type SurfaceEventType = 'click' | 'submit' | 'change' | 'navigate' | 'custom';
109
+ /**
110
+ * Surface event
111
+ */
112
+ export interface SurfaceEvent {
113
+ /** Event type */
114
+ readonly type: SurfaceEventType;
115
+ /** Block ID that triggered the event */
116
+ readonly blockId: string;
117
+ /** Event payload */
118
+ readonly payload?: unknown;
119
+ /** Original DOM event (if applicable) */
120
+ readonly originalEvent?: Event;
121
+ /** Canonical bus event name (e.g. 'block:click', 'form:submit') — set by the renderer bridge */
122
+ readonly canonicalType?: string;
123
+ }
124
+ /**
125
+ * Surface renderer props
126
+ */
127
+ /**
128
+ * Interaction mode for the runtime render (ADR render-unification).
129
+ * - `live` (default): full runtime behavior — data-source auto-refresh timers run
130
+ * and block-dispatched surface actions/events fire.
131
+ * - `inert`: editor/preview render — no auto-refresh timers, block-dispatched
132
+ * surface actions are no-ops, so an editor can intercept clicks (e.g. for
133
+ * selection) without the surface mutating its own state.
134
+ */
135
+ export type BlockInteractionMode = 'live' | 'inert';
136
+ /**
137
+ * Props the runtime puts on each block's outermost wrapper element. The exact
138
+ * shape `renderBlock` would spread onto its own `<div>`. An editor decorator
139
+ * (see `renderBlockWrapper`) spreads these onto its own element so the runtime's
140
+ * computed layout + the per-block selector survive — the decorator never
141
+ * recomputes layout.
142
+ */
143
+ export interface BlockWrapperProps {
144
+ readonly style?: CSSProperties;
145
+ /**
146
+ * The block id as a DOM id, so `#<blockId>` is a reachable anchor.
147
+ *
148
+ * Separate from `data-block-id`, which addresses blocks for styling and
149
+ * editing: only a real `id` makes a fragment link scroll, so without it
150
+ * same-page navigation would be silently impossible.
151
+ *
152
+ * A decorator that renders its own wrapper receives this and is expected to
153
+ * apply it — two elements carrying one id is worse than none.
154
+ */
155
+ readonly id?: string;
156
+ /** Unified per-block selector — present on every render path. */
157
+ readonly 'data-block-id': string;
158
+ /** Any other `data-*` attributes the runtime sets (e.g. data-dynamic-block). */
159
+ readonly [dataAttr: `data-${string}`]: string | undefined;
160
+ }
161
+ /**
162
+ * Arguments passed to a `renderBlockWrapper` decorator. `children` is the
163
+ * runtime-rendered block content (already wrapped in its error boundary);
164
+ * `wrapperProps` carries the runtime-computed layout style + selectors.
165
+ */
166
+ export interface BlockWrapperRenderArgs {
167
+ readonly block: Block;
168
+ readonly children: ReactNode;
169
+ readonly wrapperProps: BlockWrapperProps;
170
+ readonly parentBlock?: Block;
171
+ }
172
+ export interface SurfaceRendererProps {
173
+ /** Surface definition (starter or custom) */
174
+ readonly surface: RenderableSurface;
175
+ /** Capability providers */
176
+ readonly capabilities?: CapabilityProvider[];
177
+ /**
178
+ * App-level color scheme hint (kept for external API compat, not injected into BlockContext).
179
+ * Surface visual theming is done via surface.theme.
180
+ */
181
+ readonly theme?: 'light' | 'dark';
182
+ /**
183
+ * the Project's shared theme tokens,
184
+ * merged as a layer BETWEEN the platform defaults and this surface's own
185
+ * `appearance.config.theme` — a surface that hasn't set a given token
186
+ * inherits the project's; one that has, keeps winning. Only wired for the
187
+ * in-process fallback resolution path (no tenant-installed ui-appearance
188
+ * atom bundle active); published/public rendering does not consume this
189
+ * yet — editor-only for now.
190
+ */
191
+ readonly projectTheme?: SurfaceTheme;
192
+ /**
193
+ * The Project's dark OVERRIDES (`appearanceConfig.darkTheme`), as the authoring studio writes
194
+ * them: only the tokens the author changed. They sit on top of the dark
195
+ * variant DERIVED from the effective light theme, under this surface's own
196
+ * `appearance.config.darkTheme`. Omit it and the dark mode is the derivation
197
+ * plus the surface's overrides, as before.
198
+ */
199
+ readonly projectDarkTheme?: SurfaceTheme;
200
+ /** Base path for links/routing */
201
+ readonly basePath?: string;
202
+ /** Event handler */
203
+ readonly onEvent?: (event: SurfaceEvent) => void;
204
+ /** Custom block component overrides */
205
+ readonly components?: Partial<BlockComponentRegistry>;
206
+ /** Wrapper className */
207
+ readonly className?: string;
208
+ /** Explicit viewport override (if not set, uses auto-detection) */
209
+ readonly viewport?: BreakpointName;
210
+ /** Grid gap between blocks in pixels (default: 16) */
211
+ readonly gap?: number | undefined;
212
+ /** Surface inner padding in pixels (default: 24) */
213
+ readonly padding?: number | undefined;
214
+ /**
215
+ * Image adapter for framework-specific image optimization
216
+ *
217
+ * Allows using Next.js Image, Astro Image, etc. while keeping
218
+ * surface definitions framework-agnostic.
219
+ *
220
+ * @example
221
+ * ```tsx
222
+ * import { NextImageAdapter } from '@pwfabric/runtime/adapters'
223
+ *
224
+ * <SurfaceRenderer
225
+ * surface={mySurface}
226
+ * imageAdapter={NextImageAdapter}
227
+ * />
228
+ * ```
229
+ */
230
+ readonly imageAdapter?: ImageAdapter;
231
+ /**
232
+ * EntityFacade instance for data model access.
233
+ * When provided, entity data sources and form bindings are activated.
234
+ * platform/entities is Tier 1 always-on — this prop is optional only
235
+ * because caller controls instantiation (ConnectorRegistry binding is app-specific).
236
+ */
237
+ readonly entityFacade?: EntityFacade;
238
+ /**
239
+ * The surface's connections context — the world's
240
+ * configured connections (single dialect with the runner's
241
+ * `connections.json` entries) plus the loaded connector-engine registry.
242
+ * When provided, `{kind:'entity', connector}` data sources route through
243
+ * the registry and the value is exposed to blocks via
244
+ * `SurfaceConnectionsContext`. Absent = today's behavior (additive).
245
+ */
246
+ readonly connections?: SurfaceConnectionsValue;
247
+ /**
248
+ * Editor-only seam (ADR render-unification): wrap each block's layout wrapper
249
+ * with custom chrome (selection/drag/hover). Receives the runtime-computed
250
+ * `wrapperProps` so the decorator never recomputes layout. When omitted
251
+ * (runtime/published path), each block renders in the default `<div>` —
252
+ * byte-identical to before this seam existed.
253
+ */
254
+ readonly renderBlockWrapper?: (args: BlockWrapperRenderArgs) => ReactNode;
255
+ /**
256
+ * Interaction mode. Defaults to `live`. `inert` suppresses data auto-refresh
257
+ * and block-dispatched surface actions (for editor/preview embedding).
258
+ */
259
+ readonly interactionMode?: BlockInteractionMode;
260
+ }
261
+ /**
262
+ * Block renderer props (internal)
263
+ */
264
+ export interface BlockRendererProps {
265
+ /** Block to render */
266
+ readonly block: Block;
267
+ /** Rendering context */
268
+ readonly context: BlockContext;
269
+ /** Component registry */
270
+ readonly components: BlockComponentRegistry;
271
+ }
272
+ /**
273
+ * Render result with metadata
274
+ */
275
+ export interface RenderResult {
276
+ /** Rendered element */
277
+ readonly element: ReactNode;
278
+ /** Block IDs in render tree */
279
+ readonly blockIds: string[];
280
+ /** Required capabilities */
281
+ readonly requiredCapabilities: CapabilityType[];
282
+ }
283
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/render/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Surface Renderer Types
3
+ *
4
+ * Phase 2A.1: Type definitions for Surface-to-React rendering
5
+ *
6
+ * @module @pwfabric/runtime/render/types
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/render/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Per-breakpoint visibility CSS generation (the `hidden md:flex` equivalent).
3
+ *
4
+ * `block.layout.hideOn` / `block.layout.showOn` declare at which breakpoints a
5
+ * block is hidden / the only breakpoints where it is visible. Inline styles
6
+ * can't express media queries, so the runtime emits scoped CSS rules — keyed
7
+ * by the block's `data-block-id` — into the surface's generated `<style>`
8
+ * (alongside the box-sizing reset). The pixel thresholds are the SAME
9
+ * `BREAKPOINTS[].minWidth` values the span system uses.
10
+ *
11
+ * Semantics:
12
+ * - `hideOn: ['xs','sm']` → hidden across the xs+sm ranges → hidden below the
13
+ * md threshold (768px) → `@media (max-width:767.98px){ display:none }`.
14
+ * - `showOn: ['lg','xl']` → visible ONLY in the lg+xl ranges → hidden below
15
+ * lg (1024px) AND at/above the breakpoint after xl (2xl = 1536px).
16
+ * - `showOn` is the inverse of `hideOn`; when both are present `showOn` wins.
17
+ *
18
+ * @module @pwfabric/runtime/render/visibility-css
19
+ */
20
+ import type { Block } from '@pwfabric/core';
21
+ import type { BreakpointName } from '@pwfabric/core';
22
+ /**
23
+ * Resolve the SET of breakpoints at which a block must be hidden, given its
24
+ * `hideOn` / `showOn` declarations. `showOn` takes precedence (the block is
25
+ * hidden at every breakpoint NOT listed in `showOn`).
26
+ */
27
+ export declare function resolveHiddenBreakpoints(hideOn: readonly BreakpointName[] | undefined, showOn: readonly BreakpointName[] | undefined): BreakpointName[];
28
+ /**
29
+ * Emit the CSS rule(s) that hide a single block at the resolved breakpoints.
30
+ * Targets `[data-block-id="<id>"]` scoped under the surface root so it cannot
31
+ * leak to the host page. Uses `!important` so the rule beats the inline layout
32
+ * style (`display:grid`/flex on the wrapper) it must override.
33
+ *
34
+ * Returns '' when there is nothing to hide.
35
+ */
36
+ export declare function blockVisibilityCss(blockId: string, hidden: BreakpointName[], surfaceId?: string): string;
37
+ /**
38
+ * Walk a surface block tree and concatenate the per-block visibility CSS for
39
+ * every block declaring `hideOn` / `showOn`. Blocks without either are skipped
40
+ * (zero bytes emitted) so existing surfaces are byte-identical.
41
+ */
42
+ export declare function collectVisibilityCss(blocks: readonly Block[], surfaceId?: string): string;
43
+ //# sourceMappingURL=visibility-css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visibility-css.d.ts","sourceRoot":"","sources":["../../src/render/visibility-css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAiBpD;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,SAAS,cAAc,EAAE,GAAG,SAAS,EAC7C,MAAM,EAAE,SAAS,cAAc,EAAE,GAAG,SAAS,GAC5C,cAAc,EAAE,CAUlB;AA8BD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,cAAc,EAAE,EACxB,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAeR;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAWzF"}