Compare commits

..

1 Commits

Author SHA1 Message Date
uberwald 883a84b7a0 Affichage des cartes améliorés dans la vue /tirage
Release Creation / build (release) Successful in 48s
2026-04-26 15:50:51 +02:00
28 changed files with 160 additions and 97 deletions
+24 -13
View File
@@ -391,24 +391,11 @@
width: 100px; width: 100px;
vertical-align: top; vertical-align: top;
&:hover {
position: relative;
z-index: 100;
.tirage-card-img {
transform: scale(2.2);
transform-origin: center top;
box-shadow: 3px 3px 12px rgba(0,0,0,0.4);
}
}
.tirage-card-img { .tirage-card-img {
width: 100px; width: 100px;
border: 1px solid @be-gold-border; border: 1px solid @be-gold-border;
border-radius: 2px; border-radius: 2px;
box-shadow: 1px 1px 4px rgba(0,0,0,0.2); box-shadow: 1px 1px 4px rgba(0,0,0,0.2);
transition: transform 0.2s ease, box-shadow 0.2s ease;
transform-origin: center center;
cursor: zoom-in; cursor: zoom-in;
} }
@@ -467,3 +454,27 @@
} }
} }
} }
// ── Overlay loupe pour les cartes du tirage ───────────────
#tirage-card-zoom-overlay {
position: fixed;
z-index: 10000;
pointer-events: none;
border: 2px solid @be-gold-border;
border-radius: 3px;
box-shadow: 4px 4px 20px rgba(0,0,0,0.55);
opacity: 0;
transition: opacity 0.15s ease;
background: #000;
&.visible { opacity: 1; }
img {
display: block;
width: 220px;
height: auto;
border-radius: 2px;
&.flip-tarot { transform: scaleY(-1); }
}
}
+52
View File
@@ -53,6 +53,58 @@ export class MaleficesTirageTarotDialog extends HandlebarsApplicationMixin(Appli
}) })
el.querySelector('.tirage-close-btn')?.addEventListener('click', () => this.close()) el.querySelector('.tirage-close-btn')?.addEventListener('click', () => this.close())
this._setupCardZoom(el)
}
/* -------------------------------------------- */
_setupCardZoom(el) {
let overlay = document.getElementById('tirage-card-zoom-overlay')
if (!overlay) {
overlay = document.createElement('div')
overlay.id = 'tirage-card-zoom-overlay'
overlay.innerHTML = '<img src="" alt="" />'
document.body.appendChild(overlay)
}
const overlayImg = overlay.querySelector('img')
const ZOOM_W = 224 // 220px image + 2px border × 2
const TAROT_RATIO = 5 / 3 // hauteur / largeur (cartes tarot portrait)
const position = (rect) => {
const vw = window.innerWidth
const vh = window.innerHeight
const zoomH = Math.round(ZOOM_W * TAROT_RATIO)
let left = rect.left + rect.width / 2 - ZOOM_W / 2
let top = rect.top - zoomH - 10
left = Math.max(8, Math.min(left, vw - ZOOM_W - 8))
if (top < 8) top = rect.bottom + 8
if (top + zoomH > vh - 8) top = Math.max(8, vh - zoomH - 8)
overlay.style.left = left + 'px'
overlay.style.top = top + 'px'
}
const show = (cardImg) => {
overlayImg.src = cardImg.src
overlayImg.className = cardImg.className
overlay.classList.add('visible')
position(cardImg.getBoundingClientRect())
}
const hide = () => overlay.classList.remove('visible')
el.querySelectorAll('.tirage-card-img').forEach(img => {
img.addEventListener('mouseenter', () => show(img))
img.addEventListener('mouseleave', hide)
})
}
/* -------------------------------------------- */
_onClose(_options) {
document.getElementById('tirage-card-zoom-overlay')?.remove()
return super._onClose(_options)
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000004 MANIFEST-000014
+7 -16
View File
@@ -1,16 +1,7 @@
2026/04/24-22:24:59.171196 7f57a57ee6c0 Recovering log #3 2026/04/26-15:45:25.152297 7f5797fff6c0 Recovering log #12
2026/04/24-22:24:59.171446 7f57a57ee6c0 Level-0 table #5: started 2026/04/26-15:45:25.163242 7f5797fff6c0 Delete type=3 #10
2026/04/24-22:24:59.188279 7f57a57ee6c0 Level-0 table #5: 49972 bytes OK 2026/04/26-15:45:25.163372 7f5797fff6c0 Delete type=0 #12
2026/04/24-22:24:59.232997 7f57a57ee6c0 Delete type=0 #3 2026/04/26-15:50:25.999778 7f57977fe6c0 Level-0 table #17: started
2026/04/24-22:24:59.233084 7f57a57ee6c0 Delete type=3 #2 2026/04/26-15:50:25.999856 7f57977fe6c0 Level-0 table #17: 0 bytes OK
2026/04/24-22:27:28.425927 7f57977fe6c0 Level-0 table #8: started 2026/04/26-15:50:26.044072 7f57977fe6c0 Delete type=0 #15
2026/04/24-22:27:28.430469 7f57977fe6c0 Level-0 table #8: 50829 bytes OK 2026/04/26-15:50:26.163225 7f57977fe6c0 Manual compaction at level-0 from '!items!2HWSdXDSFei9KC6y' @ 72057594037927935 : 1 .. '!items!xtYE2kVIfNtrXSoU' @ 0 : 0; will stop at (end)
2026/04/24-22:27:28.436422 7f57977fe6c0 Delete type=0 #6
2026/04/24-22:27:28.465787 7f57977fe6c0 Manual compaction at level-0 from '!items!2HWSdXDSFei9KC6y' @ 72057594037927935 : 1 .. '!items!xtYE2kVIfNtrXSoU' @ 0 : 0; will stop at '!items!xtYE2kVIfNtrXSoU' @ 23 : 1
2026/04/24-22:27:28.465795 7f57977fe6c0 Compacting 2@0 + 0@1 files
2026/04/24-22:27:28.469433 7f57977fe6c0 Generated table #9@0: 23 keys, 50829 bytes
2026/04/24-22:27:28.469455 7f57977fe6c0 Compacted 2@0 + 0@1 files => 50829 bytes
2026/04/24-22:27:28.476490 7f57977fe6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
2026/04/24-22:27:28.476684 7f57977fe6c0 Delete type=2 #5
2026/04/24-22:27:28.476866 7f57977fe6c0 Delete type=2 #8
2026/04/24-22:27:28.476999 7f57977fe6c0 Manual compaction at level-0 from '!items!xtYE2kVIfNtrXSoU' @ 23 : 1 .. '!items!xtYE2kVIfNtrXSoU' @ 0 : 0; will stop at (end)
+7 -1
View File
@@ -1 +1,7 @@
2026/04/24-22:22:27.429550 7fcbf37fe6c0 Delete type=3 #1 2026/04/24-22:28:39.384762 7f5797fff6c0 Recovering log #7
2026/04/24-22:28:39.395035 7f5797fff6c0 Delete type=3 #4
2026/04/24-22:28:39.395099 7f5797fff6c0 Delete type=0 #7
2026/04/24-22:28:50.922092 7f57977fe6c0 Level-0 table #13: started
2026/04/24-22:28:50.922111 7f57977fe6c0 Level-0 table #13: 0 bytes OK
2026/04/24-22:28:50.928410 7f57977fe6c0 Delete type=0 #11
2026/04/24-22:28:50.928567 7f57977fe6c0 Manual compaction at level-0 from '!items!2HWSdXDSFei9KC6y' @ 72057594037927935 : 1 .. '!items!xtYE2kVIfNtrXSoU' @ 0 : 0; will stop at (end)
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000004 MANIFEST-000014
+7 -16
View File
@@ -1,16 +1,7 @@
2026/04/24-22:24:59.115818 7f57a4fed6c0 Recovering log #3 2026/04/26-15:45:25.139939 7f57a5fef6c0 Recovering log #12
2026/04/24-22:24:59.115867 7f57a4fed6c0 Level-0 table #5: started 2026/04/26-15:45:25.149583 7f57a5fef6c0 Delete type=3 #10
2026/04/24-22:24:59.136445 7f57a4fed6c0 Level-0 table #5: 1991 bytes OK 2026/04/26-15:45:25.149682 7f57a5fef6c0 Delete type=0 #12
2026/04/24-22:24:59.169110 7f57a4fed6c0 Delete type=0 #3 2026/04/26-15:50:26.086035 7f57977fe6c0 Level-0 table #17: started
2026/04/24-22:24:59.169225 7f57a4fed6c0 Delete type=3 #2 2026/04/26-15:50:26.086057 7f57977fe6c0 Level-0 table #17: 0 bytes OK
2026/04/24-22:27:28.406907 7f57977fe6c0 Level-0 table #8: started 2026/04/26-15:50:26.123168 7f57977fe6c0 Delete type=0 #15
2026/04/24-22:27:28.410027 7f57977fe6c0 Level-0 table #8: 2085 bytes OK 2026/04/26-15:50:26.163252 7f57977fe6c0 Manual compaction at level-0 from '!items!5J6qIaWdnhEGMAXJ' @ 72057594037927935 : 1 .. '!items!nkRQU81L1gWOfaeo' @ 0 : 0; will stop at (end)
2026/04/24-22:27:28.416047 7f57977fe6c0 Delete type=0 #6
2026/04/24-22:27:28.446021 7f57977fe6c0 Manual compaction at level-0 from '!items!5J6qIaWdnhEGMAXJ' @ 72057594037927935 : 1 .. '!items!nkRQU81L1gWOfaeo' @ 0 : 0; will stop at '!items!nkRQU81L1gWOfaeo' @ 9 : 1
2026/04/24-22:27:28.446030 7f57977fe6c0 Compacting 2@0 + 0@1 files
2026/04/24-22:27:28.449382 7f57977fe6c0 Generated table #9@0: 9 keys, 2085 bytes
2026/04/24-22:27:28.449407 7f57977fe6c0 Compacted 2@0 + 0@1 files => 2085 bytes
2026/04/24-22:27:28.456221 7f57977fe6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
2026/04/24-22:27:28.456392 7f57977fe6c0 Delete type=2 #5
2026/04/24-22:27:28.456494 7f57977fe6c0 Delete type=2 #8
2026/04/24-22:27:28.476974 7f57977fe6c0 Manual compaction at level-0 from '!items!nkRQU81L1gWOfaeo' @ 9 : 1 .. '!items!nkRQU81L1gWOfaeo' @ 0 : 0; will stop at (end)
+7 -1
View File
@@ -1 +1,7 @@
2026/04/24-22:22:27.427665 7fcbf37fe6c0 Delete type=3 #1 2026/04/24-22:28:39.371429 7f57a4fed6c0 Recovering log #7
2026/04/24-22:28:39.381830 7f57a4fed6c0 Delete type=3 #4
2026/04/24-22:28:39.381879 7f57a4fed6c0 Delete type=0 #7
2026/04/24-22:28:50.909112 7f57977fe6c0 Level-0 table #13: started
2026/04/24-22:28:50.909132 7f57977fe6c0 Level-0 table #13: 0 bytes OK
2026/04/24-22:28:50.915804 7f57977fe6c0 Delete type=0 #11
2026/04/24-22:28:50.928548 7f57977fe6c0 Manual compaction at level-0 from '!items!5J6qIaWdnhEGMAXJ' @ 72057594037927935 : 1 .. '!items!nkRQU81L1gWOfaeo' @ 0 : 0; will stop at (end)
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000004 MANIFEST-000014
+7 -16
View File
@@ -1,16 +1,7 @@
2026/04/24-22:24:59.235537 7f57a4fed6c0 Recovering log #3 2026/04/26-15:45:25.166949 7f57a57ee6c0 Recovering log #12
2026/04/24-22:24:59.235607 7f57a4fed6c0 Level-0 table #5: started 2026/04/26-15:45:25.176930 7f57a57ee6c0 Delete type=3 #10
2026/04/24-22:24:59.258336 7f57a4fed6c0 Level-0 table #5: 803 bytes OK 2026/04/26-15:45:25.177039 7f57a57ee6c0 Delete type=0 #12
2026/04/24-22:24:59.302049 7f57a4fed6c0 Delete type=0 #3 2026/04/26-15:50:26.123322 7f57977fe6c0 Level-0 table #17: started
2026/04/24-22:24:59.302122 7f57a4fed6c0 Delete type=3 #2 2026/04/26-15:50:26.123351 7f57977fe6c0 Level-0 table #17: 0 bytes OK
2026/04/24-22:27:28.416201 7f57977fe6c0 Level-0 table #8: started 2026/04/26-15:50:26.163080 7f57977fe6c0 Delete type=0 #15
2026/04/24-22:27:28.419304 7f57977fe6c0 Level-0 table #8: 844 bytes OK 2026/04/26-15:50:26.163536 7f57977fe6c0 Manual compaction at level-0 from '!macros!ESV4er8Hy6liMOC3' @ 72057594037927935 : 1 .. '!macros!zDPgmHiwNxBWhoYz' @ 0 : 0; will stop at (end)
2026/04/24-22:27:28.425776 7f57977fe6c0 Delete type=0 #6
2026/04/24-22:27:28.456560 7f57977fe6c0 Manual compaction at level-0 from '!macros!ESV4er8Hy6liMOC3' @ 72057594037927935 : 1 .. '!macros!zDPgmHiwNxBWhoYz' @ 0 : 0; will stop at '!macros!zDPgmHiwNxBWhoYz' @ 3 : 1
2026/04/24-22:27:28.456571 7f57977fe6c0 Compacting 2@0 + 0@1 files
2026/04/24-22:27:28.459693 7f57977fe6c0 Generated table #9@0: 3 keys, 844 bytes
2026/04/24-22:27:28.459721 7f57977fe6c0 Compacted 2@0 + 0@1 files => 844 bytes
2026/04/24-22:27:28.465548 7f57977fe6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
2026/04/24-22:27:28.465648 7f57977fe6c0 Delete type=2 #5
2026/04/24-22:27:28.465738 7f57977fe6c0 Delete type=2 #8
2026/04/24-22:27:28.476986 7f57977fe6c0 Manual compaction at level-0 from '!macros!zDPgmHiwNxBWhoYz' @ 3 : 1 .. '!macros!zDPgmHiwNxBWhoYz' @ 0 : 0; will stop at (end)
+7 -1
View File
@@ -1 +1,7 @@
2026/04/24-22:22:27.431094 7fcbf37fe6c0 Delete type=3 #1 2026/04/24-22:28:39.397236 7f57a5fef6c0 Recovering log #7
2026/04/24-22:28:39.407011 7f57a5fef6c0 Delete type=3 #4
2026/04/24-22:28:39.407078 7f57a5fef6c0 Delete type=0 #7
2026/04/24-22:28:50.902120 7f57977fe6c0 Level-0 table #13: started
2026/04/24-22:28:50.902174 7f57977fe6c0 Level-0 table #13: 0 bytes OK
2026/04/24-22:28:50.908974 7f57977fe6c0 Delete type=0 #11
2026/04/24-22:28:50.928535 7f57977fe6c0 Manual compaction at level-0 from '!macros!ESV4er8Hy6liMOC3' @ 72057594037927935 : 1 .. '!macros!zDPgmHiwNxBWhoYz' @ 0 : 0; will stop at (end)
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000004 MANIFEST-000014
+7 -16
View File
@@ -1,16 +1,7 @@
2026/04/24-22:24:59.055819 7f5797fff6c0 Recovering log #3 2026/04/26-15:45:25.125828 7f5797fff6c0 Recovering log #12
2026/04/24-22:24:59.055873 7f5797fff6c0 Level-0 table #5: started 2026/04/26-15:45:25.137218 7f5797fff6c0 Delete type=3 #10
2026/04/24-22:24:59.074116 7f5797fff6c0 Level-0 table #5: 3817 bytes OK 2026/04/26-15:45:25.137347 7f5797fff6c0 Delete type=0 #12
2026/04/24-22:24:59.112929 7f5797fff6c0 Delete type=0 #3 2026/04/26-15:50:26.044212 7f57977fe6c0 Level-0 table #17: started
2026/04/24-22:24:59.112993 7f5797fff6c0 Delete type=3 #2 2026/04/26-15:50:26.044240 7f57977fe6c0 Level-0 table #17: 0 bytes OK
2026/04/24-22:27:28.396493 7f57977fe6c0 Level-0 table #8: started 2026/04/26-15:50:26.085910 7f57977fe6c0 Delete type=0 #15
2026/04/24-22:27:28.400076 7f57977fe6c0 Level-0 table #8: 4076 bytes OK 2026/04/26-15:50:26.163240 7f57977fe6c0 Manual compaction at level-0 from '!items!1DRKmbzGzbCRCswc' @ 72057594037927935 : 1 .. '!items!zbGGMEQFdwVdlKAf' @ 0 : 0; will stop at (end)
2026/04/24-22:27:28.406770 7f57977fe6c0 Delete type=0 #6
2026/04/24-22:27:28.436577 7f57977fe6c0 Manual compaction at level-0 from '!items!1DRKmbzGzbCRCswc' @ 72057594037927935 : 1 .. '!items!zbGGMEQFdwVdlKAf' @ 0 : 0; will stop at '!items!zbGGMEQFdwVdlKAf' @ 22 : 1
2026/04/24-22:27:28.436587 7f57977fe6c0 Compacting 2@0 + 0@1 files
2026/04/24-22:27:28.439689 7f57977fe6c0 Generated table #9@0: 22 keys, 4076 bytes
2026/04/24-22:27:28.439755 7f57977fe6c0 Compacted 2@0 + 0@1 files => 4076 bytes
2026/04/24-22:27:28.445747 7f57977fe6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
2026/04/24-22:27:28.445870 7f57977fe6c0 Delete type=2 #5
2026/04/24-22:27:28.445963 7f57977fe6c0 Delete type=2 #8
2026/04/24-22:27:28.476959 7f57977fe6c0 Manual compaction at level-0 from '!items!zbGGMEQFdwVdlKAf' @ 22 : 1 .. '!items!zbGGMEQFdwVdlKAf' @ 0 : 0; will stop at (end)
+7 -1
View File
@@ -1 +1,7 @@
2026/04/24-22:22:27.425195 7fcbf37fe6c0 Delete type=3 #1 2026/04/24-22:28:39.359656 7f5797fff6c0 Recovering log #7
2026/04/24-22:28:39.369413 7f5797fff6c0 Delete type=3 #4
2026/04/24-22:28:39.369477 7f5797fff6c0 Delete type=0 #7
2026/04/24-22:28:50.915944 7f57977fe6c0 Level-0 table #13: started
2026/04/24-22:28:50.915969 7f57977fe6c0 Level-0 table #13: 0 bytes OK
2026/04/24-22:28:50.922007 7f57977fe6c0 Delete type=0 #11
2026/04/24-22:28:50.928556 7f57977fe6c0 Manual compaction at level-0 from '!items!1DRKmbzGzbCRCswc' @ 72057594037927935 : 1 .. '!items!zbGGMEQFdwVdlKAf' @ 0 : 0; will stop at (end)
Binary file not shown.
Binary file not shown.
+23 -11
View File
@@ -1547,22 +1547,11 @@ li {
width: 100px; width: 100px;
vertical-align: top; vertical-align: top;
} }
.MaleficesDialog .tirage-tarot-dialog .tirage-card:hover {
position: relative;
z-index: 100;
}
.MaleficesDialog .tirage-tarot-dialog .tirage-card:hover .tirage-card-img {
transform: scale(2.2);
transform-origin: center top;
box-shadow: 3px 3px 12px rgba(0, 0, 0, 0.4);
}
.MaleficesDialog .tirage-tarot-dialog .tirage-card .tirage-card-img { .MaleficesDialog .tirage-tarot-dialog .tirage-card .tirage-card-img {
width: 100px; width: 100px;
border: 1px solid rgba(139, 105, 20, 0.45); border: 1px solid rgba(139, 105, 20, 0.45);
border-radius: 2px; border-radius: 2px;
box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.2); box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.2);
transition: transform 0.2s ease, box-shadow 0.2s ease;
transform-origin: center center;
cursor: zoom-in; cursor: zoom-in;
} }
.MaleficesDialog .tirage-tarot-dialog .tirage-card .tirage-card-name { .MaleficesDialog .tirage-tarot-dialog .tirage-card .tirage-card-name {
@@ -1616,6 +1605,29 @@ li {
border-color: #8b6914; border-color: #8b6914;
color: #5a0a14; color: #5a0a14;
} }
#tirage-card-zoom-overlay {
position: fixed;
z-index: 10000;
pointer-events: none;
border: 2px solid rgba(139, 105, 20, 0.45);
border-radius: 3px;
box-shadow: 4px 4px 20px rgba(0, 0, 0, 0.55);
opacity: 0;
transition: opacity 0.15s ease;
background: #000;
}
#tirage-card-zoom-overlay.visible {
opacity: 1;
}
#tirage-card-zoom-overlay img {
display: block;
width: 220px;
height: auto;
border-radius: 2px;
}
#tirage-card-zoom-overlay img.flip-tarot {
transform: scaleY(-1);
}
.malefices-chat-card { .malefices-chat-card {
font-size: 0.85rem; font-size: 0.85rem;
color: #3d2b1f; color: #3d2b1f;
File diff suppressed because one or more lines are too long