@next-buildr/editor 2.0.1 → 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 +2 -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 +5 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { act } from 'react';
|
|
3
3
|
import { createRoot } from 'react-dom/client';
|
|
4
4
|
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
@@ -11,6 +11,8 @@ import { PanelToggle } from '../toolbar/panel-toggles.js';
|
|
|
11
11
|
import { BuilderEditor } from './builder-editor.js';
|
|
12
12
|
import { resolveConfig } from './config.js';
|
|
13
13
|
import { EditorLayout } from './layout.js';
|
|
14
|
+
import { useShellPanels } from './shell-panels.js';
|
|
15
|
+
import { useStageSlots } from './stage-slots.js';
|
|
14
16
|
expect.extend(matchers);
|
|
15
17
|
globalThis.IS_REACT_ACT_ENVIRONMENT = true;
|
|
16
18
|
const manifest = {
|
|
@@ -51,7 +53,8 @@ describe('BuilderEditor shell', () => {
|
|
|
51
53
|
expect($('main').getAttribute('aria-label')).toBe(en['editor.canvas']);
|
|
52
54
|
const asides = [...container.querySelectorAll('aside')].map((el) => el.getAttribute('aria-label'));
|
|
53
55
|
expect(asides).toEqual([en['editor.leftPanel'], en['editor.inspector']]);
|
|
54
|
-
expect($('section').getAttribute('aria-label')).toBe(en['
|
|
56
|
+
expect($('main section').getAttribute('aria-label')).toBe(en['issues.drawer']);
|
|
57
|
+
expect($('.bd-status').getAttribute('aria-label')).toBe(en['statusBar.label']);
|
|
55
58
|
});
|
|
56
59
|
it('speaks the configured interface language, and English for one it does not know', async () => {
|
|
57
60
|
await show(props({ config: { uiLocale: 'pl' } }));
|
|
@@ -62,6 +65,9 @@ describe('BuilderEditor shell', () => {
|
|
|
62
65
|
});
|
|
63
66
|
it('has a Polish translation for every English string', () => {
|
|
64
67
|
expect(Object.keys(pl).sort()).toEqual(Object.keys(en).sort());
|
|
68
|
+
for (const value of Object.values(pl)) {
|
|
69
|
+
expect(value).not.toMatch(/\p{L}\?+\p{L}|\?+\p{L}|\p{L}\?{2,}/u);
|
|
70
|
+
}
|
|
65
71
|
for (const k of Object.keys(en))
|
|
66
72
|
expect(pl[k]).not.toBe('');
|
|
67
73
|
expect(UI_LOCALES).toEqual(['en', 'pl']);
|
|
@@ -103,14 +109,18 @@ describe('BuilderEditor shell', () => {
|
|
|
103
109
|
await pointer('pointerup', 900);
|
|
104
110
|
expect(left?.getAttribute('data-dragging')).toBe('false');
|
|
105
111
|
});
|
|
106
|
-
it('shows and hides the issues
|
|
112
|
+
it('shows and hides the issues drawer, which sits inside the stage', async () => {
|
|
107
113
|
await show(props());
|
|
108
|
-
const toggle = container.querySelector('.bd-
|
|
109
|
-
expect(toggle?.textContent).toBe(en['editor.issues.show']);
|
|
114
|
+
const toggle = container.querySelector('.bd-status button[aria-expanded]');
|
|
110
115
|
expect(toggle?.getAttribute('aria-expanded')).toBe('false');
|
|
116
|
+
expect($('main .bd-issues').getAttribute('data-open')).toBe('false');
|
|
117
|
+
expect(container.querySelector('.bd-status .bd-issues')).toBeNull();
|
|
118
|
+
await act(async () => toggle?.click());
|
|
119
|
+
expect(toggle?.getAttribute('aria-expanded')).toBe('true');
|
|
120
|
+
expect($('main .bd-issues').getAttribute('data-open')).toBe('true');
|
|
121
|
+
expect(toggle?.getAttribute('aria-controls')).toBe($('main .bd-issues').id);
|
|
111
122
|
await act(async () => toggle?.click());
|
|
112
|
-
expect(
|
|
113
|
-
expect($('.bd-issues').getAttribute('data-open')).toBe('true');
|
|
123
|
+
expect($('main .bd-issues').getAttribute('data-open')).toBe('false');
|
|
114
124
|
});
|
|
115
125
|
it('resets a panel on double-click and remembers the widths', async () => {
|
|
116
126
|
await show(props());
|
|
@@ -142,21 +152,143 @@ describe('BuilderEditor shell', () => {
|
|
|
142
152
|
getItem.mockRestore();
|
|
143
153
|
setItem.mockRestore();
|
|
144
154
|
});
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
expect(toggle
|
|
150
|
-
expect(toggle?.textContent).
|
|
151
|
-
expect($('.bd-
|
|
152
|
-
await
|
|
153
|
-
expect($('.bd-
|
|
155
|
+
const renderLayout = (locale, node) => act(async () => root.render(_jsx(MessagesProvider, { locale: locale, children: node })));
|
|
156
|
+
it('words the issue counts with plural forms, in English', async () => {
|
|
157
|
+
await renderLayout('en', _jsx(EditorLayout, { issueCounts: { error: 1, warning: 3 }, status: _jsx("span", { children: "info" }) }));
|
|
158
|
+
const toggle = $('.bd-status button[aria-expanded]');
|
|
159
|
+
expect(toggle.querySelector('[data-severity=error]')?.textContent).toBe('1 error');
|
|
160
|
+
expect(toggle.querySelector('[data-severity=warning]')?.textContent).toBe('3 warnings');
|
|
161
|
+
expect($('.bd-status').textContent).toContain('info');
|
|
162
|
+
await renderLayout('en', _jsx(EditorLayout, { issueCounts: { error: 0, warning: 0 } }));
|
|
163
|
+
expect($('.bd-status button[aria-expanded]').textContent).toBe(en['statusBar.noIssues']);
|
|
164
|
+
});
|
|
165
|
+
it('counts notes in the status bar and reports no issues only when all three are zero', async () => {
|
|
166
|
+
await renderLayout('en', _jsx(EditorLayout, { issueCounts: { error: 0, warning: 0, info: 2 } }));
|
|
167
|
+
const toggle = $('.bd-status button[aria-expanded]');
|
|
168
|
+
expect(toggle.querySelector('[data-severity=info]')?.textContent).toBe('2 notes');
|
|
169
|
+
expect(toggle.textContent).not.toContain(en['statusBar.noIssues']);
|
|
170
|
+
await renderLayout('en', _jsx(EditorLayout, { issueCounts: { error: 0, warning: 0, info: 0 } }));
|
|
171
|
+
expect($('.bd-status button[aria-expanded]').textContent).toBe(en['statusBar.noIssues']);
|
|
172
|
+
await renderLayout('pl', _jsx(EditorLayout, { issueCounts: { error: 0, warning: 0, info: 5 } }));
|
|
173
|
+
expect($('.bd-status [data-severity=info]').textContent).toBe('5 uwag');
|
|
174
|
+
});
|
|
175
|
+
it('words the issue counts with plural forms, in Polish', async () => {
|
|
176
|
+
const text = async (warning) => {
|
|
177
|
+
await renderLayout('pl', _jsx(EditorLayout, { issueCounts: { error: 0, warning } }));
|
|
178
|
+
return $('.bd-status button[aria-expanded]').textContent;
|
|
179
|
+
};
|
|
180
|
+
expect(await text(1)).toBe('1 ostrzeżenie');
|
|
181
|
+
expect(await text(2)).toBe('2 ostrzeżenia');
|
|
182
|
+
expect(await text(5)).toBe('5 ostrzeżeń');
|
|
183
|
+
});
|
|
184
|
+
it('shows the selection path on the left of the status bar', async () => {
|
|
185
|
+
await renderLayout('en', _jsx(EditorLayout, { breadcrumbs: _jsx("nav", { children: "path" }) }));
|
|
186
|
+
expect($('.bd-status .bd-status-crumbs nav').textContent).toBe('path');
|
|
187
|
+
});
|
|
188
|
+
describe('collapsing the panels', () => {
|
|
189
|
+
let panels;
|
|
190
|
+
const Probe = () => {
|
|
191
|
+
panels = useShellPanels();
|
|
192
|
+
return null;
|
|
193
|
+
};
|
|
194
|
+
const layout = () => (_jsx(EditorLayout, { toolbar: _jsx(Probe, {}), left: _jsx("p", { id: "left-content", children: "left" }), right: _jsx("p", { id: "right-content", children: "right" }) }));
|
|
195
|
+
const KEY = 'buildr:editor:collapsed';
|
|
196
|
+
it('shrinks a collapsed panel to a rail, keeps its content mounted and remembers it', async () => {
|
|
197
|
+
await renderLayout('en', layout());
|
|
198
|
+
expect($('.bd-body').style.getPropertyValue('--bd-left')).toBe('280px');
|
|
199
|
+
expect(container.querySelector('.bd-rail')).toBeNull();
|
|
200
|
+
expect(panels?.leftTab).toBe('blocks');
|
|
201
|
+
await act(async () => panels?.toggleCollapsed?.('left'));
|
|
202
|
+
expect($('.bd-body').style.getPropertyValue('--bd-left')).toBe('var(--bd-rail)');
|
|
203
|
+
expect($('aside[data-side=left]').getAttribute('data-collapsed')).toBe('true');
|
|
204
|
+
expect($('aside[data-side=left] .bd-panel-content').hidden).toBe(true);
|
|
205
|
+
expect(container.querySelector('#left-content')).not.toBeNull();
|
|
206
|
+
expect(container.querySelectorAll('aside[data-side=left] .bd-rail button')).toHaveLength(2);
|
|
207
|
+
expect($('.bd-body').style.getPropertyValue('--bd-right')).toBe('320px');
|
|
208
|
+
expect(JSON.parse(window.localStorage.getItem(KEY) ?? '')).toEqual({
|
|
209
|
+
left: true,
|
|
210
|
+
right: false,
|
|
211
|
+
});
|
|
212
|
+
await act(async () => panels?.collapseAll?.());
|
|
213
|
+
expect(container.querySelectorAll('.bd-rail')).toHaveLength(2);
|
|
214
|
+
await act(async () => panels?.expandAll?.());
|
|
215
|
+
expect(container.querySelector('.bd-rail')).toBeNull();
|
|
216
|
+
});
|
|
217
|
+
it('opens a panel from its rail, on the chosen tab', async () => {
|
|
218
|
+
await renderLayout('en', layout());
|
|
219
|
+
await act(async () => panels?.collapseAll?.());
|
|
220
|
+
const structure = container.querySelectorAll('aside[data-side=left] .bd-rail button')[1];
|
|
221
|
+
expect(structure?.getAttribute('aria-label')).toBe(en['leftPanel.tab.structure']);
|
|
222
|
+
await act(async () => structure?.click());
|
|
223
|
+
expect(panels?.leftTab).toBe('structure');
|
|
224
|
+
expect(panels?.collapsed).toEqual({ left: false, right: true });
|
|
225
|
+
await act(async () => $('aside[data-side=right] .bd-rail button').click());
|
|
226
|
+
expect(panels?.collapsed).toEqual({ left: false, right: false });
|
|
227
|
+
});
|
|
228
|
+
it('moves focus into an expanded panel and back to the rail on collapse', async () => {
|
|
229
|
+
await renderLayout('en', _jsx(EditorLayout, { toolbar: _jsx(Probe, {}), left: _jsx("button", { type: "button", id: "left-first", children: "left" }), right: _jsx("button", { type: "button", id: "right-first", children: "right" }) }));
|
|
230
|
+
expect(document.activeElement).toBe(document.body);
|
|
231
|
+
await act(async () => panels?.collapseAll?.());
|
|
232
|
+
const rail = $('aside[data-side=right] .bd-rail button');
|
|
233
|
+
rail.focus();
|
|
234
|
+
await act(async () => rail.click());
|
|
235
|
+
expect(document.activeElement).toBe($('#right-first'));
|
|
236
|
+
await act(async () => panels?.toggleCollapsed?.('right'));
|
|
237
|
+
expect(document.activeElement).toBe($('aside[data-side=right] .bd-rail button'));
|
|
238
|
+
});
|
|
239
|
+
it('does not steal focus when restoring a stored collapse', async () => {
|
|
240
|
+
window.localStorage.setItem(KEY, JSON.stringify({ left: true, right: false }));
|
|
241
|
+
await renderLayout('en', layout());
|
|
242
|
+
expect(document.activeElement).toBe(document.body);
|
|
243
|
+
});
|
|
244
|
+
it('restores a stored collapse and ignores corrupt data', async () => {
|
|
245
|
+
window.localStorage.setItem(KEY, JSON.stringify({ left: true, right: 'yes' }));
|
|
246
|
+
await renderLayout('en', layout());
|
|
247
|
+
expect(panels?.collapsed).toEqual({ left: true, right: false });
|
|
248
|
+
for (const bad of ['{not json', 'null', '42', '"left"', '[true,true]']) {
|
|
249
|
+
window.localStorage.setItem(KEY, bad);
|
|
250
|
+
await act(async () => root.unmount());
|
|
251
|
+
root = createRoot(container);
|
|
252
|
+
await renderLayout('en', layout());
|
|
253
|
+
expect(panels?.collapsed).toEqual({ left: false, right: false });
|
|
254
|
+
}
|
|
255
|
+
});
|
|
256
|
+
it('works while the storage throws', async () => {
|
|
257
|
+
const getItem = vi.spyOn(Storage.prototype, 'getItem').mockImplementation(() => {
|
|
258
|
+
throw new Error('denied');
|
|
259
|
+
});
|
|
260
|
+
const setItem = vi.spyOn(Storage.prototype, 'setItem').mockImplementation(() => {
|
|
261
|
+
throw new Error('denied');
|
|
262
|
+
});
|
|
263
|
+
await renderLayout('en', layout());
|
|
264
|
+
await act(async () => panels?.toggleCollapsed?.('right'));
|
|
265
|
+
expect(panels?.collapsed).toEqual({ left: false, right: true });
|
|
266
|
+
getItem.mockRestore();
|
|
267
|
+
setItem.mockRestore();
|
|
268
|
+
});
|
|
269
|
+
it('provides the stage and the drawer state to the stage slots', async () => {
|
|
270
|
+
let slots;
|
|
271
|
+
const Slots = () => {
|
|
272
|
+
slots = useStageSlots();
|
|
273
|
+
return null;
|
|
274
|
+
};
|
|
275
|
+
await renderLayout('en', _jsx(EditorLayout, { center: _jsx(Slots, {}) }));
|
|
276
|
+
expect(slots?.stage).toBe($('main'));
|
|
277
|
+
expect(slots?.issuesOpen).toBe(false);
|
|
278
|
+
await act(async () => slots?.setIssuesOpen(true));
|
|
279
|
+
expect($('main .bd-issues').getAttribute('data-open')).toBe('true');
|
|
280
|
+
});
|
|
154
281
|
});
|
|
155
282
|
it('turns the panels into toolbar-toggled overlays when the editor is narrow', async () => {
|
|
156
283
|
let notify;
|
|
284
|
+
const callbacks = [];
|
|
157
285
|
class FakeObserver {
|
|
158
286
|
constructor(callback) {
|
|
159
|
-
|
|
287
|
+
callbacks.push(callback);
|
|
288
|
+
notify = (entries) => {
|
|
289
|
+
for (const each of callbacks)
|
|
290
|
+
each(entries);
|
|
291
|
+
};
|
|
160
292
|
}
|
|
161
293
|
observe() { }
|
|
162
294
|
disconnect() { }
|
|
@@ -165,7 +297,6 @@ describe('BuilderEditor shell', () => {
|
|
|
165
297
|
const width = vi.spyOn(HTMLElement.prototype, 'clientWidth', 'get').mockReturnValue(1300);
|
|
166
298
|
await act(async () => root.render(_jsx(MessagesProvider, { locale: "en", children: _jsx("div", { className: "buildr-editor", children: _jsx(EditorLayout, { toolbar: _jsx(PanelToggle, { side: "left" }) }) }) })));
|
|
167
299
|
expect($('.bd-body').getAttribute('data-narrow')).toBe('false');
|
|
168
|
-
expect(container.querySelector('.bd-toolbar button')).toBeNull();
|
|
169
300
|
await act(async () => notify?.([{ contentRect: { width: 900 } }]));
|
|
170
301
|
expect($('.bd-body').getAttribute('data-narrow')).toBe('true');
|
|
171
302
|
const left = $('aside[data-side=left]');
|
|
@@ -182,6 +313,78 @@ describe('BuilderEditor shell', () => {
|
|
|
182
313
|
width.mockRestore();
|
|
183
314
|
vi.unstubAllGlobals();
|
|
184
315
|
});
|
|
316
|
+
it('shows a scrim and closable sheets, opens one at a time and flags a phone-wide editor', async () => {
|
|
317
|
+
let notify;
|
|
318
|
+
const callbacks = [];
|
|
319
|
+
class FakeObserver {
|
|
320
|
+
constructor(callback) {
|
|
321
|
+
callbacks.push(callback);
|
|
322
|
+
notify = (entries) => {
|
|
323
|
+
for (const each of callbacks)
|
|
324
|
+
each(entries);
|
|
325
|
+
};
|
|
326
|
+
}
|
|
327
|
+
observe() { }
|
|
328
|
+
disconnect() { }
|
|
329
|
+
}
|
|
330
|
+
vi.stubGlobal('ResizeObserver', FakeObserver);
|
|
331
|
+
const width = vi.spyOn(HTMLElement.prototype, 'clientWidth', 'get').mockReturnValue(390);
|
|
332
|
+
const Toggles = () => (_jsxs(_Fragment, { children: [_jsx(PanelToggle, { side: "left" }), _jsx(PanelToggle, { side: "right" })] }));
|
|
333
|
+
await act(async () => root.render(_jsx(MessagesProvider, { locale: "en", children: _jsx("div", { className: "buildr-editor", children: _jsx(EditorLayout, { toolbar: _jsx(Toggles, {}), left: _jsx("p", { children: "left" }), right: _jsx("p", { children: "right" }) }) }) })));
|
|
334
|
+
// The page can never grow wider than the window: nothing in the shell has a width of its own.
|
|
335
|
+
expect(document.documentElement.scrollWidth).toBeLessThanOrEqual(window.innerWidth);
|
|
336
|
+
expect($('.bd-body').getAttribute('data-compact')).toBe('true');
|
|
337
|
+
expect($('.bd-toolbar').getAttribute('data-compact')).toBe('true');
|
|
338
|
+
expect($('.bd-status').getAttribute('data-compact')).toBe('true');
|
|
339
|
+
expect($('.bd-scrim')).toBeNull();
|
|
340
|
+
const [left, right] = [...document.querySelectorAll('.bd-toolbar button')];
|
|
341
|
+
left?.focus();
|
|
342
|
+
await act(async () => left?.click());
|
|
343
|
+
expect($('aside[data-side=left]').hidden).toBe(false);
|
|
344
|
+
expect($('.bd-scrim')).not.toBeNull();
|
|
345
|
+
// The open sheet is a non-modal dialog with a name; focus is inside it, the canvas and status bar are inert and the toolbar stays live.
|
|
346
|
+
const sheet = $('aside[data-side=left]');
|
|
347
|
+
expect(sheet.getAttribute('role')).toBe('dialog');
|
|
348
|
+
expect(sheet.hasAttribute('aria-modal')).toBe(false);
|
|
349
|
+
expect(sheet.getAttribute('aria-label')).toBe(en['editor.leftPanel']);
|
|
350
|
+
expect(sheet.contains(document.activeElement)).toBe(true);
|
|
351
|
+
expect($('.bd-toolbar').hasAttribute('inert')).toBe(false);
|
|
352
|
+
expect($('.bd-canvas').hasAttribute('inert')).toBe(true);
|
|
353
|
+
expect($('.bd-status').hasAttribute('inert')).toBe(true);
|
|
354
|
+
expect($('aside[data-side=right]').getAttribute('role')).toBeNull();
|
|
355
|
+
// Escape closes it, focus goes back to the button that opened it.
|
|
356
|
+
await act(async () => {
|
|
357
|
+
document.dispatchEvent(new KeyboardEvent('keydown', { key: 'Escape', bubbles: true }));
|
|
358
|
+
});
|
|
359
|
+
expect($('aside[data-side=left]').hidden).toBe(true);
|
|
360
|
+
expect($('.bd-toolbar').hasAttribute('inert')).toBe(false);
|
|
361
|
+
expect(document.activeElement).toBe(left);
|
|
362
|
+
await act(async () => left?.click());
|
|
363
|
+
// Opening the other one closes it.
|
|
364
|
+
await act(async () => right?.click());
|
|
365
|
+
expect($('aside[data-side=left]').hidden).toBe(true);
|
|
366
|
+
expect($('aside[data-side=right]').hidden).toBe(false);
|
|
367
|
+
// The inspector sheet has its own close button.
|
|
368
|
+
const close = $('aside[data-side=right] .bd-sheet-close');
|
|
369
|
+
expect(close.getAttribute('aria-label')).toBe(en['ui.close']);
|
|
370
|
+
await act(async () => close.click());
|
|
371
|
+
expect($('aside[data-side=right]').hidden).toBe(true);
|
|
372
|
+
// The scrim and Escape (from anywhere) close a sheet too.
|
|
373
|
+
await act(async () => left?.click());
|
|
374
|
+
await act(async () => $('.bd-scrim').click());
|
|
375
|
+
expect($('aside[data-side=left]').hidden).toBe(true);
|
|
376
|
+
await act(async () => right?.click());
|
|
377
|
+
await act(async () => {
|
|
378
|
+
document.dispatchEvent(new KeyboardEvent('keydown', { key: 'Escape', bubbles: true }));
|
|
379
|
+
});
|
|
380
|
+
expect($('aside[data-side=right]').hidden).toBe(true);
|
|
381
|
+
// A tablet is narrow but not compact.
|
|
382
|
+
await act(async () => notify?.([{ contentRect: { width: 1000 } }]));
|
|
383
|
+
expect($('.bd-body').getAttribute('data-narrow')).toBe('true');
|
|
384
|
+
expect($('.bd-body').getAttribute('data-compact')).toBe('false');
|
|
385
|
+
width.mockRestore();
|
|
386
|
+
vi.unstubAllGlobals();
|
|
387
|
+
});
|
|
185
388
|
it('has no accessibility violations', async () => {
|
|
186
389
|
await show(props());
|
|
187
390
|
expect(await axe(container)).toHaveNoViolations();
|
|
@@ -194,6 +397,8 @@ describe('resolveConfig', () => {
|
|
|
194
397
|
const config = resolveConfig();
|
|
195
398
|
expect(config.breakpoints.map((b) => b.id)).toEqual(['desktop', 'tablet', 'mobile']);
|
|
196
399
|
expect(config.autosave).toEqual({ debounceMs: 2000, maxWaitMs: 20_000 });
|
|
400
|
+
// Only a window too narrow for the toolbar and the canvas is turned away.
|
|
401
|
+
expect(config.minViewportWidth).toBe(320);
|
|
197
402
|
expect(resolveConfig({ autosave: { debounceMs: 1, maxWaitMs: 2 }, uiLocale: 'pl' })).toMatchObject({ autosave: { debounceMs: 1, maxWaitMs: 2 }, uiLocale: 'pl' });
|
|
198
403
|
});
|
|
199
404
|
});
|
package/dist/app/config.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { RegistryManifest } from '@next-buildr/core';
|
|
1
|
+
import type { HostCapabilities, RegistryManifest } from '@next-buildr/core';
|
|
2
2
|
import type { DocumentAdapter, DocumentRef } from '../persistence/types.ts';
|
|
3
|
+
import type { EditorStoreOptions } from '../store/types.ts';
|
|
3
4
|
export type { DocumentRef };
|
|
4
5
|
/** One canvas width the toolbar offers (PB-083). */
|
|
5
6
|
export interface BreakpointConfig {
|
|
@@ -23,9 +24,16 @@ export interface EditorConfig {
|
|
|
23
24
|
readonly theme?: 'light' | 'dark' | 'system';
|
|
24
25
|
/**
|
|
25
26
|
* The narrowest window (in CSS pixels) the editor opens in; below it a notice asks the author to
|
|
26
|
-
* use a
|
|
27
|
+
* use a wider screen. Defaults to 320 (the narrowest phone; the panels are sheets over the
|
|
28
|
+
* canvas below 1100px); `0` turns the check off.
|
|
27
29
|
*/
|
|
28
30
|
readonly minViewportWidth?: number;
|
|
31
|
+
/**
|
|
32
|
+
* What the host permits beyond the safe defaults (ADR-026). `authorCode: true` shows the Advanced
|
|
33
|
+
* fields (custom CSS, classes, attributes) and the Text HTML mode and lets their commands run;
|
|
34
|
+
* absent or anything but exactly `true` leaves them off. The `capabilities` prop of the editor wins.
|
|
35
|
+
*/
|
|
36
|
+
readonly capabilities?: HostCapabilities;
|
|
29
37
|
}
|
|
30
38
|
export interface ResolvedEditorConfig {
|
|
31
39
|
readonly breakpoints: readonly BreakpointConfig[];
|
|
@@ -37,9 +45,10 @@ export interface ResolvedEditorConfig {
|
|
|
37
45
|
readonly uiLocale: string;
|
|
38
46
|
readonly theme: 'light' | 'dark' | 'system';
|
|
39
47
|
readonly minViewportWidth: number;
|
|
48
|
+
readonly capabilities: HostCapabilities;
|
|
40
49
|
}
|
|
41
|
-
/** Below this window width the editor does not open:
|
|
42
|
-
export declare const DEFAULT_MIN_VIEWPORT_WIDTH =
|
|
50
|
+
/** Below this window width the editor does not open: not even the toolbar and the canvas fit. */
|
|
51
|
+
export declare const DEFAULT_MIN_VIEWPORT_WIDTH = 320;
|
|
43
52
|
export declare const DEFAULT_BREAKPOINTS: readonly BreakpointConfig[];
|
|
44
53
|
/** Fills in what a host left out. */
|
|
45
54
|
export declare function resolveConfig(config?: EditorConfig): ResolvedEditorConfig;
|
|
@@ -55,5 +64,19 @@ export interface BuilderEditorProps {
|
|
|
55
64
|
readonly canvasUrl: string;
|
|
56
65
|
readonly documentRef: DocumentRef;
|
|
57
66
|
readonly config?: EditorConfig;
|
|
67
|
+
/** Host permissions (ADR-026); same as `config.capabilities`, and wins over it. Default: all off. */
|
|
68
|
+
readonly capabilities?: HostCapabilities;
|
|
69
|
+
/**
|
|
70
|
+
* Decides whether the author may weaken a lock (`node.setAttr` `lock`), e.g. from the host's own
|
|
71
|
+
* permission for template editing. Without it the editor can lock a block but never unlock it.
|
|
72
|
+
* Read when an unlock is attempted, so it may close over current host state.
|
|
73
|
+
*/
|
|
74
|
+
readonly canUnlock?: NonNullable<EditorStoreOptions['canUnlock']>;
|
|
75
|
+
/**
|
|
76
|
+
* The version history of the page. An address makes the toolbar's history icon a link; a function
|
|
77
|
+
* is called when the icon is pressed (open your own panel or dialog). Without it, and without an
|
|
78
|
+
* adapter `historyUrl(ref)`, there is no history icon. The prop wins over the adapter.
|
|
79
|
+
*/
|
|
80
|
+
readonly historyUrl?: string | (() => void);
|
|
58
81
|
}
|
|
59
82
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/app/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/app/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/app/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,oDAAoD;AACpD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACnD,+DAA+D;IAC/D,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAClB,6CAA6C;QAC7C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,kEAAkE;QAClE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC7C;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,gBAAgB,CAAC;CAC1C;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,WAAW,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAClD,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC5C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAC;CACzC;AAED,iGAAiG;AACjG,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAE9C,eAAO,MAAM,mBAAmB,EAAE,SAAS,gBAAgB,EAI1D,CAAC;AAEF,qCAAqC;AACrC,wBAAgB,aAAa,CAAC,MAAM,GAAE,YAAiB,GAAG,oBAAoB,CAU7E;AAED,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,8FAA8F;IAC9F,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,kFAAkF;IAClF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAC/B,qGAAqG;IACrG,QAAQ,CAAC,YAAY,CAAC,EAAE,gBAAgB,CAAC;IACzC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;IAClE;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;CAC7C"}
|
package/dist/app/config.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
/** Below this window width the editor does not open:
|
|
2
|
-
export const DEFAULT_MIN_VIEWPORT_WIDTH =
|
|
1
|
+
/** Below this window width the editor does not open: not even the toolbar and the canvas fit. */
|
|
2
|
+
export const DEFAULT_MIN_VIEWPORT_WIDTH = 320;
|
|
3
3
|
export const DEFAULT_BREAKPOINTS = [
|
|
4
4
|
{ id: 'desktop', width: 1280 },
|
|
5
|
-
{ id: 'tablet', width:
|
|
5
|
+
{ id: 'tablet', width: 768 },
|
|
6
6
|
{ id: 'mobile', width: 390 },
|
|
7
7
|
];
|
|
8
8
|
/** Fills in what a host left out. */
|
|
@@ -14,5 +14,6 @@ export function resolveConfig(config = {}) {
|
|
|
14
14
|
uiLocale: config.uiLocale ?? 'en',
|
|
15
15
|
theme: config.theme ?? 'system',
|
|
16
16
|
minViewportWidth: config.minViewportWidth ?? DEFAULT_MIN_VIEWPORT_WIDTH,
|
|
17
|
+
capabilities: config.capabilities ?? {},
|
|
17
18
|
};
|
|
18
19
|
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { NodeId } from '@next-buildr/core';
|
|
2
|
+
/** The tabs of the left panel. */
|
|
3
|
+
export type LeftPanelTab = 'blocks' | 'structure';
|
|
4
|
+
export declare const LEFT_PANEL_TABS: readonly LeftPanelTab[];
|
|
5
|
+
/** What the Blocks tab lists: single blocks or ready-made patterns. */
|
|
6
|
+
export type PaletteMode = 'blocks' | 'patterns';
|
|
7
|
+
export declare const PALETTE_MODES: readonly PaletteMode[];
|
|
8
|
+
/** The stage (canvas area) that toasts and the issues drawer portal into, and the drawer's state. */
|
|
9
|
+
export interface StageSlots {
|
|
10
|
+
readonly stage: HTMLElement | null;
|
|
11
|
+
readonly issuesOpen: boolean;
|
|
12
|
+
setIssuesOpen(open: boolean): void;
|
|
13
|
+
}
|
|
14
|
+
/** The two actions of the empty-page placeholder. */
|
|
15
|
+
export interface EmptyPageActions {
|
|
16
|
+
onAddBlock(): void;
|
|
17
|
+
onPickPattern(): void;
|
|
18
|
+
}
|
|
19
|
+
/** The device keys of the UI-only shortcuts, in toolbar order (desktop, tablet, phone). */
|
|
20
|
+
export declare const DEVICE_SHORTCUT_KEYS: readonly ['1', '2', '3'];
|
|
21
|
+
export type DeviceShortcutKey = (typeof DEVICE_SHORTCUT_KEYS)[number];
|
|
22
|
+
/** Callbacks of the shortcuts that change only the editor's UI, never the document. */
|
|
23
|
+
export interface ShortcutCallbacks {
|
|
24
|
+
/** Keys 1, 2, 3: switch the screen size. */
|
|
25
|
+
setDevice(key: DeviceShortcutKey): void;
|
|
26
|
+
/** Toggle both side panels. */
|
|
27
|
+
togglePanels(): void;
|
|
28
|
+
/** Toggle the block outlines. */
|
|
29
|
+
toggleGuides(): void;
|
|
30
|
+
/** Open the shortcuts dialog (?). */
|
|
31
|
+
openShortcuts(): void;
|
|
32
|
+
/** Focus the block search (/). */
|
|
33
|
+
focusBlockSearch(): void;
|
|
34
|
+
}
|
|
35
|
+
/** A pending removal that may need a confirmation: ids to remove and whether any has descendants. */
|
|
36
|
+
export interface RemoveRequest {
|
|
37
|
+
readonly ids: readonly NodeId[];
|
|
38
|
+
readonly hasDescendants: boolean;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/app/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,kCAAkC;AAClC,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,WAAW,CAAC;AAClD,eAAO,MAAM,eAAe,EAAE,SAAS,YAAY,EAA4B,CAAC;AAEhF,uEAAuE;AACvE,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;AAChD,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAA2B,CAAC;AAE5E,qGAAqG;AACrG,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;CACpC;AAED,qDAAqD;AACrD,MAAM,WAAW,gBAAgB;IAC/B,UAAU,IAAI,IAAI,CAAC;IACnB,aAAa,IAAI,IAAI,CAAC;CACvB;AAED,2FAA2F;AAC3F,eAAO,MAAM,oBAAoB,YAAI,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AAC7D,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,uFAAuF;AACvF,MAAM,WAAW,iBAAiB;IAChC,4CAA4C;IAC5C,SAAS,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACxC,+BAA+B;IAC/B,YAAY,IAAI,IAAI,CAAC;IACrB,iCAAiC;IACjC,YAAY,IAAI,IAAI,CAAC;IACrB,qCAAqC;IACrC,aAAa,IAAI,IAAI,CAAC;IACtB,kCAAkC;IAClC,gBAAgB,IAAI,IAAI,CAAC;CAC1B;AAED,qGAAqG;AACrG,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor-app.d.ts","sourceRoot":"","sources":["../../src/app/editor-app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EAGnB,YAAY,EACZ,YAAY,EACb,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"editor-app.d.ts","sourceRoot":"","sources":["../../src/app/editor-app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EAGnB,YAAY,EACZ,YAAY,EACb,MAAM,mBAAmB,CAAC;AAuE3B,OAAO,EAAE,KAAK,kBAAkB,EAAmC,MAAM,aAAa,CAAC;AAQvF,MAAM,WAAW,cAAe,SAAQ,kBAAkB;IACxD,sFAAsF;IACtF,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,oIAAoI;IACpI,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAChC,uKAAuK;IACvK,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAsBD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,+BAyG9C"}
|