@kywi-software/core 0.11.0 → 0.12.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 (216) hide show
  1. package/AGENT-PATTERNS.md +96 -10
  2. package/dist/admin/content-form.d.ts.map +1 -1
  3. package/dist/admin/content-form.js +97 -10
  4. package/dist/admin/content-form.js.map +1 -1
  5. package/dist/admin/layout-editor/component-actions.d.ts +219 -22
  6. package/dist/admin/layout-editor/component-actions.d.ts.map +1 -1
  7. package/dist/admin/layout-editor/component-actions.js +356 -36
  8. package/dist/admin/layout-editor/component-actions.js.map +1 -1
  9. package/dist/admin/layout-editor/component-fork.d.ts +224 -0
  10. package/dist/admin/layout-editor/component-fork.d.ts.map +1 -0
  11. package/dist/admin/layout-editor/component-fork.js +342 -0
  12. package/dist/admin/layout-editor/component-fork.js.map +1 -0
  13. package/dist/admin/layout-editor/editor-canvas.d.ts +8 -0
  14. package/dist/admin/layout-editor/editor-canvas.d.ts.map +1 -1
  15. package/dist/admin/layout-editor/editor-canvas.js +120 -12
  16. package/dist/admin/layout-editor/editor-canvas.js.map +1 -1
  17. package/dist/admin/layout-editor/editor-dialog.d.ts +164 -0
  18. package/dist/admin/layout-editor/editor-dialog.d.ts.map +1 -0
  19. package/dist/admin/layout-editor/editor-dialog.js +195 -0
  20. package/dist/admin/layout-editor/editor-dialog.js.map +1 -0
  21. package/dist/admin/layout-editor/editor-state.d.ts +76 -0
  22. package/dist/admin/layout-editor/editor-state.d.ts.map +1 -1
  23. package/dist/admin/layout-editor/editor-state.js +47 -1
  24. package/dist/admin/layout-editor/editor-state.js.map +1 -1
  25. package/dist/admin/layout-editor/editor.css +279 -2
  26. package/dist/admin/layout-editor/index.d.ts +10 -1
  27. package/dist/admin/layout-editor/index.d.ts.map +1 -1
  28. package/dist/admin/layout-editor/index.js +11 -1
  29. package/dist/admin/layout-editor/index.js.map +1 -1
  30. package/dist/admin/layout-editor/layout-editor.d.ts +58 -1
  31. package/dist/admin/layout-editor/layout-editor.d.ts.map +1 -1
  32. package/dist/admin/layout-editor/layout-editor.js +160 -190
  33. package/dist/admin/layout-editor/layout-editor.js.map +1 -1
  34. package/dist/admin/layout-editor/linked-component.d.ts +39 -0
  35. package/dist/admin/layout-editor/linked-component.d.ts.map +1 -0
  36. package/dist/admin/layout-editor/linked-component.js +42 -0
  37. package/dist/admin/layout-editor/linked-component.js.map +1 -0
  38. package/dist/admin/layout-editor/module-overlay.d.ts +10 -1
  39. package/dist/admin/layout-editor/module-overlay.d.ts.map +1 -1
  40. package/dist/admin/layout-editor/module-overlay.js +33 -4
  41. package/dist/admin/layout-editor/module-overlay.js.map +1 -1
  42. package/dist/admin/layout-editor/node-lookup.d.ts +35 -0
  43. package/dist/admin/layout-editor/node-lookup.d.ts.map +1 -1
  44. package/dist/admin/layout-editor/node-lookup.js +91 -0
  45. package/dist/admin/layout-editor/node-lookup.js.map +1 -1
  46. package/dist/admin/layout-editor/overlay-shell.d.ts.map +1 -1
  47. package/dist/admin/layout-editor/overlay-shell.js +114 -23
  48. package/dist/admin/layout-editor/overlay-shell.js.map +1 -1
  49. package/dist/admin/layout-editor/props-panel.d.ts +54 -1
  50. package/dist/admin/layout-editor/props-panel.d.ts.map +1 -1
  51. package/dist/admin/layout-editor/props-panel.js +118 -9
  52. package/dist/admin/layout-editor/props-panel.js.map +1 -1
  53. package/dist/admin/layout-editor/section-overlay.d.ts +9 -1
  54. package/dist/admin/layout-editor/section-overlay.d.ts.map +1 -1
  55. package/dist/admin/layout-editor/section-overlay.js +14 -4
  56. package/dist/admin/layout-editor/section-overlay.js.map +1 -1
  57. package/dist/admin/layout-editor/section-template-picker.d.ts +27 -1
  58. package/dist/admin/layout-editor/section-template-picker.d.ts.map +1 -1
  59. package/dist/admin/layout-editor/section-template-picker.js +71 -17
  60. package/dist/admin/layout-editor/section-template-picker.js.map +1 -1
  61. package/dist/admin/layout-editor/use-component-connect.d.ts +61 -0
  62. package/dist/admin/layout-editor/use-component-connect.d.ts.map +1 -0
  63. package/dist/admin/layout-editor/use-component-connect.js +292 -0
  64. package/dist/admin/layout-editor/use-component-connect.js.map +1 -0
  65. package/dist/admin/layout-editor/use-component-fork.d.ts +123 -0
  66. package/dist/admin/layout-editor/use-component-fork.d.ts.map +1 -0
  67. package/dist/admin/layout-editor/use-component-fork.js +346 -0
  68. package/dist/admin/layout-editor/use-component-fork.js.map +1 -0
  69. package/dist/admin/layout-editor/use-component-library.d.ts +94 -0
  70. package/dist/admin/layout-editor/use-component-library.d.ts.map +1 -0
  71. package/dist/admin/layout-editor/use-component-library.js +55 -0
  72. package/dist/admin/layout-editor/use-component-library.js.map +1 -0
  73. package/dist/admin/registry.d.ts +11 -2
  74. package/dist/admin/registry.d.ts.map +1 -1
  75. package/dist/admin/registry.js +40 -4
  76. package/dist/admin/registry.js.map +1 -1
  77. package/dist/admin/server.d.ts +1 -0
  78. package/dist/admin/server.d.ts.map +1 -1
  79. package/dist/admin/server.js +5 -0
  80. package/dist/admin/server.js.map +1 -1
  81. package/dist/admin/styles/admin.css +43 -0
  82. package/dist/admin/surfaces/components/component-edit.d.ts +3 -0
  83. package/dist/admin/surfaces/components/component-edit.d.ts.map +1 -0
  84. package/dist/admin/surfaces/components/component-edit.js +235 -0
  85. package/dist/admin/surfaces/components/component-edit.js.map +1 -0
  86. package/dist/admin/surfaces/components/components-data.d.ts +153 -0
  87. package/dist/admin/surfaces/components/components-data.d.ts.map +1 -0
  88. package/dist/admin/surfaces/components/components-data.js +154 -0
  89. package/dist/admin/surfaces/components/components-data.js.map +1 -0
  90. package/dist/admin/surfaces/components/components-list.d.ts +3 -0
  91. package/dist/admin/surfaces/components/components-list.d.ts.map +1 -0
  92. package/dist/admin/surfaces/components/components-list.js +196 -0
  93. package/dist/admin/surfaces/components/components-list.js.map +1 -0
  94. package/dist/admin/surfaces/components/definition-canvas.d.ts +73 -0
  95. package/dist/admin/surfaces/components/definition-canvas.d.ts.map +1 -0
  96. package/dist/admin/surfaces/components/definition-canvas.js +207 -0
  97. package/dist/admin/surfaces/components/definition-canvas.js.map +1 -0
  98. package/dist/admin/surfaces/layouts/layout-editor-client.d.ts.map +1 -1
  99. package/dist/admin/surfaces/layouts/layout-editor-client.js +14 -2
  100. package/dist/admin/surfaces/layouts/layout-editor-client.js.map +1 -1
  101. package/dist/admin/surfaces/layouts/layouts-data.d.ts +3 -14
  102. package/dist/admin/surfaces/layouts/layouts-data.d.ts.map +1 -1
  103. package/dist/admin/surfaces/layouts/layouts-data.js +4 -7
  104. package/dist/admin/surfaces/layouts/layouts-data.js.map +1 -1
  105. package/dist/admin/surfaces/layouts/layouts-list.d.ts.map +1 -1
  106. package/dist/admin/surfaces/layouts/layouts-list.js +16 -22
  107. package/dist/admin/surfaces/layouts/layouts-list.js.map +1 -1
  108. package/dist/admin/surfaces/settings/admin-features.d.ts.map +1 -1
  109. package/dist/admin/surfaces/settings/admin-features.js +1 -0
  110. package/dist/admin/surfaces/settings/admin-features.js.map +1 -1
  111. package/dist/api/bulk-routes.d.ts.map +1 -1
  112. package/dist/api/bulk-routes.js +25 -0
  113. package/dist/api/bulk-routes.js.map +1 -1
  114. package/dist/api/changeset-routes.d.ts.map +1 -1
  115. package/dist/api/changeset-routes.js +17 -3
  116. package/dist/api/changeset-routes.js.map +1 -1
  117. package/dist/api/component-routes.d.ts.map +1 -1
  118. package/dist/api/component-routes.js +228 -8
  119. package/dist/api/component-routes.js.map +1 -1
  120. package/dist/api/content-routes.d.ts.map +1 -1
  121. package/dist/api/content-routes.js +64 -0
  122. package/dist/api/content-routes.js.map +1 -1
  123. package/dist/api/feed-routes.d.ts +6 -6
  124. package/dist/api/graphql/resolvers.d.ts +4 -4
  125. package/dist/api/layout-routes.d.ts.map +1 -1
  126. package/dist/api/layout-routes.js +4 -17
  127. package/dist/api/layout-routes.js.map +1 -1
  128. package/dist/api/layout-write-guard.d.ts +80 -0
  129. package/dist/api/layout-write-guard.d.ts.map +1 -0
  130. package/dist/api/layout-write-guard.js +88 -0
  131. package/dist/api/layout-write-guard.js.map +1 -0
  132. package/dist/api/section-template-routes.d.ts.map +1 -1
  133. package/dist/api/section-template-routes.js +11 -0
  134. package/dist/api/section-template-routes.js.map +1 -1
  135. package/dist/api/translation-routes.d.ts.map +1 -1
  136. package/dist/api/translation-routes.js +8 -0
  137. package/dist/api/translation-routes.js.map +1 -1
  138. package/dist/api/version-routes.d.ts.map +1 -1
  139. package/dist/api/version-routes.js +20 -8
  140. package/dist/api/version-routes.js.map +1 -1
  141. package/dist/api/workflow-routes.d.ts.map +1 -1
  142. package/dist/api/workflow-routes.js +53 -8
  143. package/dist/api/workflow-routes.js.map +1 -1
  144. package/dist/db/analytics-queries.d.ts +3 -3
  145. package/dist/db/apply-snapshot.d.ts +75 -8
  146. package/dist/db/apply-snapshot.d.ts.map +1 -1
  147. package/dist/db/apply-snapshot.js +104 -8
  148. package/dist/db/apply-snapshot.js.map +1 -1
  149. package/dist/db/audit-queries.d.ts +12 -12
  150. package/dist/db/category-queries.d.ts +3 -3
  151. package/dist/db/changeset-audit-queries.d.ts +4 -4
  152. package/dist/db/changeset-queries.d.ts +7 -7
  153. package/dist/db/comment-queries.d.ts +8 -8
  154. package/dist/db/comment-subscription-queries.d.ts +2 -2
  155. package/dist/db/component-instance-queries.d.ts +197 -0
  156. package/dist/db/component-instance-queries.d.ts.map +1 -0
  157. package/dist/db/component-instance-queries.js +405 -0
  158. package/dist/db/component-instance-queries.js.map +1 -0
  159. package/dist/db/content-queries.d.ts.map +1 -1
  160. package/dist/db/content-queries.js +39 -2
  161. package/dist/db/content-queries.js.map +1 -1
  162. package/dist/db/extension-queries.d.ts +7 -7
  163. package/dist/db/feed-queries.d.ts +3 -3
  164. package/dist/db/index.d.ts +1 -0
  165. package/dist/db/index.d.ts.map +1 -1
  166. package/dist/db/index.js +1 -0
  167. package/dist/db/index.js.map +1 -1
  168. package/dist/db/layout-queries.d.ts +13 -1
  169. package/dist/db/layout-queries.d.ts.map +1 -1
  170. package/dist/db/layout-queries.js +52 -7
  171. package/dist/db/layout-queries.js.map +1 -1
  172. package/dist/db/locale-queries.d.ts.map +1 -1
  173. package/dist/db/locale-queries.js +0 -0
  174. package/dist/db/locale-queries.js.map +1 -1
  175. package/dist/db/media-queries.d.ts +12 -12
  176. package/dist/db/revision-queries.d.ts +3 -3
  177. package/dist/db/site-admin-queries.d.ts +2 -2
  178. package/dist/db/site-membership-queries.d.ts +3 -3
  179. package/dist/db/site-plugin-queries.d.ts +2 -2
  180. package/dist/db/site-queries.d.ts +6 -6
  181. package/dist/db/version-queries.d.ts +12 -12
  182. package/dist/db/webhook-queries.d.ts +11 -11
  183. package/dist/db/workflow-queries.d.ts +6 -6
  184. package/dist/db/workflow-queries.d.ts.map +1 -1
  185. package/dist/db/workflow-queries.js +11 -2
  186. package/dist/db/workflow-queries.js.map +1 -1
  187. package/dist/layout/component-refs.d.ts +465 -0
  188. package/dist/layout/component-refs.d.ts.map +1 -0
  189. package/dist/layout/component-refs.js +848 -0
  190. package/dist/layout/component-refs.js.map +1 -0
  191. package/dist/layout/index.d.ts +2 -1
  192. package/dist/layout/index.d.ts.map +1 -1
  193. package/dist/layout/index.js +1 -0
  194. package/dist/layout/index.js.map +1 -1
  195. package/dist/layout/module-permissions.d.ts +49 -1
  196. package/dist/layout/module-permissions.d.ts.map +1 -1
  197. package/dist/layout/module-permissions.js +117 -6
  198. package/dist/layout/module-permissions.js.map +1 -1
  199. package/dist/layout/renderer.d.ts +51 -4
  200. package/dist/layout/renderer.d.ts.map +1 -1
  201. package/dist/layout/renderer.js +36 -38
  202. package/dist/layout/renderer.js.map +1 -1
  203. package/dist/layout/types.d.ts +42 -0
  204. package/dist/layout/types.d.ts.map +1 -1
  205. package/dist/layout/types.js +54 -11
  206. package/dist/layout/types.js.map +1 -1
  207. package/dist/schema/base.d.ts +1 -1
  208. package/dist/schema/components.d.ts +150 -0
  209. package/dist/schema/components.d.ts.map +1 -1
  210. package/dist/schema/components.js +50 -4
  211. package/dist/schema/components.js.map +1 -1
  212. package/dist/versioning/scheduler.d.ts +8 -0
  213. package/dist/versioning/scheduler.d.ts.map +1 -1
  214. package/dist/versioning/scheduler.js +21 -7
  215. package/dist/versioning/scheduler.js.map +1 -1
  216. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-refs.js","sourceRoot":"","sources":["../../src/layout/component-refs.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  export * from './types.js';
