@kywi-software/core 0.11.0 → 0.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENT-PATTERNS.md +96 -10
- package/dist/admin/content-form.d.ts.map +1 -1
- package/dist/admin/content-form.js +97 -10
- package/dist/admin/content-form.js.map +1 -1
- package/dist/admin/layout-editor/component-actions.d.ts +219 -22
- package/dist/admin/layout-editor/component-actions.d.ts.map +1 -1
- package/dist/admin/layout-editor/component-actions.js +356 -36
- package/dist/admin/layout-editor/component-actions.js.map +1 -1
- package/dist/admin/layout-editor/component-fork.d.ts +224 -0
- package/dist/admin/layout-editor/component-fork.d.ts.map +1 -0
- package/dist/admin/layout-editor/component-fork.js +342 -0
- package/dist/admin/layout-editor/component-fork.js.map +1 -0
- package/dist/admin/layout-editor/editor-canvas.d.ts +12 -0
- package/dist/admin/layout-editor/editor-canvas.d.ts.map +1 -1
- package/dist/admin/layout-editor/editor-canvas.js +76 -12
- package/dist/admin/layout-editor/editor-canvas.js.map +1 -1
- package/dist/admin/layout-editor/editor-dialog.d.ts +164 -0
- package/dist/admin/layout-editor/editor-dialog.d.ts.map +1 -0
- package/dist/admin/layout-editor/editor-dialog.js +195 -0
- package/dist/admin/layout-editor/editor-dialog.js.map +1 -0
- package/dist/admin/layout-editor/editor-state.d.ts +76 -0
- package/dist/admin/layout-editor/editor-state.d.ts.map +1 -1
- package/dist/admin/layout-editor/editor-state.js +47 -1
- package/dist/admin/layout-editor/editor-state.js.map +1 -1
- package/dist/admin/layout-editor/editor.css +279 -2
- package/dist/admin/layout-editor/index.d.ts +10 -1
- package/dist/admin/layout-editor/index.d.ts.map +1 -1
- package/dist/admin/layout-editor/index.js +11 -1
- package/dist/admin/layout-editor/index.js.map +1 -1
- package/dist/admin/layout-editor/layout-editor.d.ts +58 -1
- package/dist/admin/layout-editor/layout-editor.d.ts.map +1 -1
- package/dist/admin/layout-editor/layout-editor.js +161 -190
- package/dist/admin/layout-editor/layout-editor.js.map +1 -1
- package/dist/admin/layout-editor/linked-component.d.ts +38 -0
- package/dist/admin/layout-editor/linked-component.d.ts.map +1 -0
- package/dist/admin/layout-editor/linked-component.js +42 -0
- package/dist/admin/layout-editor/linked-component.js.map +1 -0
- package/dist/admin/layout-editor/module-overlay.d.ts +10 -1
- package/dist/admin/layout-editor/module-overlay.d.ts.map +1 -1
- package/dist/admin/layout-editor/module-overlay.js +33 -4
- package/dist/admin/layout-editor/module-overlay.js.map +1 -1
- package/dist/admin/layout-editor/node-lookup.d.ts +34 -0
- package/dist/admin/layout-editor/node-lookup.d.ts.map +1 -1
- package/dist/admin/layout-editor/node-lookup.js +90 -0
- package/dist/admin/layout-editor/node-lookup.js.map +1 -1
- package/dist/admin/layout-editor/overlay-shell.d.ts.map +1 -1
- package/dist/admin/layout-editor/overlay-shell.js +114 -23
- package/dist/admin/layout-editor/overlay-shell.js.map +1 -1
- package/dist/admin/layout-editor/props-panel.d.ts +55 -1
- package/dist/admin/layout-editor/props-panel.d.ts.map +1 -1
- package/dist/admin/layout-editor/props-panel.js +118 -9
- package/dist/admin/layout-editor/props-panel.js.map +1 -1
- package/dist/admin/layout-editor/section-overlay.d.ts +9 -1
- package/dist/admin/layout-editor/section-overlay.d.ts.map +1 -1
- package/dist/admin/layout-editor/section-overlay.js +14 -4
- package/dist/admin/layout-editor/section-overlay.js.map +1 -1
- package/dist/admin/layout-editor/section-template-picker.d.ts +27 -1
- package/dist/admin/layout-editor/section-template-picker.d.ts.map +1 -1
- package/dist/admin/layout-editor/section-template-picker.js +71 -17
- package/dist/admin/layout-editor/section-template-picker.js.map +1 -1
- package/dist/admin/layout-editor/use-component-connect.d.ts +65 -0
- package/dist/admin/layout-editor/use-component-connect.d.ts.map +1 -0
- package/dist/admin/layout-editor/use-component-connect.js +294 -0
- package/dist/admin/layout-editor/use-component-connect.js.map +1 -0
- package/dist/admin/layout-editor/use-component-fork.d.ts +123 -0
- package/dist/admin/layout-editor/use-component-fork.d.ts.map +1 -0
- package/dist/admin/layout-editor/use-component-fork.js +346 -0
- package/dist/admin/layout-editor/use-component-fork.js.map +1 -0
- package/dist/admin/layout-editor/use-component-library.d.ts +94 -0
- package/dist/admin/layout-editor/use-component-library.d.ts.map +1 -0
- package/dist/admin/layout-editor/use-component-library.js +55 -0
- package/dist/admin/layout-editor/use-component-library.js.map +1 -0
- package/dist/admin/registry.d.ts +11 -2
- package/dist/admin/registry.d.ts.map +1 -1
- package/dist/admin/registry.js +40 -4
- package/dist/admin/registry.js.map +1 -1
- package/dist/admin/server.d.ts +1 -0
- package/dist/admin/server.d.ts.map +1 -1
- package/dist/admin/server.js +5 -0
- package/dist/admin/server.js.map +1 -1
- package/dist/admin/styles/admin.css +43 -0
- package/dist/admin/surfaces/components/component-edit.d.ts +3 -0
- package/dist/admin/surfaces/components/component-edit.d.ts.map +1 -0
- package/dist/admin/surfaces/components/component-edit.js +235 -0
- package/dist/admin/surfaces/components/component-edit.js.map +1 -0
- package/dist/admin/surfaces/components/components-data.d.ts +153 -0
- package/dist/admin/surfaces/components/components-data.d.ts.map +1 -0
- package/dist/admin/surfaces/components/components-data.js +154 -0
- package/dist/admin/surfaces/components/components-data.js.map +1 -0
- package/dist/admin/surfaces/components/components-list.d.ts +3 -0
- package/dist/admin/surfaces/components/components-list.d.ts.map +1 -0
- package/dist/admin/surfaces/components/components-list.js +196 -0
- package/dist/admin/surfaces/components/components-list.js.map +1 -0
- package/dist/admin/surfaces/components/definition-canvas.d.ts +73 -0
- package/dist/admin/surfaces/components/definition-canvas.d.ts.map +1 -0
- package/dist/admin/surfaces/components/definition-canvas.js +207 -0
- package/dist/admin/surfaces/components/definition-canvas.js.map +1 -0
- package/dist/admin/surfaces/layouts/layout-editor-client.d.ts.map +1 -1
- package/dist/admin/surfaces/layouts/layout-editor-client.js +14 -2
- package/dist/admin/surfaces/layouts/layout-editor-client.js.map +1 -1
- package/dist/admin/surfaces/layouts/layouts-data.d.ts +3 -14
- package/dist/admin/surfaces/layouts/layouts-data.d.ts.map +1 -1
- package/dist/admin/surfaces/layouts/layouts-data.js +4 -7
- package/dist/admin/surfaces/layouts/layouts-data.js.map +1 -1
- package/dist/admin/surfaces/layouts/layouts-list.d.ts.map +1 -1
- package/dist/admin/surfaces/layouts/layouts-list.js +16 -22
- package/dist/admin/surfaces/layouts/layouts-list.js.map +1 -1
- package/dist/admin/surfaces/settings/admin-features.d.ts.map +1 -1
- package/dist/admin/surfaces/settings/admin-features.js +1 -0
- package/dist/admin/surfaces/settings/admin-features.js.map +1 -1
- package/dist/api/bulk-routes.d.ts.map +1 -1
- package/dist/api/bulk-routes.js +25 -0
- package/dist/api/bulk-routes.js.map +1 -1
- package/dist/api/changeset-routes.d.ts.map +1 -1
- package/dist/api/changeset-routes.js +17 -3
- package/dist/api/changeset-routes.js.map +1 -1
- package/dist/api/component-routes.d.ts.map +1 -1
- package/dist/api/component-routes.js +228 -8
- package/dist/api/component-routes.js.map +1 -1
- package/dist/api/content-routes.d.ts.map +1 -1
- package/dist/api/content-routes.js +64 -0
- package/dist/api/content-routes.js.map +1 -1
- package/dist/api/feed-routes.d.ts +6 -6
- package/dist/api/graphql/resolvers.d.ts +4 -4
- package/dist/api/layout-routes.d.ts.map +1 -1
- package/dist/api/layout-routes.js +4 -17
- package/dist/api/layout-routes.js.map +1 -1
- package/dist/api/layout-write-guard.d.ts +80 -0
- package/dist/api/layout-write-guard.d.ts.map +1 -0
- package/dist/api/layout-write-guard.js +88 -0
- package/dist/api/layout-write-guard.js.map +1 -0
- package/dist/api/section-template-routes.d.ts.map +1 -1
- package/dist/api/section-template-routes.js +11 -0
- package/dist/api/section-template-routes.js.map +1 -1
- package/dist/api/translation-routes.d.ts.map +1 -1
- package/dist/api/translation-routes.js +8 -0
- package/dist/api/translation-routes.js.map +1 -1
- package/dist/api/version-routes.d.ts.map +1 -1
- package/dist/api/version-routes.js +20 -8
- package/dist/api/version-routes.js.map +1 -1
- package/dist/api/workflow-routes.d.ts.map +1 -1
- package/dist/api/workflow-routes.js +53 -8
- package/dist/api/workflow-routes.js.map +1 -1
- package/dist/db/analytics-queries.d.ts +3 -3
- package/dist/db/apply-snapshot.d.ts +75 -8
- package/dist/db/apply-snapshot.d.ts.map +1 -1
- package/dist/db/apply-snapshot.js +104 -8
- package/dist/db/apply-snapshot.js.map +1 -1
- package/dist/db/audit-queries.d.ts +12 -12
- package/dist/db/category-queries.d.ts +3 -3
- package/dist/db/changeset-audit-queries.d.ts +4 -4
- package/dist/db/changeset-queries.d.ts +7 -7
- package/dist/db/comment-queries.d.ts +8 -8
- package/dist/db/comment-subscription-queries.d.ts +2 -2
- package/dist/db/component-instance-queries.d.ts +197 -0
- package/dist/db/component-instance-queries.d.ts.map +1 -0
- package/dist/db/component-instance-queries.js +405 -0
- package/dist/db/component-instance-queries.js.map +1 -0
- package/dist/db/content-queries.d.ts.map +1 -1
- package/dist/db/content-queries.js +39 -2
- package/dist/db/content-queries.js.map +1 -1
- package/dist/db/extension-queries.d.ts +7 -7
- package/dist/db/feed-queries.d.ts +3 -3
- package/dist/db/index.d.ts +1 -0
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +1 -0
- package/dist/db/index.js.map +1 -1
- package/dist/db/layout-queries.d.ts +13 -1
- package/dist/db/layout-queries.d.ts.map +1 -1
- package/dist/db/layout-queries.js +52 -7
- package/dist/db/layout-queries.js.map +1 -1
- package/dist/db/locale-queries.d.ts.map +1 -1
- package/dist/db/locale-queries.js +0 -0
- package/dist/db/locale-queries.js.map +1 -1
- package/dist/db/media-queries.d.ts +12 -12
- package/dist/db/revision-queries.d.ts +3 -3
- package/dist/db/site-admin-queries.d.ts +2 -2
- package/dist/db/site-membership-queries.d.ts +3 -3
- package/dist/db/site-plugin-queries.d.ts +2 -2
- package/dist/db/site-queries.d.ts +6 -6
- package/dist/db/version-queries.d.ts +12 -12
- package/dist/db/webhook-queries.d.ts +11 -11
- package/dist/db/workflow-queries.d.ts +6 -6
- package/dist/db/workflow-queries.d.ts.map +1 -1
- package/dist/db/workflow-queries.js +11 -2
- package/dist/db/workflow-queries.js.map +1 -1
- package/dist/layout/component-refs.d.ts +465 -0
- package/dist/layout/component-refs.d.ts.map +1 -0
- package/dist/layout/component-refs.js +848 -0
- package/dist/layout/component-refs.js.map +1 -0
- package/dist/layout/index.d.ts +2 -1
- package/dist/layout/index.d.ts.map +1 -1
- package/dist/layout/index.js +1 -0
- package/dist/layout/index.js.map +1 -1
- package/dist/layout/module-permissions.d.ts +49 -1
- package/dist/layout/module-permissions.d.ts.map +1 -1
- package/dist/layout/module-permissions.js +117 -6
- package/dist/layout/module-permissions.js.map +1 -1
- package/dist/layout/renderer.d.ts +51 -4
- package/dist/layout/renderer.d.ts.map +1 -1
- package/dist/layout/renderer.js +36 -38
- package/dist/layout/renderer.js.map +1 -1
- package/dist/layout/types.d.ts +42 -0
- package/dist/layout/types.d.ts.map +1 -1
- package/dist/layout/types.js +54 -11
- package/dist/layout/types.js.map +1 -1
- package/dist/schema/base.d.ts +1 -1
- package/dist/schema/components.d.ts +150 -0
- package/dist/schema/components.d.ts.map +1 -1
- package/dist/schema/components.js +50 -4
- package/dist/schema/components.js.map +1 -1
- package/dist/versioning/scheduler.d.ts +8 -0
- package/dist/versioning/scheduler.d.ts.map +1 -1
- package/dist/versioning/scheduler.js +21 -7
- package/dist/versioning/scheduler.js.map +1 -1
- 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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"}
|
package/dist/layout/index.d.ts
CHANGED
|
@@ -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"}
|
package/dist/layout/index.js
CHANGED
|
@@ -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';
|
package/dist/layout/index.js.map
CHANGED
|
@@ -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,
|
|
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;
|
|
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":"
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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,
|
|
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"}
|
package/dist/layout/renderer.js
CHANGED
|
@@ -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
|
|
70
|
-
|
|
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, ...(
|
|
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
|
|
110
|
-
//
|
|
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 =
|
|
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
|
|
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":"AAAA,YAAY,CAAA;;AAEZ,OAAc,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAgBpD,MAAM,sBAAsB,GAAG,aAAa,CAA8B,IAAI,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/layout/renderer.tsx"],"names":[],"mappings":"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"}
|