diff --git a/packages/svelte/src/toolbar/configure.js b/packages/svelte/src/toolbar/configure.js index b254a0a15d..3b491b502c 100644 --- a/packages/svelte/src/toolbar/configure.js +++ b/packages/svelte/src/toolbar/configure.js @@ -12,7 +12,10 @@ const config = { export function configure(options) { for (const [key, value] of options) { if (key === 'tools') { - for (const tool of /** @type {import('./public.d.ts').Tool[]}*/ value) { + for (let tool of /** @type {import('./public.d.ts').Config.tools[0][]}*/ value) { + if(typeof tool === 'function') { + tool = tool(); + } const existing = config.tools.find((t) => t.name === tool.name); if (existing) { for (const [k, v] of tool) { diff --git a/packages/svelte/src/toolbar/public.d.ts b/packages/svelte/src/toolbar/public.d.ts index 43d56bd049..87a05ba716 100644 --- a/packages/svelte/src/toolbar/public.d.ts +++ b/packages/svelte/src/toolbar/public.d.ts @@ -8,7 +8,9 @@ export interface Tool { keyCombo?: string; disabled?: boolean; } +type ToolFn = ()=>Tool + export interface Config { position?: 'top' | 'bottom'; - tools?: Tool[]; + tools?: (Tool | ToolFn)[]; }