2
+ export { collectComponentRefs, diffComponentRefs, rekeyResolvedSection, rekeyResolvedVariantContainer, isCleanComponentInstance, resolveModulePlacement, applySectionPlacement, applyVariantContainerPlacement, componentDetachSource, validateComponentDefinition, materializeModuleNode, materializeSectionNode, materializeVariantContainerNode, detachModuleNode, detachSectionNode, detachVariantContainerNode, detachComponentFromLayout, resolveComponentPlacements, type ComponentPlacementLookup, type ComponentRef, type ComponentRefKind, type ComponentRefDiff, type ComponentDetachSource, type ComponentDefinitionValidation, type ResolvedModuleDefinition, type DetachResult, } from './component-refs.js';
2
3
  export { createModuleRegistry, BUILT_IN_MODULES, type ModuleRegistry, type ModuleRegistryEntry } from './registry.js';
3
4
  export type { ModuleConfig, ModulePropDefinition, ModulePropOption } from '../config/types.js';
4
5
  export { mergeLayoutCascade, type CascadeRule } from './cascade.js';
5
- export { KywiLayout, KywiRegion, AudienceMetaTags, type ComponentResolver, type SectionComponentResolver, type PersonalizationState, type ModuleComponentMap, } from './renderer.js';
6
+ export { KywiLayout, KywiRegion, AudienceMetaTags, type ComponentResolver, type SectionComponentResolver, type VariantContainerComponentResolver, type PersonalizationState, type ModuleComponentMap, } from './renderer.js';
6
7
  export { hydrateLayoutNav, type NavHydrationResolver, } from './nav-hydration.js';
