Skip to content

Commit a274b10

Browse files
committed
add inspector stub and make config reactive
1 parent 620ba56 commit a274b10

File tree

6 files changed

+445
-24
lines changed

6 files changed

+445
-24
lines changed

packages/svelte/src/toolbar/ToolBar.svelte

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,13 @@
11
<script>
22
import { draggable } from '@neodrag/svelte';
33
import Icon from './Icon.svelte';
4-
import { configure, getConfig } from 'svelte/toolbar';
54
5+
let {
6+
/** @type import('./public.d.ts').ResolvedConfig */
7+
config
8+
} = $props();
69
let open = $state(true); // todo change this to false
710
8-
configure({
9-
tools: [
10-
{ name: 'state' },
11-
{
12-
name: 'inspector',
13-
activate: () => {
14-
console.log('inspector activated');
15-
}
16-
},
17-
{ name: 'a11y' },
18-
{ name: 'config' }
19-
]
20-
});
21-
22-
let config = getConfig();
2311
/** @type {string[]} */
2412
let active_tool_names = $state([]);
2513

packages/svelte/src/toolbar/configure.js renamed to packages/svelte/src/toolbar/configure.svelte.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
* toolbar config
33
* @type {import('./public.d.ts').ResolvedConfig}
44
*/
5-
const config = {
5+
const config = $state({
66
tools: []
7-
};
7+
});
88

99
/**
1010
* @param {Partial<import('./public.d.ts').Config>} options
1111
*/
12-
export function configure(options) {
12+
export function configureSvelte(options) {
1313
for (const [key, value] of Object.entries(options)) {
1414
if (key === 'tools') {
1515
continue;
@@ -40,6 +40,5 @@ export function configure(options) {
4040
* @return {import('./public.d.ts').ResolvedConfig}
4141
*/
4242
export function getConfig() {
43-
// TODO clone to avoid direct manipulation
4443
return config;
4544
}
Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1-
export { default as ToolBar } from './ToolBar.svelte';
2-
export * from './configure.js';
3-
export { mountUI as default } from './runtime.js';
1+
import {mountUI} from './runtime.svelte.js';
2+
import { configureSvelte } from './configure.svelte.js';
3+
import { svelte_inspector } from './tools/inspector/index.js';
4+
export * from './configure.svelte.js';
5+
6+
7+
configureSvelte({tools:[svelte_inspector]});
8+
mountUI();
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import ToolBar from './ToolBar.svelte';
22
import { mount } from 'svelte';
3+
import {getConfig} from './configure.svelte.js';
34

45
export function mountUI() {
56
if(typeof window !== 'undefined') {
@@ -8,10 +9,12 @@ export function mountUI() {
89
console.debug('svelte-toolbar-host already exists, skipping');
910
return
1011
}
12+
const props = $state({config: getConfig()})
13+
1114
const el = document.createElement('div');
1215
el.setAttribute('id', id);
1316
// appending to documentElement adds it outside of body
1417
document.documentElement.appendChild(el);
15-
mount(ToolBar, { target: el });
18+
mount(ToolBar, { target: el,props });
1619
}
1720
}

0 commit comments

Comments
 (0)