Skip to content

Blocks and editor

Source in src/, built with @wordpress/scripts and custom webpack.config.js (every src/**/index.jsbuild/{entry}/index.js).

Terminal window
npm run build
npm run start

PHP registers blocks from build/blocks/* in Post_Type::register_blocks().

BlockBuild pathNotes
coverkit/canvassrc/blocks/canvas/Canvas size, background, gradient; front-end render via PHP render_canvas()
coverkit/shapesrc/blocks/shape/Layers (text, image, shapes, QR, screenshot, …); saves null (server-side render)
coverkit/metasrc/blocks/meta/Template metadata in imported patterns
coverkit/samplesrc/blocks/sample/Development sample

In the coverkit post type editor, only coverkit/* blocks are allowed.

Shape attributes include geometry (x, y, width, height), style (color, gradient, border, …), content (text, image, imageId, mapping), and typography (typography, fitText).

src/editor/index.js registers plugins used when editing templates:

  • coverkit-sidebar
  • coverkit-status
  • coverkit-infobar
  • coverkit-events
  • coverkit-dropzone

Enqueued by Post_Type::enqueue_block_assets() for coverkit posts.

Template sidebar for enabling use cases, settings, and field-to-layer mapping:

ModuleRole
UseCasePanel.jsMain use case section in the document sidebar
UseCaseAssignment.jsPer–use-case enablement and assignment state
UseCaseSettingsSidebar.jsSettings controls from PHP settings_schema
UseCaseSidebarMapping.js / MappingFields.js / MappingFieldRow.jsField → shape mapping UI
MappingModePanel.js / LayerMappingMode.js / LayerPickerCanvas.jsClick-to-pick layer mapping mode
UseCasePreview.jsPreview image via POST /use-case/preview
useUseCaseRegistry.jsLoads GET /use-cases registry payload
useUseCasePreview.jsDebounced preview requests
useTemplateLayers.js / useLayerPickerSession.js / useLayerMappingActions.jsLayer list and picker session
utils.js / constants.jsShared helpers

Assignments are persisted in post meta _coverkit_use_cases (REST-visible on the template post).

  • src/shared/ — inspectors, toolbar, moveable canvas, template modal, layer preview
  • src/hooks/useCanvas, useGenerate, usePreview, useSettings, …
  • src/stores/Fonts, Image, Pane, Settings, Sidebar
  • Settings → CoverKitsrc/settings/index.js#coverkit-settings-app (options from schemas/options.php, presets from schemas/templates.php)
  • Template listsrc/overview/index.js on edit.php?post_type=coverkit

Use-case sidebar styles: src/editor/use-cases/use-cases.scss (compiled with the editor bundle).