7
8
  export { hydrateLayoutFeeds, contentRowsToFeedItems, type FeedDisplayItem, type FeedItemsResolver, } from './feed-hydration.js';
8
9
  export { resolvePageVariantRegions, applyPageVariant } from './personalization.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/layout/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,KAAK,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACrH,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC9F,OAAO,EAAE,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAA;AACnE,OAAO,EACL,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,GACxB,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,gBAAgB,EAChB,KAAK,oBAAoB,GAC1B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,KAAK,eAAe,EACpB,KAAK,iBAAiB,GACvB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAClF,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAAE,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC7E,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,oBAAoB,GAC1B,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/layout/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,6BAA6B,EAC7B,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,8BAA8B,EAC9B,qBAAqB,EACrB,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,EACtB,+BAA+B,EAC/B,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,EAC1B,yBAAyB,EACzB,0BAA0B,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,6BAA6B,EAClC,KAAK,wBAAwB,EAC7B,KAAK,YAAY,GAClB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,KAAK,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACrH,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC9F,OAAO,EAAE,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAA;AACnE,OAAO,EACL,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,iCAAiC,EACtC,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,GACxB,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,gBAAgB,EAChB,KAAK,oBAAoB,GAC1B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,KAAK,eAAe,EACpB,KAAK,iBAAiB,GACvB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAClF,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAAE,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC7E,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,oBAAoB,GAC1B,MAAM,gBAAgB,CAAA"}
@@ -1,4 +1,5 @@
1
1
  export * from './types.js';
2
+ export { collectComponentRefs, diffComponentRefs, rekeyResolvedSection, rekeyResolvedVariantContainer, isCleanComponentInstance, resolveModulePlacement, applySectionPlacement, applyVariantContainerPlacement, componentDetachSource, validateComponentDefinition, materializeModuleNode, materializeSectionNode, materializeVariantContainerNode, detachModuleNode, detachSectionNode, detachVariantContainerNode, detachComponentFromLayout, resolveComponentPlacements, } from './component-refs.js';
2
3
  export { createModuleRegistry, BUILT_IN_MODULES } from './registry.js';
3
4
  export { mergeLayoutCascade } from './cascade.js';
