@kywi-software/core 0.12.0 → 0.13.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 (99) hide show
  1. package/AGENT-PATTERNS.md +54 -39
  2. package/dist/admin/layout-editor/component-actions.d.ts +21 -1
  3. package/dist/admin/layout-editor/component-actions.d.ts.map +1 -1
  4. package/dist/admin/layout-editor/component-actions.js +41 -1
  5. package/dist/admin/layout-editor/component-actions.js.map +1 -1
  6. package/dist/admin/layout-editor/component-fork.d.ts.map +1 -1
  7. package/dist/admin/layout-editor/component-fork.js +23 -1
  8. package/dist/admin/layout-editor/component-fork.js.map +1 -1
  9. package/dist/admin/layout-editor/editor-canvas.d.ts +25 -4
  10. package/dist/admin/layout-editor/editor-canvas.d.ts.map +1 -1
  11. package/dist/admin/layout-editor/editor-canvas.js +186 -90
  12. package/dist/admin/layout-editor/editor-canvas.js.map +1 -1
  13. package/dist/admin/layout-editor/editor-state.d.ts +62 -2
  14. package/dist/admin/layout-editor/editor-state.d.ts.map +1 -1
  15. package/dist/admin/layout-editor/editor-state.js +181 -11
  16. package/dist/admin/layout-editor/editor-state.js.map +1 -1
  17. package/dist/admin/layout-editor/editor.css +59 -0
  18. package/dist/admin/layout-editor/layout-editor.d.ts.map +1 -1
  19. package/dist/admin/layout-editor/layout-editor.js +74 -9
  20. package/dist/admin/layout-editor/layout-editor.js.map +1 -1
  21. package/dist/admin/layout-editor/linked-component.d.ts +11 -12
  22. package/dist/admin/layout-editor/linked-component.d.ts.map +1 -1
  23. package/dist/admin/layout-editor/linked-component.js.map +1 -1
  24. package/dist/admin/layout-editor/module-overlay.d.ts +21 -1
  25. package/dist/admin/layout-editor/module-overlay.d.ts.map +1 -1
  26. package/dist/admin/layout-editor/module-overlay.js +4 -4
  27. package/dist/admin/layout-editor/module-overlay.js.map +1 -1
  28. package/dist/admin/layout-editor/module-palette.d.ts +1 -0
  29. package/dist/admin/layout-editor/module-palette.d.ts.map +1 -1
  30. package/dist/admin/layout-editor/module-palette.js +6 -3
  31. package/dist/admin/layout-editor/module-palette.js.map +1 -1
  32. package/dist/admin/layout-editor/module-variant-container-config.d.ts +51 -0
  33. package/dist/admin/layout-editor/module-variant-container-config.d.ts.map +1 -0
  34. package/dist/admin/layout-editor/module-variant-container-config.js +51 -0
  35. package/dist/admin/layout-editor/module-variant-container-config.js.map +1 -0
  36. package/dist/admin/layout-editor/node-lookup.d.ts +40 -4
  37. package/dist/admin/layout-editor/node-lookup.d.ts.map +1 -1
  38. package/dist/admin/layout-editor/node-lookup.js +64 -8
  39. package/dist/admin/layout-editor/node-lookup.js.map +1 -1
  40. package/dist/admin/layout-editor/overlay-shell.d.ts.map +1 -1
  41. package/dist/admin/layout-editor/overlay-shell.js +47 -4
  42. package/dist/admin/layout-editor/overlay-shell.js.map +1 -1
  43. package/dist/admin/layout-editor/props-panel.d.ts +54 -6
  44. package/dist/admin/layout-editor/props-panel.d.ts.map +1 -1
  45. package/dist/admin/layout-editor/props-panel.js +93 -8
  46. package/dist/admin/layout-editor/props-panel.js.map +1 -1
  47. package/dist/admin/layout-editor/section-overlay.d.ts +5 -0
  48. package/dist/admin/layout-editor/section-overlay.d.ts.map +1 -1
  49. package/dist/admin/layout-editor/section-overlay.js +1 -1
  50. package/dist/admin/layout-editor/section-overlay.js.map +1 -1
  51. package/dist/admin/layout-editor/section-variant-container-config.d.ts +9 -0
  52. package/dist/admin/layout-editor/section-variant-container-config.d.ts.map +1 -1
  53. package/dist/admin/layout-editor/section-variant-container-config.js +9 -2
  54. package/dist/admin/layout-editor/section-variant-container-config.js.map +1 -1
  55. package/dist/admin/layout-editor/use-component-connect.d.ts +5 -1
  56. package/dist/admin/layout-editor/use-component-connect.d.ts.map +1 -1
  57. package/dist/admin/layout-editor/use-component-connect.js +61 -5
  58. package/dist/admin/layout-editor/use-component-connect.js.map +1 -1
  59. package/dist/admin/surfaces/components/definition-canvas.d.ts.map +1 -1
  60. package/dist/admin/surfaces/components/definition-canvas.js +30 -0
  61. package/dist/admin/surfaces/components/definition-canvas.js.map +1 -1
  62. package/dist/audiences/deletion-guard.js +2 -2
  63. package/dist/audiences/deletion-guard.js.map +1 -1
  64. package/dist/config/types.d.ts +7 -0
  65. package/dist/config/types.d.ts.map +1 -1
  66. package/dist/config/types.js.map +1 -1
  67. package/dist/layout/component-refs.d.ts.map +1 -1
  68. package/dist/layout/component-refs.js +10 -18
  69. package/dist/layout/component-refs.js.map +1 -1
  70. package/dist/layout/feed-hydration.js +2 -3
  71. package/dist/layout/feed-hydration.js.map +1 -1
  72. package/dist/layout/index.d.ts +2 -1
  73. package/dist/layout/index.d.ts.map +1 -1
  74. package/dist/layout/index.js +4 -1
  75. package/dist/layout/index.js.map +1 -1
  76. package/dist/layout/module-permissions.js +2 -2
  77. package/dist/layout/module-permissions.js.map +1 -1
  78. package/dist/layout/nav-hydration.js +2 -3
  79. package/dist/layout/nav-hydration.js.map +1 -1
  80. package/dist/layout/personalization.d.ts +29 -0
  81. package/dist/layout/personalization.d.ts.map +1 -1
  82. package/dist/layout/personalization.js +78 -0
  83. package/dist/layout/personalization.js.map +1 -1
  84. package/dist/layout/registry.d.ts.map +1 -1
  85. package/dist/layout/registry.js +15 -1
  86. package/dist/layout/registry.js.map +1 -1
  87. package/dist/layout/renderer.d.ts +2 -12
  88. package/dist/layout/renderer.d.ts.map +1 -1
  89. package/dist/layout/renderer.js +29 -25
  90. package/dist/layout/renderer.js.map +1 -1
  91. package/dist/layout/types.d.ts +91 -1
  92. package/dist/layout/types.d.ts.map +1 -1
  93. package/dist/layout/types.js +160 -1
  94. package/dist/layout/types.js.map +1 -1
  95. package/dist/layout/variant-selection.d.ts +43 -0
  96. package/dist/layout/variant-selection.d.ts.map +1 -0
  97. package/dist/layout/variant-selection.js +41 -0
  98. package/dist/layout/variant-selection.js.map +1 -0
  99. package/package.json +1 -1
