Jake Vanderwerf
2026-05-31 d7e7d248cbe41cd7a9ef9c2fb022b6c4831f99a3
src/video/block.json
New file
@@ -0,0 +1,79 @@
{
   "$schema": "https://schemas.wp.org/trunk/block.json",
   "apiVersion": 3,
   "name": "jvb/video",
   "version": "1.0.0",
   "title": "Video Cover",
   "category": "jvb",
   "icon": "video-alt3",
   "description": "Self-hosted video cover with poster and multiple format support",
   "supports": {
      "html": false,
      "align": ["wide", "full"],
      "spacing": {
         "margin": true,
         "padding": true
      },
      "color": {
         "background": true,
         "text": true
      }
   },
   "attributes": {
      "title": {
         "type": "string",
         "default": ""
      },
      "description": {
         "type": "string",
         "default": ""
      },
      "posterId": {
         "type": "number",
         "default": 0
      },
      "posterUrl": {
         "type": "string",
         "default": ""
      },
      "videoSources": {
         "type": "array",
         "default": [],
         "items": {
            "type": "object",
            "properties": {
               "id": {
                  "type": "number"
               },
               "url": {
                  "type": "string"
               },
               "mime": {
                  "type": "string"
               }
            }
         }
      },
      "fadeEffect": {
         "type": "boolean",
         "default": false
      },
      "overlayOpacity": {
         "type": "number",
         "default": 0
      },
      "contentAlignment": {
         "type": "string",
         "default": "center"
      },
      "minHeight": {
         "type": "number",
         "default": 0
      }
   },
   "textdomain": "jvb",
   "editorScript": "file:./index.js",
   "viewScript": "file:./view.js",
   "editorStyle": "file:./index.css",
   "style": "file:./style-index.css"
}