Skip to content

Designer Operations

The Designer instance is available on runtime.designer when you use useDesignerApp().

js
import { useDesignerApp } from '@ptahjs/ui-vue';

const runtime = useDesignerApp({ id: 've1' });
const designer = runtime.designer;

All mutating operations are recorded in history.

Undo / Redo

js
designer.undo();
designer.redo();

Scene Operations

js
const sceneId = designer.addScene({ props: { title: 'Home' } });

designer.selectScene(sceneId);
designer.updateScene({ id: sceneId, patch: { props: { title: 'Dashboard' } } });
designer.moveScene({ id: sceneId, toIndex: 0 });
designer.cloneScene({ id: sceneId });
designer.deleteScene({ id: sceneId });

Module Operations

js
const moduleId = designer.addModule({
    type: 'UiButton',
    parentId: sceneId,
    index: 0,
    props: { label: 'Click me' },
});

designer.selectModule(moduleId);
designer.updateModule({ id: moduleId, patch: { props: { label: 'Submit' } } });
designer.moveModule({ id: moduleId, toParentId: sceneId, toIndex: 1 });
designer.cloneModule({ id: moduleId });
designer.deleteModule({ id: moduleId });

Clipboard Operations

js
designer.copyModule(moduleId);
designer.pasteModule({ targetParentId: sceneId, index: 2 });
designer.cutModule(moduleId);

Custom Slot Operations

js
const slotId = designer.addCustomSlot({ parentId: moduleId, key: 'extra' }, 0);
designer.deleteCustomSlot({ id: slotId });

Export

js
const schema = designer.getPageSchema();

Runtime and History

js
const runtimeRef = designer.getRuntime();
const history = designer.getHistory();