Interface: TileDeclaration
Makaio Framework / contracts / TileDeclaration
Interface: TileDeclaration
Section titled “Interface: TileDeclaration”Defined in: ../../../packages/contracts/src/extension/contributions/tile-types.ts:83
Tile declaration contributed by a package.
Packages declare tiles they provide for pane placement. These are registered
with TileRegistry and shown in the “Add Pane” palette.
Example
Section titled “Example”const terminalExtension: MakaioExtension = { name: 'terminal', ui: { tiles: [ { id: 'status', name: 'Status', description: 'Runtime status panel', scope: 'global', icon: () => import('lucide-react').then(m => ({ default: m.Activity })), allowMultiple: true, capabilities: { supportsFullscreen: true }, renderers: { react: () => import('./ui/StatusTile.js'), }, }, ], },};Properties
Section titled “Properties”allowMultiple?
Section titled “allowMultiple?”
optionalallowMultiple?:boolean
Defined in: ../../../packages/contracts/src/extension/contributions/tile-types.ts:123
Whether multiple instances of this tile are allowed simultaneously.
Defaults to true. When false, only one instance can exist at a time.
capabilities?
Section titled “capabilities?”
optionalcapabilities?:TileCapabilities
Defined in: ../../../packages/contracts/src/extension/contributions/tile-types.ts:125
Optional capability flags for the tile.
contextDependencies?
Section titled “contextDependencies?”
optionalcontextDependencies?:UiContextDimension[]
Defined in: ../../../packages/contracts/src/extension/contributions/tile-types.ts:132
Context dimensions this tile’s state depends on.
When declared, the host can remount the tile when any listed dimension changes to prevent stale in-memory state from leaking across contexts.
description?
Section titled “description?”
optionaldescription?:string
Defined in: ../../../packages/contracts/src/extension/contributions/tile-types.ts:104
Optional description of tile purpose.
Shown in the “Add Pane” palette below the name.
icon:
TileIconLoader
Defined in: ../../../packages/contracts/src/extension/contributions/tile-types.ts:117
Icon loader for the tile.
Lazy-loads an icon component for the “Add Pane” palette. Required for tiles to appear in the palette.
id:
string
Defined in: ../../../packages/contracts/src/extension/contributions/tile-types.ts:91
Unique tile identifier.
Must be unique across all packages. Use the package name as a prefix to avoid collisions.
Example
Section titled “Example”`'status'`, `'session-summary'`name:
string
Defined in: ../../../packages/contracts/src/extension/contributions/tile-types.ts:98
Display name for the tile.
Human-readable name shown in the “Add Pane” palette.
Example
Section titled “Example”`'Status'`, `'Session Summary'`renderers
Section titled “renderers”renderers:
TileRenderers
Defined in: ../../../packages/contracts/src/extension/contributions/tile-types.ts:139
Platform-specific renderers.
Maps platform names to lazy-loaded component modules. At minimum, the
'react' platform is required for the web UI.
scope?
Section titled “scope?”
optionalscope?:UiScope
Defined in: ../../../packages/contracts/src/extension/contributions/tile-types.ts:110
Tile scope — where the tile is available.
Defaults to 'any' when not specified.