@kywi-software/core 0.2.1 → 0.3.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 (354) hide show
  1. package/README.md +57 -2
  2. package/dist/admin/app.d.ts +10 -1
  3. package/dist/admin/app.d.ts.map +1 -1
  4. package/dist/admin/app.js +2 -2
  5. package/dist/admin/app.js.map +1 -1
  6. package/dist/admin/approval-queue.d.ts +3 -1
  7. package/dist/admin/approval-queue.d.ts.map +1 -1
  8. package/dist/admin/approval-queue.js +2 -2
  9. package/dist/admin/approval-queue.js.map +1 -1
  10. package/dist/admin/audience-list.d.ts.map +1 -1
  11. package/dist/admin/audience-list.js +9 -1
  12. package/dist/admin/audience-list.js.map +1 -1
  13. package/dist/admin/chrome.d.ts +7 -1
  14. package/dist/admin/chrome.d.ts.map +1 -1
  15. package/dist/admin/chrome.js +2 -1
  16. package/dist/admin/chrome.js.map +1 -1
  17. package/dist/admin/content-editor-api.d.ts +27 -1
  18. package/dist/admin/content-editor-api.d.ts.map +1 -1
  19. package/dist/admin/content-editor-api.js +60 -2
  20. package/dist/admin/content-editor-api.js.map +1 -1
  21. package/dist/admin/content-form.d.ts +62 -6
  22. package/dist/admin/content-form.d.ts.map +1 -1
  23. package/dist/admin/content-form.js +118 -13
  24. package/dist/admin/content-form.js.map +1 -1
  25. package/dist/admin/content-permissions-tab.d.ts +13 -0
  26. package/dist/admin/content-permissions-tab.d.ts.map +1 -0
  27. package/dist/admin/content-permissions-tab.js +90 -0
  28. package/dist/admin/content-permissions-tab.js.map +1 -0
  29. package/dist/admin/context.d.ts +8 -0
  30. package/dist/admin/context.d.ts.map +1 -1
  31. package/dist/admin/context.js.map +1 -1
  32. package/dist/admin/feed-builder.d.ts.map +1 -1
  33. package/dist/admin/feed-builder.js +20 -1
  34. package/dist/admin/feed-builder.js.map +1 -1
  35. package/dist/admin/field-components.d.ts.map +1 -1
  36. package/dist/admin/field-components.js +26 -1
  37. package/dist/admin/field-components.js.map +1 -1
  38. package/dist/admin/form-builder.js +6 -1
  39. package/dist/admin/form-builder.js.map +1 -1
  40. package/dist/admin/form-helpers.d.ts.map +1 -1
  41. package/dist/admin/form-helpers.js +2 -0
  42. package/dist/admin/form-helpers.js.map +1 -1
  43. package/dist/admin/layout-editor/component-actions.d.ts +18 -0
  44. package/dist/admin/layout-editor/component-actions.d.ts.map +1 -1
  45. package/dist/admin/layout-editor/component-actions.js +19 -0
  46. package/dist/admin/layout-editor/component-actions.js.map +1 -1
  47. package/dist/admin/layout-editor/component-picker-field.d.ts +20 -0
  48. package/dist/admin/layout-editor/component-picker-field.d.ts.map +1 -0
  49. package/dist/admin/layout-editor/component-picker-field.js +16 -0
  50. package/dist/admin/layout-editor/component-picker-field.js.map +1 -0
  51. package/dist/admin/layout-editor/drag-utils.d.ts +48 -0
  52. package/dist/admin/layout-editor/drag-utils.d.ts.map +1 -1
  53. package/dist/admin/layout-editor/drag-utils.js +43 -0
  54. package/dist/admin/layout-editor/drag-utils.js.map +1 -1
  55. package/dist/admin/layout-editor/editor-canvas.d.ts +9 -1
  56. package/dist/admin/layout-editor/editor-canvas.d.ts.map +1 -1
  57. package/dist/admin/layout-editor/editor-canvas.js +41 -15
  58. package/dist/admin/layout-editor/editor-canvas.js.map +1 -1
  59. package/dist/admin/layout-editor/editor-state.d.ts +9 -1
  60. package/dist/admin/layout-editor/editor-state.d.ts.map +1 -1
  61. package/dist/admin/layout-editor/editor-state.js +34 -0
  62. package/dist/admin/layout-editor/editor-state.js.map +1 -1
  63. package/dist/admin/layout-editor/editor.css +83 -0
  64. package/dist/admin/layout-editor/form-picker-field.d.ts +17 -0
  65. package/dist/admin/layout-editor/form-picker-field.d.ts.map +1 -0
  66. package/dist/admin/layout-editor/form-picker-field.js +35 -0
  67. package/dist/admin/layout-editor/form-picker-field.js.map +1 -0
  68. package/dist/admin/layout-editor/layout-editor.d.ts.map +1 -1
  69. package/dist/admin/layout-editor/layout-editor.js +95 -28
  70. package/dist/admin/layout-editor/layout-editor.js.map +1 -1
  71. package/dist/admin/layout-editor/mode-toggle.d.ts.map +1 -1
  72. package/dist/admin/layout-editor/mode-toggle.js +1 -1
  73. package/dist/admin/layout-editor/mode-toggle.js.map +1 -1
  74. package/dist/admin/layout-editor/module-overlay.d.ts +10 -1
  75. package/dist/admin/layout-editor/module-overlay.d.ts.map +1 -1
  76. package/dist/admin/layout-editor/module-overlay.js +3 -3
  77. package/dist/admin/layout-editor/module-overlay.js.map +1 -1
  78. package/dist/admin/layout-editor/props-panel.d.ts +10 -1
  79. package/dist/admin/layout-editor/props-panel.d.ts.map +1 -1
  80. package/dist/admin/layout-editor/props-panel.js +25 -2
  81. package/dist/admin/layout-editor/props-panel.js.map +1 -1
  82. package/dist/admin/layout-editor/section-insert-line.d.ts.map +1 -1
  83. package/dist/admin/layout-editor/section-insert-line.js +1 -1
  84. package/dist/admin/layout-editor/section-insert-line.js.map +1 -1
  85. package/dist/admin/layout-editor/section-overlay.d.ts.map +1 -1
  86. package/dist/admin/layout-editor/section-overlay.js +1 -1
  87. package/dist/admin/layout-editor/section-overlay.js.map +1 -1
  88. package/dist/admin/layout-editor/section-template-picker.d.ts +9 -1
  89. package/dist/admin/layout-editor/section-template-picker.d.ts.map +1 -1
  90. package/dist/admin/layout-editor/section-template-picker.js +45 -2
  91. package/dist/admin/layout-editor/section-template-picker.js.map +1 -1
  92. package/dist/admin/registry.d.ts.map +1 -1
  93. package/dist/admin/registry.js +11 -0
  94. package/dist/admin/registry.js.map +1 -1
  95. package/dist/admin/server.d.ts +15 -2
  96. package/dist/admin/server.d.ts.map +1 -1
  97. package/dist/admin/server.js +37 -1
  98. package/dist/admin/server.js.map +1 -1
  99. package/dist/admin/styles/admin.css +16 -4
  100. package/dist/admin/surface-matcher.d.ts +27 -0
  101. package/dist/admin/surface-matcher.d.ts.map +1 -1
  102. package/dist/admin/surface-matcher.js +11 -0
  103. package/dist/admin/surface-matcher.js.map +1 -1
  104. package/dist/admin/surfaces/approvals/approvals-data.d.ts +29 -9
  105. package/dist/admin/surfaces/approvals/approvals-data.d.ts.map +1 -1
  106. package/dist/admin/surfaces/approvals/approvals-data.js +65 -22
  107. package/dist/admin/surfaces/approvals/approvals-data.js.map +1 -1
  108. package/dist/admin/surfaces/approvals/approvals-index.d.ts.map +1 -1
  109. package/dist/admin/surfaces/approvals/approvals-index.js +47 -14
  110. package/dist/admin/surfaces/approvals/approvals-index.js.map +1 -1
  111. package/dist/admin/surfaces/content/content-edit.d.ts.map +1 -1
  112. package/dist/admin/surfaces/content/content-edit.js +34 -8
  113. package/dist/admin/surfaces/content/content-edit.js.map +1 -1
  114. package/dist/admin/surfaces/content/content-index.d.ts.map +1 -1
  115. package/dist/admin/surfaces/content/content-index.js +29 -2
  116. package/dist/admin/surfaces/content/content-index.js.map +1 -1
  117. package/dist/admin/surfaces/content/content-new.d.ts.map +1 -1
  118. package/dist/admin/surfaces/content/content-new.js +6 -4
  119. package/dist/admin/surfaces/content/content-new.js.map +1 -1
  120. package/dist/admin/surfaces/contentTree/content-tree.d.ts.map +1 -1
  121. package/dist/admin/surfaces/contentTree/content-tree.js +25 -2
  122. package/dist/admin/surfaces/contentTree/content-tree.js.map +1 -1
  123. package/dist/admin/surfaces/contentTypes/content-types-designer.d.ts.map +1 -1
  124. package/dist/admin/surfaces/contentTypes/content-types-designer.js +78 -47
  125. package/dist/admin/surfaces/contentTypes/content-types-designer.js.map +1 -1
  126. package/dist/admin/surfaces/feeds/feed-editor.d.ts.map +1 -1
  127. package/dist/admin/surfaces/feeds/feed-editor.js +21 -4
  128. package/dist/admin/surfaces/feeds/feed-editor.js.map +1 -1
  129. package/dist/admin/surfaces/layouts/layout-editor-client.d.ts.map +1 -1
  130. package/dist/admin/surfaces/layouts/layout-editor-client.js +7 -4
  131. package/dist/admin/surfaces/layouts/layout-editor-client.js.map +1 -1
  132. package/dist/admin/surfaces/media/media-client.d.ts.map +1 -1
  133. package/dist/admin/surfaces/media/media-client.js +10 -2
  134. package/dist/admin/surfaces/media/media-client.js.map +1 -1
  135. package/dist/admin/surfaces/settings/settings-site.d.ts.map +1 -1
  136. package/dist/admin/surfaces/settings/settings-site.js +39 -2
  137. package/dist/admin/surfaces/settings/settings-site.js.map +1 -1
  138. package/dist/admin/surfaces/settings/settings-sites.js +18 -0
  139. package/dist/admin/surfaces/settings/settings-sites.js.map +1 -1
  140. package/dist/admin/surfaces/trash/trash-index.d.ts.map +1 -1
  141. package/dist/admin/surfaces/trash/trash-index.js +45 -8
  142. package/dist/admin/surfaces/trash/trash-index.js.map +1 -1
  143. package/dist/admin/surfaces/users/users-data.d.ts +11 -0
  144. package/dist/admin/surfaces/users/users-data.d.ts.map +1 -1
  145. package/dist/admin/surfaces/users/users-data.js +20 -1
  146. package/dist/admin/surfaces/users/users-data.js.map +1 -1
  147. package/dist/admin/surfaces/webServices/web-services-data.d.ts +11 -1
  148. package/dist/admin/surfaces/webServices/web-services-data.d.ts.map +1 -1
  149. package/dist/admin/surfaces/webServices/web-services-data.js +13 -0
  150. package/dist/admin/surfaces/webServices/web-services-data.js.map +1 -1
  151. package/dist/admin/surfaces/webServices/webhooks.d.ts +3 -0
  152. package/dist/admin/surfaces/webServices/webhooks.d.ts.map +1 -0
  153. package/dist/admin/surfaces/webServices/webhooks.js +69 -0
  154. package/dist/admin/surfaces/webServices/webhooks.js.map +1 -0
  155. package/dist/admin/webhook-manager.d.ts +32 -0
  156. package/dist/admin/webhook-manager.d.ts.map +1 -0
  157. package/dist/admin/webhook-manager.js +62 -0
  158. package/dist/admin/webhook-manager.js.map +1 -0
  159. package/dist/api/admin-features-routes.d.ts.map +1 -1
  160. package/dist/api/admin-features-routes.js +30 -0
  161. package/dist/api/admin-features-routes.js.map +1 -1
  162. package/dist/api/api-key-routes.d.ts.map +1 -1
  163. package/dist/api/api-key-routes.js +6 -1
  164. package/dist/api/api-key-routes.js.map +1 -1
  165. package/dist/api/auth.d.ts +8 -0
  166. package/dist/api/auth.d.ts.map +1 -1
  167. package/dist/api/auth.js +11 -1
  168. package/dist/api/auth.js.map +1 -1
  169. package/dist/api/comment-routes.d.ts.map +1 -1
  170. package/dist/api/comment-routes.js +102 -47
  171. package/dist/api/comment-routes.js.map +1 -1
  172. package/dist/api/config-routes.d.ts +10 -2
  173. package/dist/api/config-routes.d.ts.map +1 -1
  174. package/dist/api/config-routes.js +46 -25
  175. package/dist/api/config-routes.js.map +1 -1
  176. package/dist/api/content-routes.d.ts.map +1 -1
  177. package/dist/api/content-routes.js +41 -0
  178. package/dist/api/content-routes.js.map +1 -1
  179. package/dist/api/content-schemas.d.ts.map +1 -1
  180. package/dist/api/content-schemas.js +34 -1
  181. package/dist/api/content-schemas.js.map +1 -1
  182. package/dist/api/content-type-routes.d.ts.map +1 -1
  183. package/dist/api/content-type-routes.js +58 -3
  184. package/dist/api/content-type-routes.js.map +1 -1
  185. package/dist/api/feed-routes.d.ts +180 -0
  186. package/dist/api/feed-routes.d.ts.map +1 -1
  187. package/dist/api/feed-routes.js +10 -2
  188. package/dist/api/feed-routes.js.map +1 -1
  189. package/dist/api/form-routes.d.ts +6 -0
  190. package/dist/api/form-routes.d.ts.map +1 -1
  191. package/dist/api/form-routes.js +93 -14
  192. package/dist/api/form-routes.js.map +1 -1
  193. package/dist/api/graphql/resolvers.d.ts +4 -4
  194. package/dist/api/index.d.ts.map +1 -1
  195. package/dist/api/index.js +12 -1
  196. package/dist/api/index.js.map +1 -1
  197. package/dist/api/media-routes.d.ts.map +1 -1
  198. package/dist/api/media-routes.js +18 -1
  199. package/dist/api/media-routes.js.map +1 -1
  200. package/dist/api/webhook-routes.d.ts.map +1 -1
  201. package/dist/api/webhook-routes.js +19 -2
  202. package/dist/api/webhook-routes.js.map +1 -1
  203. package/dist/api/workflow-routes.d.ts.map +1 -1
  204. package/dist/api/workflow-routes.js +163 -4
  205. package/dist/api/workflow-routes.js.map +1 -1
  206. package/dist/auth/roles.d.ts +28 -0
  207. package/dist/auth/roles.d.ts.map +1 -1
  208. package/dist/auth/roles.js +49 -0
  209. package/dist/auth/roles.js.map +1 -1
  210. package/dist/config/reserved-field-names.d.ts +29 -0
  211. package/dist/config/reserved-field-names.d.ts.map +1 -0
  212. package/dist/config/reserved-field-names.js +59 -0
  213. package/dist/config/reserved-field-names.js.map +1 -0
  214. package/dist/config/types.d.ts +31 -2
  215. package/dist/config/types.d.ts.map +1 -1
  216. package/dist/config/types.js.map +1 -1
  217. package/dist/db/analytics-queries.d.ts +1 -1
  218. package/dist/db/api-key-queries.d.ts +7 -2
  219. package/dist/db/api-key-queries.d.ts.map +1 -1
  220. package/dist/db/api-key-queries.js +8 -2
  221. package/dist/db/api-key-queries.js.map +1 -1
  222. package/dist/db/apply-snapshot.d.ts +58 -0
  223. package/dist/db/apply-snapshot.d.ts.map +1 -0
  224. package/dist/db/apply-snapshot.js +142 -0
  225. package/dist/db/apply-snapshot.js.map +1 -0
  226. package/dist/db/audit-queries.d.ts +3 -3
  227. package/dist/db/category-queries.d.ts +3 -3
  228. package/dist/db/changeset-audit-queries.d.ts +2 -2
  229. package/dist/db/changeset-queries.d.ts +5 -5
  230. package/dist/db/changeset-queries.d.ts.map +1 -1
  231. package/dist/db/changeset-queries.js +24 -7
  232. package/dist/db/changeset-queries.js.map +1 -1
  233. package/dist/db/content-queries.d.ts +6 -0
  234. package/dist/db/content-queries.d.ts.map +1 -1
  235. package/dist/db/content-queries.js +8 -0
  236. package/dist/db/content-queries.js.map +1 -1
  237. package/dist/db/content-type-queries.d.ts +20 -0
  238. package/dist/db/content-type-queries.d.ts.map +1 -1
  239. package/dist/db/content-type-queries.js +32 -0
  240. package/dist/db/content-type-queries.js.map +1 -1
  241. package/dist/db/dashboard-queries.d.ts.map +1 -1
  242. package/dist/db/dashboard-queries.js +5 -1
  243. package/dist/db/dashboard-queries.js.map +1 -1
  244. package/dist/db/dynamic-schema.d.ts.map +1 -1
  245. package/dist/db/dynamic-schema.js +2 -0
  246. package/dist/db/dynamic-schema.js.map +1 -1
  247. package/dist/db/extension-queries.d.ts +8 -8
  248. package/dist/db/feed-queries.d.ts +3 -3
  249. package/dist/db/index.d.ts +3 -0
  250. package/dist/db/index.d.ts.map +1 -1
  251. package/dist/db/index.js +7 -0
  252. package/dist/db/index.js.map +1 -1
  253. package/dist/db/media-queries.d.ts +31 -7
  254. package/dist/db/media-queries.d.ts.map +1 -1
  255. package/dist/db/media-queries.js +13 -1
  256. package/dist/db/media-queries.js.map +1 -1
  257. package/dist/db/membership-dedupe.d.ts +26 -0
  258. package/dist/db/membership-dedupe.d.ts.map +1 -0
  259. package/dist/db/membership-dedupe.js +68 -0
  260. package/dist/db/membership-dedupe.js.map +1 -0
  261. package/dist/db/revision-queries.d.ts +122 -0
  262. package/dist/db/revision-queries.d.ts.map +1 -0
  263. package/dist/db/revision-queries.js +213 -0
  264. package/dist/db/revision-queries.js.map +1 -0
  265. package/dist/db/schema-apply.d.ts +8 -0
  266. package/dist/db/schema-apply.d.ts.map +1 -1
  267. package/dist/db/schema-apply.js +17 -0
  268. package/dist/db/schema-apply.js.map +1 -1
  269. package/dist/db/schema-field-queries.d.ts +2 -0
  270. package/dist/db/schema-field-queries.d.ts.map +1 -1
  271. package/dist/db/schema-field-queries.js +4 -0
  272. package/dist/db/schema-field-queries.js.map +1 -1
  273. package/dist/db/site-plugin-queries.d.ts +2 -2
  274. package/dist/db/user-queries.d.ts +12 -0
  275. package/dist/db/user-queries.d.ts.map +1 -1
  276. package/dist/db/user-queries.js +18 -4
  277. package/dist/db/user-queries.js.map +1 -1
  278. package/dist/db/version-queries.d.ts +37 -0
  279. package/dist/db/version-queries.d.ts.map +1 -1
  280. package/dist/db/version-queries.js +36 -0
  281. package/dist/db/version-queries.js.map +1 -1
  282. package/dist/db/webhook-queries.d.ts +27 -5
  283. package/dist/db/webhook-queries.d.ts.map +1 -1
  284. package/dist/db/webhook-queries.js +17 -0
  285. package/dist/db/webhook-queries.js.map +1 -1
  286. package/dist/db/workflow-queries.d.ts +2 -2
  287. package/dist/experiments/schema.d.ts +1 -1
  288. package/dist/hooks/index.d.ts +1 -1
  289. package/dist/hooks/index.d.ts.map +1 -1
  290. package/dist/hooks/index.js +1 -1
  291. package/dist/hooks/index.js.map +1 -1
  292. package/dist/hooks/webhook-retry.d.ts +22 -1
  293. package/dist/hooks/webhook-retry.d.ts.map +1 -1
  294. package/dist/hooks/webhook-retry.js +38 -1
  295. package/dist/hooks/webhook-retry.js.map +1 -1
  296. package/dist/host/index.d.ts +28 -0
  297. package/dist/host/index.d.ts.map +1 -1
  298. package/dist/host/index.js +56 -1
  299. package/dist/host/index.js.map +1 -1
  300. package/dist/layout/comments-module.d.ts +18 -0
  301. package/dist/layout/comments-module.d.ts.map +1 -0
  302. package/dist/layout/comments-module.js +130 -0
  303. package/dist/layout/comments-module.js.map +1 -0
  304. package/dist/layout/feed-hydration.d.ts +75 -0
  305. package/dist/layout/feed-hydration.d.ts.map +1 -0
  306. package/dist/layout/feed-hydration.js +158 -0
  307. package/dist/layout/feed-hydration.js.map +1 -0
  308. package/dist/layout/index.d.ts +2 -1
  309. package/dist/layout/index.d.ts.map +1 -1
  310. package/dist/layout/index.js +2 -1
  311. package/dist/layout/index.js.map +1 -1
  312. package/dist/layout/module-render-context.d.ts +13 -0
  313. package/dist/layout/module-render-context.d.ts.map +1 -0
  314. package/dist/layout/module-render-context.js +15 -0
  315. package/dist/layout/module-render-context.js.map +1 -0
  316. package/dist/layout/modules-extended.d.ts.map +1 -1
  317. package/dist/layout/modules-extended.js +92 -13
  318. package/dist/layout/modules-extended.js.map +1 -1
  319. package/dist/layout/registry.d.ts.map +1 -1
  320. package/dist/layout/registry.js +22 -6
  321. package/dist/layout/registry.js.map +1 -1
  322. package/dist/layout/renderer.d.ts +17 -1
  323. package/dist/layout/renderer.d.ts.map +1 -1
  324. package/dist/layout/renderer.js +11 -4
  325. package/dist/layout/renderer.js.map +1 -1
  326. package/dist/nav/index.d.ts +1 -0
  327. package/dist/nav/index.d.ts.map +1 -1
  328. package/dist/nav/index.js +4 -0
  329. package/dist/nav/index.js.map +1 -1
  330. package/dist/nav/url-resolver.d.ts +10 -2
  331. package/dist/nav/url-resolver.d.ts.map +1 -1
  332. package/dist/nav/url-resolver.js +17 -3
  333. package/dist/nav/url-resolver.js.map +1 -1
  334. package/dist/schema/base.d.ts +37 -1
  335. package/dist/schema/base.d.ts.map +1 -1
  336. package/dist/schema/base.js +20 -2
  337. package/dist/schema/base.js.map +1 -1
  338. package/dist/schema/generate.d.ts +8 -0
  339. package/dist/schema/generate.d.ts.map +1 -1
  340. package/dist/schema/generate.js +7 -4
  341. package/dist/schema/generate.js.map +1 -1
  342. package/dist/schema/mapper.d.ts.map +1 -1
  343. package/dist/schema/mapper.js +2 -0
  344. package/dist/schema/mapper.js.map +1 -1
  345. package/dist/schema/mysql-tables.d.ts +34 -0
  346. package/dist/schema/mysql-tables.d.ts.map +1 -1
  347. package/dist/schema/mysql-tables.js +14 -2
  348. package/dist/schema/mysql-tables.js.map +1 -1
  349. package/dist/server.d.ts +1 -0
  350. package/dist/server.d.ts.map +1 -1
  351. package/dist/server.js +1 -0
  352. package/dist/server.js.map +1 -1
  353. package/dist/site/styles.css +384 -0
  354. package/package.json +2 -1
