@kywi-software/core 0.14.0 → 0.15.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 (478) hide show
  1. package/AGENT-PATTERNS.md +153 -17
  2. package/README.md +38 -12
  3. package/dist/admin/chrome.d.ts.map +1 -1
  4. package/dist/admin/chrome.js +6 -7
  5. package/dist/admin/chrome.js.map +1 -1
  6. package/dist/admin/field-components.d.ts.map +1 -1
  7. package/dist/admin/field-components.js +27 -1
  8. package/dist/admin/field-components.js.map +1 -1
  9. package/dist/admin/form-helpers.d.ts.map +1 -1
  10. package/dist/admin/form-helpers.js +6 -1
  11. package/dist/admin/form-helpers.js.map +1 -1
  12. package/dist/admin/layout-editor/chrome-env.d.ts +35 -0
  13. package/dist/admin/layout-editor/chrome-env.d.ts.map +1 -0
  14. package/dist/admin/layout-editor/chrome-env.js +13 -0
  15. package/dist/admin/layout-editor/chrome-env.js.map +1 -0
  16. package/dist/admin/layout-editor/component-actions.d.ts +58 -7
  17. package/dist/admin/layout-editor/component-actions.d.ts.map +1 -1
  18. package/dist/admin/layout-editor/component-actions.js +131 -5
  19. package/dist/admin/layout-editor/component-actions.js.map +1 -1
  20. package/dist/admin/layout-editor/component-fork.d.ts +4 -4
  21. package/dist/admin/layout-editor/component-fork.d.ts.map +1 -1
  22. package/dist/admin/layout-editor/component-fork.js +76 -10
  23. package/dist/admin/layout-editor/component-fork.js.map +1 -1
  24. package/dist/admin/layout-editor/component-picker-field.d.ts +17 -3
  25. package/dist/admin/layout-editor/component-picker-field.d.ts.map +1 -1
  26. package/dist/admin/layout-editor/component-picker-field.js +5 -2
  27. package/dist/admin/layout-editor/component-picker-field.js.map +1 -1
  28. package/dist/admin/layout-editor/drag-feedback.d.ts +25 -1
  29. package/dist/admin/layout-editor/drag-feedback.d.ts.map +1 -1
  30. package/dist/admin/layout-editor/drag-feedback.js +9 -0
  31. package/dist/admin/layout-editor/drag-feedback.js.map +1 -1
  32. package/dist/admin/layout-editor/drag-utils.d.ts +103 -5
  33. package/dist/admin/layout-editor/drag-utils.d.ts.map +1 -1
  34. package/dist/admin/layout-editor/drag-utils.js +131 -4
  35. package/dist/admin/layout-editor/drag-utils.js.map +1 -1
  36. package/dist/admin/layout-editor/editor-canvas.d.ts +11 -0
  37. package/dist/admin/layout-editor/editor-canvas.d.ts.map +1 -1
  38. package/dist/admin/layout-editor/editor-canvas.js +134 -20
  39. package/dist/admin/layout-editor/editor-canvas.js.map +1 -1
  40. package/dist/admin/layout-editor/editor-dialog.d.ts +58 -3
  41. package/dist/admin/layout-editor/editor-dialog.d.ts.map +1 -1
  42. package/dist/admin/layout-editor/editor-dialog.js +71 -9
  43. package/dist/admin/layout-editor/editor-dialog.js.map +1 -1
  44. package/dist/admin/layout-editor/editor-state.d.ts +119 -0
  45. package/dist/admin/layout-editor/editor-state.d.ts.map +1 -1
  46. package/dist/admin/layout-editor/editor-state.js +188 -6
  47. package/dist/admin/layout-editor/editor-state.js.map +1 -1
  48. package/dist/admin/layout-editor/editor-toolbar.d.ts +10 -1
  49. package/dist/admin/layout-editor/editor-toolbar.d.ts.map +1 -1
  50. package/dist/admin/layout-editor/editor-toolbar.js +2 -2
  51. package/dist/admin/layout-editor/editor-toolbar.js.map +1 -1
  52. package/dist/admin/layout-editor/editor.css +216 -8
  53. package/dist/admin/layout-editor/inline-text.d.ts +15 -1
  54. package/dist/admin/layout-editor/inline-text.d.ts.map +1 -1
  55. package/dist/admin/layout-editor/inline-text.js +30 -2
  56. package/dist/admin/layout-editor/inline-text.js.map +1 -1
  57. package/dist/admin/layout-editor/layout-editor.d.ts +21 -16
  58. package/dist/admin/layout-editor/layout-editor.d.ts.map +1 -1
  59. package/dist/admin/layout-editor/layout-editor.js +40 -17
  60. package/dist/admin/layout-editor/layout-editor.js.map +1 -1
  61. package/dist/admin/layout-editor/linked-component-notes.d.ts +88 -0
  62. package/dist/admin/layout-editor/linked-component-notes.d.ts.map +1 -0
  63. package/dist/admin/layout-editor/linked-component-notes.js +88 -0
  64. package/dist/admin/layout-editor/linked-component-notes.js.map +1 -0
  65. package/dist/admin/layout-editor/module-overlay.d.ts +23 -4
  66. package/dist/admin/layout-editor/module-overlay.d.ts.map +1 -1
  67. package/dist/admin/layout-editor/module-overlay.js +56 -10
  68. package/dist/admin/layout-editor/module-overlay.js.map +1 -1
  69. package/dist/admin/layout-editor/module-variant-container-config.d.ts.map +1 -1
  70. package/dist/admin/layout-editor/module-variant-container-config.js +9 -2
  71. package/dist/admin/layout-editor/module-variant-container-config.js.map +1 -1
  72. package/dist/admin/layout-editor/module-variant-container-panel.d.ts +75 -0
  73. package/dist/admin/layout-editor/module-variant-container-panel.d.ts.map +1 -0
  74. package/dist/admin/layout-editor/module-variant-container-panel.js +29 -0
  75. package/dist/admin/layout-editor/module-variant-container-panel.js.map +1 -0
  76. package/dist/admin/layout-editor/node-lookup.d.ts.map +1 -1
  77. package/dist/admin/layout-editor/node-lookup.js +33 -3
  78. package/dist/admin/layout-editor/node-lookup.js.map +1 -1
  79. package/dist/admin/layout-editor/overlay-shell.d.ts.map +1 -1
  80. package/dist/admin/layout-editor/overlay-shell.js +19 -4
  81. package/dist/admin/layout-editor/overlay-shell.js.map +1 -1
  82. package/dist/admin/layout-editor/props-panel.d.ts +28 -11
  83. package/dist/admin/layout-editor/props-panel.d.ts.map +1 -1
  84. package/dist/admin/layout-editor/props-panel.js +75 -125
  85. package/dist/admin/layout-editor/props-panel.js.map +1 -1
  86. package/dist/admin/layout-editor/section-variant-container-config.d.ts.map +1 -1
  87. package/dist/admin/layout-editor/section-variant-container-config.js +11 -2
  88. package/dist/admin/layout-editor/section-variant-container-config.js.map +1 -1
  89. package/dist/admin/layout-editor/use-chrome-flip.d.ts +99 -11
  90. package/dist/admin/layout-editor/use-chrome-flip.d.ts.map +1 -1
  91. package/dist/admin/layout-editor/use-chrome-flip.js +268 -97
  92. package/dist/admin/layout-editor/use-chrome-flip.js.map +1 -1
  93. package/dist/admin/layout-editor/use-component-connect.d.ts +13 -0
  94. package/dist/admin/layout-editor/use-component-connect.d.ts.map +1 -1
  95. package/dist/admin/layout-editor/use-component-connect.js +116 -20
  96. package/dist/admin/layout-editor/use-component-connect.js.map +1 -1
  97. package/dist/admin/layout-editor/use-component-fork.d.ts +49 -19
  98. package/dist/admin/layout-editor/use-component-fork.d.ts.map +1 -1
  99. package/dist/admin/layout-editor/use-component-fork.js +28 -19
  100. package/dist/admin/layout-editor/use-component-fork.js.map +1 -1
  101. package/dist/admin/layout-editor/use-component-library.d.ts +4 -4
  102. package/dist/admin/layout-editor/use-component-library.d.ts.map +1 -1
  103. package/dist/admin/layout-editor/use-component-library.js +1 -1
  104. package/dist/admin/layout-editor/use-component-library.js.map +1 -1
  105. package/dist/admin/layout-editor/use-editor-dnd.d.ts +10 -0
  106. package/dist/admin/layout-editor/use-editor-dnd.d.ts.map +1 -1
  107. package/dist/admin/layout-editor/use-editor-dnd.js +234 -14
  108. package/dist/admin/layout-editor/use-editor-dnd.js.map +1 -1
  109. package/dist/admin/layout-editor/variant-container-config.d.ts.map +1 -1
  110. package/dist/admin/layout-editor/variant-container-config.js +1 -1
  111. package/dist/admin/layout-editor/variant-container-config.js.map +1 -1
  112. package/dist/admin/layout-editor/variant-editor.d.ts +16 -15
  113. package/dist/admin/layout-editor/variant-editor.d.ts.map +1 -1
  114. package/dist/admin/layout-editor/variant-editor.js +16 -5
  115. package/dist/admin/layout-editor/variant-editor.js.map +1 -1
  116. package/dist/admin/primitives.d.ts.map +1 -1
  117. package/dist/admin/primitives.js +1 -1
  118. package/dist/admin/primitives.js.map +1 -1
  119. package/dist/admin/registry.d.ts +12 -0
  120. package/dist/admin/registry.d.ts.map +1 -1
  121. package/dist/admin/registry.js +12 -0
  122. package/dist/admin/registry.js.map +1 -1
  123. package/dist/admin/server.d.ts +10 -1
  124. package/dist/admin/server.d.ts.map +1 -1
  125. package/dist/admin/server.js +4 -1
  126. package/dist/admin/server.js.map +1 -1
  127. package/dist/admin/site-switcher.d.ts +16 -3
  128. package/dist/admin/site-switcher.d.ts.map +1 -1
  129. package/dist/admin/site-switcher.js +18 -3
  130. package/dist/admin/site-switcher.js.map +1 -1
  131. package/dist/admin/styles/admin.css +0 -3
  132. package/dist/admin/surface-matcher.d.ts +6 -2
  133. package/dist/admin/surface-matcher.d.ts.map +1 -1
  134. package/dist/admin/surface-matcher.js +42 -5
  135. package/dist/admin/surface-matcher.js.map +1 -1
  136. package/dist/admin/surfaces/components/components-data.d.ts +31 -11
  137. package/dist/admin/surfaces/components/components-data.d.ts.map +1 -1
  138. package/dist/admin/surfaces/components/components-data.js +17 -4
  139. package/dist/admin/surfaces/components/components-data.js.map +1 -1
  140. package/dist/admin/surfaces/components/components-list.d.ts.map +1 -1
  141. package/dist/admin/surfaces/components/components-list.js +20 -7
  142. package/dist/admin/surfaces/components/components-list.js.map +1 -1
  143. package/dist/admin/surfaces/components/definition-canvas.d.ts +11 -3
  144. package/dist/admin/surfaces/components/definition-canvas.d.ts.map +1 -1
  145. package/dist/admin/surfaces/components/definition-canvas.js +138 -17
  146. package/dist/admin/surfaces/components/definition-canvas.js.map +1 -1
  147. package/dist/admin/surfaces/dashboard/dashboard-index.d.ts.map +1 -1
  148. package/dist/admin/surfaces/dashboard/dashboard-index.js +2 -2
  149. package/dist/admin/surfaces/dashboard/dashboard-index.js.map +1 -1
  150. package/dist/admin/surfaces/layouts/layout-editor-client.d.ts.map +1 -1
  151. package/dist/admin/surfaces/layouts/layout-editor-client.js +12 -11
  152. package/dist/admin/surfaces/layouts/layout-editor-client.js.map +1 -1
  153. package/dist/admin/surfaces/menus/menu-editor.d.ts.map +1 -1
  154. package/dist/admin/surfaces/menus/menu-editor.js +17 -4
  155. package/dist/admin/surfaces/menus/menu-editor.js.map +1 -1
  156. package/dist/admin/surfaces/menus/menu-tree.d.ts +18 -4
  157. package/dist/admin/surfaces/menus/menu-tree.d.ts.map +1 -1
  158. package/dist/admin/surfaces/menus/menu-tree.js +18 -3
  159. package/dist/admin/surfaces/menus/menu-tree.js.map +1 -1
  160. package/dist/admin/surfaces/menus/menus-data.d.ts +18 -0
  161. package/dist/admin/surfaces/menus/menus-data.d.ts.map +1 -1
  162. package/dist/admin/surfaces/menus/menus-data.js +4 -0
  163. package/dist/admin/surfaces/menus/menus-data.js.map +1 -1
  164. package/dist/admin/surfaces/menus/menus-list.d.ts.map +1 -1
  165. package/dist/admin/surfaces/menus/menus-list.js +2 -12
  166. package/dist/admin/surfaces/menus/menus-list.js.map +1 -1
  167. package/dist/admin/surfaces/users/users-data.d.ts +14 -0
  168. package/dist/admin/surfaces/users/users-data.d.ts.map +1 -1
  169. package/dist/admin/surfaces/users/users-data.js +19 -0
  170. package/dist/admin/surfaces/users/users-data.js.map +1 -1
  171. package/dist/admin/surfaces/users/users-detail.d.ts.map +1 -1
  172. package/dist/admin/surfaces/users/users-detail.js +40 -4
  173. package/dist/admin/surfaces/users/users-detail.js.map +1 -1
  174. package/dist/admin/surfaces/users/users-new.d.ts.map +1 -1
  175. package/dist/admin/surfaces/users/users-new.js +8 -5
  176. package/dist/admin/surfaces/users/users-new.js.map +1 -1
  177. package/dist/admin/user-form.d.ts +10 -1
  178. package/dist/admin/user-form.d.ts.map +1 -1
  179. package/dist/admin/user-form.js +2 -2
  180. package/dist/admin/user-form.js.map +1 -1
  181. package/dist/api/admin-features-routes.js +2 -2
  182. package/dist/api/admin-features-routes.js.map +1 -1
  183. package/dist/api/audience-preview-routes.d.ts +7 -0
  184. package/dist/api/audience-preview-routes.d.ts.map +1 -1
  185. package/dist/api/audience-preview-routes.js +4 -4
  186. package/dist/api/audience-preview-routes.js.map +1 -1
  187. package/dist/api/audience-routes.d.ts +7 -0
  188. package/dist/api/audience-routes.d.ts.map +1 -1
  189. package/dist/api/audience-routes.js +21 -15
  190. package/dist/api/audience-routes.js.map +1 -1
  191. package/dist/api/audience-runtime-routes.d.ts +6 -0
  192. package/dist/api/audience-runtime-routes.d.ts.map +1 -1
  193. package/dist/api/audience-runtime-routes.js +38 -3
  194. package/dist/api/audience-runtime-routes.js.map +1 -1
  195. package/dist/api/auth-routes.d.ts.map +1 -1
  196. package/dist/api/auth-routes.js +10 -4
  197. package/dist/api/auth-routes.js.map +1 -1
  198. package/dist/api/auth.d.ts +1 -0
  199. package/dist/api/auth.d.ts.map +1 -1
  200. package/dist/api/auth.js +43 -3
  201. package/dist/api/auth.js.map +1 -1
  202. package/dist/api/bulk-routes.d.ts.map +1 -1
  203. package/dist/api/bulk-routes.js +7 -7
  204. package/dist/api/bulk-routes.js.map +1 -1
  205. package/dist/api/category-routes.js +3 -3
  206. package/dist/api/category-routes.js.map +1 -1
  207. package/dist/api/comment-routes.js +8 -8
  208. package/dist/api/comment-routes.js.map +1 -1
  209. package/dist/api/component-routes.d.ts +25 -0
  210. package/dist/api/component-routes.d.ts.map +1 -1
  211. package/dist/api/component-routes.js +41 -16
  212. package/dist/api/component-routes.js.map +1 -1
  213. package/dist/api/content-routes.js +13 -13
  214. package/dist/api/content-routes.js.map +1 -1
  215. package/dist/api/dashboard-routes.js +1 -1
  216. package/dist/api/dashboard-routes.js.map +1 -1
  217. package/dist/api/experiment-routes.d.ts +7 -0
  218. package/dist/api/experiment-routes.d.ts.map +1 -1
  219. package/dist/api/experiment-routes.js +8 -8
  220. package/dist/api/experiment-routes.js.map +1 -1
  221. package/dist/api/experiment-runtime-routes.d.ts +6 -0
  222. package/dist/api/experiment-runtime-routes.d.ts.map +1 -1
  223. package/dist/api/experiment-runtime-routes.js +47 -11
  224. package/dist/api/experiment-runtime-routes.js.map +1 -1
  225. package/dist/api/feed-routes.d.ts +2 -2
  226. package/dist/api/feed-routes.js +3 -3
  227. package/dist/api/feed-routes.js.map +1 -1
  228. package/dist/api/form-routes.js +4 -4
  229. package/dist/api/form-routes.js.map +1 -1
  230. package/dist/api/graphql/resolvers.d.ts +1 -1
  231. package/dist/api/graphql/resolvers.d.ts.map +1 -1
  232. package/dist/api/graphql/resolvers.js +68 -33
  233. package/dist/api/graphql/resolvers.js.map +1 -1
  234. package/dist/api/group-routes.js +6 -6
  235. package/dist/api/group-routes.js.map +1 -1
  236. package/dist/api/index.d.ts +1 -0
  237. package/dist/api/index.d.ts.map +1 -1
  238. package/dist/api/index.js +39 -6
  239. package/dist/api/index.js.map +1 -1
  240. package/dist/api/layout-routes.d.ts.map +1 -1
  241. package/dist/api/layout-routes.js +27 -3
  242. package/dist/api/layout-routes.js.map +1 -1
  243. package/dist/api/media-routes.d.ts.map +1 -1
  244. package/dist/api/media-routes.js +50 -26
  245. package/dist/api/media-routes.js.map +1 -1
  246. package/dist/api/menu-routes.d.ts +9 -1
  247. package/dist/api/menu-routes.d.ts.map +1 -1
  248. package/dist/api/menu-routes.js +44 -10
  249. package/dist/api/menu-routes.js.map +1 -1
  250. package/dist/api/nav-routes.d.ts +6 -0
  251. package/dist/api/nav-routes.d.ts.map +1 -1
  252. package/dist/api/nav-routes.js +24 -3
  253. package/dist/api/nav-routes.js.map +1 -1
  254. package/dist/api/openapi.d.ts.map +1 -1
  255. package/dist/api/openapi.js +68 -33
  256. package/dist/api/openapi.js.map +1 -1
  257. package/dist/api/search-routes.js +2 -2
  258. package/dist/api/search-routes.js.map +1 -1
  259. package/dist/api/section-template-routes.d.ts.map +1 -1
  260. package/dist/api/section-template-routes.js +35 -18
  261. package/dist/api/section-template-routes.js.map +1 -1
  262. package/dist/api/site-admin-routes.d.ts +10 -1
  263. package/dist/api/site-admin-routes.d.ts.map +1 -1
  264. package/dist/api/site-admin-routes.js +21 -1
  265. package/dist/api/site-admin-routes.js.map +1 -1
  266. package/dist/api/site-context.d.ts +35 -5
  267. package/dist/api/site-context.d.ts.map +1 -1
  268. package/dist/api/site-context.js +21 -6
  269. package/dist/api/site-context.js.map +1 -1
  270. package/dist/api/tag-routes.js +3 -3
  271. package/dist/api/tag-routes.js.map +1 -1
  272. package/dist/api/translation-routes.js +5 -5
  273. package/dist/api/translation-routes.js.map +1 -1
  274. package/dist/api/user-routes.d.ts.map +1 -1
  275. package/dist/api/user-routes.js +134 -19
  276. package/dist/api/user-routes.js.map +1 -1
  277. package/dist/api/webhook-routes.js +5 -5
  278. package/dist/api/webhook-routes.js.map +1 -1
  279. package/dist/api/workflow-routes.js +8 -8
  280. package/dist/api/workflow-routes.js.map +1 -1
  281. package/dist/audiences/collectors/identity.d.ts +14 -1
  282. package/dist/audiences/collectors/identity.d.ts.map +1 -1
  283. package/dist/audiences/collectors/identity.js +16 -3
  284. package/dist/audiences/collectors/identity.js.map +1 -1
  285. package/dist/audiences/collectors/index.d.ts +12 -2
  286. package/dist/audiences/collectors/index.d.ts.map +1 -1
  287. package/dist/audiences/collectors/index.js +16 -5
  288. package/dist/audiences/collectors/index.js.map +1 -1
  289. package/dist/audiences/collectors/pinned-audience.d.ts +28 -2
  290. package/dist/audiences/collectors/pinned-audience.d.ts.map +1 -1
  291. package/dist/audiences/collectors/pinned-audience.js +35 -5
  292. package/dist/audiences/collectors/pinned-audience.js.map +1 -1
  293. package/dist/audiences/collectors/utm.d.ts +15 -1
  294. package/dist/audiences/collectors/utm.d.ts.map +1 -1
  295. package/dist/audiences/collectors/utm.js +16 -2
  296. package/dist/audiences/collectors/utm.js.map +1 -1
  297. package/dist/audiences/consent-config.d.ts +21 -0
  298. package/dist/audiences/consent-config.d.ts.map +1 -0
  299. package/dist/audiences/consent-config.js +15 -0
  300. package/dist/audiences/consent-config.js.map +1 -0
  301. package/dist/audiences/consent-startup.d.ts +39 -0
  302. package/dist/audiences/consent-startup.d.ts.map +1 -0
  303. package/dist/audiences/consent-startup.js +105 -0
  304. package/dist/audiences/consent-startup.js.map +1 -0
  305. package/dist/audiences/consent.d.ts +192 -0
  306. package/dist/audiences/consent.d.ts.map +1 -0
  307. package/dist/audiences/consent.js +322 -0
  308. package/dist/audiences/consent.js.map +1 -0
  309. package/dist/audiences/engine.d.ts +7 -0
  310. package/dist/audiences/engine.d.ts.map +1 -1
  311. package/dist/audiences/engine.js +6 -2
  312. package/dist/audiences/engine.js.map +1 -1
  313. package/dist/audiences/index.d.ts +3 -0
  314. package/dist/audiences/index.d.ts.map +1 -1
  315. package/dist/audiences/index.js +6 -0
  316. package/dist/audiences/index.js.map +1 -1
  317. package/dist/audiences/server-eval.d.ts +13 -1
  318. package/dist/audiences/server-eval.d.ts.map +1 -1
  319. package/dist/audiences/server-eval.js +18 -2
  320. package/dist/audiences/server-eval.js.map +1 -1
  321. package/dist/audiences/ssr.d.ts +18 -1
  322. package/dist/audiences/ssr.d.ts.map +1 -1
  323. package/dist/audiences/ssr.js +18 -1
  324. package/dist/audiences/ssr.js.map +1 -1
  325. package/dist/audiences/utm-persistence.d.ts +20 -7
  326. package/dist/audiences/utm-persistence.d.ts.map +1 -1
  327. package/dist/audiences/utm-persistence.js +20 -7
  328. package/dist/audiences/utm-persistence.js.map +1 -1
  329. package/dist/auth/roles.d.ts +11 -0
  330. package/dist/auth/roles.d.ts.map +1 -1
  331. package/dist/auth/roles.js +13 -0
  332. package/dist/auth/roles.js.map +1 -1
  333. package/dist/auth/tokens.d.ts +7 -0
  334. package/dist/auth/tokens.d.ts.map +1 -1
  335. package/dist/auth/tokens.js +24 -2
  336. package/dist/auth/tokens.js.map +1 -1
  337. package/dist/config/types.d.ts +43 -0
  338. package/dist/config/types.d.ts.map +1 -1
  339. package/dist/config/types.js.map +1 -1
  340. package/dist/config/validate.d.ts.map +1 -1
  341. package/dist/config/validate.js +3 -0
  342. package/dist/config/validate.js.map +1 -1
  343. package/dist/db/apply-snapshot.d.ts +18 -0
  344. package/dist/db/apply-snapshot.d.ts.map +1 -1
  345. package/dist/db/apply-snapshot.js +41 -16
  346. package/dist/db/apply-snapshot.js.map +1 -1
  347. package/dist/db/component-instance-queries.d.ts +79 -19
  348. package/dist/db/component-instance-queries.d.ts.map +1 -1
  349. package/dist/db/component-instance-queries.js +266 -83
  350. package/dist/db/component-instance-queries.js.map +1 -1
  351. package/dist/db/component-queries.d.ts +1 -16
  352. package/dist/db/component-queries.d.ts.map +1 -1
  353. package/dist/db/component-queries.js +7 -56
  354. package/dist/db/component-queries.js.map +1 -1
  355. package/dist/db/content-queries.d.ts.map +1 -1
  356. package/dist/db/content-queries.js +1 -2
  357. package/dist/db/content-queries.js.map +1 -1
  358. package/dist/db/extension-queries.d.ts +2 -2
  359. package/dist/db/feed-queries.d.ts +3 -3
  360. package/dist/db/index.d.ts +1 -0
  361. package/dist/db/index.d.ts.map +1 -1
  362. package/dist/db/index.js +1 -0
  363. package/dist/db/index.js.map +1 -1
  364. package/dist/db/layout-queries.d.ts +2 -1
  365. package/dist/db/layout-queries.d.ts.map +1 -1
  366. package/dist/db/layout-queries.js +3 -3
  367. package/dist/db/layout-queries.js.map +1 -1
  368. package/dist/db/menu-queries.d.ts +69 -5
  369. package/dist/db/menu-queries.d.ts.map +1 -1
  370. package/dist/db/menu-queries.js +120 -13
  371. package/dist/db/menu-queries.js.map +1 -1
  372. package/dist/db/section-template-queries.d.ts +62 -0
  373. package/dist/db/section-template-queries.d.ts.map +1 -0
  374. package/dist/db/section-template-queries.js +178 -0
  375. package/dist/db/section-template-queries.js.map +1 -0
  376. package/dist/db/site-plugin-queries.d.ts +2 -2
  377. package/dist/db/tree-queries.d.ts.map +1 -1
  378. package/dist/db/tree-queries.js +5 -0
  379. package/dist/db/tree-queries.js.map +1 -1
  380. package/dist/db/webhook-queries.d.ts +3 -3
  381. package/dist/db/workflow-queries.d.ts.map +1 -1
  382. package/dist/db/workflow-queries.js +5 -20
  383. package/dist/db/workflow-queries.js.map +1 -1
  384. package/dist/experiments/runtime.d.ts +21 -3
  385. package/dist/experiments/runtime.d.ts.map +1 -1
  386. package/dist/experiments/runtime.js +21 -3
  387. package/dist/experiments/runtime.js.map +1 -1
  388. package/dist/layout/component-refs.d.ts +90 -2
  389. package/dist/layout/component-refs.d.ts.map +1 -1
  390. package/dist/layout/component-refs.js +293 -16
  391. package/dist/layout/component-refs.js.map +1 -1
  392. package/dist/layout/index.d.ts +4 -3
  393. package/dist/layout/index.d.ts.map +1 -1
  394. package/dist/layout/index.js +3 -2
  395. package/dist/layout/index.js.map +1 -1
  396. package/dist/layout/legacy-variant-container.d.ts +123 -0
  397. package/dist/layout/legacy-variant-container.d.ts.map +1 -0
  398. package/dist/layout/legacy-variant-container.js +397 -0
  399. package/dist/layout/legacy-variant-container.js.map +1 -0
  400. package/dist/layout/module-permissions.d.ts.map +1 -1
  401. package/dist/layout/module-permissions.js +25 -1
  402. package/dist/layout/module-permissions.js.map +1 -1
  403. package/dist/layout/modules-extended.d.ts +28 -1
  404. package/dist/layout/modules-extended.d.ts.map +1 -1
  405. package/dist/layout/modules-extended.js +73 -1
  406. package/dist/layout/modules-extended.js.map +1 -1
  407. package/dist/layout/modules.d.ts.map +1 -1
  408. package/dist/layout/modules.js +9 -1
  409. package/dist/layout/modules.js.map +1 -1
  410. package/dist/layout/personalization.d.ts +83 -0
  411. package/dist/layout/personalization.d.ts.map +1 -1
  412. package/dist/layout/personalization.js +250 -4
  413. package/dist/layout/personalization.js.map +1 -1
  414. package/dist/layout/registry.d.ts.map +1 -1
  415. package/dist/layout/registry.js +20 -0
  416. package/dist/layout/registry.js.map +1 -1
  417. package/dist/layout/renderer.d.ts +29 -2
  418. package/dist/layout/renderer.d.ts.map +1 -1
  419. package/dist/layout/renderer.js +23 -6
  420. package/dist/layout/renderer.js.map +1 -1
  421. package/dist/layout/types.d.ts +17 -0
  422. package/dist/layout/types.d.ts.map +1 -1
  423. package/dist/layout/types.js +7 -0
  424. package/dist/layout/types.js.map +1 -1
  425. package/dist/media/inline-risk.d.ts +26 -0
  426. package/dist/media/inline-risk.d.ts.map +1 -0
  427. package/dist/media/inline-risk.js +142 -0
  428. package/dist/media/inline-risk.js.map +1 -0
  429. package/dist/nav/builder.d.ts.map +1 -1
  430. package/dist/nav/builder.js +15 -3
  431. package/dist/nav/builder.js.map +1 -1
  432. package/dist/nav/index.d.ts +1 -1
  433. package/dist/nav/index.d.ts.map +1 -1
  434. package/dist/nav/index.js +1 -1
  435. package/dist/nav/index.js.map +1 -1
  436. package/dist/nav/menu-resolver.d.ts +11 -0
  437. package/dist/nav/menu-resolver.d.ts.map +1 -1
  438. package/dist/nav/menu-resolver.js +49 -9
  439. package/dist/nav/menu-resolver.js.map +1 -1
  440. package/dist/nav/paths.d.ts +37 -0
  441. package/dist/nav/paths.d.ts.map +1 -0
  442. package/dist/nav/paths.js +48 -0
  443. package/dist/nav/paths.js.map +1 -0
  444. package/dist/nav/types.d.ts +6 -0
  445. package/dist/nav/types.d.ts.map +1 -1
  446. package/dist/nav/url-resolver.d.ts +1 -5
  447. package/dist/nav/url-resolver.d.ts.map +1 -1
  448. package/dist/nav/url-resolver.js +6 -12
  449. package/dist/nav/url-resolver.js.map +1 -1
  450. package/dist/schema/base.d.ts +24 -4
  451. package/dist/schema/base.d.ts.map +1 -1
  452. package/dist/schema/base.js +17 -4
  453. package/dist/schema/base.js.map +1 -1
  454. package/dist/schema/components.d.ts +90 -9
  455. package/dist/schema/components.d.ts.map +1 -1
  456. package/dist/schema/components.js +113 -22
  457. package/dist/schema/components.js.map +1 -1
  458. package/dist/schema/mysql-tables.d.ts +5758 -48
  459. package/dist/schema/mysql-tables.d.ts.map +1 -1
  460. package/dist/schema/mysql-tables.js +620 -46
  461. package/dist/schema/mysql-tables.js.map +1 -1
  462. package/dist/scope/kywi-form.d.ts +11 -0
  463. package/dist/scope/kywi-form.d.ts.map +1 -1
  464. package/dist/scope/kywi-form.js +11 -1
  465. package/dist/scope/kywi-form.js.map +1 -1
  466. package/dist/scope/kywi-wizard-form.d.ts.map +1 -1
  467. package/dist/scope/kywi-wizard-form.js +76 -2
  468. package/dist/scope/kywi-wizard-form.js.map +1 -1
  469. package/dist/scope/sticky-offset.d.ts +34 -13
  470. package/dist/scope/sticky-offset.d.ts.map +1 -1
  471. package/dist/scope/sticky-offset.js +236 -43
  472. package/dist/scope/sticky-offset.js.map +1 -1
  473. package/dist/site/styles.css +61 -15
  474. package/dist/versioning/scheduler.d.ts +28 -0
  475. package/dist/versioning/scheduler.d.ts.map +1 -1
  476. package/dist/versioning/scheduler.js +50 -3
  477. package/dist/versioning/scheduler.js.map +1 -1
  478. package/package.json +7 -2