@@ -1,9 +1,10 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
3
  import React from 'react';
4
- import { SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';
4
+ import { SortableContext, useSortable, verticalListSortingStrategy } from '@dnd-kit/sortable';
5
+ import { CSS } from '@dnd-kit/utilities';
5
6
  import { useDroppable } from '@dnd-kit/core';
6
- import { isLayoutSection } from '../../layout/types.js';
7
+ import { isLayoutSection, isModuleVariantContainer } from '../../layout/types.js';
7
8
  import { resolveSectionStyle } from '../../layout/theme-css.js';
8
9
  import { resolveModulePlacement } from '../../layout/component-refs.js';
9
10
  import { DEFAULT_ARM_ID, armSections, isVariantContainer, resolveArmSections } from './node-lookup.js';
@@ -20,45 +21,6 @@ import { DropTargetContext } from './drag-feedback.js';
20
21
  import { useChromeFlip, chromeOffsetClasses, chromeOffsetStyle } from './use-chrome-flip.js';
21
22
  import { ModuleEditorContext } from '../../layout/module-render-context.js';
22
23
  import { LinkedComponentPill, linkedComponentName } from './linked-component.js';
23
- /**
24
- * The "Save as component" chrome action for one node, or nothing.
25
- *
26
- * GATING, and why it is this and not more:
27
- * - an ALREADY-LINKED node offers Detach in the props rail instead — it is
28
- * already a component, and saving an instance of A as a new component B would
29
- * silently deep-copy A's definition under a second name;
30
- * - a bare `component` placeholder node (dropped from the palette, not yet
31
- * pointed at anything) has no content to save;
32
- * - a section inside a variant-container ARM is offered it (unlike Personalize /
33
- * A-B, which are refused there because containers cannot nest): an arm holds
34
- * ordinary sections, the reducer's lookups and REPLACE_SECTION are arm-aware,
35
- * and the renderer resolves a connected section inside an arm exactly as it
36
- * does one in a region. The arm's sections carry ids minted by `generateId` /
37
- * `cloneSection`, so the placement re-key (`${sectionId}:${storedId}`) is
38
- * document-unique there too;
39
- * - a variant container is only ever offered it at region level, which is the
40
- * only place a container can exist (`VariantEntry.sections` is
41
- * `LayoutSection[]`, and the reducer refuses a nested wrap);
42
- * - a node INSIDE an already-linked ancestor is refused (`linkedAncestor`).
43
- * That one is not a UX nicety, it is data loss: connecting it would replace
44
- * the content stored for it — which is the ancestor's inline FALLBACK copy —
45
- * with a bare link that `collectComponentRefs` cannot see (it stops at the
46
- * connected ancestor), so the instance index, the usage counts and the delete
47
- * gate never learn about it, the render-side placement pass strips it, and
48
- * the node renders EMPTY and unrecoverable the moment the outer component
49
- * stops resolving. See `findLinkedAncestor` for the full reasoning, and
50
- * `useComponentConnect` for the hard refusal that backs this gating up (the
51
- * props rail can reach the same actions).
52
- *
53
- * All of these refuse by NOT OFFERING the action. An error dialog after the
54
- * click would be worse: it teaches the owner that the editor has broken
55
- * affordances, when the honest answer is that the action does not apply here.
56
- */
57
- function saveAsComponentAction(node, onSave, id, linkedAncestor = false) {
58
- if (!onSave || linkedAncestor || node.componentId || node.type === 'component')
59
- return [];
60
- return [{ icon: 'card', label: 'Save as component', onClick: () => onSave(id) }];
61
- }
62
24
  /**
63
25
  * Render a node's live preview in the canvas. A connected component node
64
26
  * (`node.componentId`) resolves to its source component's module + props so the
@@ -142,12 +104,27 @@ function inlineTextBindingFor(nodeId, nodeType, inPlace, inlineEdit) {
142
104
  *
143
105
  * Direct children only — deliberately narrower than `resolveColumnDropIndex`,
144
106
  * which reads `querySelectorAll('[data-kywi-module-slot]')` and so counts
145
- * descendants at any depth. The two agree today because only `ModuleOverlay`
146
- * emits `data-kywi-module-slot` and a column never nests another column, so
147
- * every slot inside a column IS a direct child. If a module ever renders its
148
- * own column (or anything else emits that attribute), the two would diverge —
149
- * the indicator would measure against one set of slots while the drop resolves
150
- * against another and this is the place that has to change with it.
107
+ * descendants at any depth. THE INVARIANT that keeps the two in agreement:
108
+ *
109
+ * exactly one `[data-kywi-module-slot]` per entry in `column.nodes`, and it
110
+ * is a direct child of the column's drop element.
111
+ *
112
+ * Two renderers emit the marker, one per kind of column node:
113
+ *
114
+ * - `ModuleOverlay`, for a module sitting directly in the column — and NOT for
115
+ * a module inside a module-level variant container's arm, which passes
116
+ * `columnSlot={false}` (kywi-cms#161). An arm module is not a column node:
117
+ * its container is, so marking it would count that node twice;
118
+ * - `ModuleVariantContainerBlock`, for the container itself.
119
+ *
120
+ * Both are rendered straight into the column by `DroppableColumn`'s node map
121
+ * (`SortableContext` emits no element of its own), which is what makes them
122
+ * direct children. Break either half — a second marker under one node, or a
123
+ * marker nested a level down — and the two measurements diverge: the indicator
124
+ * would promise one slot while the drop resolved to another, and `MOVE_MODULE`
125
+ * would splice `column.nodes` at an index neither of them meant. Anything new
126
+ * that emits the attribute has to satisfy the invariant, or change both readers
127
+ * together.
151
128
  *
152
129
  * Only ever called for a PALETTE drag (`useEditorDnd` projects a drop target
153
130
  * for nothing else), which is what makes the measurement trustworthy: during a
@@ -172,8 +149,43 @@ function slotBoundaryOffset(columnEl, index) {
172
149
  return last.offsetTop + last.offsetHeight;
173
150
  return slots[index].offsetTop;
174
151
  }
152
+ // ── CanvasModule ──────────────────────────────────────────────────────────────
153
+ /**
154
+ * ONE module on the canvas: its hover chrome plus its live preview.
155
+ *
156
+ * Shared by the two places a module is rendered — directly inside a column, and
157
+ * as the open arm of a module-level variant container (kywi-cms#161) — so an arm
158
+ * module gets exactly the selection, inline-editing, linked-instance and preview
159
+ * wiring a module beside it gets, and any fix to that wiring lands in both at
160
+ * once rather than in whichever copy the next reader finds.
161
+ *
162
+ * What differs between the two is only what the caller passes. An arm module is
163
+ * not a column node: the CONTAINER is, so the arm offers no drag handle
164
+ * (`draggable`), marks no drop slot (`columnSlot`) and is never offered the
165
+ * promote actions — the reducer would refuse to nest one container in another.
166
+ */
167
+ function CanvasModule({ node, columnId, index, state, dispatch, moduleComponents, resolveComponent, inPlace = false, inlineEdit, componentAffordances, draggable = true, columnSlot = true, actions, }) {
168
+ const inlineText = inlineTextBindingFor(node.id, node.type, inPlace, inlineEdit);
169
+ const select = () => dispatch({ type: 'SELECT', id: node.id, selectionType: 'module' });
170
+ // Nothing safe to bind (kywi-cms#118): double-click would otherwise be a
171
+ // silent no-op, so route it to the props rail instead — select the module,
172
+ // then focus its first field once that lands. Now always supplied, because
173
+ // whether a gesture binds is only known when it happens (kywi-cms#145): the
174
+ // overlay calls this when its own resolution comes back empty.
175
+ const onInlineFallback = inPlace && inlineEdit
176
+ ? () => {
177
+ select();
178
+ inlineEdit.focusPropsRail();
179
+ }
180
+ : undefined;
181
+ // Re-key the preview after an edit session so contenteditable's DOM leftovers
182
+ // are replaced by a clean render from the stored props.
183
+ const previewKey = inlineEdit && inlineEdit.resetId === node.id ? `${node.id}:${inlineEdit.nonce}` : node.id;
184
+ const linkedName = linkedComponentName(node, componentAffordances);
185
+ return (_jsx(ModuleOverlay, { moduleId: node.id, instanceId: node.instanceId, columnId: columnId, index: index, draggable: draggable, columnSlot: columnSlot, isSelected: state.selectedId === node.id, typeLabel: node.type, inPlace: inPlace, moduleType: node.type, inlineText: inlineText, ...(actions && actions.length > 0 ? { actions } : {}), ...(node.componentId ? { componentId: node.componentId } : {}), ...(linkedName ? { componentName: linkedName } : {}), ...(onInlineFallback ? { onInlineFallback } : {}), onSelect: select, children: _jsx(ModulePreview, { node: node, moduleComponents: moduleComponents, ...(resolveComponent ? { resolveComponent } : {}) }, previewKey) }));
186
+ }
175
187
  // ── DroppableColumn ───────────────────────────────────────────────────────────
176
- function DroppableColumn({ column, state, dispatch, moduleComponents, resolveComponent, inPlace = false, inlineEdit, componentAffordances, linkedAncestor = false, }) {
188
+ function DroppableColumn({ column, state, dispatch, moduleComponents, resolveComponent, inPlace = false, inArm = false, canPromoteModules = true, inlineEdit, componentAffordances, }) {
177
189
  // kywi-cms#20: this droppable represents the column's own (empty) space —
178
190
  // dropping directly there appends to the end of the column instead of always
179
191
  // inserting at the top, which `index: 0` (the old implicit default) would do
@@ -228,26 +240,46 @@ function DroppableColumn({ column, state, dispatch, moduleComponents, resolveCom
228
240
  */
229
241
  const indicator = target ? (_jsx(DropIndicator, { state: target.feedback, top: indicatorTop, ...(target.label ? { moduleType: target.label } : {}) })) : null;
230
242
  const content = (_jsxs(_Fragment, { children: [column.nodes.length === 0 && (_jsx("div", { className: inPlace ? 'kywi-ip-empty-column' : 'kywi-editor-column-empty', children: "Drag a module here" })), _jsx(SortableContext, { items: moduleIds, strategy: verticalListSortingStrategy, children: column.nodes.map((node, index) => {
231
- const inlineText = inlineTextBindingFor(node.id, node.type, inPlace, inlineEdit);
232
- const select = () => dispatch({ type: 'SELECT', id: node.id, selectionType: 'module' });
233
- // Nothing safe to bind (kywi-cms#118): double-click would otherwise be
234
- // a silent no-op, so route it to the props rail instead — select the
235
- // module, then focus its first field once that lands. Now always
236
- // supplied, because whether a gesture binds is only known when it
237
- // happens (kywi-cms#145): the overlay calls this when its own
238
- // resolution comes back empty.
239
- const onInlineFallback = inPlace && inlineEdit
240
- ? () => {
241
- select();
242
- inlineEdit.focusPropsRail();
243
- }
244
- : undefined;
245
- // Re-key the preview after an edit session so contenteditable's DOM
246
- // leftovers are replaced by a clean render from the stored props.
247
- const previewKey = inlineEdit && inlineEdit.resetId === node.id ? `${node.id}:${inlineEdit.nonce}` : node.id;
248
- const componentActions = saveAsComponentAction(node, componentAffordances?.onSaveModule, node.id, linkedAncestor);
249
- const linkedName = linkedComponentName(node, componentAffordances);
250
- return (_jsx(React.Fragment, { children: _jsx(ModuleOverlay, { moduleId: node.id, instanceId: node.instanceId, columnId: column.id, index: index, isSelected: state.selectedId === node.id, typeLabel: node.type, inPlace: inPlace, moduleType: node.type, inlineText: inlineText, ...(componentActions.length > 0 ? { actions: componentActions } : {}), ...(node.componentId ? { componentId: node.componentId } : {}), ...(linkedName ? { componentName: linkedName } : {}), ...(onInlineFallback ? { onInlineFallback } : {}), onSelect: select, children: _jsx(ModulePreview, { node: node, moduleComponents: moduleComponents, ...(resolveComponent ? { resolveComponent } : {}) }, previewKey) }) }, node.id));
243
+ if (isModuleVariantContainer(node)) {
244
+ return (_jsx(ModuleVariantContainerBlock, { container: node, columnId: column.id, index: index, state: state, dispatch: dispatch, moduleComponents: moduleComponents, inPlace: inPlace, ...(inlineEdit ? { inlineEdit } : {}), ...(resolveComponent ? { resolveComponent } : {}), ...(componentAffordances ? { componentAffordances } : {}) }, node.id));
245
+ }
246
+ // Promote-in-place (kywi-cms#161). Offered only for a module the
247
+ // reducer would actually accept which is exactly what reaching this
248
+ // branch already proves, without re-walking the document per module
249
+ // per render the way `canPromoteModule` would: not inside a
250
+ // SECTION-level container's arm (`inArm`, which `SectionBlock` knows
251
+ // from where it is rendering), and not already inside a module-level
252
+ // one, because those modules render through
253
+ // `ModuleVariantContainerBlock` and never reach here.
254
+ //
255
+ // `canPromoteModules` is the other half, and it is about the CANVAS
256
+ // rather than the node: a definition or blueprint canvas offers this
257
+ // nowhere at all (see `EditorCanvasProps.canPromoteModules`).
258
+ //
259
+ // The props rail's copy of this gate DOES call `canPromoteModule`
260
+ // (both shells' `selectedModuleCanPromote`) it addresses one node
261
+ // and has no rendering context to read the answer off. The two are
262
+ // twins and must agree: change what may be promoted, and change it
263
+ // there, in `node-lookup.ts`, then check this branch still matches.
264
+ const promote = (mode) => () => {
265
+ // The id is minted here, not in the reducer, precisely so the SELECT
266
+ // that follows can name the container that does not exist yet —
267
+ // same pattern as `SectionBlock`'s `wrapInContainer`.
268
+ const containerId = generateId();
269
+ dispatch({ type: 'WRAP_MODULE_IN_VARIANT_CONTAINER', moduleId: node.id, containerId, mode });
270
+ dispatch({ type: 'SELECT', id: containerId, selectionType: 'moduleVariantContainer' });
271
+ };
272
+ // "Save as component" no longer rides the hover chrome (kywi-cms#159):
273
+ // the props rail is its only home now, so promote is all this chrome
274
+ // carries. The rail reaches the save handler directly
275
+ // (`onSaveAsComponent` in props-panel.tsx), independent of this.
276
+ const promoteActions = inArm || !canPromoteModules
277
+ ? []
278
+ : [
279
+ { icon: 'personalize', label: 'Personalize', onClick: promote('personalization'), action: 'personalize-module' },
280
+ { icon: 'variant', label: 'A/B test', onClick: promote('ab_test'), action: 'ab-test-module' },
281
+ ];
282
+ return (_jsx(CanvasModule, { node: node, columnId: column.id, index: index, state: state, dispatch: dispatch, moduleComponents: moduleComponents, inPlace: inPlace, actions: promoteActions, ...(inlineEdit ? { inlineEdit } : {}), ...(resolveComponent ? { resolveComponent } : {}), ...(componentAffordances ? { componentAffordances } : {}) }, node.id));
251
283
  }) }), indicator] }));
252
284
  // In place the column element IS the drop zone: an extra wrapper div would
253
285
  // sit between `.kywi-column` and the module wrappers and break the site's own
@@ -290,7 +322,7 @@ function DroppableColumn({ column, state, dispatch, moduleComponents, resolveCom
290
322
  * state rather than a silent lie. Rendering the resolved definition read-only
291
323
  * instead would trade that for a canvas the owner cannot edit at all.
292
324
  */
293
- function SectionBlock({ section, state, dispatch, moduleComponents, resolveComponent, inPlace = false, paletteOpen = false, inArm = false, inlineEdit, componentAffordances, linkedAncestor = false, }) {
325
+ function SectionBlock({ section, state, dispatch, moduleComponents, resolveComponent, inPlace = false, paletteOpen = false, inArm = false, canPromoteModules = true, inlineEdit, componentAffordances, }) {
294
326
  // In place, the section carries its OWN resolved style exactly as the public
295
327
  // SectionRenderer applies it (kywi-cms#94) — otherwise a section's background
296
328
  // or padding would vanish the moment the owner started editing, which is the
@@ -316,16 +348,12 @@ function SectionBlock({ section, state, dispatch, moduleComponents, resolveCompo
316
348
  { icon: 'personalize', label: 'Personalize', onClick: wrapInContainer('personalization') },
317
349
  { icon: 'variant', label: 'A/B test', onClick: wrapInContainer('ab_test') },
318
350
  ];
319
- // Personalize / A-B are region-level only (see `wrapInContainer`); saving as a
320
- // component works in an arm too (see `saveAsComponentAction`).
321
- const actions = [
322
- ...(inArm ? [] : wrapActions),
323
- ...saveAsComponentAction(section, componentAffordances?.onSaveSection, section.id, linkedAncestor),
324
- ];
351
+ // Personalize / A-B are region-level only (see `wrapInContainer`). "Save as
352
+ // component" used to ride here too but no longer does (kywi-cms#159) — the
353
+ // props rail is its only home, so the section chrome offers just the wrap
354
+ // actions.
355
+ const actions = inArm ? [] : wrapActions;
325
356
  const linkedName = linkedComponentName(section, componentAffordances);
326
- // Anything in this section's columns is inside a component if the section is
327
- // one, or if the section already sits inside one (a linked container's arm).
328
- const columnsLinkedAncestor = linkedAncestor || Boolean(section.componentId);
329
357
  return (_jsx(SectionOverlay, { sectionId: section.id, isSelected: state.selectedId === section.id, inPlace: inPlace, paletteOpen: paletteOpen, ...(actions.length > 0 ? { actions } : {}), ...(section.componentId ? { componentId: section.componentId } : {}), ...(linkedName ? { componentName: linkedName } : {}), ...(resolved ? { inPlaceStyle: resolved.base, responsiveCss: resolved.responsiveCss } : {}), onSelect: () => dispatch({ type: 'SELECT', id: section.id, selectionType: 'section' }), onAddColumn: () => dispatch({ type: 'ADD_COLUMN', sectionId: section.id }),
330
358
  // The same confirm the props rail's "Delete Section" asks
331
359
  // (`handleDeleteSection` in props-panel.tsx). It was missing here, on the
@@ -339,7 +367,7 @@ function SectionBlock({ section, state, dispatch, moduleComponents, resolveCompo
339
367
  if (window.confirm('Delete this section?')) {
340
368
  dispatch({ type: 'REMOVE_SECTION', sectionId: section.id });
341
369
  }
342
- }, children: section.columns.map((column, ci) => (_jsxs(React.Fragment, { children: [_jsx(DroppableColumn, { column: column, state: state, dispatch: dispatch, moduleComponents: moduleComponents, inPlace: inPlace, linkedAncestor: columnsLinkedAncestor, ...(inlineEdit ? { inlineEdit } : {}), ...(resolveComponent ? { resolveComponent } : {}), ...(componentAffordances ? { componentAffordances } : {}) }), !inPlace && ci < section.columns.length - 1 && (_jsx(ColumnResizeHandle, { leftWidth: column.width, rightWidth: section.columns[ci + 1].width, onResize: (lw, rw) => {
370
+ }, children: section.columns.map((column, ci) => (_jsxs(React.Fragment, { children: [_jsx(DroppableColumn, { column: column, state: state, dispatch: dispatch, moduleComponents: moduleComponents, inPlace: inPlace, inArm: inArm, canPromoteModules: canPromoteModules, ...(inlineEdit ? { inlineEdit } : {}), ...(resolveComponent ? { resolveComponent } : {}), ...(componentAffordances ? { componentAffordances } : {}) }), !inPlace && ci < section.columns.length - 1 && (_jsx(ColumnResizeHandle, { leftWidth: column.width, rightWidth: section.columns[ci + 1].width, onResize: (lw, rw) => {
343
371
  const widths = section.columns.map((c, i) => i === ci ? lw : i === ci + 1 ? rw : c.width);
344
372
  dispatch({ type: 'RESIZE_COLUMNS', sectionId: section.id, widths });
345
373
  } }))] }, column.id))) }));
@@ -349,14 +377,19 @@ function SectionBlock({ section, state, dispatch, moduleComponents, resolveCompo
349
377
  function armLabel(entry, index) {
350
378
  return entry.label || entry.audienceId || `Variant ${index + 1}`;
351
379
  }
352
- /** Section-level arm weights are 0..1 (module-level ones are 0-100) — show a percentage. */
380
+ /**
381
+ * Arm weights are fractions of 1 at BOTH granularities (`VariantEntry.weight`,
382
+ * `ModuleVariantEntry.weight`) — show them as a percentage.
383
+ */
353
384
  function formatWeight(weight) {
354
385
  return `${Math.round(weight * 1000) / 10}%`;
355
386
  }
356
387
  /**
357
388
  * The Default / variant arm switcher. Rides inside the floating chrome in place
358
389
  * and sits under the toolbar in the artboard, but is the same control either
359
- * way — the canvas is showing whichever arm is selected here.
390
+ * way — the canvas is showing whichever arm is selected here. Shared by both
391
+ * granularities of container (kywi-cms#161), so switching arms on a personalized
392
+ * module reads exactly like switching them on a personalized band.
360
393
  */
361
394
  function ArmTabs({ arms, activeArm, isAbTest, onSelect, }) {
362
395
  return (_jsx("div", { className: "kywi-editor-vc-arms", role: "tablist", "aria-label": "Variants", children: arms.map(arm => (_jsxs("button", { type: "button", role: "tab", "aria-selected": arm.id === activeArm, "data-arm-id": arm.id, className: `kywi-editor-vc-arm-btn${arm.id === activeArm ? ' kywi-editor-vc-arm-btn--active' : ''}`, onClick: (e) => {
@@ -393,7 +426,17 @@ function VariantContainerBlock({ container, state, dispatch, moduleComponents, r
393
426
  // Collapsed/expanded is presentation-only and per-block, so it stays local.
394
427
  // Expanded by default: hiding arm content behind a disclosure would re-create
395
428
  // the very "invisible in the editor" problem this block exists to fix.
396
- const [expanded, setExpanded] = React.useState(true);
429
+ //
430
+ // ARTBOARD ONLY (kywi-cms#164). In place, collapsing rendered nothing in the
431
+ // page's own flow: the block dropped to 0px, and its chrome — which is
432
+ // `pointer-events: none` until the block is hovered or selected (editor.css's
433
+ // `.kywi-ip-vc:hover > .kywi-ip-vc-chrome` rules) — became unreachable the
434
+ // moment the owner deselected, with no way back but a reload (the state is
435
+ // session-only, so a reload silently restored it and told them nothing). The
436
+ // artboard is unaffected: its toolbar row stays in flow, which is why the
437
+ // control keeps working there and only there.
438
+ const [collapsed, setCollapsed] = React.useState(false);
439
+ const expanded = inPlace ? true : !collapsed;
397
440
  const isAbTest = container.mode === 'ab_test';
398
441
  const isSelected = state.selectedId === container.id;
399
442
  const requestedArm = state.activeArms[container.id] ?? DEFAULT_ARM_ID;
@@ -406,11 +449,8 @@ function VariantContainerBlock({ container, state, dispatch, moduleComponents, r
406
449
  ];
407
450
  const selectArm = (armId) => dispatch({ type: 'SET_VARIANT_ARM', containerId: container.id, armId });
408
451
  const linkedName = linkedComponentName(container, componentAffordances);
409
- const saveActions = saveAsComponentAction(container, componentAffordances?.onSaveVariantContainer, container.id);
410
- // A LINKED container's arms are its component's fallback copy: nothing inside
411
- // may be connected in its own right (see `saveAsComponentAction`). Containers
412
- // are region-level only, so the container itself never has a linked ancestor.
413
- const armLinkedAncestor = Boolean(container.componentId);
452
+ // "Save as component" used to have its own button in this toolbar too, but no
453
+ // longer does (kywi-cms#159) the props rail is its only home now.
414
454
  const rootClassName = inPlace
415
455
  ? [
416
456
  'kywi-variant-container',
@@ -436,7 +476,7 @@ function VariantContainerBlock({ container, state, dispatch, moduleComponents, r
436
476
  // Stop here so the canvas root doesn't immediately deselect.
437
477
  e.stopPropagation();
438
478
  dispatch({ type: 'SELECT', id: container.id, selectionType: 'variantContainer' });
439
- }, children: [_jsx("span", { className: "kywi-editor-vc-badge", children: isAbTest ? 'A/B test' : 'Personalized' }), _jsx("span", { className: "kywi-editor-vc-title", children: isAbTest ? 'A/B tested section' : 'Personalized section' }), _jsxs("span", { className: "kywi-editor-vc-arm-count", children: [arms.length, " variant", arms.length === 1 ? '' : 's'] }), container.componentId ? _jsx(LinkedComponentPill, { name: linkedName }) : null, inPlace && expanded && (_jsx(ArmTabs, { arms: arms, activeArm: activeArm, isAbTest: isAbTest, onSelect: selectArm })), _jsxs("div", { className: "kywi-editor-vc-toolbar-actions", children: [saveActions.map((action) => (_jsxs("button", { type: "button", className: "kywi-editor-section-toolbar-btn", "data-action": "save-vc-as-component", title: action.label, onClick: (e) => { e.stopPropagation(); action.onClick(); }, children: [_jsx(EditorIcon, { name: action.icon, size: 14 }), action.label] }, action.label))), _jsx("button", { type: "button", className: "kywi-editor-section-toolbar-btn", "data-action": "toggle-variant-container", "aria-expanded": expanded, onClick: (e) => { e.stopPropagation(); setExpanded(v => !v); }, children: expanded ? 'Collapse' : 'Expand' })] })] }), expanded && (_jsxs(_Fragment, { children: [!inPlace && (_jsx(ArmTabs, { arms: arms, activeArm: activeArm, isAbTest: isAbTest, onSelect: selectArm })), _jsxs(ArmBody, { inPlace: inPlace, activeArm: activeArm, children: [sections.length === 0 && (_jsx("p", { className: "kywi-editor-vc-arm-empty", children: "This variant renders nothing. Add a section so visitors in it see content." })), sections.map(section => (_jsx(SectionBlock, { section: section, state: state, dispatch: dispatch, moduleComponents: moduleComponents, inPlace: inPlace, paletteOpen: paletteOpen, inArm: true, linkedAncestor: armLinkedAncestor, ...(inlineEdit ? { inlineEdit } : {}), ...(resolveComponent ? { resolveComponent } : {}), ...(componentAffordances ? { componentAffordances } : {}) }, section.id))), _jsx("button", { type: "button", className: inPlace ? 'kywi-ip-add-arm-section' : 'kywi-editor-vc-add-section', "data-action": "add-arm-section", ...(inPlace ? { 'data-kywi-editor-chrome': '' } : {}), onClick: (e) => {
479
+ }, children: [_jsx("span", { className: "kywi-editor-vc-badge", children: isAbTest ? 'A/B test' : 'Personalized' }), _jsx("span", { className: "kywi-editor-vc-title", children: isAbTest ? 'A/B tested section' : 'Personalized section' }), _jsxs("span", { className: "kywi-editor-vc-arm-count", children: [arms.length, " variant", arms.length === 1 ? '' : 's'] }), container.componentId ? _jsx(LinkedComponentPill, { name: linkedName }) : null, inPlace && (_jsx(ArmTabs, { arms: arms, activeArm: activeArm, isAbTest: isAbTest, onSelect: selectArm })), !inPlace && (_jsx("div", { className: "kywi-editor-vc-toolbar-actions", children: _jsx("button", { type: "button", className: "kywi-editor-section-toolbar-btn", "data-action": "toggle-variant-container", "aria-expanded": expanded, onClick: (e) => { e.stopPropagation(); setCollapsed(v => !v); }, children: expanded ? 'Collapse' : 'Expand' }) }))] }), expanded && (_jsxs(_Fragment, { children: [!inPlace && (_jsx(ArmTabs, { arms: arms, activeArm: activeArm, isAbTest: isAbTest, onSelect: selectArm })), _jsxs(ArmBody, { inPlace: inPlace, activeArm: activeArm, children: [sections.length === 0 && (_jsx("p", { className: "kywi-editor-vc-arm-empty", children: "This variant renders nothing. Add a section so visitors in it see content." })), sections.map(section => (_jsx(SectionBlock, { section: section, state: state, dispatch: dispatch, moduleComponents: moduleComponents, inPlace: inPlace, paletteOpen: paletteOpen, inArm: true, ...(inlineEdit ? { inlineEdit } : {}), ...(resolveComponent ? { resolveComponent } : {}), ...(componentAffordances ? { componentAffordances } : {}) }, section.id))), _jsx("button", { type: "button", className: inPlace ? 'kywi-ip-add-arm-section' : 'kywi-editor-vc-add-section', "data-action": "add-arm-section", ...(inPlace ? { 'data-kywi-editor-chrome': '' } : {}), onClick: (e) => {
440
480
  e.stopPropagation();
441
481
  dispatch({
442
482
  type: 'ADD_ARM_SECTION',
@@ -446,6 +486,62 @@ function VariantContainerBlock({ container, state, dispatch, moduleComponents, r
446
486
  });
447
487
  }, children: "+ Add section to this variant" })] })] }))] }));
448
488
  }
489
+ // ── ModuleVariantContainerBlock ───────────────────────────────────────────────
490
+ /** Human label for a module arm: its own label, else its audience/key, else its position. */
491
+ function moduleArmLabel(entry, index) {
492
+ return entry.label || entry.audienceId || `Variant ${index + 1}`;
493
+ }
494
+ /**
495
+ * A MODULE-level variant container, rendered in place of the module it wrapped
496
+ * (kywi-cms#161).
497
+ *
498
+ * The open arm's module renders through the ORDINARY `CanvasModule`, so the
499
+ * props rail, inline text editing and the canvas preview all work on an arm
500
+ * exactly as they do on any module — with the drag handle withheld, because the
501
+ * container is the movable unit in v1. The block itself is the sortable node and
502
+ * carries `data-kywi-module-slot` so a palette drop measures against it like any
503
+ * other slot; the arm module inside deliberately does not, or one column node
504
+ * would be counted twice (see `ModuleOverlayProps.columnSlot`). It reuses the
505
+ * section container's badge and arm-switcher classes so the two granularities
506
+ * read as one system.
507
+ */
508
+ function ModuleVariantContainerBlock({ container, columnId, index, state, dispatch, moduleComponents, resolveComponent, inPlace = false, inlineEdit, componentAffordances, }) {
509
+ // The CONTAINER is the column's node, so it is the container — not the module
510
+ // inside it — that drags, and it reports the column + index the reducer
511
+ // splices against.
512
+ const { attributes, listeners, setNodeRef, transform, transition } = useSortable({
513
+ id: container.id,
514
+ data: { source: 'canvas', moduleId: container.id, columnId, index, moduleType: 'moduleVariantContainer' },
515
+ });
516
+ const isAbTest = container.mode === 'ab_test';
517
+ const isSelected = state.selectedId === container.id;
518
+ const requestedArm = state.activeArms[container.id] ?? DEFAULT_ARM_ID;
519
+ // A just-deleted arm can still be the requested one — `activeArms` is never
520
+ // cleaned up on removal — so fall back to Default rather than render nothing.
521
+ // Same contract as `resolveArmSections` at section level.
522
+ const armExists = requestedArm === DEFAULT_ARM_ID || container.variants.some(v => v.id === requestedArm);
523
+ const activeArm = armExists ? requestedArm : DEFAULT_ARM_ID;
524
+ const node = activeArm === DEFAULT_ARM_ID
525
+ ? container.defaultModule
526
+ : (container.variants.find(v => v.id === activeArm)?.module ?? container.defaultModule);
527
+ const arms = [
528
+ { id: DEFAULT_ARM_ID, label: 'Default', weight: null },
529
+ ...container.variants.map((v, i) => ({
530
+ id: v.id,
531
+ label: moduleArmLabel(v, i),
532
+ weight: v.weight ?? null,
533
+ })),
534
+ ];
535
+ const className = inPlace
536
+ ? ['kywi-module-variant-container', 'kywi-ip-mvc', isSelected ? 'kywi-ip-mvc--selected' : null]
537
+ .filter(Boolean).join(' ')
538
+ : ['kywi-editor-mvc', isSelected ? 'kywi-editor-mvc--selected' : null].filter(Boolean).join(' ');
539
+ return (_jsxs("div", { ref: setNodeRef, className: className, style: { transform: CSS.Transform.toString(transform), transition }, "data-module-variant-container-id": container.id, "data-mvc-mode": container.mode, "data-variant": activeArm, "data-kywi-module-slot": "", "data-testid": "editor-module-variant-container", ...attributes, children: [_jsxs("div", { className: inPlace ? 'kywi-ip-chrome kywi-editor-mvc-chrome' : 'kywi-editor-mvc-chrome', "data-kywi-editor-chrome": "", contentEditable: false, onClick: (e) => {
540
+ // Stop here so the canvas root doesn't immediately deselect.
541
+ e.stopPropagation();
542
+ dispatch({ type: 'SELECT', id: container.id, selectionType: 'moduleVariantContainer' });
543
+ }, children: [_jsx("span", { className: "kywi-editor-vc-badge", children: isAbTest ? 'A/B test' : 'Personalized' }), _jsx(ArmTabs, { arms: arms, activeArm: activeArm, isAbTest: isAbTest, onSelect: (armId) => dispatch({ type: 'SET_VARIANT_ARM', containerId: container.id, armId }) }), _jsx("button", { type: "button", className: "kywi-editor-module-action-btn kywi-editor-mvc-drag-handle", "aria-label": "Drag to reorder", title: "Drag to reorder", ...listeners, children: _jsx(EditorIcon, { name: "grip", size: 14 }) })] }), _jsx(CanvasModule, { node: node, columnId: columnId, index: index, state: state, dispatch: dispatch, moduleComponents: moduleComponents, inPlace: inPlace, draggable: false, columnSlot: false, ...(inlineEdit ? { inlineEdit } : {}), ...(resolveComponent ? { resolveComponent } : {}), ...(componentAffordances ? { componentAffordances } : {}) })] }));
544
+ }
449
545
  // ── EditorCanvas ──────────────────────────────────────────────────────────────
450
546
  /**
451
547
  * Memoized (kywi-cms#142): the canvas re-renders on every editor-state
@@ -457,7 +553,7 @@ function VariantContainerBlock({ container, state, dispatch, moduleComponents, r
457
553
  * references from the shells (LayoutEditor / OverlayShell) across a
458
554
  * drop-target update.
459
555
  */
460
- export const EditorCanvas = React.memo(function EditorCanvas({ state, dispatch, moduleComponents, onInsertSection, resolveComponent, overlayHandles = false, inPlace = false, paletteOpen = false, inlineEdit, componentAffordances, }) {
556
+ export const EditorCanvas = React.memo(function EditorCanvas({ state, dispatch, moduleComponents, onInsertSection, resolveComponent, overlayHandles = false, inPlace = false, paletteOpen = false, inlineEdit, componentAffordances, canPromoteModules = true, }) {
461
557
  const regions = getRegions(state);
462
558
  // In place the canvas is NOT an artboard: it carries no background, padding
463
559
  // or max-width of its own, so the page renders at its real width with its own
@@ -476,6 +572,6 @@ export const EditorCanvas = React.memo(function EditorCanvas({ state, dispatch,
476
572
  return (_jsx(ModuleEditorContext.Provider, { value: true, children: _jsxs("div", { className: canvasClassName, onClick: () => dispatch({ type: 'DESELECT' }), children: [totalNodes === 0 && (_jsxs("div", { className: "kywi-editor-canvas-empty", "data-testid": "editor-canvas-empty", children: [_jsx("p", { className: "kywi-editor-canvas-empty-title", children: "This page currently renders its body content." }), _jsx("p", { className: "kywi-editor-canvas-empty-copy", children: "Add a section to design it with the layout engine." }), _jsx("button", { type: "button", className: "kywi-editor-canvas-empty-cta", onClick: (event) => {
477
573
  event.stopPropagation();
478
574
  onInsertSection(Object.keys(regions)[0] ?? 'main');
479
- }, children: "+ Add Section" })] })), Object.entries(regions).map(([regionName, nodes]) => (_jsxs(RegionOverlay, { name: regionName, inPlace: inPlace, children: [nodes.filter(isRenderableNode).map((node) => (_jsxs(React.Fragment, { children: [!inPlace && _jsx(SectionInsertLine, { onInsert: () => onInsertSection(regionName) }), isLayoutSection(node) ? (_jsx(SectionBlock, { section: node, state: state, dispatch: dispatch, moduleComponents: moduleComponents, inPlace: inPlace, paletteOpen: paletteOpen, ...(inlineEdit ? { inlineEdit } : {}), ...(resolveComponent ? { resolveComponent } : {}), ...(componentAffordances ? { componentAffordances } : {}) })) : (_jsx(VariantContainerBlock, { container: node, state: state, dispatch: dispatch, moduleComponents: moduleComponents, inPlace: inPlace, paletteOpen: paletteOpen, ...(inlineEdit ? { inlineEdit } : {}), ...(resolveComponent ? { resolveComponent } : {}), ...(componentAffordances ? { componentAffordances } : {}) }))] }, node.id))), _jsx(SectionInsertLine, { onInsert: () => onInsertSection(regionName), inPlace: inPlace })] }, regionName)))] }) }));
575
+ }, children: "+ Add Section" })] })), Object.entries(regions).map(([regionName, nodes]) => (_jsxs(RegionOverlay, { name: regionName, inPlace: inPlace, children: [nodes.filter(isRenderableNode).map((node) => (_jsxs(React.Fragment, { children: [!inPlace && _jsx(SectionInsertLine, { onInsert: () => onInsertSection(regionName) }), isLayoutSection(node) ? (_jsx(SectionBlock, { section: node, state: state, dispatch: dispatch, moduleComponents: moduleComponents, inPlace: inPlace, paletteOpen: paletteOpen, canPromoteModules: canPromoteModules, ...(inlineEdit ? { inlineEdit } : {}), ...(resolveComponent ? { resolveComponent } : {}), ...(componentAffordances ? { componentAffordances } : {}) })) : (_jsx(VariantContainerBlock, { container: node, state: state, dispatch: dispatch, moduleComponents: moduleComponents, inPlace: inPlace, paletteOpen: paletteOpen, ...(inlineEdit ? { inlineEdit } : {}), ...(resolveComponent ? { resolveComponent } : {}), ...(componentAffordances ? { componentAffordances } : {}) }))] }, node.id))), _jsx(SectionInsertLine, { onInsert: () => onInsertSection(regionName), inPlace: inPlace })] }, regionName)))] }) }));
480
576
  });
481
577
  //# sourceMappingURL=editor-canvas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"editor-canvas.js","sourceRoot":"","sources":["../../../src/admin/layout-editor/editor-canvas.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editor-canvas.js","sourceRoot":"","sources":["../../../src/admin/layout-editor/editor-canvas.tsx"],"names":[],"mappings":"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"}
@@ -3,8 +3,8 @@
3
3
  * Core reducer for the Kywi layout overlay editor.
4
4
  * All editor components dispatch actions through this reducer.
5
5
  */
6
- import type { LayoutDocument, LayoutSection, ModuleNode, VariantContainer } from '../../layout/types.js';
7
- export type SelectionType = 'module' | 'column' | 'section' | 'variantContainer' | null;
6
+ import type { LayoutDocument, LayoutSection, ModuleNode, ModuleVariantContainer, VariantContainer } from '../../layout/types.js';
7
+ export type SelectionType = 'module' | 'column' | 'section' | 'variantContainer' | 'moduleVariantContainer' | null;
8
8
  /**
9
9
  * Arm metadata the props panel may rewrite.
10
10
  *
@@ -31,6 +31,32 @@ export interface VariantContainerPatch {
31
31
  /** The complete arm list after the edit, in order. */
32
32
  arms?: VariantArmPatch[];
33
33
  }
34
+ /**
35
+ * Arm metadata the props panel may rewrite on a MODULE-level container.
36
+ *
37
+ * Carries no `module`, for the same reason `VariantArmPatch` carries no
38
+ * `sections`: the reducer keeps each surviving arm's own module, matched by
39
+ * `id`, so relabelling or reweighting can never revert (or alias) the content
40
+ * the canvas is editing. An `id` the container doesn't have yet is a new arm.
41
+ */
42
+ export interface ModuleVariantArmPatch {
43
+ id: string;
44
+ audienceId: string;
45
+ label: string;
46
+ weight: number;
47
+ }
48
+ /**
49
+ * Fields of a module-level variant container the props panel may rewrite.
50
+ * Absent keys are left untouched; `experimentId`/`winnerId` set to `''` clear
51
+ * the key entirely so the saved document never carries a meaningless empty id.
52
+ */
53
+ export interface ModuleVariantContainerPatch {
54
+ mode?: ModuleVariantContainer['mode'];
55
+ experimentId?: string;
56
+ winnerId?: string;
57
+ /** The complete arm list after the edit, in order. */
58
+ arms?: ModuleVariantArmPatch[];
59
+ }
34
60
  export interface DragState {
35
61
  isDragging: boolean;
36
62
  sourceType: 'palette' | 'canvas' | null;
@@ -196,6 +222,40 @@ export type EditorAction = {
196
222
  | {
197
223
  type: 'UNWRAP_VARIANT_CONTAINER';
198
224
  containerId: string;
225
+ }
226
+ /**
227
+ * Promote-in-place: swap a module for a `moduleVariantContainer` whose
228
+ * `defaultModule` IS that module, so the page renders identically until arms
229
+ * are added. The caller supplies `containerId` (via `generateId()`) so it can
230
+ * `SELECT` the new container immediately after dispatching — the same pattern
231
+ * as WRAP_SECTION_IN_VARIANT_CONTAINER. Refused for a module inside a
232
+ * SECTION-level container arm, and for one already inside a module-level
233
+ * container: containers never nest.
234
+ */
235
+ | {
236
+ type: 'WRAP_MODULE_IN_VARIANT_CONTAINER';
237
+ moduleId: string;
238
+ containerId: string;
239
+ mode: 'personalization' | 'ab_test';
240
+ }
241
+ /** The inverse: `defaultModule` is restored at the container's position; arms are discarded (undo restores them). */
242
+ | {
243
+ type: 'UNWRAP_MODULE_VARIANT_CONTAINER';
244
+ containerId: string;
245
+ } | {
246
+ type: 'UPDATE_MODULE_VARIANT_CONTAINER';
247
+ containerId: string;
248
+ patch: ModuleVariantContainerPatch;
249
+ }
250
+ /** Add an arm seeded from a DETACHED clone of the Default arm's module (`cloneModuleDetached`). */
251
+ | {
252
+ type: 'ADD_MODULE_VARIANT_ARM';
253
+ containerId: string;
254
+ armId: string;
255
+ } | {
256
+ type: 'REMOVE_MODULE_VARIANT_ARM';
257
+ containerId: string;
258
+ armId: string;
199
259
  } | {
200
260
  type: 'UNDO';
201
261
  } | {