@@ -0,0 +1,16 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ /**
4
+ * Picker for connecting a placed `component` node to a saved reusable component
5
+ * (kywi-cms#46). Replaces the old raw "Component Slug" / "Component ID" text
6
+ * boxes with a real list. Selecting one links the node so it renders — and stays
7
+ * in sync with — the source component.
8
+ */
9
+ export function ComponentPickerField({ components, onSelect }) {
10
+ if (components.length === 0) {
11
+ return (_jsx("div", { className: "kywi-editor-form-picker", children: _jsx("p", { className: "kywi-editor-form-picker-hint", children: "No saved components yet \u2014 select a module on the canvas and use \u201CSave as Component\u201D to create one, then insert it here." }) }));
12
+ }
13
+ return (_jsxs("div", { className: "kywi-editor-form-picker", children: [_jsx("label", { className: "kywi-editor-prop-label", htmlFor: "kywi-component-picker", children: "Component" }), _jsxs("select", { id: "kywi-component-picker", className: "kywi-editor-prop-input kywi-editor-form-picker-select", defaultValue: "", onChange: e => { if (e.target.value)
14
+ onSelect(e.target.value); }, children: [_jsx("option", { value: "", disabled: true, children: "\u2014 Select a component \u2014" }), components.map(c => (_jsxs("option", { value: c.id, children: [c.name, c.moduleType ? ` (${c.moduleType})` : ''] }, c.id)))] })] }));
15
+ }
16
+ //# sourceMappingURL=component-picker-field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-picker-field.js","sourceRoot":"","sources":["../../../src/admin/layout-editor/component-picker-field.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAgBZ;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAA6B;IACtF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,CACL,cAAK,SAAS,EAAC,yBAAyB,YACtC,YAAG,SAAS,EAAC,8BAA8B,uJAGvC,GACA,CACP,CAAA;IACH,CAAC;IACD,OAAO,CACL,eAAK,SAAS,EAAC,yBAAyB,aACtC,gBAAO,SAAS,EAAC,wBAAwB,EAAC,OAAO,EAAC,uBAAuB,0BAAkB,EAC3F,kBACE,EAAE,EAAC,uBAAuB,EAC1B,SAAS,EAAC,uDAAuD,EACjE,YAAY,EAAC,EAAE,EACf,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK;oBAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,aAE/D,iBAAQ,KAAK,EAAC,EAAE,EAAC,QAAQ,uDAAgC,EACxD,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CACnB,kBAAmB,KAAK,EAAE,CAAC,CAAC,EAAE,aAC3B,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,KADtC,CAAC,CAAC,EAAE,CAER,CACV,CAAC,IACK,IACL,CACP,CAAA;AACH,CAAC"}
@@ -2,6 +2,7 @@
2
2
  * drag-utils.ts