@@ -2,12 +2,26 @@ export interface ComponentOption {
2
2
  id: string;
3
3
  name: string;
4
4
  moduleType?: string | null;
5
+ /**
6
+ * Which `kywi_components.type` this row is (kywi-cms#170). Only the picker
7
+ * that offers more than one kind at a time reads it — the placeholder's, which
8
+ * lists module components alongside personalized-module ones because both are
9
+ * things an owner drops into a column. Every other caller filters by kind
10
+ * before building its options and can leave this off.
11
+ */
12
+ kind?: string;
5
13
  }
6
14
  interface ComponentPickerFieldProps {
7
- /** Module-type saved components to choose from (from the layout editor). */
15
+ /** Saved components to choose from (from the layout editor). */
8
16
  components: ComponentOption[];
9
- /** Called with the chosen component id — connects this node as a live instance. */
10
- onSelect: (componentId: string) => void;
17
+ /**
18
+ * Called with the chosen component. `kind` is the row's own
19
+ * `kywi_components.type`, because the two kinds a column can hold are placed
20
+ * differently: a `module` component LINKS this placeholder node in place,
21
+ * while a `moduleVariantContainer` REPLACES it with a container placement
22
+ * (kywi-cms#170). The caller decides; this only reports what was picked.
23
+ */
24
+ onSelect: (componentId: string, kind: string | undefined) => void;
11
25
  }
