From fd64f2e3c82bbec4ead499af064e925a4f880cfc Mon Sep 17 00:00:00 2001 From: "Anthony Fu (via agent)" Date: Mon, 24 Aug 2026 05:05:43 +0000 Subject: [PATCH] docs: add dock rendering mode index --- docs/content/1.guide/22.build-your-own-hub-ui.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/docs/content/1.guide/22.build-your-own-hub-ui.md b/docs/content/1.guide/22.build-your-own-hub-ui.md index b5b39861..89991d7e 100644 --- a/docs/content/1.guide/22.build-your-own-hub-ui.md +++ b/docs/content/1.guide/22.build-your-own-hub-ui.md @@ -40,12 +40,27 @@ Render the built-in variants of the open dock union | Type | The viewer renders | |---|---| | `iframe` | the entry's `url` in a kept-alive iframe (per `frameId` when shared); honor `subTabs` soft nav | +| `json-render`* | the JSON-render dock payload (`view`) through a registered `json-render` renderer | | `action` | a bar button; activating runs its client script | | `custom-render` | a container its client script mounts into | | `launcher` | a launch call-to-action reflecting `launcher.status` | | `group` | one bar button collapsing its member entries | | `~builtin` | your native views (settings, feeds) for reserved ids | +`*` `json-render` is contributed by `@devframes/json-render/hub`; the dock union +is open, so integrations can add more typed entries. + +### Rendering-mode index + +Use this as the quick decision table for "how this dock mounts": + +| Mount mode | Dock type(s) | Mounted by | How to wire it | Dedicated docs | +|---|---|---|---|---| +| Iframe panel | `iframe` | viewer iframe host | register `url` (optionally `frameId`/`subTabs`) and render a kept-alive iframe | [Iframe panels](/guide/client-context#iframe-panels), [Shared-iframe soft navigation](/guide/client-context#shared-iframe-soft-navigation) | +| JSON-render panel | `json-render` | renderer registry (`context.renderers.mount`) | register dock entry (`toJsonRenderDockEntry`) and provide a `json-render` renderer | [Rendering inside a hub](/guide/json-render#rendering-inside-a-hub), [Renderer modules](/guide/hub-initiate#renderer-modules) | +| Client-script panel | `custom-render`, `action`, `iframe` (`clientScript`) | dock client script loader | attach `renderer`/`action`/`clientScript` `ClientScriptEntry` (`{ importFrom, importName? }`) | [Dock client scripts](/guide/client-context#dock-client-scripts), [Bare npm specifiers](/guide/client-context#bare-npm-specifiers) | +| Custom typed renderer | any custom type (for example `json-render`) | server manifest and/or client local registration | register modules via `initHub({ renderers })`, or register local renderer map in `createDevframeClientHost({ renderers })` | [Renderer modules](/guide/hub-initiate#renderer-modules), [Build your own JSON-Render frontend](/guide/build-your-own-json-render-frontend) | + Honor `when` / `visibility`, `category` grouping (order from `DEFAULT_CATEGORIES_ORDER`, `@devframes/hub/constants`), and the `hub:docks:activate` broadcast.