@kywi-software/core 0.11.0 → 0.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENT-PATTERNS.md +96 -10
- package/dist/admin/content-form.d.ts.map +1 -1
- package/dist/admin/content-form.js +97 -10
- package/dist/admin/content-form.js.map +1 -1
- package/dist/admin/layout-editor/component-actions.d.ts +219 -22
- package/dist/admin/layout-editor/component-actions.d.ts.map +1 -1
- package/dist/admin/layout-editor/component-actions.js +356 -36
- package/dist/admin/layout-editor/component-actions.js.map +1 -1
- package/dist/admin/layout-editor/component-fork.d.ts +224 -0
- package/dist/admin/layout-editor/component-fork.d.ts.map +1 -0
- package/dist/admin/layout-editor/component-fork.js +342 -0
- package/dist/admin/layout-editor/component-fork.js.map +1 -0
- package/dist/admin/layout-editor/editor-canvas.d.ts +12 -0
- package/dist/admin/layout-editor/editor-canvas.d.ts.map +1 -1
- package/dist/admin/layout-editor/editor-canvas.js +76 -12
- package/dist/admin/layout-editor/editor-canvas.js.map +1 -1
- package/dist/admin/layout-editor/editor-dialog.d.ts +164 -0
- package/dist/admin/layout-editor/editor-dialog.d.ts.map +1 -0
- package/dist/admin/layout-editor/editor-dialog.js +195 -0
- package/dist/admin/layout-editor/editor-dialog.js.map +1 -0
- package/dist/admin/layout-editor/editor-state.d.ts +76 -0
- package/dist/admin/layout-editor/editor-state.d.ts.map +1 -1
- package/dist/admin/layout-editor/editor-state.js +47 -1
- package/dist/admin/layout-editor/editor-state.js.map +1 -1
- package/dist/admin/layout-editor/editor.css +279 -2
- package/dist/admin/layout-editor/index.d.ts +10 -1
- package/dist/admin/layout-editor/index.d.ts.map +1 -1
- package/dist/admin/layout-editor/index.js +11 -1
- package/dist/admin/layout-editor/index.js.map +1 -1
- package/dist/admin/layout-editor/layout-editor.d.ts +58 -1
- package/dist/admin/layout-editor/layout-editor.d.ts.map +1 -1
- package/dist/admin/layout-editor/layout-editor.js +161 -190
- package/dist/admin/layout-editor/layout-editor.js.map +1 -1
- package/dist/admin/layout-editor/linked-component.d.ts +38 -0
- package/dist/admin/layout-editor/linked-component.d.ts.map +1 -0
- package/dist/admin/layout-editor/linked-component.js +42 -0
- package/dist/admin/layout-editor/linked-component.js.map +1 -0
- package/dist/admin/layout-editor/module-overlay.d.ts +10 -1
- package/dist/admin/layout-editor/module-overlay.d.ts.map +1 -1
- package/dist/admin/layout-editor/module-overlay.js +33 -4
- package/dist/admin/layout-editor/module-overlay.js.map +1 -1
- package/dist/admin/layout-editor/node-lookup.d.ts +34 -0
- package/dist/admin/layout-editor/node-lookup.d.ts.map +1 -1
- package/dist/admin/layout-editor/node-lookup.js +90 -0
- package/dist/admin/layout-editor/node-lookup.js.map +1 -1
- package/dist/admin/layout-editor/overlay-shell.d.ts.map +1 -1
- package/dist/admin/layout-editor/overlay-shell.js +114 -23
- package/dist/admin/layout-editor/overlay-shell.js.map +1 -1
- package/dist/admin/layout-editor/props-panel.d.ts +55 -1
- package/dist/admin/layout-editor/props-panel.d.ts.map +1 -1
- package/dist/admin/layout-editor/props-panel.js +118 -9
- package/dist/admin/layout-editor/props-panel.js.map +1 -1
- package/dist/admin/layout-editor/section-overlay.d.ts +9 -1
- package/dist/admin/layout-editor/section-overlay.d.ts.map +1 -1
- package/dist/admin/layout-editor/section-overlay.js +14 -4
- package/dist/admin/layout-editor/section-overlay.js.map +1 -1
- package/dist/admin/layout-editor/section-template-picker.d.ts +27 -1
- package/dist/admin/layout-editor/section-template-picker.d.ts.map +1 -1
- package/dist/admin/layout-editor/section-template-picker.js +71 -17
- package/dist/admin/layout-editor/section-template-picker.js.map +1 -1
- package/dist/admin/layout-editor/use-component-connect.d.ts +65 -0
- package/dist/admin/layout-editor/use-component-connect.d.ts.map +1 -0
- package/dist/admin/layout-editor/use-component-connect.js +294 -0
- package/dist/admin/layout-editor/use-component-connect.js.map +1 -0
- package/dist/admin/layout-editor/use-component-fork.d.ts +123 -0
- package/dist/admin/layout-editor/use-component-fork.d.ts.map +1 -0
- package/dist/admin/layout-editor/use-component-fork.js +346 -0
- package/dist/admin/layout-editor/use-component-fork.js.map +1 -0
- package/dist/admin/layout-editor/use-component-library.d.ts +94 -0
- package/dist/admin/layout-editor/use-component-library.d.ts.map +1 -0
- package/dist/admin/layout-editor/use-component-library.js +55 -0
- package/dist/admin/layout-editor/use-component-library.js.map +1 -0
- package/dist/admin/registry.d.ts +11 -2
- package/dist/admin/registry.d.ts.map +1 -1
- package/dist/admin/registry.js +40 -4
- package/dist/admin/registry.js.map +1 -1
- package/dist/admin/server.d.ts +1 -0
- package/dist/admin/server.d.ts.map +1 -1
- package/dist/admin/server.js +5 -0
- package/dist/admin/server.js.map +1 -1
- package/dist/admin/styles/admin.css +43 -0
- package/dist/admin/surfaces/components/component-edit.d.ts +3 -0
- package/dist/admin/surfaces/components/component-edit.d.ts.map +1 -0
- package/dist/admin/surfaces/components/component-edit.js +235 -0
- package/dist/admin/surfaces/components/component-edit.js.map +1 -0
- package/dist/admin/surfaces/components/components-data.d.ts +153 -0
- package/dist/admin/surfaces/components/components-data.d.ts.map +1 -0
- package/dist/admin/surfaces/components/components-data.js +154 -0
- package/dist/admin/surfaces/components/components-data.js.map +1 -0
- package/dist/admin/surfaces/components/components-list.d.ts +3 -0
- package/dist/admin/surfaces/components/components-list.d.ts.map +1 -0
- package/dist/admin/surfaces/components/components-list.js +196 -0
- package/dist/admin/surfaces/components/components-list.js.map +1 -0
- package/dist/admin/surfaces/components/definition-canvas.d.ts +73 -0
- package/dist/admin/surfaces/components/definition-canvas.d.ts.map +1 -0
- package/dist/admin/surfaces/components/definition-canvas.js +207 -0
- package/dist/admin/surfaces/components/definition-canvas.js.map +1 -0
- package/dist/admin/surfaces/layouts/layout-editor-client.d.ts.map +1 -1
- package/dist/admin/surfaces/layouts/layout-editor-client.js +14 -2
- package/dist/admin/surfaces/layouts/layout-editor-client.js.map +1 -1
- package/dist/admin/surfaces/layouts/layouts-data.d.ts +3 -14
- package/dist/admin/surfaces/layouts/layouts-data.d.ts.map +1 -1
- package/dist/admin/surfaces/layouts/layouts-data.js +4 -7
- package/dist/admin/surfaces/layouts/layouts-data.js.map +1 -1
- package/dist/admin/surfaces/layouts/layouts-list.d.ts.map +1 -1
- package/dist/admin/surfaces/layouts/layouts-list.js +16 -22
- package/dist/admin/surfaces/layouts/layouts-list.js.map +1 -1
- package/dist/admin/surfaces/settings/admin-features.d.ts.map +1 -1
- package/dist/admin/surfaces/settings/admin-features.js +1 -0
- package/dist/admin/surfaces/settings/admin-features.js.map +1 -1
- package/dist/api/bulk-routes.d.ts.map +1 -1
- package/dist/api/bulk-routes.js +25 -0
- package/dist/api/bulk-routes.js.map +1 -1
- package/dist/api/changeset-routes.d.ts.map +1 -1
- package/dist/api/changeset-routes.js +17 -3
- package/dist/api/changeset-routes.js.map +1 -1
- package/dist/api/component-routes.d.ts.map +1 -1
- package/dist/api/component-routes.js +228 -8
- package/dist/api/component-routes.js.map +1 -1
- package/dist/api/content-routes.d.ts.map +1 -1
- package/dist/api/content-routes.js +64 -0
- package/dist/api/content-routes.js.map +1 -1
- package/dist/api/feed-routes.d.ts +6 -6
- package/dist/api/graphql/resolvers.d.ts +4 -4
- package/dist/api/layout-routes.d.ts.map +1 -1
- package/dist/api/layout-routes.js +4 -17
- package/dist/api/layout-routes.js.map +1 -1
- package/dist/api/layout-write-guard.d.ts +80 -0
- package/dist/api/layout-write-guard.d.ts.map +1 -0
- package/dist/api/layout-write-guard.js +88 -0
- package/dist/api/layout-write-guard.js.map +1 -0
- package/dist/api/section-template-routes.d.ts.map +1 -1
- package/dist/api/section-template-routes.js +11 -0
- package/dist/api/section-template-routes.js.map +1 -1
- package/dist/api/translation-routes.d.ts.map +1 -1
- package/dist/api/translation-routes.js +8 -0
- package/dist/api/translation-routes.js.map +1 -1
- package/dist/api/version-routes.d.ts.map +1 -1
- package/dist/api/version-routes.js +20 -8
- package/dist/api/version-routes.js.map +1 -1
- package/dist/api/workflow-routes.d.ts.map +1 -1
- package/dist/api/workflow-routes.js +53 -8
- package/dist/api/workflow-routes.js.map +1 -1
- package/dist/db/analytics-queries.d.ts +3 -3
- package/dist/db/apply-snapshot.d.ts +75 -8
- package/dist/db/apply-snapshot.d.ts.map +1 -1
- package/dist/db/apply-snapshot.js +104 -8
- package/dist/db/apply-snapshot.js.map +1 -1
- package/dist/db/audit-queries.d.ts +12 -12
- package/dist/db/category-queries.d.ts +3 -3
- package/dist/db/changeset-audit-queries.d.ts +4 -4
- package/dist/db/changeset-queries.d.ts +7 -7
- package/dist/db/comment-queries.d.ts +8 -8
- package/dist/db/comment-subscription-queries.d.ts +2 -2
- package/dist/db/component-instance-queries.d.ts +197 -0
- package/dist/db/component-instance-queries.d.ts.map +1 -0
- package/dist/db/component-instance-queries.js +405 -0
- package/dist/db/component-instance-queries.js.map +1 -0
- package/dist/db/content-queries.d.ts.map +1 -1
- package/dist/db/content-queries.js +39 -2
- package/dist/db/content-queries.js.map +1 -1
- package/dist/db/extension-queries.d.ts +7 -7
- package/dist/db/feed-queries.d.ts +3 -3
- package/dist/db/index.d.ts +1 -0
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +1 -0
- package/dist/db/index.js.map +1 -1
- package/dist/db/layout-queries.d.ts +13 -1
- package/dist/db/layout-queries.d.ts.map +1 -1
- package/dist/db/layout-queries.js +52 -7
- package/dist/db/layout-queries.js.map +1 -1
- package/dist/db/locale-queries.d.ts.map +1 -1
- package/dist/db/locale-queries.js +0 -0
- package/dist/db/locale-queries.js.map +1 -1
- package/dist/db/media-queries.d.ts +12 -12
- package/dist/db/revision-queries.d.ts +3 -3
- package/dist/db/site-admin-queries.d.ts +2 -2
- package/dist/db/site-membership-queries.d.ts +3 -3
- package/dist/db/site-plugin-queries.d.ts +2 -2
- package/dist/db/site-queries.d.ts +6 -6
- package/dist/db/version-queries.d.ts +12 -12
- package/dist/db/webhook-queries.d.ts +11 -11
- package/dist/db/workflow-queries.d.ts +6 -6
- package/dist/db/workflow-queries.d.ts.map +1 -1
- package/dist/db/workflow-queries.js +11 -2
- package/dist/db/workflow-queries.js.map +1 -1
- package/dist/layout/component-refs.d.ts +465 -0
- package/dist/layout/component-refs.d.ts.map +1 -0
- package/dist/layout/component-refs.js +848 -0
- package/dist/layout/component-refs.js.map +1 -0
- package/dist/layout/index.d.ts +2 -1
- package/dist/layout/index.d.ts.map +1 -1
- package/dist/layout/index.js +1 -0
- package/dist/layout/index.js.map +1 -1
- package/dist/layout/module-permissions.d.ts +49 -1
- package/dist/layout/module-permissions.d.ts.map +1 -1
- package/dist/layout/module-permissions.js +117 -6
- package/dist/layout/module-permissions.js.map +1 -1
- package/dist/layout/renderer.d.ts +51 -4
- package/dist/layout/renderer.d.ts.map +1 -1
- package/dist/layout/renderer.js +36 -38
- package/dist/layout/renderer.js.map +1 -1
- package/dist/layout/types.d.ts +42 -0
- package/dist/layout/types.d.ts.map +1 -1
- package/dist/layout/types.js +54 -11
- package/dist/layout/types.js.map +1 -1
- package/dist/schema/base.d.ts +1 -1
- package/dist/schema/components.d.ts +150 -0
- package/dist/schema/components.d.ts.map +1 -1
- package/dist/schema/components.js +50 -4
- package/dist/schema/components.js.map +1 -1
- package/dist/versioning/scheduler.d.ts +8 -0
- package/dist/versioning/scheduler.d.ts.map +1 -1
- package/dist/versioning/scheduler.js +21 -7
- package/dist/versioning/scheduler.js.map +1 -1
- package/package.json +1 -1
|
@@ -83,6 +83,19 @@
|
|
|
83
83
|
--kywi-editor-ease: 140ms cubic-bezier(0.2, 0.7, 0.2, 1);
|
|
84
84
|
--kywi-editor-focus: 0 0 0 2px var(--kywi-editor-panel-bg), 0 0 0 4px var(--kywi-editor-accent-ring);
|
|
85
85
|
|
|
86
|
+
/* Linked components (kywi-cms#147).
|
|
87
|
+
Deliberately NOT derived from --kywi-editor-accent: "selected" is the accent
|
|
88
|
+
in both shells (indigo on the front end, green under admin.css's bridge —
|
|
89
|
+
kywi-cms#144), so a linked instance keyed off the accent would read as
|
|
90
|
+
selected in one theme and as nothing in particular in the other. A fixed
|
|
91
|
+
fuchsia is distinct from BOTH accents, which is the whole job of this
|
|
92
|
+
affordance, and it therefore needs no bridge entry in the (locked) admin.css
|
|
93
|
+
— the same colour means the same thing in both editors. */
|
|
94
|
+
--kywi-editor-linked: #c026d3;
|
|
95
|
+
--kywi-editor-linked-soft: rgba(192, 38, 211, 0.16);
|
|
96
|
+
--kywi-editor-linked-ring: rgba(192, 38, 211, 0.45);
|
|
97
|
+
--kywi-editor-on-linked: #ffffff;
|
|
98
|
+
|
|
86
99
|
--kywi-editor-font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
|
87
100
|
--kywi-editor-panel-width-left: 232px;
|
|
88
101
|
--kywi-editor-panel-width-right: 288px;
|
|
@@ -2029,8 +2042,12 @@ input[type="color"].kywi-token-raw-input { height: 34px; padding: 3px; cursor: p
|
|
|
2029
2042
|
Invisible AND click-through until its owner is hovered or selected, so the
|
|
2030
2043
|
page never collects stray editor hit-targets.
|
|
2031
2044
|
|
|
2032
|
-
|
|
2033
|
-
|
|
2045
|
+
Stacking contract, all keyed off one variable so the tiers can never drift
|
|
2046
|
+
apart (kywi-cms#118, extended by #124 and #147):
|
|
2047
|
+
.kywi-editor-dialog-overlay (the editor's = var(--kywi-z-overlay, 1000) + 2 = 1002
|
|
2048
|
+
own modal — save-as-component, the save
|
|
2049
|
+
fork — which can be opened from inside
|
|
2050
|
+
any of the surfaces below it, #147)
|
|
2034
2051
|
.kywi-editor-template-overlay (section- = var(--kywi-z-overlay, 1000) + 1 = 1001
|
|
2035
2052
|
template picker modal)
|
|
2036
2053
|
.kywi-overlay-toolbar (fixed edit bar) = var(--kywi-z-overlay, 1000) = 1000
|
|
@@ -2305,6 +2322,266 @@ input[type="color"].kywi-token-raw-input { height: 34px; padding: 3px; cursor: p
|
|
|
2305
2322
|
.kywi-ip-vc:hover .kywi-ip-add-arm-section,
|
|
2306
2323
|
.kywi-ip-vc--selected .kywi-ip-add-arm-section { opacity: 1; }
|
|
2307
2324
|
|
|
2325
|
+
/* ============================================================================
|
|
2326
|
+
Linked component instances (kywi-cms#147)
|
|
2327
|
+
A linked instance is ordinary-looking content that is shared with every other
|
|
2328
|
+
instance of the same component, so editing it is never a local act. Both
|
|
2329
|
+
editors therefore mark it two ways: a distinct OUTLINE (never a border — an
|
|
2330
|
+
affordance must not move the page by a pixel, see the in-place selection rules
|
|
2331
|
+
above) and a NAMED pill in whatever chrome already floats above the node.
|
|
2332
|
+
|
|
2333
|
+
The pill is always visible, unlike hover chrome: "which of these bands is
|
|
2334
|
+
shared?" has to be answerable before the owner reaches for one. It is also
|
|
2335
|
+
`pointer-events: none` — it is a label, not a control, and it must never take a
|
|
2336
|
+
click meant for the content underneath.
|
|
2337
|
+
|
|
2338
|
+
Selection still wins visually where the two meet: a selected linked node shows
|
|
2339
|
+
the accent outline (it is what the owner just clicked) with the pill still
|
|
2340
|
+
naming the component.
|
|
2341
|
+
========================================================================== */
|
|
2342
|
+
|
|
2343
|
+
.kywi-editor-linked-pill {
|
|
2344
|
+
display: inline-flex;
|
|
2345
|
+
align-items: center;
|
|
2346
|
+
gap: 4px;
|
|
2347
|
+
height: 18px;
|
|
2348
|
+
padding: 0 8px;
|
|
2349
|
+
border-radius: var(--kywi-editor-radius-pill);
|
|
2350
|
+
background: var(--kywi-editor-linked);
|
|
2351
|
+
color: var(--kywi-editor-on-linked);
|
|
2352
|
+
font-family: var(--kywi-editor-font);
|
|
2353
|
+
font-size: 9.5px;
|
|
2354
|
+
font-weight: 700;
|
|
2355
|
+
letter-spacing: 0.04em;
|
|
2356
|
+
white-space: nowrap;
|
|
2357
|
+
max-width: 190px;
|
|
2358
|
+
overflow: hidden;
|
|
2359
|
+
text-overflow: ellipsis;
|
|
2360
|
+
}
|
|
2361
|
+
.kywi-editor-linked-pill svg { flex-shrink: 0; }
|
|
2362
|
+
|
|
2363
|
+
/* Artboard (admin Layout tab) */
|
|
2364
|
+
.kywi-editor-section--linked {
|
|
2365
|
+
outline: 1.5px solid var(--kywi-editor-linked);
|
|
2366
|
+
outline-offset: -1.5px;
|
|
2367
|
+
}
|
|
2368
|
+
.kywi-editor-vc--linked {
|
|
2369
|
+
outline: 1.5px solid var(--kywi-editor-linked);
|
|
2370
|
+
outline-offset: -1.5px;
|
|
2371
|
+
}
|
|
2372
|
+
.kywi-editor-module--linked {
|
|
2373
|
+
outline: 1.5px solid var(--kywi-editor-linked);
|
|
2374
|
+
outline-offset: 1px;
|
|
2375
|
+
}
|
|
2376
|
+
.kywi-editor-module-linked-tag {
|
|
2377
|
+
position: absolute;
|
|
2378
|
+
top: -10px;
|
|
2379
|
+
right: 10px;
|
|
2380
|
+
z-index: 3;
|
|
2381
|
+
pointer-events: none;
|
|
2382
|
+
}
|
|
2383
|
+
|
|
2384
|
+
/* In place (front-of-site overlay) */
|
|
2385
|
+
.kywi-ip-section--linked {
|
|
2386
|
+
outline: 1.5px solid var(--kywi-editor-linked);
|
|
2387
|
+
outline-offset: -1.5px;
|
|
2388
|
+
}
|
|
2389
|
+
.kywi-ip-section--linked.kywi-ip-section--selected,
|
|
2390
|
+
.kywi-ip-section--linked.kywi-ip-section--selected:hover {
|
|
2391
|
+
outline: 2px solid var(--kywi-editor-accent);
|
|
2392
|
+
outline-offset: -2px;
|
|
2393
|
+
}
|
|
2394
|
+
.kywi-ip-vc--linked {
|
|
2395
|
+
outline: 1.5px solid var(--kywi-editor-linked);
|
|
2396
|
+
outline-offset: 2px;
|
|
2397
|
+
}
|
|
2398
|
+
.kywi-ip-vc--linked.kywi-ip-vc--selected,
|
|
2399
|
+
.kywi-ip-vc--linked.kywi-ip-vc--selected:hover {
|
|
2400
|
+
outline: 2px solid var(--kywi-editor-accent);
|
|
2401
|
+
outline-offset: 2px;
|
|
2402
|
+
}
|
|
2403
|
+
.kywi-ip-module--linked {
|
|
2404
|
+
outline: 1.5px solid var(--kywi-editor-linked);
|
|
2405
|
+
outline-offset: 2px;
|
|
2406
|
+
}
|
|
2407
|
+
.kywi-ip-module--linked.kywi-ip-module--selected,
|
|
2408
|
+
.kywi-ip-module--linked.kywi-ip-module--selected:hover {
|
|
2409
|
+
outline: 2px solid var(--kywi-editor-accent);
|
|
2410
|
+
outline-offset: 2px;
|
|
2411
|
+
}
|
|
2412
|
+
/* Above the module, right-aligned: the type chip sits above-left and the action
|
|
2413
|
+
cluster inside top-right, so this collides with neither. Takes the page-flow
|
|
2414
|
+
chrome z-tier through its own rule rather than by joining
|
|
2415
|
+
`.kywi-ip-chrome, .kywi-ip-chip` — that shared rule also resets opacity and
|
|
2416
|
+
pointer-events, which is exactly what this must not inherit. */
|
|
2417
|
+
.kywi-ip-module-linked-tag {
|
|
2418
|
+
position: absolute;
|
|
2419
|
+
top: 0;
|
|
2420
|
+
right: 0;
|
|
2421
|
+
transform: translateY(-100%);
|
|
2422
|
+
z-index: calc(var(--kywi-z-overlay, 1000) - 2);
|
|
2423
|
+
pointer-events: none;
|
|
2424
|
+
}
|
|
2425
|
+
|
|
2426
|
+
/* ============================================================================
|
|
2427
|
+
Editor dialog (kywi-cms#147)
|
|
2428
|
+
The editor's own modal, used by "Save as component" and by the save fork. It
|
|
2429
|
+
renders in BOTH shells through a portal to `document.body`, wrapped in
|
|
2430
|
+
`.kywi-admin-shell.kywi-overlay-dialog-host` — so it is styled entirely from
|
|
2431
|
+
`--kywi-editor-*` tokens and comes out indigo on the front end and green in the
|
|
2432
|
+
admin Layout tab with no second rule set (kywi-cms#144).
|
|
2433
|
+
========================================================================== */
|
|
2434
|
+
|
|
2435
|
+
.kywi-editor-dialog-overlay {
|
|
2436
|
+
position: fixed;
|
|
2437
|
+
inset: 0;
|
|
2438
|
+
/* One tier above the section-template modal's tier so a dialog opened from
|
|
2439
|
+
inside another surface is never painted under it. */
|
|
2440
|
+
z-index: calc(var(--kywi-z-overlay, 1000) + 2);
|
|
2441
|
+
display: flex;
|
|
2442
|
+
align-items: center;
|
|
2443
|
+
justify-content: center;
|
|
2444
|
+
padding: var(--kywi-editor-sp-4);
|
|
2445
|
+
background: rgba(8, 8, 20, 0.55);
|
|
2446
|
+
}
|
|
2447
|
+
.kywi-editor-dialog {
|
|
2448
|
+
width: 100%;
|
|
2449
|
+
max-width: 420px;
|
|
2450
|
+
box-sizing: border-box;
|
|
2451
|
+
background: var(--kywi-editor-panel-bg);
|
|
2452
|
+
border: 1px solid var(--kywi-editor-border-strong);
|
|
2453
|
+
border-radius: var(--kywi-editor-radius-lg);
|
|
2454
|
+
box-shadow: var(--kywi-editor-shadow-pop);
|
|
2455
|
+
color: var(--kywi-editor-panel-text);
|
|
2456
|
+
font-family: var(--kywi-editor-font);
|
|
2457
|
+
font-size: 13px;
|
|
2458
|
+
line-height: 1.45;
|
|
2459
|
+
overflow: hidden;
|
|
2460
|
+
}
|
|
2461
|
+
.kywi-editor-dialog-header {
|
|
2462
|
+
padding: var(--kywi-editor-sp-4) var(--kywi-editor-sp-5) 0;
|
|
2463
|
+
}
|
|
2464
|
+
.kywi-editor-dialog-title {
|
|
2465
|
+
font-size: 14.5px;
|
|
2466
|
+
font-weight: 700;
|
|
2467
|
+
color: var(--kywi-editor-text-strong);
|
|
2468
|
+
}
|
|
2469
|
+
.kywi-editor-dialog-body {
|
|
2470
|
+
padding: var(--kywi-editor-sp-3) var(--kywi-editor-sp-5) var(--kywi-editor-sp-2);
|
|
2471
|
+
}
|
|
2472
|
+
.kywi-editor-dialog-intro {
|
|
2473
|
+
margin: 0 0 var(--kywi-editor-sp-3);
|
|
2474
|
+
font-size: 12.5px;
|
|
2475
|
+
color: var(--kywi-editor-panel-muted);
|
|
2476
|
+
}
|
|
2477
|
+
/* "Component 1 of 2" — the save fork asks per component, so the owner needs to
|
|
2478
|
+
know a second question is coming (kywi-cms#147 T4). */
|
|
2479
|
+
.kywi-editor-dialog-step {
|
|
2480
|
+
margin: 0 0 var(--kywi-editor-sp-2);
|
|
2481
|
+
font-size: 10.5px;
|
|
2482
|
+
font-weight: 650;
|
|
2483
|
+
letter-spacing: 0.05em;
|
|
2484
|
+
text-transform: uppercase;
|
|
2485
|
+
color: var(--kywi-editor-panel-faint);
|
|
2486
|
+
}
|
|
2487
|
+
.kywi-editor-dialog-field { margin-bottom: var(--kywi-editor-sp-3); }
|
|
2488
|
+
.kywi-editor-dialog-label {
|
|
2489
|
+
display: block;
|
|
2490
|
+
margin-bottom: 5px;
|
|
2491
|
+
font-size: 10.5px;
|
|
2492
|
+
font-weight: 650;
|
|
2493
|
+
letter-spacing: 0.05em;
|
|
2494
|
+
text-transform: uppercase;
|
|
2495
|
+
color: var(--kywi-editor-panel-muted);
|
|
2496
|
+
}
|
|
2497
|
+
.kywi-editor-dialog-optional {
|
|
2498
|
+
margin-left: 6px;
|
|
2499
|
+
color: var(--kywi-editor-panel-faint);
|
|
2500
|
+
text-transform: none;
|
|
2501
|
+
letter-spacing: 0;
|
|
2502
|
+
font-weight: 500;
|
|
2503
|
+
}
|
|
2504
|
+
.kywi-editor-dialog-input {
|
|
2505
|
+
width: 100%;
|
|
2506
|
+
box-sizing: border-box;
|
|
2507
|
+
min-height: 32px;
|
|
2508
|
+
padding: 6px 9px;
|
|
2509
|
+
font-family: inherit;
|
|
2510
|
+
font-size: 12.5px;
|
|
2511
|
+
line-height: 1.4;
|
|
2512
|
+
color: var(--kywi-editor-panel-text);
|
|
2513
|
+
background: var(--kywi-editor-panel-raised-2);
|
|
2514
|
+
border: 1px solid var(--kywi-editor-border-strong);
|
|
2515
|
+
border-radius: var(--kywi-editor-radius-sm);
|
|
2516
|
+
}
|
|
2517
|
+
.kywi-editor-dialog-input:focus {
|
|
2518
|
+
outline: none;
|
|
2519
|
+
border-color: var(--kywi-editor-accent);
|
|
2520
|
+
box-shadow: 0 0 0 3px var(--kywi-editor-accent-ring);
|
|
2521
|
+
}
|
|
2522
|
+
.kywi-editor-dialog-textarea { resize: vertical; }
|
|
2523
|
+
/* A consequence of the save the owner has to know about before committing (a
|
|
2524
|
+
nested link that is about to be copied in) — informational, not an error. */
|
|
2525
|
+
.kywi-editor-dialog-notice {
|
|
2526
|
+
margin: 0 var(--kywi-editor-sp-5) var(--kywi-editor-sp-3);
|
|
2527
|
+
padding: var(--kywi-editor-sp-2) var(--kywi-editor-sp-3);
|
|
2528
|
+
border-left: 2px solid var(--kywi-editor-linked);
|
|
2529
|
+
border-radius: 0 var(--kywi-editor-radius-sm) var(--kywi-editor-radius-sm) 0;
|
|
2530
|
+
background: var(--kywi-editor-linked-soft);
|
|
2531
|
+
color: var(--kywi-editor-panel-text);
|
|
2532
|
+
font-size: 12px;
|
|
2533
|
+
}
|
|
2534
|
+
.kywi-editor-dialog-error {
|
|
2535
|
+
margin: 0 var(--kywi-editor-sp-5) var(--kywi-editor-sp-2);
|
|
2536
|
+
padding: var(--kywi-editor-sp-2) var(--kywi-editor-sp-3);
|
|
2537
|
+
border-radius: var(--kywi-editor-radius-sm);
|
|
2538
|
+
background: var(--kywi-editor-danger-soft);
|
|
2539
|
+
color: var(--kywi-editor-danger);
|
|
2540
|
+
font-size: 12px;
|
|
2541
|
+
}
|
|
2542
|
+
.kywi-editor-dialog-actions {
|
|
2543
|
+
display: flex;
|
|
2544
|
+
justify-content: flex-end;
|
|
2545
|
+
gap: var(--kywi-editor-sp-2);
|
|
2546
|
+
padding: var(--kywi-editor-sp-3) var(--kywi-editor-sp-5) var(--kywi-editor-sp-4);
|
|
2547
|
+
border-top: 1px solid var(--kywi-editor-hairline);
|
|
2548
|
+
}
|
|
2549
|
+
.kywi-editor-dialog-btn {
|
|
2550
|
+
min-height: 30px;
|
|
2551
|
+
padding: 0 14px;
|
|
2552
|
+
border-radius: var(--kywi-editor-radius-sm);
|
|
2553
|
+
border: 1px solid transparent;
|
|
2554
|
+
font-family: inherit;
|
|
2555
|
+
font-size: 12.5px;
|
|
2556
|
+
font-weight: 650;
|
|
2557
|
+
cursor: pointer;
|
|
2558
|
+
transition: background var(--kywi-editor-ease), border-color var(--kywi-editor-ease);
|
|
2559
|
+
}
|
|
2560
|
+
.kywi-editor-dialog-btn:disabled { opacity: 0.55; cursor: default; }
|
|
2561
|
+
.kywi-editor-dialog-btn--primary {
|
|
2562
|
+
background: var(--kywi-editor-accent);
|
|
2563
|
+
color: var(--kywi-editor-on-accent);
|
|
2564
|
+
}
|
|
2565
|
+
.kywi-editor-dialog-btn--primary:hover:not(:disabled) { background: var(--kywi-editor-accent-hover); }
|
|
2566
|
+
.kywi-editor-dialog-btn--secondary {
|
|
2567
|
+
background: var(--kywi-editor-panel-raised-solid);
|
|
2568
|
+
border-color: var(--kywi-editor-border-strong);
|
|
2569
|
+
color: var(--kywi-editor-panel-text);
|
|
2570
|
+
}
|
|
2571
|
+
.kywi-editor-dialog-btn--secondary:hover:not(:disabled) { background: var(--kywi-editor-panel-raised-2); }
|
|
2572
|
+
.kywi-editor-dialog-btn--danger {
|
|
2573
|
+
background: var(--kywi-editor-danger-strong);
|
|
2574
|
+
color: #fff;
|
|
2575
|
+
}
|
|
2576
|
+
|
|
2577
|
+
/* The linked note's second paragraph — the "what the canvas is showing you"
|
|
2578
|
+
aside — is subordinate to the first, not a second headline. */
|
|
2579
|
+
.kywi-editor-props-linked-aside {
|
|
2580
|
+
margin-top: var(--kywi-editor-sp-2);
|
|
2581
|
+
color: var(--kywi-editor-panel-muted);
|
|
2582
|
+
font-size: 12px;
|
|
2583
|
+
}
|
|
2584
|
+
|
|
2308
2585
|
/* ============================================================================
|
|
2309
2586
|
Admin-shell override guard.
|
|
2310
2587
|
The admin design system (admin.css) sweeps `.kywi-editor-prop-input`,
|
|
@@ -2,7 +2,16 @@ export { LayoutEditor } from './layout-editor.js';
|
|
|
2
2
|
export type { EditorState, EditorAction, VariantArmPatch, VariantContainerPatch, } from './editor-state.js';
|
|
3
3
|
export { ModeToggle } from './mode-toggle.js';
|
|
4
4
|
export { PagePropertiesPanel } from './page-properties.js';
|
|
5
|
-
export { buildConnectedModuleNode, buildConnectedSectionNode, detachModuleFromComponent, detachSectionFromComponent, resolveSectionComponentDefinition, saveAsComponent, saveAsTemplate, cloneSection, cloneModule, copyToClipboard, pasteFromClipboard, type ComponentDefinitionInput, type SectionTemplateInput, type ClipboardPayload, } from './component-actions.js';
|
|
5
|
+
export { buildConnectedModuleNode, buildConnectedSectionNode, buildConnectedVariantContainerNode, flattenComponentLinks, countComponentLinksToFlatten, detachModuleFromComponent, detachSectionFromComponent, detachVariantContainerFromComponent, resolveSectionComponentDefinition, resolveVariantContainerComponentDefinition, saveAsComponent, saveAsTemplate, cloneSection, cloneModule, cloneVariantContainer, copyToClipboard, pasteFromClipboard, type ComponentDefinitionInput, type SaveAsComponentOptions, type SectionTemplateInput, type ClipboardPayload, } from './component-actions.js';
|
|
6
|
+
export { useComponentLibrary } from './use-component-library.js';
|
|
7
|
+
export type { ComponentLibrary, EditorComponent } from './use-component-library.js';
|
|
8
|
+
export { useComponentConnect } from './use-component-connect.js';
|
|
9
|
+
export type { ComponentConnect } from './use-component-connect.js';
|
|
10
|
+
export { findLinkedAncestor, hasLinkedAncestor } from './node-lookup.js';
|
|
11
|
+
export { LinkedComponentPill, linkedComponentName } from './linked-component.js';
|
|
12
|
+
export type { ComponentAffordances } from './linked-component.js';
|
|
13
|
+
export { EditorDialog, ComponentSaveDialog } from './editor-dialog.js';
|
|
14
|
+
export type { EditorDialogAction, ComponentSaveKind } from './editor-dialog.js';
|
|
6
15
|
export { OverlayShell } from './overlay-shell.js';
|
|
7
16
|
export type { OverlayShellProps, SaveAction, ResponsivePreview } from './overlay-shell.js';
|
|
8
17
|
export { TokenColorInput, TokenSpacingInput, TokenTypographyInput, TokenPropField } from './token-inputs.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/admin/layout-editor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,YAAY,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EACf,qBAAqB,GACtB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,EAC1B,iCAAiC,EACjC,eAAe,EACf,cAAc,EACd,YAAY,EACZ,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,GACtB,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/admin/layout-editor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,YAAY,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EACf,qBAAqB,GACtB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,kCAAkC,EAClC,qBAAqB,EACrB,4BAA4B,EAC5B,yBAAyB,EACzB,0BAA0B,EAC1B,mCAAmC,EACnC,iCAAiC,EACjC,0CAA0C,EAC1C,eAAe,EACf,cAAc,EACd,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,GACtB,MAAM,wBAAwB,CAAA;AAI/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAGlE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACxE,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAChF,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACtE,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC1F,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA"}
|
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
export { LayoutEditor } from './layout-editor.js';
|
|
2
2
|
export { ModeToggle } from './mode-toggle.js';
|
|
3
3
|
export { PagePropertiesPanel } from './page-properties.js';
|
|
4
|
-
export { buildConnectedModuleNode, buildConnectedSectionNode, detachModuleFromComponent, detachSectionFromComponent, resolveSectionComponentDefinition, saveAsComponent, saveAsTemplate, cloneSection, cloneModule, copyToClipboard, pasteFromClipboard, } from './component-actions.js';
|
|
4
|
+
export { buildConnectedModuleNode, buildConnectedSectionNode, buildConnectedVariantContainerNode, flattenComponentLinks, countComponentLinksToFlatten, detachModuleFromComponent, detachSectionFromComponent, detachVariantContainerFromComponent, resolveSectionComponentDefinition, resolveVariantContainerComponentDefinition, saveAsComponent, saveAsTemplate, cloneSection, cloneModule, cloneVariantContainer, copyToClipboard, pasteFromClipboard, } from './component-actions.js';
|
|
5
|
+
// Linked components in the editor (kywi-cms#147): the shared library/connect
|
|
6
|
+
// hooks both shells use, the canvas affordance contract, and the reusable dialog
|
|
7
|
+
// (which the save fork also renders).
|
|
8
|
+
export { useComponentLibrary } from './use-component-library.js';
|
|
9
|
+
export { useComponentConnect } from './use-component-connect.js';
|
|
10
|
+
// "Is this node inside somebody else's component?" — the question every component
|
|
11
|
+
// action is refused on (kywi-cms#147 T3 review, I1).
|
|
12
|
+
export { findLinkedAncestor, hasLinkedAncestor } from './node-lookup.js';
|
|
13
|
+
export { LinkedComponentPill, linkedComponentName } from './linked-component.js';
|
|
14
|
+
export { EditorDialog, ComponentSaveDialog } from './editor-dialog.js';
|
|
5
15
|
export { OverlayShell } from './overlay-shell.js';
|
|
6
16
|
export { TokenColorInput, TokenSpacingInput, TokenTypographyInput, TokenPropField } from './token-inputs.js';
|
|
7
17
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/admin/layout-editor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAOjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,EAC1B,iCAAiC,EACjC,eAAe,EACf,cAAc,EACd,YAAY,EACZ,WAAW,EACX,eAAe,EACf,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/admin/layout-editor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAOjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,kCAAkC,EAClC,qBAAqB,EACrB,4BAA4B,EAC5B,yBAAyB,EACzB,0BAA0B,EAC1B,mCAAmC,EACnC,iCAAiC,EACjC,0CAA0C,EAC1C,eAAe,EACf,cAAc,EACd,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,kBAAkB,GAKnB,MAAM,wBAAwB,CAAA;AAC/B,6EAA6E;AAC7E,iFAAiF;AACjF,sCAAsC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAEhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAEhE,kFAAkF;AAClF,qDAAqD;AACrD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACxE,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAEhF,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAEtE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA"}
|
|
@@ -35,7 +35,64 @@ interface LayoutEditorProps {
|
|
|
35
35
|
onChange?: (layout: LayoutDocument) => void;
|
|
36
36
|
/** Current user's role — gates admin-only modules in the palette. */
|
|
37
37
|
userRole?: string;
|
|
38
|
+
/**
|
|
39
|
+
* WHAT THE DOCUMENT ON THIS CANVAS ACTUALLY IS. Defaults to `'page'` — a real
|
|
40
|
+
* piece of content, where every component affordance means what it says.
|
|
41
|
+
*
|
|
42
|
+
* The other two values are canvases where the document is NOT a page, and the
|
|
43
|
+
* component affordances are withheld for the same underlying reason: everything
|
|
44
|
+
* component-shaped this editor offers is about a PLACEMENT — "save this bit of
|
|
45
|
+
* the page as a component", "point this placeholder at a component", "drop a
|
|
46
|
+
* linked copy in here" — and neither of these canvases has placements.
|
|
47
|
+
*
|
|
48
|
+
* - `'definition'` — the document IS a component definition (kywi-cms#147 T5
|
|
49
|
+
* review, I1). Set by the admin `components.edit` surface, which seeds a
|
|
50
|
+
* one-node document out of a stored definition and PUTs it back.
|
|
51
|
+
* - `'blueprint'` — the document is a saved layout / section blueprint
|
|
52
|
+
* (kywi-cms#147 final review, M2). Set by the standalone Layouts editor,
|
|
53
|
+
* which writes `kywi_section_templates` rows.
|
|
54
|
+
*
|
|
55
|
+
* WHY THE DEFINITION CANVAS HAD TO KNOW. Left unsaid, the seeded definition node
|
|
56
|
+
* looked like an ordinary unlinked section to the rail and to the insert picker,
|
|
57
|
+
* which offered all three affordances; and the save fork, which exists to ask
|
|
58
|
+
* "does this edit belong to the component or to this page?", would ask a question
|
|
59
|
+
* with no second answer. The worst of it was reachable in three clicks: link a
|
|
60
|
+
* module inside the definition to some OTHER component Z, edit it, press Save.
|
|
61
|
+
* The fork saw an edited instance of Z, PUT Z's definition site-wide — published
|
|
62
|
+
* pages included — and only then did the definition extract refuse the nested
|
|
63
|
+
* link, so the save the owner actually asked for never happened. A write nobody
|
|
64
|
+
* requested landed; the requested one did not.
|
|
65
|
+
*
|
|
66
|
+
* WHY THE BLUEPRINT CANVAS DOES TOO. A blueprint is deliberately not indexed
|
|
67
|
+
* (the reasoning is at the decision site in `api/section-template-routes.ts`):
|
|
68
|
+
* `kywi_component_instances` tracks placements in CONTENT, and a blueprint is a
|
|
69
|
+
* stencil, not a page. So a component minted here, and linked from the blueprint
|
|
70
|
+
* it was minted out of, is a link nothing can see — its usage count reads "0
|
|
71
|
+
* instances across 0 pages", and the delete confirmation says so to the owner's
|
|
72
|
+
* face while a blueprint still renders it. Every claim the feature makes about
|
|
73
|
+
* blast radius is a claim about content. Saving a component out of a blueprint is
|
|
74
|
+
* a coherent thing to want, and it needs the index to reach blueprints first; it
|
|
75
|
+
* is not something to leave half-working with honest-looking copy on top.
|
|
76
|
+
*
|
|
77
|
+
* In both non-page modes:
|
|
78
|
+
* - "Save as component" (module, section and container), the props rail's
|
|
79
|
+
* component picker and the insert picker's component rows are all WITHHELD —
|
|
80
|
+
* the same shape as the linked-ancestor withdrawal (T3 review I1), for the
|
|
81
|
+
* same reason: an action that cannot cohere is not offered;
|
|
82
|
+
* - the save fork is INERT ({@link useComponentFork}'s `inert`) — a definition
|
|
83
|
+
* save IS the propagation, and a blueprint save writes a stencil, so in
|
|
84
|
+
* neither case is there a "this page" to fork against;
|
|
85
|
+
* - everything else — palette, DnD, props and style editing, undo/redo — works
|
|
86
|
+
* exactly as it does on a page. The one palette entry that goes is the
|
|
87
|
+
* `component` placeholder itself, which here could only ever be a node
|
|
88
|
+
* pointing at nothing (see the filter below).
|
|
89
|
+
*
|
|
90
|
+
* Detach is deliberately KEPT in both: a definition stored before the nested-link
|
|
91
|
+
* refusal, or a blueprint saved from a linked section, can still hold a link, and
|
|
92
|
+
* detaching it is how the owner resolves it.
|
|
93
|
+
*/
|
|
94
|
+
canvasKind?: 'page' | 'definition' | 'blueprint';
|
|
38
95
|
}
|
|
39
|
-
export declare function LayoutEditor({ initialLayout, moduleRegistry, moduleComponents, onSave, onCancel, audiences, onChange, userRole, }: LayoutEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
96
|
+
export declare function LayoutEditor({ initialLayout, moduleRegistry, moduleComponents, onSave, onCancel, audiences, onChange, userRole, canvasKind, }: LayoutEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
40
97
|
export {};
|
|
41
98
|
//# sourceMappingURL=layout-editor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout-editor.d.ts","sourceRoot":"","sources":["../../../src/admin/layout-editor/layout-editor.tsx"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"layout-editor.d.ts","sourceRoot":"","sources":["../../../src/admin/layout-editor/layout-editor.tsx"],"names":[],"mappings":"AACA,OAAO,KAAwE,MAAM,OAAO,CAAA;AAE5F,OAAO,KAAK,EAAE,cAAc,EAAmC,MAAM,uBAAuB,CAAA;AAC5F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAmB9D,OAAO,cAAc,CAAA;AAIrB,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;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;IAC7E,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;IACjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuDG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,WAAW,CAAA;CACjD;AAYD,wBAAgB,YAAY,CAAC,EAC3B,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,MAAM,EACN,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,UAAmB,GACpB,EAAE,iBAAiB,2CAsZnB"}
|