12
26
  /**
13
27
  * Picker for connecting a placed `component` node to a saved reusable component
@@ -1 +1 @@
1
- {"version":3,"file":"component-picker-field.d.ts","sourceRoot":"","sources":["../../../src/admin/layout-editor/component-picker-field.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B;AAED,UAAU,yBAAyB;IACjC,4EAA4E;IAC5E,UAAU,EAAE,eAAe,EAAE,CAAA;IAC7B,mFAAmF;IACnF,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAA;CACxC;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,yBAAyB,2CA6BvF"}
1
+ {"version":3,"file":"component-picker-field.d.ts","sourceRoot":"","sources":["../../../src/admin/layout-editor/component-picker-field.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,UAAU,yBAAyB;IACjC,gEAAgE;IAChE,UAAU,EAAE,eAAe,EAAE,CAAA;IAC7B;;;;;;OAMG;IACH,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAA;CAClE;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,yBAAyB,2CAiCvF"}
@@ -10,7 +10,10 @@ export function ComponentPickerField({ components, onSelect }) {
10
10
  if (components.length === 0) {
11
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
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)))] })] }));
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 => {
14
+ const picked = components.find(c => c.id === e.target.value);
15
+ if (picked)
16
+ onSelect(picked.id, picked.kind);
17
+ }, 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.kind === 'moduleVariantContainer' ? ' (personalized)' : ''] }, c.id)))] })] }));
15
18
  }
16
19
  //# sourceMappingURL=component-picker-field.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"component-picker-field.js","sourceRoot":"","sources":["../../../src/admin/layout-editor/component-picker-field.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AA8BZ;;;;;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;oBACZ,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;oBAC5D,IAAI,MAAM;wBAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;gBAC9C,CAAC,aAED,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,EAChD,CAAC,CAAC,IAAI,KAAK,wBAAwB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,KAFlD,CAAC,CAAC,EAAE,CAGR,CACV,CAAC,IACK,IACL,CACP,CAAA;AACH,CAAC"}
@@ -28,7 +28,13 @@ export interface ActiveDrag {
28
28
  * `index` is the *measured* slot (see `resolveColumnDropIndex`), not the drop
29
29
  * zone's declared one, so the indicator promises exactly what the drop delivers.
30
30
  */
