@suluk/panel - v0.3.1
    Preparing search index...

    Interface PanelOptions

    interface PanelOptions {
        document:
            | OpenAPIv4Document
            | ((c: Context) => OpenAPIv4Document | Promise<OpenAPIv4Document>);
        basePath?: string;
        title?: string;
        authorize?: (c: Context) => boolean | Promise<boolean>;
        headHtml?: string | ((c: Context) => string);
        hide?: string[];
        hideEntities?: string[];
        uploadPath?: string;
        stats?: StatCard[] | ((c: Context) => StatCard[] | Promise<StatCard[]>);
        groups?:
            | PanelGroup[]
            | ((c: Context) => PanelGroup[] | Promise<PanelGroup[]>);
        sections?:
            | PanelSection[]
            | ((c: Context) => PanelSection[] | Promise<PanelSection[]>);
        home?: (c: Context) => string | Promise<string>;
        homeHeading?: string | ((c: Context) => string | Promise<string>);
        homeLabel?: string;
    }
    Index

    Properties

    document:
        | OpenAPIv4Document
        | ((c: Context) => OpenAPIv4Document | Promise<OpenAPIv4Document>)

    The v4 document — a value, or a per-request function (e.g. return projectDocument(doc, roleOf(c))).

    basePath?: string
    title?: string

    Brand shown in the sidebar + titles.

    authorize?: (c: Context) => boolean | Promise<boolean>

    Gate — return true to allow. Default: deny everything.

    headHtml?: string | ((c: Context) => string)

    Injected into after the default theme (link a color-scheme sheet + stamper to follow the host theme).

    hide?: string[]

    Field names to omit from every entity.

    hideEntities?: string[]

    Entity names to omit from the panel entirely (e.g. ones you handle via a custom section instead).

    uploadPath?: string

    Endpoint that accepts a multipart/form-data file and returns { url } — enables the media field's upload button (e.g. an R2-backed worker route). Omit and media fields are paste-a-URL only.

    stats?: StatCard[] | ((c: Context) => StatCard[] | Promise<StatCard[]>)

    Dashboard-framework extras (all optional — omit for a plain CRUD admin). Each may be a per-request FUNCTION so the dashboard adapts to WHO is logged in — a bespoke, role-dependent product dashboard, not a generic CRUD index.

    groups?: PanelGroup[] | ((c: Context) => PanelGroup[] | Promise<PanelGroup[]>)
    sections?:
        | PanelSection[]
        | ((c: Context) => PanelSection[] | Promise<PanelSection[]>)
    home?: (c: Context) => string | Promise<string>

    Replace the auto-generated home (stat cards + entity/section cards) with a BESPOKE overview — your product's landing page (welcome, recent activity, recommendations, quick actions). Stat cards, when set, render above it.

    homeHeading?: string | ((c: Context) => string | Promise<string>)

    Heading on the dashboard home (default "Dashboard").

    homeLabel?: string

    Label of the home nav link (default "Dashboard").