Compare commits

...

2 commits

Author SHA1 Message Date
isUnknown
e4b3188aff editor panel : pointer events none when closed 2025-12-10 13:37:55 +01:00
isUnknown
6b578012b7 feat: restrict element selection to text elements only
- Remove containers (section, div, article, etc.) from selectable elements
- Remove media elements (img, figure, ul, ol, table) from selection
- Keep text elements: headings, paragraphs, links, formatting tags
- Add figcaption as selectable, remove span

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-10 13:28:35 +01:00
2 changed files with 17 additions and 25 deletions

View file

@ -236,7 +236,7 @@ const clearSelectedPages = () => {
selectedPages.value = [];
};
// Content elements that can trigger ElementPopup
// Text elements that can trigger ElementPopup (excluding containers, images, etc.)
const CONTENT_ELEMENTS = [
'P',
'H1',
@ -245,34 +245,17 @@ const CONTENT_ELEMENTS = [
'H4',
'H5',
'H6',
'IMG',
'FIGURE',
'FIGCAPTION',
'UL',
'OL',
'LI',
'BLOCKQUOTE',
'PRE',
'CODE',
'TABLE',
'THEAD',
'TBODY',
'TR',
'TH',
'TD',
'LI',
'A',
'SPAN',
'STRONG',
'EM',
'B',
'I',
'U',
'ARTICLE',
'SECTION',
'ASIDE',
'HEADER',
'FOOTER',
'NAV',
'CODE',
'PRE',
'FIGCAPTION',
];
// Check if element is a content element (or find closest content parent)

View file

@ -34,8 +34,14 @@
@click="activeTab = ''"
title="Fermer le panneau"
>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
<path d="M4.83582 12L11.0429 18.2071L12.4571 16.7929L7.66424 12L12.4571 7.20712L11.0429 5.79291L4.83582 12ZM10.4857 12L16.6928 18.2071L18.107 16.7929L13.3141 12L18.107 7.20712L16.6928 5.79291L10.4857 12Z"></path>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
fill="currentColor"
>
<path
d="M4.83582 12L11.0429 18.2071L12.4571 16.7929L7.66424 12L12.4571 7.20712L11.0429 5.79291L4.83582 12ZM10.4857 12L16.6928 18.2071L18.107 16.7929L13.3141 12L18.107 7.20712L16.6928 5.79291L10.4857 12Z"
></path>
</svg>
</button>
@ -75,6 +81,7 @@ const activeTab = inject('activeTab');
display: flex;
flex-direction: column;
z-index: 2;
pointer-events: none;
}
nav {
@ -84,6 +91,7 @@ nav {
display: flex;
gap: 0.5rem;
z-index: 2;
pointer-events: all;
}
.close-button {
@ -117,7 +125,7 @@ nav {
flex: 1;
overflow: hidden;
position: relative;
left: calc(var(--panel-w)*-1);
left: calc(var(--panel-w) * -1);
padding: 4rem 0;
@ -125,6 +133,7 @@ nav {
box-shadow: -5px 0px 12px;
transition: left 0.3s var(--curve);
pointer-events: all;
}
.tab-content.open {