@kywi-software/core 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/AGENT-PATTERNS.md +96 -10
  2. package/dist/admin/content-form.d.ts.map +1 -1
  3. package/dist/admin/content-form.js +97 -10
  4. package/dist/admin/content-form.js.map +1 -1
  5. package/dist/admin/layout-editor/component-actions.d.ts +219 -22
  6. package/dist/admin/layout-editor/component-actions.d.ts.map +1 -1
  7. package/dist/admin/layout-editor/component-actions.js +356 -36
  8. package/dist/admin/layout-editor/component-actions.js.map +1 -1
  9. package/dist/admin/layout-editor/component-fork.d.ts +224 -0
  10. package/dist/admin/layout-editor/component-fork.d.ts.map +1 -0
  11. package/dist/admin/layout-editor/component-fork.js +342 -0
  12. package/dist/admin/layout-editor/component-fork.js.map +1 -0
  13. package/dist/admin/layout-editor/editor-canvas.d.ts +8 -0
  14. package/dist/admin/layout-editor/editor-canvas.d.ts.map +1 -1
  15. package/dist/admin/layout-editor/editor-canvas.js +120 -12
  16. package/dist/admin/layout-editor/editor-canvas.js.map +1 -1
  17. package/dist/admin/layout-editor/editor-dialog.d.ts +164 -0
  18. package/dist/admin/layout-editor/editor-dialog.d.ts.map +1 -0
  19. package/dist/admin/layout-editor/editor-dialog.js +195 -0
  20. package/dist/admin/layout-editor/editor-dialog.js.map +1 -0
  21. package/dist/admin/layout-editor/editor-state.d.ts +76 -0
  22. package/dist/admin/layout-editor/editor-state.d.ts.map +1 -1
  23. package/dist/admin/layout-editor/editor-state.js +47 -1
  24. package/dist/admin/layout-editor/editor-state.js.map +1 -1
  25. package/dist/admin/layout-editor/editor.css +279 -2
  26. package/dist/admin/layout-editor/index.d.ts +10 -1
  27. package/dist/admin/layout-editor/index.d.ts.map +1 -1
  28. package/dist/admin/layout-editor/index.js +11 -1
  29. package/dist/admin/layout-editor/index.js.map +1 -1
  30. package/dist/admin/layout-editor/layout-editor.d.ts +58 -1
  31. package/dist/admin/layout-editor/layout-editor.d.ts.map +1 -1
  32. package/dist/admin/layout-editor/layout-editor.js +160 -190
  33. package/dist/admin/layout-editor/layout-editor.js.map +1 -1
  34. package/dist/admin/layout-editor/linked-component.d.ts +39 -0
  35. package/dist/admin/layout-editor/linked-component.d.ts.map +1 -0
  36. package/dist/admin/layout-editor/linked-component.js +42 -0
  37. package/dist/admin/layout-editor/linked-component.js.map +1 -0
  38. package/dist/admin/layout-editor/module-overlay.d.ts +10 -1
  39. package/dist/admin/layout-editor/module-overlay.d.ts.map +1 -1
  40. package/dist/admin/layout-editor/module-overlay.js +33 -4
  41. package/dist/admin/layout-editor/module-overlay.js.map +1 -1
  42. package/dist/admin/layout-editor/node-lookup.d.ts +35 -0
  43. package/dist/admin/layout-editor/node-lookup.d.ts.map +1 -1
  44. package/dist/admin/layout-editor/node-lookup.js +91 -0
  45. package/dist/admin/layout-editor/node-lookup.js.map +1 -1
  46. package/dist/admin/layout-editor/overlay-shell.d.ts.map +1 -1
  47. package/dist/admin/layout-editor/overlay-shell.js +114 -23
  48. package/dist/admin/layout-editor/overlay-shell.js.map +1 -1
  49. package/dist/admin/layout-editor/props-panel.d.ts +54 -1
  50. package/dist/admin/layout-editor/props-panel.d.ts.map +1 -1
  51. package/dist/admin/layout-editor/props-panel.js +118 -9
  52. package/dist/admin/layout-editor/props-panel.js.map +1 -1
  53. package/dist/admin/layout-editor/section-overlay.d.ts +9 -1
  54. package/dist/admin/layout-editor/section-overlay.d.ts.map +1 -1
  55. package/dist/admin/layout-editor/section-overlay.js +14 -4
  56. package/dist/admin/layout-editor/section-overlay.js.map +1 -1
  57. package/dist/admin/layout-editor/section-template-picker.d.ts +27 -1
  58. package/dist/admin/layout-editor/section-template-picker.d.ts.map +1 -1
  59. package/dist/admin/layout-editor/section-template-picker.js +71 -17
  60. package/dist/admin/layout-editor/section-template-picker.js.map +1 -1
  61. package/dist/admin/layout-editor/use-component-connect.d.ts +61 -0
  62. package/dist/admin/layout-editor/use-component-connect.d.ts.map +1 -0
  63. package/dist/admin/layout-editor/use-component-connect.js +292 -0
  64. package/dist/admin/layout-editor/use-component-connect.js.map +1 -0
  65. package/dist/admin/layout-editor/use-component-fork.d.ts +123 -0
  66. package/dist/admin/layout-editor/use-component-fork.d.ts.map +1 -0
  67. package/dist/admin/layout-editor/use-component-fork.js +346 -0
  68. package/dist/admin/layout-editor/use-component-fork.js.map +1 -0
  69. package/dist/admin/layout-editor/use-component-library.d.ts +94 -0
  70. package/dist/admin/layout-editor/use-component-library.d.ts.map +1 -0
  71. package/dist/admin/layout-editor/use-component-library.js +55 -0
  72. package/dist/admin/layout-editor/use-component-library.js.map +1 -0
  73. package/dist/admin/registry.d.ts +11 -2
  74. package/dist/admin/registry.d.ts.map +1 -1
  75. package/dist/admin/registry.js +40 -4
  76. package/dist/admin/registry.js.map +1 -1
  77. package/dist/admin/server.d.ts +1 -0
  78. package/dist/admin/server.d.ts.map +1 -1
  79. package/dist/admin/server.js +5 -0
  80. package/dist/admin/server.js.map +1 -1
  81. package/dist/admin/styles/admin.css +43 -0
  82. package/dist/admin/surfaces/components/component-edit.d.ts +3 -0
  83. package/dist/admin/surfaces/components/component-edit.d.ts.map +1 -0
  84. package/dist/admin/surfaces/components/component-edit.js +235 -0
  85. package/dist/admin/surfaces/components/component-edit.js.map +1 -0
  86. package/dist/admin/surfaces/components/components-data.d.ts +153 -0
  87. package/dist/admin/surfaces/components/components-data.d.ts.map +1 -0
  88. package/dist/admin/surfaces/components/components-data.js +154 -0
  89. package/dist/admin/surfaces/components/components-data.js.map +1 -0
  90. package/dist/admin/surfaces/components/components-list.d.ts +3 -0
  91. package/dist/admin/surfaces/components/components-list.d.ts.map +1 -0
  92. package/dist/admin/surfaces/components/components-list.js +196 -0
  93. package/dist/admin/surfaces/components/components-list.js.map +1 -0
  94. package/dist/admin/surfaces/components/definition-canvas.d.ts +73 -0
  95. package/dist/admin/surfaces/components/definition-canvas.d.ts.map +1 -0
  96. package/dist/admin/surfaces/components/definition-canvas.js +207 -0
  97. package/dist/admin/surfaces/components/definition-canvas.js.map +1 -0
  98. package/dist/admin/surfaces/layouts/layout-editor-client.d.ts.map +1 -1
  99. package/dist/admin/surfaces/layouts/layout-editor-client.js +14 -2
  100. package/dist/admin/surfaces/layouts/layout-editor-client.js.map +1 -1
  101. package/dist/admin/surfaces/layouts/layouts-data.d.ts +3 -14
  102. package/dist/admin/surfaces/layouts/layouts-data.d.ts.map +1 -1
  103. package/dist/admin/surfaces/layouts/layouts-data.js +4 -7
  104. package/dist/admin/surfaces/layouts/layouts-data.js.map +1 -1
  105. package/dist/admin/surfaces/layouts/layouts-list.d.ts.map +1 -1
  106. package/dist/admin/surfaces/layouts/layouts-list.js +16 -22
  107. package/dist/admin/surfaces/layouts/layouts-list.js.map +1 -1
  108. package/dist/admin/surfaces/settings/admin-features.d.ts.map +1 -1
  109. package/dist/admin/surfaces/settings/admin-features.js +1 -0
  110. package/dist/admin/surfaces/settings/admin-features.js.map +1 -1
  111. package/dist/api/bulk-routes.d.ts.map +1 -1
  112. package/dist/api/bulk-routes.js +25 -0
  113. package/dist/api/bulk-routes.js.map +1 -1
  114. package/dist/api/changeset-routes.d.ts.map +1 -1
  115. package/dist/api/changeset-routes.js +17 -3
  116. package/dist/api/changeset-routes.js.map +1 -1
  117. package/dist/api/component-routes.d.ts.map +1 -1
  118. package/dist/api/component-routes.js +228 -8
  119. package/dist/api/component-routes.js.map +1 -1
  120. package/dist/api/content-routes.d.ts.map +1 -1
  121. package/dist/api/content-routes.js +64 -0
  122. package/dist/api/content-routes.js.map +1 -1
  123. package/dist/api/feed-routes.d.ts +6 -6
  124. package/dist/api/graphql/resolvers.d.ts +4 -4
  125. package/dist/api/layout-routes.d.ts.map +1 -1
  126. package/dist/api/layout-routes.js +4 -17
  127. package/dist/api/layout-routes.js.map +1 -1
  128. package/dist/api/layout-write-guard.d.ts +80 -0
  129. package/dist/api/layout-write-guard.d.ts.map +1 -0
  130. package/dist/api/layout-write-guard.js +88 -0
  131. package/dist/api/layout-write-guard.js.map +1 -0
  132. package/dist/api/section-template-routes.d.ts.map +1 -1
  133. package/dist/api/section-template-routes.js +11 -0
  134. package/dist/api/section-template-routes.js.map +1 -1
  135. package/dist/api/translation-routes.d.ts.map +1 -1
  136. package/dist/api/translation-routes.js +8 -0
  137. package/dist/api/translation-routes.js.map +1 -1
  138. package/dist/api/version-routes.d.ts.map +1 -1
  139. package/dist/api/version-routes.js +20 -8
  140. package/dist/api/version-routes.js.map +1 -1
  141. package/dist/api/workflow-routes.d.ts.map +1 -1
  142. package/dist/api/workflow-routes.js +53 -8
  143. package/dist/api/workflow-routes.js.map +1 -1
  144. package/dist/db/analytics-queries.d.ts +3 -3
  145. package/dist/db/apply-snapshot.d.ts +75 -8
  146. package/dist/db/apply-snapshot.d.ts.map +1 -1
  147. package/dist/db/apply-snapshot.js +104 -8
  148. package/dist/db/apply-snapshot.js.map +1 -1
  149. package/dist/db/audit-queries.d.ts +12 -12
  150. package/dist/db/category-queries.d.ts +3 -3
  151. package/dist/db/changeset-audit-queries.d.ts +4 -4
  152. package/dist/db/changeset-queries.d.ts +7 -7
  153. package/dist/db/comment-queries.d.ts +8 -8
  154. package/dist/db/comment-subscription-queries.d.ts +2 -2
  155. package/dist/db/component-instance-queries.d.ts +197 -0
  156. package/dist/db/component-instance-queries.d.ts.map +1 -0
  157. package/dist/db/component-instance-queries.js +405 -0
  158. package/dist/db/component-instance-queries.js.map +1 -0
  159. package/dist/db/content-queries.d.ts.map +1 -1
  160. package/dist/db/content-queries.js +39 -2
  161. package/dist/db/content-queries.js.map +1 -1
  162. package/dist/db/extension-queries.d.ts +7 -7
  163. package/dist/db/feed-queries.d.ts +3 -3
  164. package/dist/db/index.d.ts +1 -0
  165. package/dist/db/index.d.ts.map +1 -1
  166. package/dist/db/index.js +1 -0
  167. package/dist/db/index.js.map +1 -1
  168. package/dist/db/layout-queries.d.ts +13 -1
  169. package/dist/db/layout-queries.d.ts.map +1 -1
  170. package/dist/db/layout-queries.js +52 -7
  171. package/dist/db/layout-queries.js.map +1 -1
  172. package/dist/db/locale-queries.d.ts.map +1 -1
  173. package/dist/db/locale-queries.js +0 -0
  174. package/dist/db/locale-queries.js.map +1 -1
  175. package/dist/db/media-queries.d.ts +12 -12
  176. package/dist/db/revision-queries.d.ts +3 -3
  177. package/dist/db/site-admin-queries.d.ts +2 -2
  178. package/dist/db/site-membership-queries.d.ts +3 -3
  179. package/dist/db/site-plugin-queries.d.ts +2 -2
  180. package/dist/db/site-queries.d.ts +6 -6
  181. package/dist/db/version-queries.d.ts +12 -12
  182. package/dist/db/webhook-queries.d.ts +11 -11
  183. package/dist/db/workflow-queries.d.ts +6 -6
  184. package/dist/db/workflow-queries.d.ts.map +1 -1
  185. package/dist/db/workflow-queries.js +11 -2
  186. package/dist/db/workflow-queries.js.map +1 -1
  187. package/dist/layout/component-refs.d.ts +465 -0
  188. package/dist/layout/component-refs.d.ts.map +1 -0
  189. package/dist/layout/component-refs.js +848 -0
  190. package/dist/layout/component-refs.js.map +1 -0
  191. package/dist/layout/index.d.ts +2 -1
  192. package/dist/layout/index.d.ts.map +1 -1
  193. package/dist/layout/index.js +1 -0
  194. package/dist/layout/index.js.map +1 -1
  195. package/dist/layout/module-permissions.d.ts +49 -1
  196. package/dist/layout/module-permissions.d.ts.map +1 -1
  197. package/dist/layout/module-permissions.js +117 -6
  198. package/dist/layout/module-permissions.js.map +1 -1
  199. package/dist/layout/renderer.d.ts +51 -4
  200. package/dist/layout/renderer.d.ts.map +1 -1
  201. package/dist/layout/renderer.js +36 -38
  202. package/dist/layout/renderer.js.map +1 -1
  203. package/dist/layout/types.d.ts +42 -0
  204. package/dist/layout/types.d.ts.map +1 -1
  205. package/dist/layout/types.js +54 -11
  206. package/dist/layout/types.js.map +1 -1
  207. package/dist/schema/base.d.ts +1 -1
  208. package/dist/schema/components.d.ts +150 -0
  209. package/dist/schema/components.d.ts.map +1 -1
  210. package/dist/schema/components.js +50 -4
  211. package/dist/schema/components.js.map +1 -1
  212. package/dist/versioning/scheduler.d.ts +8 -0
  213. package/dist/versioning/scheduler.d.ts.map +1 -1
  214. package/dist/versioning/scheduler.js +21 -7
  215. package/dist/versioning/scheduler.js.map +1 -1
  216. 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
- Five-tier stacking contract, all keyed off one variable so the tiers can
2033
- never drift apart (kywi-cms#118, extended by #124):
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;AAC/B,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
+ {"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,GAInB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA"}
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,KAA+D,MAAM,OAAO,CAAA;AAEnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAmB9D,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;;;;;;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;CAClB;AAYD,wBAAgB,YAAY,CAAC,EAC3B,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,MAAM,EACN,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,QAAQ,GACT,EAAE,iBAAiB,2CA8ZnB"}
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,2CAwZnB"}