Skip to content

Commit 930097a

Browse files
authored
fix(svelte-inspector): prevent info-bubble select (#445)
* fix(svelte-inspector): prevent info-bubble select * fix: tests
1 parent f27a218 commit 930097a

File tree

4 files changed

+18
-16
lines changed

4 files changed

+18
-16
lines changed

.changeset/polite-mails-press.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@sveltejs/vite-plugin-svelte': patch
3+
---
4+
5+
svelte-inspector: prevent info-bubble select

packages/e2e-tests/inspector-kit/__tests__/inspector.kit.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ describe('inspector-kit', () => {
66
});
77
if (!isBuild) {
88
it('should show inspector toggle during dev', async () => {
9-
expect(await getEl('.svelte-inspector-toggle')).not.toBe(null);
9+
expect(await getEl('#svelte-inspector-toggle')).not.toBe(null);
1010
});
1111
} else {
1212
it('should not show inspector toggle during preview', async () => {
13-
expect(await getEl('.svelte-inspector-toggle')).toBe(null);
13+
expect(await getEl('#svelte-inspector-toggle')).toBe(null);
1414
});
1515
}
1616
});

packages/e2e-tests/inspector-vite/__tests__/inspector.vite.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ describe('inspector-vite', () => {
66
});
77
if (!isBuild) {
88
it('should show inspector toggle during dev', async () => {
9-
expect(await getEl('.svelte-inspector-toggle')).not.toBe(null);
9+
expect(await getEl('#svelte-inspector-toggle')).not.toBe(null);
1010
});
1111
} else {
1212
it('should not show inspector toggle during preview', async () => {
13-
expect(await getEl('.svelte-inspector-toggle')).toBe(null);
13+
expect(await getEl('#svelte-inspector-toggle')).toBe(null);
1414
});
1515
}
1616
});

packages/vite-plugin-svelte/src/ui/inspector/Inspector.svelte

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
let x, y, w;
2626
2727
let active_el;
28-
let toggle_el;
2928
3029
let enabled_ts;
3130
@@ -79,14 +78,12 @@
7978
}
8079
8180
function is_selectable(el) {
82-
if (el === toggle_el) {
83-
return false; // toggle is our own
84-
}
8581
const file = el?.__svelte_meta?.loc?.file;
8682
if (!file || file.includes('node_modules/')) {
8783
return false; // no file or 3rd party
8884
}
89-
if (['svelte-announcer', 'svelte-inspector-announcer'].includes(el.getAttribute('id'))) {
85+
const id = el.getAttribute('id');
86+
if (id === 'svelte-announcer' || id?.startsWith('svelte-inspector-')) {
9087
return false; // ignore some elements by id that would be selectable from keyboard nav otherwise
9188
}
9289
return true;
@@ -286,21 +283,20 @@
286283
287284
{#if show_toggle}
288285
<button
289-
class="svelte-inspector-toggle"
286+
id="svelte-inspector-toggle"
290287
class:enabled
291288
style={`background-image: var(--svelte-inspector-icon);${options.toggleButtonPos
292289
.split('-')
293290
.map((p) => `${p}: 8px;`)
294291
.join('')}`}
295292
on:click={() => toggle()}
296-
bind:this={toggle_el}
297293
aria-label={`${enabled ? 'disable' : 'enable'} svelte-inspector`}
298294
/>
299295
{/if}
300296
{#if enabled && active_el && file_loc}
301297
{@const loc = active_el.__svelte_meta.loc}
302298
<div
303-
class="svelte-inspector-overlay"
299+
id="svelte-inspector-overlay"
304300
style:left="{Math.min(x + 3, document.documentElement.clientWidth - w - 10)}px"
305301
style:top="{document.documentElement.clientHeight < y + 50 ? y - 30 : y + 30}px"
306302
bind:offsetWidth={w}
@@ -320,16 +316,17 @@
320316
outline: 2px dashed #ff3e00 !important;
321317
}
322318
323-
.svelte-inspector-overlay {
319+
#svelte-inspector-overlay {
324320
position: fixed;
325321
background-color: rgba(0, 0, 0, 0.8);
326322
color: #fff;
327323
padding: 2px 4px;
328324
border-radius: 5px;
329325
z-index: 999999;
326+
pointer-events: none;
330327
}
331328
332-
.svelte-inspector-toggle {
329+
#svelte-inspector-toggle {
333330
all: unset;
334331
border: 1px solid #ff3e00;
335332
border-radius: 8px;
@@ -354,10 +351,10 @@
354351
height: 1px;
355352
}
356353
357-
.svelte-inspector-toggle:not(.enabled) {
354+
#svelte-inspector-toggle:not(.enabled) {
358355
filter: grayscale(1);
359356
}
360-
.svelte-inspector-toggle:hover {
357+
#svelte-inspector-toggle:hover {
361358
background-color: #facece;
362359
}
363360
</style>

0 commit comments

Comments
 (0)