4
5
  export { KywiLayout, KywiRegion, AudienceMetaTags, } from './renderer.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/layout/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAiD,MAAM,eAAe,CAAA;AAErH,OAAO,EAAE,kBAAkB,EAAoB,MAAM,cAAc,CAAA;AACnE,OAAO,EACL,UAAU,EACV,UAAU,EACV,gBAAgB,GAKjB,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,gBAAgB,GAEjB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,kBAAkB,EAClB,sBAAsB,GAGvB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAClF,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAAE,mBAAmB,EAAsB,MAAM,qBAAqB,CAAA;AAC7E,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,GAEnB,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/layout/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,6BAA6B,EAC7B,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,8BAA8B,EAC9B,qBAAqB,EACrB,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,EACtB,+BAA+B,EAC/B,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,EAC1B,yBAAyB,EACzB,0BAA0B,GAS3B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAiD,MAAM,eAAe,CAAA;AAErH,OAAO,EAAE,kBAAkB,EAAoB,MAAM,cAAc,CAAA;AACnE,OAAO,EACL,UAAU,EACV,UAAU,EACV,gBAAgB,GAMjB,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,gBAAgB,GAEjB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,kBAAkB,EAClB,sBAAsB,GAGvB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAClF,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAAE,mBAAmB,EAAsB,MAAM,qBAAqB,CAAA;AAC7E,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,GAEnB,MAAM,gBAAgB,CAAA"}
@@ -13,6 +13,44 @@ import type { LayoutDocument } from './types.js';
13
13
  * depth (privilege separation), not the XSS boundary.
14
14
  */
15
15
  export declare const ADMIN_ONLY_MODULE_TYPES: ReadonlySet<string>;
16
+ /** The fields of a `kywi_components` row this gate reads. */
17
+ export interface ComponentDefinitionForGuard {
18
+ type: string;
19
+ moduleType?: string | null | undefined;
20
+ definition?: unknown;
21
+ }
22
+ /** Look up a component's stored definition by id (null when unknown). */
23
+ export type ComponentDefinitionLookup = (componentId: string) => ComponentDefinitionForGuard | null | undefined;
24
+ /**
25
+ * View a stored component definition as the layout document it will become once
26
+ * placed, so ONE walker answers "which module types does this contain" for
27
+ * layouts and for components alike.
28
+ *
29
+ * Returns null when the definition doesn't match its declared type. The callers
30
+ * read that as "assume nothing" — the strict direction: on a component write the
31
+ * definition is rejected by `validateComponentDefinition` anyway, and on a
32
+ * layout write an unreadable definition simply contributes no *permission*,
33
+ * which is the safe default because a definition that cannot be parsed also
34
+ * cannot be resolved by the renderer.
35
+ *
36
+ * A module component becomes a one-node document under a fixed node id, so the
37
+ * differential in {@link newlyIntroducedAdminOnlyTypes} compares the definition's
38
+ * props against the previous definition's props — "may not modify", not just
39
+ * "may not introduce", exactly as for a module written into a page.
40
+ */
41
+ export declare function componentDefinitionAsDocument(component: ComponentDefinitionForGuard | null | undefined): LayoutDocument | null;
42
+ /**
43
+ * The admin-only module types a COMPONENT write introduces or modifies — the
44
+ * component-library counterpart of {@link newlyIntroducedAdminOnlyTypes}, and
45
+ * the gate `POST /components` and `PUT /components/:id` apply to the caller.
46
+ *
47
+ * `stored = null` (a create) makes every admin-only module in the definition
48
+ * offending. On an update the same least-surprise contract as a layout save
49
+ * holds: an author may rename a component whose definition already contains an
50
+ * admin-placed `html` block, and may re-save its definition untouched, but may
51
+ * neither add one nor rewrite an existing one's props.
52
+ */
53
+ export declare function newlyIntroducedAdminOnlyTypesInDefinition(incoming: ComponentDefinitionForGuard, stored: ComponentDefinitionForGuard | null | undefined): string[];
16
54
  /**
17
55
  * The admin-only module TYPES that `incoming` introduces OR modifies relative to
18
56
  * `stored`.
@@ -33,6 +71,16 @@ export declare const ADMIN_ONLY_MODULE_TYPES: ReadonlySet<string>;
33
71
  *
34
72
  * Pass `stored = null` for a create (no prior document): every admin-only module
35
73
  * is then offending.
74
+ *
75
+ * `resolveComponent` extends the same rule THROUGH linked components: every
76
+ * `componentId` link the document newly gains is expanded to its stored
77
+ * definition, and any admin-only module inside it counts as introduced — because
78
+ * it is. Only NEW links are expanded; a link the document already had is a
79
+ * module the page was already rendering, and changing what it resolves to is a
80
+ * component write, gated at that door by
81
+ * {@link newlyIntroducedAdminOnlyTypesInDefinition}. Omit the lookup (the
82
+ * default) and only the modules written directly into the document are checked,
83
+ * which is the pre-#147 behaviour.
36
84
  */
37
- export declare function newlyIntroducedAdminOnlyTypes(incoming: LayoutDocument, stored: LayoutDocument | null | undefined): string[];
85
+ export declare function newlyIntroducedAdminOnlyTypes(incoming: LayoutDocument, stored: LayoutDocument | null | undefined, resolveComponent?: ComponentDefinitionLookup): string[];
38
86
  //# sourceMappingURL=module-permissions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"module-permissions.d.ts","sourceRoot":"","sources":["../../src/layout/module-permissions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,YAAY,CAAA;AAEvF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,uBAAuB,EAAE,WAAW,CAAC,MAAM,CAAqB,CAAA;AAmE7E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,GACxC,MAAM,EAAE,CAWV"}
