@kywi-software/core 0.8.0 → 0.9.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.
- package/dist/admin/audience-list.d.ts.map +1 -1
- package/dist/admin/audience-list.js +9 -0
- package/dist/admin/audience-list.js.map +1 -1
- package/dist/admin/content-form.d.ts.map +1 -1
- package/dist/admin/content-form.js +7 -1
- package/dist/admin/content-form.js.map +1 -1
- package/dist/admin/layout-editor/column-overlay.d.ts +10 -1
- package/dist/admin/layout-editor/column-overlay.d.ts.map +1 -1
- package/dist/admin/layout-editor/column-overlay.js +2 -2
- package/dist/admin/layout-editor/column-overlay.js.map +1 -1
- package/dist/admin/layout-editor/component-actions.js +1 -1
- package/dist/admin/layout-editor/component-actions.js.map +1 -1
- package/dist/admin/layout-editor/drag-feedback.d.ts +75 -0
- package/dist/admin/layout-editor/drag-feedback.d.ts.map +1 -0
- package/dist/admin/layout-editor/drag-feedback.js +60 -0
- package/dist/admin/layout-editor/drag-feedback.js.map +1 -0
- package/dist/admin/layout-editor/drag-utils.d.ts +106 -8
- package/dist/admin/layout-editor/drag-utils.d.ts.map +1 -1
- package/dist/admin/layout-editor/drag-utils.js +136 -24
- package/dist/admin/layout-editor/drag-utils.js.map +1 -1
- package/dist/admin/layout-editor/editor-canvas.d.ts.map +1 -1
- package/dist/admin/layout-editor/editor-canvas.js +44 -19
- package/dist/admin/layout-editor/editor-canvas.js.map +1 -1
- package/dist/admin/layout-editor/editor-state.d.ts +46 -0
- package/dist/admin/layout-editor/editor-state.d.ts.map +1 -1
- package/dist/admin/layout-editor/editor-state.js +24 -3
- package/dist/admin/layout-editor/editor-state.js.map +1 -1
- package/dist/admin/layout-editor/generate-id.d.ts +23 -0
- package/dist/admin/layout-editor/generate-id.d.ts.map +1 -0
- package/dist/admin/layout-editor/generate-id.js +34 -0
- package/dist/admin/layout-editor/generate-id.js.map +1 -0
- package/dist/admin/layout-editor/layout-editor.d.ts +8 -1
- package/dist/admin/layout-editor/layout-editor.d.ts.map +1 -1
- package/dist/admin/layout-editor/layout-editor.js +66 -13
- package/dist/admin/layout-editor/layout-editor.js.map +1 -1
- package/dist/admin/layout-editor/module-overlay.d.ts.map +1 -1
- package/dist/admin/layout-editor/module-overlay.js +1 -1
- package/dist/admin/layout-editor/module-overlay.js.map +1 -1
- package/dist/admin/layout-editor/overlay-shell.d.ts +11 -3
- package/dist/admin/layout-editor/overlay-shell.d.ts.map +1 -1
- package/dist/admin/layout-editor/overlay-shell.js +93 -50
- package/dist/admin/layout-editor/overlay-shell.js.map +1 -1
- package/dist/admin/layout-editor/section-variant-container-config.js +1 -1
- package/dist/admin/layout-editor/section-variant-container-config.js.map +1 -1
- package/dist/admin/layout-editor/use-editor-dnd.d.ts +36 -0
- package/dist/admin/layout-editor/use-editor-dnd.d.ts.map +1 -0
- package/dist/admin/layout-editor/use-editor-dnd.js +185 -0
- package/dist/admin/layout-editor/use-editor-dnd.js.map +1 -0
- package/dist/layout/modules.d.ts.map +1 -1
- package/dist/layout/modules.js +52 -2
- package/dist/layout/modules.js.map +1 -1
- package/dist/layout/registry.d.ts +6 -0
- package/dist/layout/registry.d.ts.map +1 -1
- package/dist/layout/registry.js +21 -5
- package/dist/layout/registry.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,25 +2,9 @@
|
|
|
2
2
|
* drag-utils.ts
|
|
3
3
|
* Shared drag/drop utilities for the Kywi layout overlay editor.
|
|
4
4
|
*/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
* Uses `crypto.randomUUID()` in the browser and Node.js ≥ 14.17.
|
|
9
|
-
* Falls back to a manual UUID v4 implementation for environments
|
|
10
|
-
* that don't expose the Web Crypto API globally.
|
|
11
|
-
*/
|
|
12
|
-
export function generateId() {
|
|
13
|
-
// globalThis.crypto.randomUUID() is available in all browsers and Node.js ≥ 18.
|
|
14
|
-
if (typeof globalThis.crypto?.randomUUID === 'function') {
|
|
15
|
-
return globalThis.crypto.randomUUID();
|
|
16
|
-
}
|
|
17
|
-
// Manual UUID v4 fallback for edge environments without Web Crypto API.
|
|
18
|
-
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
|
|
19
|
-
const r = (Math.random() * 16) | 0;
|
|
20
|
-
const v = c === 'x' ? r : (r & 0x3) | 0x8;
|
|
21
|
-
return v.toString(16);
|
|
22
|
-
});
|
|
23
|
-
}
|
|
5
|
+
import { closestCenter, pointerWithin, rectIntersection } from '@dnd-kit/core';
|
|
6
|
+
import { seedModuleDefaults } from '../../layout/registry.js';
|
|
7
|
+
import { generateId } from './generate-id.js';
|
|
24
8
|
// ── createDwellTimer ──────────────────────────────────────────
|
|
25
9
|
/**
|
|
26
10
|
* Creates a dwell-based drop-feedback state machine.
|
|
@@ -95,6 +79,122 @@ export const SECTION_TEMPLATES = [
|
|
|
95
79
|
{ label: 'Asymmetric', columns: [8, 4] },
|
|
96
80
|
{ label: 'Quarters', columns: [3, 3, 3, 3] },
|
|
97
81
|
];
|
|
82
|
+
// ── editorCollisionDetection ──────────────────────────────────
|
|
83
|
+
/**
|
|
84
|
+
* Collision detection for the layout editor.
|
|
85
|
+
*
|
|
86
|
+
* kywi-cms#134: the editor used dnd-kit's `closestCenter` for every drag, which
|
|
87
|
+
* is the right algorithm for a *reorder* (the dragged item is already inside a
|
|
88
|
+
* list; the nearest centre is the slot it should take) and the wrong one for a
|
|
89
|
+
* *palette drop* (the item is coming from outside, and `closestCenter` always
|
|
90
|
+
* names a winner however far away it is). UAT measured a palette item released
|
|
91
|
+
* in a section gutter landing on a droppable ~310px away, in a different band —
|
|
92
|
+
* and, on the admin canvas, two sections away. The drop "worked", just nowhere
|
|
93
|
+
* near where the owner let go, which reads as the editor moving things by
|
|
94
|
+
* itself.
|
|
95
|
+
*
|
|
96
|
+
* So palette drags resolve by where the pointer actually is:
|
|
97
|
+
* 1. `pointerWithin` — the droppable under the cursor, if there is one.
|
|
98
|
+
* 2. `rectIntersection` — the dragged item's rect overlaps a droppable, for a
|
|
99
|
+
* drop whose cursor has drifted just off the edge of the target.
|
|
100
|
+
* 3. nothing. A drop in dead space is a no-op, not a guess.
|
|
101
|
+
*
|
|
102
|
+
* Canvas drags keep `closestCenter` verbatim, so reordering is unchanged.
|
|
103
|
+
*/
|
|
104
|
+
export const editorCollisionDetection = (args) => {
|
|
105
|
+
const source = args.active.data.current?.source;
|
|
106
|
+
if (source !== 'palette')
|
|
107
|
+
return closestCenter(args);
|
|
108
|
+
const atPointer = pointerWithin(args);
|
|
109
|
+
if (atPointer.length > 0)
|
|
110
|
+
return atPointer;
|
|
111
|
+
const intersecting = rectIntersection(args);
|
|
112
|
+
if (intersecting.length > 0)
|
|
113
|
+
return intersecting;
|
|
114
|
+
// kywi-cms#134: no snap-to-distant-centre — a drop in a section gutter is a no-op.
|
|
115
|
+
return [];
|
|
116
|
+
};
|
|
117
|
+
// ── resolveColumnDropIndex ────────────────────────────────────
|
|
118
|
+
/**
|
|
119
|
+
* Where in a column a drop at `pointerY` belongs: the number of modules already
|
|
120
|
+
* rendered in that column whose vertical midpoint sits above the pointer.
|
|
121
|
+
*
|
|
122
|
+
* kywi-cms#134: a column's own droppable declares a single fixed index (its
|
|
123
|
+
* node count, i.e. "append"), so every drop onto a column that already had
|
|
124
|
+
* modules landed at the bottom no matter where the owner released. Measuring
|
|
125
|
+
* the live rects at drop time is the only honest answer, because it is the
|
|
126
|
+
* rendered geometry — not the drop zone's declared index — that the owner was
|
|
127
|
+
* aiming at.
|
|
128
|
+
*
|
|
129
|
+
* A slot with no layout box — `display:none`, or zero-height because it hasn't
|
|
130
|
+
* painted yet — reports an all-zero rect, so its midpoint is 0 and it counts as
|
|
131
|
+
* "above" any real pointer. Accepted today: every module slot inside a mounted
|
|
132
|
+
* column is laid out by the time a drop resolves. Worth revisiting if columns
|
|
133
|
+
* ever render collapsed or lazily-mounted modules.
|
|
134
|
+
*
|
|
135
|
+
* @param columnEl A `[data-kywi-column-drop]` element, or null when the column
|
|
136
|
+
* isn't in the DOM (the caller then falls back to the
|
|
137
|
+
* droppable's declared index).
|
|
138
|
+
* @param pointerY Viewport-relative y of the pointer at drop time, matching the
|
|
139
|
+
* coordinate space of `getBoundingClientRect()`.
|
|
140
|
+
* @returns The insertion index, or null when there is no element to measure.
|
|
141
|
+
*/
|
|
142
|
+
export function resolveColumnDropIndex(columnEl, pointerY) {
|
|
143
|
+
if (!columnEl)
|
|
144
|
+
return null;
|
|
145
|
+
let index = 0;
|
|
146
|
+
// `Array.from`, not `for…of` over the NodeList: the package's `lib` is
|
|
147
|
+
// ["ES2022", "DOM"] without "DOM.Iterable".
|
|
148
|
+
for (const slot of Array.from(columnEl.querySelectorAll('[data-kywi-module-slot]'))) {
|
|
149
|
+
const rect = slot.getBoundingClientRect();
|
|
150
|
+
if (pointerY > rect.top + rect.height / 2)
|
|
151
|
+
index += 1;
|
|
152
|
+
}
|
|
153
|
+
return index;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Find a column's drop zone in the live document and resolve the drop index
|
|
157
|
+
* against it. Returns null — "caller, keep your fallback" — when there is no
|
|
158
|
+
* pointer (keyboard drag), no document (SSR), or the column isn't mounted.
|
|
159
|
+
*
|
|
160
|
+
* Matches the attribute by value rather than interpolating `columnId` into a
|
|
161
|
+
* `querySelector` string: a column id containing a quote or backslash would
|
|
162
|
+
* make that selector throw a `SyntaxError` mid-drop, and this can't.
|
|
163
|
+
*/
|
|
164
|
+
function resolveColumnDropIndexFromDocument(columnId, pointerY) {
|
|
165
|
+
if (pointerY == null || typeof document === 'undefined')
|
|
166
|
+
return null;
|
|
167
|
+
const columnEl = Array.from(document.querySelectorAll('[data-kywi-column-drop]')).find(el => el.getAttribute('data-kywi-column-drop') === columnId) ?? null;
|
|
168
|
+
return resolveColumnDropIndex(columnEl, pointerY);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Resolve the slot a palette drag would drop into, from whatever it is
|
|
172
|
+
* currently over.
|
|
173
|
+
*
|
|
174
|
+
* kywi-cms#134: the droppable's own index is a fixed declaration — a column's
|
|
175
|
+
* zone always says "append", an existing module's zone always says "before me".
|
|
176
|
+
* Neither reflects where the owner actually is. With a pointer position,
|
|
177
|
+
* measure the column's rendered modules instead; without one (keyboard drag, or
|
|
178
|
+
* the column isn't mounted) keep the declared index.
|
|
179
|
+
*
|
|
180
|
+
* The live drop indicator and the drop itself both go through here, so what the
|
|
181
|
+
* canvas promises mid-drag is by construction what the release delivers.
|
|
182
|
+
*
|
|
183
|
+
* @returns null when there is nothing droppable under the drag, or the thing
|
|
184
|
+
* under it isn't part of a column (a section gutter, say) — which is a
|
|
185
|
+
* no-op drop, and so also nothing to draw.
|
|
186
|
+
*/
|
|
187
|
+
export function resolvePaletteDropSlot(over, pointerY) {
|
|
188
|
+
if (!over)
|
|
189
|
+
return null;
|
|
190
|
+
const overData = over.data.current;
|
|
191
|
+
const columnId = overData?.columnId;
|
|
192
|
+
if (!columnId)
|
|
193
|
+
return null;
|
|
194
|
+
const declaredIndex = overData?.index ?? 0;
|
|
195
|
+
const index = resolveColumnDropIndexFromDocument(columnId, pointerY) ?? declaredIndex;
|
|
196
|
+
return { columnId, index };
|
|
197
|
+
}
|
|
98
198
|
/**
|
|
99
199
|
* Turn a dnd-kit `DragEndEvent`'s `active`/`over` pair into the editor action
|
|
100
200
|
* it implies, or `null` for a drop that doesn't resolve to anything (dropped
|
|
@@ -113,7 +213,7 @@ export const SECTION_TEMPLATES = [
|
|
|
113
213
|
* directly on an occupied module inserts the dragged module *before* it
|
|
114
214
|
* (pushing it down) instead of being swallowed.
|
|
115
215
|
*/
|
|
116
|
-
export function resolveDragEndAction(active, over) {
|
|
216
|
+
export function resolveDragEndAction(active, over, ctx) {
|
|
117
217
|
if (!over)
|
|
118
218
|
return null;
|
|
119
219
|
const activeData = active.data.current;
|
|
@@ -121,11 +221,23 @@ export function resolveDragEndAction(active, over) {
|
|
|
121
221
|
const source = activeData?.source;
|
|
122
222
|
if (source === 'palette') {
|
|
123
223
|
const moduleType = activeData?.moduleType;
|
|
124
|
-
const
|
|
125
|
-
|
|
126
|
-
if (!moduleType || !columnId)
|
|
224
|
+
const slot = resolvePaletteDropSlot(over, ctx?.pointerY);
|
|
225
|
+
if (!moduleType || !slot)
|
|
127
226
|
return null;
|
|
128
|
-
|
|
227
|
+
// kywi-cms#134: mint the id here (rather than in the reducer) so the
|
|
228
|
+
// caller knows the new module's id before dispatch and can auto-select
|
|
229
|
+
// it; seed props from the registry when one is supplied so the module
|
|
230
|
+
// renders visibly instead of as an empty element.
|
|
231
|
+
const moduleId = generateId();
|
|
232
|
+
const props = ctx?.registry ? seedModuleDefaults(ctx.registry, moduleType) : undefined;
|
|
233
|
+
return {
|
|
234
|
+
type: 'ADD_MODULE',
|
|
235
|
+
columnId: slot.columnId,
|
|
236
|
+
index: slot.index,
|
|
237
|
+
moduleType,
|
|
238
|
+
moduleId,
|
|
239
|
+
...(props ? { props } : {}),
|
|
240
|
+
};
|
|
129
241
|
}
|
|
130
242
|
if (source === 'canvas') {
|
|
131
243
|
const fromColumnId = activeData?.columnId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drag-utils.js","sourceRoot":"","sources":["../../../src/admin/layout-editor/drag-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"drag-utils.js","sourceRoot":"","sources":["../../../src/admin/layout-editor/drag-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor-canvas.d.ts","sourceRoot":"","sources":["../../../src/admin/layout-editor/editor-canvas.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"editor-canvas.d.ts","sourceRoot":"","sources":["../../../src/admin/layout-editor/editor-canvas.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAkBlE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAKtD,oFAAoF;AACpF,KAAK,wBAAwB,GAAG,CAC9B,WAAW,EAAE,MAAM,KAChB;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAA;AAEjG;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACnC,kDAAkD;IAClD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,8EAA8E;IAC9E,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAA;IACb,qEAAqE;IACrE,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,cAAc,GAAG,IAAI,CAAA;IAC9D,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,IAAI,CAAA;IACvD,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB;;;;OAIG;IACH,cAAc,EAAE,MAAM,IAAI,CAAA;CAC3B;AAED,UAAU,iBAAiB;IACzB,KAAK,EAAE,WAAW,CAAA;IAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;IACtC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,CAAC,CAAA;IACzH,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7C,4FAA4F;IAC5F,gBAAgB,CAAC,EAAE,wBAAwB,CAAA;IAC3C,sFAAsF;IACtF,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,wEAAwE;IACxE,UAAU,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAA;CACzC;AAykBD,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,cAAsB,EACtB,OAAe,EACf,UAAU,GACX,EAAE,iBAAiB,2CAyFnB"}
|
|
@@ -8,11 +8,13 @@ import { resolveSectionStyle } from '../../layout/theme-css.js';
|
|
|
8
8
|
import { DEFAULT_ARM_ID, armSections, isVariantContainer, resolveArmSections } from './node-lookup.js';
|
|
9
9
|
import { RegionOverlay } from './region-overlay.js';
|
|
10
10
|
import { SectionOverlay } from './section-overlay.js';
|
|
11
|
-
import { generateId } from './
|
|
11
|
+
import { generateId } from './generate-id.js';
|
|
12
12
|
import { SectionInsertLine } from './section-insert-line.js';
|
|
13
13
|
import { ColumnOverlay } from './column-overlay.js';
|
|
14
14
|
import { ColumnResizeHandle } from './column-resize-handle.js';
|
|
15
15
|
import { ModuleOverlay } from './module-overlay.js';
|
|
16
|
+
import { DropIndicator } from './drop-indicator.js';
|
|
17
|
+
import { DropTargetContext } from './drag-feedback.js';
|
|
16
18
|
import { useChromeFlip } from './use-chrome-flip.js';
|
|
17
19
|
import { ModuleEditorContext } from '../../layout/module-render-context.js';
|
|
18
20
|
/**
|
|
@@ -86,33 +88,56 @@ function DroppableColumn({ column, state, dispatch, moduleComponents, resolveCom
|
|
|
86
88
|
// even when the column already has modules. A drop directly onto an existing
|
|
87
89
|
// module is instead resolved via that module's own droppable, which carries
|
|
88
90
|
// its own columnId + index (see ModuleOverlay below / drag-utils.ts).
|
|
91
|
+
//
|
|
92
|
+
// kywi-cms#134: these declared indices are now only the *fallback*. Both are
|
|
93
|
+
// fixed guesses ("append" here, "before me" on a module) that ignore where
|
|
94
|
+
// the owner actually released, so a pointer-carrying drop instead resolves
|
|
95
|
+
// the index at drop time by measuring the column's rendered modules — which
|
|
96
|
+
// is what `data-kywi-column-drop` below marks this element for.
|
|
89
97
|
const { setNodeRef } = useDroppable({
|
|
90
98
|
id: `column-${column.id}`,
|
|
91
99
|
data: { columnId: column.id, index: column.nodes.length },
|
|
92
100
|
});
|
|
93
101
|
const moduleIds = column.nodes.map(n => n.id);
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
102
|
+
// kywi-cms#134: where the drag in flight would land, if it would land here.
|
|
103
|
+
// The hook publishes ONE target for the whole editor, so every other column
|
|
104
|
+
// draws nothing — which is the point: the owner sees a single destination.
|
|
105
|
+
const dropTarget = React.useContext(DropTargetContext);
|
|
106
|
+
const target = dropTarget?.columnId === column.id ? dropTarget : null;
|
|
107
|
+
/**
|
|
108
|
+
* The indicator for one slot boundary: before the module at `index`, or after
|
|
109
|
+
* the last module when `index === column.nodes.length`. Rendering it in the
|
|
110
|
+
* flow (rather than as an absolute overlay) is what makes it honest — the
|
|
111
|
+
* modules below really do move down, so the placeholder shows the room the
|
|
112
|
+
* dropped module will take.
|
|
113
|
+
*/
|
|
114
|
+
const indicatorAt = (index) => target && target.index === index ? (_jsx(DropIndicator, { state: target.feedback, ...(target.label ? { moduleType: target.label } : {}) })) : null;
|
|
115
|
+
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" })), _jsxs(SortableContext, { items: moduleIds, strategy: verticalListSortingStrategy, children: [column.nodes.map((node, index) => {
|
|
116
|
+
const inlineText = inlineTextBindingFor(node.id, node.type, inPlace, inlineEdit);
|
|
117
|
+
const select = () => dispatch({ type: 'SELECT', id: node.id, selectionType: 'module' });
|
|
118
|
+
// No primary text prop to bind (kywi-cms#118): double-click would
|
|
119
|
+
// otherwise be a silent no-op, so route it to the props rail instead
|
|
120
|
+
// — select the module, then focus its first field once that lands.
|
|
121
|
+
const onInlineFallback = inPlace && !inlineText && inlineEdit
|
|
122
|
+
? () => {
|
|
123
|
+
select();
|
|
124
|
+
inlineEdit.focusPropsRail();
|
|
125
|
+
}
|
|
126
|
+
: undefined;
|
|
127
|
+
// Re-key the preview after an edit session so contenteditable's DOM
|
|
128
|
+
// leftovers are replaced by a clean render from the stored props.
|
|
129
|
+
const previewKey = inlineEdit && inlineEdit.resetId === node.id ? `${node.id}:${inlineEdit.nonce}` : node.id;
|
|
130
|
+
return (_jsxs(React.Fragment, { children: [indicatorAt(index), _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, ...(onInlineFallback ? { onInlineFallback } : {}), onSelect: select, children: _jsx(ModulePreview, { node: node, moduleComponents: moduleComponents, ...(resolveComponent ? { resolveComponent } : {}) }, previewKey) })] }, node.id));
|
|
131
|
+
}), indicatorAt(column.nodes.length)] })] }));
|
|
111
132
|
// In place the column element IS the drop zone: an extra wrapper div would
|
|
112
133
|
// sit between `.kywi-column` and the module wrappers and break the site's own
|
|
113
134
|
// child selectors. In the artboard the wrapper also carries a minimum height
|
|
114
135
|
// so an empty column stays a target.
|
|
115
|
-
|
|
136
|
+
//
|
|
137
|
+
// Either way the element carrying `setNodeRef` also carries
|
|
138
|
+
// `data-kywi-column-drop` (kywi-cms#134) — in place that's the column element
|
|
139
|
+
// itself, so the id goes through `ColumnOverlay`'s `dropId`.
|
|
140
|
+
return inPlace ? (_jsx(ColumnOverlay, { columnId: column.id, width: column.width, inPlace: true, rootRef: setNodeRef, dropId: column.id, children: content })) : (_jsx(ColumnOverlay, { columnId: column.id, width: column.width, children: _jsx("div", { ref: setNodeRef, "data-kywi-column-drop": column.id, style: { minHeight: 40 }, children: content }) }));
|
|
116
141
|
}
|
|
117
142
|
// ── SectionBlock ──────────────────────────────────────────────────────────────
|
|
118
143
|
/**
|
|
@@ -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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"}
|
|
@@ -87,6 +87,19 @@ export type EditorAction = {
|
|
|
87
87
|
columnId: string;
|
|
88
88
|
index: number;
|
|
89
89
|
moduleType: string;
|
|
90
|
+
/**
|
|
91
|
+
* Caller-minted id (kywi-cms#134): palette drops mint this via
|
|
92
|
+
* `generateId()` in `resolveDragEndAction` so the id is known before
|
|
93
|
+
* dispatch, letting the caller auto-select the freshly inserted module.
|
|
94
|
+
* Falls back to a reducer-minted id when omitted.
|
|
95
|
+
*/
|
|
96
|
+
moduleId?: string;
|
|
97
|
+
/**
|
|
98
|
+
* Registry-seeded initial props (kywi-cms#134), so a freshly inserted
|
|
99
|
+
* module renders visibly instead of as a 0px-tall empty element. Falls
|
|
100
|
+
* back to `{}` when omitted.
|
|
101
|
+
*/
|
|
102
|
+
props?: Record<string, unknown>;
|
|
90
103
|
} | {
|
|
91
104
|
type: 'MOVE_MODULE';
|
|
92
105
|
fromColumnId: string;
|
|
@@ -163,6 +176,39 @@ export type EditorAction = {
|
|
|
163
176
|
type: 'UNDO';
|
|
164
177
|
} | {
|
|
165
178
|
type: 'REDO';
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Advance the "last-saved" baseline (kywi-cms#135): dispatched by both
|
|
182
|
+
* editor shells once a save call reports success, so `originalLayout`
|
|
183
|
+
* (previously set once in `createInitialState` and never updated) tracks
|
|
184
|
+
* the most recently saved document rather than the one the editor mounted
|
|
185
|
+
* with. Selection is deliberately left untouched — a save shouldn't kick
|
|
186
|
+
* the author out of whatever they were editing.
|
|
187
|
+
*
|
|
188
|
+
* `layout` is the document the shell actually handed to the save callback,
|
|
189
|
+
* captured in the handler closure, NOT whatever `state.layout` happens to be
|
|
190
|
+
* when the promise resolves. Saves are asynchronous and the canvas stays
|
|
191
|
+
* live while one is in flight: baselining `state.layout` at resolve time
|
|
192
|
+
* would adopt any edit made DURING the save as "saved", clearing `isDirty`,
|
|
193
|
+
* disabling Save, disarming the beforeunload guard, and letting the overlay's
|
|
194
|
+
* Done button exit without a confirm — discarding an edit that never reached
|
|
195
|
+
* the server.
|
|
196
|
+
*/
|
|
197
|
+
| {
|
|
198
|
+
type: 'MARK_SAVED';
|
|
199
|
+
layout: LayoutDocument;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Discard every edit since the last save (kywi-cms#135): restores `layout`
|
|
203
|
+
* to `originalLayout` and resets history/selection to the same values
|
|
204
|
+
* `createInitialState` would produce for that layout, so a revert can't be
|
|
205
|
+
* undone back into the discarded edits. `activeVariant`/`activeArms` are
|
|
206
|
+
* left alone — they're editor UI state, not document state, and jumping
|
|
207
|
+
* the author back to the default variant/arm on a Cancel would be a second,
|
|
208
|
+
* unrelated surprise on top of the layout revert.
|
|
209
|
+
*/
|
|
210
|
+
| {
|
|
211
|
+
type: 'RESET_TO_SAVED';
|
|
166
212
|
};
|
|
167
213
|
export declare function createInitialState(layout: LayoutDocument): EditorState;
|
|
168
214
|
export declare function editorReducer(state: EditorState, action: EditorAction): EditorState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor-state.d.ts","sourceRoot":"","sources":["../../../src/admin/layout-editor/editor-state.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,UAAU,EAGV,gBAAgB,EACjB,MAAM,uBAAuB,CAAA;AAc9B,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,kBAAkB,GAAG,IAAI,CAAA;AAEvF;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAA;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,sDAAsD;IACtD,IAAI,CAAC,EAAE,eAAe,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,OAAO,CAAA;IACnB,UAAU,EAAE,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAA;IACvC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,cAAc,CAAA;IACtB,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,YAAY,EAAE,aAAa,CAAA;IAC3B,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B;;;;;;;;;;;OAWG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACnC;AAED,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,aAAa,EAAE,CAAA;CAAE,GACvE;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,GACtE;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GAC/D;
|
|
1
|
+
{"version":3,"file":"editor-state.d.ts","sourceRoot":"","sources":["../../../src/admin/layout-editor/editor-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* All editor components dispatch actions through this reducer.
|
|
5
5
|
*/
|
|
6
6
|
import { isLayoutSection } from '../../layout/types.js';
|
|
7
|
-
import { generateId } from './
|
|
7
|
+
import { generateId } from './generate-id.js';
|
|
8
8
|
import { cloneSection } from './component-actions.js';
|
|
9
9
|
import { armSections, findColumnIn, findModuleIn, findSectionIn, findVariantContainerIn, } from './node-lookup.js';
|
|
10
10
|
// ── Helpers (internal) ───────────────────────────────────────────
|
|
@@ -190,6 +190,27 @@ export function editorReducer(state, action) {
|
|
|
190
190
|
selectedType: null,
|
|
191
191
|
};
|
|
192
192
|
}
|
|
193
|
+
case 'MARK_SAVED':
|
|
194
|
+
return {
|
|
195
|
+
...state,
|
|
196
|
+
originalLayout: action.layout,
|
|
197
|
+
// Reference equality is the honest test here: every layout-mutating
|
|
198
|
+
// case builds a NEW document object rather than mutating in place, so
|
|
199
|
+
// `state.layout === action.layout` holds exactly when nothing was
|
|
200
|
+
// edited while the save was in flight. If it doesn't hold, an edit
|
|
201
|
+
// landed mid-save and is still unsaved — `isDirty` must stay true.
|
|
202
|
+
isDirty: state.layout !== action.layout,
|
|
203
|
+
};
|
|
204
|
+
case 'RESET_TO_SAVED':
|
|
205
|
+
return {
|
|
206
|
+
...state,
|
|
207
|
+
layout: state.originalLayout,
|
|
208
|
+
history: [state.originalLayout],
|
|
209
|
+
historyIndex: 0,
|
|
210
|
+
isDirty: false,
|
|
211
|
+
selectedId: null,
|
|
212
|
+
selectedType: null,
|
|
213
|
+
};
|
|
193
214
|
// ── Layout-mutating actions ──────────────────────────────────
|
|
194
215
|
case 'ADD_PAGE_VARIANT': {
|
|
195
216
|
// Seed the new page variant from the default regions so the author starts
|
|
@@ -358,10 +379,10 @@ export function editorReducer(state, action) {
|
|
|
358
379
|
}
|
|
359
380
|
const col = found.column;
|
|
360
381
|
const newModule = {
|
|
361
|
-
id: generateId(),
|
|
382
|
+
id: action.moduleId ?? generateId(),
|
|
362
383
|
type: action.moduleType,
|
|
363
384
|
instanceId: generateId(),
|
|
364
|
-
props: {},
|
|
385
|
+
props: action.props ? { ...action.props } : {},
|
|
365
386
|
style: {},
|
|
366
387
|
};
|
|
367
388
|
const newNodes = [...col.nodes];
|