Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions docs/content/1.guide/22.build-your-own-hub-ui.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
Loading