1
+ {"version":3,"file":"module-permissions.d.ts","sourceRoot":"","sources":["../../src/layout/module-permissions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,YAAY,CAAA;AAIvF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,uBAAuB,EAAE,WAAW,CAAC,MAAM,CAAqB,CAAA;AAoF7E,6DAA6D;AAC7D,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACtC,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,yEAAyE;AACzE,MAAM,MAAM,yBAAyB,GAAG,CACtC,WAAW,EAAE,MAAM,KAChB,2BAA2B,GAAG,IAAI,GAAG,SAAS,CAAA;AAKnD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,2BAA2B,GAAG,IAAI,GAAG,SAAS,GACxD,cAAc,GAAG,IAAI,CA6CvB;AASD;;;;;;;;;;GAUG;AACH,wBAAgB,yCAAyC,CACvD,QAAQ,EAAE,2BAA2B,EACrC,MAAM,EAAE,2BAA2B,GAAG,IAAI,GAAG,SAAS,GACrD,MAAM,EAAE,CAIV;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,EACzC,gBAAgB,CAAC,EAAE,yBAAyB,GAC3C,MAAM,EAAE,CAkBV"}
@@ -1,3 +1,5 @@
1
+ import { validateLayoutSection, validateVariantContainer } from './types.js';
2
+ import { diffComponentRefs } from './component-refs.js';
1
3
  /**
2
4
  * Module types that expose privileged capabilities (raw HTML injection) and must
3
5
  * be withheld from regular editors — only siteAdmin and above may INTRODUCE them.
@@ -15,20 +17,20 @@ export const ADMIN_ONLY_MODULE_TYPES = new Set(['html']);
15
17
  /** Yield every ModuleNode contained anywhere in a LayoutDocument. */
16
18
  function* iterModuleNodes(doc) {
17
19
  function* fromSections(sections) {
18
- for (const section of sections) {
19
- for (const column of section.columns) {
20
- yield* column.nodes;
20
+ for (const section of sections ?? []) {
21
+ for (const column of section.columns ?? []) {
22
+ yield* column.nodes ?? [];
21
23
  }
22
24
  }
23
25
  }
24
26
  function* fromRegionNodes(nodes) {
25
- for (const node of nodes) {
27
+ for (const node of nodes ?? []) {
26
28
  if (node.type === 'section') {
27
29
  yield* fromSections([node]);
28
30
  }
29
31
  else if (node.type === 'variantContainer') {
30
32
  yield* fromSections(node.defaultSections);
31
- for (const variant of node.variants) {
33
+ for (const variant of node.variants ?? []) {
32
34
  yield* fromSections(variant.sections);
33
35
  }
34
36
  }
@@ -77,6 +79,98 @@ function stableStringify(value) {
77
79
  function propsEqual(a, b) {
78
80
  return stableStringify(a) === stableStringify(b);
79
81
  }
82
+ const DEFINITION_REGION = 'definition';
83
+ const DEFINITION_MODULE_ID = 'definition:module';
84
+ /**
85
+ * View a stored component definition as the layout document it will become once
86
+ * placed, so ONE walker answers "which module types does this contain" for
87
+ * layouts and for components alike.
88
+ *
89
+ * Returns null when the definition doesn't match its declared type. The callers
90
+ * read that as "assume nothing" — the strict direction: on a component write the
91
+ * definition is rejected by `validateComponentDefinition` anyway, and on a
92
+ * layout write an unreadable definition simply contributes no *permission*,
93
+ * which is the safe default because a definition that cannot be parsed also
94
+ * cannot be resolved by the renderer.
95
+ *
96
+ * A module component becomes a one-node document under a fixed node id, so the
97
+ * differential in {@link newlyIntroducedAdminOnlyTypes} compares the definition's
98
+ * props against the previous definition's props — "may not modify", not just
99
+ * "may not introduce", exactly as for a module written into a page.
100
+ */
101
+ export function componentDefinitionAsDocument(component) {
102
+ if (!component)
103
+ return null;
104
+ const definition = component.definition;
105
+ if (component.type === 'module') {
106
+ if (!component.moduleType)
107
+ return null;
108
+ if (typeof definition !== 'object' || definition === null)
109
+ return null;
110
+ const def = definition;
111
+ const props = (def['props'] ?? {});
112
+ const style = (def['style'] ?? {});
113
+ return {
114
+ regions: {
115
+ [DEFINITION_REGION]: [
116
+ {
117
+ id: 'definition:section',
118
+ type: 'section',
119
+ style: {},
120
+ columns: [
121
+ {
122
+ id: 'definition:column',
123
+ width: 12,
124
+ nodes: [
125
+ {
126
+ id: DEFINITION_MODULE_ID,
127
+ type: component.moduleType,
128
+ instanceId: DEFINITION_MODULE_ID,
129
+ props,
130
+ style,
131
+ },
132
+ ],
133
+ },
134
+ ],
135
+ },
136
+ ],
137
+ },
138
+ };
139
+ }
140
+ if (component.type === 'section') {
141
+ const parsed = validateLayoutSection(definition);
142
+ return parsed.success ? { regions: { [DEFINITION_REGION]: [parsed.data] } } : null;
143
+ }
144
+ if (component.type === 'variantContainer') {
145
+ const parsed = validateVariantContainer(definition);
146
+ return parsed.success ? { regions: { [DEFINITION_REGION]: [parsed.data] } } : null;
147
+ }
148
+ return null;
149
+ }
150
+ /** Every admin-only module type contained in a definition, ignoring identity. */
151
+ function adminOnlyTypesInDefinition(component) {
152
+ const doc = componentDefinitionAsDocument(component);
153
+ if (!doc)
154
+ return [];
155
+ return [...new Set([...iterModuleNodes(doc)].map(n => n.type).filter(t => ADMIN_ONLY_MODULE_TYPES.has(t)))];
156
+ }
157
+ /**
158
+ * The admin-only module types a COMPONENT write introduces or modifies — the
159
+ * component-library counterpart of {@link newlyIntroducedAdminOnlyTypes}, and
160
+ * the gate `POST /components` and `PUT /components/:id` apply to the caller.
161
+ *
162
+ * `stored = null` (a create) makes every admin-only module in the definition
163
+ * offending. On an update the same least-surprise contract as a layout save
164
+ * holds: an author may rename a component whose definition already contains an
165
+ * admin-placed `html` block, and may re-save its definition untouched, but may
166
+ * neither add one nor rewrite an existing one's props.
167
+ */
168
+ export function newlyIntroducedAdminOnlyTypesInDefinition(incoming, stored) {
169
+ const incomingDoc = componentDefinitionAsDocument(incoming);
170
+ if (!incomingDoc)
171
+ return [];
172
+ return newlyIntroducedAdminOnlyTypes(incomingDoc, componentDefinitionAsDocument(stored));
173
+ }
80
174
  /**
81
175
  * The admin-only module TYPES that `incoming` introduces OR modifies relative to
82
176
  * `stored`.
@@ -97,8 +191,18 @@ function propsEqual(a, b) {
97
191
  *
98
192
  * Pass `stored = null` for a create (no prior document): every admin-only module
99
193
  * is then offending.
194
+ *
195
+ * `resolveComponent` extends the same rule THROUGH linked components: every
196
+ * `componentId` link the document newly gains is expanded to its stored
197
+ * definition, and any admin-only module inside it counts as introduced — because
198
+ * it is. Only NEW links are expanded; a link the document already had is a
199
+ * module the page was already rendering, and changing what it resolves to is a
200
+ * component write, gated at that door by
201
+ * {@link newlyIntroducedAdminOnlyTypesInDefinition}. Omit the lookup (the
202
+ * default) and only the modules written directly into the document are checked,
203
+ * which is the pre-#147 behaviour.
100
204
  */
101
- export function newlyIntroducedAdminOnlyTypes(incoming, stored) {
205
+ export function newlyIntroducedAdminOnlyTypes(incoming, stored, resolveComponent) {
102
206
  const storedById = adminOnlyModulesById(stored);
103
207
  const offending = new Set();
104
208
  for (const node of iterModuleNodes(incoming)) {
@@ -109,6 +213,13 @@ export function newlyIntroducedAdminOnlyTypes(incoming, stored) {
109
213
  offending.add(node.type);
110
214
  }
111
215
  }
216
+ if (resolveComponent) {
217
+ for (const ref of diffComponentRefs(stored, incoming).added) {
218
+ for (const type of adminOnlyTypesInDefinition(resolveComponent(ref.componentId))) {
219
+ offending.add(type);
220
+ }
221
+ }
222
+ }
112
223
  return [...offending];
113
224
  }
114
225
  //# sourceMappingURL=module-permissions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"module-permissions.js","sourceRoot":"","sources":["../../src/layout/module-permissions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module-permissions.js","sourceRoot":"","sources":["../../src/layout/module-permissions.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import type { LayoutDocument, LayoutSection } from './types.js';
2
+ import type { LayoutDocument, LayoutSection, VariantContainer } from './types.js';
3
3
  /**
4
4
  * Server-resolved personalization state threaded into the renderer so that
5
5
  * `variantContainer` nodes render the correct variant. Both fields are plain
@@ -15,6 +15,16 @@ export interface PersonalizationState {
15
15
  * A function that resolves a componentId to its definition at render time.
16
16
  * Returns the resolved props and the actual module type, or null if not found.
17
17
  * Consumers provide this so the renderer stays DB-agnostic.
18
+ *
19
+ * @deprecated for Server-Component hosts — unusable across the RSC boundary
20
+ * (see the note above). Pre-resolve with `resolveComponentPlacements` instead.
21
+ *
22
+ * How much of the resolved definition a placement renders is
23
+ * `resolveModulePlacement`'s decision, documented once in
24
+ * `layout/component-refs.ts`: a CLEAN instance (no local props beyond the
25
+ * `componentId` echo, no local style) renders the definition strictly, while a
26
+ * LEGACY override node keeps the pre-#147 `{...resolved, ...node}` merge.
27
+ * Sections and variant containers resolve wholesale, with no merge at all.
18
28
  */
19
29
  export type ComponentResolver = (componentId: string) => {
20
30
  props: Record<string, unknown>;
@@ -32,6 +42,30 @@ export type ComponentResolver = (componentId: string) => {
32
42
  * DB-agnostic (mirrors the module resolver's host-wiring seam).
33
43
  */
34
44
  export type SectionComponentResolver = (componentId: string) => LayoutSection | null;
45
+ /**
46
+ * A function that resolves a region-level `variantContainer.componentId` to its
47
+ * stored {@link VariantContainer} definition, or null if not found — the third
48
+ * member of the resolver family (kywi-cms#147), alongside
49
+ * {@link ComponentResolver} for modules and {@link SectionComponentResolver} for
50
+ * sections, and wired the same way.
51
+ *
52
+ * A connected container renders the resolved definition's Default arm and
53
+ * variant arms wholesale (all-or-nothing, exactly like a connected section),
54
+ * keeping its own `id` for stable keys and `data-variant-container-id`, and
55
+ * keeping its own experiment binding. Audience / A-B selection is unchanged: it
56
+ * simply runs on the RESOLVED container, so a component's arms are the arms a
57
+ * visitor is routed between. A null resolution falls back to the container's own
58
+ * inline copy.
59
+ *
60
+ * KNOWN GAP, shared with {@link SectionComponentResolver}: the pre-render
61
+ * hydration passes (`hydrateLayoutFeeds`, `hydrateLayoutNav`) walk the layout
62
+ * DOCUMENT, so a Feed Display or nav module living inside a component definition
63
+ * is not hydrated — it renders its empty state. Modules that read their own
64
+ * props are unaffected; only the hydrated ones are. Closing it means running
65
+ * hydration after resolution (or over the resolved definitions), which is a
66
+ * change to the host render sequence rather than to this file.
67
+ */
68
+ export type VariantContainerComponentResolver = (componentId: string) => VariantContainer | null;
35
69
  /**
36
70
  * A map of module `type` → React renderer. Hosts pass their custom modules'
37
71
  * components here (kywi-cms#48) so `defineModule`-registered types resolve to a
@@ -45,10 +79,23 @@ export type ModuleComponentMap = Record<string, React.ComponentType<{
45
79
  interface KywiLayoutProps {
46
80
  layout: LayoutDocument;
47
81
  children: React.ReactNode;
48
- /** Optional resolver for connected component modules (componentId). */
82
+ /**
83
+ * Optional resolver for connected component modules (componentId).
84
+ * @deprecated Unusable from a Server Component — see the RSC-boundary note at
85
+ * the top of this file. Pre-resolve with `resolveComponentPlacements`.
86
+ */
49
87
  componentResolver?: ComponentResolver;
50
- /** Optional resolver for connected section components (section.componentId, kywi-cms#69). */
88
+ /**
89
+ * Optional resolver for connected section components (section.componentId, kywi-cms#69).
90
+ * @deprecated Unusable from a Server Component — pre-resolve instead.
91
+ */
51
92
  sectionComponentResolver?: SectionComponentResolver;
93
+ /**
94
+ * Optional resolver for connected variant-container components
95
+ * (variantContainer.componentId, kywi-cms#147).
96
+ * @deprecated Unusable from a Server Component — pre-resolve instead.
97
+ */
98
+ variantContainerComponentResolver?: VariantContainerComponentResolver;
52
99
  /** Server-resolved audience + experiment state driving variantContainer nodes. */
53
100
  personalization?: PersonalizationState;
54
101
  /**
@@ -58,7 +105,7 @@ interface KywiLayoutProps {
58
105
  */
59
106
  moduleComponents?: ModuleComponentMap;
60
107
  }
61
- export declare function KywiLayout({ layout, children, componentResolver, sectionComponentResolver, personalization, moduleComponents }: KywiLayoutProps): import("react/jsx-runtime").JSX.Element;
108
+ export declare function KywiLayout({ layout, children, componentResolver, sectionComponentResolver, variantContainerComponentResolver, personalization, moduleComponents }: KywiLayoutProps): import("react/jsx-runtime").JSX.Element;
62
109
  interface KywiRegionProps {
63
110
  name: string;
64
111
  fallback?: React.ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/layout/renderer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoC,MAAM,OAAO,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAA4D,MAAM,YAAY,CAAA;AAOzH;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,yEAAyE;IACzE,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,mFAAmF;IACnF,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAA;CACrD;AAMD;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,WAAW,EAAE,MAAM,KAAK;IACvD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,UAAU,EAAE,MAAM,CAAA;CACnB,GAAG,IAAI,CAAA;AAMR;;;;;;;;;GASG;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,WAAW,EAAE,MAAM,KAAK,aAAa,GAAG,IAAI,CAAA;AAMpF;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,CACrC,MAAM,EACN,KAAK,CAAC,aAAa,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC,CACxF,CAAA;AAQD,UAAU,eAAe;IACvB,MAAM,EAAE,cAAc,CAAA;IACtB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,uEAAuE;IACvE,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,6FAA6F;IAC7F,wBAAwB,CAAC,EAAE,wBAAwB,CAAA;IACnD,kFAAkF;IAClF,eAAe,CAAC,EAAE,oBAAoB,CAAA;IACtC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,kBAAkB,CAAA;CACtC;AAED,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,eAAe,EAAE,gBAAgB,EAAE,EAAE,eAAe,2CA2B/I;AAED,UAAU,eAAe;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE;AAEtE,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,eAAe,2CAe7D;AAqMD,UAAU,qBAAqB;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,qBAAqB,2CASzG"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/layout/renderer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoC,MAAM,OAAO,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAA4B,gBAAgB,EAAgB,MAAM,YAAY,CAAA;AAYzH;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,yEAAyE;IACzE,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,mFAAmF;IACnF,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAA;CACrD;AAgCD;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,WAAW,EAAE,MAAM,KAAK;IACvD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,UAAU,EAAE,MAAM,CAAA;CACnB,GAAG,IAAI,CAAA;AAMR;;;;;;;;;GASG;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,WAAW,EAAE,MAAM,KAAK,aAAa,GAAG,IAAI,CAAA;AAMpF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,iCAAiC,GAAG,CAAC,WAAW,EAAE,MAAM,KAAK,gBAAgB,GAAG,IAAI,CAAA;AAOhG;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,CACrC,MAAM,EACN,KAAK,CAAC,aAAa,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC,CACxF,CAAA;AAQD,UAAU,eAAe;IACvB,MAAM,EAAE,cAAc,CAAA;IACtB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,wBAAwB,CAAA;IACnD;;;;OAIG;IACH,iCAAiC,CAAC,EAAE,iCAAiC,CAAA;IACrE,kFAAkF;IAClF,eAAe,CAAC,EAAE,oBAAoB,CAAA;IACtC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,kBAAkB,CAAA;CACtC;AAED,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,iCAAiC,EAAE,eAAe,EAAE,gBAAgB,EAAE,EAAE,eAAe,2CAkClL;AAED,UAAU,eAAe;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE;AAEtE,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,eAAe,2CAe7D;AAwMD,UAAU,qBAAqB;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,qBAAqB,2CASzG"}
@@ -2,15 +2,17 @@
2
2
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { createContext, useContext } from 'react';
4
4
  import { isLayoutSection } from './types.js';
5
+ import { applySectionPlacement, applyVariantContainerPlacement, resolveModulePlacement, } from './component-refs.js';
5
6
  import { BUILT_IN_MODULE_COMPONENTS } from './modules.js';
6
7
  import { resolveSectionStyle } from './theme-css.js';
7
8
  const PersonalizationContext = createContext(null);
8
9
  const ComponentResolverContext = createContext(null);
9
10
  const SectionComponentResolverContext = createContext(null);
11
+ const VariantContainerComponentResolverContext = createContext(null);
10
12
  const ModuleComponentsContext = createContext(null);
11
13
  // ── Layout Context ──────────────────────────────────────────────────────────
12
14
  const LayoutContext = createContext(null);
13
- export function KywiLayout({ layout, children, componentResolver, sectionComponentResolver, personalization, moduleComponents }) {
15
+ export function KywiLayout({ layout, children, componentResolver, sectionComponentResolver, variantContainerComponentResolver, personalization, moduleComponents }) {
14
16
  let inner = _jsx(LayoutContext.Provider, { value: layout, children: children });
15
17
  if (personalization) {
16
18
  inner = _jsx(PersonalizationContext.Provider, { value: personalization, children: inner });
@@ -21,6 +23,9 @@ export function KywiLayout({ layout, children, componentResolver, sectionCompone
21
23
  if (sectionComponentResolver) {
22
24
  inner = (_jsx(SectionComponentResolverContext.Provider, { value: sectionComponentResolver, children: inner }));
23
25
  }
26
+ if (variantContainerComponentResolver) {
27
+ inner = (_jsx(VariantContainerComponentResolverContext.Provider, { value: variantContainerComponentResolver, children: inner }));
28
+ }
24
29
  if (moduleComponents) {
25
30
  return (_jsx(ModuleComponentsContext.Provider, { value: moduleComponents, children: inner }));
26
31
  }
@@ -66,37 +71,28 @@ function selectVariantEntry(container, state) {
66
71
  }
67
72
  function VariantContainerRenderer({ container }) {
68
73
  const state = useContext(PersonalizationContext);
69
- const selected = selectVariantEntry(container, state);
70
- const sections = selected ? selected.sections : container.defaultSections;
74
+ const containerResolver = useContext(VariantContainerComponentResolverContext);
75
+ // A connected container (`componentId`) renders its source component's arms
76
+ // wholesale, mirroring the connected-section path: all-or-nothing, its own
77
+ // `id` kept, the resolved subtree re-keyed off that id so two placements of
78
+ // one component never collide, and its own experiment binding preserved
79
+ // (see `applyVariantContainerPlacement`). A null resolution — no resolver
80
+ // wired, or the component gone — falls back to the container's own inline
81
+ // copy (kywi-cms#147).
82
+ //
83
+ // Resolution happens BEFORE selection, deliberately: the arms a visitor is
84
+ // routed between must be the component's arms, so everything below this line
85
+ // reads off `effective`.
86
+ let effective = container;
87
+ if (container.componentId && containerResolver) {
88
+ const resolved = containerResolver(container.componentId);
89
+ if (resolved)
90
+ effective = applyVariantContainerPlacement(resolved, container);
91
+ }
92
+ const selected = selectVariantEntry(effective, state);
93
+ const sections = selected ? selected.sections : effective.defaultSections;
71
94
  const variantKey = selected ? selected.audienceId : 'default';
72
- return (_jsx("div", { className: "kywi-variant-container", "data-variant-container-id": container.id, "data-variant": variantKey, ...(container.experimentId ? { 'data-experiment': container.experimentId } : {}), children: sections.map(section => _jsx(SectionRenderer, { section: section }, section.id)) }));
73
- }
74
- /**
75
- * Re-key a resolved section component's subtree deterministically from the local
76
- * placement id (kywi-cms#69). Stored section definitions bake fixed column ids +
77
- * module id/instanceId, so placing the SAME section component twice on ONE page
78
- * would otherwise emit duplicate `data-instance-id` — a hazard for instanceId-
79
- * keyed client runtimes (forms #35, comments #29, feed hydration). Scoping every
80
- * id to `${localId}:${storedId}` guarantees (a) distinct instance ids across two
81
- * placements, (b) SSR/client-hydration agreement and stability across re-renders
82
- * (pure derivation, no randomness), (c) a single placement keeps stable ids. The
83
- * section's own id stays the caller's local id; stored definitions are untouched.
84
- */
85
- function rekeyResolvedSection(resolved, localId) {
86
- const scope = (storedId) => `${localId}:${storedId}`;
87
- return {
88
- ...resolved,
89
- id: localId,
90
- columns: resolved.columns.map(col => ({
91
- ...col,
92
- id: scope(col.id),
93
- nodes: col.nodes.map(node => ({
94
- ...node,
95
- id: scope(node.id),
96
- instanceId: scope(node.instanceId),
97
- })),
98
- })),
99
- };
95
+ return (_jsx("div", { className: "kywi-variant-container", "data-variant-container-id": container.id, "data-variant": variantKey, ...(effective.experimentId ? { 'data-experiment': effective.experimentId } : {}), ...(container.componentId ? { 'data-component-id': container.componentId } : {}), children: sections.map(section => _jsx(SectionRenderer, { section: section }, section.id)) }));
100
96
  }
101
97
  function SectionRenderer({ section }) {
102
98
  const sectionResolver = useContext(SectionComponentResolverContext);
@@ -106,13 +102,14 @@ function SectionRenderer({ section }) {
106
102
  // LOCAL section's `id` is preserved for stable keys, `data-section-id`, and
107
103
  // responsive-style scoping, and the resolved subtree's ids/instanceIds are
108
104
  // re-derived from it so duplicate placements stay unique (see
109
- // rekeyResolvedSection). A null resolution gracefully falls back to the
110
- // section's own inline copy (kywi-cms#69).
105
+ // `rekeyResolvedSection`, the canonical one in `layout/component-refs.ts` that
106
+ // the server-side detach shares). A null resolution gracefully falls back to
107
+ // the section's own inline copy (kywi-cms#69).
111
108
  let effective = section;
112
109
  if (section.componentId && sectionResolver) {
113
110
  const resolved = sectionResolver(section.componentId);
114
111
  if (resolved)
115
- effective = rekeyResolvedSection(resolved, section.id);
112
+ effective = applySectionPlacement(resolved, section);
116
113
  }
117
114
  // Resolve the section's style map: base token references become inline
118
115
  // var(--kywi-*) declarations; `key@breakpoint` and `hidden@breakpoint` keys
@@ -148,12 +145,13 @@ function ModuleRenderer({ node }) {
148
145
  const injected = useContext(ModuleComponentsContext);
149
146
  // Host-injected renderers override the built-ins for the same type (kywi-cms#48).
150
147
  const resolveComponent = (type) => injected?.[type] ?? BUILT_IN_MODULE_COMPONENTS[type];
151
- // If this node references a component, resolve its props at render time
148
+ // If this node references a component, resolve its props at render time.
149
+ // Strict link for a clean instance, legacy merge for an override node — the
150
+ // one rule, `resolveModulePlacement`, shared with the detach path.
152
151
  if (node.componentId && resolver) {
153
152
  const resolved = resolver(node.componentId);
154
153
  if (resolved) {
155
- const mergedProps = { ...resolved.props, ...node.props };
156
- const mergedStyle = { ...resolved.style, ...node.style };
154
+ const { props: mergedProps, style: mergedStyle } = resolveModulePlacement(node, resolved);
157
155
  const Component = resolveComponent(resolved.moduleType);
158
156
  if (!Component) {
159
157
  return _jsxs("div", { className: "kywi-module kywi-module-unknown", "data-module-type": resolved.moduleType, children: ["Unknown module: ", resolved.moduleType] });
@@ -166,7 +164,7 @@ function ModuleRenderer({ node }) {
166
164
  if (!Component) {
167
165
  return _jsxs("div", { className: "kywi-module kywi-module-unknown", "data-module-type": node.type, children: ["Unknown module: ", node.type] });
168
166
  }
169
- return (_jsx("div", { className: `kywi-module-wrapper kywi-module--${node.type}`, "data-instance-id": node.instanceId, ...moduleSemanticAttrs(node.type, node.props), children: _jsx(Component, { props: node.props, style: node.style }) }));
167
+ return (_jsx("div", { className: `kywi-module-wrapper kywi-module--${node.type}`, "data-instance-id": node.instanceId, ...(node.componentId ? { 'data-component-id': node.componentId } : {}), ...moduleSemanticAttrs(node.type, node.props), children: _jsx(Component, { props: node.props, style: node.style }) }));
170
168
  }
171
169
  export function AudienceMetaTags({ audienceId, experimentId, variantId, visitorId }) {
172
170
  return (_jsxs(_Fragment, { children: [audienceId && _jsx("meta", { name: "kywi:audience-id", content: audienceId }), experimentId && _jsx("meta", { name: "kywi:experiment-id", content: experimentId }), variantId && _jsx("meta", { name: "kywi:variant-id", content: variantId }), _jsx("meta", { name: "kywi:visitor-id", content: visitorId })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/layout/renderer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/layout/renderer.tsx"],"names":[],"mappings":"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"}