Skip to content
CoverKit CoverKit v0.1.13

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/layersrc/blocks/layer/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.

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

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

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

It also imports src/editor/block-bindings/ — registers the coverkit/field client binding source for WordPress 7.0 native metadata.bindings on coverkit/layer. See block-bindings.md.

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 → layer mapping UI
MappingModePanel.js / LayerMappingMode.js / LayerPickerCanvas.jsClick-to-pick layer mapping mode
UseCasePreview.jsPreview image via POST /preview (use-case mode)
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, usePreview, useSettings, …; live previews via src/util/previewRequest.js
  • src/stores/Fonts, Image, Pane, Settings, Sidebar
  • Settings → CoverKitsrc/settings/ module (index.js bootstraps #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).