diff --git a/packages/svelte/package.json b/packages/svelte/package.json index ed2c66d456..1ce675e940 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -146,6 +146,7 @@ }, "devDependencies": { "@jridgewell/trace-mapping": "^0.3.25", + "@neodrag/svelte": "^2.3.2", "@playwright/test": "^1.46.1", "@rollup/plugin-commonjs": "^28.0.1", "@rollup/plugin-node-resolve": "^15.3.0", @@ -164,9 +165,9 @@ "dependencies": { "@ampproject/remapping": "^2.3.0", "@jridgewell/sourcemap-codec": "^1.5.0", + "@sveltejs/acorn-typescript": "^1.0.5", "@types/estree": "^1.0.5", "acorn": "^8.12.1", - "@sveltejs/acorn-typescript": "^1.0.5", "aria-query": "^5.3.1", "axobject-query": "^4.1.0", "clsx": "^2.1.1", diff --git a/packages/svelte/src/toolbar/Icon.svelte b/packages/svelte/src/toolbar/Icon.svelte new file mode 100644 index 0000000000..66c4e241ce --- /dev/null +++ b/packages/svelte/src/toolbar/Icon.svelte @@ -0,0 +1,10 @@ + + diff --git a/packages/svelte/src/toolbar/ToolBar.svelte b/packages/svelte/src/toolbar/ToolBar.svelte index 8fc987f375..883b35c3e0 100644 --- a/packages/svelte/src/toolbar/ToolBar.svelte +++ b/packages/svelte/src/toolbar/ToolBar.svelte @@ -1,8 +1,100 @@ -
- {JSON.stringify(props, null, 2)} -+ + + diff --git a/packages/svelte/src/toolbar/configure.js b/packages/svelte/src/toolbar/configure.js index ae96c37762..b995c25a56 100644 --- a/packages/svelte/src/toolbar/configure.js +++ b/packages/svelte/src/toolbar/configure.js @@ -12,13 +12,13 @@ const config = { export function configure(options) { for (const [key, value] of Object.entries(options)) { if (key === 'tools') { - continue + continue; } else { // @ts-expect-error index access config[key] = value; } } - if(options.tools) { + if (options.tools) { for (let tool of options.tools) { /** @type {import('./public.d.ts').Tool} */ const resolved_tool = typeof tool === 'function' ? tool() : tool; @@ -37,7 +37,7 @@ export function configure(options) { /** * - * @return {import('./public.d.ts').Config} + * @return {import('./public.d.ts').ResolvedConfig} */ export function getConfig() { // TODO clone to avoid direct manipulation diff --git a/packages/svelte/src/toolbar/public.d.ts b/packages/svelte/src/toolbar/public.d.ts index bae54d44b5..9e45573595 100644 --- a/packages/svelte/src/toolbar/public.d.ts +++ b/packages/svelte/src/toolbar/public.d.ts @@ -3,12 +3,12 @@ export * from './index.js'; export interface Tool { name: string; icon: string; // url or svg - activate:()=>void; - deactivate:()=>void; + activate: () => void; + deactivate: () => void; keyCombo?: string; disabled?: boolean; } -type ToolFn = ()=>Tool +type ToolFn = () => Tool; export interface Config { position?: 'top' | 'bottom'; @@ -16,5 +16,5 @@ export interface Config { } export interface ResolvedConfig extends Config { - tools: Tool[] + tools: Tool[]; } diff --git a/packages/svelte/types/index.d.ts b/packages/svelte/types/index.d.ts index f4888afee5..85e73b8661 100644 --- a/packages/svelte/types/index.d.ts +++ b/packages/svelte/types/index.d.ts @@ -2552,12 +2552,12 @@ declare module 'svelte/toolbar' { export interface Tool { name: string; icon: string; // url or svg - activate:()=>void; - deactivate:()=>void; + activate: () => void; + deactivate: () => void; keyCombo?: string; disabled?: boolean; } - type ToolFn = ()=>Tool + type ToolFn = () => Tool; export interface Config { position?: 'top' | 'bottom'; @@ -2569,7 +2569,7 @@ declare module 'svelte/toolbar' { } export function configure(options: Partial