@kywi-software/core 0.6.2 → 0.6.4

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 (85) hide show
  1. package/AGENT-PATTERNS.md +221 -16
  2. package/README.md +23 -5
  3. package/dist/admin/layout-editor/column-overlay.d.ts +14 -1
  4. package/dist/admin/layout-editor/column-overlay.d.ts.map +1 -1
  5. package/dist/admin/layout-editor/column-overlay.js +5 -2
  6. package/dist/admin/layout-editor/column-overlay.js.map +1 -1
  7. package/dist/admin/layout-editor/editor-canvas.d.ts +34 -1
  8. package/dist/admin/layout-editor/editor-canvas.d.ts.map +1 -1
  9. package/dist/admin/layout-editor/editor-canvas.js +156 -16
  10. package/dist/admin/layout-editor/editor-canvas.js.map +1 -1
  11. package/dist/admin/layout-editor/editor-state.d.ts +57 -2
  12. package/dist/admin/layout-editor/editor-state.d.ts.map +1 -1
  13. package/dist/admin/layout-editor/editor-state.js +125 -53
  14. package/dist/admin/layout-editor/editor-state.js.map +1 -1
  15. package/dist/admin/layout-editor/editor.css +487 -44
  16. package/dist/admin/layout-editor/index.d.ts +1 -1
  17. package/dist/admin/layout-editor/index.d.ts.map +1 -1
  18. package/dist/admin/layout-editor/index.js.map +1 -1
  19. package/dist/admin/layout-editor/inline-text.d.ts +44 -0
  20. package/dist/admin/layout-editor/inline-text.d.ts.map +1 -0
  21. package/dist/admin/layout-editor/inline-text.js +67 -0
  22. package/dist/admin/layout-editor/inline-text.js.map +1 -0
  23. package/dist/admin/layout-editor/layout-editor.d.ts.map +1 -1
  24. package/dist/admin/layout-editor/layout-editor.js +23 -31
  25. package/dist/admin/layout-editor/layout-editor.js.map +1 -1
  26. package/dist/admin/layout-editor/module-overlay.d.ts +32 -1
  27. package/dist/admin/layout-editor/module-overlay.d.ts.map +1 -1
  28. package/dist/admin/layout-editor/module-overlay.js +108 -6
  29. package/dist/admin/layout-editor/module-overlay.js.map +1 -1
  30. package/dist/admin/layout-editor/node-lookup.d.ts +94 -0
  31. package/dist/admin/layout-editor/node-lookup.d.ts.map +1 -0
  32. package/dist/admin/layout-editor/node-lookup.js +142 -0
  33. package/dist/admin/layout-editor/node-lookup.js.map +1 -0
  34. package/dist/admin/layout-editor/overlay-shell.d.ts +19 -1
  35. package/dist/admin/layout-editor/overlay-shell.d.ts.map +1 -1
  36. package/dist/admin/layout-editor/overlay-shell.js +177 -69
  37. package/dist/admin/layout-editor/overlay-shell.js.map +1 -1
  38. package/dist/admin/layout-editor/props-panel.d.ts +9 -2
  39. package/dist/admin/layout-editor/props-panel.d.ts.map +1 -1
  40. package/dist/admin/layout-editor/props-panel.js +13 -5
  41. package/dist/admin/layout-editor/props-panel.js.map +1 -1
  42. package/dist/admin/layout-editor/region-overlay.d.ts +8 -1
  43. package/dist/admin/layout-editor/region-overlay.d.ts.map +1 -1
  44. package/dist/admin/layout-editor/region-overlay.js +4 -1
  45. package/dist/admin/layout-editor/region-overlay.js.map +1 -1
  46. package/dist/admin/layout-editor/section-insert-line.d.ts +7 -1
  47. package/dist/admin/layout-editor/section-insert-line.d.ts.map +1 -1
  48. package/dist/admin/layout-editor/section-insert-line.js +4 -1
  49. package/dist/admin/layout-editor/section-insert-line.js.map +1 -1
  50. package/dist/admin/layout-editor/section-overlay.d.ts +13 -1
  51. package/dist/admin/layout-editor/section-overlay.d.ts.map +1 -1
  52. package/dist/admin/layout-editor/section-overlay.js +24 -12
  53. package/dist/admin/layout-editor/section-overlay.js.map +1 -1
  54. package/dist/admin/layout-editor/section-variant-container-config.d.ts +29 -0
  55. package/dist/admin/layout-editor/section-variant-container-config.d.ts.map +1 -0
  56. package/dist/admin/layout-editor/section-variant-container-config.js +82 -0
  57. package/dist/admin/layout-editor/section-variant-container-config.js.map +1 -0
  58. package/dist/admin/styles/admin.css +5 -2
  59. package/dist/admin/surfaces/content/content-edit.d.ts.map +1 -1
  60. package/dist/admin/surfaces/content/content-edit.js +8 -1
  61. package/dist/admin/surfaces/content/content-edit.js.map +1 -1
  62. package/dist/db/content-queries.d.ts +35 -0
  63. package/dist/db/content-queries.d.ts.map +1 -1
  64. package/dist/db/content-queries.js +175 -36
  65. package/dist/db/content-queries.js.map +1 -1
  66. package/dist/layout/registry.d.ts +8 -1
  67. package/dist/layout/registry.d.ts.map +1 -1
  68. package/dist/layout/registry.js +8 -1
  69. package/dist/layout/registry.js.map +1 -1
  70. package/dist/nav/index.d.ts +1 -1
  71. package/dist/nav/index.d.ts.map +1 -1
  72. package/dist/nav/index.js +4 -1
  73. package/dist/nav/index.js.map +1 -1
  74. package/dist/nav/url-resolver.d.ts +27 -0
  75. package/dist/nav/url-resolver.d.ts.map +1 -1
  76. package/dist/nav/url-resolver.js +36 -1
  77. package/dist/nav/url-resolver.js.map +1 -1
  78. package/dist/scope/edit-mode-hooks.d.ts.map +1 -1
  79. package/dist/scope/edit-mode-hooks.js +27 -1
  80. package/dist/scope/edit-mode-hooks.js.map +1 -1
  81. package/dist/scope/inline-editing.d.ts.map +1 -1
  82. package/dist/scope/inline-editing.js +2 -1
  83. package/dist/scope/inline-editing.js.map +1 -1
  84. package/dist/site/styles.css +147 -4
  85. package/package.json +1 -1
