@kywi-software/core 0.13.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.
- package/AGENT-PATTERNS.md +153 -17
- package/README.md +38 -12
- package/dist/admin/chrome.d.ts.map +1 -1
- package/dist/admin/chrome.js +57 -8
- package/dist/admin/chrome.js.map +1 -1
- package/dist/admin/field-components.d.ts.map +1 -1
- package/dist/admin/field-components.js +27 -1
- package/dist/admin/field-components.js.map +1 -1
- package/dist/admin/form-helpers.d.ts.map +1 -1
- package/dist/admin/form-helpers.js +6 -1
- package/dist/admin/form-helpers.js.map +1 -1
- package/dist/admin/index.d.ts +1 -1
- package/dist/admin/index.d.ts.map +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/layout-editor/chrome-env.d.ts +35 -0
- package/dist/admin/layout-editor/chrome-env.d.ts.map +1 -0
- package/dist/admin/layout-editor/chrome-env.js +13 -0
- package/dist/admin/layout-editor/chrome-env.js.map +1 -0
- package/dist/admin/layout-editor/component-actions.d.ts +58 -7
- package/dist/admin/layout-editor/component-actions.d.ts.map +1 -1
- package/dist/admin/layout-editor/component-actions.js +131 -5
- package/dist/admin/layout-editor/component-actions.js.map +1 -1
- package/dist/admin/layout-editor/component-fork.d.ts +4 -4
- package/dist/admin/layout-editor/component-fork.d.ts.map +1 -1
- package/dist/admin/layout-editor/component-fork.js +76 -10
- package/dist/admin/layout-editor/component-fork.js.map +1 -1
- package/dist/admin/layout-editor/component-picker-field.d.ts +17 -3
- package/dist/admin/layout-editor/component-picker-field.d.ts.map +1 -1
- package/dist/admin/layout-editor/component-picker-field.js +5 -2
- package/dist/admin/layout-editor/component-picker-field.js.map +1 -1
- package/dist/admin/layout-editor/drag-feedback.d.ts +25 -1
- package/dist/admin/layout-editor/drag-feedback.d.ts.map +1 -1
- package/dist/admin/layout-editor/drag-feedback.js +9 -0
- package/dist/admin/layout-editor/drag-feedback.js.map +1 -1
- package/dist/admin/layout-editor/drag-utils.d.ts +103 -5
- package/dist/admin/layout-editor/drag-utils.d.ts.map +1 -1
- package/dist/admin/layout-editor/drag-utils.js +131 -4
- package/dist/admin/layout-editor/drag-utils.js.map +1 -1
- package/dist/admin/layout-editor/editor-canvas.d.ts +11 -0
- package/dist/admin/layout-editor/editor-canvas.d.ts.map +1 -1
- package/dist/admin/layout-editor/editor-canvas.js +134 -20
- package/dist/admin/layout-editor/editor-canvas.js.map +1 -1
- package/dist/admin/layout-editor/editor-dialog.d.ts +58 -3
- package/dist/admin/layout-editor/editor-dialog.d.ts.map +1 -1
- package/dist/admin/layout-editor/editor-dialog.js +71 -9
- package/dist/admin/layout-editor/editor-dialog.js.map +1 -1
- package/dist/admin/layout-editor/editor-state.d.ts +119 -0
- package/dist/admin/layout-editor/editor-state.d.ts.map +1 -1
- package/dist/admin/layout-editor/editor-state.js +188 -6
- package/dist/admin/layout-editor/editor-state.js.map +1 -1
- package/dist/admin/layout-editor/editor-toolbar.d.ts +10 -1
- package/dist/admin/layout-editor/editor-toolbar.d.ts.map +1 -1
- package/dist/admin/layout-editor/editor-toolbar.js +2 -2
- package/dist/admin/layout-editor/editor-toolbar.js.map +1 -1
- package/dist/admin/layout-editor/editor.css +216 -8
- package/dist/admin/layout-editor/inline-text.d.ts +15 -1
- package/dist/admin/layout-editor/inline-text.d.ts.map +1 -1
- package/dist/admin/layout-editor/inline-text.js +30 -2
- package/dist/admin/layout-editor/inline-text.js.map +1 -1
- package/dist/admin/layout-editor/layout-editor.d.ts +21 -16
- package/dist/admin/layout-editor/layout-editor.d.ts.map +1 -1
- package/dist/admin/layout-editor/layout-editor.js +40 -17
- package/dist/admin/layout-editor/layout-editor.js.map +1 -1
- package/dist/admin/layout-editor/linked-component-notes.d.ts +88 -0
- package/dist/admin/layout-editor/linked-component-notes.d.ts.map +1 -0
- package/dist/admin/layout-editor/linked-component-notes.js +88 -0
- package/dist/admin/layout-editor/linked-component-notes.js.map +1 -0
- package/dist/admin/layout-editor/module-overlay.d.ts +23 -4
- package/dist/admin/layout-editor/module-overlay.d.ts.map +1 -1
- package/dist/admin/layout-editor/module-overlay.js +56 -10
- package/dist/admin/layout-editor/module-overlay.js.map +1 -1
- package/dist/admin/layout-editor/module-variant-container-config.d.ts.map +1 -1
- package/dist/admin/layout-editor/module-variant-container-config.js +9 -2
- package/dist/admin/layout-editor/module-variant-container-config.js.map +1 -1
- package/dist/admin/layout-editor/module-variant-container-panel.d.ts +75 -0
- package/dist/admin/layout-editor/module-variant-container-panel.d.ts.map +1 -0
- package/dist/admin/layout-editor/module-variant-container-panel.js +29 -0
- package/dist/admin/layout-editor/module-variant-container-panel.js.map +1 -0
- package/dist/admin/layout-editor/node-lookup.d.ts.map +1 -1
- package/dist/admin/layout-editor/node-lookup.js +33 -3
- package/dist/admin/layout-editor/node-lookup.js.map +1 -1
- package/dist/admin/layout-editor/overlay-shell.d.ts.map +1 -1
- package/dist/admin/layout-editor/overlay-shell.js +19 -4
- package/dist/admin/layout-editor/overlay-shell.js.map +1 -1
- package/dist/admin/layout-editor/props-panel.d.ts +28 -11
- package/dist/admin/layout-editor/props-panel.d.ts.map +1 -1
- package/dist/admin/layout-editor/props-panel.js +75 -125
- package/dist/admin/layout-editor/props-panel.js.map +1 -1
- package/dist/admin/layout-editor/section-variant-container-config.d.ts.map +1 -1
- package/dist/admin/layout-editor/section-variant-container-config.js +11 -2
- package/dist/admin/layout-editor/section-variant-container-config.js.map +1 -1
- package/dist/admin/layout-editor/use-chrome-flip.d.ts +99 -11
- package/dist/admin/layout-editor/use-chrome-flip.d.ts.map +1 -1
- package/dist/admin/layout-editor/use-chrome-flip.js +268 -97
- package/dist/admin/layout-editor/use-chrome-flip.js.map +1 -1
- package/dist/admin/layout-editor/use-component-connect.d.ts +13 -0
- package/dist/admin/layout-editor/use-component-connect.d.ts.map +1 -1
- package/dist/admin/layout-editor/use-component-connect.js +116 -20
- package/dist/admin/layout-editor/use-component-connect.js.map +1 -1
- package/dist/admin/layout-editor/use-component-fork.d.ts +49 -19
- package/dist/admin/layout-editor/use-component-fork.d.ts.map +1 -1
- package/dist/admin/layout-editor/use-component-fork.js +28 -19
- package/dist/admin/layout-editor/use-component-fork.js.map +1 -1
- package/dist/admin/layout-editor/use-component-library.d.ts +4 -4
- package/dist/admin/layout-editor/use-component-library.d.ts.map +1 -1
- package/dist/admin/layout-editor/use-component-library.js +1 -1
- package/dist/admin/layout-editor/use-component-library.js.map +1 -1
- package/dist/admin/layout-editor/use-editor-dnd.d.ts +10 -0
- package/dist/admin/layout-editor/use-editor-dnd.d.ts.map +1 -1
- package/dist/admin/layout-editor/use-editor-dnd.js +234 -14
- package/dist/admin/layout-editor/use-editor-dnd.js.map +1 -1
- package/dist/admin/layout-editor/variant-container-config.d.ts.map +1 -1
- package/dist/admin/layout-editor/variant-container-config.js +1 -1
- package/dist/admin/layout-editor/variant-container-config.js.map +1 -1
- package/dist/admin/layout-editor/variant-editor.d.ts +16 -15
- package/dist/admin/layout-editor/variant-editor.d.ts.map +1 -1
- package/dist/admin/layout-editor/variant-editor.js +16 -5
- package/dist/admin/layout-editor/variant-editor.js.map +1 -1
- package/dist/admin/primitives.d.ts.map +1 -1
- package/dist/admin/primitives.js +1 -1
- package/dist/admin/primitives.js.map +1 -1
- package/dist/admin/registry.d.ts +24 -2
- package/dist/admin/registry.d.ts.map +1 -1
- package/dist/admin/registry.js +27 -0
- package/dist/admin/registry.js.map +1 -1
- package/dist/admin/server.d.ts +10 -1
- package/dist/admin/server.d.ts.map +1 -1
- package/dist/admin/server.js +4 -1
- package/dist/admin/server.js.map +1 -1
- package/dist/admin/site-switcher.d.ts +16 -3
- package/dist/admin/site-switcher.d.ts.map +1 -1
- package/dist/admin/site-switcher.js +18 -3
- package/dist/admin/site-switcher.js.map +1 -1
- package/dist/admin/styles/admin.css +0 -3
- package/dist/admin/surface-matcher.d.ts +6 -2
- package/dist/admin/surface-matcher.d.ts.map +1 -1
- package/dist/admin/surface-matcher.js +42 -5
- package/dist/admin/surface-matcher.js.map +1 -1
- package/dist/admin/surfaces/account/account-password.d.ts +3 -0
- package/dist/admin/surfaces/account/account-password.d.ts.map +1 -0
- package/dist/admin/surfaces/account/account-password.js +58 -0
- package/dist/admin/surfaces/account/account-password.js.map +1 -0
- package/dist/admin/surfaces/components/components-data.d.ts +31 -11
- package/dist/admin/surfaces/components/components-data.d.ts.map +1 -1
- package/dist/admin/surfaces/components/components-data.js +17 -4
- package/dist/admin/surfaces/components/components-data.js.map +1 -1
- package/dist/admin/surfaces/components/components-list.d.ts.map +1 -1
- package/dist/admin/surfaces/components/components-list.js +20 -7
- package/dist/admin/surfaces/components/components-list.js.map +1 -1
- package/dist/admin/surfaces/components/definition-canvas.d.ts +11 -3
- package/dist/admin/surfaces/components/definition-canvas.d.ts.map +1 -1
- package/dist/admin/surfaces/components/definition-canvas.js +138 -17
- package/dist/admin/surfaces/components/definition-canvas.js.map +1 -1
- package/dist/admin/surfaces/dashboard/dashboard-index.d.ts.map +1 -1
- package/dist/admin/surfaces/dashboard/dashboard-index.js +2 -2
- package/dist/admin/surfaces/dashboard/dashboard-index.js.map +1 -1
- package/dist/admin/surfaces/layouts/layout-editor-client.d.ts.map +1 -1
- package/dist/admin/surfaces/layouts/layout-editor-client.js +12 -11
- package/dist/admin/surfaces/layouts/layout-editor-client.js.map +1 -1
- package/dist/admin/surfaces/login.d.ts.map +1 -1
- package/dist/admin/surfaces/login.js +13 -1
- package/dist/admin/surfaces/login.js.map +1 -1
- package/dist/admin/surfaces/menus/menu-editor.d.ts.map +1 -1
- package/dist/admin/surfaces/menus/menu-editor.js +17 -4
- package/dist/admin/surfaces/menus/menu-editor.js.map +1 -1
- package/dist/admin/surfaces/menus/menu-tree.d.ts +18 -4
- package/dist/admin/surfaces/menus/menu-tree.d.ts.map +1 -1
- package/dist/admin/surfaces/menus/menu-tree.js +18 -3
- package/dist/admin/surfaces/menus/menu-tree.js.map +1 -1
- package/dist/admin/surfaces/menus/menus-data.d.ts +18 -0
- package/dist/admin/surfaces/menus/menus-data.d.ts.map +1 -1
- package/dist/admin/surfaces/menus/menus-data.js +4 -0
- package/dist/admin/surfaces/menus/menus-data.js.map +1 -1
- package/dist/admin/surfaces/menus/menus-list.d.ts.map +1 -1
- package/dist/admin/surfaces/menus/menus-list.js +2 -12
- package/dist/admin/surfaces/menus/menus-list.js.map +1 -1
- package/dist/admin/surfaces/settings/admin-features.d.ts.map +1 -1
- package/dist/admin/surfaces/settings/admin-features.js +12 -1
- package/dist/admin/surfaces/settings/admin-features.js.map +1 -1
- package/dist/admin/surfaces/users/users-data.d.ts +16 -0
- package/dist/admin/surfaces/users/users-data.d.ts.map +1 -1
- package/dist/admin/surfaces/users/users-data.js +19 -0
- package/dist/admin/surfaces/users/users-data.js.map +1 -1
- package/dist/admin/surfaces/users/users-detail.d.ts.map +1 -1
- package/dist/admin/surfaces/users/users-detail.js +87 -6
- package/dist/admin/surfaces/users/users-detail.js.map +1 -1
- package/dist/admin/surfaces/users/users-new.d.ts.map +1 -1
- package/dist/admin/surfaces/users/users-new.js +9 -5
- package/dist/admin/surfaces/users/users-new.js.map +1 -1
- package/dist/admin/user-form.d.ts +13 -2
- package/dist/admin/user-form.d.ts.map +1 -1
- package/dist/admin/user-form.js +3 -2
- package/dist/admin/user-form.js.map +1 -1
- package/dist/api/admin-features-routes.js +2 -2
- package/dist/api/admin-features-routes.js.map +1 -1
- package/dist/api/audience-preview-routes.d.ts +7 -0
- package/dist/api/audience-preview-routes.d.ts.map +1 -1
- package/dist/api/audience-preview-routes.js +4 -4
- package/dist/api/audience-preview-routes.js.map +1 -1
- package/dist/api/audience-routes.d.ts +7 -0
- package/dist/api/audience-routes.d.ts.map +1 -1
- package/dist/api/audience-routes.js +21 -15
- package/dist/api/audience-routes.js.map +1 -1
- package/dist/api/audience-runtime-routes.d.ts +6 -0
- package/dist/api/audience-runtime-routes.d.ts.map +1 -1
- package/dist/api/audience-runtime-routes.js +38 -3
- package/dist/api/audience-runtime-routes.js.map +1 -1
- package/dist/api/auth-routes.d.ts.map +1 -1
- package/dist/api/auth-routes.js +33 -4
- package/dist/api/auth-routes.js.map +1 -1
- package/dist/api/auth.d.ts +1 -0
- package/dist/api/auth.d.ts.map +1 -1
- package/dist/api/auth.js +43 -3
- package/dist/api/auth.js.map +1 -1
- package/dist/api/bulk-routes.d.ts.map +1 -1
- package/dist/api/bulk-routes.js +7 -7
- package/dist/api/bulk-routes.js.map +1 -1
- package/dist/api/category-routes.js +3 -3
- package/dist/api/category-routes.js.map +1 -1
- package/dist/api/comment-routes.js +8 -8
- package/dist/api/comment-routes.js.map +1 -1
- package/dist/api/component-routes.d.ts +25 -0
- package/dist/api/component-routes.d.ts.map +1 -1
- package/dist/api/component-routes.js +41 -16
- package/dist/api/component-routes.js.map +1 -1
- package/dist/api/content-routes.js +13 -13
- package/dist/api/content-routes.js.map +1 -1
- package/dist/api/dashboard-routes.js +1 -1
- package/dist/api/dashboard-routes.js.map +1 -1
- package/dist/api/experiment-routes.d.ts +7 -0
- package/dist/api/experiment-routes.d.ts.map +1 -1
- package/dist/api/experiment-routes.js +8 -8
- package/dist/api/experiment-routes.js.map +1 -1
- package/dist/api/experiment-runtime-routes.d.ts +6 -0
- package/dist/api/experiment-runtime-routes.d.ts.map +1 -1
- package/dist/api/experiment-runtime-routes.js +47 -11
- package/dist/api/experiment-runtime-routes.js.map +1 -1
- package/dist/api/feed-routes.d.ts +2 -2
- package/dist/api/feed-routes.js +3 -3
- package/dist/api/feed-routes.js.map +1 -1
- package/dist/api/form-routes.js +4 -4
- package/dist/api/form-routes.js.map +1 -1
- package/dist/api/graphql/resolvers.d.ts +1 -1
- package/dist/api/graphql/resolvers.d.ts.map +1 -1
- package/dist/api/graphql/resolvers.js +68 -33
- package/dist/api/graphql/resolvers.js.map +1 -1
- package/dist/api/group-routes.js +6 -6
- package/dist/api/group-routes.js.map +1 -1
- package/dist/api/index.d.ts +10 -0
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +97 -7
- package/dist/api/index.js.map +1 -1
- package/dist/api/layout-routes.d.ts.map +1 -1
- package/dist/api/layout-routes.js +27 -3
- package/dist/api/layout-routes.js.map +1 -1
- package/dist/api/media-routes.d.ts.map +1 -1
- package/dist/api/media-routes.js +50 -26
- package/dist/api/media-routes.js.map +1 -1
- package/dist/api/menu-routes.d.ts +9 -1
- package/dist/api/menu-routes.d.ts.map +1 -1
- package/dist/api/menu-routes.js +44 -10
- package/dist/api/menu-routes.js.map +1 -1
- package/dist/api/nav-routes.d.ts +6 -0
- package/dist/api/nav-routes.d.ts.map +1 -1
- package/dist/api/nav-routes.js +24 -3
- package/dist/api/nav-routes.js.map +1 -1
- package/dist/api/openapi.d.ts.map +1 -1
- package/dist/api/openapi.js +68 -33
- package/dist/api/openapi.js.map +1 -1
- package/dist/api/password-gate.d.ts +23 -0
- package/dist/api/password-gate.d.ts.map +1 -0
- package/dist/api/password-gate.js +41 -0
- package/dist/api/password-gate.js.map +1 -0
- package/dist/api/password-reset-routes.d.ts.map +1 -1
- package/dist/api/password-reset-routes.js +13 -6
- package/dist/api/password-reset-routes.js.map +1 -1
- package/dist/api/search-routes.js +2 -2
- package/dist/api/search-routes.js.map +1 -1
- package/dist/api/section-template-routes.d.ts.map +1 -1
- package/dist/api/section-template-routes.js +35 -18
- package/dist/api/section-template-routes.js.map +1 -1
- package/dist/api/site-admin-routes.d.ts +10 -1
- package/dist/api/site-admin-routes.d.ts.map +1 -1
- package/dist/api/site-admin-routes.js +21 -1
- package/dist/api/site-admin-routes.js.map +1 -1
- package/dist/api/site-context.d.ts +35 -5
- package/dist/api/site-context.d.ts.map +1 -1
- package/dist/api/site-context.js +21 -6
- package/dist/api/site-context.js.map +1 -1
- package/dist/api/tag-routes.js +3 -3
- package/dist/api/tag-routes.js.map +1 -1
- package/dist/api/translation-routes.js +5 -5
- package/dist/api/translation-routes.js.map +1 -1
- package/dist/api/user-routes.d.ts +4 -0
- package/dist/api/user-routes.d.ts.map +1 -1
- package/dist/api/user-routes.js +240 -17
- package/dist/api/user-routes.js.map +1 -1
- package/dist/api/webhook-routes.js +5 -5
- package/dist/api/webhook-routes.js.map +1 -1
- package/dist/api/workflow-routes.js +8 -8
- package/dist/api/workflow-routes.js.map +1 -1
- package/dist/audiences/collectors/identity.d.ts +14 -1
- package/dist/audiences/collectors/identity.d.ts.map +1 -1
- package/dist/audiences/collectors/identity.js +16 -3
- package/dist/audiences/collectors/identity.js.map +1 -1
- package/dist/audiences/collectors/index.d.ts +12 -2
- package/dist/audiences/collectors/index.d.ts.map +1 -1
- package/dist/audiences/collectors/index.js +16 -5
- package/dist/audiences/collectors/index.js.map +1 -1
- package/dist/audiences/collectors/pinned-audience.d.ts +28 -2
- package/dist/audiences/collectors/pinned-audience.d.ts.map +1 -1
- package/dist/audiences/collectors/pinned-audience.js +35 -5
- package/dist/audiences/collectors/pinned-audience.js.map +1 -1
- package/dist/audiences/collectors/utm.d.ts +15 -1
- package/dist/audiences/collectors/utm.d.ts.map +1 -1
- package/dist/audiences/collectors/utm.js +16 -2
- package/dist/audiences/collectors/utm.js.map +1 -1
- package/dist/audiences/consent-config.d.ts +21 -0
- package/dist/audiences/consent-config.d.ts.map +1 -0
- package/dist/audiences/consent-config.js +15 -0
- package/dist/audiences/consent-config.js.map +1 -0
- package/dist/audiences/consent-startup.d.ts +39 -0
- package/dist/audiences/consent-startup.d.ts.map +1 -0
- package/dist/audiences/consent-startup.js +105 -0
- package/dist/audiences/consent-startup.js.map +1 -0
- package/dist/audiences/consent.d.ts +192 -0
- package/dist/audiences/consent.d.ts.map +1 -0
- package/dist/audiences/consent.js +322 -0
- package/dist/audiences/consent.js.map +1 -0
- package/dist/audiences/engine.d.ts +7 -0
- package/dist/audiences/engine.d.ts.map +1 -1
- package/dist/audiences/engine.js +6 -2
- package/dist/audiences/engine.js.map +1 -1
- package/dist/audiences/index.d.ts +3 -0
- package/dist/audiences/index.d.ts.map +1 -1
- package/dist/audiences/index.js +6 -0
- package/dist/audiences/index.js.map +1 -1
- package/dist/audiences/server-eval.d.ts +13 -1
- package/dist/audiences/server-eval.d.ts.map +1 -1
- package/dist/audiences/server-eval.js +18 -2
- package/dist/audiences/server-eval.js.map +1 -1
- package/dist/audiences/ssr.d.ts +18 -1
- package/dist/audiences/ssr.d.ts.map +1 -1
- package/dist/audiences/ssr.js +18 -1
- package/dist/audiences/ssr.js.map +1 -1
- package/dist/audiences/utm-persistence.d.ts +20 -7
- package/dist/audiences/utm-persistence.d.ts.map +1 -1
- package/dist/audiences/utm-persistence.js +20 -7
- package/dist/audiences/utm-persistence.js.map +1 -1
- package/dist/auth/roles.d.ts +11 -0
- package/dist/auth/roles.d.ts.map +1 -1
- package/dist/auth/roles.js +13 -0
- package/dist/auth/roles.js.map +1 -1
- package/dist/auth/tokens.d.ts +7 -0
- package/dist/auth/tokens.d.ts.map +1 -1
- package/dist/auth/tokens.js +24 -2
- package/dist/auth/tokens.js.map +1 -1
- package/dist/config/types.d.ts +50 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js.map +1 -1
- package/dist/config/validate.d.ts.map +1 -1
- package/dist/config/validate.js +3 -0
- package/dist/config/validate.js.map +1 -1
- package/dist/db/apply-snapshot.d.ts +18 -0
- package/dist/db/apply-snapshot.d.ts.map +1 -1
- package/dist/db/apply-snapshot.js +41 -16
- package/dist/db/apply-snapshot.js.map +1 -1
- package/dist/db/component-instance-queries.d.ts +79 -19
- package/dist/db/component-instance-queries.d.ts.map +1 -1
- package/dist/db/component-instance-queries.js +266 -83
- package/dist/db/component-instance-queries.js.map +1 -1
- package/dist/db/component-queries.d.ts +1 -16
- package/dist/db/component-queries.d.ts.map +1 -1
- package/dist/db/component-queries.js +7 -56
- package/dist/db/component-queries.js.map +1 -1
- package/dist/db/content-queries.d.ts.map +1 -1
- package/dist/db/content-queries.js +1 -2
- package/dist/db/content-queries.js.map +1 -1
- package/dist/db/extension-queries.d.ts +2 -2
- package/dist/db/feed-queries.d.ts +3 -3
- package/dist/db/index.d.ts +1 -0
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +1 -0
- package/dist/db/index.js.map +1 -1
- package/dist/db/layout-queries.d.ts +2 -1
- package/dist/db/layout-queries.d.ts.map +1 -1
- package/dist/db/layout-queries.js +3 -3
- package/dist/db/layout-queries.js.map +1 -1
- package/dist/db/menu-queries.d.ts +69 -5
- package/dist/db/menu-queries.d.ts.map +1 -1
- package/dist/db/menu-queries.js +120 -13
- package/dist/db/menu-queries.js.map +1 -1
- package/dist/db/section-template-queries.d.ts +62 -0
- package/dist/db/section-template-queries.d.ts.map +1 -0
- package/dist/db/section-template-queries.js +178 -0
- package/dist/db/section-template-queries.js.map +1 -0
- package/dist/db/site-plugin-queries.d.ts +2 -2
- package/dist/db/tree-queries.d.ts.map +1 -1
- package/dist/db/tree-queries.js +5 -0
- package/dist/db/tree-queries.js.map +1 -1
- package/dist/db/user-queries.d.ts +28 -1
- package/dist/db/user-queries.d.ts.map +1 -1
- package/dist/db/user-queries.js +49 -1
- package/dist/db/user-queries.js.map +1 -1
- package/dist/db/webhook-queries.d.ts +3 -3
- package/dist/db/workflow-queries.d.ts.map +1 -1
- package/dist/db/workflow-queries.js +5 -20
- package/dist/db/workflow-queries.js.map +1 -1
- package/dist/experiments/runtime.d.ts +21 -3
- package/dist/experiments/runtime.d.ts.map +1 -1
- package/dist/experiments/runtime.js +21 -3
- package/dist/experiments/runtime.js.map +1 -1
- package/dist/host/index.d.ts +1 -0
- package/dist/host/index.d.ts.map +1 -1
- package/dist/host/index.js +12 -0
- package/dist/host/index.js.map +1 -1
- package/dist/layout/component-refs.d.ts +90 -2
- package/dist/layout/component-refs.d.ts.map +1 -1
- package/dist/layout/component-refs.js +293 -16
- package/dist/layout/component-refs.js.map +1 -1
- package/dist/layout/index.d.ts +4 -3
- package/dist/layout/index.d.ts.map +1 -1
- package/dist/layout/index.js +3 -2
- package/dist/layout/index.js.map +1 -1
- package/dist/layout/legacy-variant-container.d.ts +123 -0
- package/dist/layout/legacy-variant-container.d.ts.map +1 -0
- package/dist/layout/legacy-variant-container.js +397 -0
- package/dist/layout/legacy-variant-container.js.map +1 -0
- package/dist/layout/module-permissions.d.ts.map +1 -1
- package/dist/layout/module-permissions.js +25 -1
- package/dist/layout/module-permissions.js.map +1 -1
- package/dist/layout/modules-extended.d.ts +28 -1
- package/dist/layout/modules-extended.d.ts.map +1 -1
- package/dist/layout/modules-extended.js +73 -1
- package/dist/layout/modules-extended.js.map +1 -1
- package/dist/layout/modules.d.ts.map +1 -1
- package/dist/layout/modules.js +9 -1
- package/dist/layout/modules.js.map +1 -1
- package/dist/layout/personalization.d.ts +83 -0
- package/dist/layout/personalization.d.ts.map +1 -1
- package/dist/layout/personalization.js +250 -4
- package/dist/layout/personalization.js.map +1 -1
- package/dist/layout/registry.d.ts.map +1 -1
- package/dist/layout/registry.js +20 -0
- package/dist/layout/registry.js.map +1 -1
- package/dist/layout/renderer.d.ts +29 -2
- package/dist/layout/renderer.d.ts.map +1 -1
- package/dist/layout/renderer.js +23 -6
- package/dist/layout/renderer.js.map +1 -1
- package/dist/layout/types.d.ts +17 -0
- package/dist/layout/types.d.ts.map +1 -1
- package/dist/layout/types.js +7 -0
- package/dist/layout/types.js.map +1 -1
- package/dist/media/inline-risk.d.ts +26 -0
- package/dist/media/inline-risk.d.ts.map +1 -0
- package/dist/media/inline-risk.js +142 -0
- package/dist/media/inline-risk.js.map +1 -0
- package/dist/nav/builder.d.ts.map +1 -1
- package/dist/nav/builder.js +15 -3
- package/dist/nav/builder.js.map +1 -1
- package/dist/nav/index.d.ts +1 -1
- package/dist/nav/index.d.ts.map +1 -1
- package/dist/nav/index.js +1 -1
- package/dist/nav/index.js.map +1 -1
- package/dist/nav/menu-resolver.d.ts +11 -0
- package/dist/nav/menu-resolver.d.ts.map +1 -1
- package/dist/nav/menu-resolver.js +49 -9
- package/dist/nav/menu-resolver.js.map +1 -1
- package/dist/nav/paths.d.ts +37 -0
- package/dist/nav/paths.d.ts.map +1 -0
- package/dist/nav/paths.js +48 -0
- package/dist/nav/paths.js.map +1 -0
- package/dist/nav/types.d.ts +6 -0
- package/dist/nav/types.d.ts.map +1 -1
- package/dist/nav/url-resolver.d.ts +1 -5
- package/dist/nav/url-resolver.d.ts.map +1 -1
- package/dist/nav/url-resolver.js +6 -12
- package/dist/nav/url-resolver.js.map +1 -1
- package/dist/schema/base.d.ts +41 -4
- package/dist/schema/base.d.ts.map +1 -1
- package/dist/schema/base.js +23 -4
- package/dist/schema/base.js.map +1 -1
- package/dist/schema/components.d.ts +90 -9
- package/dist/schema/components.d.ts.map +1 -1
- package/dist/schema/components.js +113 -22
- package/dist/schema/components.js.map +1 -1
- package/dist/schema/mysql-tables.d.ts +5775 -48
- package/dist/schema/mysql-tables.d.ts.map +1 -1
- package/dist/schema/mysql-tables.js +621 -46
- package/dist/schema/mysql-tables.js.map +1 -1
- package/dist/scope/kywi-form.d.ts +11 -0
- package/dist/scope/kywi-form.d.ts.map +1 -1
- package/dist/scope/kywi-form.js +11 -1
- package/dist/scope/kywi-form.js.map +1 -1
- package/dist/scope/kywi-wizard-form.d.ts.map +1 -1
- package/dist/scope/kywi-wizard-form.js +76 -2
- package/dist/scope/kywi-wizard-form.js.map +1 -1
- package/dist/scope/sticky-offset.d.ts +34 -13
- package/dist/scope/sticky-offset.d.ts.map +1 -1
- package/dist/scope/sticky-offset.js +236 -43
- package/dist/scope/sticky-offset.js.map +1 -1
- package/dist/site/styles.css +61 -15
- package/dist/versioning/scheduler.d.ts +28 -0
- package/dist/versioning/scheduler.d.ts.map +1 -1
- package/dist/versioning/scheduler.js +50 -3
- package/dist/versioning/scheduler.js.map +1 -1
- package/package.json +7 -2
|
@@ -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
|
|
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) —
|
|
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":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAG/E,OAAO,EAAE,kBAAkB,EAAuB,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAkD9C,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;AAEF,iEAAiE;AAEjE
|
|
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;
|
|
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"}
|
|
@@ -19,6 +19,7 @@ import { ModuleOverlay } from './module-overlay.js';
|
|
|
19
19
|
import { DropIndicator } from './drop-indicator.js';
|
|
20
20
|
import { DropTargetContext } from './drag-feedback.js';
|
|
21
21
|
import { useChromeFlip, chromeOffsetClasses, chromeOffsetStyle } from './use-chrome-flip.js';
|
|
22
|
+
import { ChromeEnvContext, useChromeEnv } from './chrome-env.js';
|
|
22
23
|
import { ModuleEditorContext } from '../../layout/module-render-context.js';
|
|
23
24
|
import { LinkedComponentPill, linkedComponentName } from './linked-component.js';
|
|
24
25
|
/**
|
|
@@ -160,11 +161,13 @@ function slotBoundaryOffset(columnEl, index) {
|
|
|
160
161
|
* once rather than in whichever copy the next reader finds.
|
|
161
162
|
*
|
|
162
163
|
* What differs between the two is only what the caller passes. An arm module is
|
|
163
|
-
* not a column node: the CONTAINER is, so the arm
|
|
164
|
-
* (`
|
|
165
|
-
*
|
|
164
|
+
* not a column node: the CONTAINER is, so the arm marks no drop slot
|
|
165
|
+
* (`columnSlot`) and is never offered the promote actions — the reducer would
|
|
166
|
+
* refuse to nest one container in another. It DOES drag, since kywi-cms#171:
|
|
167
|
+
* `armOf` is what makes that drag mean "promote this variant's content onto the
|
|
168
|
+
* page" rather than "reorder the container".
|
|
166
169
|
*/
|
|
167
|
-
function CanvasModule({ node, columnId, index, state, dispatch, moduleComponents, resolveComponent, inPlace = false, inlineEdit, componentAffordances, draggable = true, columnSlot = true, actions, }) {
|
|
170
|
+
function CanvasModule({ node, columnId, index, state, dispatch, moduleComponents, resolveComponent, inPlace = false, inlineEdit, componentAffordances, draggable = true, columnSlot = true, armOf, actions, }) {
|
|
168
171
|
const inlineText = inlineTextBindingFor(node.id, node.type, inPlace, inlineEdit);
|
|
169
172
|
const select = () => dispatch({ type: 'SELECT', id: node.id, selectionType: 'module' });
|
|
170
173
|
// Nothing safe to bind (kywi-cms#118): double-click would otherwise be a
|
|
@@ -182,7 +185,7 @@ function CanvasModule({ node, columnId, index, state, dispatch, moduleComponents
|
|
|
182
185
|
// are replaced by a clean render from the stored props.
|
|
183
186
|
const previewKey = inlineEdit && inlineEdit.resetId === node.id ? `${node.id}:${inlineEdit.nonce}` : node.id;
|
|
184
187
|
const linkedName = linkedComponentName(node, componentAffordances);
|
|
185
|
-
return (_jsx(ModuleOverlay, { moduleId: node.id, instanceId: node.instanceId, columnId: columnId, index: index, draggable: draggable, columnSlot: columnSlot, isSelected: state.selectedId === node.id, typeLabel: node.type, inPlace: inPlace, moduleType: node.type, inlineText: inlineText, ...(actions && actions.length > 0 ? { actions } : {}), ...(node.componentId ? { componentId: node.componentId } : {}), ...(linkedName ? { componentName: linkedName } : {}), ...(onInlineFallback ? { onInlineFallback } : {}), onSelect: select, children: _jsx(ModulePreview, { node: node, moduleComponents: moduleComponents, ...(resolveComponent ? { resolveComponent } : {}) }, previewKey) }));
|
|
188
|
+
return (_jsx(ModuleOverlay, { moduleId: node.id, instanceId: node.instanceId, columnId: columnId, index: index, draggable: draggable, columnSlot: columnSlot, ...(armOf ? { armOf } : {}), isSelected: state.selectedId === node.id, typeLabel: node.type, inPlace: inPlace, moduleType: node.type, inlineText: inlineText, ...(actions && actions.length > 0 ? { actions } : {}), ...(node.componentId ? { componentId: node.componentId } : {}), ...(linkedName ? { componentName: linkedName } : {}), ...(onInlineFallback ? { onInlineFallback } : {}), onSelect: select, children: _jsx(ModulePreview, { node: node, moduleComponents: moduleComponents, ...(resolveComponent ? { resolveComponent } : {}) }, previewKey) }));
|
|
186
189
|
}
|
|
187
190
|
// ── DroppableColumn ───────────────────────────────────────────────────────────
|
|
188
191
|
function DroppableColumn({ column, state, dispatch, moduleComponents, resolveComponent, inPlace = false, inArm = false, canPromoteModules = true, inlineEdit, componentAffordances, }) {
|
|
@@ -207,7 +210,10 @@ function DroppableColumn({ column, state, dispatch, moduleComponents, resolveCom
|
|
|
207
210
|
// The hook publishes ONE target for the whole editor, so every other column
|
|
208
211
|
// draws nothing — which is the point: the owner sees a single destination.
|
|
209
212
|
const dropTarget = React.useContext(DropTargetContext);
|
|
210
|
-
|
|
213
|
+
// Column targets only: an ARM target (kywi-cms#171) is drawn by the arm zone
|
|
214
|
+
// itself, over the one module it would replace, because the line/placeholder
|
|
215
|
+
// this column draws is index-relative and an arm has no index.
|
|
216
|
+
const target = dropTarget && dropTarget.kind !== 'arm' && dropTarget.columnId === column.id ? dropTarget : null;
|
|
211
217
|
// kywi-cms#138: the drop element doubles as the indicator's positioning
|
|
212
218
|
// context, so the indicator has to be measured against the same element it is
|
|
213
219
|
// placed inside. `setNodeRef` is stable (dnd-kit builds it once per hook), so
|
|
@@ -392,7 +398,7 @@ function formatWeight(weight) {
|
|
|
392
398
|
* module reads exactly like switching them on a personalized band.
|
|
393
399
|
*/
|
|
394
400
|
function ArmTabs({ arms, activeArm, isAbTest, onSelect, }) {
|
|
395
|
-
return (_jsx("div", { className: "kywi-editor-vc-arms", role: "tablist", "aria-label": "Variants", children: arms.map(arm => (_jsxs("button", { type: "button", role: "tab", "aria-selected": arm.id === activeArm, "data-arm-id": arm.id, className: `kywi-editor-vc-arm-btn${arm.id === activeArm ? ' kywi-editor-vc-arm-btn--active' : ''}`, onClick: (e) => {
|
|
401
|
+
return (_jsx("div", { className: "kywi-editor-vc-arms", role: "tablist", "aria-label": "Content Variants", children: arms.map(arm => (_jsxs("button", { type: "button", role: "tab", "aria-selected": arm.id === activeArm, "data-arm-id": arm.id, className: `kywi-editor-vc-arm-btn${arm.id === activeArm ? ' kywi-editor-vc-arm-btn--active' : ''}`, onClick: (e) => {
|
|
396
402
|
e.stopPropagation();
|
|
397
403
|
onSelect(arm.id);
|
|
398
404
|
}, children: [arm.label, isAbTest && arm.weight !== null && (_jsx("span", { className: "kywi-editor-vc-arm-weight", children: formatWeight(arm.weight) }))] }, arm.id))) }));
|
|
@@ -491,14 +497,68 @@ function VariantContainerBlock({ container, state, dispatch, moduleComponents, r
|
|
|
491
497
|
function moduleArmLabel(entry, index) {
|
|
492
498
|
return entry.label || entry.audienceId || `Variant ${index + 1}`;
|
|
493
499
|
}
|
|
500
|
+
/**
|
|
501
|
+
* The drop zone around ONE open arm's module (kywi-cms#171).
|
|
502
|
+
*
|
|
503
|
+
* WHY IT EXISTS. `column.nodes` is the editor's single index space, and an arm
|
|
504
|
+
* module is not in it — the CONTAINER is. So there is no index to aim a drop at
|
|
505
|
+
* inside a container, and the column's own line/placeholder indicator (which is
|
|
506
|
+
* entirely index-relative) would be promising a slot that does not exist. This
|
|
507
|
+
* zone is the other kind of address: not "between these two nodes" but "this
|
|
508
|
+
* arm's content", which a drop REPLACES.
|
|
509
|
+
*
|
|
510
|
+
* WHY THE ID IS PREFIXED. dnd-kit keys droppables by id in one flat registry,
|
|
511
|
+
* and the arm module inside this zone is a sortable — i.e. a droppable — under
|
|
512
|
+
* its own module id. `arm:${containerId}:${armId}` cannot collide with it, or
|
|
513
|
+
* with a column's `column-${id}`.
|
|
514
|
+
*
|
|
515
|
+
* WHY THE ARM MODULE CARRIES THE SAME DATA. The two droppables are nested and
|
|
516
|
+
* either can win a collision depending on where in the module the pointer sits.
|
|
517
|
+
* Rather than arbitrate that, `ModuleOverlay` publishes the same
|
|
518
|
+
* `armContainerId`/`armId` from `armOf`, so both answers are identical and the
|
|
519
|
+
* drop resolves the same way whichever one dnd-kit picks.
|
|
520
|
+
*
|
|
521
|
+
* It marks NO `data-kywi-module-slot`: that attribute is what
|
|
522
|
+
* `resolveColumnDropIndex` counts, one per `column.nodes` entry, and the
|
|
523
|
+
* container already carries it.
|
|
524
|
+
*
|
|
525
|
+
* The affordance below is drawn for a PALETTE drag only, because that is the
|
|
526
|
+
* only kind `useEditorDnd` projects a target for at all (a canvas reorder
|
|
527
|
+
* carries dnd-kit's own live transform, which would make any measurement of it
|
|
528
|
+
* a measurement of itself). The other destructive arm drop — a canvas module
|
|
529
|
+
* dropped onto an arm — is announced by its confirm dialog instead, on release.
|
|
530
|
+
*/
|
|
531
|
+
function ArmDropZone({ containerId, armId, armLabel, mode, inPlace, children, }) {
|
|
532
|
+
const { setNodeRef } = useDroppable({
|
|
533
|
+
id: `arm:${containerId}:${armId}`,
|
|
534
|
+
data: { armContainerId: containerId, armId, armLabel, armMode: mode },
|
|
535
|
+
});
|
|
536
|
+
const dropTarget = React.useContext(DropTargetContext);
|
|
537
|
+
const active = dropTarget?.kind === 'arm' &&
|
|
538
|
+
dropTarget.containerId === containerId &&
|
|
539
|
+
dropTarget.armId === armId
|
|
540
|
+
? dropTarget
|
|
541
|
+
: null;
|
|
542
|
+
return (_jsxs("div", { ref: setNodeRef, className: [
|
|
543
|
+
'kywi-editor-arm-drop',
|
|
544
|
+
// In place the zone sits between the site's own container and module
|
|
545
|
+
// wrappers, so it gets a class that promises to add no box of its own.
|
|
546
|
+
inPlace ? 'kywi-ip-arm-drop' : null,
|
|
547
|
+
active ? 'kywi-editor-arm-drop--over' : null,
|
|
548
|
+
]
|
|
549
|
+
.filter(Boolean)
|
|
550
|
+
.join(' '), "data-kywi-arm-drop": `${containerId}:${armId}`, children: [children, active && (_jsx("div", { className: "kywi-editor-arm-drop-affordance", "data-kywi-editor-chrome": "", contentEditable: false, children: _jsxs("span", { children: [active.label ? `Drop ${active.label} to replace` : 'Drop to replace', " the ", armLabel, ' ', "variant's content"] }) }))] }));
|
|
551
|
+
}
|
|
494
552
|
/**
|
|
495
553
|
* A MODULE-level variant container, rendered in place of the module it wrapped
|
|
496
554
|
* (kywi-cms#161).
|
|
497
555
|
*
|
|
498
556
|
* The open arm's module renders through the ORDINARY `CanvasModule`, so the
|
|
499
557
|
* props rail, inline text editing and the canvas preview all work on an arm
|
|
500
|
-
* exactly as they do on any module —
|
|
501
|
-
*
|
|
558
|
+
* exactly as they do on any module — including its drag handle since
|
|
559
|
+
* kywi-cms#171, which drags the arm's CONTENT onto the page (the container has
|
|
560
|
+
* its own grip in the chrome bar, and the two are visually distinct). The block
|
|
561
|
+
* itself is the sortable node and
|
|
502
562
|
* carries `data-kywi-module-slot` so a palette drop measures against it like any
|
|
503
563
|
* other slot; the arm module inside deliberately does not, or one column node
|
|
504
564
|
* would be counted twice (see `ModuleOverlayProps.columnSlot`). It reuses the
|
|
@@ -511,7 +571,9 @@ function ModuleVariantContainerBlock({ container, columnId, index, state, dispat
|
|
|
511
571
|
// splices against.
|
|
512
572
|
const { attributes, listeners, setNodeRef, transform, transition } = useSortable({
|
|
513
573
|
id: container.id,
|
|
514
|
-
|
|
574
|
+
// `containerMode` (kywi-cms#169) lets the DnD announcement say "personalized
|
|
575
|
+
// module" / "A/B tested module" instead of this sentinel type string itself.
|
|
576
|
+
data: { source: 'canvas', moduleId: container.id, columnId, index, moduleType: 'moduleVariantContainer', containerMode: container.mode },
|
|
515
577
|
});
|
|
516
578
|
const isAbTest = container.mode === 'ab_test';
|
|
517
579
|
const isSelected = state.selectedId === container.id;
|
|
@@ -532,15 +594,62 @@ function ModuleVariantContainerBlock({ container, columnId, index, state, dispat
|
|
|
532
594
|
weight: v.weight ?? null,
|
|
533
595
|
})),
|
|
534
596
|
];
|
|
597
|
+
// The open arm's name, in the one place the switcher above already resolves
|
|
598
|
+
// it — the drag datum, the announcement and the drop affordance all say the
|
|
599
|
+
// same thing the tab says (kywi-cms#171).
|
|
600
|
+
const activeArmLabel = arms.find(a => a.id === activeArm)?.label ?? 'Default';
|
|
601
|
+
// A module container can itself be a linked component since kywi-cms#170, so
|
|
602
|
+
// it wears the same linked marks its section-level sibling does: the class,
|
|
603
|
+
// the `data-component-id` the editor and the public DOM both read, and the
|
|
604
|
+
// pill naming what it is an instance of.
|
|
605
|
+
const linkedName = linkedComponentName(container, componentAffordances);
|
|
535
606
|
const className = inPlace
|
|
536
|
-
? [
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
607
|
+
? [
|
|
608
|
+
'kywi-module-variant-container',
|
|
609
|
+
'kywi-ip-mvc',
|
|
610
|
+
isSelected ? 'kywi-ip-mvc--selected' : null,
|
|
611
|
+
container.componentId ? 'kywi-ip-mvc--linked' : null,
|
|
612
|
+
].filter(Boolean).join(' ')
|
|
613
|
+
: [
|
|
614
|
+
'kywi-editor-mvc',
|
|
615
|
+
isSelected ? 'kywi-editor-mvc--selected' : null,
|
|
616
|
+
container.componentId ? 'kywi-editor-mvc--linked' : null,
|
|
617
|
+
].filter(Boolean).join(' ');
|
|
618
|
+
// This bar is RIGHT-anchored (the arm module's own type chip owns the
|
|
619
|
+
// above-left corner), which put it exactly under the fixed props rail on a
|
|
620
|
+
// full-width column — and that rail is out whenever anything is selected, so
|
|
621
|
+
// the arm switcher could not be clicked for as long as an owner was working
|
|
622
|
+
// (kywi-cms#166).
|
|
623
|
+
//
|
|
624
|
+
// It takes the horizontal dodge and, in practice, no vertical clamp: its
|
|
625
|
+
// owner is a module, and a module is shorter than
|
|
626
|
+
// `CHROME_MIN_CLAMP_HEIGHT_PX`, so a clamped bar would land flush over the
|
|
627
|
+
// very module it labels and eat the click that selects it (kywi-cms#166
|
|
628
|
+
// review — the rule and the measurement live with the constant). That is the
|
|
629
|
+
// hook's answer for any short owner rather than a special case here, so a
|
|
630
|
+
// personalized module tall enough to host a bar still gets the clamp.
|
|
631
|
+
//
|
|
632
|
+
// `setNodeRef` is dnd-kit's; the hook needs a ref it can READ, so the two are
|
|
633
|
+
// joined below rather than one replacing the other.
|
|
634
|
+
const rootRef = React.useRef(null);
|
|
635
|
+
const setRefs = React.useCallback((node) => {
|
|
636
|
+
rootRef.current = node;
|
|
637
|
+
setNodeRef(node);
|
|
638
|
+
}, [setNodeRef]);
|
|
639
|
+
const { propsRailOpen } = useChromeEnv();
|
|
640
|
+
const chromeOffsets = useChromeFlip(rootRef, inPlace, false, propsRailOpen);
|
|
641
|
+
return (_jsxs("div", { ref: setRefs, className: className, style: { transform: CSS.Transform.toString(transform), transition }, "data-module-variant-container-id": container.id, "data-mvc-mode": container.mode, ...(container.componentId ? { 'data-component-id': container.componentId } : {}), "data-variant": activeArm, "data-kywi-module-slot": "", "data-testid": "editor-module-variant-container", ...attributes, children: [_jsxs("div", { className: inPlace
|
|
642
|
+
? ['kywi-ip-chrome', 'kywi-editor-mvc-chrome', ...chromeOffsetClasses(chromeOffsets, 'right')].join(' ')
|
|
643
|
+
: 'kywi-editor-mvc-chrome', style: inPlace ? chromeOffsetStyle(chromeOffsets, 'right') : undefined, "data-kywi-editor-chrome": "", contentEditable: false, onClick: (e) => {
|
|
540
644
|
// Stop here so the canvas root doesn't immediately deselect.
|
|
541
645
|
e.stopPropagation();
|
|
542
646
|
dispatch({ type: 'SELECT', id: container.id, selectionType: 'moduleVariantContainer' });
|
|
543
|
-
}, children: [_jsx("span", { className: "kywi-editor-vc-badge", children: isAbTest ? 'A/B test' : 'Personalized' }), _jsx(ArmTabs, { arms: arms, activeArm: activeArm, isAbTest: isAbTest, onSelect: (armId) => dispatch({ type: 'SET_VARIANT_ARM', containerId: container.id, armId }) }), _jsx("button", { type: "button", className: "kywi-editor-module-action-btn kywi-editor-mvc-drag-handle", "aria-label": "Drag to reorder", title: "Drag to reorder", ...listeners, children: _jsx(EditorIcon, { name: "grip", size: 14 }) })] }), _jsx(
|
|
647
|
+
}, children: [_jsx("span", { className: "kywi-editor-vc-badge", children: isAbTest ? 'A/B test' : 'Personalized' }), container.componentId ? _jsx(LinkedComponentPill, { name: linkedName }) : null, _jsx(ArmTabs, { arms: arms, activeArm: activeArm, isAbTest: isAbTest, onSelect: (armId) => dispatch({ type: 'SET_VARIANT_ARM', containerId: container.id, armId }) }), _jsx("button", { type: "button", className: "kywi-editor-module-action-btn kywi-editor-mvc-drag-handle", "aria-label": "Drag to reorder", title: "Drag to reorder", ...listeners, children: _jsx(EditorIcon, { name: "grip", size: 14 }) })] }), _jsx(ArmDropZone, { containerId: container.id, armId: activeArm, armLabel: activeArmLabel, mode: container.mode, inPlace: inPlace, children: _jsx(CanvasModule, { node: node, columnId: columnId, index: index, state: state, dispatch: dispatch, moduleComponents: moduleComponents, inPlace: inPlace, columnSlot: false, armOf: {
|
|
648
|
+
containerId: container.id,
|
|
649
|
+
armId: activeArm,
|
|
650
|
+
label: activeArmLabel,
|
|
651
|
+
containerMode: container.mode,
|
|
652
|
+
}, ...(inlineEdit ? { inlineEdit } : {}), ...(resolveComponent ? { resolveComponent } : {}), ...(componentAffordances ? { componentAffordances } : {}) }) })] }));
|
|
544
653
|
}
|
|
545
654
|
// ── EditorCanvas ──────────────────────────────────────────────────────────────
|
|
546
655
|
/**
|
|
@@ -553,7 +662,7 @@ function ModuleVariantContainerBlock({ container, columnId, index, state, dispat
|
|
|
553
662
|
* references from the shells (LayoutEditor / OverlayShell) across a
|
|
554
663
|
* drop-target update.
|
|
555
664
|
*/
|
|
556
|
-
export const EditorCanvas = React.memo(function EditorCanvas({ state, dispatch, moduleComponents, onInsertSection, resolveComponent, overlayHandles = false, inPlace = false, paletteOpen = false, inlineEdit, componentAffordances, canPromoteModules = true, }) {
|
|
665
|
+
export const EditorCanvas = React.memo(function EditorCanvas({ state, dispatch, moduleComponents, onInsertSection, resolveComponent, overlayHandles = false, inPlace = false, paletteOpen = false, propsRailOpen = false, inlineEdit, componentAffordances, canPromoteModules = true, }) {
|
|
557
666
|
const regions = getRegions(state);
|
|
558
667
|
// In place the canvas is NOT an artboard: it carries no background, padding
|
|
559
668
|
// or max-width of its own, so the page renders at its real width with its own
|
|
@@ -569,9 +678,14 @@ export const EditorCanvas = React.memo(function EditorCanvas({ state, dispatch,
|
|
|
569
678
|
// Variant containers count (kywi-cms#92): a page whose regions hold only
|
|
570
679
|
// personalized / A-B'd bands has a real layout and must not be told it has none.
|
|
571
680
|
const totalNodes = Object.values(regions).reduce((count, nodes) => count + nodes.filter(isRenderableNode).length, 0);
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
681
|
+
// Which rails are out, for every floating chrome in the tree (kywi-cms#128).
|
|
682
|
+
// Published from this component's own props — the shell that owns the rails
|
|
683
|
+
// is still the single source — so a chip five levels down can step aside
|
|
684
|
+
// without four intermediate components carrying a prop none of them reads.
|
|
685
|
+
const chromeEnv = React.useMemo(() => ({ paletteOpen, propsRailOpen }), [paletteOpen, propsRailOpen]);
|
|
686
|
+
return (_jsx(ModuleEditorContext.Provider, { value: true, children: _jsx(ChromeEnvContext.Provider, { value: chromeEnv, children: _jsxs("div", { className: canvasClassName, onClick: () => dispatch({ type: 'DESELECT' }), children: [totalNodes === 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) => {
|
|
687
|
+
event.stopPropagation();
|
|
688
|
+
onInsertSection(Object.keys(regions)[0] ?? 'main');
|
|
689
|
+
}, children: "+ Add Section" })] })), Object.entries(regions).map(([regionName, nodes]) => (_jsxs(RegionOverlay, { name: regionName, inPlace: inPlace, children: [nodes.filter(isRenderableNode).map((node) => (_jsxs(React.Fragment, { children: [!inPlace && _jsx(SectionInsertLine, { onInsert: () => onInsertSection(regionName) }), isLayoutSection(node) ? (_jsx(SectionBlock, { section: node, state: state, dispatch: dispatch, moduleComponents: moduleComponents, inPlace: inPlace, paletteOpen: paletteOpen, canPromoteModules: canPromoteModules, ...(inlineEdit ? { inlineEdit } : {}), ...(resolveComponent ? { resolveComponent } : {}), ...(componentAffordances ? { componentAffordances } : {}) })) : (_jsx(VariantContainerBlock, { container: node, state: state, dispatch: dispatch, moduleComponents: moduleComponents, inPlace: inPlace, paletteOpen: paletteOpen, ...(inlineEdit ? { inlineEdit } : {}), ...(resolveComponent ? { resolveComponent } : {}), ...(componentAffordances ? { componentAffordances } : {}) }))] }, node.id))), _jsx(SectionInsertLine, { onInsert: () => onInsertSection(regionName), inPlace: inPlace })] }, regionName)))] }) }) }));
|
|
576
690
|
});
|
|
577
691
|
//# sourceMappingURL=editor-canvas.js.map
|