Spaces:
Runtime error
Runtime error
| // --------------------------------------------------------------------------- | |
| // Shared component definitions | |
| // | |
| // Single source of truth for the MDX component registry. | |
| // Both the frontend editor and the backend publisher import this file. | |
| // --------------------------------------------------------------------------- | |
| export interface SharedField { | |
| name: string; | |
| type: "string" | "boolean" | "select"; | |
| default?: unknown; | |
| options?: string[]; | |
| } | |
| export interface SharedComponentDef { | |
| name: string; | |
| kind: "wrapper" | "atomic"; | |
| fields: SharedField[]; | |
| /** ProseMirror content expression (wrapper only, defaults to "block+") */ | |
| content?: string; | |
| } | |
| export const SHARED_COMPONENT_DEFS: SharedComponentDef[] = [ | |
| { | |
| name: "accordion", | |
| kind: "wrapper", | |
| fields: [ | |
| { name: "title", type: "string", default: "Details" }, | |
| { name: "open", type: "boolean", default: false }, | |
| ], | |
| }, | |
| { | |
| name: "note", | |
| kind: "wrapper", | |
| fields: [ | |
| { name: "title", type: "string", default: "" }, | |
| { name: "emoji", type: "string", default: "" }, | |
| { name: "variant", type: "select", default: "neutral", options: ["neutral", "info", "success", "danger"] }, | |
| ], | |
| }, | |
| { | |
| name: "quoteBlock", | |
| kind: "wrapper", | |
| fields: [ | |
| { name: "author", type: "string", default: "" }, | |
| { name: "source", type: "string", default: "" }, | |
| ], | |
| }, | |
| { name: "wide", kind: "wrapper", fields: [] }, | |
| { name: "fullWidth", kind: "wrapper", fields: [] }, | |
| { name: "sidenote", kind: "wrapper", fields: [] }, | |
| { | |
| name: "reference", | |
| kind: "wrapper", | |
| fields: [ | |
| { name: "id", type: "string", default: "" }, | |
| { name: "caption", type: "string", default: "" }, | |
| ], | |
| }, | |
| { | |
| name: "htmlEmbed", | |
| kind: "atomic", | |
| fields: [ | |
| { name: "src", type: "string", default: "" }, | |
| { name: "title", type: "string", default: "" }, | |
| { name: "desc", type: "string", default: "" }, | |
| { name: "wide", type: "boolean", default: false }, | |
| { name: "downloadable", type: "boolean", default: false }, | |
| { name: "height", type: "string", default: "400" }, | |
| ], | |
| }, | |
| { | |
| name: "hfUser", | |
| kind: "atomic", | |
| fields: [ | |
| { name: "username", type: "string", default: "" }, | |
| { name: "name", type: "string", default: "" }, | |
| { name: "url", type: "string", default: "" }, | |
| ], | |
| }, | |
| { | |
| name: "iframe", | |
| kind: "atomic", | |
| fields: [ | |
| { name: "src", type: "string", default: "" }, | |
| { name: "title", type: "string", default: "" }, | |
| { name: "desc", type: "string", default: "" }, | |
| { name: "height", type: "string", default: "600" }, | |
| { name: "wide", type: "boolean", default: false }, | |
| ], | |
| }, | |
| { | |
| name: "rawHtml", | |
| kind: "atomic", | |
| fields: [ | |
| { name: "html", type: "string", default: "" }, | |
| ], | |
| }, | |
| { | |
| name: "mermaid", | |
| kind: "atomic", | |
| fields: [ | |
| { name: "code", type: "string", default: "graph LR\n A --> B" }, | |
| ], | |
| }, | |
| ]; | |