@@ -0,0 +1,67 @@
1
+ /**
2
+ * inline-text.ts
3
+ * Which modules can be text-edited directly on the page, and how to read the
4
+ * edited value back out of the DOM (kywi-cms#94).
5
+ *
6
+ * The front-of-site editor makes a text-bearing module's own rendered element
7
+ * `contenteditable` — the real `<h2>`, `<p>` or rich-text `<div>` the visitor
8
+ * sees, with the site's real styling — instead of swapping it for an input.
9
+ * Committing writes the SAME prop the props panel writes, through the SAME
10
+ * `UPDATE_PROPS` action, so there is one save path and undo/redo just work.
11
+ */
12
+ import { sanitizeHtml } from '../../util/sanitize.js';
13
+ /** Prop types that hold editable copy. */
14
+ const TEXT_PROP_TYPES = new Set(['text', 'textarea', 'richText']);
15
+ /**
16
+ * Modules whose first prop happens to be text-typed but must never be edited by
17
+ * typing on the page: `html`'s `code` prop is a raw-HTML escape hatch (admin
18
+ * only, see ADMIN_ONLY_MODULE_TYPES) where contenteditable would mangle the
19
+ * source the author is deliberately hand-writing.
20
+ */
21
+ const NOT_INLINE_EDITABLE = new Set(['html']);
22
+ /**
23
+ * The module's *primary* text prop, or null when it has none.
24
+ *
25
+ * Deliberately only the FIRST declared prop: that is the module's headline
26
+ * content by convention across the registry (heading → `text`, richText →
27
+ * `content`, button → `label`), and it keeps a module like `image` — whose
28
+ * first prop is the image itself and whose `alt` is a text prop further down —
29
+ * out of inline editing, where typing over the picture would be nonsense.
30
+ */
31
+ export function resolveInlineTextProp(config) {
32
+ if (!config)
33
+ return null;
34
+ if (NOT_INLINE_EDITABLE.has(config.name))
35
+ return null;
36
+ const entries = Object.entries(config.props ?? {});
37
+ const first = entries[0];
38
+ if (!first)
39
+ return null;
40
+ const [name, definition] = first;
41
+ if (!TEXT_PROP_TYPES.has(definition.type))
42
+ return null;
43
+ return { name, html: definition.type === 'richText' };
44
+ }
45
+ /**
46
+ * Read the edited value back out of an editing host.
47
+ *
48
+ * The host is the module's wrapper element, which also carries the editor's own
49
+ * floating chrome (type chip, action cluster). Chrome is marked with
50
+ * `data-kywi-editor-chrome` and skipped, so the value comes from the module's
51
+ * own rendered element — `innerHTML` for a rich-text prop, `textContent` for a
52
+ * plain one.
53
+ *
54
+ * HTML values are put through the same `sanitizeHtml` the renderer applies, so
55
+ * what is stored is exactly what will render — contenteditable cannot smuggle a
56
+ * shape the public page would strip anyway.
57
+ */
58
+ export function readInlineTextValue(host, html) {
59
+ const content = Array.from(host.children).find((el) => !el.hasAttribute('data-kywi-editor-chrome'));
60
+ const target = content ?? host;
61
+ if (html)
62
+ return sanitizeHtml(target.innerHTML);
63
+ // contenteditable leaves non-breaking spaces behind where the browser padded
64
+ // the line; normalise them so a round-trip through the props panel matches.
65
+ return (target.textContent ?? '').replace(/\u00a0/g, ' ').trim();
66
+ }
67
+ //# sourceMappingURL=inline-text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inline-text.js","sourceRoot":"","sources":["../../../src/admin/layout-editor/inline-text.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAUrD,0CAA0C;AAC1C,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAA;AAEjE;;;;;GAKG;AACH,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;AAE7C;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAuC;IAC3E,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IACxB,IAAI,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IACrD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAA0C,CAAA;IAC3F,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IACxB,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IACvB,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,KAAK,CAAA;IAChC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IACtD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE,CAAA;AACvD,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAiB,EAAE,IAAa;IAClE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC5C,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,yBAAyB,CAAC,CACzB,CAAA;IAC5B,MAAM,MAAM,GAAG,OAAO,IAAI,IAAI,CAAA;IAC9B,IAAI,IAAI;QAAE,OAAO,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAC/C,6EAA6E;IAC7E,4EAA4E;IAC5E,OAAO,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;AAClE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"layout-editor.d.ts","sourceRoot":"","sources":["../../../src/admin/layout-editor/layout-editor.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+D,MAAM,OAAO,CAAA;AAUnF,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,uBAAuB,CAAA;AAE1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAY9D,OAAO,cAAc,CAAA;AAarB,UAAU,iBAAiB;IACzB,aAAa,EAAE,cAAc,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,cAAc,CAAA;IAC9B,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,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAA;IACzC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB;0EACsE;IACtE,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC/C;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAA;IAC3C,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAqCD,wBAAgB,YAAY,CAAC,EAC3B,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,MAAM,EACN,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,QAAQ,GACT,EAAE,iBAAiB,2CAwTnB"}
1
+ {"version":3,"file":"layout-editor.d.ts","sourceRoot":"","sources":["../../../src/admin/layout-editor/layout-editor.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+D,MAAM,OAAO,CAAA;AAUnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAiB9D,OAAO,cAAc,CAAA;AAarB,UAAU,iBAAiB;IACzB,aAAa,EAAE,cAAc,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,cAAc,CAAA;IAC9B,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,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAA;IACzC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB;0EACsE;IACtE,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC/C;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAA;IAC3C,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAYD,wBAAgB,YAAY,CAAC,EAC3B,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,MAAM,EACN,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,QAAQ,GACT,EAAE,iBAAiB,2CA6UnB"}
@@ -2,8 +2,8 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useReducer, useState, useCallback, useEffect, useRef } from 'react';
4
4
  import { DndContext, PointerSensor, KeyboardSensor, useSensors, useSensor, closestCenter, } from '@dnd-kit/core';