31
- export interface DropTarget {
31
+ export interface ColumnDropTarget {
32
+ /**
33
+ * Optional, and only on this member of the union: a target with no `kind` is
34
+ * a column target, which is what every caller before kywi-cms#171 built.
35
+ * `kind: 'arm'` is the discriminant that picks the other one out.
36
+ */
37
+ kind?: 'column';
32
38
  columnId: string;
33
39
  /** Insertion index within the column: 0..nodes.length (length = append). */
34
40
  index: number;
@@ -41,6 +47,24 @@ export interface DropTarget {
41
47
  */
42
48
  label?: string;
43
49
  }
50
+ /**
51
+ * The other kind of projected target (kywi-cms#171): ONE arm of a module-level
52
+ * variant container, whose module the drop would REPLACE.
53
+ *
54
+ * No index, and no line/placeholder geometry: the column's indicator is
55
+ * index-relative and means nothing inside an arm, which holds exactly one
56
+ * module. The arm zone draws a full-bleed outline over itself instead — see
57
+ * `ArmDropZone` in editor-canvas.tsx.
58
+ */
59
+ export interface ArmDropTarget {
60
+ kind: 'arm';
61
+ containerId: string;
62
+ armId: string;
63
+ feedback: 'line' | 'placeholder';
64
+ /** The dragged module's label, so the affordance can name what would land. */
65
+ label?: string;
66
+ }
67
+ export type DropTarget = ColumnDropTarget | ArmDropTarget;
44
68
  /**
45
69
  * The projected drop target, published by the shell and read by the column that
46
70
  * has to draw it. Context rather than props because the two shells own the
@@ -1 +1 @@
1
- {"version":3,"file":"drag-feedback.d.ts","sourceRoot":"","sources":["../../../src/admin/layout-editor/drag-feedback.tsx"],"names":[],"mappings":"AACA,OAAO,KAAwB,MAAM,OAAO,CAAA;AAI5C;;;;;;;;;;;;;;;;GAgBG;AAEH,mFAAmF;AACnF,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,GAAG,aAAa,CAAA;IAChC;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,kCAAyC,CAAA;AAEvE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;CAAE,4BAuCjF"}
1
+ {"version":3,"file":"drag-feedback.d.ts","sourceRoot":"","sources":["../../../src/admin/layout-editor/drag-feedback.tsx"],"names":[],"mappings":"AACA,OAAO,KAAwB,MAAM,OAAO,CAAA;AAI5C;;;;;;;;;;;;;;;;GAgBG;AAEH,mFAAmF;AACnF,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,GAAG,aAAa,CAAA;IAChC;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,KAAK,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,GAAG,aAAa,CAAA;IAChC,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,MAAM,UAAU,GAAG,gBAAgB,GAAG,aAAa,CAAA;AAEzD;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,kCAAyC,CAAA;AAEvE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;CAAE,4BAgDjF"}
@@ -38,6 +38,15 @@ export function PaletteDragGhost({ activeDrag }) {
38
38
  if (typeof document === 'undefined')
39
39
  return null;
40
40
  return createPortal(_jsx(DragOverlay, { dropAnimation: null,
41
+ // dnd-kit positions its own wrapper `position: fixed; top: 0`, which is
42
+ // the exact shape the sticky-offset detector patches — and since
43
+ // kywi-cms#151 that detector watches for elements arriving mid-session,
44
+ // which is all this one ever does. Left unnamed it was offset by a bar
45
+ // height the moment a drag started, moving the ghost out from under the
46
+ // cursor and the drop with it. The class is only ever read by
47
+ // `EDITOR_CHROME_SELECTOR` in scope/sticky-offset.ts; there is no rule
48
+ // for it in any stylesheet.
49
+ className: "kywi-drag-overlay",
41
50
  // Joins editor.css's `--kywi-z-overlay` tier contract (kywi-cms#124) from
42
51
  // the outside: the ghost has to clear every editor tier including the
43
52
  // template picker modal at +1, because it is the thing under the cursor.
@@ -1 +1 @@
1
- {"version":3,"file":"drag-feedback.js","sourceRoot":"","sources":["../../../src/admin/layout-editor/drag-feedback.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AACZ,OAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AA+C3C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAoB,IAAI,CAAC,CAAA;AAEvE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAAE,UAAU,EAAqC;IAChF,6EAA6E;IAC7E,0EAA0E;IAC1E,oEAAoE;IACpE,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,IAAI,CAAA;IAEhD,OAAO,YAAY,CACjB,KAAC,WAAW,IACV,aAAa,EAAE,IAAI;QACnB,0EAA0E;QAC1E,sEAAsE;QACtE,yEAAyE;QACzE,yEAAyE;QACzE,iDAAiD;QACjD,KAAK,EAAE,EAAE,MAAM,EAAE,uCAAuC,EAAE,YAEzD,UAAU,CAAC,CAAC,CAAC,CACZ,cACE,SAAS,EAAC,iBAAiB,EAC3B,KAAK,EAAE;gBACL,OAAO,EAAE,cAAc;gBACvB,OAAO,EAAE,UAAU;gBACnB,YAAY,EAAE,CAAC;gBACf,UAAU,EAAE,SAAS;gBACrB,KAAK,EAAE,SAAS;gBAChB,QAAQ,EAAE,EAAE;gBACZ,UAAU,EAAE,GAAG;gBACf,SAAS,EAAE,6BAA6B;gBACxC,MAAM,EAAE,UAAU;gBAClB,aAAa,EAAE,MAAM;gBACrB,UAAU,EAAE,QAAQ;aACrB,YAEA,UAAU,CAAC,KAAK,GACb,CACP,CAAC,CAAC,CAAC,IAAI,GACI,EACd,QAAQ,CAAC,IAAI,CACd,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"drag-feedback.js","sourceRoot":"","sources":["../../../src/admin/layout-editor/drag-feedback.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AACZ,OAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAyE3C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAoB,IAAI,CAAC,CAAA;AAEvE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAAE,UAAU,EAAqC;IAChF,6EAA6E;IAC7E,0EAA0E;IAC1E,oEAAoE;IACpE,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,IAAI,CAAA;IAEhD,OAAO,YAAY,CACjB,KAAC,WAAW,IACV,aAAa,EAAE,IAAI;QACnB,wEAAwE;QACxE,iEAAiE;QACjE,wEAAwE;QACxE,uEAAuE;QACvE,wEAAwE;QACxE,8DAA8D;QAC9D,uEAAuE;QACvE,4BAA4B;QAC5B,SAAS,EAAC,mBAAmB;QAC7B,0EAA0E;QAC1E,sEAAsE;QACtE,yEAAyE;QACzE,yEAAyE;QACzE,iDAAiD;QACjD,KAAK,EAAE,EAAE,MAAM,EAAE,uCAAuC,EAAE,YAEzD,UAAU,CAAC,CAAC,CAAC,CACZ,cACE,SAAS,EAAC,iBAAiB,EAC3B,KAAK,EAAE;gBACL,OAAO,EAAE,cAAc;gBACvB,OAAO,EAAE,UAAU;gBACnB,YAAY,EAAE,CAAC;gBACf,UAAU,EAAE,SAAS;gBACrB,KAAK,EAAE,SAAS;gBAChB,QAAQ,EAAE,EAAE;gBACZ,UAAU,EAAE,GAAG;gBACf,SAAS,EAAE,6BAA6B;gBACxC,MAAM,EAAE,UAAU;gBAClB,aAAa,EAAE,MAAM;gBACrB,UAAU,EAAE,QAAQ;aACrB,YAEA,UAAU,CAAC,KAAK,GACb,CACP,CAAC,CAAC,CAAC,IAAI,GACI,EACd,QAAQ,CAAC,IAAI,CACd,CAAA;AACH,CAAC"}
@@ -84,7 +84,8 @@ export declare const SECTION_TEMPLATES: SectionTemplate[];
84
84
  * drop whose cursor has drifted just off the edge of the target.
85
85
  * 3. nothing. A drop in dead space is a no-op, not a guess.
86
86
  *
87
- * Canvas drags keep `closestCenter` verbatim, so reordering is unchanged.
87
+ * Canvas drags keep `closestCenter`, so reordering is unchanged — with ONE
88
+ * exclusion added by kywi-cms#171, see `armsNeedThePointer` below.
88
89
  */
89
90
  export declare const editorCollisionDetection: CollisionDetection;
90
91
  /**
@@ -119,11 +120,52 @@ export declare function resolveColumnDropIndex(columnEl: Element | null, pointer
119
120
  * `active`; column drop zones and existing canvas modules can appear as
120
121
  * either `active` or `over`.
121
122
  */
123
+ export interface ArmRef {
124
+ containerId: string;
125
+ armId: string;
126
+ /** The arm's human label (`moduleArmLabel`), for announcements and dialog copy. */
127
+ label?: string;
128
+ /** The container's mode, so copy can say "personalized" / "A/B tested". */
129
+ containerMode?: 'personalization' | 'ab_test';
130
+ }
122
131
  export interface EditorDragDatum {
123
132
  source?: 'palette' | 'canvas';
124
133
  moduleType?: string;
134
+ /**
135
+ * Present only when `moduleType` is the `moduleVariantContainer` sentinel
136
+ * (`ModuleVariantContainerBlock`'s own drag data, kywi-cms#169): which kind of
137
+ * container is being dragged, so the screen-reader announcement can say
138
+ * "personalized module" / "A/B tested module" instead of the raw internal
139
+ * type string a real module registry never defines a label for.
140
+ */
141
+ containerMode?: 'personalization' | 'ab_test';
125
142
  moduleId?: string;
126
143
  instanceId?: string;
144
+ /**
145
+ * Present only on the sortable data of a module that IS a variant container's
146
+ * open arm (kywi-cms#171). It marks the ACTIVE side of a drag — "the thing
147
+ * being dragged is an arm's content" — which is what lets
148
+ * `resolveDragEndAction` tell an arm drag-out from an ordinary canvas reorder,
149
+ * even though an arm module also reports its CONTAINER's `columnId`/`index`
150
+ * (see below) so the middle of a container is not a dead zone.
151
+ */
152
+ armOf?: ArmRef;
153
+ /**
154
+ * The OVER side of the same address (kywi-cms#171): "a drop here replaces this
155
+ * arm's module". Carried by the container's own `[data-kywi-arm-drop]` zone
156
+ * AND by the arm module's sortable, so whichever of the two nested droppables
157
+ * wins the collision the drop resolves to the same answer.
158
+ *
159
+ * `resolvePaletteDropSlot` short-circuits on this BEFORE reading `columnId`:
160
+ * an arm has no column index to measure, and the `columnId` an arm module
161
+ * reports is its container's.
162
+ */
163
+ armContainerId?: string;
164
+ armId?: string;
165
+ /** The arm's human label, for the screen-reader announcement only. */
166
+ armLabel?: string;
167
+ /** The arm's container mode, so an announcement can name the right noun. */
168
+ armMode?: 'personalization' | 'ab_test';
127
169
  /** The column a canvas module currently lives in, or a drop zone represents. */
128
170
  columnId?: string;
129
171
  /**
@@ -144,6 +186,21 @@ export interface PaletteDropSlot {
144
186
  columnId: string;
145
187
  index: number;
146
188
  }
189
+ /**
190
+ * The other place a drop can land (kywi-cms#171): ONE arm of a module-level
191
+ * variant container, whose module the drop replaces.
192
+ *
193
+ * Deliberately index-free. `column.nodes` is the single index space and an arm
194
+ * module is not in it — the CONTAINER is — so there is nothing to measure a
195
+ * pointer against here, and a keyboard drag (which has no pointer at all) is
196
+ * unaffected for the same reason.
197
+ */
198
+ export interface PaletteArmSlot {
199
+ armContainerId: string;
200
+ armId: string;
201
+ }
202
+ /** Narrow a resolved drop slot to the arm case. */
203
+ export declare function isArmSlot(slot: PaletteDropSlot | PaletteArmSlot): slot is PaletteArmSlot;
147
204
  /**
148
205
  * Resolve the slot a palette drag would drop into, from whatever it is
149
206
  * currently over.
@@ -158,10 +215,51 @@ export interface PaletteDropSlot {
158
215
  * canvas promises mid-drag is by construction what the release delivers.
159
216
  *
160
217
  * @returns null when there is nothing droppable under the drag, or the thing
161
- * under it isn't part of a column (a section gutter, say) — which is a
162
- * no-op drop, and so also nothing to draw.
218
+ * under it isn't part of a column or an arm (a section gutter, say) —
219
+ * which is a no-op drop, and so also nothing to draw.
220
+ */
221
+ export declare function resolvePaletteDropSlot(over: DragEndLike | null | undefined, pointerY: number | null | undefined): PaletteDropSlot | PaletteArmSlot | null;
222
+ /**
223
+ * A drop that cannot resolve to an action on its own (kywi-cms#171, owner
224
+ * decision D1): dragging an arm's module onto the page.
225
+ *
226
+ * The gesture is genuinely ambiguous — "promote this variant's content onto the
227
+ * page" and "this variant is finished, put its content back on the page" are
228
+ * both what an author reaching for it might mean, and they differ by whether
229
+ * the variant survives. Guessing either one silently deletes an audience's
230
+ * content or silently duplicates it, so the drop asks (see `ArmDropDialog`) and
231
+ * the answer becomes COPY_ARM_MODULE_TO_COLUMN or MOVE_ARM_MODULE_TO_COLUMN —
232
+ * one undo entry either way.
233
+ *
234
+ * Deliberately NOT an `EditorAction`: nothing may dispatch it.
235
+ */
236
+ export interface ArmDragOutRequest {
237
+ type: 'ARM_DRAG_OUT_REQUEST';
238
+ containerId: string;
239
+ armId: string;
240
+ /** The arm's human label and the container's mode, for the dialog's copy. */
241
+ armLabel?: string;
242
+ containerMode?: 'personalization' | 'ab_test';
243
+ toColumnId: string;
244
+ toIndex: number;
245
+ }
246
+ /** What a drop resolves to: something to dispatch, or something to ask about. */
247
+ export type DragEndResolution = EditorAction | ArmDragOutRequest;
248
+ /**
249
+ * Which of the two arm drops that OPEN A DIALOG this is, or null for every drop
250
+ * that simply happens (kywi-cms#171 review).
251
+ *
252
+ * Exported and shared so the screen-reader announcement cannot disagree with
253
+ * what the drop actually did. `useEditorDnd` is handed `{ active, over }` twice
254
+ * over — once by its own `onDragEnd`, once by dnd-kit's announcement callback —
255
+ * and a second hand-written copy of these conditions in the second place would
256
+ * be a live-region that says "was dropped" while a modal is waiting for an
257
+ * answer.
163
258
  */
164
- export declare function resolvePaletteDropSlot(over: DragEndLike | null | undefined, pointerY: number | null | undefined): PaletteDropSlot | null;
259
+ export type ArmDropQuestion = 'drag-out' | 'replace' | null;
260
+ export declare function classifyArmDrop(active: DragEndLike, over: DragEndLike | null | undefined): ArmDropQuestion;
261
+ /** Narrow a resolution to the one thing that is a question, not an action. */
262
+ export declare function isArmDragOutRequest(resolution: DragEndResolution | null | undefined): resolution is ArmDragOutRequest;
165
263
  /**
166
264
  * Optional context `resolveDragEndAction` uses to enrich the actions it
167
265
  * resolves.
@@ -199,6 +297,6 @@ export interface ResolveDragContext {
199
297
  * directly on an occupied module inserts the dragged module *before* it
200
298
  * (pushing it down) instead of being swallowed.
201
299
  */
202
- export declare function resolveDragEndAction(active: DragEndLike, over: DragEndLike | null | undefined, ctx?: ResolveDragContext): EditorAction | null;
300
+ export declare function resolveDragEndAction(active: DragEndLike, over: DragEndLike | null | undefined, ctx?: ResolveDragContext): DragEndResolution | null;
203
301
  export {};
204
302
  //# 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;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAGnF;;;;;;;;;;;;;GAaG;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;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,wBAAwB,EAAE,kBAYtC,CAAC;AAIF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUhG;AAyBD;;;;;;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,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,EACpC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAClC,eAAe,GAAG,IAAI,CAQxB;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,EACpC,GAAG,CAAC,EAAE,kBAAkB,GACvB,YAAY,GAAG,IAAI,CAoCrB"}
1
+ {"version":3,"file":"drag-utils.d.ts","sourceRoot":"","sources":["../../../src/admin/layout-editor/drag-utils.ts"],"names":[],"mappings":"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"}
@@ -99,12 +99,13 @@ export const SECTION_TEMPLATES = [
99
99
  * drop whose cursor has drifted just off the edge of the target.
100
100
  * 3. nothing. A drop in dead space is a no-op, not a guess.
101
101
  *
102
- * Canvas drags keep `closestCenter` verbatim, so reordering is unchanged.
102
+ * Canvas drags keep `closestCenter`, so reordering is unchanged — with ONE
103
+ * exclusion added by kywi-cms#171, see `armsNeedThePointer` below.
103
104
  */
104
105
  export const editorCollisionDetection = (args) => {
105
106
  const source = args.active.data.current?.source;
106
107
  if (source !== 'palette')
107
- return closestCenter(args);
108
+ return armsNeedThePointer(closestCenter(args), pointerWithin(args));
108
109
  const atPointer = pointerWithin(args);
109
110
  if (atPointer.length > 0)
110
111
  return atPointer;
@@ -114,6 +115,33 @@ export const editorCollisionDetection = (args) => {
114
115
  // kywi-cms#134: no snap-to-distant-centre — a drop in a section gutter is a no-op.
115
116
  return [];
116
117
  };
118
+ /** Does this collision name an arm — a drop zone, or an arm's own module? */
119
+ function collidesWithArm(collision) {
120
+ const container = collision.data?.['droppableContainer'];
121
+ return Boolean(container?.data?.current?.armContainerId);
122
+ }
123
+ /**
124
+ * An arm may only win a CANVAS drag when the pointer is genuinely inside it
125
+ * (kywi-cms#171 review).
126
+ *
127
+ * `closestCenter` is the right algorithm for a reorder and it always names a
128
+ * winner however far away — which was harmless while every droppable meant
129
+ * "insert around here", and stopped being harmless the moment one of them meant
130
+ * "REPLACE this variant's content". A reorder released in the neighbourhood of a
131
+ * personalized module could resolve onto its arm purely on centre distance, and
132
+ * the author would be answering a destructive prompt about a variant they never
133
+ * aimed at. Exactly the kywi-cms#134 complaint — the editor moving things by
134
+ * itself — with a worse consequence.
135
+ *
136
+ * So arms are held to the palette drag's standard: the pointer has to be in
137
+ * them. Everything else `closestCenter` found is kept, in its own order, so the
138
+ * next-nearest droppable (the container itself, or the column) wins instead —
139
+ * which is the reorder the author was actually making.
140
+ */
141
+ function armsNeedThePointer(byCentre, atPointer) {
142
+ const underPointer = new Set(atPointer.filter(collidesWithArm).map(c => c.id));
143
+ return byCentre.filter(c => !collidesWithArm(c) || underPointer.has(c.id));
144
+ }
117
145
  // ── resolveColumnDropIndex ────────────────────────────────────
118
146
  /**
119
147
  * Where in a column a drop at `pointerY` belongs: the number of modules already
@@ -167,6 +195,10 @@ function resolveColumnDropIndexFromDocument(columnId, pointerY) {
167
195
  const columnEl = Array.from(document.querySelectorAll('[data-kywi-column-drop]')).find(el => el.getAttribute('data-kywi-column-drop') === columnId) ?? null;
168
196
  return resolveColumnDropIndex(columnEl, pointerY);
169
197
  }
198
+ /** Narrow a resolved drop slot to the arm case. */
199
+ export function isArmSlot(slot) {
200
+ return 'armContainerId' in slot;
201
+ }
170
202
  /**
171
203
  * Resolve the slot a palette drag would drop into, from whatever it is
172
204
  * currently over.
@@ -181,13 +213,21 @@ function resolveColumnDropIndexFromDocument(columnId, pointerY) {
181
213
  * canvas promises mid-drag is by construction what the release delivers.
182
214
  *
183
215
  * @returns null when there is nothing droppable under the drag, or the thing
184
- * under it isn't part of a column (a section gutter, say) — which is a
185
- * no-op drop, and so also nothing to draw.
216
+ * under it isn't part of a column or an arm (a section gutter, say) —
217
+ * which is a no-op drop, and so also nothing to draw.
186
218
  */
187
219
  export function resolvePaletteDropSlot(over, pointerY) {
188
220
  if (!over)
189
221
  return null;
190
222
  const overData = over.data.current;
223
+ // kywi-cms#171: an arm zone wins before any column measurement happens. It
224
+ // has no index space of its own, and the `columnId` an arm module carries is
225
+ // its CONTAINER's — reading it here would resolve an arm drop into "insert
226
+ // beside the container", which is the very drop the arm zone exists to
227
+ // distinguish from.
228
+ if (overData?.armContainerId && overData.armId) {
229
+ return { armContainerId: overData.armContainerId, armId: overData.armId };
230
+ }
191
231
  const columnId = overData?.columnId;
192
232
  if (!columnId)
193
233
  return null;
@@ -195,6 +235,29 @@ export function resolvePaletteDropSlot(over, pointerY) {
195
235
  const index = resolveColumnDropIndexFromDocument(columnId, pointerY) ?? declaredIndex;
196
236
  return { columnId, index };
197
237
  }
238
+ export function classifyArmDrop(active, over) {
239
+ if (!over)
240
+ return null;
241
+ const activeData = active.data.current;
242
+ const overData = over.data.current;
243
+ if (activeData?.source !== 'canvas')
244
+ return null;
245
+ const overIsArm = Boolean(overData?.armContainerId && overData.armId);
246
+ if (activeData.armOf) {
247
+ // Arm to arm is a no-op (D2), and a drag-out needs somewhere to land.
248
+ return !overIsArm && overData?.columnId ? 'drag-out' : null;
249
+ }
250
+ if (!overIsArm)
251
+ return null;
252
+ // A whole container into an arm is the nesting containers never do.
253
+ if (activeData.moduleType === 'moduleVariantContainer')
254
+ return null;
255
+ return activeData.moduleId ? 'replace' : null;
256
+ }
257
+ /** Narrow a resolution to the one thing that is a question, not an action. */
258
+ export function isArmDragOutRequest(resolution) {
259
+ return resolution?.type === 'ARM_DRAG_OUT_REQUEST';
260
+ }
198
261
  /**
199
262
  * Turn a dnd-kit `DragEndEvent`'s `active`/`over` pair into the editor action
200
263
  * it implies, or `null` for a drop that doesn't resolve to anything (dropped
@@ -224,6 +287,23 @@ export function resolveDragEndAction(active, over, ctx) {
224
287
  const slot = resolvePaletteDropSlot(over, ctx?.pointerY);
225
288
  if (!moduleType || !slot)
226
289
  return null;
290
+ // A palette drop onto an ARM replaces that arm's content rather than
291
+ // inserting beside it (kywi-cms#171). The arm keeps its identity — id,
292
+ // label, audience, weight — so the swap is a change of content, not of
293
+ // audience. Same minted id and registry seeding as the column case below,
294
+ // for the same reasons.
295
+ if (isArmSlot(slot)) {
296
+ const moduleId = generateId();
297
+ const props = ctx?.registry ? seedModuleDefaults(ctx.registry, moduleType) : undefined;
298
+ return {
299
+ type: 'SWAP_MODULE_VARIANT_ARM_TYPE',
300
+ containerId: slot.armContainerId,
301
+ armId: slot.armId,
302
+ moduleType,
303
+ moduleId,
304
+ ...(props ? { props } : {}),
305
+ };
306
+ }
227
307
  // kywi-cms#134: mint the id here (rather than in the reducer) so the
228
308
  // caller knows the new module's id before dispatch and can auto-select
229
309
  // it; seed props from the registry when one is supplied so the module
@@ -240,6 +320,53 @@ export function resolveDragEndAction(active, over, ctx) {
240
320
  };
241
321
  }
242
322
  if (source === 'canvas') {
323
+ const overArm = overData?.armContainerId && overData.armId
324
+ ? { containerId: overData.armContainerId, armId: overData.armId }
325
+ : null;
326
+ const armOf = activeData?.armOf;
327
+ // Both dialog-opening drops are classified in ONE place, which the
328
+ // announcement reads too (see `classifyArmDrop`).
329
+ const question = classifyArmDrop(active, over);
330
+ // 1. An ARM's module dragged out (kywi-cms#171). Checked first, because an
331
+ // arm module also reports its CONTAINER's columnId/index — the fallback
332
+ // branch below would read those and resolve a reorder of the container.
333
+ // Arm to arm resolves to nothing at all (owner decision D2): the gesture
334
+ // has no obvious meaning — swap? copy? move-and-empty the source? — and
335
+ // only one arm of a container is visible at a time, so it is reachable
336
+ // only across two containers. A no-op drop, drawn as no indicator.
337
+ if (armOf) {
338
+ if (question !== 'drag-out')
339
+ return null;
340
+ const toColumnId = overData?.columnId;
341
+ if (!toColumnId)
342
+ return null;
343
+ return {
344
+ type: 'ARM_DRAG_OUT_REQUEST',
345
+ containerId: armOf.containerId,
346
+ armId: armOf.armId,
347
+ ...(armOf.label ? { armLabel: armOf.label } : {}),
348
+ ...(armOf.containerMode ? { containerMode: armOf.containerMode } : {}),
349
+ toColumnId,
350
+ toIndex: overData?.index ?? 0,
351
+ };
352
+ }
353
+ // 2. A plain canvas module dropped INTO an arm. A whole CONTAINER dropped
354
+ // there is the nesting containers never do — the reducer refuses it, and
355
+ // `classifyArmDrop` refusing it here means no indicator promises it
356
+ // either.
357
+ if (overArm) {
358
+ if (question !== 'replace')
359
+ return null;
360
+ const moduleId = activeData?.moduleId;
361
+ if (!moduleId)
362
+ return null;
363
+ return {
364
+ type: 'MOVE_MODULE_INTO_ARM',
365
+ moduleId,
366
+ containerId: overArm.containerId,
367
+ armId: overArm.armId,
368
+ };
369
+ }
243
370
  const fromColumnId = activeData?.columnId;
244
371
  const fromIndex = activeData?.index;
245
372
  const toColumnId = overData?.columnId;
@@ -1 +1 @@
1
- {"version":3,"file":"drag-utils.js","sourceRoot":"","sources":["../../../src/admin/layout-editor/drag-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"drag-utils.js","sourceRoot":"","sources":["../../../src/admin/layout-editor/drag-utils.ts"],"names":[],"mappings":"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"}
@@ -69,6 +69,17 @@ interface EditorCanvasProps {
69
69
  * only: the admin artboard's palette is an in-flow column.
70
70
  */
71
71
  paletteOpen?: boolean;
72
+ /**
73
+ * Whether the front editor's right properties rail is out (kywi-cms#166).
74
+ *
75
+ * The same problem on the other edge, and a worse one in practice: this rail
76
+ * opens itself the moment anything is selected, so it is out for as long as
77
+ * an owner is working — and a module-level variant container's badge and arm
78
+ * switcher float at the container's own `right: 0`, i.e. exactly underneath
79
+ * it on a full-width column. In-place only, for the same reason as
80
+ * `paletteOpen`.
81
+ */
82
+ propsRailOpen?: boolean;
72
83
  /** Inline text editing controller, only meaningful in in-place mode. */
73
84
  inlineEdit?: InlineEditController | null;
74
85
  /**
@@ -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;AAIzB,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AA6BlE,OAAO,KAAK,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAG/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAIjE,oFAAoF;AACpF,KAAK,wBAAwB,GAAG,CAC9B,WAAW,EAAE,MAAM,KAChB;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAA;AAEjG;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACnC,kDAAkD;IAClD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,8EAA8E;IAC9E,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,cAAc,EAAE,CACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,OAAO,GAAG,IAAI,KACnB,uBAAuB,GAAG,IAAI,CAAA;IACnC,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,KAAK,IAAI,CAAA;IAC7E,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB;;;;;OAKG;IACH,cAAc,EAAE,MAAM,IAAI,CAAA;CAC3B;AAED,UAAU,iBAAiB;IACzB,KAAK,EAAE,WAAW,CAAA;IAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;IACtC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,CAAC,CAAA;IACzH,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7C,4FAA4F;IAC5F,gBAAgB,CAAC,EAAE,wBAAwB,CAAA;IAC3C,sFAAsF;IACtF,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,wEAAwE;IACxE,UAAU,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAA;IACxC;;;;;;;;;OASG;IACH,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C;;;;;;;;;;;;;;;OAeG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAuiCD;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,+CA0GvB,CAAA"}
1
+ {"version":3,"file":"editor-canvas.d.ts","sourceRoot":"","sources":["../../../src/admin/layout-editor/editor-canvas.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AA+BlE,OAAO,KAAK,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAG/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAIjE,oFAAoF;AACpF,KAAK,wBAAwB,GAAG,CAC9B,WAAW,EAAE,MAAM,KAChB;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAA;AAEjG;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACnC,kDAAkD;IAClD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,8EAA8E;IAC9E,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,cAAc,EAAE,CACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,OAAO,GAAG,IAAI,KACnB,uBAAuB,GAAG,IAAI,CAAA;IACnC,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,KAAK,IAAI,CAAA;IAC7E,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB;;;;;OAKG;IACH,cAAc,EAAE,MAAM,IAAI,CAAA;CAC3B;AAED,UAAU,iBAAiB;IACzB,KAAK,EAAE,WAAW,CAAA;IAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;IACtC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,CAAC,CAAA;IACzH,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7C,4FAA4F;IAC5F,gBAAgB,CAAC,EAAE,wBAAwB,CAAA;IAC3C,sFAAsF;IACtF,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,wEAAwE;IACxE,UAAU,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAA;IACxC;;;;;;;;;OASG;IACH,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C;;;;;;;;;;;;;;;OAeG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAotCD;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,+CAsHvB,CAAA"}