@next-buildr/editor 2.0.0 → 3.0.0-rc.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/README.md +7 -0
- package/UPGRADING.md +322 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/app/builder-editor.test.js +223 -18
- package/dist/app/config.d.ts +27 -4
- package/dist/app/config.d.ts.map +1 -1
- package/dist/app/config.js +4 -3
- package/dist/app/contracts.d.ts +40 -0
- package/dist/app/contracts.d.ts.map +1 -0
- package/dist/app/contracts.js +4 -0
- package/dist/app/editor-app.d.ts.map +1 -1
- package/dist/app/editor-app.js +316 -24
- package/dist/app/editor-app.test.js +144 -6
- package/dist/app/layout.d.ts +11 -2
- package/dist/app/layout.d.ts.map +1 -1
- package/dist/app/layout.js +170 -9
- package/dist/app/manifest.d.ts +7 -2
- package/dist/app/manifest.d.ts.map +1 -1
- package/dist/app/manifest.js +16 -4
- package/dist/app/shell-panels.d.ts +15 -0
- package/dist/app/shell-panels.d.ts.map +1 -1
- package/dist/app/small-screen.test.js +2 -2
- package/dist/app/stage-slots.d.ts +9 -0
- package/dist/app/stage-slots.d.ts.map +1 -0
- package/dist/app/stage-slots.js +10 -0
- package/dist/app/status-info.d.ts +2 -3
- package/dist/app/status-info.d.ts.map +1 -1
- package/dist/app/status-info.js +49 -16
- package/dist/canvas-host/canvas-frame.d.ts +13 -1
- package/dist/canvas-host/canvas-frame.d.ts.map +1 -1
- package/dist/canvas-host/canvas-frame.js +96 -8
- package/dist/canvas-host/canvas-frame.test.js +156 -3
- package/dist/canvas-host/host.d.ts +6 -0
- package/dist/canvas-host/host.d.ts.map +1 -1
- package/dist/canvas-host/host.js +116 -4
- package/dist/canvas-host/host.test.js +195 -6
- package/dist/clipboard/clipboard.d.ts +1 -1
- package/dist/clipboard/clipboard.d.ts.map +1 -1
- package/dist/clipboard/clipboard.js +5 -0
- package/dist/clipboard/clipboard.test.js +21 -1
- package/dist/clipboard/format.d.ts +3 -1
- package/dist/clipboard/format.d.ts.map +1 -1
- package/dist/clipboard/react.d.ts +1 -1
- package/dist/clipboard/react.d.ts.map +1 -1
- package/dist/clipboard/react.js +49 -3
- package/dist/dialogs/external-source.d.ts +15 -0
- package/dist/dialogs/external-source.d.ts.map +1 -0
- package/dist/dialogs/external-source.js +18 -0
- package/dist/dialogs/index.d.ts +4 -0
- package/dist/dialogs/index.d.ts.map +1 -1
- package/dist/dialogs/index.js +2 -0
- package/dist/dialogs/media-picker/index.d.ts +2 -2
- package/dist/dialogs/media-picker/index.d.ts.map +1 -1
- package/dist/dialogs/media-picker/index.js +1 -1
- package/dist/dialogs/media-picker/media-picker.d.ts +5 -0
- package/dist/dialogs/media-picker/media-picker.d.ts.map +1 -1
- package/dist/dialogs/media-picker/media-picker.js +67 -5
- package/dist/dialogs/media-picker/media-picker.test.js +72 -1
- package/dist/dialogs/media-picker/media-ref.d.ts +15 -0
- package/dist/dialogs/media-picker/media-ref.d.ts.map +1 -1
- package/dist/dialogs/media-picker/media-ref.js +29 -0
- package/dist/dialogs/remove-confirm.d.ts +14 -0
- package/dist/dialogs/remove-confirm.d.ts.map +1 -0
- package/dist/dialogs/remove-confirm.js +42 -0
- package/dist/dialogs/remove-confirm.test.d.ts +2 -0
- package/dist/dialogs/remove-confirm.test.d.ts.map +1 -0
- package/dist/dialogs/remove-confirm.test.js +118 -0
- package/dist/dnd/dnd-react.test.js +11 -2
- package/dist/dnd/dnd.test.js +23 -0
- package/dist/dnd/engine.d.ts +4 -2
- package/dist/dnd/engine.d.ts.map +1 -1
- package/dist/dnd/engine.js +6 -0
- package/dist/dnd/move-to-dialog.d.ts +4 -3
- package/dist/dnd/move-to-dialog.d.ts.map +1 -1
- package/dist/dnd/move-to-dialog.js +67 -10
- package/dist/dnd/react.d.ts.map +1 -1
- package/dist/dnd/react.js +5 -0
- package/dist/i18n/diagnostics.d.ts +22 -0
- package/dist/i18n/diagnostics.d.ts.map +1 -0
- package/dist/i18n/diagnostics.js +153 -0
- package/dist/i18n/diagnostics.test.d.ts +2 -0
- package/dist/i18n/diagnostics.test.d.ts.map +1 -0
- package/dist/i18n/diagnostics.test.js +74 -0
- package/dist/i18n/label-catalog.d.ts +20 -0
- package/dist/i18n/label-catalog.d.ts.map +1 -0
- package/dist/i18n/label-catalog.js +1 -0
- package/dist/i18n/locale-name.d.ts +7 -0
- package/dist/i18n/locale-name.d.ts.map +1 -0
- package/dist/i18n/locale-name.js +31 -0
- package/dist/i18n/localize-manifest.d.ts +11 -0
- package/dist/i18n/localize-manifest.d.ts.map +1 -0
- package/dist/i18n/localize-manifest.js +78 -0
- package/dist/i18n/localize-manifest.test.d.ts +2 -0
- package/dist/i18n/localize-manifest.test.d.ts.map +1 -0
- package/dist/i18n/localize-manifest.test.js +71 -0
- package/dist/messages/catalogs.test.d.ts +2 -0
- package/dist/messages/catalogs.test.d.ts.map +1 -0
- package/dist/messages/catalogs.test.js +80 -0
- package/dist/messages/en/app.d.ts +8 -0
- package/dist/messages/en/app.d.ts.map +1 -0
- package/dist/messages/en/app.js +7 -0
- package/dist/messages/en/blocks.d.ts +54 -0
- package/dist/messages/en/blocks.d.ts.map +1 -0
- package/dist/messages/en/blocks.js +53 -0
- package/dist/messages/en/canvas.d.ts +31 -0
- package/dist/messages/en/canvas.d.ts.map +1 -0
- package/dist/messages/en/canvas.js +30 -0
- package/dist/messages/en/clipboard.d.ts +13 -0
- package/dist/messages/en/clipboard.d.ts.map +1 -0
- package/dist/messages/en/clipboard.js +12 -0
- package/dist/messages/en/colorPicker.d.ts +20 -0
- package/dist/messages/en/colorPicker.d.ts.map +1 -0
- package/dist/messages/en/colorPicker.js +19 -0
- package/dist/messages/en/diagnostics.d.ts +40 -0
- package/dist/messages/en/diagnostics.d.ts.map +1 -0
- package/dist/messages/en/diagnostics.js +39 -0
- package/dist/messages/en/dialogs/common.d.ts +6 -0
- package/dist/messages/en/dialogs/common.d.ts.map +1 -0
- package/dist/messages/en/dialogs/common.js +5 -0
- package/dist/messages/en/dialogs/conflict.d.ts +15 -0
- package/dist/messages/en/dialogs/conflict.d.ts.map +1 -0
- package/dist/messages/en/dialogs/conflict.js +14 -0
- package/dist/messages/en/dialogs/delete.d.ts +19 -0
- package/dist/messages/en/dialogs/delete.d.ts.map +1 -0
- package/dist/messages/en/dialogs/delete.js +18 -0
- package/dist/messages/en/dialogs/pageOptions.d.ts +9 -0
- package/dist/messages/en/dialogs/pageOptions.d.ts.map +1 -0
- package/dist/messages/en/dialogs/pageOptions.js +8 -0
- package/dist/messages/en/dialogs/publish.d.ts +15 -0
- package/dist/messages/en/dialogs/publish.d.ts.map +1 -0
- package/dist/messages/en/dialogs/publish.js +14 -0
- package/dist/messages/en/dnd.d.ts +19 -0
- package/dist/messages/en/dnd.d.ts.map +1 -0
- package/dist/messages/en/dnd.js +18 -0
- package/dist/messages/en/editor.d.ts +30 -0
- package/dist/messages/en/editor.d.ts.map +1 -0
- package/dist/messages/en/editor.js +29 -0
- package/dist/messages/en/external.d.ts +6 -0
- package/dist/messages/en/external.d.ts.map +1 -0
- package/dist/messages/en/external.js +5 -0
- package/dist/messages/en/insert.d.ts +25 -0
- package/dist/messages/en/insert.d.ts.map +1 -0
- package/dist/messages/en/insert.js +24 -0
- package/dist/messages/en/inspector.d.ts +176 -0
- package/dist/messages/en/inspector.d.ts.map +1 -0
- package/dist/messages/en/inspector.js +175 -0
- package/dist/messages/en/issues.d.ts +36 -0
- package/dist/messages/en/issues.d.ts.map +1 -0
- package/dist/messages/en/issues.js +35 -0
- package/dist/messages/en/layers.d.ts +29 -0
- package/dist/messages/en/layers.d.ts.map +1 -0
- package/dist/messages/en/layers.js +28 -0
- package/dist/messages/en/leftPanel.d.ts +15 -0
- package/dist/messages/en/leftPanel.d.ts.map +1 -0
- package/dist/messages/en/leftPanel.js +14 -0
- package/dist/messages/en/list.d.ts +9 -0
- package/dist/messages/en/list.d.ts.map +1 -0
- package/dist/messages/en/list.js +8 -0
- package/dist/messages/en/locale.d.ts +4 -0
- package/dist/messages/en/locale.d.ts.map +1 -0
- package/dist/messages/en/locale.js +3 -0
- package/dist/messages/en/media.d.ts +51 -0
- package/dist/messages/en/media.d.ts.map +1 -0
- package/dist/messages/en/media.js +50 -0
- package/dist/messages/en/menu.d.ts +12 -0
- package/dist/messages/en/menu.d.ts.map +1 -0
- package/dist/messages/en/menu.js +11 -0
- package/dist/messages/en/patterns.d.ts +24 -0
- package/dist/messages/en/patterns.d.ts.map +1 -0
- package/dist/messages/en/patterns.js +23 -0
- package/dist/messages/en/preview.d.ts +8 -0
- package/dist/messages/en/preview.d.ts.map +1 -0
- package/dist/messages/en/preview.js +7 -0
- package/dist/messages/en/publish.d.ts +19 -0
- package/dist/messages/en/publish.d.ts.map +1 -0
- package/dist/messages/en/publish.js +18 -0
- package/dist/messages/en/richText.d.ts +21 -0
- package/dist/messages/en/richText.d.ts.map +1 -0
- package/dist/messages/en/richText.js +20 -0
- package/dist/messages/en/sample.d.ts +5 -0
- package/dist/messages/en/sample.d.ts.map +1 -0
- package/dist/messages/en/sample.js +4 -0
- package/dist/messages/en/save.d.ts +15 -0
- package/dist/messages/en/save.d.ts.map +1 -0
- package/dist/messages/en/save.js +14 -0
- package/dist/messages/en/shortcut.d.ts +36 -0
- package/dist/messages/en/shortcut.d.ts.map +1 -0
- package/dist/messages/en/shortcut.js +35 -0
- package/dist/messages/en/statusBar.d.ts +14 -0
- package/dist/messages/en/statusBar.d.ts.map +1 -0
- package/dist/messages/en/statusBar.js +13 -0
- package/dist/messages/en/structure.d.ts +28 -0
- package/dist/messages/en/structure.d.ts.map +1 -0
- package/dist/messages/en/structure.js +27 -0
- package/dist/messages/en/style.d.ts +168 -0
- package/dist/messages/en/style.d.ts.map +1 -0
- package/dist/messages/en/style.js +167 -0
- package/dist/messages/en/styleField.d.ts +301 -0
- package/dist/messages/en/styleField.d.ts.map +1 -0
- package/dist/messages/en/styleField.js +300 -0
- package/dist/messages/en/styleOption.d.ts +128 -0
- package/dist/messages/en/styleOption.d.ts.map +1 -0
- package/dist/messages/en/styleOption.js +127 -0
- package/dist/messages/en/styleSection.d.ts +16 -0
- package/dist/messages/en/styleSection.d.ts.map +1 -0
- package/dist/messages/en/styleSection.js +15 -0
- package/dist/messages/en/toast.d.ts +22 -0
- package/dist/messages/en/toast.d.ts.map +1 -0
- package/dist/messages/en/toast.js +21 -0
- package/dist/messages/en/toolbar.d.ts +47 -0
- package/dist/messages/en/toolbar.d.ts.map +1 -0
- package/dist/messages/en/toolbar.js +46 -0
- package/dist/messages/en/translation.d.ts +7 -0
- package/dist/messages/en/translation.d.ts.map +1 -0
- package/dist/messages/en/translation.js +6 -0
- package/dist/messages/en/ui.d.ts +4 -0
- package/dist/messages/en/ui.d.ts.map +1 -0
- package/dist/messages/en/ui.js +3 -0
- package/dist/messages/en/values.d.ts +45 -0
- package/dist/messages/en/values.d.ts.map +1 -0
- package/dist/messages/en/values.js +44 -0
- package/dist/messages/en.d.ts +1298 -202
- package/dist/messages/en.d.ts.map +1 -1
- package/dist/messages/en.js +82 -330
- package/dist/messages/index.d.ts +12 -0
- package/dist/messages/index.d.ts.map +1 -1
- package/dist/messages/index.js +28 -1
- package/dist/messages/pl/app.d.ts +8 -0
- package/dist/messages/pl/app.d.ts.map +1 -0
- package/dist/messages/pl/app.js +7 -0
- package/dist/messages/pl/blocks.d.ts +54 -0
- package/dist/messages/pl/blocks.d.ts.map +1 -0
- package/dist/messages/pl/blocks.js +53 -0
- package/dist/messages/pl/canvas.d.ts +31 -0
- package/dist/messages/pl/canvas.d.ts.map +1 -0
- package/dist/messages/pl/canvas.js +30 -0
- package/dist/messages/pl/clipboard.d.ts +13 -0
- package/dist/messages/pl/clipboard.d.ts.map +1 -0
- package/dist/messages/pl/clipboard.js +12 -0
- package/dist/messages/pl/colorPicker.d.ts +20 -0
- package/dist/messages/pl/colorPicker.d.ts.map +1 -0
- package/dist/messages/pl/colorPicker.js +19 -0
- package/dist/messages/pl/componentLabels.d.ts +9 -0
- package/dist/messages/pl/componentLabels.d.ts.map +1 -0
- package/dist/messages/pl/componentLabels.js +308 -0
- package/dist/messages/pl/diagnostics.d.ts +39 -0
- package/dist/messages/pl/diagnostics.d.ts.map +1 -0
- package/dist/messages/pl/diagnostics.js +38 -0
- package/dist/messages/pl/dialogs/common.d.ts +6 -0
- package/dist/messages/pl/dialogs/common.d.ts.map +1 -0
- package/dist/messages/pl/dialogs/common.js +5 -0
- package/dist/messages/pl/dialogs/conflict.d.ts +15 -0
- package/dist/messages/pl/dialogs/conflict.d.ts.map +1 -0
- package/dist/messages/pl/dialogs/conflict.js +14 -0
- package/dist/messages/pl/dialogs/delete.d.ts +19 -0
- package/dist/messages/pl/dialogs/delete.d.ts.map +1 -0
- package/dist/messages/pl/dialogs/delete.js +18 -0
- package/dist/messages/pl/dialogs/pageOptions.d.ts +9 -0
- package/dist/messages/pl/dialogs/pageOptions.d.ts.map +1 -0
- package/dist/messages/pl/dialogs/pageOptions.js +8 -0
- package/dist/messages/pl/dialogs/publish.d.ts +15 -0
- package/dist/messages/pl/dialogs/publish.d.ts.map +1 -0
- package/dist/messages/pl/dialogs/publish.js +14 -0
- package/dist/messages/pl/dnd.d.ts +19 -0
- package/dist/messages/pl/dnd.d.ts.map +1 -0
- package/dist/messages/pl/dnd.js +18 -0
- package/dist/messages/pl/editor.d.ts +30 -0
- package/dist/messages/pl/editor.d.ts.map +1 -0
- package/dist/messages/pl/editor.js +29 -0
- package/dist/messages/pl/external.d.ts +6 -0
- package/dist/messages/pl/external.d.ts.map +1 -0
- package/dist/messages/pl/external.js +5 -0
- package/dist/messages/pl/insert.d.ts +25 -0
- package/dist/messages/pl/insert.d.ts.map +1 -0
- package/dist/messages/pl/insert.js +24 -0
- package/dist/messages/pl/inspector.d.ts +176 -0
- package/dist/messages/pl/inspector.d.ts.map +1 -0
- package/dist/messages/pl/inspector.js +175 -0
- package/dist/messages/pl/issues.d.ts +36 -0
- package/dist/messages/pl/issues.d.ts.map +1 -0
- package/dist/messages/pl/issues.js +35 -0
- package/dist/messages/pl/layers.d.ts +29 -0
- package/dist/messages/pl/layers.d.ts.map +1 -0
- package/dist/messages/pl/layers.js +28 -0
- package/dist/messages/pl/leftPanel.d.ts +15 -0
- package/dist/messages/pl/leftPanel.d.ts.map +1 -0
- package/dist/messages/pl/leftPanel.js +14 -0
- package/dist/messages/pl/list.d.ts +9 -0
- package/dist/messages/pl/list.d.ts.map +1 -0
- package/dist/messages/pl/list.js +8 -0
- package/dist/messages/pl/locale.d.ts +4 -0
- package/dist/messages/pl/locale.d.ts.map +1 -0
- package/dist/messages/pl/locale.js +3 -0
- package/dist/messages/pl/media.d.ts +51 -0
- package/dist/messages/pl/media.d.ts.map +1 -0
- package/dist/messages/pl/media.js +50 -0
- package/dist/messages/pl/menu.d.ts +12 -0
- package/dist/messages/pl/menu.d.ts.map +1 -0
- package/dist/messages/pl/menu.js +11 -0
- package/dist/messages/pl/patterns.d.ts +24 -0
- package/dist/messages/pl/patterns.d.ts.map +1 -0
- package/dist/messages/pl/patterns.js +23 -0
- package/dist/messages/pl/preview.d.ts +8 -0
- package/dist/messages/pl/preview.d.ts.map +1 -0
- package/dist/messages/pl/preview.js +7 -0
- package/dist/messages/pl/publish.d.ts +19 -0
- package/dist/messages/pl/publish.d.ts.map +1 -0
- package/dist/messages/pl/publish.js +18 -0
- package/dist/messages/pl/richText.d.ts +21 -0
- package/dist/messages/pl/richText.d.ts.map +1 -0
- package/dist/messages/pl/richText.js +20 -0
- package/dist/messages/pl/sample.d.ts +5 -0
- package/dist/messages/pl/sample.d.ts.map +1 -0
- package/dist/messages/pl/sample.js +4 -0
- package/dist/messages/pl/save.d.ts +15 -0
- package/dist/messages/pl/save.d.ts.map +1 -0
- package/dist/messages/pl/save.js +14 -0
- package/dist/messages/pl/shortcut.d.ts +36 -0
- package/dist/messages/pl/shortcut.d.ts.map +1 -0
- package/dist/messages/pl/shortcut.js +35 -0
- package/dist/messages/pl/statusBar.d.ts +14 -0
- package/dist/messages/pl/statusBar.d.ts.map +1 -0
- package/dist/messages/pl/statusBar.js +13 -0
- package/dist/messages/pl/structure.d.ts +28 -0
- package/dist/messages/pl/structure.d.ts.map +1 -0
- package/dist/messages/pl/structure.js +27 -0
- package/dist/messages/pl/style.d.ts +168 -0
- package/dist/messages/pl/style.d.ts.map +1 -0
- package/dist/messages/pl/style.js +167 -0
- package/dist/messages/pl/styleField.d.ts +301 -0
- package/dist/messages/pl/styleField.d.ts.map +1 -0
- package/dist/messages/pl/styleField.js +300 -0
- package/dist/messages/pl/styleOption.d.ts +128 -0
- package/dist/messages/pl/styleOption.d.ts.map +1 -0
- package/dist/messages/pl/styleOption.js +127 -0
- package/dist/messages/pl/styleSection.d.ts +16 -0
- package/dist/messages/pl/styleSection.d.ts.map +1 -0
- package/dist/messages/pl/styleSection.js +15 -0
- package/dist/messages/pl/toast.d.ts +22 -0
- package/dist/messages/pl/toast.d.ts.map +1 -0
- package/dist/messages/pl/toast.js +21 -0
- package/dist/messages/pl/toolbar.d.ts +47 -0
- package/dist/messages/pl/toolbar.d.ts.map +1 -0
- package/dist/messages/pl/toolbar.js +46 -0
- package/dist/messages/pl/translation.d.ts +7 -0
- package/dist/messages/pl/translation.d.ts.map +1 -0
- package/dist/messages/pl/translation.js +6 -0
- package/dist/messages/pl/ui.d.ts +4 -0
- package/dist/messages/pl/ui.d.ts.map +1 -0
- package/dist/messages/pl/ui.js +3 -0
- package/dist/messages/pl/values.d.ts +45 -0
- package/dist/messages/pl/values.d.ts.map +1 -0
- package/dist/messages/pl/values.js +44 -0
- package/dist/messages/pl.d.ts.map +1 -1
- package/dist/messages/pl.js +82 -325
- package/dist/messages/plural.test.d.ts +2 -0
- package/dist/messages/plural.test.d.ts.map +1 -0
- package/dist/messages/plural.test.js +50 -0
- package/dist/panels/breadcrumbs/breadcrumbs.d.ts +1 -1
- package/dist/panels/breadcrumbs/breadcrumbs.d.ts.map +1 -1
- package/dist/panels/breadcrumbs/breadcrumbs.js +10 -3
- package/dist/panels/breadcrumbs/breadcrumbs.test.js +9 -2
- package/dist/panels/index.d.ts +3 -0
- package/dist/panels/index.d.ts.map +1 -1
- package/dist/panels/index.js +1 -0
- package/dist/panels/insert/catalog.d.ts +21 -1
- package/dist/panels/insert/catalog.d.ts.map +1 -1
- package/dist/panels/insert/catalog.js +85 -3
- package/dist/panels/insert/catalog.order.test.js +106 -1
- package/dist/panels/insert/index.d.ts +1 -0
- package/dist/panels/insert/index.d.ts.map +1 -1
- package/dist/panels/insert/insert-panel.d.ts +14 -4
- package/dist/panels/insert/insert-panel.d.ts.map +1 -1
- package/dist/panels/insert/insert-panel.js +128 -69
- package/dist/panels/insert/insert-panel.test.js +278 -37
- package/dist/panels/insert/target.d.ts +5 -1
- package/dist/panels/insert/target.d.ts.map +1 -1
- package/dist/panels/insert/target.js +11 -1
- package/dist/panels/inspector/author-fields.d.ts +21 -0
- package/dist/panels/inspector/author-fields.d.ts.map +1 -0
- package/dist/panels/inspector/author-fields.js +191 -0
- package/dist/panels/inspector/author-fields.test.d.ts +2 -0
- package/dist/panels/inspector/author-fields.test.d.ts.map +1 -0
- package/dist/panels/inspector/author-fields.test.js +237 -0
- package/dist/panels/inspector/controls/external-link.d.ts +24 -0
- package/dist/panels/inspector/controls/external-link.d.ts.map +1 -0
- package/dist/panels/inspector/controls/external-link.js +43 -0
- package/dist/panels/inspector/controls/external-link.test.d.ts +2 -0
- package/dist/panels/inspector/controls/external-link.test.d.ts.map +1 -0
- package/dist/panels/inspector/controls/external-link.test.js +105 -0
- package/dist/panels/inspector/controls/index.d.ts +1 -0
- package/dist/panels/inspector/controls/index.d.ts.map +1 -1
- package/dist/panels/inspector/controls/index.js +1 -0
- package/dist/panels/inspector/controls/media.d.ts +3 -1
- package/dist/panels/inspector/controls/media.d.ts.map +1 -1
- package/dist/panels/inspector/controls/media.js +8 -3
- package/dist/panels/inspector/controls/rich-text.d.ts.map +1 -1
- package/dist/panels/inspector/controls/rich-text.js +36 -6
- package/dist/panels/inspector/controls/textarea.d.ts +7 -2
- package/dist/panels/inspector/controls/textarea.d.ts.map +1 -1
- package/dist/panels/inspector/controls/textarea.js +37 -2
- package/dist/panels/inspector/default-hint.d.ts +13 -0
- package/dist/panels/inspector/default-hint.d.ts.map +1 -0
- package/dist/panels/inspector/default-hint.js +30 -0
- package/dist/panels/inspector/default-hint.test.d.ts +2 -0
- package/dist/panels/inspector/default-hint.test.d.ts.map +1 -0
- package/dist/panels/inspector/default-hint.test.js +46 -0
- package/dist/panels/inspector/index.d.ts +3 -3
- package/dist/panels/inspector/index.d.ts.map +1 -1
- package/dist/panels/inspector/index.js +2 -2
- package/dist/panels/inspector/inspector.d.ts +20 -2
- package/dist/panels/inspector/inspector.d.ts.map +1 -1
- package/dist/panels/inspector/inspector.js +246 -26
- package/dist/panels/inspector/inspector.test.js +276 -11
- package/dist/panels/inspector/props-panel.d.ts +36 -0
- package/dist/panels/inspector/props-panel.d.ts.map +1 -1
- package/dist/panels/inspector/props-panel.js +99 -17
- package/dist/panels/inspector/props-panel.test.d.ts +2 -0
- package/dist/panels/inspector/props-panel.test.d.ts.map +1 -0
- package/dist/panels/inspector/props-panel.test.js +17 -0
- package/dist/panels/inspector/scrub-label.d.ts +14 -0
- package/dist/panels/inspector/scrub-label.d.ts.map +1 -0
- package/dist/panels/inspector/scrub-label.js +75 -0
- package/dist/panels/inspector/scrub-label.test.d.ts +2 -0
- package/dist/panels/inspector/scrub-label.test.d.ts.map +1 -0
- package/dist/panels/inspector/scrub-label.test.js +132 -0
- package/dist/panels/inspector/styles/background-media.d.ts +28 -0
- package/dist/panels/inspector/styles/background-media.d.ts.map +1 -0
- package/dist/panels/inspector/styles/background-media.js +78 -0
- package/dist/panels/inspector/styles/box-model.d.ts +13 -16
- package/dist/panels/inspector/styles/box-model.d.ts.map +1 -1
- package/dist/panels/inspector/styles/box-model.js +10 -25
- package/dist/panels/inspector/styles/color-input.d.ts +3 -0
- package/dist/panels/inspector/styles/color-input.d.ts.map +1 -0
- package/dist/panels/inspector/styles/color-input.js +72 -0
- package/dist/panels/inspector/styles/gradient-fields.d.ts +9 -0
- package/dist/panels/inspector/styles/gradient-fields.d.ts.map +1 -0
- package/dist/panels/inspector/styles/gradient-fields.js +50 -0
- package/dist/panels/inspector/styles/index.d.ts +2 -0
- package/dist/panels/inspector/styles/index.d.ts.map +1 -1
- package/dist/panels/inspector/styles/index.js +2 -0
- package/dist/panels/inspector/styles/model.d.ts +27 -5
- package/dist/panels/inspector/styles/model.d.ts.map +1 -1
- package/dist/panels/inspector/styles/model.js +101 -3
- package/dist/panels/inspector/styles/motion-rows.d.ts +17 -0
- package/dist/panels/inspector/styles/motion-rows.d.ts.map +1 -0
- package/dist/panels/inspector/styles/motion-rows.js +117 -0
- package/dist/panels/inspector/styles/number-input.d.ts +4 -0
- package/dist/panels/inspector/styles/number-input.d.ts.map +1 -0
- package/dist/panels/inspector/styles/number-input.js +12 -0
- package/dist/panels/inspector/styles/option-label.d.ts +7 -0
- package/dist/panels/inspector/styles/option-label.d.ts.map +1 -0
- package/dist/panels/inspector/styles/option-label.js +9 -0
- package/dist/panels/inspector/styles/property-label.d.ts +9 -0
- package/dist/panels/inspector/styles/property-label.d.ts.map +1 -0
- package/dist/panels/inspector/styles/property-label.js +11 -0
- package/dist/panels/inspector/styles/section-state.d.ts +22 -0
- package/dist/panels/inspector/styles/section-state.d.ts.map +1 -0
- package/dist/panels/inspector/styles/section-state.js +96 -0
- package/dist/panels/inspector/styles/section.d.ts +25 -0
- package/dist/panels/inspector/styles/section.d.ts.map +1 -0
- package/dist/panels/inspector/styles/section.js +43 -0
- package/dist/panels/inspector/styles/sections-context.d.ts +13 -0
- package/dist/panels/inspector/styles/sections-context.d.ts.map +1 -0
- package/dist/panels/inspector/styles/sections-context.js +19 -0
- package/dist/panels/inspector/styles/sections-context.test.d.ts +2 -0
- package/dist/panels/inspector/styles/sections-context.test.d.ts.map +1 -0
- package/dist/panels/inspector/styles/sections-context.test.js +18 -0
- package/dist/panels/inspector/styles/sections-toggle.d.ts +6 -0
- package/dist/panels/inspector/styles/sections-toggle.d.ts.map +1 -0
- package/dist/panels/inspector/styles/sections-toggle.js +18 -0
- package/dist/panels/inspector/styles/segments.d.ts +3 -0
- package/dist/panels/inspector/styles/segments.d.ts.map +1 -1
- package/dist/panels/inspector/styles/segments.js +11 -4
- package/dist/panels/inspector/styles/sides-editor.d.ts +1 -1
- package/dist/panels/inspector/styles/sides-editor.d.ts.map +1 -1
- package/dist/panels/inspector/styles/sides-editor.js +33 -4
- package/dist/panels/inspector/styles/style-inspector.d.ts +3 -1
- package/dist/panels/inspector/styles/style-inspector.d.ts.map +1 -1
- package/dist/panels/inspector/styles/style-inspector.js +610 -42
- package/dist/panels/inspector/styles/style-inspector.test.js +694 -14
- package/dist/panels/inspector/styles/token-picker.d.ts +1 -1
- package/dist/panels/inspector/styles/token-picker.d.ts.map +1 -1
- package/dist/panels/inspector/styles/token-picker.js +10 -3
- package/dist/panels/inspector/styles/widgets.d.ts +116 -0
- package/dist/panels/inspector/styles/widgets.d.ts.map +1 -0
- package/dist/panels/inspector/styles/widgets.js +304 -0
- package/dist/panels/inspector/styles/widgets.test.d.ts +2 -0
- package/dist/panels/inspector/styles/widgets.test.d.ts.map +1 -0
- package/dist/panels/inspector/styles/widgets.test.js +247 -0
- package/dist/panels/inspector/values/value-editor.d.ts +1 -1
- package/dist/panels/inspector/values/value-editor.d.ts.map +1 -1
- package/dist/panels/inspector/values/value-editor.js +9 -8
- package/dist/panels/inspector/values/values.test.js +9 -3
- package/dist/panels/issues/collect.d.ts +2 -0
- package/dist/panels/issues/collect.d.ts.map +1 -1
- package/dist/panels/issues/collect.js +1 -0
- package/dist/panels/issues/index.d.ts +1 -0
- package/dist/panels/issues/index.d.ts.map +1 -1
- package/dist/panels/issues/index.js +1 -0
- package/dist/panels/issues/issues-panel.d.ts +4 -3
- package/dist/panels/issues/issues-panel.d.ts.map +1 -1
- package/dist/panels/issues/issues-panel.js +22 -35
- package/dist/panels/issues/path.d.ts +7 -0
- package/dist/panels/issues/path.d.ts.map +1 -0
- package/dist/panels/issues/path.js +21 -0
- package/dist/panels/layers/flatten.d.ts +16 -2
- package/dist/panels/layers/flatten.d.ts.map +1 -1
- package/dist/panels/layers/flatten.js +48 -4
- package/dist/panels/layers/layers-panel.d.ts +5 -2
- package/dist/panels/layers/layers-panel.d.ts.map +1 -1
- package/dist/panels/layers/layers-panel.js +177 -35
- package/dist/panels/layers/layers-panel.test.js +173 -15
- package/dist/panels/left-panel.d.ts +17 -0
- package/dist/panels/left-panel.d.ts.map +1 -0
- package/dist/panels/left-panel.js +47 -0
- package/dist/panels/left-panel.test.d.ts +2 -0
- package/dist/panels/left-panel.test.d.ts.map +1 -0
- package/dist/panels/left-panel.test.js +77 -0
- package/dist/persistence/persistence.test.js +9 -3
- package/dist/persistence/react.d.ts.map +1 -1
- package/dist/persistence/react.js +2 -2
- package/dist/preview/preview.d.ts +8 -0
- package/dist/preview/preview.d.ts.map +1 -1
- package/dist/preview/preview.js +21 -1
- package/dist/preview/preview.test.js +18 -1
- package/dist/shortcuts/actions.d.ts +13 -2
- package/dist/shortcuts/actions.d.ts.map +1 -1
- package/dist/shortcuts/actions.js +70 -15
- package/dist/shortcuts/help.d.ts +11 -0
- package/dist/shortcuts/help.d.ts.map +1 -0
- package/dist/shortcuts/help.js +77 -0
- package/dist/shortcuts/index.d.ts +5 -2
- package/dist/shortcuts/index.d.ts.map +1 -1
- package/dist/shortcuts/index.js +3 -1
- package/dist/shortcuts/map.d.ts +1 -1
- package/dist/shortcuts/map.d.ts.map +1 -1
- package/dist/shortcuts/map.js +14 -8
- package/dist/shortcuts/navigation.d.ts +13 -0
- package/dist/shortcuts/navigation.d.ts.map +1 -0
- package/dist/shortcuts/navigation.js +48 -0
- package/dist/shortcuts/shortcuts.d.ts +12 -1
- package/dist/shortcuts/shortcuts.d.ts.map +1 -1
- package/dist/shortcuts/shortcuts.js +61 -14
- package/dist/shortcuts/shortcuts.test.js +206 -5
- package/dist/store/create-store.d.ts.map +1 -1
- package/dist/store/create-store.js +19 -1
- package/dist/store/index.d.ts +4 -1
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +3 -1
- package/dist/store/react.d.ts +4 -0
- package/dist/store/react.d.ts.map +1 -1
- package/dist/store/react.js +7 -0
- package/dist/store/store.test.js +24 -0
- package/dist/store/structure-lock.d.ts +16 -0
- package/dist/store/structure-lock.d.ts.map +1 -0
- package/dist/store/structure-lock.js +43 -0
- package/dist/store/structure-lock.test.d.ts +2 -0
- package/dist/store/structure-lock.test.d.ts.map +1 -0
- package/dist/store/structure-lock.test.js +49 -0
- package/dist/store/types.d.ts +9 -0
- package/dist/store/types.d.ts.map +1 -1
- package/dist/store/view.d.ts +20 -0
- package/dist/store/view.d.ts.map +1 -0
- package/dist/store/view.js +17 -0
- package/dist/store/view.test.d.ts +2 -0
- package/dist/store/view.test.d.ts.map +1 -0
- package/dist/store/view.test.js +103 -0
- package/dist/styles/tokens.test.js +88 -9
- package/dist/styles.css +4112 -586
- package/dist/toolbar/brand.d.ts +2 -2
- package/dist/toolbar/brand.d.ts.map +1 -1
- package/dist/toolbar/brand.js +4 -4
- package/dist/toolbar/breakpoint-control.d.ts +4 -0
- package/dist/toolbar/breakpoint-control.d.ts.map +1 -1
- package/dist/toolbar/breakpoint-control.js +11 -4
- package/dist/toolbar/editable-title.d.ts +4 -1
- package/dist/toolbar/editable-title.d.ts.map +1 -1
- package/dist/toolbar/editable-title.js +2 -2
- package/dist/toolbar/editable-title.test.js +10 -0
- package/dist/toolbar/locale-chip.d.ts +10 -0
- package/dist/toolbar/locale-chip.d.ts.map +1 -0
- package/dist/toolbar/locale-chip.js +27 -0
- package/dist/toolbar/locale-switcher.d.ts.map +1 -1
- package/dist/toolbar/locale-switcher.js +4 -1
- package/dist/toolbar/more-menu.d.ts +26 -4
- package/dist/toolbar/more-menu.d.ts.map +1 -1
- package/dist/toolbar/more-menu.js +60 -13
- package/dist/toolbar/page-chip.d.ts +10 -0
- package/dist/toolbar/page-chip.d.ts.map +1 -0
- package/dist/toolbar/page-chip.js +12 -0
- package/dist/toolbar/page-options-dialog.d.ts +16 -0
- package/dist/toolbar/page-options-dialog.d.ts.map +1 -0
- package/dist/toolbar/page-options-dialog.js +13 -0
- package/dist/toolbar/panel-toggles.d.ts +3 -2
- package/dist/toolbar/panel-toggles.d.ts.map +1 -1
- package/dist/toolbar/panel-toggles.js +9 -4
- package/dist/toolbar/publish-dialog.d.ts +3 -0
- package/dist/toolbar/publish-dialog.d.ts.map +1 -1
- package/dist/toolbar/publish-dialog.js +34 -7
- package/dist/toolbar/publish.test.js +63 -19
- package/dist/toolbar/safe-history.d.ts +3 -0
- package/dist/toolbar/safe-history.d.ts.map +1 -0
- package/dist/toolbar/safe-history.js +5 -0
- package/dist/toolbar/sample-picker.d.ts +24 -4
- package/dist/toolbar/sample-picker.d.ts.map +1 -1
- package/dist/toolbar/sample-picker.js +42 -18
- package/dist/toolbar/toolbar-centre.d.ts +3 -11
- package/dist/toolbar/toolbar-centre.d.ts.map +1 -1
- package/dist/toolbar/toolbar-centre.js +4 -5
- package/dist/toolbar/toolbar-left.d.ts +4 -7
- package/dist/toolbar/toolbar-left.d.ts.map +1 -1
- package/dist/toolbar/toolbar-left.js +13 -11
- package/dist/toolbar/toolbar-right.d.ts +21 -6
- package/dist/toolbar/toolbar-right.d.ts.map +1 -1
- package/dist/toolbar/toolbar-right.js +28 -14
- package/dist/toolbar/toolbar.d.ts +23 -17
- package/dist/toolbar/toolbar.d.ts.map +1 -1
- package/dist/toolbar/toolbar.js +28 -11
- package/dist/toolbar/toolbar.test.js +238 -23
- package/dist/toolbar/use-overflow-level.d.ts +2 -1
- package/dist/toolbar/use-overflow-level.d.ts.map +1 -1
- package/dist/toolbar/use-overflow-level.js +9 -3
- package/dist/toolbar/zoom-menu.d.ts +5 -1
- package/dist/toolbar/zoom-menu.d.ts.map +1 -1
- package/dist/toolbar/zoom-menu.js +3 -2
- package/dist/ui/icon.d.ts +53 -0
- package/dist/ui/icon.d.ts.map +1 -1
- package/dist/ui/icon.js +58 -1
- package/dist/ui/icon.test.js +101 -3
- package/dist/ui/index.d.ts +4 -3
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +3 -2
- package/dist/ui/primitives.d.ts +97 -14
- package/dist/ui/primitives.d.ts.map +1 -1
- package/dist/ui/primitives.js +108 -22
- package/dist/ui/primitives.test.js +204 -3
- package/dist/ui/structure-locked.d.ts +9 -0
- package/dist/ui/structure-locked.d.ts.map +1 -0
- package/dist/ui/structure-locked.js +28 -0
- package/dist/ui/toast.d.ts +3 -1
- package/dist/ui/toast.d.ts.map +1 -1
- package/dist/ui/toast.js +21 -5
- package/dist/ui/toast.test.js +34 -0
- package/package.json +6 -4
package/README.md
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# @next-buildr/editor
|
|
2
|
+
|
|
3
|
+
Embeddable visual editor for Buildr documents. The editor connects to a Buildr canvas through the versioned canvas protocol.
|
|
4
|
+
|
|
5
|
+
Install with `npm install @next-buildr/editor @next-buildr/core react react-dom`. Import `@next-buildr/editor/styles.css` in your application. See the [Buildr repository](https://github.com/czekanskyy/buildr) for integration guidance.
|
|
6
|
+
|
|
7
|
+
Upgrading from 2.0.1: read `UPGRADING.md` in this package, or [docs/upgrading/v2-to-v3.md](https://github.com/czekanskyy/buildr/blob/main/docs/upgrading/v2-to-v3.md) in the repository. Install all seven `@next-buildr/*` packages at one exact version.
|
package/UPGRADING.md
ADDED
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
# Upgrading from Buildr 2.0.1 to 3.0.0
|
|
2
|
+
|
|
3
|
+
This is the canonical upgrade guide. The same text ships as `UPGRADING.md` in every `@next-buildr/*` package, as the MCP prompt `upgrade-to-v3` and as the MCP resource `buildr://upgrade/v3`. Do not edit the copies: edit this file, then run `pnpm gen:upgrade-guide` in the Buildr repository.
|
|
4
|
+
|
|
5
|
+
It is written as a checklist an AI coding agent can run. Every step is an instruction. Every change has an ID, a class, a detection command and an action. Run the detection commands from the root of your host repository. They use `git grep` and `pnpm`, which behave the same in bash and PowerShell.
|
|
6
|
+
|
|
7
|
+
The three classes are the only ones used here:
|
|
8
|
+
|
|
9
|
+
- **BREAKING**: the host must change something, or the editor will not work.
|
|
10
|
+
- **BEHAVIOUR**: the same code now does something different. Check whether your host depends on the old behaviour.
|
|
11
|
+
- **ADDITIVE**: something new. Nothing changes until you use it, but check that it does not clash with a name you already use.
|
|
12
|
+
|
|
13
|
+
## 1. Before you start
|
|
14
|
+
|
|
15
|
+
1. Read this whole guide before you change anything.
|
|
16
|
+
2. Record the current state. Run `pnpm list "@next-buildr/*" --depth 0 --recursive` and write down the version of each of the seven packages: `core`, `react`, `components`, `editor`, `next`, `payload`, `mcp`. This is your rollback target.
|
|
17
|
+
3. Run the host's tests, typecheck, lint and production build. This is your baseline. If the baseline is red, stop and fix it first, or you will not know what the upgrade broke.
|
|
18
|
+
4. Make a copy of the database you will use for trials. Never try the upgrade on production data.
|
|
19
|
+
5. Note which optional features the host uses, because some rows below apply only to them: the editor (`BuilderEditor` or `EditorApp`), the Payload plugin, forms, the MCP server, maps, captcha, external media, author code.
|
|
20
|
+
|
|
21
|
+
## 2. Pin and upgrade
|
|
22
|
+
|
|
23
|
+
Upgrade all seven packages to one exact version. Never mix versions: the editor and the canvas must come from the same major, and a host that mixes versions sees the protocol mismatch state first (see B1).
|
|
24
|
+
|
|
25
|
+
1. Set every `@next-buildr/*` dependency in the host to the same exact version, with no `^` and no `~`. Use the version you were told to install, for example `3.0.0` or a release candidate such as `3.0.0-rc.0`.
|
|
26
|
+
2. Run `pnpm install`.
|
|
27
|
+
3. Run `pnpm why @next-buildr/core`. It must show exactly one version. Run the same for the other six packages.
|
|
28
|
+
4. If the host keeps its own constant that names the renderer version (for example one it passes to the canvas), set it to the new version.
|
|
29
|
+
5. Run the typecheck. Fix every error against the change table below.
|
|
30
|
+
6. Go through the change table (section 3). For each row, run the detection command and apply the action. Skip rows that do not apply to your host.
|
|
31
|
+
7. Decide the palette questions in section 4.
|
|
32
|
+
8. Run the verification gates in section 5.
|
|
33
|
+
9. Only then deploy.
|
|
34
|
+
|
|
35
|
+
## 3. Change table
|
|
36
|
+
|
|
37
|
+
Each row has an ID, a class, what changed, a detection command and an action.
|
|
38
|
+
|
|
39
|
+
### B1 · BREAKING · The canvas protocol goes from 1 to 2
|
|
40
|
+
|
|
41
|
+
- **What changed:** The message protocol between the editor and the canvas is version 2. A peer that speaks version 1 is rejected. The registry manifest hash also differs between 2.x and 3.x for a registry that includes the Buildr library, so a canvas and an editor from different majors fail on the hash as well.
|
|
42
|
+
- **Symptom:** The editor opens, then shows its error card "The canvas and the editor are different versions. Update them together." (protocol), or "The canvas was built with other components than the editor." (manifest). This is the first sign of mixed package versions.
|
|
43
|
+
- **Detect:**
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
pnpm list "@next-buildr/*" --depth 0 --recursive
|
|
47
|
+
pnpm why @next-buildr/core
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Every `@next-buildr/*` line must show the same version. If the canvas is served from a different deployment than the editor, check that deployment too.
|
|
51
|
+
- **Action:** Pin all seven packages to one exact version in every deployment that serves an editor or a canvas. Redeploy the editor and the canvas together.
|
|
52
|
+
|
|
53
|
+
### H1 · BEHAVIOUR · Hidden nodes can be moved, reordered and duplicated
|
|
54
|
+
|
|
55
|
+
- **What changed:** `capabilities.insertable: false` on a component used to stop a node being added, moved and copied. It now stops a node being added only. `canMove`, `node.move`, drag and drop, reordering and `node.duplicate` no longer refuse a node because its component is `insertable: false`. Every other placement rule still applies. `canInsert`, `node.insert`, the palette and pasting are unchanged. Hidden is not forbidden: the flag is not an access control. This also means `buildr/gallery-item` and `buildr/carousel-slide` can be moved, for example into a Loop.
|
|
56
|
+
- **Detect:**
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
git grep -nE 'insertable: *false'
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
- **Action:** If you used `insertable: false` to keep a block in place, add `capabilities: { draggable: false }` to that component as well. If you used it only to keep a block out of the palette, change nothing.
|
|
63
|
+
|
|
64
|
+
### H2 · BEHAVIOUR · Three components move to a new version (identity migrations)
|
|
65
|
+
|
|
66
|
+
- **What changed:** `buildr/container` goes from version 2 to 3, `buildr/heading` from 1 to 2 and `buildr/text` from 1 to 2. Each migration is an identity migration: the stored props do not change. A document keeps its old versions until it is saved. A document saved by v3 records container 3, heading 2 and text 2. The document schema version does not change.
|
|
67
|
+
- **Detect:** Export your stored layouts to a JSON file (a database dump of the layout column works) and run:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
grep -oE '"buildr/(container|heading|text)": *[0-9]+' layouts.json | sort | uniq -c
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Before the upgrade you expect container 2, heading 1 and text 1. After editors save pages on v3 you also see container 3, heading 2 and text 2.
|
|
74
|
+
- **Action:** Nothing before the upgrade. Read section 6 (Rollback) before editors save pages on v3, because a 2.0.1 editor treats such a page as read only when the plugin has a registry with `migrations`.
|
|
75
|
+
|
|
76
|
+
### H3 · BEHAVIOUR · `buildr/container` renders its background through a wrapper
|
|
77
|
+
|
|
78
|
+
- **What changed:** A container background image is now wrapped in `span.bc-container__media`, which carries fit, position, attachment and overlay settings. Some classes moved onto the wrapper. The `img`, its `src`, its size and its empty `alt` are unchanged. The compared HTML is listed in section 7.
|
|
79
|
+
- **Detect:**
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
git grep -nE 'bc-container|backgroundImage'
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Look in host CSS, in snapshot tests and in any script that reads a container's children.
|
|
86
|
+
- **Action:** Review host CSS that targets a container's direct children or its background classes. Update HTML snapshots after you read the diff.
|
|
87
|
+
|
|
88
|
+
### H4 · BEHAVIOUR · Media trust is tighter
|
|
89
|
+
|
|
90
|
+
- **What changed:** A media object that the renderer did not resolve from the prepared data renders only when its `url` is a same origin path or an https URL (and, for external media, allowed by the host). Anything else, for example a `data:` or `javascript:` URL, renders nothing. Version 2.0.1 rendered such a container background image. A resolved library file is not affected.
|
|
91
|
+
- **Detect:** Look in a layout export for media URLs that are neither a path nor https:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
grep -oE '"url": *"[^"]*"' layouts.json | grep -vE '"url": *"(/|https://)' | sort | uniq -c
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
- **Action:** Replace each match with a library file or an https URL. If nothing matches, change nothing.
|
|
98
|
+
|
|
99
|
+
### H5 · BEHAVIOUR · `compileStyles` output can differ
|
|
100
|
+
|
|
101
|
+
- **What changed:** `compileStyles` changed its whitespace and takes a new path for compound shadow and filter values. It also takes an optional third argument, `{ capabilities }`. In the legacy corpus (561 documents authored for 2.0.1) no compiled CSS differed, so the visible risk is limited to byte for byte comparisons and to documents that use the new shadow, filter, transform and blend controls.
|
|
102
|
+
- **Detect:**
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
git grep -nE 'compileStyles|toMatchSnapshot|toMatchInlineSnapshot' -- '*.ts' '*.tsx' '*.mjs'
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
- **Action:** If a host test compares compiled CSS byte for byte, regenerate the expected output after you read the diff. Do not regenerate it without reading it.
|
|
109
|
+
|
|
110
|
+
### H6 · BEHAVIOUR · The form enhancer calls function actions itself
|
|
111
|
+
|
|
112
|
+
- **What changed:** The `buildr/form` element carries `data-buildr-form` (the form node id) and dispatches a bubbling `buildr-form:settled` event after every submission. A function valued form action (for example a server action passed as `formAction`) is now called by the Buildr form enhancer, with `preventDefault()` and inside `startTransition`, instead of by React's native form action handling.
|
|
113
|
+
- **Detect:**
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
git grep -nE 'formAction|buildr-form|data-buildr-form'
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
- **Action:** If you pass a server action as `formAction`, submit a real form on the rc and check that it settles. If you have HTML snapshots of forms, expect the new attribute.
|
|
120
|
+
|
|
121
|
+
### H7 · BEHAVIOUR · Editor defaults: viewport gate and tablet width
|
|
122
|
+
|
|
123
|
+
- **What changed:** `config.minViewportWidth` defaults to 320 instead of 1024, so the "use a computer" notice only appears on very narrow windows. The default `tablet` breakpoint in `DEFAULT_BREAKPOINTS` is 768 instead of 820. This changes the editor only. The breakpoints of the published site are unchanged. Below 1100 px the editor panels become sheets.
|
|
124
|
+
- **Detect:**
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
git grep -nE 'minViewportWidth|DEFAULT_BREAKPOINTS|breakpoints'
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
- **Action:** To keep the old gate, pass `minViewportWidth: 1024`. To keep the old tablet width in the editor, pass your own `breakpoints` with `{ id: 'tablet', width: 820 }`.
|
|
131
|
+
|
|
132
|
+
### H8 · BEHAVIOUR · Locked blocks stay locked unless the host passes `canUnlock`
|
|
133
|
+
|
|
134
|
+
- **What changed:** The editor has a new optional `canUnlock` prop (on `BuilderEditor` and `EditorApp`). Without it an author can lock a block but cannot unlock it: the layers panel says unlocking is not allowed, and core refuses with `command.unlock-not-permitted`.
|
|
135
|
+
- **Detect:**
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
git grep -nE '<BuilderEditor|<EditorApp|BuilderEditor\(|canUnlock'
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
- **Action:** If editors must be able to unlock blocks, pass `canUnlock` from the host's own permission, for example `canUnlock={() => true}` for a trusted editor. Leave it out to keep locks permanent.
|
|
142
|
+
|
|
143
|
+
### H9 · BEHAVIOUR · The palette hides `buildr/rich-text` and the `cms` category
|
|
144
|
+
|
|
145
|
+
- **What changed:** The Blocks tab of the editor no longer lists `buildr/rich-text` or any component in the `cms` category. The blocks stay registered and documents that use them still render and edit. The Blocks tab uses an explicit ordered list of sections: Layout, Content, Media, Forms, then any other category. A host component whose category is `cms` is hidden by this rule.
|
|
146
|
+
- **Detect:**
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
git grep -nE "category: *'cms'|category: *\"cms\""
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
- **Action:** If a host component has the category `cms` and must stay in the palette, give it another category.
|
|
153
|
+
|
|
154
|
+
### H10 · BEHAVIOUR · Editor details: recent keys, toast time, preview sandbox, DOM and CSS
|
|
155
|
+
|
|
156
|
+
- **What changed:**
|
|
157
|
+
- The "Recently used" palette section is gone, and the stored browser keys `buildr.editor.insert.recent` and `buildr.editor.insert.collapsed` are no longer read.
|
|
158
|
+
- The toast time goes from 6000 to 5000 ms.
|
|
159
|
+
- The preview iframe drops `allow-same-origin` from its sandbox when the preview URL is on another origin.
|
|
160
|
+
- The editor user interface was rebuilt. Some `bd-*` CSS class names and parts of the DOM structure changed.
|
|
161
|
+
- **Detect:**
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
git grep -nE 'bd-[a-z]|buildr\.editor\.insert|previewUrl'
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
- **Action:** Update host CSS or end to end selectors that target `bd-*` classes. If a preview page on another origin needs cookies or storage, serve it from the same origin as the editor or make it work inside a sandboxed frame.
|
|
168
|
+
|
|
169
|
+
### H11 · BEHAVIOUR · The Payload forms endpoint reserves the field name `buildr-captcha`
|
|
170
|
+
|
|
171
|
+
- **What changed:** A published form that contains an author field named `buildr-captcha` now answers 503, whether or not the form has a captcha block. HTML submissions use the existing invalid redirect.
|
|
172
|
+
- **Detect:**
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
git grep -n 'buildr-captcha'
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
Also search your stored form definitions for a field with that name.
|
|
179
|
+
- **Action:** Rename any author field called `buildr-captcha`.
|
|
180
|
+
|
|
181
|
+
### A1 · ADDITIVE · New blocks
|
|
182
|
+
|
|
183
|
+
- **What changed:** `buildr/spacer`, `buildr/anchor`, `buildr/fieldset`, `buildr/carousel`, `buildr/carousel-slide`, `buildr/gallery`, `buildr/gallery-item`, `buildr/video`, `buildr/iframe`, `buildr/map` and `buildr/captcha`. All start at version 1, so there is no migration. Slides and gallery items are `insertable: false`. The map needs `Platform.maps` and the captcha needs `Platform.captcha`, and both are off without host config.
|
|
184
|
+
- **Detect:** Look for a host component that already uses one of these type names:
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
git grep -nE "buildr/(spacer|anchor|fieldset|carousel|carousel-slide|gallery|gallery-item|video|iframe|map|captcha)"
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
- **Action:** A clash is not expected, because host components use their own prefix. If a host component does use one of these names, rename the host component. To keep a new block out of the palette, see section 4.
|
|
191
|
+
|
|
192
|
+
### A2 · ADDITIVE · New options on existing blocks
|
|
193
|
+
|
|
194
|
+
- **What changed:** `buildr/container` gets background video with a poster, an overlay (`overlayTone`, `overlayOpacity`, `backgroundOverlay`), `backgroundFit`, `backgroundPosition`, `backgroundAttachment` and the `typography` style group. `buildr/heading` gets an optional `tag` (`heading` by default, or `p`, `span`, `div`, `strong`). `buildr/text` gets `mode` (`plain` by default, `rich`, `html`), with the props `rich` and `html`. The `html` mode renders only when the host turns author code on. Every component that had the `effects` style group, except the form controls, now also has `motion`.
|
|
195
|
+
- **Detect:**
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
git grep -nE "buildr/(container|heading|text)'"
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
- **Action:** Nothing is required. A stored text without `mode` means plain, a stored heading without `tag` is a heading, and a container without the new props renders as before.
|
|
202
|
+
|
|
203
|
+
### A3 · ADDITIVE · The `motion` style group
|
|
204
|
+
|
|
205
|
+
- **What changed:** A typed, CSS only `motion` style group (entrance, hover, scroll reveal and parallax). It compiles to scoped `@keyframes`, transitions and `animation-timeline` behind `@supports`, all inside `prefers-reduced-motion: no-preference`. There is no runtime script. `compileStyles` also returns each node's `NodeRules.motion` and `keyframes`. Core also gains validated custom and text shadows, ordered filters and transforms, blend modes, radial gradients, background repeat and attachment.
|
|
206
|
+
- **Detect:**
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
git grep -nE "'motion'|keyframes"
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
- **Action:** Nothing is required. Check that a host style group or class named `motion` does not clash.
|
|
213
|
+
|
|
214
|
+
### A4 · ADDITIVE · Trusted author code and `capabilities`
|
|
215
|
+
|
|
216
|
+
- **What changed:** Trusted author code (ADR-026) is off by default. A node can carry `customCss`, `classes` and `attributes`, and `textarea` props accept `format: 'html'`. It all needs `capabilities.authorCode === true` and fails closed when the field is absent. New optional options: `capabilities` on `renderDocument`, `DocumentRenderer`, `renderTree` and `CanvasRuntime`; the `capabilities` prop of the editor and `config.capabilities`; the `capabilities` option of `createBuildrConfig`; the Payload `authorCode` plugin option (`false`, `true`, or a function that decides per request; it needs the `registry` option). `HostCapabilities` also carries the optional `externalMediaHosts` and `iframeHosts` allowlists (a host and its subdomains; absent means any https host, `[]` means none). New core exports include `HostCapabilities`, `authorCodeEnabled`, `compileCustomCss`, `sanitizeHtml`, `sanitizeHtmlToString`, `authorNodeAttributes` and `checkAuthorCode`.
|
|
217
|
+
- **Detect:**
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
git grep -nE 'authorCode|externalMediaHosts|iframeHosts|customCss'
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
- **Action:** Nothing is required. Do not turn author code on unless editors are trusted. When you do, pass the same `capabilities` to the editor, the canvas and the renderer, so the preview matches the site.
|
|
224
|
+
|
|
225
|
+
### A5 · ADDITIVE · `TemplateDefinition.insertable`
|
|
226
|
+
|
|
227
|
+
- **What changed:** A template can be marked `insertable: false`. It then disappears from the editor palette (patterns and search) and from every MCP template path: `list_templates`, the template resources, "did you mean" hints, `describe_template`, `create_document` and `insert_nodes`. It stays registered, and `instantiateTemplate` by id still works for host code. A hidden id is treated like an unknown id. The field has no default, and the manifest hash of a registry that does not set it is unchanged. `registryManifestSchema` accepts the field.
|
|
228
|
+
- **Detect:**
|
|
229
|
+
|
|
230
|
+
```bash
|
|
231
|
+
git grep -nE 'defineTemplate'
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
- **Action:** To keep an old template registered but out of the palette, add `insertable: false` to its `defineTemplate` input. See section 4 for the root trap.
|
|
235
|
+
|
|
236
|
+
### A6 · ADDITIVE · Host platform and Payload options
|
|
237
|
+
|
|
238
|
+
- **What changed:** `Platform.maps` and `Platform.captcha` (react and next), both off by default. Payload gets the `forms.captcha` option (server side Turnstile verification) and `forms.clientIp` (the trusted client address header). The memory rate limiter gets an optional `failClosed` flag (the default is unchanged). `processLayout` gains the `allowAuthorCode` and `previous` options. The editor gets the optional `historyUrl` prop. `@next-buildr/react` exports `markResolvedMedia` and `isResolvedMedia`. `@next-buildr/mcp` exports `isTemplateVisible`, `visibleTemplate` and `visibleTemplates`.
|
|
239
|
+
- **Detect:**
|
|
240
|
+
|
|
241
|
+
```bash
|
|
242
|
+
git grep -nE 'Platform|forms:|rateLimiter|processLayout|historyUrl'
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
- **Action:** Nothing is required. If the host uses maps or captcha, add the provider hosts to your Content Security Policy (see section 5) and read `docs/security.md` in the Buildr repository.
|
|
246
|
+
|
|
247
|
+
### A7 · ADDITIVE · New runtime dependency `parse5` in core
|
|
248
|
+
|
|
249
|
+
- **What changed:** `@next-buildr/core` depends on `parse5`. It is used only by the sanitiser of the Text `html` mode. Nothing else imports it.
|
|
250
|
+
- **Detect:**
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
pnpm why parse5
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
- **Action:** If your policy reviews new dependencies, review `parse5` once. Otherwise change nothing.
|
|
257
|
+
|
|
258
|
+
### A8 · ADDITIVE · Canvas protocol 2 messages
|
|
259
|
+
|
|
260
|
+
- **What changed:** The strict, bounded overlay view updates, the block action and insertion intents, ping and pong messages, and the optional `typeLabels` and `scale` fields of `view:set`. The editor stays the only owner of document changes. Core exports `typeLabelsSchema`, `viewLabelsSchema`, `MAX_HIDDEN_NODES`, `MAX_TYPE_LABELS` and `MAX_VIEW_LABEL_LENGTH` from `@next-buildr/core/protocol`.
|
|
261
|
+
- **Detect:**
|
|
262
|
+
|
|
263
|
+
```bash
|
|
264
|
+
git grep -nE '@next-buildr/core/protocol|postMessage'
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
- **Action:** If the host talks to the canvas protocol directly (it should not), update it to version 2. See B1.
|
|
268
|
+
|
|
269
|
+
### Nothing else changed
|
|
270
|
+
|
|
271
|
+
The document schema version is unchanged (`CURRENT_SCHEMA_VERSION` stays 1). There is no Payload field change and no database migration. No package `exports` entry was removed or renamed. A name by name comparison of every public entry point between the `v2.0.1` tag and this release found no removed export.
|
|
272
|
+
|
|
273
|
+
## 4. Palette decisions for the host
|
|
274
|
+
|
|
275
|
+
Decide what editors should see in the palette of the new version.
|
|
276
|
+
|
|
277
|
+
1. **Hide a host block.** Add `capabilities: { insertable: false }` to the component's metadata. Editors can no longer add it. Blocks of that type already on pages keep working, and, since this release, they can be moved, reordered and duplicated. Add `draggable: false` as well if a block must stay where it is.
|
|
278
|
+
2. **Hide a template.** Add `insertable: false` to its `defineTemplate` input. It stays registered, so `instantiateTemplate` by id and existing pages still work.
|
|
279
|
+
3. **The template root trap.** `canInsert` checks `insertable` on the root of an inserted fragment only, not on its descendants. A template whose root component is `insertable: false` cannot be inserted from the palette. Do not hide a template by hiding its root component: set `insertable: false` on the template. A hidden component can still sit inside an inserted template.
|
|
280
|
+
4. **Hidden is not forbidden.** `insertable: false` is not an access control. It keeps a block out of the palette and listings. It does not stop moving or duplicating a block already in a document.
|
|
281
|
+
5. **How the library blocks appear.** The Blocks tab shows the sections Layout, Content, Media and Forms, then any other category. The new blocks are listed there: Spacer and Anchor under Layout, the media blocks (video, iframe, carousel, gallery, map) under Media, and Fieldset and Captcha under Forms. Carousel slides and gallery items are not listed. `buildr/rich-text` and the `cms` category are hidden. A host that wants none of the library blocks marks every one of them `insertable: false` in its own registry. A registry in which every component and every template is hidden opens the editor with an empty palette and no error.
|
|
282
|
+
|
|
283
|
+
## 5. Verify
|
|
284
|
+
|
|
285
|
+
Run all of these after the upgrade, in this order. Stop at the first failure and find the cause before you go on.
|
|
286
|
+
|
|
287
|
+
1. Run the host's tests, typecheck, lint and production build. Compare the result with the baseline from section 1.
|
|
288
|
+
2. Render parity on a database copy. Build the old version and the new version against the same copy of the production data. Render the same pages with both and compare them: at minimum the page height and the HTML of the sections that use the container background (H3) and forms (H6). Equal heights prove layout only, so also check that a form submits and settles, that resolved media renders, and that the compiled CSS keeps its layer order.
|
|
289
|
+
3. Editor smoke test on the database copy: open a page, edit some text, replace an image, publish, and check that the page revalidates. Do this for each kind of page.
|
|
290
|
+
4. Check the protocol state: open the editor and confirm that it reaches the ready state and shows no mismatch card (B1).
|
|
291
|
+
5. Content Security Policy: only if the host uses maps or captcha. A new `frame-src` or `script-src` directive restricts everything it does not list, so merge the provider hosts into your existing directives.
|
|
292
|
+
|
|
293
|
+
## 6. Rollback
|
|
294
|
+
|
|
295
|
+
1. Pin all seven packages back to the version you recorded in section 1 and redeploy. The editor and the canvas must roll back together.
|
|
296
|
+
2. A document saved by v3 records container 3, heading 2 and text 2. The 2.0.1 editor marks such a document read only, and the Payload plugin refuses to save it, **only when** the host gave the Payload plugin a registry with `migrations`. A React registry has them. A registry object with `{ meta }` alone does not. Without `migrations` nothing marks the document. Check which case your host has before editors save pages on v3.
|
|
297
|
+
3. The Payload Versions tab does not bring a Buildr layout back. Its Restore button runs the `layout` write guard without the builder flag, so the current layout stays and only the other fields go back.
|
|
298
|
+
4. To bring back a layout from before the upgrade, use one of these: a restore script that reads the old layout from the Payload versions with `payload.findVersionByID` and writes it with `payload.update` (`draft: true`, `data: { layout, buildrRevision: current + 1 }`, `context: { [BUILDR_WRITE]: true }`; `BUILDR_WRITE` is exported by `@next-buildr/payload/plugin`), or restore the database copy you took before the upgrade. Keep Payload versions turned on, because the script reads the old layout from them. A script that has never been run on a database copy is a plan, not a proven way back: run it once before you need it.
|
|
299
|
+
|
|
300
|
+
## 7. Known differences
|
|
301
|
+
|
|
302
|
+
Buildr renders documents authored for 2.0.1 with the new build and compares the HTML and the compiled CSS with goldens generated once from the `@next-buildr/core@2.0.1` tag. These are the only differences that are allowed. Each one is listed with the reason it is not visible to a reader of the page. The table is generated from `tooling/smoke/fixtures/legacy-v2/known-differences.json`; do not edit it here.
|
|
303
|
+
|
|
304
|
+
<!-- known-differences:start -->
|
|
305
|
+
|
|
306
|
+
| Difference and reason | Cases | Kind | Before (2.0.1, example) | After (3.0.0, example) |
|
|
307
|
+
|---|---|---|---|---|
|
|
308
|
+
| The form element now carries data-buildr-form=<node id>, the hook the client form enhancer uses to find the form. Attributes, action and method are otherwise unchanged. (PB-160) | 76 | html | <code><form class="bc-form b-n000000001" action="/corpus/submit" method="post"></code> | <code><form class="bc-form b-n000000001" data-buildr-form="n000000001" action="/corpus/submit" method="post"></code> |
|
|
309
|
+
| A container background image is now wrapped in span.bc-container__media, which carries fit, position, attachment and overlay settings; the img itself, its src, size and empty alt are unchanged. | 5 | html | <code><img class="bc-container__background" src="/media/cat.jpg" alt="" width="1600" height="900"/></code> | <code><span class="bc-container__media" aria-hidden="true" data-fit="cover" data-position="center" data-attachment="scroll" data-overlay="none" style="--bc-overlay-opacity:0.5"><img c...</code> |
|
|
310
|
+
| The container background URL is now checked by the media trust rules: a data: or javascript: URL is no longer rendered, so the img, the preload link and data-has-background are gone. 2.0.1 rendered the data: image and emitted a javascript: URL. | 3 | html | <code><div class="bc-container b-n000000001" data-display="flex" data-width="lg" data-has-background=""><img class="bc-container__background" src="data:image/png;base64,iVBORw0KGgo=" ...</code> | <code><div class="bc-container b-n000000001" data-display="flex" data-width="lg"></code> |
|
|
311
|
+
|
|
312
|
+
<!-- known-differences:end -->
|
|
313
|
+
|
|
314
|
+
## 8. Block for the host's `AGENTS.md`
|
|
315
|
+
|
|
316
|
+
Copy this block into the `AGENTS.md` of the host repository:
|
|
317
|
+
|
|
318
|
+
```markdown
|
|
319
|
+
## Buildr upgrades
|
|
320
|
+
|
|
321
|
+
Before changing any `@next-buildr/*` version, read `node_modules/@next-buildr/core/UPGRADING.md` and run its verification steps. Never mix versions of the seven packages.
|
|
322
|
+
```
|