5
- import { isLayoutSection } from '../../layout/types.js';
6
5
  import { editorReducer, createInitialState } from './editor-state.js';
6
+ import { findModuleInDocument, findSectionInDocument, findVariantContainerInDocument, } from './node-lookup.js';
7
7
  import { resolveDragEndAction } from './drag-utils.js';
8
8
  import { EditorToolbar } from './editor-toolbar.js';
9
9
  import { ModulePalette } from './module-palette.js';
@@ -14,35 +14,11 @@ import { adminFetch } from '../../host-client/index.js';
14
14
  import { saveAsComponent, detachModuleFromComponent, detachSectionFromComponent, resolveComponentDefinition } from './component-actions.js';
15
15
  import './editor.css';
16
16
  // ── Helpers ───────────────────────────────────────────────────────────────────
17
- /**
18
- * Walk regions > sections > columns > nodes to find a module by ID.
19
- * Returns the ModuleNode or null.
20
- */
21
- function findModuleById(layout, moduleId) {
22
- for (const sections of Object.values(layout.regions)) {
23
- for (const section of sections) {
24
- if (!isLayoutSection(section))
25
- continue;
26
- for (const column of section.columns) {
27
- for (const node of column.nodes) {
28
- if (node.id === moduleId)
29
- return node;
30
- }
31
- }
32
- }
33
- }
34
- return null;
35
- }
36
- /** Find a top-level LayoutSection by id across all regions (kywi-cms#69). */
37
- function findSectionById(layout, sectionId) {
38
- for (const sections of Object.values(layout.regions)) {
39
- for (const section of sections) {
40
- if (isLayoutSection(section) && section.id === sectionId)
41
- return section;
42
- }
43
- }
44
- return null;
45
- }
17
+ // Selection lookups are arm-aware (kywi-cms#92): a module or section living
18
+ // inside a section-level variant container's arm resolves like any other, so
19
+ // props editing works on everything the canvas now renders.
20
+ const findModuleById = findModuleInDocument;
21
+ const findSectionById = findSectionInDocument;
46
22
  // ── Component ─────────────────────────────────────────────────────────────────