3
3
  * Shared drag/drop utilities for the Kywi layout overlay editor.
4
4
  */
5
+ import type { EditorAction } from './editor-state.js';
5
6
  /** The visual state of an active drop zone. */
6
7
  export type DropFeedbackState = 'idle' | 'line' | 'placeholder';
7
8
  /** Public shape returned by createDwellTimer(). */
@@ -55,4 +56,51 @@ export declare function createDwellTimer(dwellMs?: number, onExpand?: (zoneId: s
55
56
  * Column values are grid units out of 12.
56
57
  */
57
58
  export declare const SECTION_TEMPLATES: SectionTemplate[];
59
+ /**
60
+ * The custom `data.current` shape draggable/droppable dnd-kit nodes in this
61
+ * editor carry (in addition to whatever `@dnd-kit/sortable`'s `useSortable`
62
+ * merges in under `.sortable`). `ModulePalette` items only ever appear as
63
+ * `active`; column drop zones and existing canvas modules can appear as
64
+ * either `active` or `over`.
65
+ */
66
+ export interface EditorDragDatum {
67
+ source?: 'palette' | 'canvas';
68
+ moduleType?: string;
69
+ moduleId?: string;
70
+ instanceId?: string;
71
+ /** The column a canvas module currently lives in, or a drop zone represents. */
72
+ columnId?: string;
73
+ /**
74
+ * Position within that column: for `active`, the dragged module's current
75
+ * index; for `over`, the index to insert/move to. A column's own (empty
76
+ * space) droppable zone reports its length here so dropping in blank space
77
+ * below existing modules appends, instead of always inserting at the top.
78
+ */
79
+ index?: number;
80
+ }
81
+ interface DragEndLike {
82
+ data: {
83
+ current?: Record<string, unknown> | undefined;
84
+ };
85
+ }
86
+ /**
87
+ * Turn a dnd-kit `DragEndEvent`'s `active`/`over` pair into the editor action
88
+ * it implies, or `null` for a drop that doesn't resolve to anything (dropped
89
+ * outside any zone, or missing data).
90
+ *
91
+ * kywi-cms#20: dropping a module (from the palette, or moving one already on
92
+ * the canvas) onto a column that already contains a module used to be a
93
+ * silent no-op. `over` resolved to the *existing module's* sortable node, and
94
+ * that node's custom data only ever carried `{ source, moduleId, instanceId }`
95
+ * — no `columnId`, so the `if (moduleType && columnId)` / `if (fromColumnId &&
96
+ * toColumnId)` guards below always failed for that case (a drop onto genuinely
97
+ * empty column space worked, because the column's own droppable wrapper *did*
98
+ * carry `columnId`). Least-surprise fix consistent with the reducer's existing
99
+ * index-based insertion (`ADD_MODULE`/`MOVE_MODULE` both splice at an index):
100
+ * every module now also reports its own `columnId` + `index`, so dropping
101
+ * directly on an occupied module inserts the dragged module *before* it
102
+ * (pushing it down) instead of being swallowed.
103
+ */
104
+ export declare function resolveDragEndAction(active: DragEndLike, over: DragEndLike | null | undefined): EditorAction | null;
105
+ export {};
58
106
  //# sourceMappingURL=drag-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"drag-utils.d.ts","sourceRoot":"","sources":["../../../src/admin/layout-editor/drag-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,+CAA+C;AAC/C,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,aAAa,CAAC;AAEhE,mDAAmD;AACnD,MAAM,WAAW,eAAe;IAC9B,QAAQ,IAAI,iBAAiB,CAAC;IAC9B,SAAS,IAAI,MAAM,GAAG,IAAI,CAAC;IAC3B;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,4DAA4D;IAC5D,SAAS,IAAI,IAAI,CAAC;IAClB,iEAAiE;IACjE,KAAK,IAAI,IAAI,CAAC;IACd,wDAAwD;IACxD,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,mEAAmE;AACnE,MAAM,WAAW,eAAe;IAC9B,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAID;;;;;GAKG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAWnC;AAID;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,GAAE,MAAY,EACrB,QAAQ,GAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAe,GAC5C,eAAe,CAsDjB;AAID;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,eAAe,EAQ9C,CAAC"}
1
+ {"version":3,"file":"drag-utils.d.ts","sourceRoot":"","sources":["../../../src/admin/layout-editor/drag-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD,+CAA+C;AAC/C,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,aAAa,CAAC;AAEhE,mDAAmD;AACnD,MAAM,WAAW,eAAe;IAC9B,QAAQ,IAAI,iBAAiB,CAAC;IAC9B,SAAS,IAAI,MAAM,GAAG,IAAI,CAAC;IAC3B;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,4DAA4D;IAC5D,SAAS,IAAI,IAAI,CAAC;IAClB,iEAAiE;IACjE,KAAK,IAAI,IAAI,CAAC;IACd,wDAAwD;IACxD,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,mEAAmE;AACnE,MAAM,WAAW,eAAe;IAC9B,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAID;;;;;GAKG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAWnC;AAID;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,GAAE,MAAY,EACrB,QAAQ,GAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAe,GAC5C,eAAe,CAsDjB;AAID;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,eAAe,EAQ9C,CAAC;AAIF;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAOD,UAAU,WAAW;IACnB,IAAI,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;KAAE,CAAC;CACzD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GACnC,YAAY,GAAG,IAAI,CAwBrB"}
@@ -95,4 +95,47 @@ export const SECTION_TEMPLATES = [
95
95
  { label: 'Asymmetric', columns: [8, 4] },
96
96
  { label: 'Quarters', columns: [3, 3, 3, 3] },
97
97
  ];
98
+ /**
99
+ * Turn a dnd-kit `DragEndEvent`'s `active`/`over` pair into the editor action
100
+ * it implies, or `null` for a drop that doesn't resolve to anything (dropped
101
+ * outside any zone, or missing data).
102
+ *
103
+ * kywi-cms#20: dropping a module (from the palette, or moving one already on
104
+ * the canvas) onto a column that already contains a module used to be a
105
+ * silent no-op. `over` resolved to the *existing module's* sortable node, and
106
+ * that node's custom data only ever carried `{ source, moduleId, instanceId }`
107
+ * — no `columnId`, so the `if (moduleType && columnId)` / `if (fromColumnId &&
108
+ * toColumnId)` guards below always failed for that case (a drop onto genuinely
109
+ * empty column space worked, because the column's own droppable wrapper *did*
110
+ * carry `columnId`). Least-surprise fix consistent with the reducer's existing
111
+ * index-based insertion (`ADD_MODULE`/`MOVE_MODULE` both splice at an index):
112
+ * every module now also reports its own `columnId` + `index`, so dropping
113
+ * directly on an occupied module inserts the dragged module *before* it
114
+ * (pushing it down) instead of being swallowed.
115
+ */
116
+ export function resolveDragEndAction(active, over) {
117
+ if (!over)
118
+ return null;
119
+ const activeData = active.data.current;
120
+ const overData = over.data.current;
121
+ const source = activeData?.source;
122
+ if (source === 'palette') {
123
+ const moduleType = activeData?.moduleType;
124
+ const columnId = overData?.columnId;
125
+ const index = overData?.index ?? 0;
126
+ if (!moduleType || !columnId)
127
+ return null;
128
+ return { type: 'ADD_MODULE', columnId, index, moduleType };
129
+ }
130
+ if (source === 'canvas') {
131
+ const fromColumnId = activeData?.columnId;
132
+ const fromIndex = activeData?.index;
133
+ const toColumnId = overData?.columnId;
134
+ const toIndex = overData?.index ?? 0;
135
+ if (!fromColumnId || !toColumnId || fromIndex === undefined)
136
+ return null;
137
+ return { type: 'MOVE_MODULE', fromColumnId, fromIndex, toColumnId, toIndex };
138
+ }
139
+ return null;
140
+ }
98
141
  //# sourceMappingURL=drag-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"drag-utils.js","sourceRoot":"","sources":["../../../src/admin/layout-editor/drag-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAmCH,iEAAiE;AAEjE;;;;;GAKG;AACH,MAAM,UAAU,UAAU;IACxB,gFAAgF;IAChF,IAAI,OAAO,UAAU,CAAC,MAAM,EAAE,UAAU,KAAK,UAAU,EAAE,CAAC;QACxD,OAAO,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IACxC,CAAC;IACD,wEAAwE;IACxE,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;QACnE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAC1C,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,iEAAiE;AAEjE;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAC9B,UAAkB,GAAG,EACrB,WAAqC,GAAG,EAAE,GAAE,CAAC;IAE7C,IAAI,KAAK,GAAsB,MAAM,CAAC;IACtC,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,IAAI,OAAO,GAAyC,IAAI,CAAC;IAEzD,SAAS,UAAU;QACjB,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO;QACL,QAAQ;YACN,OAAO,KAAK,CAAC;QACf,CAAC;QAED,SAAS;YACP,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,SAAS,CAAC,SAAiB;YACzB,4CAA4C;YAC5C,IAAI,MAAM,KAAK,SAAS,IAAI,KAAK,KAAK,MAAM;gBAAE,OAAO;YAErD,UAAU,EAAE,CAAC;YACb,MAAM,GAAG,SAAS,CAAC;YACnB,KAAK,GAAG,MAAM,CAAC;YAEf,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBACxB,OAAO,GAAG,IAAI,CAAC;gBACf,KAAK,GAAG,aAAa,CAAC;gBACtB,QAAQ,CAAC,SAAS,CAAC,CAAC;YACtB,CAAC,EAAE,OAAO,CAAC,CAAC;QACd,CAAC;QAED,SAAS;YACP,UAAU,EAAE,CAAC;YACb,KAAK,GAAG,MAAM,CAAC;YACf,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QAED,KAAK;YACH,UAAU,EAAE,CAAC;YACb,KAAK,GAAG,MAAM,CAAC;YACf,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QAED,OAAO;YACL,UAAU,EAAE,CAAC;YACb,KAAK,GAAG,MAAM,CAAC;YACf,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,iEAAiE;AAEjE;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAsB;IAClD,EAAE,KAAK,EAAE,YAAY,EAAO,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE;IAC3C,EAAE,KAAK,EAAE,aAAa,EAAM,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;IAC7C,EAAE,KAAK,EAAE,QAAQ,EAAW,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;IAChD,EAAE,KAAK,EAAE,cAAc,EAAK,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;IAC7C,EAAE,KAAK,EAAE,eAAe,EAAI,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;IAC7C,EAAE,KAAK,EAAE,YAAY,EAAO,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;IAC7C,EAAE,KAAK,EAAE,UAAU,EAAS,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;CACpD,CAAC"}
1
+ {"version":3,"file":"drag-utils.js","sourceRoot":"","sources":["../../../src/admin/layout-editor/drag-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAqCH,iEAAiE;AAEjE;;;;;GAKG;AACH,MAAM,UAAU,UAAU;IACxB,gFAAgF;IAChF,IAAI,OAAO,UAAU,CAAC,MAAM,EAAE,UAAU,KAAK,UAAU,EAAE,CAAC;QACxD,OAAO,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IACxC,CAAC;IACD,wEAAwE;IACxE,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;QACnE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAC1C,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,iEAAiE;AAEjE;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAC9B,UAAkB,GAAG,EACrB,WAAqC,GAAG,EAAE,GAAE,CAAC;IAE7C,IAAI,KAAK,GAAsB,MAAM,CAAC;IACtC,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,IAAI,OAAO,GAAyC,IAAI,CAAC;IAEzD,SAAS,UAAU;QACjB,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO;QACL,QAAQ;YACN,OAAO,KAAK,CAAC;QACf,CAAC;QAED,SAAS;YACP,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,SAAS,CAAC,SAAiB;YACzB,4CAA4C;YAC5C,IAAI,MAAM,KAAK,SAAS,IAAI,KAAK,KAAK,MAAM;gBAAE,OAAO;YAErD,UAAU,EAAE,CAAC;YACb,MAAM,GAAG,SAAS,CAAC;YACnB,KAAK,GAAG,MAAM,CAAC;YAEf,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBACxB,OAAO,GAAG,IAAI,CAAC;gBACf,KAAK,GAAG,aAAa,CAAC;gBACtB,QAAQ,CAAC,SAAS,CAAC,CAAC;YACtB,CAAC,EAAE,OAAO,CAAC,CAAC;QACd,CAAC;QAED,SAAS;YACP,UAAU,EAAE,CAAC;YACb,KAAK,GAAG,MAAM,CAAC;YACf,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QAED,KAAK;YACH,UAAU,EAAE,CAAC;YACb,KAAK,GAAG,MAAM,CAAC;YACf,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QAED,OAAO;YACL,UAAU,EAAE,CAAC;YACb,KAAK,GAAG,MAAM,CAAC;YACf,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,iEAAiE;AAEjE;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAsB;IAClD,EAAE,KAAK,EAAE,YAAY,EAAO,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE;IAC3C,EAAE,KAAK,EAAE,aAAa,EAAM,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;IAC7C,EAAE,KAAK,EAAE,QAAQ,EAAW,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;IAChD,EAAE,KAAK,EAAE,cAAc,EAAK,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;IAC7C,EAAE,KAAK,EAAE,eAAe,EAAI,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;IAC7C,EAAE,KAAK,EAAE,YAAY,EAAO,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;IAC7C,EAAE,KAAK,EAAE,UAAU,EAAS,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;CACpD,CAAC;AAoCF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAmB,EACnB,IAAoC;IAEpC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,OAAsC,CAAC;IACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAsC,CAAC;IAClE,MAAM,MAAM,GAAG,UAAU,EAAE,MAAM,CAAC;IAElC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,UAAU,EAAE,UAAU,CAAC;QAC1C,MAAM,QAAQ,GAAG,QAAQ,EAAE,QAAQ,CAAC;QACpC,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC1C,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAC7D,CAAC;IAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,MAAM,YAAY,GAAG,UAAU,EAAE,QAAQ,CAAC;QAC1C,MAAM,SAAS,GAAG,UAAU,EAAE,KAAK,CAAC;QACpC,MAAM,UAAU,GAAG,QAAQ,EAAE,QAAQ,CAAC;QACtC,MAAM,OAAO,GAAG,QAAQ,EAAE,KAAK,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,YAAY,IAAI,CAAC,UAAU,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACzE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;IAC/E,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,5 +1,11 @@
1
1
  import React from 'react';
2
2
  import type { EditorState, EditorAction } from './editor-state.js';
3
+ /** Resolve a connected component node to its live definition for canvas preview. */
4
+ type ComponentPreviewResolver = (componentId: string) => {
5
+ props: Record<string, unknown>;
6
+ style: Record<string, string>;
7
+ moduleType: string;
8
+ } | null;
3
9
  interface EditorCanvasProps {
4
10
  state: EditorState;
5
11
  dispatch: React.Dispatch<EditorAction>;
@@ -8,9 +14,11 @@ interface EditorCanvasProps {
8
14
  style?: Record<string, string>;
9
15
  }>>;
10
16
  onInsertSection: (regionName: string) => void;
17
+ /** Resolve connected component nodes so they preview as their real module (kywi-cms#46). */
18
+ resolveComponent?: ComponentPreviewResolver;
11
19
  /** When true, render enhanced overlay handles with grab/resize/select affordances. */
12
20
  overlayHandles?: boolean;
13
21
  }
14
- export declare function EditorCanvas({ state, dispatch, moduleComponents, onInsertSection, overlayHandles, }: EditorCanvasProps): import("react/jsx-runtime").JSX.Element;
22
+ export declare function EditorCanvas({ state, dispatch, moduleComponents, onInsertSection, resolveComponent, overlayHandles, }: EditorCanvasProps): import("react/jsx-runtime").JSX.Element;
15
23
  export {};
16
24
  //# sourceMappingURL=editor-canvas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"editor-canvas.d.ts","sourceRoot":"","sources":["../../../src/admin/layout-editor/editor-canvas.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAclE,UAAU,iBAAiB;IACzB,KAAK,EAAE,WAAW,CAAA;IAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;IACtC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,CAAC,CAAA;IACzH,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7C,sFAAsF;IACtF,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAwED,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,cAAsB,GACvB,EAAE,iBAAiB,2CAgFnB"}
1
+ {"version":3,"file":"editor-canvas.d.ts","sourceRoot":"","sources":["../../../src/admin/layout-editor/editor-canvas.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAelE,oFAAoF;AACpF,KAAK,wBAAwB,GAAG,CAC9B,WAAW,EAAE,MAAM,KAChB;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAA;AAEjG,UAAU,iBAAiB;IACzB,KAAK,EAAE,WAAW,CAAA;IAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;IACtC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,CAAC,CAAA;IACzH,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7C,4FAA4F;IAC5F,gBAAgB,CAAC,EAAE,wBAAwB,CAAA;IAC3C,sFAAsF;IACtF,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AA8GD,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,cAAsB,GACvB,EAAE,iBAAiB,2CAmFnB"}
@@ -10,6 +10,29 @@ import { SectionInsertLine } from './section-insert-line.js';
10
10
  import { ColumnOverlay } from './column-overlay.js';
11
11
  import { ColumnResizeHandle } from './column-resize-handle.js';
12
12
  import { ModuleOverlay } from './module-overlay.js';
13
+ import { ModuleEditorContext } from '../../layout/module-render-context.js';
14
+ /**
15
+ * Render a node's live preview in the canvas. A connected component node
16
+ * (`node.componentId`) resolves to its source component's module + props so the
17
+ * editor shows the real content instead of an empty Component placeholder,
18
+ * mirroring the public renderer's ModuleRenderer (kywi-cms#46).
19
+ */
20
+ function ModulePreview({ node, moduleComponents, resolveComponent, }) {
21
+ if (node.componentId && resolveComponent) {
22
+ const resolved = resolveComponent(node.componentId);
23
+ if (resolved) {
24
+ const Resolved = moduleComponents[resolved.moduleType];
25
+ if (Resolved) {
26
+ return _jsx(Resolved, { props: { ...resolved.props, ...node.props }, style: { ...resolved.style, ...node.style } });
27
+ }
28
+ return _jsxs("div", { className: "kywi-module kywi-module-unknown", children: ["Unknown: ", resolved.moduleType] });
29
+ }
30
+ }
31
+ const Component = moduleComponents[node.type];
32
+ return Component
33
+ ? _jsx(Component, { props: node.props, style: node.style })
34
+ : _jsxs("div", { className: "kywi-module kywi-module-unknown", children: ["Unknown: ", node.type] });
35
+ }
13
36
  // ── Helpers ───────────────────────────────────────────────────────────────────
14
37
  function getRegions(state) {
15
38
  if (!state.activeVariant)
@@ -25,21 +48,24 @@ function getRegions(state) {
25
48
  return state.layout.regions;
26
49
  }
27
50
  // ── DroppableColumn ───────────────────────────────────────────────────────────
28
- function DroppableColumn({ column, state, dispatch, moduleComponents, }) {
51
+ function DroppableColumn({ column, state, dispatch, moduleComponents, resolveComponent, }) {
52
+ // kywi-cms#20: this droppable represents the column's own (empty) space —
53
+ // dropping directly there appends to the end of the column instead of always
54
+ // inserting at the top, which `index: 0` (the old implicit default) would do
55
+ // even when the column already has modules. A drop directly onto an existing
56
+ // module is instead resolved via that module's own droppable, which carries
57
+ // its own columnId + index (see ModuleOverlay below / drag-utils.ts).
29
58
  const { setNodeRef } = useDroppable({
30
59
  id: `column-${column.id}`,
31
- data: { columnId: column.id },
60
+ data: { columnId: column.id, index: column.nodes.length },
32
61
  });
33
62
  const moduleIds = column.nodes.map(n => n.id);
34
- return (_jsx(ColumnOverlay, { columnId: column.id, width: column.width, children: _jsxs("div", { ref: setNodeRef, style: { minHeight: 40 }, children: [column.nodes.length === 0 && (_jsx("div", { className: "kywi-editor-column-empty", children: "Drag a module here" })), _jsx(SortableContext, { items: moduleIds, strategy: verticalListSortingStrategy, children: column.nodes.map(node => {
35
- const Component = moduleComponents[node.type];
36
- return (_jsx(ModuleOverlay, { moduleId: node.id, instanceId: node.instanceId, isSelected: state.selectedId === node.id, typeLabel: node.type, onSelect: () => dispatch({ type: 'SELECT', id: node.id, selectionType: 'module' }), children: Component
37
- ? _jsx(Component, { props: node.props, style: node.style })
38
- : _jsxs("div", { className: "kywi-module kywi-module-unknown", children: ["Unknown: ", node.type] }) }, node.id));
63
+ return (_jsx(ColumnOverlay, { columnId: column.id, width: column.width, children: _jsxs("div", { ref: setNodeRef, style: { minHeight: 40 }, children: [column.nodes.length === 0 && (_jsx("div", { className: "kywi-editor-column-empty", children: "Drag a module here" })), _jsx(SortableContext, { items: moduleIds, strategy: verticalListSortingStrategy, children: column.nodes.map((node, index) => {
64
+ return (_jsx(ModuleOverlay, { moduleId: node.id, instanceId: node.instanceId, columnId: column.id, index: index, isSelected: state.selectedId === node.id, typeLabel: node.type, onSelect: () => dispatch({ type: 'SELECT', id: node.id, selectionType: 'module' }), children: _jsx(ModulePreview, { node: node, moduleComponents: moduleComponents, ...(resolveComponent ? { resolveComponent } : {}) }) }, node.id));
39
65
  }) })] }) }));
40
66
  }
41
67
  // ── EditorCanvas ──────────────────────────────────────────────────────────────
42
- export function EditorCanvas({ state, dispatch, moduleComponents, onInsertSection, overlayHandles = false, }) {
68
+ export function EditorCanvas({ state, dispatch, moduleComponents, onInsertSection, resolveComponent, overlayHandles = false, }) {
43
69
  const regions = getRegions(state);
44
70
  const canvasClassName = overlayHandles
45
71
  ? 'kywi-editor-canvas-content kywi-editor-canvas-content--overlay'
@@ -48,12 +74,12 @@ export function EditorCanvas({ state, dispatch, moduleComponents, onInsertSectio
48
74
  // document yet" from "regions exist but happen to render nothing" so the
49
75
  // canvas never looks like a rendering bug when it's really just empty.
50
76
  const totalSections = Object.values(regions).reduce((count, sections) => count + sections.filter(isLayoutSection).length, 0);
51
- return (_jsxs("div", { className: canvasClassName, onClick: () => dispatch({ type: 'DESELECT' }), children: [totalSections === 0 && (_jsxs("div", { className: "kywi-editor-canvas-empty", "data-testid": "editor-canvas-empty", children: [_jsx("p", { className: "kywi-editor-canvas-empty-title", children: "This page currently renders its body content." }), _jsx("p", { className: "kywi-editor-canvas-empty-copy", children: "Add a section to design it with the layout engine." }), _jsx("button", { type: "button", className: "kywi-editor-canvas-empty-cta", onClick: (event) => {
52
- event.stopPropagation();
53
- onInsertSection(Object.keys(regions)[0] ?? 'main');
54
- }, children: "+ Add Section" })] })), Object.entries(regions).map(([regionName, sections]) => (_jsxs(RegionOverlay, { name: regionName, children: [sections.filter(isLayoutSection).map((section) => (_jsxs(React.Fragment, { children: [_jsx(SectionInsertLine, { onInsert: () => onInsertSection(regionName) }), _jsx(SectionOverlay, { sectionId: section.id, onAddColumn: () => dispatch({ type: 'ADD_COLUMN', sectionId: section.id }), onDelete: () => dispatch({ type: 'REMOVE_SECTION', sectionId: section.id }), children: section.columns.map((column, ci) => (_jsxs(React.Fragment, { children: [_jsx(DroppableColumn, { column: column, state: state, dispatch: dispatch, moduleComponents: moduleComponents }), ci < section.columns.length - 1 && (_jsx(ColumnResizeHandle, { leftWidth: column.width, rightWidth: section.columns[ci + 1].width, onResize: (lw, rw) => {
55
- const widths = section.columns.map((c, i) => i === ci ? lw : i === ci + 1 ? rw : c.width);
56
- dispatch({ type: 'RESIZE_COLUMNS', sectionId: section.id, widths });
57
- } }))] }, column.id))) })] }, section.id))), _jsx(SectionInsertLine, { onInsert: () => onInsertSection(regionName) })] }, regionName)))] }));
77
+ return (_jsx(ModuleEditorContext.Provider, { value: true, children: _jsxs("div", { className: canvasClassName, onClick: () => dispatch({ type: 'DESELECT' }), children: [totalSections === 0 && (_jsxs("div", { className: "kywi-editor-canvas-empty", "data-testid": "editor-canvas-empty", children: [_jsx("p", { className: "kywi-editor-canvas-empty-title", children: "This page currently renders its body content." }), _jsx("p", { className: "kywi-editor-canvas-empty-copy", children: "Add a section to design it with the layout engine." }), _jsx("button", { type: "button", className: "kywi-editor-canvas-empty-cta", onClick: (event) => {
78
+ event.stopPropagation();
79
+ onInsertSection(Object.keys(regions)[0] ?? 'main');
80
+ }, children: "+ Add Section" })] })), Object.entries(regions).map(([regionName, sections]) => (_jsxs(RegionOverlay, { name: regionName, children: [sections.filter(isLayoutSection).map((section) => (_jsxs(React.Fragment, { children: [_jsx(SectionInsertLine, { onInsert: () => onInsertSection(regionName) }), _jsx(SectionOverlay, { sectionId: section.id, onAddColumn: () => dispatch({ type: 'ADD_COLUMN', sectionId: section.id }), onDelete: () => dispatch({ type: 'REMOVE_SECTION', sectionId: section.id }), children: section.columns.map((column, ci) => (_jsxs(React.Fragment, { children: [_jsx(DroppableColumn, { column: column, state: state, dispatch: dispatch, moduleComponents: moduleComponents, ...(resolveComponent ? { resolveComponent } : {}) }), ci < section.columns.length - 1 && (_jsx(ColumnResizeHandle, { leftWidth: column.width, rightWidth: section.columns[ci + 1].width, onResize: (lw, rw) => {
81
+ const widths = section.columns.map((c, i) => i === ci ? lw : i === ci + 1 ? rw : c.width);
82
+ dispatch({ type: 'RESIZE_COLUMNS', sectionId: section.id, widths });
83
+ } }))] }, column.id))) })] }, section.id))), _jsx(SectionInsertLine, { onInsert: () => onInsertSection(regionName) })] }, regionName)))] }) }));
58
84
  }
59
85
  //# sourceMappingURL=editor-canvas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"editor-canvas.js","sourceRoot":"","sources":["../../../src/admin/layout-editor/editor-canvas.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editor-canvas.js","sourceRoot":"","sources":["../../../src/admin/layout-editor/editor-canvas.tsx"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  * Core reducer for the Kywi layout overlay editor.
4
4
  * All editor components dispatch actions through this reducer.
5
5
  */
6
- import type { LayoutDocument } from '../../layout/types.js';
6
+ import type { LayoutDocument, LayoutSection, ModuleNode } from '../../layout/types.js';
7
7
  export type SelectionType = 'module' | 'column' | 'section' | null;
8
8
  export interface DragState {
9
9
  isDragging: boolean;
@@ -25,6 +25,10 @@ export type EditorAction = {
25
25
  type: 'ADD_SECTION';
26
26
  regionName: string;
27
27
  columns: number[];
28
+ } | {
29
+ type: 'ADD_SECTIONS';
30
+ regionName: string;
31
+ sections: LayoutSection[];
28
32
  } | {
29
33
  type: 'REMOVE_SECTION';
30
34
  sectionId: string;
@@ -49,6 +53,10 @@ export type EditorAction = {
49
53
  } | {
50
54
  type: 'REMOVE_MODULE';
51
55
  moduleId: string;
56
+ } | {
57
+ type: 'REPLACE_MODULE';
58
+ moduleId: string;
59
+ node: ModuleNode;
52
60
  } | {
53
61
  type: 'UPDATE_PROPS';
54
62
  moduleId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"editor-state.d.ts","sourceRoot":"","sources":["../../../src/admin/layout-editor/editor-state.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,cAAc,EAMf,MAAM,uBAAuB,CAAA;AAM9B,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAA;AAElE,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,OAAO,CAAA;IACnB,UAAU,EAAE,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAA;IACvC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,cAAc,CAAA;IACtB,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,YAAY,EAAE,aAAa,CAAA;IAC3B,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CAC7B;AAED,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GAC/D;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC3E;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACrG;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC1E;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GACzE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,aAAa,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AA6LpB,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,cAAc,GAAG,WAAW,CAYtE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,GAAG,WAAW,CA2RnF"}
1
+ {"version":3,"file":"editor-state.d.ts","sourceRoot":"","sources":["../../../src/admin/layout-editor/editor-state.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import { isLayoutSection } from '../../layout/types.js';
7
7
  import { generateId } from './drag-utils.js';
8
+ import { cloneSection } from './component-actions.js';
8
9
  // ── Helpers (internal) ───────────────────────────────────────────
9
10
  /**
10
11
  * If activeVariant is set, find the matching pageVariant or abExperiment
@@ -234,6 +235,21 @@ export function editorReducer(state, action) {
234
235
  const hist = commitToHistory(state, layout);
235
236
  return { ...state, layout, ...hist, isDirty: true };
236
237
  }
238
+ case 'ADD_SECTIONS': {
239
+ // Apply a saved layout (kywi-cms#47): append its sections to the target
240
+ // region. Every section/column/module gets fresh ids (cloneSection) so a
241
+ // template applied twice — or applied to a page that already holds a copy
242
+ // — never collides. Append (not replace) is the least-destructive choice
243
+ // and matches ADD_SECTION's own append semantics.
244
+ if (action.sections.length === 0)
245
+ return state;
246
+ const regions = cloneRegions(getActiveRegions(state));
247
+ const existing = regions[action.regionName] ?? [];
248
+ regions[action.regionName] = [...existing, ...action.sections.map(cloneSection)];
249
+ const layout = setActiveRegions(state, regions);
250
+ const hist = commitToHistory(state, layout);
251
+ return { ...state, layout, ...hist, isDirty: true };
252
+ }
237
253
  case 'REMOVE_SECTION': {
238
254
  const regions = cloneRegions(getActiveRegions(state));
239
255
  const found = findSection(regions, action.sectionId);
@@ -353,6 +369,24 @@ export function editorReducer(state, action) {
353
369
  const hist = commitToHistory(state, layout);
354
370
  return { ...state, layout, ...hist, isDirty: true };
355
371
  }
372
+ case 'REPLACE_MODULE': {
373
+ // Swap a module node in place (kywi-cms#46): used to connect a node to a
374
+ // saved component (props become live-resolved) and to detach it back into
375
+ // an inline copy. The replacement node is built by the caller (which holds
376
+ // the component definition); the reducer just positions it.
377
+ const regions = cloneRegions(getActiveRegions(state));
378
+ const found = findModule(regions, action.moduleId);
379
+ if (!found) {
380
+ const layout = setActiveRegions(state, regions);
381
+ const hist = commitToHistory(state, layout);
382
+ return { ...state, layout, ...hist, isDirty: true };
383
+ }
384
+ const col = found.column;
385
+ col.nodes = col.nodes.map(n => (n.id === action.moduleId ? action.node : n));
386
+ const layout = setActiveRegions(state, regions);
387
+ const hist = commitToHistory(state, layout);
388
+ return { ...state, layout, ...hist, isDirty: true };
389
+ }
356
390
  case 'UPDATE_PROPS': {
357
391
  const regions = cloneRegions(getActiveRegions(state));
358
392
  const found = findModule(regions, action.moduleId);
@@ -1 +1 @@
1
- {"version":3,"file":"editor-state.js","sourceRoot":"","sources":["../../../src/admin/layout-editor/editor-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editor-state.js","sourceRoot":"","sources":["../../../src/admin/layout-editor/editor-state.ts"],"names":[],"mappings":"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"}
@@ -1079,6 +1079,45 @@
1079
1079
  color: #fff;
1080
1080
  }
1081
1081
 
1082
+ /* Reusable-component controls in the props panel (kywi-cms#46). */
1083
+ .kywi-editor-props-component-action {
1084
+ display: inline-flex;
1085
+ align-items: center;
1086
+ justify-content: center;
1087
+ gap: 7px;
1088
+ width: 100%;
1089
+ height: 34px;
1090
+ margin-bottom: var(--kywi-editor-sp-2);
1091
+ border-radius: var(--kywi-editor-radius-sm);
1092
+ border: 1px solid var(--kywi-editor-border-strong);
1093
+ background: var(--kywi-editor-panel-bg);
1094
+ color: var(--kywi-editor-text-strong);
1095
+ font-size: 12.5px;
1096
+ font-weight: 600;
1097
+ font-family: var(--kywi-editor-font);
1098
+ cursor: pointer;
1099
+ transition: border-color var(--kywi-editor-ease), background var(--kywi-editor-ease);
1100
+ }
1101
+ .kywi-editor-props-component-action:hover {
1102
+ border-color: var(--kywi-editor-accent);
1103
+ background: var(--kywi-editor-accent-light);
1104
+ }
1105
+ .kywi-editor-props-linked {
1106
+ display: flex;
1107
+ gap: var(--kywi-editor-sp-2);
1108
+ padding: var(--kywi-editor-sp-3);
1109
+ border: 1px solid var(--kywi-editor-accent-ring);
1110
+ background: var(--kywi-editor-accent-light);
1111
+ border-radius: var(--kywi-editor-radius);
1112
+ }
1113
+ .kywi-editor-props-linked-icon { color: var(--kywi-editor-accent); flex-shrink: 0; }
1114
+ .kywi-editor-props-linked-note {
1115
+ margin: 0;
1116
+ font-size: 12.5px;
1117
+ line-height: 1.5;
1118
+ color: var(--kywi-editor-text-strong);
1119
+ }
1120
+
1082
1121
  /* ── Prop fields ───────────────────────────────────────────────────────────── */
1083
1122
  .kywi-editor-prop-group { margin-bottom: var(--kywi-editor-sp-3); }
1084
1123
  .kywi-editor-prop-label {
@@ -1354,6 +1393,50 @@ input[type="color"].kywi-token-raw-input { height: 34px; padding: 3px; cursor: p
1354
1393
  grid-template-columns: repeat(2, 1fr);
1355
1394
  gap: var(--kywi-editor-sp-2);
1356
1395
  }
1396
+ /* Saved layouts group (kywi-cms#47) — appears below the built-in presets. */
1397
+ .kywi-editor-template-saved {
1398
+ margin-top: var(--kywi-editor-sp-4);
1399
+ padding-top: var(--kywi-editor-sp-4);
1400
+ border-top: 1px solid var(--kywi-editor-border-strong);
1401
+ }
1402
+ .kywi-editor-template-modal-subtitle {
1403
+ font-size: 10px;
1404
+ font-weight: 700;
1405
+ letter-spacing: 0.12em;
1406
+ text-transform: uppercase;
1407
+ color: var(--kywi-editor-panel-faint);
1408
+ margin-bottom: var(--kywi-editor-sp-2);
1409
+ }
1410
+ .kywi-editor-template-saved-list {
1411
+ display: flex;
1412
+ flex-direction: column;
1413
+ gap: var(--kywi-editor-sp-2);
1414
+ }
1415
+ .kywi-editor-template-saved-option {
1416
+ display: flex;
1417
+ flex-direction: column;
1418
+ align-items: flex-start;
1419
+ gap: 2px;
1420
+ text-align: left;
1421
+ border: 1px solid var(--kywi-editor-border-strong);
1422
+ border-radius: var(--kywi-editor-radius);
1423
+ padding: var(--kywi-editor-sp-3);
1424
+ background: var(--kywi-editor-panel-bg);
1425
+ cursor: pointer;
1426
+ font-family: var(--kywi-editor-font);
1427
+ }
1428
+ .kywi-editor-template-saved-option:hover {
1429
+ border-color: var(--kywi-editor-accent);
1430
+ }
1431
+ .kywi-editor-template-saved-name {
1432
+ font-size: 14px;
1433
+ font-weight: 600;
1434
+ color: var(--kywi-editor-text-strong);
1435
+ }
1436
+ .kywi-editor-template-saved-meta {
1437
+ font-size: 12px;
1438
+ color: var(--kywi-editor-panel-faint);
1439
+ }
1357
1440
  .kywi-editor-template-option {
1358
1441
  border: 1px solid var(--kywi-editor-border-strong);
1359
1442
  border-radius: var(--kywi-editor-radius);
@@ -0,0 +1,17 @@
1
+ interface FormPickerFieldProps {
2
+ id: string;
3
+ /** Currently referenced form slug. */
4
+ value: string;
5
+ onChange: (slug: string) => void;
6
+ }
7
+ /**
8
+ * Primary UX for wiring a Form / Form Embed module to a form built in the Forms
9
+ * admin: a dropdown of existing forms keyed by slug, instead of hand-typing a
10
+ * slug and re-specifying fields as raw JSON (kywi-cms#35). The module then
11
+ * resolves its rendering/validation/success from that form definition at render
12
+ * time, so there's a single source of truth. The raw-JSON `fields` prop remains
13
+ * available as an advanced/legacy fallback.
14
+ */
15
+ export declare function FormPickerField({ id, value, onChange }: FormPickerFieldProps): import("react/jsx-runtime").JSX.Element;
16
+ export {};
17
+ //# sourceMappingURL=form-picker-field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-picker-field.d.ts","sourceRoot":"","sources":["../../../src/admin/layout-editor/form-picker-field.tsx"],"names":[],"mappings":"AAUA,UAAU,oBAAoB;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CACjC;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,oBAAoB,2CA4C5E"}