47
23
  export function LayoutEditor({ initialLayout, moduleRegistry, moduleComponents, onSave, onCancel, audiences, onChange, userRole, }) {
48
24
  const [state, dispatch] = useReducer(editorReducer, initialLayout, createInitialState);
@@ -241,6 +217,18 @@ export function LayoutEditor({ initialLayout, moduleRegistry, moduleComponents,
241
217
  if (state.selectedId)
242
218
  dispatch({ type: 'REMOVE_SECTION', sectionId: state.selectedId });
243
219
  }, [state.selectedId]);
220
+ // ── Section-level variant containers (kywi-cms#92) ────────────────────────
221
+ const handleUpdateVariantContainer = useCallback((patch) => {
222
+ if (state.selectedId) {
223
+ dispatch({ type: 'UPDATE_VARIANT_CONTAINER', containerId: state.selectedId, patch });
224
+ }
225
+ }, [state.selectedId]);
226
+ const handleDeleteVariantContainer = useCallback(() => {
227
+ if (!state.selectedId)
228
+ return;
229
+ dispatch({ type: 'REMOVE_VARIANT_CONTAINER', containerId: state.selectedId });
230
+ dispatch({ type: 'DESELECT' });
231
+ }, [state.selectedId]);
244
232
  // Module-type components offered by the props-panel picker.
245
233
  const componentOptions = components.map(c => ({ id: c.id, name: c.name, moduleType: c.moduleType }));
246
234
  // Section-type components, for the linked-badge label.
@@ -255,13 +243,17 @@ export function LayoutEditor({ initialLayout, moduleRegistry, moduleComponents,
255
243
  const selectedSection = state.selectedType === 'section' && state.selectedId
256
244
  ? findSectionById(state.layout, state.selectedId)
257
245
  : null;
246
+ // A section-level variant container is selected via its canvas block (#92).
247
+ const selectedVariantContainer = state.selectedType === 'variantContainer' && state.selectedId
248
+ ? findVariantContainerInDocument(state.layout, state.selectedId)
249
+ : null;
258
250
  return (_jsxs(DndContext, { sensors: sensors, collisionDetection: closestCenter, onDragEnd: handleDragEnd, children: [_jsxs("div", { className: "kywi-editor-root", children: [_jsx(EditorToolbar, { state: state, dispatch: dispatch, ...(audiences ? { audiences } : {}), onSave: handleSave, onCancel: handleCancel, onAddSection: () => {
259
251
  setTemplateRegion(Object.keys(state.layout.regions)[0] ?? 'main');
260
252
  setShowTemplatePicker(true);
261
253
  } }), _jsxs("div", { className: "kywi-editor-body", children: [_jsx(ModulePalette, { modules: moduleRegistry.list(), ...(userRole ? { userRole } : {}) }), _jsx("div", { className: "kywi-editor-canvas", children: _jsx(EditorCanvas, { state: state, dispatch: dispatch, moduleComponents: moduleComponents, onInsertSection: handleInsertSection, resolveComponent: resolveComponent }) }), _jsx(PropsPanel, { module: selectedModule, moduleConfig: selectedConfig, ...(audiences ? { audiences } : {}), components: componentOptions, onUpdateProps: (props) => dispatch({ type: 'UPDATE_PROPS', moduleId: state.selectedId, props }), onUpdateStyle: (style) => dispatch({ type: 'UPDATE_STYLE', moduleId: state.selectedId, style }), onDelete: () => dispatch({ type: 'REMOVE_MODULE', moduleId: state.selectedId }), onSaveAsComponent: handleSaveAsComponent, onLinkComponent: (componentId) => {
262
254
  if (state.selectedId)
263
255
  linkModule(state.selectedId, componentId);
264
- }, onDetach: handleDetach, section: selectedSection, sectionComponents: sectionComponentOptions, onSaveSectionAsComponent: handleSaveSectionAsComponent, onDetachSection: handleDetachSection, onDeleteSection: handleDeleteSection, onClose: () => dispatch({ type: 'DESELECT' }) })] })] }), showTemplatePicker && (_jsx(SectionTemplatePicker, { onSelect: (columns) => {
256
+ }, onDetach: handleDetach, section: selectedSection, sectionComponents: sectionComponentOptions, onSaveSectionAsComponent: handleSaveSectionAsComponent, onDetachSection: handleDetachSection, onDeleteSection: handleDeleteSection, variantContainer: selectedVariantContainer, onUpdateVariantContainer: handleUpdateVariantContainer, onDeleteVariantContainer: handleDeleteVariantContainer, onClose: () => dispatch({ type: 'DESELECT' }) })] })] }), showTemplatePicker && (_jsx(SectionTemplatePicker, { onSelect: (columns) => {
265
257
  if (templateRegion) {
266
258
  dispatch({ type: 'ADD_SECTION', regionName: templateRegion, columns });
267
259
  }
@@ -1 +1 @@
1
- {"version":3,"file":"layout-editor.js","sourceRoot":"","sources":["../../../src/admin/layout-editor/layout-editor.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layout-editor.js","sourceRoot":"","sources":["../../../src/admin/layout-editor/layout-editor.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,24 @@
1
1
  import React from 'react';
2
2
  import type { OverlayAction } from './section-overlay.js';
3
+ /**
4
+ * Inline text editing for one module (kywi-cms#94). The overlay makes its own
5
+ * wrapper — which contains the module's real rendered element — contenteditable
6
+ * so the owner types on the page, in the page's styling. Commit reads the value
7
+ * back out of the DOM (see `readInlineTextValue`); the parent turns that into an
8
+ * `UPDATE_PROPS` dispatch, so the edit goes through history like any other.
9
+ */
10
+ export interface InlineTextBinding {
11
+ /** True while THIS module is the one being text-edited. */
12
+ active: boolean;
13
+ /** Whether the bound prop holds HTML (Enter inserts a line break instead of committing). */
14
+ html: boolean;
15
+ /** Begin editing (double-click, or a click on an already-selected module). */
16
+ onActivate: () => void;
17
+ /** Commit the value currently in `host` and end the edit. */
18
+ onCommit: (host: HTMLElement) => void;
19
+ /** Abandon the edit and end it, leaving the stored props untouched. */
20
+ onCancel: () => void;
21
+ }
3
22
  interface ModuleOverlayProps {
4
23
  moduleId: string;
5
24
  instanceId: string;
@@ -17,8 +36,20 @@ interface ModuleOverlayProps {
17
36
  actions?: OverlayAction[];
18
37
  /** Human-readable module type shown in the corner chip on hover/selection. */
19
38
  typeLabel?: string;
39
+ /**
40
+ * In-place (front-of-site) mode: emit the PUBLIC renderer's module wrapper —
41
+ * `.kywi-module-wrapper .kywi-module--{type}` + `data-kywi-module` /
42
+ * `data-instance-id` — so the site's own CSS styles the module exactly as it
43
+ * does when nobody is editing, and float the chrome instead of insetting it
44
+ * (kywi-cms#94).
45
+ */
46
+ inPlace?: boolean;
47
+ /** Module type, used for the public wrapper's BEM class + data hook in in-place mode. */
48
+ moduleType?: string;
49
+ /** Inline text editing binding, when this module carries a primary text prop. */
50
+ inlineText?: InlineTextBinding | null;
20
51
  children: React.ReactNode;
21
52
  }
22
- export declare function ModuleOverlay({ moduleId, instanceId, columnId, index, isSelected, onSelect, actions, typeLabel, children, }: ModuleOverlayProps): import("react/jsx-runtime").JSX.Element;
53
+ export declare function ModuleOverlay({ moduleId, instanceId, columnId, index, isSelected, onSelect, actions, typeLabel, inPlace, moduleType, inlineText, children, }: ModuleOverlayProps): import("react/jsx-runtime").JSX.Element;
23
54
  export {};
24
55
  //# sourceMappingURL=module-overlay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"module-overlay.d.ts","sourceRoot":"","sources":["../../../src/admin/layout-editor/module-overlay.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAGzD,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB;;;;;sDAKkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,OAAO,CAAC,EAAE,aAAa,EAAE,CAAA;IACzB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B;AAED,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,KAAK,EACL,UAAU,EACV,QAAQ,EACR,OAAO,EACP,SAAS,EACT,QAAQ,GACT,EAAE,kBAAkB,2CAuDpB"}
1
+ {"version":3,"file":"module-overlay.d.ts","sourceRoot":"","sources":["../../../src/admin/layout-editor/module-overlay.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAGzD;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,MAAM,EAAE,OAAO,CAAA;IACf,4FAA4F;IAC5F,IAAI,EAAE,OAAO,CAAA;IACb,8EAA8E;IAC9E,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,6DAA6D;IAC7D,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAA;IACrC,uEAAuE;IACvE,QAAQ,EAAE,MAAM,IAAI,CAAA;CACrB;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB;;;;;sDAKkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,OAAO,CAAC,EAAE,aAAa,EAAE,CAAA;IACzB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,iFAAiF;IACjF,UAAU,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAA;IACrC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B;AAED,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,KAAK,EACL,UAAU,EACV,QAAQ,EACR,OAAO,EACP,SAAS,EACT,OAAe,EACf,UAAU,EACV,UAAU,EACV,QAAQ,GACT,EAAE,kBAAkB,2CAqLpB"}
@@ -1,23 +1,125 @@
1
1
  'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import React from 'react';
3
4
  import { useSortable } from '@dnd-kit/sortable';
4
5
  import { CSS } from '@dnd-kit/utilities';
5
6
  import { EditorIcon } from './editor-icons.js';
6
- export function ModuleOverlay({ moduleId, instanceId, columnId, index, isSelected, onSelect, actions, typeLabel, children, }) {
7
+ export function ModuleOverlay({ moduleId, instanceId, columnId, index, isSelected, onSelect, actions, typeLabel, inPlace = false, moduleType, inlineText, children, }) {
7
8
  const { attributes, listeners, setNodeRef, transform, transition } = useSortable({
8
9
  id: moduleId,
9
10
  data: { source: 'canvas', moduleId, instanceId, columnId, index },
10
11
  });
12
+ const hostRef = React.useRef(null);
13
+ // Escape must not commit: turning contenteditable off blurs the host, and the
14
+ // blur handler would otherwise save the very edit the owner just abandoned.
15
+ const cancellingRef = React.useRef(false);
16
+ const setRefs = React.useCallback((node) => {
17
+ hostRef.current = node;
18
+ setNodeRef(node);
19
+ }, [setNodeRef]);
20
+ const isEditing = Boolean(inlineText?.active);
21
+ // Focus the editing host and drop the caret at the end of the text, so typing
22
+ // continues the copy rather than replacing it.
23
+ React.useEffect(() => {
24
+ if (!isEditing)
25
+ return;
26
+ const host = hostRef.current;
27
+ if (!host)
28
+ return;
29
+ cancellingRef.current = false;
30
+ host.focus();
31
+ const selection = window.getSelection?.();
32
+ if (selection && typeof document.createRange === 'function') {
33
+ const range = document.createRange();
34
+ range.selectNodeContents(host);
35
+ range.collapse(false);
36
+ selection.removeAllRanges();
37
+ selection.addRange(range);
38
+ }
39
+ }, [isEditing]);
11
40
  const style = {
12
41
  transform: CSS.Transform.toString(transform),
13
42
  transition,
14
43
  };
15
- return (_jsxs("div", { ref: setNodeRef, className: `kywi-editor-module${isSelected ? ' kywi-editor-module--selected' : ''}`, style: style, onClick: (e) => {
44
+ function handleClick(e) {
45
+ e.stopPropagation();
46
+ // On the real page a module's own links and buttons are live. Clicking one
47
+ // while editing would navigate away mid-edit, so in-place clicks select
48
+ // instead of following the link (kywi-cms#94).
49
+ if (inPlace)
50
+ e.preventDefault();
51
+ if (isEditing)
52
+ return;
53
+ // A click on an already-selected, text-bearing module starts typing —
54
+ // the second click of the "select, then edit" pattern (kywi-cms#94).
55
+ if (inlineText && isSelected) {
56
+ inlineText.onActivate();
57
+ return;
58
+ }
59
+ onSelect();
60
+ }
61
+ function handleDoubleClick(e) {
62
+ if (!inlineText || isEditing)
63
+ return;
64
+ e.stopPropagation();
65
+ inlineText.onActivate();
66
+ }
67
+ function handleKeyDown(e) {
68
+ if (!isEditing || !inlineText)
69
+ return;
70
+ if (e.key === 'Escape') {
71
+ // Handled here rather than at the window: stopping propagation keeps the
72
+ // shell's Escape handler (deselect) from also firing for the same press.
73
+ e.preventDefault();
16
74
  e.stopPropagation();
17
- onSelect();
18
- }, "data-module-id": moduleId, ...attributes, children: [typeLabel && _jsx("span", { className: "kywi-editor-module-type-chip", children: typeLabel }), _jsxs("div", { className: "kywi-editor-module-actions", children: [_jsx("button", { type: "button", className: "kywi-editor-module-action-btn kywi-editor-module-drag-handle", "aria-label": "Drag to reorder", title: "Drag to reorder", ...listeners, children: _jsx(EditorIcon, { name: "grip", size: 14 }) }), actions?.map((action, i) => (_jsx("button", { type: "button", className: "kywi-editor-module-action-btn", onClick: (e) => {
75
+ cancellingRef.current = true;
76
+ inlineText.onCancel();
77
+ return;
78
+ }
79
+ if (e.key === 'Enter' && !e.shiftKey && !inlineText.html) {
80
+ // A plain-text prop is a single line — Enter means "done", not a newline.
81
+ e.preventDefault();
82
+ e.stopPropagation();
83
+ inlineText.onCommit(e.currentTarget);
84
+ }
85
+ }
86
+ function handleBlur(e) {
87
+ if (!isEditing || !inlineText)
88
+ return;
89
+ // Focus moving to a child (an action button) is not leaving the edit.
90
+ if (e.relatedTarget && e.currentTarget.contains(e.relatedTarget))
91
+ return;
92
+ if (cancellingRef.current) {
93
+ cancellingRef.current = false;
94
+ return;
95
+ }
96
+ inlineText.onCommit(e.currentTarget);
97
+ }
98
+ const editingProps = inlineText
99
+ ? {
100
+ onDoubleClick: handleDoubleClick,
101
+ onKeyDown: handleKeyDown,
102
+ onBlur: handleBlur,
103
+ ...(isEditing
104
+ ? { contentEditable: true, suppressContentEditableWarning: true, spellCheck: true }
105
+ : {}),
106
+ }
107
+ : {};
108
+ const chrome = (_jsxs(_Fragment, { children: [typeLabel && (_jsx("span", { className: inPlace ? 'kywi-ip-chip' : 'kywi-editor-module-type-chip', "data-kywi-editor-chrome": "", contentEditable: false, children: typeLabel })), _jsxs("div", { className: inPlace ? 'kywi-ip-chrome kywi-ip-module-actions' : 'kywi-editor-module-actions', "data-kywi-editor-chrome": "", contentEditable: false, children: [_jsx("button", { type: "button", className: "kywi-editor-module-action-btn kywi-editor-module-drag-handle", "aria-label": "Drag to reorder", title: "Drag to reorder", ...listeners, children: _jsx(EditorIcon, { name: "grip", size: 14 }) }), actions?.map((action, i) => (_jsx("button", { type: "button", className: "kywi-editor-module-action-btn", onClick: (e) => {
19
109
  e.stopPropagation();
20
110
  action.onClick();
21
- }, title: action.label, children: action.icon }, i)))] }), children] }));
111
+ }, title: action.label, children: action.icon }, i)))] })] }));
112
+ const className = inPlace
113
+ ? [
114
+ 'kywi-module-wrapper',
115
+ moduleType ? `kywi-module--${moduleType}` : null,
116
+ 'kywi-ip-module',
117
+ isSelected ? 'kywi-ip-module--selected' : null,
118
+ isEditing ? 'kywi-ip-module--editing' : null,
119
+ ]
120
+ .filter(Boolean)
121
+ .join(' ')
122
+ : `kywi-editor-module${isSelected ? ' kywi-editor-module--selected' : ''}`;
123
+ return (_jsxs("div", { ref: setRefs, className: className, style: style, onClick: handleClick, "data-module-id": moduleId, ...(inPlace ? { 'data-instance-id': instanceId } : {}), ...(inPlace && moduleType ? { 'data-kywi-module': moduleType } : {}), ...attributes, ...editingProps, children: [chrome, children] }));
22
124
  }
23
125
  //# sourceMappingURL=module-overlay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"module-overlay.js","sourceRoot":"","sources":["../../../src/admin/layout-editor/module-overlay.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAA;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAsB9C,MAAM,UAAU,aAAa,CAAC,EAC5B,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,KAAK,EACL,UAAU,EACV,QAAQ,EACR,OAAO,EACP,SAAS,EACT,QAAQ,GACW;IACnB,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC;QAC/E,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE;KAClE,CAAC,CAAA;IAEF,MAAM,KAAK,GAAG;QACZ,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC5C,UAAU;KACX,CAAA;IAED,OAAO,CACL,eACE,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,qBAAqB,UAAU,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,EAAE,EAAE,EACnF,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACb,CAAC,CAAC,eAAe,EAAE,CAAA;YACnB,QAAQ,EAAE,CAAA;QACZ,CAAC,oBACe,QAAQ,KACpB,UAAU,aAEb,SAAS,IAAI,eAAM,SAAS,EAAC,8BAA8B,YAAE,SAAS,GAAQ,EAC/E,eAAK,SAAS,EAAC,4BAA4B,aAIzC,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,8DAA8D,gBAC7D,iBAAiB,EAC5B,KAAK,EAAC,iBAAiB,KACnB,SAAS,YAEb,KAAC,UAAU,IAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAE,EAAE,GAAI,GAC7B,EACR,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAC3B,iBAEE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,+BAA+B,EACzC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;4BACb,CAAC,CAAC,eAAe,EAAE,CAAA;4BACnB,MAAM,CAAC,OAAO,EAAE,CAAA;wBAClB,CAAC,EACD,KAAK,EAAE,MAAM,CAAC,KAAK,YAElB,MAAM,CAAC,IAAI,IATP,CAAC,CAUC,CACV,CAAC,IACE,EACL,QAAQ,IACL,CACP,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"module-overlay.js","sourceRoot":"","sources":["../../../src/admin/layout-editor/module-overlay.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * node-lookup.ts
3
+ * Arm-aware traversal for the layout editor (kywi-cms#92).
4
+ *
5
+ * A region's node array holds `LayoutSection`s *and* `VariantContainer`s. A
6
+ * container is not a leaf: it owns a Default arm (`defaultSections`) plus one
7
+ * arm per `VariantEntry` (`variants[].sections`), and every one of those arms
8
+ * holds ordinary sections. Editor lookups used to stop at the top level, which
9
+ * is exactly why section-level personalized / A-B'd content (typically the
10
+ * hero) was invisible and uneditable in the canvas.
11
+ *
12
+ * Everything here walks the same shape as the renderer
13
+ * (`VariantContainerRenderer`) and `layout/module-permissions.ts`: region nodes
14
+ * → container arms → sections → columns → modules.
15
+ */
16
+ import type { LayoutColumn, LayoutDocument, LayoutSection, ModuleNode, RegionNode, VariantContainer } from '../../layout/types.js';
17
+ /**
18
+ * Arm id standing for a container's Default arm. Real arms are keyed by their
19
+ * `VariantEntry.id`, so a reserved literal keeps "which arm is open" a single
20
+ * `string` rather than `string | null` everywhere it is stored or compared.
21
+ * The renderer uses the same word for its `data-variant` attribute.
22
+ */
23
+ export declare const DEFAULT_ARM_ID = "default";
24
+ /** Narrow a RegionNode to a VariantContainer (mirrors `isLayoutSection`). */
25
+ export declare function isVariantContainer(node: RegionNode): node is VariantContainer;
26
+ /**
27
+ * One array that directly holds `LayoutSection`s, plus enough context to know
28
+ * where it sits in the document.
29
+ *
30
+ * `siblings` is typed `RegionNode[]` so callers can splice/index it uniformly
31
+ * whether it is a region's own node array or a container arm. A container arm
32
+ * is really a `LayoutSection[]` widened by TypeScript's (unsound) array
33
+ * covariance — so callers may insert `LayoutSection`s into `siblings`, but must
34
+ * never insert a `VariantContainer` (containers do not nest).
35
+ */
36
+ export interface SectionHolder {
37
+ regionName: string;
38
+ /** The region's own top-level node array. */
39
+ region: RegionNode[];
40
+ /** The array directly containing the sections of this holder. */
41
+ siblings: RegionNode[];
42
+ /** The variant container that owns this arm, or null for the region itself. */
43
+ container: VariantContainer | null;
44
+ /** `DEFAULT_ARM_ID`, a `VariantEntry.id`, or null when this is the region. */
45
+ armId: string | null;
46
+ }
47
+ /**
48
+ * Every section-holding array in a regions map, in document order: each
49
+ * region's own node list first, then each variant container's Default arm and
50
+ * variant arms.
51
+ */
52
+ export declare function iterSectionHolders(regions: Record<string, RegionNode[]>): Generator<SectionHolder>;
53
+ /** The sections of one arm, or null when `armId` names no arm of this container. */
54
+ export declare function armSections(container: VariantContainer, armId: string): LayoutSection[] | null;
55
+ /**
56
+ * The sections the editor should show for `armId`, falling back to the Default
57
+ * arm when the requested arm no longer exists (e.g. it was just deleted while
58
+ * open). Never null, so the canvas always has something to render.
59
+ */
60
+ export declare function resolveArmSections(container: VariantContainer, armId: string): LayoutSection[];
61
+ export interface SectionLocation {
62
+ holder: SectionHolder;
63
+ section: LayoutSection;
64
+ /** Index of the section within `holder.siblings`. */
65
+ index: number;
66
+ }
67
+ export interface ColumnLocation {
68
+ holder: SectionHolder;
69
+ section: LayoutSection;
70
+ column: LayoutColumn;
71
+ }
72
+ export interface ModuleLocation extends ColumnLocation {
73
+ module: ModuleNode;
74
+ moduleIndex: number;
75
+ }
76
+ export interface VariantContainerLocation {
77
+ regionName: string;
78
+ region: RegionNode[];
79
+ container: VariantContainer;
80
+ /** Index of the container within its region's node array. */
81
+ index: number;
82
+ }
83
+ /** Find a section by id anywhere in the regions map, including container arms. */
84
+ export declare function findSectionIn(regions: Record<string, RegionNode[]>, sectionId: string): SectionLocation | null;
85
+ /** Find a column by id anywhere in the regions map, including container arms. */
86
+ export declare function findColumnIn(regions: Record<string, RegionNode[]>, columnId: string): ColumnLocation | null;
87
+ /** Find a module by id anywhere in the regions map, including container arms. */
88
+ export declare function findModuleIn(regions: Record<string, RegionNode[]>, moduleId: string): ModuleLocation | null;
89
+ /** Find a variant container by id. Containers only ever live at region level. */
90
+ export declare function findVariantContainerIn(regions: Record<string, RegionNode[]>, containerId: string): VariantContainerLocation | null;
91
+ export declare function findModuleInDocument(layout: LayoutDocument, moduleId: string): ModuleNode | null;
92
+ export declare function findSectionInDocument(layout: LayoutDocument, sectionId: string): LayoutSection | null;
93
+ export declare function findVariantContainerInDocument(layout: LayoutDocument, containerId: string): VariantContainer | null;
94
+ //# sourceMappingURL=node-lookup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-lookup.d.ts","sourceRoot":"","sources":["../../../src/admin/layout-editor/node-lookup.ts"],"names":[],"mappings":"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"}