From fc7c51e369ad95f606b79d9317a51fa960eeb61c Mon Sep 17 00:00:00 2001 From: LeRatierBretonnien Date: Sun, 11 Jan 2026 22:40:06 +0100 Subject: [PATCH] Migration datamodels ! --- LICENSE.md | 28 + gulpfile.js | 35 + lang/fr.json | 27 + less/yggdrasill-chat-viking.less | 534 ++ less/yggdrasill-chat.less | 2 + less/yggdrasill-main.less | 2684 +++++++++ less/yggdrasill.less | 4 + modules/applications/sheets/_module.mjs | 27 + .../applications/sheets/base-actor-sheet.mjs | 449 ++ .../applications/sheets/base-item-sheet.mjs | 178 + modules/applications/sheets/create-sheets.sh | 44 + .../sheets/yggdrasill-armecc-sheet.mjs | 16 + .../sheets/yggdrasill-armedist-sheet.mjs | 16 + .../sheets/yggdrasill-armure-sheet.mjs | 16 + .../sheets/yggdrasill-blessure-sheet.mjs | 16 + .../sheets/yggdrasill-bouclier-sheet.mjs | 16 + .../sheets/yggdrasill-competence-sheet.mjs | 21 + .../sheets/yggdrasill-don-sheet.mjs | 16 + .../sheets/yggdrasill-effetmagique-sheet.mjs | 16 + .../sheets/yggdrasill-equipement-sheet.mjs | 16 + .../sheets/yggdrasill-faiblesse-sheet.mjs | 16 + .../sheets/yggdrasill-figurant-sheet.mjs | 40 + .../sheets/yggdrasill-maladie-sheet.mjs | 16 + .../sheets/yggdrasill-monnaie-sheet.mjs | 16 + .../sheets/yggdrasill-personnage-sheet.mjs | 99 + .../sheets/yggdrasill-poison-sheet.mjs | 16 + .../sheets/yggdrasill-prouesse-sheet.mjs | 16 + .../sheets/yggdrasill-rune-sheet.mjs | 16 + .../sheets/yggdrasill-sortgaldr-sheet.mjs | 16 + .../sheets/yggdrasill-sortsejdr-sheet.mjs | 16 + .../applications/yggdrasill-roll-dialog.mjs | 334 ++ modules/models/armecc.mjs | 17 + modules/models/armedist.mjs | 18 + modules/models/armure.mjs | 16 + modules/models/blessure.mjs | 11 + modules/models/bouclier.mjs | 18 + modules/models/competence.mjs | 16 + modules/models/don.mjs | 11 + modules/models/effetmagique.mjs | 12 + modules/models/equipement.mjs | 15 + modules/models/faiblesse.mjs | 11 + modules/models/figurant.mjs | 87 + modules/models/index.mjs | 27 + modules/models/maladie.mjs | 13 + modules/models/monnaie.mjs | 13 + modules/models/personnage.mjs | 158 + modules/models/poison.mjs | 13 + modules/models/prouesse.mjs | 16 + modules/models/rune.mjs | 12 + modules/models/sortgaldr.mjs | 13 + modules/models/sortsejdr.mjs | 17 + modules/yggdrasill-actor.js | 64 +- modules/yggdrasill-config.js | 20 +- modules/yggdrasill-item-sheet.js | 182 +- modules/yggdrasill-main.js | 104 +- modules/yggdrasill-roll-dialog.js | 212 - modules/yggdrasill-utility.js | 15 +- package-lock.json | 4971 +++++++++++++++++ package.json | 16 + packs/armes/{000038.log => 000051.log} | 0 packs/armes/CURRENT | 2 +- packs/armes/LOG | 23 +- packs/armes/LOG.old | 16 +- packs/armes/MANIFEST-000036 | Bin 327 -> 0 bytes packs/armes/MANIFEST-000049 | Bin 0 -> 168 bytes packs/armures/{000038.log => 000051.log} | 0 packs/armures/CURRENT | 2 +- packs/armures/LOG | 23 +- packs/armures/LOG.old | 16 +- packs/armures/MANIFEST-000036 | Bin 327 -> 0 bytes packs/armures/MANIFEST-000049 | Bin 0 -> 168 bytes packs/blessures/{000038.log => 000051.log} | 0 packs/blessures/CURRENT | 2 +- packs/blessures/LOG | 23 +- packs/blessures/LOG.old | 16 +- packs/blessures/MANIFEST-000036 | Bin 327 -> 0 bytes packs/blessures/MANIFEST-000049 | Bin 0 -> 168 bytes .../{000038.log => 000051.log} | 0 packs/competences-generales/CURRENT | 2 +- packs/competences-generales/LOG | 23 +- packs/competences-generales/LOG.old | 16 +- packs/competences-generales/MANIFEST-000036 | Bin 330 -> 0 bytes packs/competences-generales/MANIFEST-000049 | Bin 0 -> 169 bytes .../{000038.log => 000051.log} | 0 packs/competences-magiques/CURRENT | 2 +- packs/competences-magiques/LOG | 23 +- packs/competences-magiques/LOG.old | 16 +- packs/competences-magiques/MANIFEST-000036 | Bin 327 -> 0 bytes packs/competences-magiques/MANIFEST-000049 | Bin 0 -> 168 bytes .../{000038.log => 000051.log} | 0 packs/competences-martiales/CURRENT | 2 +- packs/competences-martiales/LOG | 23 +- packs/competences-martiales/LOG.old | 16 +- packs/competences-martiales/MANIFEST-000036 | Bin 327 -> 0 bytes packs/competences-martiales/MANIFEST-000049 | Bin 0 -> 168 bytes packs/dons/{000038.log => 000051.log} | 0 packs/dons/CURRENT | 2 +- packs/dons/LOG | 23 +- packs/dons/LOG.old | 16 +- packs/dons/MANIFEST-000036 | Bin 327 -> 0 bytes packs/dons/MANIFEST-000049 | Bin 0 -> 168 bytes packs/equipement/{000038.log => 000051.log} | 0 packs/equipement/CURRENT | 2 +- packs/equipement/LOG | 23 +- packs/equipement/LOG.old | 16 +- packs/equipement/MANIFEST-000036 | Bin 333 -> 0 bytes packs/equipement/MANIFEST-000049 | Bin 0 -> 171 bytes packs/faiblesses/{000038.log => 000051.log} | 0 packs/faiblesses/CURRENT | 2 +- packs/faiblesses/LOG | 23 +- packs/faiblesses/LOG.old | 16 +- packs/faiblesses/MANIFEST-000036 | Bin 327 -> 0 bytes packs/faiblesses/MANIFEST-000049 | Bin 0 -> 168 bytes packs/galdr-charme/{000038.log => 000051.log} | 0 packs/galdr-charme/CURRENT | 2 +- packs/galdr-charme/LOG | 23 +- packs/galdr-charme/LOG.old | 16 +- packs/galdr-charme/MANIFEST-000036 | Bin 327 -> 0 bytes packs/galdr-charme/MANIFEST-000049 | Bin 0 -> 168 bytes .../{000038.log => 000051.log} | 0 packs/galdr-illusions/CURRENT | 2 +- packs/galdr-illusions/LOG | 23 +- packs/galdr-illusions/LOG.old | 16 +- packs/galdr-illusions/MANIFEST-000036 | Bin 327 -> 0 bytes packs/galdr-illusions/MANIFEST-000049 | Bin 0 -> 168 bytes .../{000038.log => 000051.log} | 0 packs/galdr-maledictions/CURRENT | 2 +- packs/galdr-maledictions/LOG | 23 +- packs/galdr-maledictions/LOG.old | 16 +- packs/galdr-maledictions/MANIFEST-000036 | Bin 327 -> 0 bytes packs/galdr-maledictions/MANIFEST-000049 | Bin 0 -> 168 bytes packs/poisons/{000038.log => 000051.log} | 0 packs/poisons/CURRENT | 2 +- packs/poisons/LOG | 23 +- packs/poisons/LOG.old | 16 +- packs/poisons/MANIFEST-000036 | Bin 327 -> 0 bytes packs/poisons/MANIFEST-000049 | Bin 0 -> 168 bytes .../{000038.log => 000051.log} | 0 packs/prouesses-martiales/CURRENT | 2 +- packs/prouesses-martiales/LOG | 23 +- packs/prouesses-martiales/LOG.old | 16 +- packs/prouesses-martiales/MANIFEST-000036 | Bin 332 -> 0 bytes packs/prouesses-martiales/MANIFEST-000049 | Bin 0 -> 171 bytes packs/runes/{000038.log => 000051.log} | 0 packs/runes/CURRENT | 2 +- packs/runes/LOG | 23 +- packs/runes/LOG.old | 16 +- packs/runes/MANIFEST-000036 | Bin 327 -> 0 bytes packs/runes/MANIFEST-000049 | Bin 0 -> 168 bytes .../{000038.log => 000051.log} | 0 packs/sejdr-divination/CURRENT | 2 +- packs/sejdr-divination/LOG | 23 +- packs/sejdr-divination/LOG.old | 16 +- packs/sejdr-divination/MANIFEST-000036 | Bin 327 -> 0 bytes packs/sejdr-divination/MANIFEST-000049 | Bin 0 -> 168 bytes .../sejdr-guerison/{000038.log => 000051.log} | 0 packs/sejdr-guerison/CURRENT | 2 +- packs/sejdr-guerison/LOG | 23 +- packs/sejdr-guerison/LOG.old | 16 +- packs/sejdr-guerison/MANIFEST-000036 | Bin 327 -> 0 bytes packs/sejdr-guerison/MANIFEST-000049 | Bin 0 -> 168 bytes .../{000038.log => 000051.log} | 0 packs/sejdr-maitrise-des-elements/CURRENT | 2 +- packs/sejdr-maitrise-des-elements/LOG | 23 +- packs/sejdr-maitrise-des-elements/LOG.old | 16 +- .../MANIFEST-000036 | Bin 327 -> 0 bytes .../MANIFEST-000049 | Bin 0 -> 168 bytes .../{000038.log => 000051.log} | 0 packs/sejdr-maledictions/CURRENT | 2 +- packs/sejdr-maledictions/LOG | 23 +- packs/sejdr-maledictions/LOG.old | 16 +- packs/sejdr-maledictions/MANIFEST-000036 | Bin 327 -> 0 bytes packs/sejdr-maledictions/MANIFEST-000049 | Bin 0 -> 168 bytes .../{000038.log => 000051.log} | 0 packs/sejdr-transmission-des-forces/CURRENT | 2 +- packs/sejdr-transmission-des-forces/LOG | 23 +- packs/sejdr-transmission-des-forces/LOG.old | 16 +- .../MANIFEST-000036 | Bin 327 -> 0 bytes .../MANIFEST-000049 | Bin 0 -> 168 bytes styles/yggdrasill.css | 2861 ++++++++++ styles/yggdrasill.css.map | 1 + system.json | 25 +- template.json | 378 +- templates/actor-figurant-sheet.hbs | 94 + templates/actor-personnage-sheet-new.hbs | 641 +++ ...-sheet.html => actor-personnage-sheet.hbs} | 182 +- templates/actor-personnage-sheet.hbs.backup | 569 ++ templates/chat-generic-result-new.hbs | 275 + templates/chat-generic-result.html | 136 - templates/chat-welcome-message.hbs | 47 + templates/convert-templates.sh | 29 + templates/create-item-templates.sh | 278 + templates/figurant-sheet.html | 157 - templates/item-armecc-sheet.hbs | 59 + templates/item-armecc-sheet.html | 32 - templates/item-armedist-sheet.hbs | 61 + templates/item-armedist-sheet.html | 33 - templates/item-armure-sheet.hbs | 51 + templates/item-armure-sheet.html | 31 - templates/item-blessure-sheet.hbs | 24 + templates/item-blessure-sheet.html | 18 - templates/item-bouclier-sheet.hbs | 61 + templates/item-bouclier-sheet.html | 33 - templates/item-competence-sheet.hbs | 64 + templates/item-competence-sheet.html | 37 - templates/item-don-sheet.hbs | 24 + templates/item-don-sheet.html | 18 - templates/item-effetderune-sheet.hbs | 20 + templates/item-effetderune-sheet.html | 18 - templates/item-effetmagique-sheet.hbs | 27 + templates/item-effetmagique-sheet.html | 24 - templates/item-equipement-sheet.hbs | 39 + templates/item-equipement-sheet.html | 25 - templates/item-faiblesse-sheet.hbs | 24 + templates/item-faiblesse-sheet.html | 18 - templates/item-maladie-sheet.hbs | 34 + templates/item-maladie-sheet.html | 27 - templates/item-monnaie-sheet.hbs | 32 + templates/item-monnaie-sheet.html | 22 - templates/item-poison-sheet.hbs | 34 + templates/item-poison-sheet.html | 26 - templates/item-prouesse-sheet.hbs | 60 + templates/item-prouesse-sheet.html | 34 - templates/item-rune-sheet.hbs | 51 + templates/item-rune-sheet.html | 29 - templates/item-sortgaldr-sheet.hbs | 34 + templates/item-sortgaldr-sheet.html | 27 - templates/item-sortsejdr-sheet.hbs | 54 + templates/item-sortsejdr-sheet.html | 31 - templates/roll-dialog-armecc.html | 71 - templates/roll-dialog-armetir.html | 81 - templates/roll-dialog-attribut.html | 37 - templates/roll-dialog-carac.html | 41 - templates/roll-dialog-competence.html | 52 - templates/roll-dialog-galdr.html | 67 - templates/roll-dialog-generic-new.hbs | 415 ++ templates/roll-dialog-rune.html | 70 - templates/roll-dialog-sejdr.html | 63 - 238 files changed, 16947 insertions(+), 2539 deletions(-) create mode 100644 LICENSE.md create mode 100644 gulpfile.js create mode 100644 lang/fr.json create mode 100644 less/yggdrasill-chat-viking.less create mode 100644 less/yggdrasill-chat.less create mode 100644 less/yggdrasill-main.less create mode 100644 less/yggdrasill.less create mode 100644 modules/applications/sheets/_module.mjs create mode 100644 modules/applications/sheets/base-actor-sheet.mjs create mode 100644 modules/applications/sheets/base-item-sheet.mjs create mode 100755 modules/applications/sheets/create-sheets.sh create mode 100644 modules/applications/sheets/yggdrasill-armecc-sheet.mjs create mode 100644 modules/applications/sheets/yggdrasill-armedist-sheet.mjs create mode 100644 modules/applications/sheets/yggdrasill-armure-sheet.mjs create mode 100644 modules/applications/sheets/yggdrasill-blessure-sheet.mjs create mode 100644 modules/applications/sheets/yggdrasill-bouclier-sheet.mjs create mode 100644 modules/applications/sheets/yggdrasill-competence-sheet.mjs create mode 100644 modules/applications/sheets/yggdrasill-don-sheet.mjs create mode 100644 modules/applications/sheets/yggdrasill-effetmagique-sheet.mjs create mode 100644 modules/applications/sheets/yggdrasill-equipement-sheet.mjs create mode 100644 modules/applications/sheets/yggdrasill-faiblesse-sheet.mjs create mode 100644 modules/applications/sheets/yggdrasill-figurant-sheet.mjs create mode 100644 modules/applications/sheets/yggdrasill-maladie-sheet.mjs create mode 100644 modules/applications/sheets/yggdrasill-monnaie-sheet.mjs create mode 100644 modules/applications/sheets/yggdrasill-personnage-sheet.mjs create mode 100644 modules/applications/sheets/yggdrasill-poison-sheet.mjs create mode 100644 modules/applications/sheets/yggdrasill-prouesse-sheet.mjs create mode 100644 modules/applications/sheets/yggdrasill-rune-sheet.mjs create mode 100644 modules/applications/sheets/yggdrasill-sortgaldr-sheet.mjs create mode 100644 modules/applications/sheets/yggdrasill-sortsejdr-sheet.mjs create mode 100644 modules/applications/yggdrasill-roll-dialog.mjs create mode 100644 modules/models/armecc.mjs create mode 100644 modules/models/armedist.mjs create mode 100644 modules/models/armure.mjs create mode 100644 modules/models/blessure.mjs create mode 100644 modules/models/bouclier.mjs create mode 100644 modules/models/competence.mjs create mode 100644 modules/models/don.mjs create mode 100644 modules/models/effetmagique.mjs create mode 100644 modules/models/equipement.mjs create mode 100644 modules/models/faiblesse.mjs create mode 100644 modules/models/figurant.mjs create mode 100644 modules/models/index.mjs create mode 100644 modules/models/maladie.mjs create mode 100644 modules/models/monnaie.mjs create mode 100644 modules/models/personnage.mjs create mode 100644 modules/models/poison.mjs create mode 100644 modules/models/prouesse.mjs create mode 100644 modules/models/rune.mjs create mode 100644 modules/models/sortgaldr.mjs create mode 100644 modules/models/sortsejdr.mjs delete mode 100644 modules/yggdrasill-roll-dialog.js create mode 100644 package-lock.json create mode 100644 package.json rename packs/armes/{000038.log => 000051.log} (100%) delete mode 100644 packs/armes/MANIFEST-000036 create mode 100644 packs/armes/MANIFEST-000049 rename packs/armures/{000038.log => 000051.log} (100%) delete mode 100644 packs/armures/MANIFEST-000036 create mode 100644 packs/armures/MANIFEST-000049 rename packs/blessures/{000038.log => 000051.log} (100%) delete mode 100644 packs/blessures/MANIFEST-000036 create mode 100644 packs/blessures/MANIFEST-000049 rename packs/competences-generales/{000038.log => 000051.log} (100%) delete mode 100644 packs/competences-generales/MANIFEST-000036 create mode 100644 packs/competences-generales/MANIFEST-000049 rename packs/competences-magiques/{000038.log => 000051.log} (100%) delete mode 100644 packs/competences-magiques/MANIFEST-000036 create mode 100644 packs/competences-magiques/MANIFEST-000049 rename packs/competences-martiales/{000038.log => 000051.log} (100%) delete mode 100644 packs/competences-martiales/MANIFEST-000036 create mode 100644 packs/competences-martiales/MANIFEST-000049 rename packs/dons/{000038.log => 000051.log} (100%) delete mode 100644 packs/dons/MANIFEST-000036 create mode 100644 packs/dons/MANIFEST-000049 rename packs/equipement/{000038.log => 000051.log} (100%) delete mode 100644 packs/equipement/MANIFEST-000036 create mode 100644 packs/equipement/MANIFEST-000049 rename packs/faiblesses/{000038.log => 000051.log} (100%) delete mode 100644 packs/faiblesses/MANIFEST-000036 create mode 100644 packs/faiblesses/MANIFEST-000049 rename packs/galdr-charme/{000038.log => 000051.log} (100%) delete mode 100644 packs/galdr-charme/MANIFEST-000036 create mode 100644 packs/galdr-charme/MANIFEST-000049 rename packs/galdr-illusions/{000038.log => 000051.log} (100%) delete mode 100644 packs/galdr-illusions/MANIFEST-000036 create mode 100644 packs/galdr-illusions/MANIFEST-000049 rename packs/galdr-maledictions/{000038.log => 000051.log} (100%) delete mode 100644 packs/galdr-maledictions/MANIFEST-000036 create mode 100644 packs/galdr-maledictions/MANIFEST-000049 rename packs/poisons/{000038.log => 000051.log} (100%) delete mode 100644 packs/poisons/MANIFEST-000036 create mode 100644 packs/poisons/MANIFEST-000049 rename packs/prouesses-martiales/{000038.log => 000051.log} (100%) delete mode 100644 packs/prouesses-martiales/MANIFEST-000036 create mode 100644 packs/prouesses-martiales/MANIFEST-000049 rename packs/runes/{000038.log => 000051.log} (100%) delete mode 100644 packs/runes/MANIFEST-000036 create mode 100644 packs/runes/MANIFEST-000049 rename packs/sejdr-divination/{000038.log => 000051.log} (100%) delete mode 100644 packs/sejdr-divination/MANIFEST-000036 create mode 100644 packs/sejdr-divination/MANIFEST-000049 rename packs/sejdr-guerison/{000038.log => 000051.log} (100%) delete mode 100644 packs/sejdr-guerison/MANIFEST-000036 create mode 100644 packs/sejdr-guerison/MANIFEST-000049 rename packs/sejdr-maitrise-des-elements/{000038.log => 000051.log} (100%) delete mode 100644 packs/sejdr-maitrise-des-elements/MANIFEST-000036 create mode 100644 packs/sejdr-maitrise-des-elements/MANIFEST-000049 rename packs/sejdr-maledictions/{000038.log => 000051.log} (100%) delete mode 100644 packs/sejdr-maledictions/MANIFEST-000036 create mode 100644 packs/sejdr-maledictions/MANIFEST-000049 rename packs/sejdr-transmission-des-forces/{000038.log => 000051.log} (100%) delete mode 100644 packs/sejdr-transmission-des-forces/MANIFEST-000036 create mode 100644 packs/sejdr-transmission-des-forces/MANIFEST-000049 create mode 100644 styles/yggdrasill.css create mode 100644 styles/yggdrasill.css.map create mode 100644 templates/actor-figurant-sheet.hbs create mode 100644 templates/actor-personnage-sheet-new.hbs rename templates/{actor-sheet.html => actor-personnage-sheet.hbs} (70%) create mode 100644 templates/actor-personnage-sheet.hbs.backup create mode 100644 templates/chat-generic-result-new.hbs delete mode 100644 templates/chat-generic-result.html create mode 100644 templates/chat-welcome-message.hbs create mode 100755 templates/convert-templates.sh create mode 100755 templates/create-item-templates.sh delete mode 100644 templates/figurant-sheet.html create mode 100644 templates/item-armecc-sheet.hbs delete mode 100644 templates/item-armecc-sheet.html create mode 100644 templates/item-armedist-sheet.hbs delete mode 100644 templates/item-armedist-sheet.html create mode 100644 templates/item-armure-sheet.hbs delete mode 100644 templates/item-armure-sheet.html create mode 100644 templates/item-blessure-sheet.hbs delete mode 100644 templates/item-blessure-sheet.html create mode 100644 templates/item-bouclier-sheet.hbs delete mode 100644 templates/item-bouclier-sheet.html create mode 100644 templates/item-competence-sheet.hbs delete mode 100644 templates/item-competence-sheet.html create mode 100644 templates/item-don-sheet.hbs delete mode 100644 templates/item-don-sheet.html create mode 100644 templates/item-effetderune-sheet.hbs delete mode 100644 templates/item-effetderune-sheet.html create mode 100644 templates/item-effetmagique-sheet.hbs delete mode 100644 templates/item-effetmagique-sheet.html create mode 100644 templates/item-equipement-sheet.hbs delete mode 100644 templates/item-equipement-sheet.html create mode 100644 templates/item-faiblesse-sheet.hbs delete mode 100644 templates/item-faiblesse-sheet.html create mode 100644 templates/item-maladie-sheet.hbs delete mode 100644 templates/item-maladie-sheet.html create mode 100644 templates/item-monnaie-sheet.hbs delete mode 100644 templates/item-monnaie-sheet.html create mode 100644 templates/item-poison-sheet.hbs delete mode 100644 templates/item-poison-sheet.html create mode 100644 templates/item-prouesse-sheet.hbs delete mode 100644 templates/item-prouesse-sheet.html create mode 100644 templates/item-rune-sheet.hbs delete mode 100644 templates/item-rune-sheet.html create mode 100644 templates/item-sortgaldr-sheet.hbs delete mode 100644 templates/item-sortgaldr-sheet.html create mode 100644 templates/item-sortsejdr-sheet.hbs delete mode 100644 templates/item-sortsejdr-sheet.html delete mode 100644 templates/roll-dialog-armecc.html delete mode 100644 templates/roll-dialog-armetir.html delete mode 100644 templates/roll-dialog-attribut.html delete mode 100644 templates/roll-dialog-carac.html delete mode 100644 templates/roll-dialog-competence.html delete mode 100644 templates/roll-dialog-galdr.html create mode 100644 templates/roll-dialog-generic-new.hbs delete mode 100644 templates/roll-dialog-rune.html delete mode 100644 templates/roll-dialog-sejdr.html diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..2299897 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,28 @@ +# Licence + +## Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0) + +Ce système Foundry VTT pour Yggdrasill est sous licence Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International. + +### Vous êtes autorisé à : + +- **Partager** — copier et redistribuer le matériel sous quelque support ou format que ce soit + +### Selon les conditions suivantes : + +- **Attribution** — Vous devez créditer l'œuvre, fournir un lien vers la licence et indiquer si des modifications ont été effectuées. Vous devez indiquer ces informations par tous les moyens raisonnables, sans toutefois suggérer que l'offrant vous soutient ou soutient la façon dont vous avez utilisé son œuvre. + +- **Pas d'Utilisation Commerciale** — Vous n'êtes pas autorisé à faire un usage commercial de cette œuvre, tout ou partie du matériel la composant. + +- **Pas de modifications** — Dans le cas où vous effectuez un remix, que vous transformez, ou créez à partir du matériel composant l'œuvre originale, vous n'êtes pas autorisé à distribuer ou mettre à disposition l'œuvre modifiée. + +- **Pas de restrictions complémentaires** — Vous n'êtes pas autorisé à appliquer des conditions légales ou des mesures techniques qui restreindraient légalement autrui à utiliser l'œuvre dans les conditions décrites par la licence. + +### Texte complet de la licence + +Pour consulter une copie complète de cette licence, visitez : +https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode.fr + +--- + +**Note** : Ce système est un projet non officiel et n'est pas affilié à l'éditeur du jeu de rôle Yggdrasill. diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 0000000..4365024 --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,35 @@ +const gulp = require('gulp'); +const less = require('gulp-less'); +const sourcemaps = require('gulp-sourcemaps'); + +// Paths +const paths = { + styles: { + src: 'less/**/*.less', + dest: 'styles/' + } +}; + +// Compile LESS to CSS +function styles() { + return gulp.src('less/yggdrasill.less') + .pipe(sourcemaps.init()) + .pipe(less()) + .pipe(sourcemaps.write('.')) + .pipe(gulp.dest(paths.styles.dest)); +} + +// Watch files +function watchFiles() { + gulp.watch(paths.styles.src, styles); +} + +// Define complex tasks +const build = gulp.series(styles); +const watch = gulp.series(build, watchFiles); + +// Export tasks +exports.styles = styles; +exports.build = build; +exports.watch = watch; +exports.default = build; diff --git a/lang/fr.json b/lang/fr.json new file mode 100644 index 0000000..ffe72e2 --- /dev/null +++ b/lang/fr.json @@ -0,0 +1,27 @@ +{ + "TYPES": { + "Item": { + "competence": "Compétence", + "don": "Don", + "faiblesse": "Faiblesse", + "blessure": "Blessure", + "maladie": "Maladie", + "poison": "Poison", + "prouesse": "Prouesse", + "sortsejdr": "Sort Sejdr", + "sortgaldr": "Sort Galdr", + "rune": "Rune", + "armecc": "Arme de corps à corps", + "armedist": "Arme de distance", + "armure": "Armure", + "bouclier": "Bouclier", + "equipement": "Équipement", + "monnaie": "Monnaie", + "effetmagique": "Effet magique" + }, + "Actor": { + "personnage": "Personnage", + "figurant": "Figurant" + } + } +} diff --git a/less/yggdrasill-chat-viking.less b/less/yggdrasill-chat-viking.less new file mode 100644 index 0000000..e650f2a --- /dev/null +++ b/less/yggdrasill-chat-viking.less @@ -0,0 +1,534 @@ +/* ======================================== + CHAT MESSAGE STYLES - Viking Theme + ======================================== */ + +.ygg-chat-card { + font-family: "Vinque", serif; + background: linear-gradient(135deg, rgba(245, 235, 220, 0.95) 0%, rgba(230, 220, 205, 0.95) 100%); + border: 3px solid #4a0404; + border-radius: 8px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3), inset 0 0 20px rgba(218, 165, 32, 0.1); + overflow: hidden; + margin: 0.3rem 0; + + /* Header Section */ + .ygg-chat-header { + background: linear-gradient(135deg, #4a0404 0%, #6b0505 100%); + color: #f5ead3; + padding: 0.5rem 0.75rem; + display: flex; + align-items: center; + gap: 0.5rem; + border-bottom: 2px solid #daa520; + + .header-decorative-border { + flex: 1; + height: 2px; + background: linear-gradient(90deg, transparent 0%, #daa520 50%, transparent 100%); + } + + .actor-portrait { + width: 40px; + height: 40px; + border-radius: 50%; + border: 2px solid #daa520; + box-shadow: 0 0 8px rgba(218, 165, 32, 0.5); + object-fit: cover; + } + + .header-content { + flex-shrink: 0; + text-align: center; + } + + .actor-name { + margin: 0; + font-family: "CaslonAntique", serif; + font-size: 1.1rem; + font-weight: bold; + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); + color: #f5ead3; + } + + .roll-type { + font-size: 0.75rem; + font-weight: normal; + opacity: 0.9; + margin-top: -0.1rem; + + i { + margin-right: 0.2rem; + } + } + } + + /* Roll Description */ + .ygg-roll-description { + padding: 0.5rem 0.75rem; + background: rgba(255, 255, 255, 0.4); + border-bottom: 1px solid rgba(74, 4, 4, 0.2); + font-size: 0.9rem; + + strong { + color: #4a0404; + font-size: 1rem; + } + + .dice-formula, + .skill-level, + .carac-detail, + .skill-detail { + color: #555; + font-size: 0.8rem; + } + } + + /* Dice Section */ + .ygg-dice-section { + padding: 0.5rem 0.75rem; + background: rgba(255, 250, 240, 0.6); + border-bottom: 1px solid rgba(74, 4, 4, 0.2); + + .dice-results, + .furor-results { + margin-bottom: 0.4rem; + + &:last-child { + margin-bottom: 0; + } + + label { + display: block; + font-weight: bold; + color: #4a0404; + margin-bottom: 0.3rem; + font-size: 0.85rem; + + i { + margin-right: 0.25rem; + } + } + } + + .dice-list { + display: flex; + flex-wrap: wrap; + gap: 0.3rem; + } + + .die-result { + display: inline-flex; + align-items: center; + justify-content: center; + min-width: 32px; + height: 32px; + padding: 0 0.4rem; + background: linear-gradient(135deg, #fff 0%, #f5f5f5 100%); + border: 2px solid #8b4513; + border-radius: 5px; + font-weight: bold; + font-size: 1rem; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2), inset 0 1px 2px rgba(255, 255, 255, 0.5); + + &.high { + background: linear-gradient(135deg, #90ee90 0%, #7ad87a 100%); + border-color: #228b22; + color: #004d00; + } + + &.low { + background: linear-gradient(135deg, #ffcccb 0%, #ffb3b3 100%); + border-color: #8b0000; + color: #4d0000; + } + + &.furor { + background: linear-gradient(135deg, #ff6b35 0%, #ff4500 100%); + border-color: #8b0000; + color: #fff; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5); + } + } + } + + /* Calculation Breakdown */ + .ygg-calculation { + padding: 0.5rem 0.75rem; + background: rgba(255, 255, 255, 0.3); + border-bottom: 1px solid rgba(74, 4, 4, 0.2); + + .calc-row { + display: flex; + justify-content: space-between; + padding: 0.2rem 0; + border-bottom: 1px dashed rgba(74, 4, 4, 0.15); + font-size: 0.85rem; + + &:last-child { + border-bottom: none; + } + + &.furor-row .calc-label i { + color: #ff4500; + } + } + + .calc-label { + font-weight: 600; + color: #4a0404; + } + + .calc-value { + font-weight: bold; + font-family: "MedievalSharp", serif; + + &.negative { + color: #8b0000; + } + + &.positive { + color: #228b22; + } + } + } + + /* Final Result */ + .ygg-result { + padding: 0.75rem; + background: linear-gradient(135deg, rgba(240, 230, 210, 0.8) 0%, rgba(230, 220, 200, 0.8) 100%); + border-top: 3px double #4a0404; + + &.critical-success { + background: linear-gradient(135deg, rgba(144, 238, 144, 0.3) 0%, rgba(122, 216, 122, 0.3) 100%); + border-top-color: #228b22; + } + + &.critical-failure { + background: linear-gradient(135deg, rgba(255, 99, 71, 0.3) 0%, rgba(220, 20, 60, 0.3) 100%); + border-top-color: #8b0000; + } + + &.success { + background: linear-gradient(135deg, rgba(173, 216, 230, 0.2) 0%, rgba(135, 206, 235, 0.2) 100%); + } + + .result-total { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 0.4rem; + padding-bottom: 0.4rem; + border-bottom: 2px solid rgba(74, 4, 4, 0.3); + + .result-label { + font-size: 1.1rem; + font-weight: bold; + color: #4a0404; + font-family: "CaslonAntique", serif; + } + + .result-value { + font-size: 1.7rem; + font-weight: bold; + font-family: "MedievalSharp", serif; + color: #4a0404; + text-shadow: 2px 2px 4px rgba(218, 165, 32, 0.3); + } + } + + .result-vs { + display: flex; + justify-content: space-between; + margin-bottom: 0.5rem; + font-size: 0.85rem; + + .vs-label { + color: #666; + } + + .vs-value { + font-weight: bold; + color: #4a0404; + } + } + + .result-status { + display: flex; + align-items: center; + gap: 0.4rem; + padding: 0.5rem; + background: rgba(255, 255, 255, 0.5); + border-radius: 5px; + border: 2px solid rgba(74, 4, 4, 0.2); + + .status-icon { + width: 28px; + height: 28px; + flex-shrink: 0; + font-size: 24px; + } + + .status-text { + font-size: 1rem; + font-weight: bold; + font-family: "CaslonAntique", serif; + + &.critical { + color: #228b22; + text-shadow: 0 0 8px rgba(34, 139, 34, 0.5); + } + + &.success { + color: #4682b4; + } + + &.failure { + color: #8b0000; + } + } + } + } + + /* Damage Section */ + .ygg-damage { + padding: 0.5rem 0.75rem; + background: linear-gradient(135deg, rgba(139, 0, 0, 0.1) 0%, rgba(178, 34, 34, 0.1) 100%); + border-top: 2px solid #8b0000; + + .damage-header { + display: flex; + align-items: center; + gap: 0.4rem; + margin-bottom: 0.4rem; + + i { + color: #8b0000; + font-size: 1.1rem; + } + + .damage-label { + font-weight: bold; + font-size: 0.9rem; + color: #4a0404; + } + } + + .damage-value { + font-size: 1.5rem; + font-weight: bold; + color: #8b0000; + font-family: "MedievalSharp", serif; + text-shadow: 2px 2px 4px rgba(139, 0, 0, 0.2); + margin-bottom: 0.2rem; + } + + .damage-detail { + font-size: 0.75rem; + color: #666; + font-style: italic; + } + + .damage-note { + margin-top: 0.4rem; + padding: 0.3rem; + background: rgba(255, 255, 255, 0.6); + border-left: 3px solid #daa520; + font-size: 0.8rem; + color: #4a0404; + } + } + + /* Weapon Details */ + .ygg-weapon-details { + padding: 0.5rem 0.75rem; + background: linear-gradient(135deg, rgba(139, 69, 19, 0.08) 0%, rgba(160, 82, 45, 0.08) 100%); + border-top: 2px solid #8b4513; + + .weapon-header { + display: flex; + align-items: center; + gap: 0.4rem; + margin-bottom: 0.5rem; + padding-bottom: 0.4rem; + border-bottom: 1px solid rgba(139, 69, 19, 0.3); + + &.collapsible { + cursor: pointer; + user-select: none; + transition: background 0.2s ease; + margin: -0.5rem -0.75rem 0; + padding: 0.5rem 0.75rem 0.4rem; + border-bottom: none; + + &:hover { + background: rgba(139, 69, 19, 0.1); + } + + .toggle-icon { + margin-left: auto; + transition: transform 0.3s ease; + font-size: 0.8rem; + } + + &.expanded .toggle-icon { + transform: rotate(180deg); + } + } + + i { + color: #8b4513; + font-size: 1.1rem; + } + + span { + font-weight: bold; + font-size: 0.9rem; + color: #4a0404; + font-family: "CaslonAntique", serif; + } + } + + .weapon-content { + max-height: 500px; + overflow: hidden; + transition: max-height 0.3s ease, opacity 0.3s ease; + opacity: 1; + + &.collapsed { + max-height: 0; + opacity: 0; + } + } + + .weapon-properties { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 0.3rem 0.5rem; + } + + .weapon-property { + display: flex; + gap: 0.4rem; + font-size: 0.85rem; + + .property-label { + font-weight: 600; + color: #4a0404; + white-space: nowrap; + } + + .property-value { + color: #555; + } + } + + .weapon-description { + margin-top: 0.5rem; + padding: 0.5rem; + background: rgba(255, 255, 255, 0.6); + border-radius: 5px; + border-left: 3px solid #8b4513; + font-size: 0.85rem; + line-height: 1.4; + color: #333; + } + } + + /* Magic Details */ + .ygg-magic-details { + padding: 0.5rem 0.75rem; + background: linear-gradient(135deg, rgba(138, 43, 226, 0.08) 0%, rgba(148, 0, 211, 0.08) 100%); + border-top: 2px solid #8a2be2; + + .magic-header { + display: flex; + align-items: center; + gap: 0.4rem; + margin-bottom: 0.5rem; + padding-bottom: 0.4rem; + border-bottom: 1px solid rgba(138, 43, 226, 0.3); + + &.collapsible { + cursor: pointer; + user-select: none; + transition: background 0.2s ease; + margin: -0.5rem -0.75rem 0; + padding: 0.5rem 0.75rem 0.4rem; + border-bottom: none; + + &:hover { + background: rgba(138, 43, 226, 0.1); + } + + .toggle-icon { + margin-left: auto; + transition: transform 0.3s ease; + font-size: 0.8rem; + } + + &.expanded .toggle-icon { + transform: rotate(180deg); + } + } + + i { + color: #8a2be2; + font-size: 1.1rem; + } + + span { + font-weight: bold; + font-size: 0.9rem; + color: #4a0404; + font-family: "CaslonAntique", serif; + } + } + + .magic-content { + max-height: 500px; + overflow: hidden; + transition: max-height 0.3s ease, opacity 0.3s ease; + opacity: 1; + + &.collapsed { + max-height: 0; + opacity: 0; + } + } + + .magic-property { + display: flex; + gap: 0.4rem; + margin-bottom: 0.3rem; + font-size: 0.85rem; + + .property-label { + font-weight: 600; + color: #4a0404; + min-width: 110px; + } + + .property-value { + color: #555; + } + } + + .rune-details { + background: rgba(255, 255, 255, 0.4); + padding: 0.4rem; + border-radius: 4px; + margin-top: 0.4rem; + } + + .magic-description { + margin-top: 0.5rem; + padding: 0.5rem; + background: rgba(255, 255, 255, 0.6); + border-radius: 5px; + border-left: 3px solid #8a2be2; + font-size: 0.85rem; + line-height: 1.4; + color: #333; + } + } +} diff --git a/less/yggdrasill-chat.less b/less/yggdrasill-chat.less new file mode 100644 index 0000000..f099e6c --- /dev/null +++ b/less/yggdrasill-chat.less @@ -0,0 +1,2 @@ +/* Chat Message Styles - Viking Theme */ +@import url("yggdrasill-chat-viking.less"); diff --git a/less/yggdrasill-main.less b/less/yggdrasill-main.less new file mode 100644 index 0000000..9525270 --- /dev/null +++ b/less/yggdrasill-main.less @@ -0,0 +1,2684 @@ + /* ==================== (A) Fonts ==================== */ + @font-face { + font-family: "MedievalSharp"; + src: url('../fonts/MedievalSharp.ttf') format("truetype"); + } + @font-face { + font-family: "GrenzeGotisch"; + src: url('../fonts/GrenzeGotisch-Regular.ttf') format("truetype"); + } + @font-face { + font-family: "Fondamento"; + src: url('../fonts/Fondamento.ttf') format("truetype"); + } + @font-face { + font-family: "CaslonAntique"; + src: url('../fonts/CaslonAntique.ttf') format("truetype"); + } + @font-face { + font-family: "Vinque"; + src: url('../fonts/vinque_rg.ttf') format("truetype"); + } + + :root { + /* =================== 1. ACTOR SHEET FONT STYLES =========== */ + --window-header-title-font-family: Vinque; + --window-header-title-font-size: 1.3rem; + --window-header-title-font-weight: normal; + --window-header-title-color: #f5f5f5; + + --major-button-font-family: Vinque; + --major-button-font-size: 1.05rem; + --major-button-font-weight: normal; + --major-button-color: #dadada; + + --tab-header-font-family: Vinque; + --tab-header-font-size: 1.0rem; + --tab-header-font-weight: 700; + --tab-header-color: #403f3e; + --tab-header-color-active: #4a0404; + + --actor-input-font-family: Vinque; + --actor-input-font-size: 0.9rem; + --actor-input-font-weight: 500; + --actor-input-color: black; + + --actor-label-font-family: Vinque; + --actor-label-font-size: 0.9rem; + --actor-label-font-weight: 700; + --actor-label-color: #464331c4; + + /* =================== 2. DEBUGGING HIGHLIGHTERS ============ */ + --debug-background-color-red: #ff000054; + --debug-background-color-blue: #1d00ff54; + --debug-background-color-green: #54ff0054; + + --debug-box-shadow-red: inset 0 0 2px red; + --debug-box-shadow-blue: inset 0 0 2px blue; + --debug-box-shadow-green: inset 0 0 2px green; + } + +/* Global styles & Font */ +.window-app { + font-family: Vinque, serif; + text-align: justify; + font-size: 16px; + letter-spacing: 1px; +} + +/* Fonts */ +.sheet header.sheet-header h1 input, .window-app .window-header, #actors .directory-list, #navigation #scene-list .scene.nav-item {font-family: "GoudyAcc"} /* For title, sidebar character and scene */ +.sheet nav.sheet-tabs {font-family: "Vinque";} /* For nav and title */ +.window-app input, .foundryvtt-vadentis .item-form, .sheet header.sheet-header .flex-group-center.flex-compteurs, .sheet header.sheet-header .flex-group-center.flex-fatigue { + font-family: "Vinque"; /* For sheet parts */ +} + +.window-header{ + background: rgba(0,0,0,0.75); +} + +.window-app.sheet .window-content { + margin: 0; + padding: 0; +} +.strong-text{ + font-weight: bold; +} + +.tabs .item.active, .blessures-list li ul li:first-child:hover, a:hover { + text-shadow: 1px 0px 0px #ff6600; +} + +.rollable:hover, .rollable:focus { + color: #000; + text-shadow: 0 0 10px red; + cursor: pointer; +} +input:disabled { + color: #000; /* Black text for disabled inputs */ + background: rgba(200, 200, 200, 0.3); /* Light gray background */ + cursor: not-allowed; +} +select:disabled { + color: #000; /* Black text for disabled selects */ + background: rgba(200, 200, 200, 0.3); /* Light gray background */ + cursor: not-allowed; +} +table {border: 1px solid #7a7971;} + +.grid, .grid-2col { + display: grid; + grid-column: span 2 / span 2; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 10px; + margin: 10px 0; + padding: 0; +} + +.grid-3col { + grid-column: span 3 / span 3; + grid-template-columns: repeat(3, minmax(0, 1fr)); +} + +.grid-4col { + grid-column: span 4 / span 4; + grid-template-columns: repeat(4, minmax(0, 1fr)); +} + +.grid-5col { + grid-column: span 5 / span 5; + grid-template-columns: repeat(5, minmax(0, 1fr)); +} + +.grid-6col { + grid-column: span 5 / span 5; + grid-template-columns: repeat(5, minmax(0, 1fr)); +} + +.grid-7col { + grid-column: span 7 / span 7; + grid-template-columns: repeat(7, minmax(0, 1fr)); +} + +.grid-8col { + grid-column: span 8 / span 8; + grid-template-columns: repeat(8, minmax(0, 1fr)); +} + +.grid-9col { + grid-column: span 9 / span 9; + grid-template-columns: repeat(9, minmax(0, 1fr)); +} + +.grid-10col { + grid-column: span 10 / span 10; + grid-template-columns: repeat(10, minmax(0, 1fr)); +} + +.grid-11col { + grid-column: span 11 / span 11; + grid-template-columns: repeat(11, minmax(0, 1fr)); +} + +.grid-12col { + grid-column: span 12 / span 12; + grid-template-columns: repeat(12, minmax(0, 1fr)); +} + +.flex-group-center, +.flex-group-left, +.flex-group-right { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + text-align: center; + padding: 5px; +} + +.flex-group-left { + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + text-align: left; +} + +.flex-group-right { + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + text-align: right; +} + +.flex-center { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + text-align: center; +} + +.flex-between { + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; +} +.flex-shrink { + flex: 'flex-shrink' ; +} + +/* Styles limited to foundryvtt-vadentis sheets */ + +.fvtt-yggdrasill .sheet-header { + -webkit-box-flex: 0; + -ms-flex: 0 0 210px; + flex: 0 0 210px; + overflow: hidden; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + margin-bottom: 0; + background: #011d33 url("../images/ui/header_sheet.webp") repeat left top; + color: rgba(255, 255, 255, 0.5); +} + +.fvtt-yggdrasill .sheet-header .profile-img { + -webkit-box-flex: 0; + -ms-flex: 0 0 90px; + flex: 0 0 90px; + height: 90px; + width: 90px; + margin: 0.2rem; /* Add margin around the image */ + object-fit: cover; + object-position: 50% 0; +} + +.button-img { + vertical-align: baseline; + width: 8%; + height: 8%; + max-height: 48px; + border-width: 0; + border: 1px solid rgba(0, 0, 0, 0); +} +.button-img:hover { + color: rgba(255, 255, 128, 0.7); + border: 1px solid rgba(255, 128, 0, 0.8); + cursor: pointer; +} + +.button-effect-img { + vertical-align: baseline; + width: 16px; + max-height: 16px; + height: 16; + border-width: 0; +} + +.small-button-container { + height: 16px; + width: 16px; + border: 0; + vertical-align: bottom; +} + +.fvtt-yggdrasill .sheet-header .header-fields { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; +} + +.fvtt-yggdrasill .sheet-header h1.charname { + height: 40px; + padding: 0px; + margin: 5px 0; + border-bottom: 0; +} + +.fvtt-yggdrasill .sheet-header h1.charname input { + background: rgba(255, 255, 255, 0.05); + border: 0 none; + margin-bottom: 0.25rem; + color: rgba(255, 255, 255, 0.75); + width: 100%; + height: 100%; + margin: 0; + font-family: "CaslonAntique", serif; /* Elegant font for character name */ + font-size: 2.16rem; /* Increased by 20% from 1.8rem */ +} + +.fvtt-yggdrasill .sheet-header .lock-icon { + display: flex; + align-items: center; + margin-left: 10px; + + a { + cursor: pointer; + opacity: 0.7; + transition: opacity 0.2s ease; + + &:hover { + opacity: 1; + } + } + + img { + filter: brightness(0) invert(1); /* Make icon white */ + } +} + +.fvtt-yggdrasill .sheet-tabs { + -webkit-box-flex: 0; + -ms-flex: 0; + flex: 0; +} + +.fvtt-yggdrasill section.sheet-body { + height: 100%; + overflow-y: auto; + background: rgba(245,245,240,0.6) url("../images/ui/sheet_background.webp") left top; +} + +.fvtt-yggdrasill .sheet-body .tab, +.fvtt-yggdrasill .sheet-body .tab .editor { + height: 100%; +} + +.editor { + border: 1px solid #999; + height: 300px; + background: transparent; +} + +.editor-content { + height: 100%; + padding: 0.5rem; + color: #000; +} + +/* ProseMirror editor background */ +.fvtt-yggdrasill .ProseMirror { + background: transparent; + border: 1px solid #999; + min-height: 200px; +} + +.medium-editor { + border: 1px solid #999; + height: 240px; + background: transparent; +} + +.small-editor { + border: 1px solid #999; + height: 150px; + background: transparent; +} + +.fvtt-yggdrasill .tox .tox-editor-container { + background: #fff; +} + +.fvtt-yggdrasill .tox .tox-edit-area { + padding: 0 8px; +} + +.fvtt-yggdrasill .resource-label { + font-weight: bold; + text-transform: uppercase; +} + +.fvtt-yggdrasill .tabs { + height: auto; + border: none; + background: linear-gradient(to bottom, rgba(74, 4, 4, 0.1), rgba(74, 4, 4, 0.05)); + padding: 0.5rem 0.5rem 0; + display: flex; + gap: 0.25rem; +} + +.fvtt-yggdrasill .tabs .item { + line-height: 1.5; + font-weight: bold; + padding: 0.5rem 1.25rem; + background: rgba(245, 245, 240, 0.4); + border: 1px solid rgba(74, 4, 4, 0.3); + border-bottom: none; + border-radius: 8px 8px 0 0; + font-family: "Vinque", serif; + color: #4a0404; + transition: all 0.2s ease; + position: relative; + cursor: pointer; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4); + + &:hover { + background: rgba(245, 245, 240, 0.6); + color: #6a0606; + transform: translateY(-2px); + } +} + +.fvtt-yggdrasill .tabs .item.active { + background: rgba(245, 245, 240, 0.9); + border-color: #4a0404; + border-bottom: 2px solid rgba(245, 245, 240, 0.9); + margin-bottom: -1px; + z-index: 1; + text-decoration: none; + text-shadow: 0 0 8px rgba(74, 4, 4, 0.3); + box-shadow: + inset 0 1px 0 rgba(255, 255, 255, 0.6), + 0 -2px 8px rgba(74, 4, 4, 0.1); + transform: translateY(0); +} + +.fvtt-yggdrasill .items-list { + list-style: none; + margin: 7px 0; + padding: 0; + overflow-y: auto; +} + +.foundryvtt-vadentis .items-list .item-header { + font-weight: bold; +} + +.foundryvtt-vadentis .items-list .item { + height: 30px; + line-height: 24px; + padding: 3px 0; + border-bottom: 1px solid #BBB; +} + +.foundryvtt-vadentis .items-list .item .item-image { + -webkit-box-flex: 0; + -ms-flex: 0 0 24px; + flex: 0 0 24px; + margin-right: 5px; +} + +.foundryvtt-vadentis .items-list .item img { + display: block; +} + +.foundryvtt-vadentis .items-list .item-name { + margin: 0; +} + +.foundryvtt-vadentis .items-list .item-controls { + -webkit-box-flex: 0; + -ms-flex: 0 0 86px; + flex: 0 0 86px; + text-align: right; +} + +.rdddialog .dialog-roll-sort { + width: 600px; + height: 430px; + z-index: 9999; + display: block; +} + +#input-furor { + padding: 10px; + border: 4px solid #e6dfdf; + -webkit-border-radius: 5px; + border-radius: 5px; + border-width: 2; + font-weight: bold; + text-align: center; + padding-top: 1.0rem; + font-size: 2rem; + text-shadow: #011d33; + width: 6rem; + height: 4rem; + flex-grow: 1; +} +#max-furor { + width: 2rem; + font-weight: bold; + text-align: center; + flex-grow: 1; +} +#input-pv { + padding: 10px; + border: 4px solid #cc4545; + -webkit-border-radius: 5px; + border-radius: 5px; + border-width: 2; + font-weight: bold; + text-align: center; + padding-top: 1.0rem; + font-size: 2rem; + text-shadow: #011d33; + width: 6rem; + height: 4rem; + flex-grow: 1; +} +.pv-label { + font-weight: bold; + text-align: center; + flex-grow: 1; + +} +/* ======================================== */ +/* Sheet */ +.window-app.sheet .window-content .sheet-header{ + background: #011d33 url("../images/ui/header_sheet.webp") repeat left top; + color: rgba(255, 255, 255, 0.5); +} + +.window-app.sheet .window-content .sheet-header input[type="text"], .window-app.sheet .window-content .sheet-header input[type="number"], .window-app.sheet .window-content .sheet-header input[type="password"], .window-app.sheet .window-content .sheet-header input[type="date"], .window-app.sheet .window-content .sheet-header input[type="time"] { + color: rgba(255, 255, 255, 0.75); + background: rgba(255, 255, 255, 0.05); + border: 0 none; + margin-bottom: 0.25rem; +} + +.window-app .window-content, .window-app.sheet .window-content .sheet-body{ + background: rgba(245,245,240,0.6) url("../images/ui/sheet_background.webp") left top; +} + +.sheet header.sheet-header .profile-img { + object-fit: cover; + object-position: 50% 0; + margin: 0; + padding: 0; +} + +.sheet nav.sheet-tabs { + font-size: 0.85rem; + font-weight: bold; + height: auto; + flex: 0 0 auto; + margin: 0; + padding: 0.5rem 0.5rem 0; + text-align: center; + line-height: 1.5; + border: none; + color: #4a0404; + background: linear-gradient(to bottom, rgba(74, 4, 4, 0.1), rgba(74, 4, 4, 0.05)); + display: flex; + gap: 0.25rem; +} + +nav.sheet-tabs .item { + position: relative; + padding: 0.5rem 1.25rem; + background: rgba(245, 245, 240, 0.4); + border: 1px solid rgba(74, 4, 4, 0.3); + border-bottom: none; + border-radius: 8px 8px 0 0; + font-family: "Vinque", serif; + color: #4a0404; + transition: all 0.2s ease; + cursor: pointer; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4); + + &:hover:not(.active) { + background: rgba(245, 245, 240, 0.6); + color: #6a0606; + transform: translateY(-2px); + } + + &.active { + background: rgba(245, 245, 240, 0.9); + border-color: #4a0404; + border-bottom: 2px solid rgba(245, 245, 240, 0.9); + margin-bottom: -1px; + z-index: 1; + text-shadow: 0 0 8px rgba(74, 4, 4, 0.3); + box-shadow: + inset 0 1px 0 rgba(255, 255, 255, 0.6), + 0 -2px 8px rgba(74, 4, 4, 0.1); + transform: translateY(0); + } +} + +nav.sheet-tabs .item:after { + display: none; /* Remove old separator */ +} + +/* Tab visibility - same as wasteland */ +.fvtt-yggdrasill .sheet-body[data-tab] { + display: none; + height: auto; + padding: 0.5rem; + padding-bottom: 1rem; /* Extra padding at bottom to prevent cutoff */ + overflow-y: auto !important; + max-height: calc(100vh - 350px); /* Limit height to enable scrolling */ + scrollbar-width: thin; + scrollbar-color: rgba(74, 4, 4, 0.5) rgba(0, 0, 0, 0.1); + box-sizing: border-box; /* Include padding in height calculation */ +} + +.fvtt-yggdrasill .sheet-body[data-tab].active { + display: block; +} + +/* Tab content wrapper */ +.fvtt-yggdrasill .tab-content { + padding: 0.5rem; + padding-bottom: 1rem; /* Extra padding at bottom */ + font-family: "Vinque", serif; /* Apply Vinque to all tab content */ + height: 100%; + overflow: visible; + color: #2b2b2b; /* Dark text color for better readability */ +} + +/* Sheet section */ +.fvtt-yggdrasill .sheet-section { + margin-bottom: 1rem; + padding: 0.75rem; + background: rgba(250, 248, 240, 0.4); + border: 1px solid rgba(74, 4, 4, 0.15); + border-radius: 4px; + + h3 { + border-bottom: 2px solid #4a0404; + padding-bottom: 0.25rem; + margin-bottom: 0.5rem; + color: #4a0404; + font-family: "Vinque", serif; + font-size: 1.35rem; /* Reduced by 10% from default ~1.5rem */ + } + + h4 { + color: #4a0404; + margin: 0.5rem 0 0.25rem 0; + font-family: "Vinque", serif; + font-size: 1.1rem; + } + + label, .item-name, span { + font-family: "Vinque", serif; + color: #3a3a3a; + font-weight: 600; + } + + .flexrow { + margin-bottom: 0.35rem; + align-items: center; + + label { + flex: 0 0 120px; + margin-right: 0.5rem; + } + + input { + color: #2b2b2b; + background: rgba(255, 255, 255, 0.8); + border: 1px solid rgba(74, 4, 4, 0.25); + padding: 0.25rem 0.5rem; + border-radius: 3px; + + &:focus { + border-color: #4a0404; + outline: none; + box-shadow: 0 0 0 2px rgba(74, 4, 4, 0.1); + } + } + } +} + +/* Carac category */ +.fvtt-yggdrasill .carac-category { + margin-bottom: 0.3rem; /* Reduced further from 0.5rem */ + + h4 { + font-family: "Vinque", serif; + color: #4a0404; + border-bottom: 1px solid rgba(74, 4, 4, 0.3); + padding-bottom: 0.1rem; /* Reduced from 0.15rem */ + margin-bottom: 0.15rem; /* Reduced from 0.25rem */ + } + + .item-list { + list-style: none; + margin: 0; + padding: 0; + + .item { + display: flex; + align-items: center; + padding: 0.1rem 0; /* Reduced from 0.15rem */ + gap: 0.5rem; + flex-wrap: nowrap; /* Force everything on one line */ + + &.flexrow { + justify-content: space-between; + } + + .item-img { + width: 20px; /* Reduced from 24px */ + height: 20px; /* Reduced from 24px */ + flex: 0 0 20px; + } + + .item-name { + flex: 1; + color: #000; + font-family: "Vinque", serif; + font-size: 0.9rem; /* Slightly smaller */ + + a { + color: #000; + text-decoration: none; + font-family: "Vinque", serif; + + &:hover { + color: #4a0404; + text-decoration: underline; + } + } + } + + select { + flex: 0 0 auto; + min-width: 60px; + width: auto !important; /* Override any global width: 100% */ + display: inline-block !important; /* Ensure inline display */ + font-family: "Vinque", serif; + } + } + } +} + +/* Item list styling for actors */ +.fvtt-yggdrasill .sheet-section .item-list { + list-style: none; + margin: 0; + padding: 0; + + .item { + display: flex; + align-items: center; + padding: 0.2rem 0; + gap: 0.5rem; + flex-wrap: nowrap; + border-bottom: 1px solid rgba(74, 4, 4, 0.1); + + &.flexrow { + justify-content: space-between; + } + + .item-img { + width: 20px; + height: 20px; + flex: 0 0 20px; + object-fit: cover; + } + + .item-name { + flex: 1; + color: #000; + font-weight: 500; + font-family: "Vinque", serif; + font-size: 0.95rem; + } + + .item-controls { + display: flex; + align-items: center; + gap: 0.5rem; + flex: 0 0 auto; + justify-content: flex-end; + flex-wrap: nowrap; + + span { + color: #000; + white-space: nowrap; + font-family: "Vinque", serif; + } + + select { + min-width: 60px; + width: auto !important; + display: inline-block !important; + font-family: "Vinque", serif; + } + } + } +} + +/* PV container */ +.fvtt-yggdrasill .pv-container, +.fvtt-yggdrasill .furor-container { + display: flex; + align-items: center; + gap: 0.5rem; + margin: 0.5rem 0; + + input { + font-family: "Vinque", serif; + font-size: 1.2rem; + text-align: center; + } + + span { + font-family: "Vinque", serif; + font-size: 1.2rem; + color: #000; + } + + .pv-control { + width: 28px; + height: 28px; + padding: 0; + border: 1px solid #4a0404; + background: rgba(74, 4, 4, 0.1); + color: #4a0404; + font-size: 1.2rem; + font-weight: bold; + cursor: pointer; + border-radius: 3px; + display: flex; + align-items: center; + justify-content: center; + transition: all 0.2s ease; + + &:hover { + background: rgba(74, 4, 4, 0.2); + border-color: #6a0606; + } + + &:active { + background: rgba(74, 4, 4, 0.3); + } + } +} + +/* Status container */ +.fvtt-yggdrasill .status-container { + display: flex; + flex-direction: column; + gap: 0.5rem; + margin: 0.5rem 0; + + label { + display: flex; + align-items: center; + gap: 0.5rem; + font-family: "Vinque", serif; + color: #000; + cursor: pointer; + + input[type="checkbox"] { + width: auto; + margin: 0; + } + } +} + +/* Competence list styling */ +.fvtt-yggdrasill .competence-list { + list-style: none; + margin: 0; + padding: 0; + + .competence-header { + display: grid; + grid-template-columns: 24px 1fr 80px 60px; + gap: 0.5rem; + align-items: center; + padding: 0.3rem 0; + border-bottom: 2px solid #4a0404; + margin-bottom: 0.3rem; + font-weight: bold; + color: #4a0404; + font-family: "Vinque", serif; + font-size: 0.9rem; + } + + .competence-item { + display: grid; + grid-template-columns: 24px 1fr 80px 60px; + gap: 0.5rem; + align-items: center; + padding: 0.25rem 0; + border-bottom: 1px solid rgba(74, 4, 4, 0.1); + + &:hover { + background: rgba(74, 4, 4, 0.05); + } + + .competence-icon { + width: 24px; + height: 24px; + object-fit: cover; + border-radius: 3px; + } + + .competence-name { + color: #000; + font-family: "Vinque", serif; + font-size: 0.95rem; + + a { + color: #000; + text-decoration: none; + + &:hover { + color: #4a0404; + text-decoration: underline; + } + } + + .specialisation { + font-style: italic; + color: #666; + font-size: 0.85rem; + margin-left: 0.25rem; + } + } + + .competence-niveau { + width: 80px; + font-family: "Vinque", serif; + text-align: center; + } + + .competence-controls { + display: flex; + gap: 0.5rem; + justify-content: flex-end; + + a { + color: #4a0404; + + &:hover { + color: #6a0606; + } + } + } + } +} + +/* Combat list styling */ +.fvtt-yggdrasill .combat-list { + list-style: none; + margin: 0; + padding: 0; + + .combat-header { + display: grid; + grid-template-columns: 24px 1fr 120px 100px 80px; + gap: 0.5rem; + align-items: center; + padding: 0.3rem 0; + border-bottom: 2px solid #4a0404; + margin-bottom: 0.3rem; + font-weight: bold; + color: #4a0404; + font-family: "Vinque", serif; + font-size: 0.9rem; + } + + .combat-item { + display: grid; + grid-template-columns: 24px 1fr 120px 100px 80px; + gap: 0.5rem; + align-items: center; + padding: 0.25rem 0; + border-bottom: 1px solid rgba(74, 4, 4, 0.1); + + &:hover { + background: rgba(74, 4, 4, 0.05); + } + + .combat-icon { + width: 24px; + height: 24px; + object-fit: cover; + border-radius: 3px; + } + + .combat-name { + color: #000; + font-family: "Vinque", serif; + font-size: 0.95rem; + + a { + color: #000; + text-decoration: none; + + &:hover { + color: #4a0404; + text-decoration: underline; + } + } + } + + .combat-categorie, + .combat-degat, + .combat-niveau, + .combat-protection, + .combat-bonus { + color: #000; + font-family: "Vinque", serif; + font-size: 0.9rem; + text-align: center; + } + + .combat-controls { + display: flex; + gap: 0.5rem; + justify-content: flex-end; + + a { + color: #4a0404; + + &:hover { + color: #6a0606; + } + } + } + } +} + +/* Sort list styling */ +.fvtt-yggdrasill .sort-list { + list-style: none; + margin: 0; + padding: 0; + + .sort-header { + display: grid; + grid-template-columns: 24px 1fr 120px 100px 80px; + gap: 0.5rem; + align-items: center; + padding: 0.3rem 0; + border-bottom: 2px solid #4a0404; + margin-bottom: 0.3rem; + font-weight: bold; + color: #4a0404; + font-family: "Vinque", serif; + font-size: 0.9rem; + } + + .sort-item { + display: grid; + grid-template-columns: 24px 1fr 120px 100px 80px; + gap: 0.5rem; + align-items: center; + padding: 0.25rem 0; + border-bottom: 1px solid rgba(74, 4, 4, 0.1); + + &:hover { + background: rgba(74, 4, 4, 0.05); + } + + &.rune-item { + grid-template-columns: 24px 1fr 100px 80px 100px 80px; + } + + .sort-icon { + width: 24px; + height: 24px; + object-fit: cover; + border-radius: 3px; + } + + .sort-name { + color: #000; + font-family: "Vinque", serif; + font-size: 0.95rem; + + a { + color: #000; + text-decoration: none; + + &:hover { + color: #4a0404; + text-decoration: underline; + } + } + } + + .sort-forme, + .sort-niveau, + .sort-domaine, + .sort-duree, + .sort-cible { + color: #000; + font-family: "Vinque", serif; + font-size: 0.9rem; + text-align: center; + } + + .sort-controls { + display: flex; + gap: 0.5rem; + justify-content: flex-end; + + a { + color: #4a0404; + + &:hover { + color: #6a0606; + } + } + } + } + + .rune-item .sort-header { + grid-template-columns: 24px 1fr 100px 80px 100px 80px; + } +} + +/* Equipement list styling */ +.fvtt-yggdrasill .equipement-list { + list-style: none; + margin: 0; + padding: 0; + + .equipement-header { + display: grid; + grid-template-columns: 24px 1fr 100px 80px 80px; + gap: 0.5rem; + align-items: center; + padding: 0.3rem 0; + border-bottom: 2px solid #4a0404; + margin-bottom: 0.3rem; + font-weight: bold; + color: #4a0404; + font-family: "Vinque", serif; + font-size: 0.9rem; + } + + .equipement-item { + display: grid; + grid-template-columns: 24px 1fr 100px 80px 80px; + gap: 0.5rem; + align-items: center; + padding: 0.25rem 0; + border-bottom: 1px solid rgba(74, 4, 4, 0.1); + + &:hover { + background: rgba(74, 4, 4, 0.05); + } + + .equipement-icon { + width: 24px; + height: 24px; + object-fit: cover; + border-radius: 3px; + } + + .equipement-name { + color: #000; + font-family: "Vinque", serif; + font-size: 0.95rem; + } + + .equipement-quantite, + .equipement-enc { + color: #000; + font-family: "Vinque", serif; + font-size: 0.9rem; + text-align: center; + } + + .equipement-controls { + display: flex; + gap: 0.5rem; + justify-content: flex-end; + + a { + color: #4a0404; + + &:hover { + color: #6a0606; + } + } + } + } +} + +/* Description tab styling */ +.fvtt-yggdrasill .sheet-body[data-tab="description"] { + .form-group { + display: grid; + grid-template-columns: 120px 1fr; + gap: 0.5rem; + align-items: center; + margin-bottom: 0.5rem; + + label { + color: #000; + font-family: "Vinque", serif; + font-weight: bold; + text-align: right; + } + + input { + font-family: "Vinque", serif; + padding: 0.25rem; + border: 1px solid rgba(74, 4, 4, 0.3); + background: rgba(255, 255, 255, 0.8); + } + } + + .editor-content { + min-height: 150px; + padding: 0.5rem; + border: 1px solid rgba(74, 4, 4, 0.3); + background: rgba(255, 255, 255, 0.8); + font-family: "Vinque", serif; + } +} + +section.sheet-body:after { + content: ""; + display: block; + clear: both; +} + +.sheet header.sheet-header .flex-compteurs {text-align: right;} +.sheet header.sheet-header .resource-content {width: 2rem;} + +.ctn-vie span, .ctn-endu span, .ctn-fatigue span, .ctn-reve span { + display: inline-block; + text-align: left; + width: 2rem; +} +.select-diff { + display: inline-block; + text-align: left; + width: 50px; +} + +#vie-plus, #vie-moins, #endurance-plus, #endurance-moins, #fatigue-plus, #fatigue-moins, #ptreve-actuel-plus, #ptreve-actuel-moins, .monnaie-plus, .monnaie-moins { + display: inline-block; + width: 1.25rem; + background: rgba(30, 25, 20, 1); + text-align: center; + border: 1px solid rgba(72, 46, 28, 1); + border-radius: 0.25rem; + line-height: 1.25rem; + color: rgba(255, 255, 255, 0.5); +} + + +.window-app.sheet .window-content .tooltip:hover .tooltiptext { + top: 2rem; + left: 2rem; + margin: 0; + padding: 0.25rem; +} + +.window-app.sheet .window-content .carac-value, .window-app.sheet .window-content .competence-xp { + margin: 0.05rem; + flex-basis: 3rem; + text-align: center; +} + +#combat #combat-round .encounters a { + color: #3f1f1f; +} + +/* ======================================== */ +/* Global UI elements */ + +/* ======================================== */ + +h1, h2, h3, h4 { + font-weight: bold; +} + +ul, ol { + margin: 0; + padding: 0; +} +ul, li { + list-style-type: none; +} + +.sheet li { + margin: 0.125rem; + padding: 0.25rem; +} +.header-fields li { + margin: 0; + padding: 0; +} + +.alterne-list > .list-item:hover { + background: rgba(100, 100, 50, 0.25); +} +.alterne-list > .list-item:nth-child(even) { + background: rgba(80, 60, 0, 0.10); +} +.alterne-list > .list-item:nth-child(odd) { + background: rgb(160, 130, 100, 0.05); +} +.xp-level-up { + margin: 0.125rem; + box-shadow: inset 0px 0px 1px #00000096; + border-radius: 0.25rem; + padding: 0.125rem; + flex: 1 1 5rem; + background: rgba(195, 152, 22, 0.5); +} + +.blessures-list ul { + display: flex; +} +.blessures-list li { + flex: 1; + flex-basis: auto; +} +.blessures-list li ul li:first-child { + flex: 0; + align-items: center; + justify-content: center; + padding: 0.5rem; + cursor: pointer; +} + +.specialisation-label { + font-size: 0.8rem; +} + +.carac-label { + font-weight: bold; +} +.list-item { + margin: 0.125rem; + box-shadow: inset 0px 0px 1px #00000096; + border-radius: 0.25rem; + padding: 0.125rem; + flex: 1 1 5rem; +} +.item-display-show { + display: block; +} +.item-display-hide { + display: none; +} +.conteneur-type { + background: rgb(200, 10, 100, 0.25); +} + +.item-quantite { + margin-left: 0.5rem; +} + +.list-item-margin1 { + margin-left: 1rem; +} +.list-item-margin2 { + margin-left: 2rem; +} +.list-item-margin3 { + margin-left: 3rem; +} +.list-item-margin4 { + margin-left: 4rem; +} + +.sheet-competence-img { + width: 24px; + height: 24px; + flex-grow: 0; + margin-right: 0.25rem; +} +.competence-column { + flex-direction: column; + align-content: flex-start; + justify-content: flex-start; + flex-grow: 0; + flex-basis: 1; +} +.competence-header { + align-content: flex-start; + justify-content: flex-start; + font-weight: bold; + flex-grow: 0; +} +.secondaire-label, +.arme-label, +.generic-label, +.competence-label, +.devotion-label, +.sort-label, +.technique-label, +.stat-label, +.arme-label, +.armure-label, +.equipement-label, +.description-label { + flex-grow: 2; +} + +.score-label { + flex-grow: 2; + align-content: center; +} + +.attribut-value, +.carac-value { + flex-grow: 0; + flex-basis: 64px; + margin-right: 4px; + margin-left: 4px; +} +.sante-value, +.competence-value { + flex-grow: 0; + flex-basis: 2rem; + margin-right: 0.25rem; + margin-left: 0.25rem; +} +.description-value { + flex-grow: 0; + flex-basis: 4rem; + margin-right: 0.25rem; + margin-left: 0.25rem; +} +.competence-xp { + flex-grow: 0; + flex-basis: 2rem; + margin-right: 0.25rem; + margin-left: 0.25rem; +} +.blessures-title { + font-weight: bold; +} +.alchimie-title { + font-weight: bold; +} +.blessure-data { + flex-direction: row; + align-content: flex-start; + justify-content: flex-start; +} +.blessures-soins { + flex-grow: 0; + flex-basis: 32px; + margin-right: 4px; + margin-left: 4px; +} +.blessures-loc { + flex-grow: 0; + flex-basis: 96px; + margin-right: 4px; + margin-left: 4px; +} +.pointsreve-value { + flex-grow: 0; + flex-basis: 64px; + margin-right: 4px; + margin-left: 4px; +} +.input-sante-header, +.stress-style { + flex-grow: 0; + flex-basis: 64px; + margin-right: 4px; + margin-left: 4px; +} + +/* ======================================== */ +.table-nombres-astraux { + border:1; + font-size: 0.75rem; +} +.table-nombres-astraux td { + border: 1px solid black; + text-align: center; + vertical-align: top; +} + +/* ======================================== */ +.tokenhudext { + display: flex; + flex: 0 !important; + font-family: CaslonPro; + font-weight: 600; +} +.tokenhudext.left { + justify-content: flex-start; + flex-direction: column; + position: absolute; + top: 2.75rem; + right: 4rem; +} +.tokenhudext.right { + justify-content: flex-start; + flex-direction: column; + position: absolute; + top: 2.75rem; + left: 4rem; +} +.control-icon.tokenhudicon { + width: fit-content; + height: fit-content; + min-width: 6rem; + flex-basis: auto; + padding: 0; + line-height: 1rem; + margin: 0.25rem; +} +.control-icon.tokenhudicon.right { + margin-left: 8px; +} +#token-hud .status-effects.active{ + z-index: 2; +} +/* ======================================== */ +.item-checkbox { + height: 25px; + border: 1px solid #736953a6; + border-left: none; + font-weight: 500; + font-size: 0.9rem; + color: black; + padding-top: 5px; + margin-right: 0px; + width: 45px; + position: relative; + left: 0px; + text-align: center; +} + +/* ======================================== */ +/* dialogue competence : Appel au moral */ +.diffAppelAuMoral { + display: none !important; +} + +.imgAppelAuMoral { + height: 20px; + width: 20px; + border:none; + outline: none; + background-size: cover; +} + +/* Tooltip container */ +.tooltipAppelAuMoral { + position: relative; + display: inline-block; + border-bottom: 0; +} + +/* Show the tooltip text when you mouse over the tooltip container */ +.tooltipAppelAuMoral:hover .tooltipAppelAuMoralText { + visibility: visible; + opacity: 1; +} + +/* Tooltip text */ +.tooltipAppelAuMoral .tooltipAppelAuMoralText { + text-align: center; + + /* Position the tooltip text */ + position: absolute; + z-index: 1; + top: -10px; + left: 18%; + + /* Fade in tooltip */ + visibility: hidden; + opacity: 0; + transition: opacity 0.3s; +} + + +.flex-actions-bar { + flex-grow: 2; +} + +/* ======================================== */ +/* Sidebar CSS */ +#sidebar { + font-size: 1rem; + width: min-content; + background: rgb(105,85,65) url("../images/ui/texture_feuille_perso_onglets.webp") no-repeat right bottom; + background-position: 100%; + color: rgba(220,220,220,0.75); +} + +#sidebar-tabs > .collapsed, #chat-controls .chat-control-icon { + color: rgba(220,220,220,0.75); + text-shadow: 1px 1px 0 rgba(0,0,0,0.75); +} + +.sidebar-tab .directory-list .entity { + border-top: 1px dashed rgba(0,0,0,0.25); + border-bottom: 0 none; + padding: 0.25rem 0; +} + +.sidebar-tab .directory-list .entity:hover { + background: rgba(0,0,0,0.05); + cursor: pointer; +} + +/* ============================================ */ +/* CHAT MESSAGES STYLING */ +/* ============================================ */ + +.chat-message { + background: linear-gradient(135deg, rgba(230, 220, 200, 0.85) 0%, rgba(210, 200, 180, 0.8) 100%); + font-size: 0.9rem; + font-family: "Vinque", serif; + border: 1px solid rgba(74, 4, 4, 0.2); + border-radius: 4px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15); + margin: 0.25rem 0; + + .message-header { + background: linear-gradient(135deg, rgba(74, 4, 4, 0.15) 0%, rgba(42, 2, 2, 0.1) 100%); + padding: 0.5rem; + border-bottom: 1px solid rgba(74, 4, 4, 0.2); + border-radius: 4px 4px 0 0; + + .flavor-text, .whisper-to { + font-size: 0.9rem; + color: #3d2f1f; + font-style: italic; + } + + .message-sender { + font-weight: 700; + color: #4a0404; + font-family: "Vinque", serif; + } + } + + .message-content { + padding: 0.5rem; + color: #2a1f15; + line-height: 1.4; + + h3 { + font-family: "Vinque", serif; + font-size: 1.1rem; + margin: 0.4rem 0; + color: #4a0404; + border-bottom: 1px solid rgba(74, 4, 4, 0.2); + padding-bottom: 0.2rem; + } + + h4 { + font-family: "Vinque", serif; + font-size: 1rem; + margin: 0.3rem 0; + color: #3d2f1f; + } + + p { + margin: 0.5rem 0; + + &:first-child { + margin-top: 0; + } + + &:last-child { + margin-bottom: 0; + } + } + + strong, b { + color: #4a0404; + font-weight: 700; + } + + em, i { + color: #3d2f1f; + font-style: italic; + } + } + + .chat-icon { + border: 2px solid rgba(74, 4, 4, 0.3); + border-radius: 4px; + padding: 2px; + margin: 0.25rem; + float: left; + width: 32px; + height: 32px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); + } +} + +.chat-message.whisper { + background: linear-gradient(135deg, rgba(84, 84, 105, 0.25) 0%, rgba(64, 64, 85, 0.2) 100%); + border: 2px solid #545469; + + .message-header { + background: linear-gradient(135deg, rgba(84, 84, 105, 0.3) 0%, rgba(64, 64, 85, 0.25) 100%); + + .whisper-to { + color: #545469; + font-weight: 600; + } + } +} + +.chat-message-header { + background: linear-gradient(135deg, rgba(230, 220, 200, 0.9) 0%, rgba(210, 200, 180, 0.85) 100%); + font-size: 1.1rem; + height: 48px; + text-align: center; + vertical-align: middle; + display: flex; + align-items: center; + justify-content: center; + font-family: "Vinque", serif; + color: #4a0404; + border: 1px solid rgba(74, 4, 4, 0.2); + border-radius: 4px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15); + font-weight: 700; +} + +.chat-actor-name { + padding: 4px; + font-family: "Vinque", serif; + color: #4a0404; + font-weight: 600; +} + +.actor-icon { + float: left; + width: 48px; + height: 48px; + padding: 2px 6px 2px 2px; +} + +#sidebar-tabs { + flex: 0 0 32px; + box-sizing: border-box; + margin: 0 0 5px; + border-bottom: 1px solid rgba(0,0,0,0); + box-shadow: inset 0 0 2rem rgba(0,0,0,0.5); +} + +#sidebar-tabs > .item.active { + border: 1px solid rgba(114,98,72,1); + background: rgba(30, 25, 20, 0.75); + box-shadow: 0 0 6px inset rgba(114,98,72,1); +} + +#sidebar #sidebar-tabs i{ + width: 23px; + height: 23px; + display: inline-block; + background-position:center; + background-size:cover; + text-shadow: 1px 1px 0 rgba(0,0,0,0.75); + +} + +/*--------------------------------------------------------------------------*/ +/* Control, Tool, hotbar & navigation */ + +#controls .scene-control, #controls .control-tool { + box-shadow: 0 0 3px #000; + margin: 0 0 8px; + border-radius: 0; + background: rgba(30, 25, 20, 1); + background-origin: padding-box; + border-image-width: 4px; + border-image-outset: 0px; +} + +#controls .scene-control.active, #controls .control-tool.active, #controls .scene-control:hover, #controls .control-tool:hover { + background: rgba(72, 46, 28, 1); + background-origin: padding-box; + border-image-width: 4px; + border-image-outset: 0px; + box-shadow: 0 0 3px #ff6400; +} + +#hotbar #action-bar #macro-list { + border: 1px solid rgba(72, 46, 28, 1); + box-shadow: 2px 2px 5px #000000; +} + +#hotbar #action-bar .macro { + border-image: url(img/ui/bg_control.jpg) 21 repeat; + border-image-slice: 6 6 6 6 fill; + border-image-width: 6px 6px 6px 6px; + border-image-outset: 0px 0px 0px 0px; + border-radius: 0px; +} + +#hotbar .bar-controls { + background: rgba(30, 25, 20, 1); + border: 1px solid rgba(72, 46, 28, 1); +} + +#players { + border-image-width: 4px; + border-image-outset: 0px; + background: rgba(30, 25, 20, 1); +} + +#navigation #scene-list .scene.nav-item.active { + background: rgba(72, 46, 28, 1); +} + +#navigation #scene-list .scene.nav-item { + background: rgba(30, 25, 20, 1); + background-origin: padding-box; + border-image-width: 4px; + border-image-outset: 0px; +} + +#navigation #scene-list .scene.view, #navigation #scene-list .scene.context { + background: rgba(72, 46, 28, 1); + background-origin: padding-box; + border-image-width: 4px; + border-image-outset: 0px; + box-shadow: 0 0 3px #ff6400; +} + +#navigation #nav-toggle { + background: rgba(30, 25, 20, 1); + background-origin: padding-box; + border-image-width: 4px; + border-image-outset: 0px; +} + +/* Tooltip container */ +.tooltip { + position: relative; + display: inline-block; + border-bottom: 1px dotted black; /* If you want dots under the hoverable text */ +} + +/* Tooltip text */ +.tooltip .tooltiptext { + text-align: center; + + /* Position the tooltip text */ + top: 20px; + position: absolute; + z-index: 1; + + /* Fade in tooltip */ + visibility: hidden; + opacity: 0; + transition: opacity 0.3s; +} + +.tooltip .ttt-fatigue{ + width: 360px; + + background: rgba(30, 25, 20, 0.9); + border-image: url(img/ui/bg_control.jpg) 21 repeat; + border-image-slice: 6 6 6 6 fill; + border-image-width: 6px 6px 6px 6px; + border-image-outset: 0px 0px 0px 0px; + border-radius: 0px; + + font-size: 0.8rem; + padding: 3px 0; +} + +.tooltip .ttt-ajustements { + width: 150px; + background: rgba(220,220,210,0.95); + border-radius: 6px; + font-size: 0.9rem; + padding: 3px 0; +} + +.tooltip-nobottom { + border-bottom: unset; /* If you want dots under the hoverable text */ +} +.tooltip .ttt-xp { + width: 250px; + background: rgba(220,220,210,0.95); + border-radius: 6px; + font-size: 0.9rem; + padding: 3px 0; +} + +/* Show the tooltip text when you mouse over the tooltip container */ +.tooltip:hover .tooltiptext { + visibility: visible; + opacity: 1; +} + +.chat-card-button { + box-shadow: inset 0px 1px 0px 0px #a6827e; + background: linear-gradient(to bottom, #21374afc 5%, #152833ab 100%); + background-color: #7d5d3b00; + border-radius: 3px; + border: 2px ridge #846109; + display: inline-block; + cursor: pointer; + color: #ffffff; + font-family: CaslonPro; + font-size: 14px; + padding: 4px 12px 0px 12px; + text-decoration: none; + text-shadow: 0px 1px 0px #4d3534; + position: relative; + margin:5px; +} + +.plus-moins-button { + box-shadow: inset 0px 1px 0px 0px #a6827e; + background: linear-gradient(to bottom, #21374afc 5%, #152833ab 100%); + background-color: #7d5d3b00; + border-radius: 3px; + border: 2px ridge #846109; + display: inline-block; + cursor: pointer; + color: #ffffff; + padding: 2px 6px 0px 6px; + text-decoration: none; + text-shadow: 0px 1px 0px #4d3534; + position: relative; + margin:3px; +} + +.plus-moins-button:hover, +.chat-card-button:hover { + background: linear-gradient(to bottom, #800000 5%, #3e0101 100%); + background-color: red; +} + +.plus-moins-button:active, +.chat-card-button:active { + position:relative; + top:1px; +} + +.plus-moins { + font-size: 0.9rem; + font-weight: bold; +} + +/*************************************************************/ +#pause +{ + font-family: CaslonAntique; + font-size: 2rem; +} +#pause > h3 +{ + color: #CCC +} +#pause > img { + content: url(../images/ui/ygg_logo_3.png); + height: 132px; + width: 200px; + top: -10px; + left: calc(50% - 132px); +} + +#logo { + content : url(../images/ui/ygg_logo_3.png); + width: 80px; + height: 68px; +} + +/* ========================================== */ +/* Modern Item Sheets Styling */ +/* ========================================== */ + +.fvtt-yggdrasill.item { + + /* Properties Grid */ + .properties-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 1rem; + padding: 1rem; + margin-bottom: 1rem; + } + + .property-group { + display: flex; + flex-direction: column; + gap: 0.25rem; + } + + .property-label { + font-family: Vinque, serif; + font-size: 0.81rem; + font-weight: 700; + color: #4a0404; + text-transform: uppercase; + letter-spacing: 0.5px; + margin-bottom: 0.25rem; + } + + .property-input { + padding: 0.5rem; + border: 1px solid rgba(0, 0, 0, 0.3); + border-radius: 4px; + background: rgba(255, 255, 255, 0.8); + font-family: Vinque, serif; + font-size: 0.9rem; + color: #2c2c2c; + transition: all 0.2s ease; + + &:focus { + outline: none; + border-color: #4a0404; + background: rgba(255, 255, 255, 0.95); + box-shadow: 0 0 0 2px rgba(74, 4, 4, 0.1); + } + + &:hover { + border-color: rgba(74, 4, 4, 0.5); + } + } + + select.property-input { + cursor: pointer; + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%234a0404' d='M6 9L1 4h10z'/%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: right 0.5rem center; + padding-right: 2rem; + } + + /* Description Section */ + .description-section { + padding: 0 1rem 1rem; + } + + .section-title { + font-family: Vinque, serif; + font-size: 1.1rem; + font-weight: 700; + color: #4a0404; + text-transform: uppercase; + letter-spacing: 1px; + margin-bottom: 0.75rem; + padding-bottom: 0.5rem; + border-bottom: 2px solid rgba(74, 4, 4, 0.3); + } + + .description-content { + background: rgba(255, 255, 255, 0.6); + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 4px; + padding: 0.75rem; + min-height: 200px; + + .ProseMirror { + min-height: 150px; + padding: 0.5rem; + } + } + + /* Rune Specific Styling */ + &.rune-sheet { + .properties-grid { + background: linear-gradient(135deg, rgba(74, 4, 4, 0.05) 0%, rgba(74, 4, 4, 0.02) 100%); + border-radius: 6px; + border: 1px solid rgba(74, 4, 4, 0.15); + } + + .property-group { + position: relative; + + &::before { + content: ''; + position: absolute; + left: -0.5rem; + top: 0; + bottom: 0; + width: 3px; + background: linear-gradient(to bottom, transparent, #4a0404, transparent); + opacity: 0.3; + } + } + } +} + + /* Decorative Separator */ + .header-separator { + height: 3px; + background: linear-gradient(to right, + transparent 0%, + rgba(74, 4, 4, 0.2) 10%, + rgba(74, 4, 4, 0.6) 30%, + #4a0404 50%, + rgba(74, 4, 4, 0.6) 70%, + rgba(74, 4, 4, 0.2) 90%, + transparent 100% + ); + position: relative; + margin: 0; + + &::before, + &::after { + content: ''; + position: absolute; + top: 50%; + transform: translateY(-50%); + width: 8px; + height: 8px; + background: #4a0404; + border-radius: 50%; + box-shadow: 0 0 4px rgba(74, 4, 4, 0.5); + } + + &::before { + left: 20%; + } + + &::after { + right: 20%; + } + } + + /* Remove padding/margin from item window borders */ + &.item .window-content { + margin: 0; + padding: 0; + } + + &.item section.sheet-body { + padding: 0; + margin: 0; + } + + &.item .sheet-header { + margin-bottom: 0; + } + + &.item .tab { + padding: 0; + margin: 0; + } + + /* Remove padding/margin from actor window borders */ + &.actor .window-content { + margin: 0; + padding: 0; + } + + &.actor section.sheet-body { + padding: 0; + margin: 0; + } + + &.actor .sheet-header { + margin-bottom: 0; + } + + /* Add scrollbar to sheet body in items */ + &.item .sheet-body { + max-height: calc(100vh - 300px); + overflow-y: scroll !important; + scrollbar-width: thin; /* Firefox */ + scrollbar-color: rgba(74, 4, 4, 0.5) rgba(0, 0, 0, 0.1); /* Firefox */ + + /* WebKit (Chrome, Safari) */ + &::-webkit-scrollbar { + width: 10px; + } + + &::-webkit-scrollbar-track { + background: rgba(0, 0, 0, 0.1); + border-radius: 5px; + } + + &::-webkit-scrollbar-thumb { + background: rgba(74, 4, 4, 0.5); + border-radius: 5px; + + &:hover { + background: rgba(74, 4, 4, 0.7); + } + } + } + + /* Checkbox group styling */ + .checkbox-group { + display: flex; + align-items: center; + + .property-label { + display: flex; + align-items: center; + gap: 0.5rem; + text-transform: none; + font-weight: 500; + + input[type="checkbox"] { + width: auto; + margin: 0; + } + } + } + + +/* Roll Dialog styling */ +.yggdrasill-roll-dialog .window-content { + background: rgba(245, 245, 240, 0.95) url("../images/ui/sheet_background.webp") left top; + padding: 1rem; + font-family: "Vinque", serif; +} + +.yggdrasill-roll-dialog label { + font-family: "Vinque", serif; + color: #4a0404; + font-weight: bold; +} + +.yggdrasill-roll-dialog input, +.yggdrasill-roll-dialog select { + font-family: "Vinque", serif; + background: rgba(255, 255, 255, 0.9); + border: 1px solid rgba(74, 4, 4, 0.3); + color: #000; + font-size: 0.9rem; + font-weight: 500; +} + +/* Modern Roll Dialog Styling */ +.ygg-roll-dialog { + font-family: "Vinque", serif; + + /* Header */ + .roll-header { + display: flex; + align-items: center; + gap: 1rem; + padding: 1rem; + background: linear-gradient(135deg, rgba(74, 4, 4, 0.9), rgba(74, 4, 4, 0.7)); + border-bottom: 2px solid #4a0404; + margin: -1rem -1rem 1rem -1rem; + + .actor-portrait { + width: 64px; + height: 64px; + border-radius: 50%; + border: 3px solid rgba(255, 255, 255, 0.3); + object-fit: cover; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); + } + + .roll-info { + flex: 1; + + .actor-name { + margin: 0 0 0.25rem 0; + color: #fff; + font-size: 1.35rem; + font-family: "Vinque", serif; + text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5); + } + + .roll-subject { + display: flex; + align-items: center; + gap: 0.5rem; + color: rgba(255, 255, 255, 0.9); + font-size: 0.99rem; + font-family: "Vinque", serif; + + i { + opacity: 0.7; + } + + .subject-name { + font-weight: bold; + } + + .specialisation { + font-style: italic; + opacity: 0.8; + font-size: 0.855rem; + font-family: "Vinque", serif; + } + } + } + } + + /* Main Body */ + .roll-body { + display: grid; + grid-template-columns: 1fr 300px; + gap: 1rem; + + @media (max-width: 800px) { + grid-template-columns: 1fr; + } + } + + /* Stats Column */ + .roll-stats { + display: flex; + flex-direction: column; + gap: 0.75rem; + } + + /* Stat Card */ + .stat-card { + background: rgba(255, 255, 255, 0.6); + border: 1px solid rgba(74, 4, 4, 0.2); + border-radius: 6px; + padding: 0.75rem; + transition: all 0.2s ease; + + &:hover { + background: rgba(255, 255, 255, 0.8); + border-color: rgba(74, 4, 4, 0.4); + } + + label { + display: block; + color: #4a0404; + font-weight: bold; + font-size: 0.765rem; + font-family: "Vinque", serif; + margin-bottom: 0.5rem; + text-transform: uppercase; + letter-spacing: 0.5px; + } + + .stat-value { + color: #000; + font-size: 0.9rem; + font-family: "Vinque", serif; + font-weight: 500; + + &.large { + font-size: 1.62rem; + font-weight: bold; + text-align: center; + } + + &.danger { + color: #8b0000; + font-weight: bold; + } + + strong { + color: #4a0404; + font-size: 0.99em; + } + } + + select { + width: 100%; + padding: 0.5rem; + border: 1px solid rgba(74, 4, 4, 0.3); + border-radius: 4px; + background: rgba(255, 255, 255, 0.95); + font-family: "Vinque", serif; + font-size: 0.9rem; + color: #000; + font-weight: 500; + + &:focus { + outline: none; + border-color: #4a0404; + box-shadow: 0 0 0 2px rgba(74, 4, 4, 0.1); + } + } + + &.compact { + padding: 0.5rem; + + label { + font-size: 0.675rem; + margin-bottom: 0.25rem; + } + + .stat-value { + font-size: 0.81rem; + } + } + + &.highlight { + background: rgba(255, 235, 205, 0.6); + border-color: rgba(218, 165, 32, 0.5); + } + + &.success { + background: rgba(144, 238, 144, 0.3); + border-color: rgba(34, 139, 34, 0.5); + border-width: 2px; + } + } + + /* Stat Grid */ + .stat-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); + gap: 0.75rem; + + &.three-col { + grid-template-columns: repeat(3, 1fr); + } + } + + /* Modifiers Column */ + .roll-modifiers { + display: flex; + flex-direction: column; + gap: 1rem; + } + + /* Modifier Card */ + .modifier-card, + .status-card { + background: rgba(245, 245, 240, 0.8); + border: 2px solid rgba(74, 4, 4, 0.3); + border-radius: 8px; + padding: 0.6rem; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); + + h3 { + margin: 0 0 0.5rem 0; + color: #4a0404; + font-size: 0.9rem; + font-family: "Vinque", serif; + font-weight: bold; + display: flex; + align-items: center; + gap: 0.4rem; + border-bottom: 2px solid rgba(74, 4, 4, 0.2); + padding-bottom: 0.3rem; + + i { + opacity: 0.7; + font-size: 0.85rem; + } + } + + .stat-card { + margin-bottom: 0.5rem; + padding: 0.4rem; + + label { + font-size: 0.72rem; + margin-bottom: 0.2rem; + } + + &:last-child { + margin-bottom: 0; + } + } + } + + /* Status List */ + .status-list { + display: flex; + flex-direction: column; + gap: 0.5rem; + } + + .status-item { + display: grid; + grid-template-columns: auto 2rem 1fr auto; + align-items: center; + gap: 0.5rem; + padding: 0.5rem; + background: rgba(255, 255, 255, 0.5); + border: 1px solid rgba(0, 0, 0, 0.1); + border-radius: 4px; + cursor: not-allowed; + + input[type="checkbox"] { + margin: 0; + cursor: not-allowed; + } + + .status-icon { + font-size: 1.08rem; + text-align: center; + } + + .status-text { + color: #000; + font-weight: 500; + font-family: "Vinque", serif; + font-size: 0.9rem; + } + + .status-effect { + color: #8b0000; + font-weight: bold; + font-size: 0.855rem; + font-family: "Vinque", serif; + background: rgba(255, 255, 255, 0.8); + padding: 0.15rem 0.4rem; + border-radius: 3px; + border: 1px solid rgba(139, 0, 0, 0.3); + } + + &.epuise input:checked ~ .status-icon, + &.blesse input:checked ~ .status-icon, + &.meurtri input:checked ~ .status-icon { + filter: grayscale(0); + } + + input:checked { + & ~ .status-text { + color: #8b0000; + } + } + } +} + +@import "yggdrasill-chat-viking.less"; + +/* ============================================ */ +/* YGGDRASILL WELCOME MESSAGE */ +/* ============================================ */ + +.yggdrasill-welcome-message { + background: linear-gradient(135deg, rgba(61, 47, 31, 0.15) 0%, rgba(42, 31, 21, 0.2) 100%); + border: 2px solid #4a0404; + border-radius: 8px; + padding: 0; + margin: 8px 0; + overflow: hidden; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(201, 168, 106, 0.1); + font-family: "Vinque", serif; + + .welcome-header { + background: linear-gradient(135deg, #4a0404 0%, #2a0202 100%); + padding: 10px; + text-align: center; + border-bottom: 2px solid #8b7355; + position: relative; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); + + .welcome-icon { + font-size: 1.8rem; + color: #c9a86a; + margin-bottom: 4px; + text-shadow: 0 0 10px rgba(201, 168, 106, 0.5); + animation: pulse 2s ease-in-out infinite; + } + + .welcome-title { + margin: 4px 0 2px 0; + font-size: 1.3rem; + font-weight: bold; + color: #e8dcc4; + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8); + font-family: "Vinque", serif; + letter-spacing: 0.5px; + } + + .welcome-subtitle { + font-size: 0.9rem; + color: #c9a86a; + font-style: italic; + margin-top: 2px; + line-height: 1.2; + font-family: "Vinque", serif; + } + } + + .welcome-content { + padding: 12px; + background: linear-gradient(180deg, rgba(230, 220, 200, 0.9) 0%, rgba(210, 200, 180, 0.85) 100%); + + .welcome-section { + display: flex; + gap: 10px; + margin-bottom: 10px; + padding: 8px; + background: rgba(255, 255, 255, 0.5); + border-radius: 4px; + border: 1px solid #8b7355; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); + + &:last-child { + margin-bottom: 0; + } + + .section-icon { + flex-shrink: 0; + width: 32px; + height: 32px; + display: flex; + align-items: center; + justify-content: center; + background: linear-gradient(135deg, #4a0404 0%, #2a0202 100%); + color: #c9a86a; + border-radius: 50%; + font-size: 1rem; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); + + i { + line-height: 1; + } + } + + .section-text { + flex: 1; + font-family: "Vinque", serif; + + strong { + display: block; + color: #3d2f1f; + margin-bottom: 4px; + font-size: 0.95rem; + font-weight: 700; + } + + p { + margin: 0; + line-height: 1.4; + color: #2a1f15; + font-size: 0.9rem; + } + + .welcome-link { + display: inline-block; + margin-top: 4px; + color: #4a0404; + font-weight: 600; + text-decoration: none; + transition: all 0.2s ease; + font-size: 0.9rem; + + i { + margin-right: 4px; + } + + &:hover { + color: #8b0606; + text-shadow: 0 0 4px rgba(74, 4, 4, 0.3); + } + } + } + } + } + + .welcome-footer { + background: linear-gradient(135deg, #2a0202 0%, #4a0404 100%); + padding: 8px; + text-align: center; + color: #c9a86a; + font-style: italic; + font-size: 0.95rem; + border-top: 1px solid #8b7355; + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.3); + font-family: "Vinque", serif; + + i { + margin: 0 8px; + opacity: 0.7; + font-size: 0.85rem; + } + + span { + vertical-align: middle; + } + } +} + +@keyframes pulse { + 0%, 100% { + transform: scale(1); + opacity: 1; + } + 50% { + transform: scale(1.05); + opacity: 0.9; + } +} diff --git a/less/yggdrasill.less b/less/yggdrasill.less new file mode 100644 index 0000000..9c15b67 --- /dev/null +++ b/less/yggdrasill.less @@ -0,0 +1,4 @@ +// Main LESS file for Yggdrasill system +// Importing all component styles + +@import "yggdrasill-main"; diff --git a/modules/applications/sheets/_module.mjs b/modules/applications/sheets/_module.mjs new file mode 100644 index 0000000..1f4d237 --- /dev/null +++ b/modules/applications/sheets/_module.mjs @@ -0,0 +1,27 @@ +/** + * Index des applications AppV2 pour Yggdrasill + * Ce fichier centralise tous les exports des applications + */ + +// Applications de feuilles d'acteurs +export { default as YggdrasillPersonnageSheet } from './yggdrasill-personnage-sheet.mjs'; +export { default as YggdrasillFigurantSheet } from './yggdrasill-figurant-sheet.mjs'; + +// Applications de feuilles d'items +export { default as YggdrasillCompetenceSheet } from './yggdrasill-competence-sheet.mjs'; +export { default as YggdrasillDonSheet } from './yggdrasill-don-sheet.mjs'; +export { default as YggdrasillFaiblesseSheet } from './yggdrasill-faiblesse-sheet.mjs'; +export { default as YggdrasillBlessureSheet } from './yggdrasill-blessure-sheet.mjs'; +export { default as YggdrasillMaladieSheet } from './yggdrasill-maladie-sheet.mjs'; +export { default as YggdrasillPoisonSheet } from './yggdrasill-poison-sheet.mjs'; +export { default as YggdrasillProuesseSheet } from './yggdrasill-prouesse-sheet.mjs'; +export { default as YggdrasillSortsejdrSheet } from './yggdrasill-sortsejdr-sheet.mjs'; +export { default as YggdrasillSortgaldrSheet } from './yggdrasill-sortgaldr-sheet.mjs'; +export { default as YggdrasillRuneSheet } from './yggdrasill-rune-sheet.mjs'; +export { default as YggdrasillArmeccSheet } from './yggdrasill-armecc-sheet.mjs'; +export { default as YggdrasillArmedistSheet } from './yggdrasill-armedist-sheet.mjs'; +export { default as YggdrasillArmureSheet } from './yggdrasill-armure-sheet.mjs'; +export { default as YggdrasillBouclierSheet } from './yggdrasill-bouclier-sheet.mjs'; +export { default as YggdrasillEquipementSheet } from './yggdrasill-equipement-sheet.mjs'; +export { default as YggdrasillMonnaieSheet } from './yggdrasill-monnaie-sheet.mjs'; +export { default as YggdrasillEffetmagiqueSheet } from './yggdrasill-effetmagique-sheet.mjs'; diff --git a/modules/applications/sheets/base-actor-sheet.mjs b/modules/applications/sheets/base-actor-sheet.mjs new file mode 100644 index 0000000..7fa590a --- /dev/null +++ b/modules/applications/sheets/base-actor-sheet.mjs @@ -0,0 +1,449 @@ +const { HandlebarsApplicationMixin } = foundry.applications.api + +import { YggdrasillUtility } from "../../yggdrasill-utility.js" + +export default class YggdrasillActorSheet extends HandlebarsApplicationMixin(foundry.applications.sheets.ActorSheetV2) { + /** + * Different sheet modes. + * @enum {number} + */ + static SHEET_MODES = { EDIT: 0, PLAY: 1 } + + constructor(options = {}) { + super(options) + this.#dragDrop = this.#createDragDropHandlers() + this._sheetMode = this.constructor.SHEET_MODES.PLAY + } + + #dragDrop + + /** @override */ + static DEFAULT_OPTIONS = { + classes: ["fvtt-yggdrasill", "sheet", "actor"], + position: { + width: 750, + height: 720, + }, + form: { + submitOnChange: true, + closeOnSubmit: false, + }, + window: { + resizable: true, + }, + tabs: [ + { + navSelector: 'nav[data-group="primary"]', + contentSelector: "section.sheet-body", + initial: "principal", + }, + ], + dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }], + actions: { + editImage: YggdrasillActorSheet.#onEditImage, + toggleSheet: YggdrasillActorSheet.#onToggleSheet, + editItem: YggdrasillActorSheet.#onEditItem, + deleteItem: YggdrasillActorSheet.#onDeleteItem, + createItem: YggdrasillActorSheet.#onCreateItem, + equipItem: YggdrasillActorSheet.#onEquipItem, + rollCarac: YggdrasillActorSheet.#onRollCarac, + rollCompetence: YggdrasillActorSheet.#onRollCompetence, + rollArme: YggdrasillActorSheet.#onRollArme, + rollSort: YggdrasillActorSheet.#onRollSort, + rollProuesse: YggdrasillActorSheet.#onRollProuesse, + rollDamage: YggdrasillActorSheet.#onRollDamage, + lockUnlock: YggdrasillActorSheet.#onLockUnlock, + incrementPV: YggdrasillActorSheet.#onIncrementPV, + decrementPV: YggdrasillActorSheet.#onDecrementPV, + updateCompetence: YggdrasillActorSheet.#onUpdateCompetence, + }, + } + + /** + * Is the sheet currently in 'Play' mode? + * @type {boolean} + */ + get isPlayMode() { + if (this._sheetMode === undefined) this._sheetMode = this.constructor.SHEET_MODES.PLAY + return this._sheetMode === this.constructor.SHEET_MODES.PLAY + } + + /** + * Is the sheet currently in 'Edit' mode? + * @type {boolean} + */ + get isEditMode() { + if (this._sheetMode === undefined) this._sheetMode = this.constructor.SHEET_MODES.PLAY + return this._sheetMode === this.constructor.SHEET_MODES.EDIT + } + + /** + * Tab groups state + * @type {object} + */ + tabGroups = { + primary: "principal", + } + + /** @override */ + async _prepareContext() { + const context = { + fields: this.document.schema.fields, + systemFields: this.document.system.schema.fields, + actor: this.document, + system: this.document.system, + source: this.document.toObject(), + isEditMode: this.isEditMode, + isPlayMode: this.isPlayMode, + isEditable: this.isEditable, + isGM: game.user.isGM, + config: game.system.yggdrasill.config, + editScore: this.isEditMode, + } + return context + } + + /** @override */ + _onRender(context, options) { + super._onRender(context, options) + + // Activate tab navigation manually + const nav = this.element.querySelector('nav.tabs[data-group], nav.sheet-tabs[data-group]') + if (nav) { + const group = nav.dataset.group + // Activate the current tab + const activeTab = this.tabGroups[group] || "principal" + nav.querySelectorAll('[data-tab]').forEach(link => { + const tab = link.dataset.tab + link.classList.toggle('active', tab === activeTab) + link.addEventListener('click', (event) => { + event.preventDefault() + this.tabGroups[group] = tab + this.render() + }) + }) + + // Show/hide tab content + this.element.querySelectorAll('[data-group="' + group + '"][data-tab]').forEach(content => { + content.classList.toggle('active', content.dataset.tab === activeTab) + }) + } + + // Add change listener for competence niveau selects + this.element.querySelectorAll('select.competence-niveau').forEach(select => { + select.addEventListener('change', async (event) => { + const itemId = event.target.dataset.itemId + const item = this.document.items.get(itemId) + if (item) { + const newNiveau = parseInt(event.target.value) + await item.update({ "system.niveau": newNiveau }) + } + }) + }) + } + + /** + * Creates drag-and-drop handlers for this application + * @returns {DragDrop[]} An array of DragDrop handlers + * @private + */ + #createDragDropHandlers() { + return [] + } + + /** + * Handle changing a Document's image + * @this {YggdrasillActorSheet} + * @param {PointerEvent} event - The triggering event + * @param {HTMLElement} target - The button element + */ + static async #onEditImage(event, target) { + const attr = target.dataset.edit + const current = foundry.utils.getProperty(this.document, attr) + const fp = new FilePicker({ + current, + type: "image", + callback: (path) => { + this.document.update({ [attr]: path }) + }, + }) + return fp.browse() + } + + /** + * Toggle sheet mode between Edit and Play + * @this {YggdrasillActorSheet} + * @param {PointerEvent} event - The triggering event + * @param {HTMLElement} target - The button element + */ + static #onToggleSheet(event, target) { + this._sheetMode = this.isEditMode + ? this.constructor.SHEET_MODES.PLAY + : this.constructor.SHEET_MODES.EDIT + this.render() + } + + /** + * Handle item editing + * @this {YggdrasillActorSheet} + * @param {PointerEvent} event - The triggering event + * @param {HTMLElement} target - The button element + */ + static #onEditItem(event, target) { + const itemId = target.closest("[data-item-id]").dataset.itemId + const item = this.document.items.get(itemId) + if (item) item.sheet.render(true) + } + + /** + * Handle item deletion + * @this {YggdrasillActorSheet} + * @param {PointerEvent} event - The triggering event + * @param {HTMLElement} target - The button element + */ + static async #onDeleteItem(event, target) { + const itemId = target.closest("[data-item-id]").dataset.itemId + const item = this.document.items.get(itemId) + if (item) { + await item.delete() + } + } + + /** + * Handle item creation + * @this {YggdrasillActorSheet} + * @param {PointerEvent} event - The triggering event + * @param {HTMLElement} target - The button element + */ + static async #onCreateItem(event, target) { + const itemType = target.dataset.itemType + const itemData = { + name: `Nouveau ${itemType}`, + type: itemType, + } + await this.document.createEmbeddedDocuments("Item", [itemData]) + } + + /** + * Handle item equip toggle + * @this {YggdrasillActorSheet} + * @param {PointerEvent} event - The triggering event + * @param {HTMLElement} target - The button element + */ + static async #onEquipItem(event, target) { + const itemId = target.closest("[data-item-id]").dataset.itemId + const item = this.document.items.get(itemId) + if (item && item.system.equipe !== undefined) { + await item.update({ "system.equipe": !item.system.equipe }) + } + } + + /** + * Handle characteristic roll + * @this {YggdrasillActorSheet} + * @param {PointerEvent} event - The triggering event + * @param {HTMLElement} target - The button element + */ + static #onRollCarac(event, target) { + const caracCateg = target.dataset.caracCateg + const caracKey = target.dataset.caracKey + this.document.rollCarac(caracCateg, caracKey) + } + + /** + * Handle competence roll + * @this {YggdrasillActorSheet} + * @param {PointerEvent} event - The triggering event + * @param {HTMLElement} target - The button element + */ + static #onRollCompetence(event, target) { + const itemId = target.closest("[data-item-id]").dataset.itemId + this.document.rollCompetence(itemId) + } + + /** + * Handle weapon roll + * @this {YggdrasillActorSheet} + * @param {PointerEvent} event - The triggering event + * @param {HTMLElement} target - The button element + */ + static #onRollArme(event, target) { + const itemId = target.closest("[data-item-id]").dataset.itemId + this.document.rollArme(itemId) + } + + /** + * Handle lock/unlock toggle + * @this {YggdrasillActorSheet} + * @param {PointerEvent} event - The triggering event + * @param {HTMLElement} target - The button element + */ + static #onLockUnlock(event, target) { + this._sheetMode = this.isEditMode + ? this.constructor.SHEET_MODES.PLAY + : this.constructor.SHEET_MODES.EDIT + this.render() + } + + /** + * Handle incrementing PV + * @this {YggdrasillActorSheet} + * @param {PointerEvent} event - The triggering event + * @param {HTMLElement} target - The button element + */ + static async #onIncrementPV(event, target) { + const currentPV = this.document.system.caracsecondaire.pv.value || 0 + const maxPV = this.document.system.caracsecondaire.pv.max || 0 + const newPV = Math.min(currentPV + 1, maxPV) + await this.document.update({ "system.caracsecondaire.pv.value": newPV }) + } + + /** + * Handle decrementing PV + * @this {YggdrasillActorSheet} + * @param {PointerEvent} event - The triggering event + * @param {HTMLElement} target - The button element + */ + static async #onDecrementPV(event, target) { + const currentPV = this.document.system.caracsecondaire.pv.value || 0 + const newPV = Math.max(currentPV - 1, 0) + await this.document.update({ "system.caracsecondaire.pv.value": newPV }) + } + + /** + * Handle competence niveau update + * @this {YggdrasillActorSheet} + * @param {Event} event - The triggering event + * @param {HTMLElement} target - The select element + */ + static async #onUpdateCompetence(event, target) { + const itemId = target.dataset.itemId + const item = this.document.items.get(itemId) + if (!item) return + const newNiveau = parseInt(target.value) + await item.update({ "system.niveau": newNiveau }) + } + + /** + * Handle sort roll + * @this {YggdrasillActorSheet} + * @param {PointerEvent} event - The triggering event + * @param {HTMLElement} target - The button element + */ + static #onRollSort(event, target) { + const itemId = target.closest("[data-item-id]").dataset.itemId + const sortType = target.dataset.sortType || "sejdr" + this.document.rollSort(itemId, sortType) + } + + /** + * Handle prouesse roll + * @this {YggdrasillActorSheet} + * @param {PointerEvent} event - The triggering event + * @param {HTMLElement} target - The button element + */ + static #onRollProuesse(event, target) { + const itemId = target.closest("[data-item-id]").dataset.itemId + this.document.rollProuesse(itemId) + } + + /** + * Handle damage roll + * @this {YggdrasillActorSheet} + * @param {PointerEvent} event - The triggering event + * @param {HTMLElement} target - The button element + */ + static #onRollDamage(event, target) { + const itemId = target.closest("[data-item-id]").dataset.itemId + const weapon = this.document.items.get(itemId) + if (weapon) { + this.document.rollDamage(weapon, 'damage') + } + } + + /** + * Handle beginning of a drag operation + * @param {DragEvent} event - The originating drag event + * @protected + */ + _onDragStart(event) { + const li = event.currentTarget + const itemId = li.dataset.itemId + const item = this.document.items.get(itemId) + if (!item) return + + const dragData = item.toDragData() + event.dataTransfer.setData("text/plain", JSON.stringify(dragData)) + } + + /** + * Handle a drop event + * @param {DragEvent} event - The originating drop event + * @protected + */ + async _onDrop(event) { + const data = TextEditor.getDragEventData(event) + const actor = this.document + + // Handle different data types + switch (data.type) { + case "Item": + return this._onDropItem(event, data) + case "ActiveEffect": + return this._onDropActiveEffect(event, data) + } + } + + /** + * Handle dropping an Item on the sheet + * @param {DragEvent} event - The originating drop event + * @param {object} data - The dropped data + * @protected + */ + async _onDropItem(event, data) { + if (!this.isEditable) return false + const item = await Item.implementation.fromDropData(data) + const itemData = item.toObject() + + // Handle item from same actor + if (this.document.uuid === item.parent?.uuid) return this._onSortItem(event, itemData) + + // Create the item + return this._onDropItemCreate(itemData) + } + + /** + * Handle creating an owned item from drop data + * @param {object} itemData - The item data to create + * @protected + */ + async _onDropItemCreate(itemData) { + itemData = itemData instanceof Array ? itemData : [itemData] + return this.document.createEmbeddedDocuments("Item", itemData) + } + + /** + * Handle sorting items + * @param {DragEvent} event - The originating drop event + * @param {object} itemData - The item data being sorted + * @protected + */ + _onSortItem(event, itemData) { + // Implement sorting logic if needed + return Promise.resolve() + } + + /** + * Handle dropping an ActiveEffect on the sheet + * @param {DragEvent} event - The originating drop event + * @param {object} data - The dropped data + * @protected + */ + async _onDropActiveEffect(event, data) { + const effect = await ActiveEffect.implementation.fromDropData(data) + if (!this.isEditable || !effect) return false + + if (this.document.uuid === effect.parent?.uuid) return false + return ActiveEffect.create(effect.toObject(), { parent: this.document }) + } +} diff --git a/modules/applications/sheets/base-item-sheet.mjs b/modules/applications/sheets/base-item-sheet.mjs new file mode 100644 index 0000000..08ed346 --- /dev/null +++ b/modules/applications/sheets/base-item-sheet.mjs @@ -0,0 +1,178 @@ +const { HandlebarsApplicationMixin } = foundry.applications.api + +export default class YggdrasillItemSheet extends HandlebarsApplicationMixin(foundry.applications.sheets.ItemSheetV2) { + constructor(options = {}) { + super(options) + this.#dragDrop = this.#createDragDropHandlers() + } + + #dragDrop + + /** @override */ + static DEFAULT_OPTIONS = { + classes: ["fvtt-yggdrasill", "item"], + position: { + width: 620, + height: 600, + }, + form: { + submitOnChange: true, + }, + window: { + resizable: true, + }, + tabs: [ + { + navSelector: 'nav[data-group="primary"]', + contentSelector: "section.sheet-body", + initial: "description", + }, + ], + dragDrop: [{ dragSelector: "[data-drag]", dropSelector: null }], + actions: { + editImage: YggdrasillItemSheet.#onEditImage, + postItem: YggdrasillItemSheet.#onPostItem, + }, + } + + /** + * Tab groups state + * @type {object} + */ + tabGroups = { primary: "description" } + + /** @override */ + async _prepareContext() { + // Import config + const YGGDRASILL_CONFIG = game.system.yggdrasill?.config || game.system.config || {}; + + // Create options for niveau 0-5 + const optionsNiveaux4 = {}; + for (let i = 0; i <= 5; i++) { + optionsNiveaux4[`${i}`] = `${i}`; + } + + // Create options for base (0-20) + const optionsBase = {}; + for (let i = 0; i <= 20; i++) { + optionsBase[`${i}`] = `${i}`; + } + + const context = { + fields: this.document.schema.fields, + systemFields: this.document.system.schema.fields, + item: this.document, + system: this.document.system, + data: this.document.system, + source: this.document.toObject(), + enrichedDescription: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.description || "", { async: true }), + enrichedEffet: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.effet || "", { async: true }), + isEditMode: true, + isEditable: this.isEditable, + editable: this.isEditable, + isGM: game.user.isGM, + config: YGGDRASILL_CONFIG, + optionsBase: optionsBase, + optionsNiveaux4: optionsNiveaux4, + } + return context + } + + /** @override */ + _onRender(context, options) { + super._onRender(context, options) + + // Activate tab navigation manually + const nav = this.element.querySelector('nav.tabs[data-group]') + if (nav) { + const group = nav.dataset.group + // Activate the current tab + const activeTab = this.tabGroups[group] || "description" + nav.querySelectorAll('[data-tab]').forEach(link => { + const tab = link.dataset.tab + link.classList.toggle('active', tab === activeTab) + link.addEventListener('click', (event) => { + event.preventDefault() + this.tabGroups[group] = tab + this.render() + }) + }) + // Show/hide tab content + const body = this.element.querySelector('section.sheet-body') + if (body) { + body.querySelectorAll('[data-tab]').forEach(content => { + const tab = content.dataset.tab + content.style.display = tab === activeTab ? 'block' : 'none' + }) + } + } + } + + /** + * Creates drag-and-drop handlers for this application + * @returns {DragDrop[]} An array of DragDrop handlers + * @private + */ + #createDragDropHandlers() { + return [] + } + + /** + * Handle changing a Document's image + * @this {YggdrasillItemSheet} + * @param {PointerEvent} event - The triggering event + * @param {HTMLElement} target - The button element + */ + static async #onEditImage(event, target) { + const attr = target.dataset.edit || "img" + const current = foundry.utils.getProperty(this.document, attr) + const fp = new FilePicker({ + current, + type: "image", + callback: (path) => { + this.document.update({ [attr]: path }) + }, + }) + return fp.browse() + } + + /** + * Handle posting item to chat + * @this {YggdrasillItemSheet} + * @param {PointerEvent} event - The triggering event + * @param {HTMLElement} target - The button element + */ + static async #onPostItem(event, target) { + const item = this.document + const chatData = { + user: game.user.id, + speaker: ChatMessage.getSpeaker(), + content: await foundry.applications.handlebars.renderTemplate("systems/fvtt-yggdrasill/templates/chat-item-card.hbs", { + item: item, + system: item.system, + description: await TextEditor.enrichHTML(item.system.description || "", { async: true }) + }) + } + ChatMessage.create(chatData) + } + + /** + * Handle beginning of a drag operation + * @param {DragEvent} event - The originating drag event + * @protected + */ + _onDragStart(event) { + const dragData = this.document.toDragData() + event.dataTransfer.setData("text/plain", JSON.stringify(dragData)) + } + + /** + * Handle a drop event + * @param {DragEvent} event - The originating drop event + * @protected + */ + async _onDrop(event) { + // Items generally don't handle drops, but method exists for extensibility + return false + } +} diff --git a/modules/applications/sheets/create-sheets.sh b/modules/applications/sheets/create-sheets.sh new file mode 100755 index 0000000..9e49a9d --- /dev/null +++ b/modules/applications/sheets/create-sheets.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +# Liste des types d'items restants à créer +items=( + "poison:Poison" + "prouesse:Prouesse" + "sortsejdr:Sortsejdr" + "sortgaldr:Sortgaldr" + "rune:Rune" + "armecc:Armecc" + "armedist:Armedist" + "armure:Armure" + "bouclier:Bouclier" + "equipement:Equipement" + "monnaie:Monnaie" + "effetmagique:Effetmagique" +) + +for item in "${items[@]}"; do + type="${item%%:*}" + class="${item##*:}" + + cat > "yggdrasill-${type}-sheet.mjs" << EOF +import YggdrasillItemSheet from "./base-item-sheet.mjs" + +export default class Yggdrasill${class}Sheet extends YggdrasillItemSheet { + /** @override */ + static DEFAULT_OPTIONS = { + ...super.DEFAULT_OPTIONS, + classes: [...super.DEFAULT_OPTIONS.classes, "${type}"], + } + + /** @override */ + static PARTS = { + main: { + template: "systems/fvtt-yggdrasill/templates/item-${type}-sheet.hbs", + }, + } +} +EOF +done + +echo "Created all item sheets" +ls -1 yggdrasill-*-sheet.mjs | wc -l diff --git a/modules/applications/sheets/yggdrasill-armecc-sheet.mjs b/modules/applications/sheets/yggdrasill-armecc-sheet.mjs new file mode 100644 index 0000000..ca9d696 --- /dev/null +++ b/modules/applications/sheets/yggdrasill-armecc-sheet.mjs @@ -0,0 +1,16 @@ +import YggdrasillItemSheet from "./base-item-sheet.mjs" + +export default class YggdrasillArmeccSheet extends YggdrasillItemSheet { + /** @override */ + static DEFAULT_OPTIONS = { + ...super.DEFAULT_OPTIONS, + classes: [...super.DEFAULT_OPTIONS.classes, "armecc"], + } + + /** @override */ + static PARTS = { + main: { + template: "systems/fvtt-yggdrasill/templates/item-armecc-sheet.hbs", + }, + } +} diff --git a/modules/applications/sheets/yggdrasill-armedist-sheet.mjs b/modules/applications/sheets/yggdrasill-armedist-sheet.mjs new file mode 100644 index 0000000..52f6fa6 --- /dev/null +++ b/modules/applications/sheets/yggdrasill-armedist-sheet.mjs @@ -0,0 +1,16 @@ +import YggdrasillItemSheet from "./base-item-sheet.mjs" + +export default class YggdrasillArmedistSheet extends YggdrasillItemSheet { + /** @override */ + static DEFAULT_OPTIONS = { + ...super.DEFAULT_OPTIONS, + classes: [...super.DEFAULT_OPTIONS.classes, "armedist"], + } + + /** @override */ + static PARTS = { + main: { + template: "systems/fvtt-yggdrasill/templates/item-armedist-sheet.hbs", + }, + } +} diff --git a/modules/applications/sheets/yggdrasill-armure-sheet.mjs b/modules/applications/sheets/yggdrasill-armure-sheet.mjs new file mode 100644 index 0000000..451bb0a --- /dev/null +++ b/modules/applications/sheets/yggdrasill-armure-sheet.mjs @@ -0,0 +1,16 @@ +import YggdrasillItemSheet from "./base-item-sheet.mjs" + +export default class YggdrasillArmureSheet extends YggdrasillItemSheet { + /** @override */ + static DEFAULT_OPTIONS = { + ...super.DEFAULT_OPTIONS, + classes: [...super.DEFAULT_OPTIONS.classes, "armure"], + } + + /** @override */ + static PARTS = { + main: { + template: "systems/fvtt-yggdrasill/templates/item-armure-sheet.hbs", + }, + } +} diff --git a/modules/applications/sheets/yggdrasill-blessure-sheet.mjs b/modules/applications/sheets/yggdrasill-blessure-sheet.mjs new file mode 100644 index 0000000..aaa2f86 --- /dev/null +++ b/modules/applications/sheets/yggdrasill-blessure-sheet.mjs @@ -0,0 +1,16 @@ +import YggdrasillItemSheet from "./base-item-sheet.mjs" + +export default class YggdrasillBlessureSheet extends YggdrasillItemSheet { + /** @override */ + static DEFAULT_OPTIONS = { + ...super.DEFAULT_OPTIONS, + classes: [...super.DEFAULT_OPTIONS.classes, "blessure"], + } + + /** @override */ + static PARTS = { + main: { + template: "systems/fvtt-yggdrasill/templates/item-blessure-sheet.hbs", + }, + } +} diff --git a/modules/applications/sheets/yggdrasill-bouclier-sheet.mjs b/modules/applications/sheets/yggdrasill-bouclier-sheet.mjs new file mode 100644 index 0000000..7581f79 --- /dev/null +++ b/modules/applications/sheets/yggdrasill-bouclier-sheet.mjs @@ -0,0 +1,16 @@ +import YggdrasillItemSheet from "./base-item-sheet.mjs" + +export default class YggdrasillBouclierSheet extends YggdrasillItemSheet { + /** @override */ + static DEFAULT_OPTIONS = { + ...super.DEFAULT_OPTIONS, + classes: [...super.DEFAULT_OPTIONS.classes, "bouclier"], + } + + /** @override */ + static PARTS = { + main: { + template: "systems/fvtt-yggdrasill/templates/item-bouclier-sheet.hbs", + }, + } +} diff --git a/modules/applications/sheets/yggdrasill-competence-sheet.mjs b/modules/applications/sheets/yggdrasill-competence-sheet.mjs new file mode 100644 index 0000000..868c729 --- /dev/null +++ b/modules/applications/sheets/yggdrasill-competence-sheet.mjs @@ -0,0 +1,21 @@ +import YggdrasillItemSheet from "./base-item-sheet.mjs" + +export default class YggdrasillCompetenceSheet extends YggdrasillItemSheet { + /** @override */ + static DEFAULT_OPTIONS = { + ...super.DEFAULT_OPTIONS, + classes: [...super.DEFAULT_OPTIONS.classes, "competence"], + } + + /** @override */ + static PARTS = { + main: { + template: "systems/fvtt-yggdrasill/templates/item-competence-sheet.hbs", + }, + } + + /** @override */ + tabGroups = { + primary: "details", + } +} diff --git a/modules/applications/sheets/yggdrasill-don-sheet.mjs b/modules/applications/sheets/yggdrasill-don-sheet.mjs new file mode 100644 index 0000000..26cf4d2 --- /dev/null +++ b/modules/applications/sheets/yggdrasill-don-sheet.mjs @@ -0,0 +1,16 @@ +import YggdrasillItemSheet from "./base-item-sheet.mjs" + +export default class YggdrasillDonSheet extends YggdrasillItemSheet { + /** @override */ + static DEFAULT_OPTIONS = { + ...super.DEFAULT_OPTIONS, + classes: [...super.DEFAULT_OPTIONS.classes, "don"], + } + + /** @override */ + static PARTS = { + main: { + template: "systems/fvtt-yggdrasill/templates/item-don-sheet.hbs", + }, + } +} diff --git a/modules/applications/sheets/yggdrasill-effetmagique-sheet.mjs b/modules/applications/sheets/yggdrasill-effetmagique-sheet.mjs new file mode 100644 index 0000000..04d7830 --- /dev/null +++ b/modules/applications/sheets/yggdrasill-effetmagique-sheet.mjs @@ -0,0 +1,16 @@ +import YggdrasillItemSheet from "./base-item-sheet.mjs" + +export default class YggdrasillEffetmagiqueSheet extends YggdrasillItemSheet { + /** @override */ + static DEFAULT_OPTIONS = { + ...super.DEFAULT_OPTIONS, + classes: [...super.DEFAULT_OPTIONS.classes, "effetmagique"], + } + + /** @override */ + static PARTS = { + main: { + template: "systems/fvtt-yggdrasill/templates/item-effetmagique-sheet.hbs", + }, + } +} diff --git a/modules/applications/sheets/yggdrasill-equipement-sheet.mjs b/modules/applications/sheets/yggdrasill-equipement-sheet.mjs new file mode 100644 index 0000000..1c71f84 --- /dev/null +++ b/modules/applications/sheets/yggdrasill-equipement-sheet.mjs @@ -0,0 +1,16 @@ +import YggdrasillItemSheet from "./base-item-sheet.mjs" + +export default class YggdrasillEquipementSheet extends YggdrasillItemSheet { + /** @override */ + static DEFAULT_OPTIONS = { + ...super.DEFAULT_OPTIONS, + classes: [...super.DEFAULT_OPTIONS.classes, "equipement"], + } + + /** @override */ + static PARTS = { + main: { + template: "systems/fvtt-yggdrasill/templates/item-equipement-sheet.hbs", + }, + } +} diff --git a/modules/applications/sheets/yggdrasill-faiblesse-sheet.mjs b/modules/applications/sheets/yggdrasill-faiblesse-sheet.mjs new file mode 100644 index 0000000..a7e7501 --- /dev/null +++ b/modules/applications/sheets/yggdrasill-faiblesse-sheet.mjs @@ -0,0 +1,16 @@ +import YggdrasillItemSheet from "./base-item-sheet.mjs" + +export default class YggdrasillFaiblesseSheet extends YggdrasillItemSheet { + /** @override */ + static DEFAULT_OPTIONS = { + ...super.DEFAULT_OPTIONS, + classes: [...super.DEFAULT_OPTIONS.classes, "faiblesse"], + } + + /** @override */ + static PARTS = { + main: { + template: "systems/fvtt-yggdrasill/templates/item-faiblesse-sheet.hbs", + }, + } +} diff --git a/modules/applications/sheets/yggdrasill-figurant-sheet.mjs b/modules/applications/sheets/yggdrasill-figurant-sheet.mjs new file mode 100644 index 0000000..ceb82f4 --- /dev/null +++ b/modules/applications/sheets/yggdrasill-figurant-sheet.mjs @@ -0,0 +1,40 @@ +import YggdrasillActorSheet from "./base-actor-sheet.mjs" + +export default class YggdrasillFigurantSheet extends YggdrasillActorSheet { + /** @override */ + static DEFAULT_OPTIONS = { + ...super.DEFAULT_OPTIONS, + classes: [...super.DEFAULT_OPTIONS.classes, "figurant"], + window: { + ...super.DEFAULT_OPTIONS.window, + title: "Feuille de Figurant", + }, + } + + /** @override */ + static PARTS = { + sheet: { + template: "systems/fvtt-yggdrasill/templates/actor-figurant-sheet.hbs", + }, + } + + /** @override */ + tabGroups = { + primary: "principal", + } + + /** @override */ + async _prepareContext() { + const context = await super._prepareContext() + const actor = this.document + + // System fields for formInput helpers + context.systemFields = actor.system.schema.fields + + // Enrich HTML fields + context.enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML(actor.system.biodata?.description || "", { async: true }) + context.enrichedNotes = await foundry.applications.ux.TextEditor.implementation.enrichHTML(actor.system.biodata?.notes || "", { async: true }) + + return context + } +} diff --git a/modules/applications/sheets/yggdrasill-maladie-sheet.mjs b/modules/applications/sheets/yggdrasill-maladie-sheet.mjs new file mode 100644 index 0000000..74f1daf --- /dev/null +++ b/modules/applications/sheets/yggdrasill-maladie-sheet.mjs @@ -0,0 +1,16 @@ +import YggdrasillItemSheet from "./base-item-sheet.mjs" + +export default class YggdrasillMaladieSheet extends YggdrasillItemSheet { + /** @override */ + static DEFAULT_OPTIONS = { + ...super.DEFAULT_OPTIONS, + classes: [...super.DEFAULT_OPTIONS.classes, "maladie"], + } + + /** @override */ + static PARTS = { + main: { + template: "systems/fvtt-yggdrasill/templates/item-maladie-sheet.hbs", + }, + } +} diff --git a/modules/applications/sheets/yggdrasill-monnaie-sheet.mjs b/modules/applications/sheets/yggdrasill-monnaie-sheet.mjs new file mode 100644 index 0000000..1f2905a --- /dev/null +++ b/modules/applications/sheets/yggdrasill-monnaie-sheet.mjs @@ -0,0 +1,16 @@ +import YggdrasillItemSheet from "./base-item-sheet.mjs" + +export default class YggdrasillMonnaieSheet extends YggdrasillItemSheet { + /** @override */ + static DEFAULT_OPTIONS = { + ...super.DEFAULT_OPTIONS, + classes: [...super.DEFAULT_OPTIONS.classes, "monnaie"], + } + + /** @override */ + static PARTS = { + main: { + template: "systems/fvtt-yggdrasill/templates/item-monnaie-sheet.hbs", + }, + } +} diff --git a/modules/applications/sheets/yggdrasill-personnage-sheet.mjs b/modules/applications/sheets/yggdrasill-personnage-sheet.mjs new file mode 100644 index 0000000..3ff371d --- /dev/null +++ b/modules/applications/sheets/yggdrasill-personnage-sheet.mjs @@ -0,0 +1,99 @@ +import YggdrasillActorSheet from "./base-actor-sheet.mjs" + +export default class YggdrasillPersonnageSheet extends YggdrasillActorSheet { + /** @override */ + static DEFAULT_OPTIONS = { + ...super.DEFAULT_OPTIONS, + classes: [...super.DEFAULT_OPTIONS.classes, "personnage"], + window: { + ...super.DEFAULT_OPTIONS.window, + title: "Feuille de Personnage", + }, + } + + /** @override */ + static PARTS = { + sheet: { + template: "systems/fvtt-yggdrasill/templates/actor-personnage-sheet-new.hbs", + }, + } + + /** @override */ + tabGroups = { + primary: "principal", + } + + /** @override */ + async _prepareContext() { + const context = await super._prepareContext() + const actor = this.document + + // Prepare items by type + context.competencesGenerales = actor.items.filter(i => i.type === 'competence' && i.system.categorie === 'generale') + context.competencesMartiales = actor.items.filter(i => i.type === 'competence' && i.system.categorie === 'martiale') + context.competencesMagiques = actor.items.filter(i => i.type === 'competence' && i.system.categorie === 'magique') + context.dons = actor.items.filter(i => i.type === 'don') + context.faiblesses = actor.items.filter(i => i.type === 'faiblesse') + context.blessures = actor.items.filter(i => i.type === 'blessure') + context.maladies = actor.items.filter(i => i.type === 'maladie') + context.poisons = actor.items.filter(i => i.type === 'poison') + context.prouesses = actor.items.filter(i => i.type === 'prouesse') + context.sortsSejdr = actor.items.filter(i => i.type === 'sortsejdr') + context.sortsGaldr = actor.items.filter(i => i.type === 'sortgaldr') + context.runes = actor.items.filter(i => i.type === 'rune') + context.armesCC = actor.items.filter(i => i.type === 'armecc') + context.armesDist = actor.items.filter(i => i.type === 'armedist') + context.armures = actor.items.filter(i => i.type === 'armure') + context.boucliers = actor.items.filter(i => i.type === 'bouclier') + context.equipements = actor.items.filter(i => i.type === 'equipement') + context.monnaies = actor.items.filter(i => i.type === 'monnaie') + context.effetsMagiques = actor.items.filter(i => i.type === 'effetmagique') + + // Prepare equipped items + context.armesEquipees = actor.items.filter(i => (i.type === 'armecc' || i.type === 'armedist') && i.system.equipe) + context.armureEquipee = actor.items.find(i => i.type === 'armure' && i.system.equipe) + context.bouclierEquipe = actor.items.find(i => i.type === 'bouclier' && i.system.equipe) + + // Calculate total protection from equipped armors + context.protectionTotal = context.armures + .filter(a => a.system.equipe) + .reduce((sum, a) => sum + (parseInt(a.system.protection) || 0), 0) + + // Calculate shield defense bonus from equipped shield + context.dpBouclier = context.boucliers + .filter(b => b.system.equipe) + .reduce((sum, b) => sum + (parseInt(b.system.defensebonus) || 0), 0) + + // Calculate total encumbrance from equipements + context.encTotal = context.equipements + .reduce((sum, e) => sum + ((parseInt(e.system.quantite) || 0) * (parseInt(e.system.enc) || 0)), 0) + + // Options for selects + context.optionsCarac = {} + for (let i = 0; i <= 10; i++) { + context.optionsCarac[i] = i.toString() + } + + context.optionsBase = {} + for (let i = 0; i <= 5; i++) { + context.optionsBase[i] = i.toString() + } + + // Options for bonus/malus (-10 to +10) + context.optionsDMDP = [] + for (let i = -10; i <= 10; i++) { + context.optionsDMDP.push({ value: i, text: i >= 0 ? `+${i}` : i.toString() }) + } + + // System fields for formInput helpers + context.systemFields = actor.system.schema.fields + + // Enrich HTML fields + context.enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML(actor.system.biodata?.description || "", { async: true }) + context.enrichedNotes = await foundry.applications.ux.TextEditor.implementation.enrichHTML(actor.system.biodata?.notes || "", { async: true }) + context.enrichedGMNotes = await foundry.applications.ux.TextEditor.implementation.enrichHTML(actor.system.biodata?.gmnotes || "", { async: true }) + context.enrichedTirageRunes = await foundry.applications.ux.TextEditor.implementation.enrichHTML(actor.system.biodata?.tiragerunes || "", { async: true }) + + return context + } +} diff --git a/modules/applications/sheets/yggdrasill-poison-sheet.mjs b/modules/applications/sheets/yggdrasill-poison-sheet.mjs new file mode 100644 index 0000000..c07907d --- /dev/null +++ b/modules/applications/sheets/yggdrasill-poison-sheet.mjs @@ -0,0 +1,16 @@ +import YggdrasillItemSheet from "./base-item-sheet.mjs" + +export default class YggdrasillPoisonSheet extends YggdrasillItemSheet { + /** @override */ + static DEFAULT_OPTIONS = { + ...super.DEFAULT_OPTIONS, + classes: [...super.DEFAULT_OPTIONS.classes, "poison"], + } + + /** @override */ + static PARTS = { + main: { + template: "systems/fvtt-yggdrasill/templates/item-poison-sheet.hbs", + }, + } +} diff --git a/modules/applications/sheets/yggdrasill-prouesse-sheet.mjs b/modules/applications/sheets/yggdrasill-prouesse-sheet.mjs new file mode 100644 index 0000000..83b5201 --- /dev/null +++ b/modules/applications/sheets/yggdrasill-prouesse-sheet.mjs @@ -0,0 +1,16 @@ +import YggdrasillItemSheet from "./base-item-sheet.mjs" + +export default class YggdrasillProuesseSheet extends YggdrasillItemSheet { + /** @override */ + static DEFAULT_OPTIONS = { + ...super.DEFAULT_OPTIONS, + classes: [...super.DEFAULT_OPTIONS.classes, "prouesse"], + } + + /** @override */ + static PARTS = { + main: { + template: "systems/fvtt-yggdrasill/templates/item-prouesse-sheet.hbs", + }, + } +} diff --git a/modules/applications/sheets/yggdrasill-rune-sheet.mjs b/modules/applications/sheets/yggdrasill-rune-sheet.mjs new file mode 100644 index 0000000..fec25d1 --- /dev/null +++ b/modules/applications/sheets/yggdrasill-rune-sheet.mjs @@ -0,0 +1,16 @@ +import YggdrasillItemSheet from "./base-item-sheet.mjs" + +export default class YggdrasillRuneSheet extends YggdrasillItemSheet { + /** @override */ + static DEFAULT_OPTIONS = { + ...super.DEFAULT_OPTIONS, + classes: [...super.DEFAULT_OPTIONS.classes, "rune"], + } + + /** @override */ + static PARTS = { + main: { + template: "systems/fvtt-yggdrasill/templates/item-rune-sheet.hbs", + }, + } +} diff --git a/modules/applications/sheets/yggdrasill-sortgaldr-sheet.mjs b/modules/applications/sheets/yggdrasill-sortgaldr-sheet.mjs new file mode 100644 index 0000000..3ea4dd1 --- /dev/null +++ b/modules/applications/sheets/yggdrasill-sortgaldr-sheet.mjs @@ -0,0 +1,16 @@ +import YggdrasillItemSheet from "./base-item-sheet.mjs" + +export default class YggdrasillSortgaldrSheet extends YggdrasillItemSheet { + /** @override */ + static DEFAULT_OPTIONS = { + ...super.DEFAULT_OPTIONS, + classes: [...super.DEFAULT_OPTIONS.classes, "sortgaldr"], + } + + /** @override */ + static PARTS = { + main: { + template: "systems/fvtt-yggdrasill/templates/item-sortgaldr-sheet.hbs", + }, + } +} diff --git a/modules/applications/sheets/yggdrasill-sortsejdr-sheet.mjs b/modules/applications/sheets/yggdrasill-sortsejdr-sheet.mjs new file mode 100644 index 0000000..06af9a2 --- /dev/null +++ b/modules/applications/sheets/yggdrasill-sortsejdr-sheet.mjs @@ -0,0 +1,16 @@ +import YggdrasillItemSheet from "./base-item-sheet.mjs" + +export default class YggdrasillSortsejdrSheet extends YggdrasillItemSheet { + /** @override */ + static DEFAULT_OPTIONS = { + ...super.DEFAULT_OPTIONS, + classes: [...super.DEFAULT_OPTIONS.classes, "sortsejdr"], + } + + /** @override */ + static PARTS = { + main: { + template: "systems/fvtt-yggdrasill/templates/item-sortsejdr-sheet.hbs", + }, + } +} diff --git a/modules/applications/yggdrasill-roll-dialog.mjs b/modules/applications/yggdrasill-roll-dialog.mjs new file mode 100644 index 0000000..03d3c64 --- /dev/null +++ b/modules/applications/yggdrasill-roll-dialog.mjs @@ -0,0 +1,334 @@ +import { YggdrasillUtility } from "../yggdrasill-utility.js" + +const dureeGaldrSD = { "1d5a": 3, "1d10t": 6, "1d10m": 9, "1d10h": 12, "1d5j": 15} +const ciblesGaldrSD = { "1": 3, "2_4": 6, "5_9": 9, "10_49": 12, "50plus": 15} +const zonesciblesGaldrSD = { "INS10cm3": 3, "INS50cm3": 6, "INS1m3": 9, "INS5m3": 12, "INS10m3": 15} + +/** + * Dialogue de jet de dé pour Yggdrasill - Version DialogV2 + */ +export class YggdrasillRollDialog { + + /** + * Create and display the roll dialog + * @param {YggdrasillActor} actor - The actor making the roll + * @param {Object} rollData - Data for the roll + * @returns {Promise} + */ + static async create(actor, rollData) { + // Initialiser attackData pour les armes si nécessaire + if ((rollData.mode === "armecc" || rollData.mode === "armetir" || rollData.mode === "armedist") && rollData.attackDef) { + // Les données sont déjà calculées dans attackDef par getAttaqueData/getTirData + // On les copie simplement dans attackData pour le template + rollData.attackData = { ...rollData.attackDef } + } + + // Calculer srTotal pour les sorts + if (rollData.mode === "galdr") { + this._updateGaldrSD(rollData) + rollData.srTotal = 14 + (rollData.sdGaldr || 0) + } else if (rollData.mode === "sejdr") { + rollData.srTotal = 14 + (rollData.bonusdefense || 0) + } else if (rollData.mode === "rune") { + this._updateRuneData(rollData, actor) + } + + // Préparer le contexte pour le template + const context = { + ...rollData, + img: actor.img, + name: actor.name, + config: game.system.yggdrasill.config, + } + + // Titre selon le mode + let title = "Test" + if (rollData.mode === "competence") title = "Test de Compétence" + else if (rollData.mode === "carac") title = "Test de Caractéristique" + else if (rollData.mode === "attribut") title = "Test d'Attribut" + else if (rollData.mode === "armecc") title = "Attaque au Corps à Corps" + else if (rollData.mode === "armetir" || rollData.mode === "armedist") title = "Attaque à Distance" + else if (rollData.mode === "sejdr") title = "Sort Sejdr" + else if (rollData.mode === "galdr") title = "Sort Galdr" + else if (rollData.mode === "rune") title = "Rune" + + // Rendre le template en HTML + const content = await foundry.applications.handlebars.renderTemplate( + "systems/fvtt-yggdrasill/templates/roll-dialog-generic-new.hbs", + context + ) + + // Utiliser DialogV2.wait avec le HTML rendu + return foundry.applications.api.DialogV2.wait({ + window: { + title: title, + icon: "fa-solid fa-dice-d20" + }, + classes: ["yggdrasill-roll-dialog"], + position: { width: 600 }, + modal: false, + content, + buttons: [ + { + action: "roll", + label: "Lancer le Test", + icon: "fa-solid fa-dice", + default: true, + callback: (event, button, dialog) => { + this._updateRollDataFromForm(rollData, button.form.elements, actor) + this._performRoll(rollData) + } + }, + ], + actions: {}, + render: (event, dialog) => { + // Pour Galdr: recalculer srTotal quand durée, cibles ou zone changent + if (rollData.mode === "galdr") { + $("#dureeGaldr, #nbCibles, #zoneGaldr").on("change", () => { + rollData.dureeGaldr = $("#dureeGaldr").val() + rollData.nbCibles = $("#nbCibles").val() + rollData.zoneGaldr = $("#zoneGaldr").val() + this._updateGaldrSD(rollData) + rollData.srTotal = 14 + (rollData.sdGaldr || 0) + $("#srTotal").text(rollData.srTotal) + }) + } + + // Pour Sejdr: recalculer srTotal quand DM change + if (rollData.mode === "sejdr") { + $("#bonusdefense").on("change", () => { + rollData.bonusdefense = parseInt($("#bonusdefense").val()) || 0 + rollData.srTotal = 14 + rollData.bonusdefense + $("#srTotal").text(rollData.srTotal) + }) + } + + // Pour Rune: recalculer srTotal quand support ou puissance changent + if (rollData.mode === "rune") { + $("#supportRune, #puissanceRune").on("change", () => { + rollData.supportRune = $("#supportRune").val() + rollData.puissanceRune = parseInt($("#puissanceRune").val()) || 1 + this._updateRuneData(rollData, actor) + $("#runeDuree").text(rollData.runeDuree) + $("#runeDureeVie").text(rollData.runeDureeVie) + $("#srTotal").text(rollData.srTotal) + }) + } + }, + rejectClose: false, + }) + } + + /** + * Perform the roll based on mode + * @param {Object} rollData - The roll data + * @private + */ + static _performRoll(rollData) { + if (rollData.mode === "attribut") { + YggdrasillUtility.rollAttribute(rollData) + } else { + YggdrasillUtility.rollYggdrasill(rollData) + } + } + + /** + * Mettre à jour rollData avec les valeurs du formulaire + * @param {Object} rollData - L'objet rollData à mettre à jour + * @param {HTMLFormControlsCollection} formElements - Les éléments du formulaire + * @param {YggdrasillActor} actor - L'acteur pour récupérer les données + * @private + */ + static _updateRollDataFromForm(rollData, formElements, actor) { + // Caractéristique (pour compétences) + if (formElements.caracName) { + const caracKey = formElements.caracName.value + rollData.caracName = caracKey + rollData.selectedCarac = this._findCaracByKey(actor, caracKey) + } + + // Type d'attaque (pour armes) + if (formElements.typeAttack) { + rollData.attackDef = rollData.attackDef || {} + rollData.attackDef.typeAttack = formElements.typeAttack.value + this._updateAttackData(rollData, actor) + } + + // Bonus/Malus + if (formElements.bonusMalus) { + rollData.bonusMalus = parseInt(formElements.bonusMalus.value) || 0 + } + + // Furor + if (formElements.furorUsage) { + rollData.furorUsage = parseInt(formElements.furorUsage.value) || 0 + } + + // Seuil de Réussite + if (formElements.sr) { + rollData.sr = parseInt(formElements.sr.value) || 9 + } + + // Galdr options + if (formElements.dureeGaldr) { + rollData.dureeGaldr = formElements.dureeGaldr.value + } + if (formElements.nbCibles) { + rollData.nbCibles = formElements.nbCibles.value + } + if (formElements.zoneGaldr) { + rollData.zoneGaldr = formElements.zoneGaldr.value + } + if (rollData.mode === "galdr") { + this._updateGaldrSD(rollData) + rollData.srTotal = 14 + (rollData.sdGaldr || 0) + } + + // Sejdr options + if (formElements.bonusdefense) { + rollData.bonusdefense = parseInt(formElements.bonusdefense.value) || 0 + } + if (rollData.mode === "sejdr") { + rollData.srTotal = 14 + (rollData.bonusdefense || 0) + } + + // Rune options + if (formElements.runeDuree) { + rollData.runeDuree = formElements.runeDuree.value + } + } + + /** + * Find characteristic by key in actor + * @param {YggdrasillActor} actor + * @param {String} caracKey + * @returns {Object} + * @private + */ + static _findCaracByKey(actor, caracKey) { + for (let [categKey, categ] of Object.entries(actor.system.carac)) { + for (let [key, carac] of Object.entries(categ.carac)) { + if (key === caracKey) { + return { ...carac, categName: categKey, caracName: key } + } + } + } + return null + } + + /** + * Update attack data based on attack type + * @param {Object} rollData + * @param {YggdrasillActor} actor + * @private + */ + static _updateAttackData(rollData, actor) { + const config = game.system.yggdrasill.config + const attackType = rollData.attackDef.typeAttack + const attackMode = config.attackMode?.[attackType] + + if (attackMode) { + rollData.attackData = rollData.attackData || {} + rollData.attackData.categName = attackMode.categName + rollData.attackData.caracName = attackMode.caracName + rollData.attackData.malus = this._computeValue(attackMode.malus, actor) + rollData.attackData.bonusdegats = this._computeValue(attackMode.bonusdegats, actor) + rollData.attackData.protection = this._computeValue(attackMode.protection, actor) + rollData.attackData.label = attackMode.label + rollData.attackData.description = attackMode.description + } + } + + /** + * Compute value from string formula like "puissance;3" + * @param {String|Number} value + * @param {YggdrasillActor} actor + * @returns {Number} + * @private + */ + static _computeValue(value, actor) { + if (typeof value === 'number') return value + if (!value || value === "0") return 0 + + const parts = String(value).split(';') + if (parts.length === 2) { + const caracName = parts[0] + const multiplier = parseInt(parts[1]) || 1 + const caracValue = this._getCaracValue(actor, caracName) + return caracValue * multiplier + } + return 0 + } + + /** + * Get characteristic value by name + * @param {YggdrasillActor} actor + * @param {String} caracName + * @returns {Number} + * @private + */ + static _getCaracValue(actor, caracName) { + for (let categ of Object.values(actor.system.carac)) { + if (categ.carac && categ.carac[caracName]) { + return categ.carac[caracName].value || 0 + } + } + return 0 + } + + /** + * Update rune data based on support and power + * @param {Object} rollData + * @param {YggdrasillActor} actor + * @private + */ + static _updateRuneData(rollData, actor) { + let support = 0 + + rollData.dureeRune = 6 - (rollData.agiliteCarac?.value || 0) + + if (rollData.supportRune === "peau") { + support = 3 + rollData.echelleDuree = "Actions" + rollData.echelleDureeVie = "Heures" + } else if (rollData.supportRune === "tissu") { + support = 6 + rollData.echelleDuree = "Tours" + rollData.echelleDureeVie = "Jours" + } else if (rollData.supportRune === "cuir") { + support = 9 + rollData.echelleDuree = "Minutes" + rollData.echelleDureeVie = "Semaines" + } else if (rollData.supportRune === "bois") { + support = 12 + rollData.echelleDuree = "Heures" + rollData.echelleDureeVie = "Mois" + } else if (rollData.supportRune === "pierremetal") { + support = 15 + rollData.echelleDuree = "Jours" + rollData.echelleDureeVie = "Années" + } + + rollData.runeDuree = `${rollData.dureeRune} ${rollData.echelleDuree}` + rollData.runeDureeVie = `${rollData.competence?.system.niveau || 1} ${rollData.echelleDureeVie}` + rollData.srTotal = (rollData.puissanceRune || 1) + (Number(rollData.sort?.system.niveau || 0) * 3) + support + } + + /** + * Update Galdr SD based on duration and targets + * @param {Object} rollData + * @private + */ + static _updateGaldrSD(rollData) { + let sdDuree = Number(dureeGaldrSD[rollData.dureeGaldr]) || 0 + let sdVar = 0 + + if (rollData.sort?.system.voie === "illusion") { + sdVar = Number(zonesciblesGaldrSD[rollData.zoneGaldr]) || 0 + } else { + sdVar = Number(ciblesGaldrSD[rollData.nbCibles]) || 0 + } + + rollData.sdGaldr = sdDuree + sdVar + } +} diff --git a/modules/models/armecc.mjs b/modules/models/armecc.mjs new file mode 100644 index 0000000..3d28d99 --- /dev/null +++ b/modules/models/armecc.mjs @@ -0,0 +1,17 @@ +/** + * Data model pour les armes de corps à corps + */ +export default class ArmeccDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + categorie: new fields.StringField({ initial: "" }), + equipe: new fields.BooleanField({ initial: false }), + degat: new fields.NumberField({ initial: 0, integer: true }), + solidite: new fields.NumberField({ initial: 0, integer: true }), + enc: new fields.NumberField({ initial: 0, integer: true }), + valeur: new fields.NumberField({ initial: 0, integer: true }), + description: new fields.HTMLField({ initial: "" }) + }; + } +} diff --git a/modules/models/armedist.mjs b/modules/models/armedist.mjs new file mode 100644 index 0000000..f1b4a37 --- /dev/null +++ b/modules/models/armedist.mjs @@ -0,0 +1,18 @@ +/** + * Data model pour les armes à distance + */ +export default class ArmedistDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + categorie: new fields.StringField({ initial: "" }), + equipe: new fields.BooleanField({ initial: false }), + degat: new fields.NumberField({ initial: 0, integer: true }), + solidite: new fields.NumberField({ initial: 0, integer: true }), + enc: new fields.NumberField({ initial: 0, integer: true }), + portee: new fields.StringField({ initial: "" }), + valeur: new fields.NumberField({ initial: 0, integer: true }), + description: new fields.HTMLField({ initial: "" }) + }; + } +} diff --git a/modules/models/armure.mjs b/modules/models/armure.mjs new file mode 100644 index 0000000..ab7ff4c --- /dev/null +++ b/modules/models/armure.mjs @@ -0,0 +1,16 @@ +/** + * Data model pour les armures + */ +export default class ArmureDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + categorie: new fields.StringField({ initial: "" }), + equipe: new fields.BooleanField({ initial: false }), + protection: new fields.StringField({ initial: "" }), + enc: new fields.NumberField({ initial: 0, integer: true }), + valeur: new fields.NumberField({ initial: 0, integer: true }), + description: new fields.HTMLField({ initial: "" }) + }; + } +} diff --git a/modules/models/blessure.mjs b/modules/models/blessure.mjs new file mode 100644 index 0000000..8257847 --- /dev/null +++ b/modules/models/blessure.mjs @@ -0,0 +1,11 @@ +/** + * Data model pour les blessures + */ +export default class BlessureDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + description: new fields.HTMLField({ initial: "" }) + }; + } +} diff --git a/modules/models/bouclier.mjs b/modules/models/bouclier.mjs new file mode 100644 index 0000000..68a2d5b --- /dev/null +++ b/modules/models/bouclier.mjs @@ -0,0 +1,18 @@ +/** + * Data model pour les boucliers + */ +export default class BouclierDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + categorie: new fields.StringField({ initial: "" }), + equipe: new fields.BooleanField({ initial: false }), + defensebonus: new fields.NumberField({ initial: 0, integer: true }), + enc: new fields.NumberField({ initial: 0, integer: true }), + enccomb: new fields.NumberField({ initial: 0, integer: true }), + solidite: new fields.NumberField({ initial: 0, integer: true }), + valeur: new fields.NumberField({ initial: 0, integer: true }), + description: new fields.HTMLField({ initial: "" }) + }; + } +} diff --git a/modules/models/competence.mjs b/modules/models/competence.mjs new file mode 100644 index 0000000..b69a972 --- /dev/null +++ b/modules/models/competence.mjs @@ -0,0 +1,16 @@ +/** + * Data model pour les compétences + */ +export default class CompetenceDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + isspecialisation: new fields.BooleanField({ initial: false }), + categorie: new fields.StringField({ initial: "" }), + specialisation: new fields.StringField({ initial: "" }), + description: new fields.HTMLField({ initial: "" }), + niveau: new fields.NumberField({ initial: 0, integer: true }), + niveauunrequis: new fields.BooleanField({ initial: false }) + }; + } +} diff --git a/modules/models/don.mjs b/modules/models/don.mjs new file mode 100644 index 0000000..5917a36 --- /dev/null +++ b/modules/models/don.mjs @@ -0,0 +1,11 @@ +/** + * Data model pour les dons + */ +export default class DonDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + description: new fields.HTMLField({ initial: "" }) + }; + } +} diff --git a/modules/models/effetmagique.mjs b/modules/models/effetmagique.mjs new file mode 100644 index 0000000..b253d25 --- /dev/null +++ b/modules/models/effetmagique.mjs @@ -0,0 +1,12 @@ +/** + * Data model pour les effets magiques + */ +export default class EffetmagiqueDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + origine: new fields.StringField({ initial: "" }), + effet: new fields.HTMLField({ initial: "" }) + }; + } +} diff --git a/modules/models/equipement.mjs b/modules/models/equipement.mjs new file mode 100644 index 0000000..ce4d80f --- /dev/null +++ b/modules/models/equipement.mjs @@ -0,0 +1,15 @@ +/** + * Data model pour l'équipement + */ +export default class EquipementDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + equipe: new fields.BooleanField({ initial: false }), + enc: new fields.NumberField({ initial: 0, integer: true }), + valeur: new fields.NumberField({ initial: 0, integer: true }), + quantite: new fields.NumberField({ initial: 0, integer: true }), + description: new fields.HTMLField({ initial: "" }) + }; + } +} diff --git a/modules/models/faiblesse.mjs b/modules/models/faiblesse.mjs new file mode 100644 index 0000000..a77ec41 --- /dev/null +++ b/modules/models/faiblesse.mjs @@ -0,0 +1,11 @@ +/** + * Data model pour les faiblesses + */ +export default class FaiblesseDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + description: new fields.HTMLField({ initial: "" }) + }; + } +} diff --git a/modules/models/figurant.mjs b/modules/models/figurant.mjs new file mode 100644 index 0000000..2e5c228 --- /dev/null +++ b/modules/models/figurant.mjs @@ -0,0 +1,87 @@ +/** + * Data model pour les figurants + */ +export default class FigurantDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + biodata: new fields.SchemaField({ + age: new fields.NumberField({ initial: 0, integer: true }), + taille: new fields.StringField({ initial: "" }), + description: new fields.HTMLField({ initial: "" }), + poids: new fields.NumberField({ initial: 0, integer: true }), + notes: new fields.HTMLField({ initial: "" }) + }), + attributs: new fields.SchemaField({ + conflit: new fields.SchemaField({ + values: new fields.SchemaField({ + offensif: new fields.SchemaField({ + label: new fields.StringField({ initial: "Offensif" }), + value: new fields.NumberField({ initial: 0, integer: true }), + degats: new fields.BooleanField({ initial: true }) + }), + defensif: new fields.SchemaField({ + label: new fields.StringField({ initial: "Défensif" }), + value: new fields.NumberField({ initial: 0, integer: true }) + }) + }), + rollable: new fields.BooleanField({ initial: false }), + label: new fields.StringField({ initial: "Conflit" }) + }), + relationnel: new fields.SchemaField({ + values: new fields.SchemaField({ + defaut: new fields.SchemaField({ + value: new fields.NumberField({ initial: 0, integer: true }) + }) + }), + rollable: new fields.BooleanField({ initial: true }), + label: new fields.StringField({ initial: "Relationnel" }) + }), + physique: new fields.SchemaField({ + values: new fields.SchemaField({ + defaut: new fields.SchemaField({ + value: new fields.NumberField({ initial: 0, integer: true }) + }) + }), + rollable: new fields.BooleanField({ initial: true }), + label: new fields.StringField({ initial: "Physique" }) + }), + mental: new fields.SchemaField({ + values: new fields.SchemaField({ + defaut: new fields.SchemaField({ + value: new fields.NumberField({ initial: 0, integer: true }) + }) + }), + rollable: new fields.BooleanField({ initial: true }), + label: new fields.StringField({ initial: "Mental" }) + }), + mystique: new fields.SchemaField({ + values: new fields.SchemaField({ + actif: new fields.SchemaField({ + label: new fields.StringField({ initial: "Actif" }), + value: new fields.NumberField({ initial: 0, integer: true }) + }), + passif: new fields.SchemaField({ + label: new fields.StringField({ initial: "Passif" }), + value: new fields.NumberField({ initial: 0, integer: true }) + }) + }), + rollable: new fields.BooleanField({ initial: false }), + label: new fields.StringField({ initial: "Mystique" }) + }), + vitalite: new fields.SchemaField({ + values: new fields.SchemaField({ + defaut: new fields.SchemaField({ + value: new fields.NumberField({ initial: 0, integer: true }) + }) + }), + rollable: new fields.BooleanField({ initial: false }), + label: new fields.StringField({ initial: "Vitalité" }) + }) + }), + etat: new fields.SchemaField({ + etat: new fields.StringField({ initial: "fringant" }) + }) + }; + } +} diff --git a/modules/models/index.mjs b/modules/models/index.mjs new file mode 100644 index 0000000..7224f30 --- /dev/null +++ b/modules/models/index.mjs @@ -0,0 +1,27 @@ +/** + * Index des DataModels pour Yggdrasill + * Ce fichier centralise tous les exports des modèles de données + */ + +// Modèles d'acteurs +export { default as PersonnageDataModel } from './personnage.mjs'; +export { default as FigurantDataModel } from './figurant.mjs'; + +// Modèles d'items +export { default as CompetenceDataModel } from './competence.mjs'; +export { default as DonDataModel } from './don.mjs'; +export { default as FaiblesseDataModel } from './faiblesse.mjs'; +export { default as BlessureDataModel } from './blessure.mjs'; +export { default as MaladieDataModel } from './maladie.mjs'; +export { default as PoisonDataModel } from './poison.mjs'; +export { default as ProuesseDataModel } from './prouesse.mjs'; +export { default as SortsejdrDataModel } from './sortsejdr.mjs'; +export { default as SortgaldrDataModel } from './sortgaldr.mjs'; +export { default as RuneDataModel } from './rune.mjs'; +export { default as ArmeccDataModel } from './armecc.mjs'; +export { default as ArmedistDataModel } from './armedist.mjs'; +export { default as ArmureDataModel } from './armure.mjs'; +export { default as BouclierDataModel } from './bouclier.mjs'; +export { default as EquipementDataModel } from './equipement.mjs'; +export { default as MonnaieDataModel } from './monnaie.mjs'; +export { default as EffetmagiqueDataModel } from './effetmagique.mjs'; diff --git a/modules/models/maladie.mjs b/modules/models/maladie.mjs new file mode 100644 index 0000000..70afd5f --- /dev/null +++ b/modules/models/maladie.mjs @@ -0,0 +1,13 @@ +/** + * Data model pour les maladies + */ +export default class MaladieDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + categorie: new fields.StringField({ initial: "" }), + periode: new fields.StringField({ initial: "" }), + description: new fields.HTMLField({ initial: "" }) + }; + } +} diff --git a/modules/models/monnaie.mjs b/modules/models/monnaie.mjs new file mode 100644 index 0000000..63463c7 --- /dev/null +++ b/modules/models/monnaie.mjs @@ -0,0 +1,13 @@ +/** + * Data model pour la monnaie + */ +export default class MonnaieDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + quantite: new fields.NumberField({ initial: 0, integer: true }), + enc: new fields.NumberField({ initial: 0, integer: true }), + description: new fields.HTMLField({ initial: "" }) + }; + } +} diff --git a/modules/models/personnage.mjs b/modules/models/personnage.mjs new file mode 100644 index 0000000..def7eb2 --- /dev/null +++ b/modules/models/personnage.mjs @@ -0,0 +1,158 @@ +/** + * Data model pour les personnages + */ +export default class PersonnageDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + biodata: new fields.SchemaField({ + nom: new fields.StringField({ initial: "" }), + archetype: new fields.StringField({ initial: "" }), + profession: new fields.StringField({ initial: "" }), + royaume: new fields.StringField({ initial: "" }), + age: new fields.NumberField({ initial: 0, integer: true }), + taille: new fields.NumberField({ initial: 0, integer: true }), + poids: new fields.NumberField({ initial: 0, integer: true }), + don: new fields.StringField({ initial: "" }), + faiblesse: new fields.StringField({ initial: "" }), + pointlegende: new fields.NumberField({ initial: 0, integer: true }), + renomee: new fields.NumberField({ initial: 0, integer: true }), + description: new fields.HTMLField({ initial: "" }), + notes: new fields.HTMLField({ initial: "" }), + tiragerunes: new fields.StringField({ initial: "" }), + gmnotes: new fields.HTMLField({ initial: "" }) + }), + carac: new fields.SchemaField({ + corps: new fields.SchemaField({ + label: new fields.StringField({ initial: "Corps" }), + carac: new fields.SchemaField({ + puissance: new fields.SchemaField({ + value: new fields.NumberField({ initial: 0, integer: true }), + label: new fields.StringField({ initial: "Puissance" }), + categorie: new fields.StringField({ initial: "corps" }), + abbrev: new fields.StringField({ initial: "pui" }) + }), + vigueur: new fields.SchemaField({ + value: new fields.NumberField({ initial: 0, integer: true }), + label: new fields.StringField({ initial: "Vigueur" }), + categorie: new fields.StringField({ initial: "corps" }), + abbrev: new fields.StringField({ initial: "vig" }) + }), + agilite: new fields.SchemaField({ + value: new fields.NumberField({ initial: 0, integer: true }), + label: new fields.StringField({ initial: "Agilité" }), + categorie: new fields.StringField({ initial: "corps" }), + abbrev: new fields.StringField({ initial: "agi" }) + }) + }) + }), + esprit: new fields.SchemaField({ + label: new fields.StringField({ initial: "Esprit" }), + carac: new fields.SchemaField({ + intellect: new fields.SchemaField({ + value: new fields.NumberField({ initial: 0, integer: true }), + label: new fields.StringField({ initial: "Intellect" }), + categorie: new fields.StringField({ initial: "esprit" }), + abbrev: new fields.StringField({ initial: "int" }) + }), + perception: new fields.SchemaField({ + value: new fields.NumberField({ initial: 0, integer: true }), + label: new fields.StringField({ initial: "Perception" }), + categorie: new fields.StringField({ initial: "esprit" }), + abbrev: new fields.StringField({ initial: "per" }) + }), + tenacite: new fields.SchemaField({ + value: new fields.NumberField({ initial: 0, integer: true }), + label: new fields.StringField({ initial: "Tenacité" }), + categorie: new fields.StringField({ initial: "esprit" }), + abbrev: new fields.StringField({ initial: "ten" }) + }) + }) + }), + ame: new fields.SchemaField({ + label: new fields.StringField({ initial: "Ame" }), + carac: new fields.SchemaField({ + charisme: new fields.SchemaField({ + value: new fields.NumberField({ initial: 0, integer: true }), + label: new fields.StringField({ initial: "Charisme" }), + categorie: new fields.StringField({ initial: "ame" }), + abbrev: new fields.StringField({ initial: "cha" }) + }), + communication: new fields.SchemaField({ + value: new fields.NumberField({ initial: 0, integer: true }), + label: new fields.StringField({ initial: "Communication" }), + categorie: new fields.StringField({ initial: "ame" }), + abbrev: new fields.StringField({ initial: "com" }) + }), + instinct: new fields.SchemaField({ + value: new fields.NumberField({ initial: 0, integer: true }), + label: new fields.StringField({ initial: "Instinct" }), + categorie: new fields.StringField({ initial: "ame" }), + abbrev: new fields.StringField({ initial: "ins" }) + }) + }) + }) + }), + furor: new fields.SchemaField({ + value: new fields.NumberField({ initial: 1, integer: true }), + max: new fields.NumberField({ initial: 1, integer: true }), + label: new fields.StringField({ initial: "Furor" }) + }), + xp: new fields.SchemaField({ + total: new fields.NumberField({ initial: 1, integer: true }), + current: new fields.NumberField({ initial: 1, integer: true }), + label: new fields.StringField({ initial: "XP" }) + }), + renommee: new fields.SchemaField({ + value: new fields.NumberField({ initial: 1, integer: true }), + label: new fields.StringField({ initial: "Renommée" }) + }), + status: new fields.SchemaField({ + epuise: new fields.BooleanField({ initial: false }), + blesse: new fields.BooleanField({ initial: false }), + meurtri: new fields.BooleanField({ initial: false }) + }), + caracsecondaire: new fields.SchemaField({ + reaction: new fields.SchemaField({ + value: new fields.NumberField({ initial: 0, integer: true }), + max: new fields.NumberField({ initial: 0, integer: true }), + label: new fields.StringField({ initial: "Réaction" }), + abbrev: new fields.StringField({ initial: "rea" }) + }), + defensephy: new fields.SchemaField({ + value: new fields.NumberField({ initial: 0, integer: true }), + bonusmalus: new fields.NumberField({ initial: 0, integer: true }), + max: new fields.NumberField({ initial: 0, integer: true }), + label: new fields.StringField({ initial: "Défense Physique" }), + abbrev: new fields.StringField({ initial: "dp" }) + }), + defensemen: new fields.SchemaField({ + value: new fields.NumberField({ initial: 0, integer: true }), + bonusmalus: new fields.NumberField({ initial: 0, integer: true }), + max: new fields.NumberField({ initial: 0, integer: true }), + label: new fields.StringField({ initial: "Défense Mentale" }), + abbrev: new fields.StringField({ initial: "dm" }) + }), + deplacement: new fields.SchemaField({ + value: new fields.NumberField({ initial: 0, integer: true }), + max: new fields.NumberField({ initial: 0, integer: true }), + label: new fields.StringField({ initial: "Déplacement" }), + abbrev: new fields.StringField({ initial: "dep" }) + }), + capaenc: new fields.SchemaField({ + value: new fields.NumberField({ initial: 0, integer: true }), + max: new fields.NumberField({ initial: 0, integer: true }), + label: new fields.StringField({ initial: "Capacité d'Encombrement" }), + abbrev: new fields.StringField({ initial: "cpe" }) + }), + pv: new fields.SchemaField({ + value: new fields.NumberField({ initial: 10, integer: true }), + max: new fields.NumberField({ initial: 10, integer: true }), + min: new fields.NumberField({ initial: 0, integer: true }), + label: new fields.StringField({ initial: "Points de Vie" }), + abbrev: new fields.StringField({ initial: "pv" }) + }) + }) + }; + } +} diff --git a/modules/models/poison.mjs b/modules/models/poison.mjs new file mode 100644 index 0000000..653e6aa --- /dev/null +++ b/modules/models/poison.mjs @@ -0,0 +1,13 @@ +/** + * Data model pour les poisons + */ +export default class PoisonDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + categorie: new fields.StringField({ initial: "" }), + type: new fields.StringField({ initial: "" }), + description: new fields.HTMLField({ initial: "" }) + }; + } +} diff --git a/modules/models/prouesse.mjs b/modules/models/prouesse.mjs new file mode 100644 index 0000000..4dcb224 --- /dev/null +++ b/modules/models/prouesse.mjs @@ -0,0 +1,16 @@ +/** + * Data model pour les prouesses + */ +export default class ProuesseDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + categorie: new fields.StringField({ initial: "" }), + niveau: new fields.NumberField({ initial: 0, integer: true }), + armes: new fields.StringField({ initial: "" }), + prerequis: new fields.StringField({ initial: "" }), + modificateur: new fields.NumberField({ initial: 0, integer: true }), + description: new fields.HTMLField({ initial: "" }) + }; + } +} diff --git a/modules/models/rune.mjs b/modules/models/rune.mjs new file mode 100644 index 0000000..c4590d4 --- /dev/null +++ b/modules/models/rune.mjs @@ -0,0 +1,12 @@ +/** + * Data model pour les runes + */ +export default class RuneDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + niveau: new fields.NumberField({ initial: 0, integer: true }), + description: new fields.HTMLField({ initial: "" }) + }; + } +} diff --git a/modules/models/sortgaldr.mjs b/modules/models/sortgaldr.mjs new file mode 100644 index 0000000..ac5f406 --- /dev/null +++ b/modules/models/sortgaldr.mjs @@ -0,0 +1,13 @@ +/** + * Data model pour les sorts Galdr + */ +export default class SortgaldrDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + voie: new fields.StringField({ initial: "" }), + sd: new fields.NumberField({ initial: 0, integer: true }), + description: new fields.HTMLField({ initial: "" }) + }; + } +} diff --git a/modules/models/sortsejdr.mjs b/modules/models/sortsejdr.mjs new file mode 100644 index 0000000..9f0eb20 --- /dev/null +++ b/modules/models/sortsejdr.mjs @@ -0,0 +1,17 @@ +/** + * Data model pour les sorts Sejdr + */ +export default class SortsejdrDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + forme: new fields.StringField({ initial: "" }), + preparation: new fields.StringField({ initial: "" }), + niveau: new fields.NumberField({ initial: 0, integer: true }), + malus: new fields.NumberField({ initial: 0, integer: true }), + duree: new fields.StringField({ initial: "" }), + zone: new fields.StringField({ initial: "" }), + description: new fields.HTMLField({ initial: "" }) + }; + } +} diff --git a/modules/yggdrasill-actor.js b/modules/yggdrasill-actor.js index 18ff5f0..0e6ee47 100644 --- a/modules/yggdrasill-actor.js +++ b/modules/yggdrasill-actor.js @@ -1,6 +1,6 @@ /* -------------------------------------------- */ import { YggdrasillUtility } from "./yggdrasill-utility.js"; -import { YggdrasillRoll } from "./yggdrasill-roll-dialog.js"; +import { YggdrasillRollDialog } from "./applications/yggdrasill-roll-dialog.mjs"; /* -------------------------------------------- */ const statusEffects = [ @@ -441,45 +441,37 @@ export class YggdrasillActor extends Actor { let sumame = baseame.charisme.value + baseame.communication.value + baseame.instinct.value let newPV = (sumcorps*3) + (sumesprit *2) + sumame; - if ( newPV != this.system.caracsecondaire.pv.max) { - this.system.caracsecondaire.pv.max = newPV; - this.update( { 'system.caracsecondaire.pv.max': newPV }); - } + this.system.caracsecondaire.pv.max = newPV; this.system.caracsecondaire.reaction.value = baseesprit.intellect.value + baseesprit.perception.value + baseame.instinct.value; let newReac = baseesprit.intellect.value + baseesprit.perception.value + baseame.instinct.value; - if ( newReac != this.system.caracsecondaire.reaction.max) { - this.system.caracsecondaire.reaction.max = newReac - this.update( { 'system.caracsecondaire.reaction.max': newReac }); - } + this.system.caracsecondaire.reaction.max = newReac this.system.caracsecondaire.defensephy.value = basecorps.agilite.value + basecorps.vigueur.value + baseame.instinct.value; let newDef = basecorps.agilite.value + basecorps.vigueur.value + baseame.instinct.value; - if ( newDef != this.system.caracsecondaire.defensephy.max) { - this.system.caracsecondaire.defensephy.max = newDef - this.update( { 'system.caracsecondaire.defensephy.max': newDef }); + this.system.caracsecondaire.defensephy.max = newDef + // Initialize bonusmalus if not set + if (this.system.caracsecondaire.defensephy.bonusmalus === undefined) { + this.system.caracsecondaire.defensephy.bonusmalus = 0 } + this.system.caracsecondaire.defensephy.total = newDef + this.system.caracsecondaire.defensephy.bonusmalus this.system.caracsecondaire.defensemen.value = baseesprit.tenacite.value + baseame.instinct.value + baseesprit.intellect.value; newDef = baseesprit.tenacite.value + baseame.instinct.value + baseesprit.intellect.value; - if ( newDef != this.system.caracsecondaire.defensemen.max) { - this.system.caracsecondaire.defensemen.max = newDef - this.update( { 'system.caracsecondaire.defensemen.max': newDef }); + this.system.caracsecondaire.defensemen.max = newDef + // Initialize bonusmalus if not set + if (this.system.caracsecondaire.defensemen.bonusmalus === undefined) { + this.system.caracsecondaire.defensemen.bonusmalus = 0 } + this.system.caracsecondaire.defensemen.total = newDef + this.system.caracsecondaire.defensemen.bonusmalus this.system.caracsecondaire.deplacement.value = basecorps.agilite.value + basecorps.vigueur.value; let depl = basecorps.agilite.value + basecorps.vigueur.value; - if ( depl != this.system.caracsecondaire.deplacement.max) { - this.system.caracsecondaire.deplacement.max = depl - this.update( { 'system.caracsecondaire.deplacement.max': depl }); - } + this.system.caracsecondaire.deplacement.max = depl this.system.caracsecondaire.capaenc.value = (basecorps.puissance.value * 2) + basecorps.vigueur.value; let enc = (basecorps.puissance.value * 2) + basecorps.vigueur.value; - if ( enc != this.system.caracsecondaire.capaenc.max ) { - this.system.caracsecondaire.capaenc.max = enc - this.update( { 'system.caracsecondaire.capaenc.max': enc }); - } + this.system.caracsecondaire.capaenc.max = enc //console.log("CARAC SEC", this.system.caracsecondaire) } @@ -531,9 +523,7 @@ export class YggdrasillActor extends Actor { isBlesse: this.system.etat.etat == "blesse", } this.addDefaultRoll(rollData) - let rollDialog = await YggdrasillRoll.create( this, rollData); - console.log(rollDialog); - rollDialog.render( true ); + await YggdrasillRollDialog.create( this, rollData); } else { ui.notifications.warn("Attribut non trouvée"); } @@ -541,11 +531,11 @@ export class YggdrasillActor extends Actor { /* -------------------------------------------- */ addDefaultRoll(rollData) { rollData.optionsBonusMalus= YggdrasillUtility.createOptions(-15, 15) - rollData.bonusMalus= "0" + rollData.bonusMalus= 0 rollData.optionsFuror= YggdrasillUtility.createOptions(0, this.getCurrentFuror()) - rollData.furorUsage= "0" + rollData.furorUsage= 0 rollData.optionsBD= YggdrasillUtility.createOptions(0, +15) - rollData.sr= "0" + rollData.sr= 0 rollData.puissanceRune = 1 rollData.optionsPuissanceRune= YggdrasillUtility.createOptions(1, +15) rollData.supportRune= "peau" @@ -571,9 +561,7 @@ export class YggdrasillActor extends Actor { } this.addDefaultRoll(rollData) console.log("CARAC : ", rollData, this.system.carac); - let rollDialog = await YggdrasillRoll.create( this, rollData); - console.log(rollDialog); - rollDialog.render( true ); + await YggdrasillRollDialog.create( this, rollData); } else { ui.notifications.warn("Caractéristique non trouvée"); } @@ -598,9 +586,7 @@ export class YggdrasillActor extends Actor { isMeurtri: this.isMeurtri(), } this.addDefaultRoll(rollData) - let rollDialog = await YggdrasillRoll.create( this, rollData); - console.log(rollDialog); - rollDialog.render( true ); + await YggdrasillRollDialog.create( this, rollData); } else { ui.notifications.warn("Compétence non trouvée"); } @@ -691,9 +677,7 @@ export class YggdrasillActor extends Actor { } this.addDefaultRoll(rollData) rollData.sr = 14 - let rollDialog = await YggdrasillRoll.create( this, rollData); - console.log(rollDialog); - rollDialog.render( true ); + await YggdrasillRollDialog.create( this, rollData); } else { ui.notifications.warn("Sortilège ou Compétence non trouvée !", sort, compName); } @@ -734,9 +718,7 @@ export class YggdrasillActor extends Actor { } this.addDefaultRoll(rollData) rollData.sr = 14 - let rollDialog = await YggdrasillRoll.create( this, rollData); - console.log(rollDialog); - rollDialog.render( true ); + await YggdrasillRollDialog.create( this, rollData); } else { ui.notifications.warn("Arme ou Compétence Martiale non trouvée !", arme, compName); } diff --git a/modules/yggdrasill-config.js b/modules/yggdrasill-config.js index e5dcaa1..a3691ca 100644 --- a/modules/yggdrasill-config.js +++ b/modules/yggdrasill-config.js @@ -55,16 +55,16 @@ export const YGGDRASILL_CONFIG = { { key:"visee", label:"Attaque Visée" } ], optionsSR : [ - {key: "0", label: "Aucun"}, - {key: "5", label: "Très Simple (5)"}, - {key: "7", label: "Simple (7)"}, - {key: "10", label: "Aisé (10)"}, - {key: "14", label: "Moyen (14)"}, - {key: "19", label: "Difficile (19)"}, - {key: "25", label: "Très Difficile (25)"}, - {key: "32", label: "Exceptionnel (32)"}, - {key: "40", label: "Légendaire (40)"}, - {key: "49", label: "Divin (49)"} + {key: 0, label: "Aucun"}, + {key: 5, label: "Très Simple (5)"}, + {key: 7, label: "Simple (7)"}, + {key: 10, label: "Aisé (10)"}, + {key: 14, label: "Moyen (14)"}, + {key: 19, label: "Difficile (19)"}, + {key: 25, label: "Très Difficile (25)"}, + {key: 32, label: "Exceptionnel (32)"}, + {key: 40, label: "Légendaire (40)"}, + {key: 49, label: "Divin (49)"} ], optionsCarac: [ diff --git a/modules/yggdrasill-item-sheet.js b/modules/yggdrasill-item-sheet.js index 3630ad0..c55b42d 100644 --- a/modules/yggdrasill-item-sheet.js +++ b/modules/yggdrasill-item-sheet.js @@ -1,103 +1,115 @@ import { YggdrasillUtility } from "./yggdrasill-utility.js"; +import { YGGDRASILL_CONFIG } from "./yggdrasill-config.js"; + +const { HandlebarsApplicationMixin } = foundry.applications.api; /** * Extend the basic ItemSheet with some very simple modifications - * @extends {ItemSheet} + * @extends {ItemSheetV2} */ -export class YggdrasillItemSheet extends foundry.appv1.sheets.ItemSheet { +export class YggdrasillItemSheet extends HandlebarsApplicationMixin(foundry.applications.sheets.ItemSheetV2) { + constructor(options = {}) { + super(options); + this.#dragDrop = this.#createDragDropHandlers(); + } + + #dragDrop; /** @override */ - static get defaultOptions() { - return foundry.utils.mergeObject(super.defaultOptions, { - classes: ["fvtt-yggdrasill", "sheet", "item"], - template: "systems/fvtt-yggdrasill/templates/item-sheet.html", - width: 550, - height: 550 - //tabs: [{navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "description"}] - }); - } + static DEFAULT_OPTIONS = { + classes: ["fvtt-yggdrasill", "item"], + position: { + width: 550, + height: 550, + }, + form: { + submitOnChange: true, + }, + window: { + resizable: true, + }, + actions: { + editImage: YggdrasillItemSheet.#onEditImage, + }, + }; - /* -------------------------------------------- */ - _getHeaderButtons() { - let buttons = super._getHeaderButtons(); - // Add "Post to chat" button - // We previously restricted this to GM and editable items only. If you ever find this comment because it broke something: eh, sorry! - buttons.unshift( - { - class: "post", - icon: "fas fa-comment", - onclick: ev => {} - }) - return buttons - } + /** + * Tab groups state + * @type {object} + */ + tabGroups = { primary: "description" }; - /* -------------------------------------------- */ /** @override */ - setPosition(options={}) { - const position = super.setPosition(options); - const sheetBody = this.element.find(".sheet-body"); - const bodyHeight = position.height - 192; - sheetBody.css("height", bodyHeight); - return position; - } - - /* -------------------------------------------- */ - async getData() { - const objectData = foundry.utils.duplicate(this.object); - - let formData = { - title: this.title, - id: objectData.id, - type: objectData.type, - img: objectData.img, - name: objectData.name, - editable: this.isEditable, - cssClass: this.isEditable ? "editable" : "locked", - data: foundry.utils.deepClone(this.object.system), - optionsBase: YggdrasillUtility.createDirectOptionList(0, 20), - optionsNiveaux4: Array.fromRange(5, 1), - description: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.description, {async: true}), - limited: this.object.limited, - options: this.options, - owner: this.document.isOwner, - isGM: game.user.isGM, - config: game.system.config + static PARTS = { + sheet: { + template: "systems/fvtt-yggdrasill/templates/item-{type}-sheet.hbs" } - return formData; - } + }; - /* -------------------------------------------- */ /** @override */ - activateListeners(html) { - super.activateListeners(html); - - // Everything below here is only needed if the sheet is editable - if (!this.options.editable) return; - - // Update Inventory Item - html.find('.item-edit').click(ev => { - const li = $(ev.currentTarget).parents(".item"); - const item = this.object.options.actor.items.get(li.data("item-id")); - item.sheet.render(true); - }); - // Update Inventory Item - html.find('.item-delete').click(ev => { - const li = $(ev.currentTarget).parents(".item"); - this.object.options.actor.deleteEmbeddedDocuments( "Item", [li.data("item-id") ] ).then( this.render(true)); - }); - + async _prepareContext() { + // Ensure config is always available with fallback to direct import + const config = game.system?.config || game.system?.yggdrasill?.config || YGGDRASILL_CONFIG || {}; + + // Create options for niveau 0-5 + const optionsNiveaux4 = {}; + for (let i = 0; i <= 5; i++) { + optionsNiveaux4[`${i}`] = `${i}`; + } + + const optionsBase = YggdrasillUtility.createDirectOptionList(0, 20) || {}; + + const context = { + fields: this.document.schema.fields, + systemFields: this.document.system.schema.fields, + item: this.document, + system: this.document.system, + data: this.document.system, + source: this.document.toObject(), + enrichedDescription: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.description || "", { async: true }), + enrichedEffet: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.document.system.effet || "", { async: true }), + isEditMode: true, + isEditable: this.isEditable, + editable: this.isEditable, + isGM: game.user.isGM, + config: config, + optionsBase: optionsBase, + optionsNiveaux4: optionsNiveaux4, + }; + return context; + } + return context; } - /* -------------------------------------------- */ - get template() - { - let type = this.item.type; - return `systems/fvtt-yggdrasill/templates/item-${type}-sheet.html`; - } - - /* -------------------------------------------- */ /** @override */ - _updateObject(event, formData) { - return this.object.update(formData); + _onRender(context, options) { + super._onRender(context, options); + this.#dragDrop.forEach((d) => d.bind(this.element)); + } + + // #region Drag-and-Drop Workflow + /** + * Create drag-and-drop workflow handlers for this Application + */ + #createDragDropHandlers() { + return []; + } + + // #region Actions + + /** + * Handle editing the item image + * @param {Event} event - The triggering event + */ + static async #onEditImage(event) { + event.preventDefault(); + const filePicker = new FilePicker({ + type: "image", + current: this.document.img, + callback: (path) => { + this.document.update({ img: path }); + }, + }); + filePicker.browse(); } } diff --git a/modules/yggdrasill-main.js b/modules/yggdrasill-main.js index 0f328e7..a4a9d09 100644 --- a/modules/yggdrasill-main.js +++ b/modules/yggdrasill-main.js @@ -9,14 +9,17 @@ /* -------------------------------------------- */ // Import Modules import { YggdrasillActor } from "./yggdrasill-actor.js"; -import { YggdrasillItemSheet } from "./yggdrasill-item-sheet.js"; -import { YggdrasillActorSheet } from "./yggdrasill-actor-sheet.js"; -import { YggdrasillFigurantSheet } from "./yggdrasill-figurant-sheet.js"; import { YggdrasillUtility } from "./yggdrasill-utility.js"; import { YggdrasillCombat } from "./yggdrasill-combat.js"; import { YGGDRASILL_CONFIG } from "./yggdrasill-config.js"; import { ClassCounter} from "https://www.uberwald.me/fvtt_appcount/count-class-ready.js" +// Import DataModels +import * as models from "./models/index.mjs"; + +// Import AppV2 Sheets +import * as sheets from "./applications/sheets/_module.mjs"; + /* -------------------------------------------- */ /* Foundry VTT Initialization */ /* -------------------------------------------- */ @@ -46,30 +49,82 @@ Hooks.once("init", async function () { /* -------------------------------------------- */ // Define custom Entity classes CONFIG.Actor.documentClass = YggdrasillActor; + CONFIG.Actor.dataModels = { + personnage: models.PersonnageDataModel, + figurant: models.FigurantDataModel + }; + CONFIG.Combat.documentClass = YggdrasillCombat; + + CONFIG.Item.dataModels = { + competence: models.CompetenceDataModel, + don: models.DonDataModel, + faiblesse: models.FaiblesseDataModel, + blessure: models.BlessureDataModel, + maladie: models.MaladieDataModel, + poison: models.PoisonDataModel, + prouesse: models.ProuesseDataModel, + sortsejdr: models.SortsejdrDataModel, + sortgaldr: models.SortgaldrDataModel, + rune: models.RuneDataModel, + armecc: models.ArmeccDataModel, + armedist: models.ArmedistDataModel, + armure: models.ArmureDataModel, + bouclier: models.BouclierDataModel, + equipement: models.EquipementDataModel, + monnaie: models.MonnaieDataModel, + effetmagique: models.EffetmagiqueDataModel + }; + CONFIG.Yggdrasill = { } + + game.system.yggdrasill = { + config: YGGDRASILL_CONFIG, + models, + sheets + } /* -------------------------------------------- */ // Register sheet application classes + + // Register AppV2 Actor Sheets foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet); - foundry.documents.collections.Actors.registerSheet("fvtt-yggdrasill", YggdrasillActorSheet, { types: ["personnage"], makeDefault: true }); - foundry.documents.collections.Actors.registerSheet("fvtt-yggdrasill", YggdrasillFigurantSheet, { types: ["figurant"], makeDefault: false }); + foundry.documents.collections.Actors.registerSheet("fvtt-yggdrasill", sheets.YggdrasillPersonnageSheet, { types: ["personnage"], makeDefault: true }); + foundry.documents.collections.Actors.registerSheet("fvtt-yggdrasill", sheets.YggdrasillFigurantSheet, { types: ["figurant"], makeDefault: true }); + + // Register AppV2 Item Sheets foundry.documents.collections.Items.unregisterSheet("core", foundry.appv1.sheets.ItemSheet); - foundry.documents.collections.Items.registerSheet("fvtt-yggdrasill", YggdrasillItemSheet, { makeDefault: true }); + foundry.documents.collections.Items.registerSheet("fvtt-yggdrasill", sheets.YggdrasillCompetenceSheet, { types: ["competence"], makeDefault: true }); + foundry.documents.collections.Items.registerSheet("fvtt-yggdrasill", sheets.YggdrasillDonSheet, { types: ["don"], makeDefault: true }); + foundry.documents.collections.Items.registerSheet("fvtt-yggdrasill", sheets.YggdrasillFaiblesseSheet, { types: ["faiblesse"], makeDefault: true }); + foundry.documents.collections.Items.registerSheet("fvtt-yggdrasill", sheets.YggdrasillBlessureSheet, { types: ["blessure"], makeDefault: true }); + foundry.documents.collections.Items.registerSheet("fvtt-yggdrasill", sheets.YggdrasillMaladieSheet, { types: ["maladie"], makeDefault: true }); + foundry.documents.collections.Items.registerSheet("fvtt-yggdrasill", sheets.YggdrasillPoisonSheet, { types: ["poison"], makeDefault: true }); + foundry.documents.collections.Items.registerSheet("fvtt-yggdrasill", sheets.YggdrasillProuesseSheet, { types: ["prouesse"], makeDefault: true }); + foundry.documents.collections.Items.registerSheet("fvtt-yggdrasill", sheets.YggdrasillSortsejdrSheet, { types: ["sortsejdr"], makeDefault: true }); + foundry.documents.collections.Items.registerSheet("fvtt-yggdrasill", sheets.YggdrasillSortgaldrSheet, { types: ["sortgaldr"], makeDefault: true }); + foundry.documents.collections.Items.registerSheet("fvtt-yggdrasill", sheets.YggdrasillRuneSheet, { types: ["rune"], makeDefault: true }); + foundry.documents.collections.Items.registerSheet("fvtt-yggdrasill", sheets.YggdrasillArmeccSheet, { types: ["armecc"], makeDefault: true }); + foundry.documents.collections.Items.registerSheet("fvtt-yggdrasill", sheets.YggdrasillArmedistSheet, { types: ["armedist"], makeDefault: true }); + foundry.documents.collections.Items.registerSheet("fvtt-yggdrasill", sheets.YggdrasillArmureSheet, { types: ["armure"], makeDefault: true }); + foundry.documents.collections.Items.registerSheet("fvtt-yggdrasill", sheets.YggdrasillBouclierSheet, { types: ["bouclier"], makeDefault: true }); + foundry.documents.collections.Items.registerSheet("fvtt-yggdrasill", sheets.YggdrasillEquipementSheet, { types: ["equipement"], makeDefault: true }); + foundry.documents.collections.Items.registerSheet("fvtt-yggdrasill", sheets.YggdrasillMonnaieSheet, { types: ["monnaie"], makeDefault: true }); + foundry.documents.collections.Items.registerSheet("fvtt-yggdrasill", sheets.YggdrasillEffetmagiqueSheet, { types: ["effetmagique"], makeDefault: true }); }); /* -------------------------------------------- */ -function welcomeMessage() { +async function welcomeMessage() { + const templateData = {}; + const html = await foundry.applications.handlebars.renderTemplate("systems/fvtt-yggdrasill/templates/chat-welcome-message.hbs", templateData); + ChatMessage.create({ user: game.user.id, whisper: [game.user.id], - content: `
Bienvenue à Yggdrasill ! -

Yggdrasill est un Jeu de Rôle publié par 7ième Cercle : https://www.7emecercle.com/7C_site/jeux-de-roles/yggdrasill/

-
Yggdrasill est une propriété de 7ième Cercle. -
- ` }); + content: html + }); } /* -------------------------------------------- */ @@ -101,3 +156,28 @@ Hooks.on("chatMessage", (html, content, msg) => { } return true; }); + +/* -------------------------------------------- */ +/* Chat Message Rendering */ +/* -------------------------------------------- */ +Hooks.on("renderChatMessageHTML", (message, html, data) => { + // Handle collapsible magic details + html.querySelector('.magic-header.collapsible')?.addEventListener('click', function() { + const header = this; + const content = header.parentElement.querySelector('.magic-content'); + + // Toggle collapsed state + content?.classList.toggle('collapsed'); + header.classList.toggle('expanded'); + }); + + // Handle collapsible weapon details + html.querySelector('.weapon-header.collapsible')?.addEventListener('click', function() { + const header = this; + const content = header.parentElement.querySelector('.weapon-content'); + + // Toggle collapsed state + content?.classList.toggle('collapsed'); + header.classList.toggle('expanded'); + }); +}); diff --git a/modules/yggdrasill-roll-dialog.js b/modules/yggdrasill-roll-dialog.js deleted file mode 100644 index 69dafe0..0000000 --- a/modules/yggdrasill-roll-dialog.js +++ /dev/null @@ -1,212 +0,0 @@ -import { YggdrasillUtility } from "./yggdrasill-utility.js"; -const dureeGaldrSD = { "1d5a": 3, "1d10t": 6, "1d10m": 9, "1d10h": 12, "1d5j": 15}; -const ciblesGaldrSD = { "1": 3, "2_4": 6, "5_9": 9, "10_49": 12, "50plus": 15}; -const zonesciblesGaldrSD = { "INS10cm3": 3, "INS50cm3": 6, "INS1m3": 9, "INS5m3": 12, "INS10m3": 15}; - -export class YggdrasillRoll extends Dialog { - - /* -------------------------------------------- */ - static async create(actor, rollData ) { - - let html - let h = 440; - if ( rollData.mode == "competence") { - html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-yggdrasill/templates/roll-dialog-competence.html', rollData); - h = 340; - } else if (rollData.mode == "carac") { - html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-yggdrasill/templates/roll-dialog-carac.html', rollData); - h = 320; - } else if (rollData.mode == "attribut") { - html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-yggdrasill/templates/roll-dialog-attribut.html', rollData); - h = 320; - } else if (rollData.mode == "armecc") { - html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-yggdrasill/templates/roll-dialog-armecc.html', rollData); - } else if (rollData.mode == "sejdr") { - html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-yggdrasill/templates/roll-dialog-sejdr.html', rollData); - } else if (rollData.mode == "rune") { - html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-yggdrasill/templates/roll-dialog-rune.html', rollData); - } else if (rollData.mode == "galdr") { - html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-yggdrasill/templates/roll-dialog-galdr.html', rollData); - } else { - html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-yggdrasill/templates/roll-dialog-armetir.html', rollData); - } - let options = { classes: ["yggdrasilldialog"], width: 600, height: h, 'z-index': 99999 }; - return new YggdrasillRoll(actor, rollData, html, options ); - } - - /* -------------------------------------------- */ - constructor(actor, rollData, html, options, close = undefined) { - let conf = { - title: (rollData.mode == "competence") ? "Compétence" : "Caractéristique", - content: html, - buttons: { - roll: { - icon: '', - label: "Lancer le Test", - callback: () => { this.roll() } - }, - cancel: { - icon: '', - label: "Annuler", - callback: () => { this.close() } - } }, - default: "Roll", - close: close - } - - super(conf, options); - - this.actor = actor; - this.rollData = rollData; - } - - /* -------------------------------------------- */ - roll () { - if ( this.rollData.mode == "attribut") { - YggdrasillUtility.rollAttribute(this.rollData) - } else { - YggdrasillUtility.rollYggdrasill( this.rollData ) - } - } - - /* -------------------------------------------- */ - updateGaldrSR( ) { - let sdDuree = Number(dureeGaldrSD[this.rollData.dureeGaldr]); - let sdVar = 0; - if ( this.rollData.sort.system.voie == "illusion") { - sdVar = Number(zonesciblesGaldrSD[this.rollData.zoneGaldr]); - } else { - sdVar = Number(ciblesGaldrSD[this.rollData.nbCibles]); - } - let SR = Number(this.rollData.sort.system.sd) + sdDuree + sdVar; - $("#srTotal").text(SR); - this.rollData.sr = SR; - } - - /* -------------------------------------------- */ - updateRuneSR() { - let support = 0; - - this.rollData.dureeRune = 6 - this.rollData.agiliteCarac.value; - if ( this.rollData.supportRune == "peau") { - support = 3; - this.rollData.echelleDuree = "Actions"; - this.rollData.echelleDureeVie = "Heures" - } - if ( this.rollData.supportRune == "tissu") { - support = 6; - this.rollData.echelleDuree = "Tours"; - this.rollData.echelleDureeVie = "Jours" - } - if ( this.rollData.supportRune == "cuir") { - support = 9; - this.rollData.echelleDuree = "Minutes"; - this.rollData.echelleDureeVie = "Semaines" - } - if ( this.rollData.supportRune == "bois") { - support = 12; - this.rollData.echelleDuree = "Heures"; - this.rollData.echelleDureeVie = "Mois" - } - if ( this.rollData.supportRune == "pierremetal") { - support = 15; - this.rollData.echelleDuree = "Jours"; - this.rollData.echelleDureeVie = "Années" - } - let SR = this.rollData.puissanceRune + (Number(this.rollData.sort.system.niveau)*3) + support; - $("#srTotal").text(SR); - $("#runeDuree").text( this.rollData.dureeRune + " " + this.rollData.echelleDuree); - $("#runeDureeVie").text( this.rollData.competence.system.niveau + " " + this.rollData.echelleDureeVie); - this.rollData.sr = SR; - } - - /* -------------------------------------------- */ - activateListeners(html) { - super.activateListeners(html); - - let dialog = this; - function onLoad() { - if (dialog.rollData.mode == "competence") { - let carac = dialog.actor.getCarac( "Puissance" ); - dialog.rollData.selectedCarac = carac; - } else if (dialog.rollData.mode == "armecc" || dialog.rollData.mode == "armedist" ) { - $("#caracName").text(dialog.rollData.selectedCarac.label); - $("#attackDescr").text(dialog.rollData.attackDef.description); - } else if ( dialog.rollData.mode == "sejdr" || dialog.rollData.mode == "rune" || dialog.rollData.mode == "galdr" ) { - $("#caracName").text(dialog.rollData.selectedCarac.label); - } - if (dialog.rollData.mode == "rune" ) { - dialog.updateRuneSR(); - } - if (dialog.rollData.mode == "galdr" ) { - dialog.updateGaldrSR(); - } - if (dialog.rollData.mode == "attribut") { - $("#attrValue").text("2d10+"+dialog.rollData.subAttr.value); - } else { - $("#caracValue").text(dialog.rollData.selectedCarac.value+"d10"); - } - } - $(function () { onLoad(); }); - - html.find('#caracName').change((event) => { - let caracKey = event.currentTarget.value; - let carac = this.actor.getCarac( caracKey ); - this.rollData.selectedCarac = carac; - $("#caracValue").text(carac.value+"d10"); - }); - - html.find('#typeAttack').change((event) => { - let attackType = event.currentTarget.value; - let attackDef - if ( this.rollData.mode == 'armecc') - attackDef = this.actor.getAttaqueData( attackType); - else - attackDef = this.actor.getTirData( attackType); - this.rollData.attackDef = attackDef; - this.rollData.selectedCarac = attackDef.carac; - $("#caracValue").text(attackDef.carac.value+"d10"); - $("#caracName").text(attackDef.carac.label); - $("#attackDescr").text(attackDef.description); - $("#malus").text(attackDef.malus); - }); - - html.find('#supportRune').change((event) => { - this.rollData.supportRune = event.currentTarget.value; - this.updateRuneSR(); - }); - html.find('#puissanceRune').change((event) => { - this.rollData.puissanceRune = Number(event.currentTarget.value); - this.updateRuneSR(); - }); - - html.find('#dureeGaldr').change((event) => { - this.rollData.dureeGaldr = event.currentTarget.value; - this.updateGaldrSR(); - }); - html.find('#nbCibles').change((event) => { - this.rollData.nbCibles = event.currentTarget.value; - this.updateGaldrSR(); - }); - html.find('#zoneGaldr').change((event) => { - this.rollData.zoneGaldr = event.currentTarget.value; - this.updateGaldrSR(); - }); - - - html.find('#bonusMalus').change((event) => { - this.rollData.bonusMalus = Number(event.currentTarget.value); - }); - html.find('#furorUsage').change((event) => { - this.rollData.furorUsage = Number(event.currentTarget.value); - }); - html.find('#sr').change((event) => { - this.rollData.sr = Number(event.currentTarget.value); - }); - html.find('#bonusdefense').change((event) => { - this.rollData.bonusdefense = Number(event.currentTarget.value); - }); - - } - -} \ No newline at end of file diff --git a/modules/yggdrasill-utility.js b/modules/yggdrasill-utility.js index 0cb67a8..96b578e 100644 --- a/modules/yggdrasill-utility.js +++ b/modules/yggdrasill-utility.js @@ -156,7 +156,7 @@ export class YggdrasillUtility { console.log("ROLLLL ATTR!!!!", rollData); this.createChatWithRollMode( rollData.alias, { - content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-yggdrasill/templates/chat-generic-result.html`, rollData) + content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-yggdrasill/templates/chat-generic-result-new.hbs`, rollData) }); } @@ -218,9 +218,14 @@ export class YggdrasillUtility { rollData.niveauCompetence = niveauCompetence // Compute total SR - rollData.srFinal = rollData.sr; - if ( rollData.bonusdefense ) { - rollData.srFinal += rollData.bonusdefense; + // Pour les sorts, utiliser srTotal si calculé, sinon sr + bonusdefense + if (rollData.srTotal !== undefined) { + rollData.srFinal = rollData.srTotal + } else { + rollData.srFinal = rollData.sr + if (rollData.bonusdefense) { + rollData.srFinal += rollData.bonusdefense + } } if ( rollData.srFinal > 0 ) { @@ -272,7 +277,7 @@ export class YggdrasillUtility { console.log("ROLLLL!!!!", rollData); this.createChatWithRollMode( rollData.alias, { - content: await renderTemplate(`systems/fvtt-yggdrasill/templates/chat-generic-result.html`, rollData) + content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-yggdrasill/templates/chat-generic-result-new.hbs`, rollData) }); } diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..db47327 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4971 @@ +{ + "name": "fvtt-yggdrasill", + "version": "12.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "fvtt-yggdrasill", + "version": "12.0.0", + "license": "SEE LICENSE IN LICENCE.txt", + "devDependencies": { + "gulp": "^4.0.2", + "gulp-less": "^5.0.0", + "gulp-sourcemaps": "^3.0.0" + } + }, + "node_modules/@gulp-sourcemaps/identity-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-2.0.1.tgz", + "integrity": "sha512-Tb+nSISZku+eQ4X1lAkevcQa+jknn/OVUgZ3XCxEKIsLsqYuPoJwJOPQeaOk75X3WPftb29GWY1eqE7GLsXb1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^6.4.1", + "normalize-path": "^3.0.0", + "postcss": "^7.0.16", + "source-map": "^0.6.0", + "through2": "^3.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/@gulp-sourcemaps/identity-map/node_modules/through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" + } + }, + "node_modules/@gulp-sourcemaps/map-sources": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz", + "integrity": "sha512-o/EatdaGt8+x2qpb0vFLC/2Gug/xYPRXb6a+ET1wGYKozKN3krDWC/zZFZAtrzxJHuDL12mwdfEFKcKMNvc55A==", + "dev": true, + "license": "MIT", + "dependencies": { + "normalize-path": "^2.0.1", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/@gulp-sourcemaps/map-sources/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@gulp-sourcemaps/map-sources/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-wrap": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-wrap": "0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "license": "ISC", + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/append-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", + "integrity": "sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-equal": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", + "dev": true, + "license": "MIT" + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-filter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", + "integrity": "sha512-A2BETWCqhsecSvCkWAeVBFLH6sXEUGASuzkpjL3GR1SlL/PWL6M3J8EAAld2Uubmh39tvkJTqC9LeLHCUKmFXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", + "integrity": "sha512-tVqVTHt+Q5Xb09qRkbu+DidW1yYzz5izWS2Xm2yFm7qJnmUfz4HPzNxbHkdRJbz2lrqI7S+z17xNYdFcBBO8Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-initial": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", + "integrity": "sha512-BC4Yl89vneCYfpLrs5JU2aAu9/a+xWbeKhvISg9PT7eWFB9UlRvI+rKEtk6mgxWr3dSkk9gQ8hCrdqt06NXPdw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-slice": "^1.0.0", + "is-number": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-initial/node_modules/is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-last": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", + "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-last/node_modules/is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-sort": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", + "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-compare": "^1.0.0", + "get-value": "^2.0.6", + "kind-of": "^5.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/async-done": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", + "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.2", + "process-nextick-args": "^2.0.0", + "stream-exhaust": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/async-each": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", + "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT" + }, + "node_modules/async-settle": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", + "integrity": "sha512-VPXfB4Vk49z1LHHodrEQ6Xf7W4gg1w0dAPROHngx7qgDjqmIQ+fXmwgGXTW/ITLai0YLSvWepJOP9EVpMnEAcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-done": "^1.2.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "license": "(MIT OR Apache-2.0)", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/bach": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", + "integrity": "sha512-bZOOfCb3gXBXbTFXq3OZtGR88LwGeJvzu6szttaIzymOTS4ZttBNOWSv7aLZja2EMycKtRYV0Oa8SNKH/zkxvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-filter": "^1.1.1", + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "array-each": "^1.0.0", + "array-initial": "^1.0.0", + "array-last": "^1.1.1", + "async-done": "^1.2.2", + "async-settle": "^1.0.0", + "now-and-later": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/buffer-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz", + "integrity": "sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/cloneable-readable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + } + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/collection-map": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", + "integrity": "sha512-5D2XXSpkOnleOI21TG7p3T0bGAsZ/XknZpKBmGYyluO8pw4zA3K8ZlrBIbC4FXg3m6z/RNFiUFfT2sQK01+UHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-map": "^2.0.2", + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true, + "license": "ISC", + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/copy-props": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz", + "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "each-props": "^1.3.2", + "is-plain-object": "^5.0.0" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" + } + }, + "node_modules/d": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", + "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", + "dev": true, + "license": "ISC", + "dependencies": { + "es5-ext": "^0.10.64", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/debug-fabulous": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.1.0.tgz", + "integrity": "sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "3.X", + "memoizee": "0.4.X", + "object-assign": "4.X" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/default-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", + "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^5.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-resolution": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", + "integrity": "sha512-2xaP6GiwVwOEbXCGoJ4ufgC76m8cj805jrghScewJC2ZDsb9U0b4BIrba+xt/Uytyd0HvQ6+WymSRTfnYj59GQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-newline": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/each-props": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", + "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.1", + "object.defaults": "^1.1.0" + } + }, + "node_modules/each-props/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es5-ext": { + "version": "0.10.64", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", + "dev": true, + "hasInstallScript": true, + "license": "ISC", + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "dev": true, + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", + "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "d": "^1.0.2", + "ext": "^1.7.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dev": true, + "license": "ISC", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/esniff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "dev": true, + "license": "ISC", + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "dev": true, + "license": "ISC", + "dependencies": { + "type": "^2.7.2" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true, + "license": "MIT" + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fast-levenshtein": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", + "integrity": "sha512-Ia0sQNrMPXXkqVFt6w6M1n1oKo3NfKs+mvaV811Jwir7vAk9a6PVV9VPYf6X3BU97QiLEmuW3uXH9u87zDFfdw==", + "dev": true, + "license": "MIT" + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fined/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "dev": true, + "license": "MIT", + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fs-mkdirp-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", + "integrity": "sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.11", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fs-mkdirp-stream/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "Upgrade to fsevents v2 to mitigate potential security issues", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true, + "license": "ISC" + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/glob-watcher": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", + "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "^2.0.0", + "async-done": "^1.2.0", + "chokidar": "^2.0.0", + "is-negated-glob": "^1.0.0", + "just-debounce": "^1.0.0", + "normalize-path": "^3.0.0", + "object.defaults": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glogg": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", + "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "sparkles": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/gulp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", + "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob-watcher": "^5.0.3", + "gulp-cli": "^2.2.0", + "undertaker": "^1.2.1", + "vinyl-fs": "^3.0.0" + }, + "bin": { + "gulp": "bin/gulp.js" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-cli": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", + "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^1.0.1", + "archy": "^1.0.0", + "array-sort": "^1.0.0", + "color-support": "^1.1.3", + "concat-stream": "^1.6.0", + "copy-props": "^2.0.1", + "fancy-log": "^1.3.2", + "gulplog": "^1.0.0", + "interpret": "^1.4.0", + "isobject": "^3.0.1", + "liftoff": "^3.1.0", + "matchdep": "^2.0.0", + "mute-stdout": "^1.0.0", + "pretty-hrtime": "^1.0.0", + "replace-homedir": "^1.0.0", + "semver-greatest-satisfied-range": "^1.1.0", + "v8flags": "^3.2.0", + "yargs": "^7.1.0" + }, + "bin": { + "gulp": "bin/gulp.js" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-less": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/gulp-less/-/gulp-less-5.0.0.tgz", + "integrity": "sha512-W2I3TewO/By6UZsM/wJG3pyK5M6J0NYmJAAhwYXQHR+38S0iDtZasmUgFCH3CQj+pQYw/PAIzxvFvwtEXz1HhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "less": "^3.7.1 || ^4.0.0", + "object-assign": "^4.0.1", + "plugin-error": "^1.0.0", + "replace-ext": "^2.0.0", + "through2": "^4.0.0", + "vinyl-sourcemaps-apply": "^0.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/gulp-sourcemaps": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-3.0.0.tgz", + "integrity": "sha512-RqvUckJkuYqy4VaIH60RMal4ZtG0IbQ6PXMNkNsshEGJ9cldUPRb/YCgboYae+CLAs1HQNb4ADTKCx65HInquQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@gulp-sourcemaps/identity-map": "^2.0.1", + "@gulp-sourcemaps/map-sources": "^1.0.0", + "acorn": "^6.4.1", + "convert-source-map": "^1.0.0", + "css": "^3.0.0", + "debug-fabulous": "^1.0.0", + "detect-newline": "^2.0.0", + "graceful-fs": "^4.0.0", + "source-map": "^0.6.0", + "strip-bom-string": "^1.0.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gulp-sourcemaps/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha512-hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "glogg": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "license": "MIT", + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC" + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-unc-path": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "unc-path-regex": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-valid-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", + "integrity": "sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/just-debounce": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", + "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/last-run": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", + "integrity": "sha512-U/VxvpX4N/rFvPzr3qG5EtLKEnNI0emvIQB3/ecEwv+8GHaUKbIB8vxv1Oai5FAF0d0r7LXHhLLe5K/yChm5GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-resolution": "^2.0.0", + "es6-weak-map": "^2.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "invert-kv": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", + "integrity": "sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow==", + "dev": true, + "license": "MIT", + "dependencies": { + "flush-write-stream": "^1.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/less": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/less/-/less-4.5.1.tgz", + "integrity": "sha512-UKgI3/KON4u6ngSsnDADsUERqhZknsVZbnuzlRZXLQCmfC/MDld42fTydUE9B+Mla1AL6SJ/Pp6SlEFi/AVGfw==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=14" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "source-map": "~0.6.0" + } + }, + "node_modules/liftoff": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", + "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend": "^3.0.0", + "findup-sync": "^3.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/liftoff/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", + "integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es5-ext": "~0.10.2" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/make-iterator/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", + "integrity": "sha512-LFgVbaHIHMqCRuCZyfCtUOq9/Lnzhi7Z0KFUE2fhD54+JN2jLh3hC02RLkqauJ3U4soU6H1J3tfj/Byk7GoEjA==", + "dev": true, + "license": "MIT", + "dependencies": { + "findup-sync": "^2.0.0", + "micromatch": "^3.0.4", + "resolve": "^1.4.0", + "stack-trace": "0.0.10" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/matchdep/node_modules/findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha512-vs+3unmJT45eczmcAZ6zMJtxN3l/QXeccaXQx5cu/MeJMhewVfoWZqibRkOxPnmoR59+Zy5hjabfQc6JLSah4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/matchdep/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/memoizee": { + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.17.tgz", + "integrity": "sha512-DGqD7Hjpi/1or4F/aYAspXKNm5Yili0QDAFAY4QYvpqpgiY6+1jOfqpmByzjxbWd/T9mChbCArXAbDAsTm5oXA==", + "dev": true, + "license": "ISC", + "dependencies": { + "d": "^1.0.2", + "es5-ext": "^0.10.64", + "es6-weak-map": "^2.0.3", + "event-emitter": "^0.3.5", + "is-promise": "^2.2.2", + "lru-queue": "^0.1.0", + "next-tick": "^1.1.0", + "timers-ext": "^0.1.7" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "license": "MIT", + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/mute-stdout": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", + "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/nan": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.24.0.tgz", + "integrity": "sha512-Vpf9qnVW1RaDkoNKFUvfxqAbtI8ncb8OJlqZ9wwpXzWPEsvsB1nvdUi6oYrHIkQ1Y/tMDnr1h4nczS0VB9Xykg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/needle": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", + "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/now-and-later": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", + "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.3.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.reduce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", + "integrity": "sha512-naLhxxpUESbNkRqc35oQ2scZSJueHGQNUfMW/0U37IgN6tE2dgDWg3whf+NEliy3F/QysrO48XKUz/nGPe+AQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "^2.0.1" + } + }, + "node_modules/os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "lcid": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-root-regex": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-type/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true, + "license": "ISC" + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plugin-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", + "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^1.0.1", + "arr-diff": "^4.0.0", + "arr-union": "^3.1.0", + "extend-shallow": "^3.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/plugin-error/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plugin-error/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plugin-error/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/remove-bom-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", + "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5", + "is-utf8": "^0.2.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/remove-bom-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", + "integrity": "sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "remove-bom-buffer": "^3.0.0", + "safe-buffer": "^5.1.0", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remove-bom-stream/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true, + "license": "ISC" + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/replace-ext": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", + "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/replace-homedir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", + "integrity": "sha512-CHPV/GAglbIB1tnQgaiysb8H2yCy8WQ7lcEwQ/eT+kLj0QHV8LnJW0zpqpE7RSkrMSRoa+EBoag86clf7WAgSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1", + "is-absolute": "^1.0.0", + "remove-trailing-separator": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", + "dev": true, + "license": "ISC" + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", + "integrity": "sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "value-or-function": "^3.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "dev": true, + "license": "MIT" + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/sax": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.4.tgz", + "integrity": "sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==", + "dev": true, + "license": "BlueOak-1.0.0", + "optional": true, + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/semver-greatest-satisfied-range": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", + "integrity": "sha512-Ny/iyOzSSa8M5ML46IAx3iXc6tfOsYU2R4AXi2UpHk60Zrgyq6eqPj/xiOfS0rRl/iiQ/rdJkVjw/5cdUyCntQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "sver-compat": "^1.5.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true, + "license": "ISC" + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "license": "MIT", + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "license": "MIT", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "license": "MIT", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", + "dev": true, + "license": "MIT" + }, + "node_modules/sparkles": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", + "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.22", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz", + "integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/stream-exhaust": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", + "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", + "dev": true, + "license": "MIT" + }, + "node_modules/stream-shift": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sver-compat": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", + "integrity": "sha512-aFTHfmjwizMNlNE6dsGmoAM4lHjL0CyiobWaFiXWSlD7cIxshW422Nb8KbXCmR6z+0ZEPY+daXJrDyh/vuwTyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + } + }, + "node_modules/through2-filter/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/timers-ext": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.8.tgz", + "integrity": "sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww==", + "dev": true, + "license": "ISC", + "dependencies": { + "es5-ext": "^0.10.64", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-through": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", + "integrity": "sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/to-through/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/type": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz", + "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/undertaker": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", + "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "bach": "^1.0.0", + "collection-map": "^1.0.0", + "es6-weak-map": "^2.0.1", + "fast-levenshtein": "^1.0.0", + "last-run": "^1.1.0", + "object.defaults": "^1.0.0", + "object.reduce": "^1.0.0", + "undertaker-registry": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/undertaker-registry": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", + "integrity": "sha512-UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unique-stream": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.4.0.tgz", + "integrity": "sha512-V6QarSfeSgDipGA9EZdoIzu03ZDlOFkk+FbEP5cwgrZXN3iIkYR91IjU2EnM6rB835kGQsqHX8qncObTXV+6KA==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "3.0.0" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true, + "license": "MIT" + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/value-or-function": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", + "integrity": "sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-fs": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", + "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "dev": true, + "license": "MIT", + "dependencies": { + "fs-mkdirp-stream": "^1.0.0", + "glob-stream": "^6.1.0", + "graceful-fs": "^4.0.0", + "is-valid-glob": "^1.0.0", + "lazystream": "^1.0.0", + "lead": "^1.0.0", + "object.assign": "^4.0.4", + "pumpify": "^1.3.5", + "readable-stream": "^2.3.3", + "remove-bom-buffer": "^3.0.0", + "remove-bom-stream": "^1.2.0", + "resolve-options": "^1.1.0", + "through2": "^2.0.0", + "to-through": "^2.0.0", + "value-or-function": "^3.0.0", + "vinyl": "^2.0.0", + "vinyl-sourcemap": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-fs/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/vinyl-sourcemap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", + "integrity": "sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "append-buffer": "^1.0.2", + "convert-source-map": "^1.5.0", + "graceful-fs": "^4.1.6", + "normalize-path": "^2.1.1", + "now-and-later": "^2.0.0", + "remove-bom-buffer": "^3.0.0", + "vinyl": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-sourcemap/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vinyl-sourcemaps-apply": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", + "integrity": "sha512-+oDh3KYZBoZC8hfocrbrxbLUeaYtQK7J5WU5Br9VqWqmCll3tFJqKp97GC9GmMsVIL0qnx2DgEDVxdo5EZ5sSw==", + "dev": true, + "license": "ISC", + "dependencies": { + "source-map": "^0.5.1" + } + }, + "node_modules/vinyl-sourcemaps-apply/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vinyl/node_modules/replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yargs": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz", + "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.1" + } + }, + "node_modules/yargs-parser": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", + "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^3.0.0", + "object.assign": "^4.1.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..e03d7f6 --- /dev/null +++ b/package.json @@ -0,0 +1,16 @@ +{ + "name": "fvtt-yggdrasill", + "version": "12.0.0", + "description": "Yggdrasill RPG for FoundryVTT - French", + "scripts": { + "build": "gulp build", + "watch": "gulp watch" + }, + "author": "Uberwald/LeRatierBretonnien", + "license": "SEE LICENSE IN LICENCE.txt", + "devDependencies": { + "gulp": "^4.0.2", + "gulp-less": "^5.0.0", + "gulp-sourcemaps": "^3.0.0" + } +} diff --git a/packs/armes/000038.log b/packs/armes/000051.log similarity index 100% rename from packs/armes/000038.log rename to packs/armes/000051.log diff --git a/packs/armes/CURRENT b/packs/armes/CURRENT index ecb0b4b..a980eef 100644 --- a/packs/armes/CURRENT +++ b/packs/armes/CURRENT @@ -1 +1 @@ -MANIFEST-000036 +MANIFEST-000049 diff --git a/packs/armes/LOG b/packs/armes/LOG index c4c3766..f4da168 100644 --- a/packs/armes/LOG +++ b/packs/armes/LOG @@ -1,15 +1,8 @@ -2025/05/01-23:39:32.648964 7fe00affd6c0 Recovering log #34 -2025/05/01-23:39:32.659213 7fe00affd6c0 Delete type=0 #34 -2025/05/01-23:39:32.659296 7fe00affd6c0 Delete type=3 #32 -2025/05/02-00:00:01.649791 7fe0093ff6c0 Level-0 table #39: started -2025/05/02-00:00:01.653017 7fe0093ff6c0 Level-0 table #39: 2327 bytes OK -2025/05/02-00:00:01.659302 7fe0093ff6c0 Delete type=0 #37 -2025/05/02-00:00:01.659500 7fe0093ff6c0 Manual compaction at level-0 from '!items!3VBHojfjdD504ibv' @ 72057594037927935 : 1 .. '!items!x3aMYeKa73GxJ1Ge' @ 0 : 0; will stop at (end) -2025/05/02-00:00:01.690344 7fe0093ff6c0 Manual compaction at level-1 from '!items!3VBHojfjdD504ibv' @ 72057594037927935 : 1 .. '!items!x3aMYeKa73GxJ1Ge' @ 0 : 0; will stop at '!items!x3aMYeKa73GxJ1Ge' @ 45 : 1 -2025/05/02-00:00:01.690353 7fe0093ff6c0 Compacting 1@1 + 1@2 files -2025/05/02-00:00:01.693550 7fe0093ff6c0 Generated table #40@1: 15 keys, 2327 bytes -2025/05/02-00:00:01.693570 7fe0093ff6c0 Compacted 1@1 + 1@2 files => 2327 bytes -2025/05/02-00:00:01.700976 7fe0093ff6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2025/05/02-00:00:01.701159 7fe0093ff6c0 Delete type=2 #5 -2025/05/02-00:00:01.701309 7fe0093ff6c0 Delete type=2 #39 -2025/05/02-00:00:01.701436 7fe0093ff6c0 Manual compaction at level-1 from '!items!x3aMYeKa73GxJ1Ge' @ 45 : 1 .. '!items!x3aMYeKa73GxJ1Ge' @ 0 : 0; will stop at (end) +2026/01/11-22:38:18.324856 7fd4637fe6c0 Recovering log #47 +2026/01/11-22:38:18.334440 7fd4637fe6c0 Delete type=3 #45 +2026/01/11-22:38:18.334494 7fd4637fe6c0 Delete type=0 #47 +2026/01/11-22:39:21.508921 7fd4627fc6c0 Level-0 table #52: started +2026/01/11-22:39:21.508963 7fd4627fc6c0 Level-0 table #52: 0 bytes OK +2026/01/11-22:39:21.514976 7fd4627fc6c0 Delete type=0 #50 +2026/01/11-22:39:21.515163 7fd4627fc6c0 Manual compaction at level-0 from '!items!3VBHojfjdD504ibv' @ 72057594037927935 : 1 .. '!items!x3aMYeKa73GxJ1Ge' @ 0 : 0; will stop at (end) +2026/01/11-22:39:21.515223 7fd4627fc6c0 Manual compaction at level-1 from '!items!3VBHojfjdD504ibv' @ 72057594037927935 : 1 .. '!items!x3aMYeKa73GxJ1Ge' @ 0 : 0; will stop at (end) diff --git a/packs/armes/LOG.old b/packs/armes/LOG.old index c955629..b9d3981 100644 --- a/packs/armes/LOG.old +++ b/packs/armes/LOG.old @@ -1,8 +1,8 @@ -2024/05/02-09:20:30.852464 7f844c2006c0 Recovering log #30 -2024/05/02-09:20:30.862615 7f844c2006c0 Delete type=3 #28 -2024/05/02-09:20:30.862709 7f844c2006c0 Delete type=0 #30 -2024/05/02-09:24:00.910769 7f844ae006c0 Level-0 table #35: started -2024/05/02-09:24:00.910814 7f844ae006c0 Level-0 table #35: 0 bytes OK -2024/05/02-09:24:00.917379 7f844ae006c0 Delete type=0 #33 -2024/05/02-09:24:00.931103 7f844ae006c0 Manual compaction at level-0 from '!items!3VBHojfjdD504ibv' @ 72057594037927935 : 1 .. '!items!x3aMYeKa73GxJ1Ge' @ 0 : 0; will stop at (end) -2024/05/02-09:24:00.931173 7f844ae006c0 Manual compaction at level-1 from '!items!3VBHojfjdD504ibv' @ 72057594037927935 : 1 .. '!items!x3aMYeKa73GxJ1Ge' @ 0 : 0; will stop at (end) +2026/01/10-23:11:15.534956 7fd478fff6c0 Recovering log #43 +2026/01/10-23:11:15.588401 7fd478fff6c0 Delete type=3 #41 +2026/01/10-23:11:15.588486 7fd478fff6c0 Delete type=0 #43 +2026/01/11-22:24:56.958843 7fd4627fc6c0 Level-0 table #48: started +2026/01/11-22:24:56.958872 7fd4627fc6c0 Level-0 table #48: 0 bytes OK +2026/01/11-22:24:57.022608 7fd4627fc6c0 Delete type=0 #46 +2026/01/11-22:24:57.022770 7fd4627fc6c0 Manual compaction at level-0 from '!items!3VBHojfjdD504ibv' @ 72057594037927935 : 1 .. '!items!x3aMYeKa73GxJ1Ge' @ 0 : 0; will stop at (end) +2026/01/11-22:24:57.022811 7fd4627fc6c0 Manual compaction at level-1 from '!items!3VBHojfjdD504ibv' @ 72057594037927935 : 1 .. '!items!x3aMYeKa73GxJ1Ge' @ 0 : 0; will stop at (end) diff --git a/packs/armes/MANIFEST-000036 b/packs/armes/MANIFEST-000036 deleted file mode 100644 index af4f7611f639b94c9230c61f9d6b49849636010f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmdNC=Mzq3U}TiaNi9pwNlDUksw_z@&n!-L&d)7KEJ`fNFJfn6-7G1um|2pVTdZgt z=H!u|m6ny_VrpQLnN-FozyJm?`3mDi-^f(&L~~>J3NJ(VR7QS?eCzuw${Y-gOsbp= z%xWxh^>-9QeSusxAXkG$mz`04x)96=3@hXbSfLA%*L1KjEQOk>$)d~32s04FO;8PN PjOuJmtn5r0l-msegX2sS diff --git a/packs/armes/MANIFEST-000049 b/packs/armes/MANIFEST-000049 new file mode 100644 index 0000000000000000000000000000000000000000..da47456f3a6bfb09150a1abca3c1784e20a4397c GIT binary patch literal 168 zcmWI9xIe#{fss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfDlUNN&IHMdx?!Z^`4 zGSxfL+}ORs%g{ZQQI`P>*qJn@3&9i_hdFuVXQgGOxR@H4WG0m{%0m>v 3197 bytes -2025/05/02-00:00:01.751538 7fe0093ff6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2025/05/02-00:00:01.751680 7fe0093ff6c0 Delete type=2 #5 -2025/05/02-00:00:01.751873 7fe0093ff6c0 Delete type=2 #39 -2025/05/02-00:00:01.782461 7fe0093ff6c0 Manual compaction at level-1 from '!items!qUXBrstsh5Oo8FEx' @ 24 : 1 .. '!items!qUXBrstsh5Oo8FEx' @ 0 : 0; will stop at (end) +2026/01/11-22:38:18.336786 7fd462ffd6c0 Recovering log #47 +2026/01/11-22:38:18.346917 7fd462ffd6c0 Delete type=3 #45 +2026/01/11-22:38:18.347006 7fd462ffd6c0 Delete type=0 #47 +2026/01/11-22:39:21.528136 7fd4627fc6c0 Level-0 table #52: started +2026/01/11-22:39:21.528192 7fd4627fc6c0 Level-0 table #52: 0 bytes OK +2026/01/11-22:39:21.534692 7fd4627fc6c0 Delete type=0 #50 +2026/01/11-22:39:21.541091 7fd4627fc6c0 Manual compaction at level-0 from '!items!4YGPuZ813BWQaNbq' @ 72057594037927935 : 1 .. '!items!qUXBrstsh5Oo8FEx' @ 0 : 0; will stop at (end) +2026/01/11-22:39:21.541131 7fd4627fc6c0 Manual compaction at level-1 from '!items!4YGPuZ813BWQaNbq' @ 72057594037927935 : 1 .. '!items!qUXBrstsh5Oo8FEx' @ 0 : 0; will stop at (end) diff --git a/packs/armures/LOG.old b/packs/armures/LOG.old index 46ed856..78ec926 100644 --- a/packs/armures/LOG.old +++ b/packs/armures/LOG.old @@ -1,8 +1,8 @@ -2024/05/02-09:20:30.867038 7f844cc006c0 Recovering log #30 -2024/05/02-09:20:30.878552 7f844cc006c0 Delete type=3 #28 -2024/05/02-09:20:30.878665 7f844cc006c0 Delete type=0 #30 -2024/05/02-09:24:00.917585 7f844ae006c0 Level-0 table #35: started -2024/05/02-09:24:00.917644 7f844ae006c0 Level-0 table #35: 0 bytes OK -2024/05/02-09:24:00.924086 7f844ae006c0 Delete type=0 #33 -2024/05/02-09:24:00.931117 7f844ae006c0 Manual compaction at level-0 from '!items!4YGPuZ813BWQaNbq' @ 72057594037927935 : 1 .. '!items!qUXBrstsh5Oo8FEx' @ 0 : 0; will stop at (end) -2024/05/02-09:24:00.931187 7f844ae006c0 Manual compaction at level-1 from '!items!4YGPuZ813BWQaNbq' @ 72057594037927935 : 1 .. '!items!qUXBrstsh5Oo8FEx' @ 0 : 0; will stop at (end) +2026/01/10-23:11:15.590605 7fd4637fe6c0 Recovering log #43 +2026/01/10-23:11:15.651052 7fd4637fe6c0 Delete type=3 #41 +2026/01/10-23:11:15.651127 7fd4637fe6c0 Delete type=0 #43 +2026/01/11-22:24:57.022896 7fd4627fc6c0 Level-0 table #48: started +2026/01/11-22:24:57.022927 7fd4627fc6c0 Level-0 table #48: 0 bytes OK +2026/01/11-22:24:57.068574 7fd4627fc6c0 Delete type=0 #46 +2026/01/11-22:24:57.175347 7fd4627fc6c0 Manual compaction at level-0 from '!items!4YGPuZ813BWQaNbq' @ 72057594037927935 : 1 .. '!items!qUXBrstsh5Oo8FEx' @ 0 : 0; will stop at (end) +2026/01/11-22:24:57.175395 7fd4627fc6c0 Manual compaction at level-1 from '!items!4YGPuZ813BWQaNbq' @ 72057594037927935 : 1 .. '!items!qUXBrstsh5Oo8FEx' @ 0 : 0; will stop at (end) diff --git a/packs/armures/MANIFEST-000036 b/packs/armures/MANIFEST-000036 deleted file mode 100644 index 8a5a7ac4429ed5b78f3c57d0777fcfa6fd8dde3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmX@Zx_x0H10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAei1tp>qB{Y#mth_++szO zNcVu!C<{Ylr|`f;zobG&P6jZ5$rpx3I29F_6la+F=UceBRxolvU|1nYzzPY7{MnNw$)!*;HCZHB8DR!uxCyF( PjZvMAiIts6gL1n8FXmB0 diff --git a/packs/armures/MANIFEST-000049 b/packs/armures/MANIFEST-000049 new file mode 100644 index 0000000000000000000000000000000000000000..673c2703b6a6fe3ba76baaeafad56160be3065f4 GIT binary patch literal 168 zcmWeQZtK>}z{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&P8Nub5eqnp><`7#iVJ zR9sS=Vd|f6;pSSwD8T>*>`WSeC18q7BHaT@qbv-Kox%eX{gMh91tE%H^0*8+aJ=O` b2LmIM5hnw)F^fd%EXUa(t}&2n$|3;(EF>%n literal 0 HcmV?d00001 diff --git a/packs/blessures/000038.log b/packs/blessures/000051.log similarity index 100% rename from packs/blessures/000038.log rename to packs/blessures/000051.log diff --git a/packs/blessures/CURRENT b/packs/blessures/CURRENT index ecb0b4b..a980eef 100644 --- a/packs/blessures/CURRENT +++ b/packs/blessures/CURRENT @@ -1 +1 @@ -MANIFEST-000036 +MANIFEST-000049 diff --git a/packs/blessures/LOG b/packs/blessures/LOG index ffb8546..7bb2ef0 100644 --- a/packs/blessures/LOG +++ b/packs/blessures/LOG @@ -1,15 +1,8 @@ -2025/05/01-23:39:32.635609 7fe00b7fe6c0 Recovering log #34 -2025/05/01-23:39:32.645474 7fe00b7fe6c0 Delete type=0 #34 -2025/05/01-23:39:32.645571 7fe00b7fe6c0 Delete type=3 #32 -2025/05/02-00:00:01.629647 7fe0093ff6c0 Level-0 table #39: started -2025/05/02-00:00:01.633062 7fe0093ff6c0 Level-0 table #39: 4373 bytes OK -2025/05/02-00:00:01.639223 7fe0093ff6c0 Delete type=0 #37 -2025/05/02-00:00:01.659477 7fe0093ff6c0 Manual compaction at level-0 from '!items!4rM9IvDuijsjbAhI' @ 72057594037927935 : 1 .. '!items!swTZ43FJRWkqjR75' @ 0 : 0; will stop at (end) -2025/05/02-00:00:01.670214 7fe0093ff6c0 Manual compaction at level-1 from '!items!4rM9IvDuijsjbAhI' @ 72057594037927935 : 1 .. '!items!swTZ43FJRWkqjR75' @ 0 : 0; will stop at '!items!swTZ43FJRWkqjR75' @ 45 : 1 -2025/05/02-00:00:01.670224 7fe0093ff6c0 Compacting 1@1 + 1@2 files -2025/05/02-00:00:01.673584 7fe0093ff6c0 Generated table #40@1: 15 keys, 4373 bytes -2025/05/02-00:00:01.673615 7fe0093ff6c0 Compacted 1@1 + 1@2 files => 4373 bytes -2025/05/02-00:00:01.679975 7fe0093ff6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2025/05/02-00:00:01.680089 7fe0093ff6c0 Delete type=2 #5 -2025/05/02-00:00:01.680247 7fe0093ff6c0 Delete type=2 #39 -2025/05/02-00:00:01.701412 7fe0093ff6c0 Manual compaction at level-1 from '!items!swTZ43FJRWkqjR75' @ 45 : 1 .. '!items!swTZ43FJRWkqjR75' @ 0 : 0; will stop at (end) +2026/01/11-22:38:18.312395 7fd463fff6c0 Recovering log #47 +2026/01/11-22:38:18.322989 7fd463fff6c0 Delete type=3 #45 +2026/01/11-22:38:18.323061 7fd463fff6c0 Delete type=0 #47 +2026/01/11-22:39:21.501777 7fd4627fc6c0 Level-0 table #52: started +2026/01/11-22:39:21.501807 7fd4627fc6c0 Level-0 table #52: 0 bytes OK +2026/01/11-22:39:21.508771 7fd4627fc6c0 Delete type=0 #50 +2026/01/11-22:39:21.515149 7fd4627fc6c0 Manual compaction at level-0 from '!items!4rM9IvDuijsjbAhI' @ 72057594037927935 : 1 .. '!items!swTZ43FJRWkqjR75' @ 0 : 0; will stop at (end) +2026/01/11-22:39:21.515211 7fd4627fc6c0 Manual compaction at level-1 from '!items!4rM9IvDuijsjbAhI' @ 72057594037927935 : 1 .. '!items!swTZ43FJRWkqjR75' @ 0 : 0; will stop at (end) diff --git a/packs/blessures/LOG.old b/packs/blessures/LOG.old index fa95b8e..c05a7e4 100644 --- a/packs/blessures/LOG.old +++ b/packs/blessures/LOG.old @@ -1,8 +1,8 @@ -2024/05/02-09:20:30.837163 7f844cc006c0 Recovering log #30 -2024/05/02-09:20:30.848664 7f844cc006c0 Delete type=3 #28 -2024/05/02-09:20:30.848767 7f844cc006c0 Delete type=0 #30 -2024/05/02-09:24:00.903725 7f844ae006c0 Level-0 table #35: started -2024/05/02-09:24:00.903795 7f844ae006c0 Level-0 table #35: 0 bytes OK -2024/05/02-09:24:00.910581 7f844ae006c0 Delete type=0 #33 -2024/05/02-09:24:00.931083 7f844ae006c0 Manual compaction at level-0 from '!items!4rM9IvDuijsjbAhI' @ 72057594037927935 : 1 .. '!items!swTZ43FJRWkqjR75' @ 0 : 0; will stop at (end) -2024/05/02-09:24:00.931143 7f844ae006c0 Manual compaction at level-1 from '!items!4rM9IvDuijsjbAhI' @ 72057594037927935 : 1 .. '!items!swTZ43FJRWkqjR75' @ 0 : 0; will stop at (end) +2026/01/10-23:11:15.481460 7fd463fff6c0 Recovering log #43 +2026/01/10-23:11:15.532751 7fd463fff6c0 Delete type=3 #41 +2026/01/10-23:11:15.532810 7fd463fff6c0 Delete type=0 #43 +2026/01/11-22:24:56.893350 7fd4627fc6c0 Level-0 table #48: started +2026/01/11-22:24:56.893388 7fd4627fc6c0 Level-0 table #48: 0 bytes OK +2026/01/11-22:24:56.958710 7fd4627fc6c0 Delete type=0 #46 +2026/01/11-22:24:57.022759 7fd4627fc6c0 Manual compaction at level-0 from '!items!4rM9IvDuijsjbAhI' @ 72057594037927935 : 1 .. '!items!swTZ43FJRWkqjR75' @ 0 : 0; will stop at (end) +2026/01/11-22:24:57.022800 7fd4627fc6c0 Manual compaction at level-1 from '!items!4rM9IvDuijsjbAhI' @ 72057594037927935 : 1 .. '!items!swTZ43FJRWkqjR75' @ 0 : 0; will stop at (end) diff --git a/packs/blessures/MANIFEST-000036 b/packs/blessures/MANIFEST-000036 deleted file mode 100644 index 4f9d0242672651bceb6b0a91a11d664d1bf38c90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmWIfE8v&Nz{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&PMDI#pL*F|#B!w^-4n z$k)=d%%wClt2iskF~gHlfB_6(^2OyLQ6|Q2UP0m6g;_!7ri}a$`PTPWlsOm}nN&F$ znAKS1R0IMq_yW0VK&}RhE<2<8R3(@Z7*@y=utFCiKkwp(%2KGAnk>4kj4%T++yvFY P#;DH5#LCX3LAl)kzK&3z diff --git a/packs/blessures/MANIFEST-000049 b/packs/blessures/MANIFEST-000049 new file mode 100644 index 0000000000000000000000000000000000000000..d5136972171ca0b9863eef5978ed773ce8359573 GIT binary patch literal 168 zcmY%Scqy`(fss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfDlUNN&IHMdx?xI84v z#MsR%C_K9`E6CiGQI`P>*qJn@D!~+)6!}_umbsK>W)){8Ic9h=%0m>v 18501 bytes -2025/05/02-00:00:01.618471 7fe0093ff6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2025/05/02-00:00:01.618573 7fe0093ff6c0 Delete type=2 #5 -2025/05/02-00:00:01.618669 7fe0093ff6c0 Delete type=2 #39 -2025/05/02-00:00:01.618752 7fe0093ff6c0 Manual compaction at level-1 from '!items!ylqZMDyXujUlSorr' @ 90 : 1 .. '!items!ylqZMDyXujUlSorr' @ 0 : 0; will stop at (end) +2026/01/11-22:38:18.238976 7fd4637fe6c0 Recovering log #47 +2026/01/11-22:38:18.249505 7fd4637fe6c0 Delete type=3 #45 +2026/01/11-22:38:18.249563 7fd4637fe6c0 Delete type=0 #47 +2026/01/11-22:39:21.489412 7fd4627fc6c0 Level-0 table #52: started +2026/01/11-22:39:21.489449 7fd4627fc6c0 Level-0 table #52: 0 bytes OK +2026/01/11-22:39:21.495431 7fd4627fc6c0 Delete type=0 #50 +2026/01/11-22:39:21.515115 7fd4627fc6c0 Manual compaction at level-0 from '!items!26CQEICWZs8Gw4Xi' @ 72057594037927935 : 1 .. '!items!ylqZMDyXujUlSorr' @ 0 : 0; will stop at (end) +2026/01/11-22:39:21.515177 7fd4627fc6c0 Manual compaction at level-1 from '!items!26CQEICWZs8Gw4Xi' @ 72057594037927935 : 1 .. '!items!ylqZMDyXujUlSorr' @ 0 : 0; will stop at (end) diff --git a/packs/competences-generales/LOG.old b/packs/competences-generales/LOG.old index 0148f50..1e67ec3 100644 --- a/packs/competences-generales/LOG.old +++ b/packs/competences-generales/LOG.old @@ -1,8 +1,8 @@ -2024/05/02-09:20:30.743214 7f844cc006c0 Recovering log #30 -2024/05/02-09:20:30.753988 7f844cc006c0 Delete type=3 #28 -2024/05/02-09:20:30.754165 7f844cc006c0 Delete type=0 #30 -2024/05/02-09:24:00.851545 7f844ae006c0 Level-0 table #35: started -2024/05/02-09:24:00.851582 7f844ae006c0 Level-0 table #35: 0 bytes OK -2024/05/02-09:24:00.858223 7f844ae006c0 Delete type=0 #33 -2024/05/02-09:24:00.864778 7f844ae006c0 Manual compaction at level-0 from '!items!26CQEICWZs8Gw4Xi' @ 72057594037927935 : 1 .. '!items!ylqZMDyXujUlSorr' @ 0 : 0; will stop at (end) -2024/05/02-09:24:00.874940 7f844ae006c0 Manual compaction at level-1 from '!items!26CQEICWZs8Gw4Xi' @ 72057594037927935 : 1 .. '!items!ylqZMDyXujUlSorr' @ 0 : 0; will stop at (end) +2026/01/10-23:11:15.082653 7fd4637fe6c0 Recovering log #43 +2026/01/10-23:11:15.150829 7fd4637fe6c0 Delete type=3 #41 +2026/01/10-23:11:15.150897 7fd4637fe6c0 Delete type=0 #43 +2026/01/11-22:24:56.587172 7fd4627fc6c0 Level-0 table #48: started +2026/01/11-22:24:56.587208 7fd4627fc6c0 Level-0 table #48: 0 bytes OK +2026/01/11-22:24:56.640280 7fd4627fc6c0 Delete type=0 #46 +2026/01/11-22:24:56.769281 7fd4627fc6c0 Manual compaction at level-0 from '!items!26CQEICWZs8Gw4Xi' @ 72057594037927935 : 1 .. '!items!ylqZMDyXujUlSorr' @ 0 : 0; will stop at (end) +2026/01/11-22:24:56.769318 7fd4627fc6c0 Manual compaction at level-1 from '!items!26CQEICWZs8Gw4Xi' @ 72057594037927935 : 1 .. '!items!ylqZMDyXujUlSorr' @ 0 : 0; will stop at (end) diff --git a/packs/competences-generales/MANIFEST-000036 b/packs/competences-generales/MANIFEST-000036 deleted file mode 100644 index b5a979b1eabed25928a4428c8d22505b31b5202b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 330 zcmdnCF{Leufss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfcQwf8EcykcfaYHqQj zk(qO#tEY2#RI!D7xk*GOqdWr`z~n1)3Zr~oDkDm>LUV%ii;5WKAo3MOE%F=;j7+MW z49sdQHd-=wmiPg=YCx_AOB6e!`q2rv?XV?aM-)U}eA&TQWl%#kS)y3s24Xl0s)3DB OosEf=ok@cVmID9}nN{lm diff --git a/packs/competences-generales/MANIFEST-000049 b/packs/competences-generales/MANIFEST-000049 new file mode 100644 index 0000000000000000000000000000000000000000..39fd305e0e877a67b1251c19025e62d09338f103 GIT binary patch literal 169 zcmX@Pz_X@>fss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfDlUNN&IHMdx?GN&-g z*QGL|G%GYGIKQZfF^T~U*qJnrPJpX2GII`e^>hx8Dz 1604 bytes -2025/05/02-00:00:01.608938 7fe0093ff6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2025/05/02-00:00:01.609061 7fe0093ff6c0 Delete type=2 #5 -2025/05/02-00:00:01.609167 7fe0093ff6c0 Delete type=2 #39 -2025/05/02-00:00:01.618745 7fe0093ff6c0 Manual compaction at level-1 from '!items!mIBiTKqfqiiepeyz' @ 9 : 1 .. '!items!mIBiTKqfqiiepeyz' @ 0 : 0; will stop at (end) +2026/01/11-22:38:18.263695 7fd462ffd6c0 Recovering log #47 +2026/01/11-22:38:18.273321 7fd462ffd6c0 Delete type=3 #45 +2026/01/11-22:38:18.273380 7fd462ffd6c0 Delete type=0 #47 +2026/01/11-22:39:21.475468 7fd4627fc6c0 Level-0 table #52: started +2026/01/11-22:39:21.475500 7fd4627fc6c0 Level-0 table #52: 0 bytes OK +2026/01/11-22:39:21.482505 7fd4627fc6c0 Delete type=0 #50 +2026/01/11-22:39:21.489246 7fd4627fc6c0 Manual compaction at level-0 from '!items!RAhkadJOfEnVBLpy' @ 72057594037927935 : 1 .. '!items!mIBiTKqfqiiepeyz' @ 0 : 0; will stop at (end) +2026/01/11-22:39:21.489296 7fd4627fc6c0 Manual compaction at level-1 from '!items!RAhkadJOfEnVBLpy' @ 72057594037927935 : 1 .. '!items!mIBiTKqfqiiepeyz' @ 0 : 0; will stop at (end) diff --git a/packs/competences-magiques/LOG.old b/packs/competences-magiques/LOG.old index fe7e2a9..b4458e6 100644 --- a/packs/competences-magiques/LOG.old +++ b/packs/competences-magiques/LOG.old @@ -1,8 +1,8 @@ -2024/05/02-09:20:30.774893 7f844cc006c0 Recovering log #30 -2024/05/02-09:20:30.785238 7f844cc006c0 Delete type=3 #28 -2024/05/02-09:20:30.785346 7f844cc006c0 Delete type=0 #30 -2024/05/02-09:24:00.874955 7f844ae006c0 Level-0 table #35: started -2024/05/02-09:24:00.875023 7f844ae006c0 Level-0 table #35: 0 bytes OK -2024/05/02-09:24:00.882281 7f844ae006c0 Delete type=0 #33 -2024/05/02-09:24:00.896915 7f844ae006c0 Manual compaction at level-0 from '!items!RAhkadJOfEnVBLpy' @ 72057594037927935 : 1 .. '!items!mIBiTKqfqiiepeyz' @ 0 : 0; will stop at (end) -2024/05/02-09:24:00.903558 7f844ae006c0 Manual compaction at level-1 from '!items!RAhkadJOfEnVBLpy' @ 72057594037927935 : 1 .. '!items!mIBiTKqfqiiepeyz' @ 0 : 0; will stop at (end) +2026/01/10-23:11:15.230349 7fd463fff6c0 Recovering log #43 +2026/01/10-23:11:15.289420 7fd463fff6c0 Delete type=3 #41 +2026/01/10-23:11:15.289495 7fd463fff6c0 Delete type=0 #43 +2026/01/11-22:24:56.831880 7fd4627fc6c0 Level-0 table #48: started +2026/01/11-22:24:56.831912 7fd4627fc6c0 Level-0 table #48: 0 bytes OK +2026/01/11-22:24:56.893147 7fd4627fc6c0 Delete type=0 #46 +2026/01/11-22:24:57.022746 7fd4627fc6c0 Manual compaction at level-0 from '!items!RAhkadJOfEnVBLpy' @ 72057594037927935 : 1 .. '!items!mIBiTKqfqiiepeyz' @ 0 : 0; will stop at (end) +2026/01/11-22:24:57.022788 7fd4627fc6c0 Manual compaction at level-1 from '!items!RAhkadJOfEnVBLpy' @ 72057594037927935 : 1 .. '!items!mIBiTKqfqiiepeyz' @ 0 : 0; will stop at (end) diff --git a/packs/competences-magiques/MANIFEST-000036 b/packs/competences-magiques/MANIFEST-000036 deleted file mode 100644 index 505d2b6a7eb0b840342bac668cca53f11abd6c43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmWfc9^#P5z{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&PMD+9M*bm|2pVTdWx5 zn30{B;^m*_niuBeQ&7ps!T<&^`CLz@%n8>h864ttl)&muX5nIUJ5l+lZBI&5oREUo1hxl P7}eRBSlO90D7PB`_jyuf diff --git a/packs/competences-magiques/MANIFEST-000049 b/packs/competences-magiques/MANIFEST-000049 new file mode 100644 index 0000000000000000000000000000000000000000..7daad95c72c1c6b34aaebbbb193bd79960396312 GIT binary patch literal 168 zcmbPdTz|Tmfss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfDlUNN&IHMdwX*V8F8 z#Je!9Ff%i?AhoiJk&^)o*qJnr@W2!WIc8)hrg-_Mx#opA`4m(#vO^TX 3895 bytes -2025/05/02-00:00:01.586914 7fe0093ff6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2025/05/02-00:00:01.587137 7fe0093ff6c0 Delete type=2 #5 -2025/05/02-00:00:01.587348 7fe0093ff6c0 Delete type=2 #39 -2025/05/02-00:00:01.618727 7fe0093ff6c0 Manual compaction at level-1 from '!items!mJSWXawEGARKlNja' @ 24 : 1 .. '!items!mJSWXawEGARKlNja' @ 0 : 0; will stop at (end) +2026/01/11-22:38:18.251489 7fd478fff6c0 Recovering log #47 +2026/01/11-22:38:18.261390 7fd478fff6c0 Delete type=3 #45 +2026/01/11-22:38:18.261445 7fd478fff6c0 Delete type=0 #47 +2026/01/11-22:39:21.463016 7fd4627fc6c0 Level-0 table #52: started +2026/01/11-22:39:21.463081 7fd4627fc6c0 Level-0 table #52: 0 bytes OK +2026/01/11-22:39:21.469148 7fd4627fc6c0 Delete type=0 #50 +2026/01/11-22:39:21.489211 7fd4627fc6c0 Manual compaction at level-0 from '!items!6IqVsJsYPrbxUJZX' @ 72057594037927935 : 1 .. '!items!mJSWXawEGARKlNja' @ 0 : 0; will stop at (end) +2026/01/11-22:39:21.489274 7fd4627fc6c0 Manual compaction at level-1 from '!items!6IqVsJsYPrbxUJZX' @ 72057594037927935 : 1 .. '!items!mJSWXawEGARKlNja' @ 0 : 0; will stop at (end) diff --git a/packs/competences-martiales/LOG.old b/packs/competences-martiales/LOG.old index f682205..6c3535f 100644 --- a/packs/competences-martiales/LOG.old +++ b/packs/competences-martiales/LOG.old @@ -1,8 +1,8 @@ -2024/05/02-09:20:30.758816 7f844c2006c0 Recovering log #30 -2024/05/02-09:20:30.770889 7f844c2006c0 Delete type=3 #28 -2024/05/02-09:20:30.770994 7f844c2006c0 Delete type=0 #30 -2024/05/02-09:24:00.858366 7f844ae006c0 Level-0 table #35: started -2024/05/02-09:24:00.858395 7f844ae006c0 Level-0 table #35: 0 bytes OK -2024/05/02-09:24:00.864599 7f844ae006c0 Delete type=0 #33 -2024/05/02-09:24:00.864804 7f844ae006c0 Manual compaction at level-0 from '!items!6IqVsJsYPrbxUJZX' @ 72057594037927935 : 1 .. '!items!mJSWXawEGARKlNja' @ 0 : 0; will stop at (end) -2024/05/02-09:24:00.874924 7f844ae006c0 Manual compaction at level-1 from '!items!6IqVsJsYPrbxUJZX' @ 72057594037927935 : 1 .. '!items!mJSWXawEGARKlNja' @ 0 : 0; will stop at (end) +2026/01/10-23:11:15.153190 7fd478fff6c0 Recovering log #43 +2026/01/10-23:11:15.227932 7fd478fff6c0 Delete type=3 #41 +2026/01/10-23:11:15.227994 7fd478fff6c0 Delete type=0 #43 +2026/01/11-22:24:56.530051 7fd4627fc6c0 Level-0 table #48: started +2026/01/11-22:24:56.530093 7fd4627fc6c0 Level-0 table #48: 0 bytes OK +2026/01/11-22:24:56.587073 7fd4627fc6c0 Delete type=0 #46 +2026/01/11-22:24:56.769266 7fd4627fc6c0 Manual compaction at level-0 from '!items!6IqVsJsYPrbxUJZX' @ 72057594037927935 : 1 .. '!items!mJSWXawEGARKlNja' @ 0 : 0; will stop at (end) +2026/01/11-22:24:56.769333 7fd4627fc6c0 Manual compaction at level-1 from '!items!6IqVsJsYPrbxUJZX' @ 72057594037927935 : 1 .. '!items!mJSWXawEGARKlNja' @ 0 : 0; will stop at (end) diff --git a/packs/competences-martiales/MANIFEST-000036 b/packs/competences-martiales/MANIFEST-000036 deleted file mode 100644 index 73c5fe7f5bf36296706be90b9cc1c1fd9fa5395f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmbQj8^@Q(z{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&PMD+My}0m|2pVTdZj2 zSr}IARU8>mlvEMw6&1nA$p8j0`CPBy@QB26S9ixC?;O9ZL`DvXyovjQg&YiwOsbp= z%xWwGiKm$oe1TjwAXkG$f}K%)yBy323@Zc)SRnzCuiluHQ3^FvlSP7+5oREUo1hxl P7}eRBSlO90D7PB`m}^hF diff --git a/packs/competences-martiales/MANIFEST-000049 b/packs/competences-martiales/MANIFEST-000049 new file mode 100644 index 0000000000000000000000000000000000000000..ac4538307708d9af5b1bd4e1e5ec1374080d4d19 GIT binary patch literal 168 zcmeZ$?^W8&z{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&P8Nub5eqnp>=x>lGXx zky!5P?il2q*>`WTl 8204 bytes -2025/05/02-00:00:01.669772 7fe0093ff6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2025/05/02-00:00:01.669933 7fe0093ff6c0 Delete type=2 #5 -2025/05/02-00:00:01.670115 7fe0093ff6c0 Delete type=2 #39 -2025/05/02-00:00:01.701398 7fe0093ff6c0 Manual compaction at level-1 from '!items!wnIXKyfqCWT0r4iT' @ 90 : 1 .. '!items!wnIXKyfqCWT0r4iT' @ 0 : 0; will stop at (end) +2026/01/11-22:38:18.288420 7fd478fff6c0 Recovering log #47 +2026/01/11-22:38:18.298405 7fd478fff6c0 Delete type=3 #45 +2026/01/11-22:38:18.298472 7fd478fff6c0 Delete type=0 #47 +2026/01/11-22:39:21.469291 7fd4627fc6c0 Level-0 table #52: started +2026/01/11-22:39:21.469324 7fd4627fc6c0 Level-0 table #52: 0 bytes OK +2026/01/11-22:39:21.475328 7fd4627fc6c0 Delete type=0 #50 +2026/01/11-22:39:21.489231 7fd4627fc6c0 Manual compaction at level-0 from '!items!1EVz9C1fDUBafPHj' @ 72057594037927935 : 1 .. '!items!wnIXKyfqCWT0r4iT' @ 0 : 0; will stop at (end) +2026/01/11-22:39:21.489285 7fd4627fc6c0 Manual compaction at level-1 from '!items!1EVz9C1fDUBafPHj' @ 72057594037927935 : 1 .. '!items!wnIXKyfqCWT0r4iT' @ 0 : 0; will stop at (end) diff --git a/packs/dons/LOG.old b/packs/dons/LOG.old index d2f0b2a..1802d44 100644 --- a/packs/dons/LOG.old +++ b/packs/dons/LOG.old @@ -1,8 +1,8 @@ -2024/05/02-09:20:30.806675 7f844cc006c0 Recovering log #30 -2024/05/02-09:20:30.817229 7f844cc006c0 Delete type=3 #28 -2024/05/02-09:20:30.817342 7f844cc006c0 Delete type=0 #30 -2024/05/02-09:24:00.889174 7f844ae006c0 Level-0 table #35: started -2024/05/02-09:24:00.889211 7f844ae006c0 Level-0 table #35: 0 bytes OK -2024/05/02-09:24:00.896752 7f844ae006c0 Delete type=0 #33 -2024/05/02-09:24:00.903544 7f844ae006c0 Manual compaction at level-0 from '!items!1EVz9C1fDUBafPHj' @ 72057594037927935 : 1 .. '!items!wnIXKyfqCWT0r4iT' @ 0 : 0; will stop at (end) -2024/05/02-09:24:00.903586 7f844ae006c0 Manual compaction at level-1 from '!items!1EVz9C1fDUBafPHj' @ 72057594037927935 : 1 .. '!items!wnIXKyfqCWT0r4iT' @ 0 : 0; will stop at (end) +2026/01/10-23:11:15.350218 7fd4637fe6c0 Recovering log #43 +2026/01/10-23:11:15.412029 7fd4637fe6c0 Delete type=3 #41 +2026/01/10-23:11:15.412130 7fd4637fe6c0 Delete type=0 #43 +2026/01/11-22:24:56.705345 7fd4627fc6c0 Level-0 table #48: started +2026/01/11-22:24:56.705375 7fd4627fc6c0 Level-0 table #48: 0 bytes OK +2026/01/11-22:24:56.769105 7fd4627fc6c0 Delete type=0 #46 +2026/01/11-22:24:56.769305 7fd4627fc6c0 Manual compaction at level-0 from '!items!1EVz9C1fDUBafPHj' @ 72057594037927935 : 1 .. '!items!wnIXKyfqCWT0r4iT' @ 0 : 0; will stop at (end) +2026/01/11-22:24:56.769351 7fd4627fc6c0 Manual compaction at level-1 from '!items!1EVz9C1fDUBafPHj' @ 72057594037927935 : 1 .. '!items!wnIXKyfqCWT0r4iT' @ 0 : 0; will stop at (end) diff --git a/packs/dons/MANIFEST-000036 b/packs/dons/MANIFEST-000036 deleted file mode 100644 index a5f255e0cee609154159e786e187bda664dc07b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmZQvoV+NJfss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfcQbyI}AVrEHdZn2`F zYgm<~vtgP`s8eEEfJYXiJOdcOZonk-SQj4%T++yvFY P#;DH5#LCX3LAl)ksfbdF diff --git a/packs/dons/MANIFEST-000049 b/packs/dons/MANIFEST-000049 new file mode 100644 index 0000000000000000000000000000000000000000..f06ac29ef40fd790c6b2d88b41b4d2794b1c4e40 GIT binary patch literal 168 zcmX>iyx>$b10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAei199ykcfaYHqP&d7fv4 zcV$|kb9jhBkx6C 22361 bytes -2025/05/02-00:00:01.942404 7fe0093ff6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2025/05/02-00:00:01.942634 7fe0093ff6c0 Delete type=2 #5 -2025/05/02-00:00:01.942749 7fe0093ff6c0 Delete type=2 #39 -2025/05/02-00:00:01.952311 7fe0093ff6c0 Manual compaction at level-1 from '!items!zC0kHoqZ9lkQFgI6' @ 423 : 1 .. '!items!zC0kHoqZ9lkQFgI6' @ 0 : 0; will stop at (end) +2026/01/11-22:38:18.479236 7fd463fff6c0 Recovering log #47 +2026/01/11-22:38:18.489180 7fd463fff6c0 Delete type=3 #45 +2026/01/11-22:38:18.489248 7fd463fff6c0 Delete type=0 #47 +2026/01/11-22:39:21.573677 7fd4627fc6c0 Level-0 table #52: started +2026/01/11-22:39:21.573703 7fd4627fc6c0 Level-0 table #52: 0 bytes OK +2026/01/11-22:39:21.580176 7fd4627fc6c0 Delete type=0 #50 +2026/01/11-22:39:21.593747 7fd4627fc6c0 Manual compaction at level-0 from '!items!0tELaPFZgkeTUeVn' @ 72057594037927935 : 1 .. '!items!zC0kHoqZ9lkQFgI6' @ 0 : 0; will stop at (end) +2026/01/11-22:39:21.593789 7fd4627fc6c0 Manual compaction at level-1 from '!items!0tELaPFZgkeTUeVn' @ 72057594037927935 : 1 .. '!items!zC0kHoqZ9lkQFgI6' @ 0 : 0; will stop at (end) diff --git a/packs/equipement/LOG.old b/packs/equipement/LOG.old index 722de91..f790f58 100644 --- a/packs/equipement/LOG.old +++ b/packs/equipement/LOG.old @@ -1,8 +1,8 @@ -2024/05/02-09:20:31.057575 7f844c2006c0 Recovering log #30 -2024/05/02-09:20:31.068276 7f844c2006c0 Delete type=3 #28 -2024/05/02-09:20:31.068367 7f844c2006c0 Delete type=0 #30 -2024/05/02-09:24:00.993561 7f844ae006c0 Level-0 table #35: started -2024/05/02-09:24:00.993597 7f844ae006c0 Level-0 table #35: 0 bytes OK -2024/05/02-09:24:01.000558 7f844ae006c0 Delete type=0 #33 -2024/05/02-09:24:01.000809 7f844ae006c0 Manual compaction at level-0 from '!items!0tELaPFZgkeTUeVn' @ 72057594037927935 : 1 .. '!items!zC0kHoqZ9lkQFgI6' @ 0 : 0; will stop at (end) -2024/05/02-09:24:01.000836 7f844ae006c0 Manual compaction at level-1 from '!items!0tELaPFZgkeTUeVn' @ 72057594037927935 : 1 .. '!items!zC0kHoqZ9lkQFgI6' @ 0 : 0; will stop at (end) +2026/01/10-23:11:16.231723 7fd463fff6c0 Recovering log #43 +2026/01/10-23:11:16.291894 7fd463fff6c0 Delete type=3 #41 +2026/01/10-23:11:16.291973 7fd463fff6c0 Delete type=0 #43 +2026/01/11-22:24:57.500337 7fd4627fc6c0 Level-0 table #48: started +2026/01/11-22:24:57.500368 7fd4627fc6c0 Level-0 table #48: 0 bytes OK +2026/01/11-22:24:57.561031 7fd4627fc6c0 Delete type=0 #46 +2026/01/11-22:24:57.624346 7fd4627fc6c0 Manual compaction at level-0 from '!items!0tELaPFZgkeTUeVn' @ 72057594037927935 : 1 .. '!items!zC0kHoqZ9lkQFgI6' @ 0 : 0; will stop at (end) +2026/01/11-22:24:57.624388 7fd4627fc6c0 Manual compaction at level-1 from '!items!0tELaPFZgkeTUeVn' @ 72057594037927935 : 1 .. '!items!zC0kHoqZ9lkQFgI6' @ 0 : 0; will stop at (end) diff --git a/packs/equipement/MANIFEST-000036 b/packs/equipement/MANIFEST-000036 deleted file mode 100644 index a52c12efc9d0c8bc4b22f678fb63a5312d5b20e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 333 zcmb<3JfWS$z{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&PMD`lpjgUNN&IHMdyN zpv2WDF~BVkL+sefs$X5gMHCUE2voosST*nAA1;Z9;M*Oxchsb|pwPP)ZnyLvjl@)Fx UhP$9T*cjE>m{{4FG^k)Z0FuI1SO5S3 diff --git a/packs/equipement/MANIFEST-000049 b/packs/equipement/MANIFEST-000049 new file mode 100644 index 0000000000000000000000000000000000000000..0e0e2682c4aa8a4a93525bba96c1cd794e04ffb5 GIT binary patch literal 171 zcmY!^d+XN1z{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&P8Nub5eqnp><`lW0Z!dB4kRGR?S{c b21X_$P6lRUmgUSI0$0;Od}AQr6vzhvH?%F7 literal 0 HcmV?d00001 diff --git a/packs/faiblesses/000038.log b/packs/faiblesses/000051.log similarity index 100% rename from packs/faiblesses/000038.log rename to packs/faiblesses/000051.log diff --git a/packs/faiblesses/CURRENT b/packs/faiblesses/CURRENT index ecb0b4b..a980eef 100644 --- a/packs/faiblesses/CURRENT +++ b/packs/faiblesses/CURRENT @@ -1 +1 @@ -MANIFEST-000036 +MANIFEST-000049 diff --git a/packs/faiblesses/LOG b/packs/faiblesses/LOG index ceab00e..4eef825 100644 --- a/packs/faiblesses/LOG +++ b/packs/faiblesses/LOG @@ -1,15 +1,8 @@ -2025/05/01-23:39:32.621680 7fe00a7fc6c0 Recovering log #34 -2025/05/01-23:39:32.632357 7fe00a7fc6c0 Delete type=0 #34 -2025/05/01-23:39:32.632424 7fe00a7fc6c0 Delete type=3 #32 -2025/05/02-00:00:01.639368 7fe0093ff6c0 Level-0 table #39: started -2025/05/02-00:00:01.642654 7fe0093ff6c0 Level-0 table #39: 7080 bytes OK -2025/05/02-00:00:01.649609 7fe0093ff6c0 Delete type=0 #37 -2025/05/02-00:00:01.659488 7fe0093ff6c0 Manual compaction at level-0 from '!items!0EoL2kcGdYiYS8lY' @ 72057594037927935 : 1 .. '!items!xf1RAsIzBXQgbLq2' @ 0 : 0; will stop at (end) -2025/05/02-00:00:01.680340 7fe0093ff6c0 Manual compaction at level-1 from '!items!0EoL2kcGdYiYS8lY' @ 72057594037927935 : 1 .. '!items!xf1RAsIzBXQgbLq2' @ 0 : 0; will stop at '!items!xf1RAsIzBXQgbLq2' @ 78 : 1 -2025/05/02-00:00:01.680352 7fe0093ff6c0 Compacting 1@1 + 1@2 files -2025/05/02-00:00:01.683895 7fe0093ff6c0 Generated table #40@1: 26 keys, 7080 bytes -2025/05/02-00:00:01.683925 7fe0093ff6c0 Compacted 1@1 + 1@2 files => 7080 bytes -2025/05/02-00:00:01.690005 7fe0093ff6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2025/05/02-00:00:01.690119 7fe0093ff6c0 Delete type=2 #5 -2025/05/02-00:00:01.690251 7fe0093ff6c0 Delete type=2 #39 -2025/05/02-00:00:01.701424 7fe0093ff6c0 Manual compaction at level-1 from '!items!xf1RAsIzBXQgbLq2' @ 78 : 1 .. '!items!xf1RAsIzBXQgbLq2' @ 0 : 0; will stop at (end) +2026/01/11-22:38:18.300419 7fd462ffd6c0 Recovering log #47 +2026/01/11-22:38:18.310203 7fd462ffd6c0 Delete type=3 #45 +2026/01/11-22:38:18.310271 7fd462ffd6c0 Delete type=0 #47 +2026/01/11-22:39:21.495581 7fd4627fc6c0 Level-0 table #52: started +2026/01/11-22:39:21.495613 7fd4627fc6c0 Level-0 table #52: 0 bytes OK +2026/01/11-22:39:21.501662 7fd4627fc6c0 Delete type=0 #50 +2026/01/11-22:39:21.515134 7fd4627fc6c0 Manual compaction at level-0 from '!items!0EoL2kcGdYiYS8lY' @ 72057594037927935 : 1 .. '!items!xf1RAsIzBXQgbLq2' @ 0 : 0; will stop at (end) +2026/01/11-22:39:21.515199 7fd4627fc6c0 Manual compaction at level-1 from '!items!0EoL2kcGdYiYS8lY' @ 72057594037927935 : 1 .. '!items!xf1RAsIzBXQgbLq2' @ 0 : 0; will stop at (end) diff --git a/packs/faiblesses/LOG.old b/packs/faiblesses/LOG.old index 2153b59..955556d 100644 --- a/packs/faiblesses/LOG.old +++ b/packs/faiblesses/LOG.old @@ -1,8 +1,8 @@ -2024/05/02-09:20:30.821401 7f844c2006c0 Recovering log #30 -2024/05/02-09:20:30.832886 7f844c2006c0 Delete type=3 #28 -2024/05/02-09:20:30.832985 7f844c2006c0 Delete type=0 #30 -2024/05/02-09:24:00.896933 7f844ae006c0 Level-0 table #35: started -2024/05/02-09:24:00.896967 7f844ae006c0 Level-0 table #35: 0 bytes OK -2024/05/02-09:24:00.903398 7f844ae006c0 Delete type=0 #33 -2024/05/02-09:24:00.903573 7f844ae006c0 Manual compaction at level-0 from '!items!0EoL2kcGdYiYS8lY' @ 72057594037927935 : 1 .. '!items!xf1RAsIzBXQgbLq2' @ 0 : 0; will stop at (end) -2024/05/02-09:24:00.903612 7f844ae006c0 Manual compaction at level-1 from '!items!0EoL2kcGdYiYS8lY' @ 72057594037927935 : 1 .. '!items!xf1RAsIzBXQgbLq2' @ 0 : 0; will stop at (end) +2026/01/10-23:11:15.414572 7fd462ffd6c0 Recovering log #43 +2026/01/10-23:11:15.478943 7fd462ffd6c0 Delete type=3 #41 +2026/01/10-23:11:15.479024 7fd462ffd6c0 Delete type=0 #43 +2026/01/11-22:24:56.769456 7fd4627fc6c0 Level-0 table #48: started +2026/01/11-22:24:56.769503 7fd4627fc6c0 Level-0 table #48: 0 bytes OK +2026/01/11-22:24:56.831755 7fd4627fc6c0 Delete type=0 #46 +2026/01/11-22:24:57.022732 7fd4627fc6c0 Manual compaction at level-0 from '!items!0EoL2kcGdYiYS8lY' @ 72057594037927935 : 1 .. '!items!xf1RAsIzBXQgbLq2' @ 0 : 0; will stop at (end) +2026/01/11-22:24:57.022780 7fd4627fc6c0 Manual compaction at level-1 from '!items!0EoL2kcGdYiYS8lY' @ 72057594037927935 : 1 .. '!items!xf1RAsIzBXQgbLq2' @ 0 : 0; will stop at (end) diff --git a/packs/faiblesses/MANIFEST-000036 b/packs/faiblesses/MANIFEST-000036 deleted file mode 100644 index dcebf0e3f17b3cf644d72e060d2592ee055350dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmdOzxHvhHfss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfcQ^}Cn6VrEHdZn2_) zYrc(X^Ent8nN&F$ znAKQJ&f6z0^#yX(fLsk0KXyj-73MG_Fsv{oV1*w0Sv literal 0 HcmV?d00001 diff --git a/packs/galdr-charme/000038.log b/packs/galdr-charme/000051.log similarity index 100% rename from packs/galdr-charme/000038.log rename to packs/galdr-charme/000051.log diff --git a/packs/galdr-charme/CURRENT b/packs/galdr-charme/CURRENT index ecb0b4b..a980eef 100644 --- a/packs/galdr-charme/CURRENT +++ b/packs/galdr-charme/CURRENT @@ -1 +1 @@ -MANIFEST-000036 +MANIFEST-000049 diff --git a/packs/galdr-charme/LOG b/packs/galdr-charme/LOG index 7954783..e73b106 100644 --- a/packs/galdr-charme/LOG +++ b/packs/galdr-charme/LOG @@ -1,15 +1,8 @@ -2025/05/01-23:39:32.801529 7fe009ffb6c0 Recovering log #34 -2025/05/01-23:39:32.811167 7fe009ffb6c0 Delete type=0 #34 -2025/05/01-23:39:32.811253 7fe009ffb6c0 Delete type=3 #32 -2025/05/02-00:00:01.867646 7fe0093ff6c0 Level-0 table #39: started -2025/05/02-00:00:01.872073 7fe0093ff6c0 Level-0 table #39: 1937 bytes OK -2025/05/02-00:00:01.879149 7fe0093ff6c0 Delete type=0 #37 -2025/05/02-00:00:01.910677 7fe0093ff6c0 Manual compaction at level-0 from '!items!7VeQIQHxvw233Jzt' @ 72057594037927935 : 1 .. '!items!xw2gPhCxDVpkJnxL' @ 0 : 0; will stop at (end) -2025/05/02-00:00:01.910767 7fe0093ff6c0 Manual compaction at level-1 from '!items!7VeQIQHxvw233Jzt' @ 72057594037927935 : 1 .. '!items!xw2gPhCxDVpkJnxL' @ 0 : 0; will stop at '!items!xw2gPhCxDVpkJnxL' @ 15 : 1 -2025/05/02-00:00:01.910774 7fe0093ff6c0 Compacting 1@1 + 1@2 files -2025/05/02-00:00:01.914057 7fe0093ff6c0 Generated table #40@1: 5 keys, 1937 bytes -2025/05/02-00:00:01.914102 7fe0093ff6c0 Compacted 1@1 + 1@2 files => 1937 bytes -2025/05/02-00:00:01.920813 7fe0093ff6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2025/05/02-00:00:01.920988 7fe0093ff6c0 Delete type=2 #5 -2025/05/02-00:00:01.921112 7fe0093ff6c0 Delete type=2 #39 -2025/05/02-00:00:01.952290 7fe0093ff6c0 Manual compaction at level-1 from '!items!xw2gPhCxDVpkJnxL' @ 15 : 1 .. '!items!xw2gPhCxDVpkJnxL' @ 0 : 0; will stop at (end) +2026/01/11-22:38:18.466539 7fd478fff6c0 Recovering log #47 +2026/01/11-22:38:18.476924 7fd478fff6c0 Delete type=3 #45 +2026/01/11-22:38:18.476983 7fd478fff6c0 Delete type=0 #47 +2026/01/11-22:39:21.567455 7fd4627fc6c0 Level-0 table #52: started +2026/01/11-22:39:21.567481 7fd4627fc6c0 Level-0 table #52: 0 bytes OK +2026/01/11-22:39:21.573559 7fd4627fc6c0 Delete type=0 #50 +2026/01/11-22:39:21.593729 7fd4627fc6c0 Manual compaction at level-0 from '!items!7VeQIQHxvw233Jzt' @ 72057594037927935 : 1 .. '!items!xw2gPhCxDVpkJnxL' @ 0 : 0; will stop at (end) +2026/01/11-22:39:21.593781 7fd4627fc6c0 Manual compaction at level-1 from '!items!7VeQIQHxvw233Jzt' @ 72057594037927935 : 1 .. '!items!xw2gPhCxDVpkJnxL' @ 0 : 0; will stop at (end) diff --git a/packs/galdr-charme/LOG.old b/packs/galdr-charme/LOG.old index f989a7c..321b979 100644 --- a/packs/galdr-charme/LOG.old +++ b/packs/galdr-charme/LOG.old @@ -1,8 +1,8 @@ -2024/05/02-09:20:31.042811 7f844cc006c0 Recovering log #30 -2024/05/02-09:20:31.054523 7f844cc006c0 Delete type=3 #28 -2024/05/02-09:20:31.054615 7f844cc006c0 Delete type=0 #30 -2024/05/02-09:24:00.986638 7f844ae006c0 Level-0 table #35: started -2024/05/02-09:24:00.986739 7f844ae006c0 Level-0 table #35: 0 bytes OK -2024/05/02-09:24:00.993409 7f844ae006c0 Delete type=0 #33 -2024/05/02-09:24:01.000786 7f844ae006c0 Manual compaction at level-0 from '!items!7VeQIQHxvw233Jzt' @ 72057594037927935 : 1 .. '!items!xw2gPhCxDVpkJnxL' @ 0 : 0; will stop at (end) -2024/05/02-09:24:01.000868 7f844ae006c0 Manual compaction at level-1 from '!items!7VeQIQHxvw233Jzt' @ 72057594037927935 : 1 .. '!items!xw2gPhCxDVpkJnxL' @ 0 : 0; will stop at (end) +2026/01/10-23:11:16.181750 7fd462ffd6c0 Recovering log #43 +2026/01/10-23:11:16.229040 7fd462ffd6c0 Delete type=3 #41 +2026/01/10-23:11:16.229115 7fd462ffd6c0 Delete type=0 #43 +2026/01/11-22:24:57.561274 7fd4627fc6c0 Level-0 table #48: started +2026/01/11-22:24:57.561302 7fd4627fc6c0 Level-0 table #48: 0 bytes OK +2026/01/11-22:24:57.624170 7fd4627fc6c0 Delete type=0 #46 +2026/01/11-22:24:57.624357 7fd4627fc6c0 Manual compaction at level-0 from '!items!7VeQIQHxvw233Jzt' @ 72057594037927935 : 1 .. '!items!xw2gPhCxDVpkJnxL' @ 0 : 0; will stop at (end) +2026/01/11-22:24:57.624398 7fd4627fc6c0 Manual compaction at level-1 from '!items!7VeQIQHxvw233Jzt' @ 72057594037927935 : 1 .. '!items!xw2gPhCxDVpkJnxL' @ 0 : 0; will stop at (end) diff --git a/packs/galdr-charme/MANIFEST-000036 b/packs/galdr-charme/MANIFEST-000036 deleted file mode 100644 index 1d69b27d50c28071e8eadb7cf1299654463c9d68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmWH@xx6xwfss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfcQ^?;bXVrEHdZn2_y zSZbhWphrbnxskE4S5*lk8v_`?C0F@_(nA9pPYLWK!j1 zU{+({TCuZZqA!rE2IOk6@Ut_jPvnOgfnfzV0W0_+@}7Z)S*1`jHCgys8DR!uxCyF( PjZvMAiIts6gL1n84c}4W diff --git a/packs/galdr-charme/MANIFEST-000049 b/packs/galdr-charme/MANIFEST-000049 new file mode 100644 index 0000000000000000000000000000000000000000..0f73b3d29975bb06a2129f47677ef8e43377cc49 GIT binary patch literal 168 zcmYf0UdhzVz{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&P8Nub5eqnp><`QErqT zkl|e65>}Ayl~>`z$j<-<>`WRH`C*F8!%_o113fCr%8iVTy{bwWxgm;R^0*9{>CnA~ agMpFBh?9ZYn1#Pa&?*VUH3o7`S@;3sY$`(l literal 0 HcmV?d00001 diff --git a/packs/galdr-illusions/000038.log b/packs/galdr-illusions/000051.log similarity index 100% rename from packs/galdr-illusions/000038.log rename to packs/galdr-illusions/000051.log diff --git a/packs/galdr-illusions/CURRENT b/packs/galdr-illusions/CURRENT index ecb0b4b..a980eef 100644 --- a/packs/galdr-illusions/CURRENT +++ b/packs/galdr-illusions/CURRENT @@ -1 +1 @@ -MANIFEST-000036 +MANIFEST-000049 diff --git a/packs/galdr-illusions/LOG b/packs/galdr-illusions/LOG index a591bff..2d746aa 100644 --- a/packs/galdr-illusions/LOG +++ b/packs/galdr-illusions/LOG @@ -1,15 +1,8 @@ -2025/05/01-23:39:32.788688 7fe00b7fe6c0 Recovering log #34 -2025/05/01-23:39:32.798630 7fe00b7fe6c0 Delete type=0 #34 -2025/05/01-23:39:32.798720 7fe00b7fe6c0 Delete type=3 #32 -2025/05/02-00:00:01.879296 7fe0093ff6c0 Level-0 table #39: started -2025/05/02-00:00:01.882491 7fe0093ff6c0 Level-0 table #39: 3029 bytes OK -2025/05/02-00:00:01.889505 7fe0093ff6c0 Delete type=0 #37 -2025/05/02-00:00:01.910707 7fe0093ff6c0 Manual compaction at level-0 from '!items!89NwqZV3Qn9xWeO0' @ 72057594037927935 : 1 .. '!items!sH7HaKggOEaBVzn3' @ 0 : 0; will stop at (end) -2025/05/02-00:00:01.942824 7fe0093ff6c0 Manual compaction at level-1 from '!items!89NwqZV3Qn9xWeO0' @ 72057594037927935 : 1 .. '!items!sH7HaKggOEaBVzn3' @ 0 : 0; will stop at '!items!sH7HaKggOEaBVzn3' @ 15 : 1 -2025/05/02-00:00:01.942831 7fe0093ff6c0 Compacting 1@1 + 1@2 files -2025/05/02-00:00:01.945898 7fe0093ff6c0 Generated table #40@1: 5 keys, 3029 bytes -2025/05/02-00:00:01.945923 7fe0093ff6c0 Compacted 1@1 + 1@2 files => 3029 bytes -2025/05/02-00:00:01.951946 7fe0093ff6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2025/05/02-00:00:01.952072 7fe0093ff6c0 Delete type=2 #5 -2025/05/02-00:00:01.952217 7fe0093ff6c0 Delete type=2 #39 -2025/05/02-00:00:01.952318 7fe0093ff6c0 Manual compaction at level-1 from '!items!sH7HaKggOEaBVzn3' @ 15 : 1 .. '!items!sH7HaKggOEaBVzn3' @ 0 : 0; will stop at (end) +2026/01/11-22:38:18.454793 7fd4637fe6c0 Recovering log #47 +2026/01/11-22:38:18.464425 7fd4637fe6c0 Delete type=3 #45 +2026/01/11-22:38:18.464476 7fd4637fe6c0 Delete type=0 #47 +2026/01/11-22:39:21.580301 7fd4627fc6c0 Level-0 table #52: started +2026/01/11-22:39:21.580327 7fd4627fc6c0 Level-0 table #52: 0 bytes OK +2026/01/11-22:39:21.587371 7fd4627fc6c0 Delete type=0 #50 +2026/01/11-22:39:21.593760 7fd4627fc6c0 Manual compaction at level-0 from '!items!89NwqZV3Qn9xWeO0' @ 72057594037927935 : 1 .. '!items!sH7HaKggOEaBVzn3' @ 0 : 0; will stop at (end) +2026/01/11-22:39:21.593798 7fd4627fc6c0 Manual compaction at level-1 from '!items!89NwqZV3Qn9xWeO0' @ 72057594037927935 : 1 .. '!items!sH7HaKggOEaBVzn3' @ 0 : 0; will stop at (end) diff --git a/packs/galdr-illusions/LOG.old b/packs/galdr-illusions/LOG.old index 8b2fcba..728ed53 100644 --- a/packs/galdr-illusions/LOG.old +++ b/packs/galdr-illusions/LOG.old @@ -1,8 +1,8 @@ -2024/05/02-09:20:31.028964 7f844c2006c0 Recovering log #30 -2024/05/02-09:20:31.039429 7f844c2006c0 Delete type=3 #28 -2024/05/02-09:20:31.039533 7f844c2006c0 Delete type=0 #30 -2024/05/02-09:24:00.979204 7f844ae006c0 Level-0 table #35: started -2024/05/02-09:24:00.979236 7f844ae006c0 Level-0 table #35: 0 bytes OK -2024/05/02-09:24:00.986242 7f844ae006c0 Delete type=0 #33 -2024/05/02-09:24:00.986432 7f844ae006c0 Manual compaction at level-0 from '!items!89NwqZV3Qn9xWeO0' @ 72057594037927935 : 1 .. '!items!sH7HaKggOEaBVzn3' @ 0 : 0; will stop at (end) -2024/05/02-09:24:00.986497 7f844ae006c0 Manual compaction at level-1 from '!items!89NwqZV3Qn9xWeO0' @ 72057594037927935 : 1 .. '!items!sH7HaKggOEaBVzn3' @ 0 : 0; will stop at (end) +2026/01/10-23:11:16.124670 7fd478fff6c0 Recovering log #43 +2026/01/10-23:11:16.179232 7fd478fff6c0 Delete type=3 #41 +2026/01/10-23:11:16.179295 7fd478fff6c0 Delete type=0 #43 +2026/01/11-22:24:57.381224 7fd4627fc6c0 Level-0 table #48: started +2026/01/11-22:24:57.381256 7fd4627fc6c0 Level-0 table #48: 0 bytes OK +2026/01/11-22:24:57.445557 7fd4627fc6c0 Delete type=0 #46 +2026/01/11-22:24:57.624320 7fd4627fc6c0 Manual compaction at level-0 from '!items!89NwqZV3Qn9xWeO0' @ 72057594037927935 : 1 .. '!items!sH7HaKggOEaBVzn3' @ 0 : 0; will stop at (end) +2026/01/11-22:24:57.624368 7fd4627fc6c0 Manual compaction at level-1 from '!items!89NwqZV3Qn9xWeO0' @ 72057594037927935 : 1 .. '!items!sH7HaKggOEaBVzn3' @ 0 : 0; will stop at (end) diff --git a/packs/galdr-illusions/MANIFEST-000036 b/packs/galdr-illusions/MANIFEST-000036 deleted file mode 100644 index 808bd750124e0f96e07589e0ffe796817a4f45f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmWGrIw38Qfss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfcQ^^=^uVrEHdZn2_; zrC)hrRG4vKo@GUNs=omv8v_`?@Dd0d9fbm(5g a!NAC5#L2*H%)(zIXq5!w8UwkeEc^i5;3={I literal 0 HcmV?d00001 diff --git a/packs/galdr-maledictions/000038.log b/packs/galdr-maledictions/000051.log similarity index 100% rename from packs/galdr-maledictions/000038.log rename to packs/galdr-maledictions/000051.log diff --git a/packs/galdr-maledictions/CURRENT b/packs/galdr-maledictions/CURRENT index ecb0b4b..a980eef 100644 --- a/packs/galdr-maledictions/CURRENT +++ b/packs/galdr-maledictions/CURRENT @@ -1 +1 @@ -MANIFEST-000036 +MANIFEST-000049 diff --git a/packs/galdr-maledictions/LOG b/packs/galdr-maledictions/LOG index 485a97d..0117ab5 100644 --- a/packs/galdr-maledictions/LOG +++ b/packs/galdr-maledictions/LOG @@ -1,15 +1,8 @@ -2025/05/01-23:39:32.775407 7fe00affd6c0 Recovering log #34 -2025/05/01-23:39:32.785711 7fe00affd6c0 Delete type=0 #34 -2025/05/01-23:39:32.785835 7fe00affd6c0 Delete type=3 #32 -2025/05/02-00:00:01.889636 7fe0093ff6c0 Level-0 table #39: started -2025/05/02-00:00:01.893029 7fe0093ff6c0 Level-0 table #39: 1953 bytes OK -2025/05/02-00:00:01.899195 7fe0093ff6c0 Delete type=0 #37 -2025/05/02-00:00:01.910727 7fe0093ff6c0 Manual compaction at level-0 from '!items!1smXvw2EcuTkytDv' @ 72057594037927935 : 1 .. '!items!yKLS6KQafucspg3R' @ 0 : 0; will stop at (end) -2025/05/02-00:00:01.921184 7fe0093ff6c0 Manual compaction at level-1 from '!items!1smXvw2EcuTkytDv' @ 72057594037927935 : 1 .. '!items!yKLS6KQafucspg3R' @ 0 : 0; will stop at '!items!yKLS6KQafucspg3R' @ 15 : 1 -2025/05/02-00:00:01.921192 7fe0093ff6c0 Compacting 1@1 + 1@2 files -2025/05/02-00:00:01.925008 7fe0093ff6c0 Generated table #40@1: 5 keys, 1953 bytes -2025/05/02-00:00:01.925036 7fe0093ff6c0 Compacted 1@1 + 1@2 files => 1953 bytes -2025/05/02-00:00:01.931142 7fe0093ff6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2025/05/02-00:00:01.931249 7fe0093ff6c0 Delete type=2 #5 -2025/05/02-00:00:01.931354 7fe0093ff6c0 Delete type=2 #39 -2025/05/02-00:00:01.952302 7fe0093ff6c0 Manual compaction at level-1 from '!items!yKLS6KQafucspg3R' @ 15 : 1 .. '!items!yKLS6KQafucspg3R' @ 0 : 0; will stop at (end) +2026/01/11-22:38:18.436067 7fd463fff6c0 Recovering log #47 +2026/01/11-22:38:18.452419 7fd463fff6c0 Delete type=3 #45 +2026/01/11-22:38:18.452511 7fd463fff6c0 Delete type=0 #47 +2026/01/11-22:39:21.587499 7fd4627fc6c0 Level-0 table #52: started +2026/01/11-22:39:21.587525 7fd4627fc6c0 Level-0 table #52: 0 bytes OK +2026/01/11-22:39:21.593554 7fd4627fc6c0 Delete type=0 #50 +2026/01/11-22:39:21.593771 7fd4627fc6c0 Manual compaction at level-0 from '!items!1smXvw2EcuTkytDv' @ 72057594037927935 : 1 .. '!items!yKLS6KQafucspg3R' @ 0 : 0; will stop at (end) +2026/01/11-22:39:21.593806 7fd4627fc6c0 Manual compaction at level-1 from '!items!1smXvw2EcuTkytDv' @ 72057594037927935 : 1 .. '!items!yKLS6KQafucspg3R' @ 0 : 0; will stop at (end) diff --git a/packs/galdr-maledictions/LOG.old b/packs/galdr-maledictions/LOG.old index e3f9fd5..fdd17bd 100644 --- a/packs/galdr-maledictions/LOG.old +++ b/packs/galdr-maledictions/LOG.old @@ -1,8 +1,8 @@ -2024/05/02-09:20:31.014753 7f844cc006c0 Recovering log #30 -2024/05/02-09:20:31.025539 7f844cc006c0 Delete type=3 #28 -2024/05/02-09:20:31.025663 7f844cc006c0 Delete type=0 #30 -2024/05/02-09:24:00.972587 7f844ae006c0 Level-0 table #35: started -2024/05/02-09:24:00.972622 7f844ae006c0 Level-0 table #35: 0 bytes OK -2024/05/02-09:24:00.979047 7f844ae006c0 Delete type=0 #33 -2024/05/02-09:24:00.986419 7f844ae006c0 Manual compaction at level-0 from '!items!1smXvw2EcuTkytDv' @ 72057594037927935 : 1 .. '!items!yKLS6KQafucspg3R' @ 0 : 0; will stop at (end) -2024/05/02-09:24:00.986455 7f844ae006c0 Manual compaction at level-1 from '!items!1smXvw2EcuTkytDv' @ 72057594037927935 : 1 .. '!items!yKLS6KQafucspg3R' @ 0 : 0; will stop at (end) +2026/01/10-23:11:16.068517 7fd463fff6c0 Recovering log #43 +2026/01/10-23:11:16.122014 7fd463fff6c0 Delete type=3 #41 +2026/01/10-23:11:16.122114 7fd463fff6c0 Delete type=0 #43 +2026/01/11-22:24:57.445670 7fd4627fc6c0 Level-0 table #48: started +2026/01/11-22:24:57.445695 7fd4627fc6c0 Level-0 table #48: 0 bytes OK +2026/01/11-22:24:57.500180 7fd4627fc6c0 Delete type=0 #46 +2026/01/11-22:24:57.624334 7fd4627fc6c0 Manual compaction at level-0 from '!items!1smXvw2EcuTkytDv' @ 72057594037927935 : 1 .. '!items!yKLS6KQafucspg3R' @ 0 : 0; will stop at (end) +2026/01/11-22:24:57.624378 7fd4627fc6c0 Manual compaction at level-1 from '!items!1smXvw2EcuTkytDv' @ 72057594037927935 : 1 .. '!items!yKLS6KQafucspg3R' @ 0 : 0; will stop at (end) diff --git a/packs/galdr-maledictions/MANIFEST-000036 b/packs/galdr-maledictions/MANIFEST-000036 deleted file mode 100644 index eeeaf3c7642f97b6950e215845b15daf7c6f12f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmd0>toxbBz{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&PMDI#X0$F|#B!w^-4z zI5(oK+{iV#G$gyS#HEapjR6c`@|E5`!DilpiD{+D#RcicL5!>r`M*=mj&LwAGO2Ph zFsrd}`7Azq&KJm419CN3_}LlN7xKf5z_5awfED}@`4{g3pOiw))MVjjWrP`s;U=gC QHb!+eCRTPP4a)5X0CbR4h5!Hn diff --git a/packs/galdr-maledictions/MANIFEST-000049 b/packs/galdr-maledictions/MANIFEST-000049 new file mode 100644 index 0000000000000000000000000000000000000000..d275cf13e1725192e14516111b9e302a04ca05db GIT binary patch literal 168 zcmX>#E#yNp10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAei199ykcfaYHqP&rMFM8 znRj4fT4{1|LAr4eBR>Neurp~argYE)B`9EO9AgTC)rbG7{ b4hBXhBTfcpV;24zL8~MX*BHn(W#I<^?mR2| literal 0 HcmV?d00001 diff --git a/packs/poisons/000038.log b/packs/poisons/000051.log similarity index 100% rename from packs/poisons/000038.log rename to packs/poisons/000051.log diff --git a/packs/poisons/CURRENT b/packs/poisons/CURRENT index ecb0b4b..a980eef 100644 --- a/packs/poisons/CURRENT +++ b/packs/poisons/CURRENT @@ -1 +1 @@ -MANIFEST-000036 +MANIFEST-000049 diff --git a/packs/poisons/LOG b/packs/poisons/LOG index fb50261..4a30593 100644 --- a/packs/poisons/LOG +++ b/packs/poisons/LOG @@ -1,15 +1,8 @@ -2025/05/01-23:39:32.762133 7fe00a7fc6c0 Recovering log #34 -2025/05/01-23:39:32.773026 7fe00a7fc6c0 Delete type=0 #34 -2025/05/01-23:39:32.773077 7fe00a7fc6c0 Delete type=3 #32 -2025/05/02-00:00:01.814204 7fe0093ff6c0 Level-0 table #39: started -2025/05/02-00:00:01.817735 7fe0093ff6c0 Level-0 table #39: 4784 bytes OK -2025/05/02-00:00:01.825233 7fe0093ff6c0 Delete type=0 #37 -2025/05/02-00:00:01.825500 7fe0093ff6c0 Manual compaction at level-0 from '!items!8lGlSw9Hkqbx1MDE' @ 72057594037927935 : 1 .. '!items!rMGHu9grQeuvSl6n' @ 0 : 0; will stop at (end) -2025/05/02-00:00:01.857578 7fe0093ff6c0 Manual compaction at level-1 from '!items!8lGlSw9Hkqbx1MDE' @ 72057594037927935 : 1 .. '!items!rMGHu9grQeuvSl6n' @ 0 : 0; will stop at '!items!rMGHu9grQeuvSl6n' @ 24 : 1 -2025/05/02-00:00:01.857585 7fe0093ff6c0 Compacting 1@1 + 1@2 files -2025/05/02-00:00:01.860854 7fe0093ff6c0 Generated table #40@1: 8 keys, 4784 bytes -2025/05/02-00:00:01.860888 7fe0093ff6c0 Compacted 1@1 + 1@2 files => 4784 bytes -2025/05/02-00:00:01.867243 7fe0093ff6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2025/05/02-00:00:01.867339 7fe0093ff6c0 Delete type=2 #5 -2025/05/02-00:00:01.867456 7fe0093ff6c0 Delete type=2 #39 -2025/05/02-00:00:01.867553 7fe0093ff6c0 Manual compaction at level-1 from '!items!rMGHu9grQeuvSl6n' @ 24 : 1 .. '!items!rMGHu9grQeuvSl6n' @ 0 : 0; will stop at (end) +2026/01/11-22:38:18.424518 7fd478fff6c0 Recovering log #47 +2026/01/11-22:38:18.434327 7fd478fff6c0 Delete type=3 #45 +2026/01/11-22:38:18.434384 7fd478fff6c0 Delete type=0 #47 +2026/01/11-22:39:21.554078 7fd4627fc6c0 Level-0 table #52: started +2026/01/11-22:39:21.554103 7fd4627fc6c0 Level-0 table #52: 0 bytes OK +2026/01/11-22:39:21.560215 7fd4627fc6c0 Delete type=0 #50 +2026/01/11-22:39:21.567302 7fd4627fc6c0 Manual compaction at level-0 from '!items!8lGlSw9Hkqbx1MDE' @ 72057594037927935 : 1 .. '!items!rMGHu9grQeuvSl6n' @ 0 : 0; will stop at (end) +2026/01/11-22:39:21.567332 7fd4627fc6c0 Manual compaction at level-1 from '!items!8lGlSw9Hkqbx1MDE' @ 72057594037927935 : 1 .. '!items!rMGHu9grQeuvSl6n' @ 0 : 0; will stop at (end) diff --git a/packs/poisons/LOG.old b/packs/poisons/LOG.old index a29a08a..a0ccee8 100644 --- a/packs/poisons/LOG.old +++ b/packs/poisons/LOG.old @@ -1,8 +1,8 @@ -2024/05/02-09:20:30.999762 7f844c2006c0 Recovering log #30 -2024/05/02-09:20:31.011319 7f844c2006c0 Delete type=3 #28 -2024/05/02-09:20:31.011472 7f844c2006c0 Delete type=0 #30 -2024/05/02-09:24:00.966161 7f844ae006c0 Level-0 table #35: started -2024/05/02-09:24:00.966208 7f844ae006c0 Level-0 table #35: 0 bytes OK -2024/05/02-09:24:00.972433 7f844ae006c0 Delete type=0 #33 -2024/05/02-09:24:00.986400 7f844ae006c0 Manual compaction at level-0 from '!items!8lGlSw9Hkqbx1MDE' @ 72057594037927935 : 1 .. '!items!rMGHu9grQeuvSl6n' @ 0 : 0; will stop at (end) -2024/05/02-09:24:00.986511 7f844ae006c0 Manual compaction at level-1 from '!items!8lGlSw9Hkqbx1MDE' @ 72057594037927935 : 1 .. '!items!rMGHu9grQeuvSl6n' @ 0 : 0; will stop at (end) +2026/01/10-23:11:16.006619 7fd462ffd6c0 Recovering log #43 +2026/01/10-23:11:16.065683 7fd462ffd6c0 Delete type=3 #41 +2026/01/10-23:11:16.065784 7fd462ffd6c0 Delete type=0 #43 +2026/01/11-22:24:57.175509 7fd4627fc6c0 Level-0 table #48: started +2026/01/11-22:24:57.175543 7fd4627fc6c0 Level-0 table #48: 0 bytes OK +2026/01/11-22:24:57.212520 7fd4627fc6c0 Delete type=0 #46 +2026/01/11-22:24:57.381058 7fd4627fc6c0 Manual compaction at level-0 from '!items!8lGlSw9Hkqbx1MDE' @ 72057594037927935 : 1 .. '!items!rMGHu9grQeuvSl6n' @ 0 : 0; will stop at (end) +2026/01/11-22:24:57.381105 7fd4627fc6c0 Manual compaction at level-1 from '!items!8lGlSw9Hkqbx1MDE' @ 72057594037927935 : 1 .. '!items!rMGHu9grQeuvSl6n' @ 0 : 0; will stop at (end) diff --git a/packs/poisons/MANIFEST-000036 b/packs/poisons/MANIFEST-000036 deleted file mode 100644 index 0641fe04c6a8baf77302e3373b02e433f16472f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmXqM`sSR-z{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&PMDddOT}F|#B!w^-34 z$2}*w+|nbvFsZ`O*Tt2QlK~81@j2dTyE)+U6@p1= 32910 bytes -2025/05/02-00:00:01.598064 7fe0093ff6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2025/05/02-00:00:01.598225 7fe0093ff6c0 Delete type=2 #5 -2025/05/02-00:00:01.598452 7fe0093ff6c0 Delete type=2 #39 -2025/05/02-00:00:01.618737 7fe0093ff6c0 Manual compaction at level-1 from '!items!z0cF4dWHmUAg0KvV' @ 162 : 1 .. '!items!z0cF4dWHmUAg0KvV' @ 0 : 0; will stop at (end) +2026/01/11-22:38:18.275122 7fd4637fe6c0 Recovering log #47 +2026/01/11-22:38:18.285627 7fd4637fe6c0 Delete type=3 #45 +2026/01/11-22:38:18.285688 7fd4637fe6c0 Delete type=0 #47 +2026/01/11-22:39:21.482642 7fd4627fc6c0 Level-0 table #52: started +2026/01/11-22:39:21.482676 7fd4627fc6c0 Level-0 table #52: 0 bytes OK +2026/01/11-22:39:21.489082 7fd4627fc6c0 Delete type=0 #50 +2026/01/11-22:39:21.489262 7fd4627fc6c0 Manual compaction at level-0 from '!items!1NgxXWCVuFNQ6pis' @ 72057594037927935 : 1 .. '!items!z0cF4dWHmUAg0KvV' @ 0 : 0; will stop at (end) +2026/01/11-22:39:21.489309 7fd4627fc6c0 Manual compaction at level-1 from '!items!1NgxXWCVuFNQ6pis' @ 72057594037927935 : 1 .. '!items!z0cF4dWHmUAg0KvV' @ 0 : 0; will stop at (end) diff --git a/packs/prouesses-martiales/LOG.old b/packs/prouesses-martiales/LOG.old index a8dd226..42a5d55 100644 --- a/packs/prouesses-martiales/LOG.old +++ b/packs/prouesses-martiales/LOG.old @@ -1,8 +1,8 @@ -2024/05/02-09:20:30.789084 7f844c2006c0 Recovering log #30 -2024/05/02-09:20:30.800756 7f844c2006c0 Delete type=3 #28 -2024/05/02-09:20:30.800875 7f844c2006c0 Delete type=0 #30 -2024/05/02-09:24:00.882445 7f844ae006c0 Level-0 table #35: started -2024/05/02-09:24:00.882477 7f844ae006c0 Level-0 table #35: 0 bytes OK -2024/05/02-09:24:00.889009 7f844ae006c0 Delete type=0 #33 -2024/05/02-09:24:00.903528 7f844ae006c0 Manual compaction at level-0 from '!items!1NgxXWCVuFNQ6pis' @ 72057594037927935 : 1 .. '!items!z0cF4dWHmUAg0KvV' @ 0 : 0; will stop at (end) -2024/05/02-09:24:00.903598 7f844ae006c0 Manual compaction at level-1 from '!items!1NgxXWCVuFNQ6pis' @ 72057594037927935 : 1 .. '!items!z0cF4dWHmUAg0KvV' @ 0 : 0; will stop at (end) +2026/01/10-23:11:15.291602 7fd478fff6c0 Recovering log #43 +2026/01/10-23:11:15.346322 7fd478fff6c0 Delete type=3 #41 +2026/01/10-23:11:15.346441 7fd478fff6c0 Delete type=0 #43 +2026/01/11-22:24:56.640400 7fd4627fc6c0 Level-0 table #48: started +2026/01/11-22:24:56.640429 7fd4627fc6c0 Level-0 table #48: 0 bytes OK +2026/01/11-22:24:56.705216 7fd4627fc6c0 Delete type=0 #46 +2026/01/11-22:24:56.769293 7fd4627fc6c0 Manual compaction at level-0 from '!items!1NgxXWCVuFNQ6pis' @ 72057594037927935 : 1 .. '!items!z0cF4dWHmUAg0KvV' @ 0 : 0; will stop at (end) +2026/01/11-22:24:56.769342 7fd4627fc6c0 Manual compaction at level-1 from '!items!1NgxXWCVuFNQ6pis' @ 72057594037927935 : 1 .. '!items!z0cF4dWHmUAg0KvV' @ 0 : 0; will stop at (end) diff --git a/packs/prouesses-martiales/MANIFEST-000036 b/packs/prouesses-martiales/MANIFEST-000036 deleted file mode 100644 index 37f9e300d4f55dad5d46a8d7514f67e470e20993..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 332 zcmWI7-u*j?fss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfcQb#4czS(U}TiaNi9pwNlDUksw_z@&n!-L&d)7KEJ`fNFJfhsSIjI)%`H}}GDvna zNeTDJ4RuU6@Gc8uT*Lqd>`WScjZ83AhJNW45#i2ZrEY$KW(AqWjJXh1FnL_2)EXUL c#mT_PWW>q9Y|OHVQQsr462vzK@=bw!09I%$82|tP literal 0 HcmV?d00001 diff --git a/packs/runes/000038.log b/packs/runes/000051.log similarity index 100% rename from packs/runes/000038.log rename to packs/runes/000051.log diff --git a/packs/runes/CURRENT b/packs/runes/CURRENT index ecb0b4b..a980eef 100644 --- a/packs/runes/CURRENT +++ b/packs/runes/CURRENT @@ -1 +1 @@ -MANIFEST-000036 +MANIFEST-000049 diff --git a/packs/runes/LOG b/packs/runes/LOG index 87ecd6e..0bf2bdc 100644 --- a/packs/runes/LOG +++ b/packs/runes/LOG @@ -1,15 +1,8 @@ -2025/05/01-23:39:32.676607 7fe00b7fe6c0 Recovering log #34 -2025/05/01-23:39:32.686303 7fe00b7fe6c0 Delete type=0 #34 -2025/05/01-23:39:32.686400 7fe00b7fe6c0 Delete type=3 #32 -2025/05/02-00:00:01.710918 7fe0093ff6c0 Level-0 table #39: started -2025/05/02-00:00:01.714339 7fe0093ff6c0 Level-0 table #39: 6772 bytes OK -2025/05/02-00:00:01.721191 7fe0093ff6c0 Delete type=0 #37 -2025/05/02-00:00:01.741432 7fe0093ff6c0 Manual compaction at level-0 from '!items!1liPVSmnGY35OTxz' @ 72057594037927935 : 1 .. '!items!yvuFuIz4ormI3u3u' @ 0 : 0; will stop at (end) -2025/05/02-00:00:01.752008 7fe0093ff6c0 Manual compaction at level-1 from '!items!1liPVSmnGY35OTxz' @ 72057594037927935 : 1 .. '!items!yvuFuIz4ormI3u3u' @ 0 : 0; will stop at '!items!yvuFuIz4ormI3u3u' @ 72 : 1 -2025/05/02-00:00:01.752021 7fe0093ff6c0 Compacting 1@1 + 1@2 files -2025/05/02-00:00:01.755341 7fe0093ff6c0 Generated table #40@1: 24 keys, 6772 bytes -2025/05/02-00:00:01.755378 7fe0093ff6c0 Compacted 1@1 + 1@2 files => 6772 bytes -2025/05/02-00:00:01.761404 7fe0093ff6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2025/05/02-00:00:01.761519 7fe0093ff6c0 Delete type=2 #5 -2025/05/02-00:00:01.761637 7fe0093ff6c0 Delete type=2 #39 -2025/05/02-00:00:01.782470 7fe0093ff6c0 Manual compaction at level-1 from '!items!yvuFuIz4ormI3u3u' @ 72 : 1 .. '!items!yvuFuIz4ormI3u3u' @ 0 : 0; will stop at (end) +2026/01/11-22:38:18.349123 7fd463fff6c0 Recovering log #47 +2026/01/11-22:38:18.359770 7fd463fff6c0 Delete type=3 #45 +2026/01/11-22:38:18.359853 7fd463fff6c0 Delete type=0 #47 +2026/01/11-22:39:21.521521 7fd4627fc6c0 Level-0 table #52: started +2026/01/11-22:39:21.521557 7fd4627fc6c0 Level-0 table #52: 0 bytes OK +2026/01/11-22:39:21.527972 7fd4627fc6c0 Delete type=0 #50 +2026/01/11-22:39:21.541078 7fd4627fc6c0 Manual compaction at level-0 from '!items!1liPVSmnGY35OTxz' @ 72057594037927935 : 1 .. '!items!yvuFuIz4ormI3u3u' @ 0 : 0; will stop at (end) +2026/01/11-22:39:21.541123 7fd4627fc6c0 Manual compaction at level-1 from '!items!1liPVSmnGY35OTxz' @ 72057594037927935 : 1 .. '!items!yvuFuIz4ormI3u3u' @ 0 : 0; will stop at (end) diff --git a/packs/runes/LOG.old b/packs/runes/LOG.old index c87fa2a..d2d8295 100644 --- a/packs/runes/LOG.old +++ b/packs/runes/LOG.old @@ -1,8 +1,8 @@ -2024/05/02-09:20:30.882737 7f844c2006c0 Recovering log #30 -2024/05/02-09:20:30.924799 7f844c2006c0 Delete type=3 #28 -2024/05/02-09:20:30.924920 7f844c2006c0 Delete type=0 #30 -2024/05/02-09:24:00.924300 7f844ae006c0 Level-0 table #35: started -2024/05/02-09:24:00.924347 7f844ae006c0 Level-0 table #35: 0 bytes OK -2024/05/02-09:24:00.930940 7f844ae006c0 Delete type=0 #33 -2024/05/02-09:24:00.931130 7f844ae006c0 Manual compaction at level-0 from '!items!1liPVSmnGY35OTxz' @ 72057594037927935 : 1 .. '!items!yvuFuIz4ormI3u3u' @ 0 : 0; will stop at (end) -2024/05/02-09:24:00.931157 7f844ae006c0 Manual compaction at level-1 from '!items!1liPVSmnGY35OTxz' @ 72057594037927935 : 1 .. '!items!yvuFuIz4ormI3u3u' @ 0 : 0; will stop at (end) +2026/01/10-23:11:15.653304 7fd462ffd6c0 Recovering log #43 +2026/01/10-23:11:15.706114 7fd462ffd6c0 Delete type=3 #41 +2026/01/10-23:11:15.706189 7fd462ffd6c0 Delete type=0 #43 +2026/01/11-22:24:57.068715 7fd4627fc6c0 Level-0 table #48: started +2026/01/11-22:24:57.068750 7fd4627fc6c0 Level-0 table #48: 0 bytes OK +2026/01/11-22:24:57.100804 7fd4627fc6c0 Delete type=0 #46 +2026/01/11-22:24:57.175363 7fd4627fc6c0 Manual compaction at level-0 from '!items!1liPVSmnGY35OTxz' @ 72057594037927935 : 1 .. '!items!yvuFuIz4ormI3u3u' @ 0 : 0; will stop at (end) +2026/01/11-22:24:57.175405 7fd4627fc6c0 Manual compaction at level-1 from '!items!1liPVSmnGY35OTxz' @ 72057594037927935 : 1 .. '!items!yvuFuIz4ormI3u3u' @ 0 : 0; will stop at (end) diff --git a/packs/runes/MANIFEST-000036 b/packs/runes/MANIFEST-000036 deleted file mode 100644 index 566518e4342c0a3d4df018494ac986f4808dac56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmZ<`JC&8lz{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&PMDx+6$lF|#B!w^-3I zCo>={I5*Ed(%95Lq@s#Zk^u~0@|9(!Zl#`8Ciz9Vp2nrdrHm2~`Ty)HtsD%DOsbp= z%xWwKNpVfje1TjwAXkIMgPl?RiwVpK3@Z!?Sm6PYuXrhVt`usfCW{9vBg{YyH$gS9 PF{-mMv9dF1P;NH>{v%Z8 diff --git a/packs/runes/MANIFEST-000049 b/packs/runes/MANIFEST-000049 new file mode 100644 index 0000000000000000000000000000000000000000..277b50816fb46ef4d69ffb8bcb64e16a011c62e2 GIT binary patch literal 168 zcmWIRX}H(Sz{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&P8Nub5eqnp><`Syt*+ z>RDxyUzF=`WS8Okj!(b20 3084 bytes -2025/05/02-00:00:01.835553 7fe0093ff6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2025/05/02-00:00:01.835678 7fe0093ff6c0 Delete type=2 #5 -2025/05/02-00:00:01.835901 7fe0093ff6c0 Delete type=2 #39 -2025/05/02-00:00:01.867525 7fe0093ff6c0 Manual compaction at level-1 from '!items!tPQecgG9jaT3zmDk' @ 15 : 1 .. '!items!tPQecgG9jaT3zmDk' @ 0 : 0; will stop at (end) +2026/01/11-22:38:18.411718 7fd4637fe6c0 Recovering log #47 +2026/01/11-22:38:18.422280 7fd4637fe6c0 Delete type=3 #45 +2026/01/11-22:38:18.422346 7fd4637fe6c0 Delete type=0 #47 +2026/01/11-22:39:21.547934 7fd4627fc6c0 Level-0 table #52: started +2026/01/11-22:39:21.547959 7fd4627fc6c0 Level-0 table #52: 0 bytes OK +2026/01/11-22:39:21.553976 7fd4627fc6c0 Delete type=0 #50 +2026/01/11-22:39:21.567290 7fd4627fc6c0 Manual compaction at level-0 from '!items!2bXfwlqnbTGnKeny' @ 72057594037927935 : 1 .. '!items!tPQecgG9jaT3zmDk' @ 0 : 0; will stop at (end) +2026/01/11-22:39:21.567326 7fd4627fc6c0 Manual compaction at level-1 from '!items!2bXfwlqnbTGnKeny' @ 72057594037927935 : 1 .. '!items!tPQecgG9jaT3zmDk' @ 0 : 0; will stop at (end) diff --git a/packs/sejdr-divination/LOG.old b/packs/sejdr-divination/LOG.old index a913629..e86242e 100644 --- a/packs/sejdr-divination/LOG.old +++ b/packs/sejdr-divination/LOG.old @@ -1,8 +1,8 @@ -2024/05/02-09:20:30.985932 7f844cc006c0 Recovering log #30 -2024/05/02-09:20:30.996846 7f844cc006c0 Delete type=3 #28 -2024/05/02-09:20:30.996952 7f844cc006c0 Delete type=0 #30 -2024/05/02-09:24:00.958608 7f844ae006c0 Level-0 table #35: started -2024/05/02-09:24:00.958660 7f844ae006c0 Level-0 table #35: 0 bytes OK -2024/05/02-09:24:00.966001 7f844ae006c0 Delete type=0 #33 -2024/05/02-09:24:00.986382 7f844ae006c0 Manual compaction at level-0 from '!items!2bXfwlqnbTGnKeny' @ 72057594037927935 : 1 .. '!items!tPQecgG9jaT3zmDk' @ 0 : 0; will stop at (end) -2024/05/02-09:24:00.986443 7f844ae006c0 Manual compaction at level-1 from '!items!2bXfwlqnbTGnKeny' @ 72057594037927935 : 1 .. '!items!tPQecgG9jaT3zmDk' @ 0 : 0; will stop at (end) +2026/01/10-23:11:15.951343 7fd478fff6c0 Recovering log #43 +2026/01/10-23:11:16.004432 7fd478fff6c0 Delete type=3 #41 +2026/01/10-23:11:16.004520 7fd478fff6c0 Delete type=0 #43 +2026/01/11-22:24:57.212653 7fd4627fc6c0 Level-0 table #48: started +2026/01/11-22:24:57.212683 7fd4627fc6c0 Level-0 table #48: 0 bytes OK +2026/01/11-22:24:57.259051 7fd4627fc6c0 Delete type=0 #46 +2026/01/11-22:24:57.381071 7fd4627fc6c0 Manual compaction at level-0 from '!items!2bXfwlqnbTGnKeny' @ 72057594037927935 : 1 .. '!items!tPQecgG9jaT3zmDk' @ 0 : 0; will stop at (end) +2026/01/11-22:24:57.381114 7fd4627fc6c0 Manual compaction at level-1 from '!items!2bXfwlqnbTGnKeny' @ 72057594037927935 : 1 .. '!items!tPQecgG9jaT3zmDk' @ 0 : 0; will stop at (end) diff --git a/packs/sejdr-divination/MANIFEST-000036 b/packs/sejdr-divination/MANIFEST-000036 deleted file mode 100644 index 0c32505f62fcfc2c93e4e485a1ffcab3cc2fa346..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmZ>kkH3}3z{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&PMDdPYHBF|#B!w^-3A zDI%>rr!X%m#68bDHLsG9jR6c`@+AR*smbZ?mRX4*##Om4*^I0Z`M*=mj&LwAGO2Ph zFsrd}ReTe$^96F%fLsk0es)In9toHc7*=o-u!0{V-(BdizZ7bwCJR3+Bg{YyH$gS9 PF{-mMv9dF1P;NH>7(G&+ diff --git a/packs/sejdr-divination/MANIFEST-000049 b/packs/sejdr-divination/MANIFEST-000049 new file mode 100644 index 0000000000000000000000000000000000000000..60534e4d5a61ef7b2c049737477d2f500b1825c1 GIT binary patch literal 168 zcmWG|e?7gKfss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfDlUNN&IHMdx?Bp@&~ zIo;hdD>1~lD%T~Ok)Ht!*qJnXBw&h+k|NT|a|-j4LfrGbQ}Zerxgm;R^0*9{>CnA~ agMpFBh?9ZYn1#Pa&?*VUH3o7`S@;3l4J+jU literal 0 HcmV?d00001 diff --git a/packs/sejdr-guerison/000038.log b/packs/sejdr-guerison/000051.log similarity index 100% rename from packs/sejdr-guerison/000038.log rename to packs/sejdr-guerison/000051.log diff --git a/packs/sejdr-guerison/CURRENT b/packs/sejdr-guerison/CURRENT index ecb0b4b..a980eef 100644 --- a/packs/sejdr-guerison/CURRENT +++ b/packs/sejdr-guerison/CURRENT @@ -1 +1 @@ -MANIFEST-000036 +MANIFEST-000049 diff --git a/packs/sejdr-guerison/LOG b/packs/sejdr-guerison/LOG index e3cf2cc..8bbefca 100644 --- a/packs/sejdr-guerison/LOG +++ b/packs/sejdr-guerison/LOG @@ -1,15 +1,8 @@ -2025/05/01-23:39:32.737749 7fe00affd6c0 Recovering log #34 -2025/05/01-23:39:32.747833 7fe00affd6c0 Delete type=0 #34 -2025/05/01-23:39:32.747882 7fe00affd6c0 Delete type=3 #32 -2025/05/02-00:00:01.804022 7fe0093ff6c0 Level-0 table #39: started -2025/05/02-00:00:01.807817 7fe0093ff6c0 Level-0 table #39: 9561 bytes OK -2025/05/02-00:00:01.814015 7fe0093ff6c0 Delete type=0 #37 -2025/05/02-00:00:01.825486 7fe0093ff6c0 Manual compaction at level-0 from '!items!1LklBTpkRHN0vgkG' @ 72057594037927935 : 1 .. '!items!wwrc9bTXY8xizVi2' @ 0 : 0; will stop at (end) -2025/05/02-00:00:01.836074 7fe0093ff6c0 Manual compaction at level-1 from '!items!1LklBTpkRHN0vgkG' @ 72057594037927935 : 1 .. '!items!wwrc9bTXY8xizVi2' @ 0 : 0; will stop at '!items!wwrc9bTXY8xizVi2' @ 54 : 1 -2025/05/02-00:00:01.836112 7fe0093ff6c0 Compacting 1@1 + 1@2 files -2025/05/02-00:00:01.840438 7fe0093ff6c0 Generated table #40@1: 18 keys, 9561 bytes -2025/05/02-00:00:01.840465 7fe0093ff6c0 Compacted 1@1 + 1@2 files => 9561 bytes -2025/05/02-00:00:01.846542 7fe0093ff6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2025/05/02-00:00:01.846712 7fe0093ff6c0 Delete type=2 #5 -2025/05/02-00:00:01.846872 7fe0093ff6c0 Delete type=2 #39 -2025/05/02-00:00:01.867536 7fe0093ff6c0 Manual compaction at level-1 from '!items!wwrc9bTXY8xizVi2' @ 54 : 1 .. '!items!wwrc9bTXY8xizVi2' @ 0 : 0; will stop at (end) +2026/01/11-22:38:18.399912 7fd463fff6c0 Recovering log #47 +2026/01/11-22:38:18.409540 7fd463fff6c0 Delete type=3 #45 +2026/01/11-22:38:18.409610 7fd463fff6c0 Delete type=0 #47 +2026/01/11-22:39:21.541287 7fd4627fc6c0 Level-0 table #52: started +2026/01/11-22:39:21.541328 7fd4627fc6c0 Level-0 table #52: 0 bytes OK +2026/01/11-22:39:21.547815 7fd4627fc6c0 Delete type=0 #50 +2026/01/11-22:39:21.567275 7fd4627fc6c0 Manual compaction at level-0 from '!items!1LklBTpkRHN0vgkG' @ 72057594037927935 : 1 .. '!items!wwrc9bTXY8xizVi2' @ 0 : 0; will stop at (end) +2026/01/11-22:39:21.567318 7fd4627fc6c0 Manual compaction at level-1 from '!items!1LklBTpkRHN0vgkG' @ 72057594037927935 : 1 .. '!items!wwrc9bTXY8xizVi2' @ 0 : 0; will stop at (end) diff --git a/packs/sejdr-guerison/LOG.old b/packs/sejdr-guerison/LOG.old index ddc88c6..5898d20 100644 --- a/packs/sejdr-guerison/LOG.old +++ b/packs/sejdr-guerison/LOG.old @@ -1,8 +1,8 @@ -2024/05/02-09:20:30.971214 7f844c2006c0 Recovering log #30 -2024/05/02-09:20:30.982416 7f844c2006c0 Delete type=3 #28 -2024/05/02-09:20:30.982605 7f844c2006c0 Delete type=0 #30 -2024/05/02-09:24:00.951901 7f844ae006c0 Level-0 table #35: started -2024/05/02-09:24:00.951959 7f844ae006c0 Level-0 table #35: 0 bytes OK -2024/05/02-09:24:00.958256 7f844ae006c0 Delete type=0 #33 -2024/05/02-09:24:00.958462 7f844ae006c0 Manual compaction at level-0 from '!items!1LklBTpkRHN0vgkG' @ 72057594037927935 : 1 .. '!items!wwrc9bTXY8xizVi2' @ 0 : 0; will stop at (end) -2024/05/02-09:24:00.958485 7f844ae006c0 Manual compaction at level-1 from '!items!1LklBTpkRHN0vgkG' @ 72057594037927935 : 1 .. '!items!wwrc9bTXY8xizVi2' @ 0 : 0; will stop at (end) +2026/01/10-23:11:15.892174 7fd463fff6c0 Recovering log #43 +2026/01/10-23:11:15.948500 7fd463fff6c0 Delete type=3 #41 +2026/01/10-23:11:15.948574 7fd463fff6c0 Delete type=0 #43 +2026/01/11-22:24:57.314915 7fd4627fc6c0 Level-0 table #48: started +2026/01/11-22:24:57.314944 7fd4627fc6c0 Level-0 table #48: 0 bytes OK +2026/01/11-22:24:57.380909 7fd4627fc6c0 Delete type=0 #46 +2026/01/11-22:24:57.381097 7fd4627fc6c0 Manual compaction at level-0 from '!items!1LklBTpkRHN0vgkG' @ 72057594037927935 : 1 .. '!items!wwrc9bTXY8xizVi2' @ 0 : 0; will stop at (end) +2026/01/11-22:24:57.381124 7fd4627fc6c0 Manual compaction at level-1 from '!items!1LklBTpkRHN0vgkG' @ 72057594037927935 : 1 .. '!items!wwrc9bTXY8xizVi2' @ 0 : 0; will stop at (end) diff --git a/packs/sejdr-guerison/MANIFEST-000036 b/packs/sejdr-guerison/MANIFEST-000036 deleted file mode 100644 index 86744525234b70382628adaa243dd352e4576628..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmaEQ`S_wl21Z7yoYb<^oRlOzr^=Gl^338?=ltA)#G=HK{33QH*4Au!#mth_++syT zpX?l`kb>+W4?lyl^lW!VVFoaO$(NTGC0iziL_}ItWLAY`8Zin%X)MPPZWrP`s;U=gC QHb!+eCRTPP4a)5X0M)5gwEzGB diff --git a/packs/sejdr-guerison/MANIFEST-000049 b/packs/sejdr-guerison/MANIFEST-000049 new file mode 100644 index 0000000000000000000000000000000000000000..7517bfe9ad991282758bbd2f52d0d60d235300a5 GIT binary patch literal 168 zcmb<^YdEu+fss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfDlUNN&IHMdx?yu2vc zGASe?(xM`>DlF58(To8M*qJnLdchPK`ef%gg%o55dH5NWrDwY{szMaO 9340 bytes -2025/05/02-00:00:01.857299 7fe0093ff6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2025/05/02-00:00:01.857398 7fe0093ff6c0 Delete type=2 #5 -2025/05/02-00:00:01.857509 7fe0093ff6c0 Delete type=2 #39 -2025/05/02-00:00:01.867545 7fe0093ff6c0 Manual compaction at level-1 from '!items!tsuOVAHU0W0R6acd' @ 36 : 1 .. '!items!tsuOVAHU0W0R6acd' @ 0 : 0; will stop at (end) +2026/01/11-22:38:18.385453 7fd462ffd6c0 Recovering log #47 +2026/01/11-22:38:18.396135 7fd462ffd6c0 Delete type=3 #45 +2026/01/11-22:38:18.396214 7fd462ffd6c0 Delete type=0 #47 +2026/01/11-22:39:21.560353 7fd4627fc6c0 Level-0 table #52: started +2026/01/11-22:39:21.560381 7fd4627fc6c0 Level-0 table #52: 0 bytes OK +2026/01/11-22:39:21.567112 7fd4627fc6c0 Delete type=0 #50 +2026/01/11-22:39:21.567311 7fd4627fc6c0 Manual compaction at level-0 from '!items!0hZBqEZ1QGm1jHYw' @ 72057594037927935 : 1 .. '!items!tsuOVAHU0W0R6acd' @ 0 : 0; will stop at (end) +2026/01/11-22:39:21.567339 7fd4627fc6c0 Manual compaction at level-1 from '!items!0hZBqEZ1QGm1jHYw' @ 72057594037927935 : 1 .. '!items!tsuOVAHU0W0R6acd' @ 0 : 0; will stop at (end) diff --git a/packs/sejdr-maitrise-des-elements/LOG.old b/packs/sejdr-maitrise-des-elements/LOG.old index f927012..61d21eb 100644 --- a/packs/sejdr-maitrise-des-elements/LOG.old +++ b/packs/sejdr-maitrise-des-elements/LOG.old @@ -1,8 +1,8 @@ -2024/05/02-09:20:30.957339 7f844cc006c0 Recovering log #30 -2024/05/02-09:20:30.967550 7f844cc006c0 Delete type=3 #28 -2024/05/02-09:20:30.967716 7f844cc006c0 Delete type=0 #30 -2024/05/02-09:24:00.944687 7f844ae006c0 Level-0 table #35: started -2024/05/02-09:24:00.944721 7f844ae006c0 Level-0 table #35: 0 bytes OK -2024/05/02-09:24:00.951700 7f844ae006c0 Delete type=0 #33 -2024/05/02-09:24:00.958448 7f844ae006c0 Manual compaction at level-0 from '!items!0hZBqEZ1QGm1jHYw' @ 72057594037927935 : 1 .. '!items!tsuOVAHU0W0R6acd' @ 0 : 0; will stop at (end) -2024/05/02-09:24:00.958512 7f844ae006c0 Manual compaction at level-1 from '!items!0hZBqEZ1QGm1jHYw' @ 72057594037927935 : 1 .. '!items!tsuOVAHU0W0R6acd' @ 0 : 0; will stop at (end) +2026/01/10-23:11:15.826691 7fd462ffd6c0 Recovering log #43 +2026/01/10-23:11:15.889653 7fd462ffd6c0 Delete type=3 #41 +2026/01/10-23:11:15.889724 7fd462ffd6c0 Delete type=0 #43 +2026/01/11-22:24:57.139138 7fd4627fc6c0 Level-0 table #48: started +2026/01/11-22:24:57.139167 7fd4627fc6c0 Level-0 table #48: 0 bytes OK +2026/01/11-22:24:57.175212 7fd4627fc6c0 Delete type=0 #46 +2026/01/11-22:24:57.175386 7fd4627fc6c0 Manual compaction at level-0 from '!items!0hZBqEZ1QGm1jHYw' @ 72057594037927935 : 1 .. '!items!tsuOVAHU0W0R6acd' @ 0 : 0; will stop at (end) +2026/01/11-22:24:57.175424 7fd4627fc6c0 Manual compaction at level-1 from '!items!0hZBqEZ1QGm1jHYw' @ 72057594037927935 : 1 .. '!items!tsuOVAHU0W0R6acd' @ 0 : 0; will stop at (end) diff --git a/packs/sejdr-maitrise-des-elements/MANIFEST-000036 b/packs/sejdr-maitrise-des-elements/MANIFEST-000036 deleted file mode 100644 index 280e45af5f9d5095cc83d95855d1a7dcf8273d78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmb1TI@OxUz{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&PMD`m$DDF|#B!w^-32 zBg(1JHOes1J=ZYHBeI;4mjMi5@+HNk{$Y+Dp$6dwL1u}`DU3W2`C}%mA2}EpnN&F$ znAKP$Y!`ADU|1nZzzP+J{Phlzz*4B0nk*`;j4%T++yvFY P#;DH5#LCX3LAl)k%BfIW diff --git a/packs/sejdr-maitrise-des-elements/MANIFEST-000049 b/packs/sejdr-maitrise-des-elements/MANIFEST-000049 new file mode 100644 index 0000000000000000000000000000000000000000..faf0f03337366ff70e49cf582f5a6e0380076ab5 GIT binary patch literal 168 zcmb1&QCrx|z{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&P8Nub5eqnp><`Qe5gE z=I9Y>5N;4;mYAHvsKNjS>`WSeJYb3pGNPOcU84*G-E$4IJR-{(B_WDn^0*9X6momQ b!NAC5#L2*H%%ZZy{{J)(*BHn(Wl;eD+AAvV literal 0 HcmV?d00001 diff --git a/packs/sejdr-maledictions/000038.log b/packs/sejdr-maledictions/000051.log similarity index 100% rename from packs/sejdr-maledictions/000038.log rename to packs/sejdr-maledictions/000051.log diff --git a/packs/sejdr-maledictions/CURRENT b/packs/sejdr-maledictions/CURRENT index ecb0b4b..a980eef 100644 --- a/packs/sejdr-maledictions/CURRENT +++ b/packs/sejdr-maledictions/CURRENT @@ -1 +1 @@ -MANIFEST-000036 +MANIFEST-000049 diff --git a/packs/sejdr-maledictions/LOG b/packs/sejdr-maledictions/LOG index 6d8def1..3cbf64c 100644 --- a/packs/sejdr-maledictions/LOG +++ b/packs/sejdr-maledictions/LOG @@ -1,15 +1,8 @@ -2025/05/01-23:39:32.712108 7fe009ffb6c0 Recovering log #34 -2025/05/01-23:39:32.721980 7fe009ffb6c0 Delete type=0 #34 -2025/05/01-23:39:32.722111 7fe009ffb6c0 Delete type=3 #32 -2025/05/02-00:00:01.731135 7fe0093ff6c0 Level-0 table #39: started -2025/05/02-00:00:01.734941 7fe0093ff6c0 Level-0 table #39: 3876 bytes OK -2025/05/02-00:00:01.741228 7fe0093ff6c0 Delete type=0 #37 -2025/05/02-00:00:01.741462 7fe0093ff6c0 Manual compaction at level-0 from '!items!5FdmWeZINya8lbm3' @ 72057594037927935 : 1 .. '!items!yccrNbXwA6j5BsjS' @ 0 : 0; will stop at (end) -2025/05/02-00:00:01.772637 7fe0093ff6c0 Manual compaction at level-1 from '!items!5FdmWeZINya8lbm3' @ 72057594037927935 : 1 .. '!items!yccrNbXwA6j5BsjS' @ 0 : 0; will stop at '!items!yccrNbXwA6j5BsjS' @ 12 : 1 -2025/05/02-00:00:01.772644 7fe0093ff6c0 Compacting 1@1 + 1@2 files -2025/05/02-00:00:01.775741 7fe0093ff6c0 Generated table #40@1: 4 keys, 3876 bytes -2025/05/02-00:00:01.775783 7fe0093ff6c0 Compacted 1@1 + 1@2 files => 3876 bytes -2025/05/02-00:00:01.782160 7fe0093ff6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2025/05/02-00:00:01.782290 7fe0093ff6c0 Delete type=2 #5 -2025/05/02-00:00:01.782393 7fe0093ff6c0 Delete type=2 #39 -2025/05/02-00:00:01.782487 7fe0093ff6c0 Manual compaction at level-1 from '!items!yccrNbXwA6j5BsjS' @ 12 : 1 .. '!items!yccrNbXwA6j5BsjS' @ 0 : 0; will stop at (end) +2026/01/11-22:38:18.373646 7fd4637fe6c0 Recovering log #47 +2026/01/11-22:38:18.383647 7fd4637fe6c0 Delete type=3 #45 +2026/01/11-22:38:18.383700 7fd4637fe6c0 Delete type=0 #47 +2026/01/11-22:39:21.534825 7fd4627fc6c0 Level-0 table #52: started +2026/01/11-22:39:21.534853 7fd4627fc6c0 Level-0 table #52: 0 bytes OK +2026/01/11-22:39:21.540917 7fd4627fc6c0 Delete type=0 #50 +2026/01/11-22:39:21.541103 7fd4627fc6c0 Manual compaction at level-0 from '!items!5FdmWeZINya8lbm3' @ 72057594037927935 : 1 .. '!items!yccrNbXwA6j5BsjS' @ 0 : 0; will stop at (end) +2026/01/11-22:39:21.541140 7fd4627fc6c0 Manual compaction at level-1 from '!items!5FdmWeZINya8lbm3' @ 72057594037927935 : 1 .. '!items!yccrNbXwA6j5BsjS' @ 0 : 0; will stop at (end) diff --git a/packs/sejdr-maledictions/LOG.old b/packs/sejdr-maledictions/LOG.old index 412a98d..4edf0a7 100644 --- a/packs/sejdr-maledictions/LOG.old +++ b/packs/sejdr-maledictions/LOG.old @@ -1,8 +1,8 @@ -2024/05/02-09:20:30.943035 7f844c2006c0 Recovering log #30 -2024/05/02-09:20:30.954117 7f844c2006c0 Delete type=3 #28 -2024/05/02-09:20:30.954231 7f844c2006c0 Delete type=0 #30 -2024/05/02-09:24:00.938004 7f844ae006c0 Level-0 table #35: started -2024/05/02-09:24:00.938039 7f844ae006c0 Level-0 table #35: 0 bytes OK -2024/05/02-09:24:00.944540 7f844ae006c0 Delete type=0 #33 -2024/05/02-09:24:00.958433 7f844ae006c0 Manual compaction at level-0 from '!items!5FdmWeZINya8lbm3' @ 72057594037927935 : 1 .. '!items!yccrNbXwA6j5BsjS' @ 0 : 0; will stop at (end) -2024/05/02-09:24:00.958499 7f844ae006c0 Manual compaction at level-1 from '!items!5FdmWeZINya8lbm3' @ 72057594037927935 : 1 .. '!items!yccrNbXwA6j5BsjS' @ 0 : 0; will stop at (end) +2026/01/10-23:11:15.765526 7fd4637fe6c0 Recovering log #43 +2026/01/10-23:11:15.824365 7fd4637fe6c0 Delete type=3 #41 +2026/01/10-23:11:15.824453 7fd4637fe6c0 Delete type=0 #43 +2026/01/11-22:24:57.259209 7fd4627fc6c0 Level-0 table #48: started +2026/01/11-22:24:57.259242 7fd4627fc6c0 Level-0 table #48: 0 bytes OK +2026/01/11-22:24:57.314786 7fd4627fc6c0 Delete type=0 #46 +2026/01/11-22:24:57.381085 7fd4627fc6c0 Manual compaction at level-0 from '!items!5FdmWeZINya8lbm3' @ 72057594037927935 : 1 .. '!items!yccrNbXwA6j5BsjS' @ 0 : 0; will stop at (end) +2026/01/11-22:24:57.381134 7fd4627fc6c0 Manual compaction at level-1 from '!items!5FdmWeZINya8lbm3' @ 72057594037927935 : 1 .. '!items!yccrNbXwA6j5BsjS' @ 0 : 0; will stop at (end) diff --git a/packs/sejdr-maledictions/MANIFEST-000036 b/packs/sejdr-maledictions/MANIFEST-000036 deleted file mode 100644 index ef8f2f5e8cde3294cb65273ec1f8111be26355a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmZSgKjo0fz{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&PMDx?V?KF|#B!w^-5C zEhRTRHOkYkGSMO@Dc6{hl>rQ3@|DTSMSe*U<&I`qrcT9K!Hg^rdF_zR=7*=o+u!097|KQ7yr=?IcHCcFA8DR!uxCyF( PjZvMAiIts6gL1n8Hknc< diff --git a/packs/sejdr-maledictions/MANIFEST-000049 b/packs/sejdr-maledictions/MANIFEST-000049 new file mode 100644 index 0000000000000000000000000000000000000000..fe900b97bf2d9d6c4eda64d95a82c1213c30acc0 GIT binary patch literal 168 zcmb<Z`k%s{c*qJnz$iWnux~1fXr$%}DRVG^GB;^`2azYfr-0 literal 0 HcmV?d00001 diff --git a/packs/sejdr-transmission-des-forces/000038.log b/packs/sejdr-transmission-des-forces/000051.log similarity index 100% rename from packs/sejdr-transmission-des-forces/000038.log rename to packs/sejdr-transmission-des-forces/000051.log diff --git a/packs/sejdr-transmission-des-forces/CURRENT b/packs/sejdr-transmission-des-forces/CURRENT index ecb0b4b..a980eef 100644 --- a/packs/sejdr-transmission-des-forces/CURRENT +++ b/packs/sejdr-transmission-des-forces/CURRENT @@ -1 +1 @@ -MANIFEST-000036 +MANIFEST-000049 diff --git a/packs/sejdr-transmission-des-forces/LOG b/packs/sejdr-transmission-des-forces/LOG index 8613580..9f0e662 100644 --- a/packs/sejdr-transmission-des-forces/LOG +++ b/packs/sejdr-transmission-des-forces/LOG @@ -1,15 +1,8 @@ -2025/05/01-23:39:32.689879 7fe00affd6c0 Recovering log #34 -2025/05/01-23:39:32.708041 7fe00affd6c0 Delete type=0 #34 -2025/05/01-23:39:32.708106 7fe00affd6c0 Delete type=3 #32 -2025/05/02-00:00:01.721355 7fe0093ff6c0 Level-0 table #39: started -2025/05/02-00:00:01.724714 7fe0093ff6c0 Level-0 table #39: 5100 bytes OK -2025/05/02-00:00:01.731013 7fe0093ff6c0 Delete type=0 #37 -2025/05/02-00:00:01.741449 7fe0093ff6c0 Manual compaction at level-0 from '!items!6juBCfGgXhXiO4yq' @ 72057594037927935 : 1 .. '!items!z0m7sFpYBQJeMQtM' @ 0 : 0; will stop at (end) -2025/05/02-00:00:01.761712 7fe0093ff6c0 Manual compaction at level-1 from '!items!6juBCfGgXhXiO4yq' @ 72057594037927935 : 1 .. '!items!z0m7sFpYBQJeMQtM' @ 0 : 0; will stop at '!items!z0m7sFpYBQJeMQtM' @ 33 : 1 -2025/05/02-00:00:01.761720 7fe0093ff6c0 Compacting 1@1 + 1@2 files -2025/05/02-00:00:01.765324 7fe0093ff6c0 Generated table #40@1: 11 keys, 5100 bytes -2025/05/02-00:00:01.765359 7fe0093ff6c0 Compacted 1@1 + 1@2 files => 5100 bytes -2025/05/02-00:00:01.772370 7fe0093ff6c0 compacted to: files[ 0 0 1 0 0 0 0 ] -2025/05/02-00:00:01.772472 7fe0093ff6c0 Delete type=2 #5 -2025/05/02-00:00:01.772571 7fe0093ff6c0 Delete type=2 #39 -2025/05/02-00:00:01.782479 7fe0093ff6c0 Manual compaction at level-1 from '!items!z0m7sFpYBQJeMQtM' @ 33 : 1 .. '!items!z0m7sFpYBQJeMQtM' @ 0 : 0; will stop at (end) +2026/01/11-22:38:18.361846 7fd478fff6c0 Recovering log #47 +2026/01/11-22:38:18.371524 7fd478fff6c0 Delete type=3 #45 +2026/01/11-22:38:18.371602 7fd478fff6c0 Delete type=0 #47 +2026/01/11-22:39:21.515353 7fd4627fc6c0 Level-0 table #52: started +2026/01/11-22:39:21.515414 7fd4627fc6c0 Level-0 table #52: 0 bytes OK +2026/01/11-22:39:21.521410 7fd4627fc6c0 Delete type=0 #50 +2026/01/11-22:39:21.541063 7fd4627fc6c0 Manual compaction at level-0 from '!items!6juBCfGgXhXiO4yq' @ 72057594037927935 : 1 .. '!items!z0m7sFpYBQJeMQtM' @ 0 : 0; will stop at (end) +2026/01/11-22:39:21.541114 7fd4627fc6c0 Manual compaction at level-1 from '!items!6juBCfGgXhXiO4yq' @ 72057594037927935 : 1 .. '!items!z0m7sFpYBQJeMQtM' @ 0 : 0; will stop at (end) diff --git a/packs/sejdr-transmission-des-forces/LOG.old b/packs/sejdr-transmission-des-forces/LOG.old index 5a31a8d..0ace84b 100644 --- a/packs/sejdr-transmission-des-forces/LOG.old +++ b/packs/sejdr-transmission-des-forces/LOG.old @@ -1,8 +1,8 @@ -2024/05/02-09:20:30.928396 7f844cc006c0 Recovering log #30 -2024/05/02-09:20:30.939329 7f844cc006c0 Delete type=3 #28 -2024/05/02-09:20:30.939423 7f844cc006c0 Delete type=0 #30 -2024/05/02-09:24:00.931286 7f844ae006c0 Level-0 table #35: started -2024/05/02-09:24:00.931362 7f844ae006c0 Level-0 table #35: 0 bytes OK -2024/05/02-09:24:00.937874 7f844ae006c0 Delete type=0 #33 -2024/05/02-09:24:00.958415 7f844ae006c0 Manual compaction at level-0 from '!items!6juBCfGgXhXiO4yq' @ 72057594037927935 : 1 .. '!items!z0m7sFpYBQJeMQtM' @ 0 : 0; will stop at (end) -2024/05/02-09:24:00.958473 7f844ae006c0 Manual compaction at level-1 from '!items!6juBCfGgXhXiO4yq' @ 72057594037927935 : 1 .. '!items!z0m7sFpYBQJeMQtM' @ 0 : 0; will stop at (end) +2026/01/10-23:11:15.708167 7fd463fff6c0 Recovering log #43 +2026/01/10-23:11:15.763353 7fd463fff6c0 Delete type=3 #41 +2026/01/10-23:11:15.763436 7fd463fff6c0 Delete type=0 #43 +2026/01/11-22:24:57.100932 7fd4627fc6c0 Level-0 table #48: started +2026/01/11-22:24:57.100960 7fd4627fc6c0 Level-0 table #48: 0 bytes OK +2026/01/11-22:24:57.139011 7fd4627fc6c0 Delete type=0 #46 +2026/01/11-22:24:57.175375 7fd4627fc6c0 Manual compaction at level-0 from '!items!6juBCfGgXhXiO4yq' @ 72057594037927935 : 1 .. '!items!z0m7sFpYBQJeMQtM' @ 0 : 0; will stop at (end) +2026/01/11-22:24:57.175415 7fd4627fc6c0 Manual compaction at level-1 from '!items!6juBCfGgXhXiO4yq' @ 72057594037927935 : 1 .. '!items!z0m7sFpYBQJeMQtM' @ 0 : 0; will stop at (end) diff --git a/packs/sejdr-transmission-des-forces/MANIFEST-000036 b/packs/sejdr-transmission-des-forces/MANIFEST-000036 deleted file mode 100644 index 48765e450e23a1da63c0b673ea9a6d5efc4543ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmZpP;l7&4z{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&PMD`odgZF|#B!w^-3E ztJKLk%{@ILBO=q^q_U8ahXD*=@>K@8=EZIWkxqeLslI_FzKq-u`R~8|FLN+3GO2Ph zFsreMZC+XZ$`{C019CN36xkWo->Ackz_3D`fE9`mdB0=9Eu~O1HCYr{8DR!uxCyF( PjZvMAiIts6gL1n87?x9k diff --git a/packs/sejdr-transmission-des-forces/MANIFEST-000049 b/packs/sejdr-transmission-des-forces/MANIFEST-000049 new file mode 100644 index 0000000000000000000000000000000000000000..ec72677d544c07d42c251e1ffe0593372dd42a87 GIT binary patch literal 168 zcmdn;({Xw;10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAei199ykcfaYHqP&l|im~ zv0Fi;Q=nI>Z(xZpqap(surq1AQHLoq%PMtpPIFI>$cV`FH>oUS6o)8+$>TCa*}RU2 bgMpFBh?9ZYm_?CI>v$cAYYgO?vM2%oulOq9 literal 0 HcmV?d00001 diff --git a/styles/yggdrasill.css b/styles/yggdrasill.css new file mode 100644 index 0000000..3320b09 --- /dev/null +++ b/styles/yggdrasill.css @@ -0,0 +1,2861 @@ +/* ==================== (A) Fonts ==================== */ +@font-face { + font-family: "MedievalSharp"; + src: url('../fonts/MedievalSharp.ttf') format("truetype"); +} +@font-face { + font-family: "GrenzeGotisch"; + src: url('../fonts/GrenzeGotisch-Regular.ttf') format("truetype"); +} +@font-face { + font-family: "Fondamento"; + src: url('../fonts/Fondamento.ttf') format("truetype"); +} +@font-face { + font-family: "CaslonAntique"; + src: url('../fonts/CaslonAntique.ttf') format("truetype"); +} +@font-face { + font-family: "Vinque"; + src: url('../fonts/vinque_rg.ttf') format("truetype"); +} +:root { + /* =================== 1. ACTOR SHEET FONT STYLES =========== */ + --window-header-title-font-family: Vinque; + --window-header-title-font-size: 1.3rem; + --window-header-title-font-weight: normal; + --window-header-title-color: #f5f5f5; + --major-button-font-family: Vinque; + --major-button-font-size: 1.05rem; + --major-button-font-weight: normal; + --major-button-color: #dadada; + --tab-header-font-family: Vinque; + --tab-header-font-size: 1rem; + --tab-header-font-weight: 700; + --tab-header-color: #403f3e; + --tab-header-color-active: #4a0404; + --actor-input-font-family: Vinque; + --actor-input-font-size: 0.9rem; + --actor-input-font-weight: 500; + --actor-input-color: black; + --actor-label-font-family: Vinque; + --actor-label-font-size: 0.9rem; + --actor-label-font-weight: 700; + --actor-label-color: #464331c4; + /* =================== 2. DEBUGGING HIGHLIGHTERS ============ */ + --debug-background-color-red: #ff000054; + --debug-background-color-blue: #1d00ff54; + --debug-background-color-green: #54ff0054; + --debug-box-shadow-red: inset 0 0 2px red; + --debug-box-shadow-blue: inset 0 0 2px blue; + --debug-box-shadow-green: inset 0 0 2px green; +} +/* Global styles & Font */ +.window-app { + font-family: Vinque, serif; + text-align: justify; + font-size: 16px; + letter-spacing: 1px; +} +/* Fonts */ +.sheet header.sheet-header h1 input, +.window-app .window-header, +#actors .directory-list, +#navigation #scene-list .scene.nav-item { + font-family: "GoudyAcc"; +} +/* For title, sidebar character and scene */ +.sheet nav.sheet-tabs { + font-family: "Vinque"; +} +/* For nav and title */ +.window-app input, +.foundryvtt-vadentis .item-form, +.sheet header.sheet-header .flex-group-center.flex-compteurs, +.sheet header.sheet-header .flex-group-center.flex-fatigue { + font-family: "Vinque"; + /* For sheet parts */ +} +.window-header { + background: rgba(0, 0, 0, 0.75); +} +.window-app.sheet .window-content { + margin: 0; + padding: 0; +} +.strong-text { + font-weight: bold; +} +.tabs .item.active, +.blessures-list li ul li:first-child:hover, +a:hover { + text-shadow: 1px 0px 0px #ff6600; +} +.rollable:hover, +.rollable:focus { + color: #000; + text-shadow: 0 0 10px red; + cursor: pointer; +} +input:disabled { + color: #000; + /* Black text for disabled inputs */ + background: rgba(200, 200, 200, 0.3); + /* Light gray background */ + cursor: not-allowed; +} +select:disabled { + color: #000; + /* Black text for disabled selects */ + background: rgba(200, 200, 200, 0.3); + /* Light gray background */ + cursor: not-allowed; +} +table { + border: 1px solid #7a7971; +} +.grid, +.grid-2col { + display: grid; + grid-column: span 2 / span 2; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 10px; + margin: 10px 0; + padding: 0; +} +.grid-3col { + grid-column: span 3 / span 3; + grid-template-columns: repeat(3, minmax(0, 1fr)); +} +.grid-4col { + grid-column: span 4 / span 4; + grid-template-columns: repeat(4, minmax(0, 1fr)); +} +.grid-5col { + grid-column: span 5 / span 5; + grid-template-columns: repeat(5, minmax(0, 1fr)); +} +.grid-6col { + grid-column: span 5 / span 5; + grid-template-columns: repeat(5, minmax(0, 1fr)); +} +.grid-7col { + grid-column: span 7 / span 7; + grid-template-columns: repeat(7, minmax(0, 1fr)); +} +.grid-8col { + grid-column: span 8 / span 8; + grid-template-columns: repeat(8, minmax(0, 1fr)); +} +.grid-9col { + grid-column: span 9 / span 9; + grid-template-columns: repeat(9, minmax(0, 1fr)); +} +.grid-10col { + grid-column: span 10 / span 10; + grid-template-columns: repeat(10, minmax(0, 1fr)); +} +.grid-11col { + grid-column: span 11 / span 11; + grid-template-columns: repeat(11, minmax(0, 1fr)); +} +.grid-12col { + grid-column: span 12 / span 12; + grid-template-columns: repeat(12, minmax(0, 1fr)); +} +.flex-group-center, +.flex-group-left, +.flex-group-right { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + text-align: center; + padding: 5px; +} +.flex-group-left { + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + text-align: left; +} +.flex-group-right { + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + text-align: right; +} +.flex-center { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + text-align: center; +} +.flex-between { + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; +} +.flex-shrink { + flex: 'flex-shrink'; +} +/* Styles limited to foundryvtt-vadentis sheets */ +.fvtt-yggdrasill .sheet-header { + -webkit-box-flex: 0; + -ms-flex: 0 0 210px; + flex: 0 0 210px; + overflow: hidden; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + margin-bottom: 0; + background: #011d33 url("../images/ui/header_sheet.webp") repeat left top; + color: rgba(255, 255, 255, 0.5); +} +.fvtt-yggdrasill .sheet-header .profile-img { + -webkit-box-flex: 0; + -ms-flex: 0 0 90px; + flex: 0 0 90px; + height: 90px; + width: 90px; + margin: 0.2rem; + /* Add margin around the image */ + object-fit: cover; + object-position: 50% 0; +} +.button-img { + vertical-align: baseline; + width: 8%; + height: 8%; + max-height: 48px; + border-width: 0; + border: 1px solid rgba(0, 0, 0, 0); +} +.button-img:hover { + color: rgba(255, 255, 128, 0.7); + border: 1px solid rgba(255, 128, 0, 0.8); + cursor: pointer; +} +.button-effect-img { + vertical-align: baseline; + width: 16px; + max-height: 16px; + height: 16; + border-width: 0; +} +.small-button-container { + height: 16px; + width: 16px; + border: 0; + vertical-align: bottom; +} +.fvtt-yggdrasill .sheet-header .header-fields { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; +} +.fvtt-yggdrasill .sheet-header h1.charname { + height: 40px; + padding: 0px; + margin: 5px 0; + border-bottom: 0; +} +.fvtt-yggdrasill .sheet-header h1.charname input { + background: rgba(255, 255, 255, 0.05); + border: 0 none; + margin-bottom: 0.25rem; + color: rgba(255, 255, 255, 0.75); + width: 100%; + height: 100%; + margin: 0; + font-family: "CaslonAntique", serif; + /* Elegant font for character name */ + font-size: 2.16rem; + /* Increased by 20% from 1.8rem */ +} +.fvtt-yggdrasill .sheet-header .lock-icon { + display: flex; + align-items: center; + margin-left: 10px; +} +.fvtt-yggdrasill .sheet-header .lock-icon a { + cursor: pointer; + opacity: 0.7; + transition: opacity 0.2s ease; +} +.fvtt-yggdrasill .sheet-header .lock-icon a:hover { + opacity: 1; +} +.fvtt-yggdrasill .sheet-header .lock-icon img { + filter: brightness(0) invert(1); + /* Make icon white */ +} +.fvtt-yggdrasill .sheet-tabs { + -webkit-box-flex: 0; + -ms-flex: 0; + flex: 0; +} +.fvtt-yggdrasill section.sheet-body { + height: 100%; + overflow-y: auto; + background: rgba(245, 245, 240, 0.6) url("../images/ui/sheet_background.webp") left top; +} +.fvtt-yggdrasill .sheet-body .tab, +.fvtt-yggdrasill .sheet-body .tab .editor { + height: 100%; +} +.editor { + border: 1px solid #999; + height: 300px; + background: transparent; +} +.editor-content { + height: 100%; + padding: 0.5rem; + color: #000; +} +/* ProseMirror editor background */ +.fvtt-yggdrasill .ProseMirror { + background: transparent; + border: 1px solid #999; + min-height: 200px; +} +.medium-editor { + border: 1px solid #999; + height: 240px; + background: transparent; +} +.small-editor { + border: 1px solid #999; + height: 150px; + background: transparent; +} +.fvtt-yggdrasill .tox .tox-editor-container { + background: #fff; +} +.fvtt-yggdrasill .tox .tox-edit-area { + padding: 0 8px; +} +.fvtt-yggdrasill .resource-label { + font-weight: bold; + text-transform: uppercase; +} +.fvtt-yggdrasill .tabs { + height: auto; + border: none; + background: linear-gradient(to bottom, rgba(74, 4, 4, 0.1), rgba(74, 4, 4, 0.05)); + padding: 0.5rem 0.5rem 0; + display: flex; + gap: 0.25rem; +} +.fvtt-yggdrasill .tabs .item { + line-height: 1.5; + font-weight: bold; + padding: 0.5rem 1.25rem; + background: rgba(245, 245, 240, 0.4); + border: 1px solid rgba(74, 4, 4, 0.3); + border-bottom: none; + border-radius: 8px 8px 0 0; + font-family: "Vinque", serif; + color: #4a0404; + transition: all 0.2s ease; + position: relative; + cursor: pointer; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4); +} +.fvtt-yggdrasill .tabs .item:hover { + background: rgba(245, 245, 240, 0.6); + color: #6a0606; + transform: translateY(-2px); +} +.fvtt-yggdrasill .tabs .item.active { + background: rgba(245, 245, 240, 0.9); + border-color: #4a0404; + border-bottom: 2px solid rgba(245, 245, 240, 0.9); + margin-bottom: -1px; + z-index: 1; + text-decoration: none; + text-shadow: 0 0 8px rgba(74, 4, 4, 0.3); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6), 0 -2px 8px rgba(74, 4, 4, 0.1); + transform: translateY(0); +} +.fvtt-yggdrasill .items-list { + list-style: none; + margin: 7px 0; + padding: 0; + overflow-y: auto; +} +.foundryvtt-vadentis .items-list .item-header { + font-weight: bold; +} +.foundryvtt-vadentis .items-list .item { + height: 30px; + line-height: 24px; + padding: 3px 0; + border-bottom: 1px solid #BBB; +} +.foundryvtt-vadentis .items-list .item .item-image { + -webkit-box-flex: 0; + -ms-flex: 0 0 24px; + flex: 0 0 24px; + margin-right: 5px; +} +.foundryvtt-vadentis .items-list .item img { + display: block; +} +.foundryvtt-vadentis .items-list .item-name { + margin: 0; +} +.foundryvtt-vadentis .items-list .item-controls { + -webkit-box-flex: 0; + -ms-flex: 0 0 86px; + flex: 0 0 86px; + text-align: right; +} +.rdddialog .dialog-roll-sort { + width: 600px; + height: 430px; + z-index: 9999; + display: block; +} +#input-furor { + padding: 10px; + border: 4px solid #e6dfdf; + -webkit-border-radius: 5px; + border-radius: 5px; + border-width: 2; + font-weight: bold; + text-align: center; + padding-top: 1rem; + font-size: 2rem; + text-shadow: #011d33; + width: 6rem; + height: 4rem; + flex-grow: 1; +} +#max-furor { + width: 2rem; + font-weight: bold; + text-align: center; + flex-grow: 1; +} +#input-pv { + padding: 10px; + border: 4px solid #cc4545; + -webkit-border-radius: 5px; + border-radius: 5px; + border-width: 2; + font-weight: bold; + text-align: center; + padding-top: 1rem; + font-size: 2rem; + text-shadow: #011d33; + width: 6rem; + height: 4rem; + flex-grow: 1; +} +.pv-label { + font-weight: bold; + text-align: center; + flex-grow: 1; +} +/* ======================================== */ +/* Sheet */ +.window-app.sheet .window-content .sheet-header { + background: #011d33 url("../images/ui/header_sheet.webp") repeat left top; + color: rgba(255, 255, 255, 0.5); +} +.window-app.sheet .window-content .sheet-header input[type="text"], +.window-app.sheet .window-content .sheet-header input[type="number"], +.window-app.sheet .window-content .sheet-header input[type="password"], +.window-app.sheet .window-content .sheet-header input[type="date"], +.window-app.sheet .window-content .sheet-header input[type="time"] { + color: rgba(255, 255, 255, 0.75); + background: rgba(255, 255, 255, 0.05); + border: 0 none; + margin-bottom: 0.25rem; +} +.window-app .window-content, +.window-app.sheet .window-content .sheet-body { + background: rgba(245, 245, 240, 0.6) url("../images/ui/sheet_background.webp") left top; +} +.sheet header.sheet-header .profile-img { + object-fit: cover; + object-position: 50% 0; + margin: 0; + padding: 0; +} +.sheet nav.sheet-tabs { + font-size: 0.85rem; + font-weight: bold; + height: auto; + flex: 0 0 auto; + margin: 0; + padding: 0.5rem 0.5rem 0; + text-align: center; + line-height: 1.5; + border: none; + color: #4a0404; + background: linear-gradient(to bottom, rgba(74, 4, 4, 0.1), rgba(74, 4, 4, 0.05)); + display: flex; + gap: 0.25rem; +} +nav.sheet-tabs .item { + position: relative; + padding: 0.5rem 1.25rem; + background: rgba(245, 245, 240, 0.4); + border: 1px solid rgba(74, 4, 4, 0.3); + border-bottom: none; + border-radius: 8px 8px 0 0; + font-family: "Vinque", serif; + color: #4a0404; + transition: all 0.2s ease; + cursor: pointer; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4); +} +nav.sheet-tabs .item:hover:not(.active) { + background: rgba(245, 245, 240, 0.6); + color: #6a0606; + transform: translateY(-2px); +} +nav.sheet-tabs .item.active { + background: rgba(245, 245, 240, 0.9); + border-color: #4a0404; + border-bottom: 2px solid rgba(245, 245, 240, 0.9); + margin-bottom: -1px; + z-index: 1; + text-shadow: 0 0 8px rgba(74, 4, 4, 0.3); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6), 0 -2px 8px rgba(74, 4, 4, 0.1); + transform: translateY(0); +} +nav.sheet-tabs .item:after { + display: none; + /* Remove old separator */ +} +/* Tab visibility - same as wasteland */ +.fvtt-yggdrasill .sheet-body[data-tab] { + display: none; + height: auto; + padding: 0.5rem; + padding-bottom: 1rem; + /* Extra padding at bottom to prevent cutoff */ + overflow-y: auto !important; + max-height: calc(100vh - 350px); + /* Limit height to enable scrolling */ + scrollbar-width: thin; + scrollbar-color: rgba(74, 4, 4, 0.5) rgba(0, 0, 0, 0.1); + box-sizing: border-box; + /* Include padding in height calculation */ +} +.fvtt-yggdrasill .sheet-body[data-tab].active { + display: block; +} +/* Tab content wrapper */ +.fvtt-yggdrasill .tab-content { + padding: 0.5rem; + padding-bottom: 1rem; + /* Extra padding at bottom */ + font-family: "Vinque", serif; + /* Apply Vinque to all tab content */ + height: 100%; + overflow: visible; + color: #2b2b2b; + /* Dark text color for better readability */ +} +/* Sheet section */ +.fvtt-yggdrasill .sheet-section { + margin-bottom: 1rem; + padding: 0.75rem; + background: rgba(250, 248, 240, 0.4); + border: 1px solid rgba(74, 4, 4, 0.15); + border-radius: 4px; +} +.fvtt-yggdrasill .sheet-section h3 { + border-bottom: 2px solid #4a0404; + padding-bottom: 0.25rem; + margin-bottom: 0.5rem; + color: #4a0404; + font-family: "Vinque", serif; + font-size: 1.35rem; + /* Reduced by 10% from default ~1.5rem */ +} +.fvtt-yggdrasill .sheet-section h4 { + color: #4a0404; + margin: 0.5rem 0 0.25rem 0; + font-family: "Vinque", serif; + font-size: 1.1rem; +} +.fvtt-yggdrasill .sheet-section label, +.fvtt-yggdrasill .sheet-section .item-name, +.fvtt-yggdrasill .sheet-section span { + font-family: "Vinque", serif; + color: #3a3a3a; + font-weight: 600; +} +.fvtt-yggdrasill .sheet-section .flexrow { + margin-bottom: 0.35rem; + align-items: center; +} +.fvtt-yggdrasill .sheet-section .flexrow label { + flex: 0 0 120px; + margin-right: 0.5rem; +} +.fvtt-yggdrasill .sheet-section .flexrow input { + color: #2b2b2b; + background: rgba(255, 255, 255, 0.8); + border: 1px solid rgba(74, 4, 4, 0.25); + padding: 0.25rem 0.5rem; + border-radius: 3px; +} +.fvtt-yggdrasill .sheet-section .flexrow input:focus { + border-color: #4a0404; + outline: none; + box-shadow: 0 0 0 2px rgba(74, 4, 4, 0.1); +} +/* Carac category */ +.fvtt-yggdrasill .carac-category { + margin-bottom: 0.3rem; + /* Reduced further from 0.5rem */ +} +.fvtt-yggdrasill .carac-category h4 { + font-family: "Vinque", serif; + color: #4a0404; + border-bottom: 1px solid rgba(74, 4, 4, 0.3); + padding-bottom: 0.1rem; + /* Reduced from 0.15rem */ + margin-bottom: 0.15rem; + /* Reduced from 0.25rem */ +} +.fvtt-yggdrasill .carac-category .item-list { + list-style: none; + margin: 0; + padding: 0; +} +.fvtt-yggdrasill .carac-category .item-list .item { + display: flex; + align-items: center; + padding: 0.1rem 0; + /* Reduced from 0.15rem */ + gap: 0.5rem; + flex-wrap: nowrap; + /* Force everything on one line */ +} +.fvtt-yggdrasill .carac-category .item-list .item.flexrow { + justify-content: space-between; +} +.fvtt-yggdrasill .carac-category .item-list .item .item-img { + width: 20px; + /* Reduced from 24px */ + height: 20px; + /* Reduced from 24px */ + flex: 0 0 20px; +} +.fvtt-yggdrasill .carac-category .item-list .item .item-name { + flex: 1; + color: #000; + font-family: "Vinque", serif; + font-size: 0.9rem; + /* Slightly smaller */ +} +.fvtt-yggdrasill .carac-category .item-list .item .item-name a { + color: #000; + text-decoration: none; + font-family: "Vinque", serif; +} +.fvtt-yggdrasill .carac-category .item-list .item .item-name a:hover { + color: #4a0404; + text-decoration: underline; +} +.fvtt-yggdrasill .carac-category .item-list .item select { + flex: 0 0 auto; + min-width: 60px; + width: auto !important; + /* Override any global width: 100% */ + display: inline-block !important; + /* Ensure inline display */ + font-family: "Vinque", serif; +} +/* Item list styling for actors */ +.fvtt-yggdrasill .sheet-section .item-list { + list-style: none; + margin: 0; + padding: 0; +} +.fvtt-yggdrasill .sheet-section .item-list .item { + display: flex; + align-items: center; + padding: 0.2rem 0; + gap: 0.5rem; + flex-wrap: nowrap; + border-bottom: 1px solid rgba(74, 4, 4, 0.1); +} +.fvtt-yggdrasill .sheet-section .item-list .item.flexrow { + justify-content: space-between; +} +.fvtt-yggdrasill .sheet-section .item-list .item .item-img { + width: 20px; + height: 20px; + flex: 0 0 20px; + object-fit: cover; +} +.fvtt-yggdrasill .sheet-section .item-list .item .item-name { + flex: 1; + color: #000; + font-weight: 500; + font-family: "Vinque", serif; + font-size: 0.95rem; +} +.fvtt-yggdrasill .sheet-section .item-list .item .item-controls { + display: flex; + align-items: center; + gap: 0.5rem; + flex: 0 0 auto; + justify-content: flex-end; + flex-wrap: nowrap; +} +.fvtt-yggdrasill .sheet-section .item-list .item .item-controls span { + color: #000; + white-space: nowrap; + font-family: "Vinque", serif; +} +.fvtt-yggdrasill .sheet-section .item-list .item .item-controls select { + min-width: 60px; + width: auto !important; + display: inline-block !important; + font-family: "Vinque", serif; +} +/* PV container */ +.fvtt-yggdrasill .pv-container, +.fvtt-yggdrasill .furor-container { + display: flex; + align-items: center; + gap: 0.5rem; + margin: 0.5rem 0; +} +.fvtt-yggdrasill .pv-container input, +.fvtt-yggdrasill .furor-container input { + font-family: "Vinque", serif; + font-size: 1.2rem; + text-align: center; +} +.fvtt-yggdrasill .pv-container span, +.fvtt-yggdrasill .furor-container span { + font-family: "Vinque", serif; + font-size: 1.2rem; + color: #000; +} +.fvtt-yggdrasill .pv-container .pv-control, +.fvtt-yggdrasill .furor-container .pv-control { + width: 28px; + height: 28px; + padding: 0; + border: 1px solid #4a0404; + background: rgba(74, 4, 4, 0.1); + color: #4a0404; + font-size: 1.2rem; + font-weight: bold; + cursor: pointer; + border-radius: 3px; + display: flex; + align-items: center; + justify-content: center; + transition: all 0.2s ease; +} +.fvtt-yggdrasill .pv-container .pv-control:hover, +.fvtt-yggdrasill .furor-container .pv-control:hover { + background: rgba(74, 4, 4, 0.2); + border-color: #6a0606; +} +.fvtt-yggdrasill .pv-container .pv-control:active, +.fvtt-yggdrasill .furor-container .pv-control:active { + background: rgba(74, 4, 4, 0.3); +} +/* Status container */ +.fvtt-yggdrasill .status-container { + display: flex; + flex-direction: column; + gap: 0.5rem; + margin: 0.5rem 0; +} +.fvtt-yggdrasill .status-container label { + display: flex; + align-items: center; + gap: 0.5rem; + font-family: "Vinque", serif; + color: #000; + cursor: pointer; +} +.fvtt-yggdrasill .status-container label input[type="checkbox"] { + width: auto; + margin: 0; +} +/* Competence list styling */ +.fvtt-yggdrasill .competence-list { + list-style: none; + margin: 0; + padding: 0; +} +.fvtt-yggdrasill .competence-list .competence-header { + display: grid; + grid-template-columns: 24px 1fr 80px 60px; + gap: 0.5rem; + align-items: center; + padding: 0.3rem 0; + border-bottom: 2px solid #4a0404; + margin-bottom: 0.3rem; + font-weight: bold; + color: #4a0404; + font-family: "Vinque", serif; + font-size: 0.9rem; +} +.fvtt-yggdrasill .competence-list .competence-item { + display: grid; + grid-template-columns: 24px 1fr 80px 60px; + gap: 0.5rem; + align-items: center; + padding: 0.25rem 0; + border-bottom: 1px solid rgba(74, 4, 4, 0.1); +} +.fvtt-yggdrasill .competence-list .competence-item:hover { + background: rgba(74, 4, 4, 0.05); +} +.fvtt-yggdrasill .competence-list .competence-item .competence-icon { + width: 24px; + height: 24px; + object-fit: cover; + border-radius: 3px; +} +.fvtt-yggdrasill .competence-list .competence-item .competence-name { + color: #000; + font-family: "Vinque", serif; + font-size: 0.95rem; +} +.fvtt-yggdrasill .competence-list .competence-item .competence-name a { + color: #000; + text-decoration: none; +} +.fvtt-yggdrasill .competence-list .competence-item .competence-name a:hover { + color: #4a0404; + text-decoration: underline; +} +.fvtt-yggdrasill .competence-list .competence-item .competence-name .specialisation { + font-style: italic; + color: #666; + font-size: 0.85rem; + margin-left: 0.25rem; +} +.fvtt-yggdrasill .competence-list .competence-item .competence-niveau { + width: 80px; + font-family: "Vinque", serif; + text-align: center; +} +.fvtt-yggdrasill .competence-list .competence-item .competence-controls { + display: flex; + gap: 0.5rem; + justify-content: flex-end; +} +.fvtt-yggdrasill .competence-list .competence-item .competence-controls a { + color: #4a0404; +} +.fvtt-yggdrasill .competence-list .competence-item .competence-controls a:hover { + color: #6a0606; +} +/* Combat list styling */ +.fvtt-yggdrasill .combat-list { + list-style: none; + margin: 0; + padding: 0; +} +.fvtt-yggdrasill .combat-list .combat-header { + display: grid; + grid-template-columns: 24px 1fr 120px 100px 80px; + gap: 0.5rem; + align-items: center; + padding: 0.3rem 0; + border-bottom: 2px solid #4a0404; + margin-bottom: 0.3rem; + font-weight: bold; + color: #4a0404; + font-family: "Vinque", serif; + font-size: 0.9rem; +} +.fvtt-yggdrasill .combat-list .combat-item { + display: grid; + grid-template-columns: 24px 1fr 120px 100px 80px; + gap: 0.5rem; + align-items: center; + padding: 0.25rem 0; + border-bottom: 1px solid rgba(74, 4, 4, 0.1); +} +.fvtt-yggdrasill .combat-list .combat-item:hover { + background: rgba(74, 4, 4, 0.05); +} +.fvtt-yggdrasill .combat-list .combat-item .combat-icon { + width: 24px; + height: 24px; + object-fit: cover; + border-radius: 3px; +} +.fvtt-yggdrasill .combat-list .combat-item .combat-name { + color: #000; + font-family: "Vinque", serif; + font-size: 0.95rem; +} +.fvtt-yggdrasill .combat-list .combat-item .combat-name a { + color: #000; + text-decoration: none; +} +.fvtt-yggdrasill .combat-list .combat-item .combat-name a:hover { + color: #4a0404; + text-decoration: underline; +} +.fvtt-yggdrasill .combat-list .combat-item .combat-categorie, +.fvtt-yggdrasill .combat-list .combat-item .combat-degat, +.fvtt-yggdrasill .combat-list .combat-item .combat-niveau, +.fvtt-yggdrasill .combat-list .combat-item .combat-protection, +.fvtt-yggdrasill .combat-list .combat-item .combat-bonus { + color: #000; + font-family: "Vinque", serif; + font-size: 0.9rem; + text-align: center; +} +.fvtt-yggdrasill .combat-list .combat-item .combat-controls { + display: flex; + gap: 0.5rem; + justify-content: flex-end; +} +.fvtt-yggdrasill .combat-list .combat-item .combat-controls a { + color: #4a0404; +} +.fvtt-yggdrasill .combat-list .combat-item .combat-controls a:hover { + color: #6a0606; +} +/* Sort list styling */ +.fvtt-yggdrasill .sort-list { + list-style: none; + margin: 0; + padding: 0; +} +.fvtt-yggdrasill .sort-list .sort-header { + display: grid; + grid-template-columns: 24px 1fr 120px 100px 80px; + gap: 0.5rem; + align-items: center; + padding: 0.3rem 0; + border-bottom: 2px solid #4a0404; + margin-bottom: 0.3rem; + font-weight: bold; + color: #4a0404; + font-family: "Vinque", serif; + font-size: 0.9rem; +} +.fvtt-yggdrasill .sort-list .sort-item { + display: grid; + grid-template-columns: 24px 1fr 120px 100px 80px; + gap: 0.5rem; + align-items: center; + padding: 0.25rem 0; + border-bottom: 1px solid rgba(74, 4, 4, 0.1); +} +.fvtt-yggdrasill .sort-list .sort-item:hover { + background: rgba(74, 4, 4, 0.05); +} +.fvtt-yggdrasill .sort-list .sort-item.rune-item { + grid-template-columns: 24px 1fr 100px 80px 100px 80px; +} +.fvtt-yggdrasill .sort-list .sort-item .sort-icon { + width: 24px; + height: 24px; + object-fit: cover; + border-radius: 3px; +} +.fvtt-yggdrasill .sort-list .sort-item .sort-name { + color: #000; + font-family: "Vinque", serif; + font-size: 0.95rem; +} +.fvtt-yggdrasill .sort-list .sort-item .sort-name a { + color: #000; + text-decoration: none; +} +.fvtt-yggdrasill .sort-list .sort-item .sort-name a:hover { + color: #4a0404; + text-decoration: underline; +} +.fvtt-yggdrasill .sort-list .sort-item .sort-forme, +.fvtt-yggdrasill .sort-list .sort-item .sort-niveau, +.fvtt-yggdrasill .sort-list .sort-item .sort-domaine, +.fvtt-yggdrasill .sort-list .sort-item .sort-duree, +.fvtt-yggdrasill .sort-list .sort-item .sort-cible { + color: #000; + font-family: "Vinque", serif; + font-size: 0.9rem; + text-align: center; +} +.fvtt-yggdrasill .sort-list .sort-item .sort-controls { + display: flex; + gap: 0.5rem; + justify-content: flex-end; +} +.fvtt-yggdrasill .sort-list .sort-item .sort-controls a { + color: #4a0404; +} +.fvtt-yggdrasill .sort-list .sort-item .sort-controls a:hover { + color: #6a0606; +} +.fvtt-yggdrasill .sort-list .rune-item .sort-header { + grid-template-columns: 24px 1fr 100px 80px 100px 80px; +} +/* Equipement list styling */ +.fvtt-yggdrasill .equipement-list { + list-style: none; + margin: 0; + padding: 0; +} +.fvtt-yggdrasill .equipement-list .equipement-header { + display: grid; + grid-template-columns: 24px 1fr 100px 80px 80px; + gap: 0.5rem; + align-items: center; + padding: 0.3rem 0; + border-bottom: 2px solid #4a0404; + margin-bottom: 0.3rem; + font-weight: bold; + color: #4a0404; + font-family: "Vinque", serif; + font-size: 0.9rem; +} +.fvtt-yggdrasill .equipement-list .equipement-item { + display: grid; + grid-template-columns: 24px 1fr 100px 80px 80px; + gap: 0.5rem; + align-items: center; + padding: 0.25rem 0; + border-bottom: 1px solid rgba(74, 4, 4, 0.1); +} +.fvtt-yggdrasill .equipement-list .equipement-item:hover { + background: rgba(74, 4, 4, 0.05); +} +.fvtt-yggdrasill .equipement-list .equipement-item .equipement-icon { + width: 24px; + height: 24px; + object-fit: cover; + border-radius: 3px; +} +.fvtt-yggdrasill .equipement-list .equipement-item .equipement-name { + color: #000; + font-family: "Vinque", serif; + font-size: 0.95rem; +} +.fvtt-yggdrasill .equipement-list .equipement-item .equipement-quantite, +.fvtt-yggdrasill .equipement-list .equipement-item .equipement-enc { + color: #000; + font-family: "Vinque", serif; + font-size: 0.9rem; + text-align: center; +} +.fvtt-yggdrasill .equipement-list .equipement-item .equipement-controls { + display: flex; + gap: 0.5rem; + justify-content: flex-end; +} +.fvtt-yggdrasill .equipement-list .equipement-item .equipement-controls a { + color: #4a0404; +} +.fvtt-yggdrasill .equipement-list .equipement-item .equipement-controls a:hover { + color: #6a0606; +} +/* Description tab styling */ +.fvtt-yggdrasill .sheet-body[data-tab="description"] .form-group { + display: grid; + grid-template-columns: 120px 1fr; + gap: 0.5rem; + align-items: center; + margin-bottom: 0.5rem; +} +.fvtt-yggdrasill .sheet-body[data-tab="description"] .form-group label { + color: #000; + font-family: "Vinque", serif; + font-weight: bold; + text-align: right; +} +.fvtt-yggdrasill .sheet-body[data-tab="description"] .form-group input { + font-family: "Vinque", serif; + padding: 0.25rem; + border: 1px solid rgba(74, 4, 4, 0.3); + background: rgba(255, 255, 255, 0.8); +} +.fvtt-yggdrasill .sheet-body[data-tab="description"] .editor-content { + min-height: 150px; + padding: 0.5rem; + border: 1px solid rgba(74, 4, 4, 0.3); + background: rgba(255, 255, 255, 0.8); + font-family: "Vinque", serif; +} +section.sheet-body:after { + content: ""; + display: block; + clear: both; +} +.sheet header.sheet-header .flex-compteurs { + text-align: right; +} +.sheet header.sheet-header .resource-content { + width: 2rem; +} +.ctn-vie span, +.ctn-endu span, +.ctn-fatigue span, +.ctn-reve span { + display: inline-block; + text-align: left; + width: 2rem; +} +.select-diff { + display: inline-block; + text-align: left; + width: 50px; +} +#vie-plus, +#vie-moins, +#endurance-plus, +#endurance-moins, +#fatigue-plus, +#fatigue-moins, +#ptreve-actuel-plus, +#ptreve-actuel-moins, +.monnaie-plus, +.monnaie-moins { + display: inline-block; + width: 1.25rem; + background: #1e1914; + text-align: center; + border: 1px solid #482e1c; + border-radius: 0.25rem; + line-height: 1.25rem; + color: rgba(255, 255, 255, 0.5); +} +.window-app.sheet .window-content .tooltip:hover .tooltiptext { + top: 2rem; + left: 2rem; + margin: 0; + padding: 0.25rem; +} +.window-app.sheet .window-content .carac-value, +.window-app.sheet .window-content .competence-xp { + margin: 0.05rem; + flex-basis: 3rem; + text-align: center; +} +#combat #combat-round .encounters a { + color: #3f1f1f; +} +/* ======================================== */ +/* Global UI elements */ +/* ======================================== */ +h1, +h2, +h3, +h4 { + font-weight: bold; +} +ul, +ol { + margin: 0; + padding: 0; +} +ul, +li { + list-style-type: none; +} +.sheet li { + margin: 0.125rem; + padding: 0.25rem; +} +.header-fields li { + margin: 0; + padding: 0; +} +.alterne-list > .list-item:hover { + background: rgba(100, 100, 50, 0.25); +} +.alterne-list > .list-item:nth-child(even) { + background: rgba(80, 60, 0, 0.1); +} +.alterne-list > .list-item:nth-child(odd) { + background: #a08264; +} +.xp-level-up { + margin: 0.125rem; + box-shadow: inset 0px 0px 1px #00000096; + border-radius: 0.25rem; + padding: 0.125rem; + flex: 1 1 5rem; + background: rgba(195, 152, 22, 0.5); +} +.blessures-list ul { + display: flex; +} +.blessures-list li { + flex: 1; + flex-basis: auto; +} +.blessures-list li ul li:first-child { + flex: 0; + align-items: center; + justify-content: center; + padding: 0.5rem; + cursor: pointer; +} +.specialisation-label { + font-size: 0.8rem; +} +.carac-label { + font-weight: bold; +} +.list-item { + margin: 0.125rem; + box-shadow: inset 0px 0px 1px #00000096; + border-radius: 0.25rem; + padding: 0.125rem; + flex: 1 1 5rem; +} +.item-display-show { + display: block; +} +.item-display-hide { + display: none; +} +.conteneur-type { + background: #c80a64; +} +.item-quantite { + margin-left: 0.5rem; +} +.list-item-margin1 { + margin-left: 1rem; +} +.list-item-margin2 { + margin-left: 2rem; +} +.list-item-margin3 { + margin-left: 3rem; +} +.list-item-margin4 { + margin-left: 4rem; +} +.sheet-competence-img { + width: 24px; + height: 24px; + flex-grow: 0; + margin-right: 0.25rem; +} +.competence-column { + flex-direction: column; + align-content: flex-start; + justify-content: flex-start; + flex-grow: 0; + flex-basis: 1; +} +.competence-header { + align-content: flex-start; + justify-content: flex-start; + font-weight: bold; + flex-grow: 0; +} +.secondaire-label, +.arme-label, +.generic-label, +.competence-label, +.devotion-label, +.sort-label, +.technique-label, +.stat-label, +.arme-label, +.armure-label, +.equipement-label, +.description-label { + flex-grow: 2; +} +.score-label { + flex-grow: 2; + align-content: center; +} +.attribut-value, +.carac-value { + flex-grow: 0; + flex-basis: 64px; + margin-right: 4px; + margin-left: 4px; +} +.sante-value, +.competence-value { + flex-grow: 0; + flex-basis: 2rem; + margin-right: 0.25rem; + margin-left: 0.25rem; +} +.description-value { + flex-grow: 0; + flex-basis: 4rem; + margin-right: 0.25rem; + margin-left: 0.25rem; +} +.competence-xp { + flex-grow: 0; + flex-basis: 2rem; + margin-right: 0.25rem; + margin-left: 0.25rem; +} +.blessures-title { + font-weight: bold; +} +.alchimie-title { + font-weight: bold; +} +.blessure-data { + flex-direction: row; + align-content: flex-start; + justify-content: flex-start; +} +.blessures-soins { + flex-grow: 0; + flex-basis: 32px; + margin-right: 4px; + margin-left: 4px; +} +.blessures-loc { + flex-grow: 0; + flex-basis: 96px; + margin-right: 4px; + margin-left: 4px; +} +.pointsreve-value { + flex-grow: 0; + flex-basis: 64px; + margin-right: 4px; + margin-left: 4px; +} +.input-sante-header, +.stress-style { + flex-grow: 0; + flex-basis: 64px; + margin-right: 4px; + margin-left: 4px; +} +/* ======================================== */ +.table-nombres-astraux { + border: 1; + font-size: 0.75rem; +} +.table-nombres-astraux td { + border: 1px solid black; + text-align: center; + vertical-align: top; +} +/* ======================================== */ +.tokenhudext { + display: flex; + flex: 0 !important; + font-family: CaslonPro; + font-weight: 600; +} +.tokenhudext.left { + justify-content: flex-start; + flex-direction: column; + position: absolute; + top: 2.75rem; + right: 4rem; +} +.tokenhudext.right { + justify-content: flex-start; + flex-direction: column; + position: absolute; + top: 2.75rem; + left: 4rem; +} +.control-icon.tokenhudicon { + width: fit-content; + height: fit-content; + min-width: 6rem; + flex-basis: auto; + padding: 0; + line-height: 1rem; + margin: 0.25rem; +} +.control-icon.tokenhudicon.right { + margin-left: 8px; +} +#token-hud .status-effects.active { + z-index: 2; +} +/* ======================================== */ +.item-checkbox { + height: 25px; + border: 1px solid #736953a6; + border-left: none; + font-weight: 500; + font-size: 0.9rem; + color: black; + padding-top: 5px; + margin-right: 0px; + width: 45px; + position: relative; + left: 0px; + text-align: center; +} +/* ======================================== */ +/* dialogue competence : Appel au moral */ +.diffAppelAuMoral { + display: none !important; +} +.imgAppelAuMoral { + height: 20px; + width: 20px; + border: none; + outline: none; + background-size: cover; +} +/* Tooltip container */ +.tooltipAppelAuMoral { + position: relative; + display: inline-block; + border-bottom: 0; +} +/* Show the tooltip text when you mouse over the tooltip container */ +.tooltipAppelAuMoral:hover .tooltipAppelAuMoralText { + visibility: visible; + opacity: 1; +} +/* Tooltip text */ +.tooltipAppelAuMoral .tooltipAppelAuMoralText { + text-align: center; + /* Position the tooltip text */ + position: absolute; + z-index: 1; + top: -10px; + left: 18%; + /* Fade in tooltip */ + visibility: hidden; + opacity: 0; + transition: opacity 0.3s; +} +.flex-actions-bar { + flex-grow: 2; +} +/* ======================================== */ +/* Sidebar CSS */ +#sidebar { + font-size: 1rem; + width: min-content; + background: #695541 url("../images/ui/texture_feuille_perso_onglets.webp") no-repeat right bottom; + background-position: 100%; + color: rgba(220, 220, 220, 0.75); +} +#sidebar-tabs > .collapsed, +#chat-controls .chat-control-icon { + color: rgba(220, 220, 220, 0.75); + text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.75); +} +.sidebar-tab .directory-list .entity { + border-top: 1px dashed rgba(0, 0, 0, 0.25); + border-bottom: 0 none; + padding: 0.25rem 0; +} +.sidebar-tab .directory-list .entity:hover { + background: rgba(0, 0, 0, 0.05); + cursor: pointer; +} +/* ============================================ */ +/* CHAT MESSAGES STYLING */ +/* ============================================ */ +.chat-message { + background: linear-gradient(135deg, rgba(230, 220, 200, 0.85) 0%, rgba(210, 200, 180, 0.8) 100%); + font-size: 0.9rem; + font-family: "Vinque", serif; + border: 1px solid rgba(74, 4, 4, 0.2); + border-radius: 4px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15); + margin: 0.25rem 0; +} +.chat-message .message-header { + background: linear-gradient(135deg, rgba(74, 4, 4, 0.15) 0%, rgba(42, 2, 2, 0.1) 100%); + padding: 0.5rem; + border-bottom: 1px solid rgba(74, 4, 4, 0.2); + border-radius: 4px 4px 0 0; +} +.chat-message .message-header .flavor-text, +.chat-message .message-header .whisper-to { + font-size: 0.9rem; + color: #3d2f1f; + font-style: italic; +} +.chat-message .message-header .message-sender { + font-weight: 700; + color: #4a0404; + font-family: "Vinque", serif; +} +.chat-message .message-content { + padding: 0.5rem; + color: #2a1f15; + line-height: 1.4; +} +.chat-message .message-content h3 { + font-family: "Vinque", serif; + font-size: 1.1rem; + margin: 0.4rem 0; + color: #4a0404; + border-bottom: 1px solid rgba(74, 4, 4, 0.2); + padding-bottom: 0.2rem; +} +.chat-message .message-content h4 { + font-family: "Vinque", serif; + font-size: 1rem; + margin: 0.3rem 0; + color: #3d2f1f; +} +.chat-message .message-content p { + margin: 0.5rem 0; +} +.chat-message .message-content p:first-child { + margin-top: 0; +} +.chat-message .message-content p:last-child { + margin-bottom: 0; +} +.chat-message .message-content strong, +.chat-message .message-content b { + color: #4a0404; + font-weight: 700; +} +.chat-message .message-content em, +.chat-message .message-content i { + color: #3d2f1f; + font-style: italic; +} +.chat-message .chat-icon { + border: 2px solid rgba(74, 4, 4, 0.3); + border-radius: 4px; + padding: 2px; + margin: 0.25rem; + float: left; + width: 32px; + height: 32px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); +} +.chat-message.whisper { + background: linear-gradient(135deg, rgba(84, 84, 105, 0.25) 0%, rgba(64, 64, 85, 0.2) 100%); + border: 2px solid #545469; +} +.chat-message.whisper .message-header { + background: linear-gradient(135deg, rgba(84, 84, 105, 0.3) 0%, rgba(64, 64, 85, 0.25) 100%); +} +.chat-message.whisper .message-header .whisper-to { + color: #545469; + font-weight: 600; +} +.chat-message-header { + background: linear-gradient(135deg, rgba(230, 220, 200, 0.9) 0%, rgba(210, 200, 180, 0.85) 100%); + font-size: 1.1rem; + height: 48px; + text-align: center; + vertical-align: middle; + display: flex; + align-items: center; + justify-content: center; + font-family: "Vinque", serif; + color: #4a0404; + border: 1px solid rgba(74, 4, 4, 0.2); + border-radius: 4px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15); + font-weight: 700; +} +.chat-actor-name { + padding: 4px; + font-family: "Vinque", serif; + color: #4a0404; + font-weight: 600; +} +.actor-icon { + float: left; + width: 48px; + height: 48px; + padding: 2px 6px 2px 2px; +} +#sidebar-tabs { + flex: 0 0 32px; + box-sizing: border-box; + margin: 0 0 5px; + border-bottom: 1px solid rgba(0, 0, 0, 0); + box-shadow: inset 0 0 2rem rgba(0, 0, 0, 0.5); +} +#sidebar-tabs > .item.active { + border: 1px solid #726248; + background: rgba(30, 25, 20, 0.75); + box-shadow: 0 0 6px inset #726248; +} +#sidebar #sidebar-tabs i { + width: 23px; + height: 23px; + display: inline-block; + background-position: center; + background-size: cover; + text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.75); +} +/*--------------------------------------------------------------------------*/ +/* Control, Tool, hotbar & navigation */ +#controls .scene-control, +#controls .control-tool { + box-shadow: 0 0 3px #000; + margin: 0 0 8px; + border-radius: 0; + background: #1e1914; + background-origin: padding-box; + border-image-width: 4px; + border-image-outset: 0px; +} +#controls .scene-control.active, +#controls .control-tool.active, +#controls .scene-control:hover, +#controls .control-tool:hover { + background: #482e1c; + background-origin: padding-box; + border-image-width: 4px; + border-image-outset: 0px; + box-shadow: 0 0 3px #ff6400; +} +#hotbar #action-bar #macro-list { + border: 1px solid #482e1c; + box-shadow: 2px 2px 5px #000000; +} +#hotbar #action-bar .macro { + border-image: url(img/ui/bg_control.jpg) 21 repeat; + border-image-slice: 6 6 6 6 fill; + border-image-width: 6px 6px 6px 6px; + border-image-outset: 0px 0px 0px 0px; + border-radius: 0px; +} +#hotbar .bar-controls { + background: #1e1914; + border: 1px solid #482e1c; +} +#players { + border-image-width: 4px; + border-image-outset: 0px; + background: #1e1914; +} +#navigation #scene-list .scene.nav-item.active { + background: #482e1c; +} +#navigation #scene-list .scene.nav-item { + background: #1e1914; + background-origin: padding-box; + border-image-width: 4px; + border-image-outset: 0px; +} +#navigation #scene-list .scene.view, +#navigation #scene-list .scene.context { + background: #482e1c; + background-origin: padding-box; + border-image-width: 4px; + border-image-outset: 0px; + box-shadow: 0 0 3px #ff6400; +} +#navigation #nav-toggle { + background: #1e1914; + background-origin: padding-box; + border-image-width: 4px; + border-image-outset: 0px; +} +/* Tooltip container */ +.tooltip { + position: relative; + display: inline-block; + border-bottom: 1px dotted black; + /* If you want dots under the hoverable text */ +} +/* Tooltip text */ +.tooltip .tooltiptext { + text-align: center; + /* Position the tooltip text */ + top: 20px; + position: absolute; + z-index: 1; + /* Fade in tooltip */ + visibility: hidden; + opacity: 0; + transition: opacity 0.3s; +} +.tooltip .ttt-fatigue { + width: 360px; + background: rgba(30, 25, 20, 0.9); + border-image: url(img/ui/bg_control.jpg) 21 repeat; + border-image-slice: 6 6 6 6 fill; + border-image-width: 6px 6px 6px 6px; + border-image-outset: 0px 0px 0px 0px; + border-radius: 0px; + font-size: 0.8rem; + padding: 3px 0; +} +.tooltip .ttt-ajustements { + width: 150px; + background: rgba(220, 220, 210, 0.95); + border-radius: 6px; + font-size: 0.9rem; + padding: 3px 0; +} +.tooltip-nobottom { + border-bottom: unset; + /* If you want dots under the hoverable text */ +} +.tooltip .ttt-xp { + width: 250px; + background: rgba(220, 220, 210, 0.95); + border-radius: 6px; + font-size: 0.9rem; + padding: 3px 0; +} +/* Show the tooltip text when you mouse over the tooltip container */ +.tooltip:hover .tooltiptext { + visibility: visible; + opacity: 1; +} +.chat-card-button { + box-shadow: inset 0px 1px 0px 0px #a6827e; + background: linear-gradient(to bottom, #21374afc 5%, #152833ab 100%); + background-color: #7d5d3b00; + border-radius: 3px; + border: 2px ridge #846109; + display: inline-block; + cursor: pointer; + color: #ffffff; + font-family: CaslonPro; + font-size: 14px; + padding: 4px 12px 0px 12px; + text-decoration: none; + text-shadow: 0px 1px 0px #4d3534; + position: relative; + margin: 5px; +} +.plus-moins-button { + box-shadow: inset 0px 1px 0px 0px #a6827e; + background: linear-gradient(to bottom, #21374afc 5%, #152833ab 100%); + background-color: #7d5d3b00; + border-radius: 3px; + border: 2px ridge #846109; + display: inline-block; + cursor: pointer; + color: #ffffff; + padding: 2px 6px 0px 6px; + text-decoration: none; + text-shadow: 0px 1px 0px #4d3534; + position: relative; + margin: 3px; +} +.plus-moins-button:hover, +.chat-card-button:hover { + background: linear-gradient(to bottom, #800000 5%, #3e0101 100%); + background-color: red; +} +.plus-moins-button:active, +.chat-card-button:active { + position: relative; + top: 1px; +} +.plus-moins { + font-size: 0.9rem; + font-weight: bold; +} +/*************************************************************/ +#pause { + font-family: CaslonAntique; + font-size: 2rem; +} +#pause > h3 { + color: #CCC; +} +#pause > img { + content: url(../images/ui/ygg_logo_3.png); + height: 132px; + width: 200px; + top: -10px; + left: calc(50% - 132px); +} +#logo { + content: url(../images/ui/ygg_logo_3.png); + width: 80px; + height: 68px; +} +/* ========================================== */ +/* Modern Item Sheets Styling */ +/* ========================================== */ +.fvtt-yggdrasill.item { + /* Properties Grid */ + /* Description Section */ + /* Rune Specific Styling */ +} +.fvtt-yggdrasill.item .properties-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 1rem; + padding: 1rem; + margin-bottom: 1rem; +} +.fvtt-yggdrasill.item .property-group { + display: flex; + flex-direction: column; + gap: 0.25rem; +} +.fvtt-yggdrasill.item .property-label { + font-family: Vinque, serif; + font-size: 0.81rem; + font-weight: 700; + color: #4a0404; + text-transform: uppercase; + letter-spacing: 0.5px; + margin-bottom: 0.25rem; +} +.fvtt-yggdrasill.item .property-input { + padding: 0.5rem; + border: 1px solid rgba(0, 0, 0, 0.3); + border-radius: 4px; + background: rgba(255, 255, 255, 0.8); + font-family: Vinque, serif; + font-size: 0.9rem; + color: #2c2c2c; + transition: all 0.2s ease; +} +.fvtt-yggdrasill.item .property-input:focus { + outline: none; + border-color: #4a0404; + background: rgba(255, 255, 255, 0.95); + box-shadow: 0 0 0 2px rgba(74, 4, 4, 0.1); +} +.fvtt-yggdrasill.item .property-input:hover { + border-color: rgba(74, 4, 4, 0.5); +} +.fvtt-yggdrasill.item select.property-input { + cursor: pointer; + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%234a0404' d='M6 9L1 4h10z'/%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: right 0.5rem center; + padding-right: 2rem; +} +.fvtt-yggdrasill.item .description-section { + padding: 0 1rem 1rem; +} +.fvtt-yggdrasill.item .section-title { + font-family: Vinque, serif; + font-size: 1.1rem; + font-weight: 700; + color: #4a0404; + text-transform: uppercase; + letter-spacing: 1px; + margin-bottom: 0.75rem; + padding-bottom: 0.5rem; + border-bottom: 2px solid rgba(74, 4, 4, 0.3); +} +.fvtt-yggdrasill.item .description-content { + background: rgba(255, 255, 255, 0.6); + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 4px; + padding: 0.75rem; + min-height: 200px; +} +.fvtt-yggdrasill.item .description-content .ProseMirror { + min-height: 150px; + padding: 0.5rem; +} +.fvtt-yggdrasill.item.rune-sheet .properties-grid { + background: linear-gradient(135deg, rgba(74, 4, 4, 0.05) 0%, rgba(74, 4, 4, 0.02) 100%); + border-radius: 6px; + border: 1px solid rgba(74, 4, 4, 0.15); +} +.fvtt-yggdrasill.item.rune-sheet .property-group { + position: relative; +} +.fvtt-yggdrasill.item.rune-sheet .property-group::before { + content: ''; + position: absolute; + left: -0.5rem; + top: 0; + bottom: 0; + width: 3px; + background: linear-gradient(to bottom, transparent, #4a0404, transparent); + opacity: 0.3; +} +/* Decorative Separator */ +.header-separator { + height: 3px; + background: linear-gradient(to right, transparent 0%, rgba(74, 4, 4, 0.2) 10%, rgba(74, 4, 4, 0.6) 30%, #4a0404 50%, rgba(74, 4, 4, 0.6) 70%, rgba(74, 4, 4, 0.2) 90%, transparent 100%); + position: relative; + margin: 0; +} +.header-separator::before, +.header-separator::after { + content: ''; + position: absolute; + top: 50%; + transform: translateY(-50%); + width: 8px; + height: 8px; + background: #4a0404; + border-radius: 50%; + box-shadow: 0 0 4px rgba(74, 4, 4, 0.5); +} +.header-separator::before { + left: 20%; +} +.header-separator::after { + right: 20%; +} +/* Remove padding/margin from item window borders */ +.item .window-content { + margin: 0; + padding: 0; +} +.item section.sheet-body { + padding: 0; + margin: 0; +} +.item .sheet-header { + margin-bottom: 0; +} +.item .tab { + padding: 0; + margin: 0; +} +/* Remove padding/margin from actor window borders */ +.actor .window-content { + margin: 0; + padding: 0; +} +.actor section.sheet-body { + padding: 0; + margin: 0; +} +.actor .sheet-header { + margin-bottom: 0; +} +/* Add scrollbar to sheet body in items */ +.item .sheet-body { + max-height: calc(100vh - 300px); + overflow-y: scroll !important; + scrollbar-width: thin; + /* Firefox */ + scrollbar-color: rgba(74, 4, 4, 0.5) rgba(0, 0, 0, 0.1); + /* Firefox */ + /* WebKit (Chrome, Safari) */ +} +.item .sheet-body::-webkit-scrollbar { + width: 10px; +} +.item .sheet-body::-webkit-scrollbar-track { + background: rgba(0, 0, 0, 0.1); + border-radius: 5px; +} +.item .sheet-body::-webkit-scrollbar-thumb { + background: rgba(74, 4, 4, 0.5); + border-radius: 5px; +} +.item .sheet-body::-webkit-scrollbar-thumb:hover { + background: rgba(74, 4, 4, 0.7); +} +/* Checkbox group styling */ +.checkbox-group { + display: flex; + align-items: center; +} +.checkbox-group .property-label { + display: flex; + align-items: center; + gap: 0.5rem; + text-transform: none; + font-weight: 500; +} +.checkbox-group .property-label input[type="checkbox"] { + width: auto; + margin: 0; +} +/* Roll Dialog styling */ +.yggdrasill-roll-dialog .window-content { + background: rgba(245, 245, 240, 0.95) url("../images/ui/sheet_background.webp") left top; + padding: 1rem; + font-family: "Vinque", serif; +} +.yggdrasill-roll-dialog label { + font-family: "Vinque", serif; + color: #4a0404; + font-weight: bold; +} +.yggdrasill-roll-dialog input, +.yggdrasill-roll-dialog select { + font-family: "Vinque", serif; + background: rgba(255, 255, 255, 0.9); + border: 1px solid rgba(74, 4, 4, 0.3); + color: #000; + font-size: 0.9rem; + font-weight: 500; +} +/* Modern Roll Dialog Styling */ +.ygg-roll-dialog { + font-family: "Vinque", serif; + /* Header */ + /* Main Body */ + /* Stats Column */ + /* Stat Card */ + /* Stat Grid */ + /* Modifiers Column */ + /* Modifier Card */ + /* Status List */ +} +.ygg-roll-dialog .roll-header { + display: flex; + align-items: center; + gap: 1rem; + padding: 1rem; + background: linear-gradient(135deg, rgba(74, 4, 4, 0.9), rgba(74, 4, 4, 0.7)); + border-bottom: 2px solid #4a0404; + margin: -1rem -1rem 1rem -1rem; +} +.ygg-roll-dialog .roll-header .actor-portrait { + width: 64px; + height: 64px; + border-radius: 50%; + border: 3px solid rgba(255, 255, 255, 0.3); + object-fit: cover; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); +} +.ygg-roll-dialog .roll-header .roll-info { + flex: 1; +} +.ygg-roll-dialog .roll-header .roll-info .actor-name { + margin: 0 0 0.25rem 0; + color: #fff; + font-size: 1.35rem; + font-family: "Vinque", serif; + text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5); +} +.ygg-roll-dialog .roll-header .roll-info .roll-subject { + display: flex; + align-items: center; + gap: 0.5rem; + color: rgba(255, 255, 255, 0.9); + font-size: 0.99rem; + font-family: "Vinque", serif; +} +.ygg-roll-dialog .roll-header .roll-info .roll-subject i { + opacity: 0.7; +} +.ygg-roll-dialog .roll-header .roll-info .roll-subject .subject-name { + font-weight: bold; +} +.ygg-roll-dialog .roll-header .roll-info .roll-subject .specialisation { + font-style: italic; + opacity: 0.8; + font-size: 0.855rem; + font-family: "Vinque", serif; +} +.ygg-roll-dialog .roll-body { + display: grid; + grid-template-columns: 1fr 300px; + gap: 1rem; +} +@media (max-width: 800px) { + .ygg-roll-dialog .roll-body { + grid-template-columns: 1fr; + } +} +.ygg-roll-dialog .roll-stats { + display: flex; + flex-direction: column; + gap: 0.75rem; +} +.ygg-roll-dialog .stat-card { + background: rgba(255, 255, 255, 0.6); + border: 1px solid rgba(74, 4, 4, 0.2); + border-radius: 6px; + padding: 0.75rem; + transition: all 0.2s ease; +} +.ygg-roll-dialog .stat-card:hover { + background: rgba(255, 255, 255, 0.8); + border-color: rgba(74, 4, 4, 0.4); +} +.ygg-roll-dialog .stat-card label { + display: block; + color: #4a0404; + font-weight: bold; + font-size: 0.765rem; + font-family: "Vinque", serif; + margin-bottom: 0.5rem; + text-transform: uppercase; + letter-spacing: 0.5px; +} +.ygg-roll-dialog .stat-card .stat-value { + color: #000; + font-size: 0.9rem; + font-family: "Vinque", serif; + font-weight: 500; +} +.ygg-roll-dialog .stat-card .stat-value.large { + font-size: 1.62rem; + font-weight: bold; + text-align: center; +} +.ygg-roll-dialog .stat-card .stat-value.danger { + color: #8b0000; + font-weight: bold; +} +.ygg-roll-dialog .stat-card .stat-value strong { + color: #4a0404; + font-size: 0.99em; +} +.ygg-roll-dialog .stat-card select { + width: 100%; + padding: 0.5rem; + border: 1px solid rgba(74, 4, 4, 0.3); + border-radius: 4px; + background: rgba(255, 255, 255, 0.95); + font-family: "Vinque", serif; + font-size: 0.9rem; + color: #000; + font-weight: 500; +} +.ygg-roll-dialog .stat-card select:focus { + outline: none; + border-color: #4a0404; + box-shadow: 0 0 0 2px rgba(74, 4, 4, 0.1); +} +.ygg-roll-dialog .stat-card.compact { + padding: 0.5rem; +} +.ygg-roll-dialog .stat-card.compact label { + font-size: 0.675rem; + margin-bottom: 0.25rem; +} +.ygg-roll-dialog .stat-card.compact .stat-value { + font-size: 0.81rem; +} +.ygg-roll-dialog .stat-card.highlight { + background: rgba(255, 235, 205, 0.6); + border-color: rgba(218, 165, 32, 0.5); +} +.ygg-roll-dialog .stat-card.success { + background: rgba(144, 238, 144, 0.3); + border-color: rgba(34, 139, 34, 0.5); + border-width: 2px; +} +.ygg-roll-dialog .stat-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); + gap: 0.75rem; +} +.ygg-roll-dialog .stat-grid.three-col { + grid-template-columns: repeat(3, 1fr); +} +.ygg-roll-dialog .roll-modifiers { + display: flex; + flex-direction: column; + gap: 1rem; +} +.ygg-roll-dialog .modifier-card, +.ygg-roll-dialog .status-card { + background: rgba(245, 245, 240, 0.8); + border: 2px solid rgba(74, 4, 4, 0.3); + border-radius: 8px; + padding: 0.6rem; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); +} +.ygg-roll-dialog .modifier-card h3, +.ygg-roll-dialog .status-card h3 { + margin: 0 0 0.5rem 0; + color: #4a0404; + font-size: 0.9rem; + font-family: "Vinque", serif; + font-weight: bold; + display: flex; + align-items: center; + gap: 0.4rem; + border-bottom: 2px solid rgba(74, 4, 4, 0.2); + padding-bottom: 0.3rem; +} +.ygg-roll-dialog .modifier-card h3 i, +.ygg-roll-dialog .status-card h3 i { + opacity: 0.7; + font-size: 0.85rem; +} +.ygg-roll-dialog .modifier-card .stat-card, +.ygg-roll-dialog .status-card .stat-card { + margin-bottom: 0.5rem; + padding: 0.4rem; +} +.ygg-roll-dialog .modifier-card .stat-card label, +.ygg-roll-dialog .status-card .stat-card label { + font-size: 0.72rem; + margin-bottom: 0.2rem; +} +.ygg-roll-dialog .modifier-card .stat-card:last-child, +.ygg-roll-dialog .status-card .stat-card:last-child { + margin-bottom: 0; +} +.ygg-roll-dialog .status-list { + display: flex; + flex-direction: column; + gap: 0.5rem; +} +.ygg-roll-dialog .status-item { + display: grid; + grid-template-columns: auto 2rem 1fr auto; + align-items: center; + gap: 0.5rem; + padding: 0.5rem; + background: rgba(255, 255, 255, 0.5); + border: 1px solid rgba(0, 0, 0, 0.1); + border-radius: 4px; + cursor: not-allowed; +} +.ygg-roll-dialog .status-item input[type="checkbox"] { + margin: 0; + cursor: not-allowed; +} +.ygg-roll-dialog .status-item .status-icon { + font-size: 1.08rem; + text-align: center; +} +.ygg-roll-dialog .status-item .status-text { + color: #000; + font-weight: 500; + font-family: "Vinque", serif; + font-size: 0.9rem; +} +.ygg-roll-dialog .status-item .status-effect { + color: #8b0000; + font-weight: bold; + font-size: 0.855rem; + font-family: "Vinque", serif; + background: rgba(255, 255, 255, 0.8); + padding: 0.15rem 0.4rem; + border-radius: 3px; + border: 1px solid rgba(139, 0, 0, 0.3); +} +.ygg-roll-dialog .status-item.epuise input:checked ~ .status-icon, +.ygg-roll-dialog .status-item.blesse input:checked ~ .status-icon, +.ygg-roll-dialog .status-item.meurtri input:checked ~ .status-icon { + filter: grayscale(0); +} +.ygg-roll-dialog .status-item input:checked ~ .status-text { + color: #8b0000; +} +/* ======================================== + CHAT MESSAGE STYLES - Viking Theme + ======================================== */ +.ygg-chat-card { + font-family: "Vinque", serif; + background: linear-gradient(135deg, rgba(245, 235, 220, 0.95) 0%, rgba(230, 220, 205, 0.95) 100%); + border: 3px solid #4a0404; + border-radius: 8px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3), inset 0 0 20px rgba(218, 165, 32, 0.1); + overflow: hidden; + margin: 0.3rem 0; + /* Header Section */ + /* Roll Description */ + /* Dice Section */ + /* Calculation Breakdown */ + /* Final Result */ + /* Damage Section */ + /* Weapon Details */ + /* Magic Details */ +} +.ygg-chat-card .ygg-chat-header { + background: linear-gradient(135deg, #4a0404 0%, #6b0505 100%); + color: #f5ead3; + padding: 0.5rem 0.75rem; + display: flex; + align-items: center; + gap: 0.5rem; + border-bottom: 2px solid #daa520; +} +.ygg-chat-card .ygg-chat-header .header-decorative-border { + flex: 1; + height: 2px; + background: linear-gradient(90deg, transparent 0%, #daa520 50%, transparent 100%); +} +.ygg-chat-card .ygg-chat-header .actor-portrait { + width: 40px; + height: 40px; + border-radius: 50%; + border: 2px solid #daa520; + box-shadow: 0 0 8px rgba(218, 165, 32, 0.5); + object-fit: cover; +} +.ygg-chat-card .ygg-chat-header .header-content { + flex-shrink: 0; + text-align: center; +} +.ygg-chat-card .ygg-chat-header .actor-name { + margin: 0; + font-family: "CaslonAntique", serif; + font-size: 1.1rem; + font-weight: bold; + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); + color: #f5ead3; +} +.ygg-chat-card .ygg-chat-header .roll-type { + font-size: 0.75rem; + font-weight: normal; + opacity: 0.9; + margin-top: -0.1rem; +} +.ygg-chat-card .ygg-chat-header .roll-type i { + margin-right: 0.2rem; +} +.ygg-chat-card .ygg-roll-description { + padding: 0.5rem 0.75rem; + background: rgba(255, 255, 255, 0.4); + border-bottom: 1px solid rgba(74, 4, 4, 0.2); + font-size: 0.9rem; +} +.ygg-chat-card .ygg-roll-description strong { + color: #4a0404; + font-size: 1rem; +} +.ygg-chat-card .ygg-roll-description .dice-formula, +.ygg-chat-card .ygg-roll-description .skill-level, +.ygg-chat-card .ygg-roll-description .carac-detail, +.ygg-chat-card .ygg-roll-description .skill-detail { + color: #555; + font-size: 0.8rem; +} +.ygg-chat-card .ygg-dice-section { + padding: 0.5rem 0.75rem; + background: rgba(255, 250, 240, 0.6); + border-bottom: 1px solid rgba(74, 4, 4, 0.2); +} +.ygg-chat-card .ygg-dice-section .dice-results, +.ygg-chat-card .ygg-dice-section .furor-results { + margin-bottom: 0.4rem; +} +.ygg-chat-card .ygg-dice-section .dice-results:last-child, +.ygg-chat-card .ygg-dice-section .furor-results:last-child { + margin-bottom: 0; +} +.ygg-chat-card .ygg-dice-section .dice-results label, +.ygg-chat-card .ygg-dice-section .furor-results label { + display: block; + font-weight: bold; + color: #4a0404; + margin-bottom: 0.3rem; + font-size: 0.85rem; +} +.ygg-chat-card .ygg-dice-section .dice-results label i, +.ygg-chat-card .ygg-dice-section .furor-results label i { + margin-right: 0.25rem; +} +.ygg-chat-card .ygg-dice-section .dice-list { + display: flex; + flex-wrap: wrap; + gap: 0.3rem; +} +.ygg-chat-card .ygg-dice-section .die-result { + display: inline-flex; + align-items: center; + justify-content: center; + min-width: 32px; + height: 32px; + padding: 0 0.4rem; + background: linear-gradient(135deg, #fff 0%, #f5f5f5 100%); + border: 2px solid #8b4513; + border-radius: 5px; + font-weight: bold; + font-size: 1rem; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2), inset 0 1px 2px rgba(255, 255, 255, 0.5); +} +.ygg-chat-card .ygg-dice-section .die-result.high { + background: linear-gradient(135deg, #90ee90 0%, #7ad87a 100%); + border-color: #228b22; + color: #004d00; +} +.ygg-chat-card .ygg-dice-section .die-result.low { + background: linear-gradient(135deg, #ffcccb 0%, #ffb3b3 100%); + border-color: #8b0000; + color: #4d0000; +} +.ygg-chat-card .ygg-dice-section .die-result.furor { + background: linear-gradient(135deg, #ff6b35 0%, #ff4500 100%); + border-color: #8b0000; + color: #fff; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5); +} +.ygg-chat-card .ygg-calculation { + padding: 0.5rem 0.75rem; + background: rgba(255, 255, 255, 0.3); + border-bottom: 1px solid rgba(74, 4, 4, 0.2); +} +.ygg-chat-card .ygg-calculation .calc-row { + display: flex; + justify-content: space-between; + padding: 0.2rem 0; + border-bottom: 1px dashed rgba(74, 4, 4, 0.15); + font-size: 0.85rem; +} +.ygg-chat-card .ygg-calculation .calc-row:last-child { + border-bottom: none; +} +.ygg-chat-card .ygg-calculation .calc-row.furor-row .calc-label i { + color: #ff4500; +} +.ygg-chat-card .ygg-calculation .calc-label { + font-weight: 600; + color: #4a0404; +} +.ygg-chat-card .ygg-calculation .calc-value { + font-weight: bold; + font-family: "MedievalSharp", serif; +} +.ygg-chat-card .ygg-calculation .calc-value.negative { + color: #8b0000; +} +.ygg-chat-card .ygg-calculation .calc-value.positive { + color: #228b22; +} +.ygg-chat-card .ygg-result { + padding: 0.75rem; + background: linear-gradient(135deg, rgba(240, 230, 210, 0.8) 0%, rgba(230, 220, 200, 0.8) 100%); + border-top: 3px double #4a0404; +} +.ygg-chat-card .ygg-result.critical-success { + background: linear-gradient(135deg, rgba(144, 238, 144, 0.3) 0%, rgba(122, 216, 122, 0.3) 100%); + border-top-color: #228b22; +} +.ygg-chat-card .ygg-result.critical-failure { + background: linear-gradient(135deg, rgba(255, 99, 71, 0.3) 0%, rgba(220, 20, 60, 0.3) 100%); + border-top-color: #8b0000; +} +.ygg-chat-card .ygg-result.success { + background: linear-gradient(135deg, rgba(173, 216, 230, 0.2) 0%, rgba(135, 206, 235, 0.2) 100%); +} +.ygg-chat-card .ygg-result .result-total { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 0.4rem; + padding-bottom: 0.4rem; + border-bottom: 2px solid rgba(74, 4, 4, 0.3); +} +.ygg-chat-card .ygg-result .result-total .result-label { + font-size: 1.1rem; + font-weight: bold; + color: #4a0404; + font-family: "CaslonAntique", serif; +} +.ygg-chat-card .ygg-result .result-total .result-value { + font-size: 1.7rem; + font-weight: bold; + font-family: "MedievalSharp", serif; + color: #4a0404; + text-shadow: 2px 2px 4px rgba(218, 165, 32, 0.3); +} +.ygg-chat-card .ygg-result .result-vs { + display: flex; + justify-content: space-between; + margin-bottom: 0.5rem; + font-size: 0.85rem; +} +.ygg-chat-card .ygg-result .result-vs .vs-label { + color: #666; +} +.ygg-chat-card .ygg-result .result-vs .vs-value { + font-weight: bold; + color: #4a0404; +} +.ygg-chat-card .ygg-result .result-status { + display: flex; + align-items: center; + gap: 0.4rem; + padding: 0.5rem; + background: rgba(255, 255, 255, 0.5); + border-radius: 5px; + border: 2px solid rgba(74, 4, 4, 0.2); +} +.ygg-chat-card .ygg-result .result-status .status-icon { + width: 28px; + height: 28px; + flex-shrink: 0; + font-size: 24px; +} +.ygg-chat-card .ygg-result .result-status .status-text { + font-size: 1rem; + font-weight: bold; + font-family: "CaslonAntique", serif; +} +.ygg-chat-card .ygg-result .result-status .status-text.critical { + color: #228b22; + text-shadow: 0 0 8px rgba(34, 139, 34, 0.5); +} +.ygg-chat-card .ygg-result .result-status .status-text.success { + color: #4682b4; +} +.ygg-chat-card .ygg-result .result-status .status-text.failure { + color: #8b0000; +} +.ygg-chat-card .ygg-damage { + padding: 0.5rem 0.75rem; + background: linear-gradient(135deg, rgba(139, 0, 0, 0.1) 0%, rgba(178, 34, 34, 0.1) 100%); + border-top: 2px solid #8b0000; +} +.ygg-chat-card .ygg-damage .damage-header { + display: flex; + align-items: center; + gap: 0.4rem; + margin-bottom: 0.4rem; +} +.ygg-chat-card .ygg-damage .damage-header i { + color: #8b0000; + font-size: 1.1rem; +} +.ygg-chat-card .ygg-damage .damage-header .damage-label { + font-weight: bold; + font-size: 0.9rem; + color: #4a0404; +} +.ygg-chat-card .ygg-damage .damage-value { + font-size: 1.5rem; + font-weight: bold; + color: #8b0000; + font-family: "MedievalSharp", serif; + text-shadow: 2px 2px 4px rgba(139, 0, 0, 0.2); + margin-bottom: 0.2rem; +} +.ygg-chat-card .ygg-damage .damage-detail { + font-size: 0.75rem; + color: #666; + font-style: italic; +} +.ygg-chat-card .ygg-damage .damage-note { + margin-top: 0.4rem; + padding: 0.3rem; + background: rgba(255, 255, 255, 0.6); + border-left: 3px solid #daa520; + font-size: 0.8rem; + color: #4a0404; +} +.ygg-chat-card .ygg-weapon-details { + padding: 0.5rem 0.75rem; + background: linear-gradient(135deg, rgba(139, 69, 19, 0.08) 0%, rgba(160, 82, 45, 0.08) 100%); + border-top: 2px solid #8b4513; +} +.ygg-chat-card .ygg-weapon-details .weapon-header { + display: flex; + align-items: center; + gap: 0.4rem; + margin-bottom: 0.5rem; + padding-bottom: 0.4rem; + border-bottom: 1px solid rgba(139, 69, 19, 0.3); +} +.ygg-chat-card .ygg-weapon-details .weapon-header.collapsible { + cursor: pointer; + user-select: none; + transition: background 0.2s ease; + margin: -0.5rem -0.75rem 0; + padding: 0.5rem 0.75rem 0.4rem; + border-bottom: none; +} +.ygg-chat-card .ygg-weapon-details .weapon-header.collapsible:hover { + background: rgba(139, 69, 19, 0.1); +} +.ygg-chat-card .ygg-weapon-details .weapon-header.collapsible .toggle-icon { + margin-left: auto; + transition: transform 0.3s ease; + font-size: 0.8rem; +} +.ygg-chat-card .ygg-weapon-details .weapon-header.collapsible.expanded .toggle-icon { + transform: rotate(180deg); +} +.ygg-chat-card .ygg-weapon-details .weapon-header i { + color: #8b4513; + font-size: 1.1rem; +} +.ygg-chat-card .ygg-weapon-details .weapon-header span { + font-weight: bold; + font-size: 0.9rem; + color: #4a0404; + font-family: "CaslonAntique", serif; +} +.ygg-chat-card .ygg-weapon-details .weapon-content { + max-height: 500px; + overflow: hidden; + transition: max-height 0.3s ease, opacity 0.3s ease; + opacity: 1; +} +.ygg-chat-card .ygg-weapon-details .weapon-content.collapsed { + max-height: 0; + opacity: 0; +} +.ygg-chat-card .ygg-weapon-details .weapon-properties { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 0.3rem 0.5rem; +} +.ygg-chat-card .ygg-weapon-details .weapon-property { + display: flex; + gap: 0.4rem; + font-size: 0.85rem; +} +.ygg-chat-card .ygg-weapon-details .weapon-property .property-label { + font-weight: 600; + color: #4a0404; + white-space: nowrap; +} +.ygg-chat-card .ygg-weapon-details .weapon-property .property-value { + color: #555; +} +.ygg-chat-card .ygg-weapon-details .weapon-description { + margin-top: 0.5rem; + padding: 0.5rem; + background: rgba(255, 255, 255, 0.6); + border-radius: 5px; + border-left: 3px solid #8b4513; + font-size: 0.85rem; + line-height: 1.4; + color: #333; +} +.ygg-chat-card .ygg-magic-details { + padding: 0.5rem 0.75rem; + background: linear-gradient(135deg, rgba(138, 43, 226, 0.08) 0%, rgba(148, 0, 211, 0.08) 100%); + border-top: 2px solid #8a2be2; +} +.ygg-chat-card .ygg-magic-details .magic-header { + display: flex; + align-items: center; + gap: 0.4rem; + margin-bottom: 0.5rem; + padding-bottom: 0.4rem; + border-bottom: 1px solid rgba(138, 43, 226, 0.3); +} +.ygg-chat-card .ygg-magic-details .magic-header.collapsible { + cursor: pointer; + user-select: none; + transition: background 0.2s ease; + margin: -0.5rem -0.75rem 0; + padding: 0.5rem 0.75rem 0.4rem; + border-bottom: none; +} +.ygg-chat-card .ygg-magic-details .magic-header.collapsible:hover { + background: rgba(138, 43, 226, 0.1); +} +.ygg-chat-card .ygg-magic-details .magic-header.collapsible .toggle-icon { + margin-left: auto; + transition: transform 0.3s ease; + font-size: 0.8rem; +} +.ygg-chat-card .ygg-magic-details .magic-header.collapsible.expanded .toggle-icon { + transform: rotate(180deg); +} +.ygg-chat-card .ygg-magic-details .magic-header i { + color: #8a2be2; + font-size: 1.1rem; +} +.ygg-chat-card .ygg-magic-details .magic-header span { + font-weight: bold; + font-size: 0.9rem; + color: #4a0404; + font-family: "CaslonAntique", serif; +} +.ygg-chat-card .ygg-magic-details .magic-content { + max-height: 500px; + overflow: hidden; + transition: max-height 0.3s ease, opacity 0.3s ease; + opacity: 1; +} +.ygg-chat-card .ygg-magic-details .magic-content.collapsed { + max-height: 0; + opacity: 0; +} +.ygg-chat-card .ygg-magic-details .magic-property { + display: flex; + gap: 0.4rem; + margin-bottom: 0.3rem; + font-size: 0.85rem; +} +.ygg-chat-card .ygg-magic-details .magic-property .property-label { + font-weight: 600; + color: #4a0404; + min-width: 110px; +} +.ygg-chat-card .ygg-magic-details .magic-property .property-value { + color: #555; +} +.ygg-chat-card .ygg-magic-details .rune-details { + background: rgba(255, 255, 255, 0.4); + padding: 0.4rem; + border-radius: 4px; + margin-top: 0.4rem; +} +.ygg-chat-card .ygg-magic-details .magic-description { + margin-top: 0.5rem; + padding: 0.5rem; + background: rgba(255, 255, 255, 0.6); + border-radius: 5px; + border-left: 3px solid #8a2be2; + font-size: 0.85rem; + line-height: 1.4; + color: #333; +} +/* ============================================ */ +/* YGGDRASILL WELCOME MESSAGE */ +/* ============================================ */ +.yggdrasill-welcome-message { + background: linear-gradient(135deg, rgba(61, 47, 31, 0.15) 0%, rgba(42, 31, 21, 0.2) 100%); + border: 2px solid #4a0404; + border-radius: 8px; + padding: 0; + margin: 8px 0; + overflow: hidden; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(201, 168, 106, 0.1); + font-family: "Vinque", serif; +} +.yggdrasill-welcome-message .welcome-header { + background: linear-gradient(135deg, #4a0404 0%, #2a0202 100%); + padding: 10px; + text-align: center; + border-bottom: 2px solid #8b7355; + position: relative; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); +} +.yggdrasill-welcome-message .welcome-header .welcome-icon { + font-size: 1.8rem; + color: #c9a86a; + margin-bottom: 4px; + text-shadow: 0 0 10px rgba(201, 168, 106, 0.5); + animation: pulse 2s ease-in-out infinite; +} +.yggdrasill-welcome-message .welcome-header .welcome-title { + margin: 4px 0 2px 0; + font-size: 1.3rem; + font-weight: bold; + color: #e8dcc4; + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8); + font-family: "Vinque", serif; + letter-spacing: 0.5px; +} +.yggdrasill-welcome-message .welcome-header .welcome-subtitle { + font-size: 0.9rem; + color: #c9a86a; + font-style: italic; + margin-top: 2px; + line-height: 1.2; + font-family: "Vinque", serif; +} +.yggdrasill-welcome-message .welcome-content { + padding: 12px; + background: linear-gradient(180deg, rgba(230, 220, 200, 0.9) 0%, rgba(210, 200, 180, 0.85) 100%); +} +.yggdrasill-welcome-message .welcome-content .welcome-section { + display: flex; + gap: 10px; + margin-bottom: 10px; + padding: 8px; + background: rgba(255, 255, 255, 0.5); + border-radius: 4px; + border: 1px solid #8b7355; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); +} +.yggdrasill-welcome-message .welcome-content .welcome-section:last-child { + margin-bottom: 0; +} +.yggdrasill-welcome-message .welcome-content .welcome-section .section-icon { + flex-shrink: 0; + width: 32px; + height: 32px; + display: flex; + align-items: center; + justify-content: center; + background: linear-gradient(135deg, #4a0404 0%, #2a0202 100%); + color: #c9a86a; + border-radius: 50%; + font-size: 1rem; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); +} +.yggdrasill-welcome-message .welcome-content .welcome-section .section-icon i { + line-height: 1; +} +.yggdrasill-welcome-message .welcome-content .welcome-section .section-text { + flex: 1; + font-family: "Vinque", serif; +} +.yggdrasill-welcome-message .welcome-content .welcome-section .section-text strong { + display: block; + color: #3d2f1f; + margin-bottom: 4px; + font-size: 0.95rem; + font-weight: 700; +} +.yggdrasill-welcome-message .welcome-content .welcome-section .section-text p { + margin: 0; + line-height: 1.4; + color: #2a1f15; + font-size: 0.9rem; +} +.yggdrasill-welcome-message .welcome-content .welcome-section .section-text .welcome-link { + display: inline-block; + margin-top: 4px; + color: #4a0404; + font-weight: 600; + text-decoration: none; + transition: all 0.2s ease; + font-size: 0.9rem; +} +.yggdrasill-welcome-message .welcome-content .welcome-section .section-text .welcome-link i { + margin-right: 4px; +} +.yggdrasill-welcome-message .welcome-content .welcome-section .section-text .welcome-link:hover { + color: #8b0606; + text-shadow: 0 0 4px rgba(74, 4, 4, 0.3); +} +.yggdrasill-welcome-message .welcome-footer { + background: linear-gradient(135deg, #2a0202 0%, #4a0404 100%); + padding: 8px; + text-align: center; + color: #c9a86a; + font-style: italic; + font-size: 0.95rem; + border-top: 1px solid #8b7355; + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.3); + font-family: "Vinque", serif; +} +.yggdrasill-welcome-message .welcome-footer i { + margin: 0 8px; + opacity: 0.7; + font-size: 0.85rem; +} +.yggdrasill-welcome-message .welcome-footer span { + vertical-align: middle; +} +@keyframes pulse { + 0%, + 100% { + transform: scale(1); + opacity: 1; + } + 50% { + transform: scale(1.05); + opacity: 0.9; + } +} +/*# sourceMappingURL=yggdrasill.css.map */ +/*# sourceMappingURL=yggdrasill.css.map */ diff --git a/styles/yggdrasill.css.map b/styles/yggdrasill.css.map new file mode 100644 index 0000000..6771b18 --- /dev/null +++ b/styles/yggdrasill.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../yggdrasill-main.less","../yggdrasill-chat-viking.less"],"names":[],"mappings":"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","file":"yggdrasill.css","sourcesContent":[]} \ No newline at end of file diff --git a/system.json b/system.json index c413b03..71368d6 100644 --- a/system.json +++ b/system.json @@ -6,8 +6,31 @@ "modules/yggdrasill-main.js" ], "styles": [ - "styles/simple.css" + "styles/yggdrasill.css" ], + "languages": [ + { + "lang": "fr", + "name": "Français", + "path": "lang/fr.json" + } + ], + "flags": { + "hotReload": { + "extensions": [ + "css", + "html", + "hbs", + "json" + ], + "paths": [ + "styles", + "./", + "templates", + "lang/fr.json" + ] + } + }, "background": "systems/fvtt-yggdrasill/images/ui/yggdrasill_map.webp", "packFolders": [ { diff --git a/template.json b/template.json index 8819cf8..c3d4466 100644 --- a/template.json +++ b/template.json @@ -1,356 +1,30 @@ { -"Actor": { - "types": ["personnage", "figurant"], - "templates": { - "biodata": { - "biodata": { - "nom": "", - "archetype": "", - "profession": "", - "royaume": "", - "age": 0, - "taille": 0, - "poids": 0, - "don": "", - "faiblesse": "", - "pointlegende": 0, - "renomee": 0, - "description": "", - "notes": "", - "tiragerunes": "", - "gmnotes": "" - } - }, - "carac": { - "carac": { - "corps":{ - "label": "Corps", - "carac": { - "puissance": { - "value": 0, - "label": "Puissance", - "categorie": "corps", - "abbrev": "pui" - }, - "vigueur": { - "value": 0, - "label": "Vigueur", - "categorie": "corps", - "abbrev": "vig" - }, - "agilite": { - "value": 0, - "label": "Agilité", - "categorie": "corps", - "abbrev": "agi" - } - } - }, - "esprit": { - "label": "Esprit", - "carac": { - "intellect": { - "value": 0, - "label": "Intellect", - "categorie": "esprit", - "abbrev": "int" - }, - "perception": { - "value": 0, - "label": "Perception", - "categorie": "esprit", - "abbrev": "per" - }, - "tenacite": { - "value": 0, - "label": "Tenacité", - "categorie": "esprit", - "abbrev": "ten" - } - } - }, - "ame": { - "label": "Ame", - "carac": { - "charisme": { - "value": 0, - "label": "Charisme", - "categorie": "ame", - "abbrev": "cha" - }, - "communication": { - "value": 0, - "label": "Communication", - "categorie": "ame", - "abbrev": "com" - }, - "instinct": { - "value": 0, - "label": "Instinct", - "categorie": "ame", - "abbrev": "ins" - } - } - } - } - }, - "furor": { - "furor": { - "value": 1, - "max": 1, - "label": "Furor" - } - }, - "xp": { - "xp": { - "total": 1, - "current": 1, - "label": "XP" - }, - "renommee": { - "value": 1, - "label": "Renommée" - } - }, - "caracsecondaire": { - "status":{ - "epuise": false, - "blesse": false, - "meurtri": false - }, - "caracsecondaire": { - "reaction": { - "value": 0, - "max": 0, - "label": "Réaction", - "abbrev": "rea" - }, - "defensephy": { - "value": 0, - "bonusmalus": 0, - "max": 0, - "label": "Défense Physique", - "abbrev": "dp" - }, - "defensemen": { - "value": 0, - "bonusmalus": 0, - "max": 0, - "label": "Défense Mentale", - "abbrev": "dm" - }, - "deplacement": { - "value": 0, - "max": 0, - "label": "Déplacement", - "abbrev": "dep" - }, - "capaenc": { - "value": 0, - "max": 0, - "label": "Capacité d'Encombrement", - "abbrev": "cpe" - }, - "pv": { - "value": 10, - "max": 10, - "min":0, - "label": "Points de Vie", - "abbrev": "pv" - } - } - } + "Actor": { + "types": [ + "personnage", + "figurant" + ] }, - "personnage": { - "templates": [ "biodata", "carac", "caracsecondaire", "furor" ] - }, - "figurant": { - "biodata" : { - "age": 0, - "taille": "", - "description": "", - "poids": 0, - "notes": "" - }, - "attributs": { - "conflit": { - "values": { - "offensif": { - "label": "Offensif", - "value": 0, - "degats": true - }, - "defensif": { - "label": "Défensif", - "value": 0 - } - }, - "rollable": false, - "label": "Conflit" - }, - "relationnel": { - "values": { - "defaut": { - "value": 0 - } - }, - "rollable": true, - "label": "Relationnel" - }, - "physique": { - "values": { - "defaut": { - "value": 0 - } - }, - "rollable": true, - "label": "Physique" - }, - "mental": { - "values": { - "defaut": { - "value": 0 - } - }, - "rollable": true, - "label": "Mental" - }, - "mystique": { - "values": { - "actif": { - "label": "Actif", - "value": 0 - }, - "passif": { - "label": "Passif", - "value": 0 - } - }, - "rollable": false, - "label": "Mystique" - }, - "vitalite": { - "values": { - "defaut": { - "value": 0 - } - }, - "rollable": false, - "label": "Vitalité" - } - }, - "etat": { - "etat": "fringant" - } - } -}, -"Item": { - "types": ["competence", "don", "faiblesse", "blessure", "maladie", "poison", "sort", "prouesse", "armecc", "sortsejdr", "sortgaldr", "rune", "armedist", "armure", "bouclier", "equipement", "effetmagique", "monnaie" ], - "effetmagique": { - "origine": "", - "effet": "" - }, - "don": { - "description": "" - }, - "faiblesse": { - "description": "" - }, - "competence": { - "isspecialisation": false, - "categorie": "", - "specialisation":"", - "description": 0, - "niveau": 0, - "niveauunrequis": false - }, - "blessure": { - "description": "" - }, - "maladie": { - "categorie": "", - "periode": "", - "description": "" - }, - "poison": { - "categorie": "", - "type": "", - "description": "" - }, - "prouesse": { - "categorie": "", - "niveau": 0, - "armes": "", - "prerequis": "", - "modificateur": 0, - "description": "" - }, - "sortsejdr": { - "forme": "", - "preparation": "", - "niveau": 0, - "malus": 0, - "duree": "", - "zone": "", - "description": "" - }, - "sortgaldr": { - "voie": "", - "sd": 0, - "description": "" - }, - "rune": { - "niveau": 0, - "description": "" - }, - "armecc": { - "categorie": "", - "equipe": false, - "degat": 0, - "solidite": 0, - "enc": 0, - "valeur": 0, - "description": "" - }, - "armedist": { - "categorie": "", - "equipe": false, - "degat": 0, - "solidite": 0, - "enc": 0, - "portee": "", - "valeur": 0, - "description": "" - }, - "armure": { - "categorie": "", - "equipe": false, - "protection": "", - "enc": 0, - "valeur": 0, - "description": "" - }, - "bouclier": { - "categorie": "", - "equipe": false, - "defensebonus": 0, - "enc": 0, - "enccomb": 0, - "solidite": 0, - "valeur": 0, - "description": "" - }, - "equipement": { - "equipe": false, - "enc": 0, - "valeur": 0, - "quantite": 0, - "description": "" - }, - "monnaie": { - "quantite": 0, - "enc": 0, - "description": "" - } + "Item": { + "types": [ + "competence", + "don", + "faiblesse", + "blessure", + "maladie", + "poison", + "prouesse", + "sortsejdr", + "sortgaldr", + "rune", + "armecc", + "armedist", + "armure", + "bouclier", + "equipement", + "monnaie", + "effetmagique" + ] } } + diff --git a/templates/actor-figurant-sheet.hbs b/templates/actor-figurant-sheet.hbs new file mode 100644 index 0000000..5d04b6b --- /dev/null +++ b/templates/actor-figurant-sheet.hbs @@ -0,0 +1,94 @@ +
+ + {{!-- Sheet Header --}} +
+ +
+

+ +

+
+
+ + {{!-- Sheet Tab Navigation --}} + + + {{!-- Sheet Body Container --}} +
+ + {{!-- Principal Tab --}} +
+
+
+ +
+ {{!-- Attributs --}} +
+

Attributs

+ {{#each system.attributs as |attribut keyattribut|}} +
+

{{attribut.label}}

+ {{#each attribut.values as |value keyvalue|}} +
+ + +
+ {{/each}} +
+ {{/each}} +
+ + {{!-- Biodata --}} +
+

Informations

+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
+
+
+ + {{!-- Description Tab --}} +
+
+ + {{!-- Description --}} +
+

Description

+
+ {{formInput systemFields.biodata.fields.description enriched=enrichedDescription value=system.biodata.description name="system.biodata.description" toggled=true}} +
+
+ + {{!-- Notes --}} +
+

Notes

+
+ {{formInput systemFields.biodata.fields.notes enriched=enrichedNotes value=system.biodata.notes name="system.biodata.notes" toggled=true}} +
+
+ +
+
+ +
+
diff --git a/templates/actor-personnage-sheet-new.hbs b/templates/actor-personnage-sheet-new.hbs new file mode 100644 index 0000000..18b39c5 --- /dev/null +++ b/templates/actor-personnage-sheet-new.hbs @@ -0,0 +1,641 @@ +
+ + {{!-- Sheet Header --}} +
+ +
+

+ +

+
+ + + Editable/Vérouillé + + +
+ + {{!-- Sheet Tab Navigation --}} + + + {{!-- Sheet Body Container --}} +
+ + {{!-- Carac Tab --}} +
+
+
+
+

Caractéristiques

+ {{#each system.carac as |categ keycateg|}} +
+

{{categ.label}}

+
    + {{#each categ.carac as |mycarac keycarac|}} +
  • + + + {{mycarac.label}} + + +
  • + {{/each}} +
+
+ {{/each}} + +

Furor

+
+ + / + {{#if isGM}} + + {{else}} + {{system.furor.max}} + {{/if}} + +
+ +

Blessures

+
    + {{#each blessures as |blessure|}} +
  • + + {{blessure.name}} +
    + + +
    +
  • + {{/each}} +
+ +

Sorts/Runes actifs

+
    + {{#each effetsMagiques as |effetmagique|}} +
  • + + {{effetmagique.name}} +
    + + +
    +
  • + {{/each}} +
+
+ +
+

Dons

+
    + {{#each dons as |don|}} +
  • + + {{don.name}} +
    + + +
    +
  • + {{/each}} +
+ +

Faiblesses

+
    + {{#each faiblesses as |faiblesse|}} +
  • + + {{faiblesse.name}} +
    + + +
    +
  • + {{/each}} +
+ +

Caractéristiques Secondaires

+
    + {{#each system.caracsecondaire as |caracsec key|}} + {{#if (ne key "pv")}} +
  • + {{caracsec.label}} +
    + {{#if (or (eq key "defensephy") (eq key "defensemen"))}} + Base: {{caracsec.max}} + B/M: + + {{!-- Calculate total manually if caracsec.total doesn't work --}} + {{#if caracsec.total}} + Total: {{caracsec.total}} + {{else}} + Total: Calculer + {{/if}} + {{else}} + {{caracsec.max}} + {{/if}} +
    +
  • + {{/if}} + {{/each}} +
+ +

Points de Vie

+
+ + + + / {{system.caracsecondaire.pv.max}} +
+ +

État

+
+ + + +
+
+
+
+
+ + {{!-- Competence Tab --}} +
+
+
+ {{!-- Left Column: Compétences Générales --}} +
+

Compétences Générales

+
    +
  • + + Nom + Niveau + +
  • + {{#each competencesGenerales as |competence|}} +
  • + {{competence.name}} + + {{competence.name}} + {{#if competence.system.isspecialisation}} + ({{competence.system.specialisation}}) + {{/if}} + + +
    + + +
    +
  • + {{/each}} +
+
+ + {{!-- Right Column: Compétences Martiales & Magiques --}} +
+

Compétences Martiales

+
    +
  • + + Nom + Niveau + +
  • + {{#each competencesMartiales as |competence|}} +
  • + {{competence.name}} + + {{competence.name}} + + +
    + + +
    +
  • + {{/each}} +
+ +

Compétences Magiques

+
    +
  • + + Nom + Niveau + +
  • + {{#each competencesMagiques as |competence|}} +
  • + {{competence.name}} + + {{competence.name}} + + +
    + + +
    +
  • + {{/each}} +
+
+
+
+
+ + {{!-- Combat Tab --}} +
+
+
+ {{!-- Armes --}} +
+

Armes

+ +
+ + {{!-- Prouesses Martiales --}} +
+

Prouesses Martiales

+
    +
  • + + Nom + Catégorie + Niveau + +
  • + {{#each prouesses as |prouesse|}} +
  • + {{prouesse.name}} + {{prouesse.name}} + {{prouesse.system.categorie}} + {{prouesse.system.niveau}} +
    + + +
    +
  • + {{/each}} +
+
+ +
+ {{!-- Left Column: Armures --}} +
+

Armures (Protection Totale: {{protectionTotal}})

+ +
+ + {{!-- Right Column: Boucliers --}} +
+

Boucliers (Bonus Défense Physique: {{dpBouclier}})

+ +
+
+
+
+
+ + {{!-- Sorts Tab --}} +
+
+ + {{!-- Sorts Sejdr --}} +
+

Sorts Sejdr

+
    +
  • + + Nom + Forme + Niveau + +
  • + {{#each sortsSejdr as |sort|}} +
  • + {{sort.name}} + + {{sort.name}} + + {{sort.system.forme}} + {{sort.system.niveau}} +
    + + +
    +
  • + {{/each}} +
+
+ + {{!-- Sorts Galdr --}} +
+

Sorts Galdr

+
    +
  • + + Nom + Domaine + Durée + +
  • + {{#each sortsGaldr as |sort|}} +
  • + {{sort.name}} + + {{sort.name}} + + {{sort.system.domaine}} + {{sort.system.duree}} +
    + + +
    +
  • + {{/each}} +
+
+ + {{!-- Runes --}} +
+

Runes

+
    +
  • + + Nom + Cible + Niveau + Domaine + +
  • + {{#each runes as |rune|}} +
  • + {{rune.name}} + + {{rune.name}} + + {{rune.system.cible}} + {{rune.system.niveau}} + {{rune.system.domaine}} +
    + + +
    +
  • + {{/each}} +
+
+ +
+
+ + {{!-- Equipement Tab --}} +
+
+ + {{!-- Argent / Monnaies --}} +
+

Argent

+
    +
  • + + Nom + Quantité + +
  • + {{#each monnaies as |monnaie|}} +
  • + {{monnaie.name}} + {{monnaie.name}} + {{monnaie.system.quantite}} +
    + + +
    +
  • + {{/each}} +
+
+ + {{!-- Équipement --}} +
+

Équipement (Encombrement total: {{encTotal}})

+ +
+ +
+
+ + {{!-- Description Tab --}} +
+
+ + {{!-- Expérience et Renommée --}} +
+

Expérience et Renommée

+
+ + + + + + +
+
+ + {{!-- Biodatas --}} +
+

Biodatas

+
+ + + + + + +
+
+ + + + + + +
+
+ + {{!-- Biographie --}} +
+

Biographie

+
+ {{formInput systemFields.biodata.fields.description enriched=enrichedDescription value=system.biodata.description name="system.biodata.description" toggled=true}} +
+
+ + {{!-- Notes --}} +
+

Notes

+
+ {{formInput systemFields.biodata.fields.notes enriched=enrichedNotes value=system.biodata.notes name="system.biodata.notes" toggled=true}} +
+
+ + {{!-- Tirage des Runes --}} +
+

Tirage des Runes

+
+ {{formInput systemFields.biodata.fields.tiragerunes enriched=enrichedTirageRunes value=system.biodata.tiragerunes name="system.biodata.tiragerunes" toggled=true}} +
+
+ + {{!-- Notes GM --}} +
+

Notes GM

+
+ {{formInput systemFields.biodata.fields.gmnotes enriched=enrichedGMNotes value=system.biodata.gmnotes name="system.biodata.gmnotes" toggled=true}} +
+
+ +
+
+ +
+
diff --git a/templates/actor-sheet.html b/templates/actor-personnage-sheet.hbs similarity index 70% rename from templates/actor-sheet.html rename to templates/actor-personnage-sheet.hbs index a2becc1..c6bbbd7 100644 --- a/templates/actor-sheet.html +++ b/templates/actor-personnage-sheet.hbs @@ -1,11 +1,11 @@ -
+
{{!-- Sheet Header --}}
- -

+ +

@@ -24,8 +24,8 @@
{{!-- Carac Tab --}} -
- + Editable/Vérouillé{{#if editScore}}Editable{{else}}Vérouillé{{/if}} @@ -33,7 +33,7 @@

Caractéristiques

    - {{#each data.carac as |categ keycateg|}} + {{#each system.carac as |categ keycateg|}}
  • {{categ.label}}

    @@ -42,7 +42,7 @@
    • - {{mycarac.label}} + {{mycarac.label}} @@ -56,13 +56,13 @@

      Furor

      • - + {{#if isGM}} / - + {{else}} - / {{data.furor.max}} + / {{system.furor.max}} {{/if}}
      @@ -75,8 +75,8 @@ {{blessure.name}}
      - - + +
    • {{/each}} @@ -84,13 +84,13 @@

      Sorts/Rune actifs

        - {{#each effetsmagiques as |effetmagique key|}} + {{#each effetsMagiques as |effetmagique key|}}
      • {{effetmagique.name}}
        - - + +
      • {{/each}} @@ -106,8 +106,8 @@ {{don.name}}
        - - + +
        {{/each}} @@ -119,15 +119,15 @@ {{faiblesse.name}}
        - - + +
        {{/each}}

      Secondaires

        - {{#each data.caracsecondaire as |caracsec key|}} + {{#each system.caracsecondaire as |caracsec key|}} {{#if (ne key "pv")}}
      • @@ -180,29 +180,29 @@

        Points de Vie

        • - - / {{data.caracsecondaire.pv.max}} + + / {{system.caracsecondaire.pv.max}}

        Epuisé : -

        +

        Blessé : -

        +

        Meurtri : -

        +
{{!-- Skills Tab --}} -
+
- Editable/Vérouillé{{#if editScore}}Editable{{else}}Vérouillé{{/if}} @@ -219,7 +219,7 @@ {{#each competencesGenerales as |competence key|}}
  • - {{competence.name}} + {{competence.name}}
    {{#if competence.system.isspecialisation}} ({{competence.system.specialisation}}) @@ -229,8 +229,8 @@ {{selectOptions @root.optionsBase selected=competence.system.niveau localize=false}}
    - - + +
  • {{/each}} @@ -248,13 +248,13 @@ {{#each competencesMartiales as |competence key|}}
  • - {{competence.name}} + {{competence.name}}
    - - + +
  • {{/each}} @@ -269,13 +269,13 @@ {{#each competencesMagiques as |competence key|}}
  • - {{competence.name}} + {{competence.name}}
    - - + +
  • {{/each}} @@ -287,7 +287,7 @@
    {{!-- Combat Tab --}} -
    +

    Armes

    @@ -299,16 +299,29 @@
    - {{#each armes as |arme key|}} + {{#each armesCC as |arme key|}}
  • - {{arme.name}} + {{arme.name}}  {{arme.system.categorie}}  {{arme.system.degat}} +
  • + {{/each}} + {{#each armesDist as |arme key|}} +
  • + + {{arme.name}} +  {{arme.system.categorie}} +  {{arme.system.degat}} +
  • {{/each}} @@ -323,15 +336,15 @@
    - {{#each prouessesMartiales as |prouesse key|}} + {{#each prouesses as |prouesse key|}}
  • {{prouesse.name}} {{prouesse.system.categorie}} {{prouesse.system.niveau}}
    - - + +
  • {{/each}} @@ -353,9 +366,9 @@  {{armure.system.categorie}}  {{armure.system.protection}} {{/each}} @@ -370,16 +383,16 @@
    - {{#each bouclier as |bouclier key|}} + {{#each boucliers as |bouclier key|}}
  • {{bouclier.name}}  {{bouclier.system.categorie}}  {{bouclier.system.defensebonus}}
  • {{/each}} @@ -389,7 +402,7 @@
    {{!-- Sort Tab --}} -
    +
    Sorts Sejdr @@ -397,12 +410,12 @@ {{#each sortsSejdr as |sort key|}}
  • - {{sort.name}} + {{sort.name}} {{sort.system.forme}} {{sort.system.niveau}}
    - - + +
  • {{/each}} @@ -415,12 +428,12 @@ {{#each sortsGaldr as |sort key|}}
  • - {{sort.name}} + {{sort.name}} {{sort.system.domaine}} {{sort.system.duree}}
    - - + +
  • {{/each}} @@ -433,13 +446,13 @@ {{#each runes as |sort key|}}
  • - {{sort.name}} + {{sort.name}} {{sort.system.cible}} {{sort.system.niveau}} {{sort.system.domaine}}
    - - + +
  • {{/each}} @@ -449,7 +462,7 @@
    {{!-- Equipement Tab --}} -
    +

    Argent

      {{#each monnaies as |monnaie key|}} @@ -461,8 +474,8 @@
      - - + +
      {{/each}} @@ -490,9 +503,9 @@ (-/+) {{/each}} @@ -501,53 +514,56 @@ {{!-- Biography Tab --}} -
      +

      Expérience et Renommée :

      XP : - - + + Renommée : - +

      Biodatas :

      Poids : - + Taille : - + Age : - +
      Archetype : - + Profession : - + Royaume : - +

      Biographie :

      - {{editor description target="system.description" button=true owner=owner editable=editable}} +
      {{{enrichedDescription}}}

      Notes :

      - {{editor notes target="system.notes" button=true owner=owner editable=editable}} +
      {{{enrichedNotes}}}

      Tirage des Runes:

      - {{editor tiragerunes target="system.tiragerunes" button=true owner=owner editable=editable}} +
      {{{enrichedTirageRunes}}}

      - {{>"systems/fvtt-yggdrasill/templates/editor-notes-gm.html"}} +

      Notes GM :

      +
      +
      {{{enrichedGMNotes}}}
      +
    - +
    diff --git a/templates/actor-personnage-sheet.hbs.backup b/templates/actor-personnage-sheet.hbs.backup new file mode 100644 index 0000000..c6bbbd7 --- /dev/null +++ b/templates/actor-personnage-sheet.hbs.backup @@ -0,0 +1,569 @@ +
    + + {{!-- Sheet Header --}} +
    +
    +
    + +

    +
    +
    +
    + + {{!-- Sheet Tab Navigation --}} + + + {{!-- Sheet Body --}} +
    + + {{!-- Carac Tab --}} +
    + Editable/Vérouillé{{#if editScore}}Editable{{else}}Vérouillé{{/if}} + +
    +
    +

    Caractéristiques

    +
      + {{#each system.carac as |categ keycateg|}} +
    • + +

      {{categ.label}}

      +
    • + {{#each categ.carac as |mycarac keycarac|}} +
        +
      • + + {{mycarac.label}} + +
      • +
      + {{/each}} + {{/each}} +
    + + +

    Furor

    +
      +
    • + + {{#if isGM}} + / + + + {{else}} + / {{system.furor.max}} + {{/if}} +
    • +
    +
    + +

    Blessures

    +
      + {{#each blessures as |blessure key|}} +
    • + + {{blessure.name}} +
      + + +
      +
    • + {{/each}} +
    + +

    Sorts/Rune actifs

    +
      + {{#each effetsMagiques as |effetmagique key|}} +
    • + + {{effetmagique.name}} +
      + + +
      +
    • + {{/each}} +
    + +
    + +
    +

    Dons

    +
      + {{#each dons as |don key|}} +
    • + + {{don.name}} +
      + + +
      +
    • + {{/each}} +
    +

    Faiblesses

    +
      + {{#each faiblesses as |faiblesse key|}} +
    • + + {{faiblesse.name}} +
      + + +
      +
    • + {{/each}} +
    +

    Secondaires

    +
      + {{#each system.caracsecondaire as |caracsec key|}} + {{#if (ne key "pv")}} +
    • + + {{caracsec.label}} + +
      + {{#if (eq key "reaction")}} + {{caracsec.max}} + {{/if}} + {{#if (eq key "deplacement")}} + {{caracsec.max}} + {{/if}} + {{#if (eq key "capaenc")}} + {{caracsec.max}} + {{/if}} + {{#if (eq key "defensephy")}} +
        +
      • Base : {{caracsec.max}}
      • +
      • + B/M + +
      • +
      • + Total : {{caracsec.total}} +
      • +
      + {{/if}} + {{#if (eq key "defensemen")}} +
        +
      • Base : {{caracsec.max}}
      • +
      • + B/M + +
      • +
      • + Total : {{caracsec.total}} +
      • +
      + {{/if}} +
      +
    • + {{/if}} + {{/each}} +
    + +

    Points de Vie

    +
      +
    • + + / {{system.caracsecondaire.pv.max}} +
    • +
    +
    + +

    Epuisé : +

    +
    +

    Blessé : +

    +
    +

    Meurtri : +

    +
    +
    +
    +
    + + {{!-- Skills Tab --}} +
    + +
    +
    +
      +
    • + + Compétences Générales + Niveau + +
    • + {{#each competencesGenerales as |competence key|}} +
    • + + {{competence.name}} +
      + {{#if competence.system.isspecialisation}} + ({{competence.system.specialisation}}) + {{/if}} +
      + +
      + + +
      +
    • + {{/each}} +
    +
    + +
    +
      +
    • + + Compétences Martiales + Niveau + +
    • + {{#each competencesMartiales as |competence key|}} +
    • + + {{competence.name}} + +
      + + +
      +
    • + {{/each}} +
    +
      +
    • + + Compétences Magiques + Niveau + +
    • + {{#each competencesMagiques as |competence key|}} +
    • + + {{competence.name}} + +
      + + +
      +
    • + {{/each}} +
    + +
    + +
    +
    + + {{!-- Combat Tab --}} +
    +
    + +

    Armes

    + + +

    Prouesses Martiales

    +
      +
    • + Nom + Categorie? + Niveau +
      +
      +
    • + {{#each prouesses as |prouesse key|}} +
    • + + {{prouesse.name}} + {{prouesse.system.categorie}} + {{prouesse.system.niveau}} +
      + + +
      +
    • + {{/each}} +
    + +

    Armures (Protection Totale : {{protectionTotal}})

    + + +

    Bouclier (Bonus de défense physique : {{dpBouclier}})

    + + +
    +
    + + {{!-- Sort Tab --}} +
    + +
    + Sorts Sejdr +
      + {{#each sortsSejdr as |sort key|}} +
    • + + {{sort.name}} + {{sort.system.forme}} + {{sort.system.niveau}} +
      + + +
      +
    • + {{/each}} +
    +
    + +
    + Sorts Galdr +
      + {{#each sortsGaldr as |sort key|}} +
    • + + {{sort.name}} + {{sort.system.domaine}} + {{sort.system.duree}} +
      + + +
      +
    • + {{/each}} +
    +
    + +
    + Runes +
      + {{#each runes as |sort key|}} +
    • + + {{sort.name}} + {{sort.system.cible}} + {{sort.system.niveau}} + {{sort.system.domaine}} +
      + + +
      +
    • + {{/each}} +
    +
    + +
    + + {{!-- Equipement Tab --}} +
    +

    Argent

    +
      + {{#each monnaies as |monnaie key|}} +
    • + + {{monnaie.name}} + {{monnaie.system.quantite}} + ( -/+) + + +
      + + +
      +
    • + {{/each}} +
    +

    Equipement (Encombrement total : {{encTotal}})

    +
      +
    • + Nom + Quantité + Enc. + +/- +
      +   +   +   +
      +
    • + {{#each equipements as |equipement key|}} +
    • + + {{equipement.name}} + {{equipement.system.quantite}} + {{equipement.system.enc}} + + (-/+) + + +
    • + {{/each}} +
    +
    + + + {{!-- Biography Tab --}} +
    +
    +

    Expérience et Renommée :

    +
    + XP : + + + Renommée : + +
    +
    +

    Biodatas :

    +
    + Poids : + + Taille : + + Age : + +
    +
    + Archetype : + + Profession : + + Royaume : + +
    +
    +

    Biographie :

    +
    +
    {{{enrichedDescription}}}
    +
    +
    +

    Notes :

    +
    +
    {{{enrichedNotes}}}
    +
    +
    +

    Tirage des Runes:

    +
    +
    {{{enrichedTirageRunes}}}
    +
    +
    +

    Notes GM :

    +
    +
    {{{enrichedGMNotes}}}
    +
    +
    +
    + +
    +
    diff --git a/templates/chat-generic-result-new.hbs b/templates/chat-generic-result-new.hbs new file mode 100644 index 0000000..a3e3116 --- /dev/null +++ b/templates/chat-generic-result-new.hbs @@ -0,0 +1,275 @@ +{{!-- Modern Viking-themed Chat Message --}} +
    + + {{!-- Header with Actor Info --}} +
    +
    + {{alias}} +
    +

    {{alias}}

    +
    + {{#if (eq mode "attribut")}} + Jet d'Attribut + {{else if (eq mode "competence")}} + Jet de Compétence + {{else if (eq mode "armecc")}} + Combat Rapproché + {{else if (or (eq mode "armedist") (eq mode "armetir"))}} + Combat à Distance + {{else if (eq mode "sejdr")}} + Magie Sejdr + {{else if (eq mode "galdr")}} + Magie Galdr + {{else if (eq mode "rune")}} + Gravure de Rune + {{else}} + Jet de Caractéristique + {{/if}} +
    +
    +
    +
    + + {{!-- Roll Description --}} +
    + {{#if (eq mode "attribut")}} + {{attr.label}} - {{subAttr.label}} (2d10+{{subAttr.value}}) + {{else if (eq mode "competence")}} + {{competence.name}} (Niveau {{competence.system.niveau}})
    + {{selectedCarac.label}} ({{selectedCarac.value}}d10) + {{else if (eq mode "armecc")}} + {{arme.name}} - {{attackDef.label}}
    + {{competence.name}} (Niveau {{competence.system.niveau}}) + {{else if (or (eq mode "armedist") (eq mode "armetir"))}} + {{arme.name}} - {{attackDef.label}}
    + {{competence.name}} (Niveau {{competence.system.niveau}}) + {{else if (eq mode "sejdr")}} + {{sort.name}}
    + {{competence.name}} (Niveau {{competence.system.niveau}}) + {{else if (eq mode "galdr")}} + {{sort.name}}
    + {{competence.name}} (Niveau {{competence.system.niveau}}) + {{else if (eq mode "rune")}} + {{sort.name}}
    + {{competence.name}} (Niveau {{competence.system.niveau}}) + {{else}} + {{selectedCarac.label}} ({{selectedCarac.value}}d10) + {{/if}} +
    + + {{!-- Dice Results --}} +
    +
    + +
    + {{#each rawDices as |roll key|}} + {{roll.result}} + {{/each}} +
    +
    + + {{#if furorUsage}} +
    + +
    + {{#each furorRawDices as |roll key|}} + {{roll.result}} + {{/each}} +
    +
    + {{/if}} +
    + + {{!-- Calculation Breakdown --}} +
    +
    + Meilleurs dés : + {{#if (eq sumDice 1)}}{{maxTab.0.value}}{{else}}{{maxTab.0.value}} + {{maxTab.1.value}}{{/if}} +
    + + {{#if niveauCompetence}} +
    + {{#if (eq mode "carac")}}Caractéristique{{else}}Compétence{{/if}} : + +{{niveauCompetence}} +
    + {{/if}} + + {{#if finalBM}} +
    + Bonus/Malus : + {{#if (gte finalBM 0)}}+{{/if}}{{finalBM}} +
    + {{/if}} + + {{#if furorResult}} +
    + Furor : + +{{furorResult}} +
    + {{/if}} +
    + + {{!-- Final Result --}} +
    +
    + Total : + {{finalTotal}} +
    + + {{#if sr}} +
    + Seuil de Réussite : + {{srFinal}} +
    + +
    + {{#if isCritical}} + + Réussite Critique ! + {{else if isFailure}} + + Échec Critique ! + {{else if isSuccess}} + + Réussite (Marge: {{marge}}) + {{else}} + + Échec (Marge: {{marge}}) + {{/if}} +
    + {{/if}} +
    + + {{!-- Damage Section (for combat) --}} + {{#if degats}} +
    +
    + + Dégâts Infligés +
    +
    {{degats}}
    +
    {{degatsExplain}}
    + {{#if attackDef.protection}} +
    Annulation de Protection : {{attackDef.protection}}
    + {{/if}} +
    + {{/if}} + + {{!-- Weapon Details (for combat) --}} + {{#if (or (eq mode "armecc") (eq mode "armedist") (eq mode "armetir"))}} +
    +
    + {{#if (eq mode "armecc")}} + + {{else}} + + {{/if}} + Détails de l'Arme + +
    + + +
    + {{/if}} + + {{!-- Magic Details (for spells) --}} + {{#if (and isSuccess isMagie)}} +
    +
    + + Effets du Sort + +
    + + +
    + {{/if}} + +
    diff --git a/templates/chat-generic-result.html b/templates/chat-generic-result.html deleted file mode 100644 index 1e792e3..0000000 --- a/templates/chat-generic-result.html +++ /dev/null @@ -1,136 +0,0 @@ -
    - {{alias}} -

    {{alias}}

    -
    - -
    -
    -
    - {{alias}} -

    - {{#if (eq mode "attribut")}} - Jet de {{attr.label}} {{subAttr.label}} (2d10+{{subAttr.value}}) - {{else}} - {{#if (eq mode "competence")}} - Jet de {{selectedCarac.label}} ({{selectedCarac.value}}d10) / {{competence.name}} ({{competence.system.niveau}}) - {{else}} - {{#if (eq mode "armecc")}} - Attaque au corps à Corps {{attackDef.label}} ({{selectedCarac.value}}d10) / {{competence.name}} - ({{competence.system.niveau}}) - {{else}} - {{#if (eq mode "armedist")}} - Attaque à Distance {{attackDef.label}} ({{selectedCarac.value}}d10) / {{competence.name}} - ({{competence.system.niveau}}) - {{else}} - {{#if (eq mode "sejdr")}} - Lancer du Sort {{sort.name}} ({{selectedCarac.value}}d10) / {{competence.name}} ({{competence.system.niveau}}) - {{else}} - {{#if (eq mode "rune")}} - Gravure de la Rune {{sort.name}} ({{selectedCarac.value}}d10) / {{competence.name}} ({{competence.system.niveau}}) - {{else}} - {{#if (eq mode "galdr")}} - Lancer du Domaine {{sort.name}} ({{selectedCarac.value}}d10) / {{competence.name}} ({{competence.system.niveau}}) - {{else}} - Jet de {{selectedCarac.label}} ({{selectedCarac.value}}d10) - {{/if}} - {{/if}} - {{/if}} - {{/if}} - {{/if}} - {{/if}} - {{/if}} -

    -
    - -
    -
      -
    • Dés : - {{#each rawDices as |roll key|}} - {{roll.result}}  - {{/each}} -
    • - {{#if sumDice}} -
    • Nombre de dés additionnés : {{sumDice}}
    • - {{/if}} - - {{#if (eq mode "competence")}} -
    • Competence : {{niveauCompetence}}
    • - {{/if}} - {{#if (eq mode "carac")}} -
    • Carac : {{niveauCompetence}}
    • - {{/if}} - -
    • Bonus/Malus Final : {{finalBM}}
    • - - {{#if sr}} -
    • Seuil de Réussite final : {{srFinal}}
    • - {{/if}} - {{#if furorUsage}} -
    • Furor dépensée : {{furorUsage}}
    • -
    • Resultat de la Furor : {{furorResult}}
    • - {{/if}} -
    • -

      Total : {{finalTotal}}

      -
    • -
    - - {{#if dureeGaldrText}} -
    - Durée du Sort : {{dureeGaldrText}} -
    - {{/if}} - - {{#if zoneGaldrText}} -
    - Volume Max de l'Illusion : {{zoneGaldrText}} -
    - {{/if}} - - {{#if ciblesGaldrText}} -
    - Nombre de Cibles : {{ciblesGaldrText}} -
    - {{/if}} - - - {{#if degats}} -
    - Degats : {{degats}} ({{degatsExplain}}) -
    - {{/if}} - - {{#if attackDef.protection}} -
    - Annuation de Protection du Défenseur : {{attackDef.protection}} -
    - {{/if}} - - {{#if isCritical}} -
    - critique - Réussite Critique ! -
    - {{/if}} - {{#if isFailure}} -
    - echec - Echec Critique ! -
    - {{/if}} - - {{#if (and isSuccess isMagie)}} -
    -
    - {{{sort.data.description}}} - {{#if (eq mode "rune")}} -
    - Support : {{supportRune}}
    - Durée de réalisation : {{dureeRune}} {{echelleDuree}}
    - Durée de vie : {{niveauCompetence}} {{echelleDureeVie}}
    - {{/if}} -
    - - {{/if}} - -
    -
    \ No newline at end of file diff --git a/templates/chat-welcome-message.hbs b/templates/chat-welcome-message.hbs new file mode 100644 index 0000000..ab5162b --- /dev/null +++ b/templates/chat-welcome-message.hbs @@ -0,0 +1,47 @@ +
    +
    +
    + +
    +

    Bienvenue à Yggdrasill

    +
    Système Yggdrasill pour Foundry VTT
    +
    + +
    +
    +
    +
    + Livres nécessaires : +

    Les livres de Yggdrasill sont nécessaires pour jouer. Disponibles chez 7ème Cercle.

    +
    +
    + +
    +
    +
    + Droits : +

    Yggdrasill est un jeu de rôle publié par 7ème Cercle. Tous les droits leur appartiennent.

    + + Site officiel 7ème Cercle + +
    +
    + +
    +
    +
    + Support & Communauté : +

    Système développé par LeRatierBretonnien et la communauté.

    + + Discord FR de Foundry VTT + +
    +
    +
    + + +
    diff --git a/templates/convert-templates.sh b/templates/convert-templates.sh new file mode 100755 index 0000000..bbfe5d4 --- /dev/null +++ b/templates/convert-templates.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +# Templates simples (juste description) +simple_items=("don" "faiblesse" "blessure") + +for item in "${simple_items[@]}"; do + cat > "item-${item}-sheet.hbs" << 'EOF' +
    +
    + +
    +

    +
    +
    + +
    +
    + +
    + {{{enrichedDescription}}} +
    +
    +
    +
    +EOF +done + +echo "Created simple item templates" +ls -1 item-*-sheet.hbs | wc -l diff --git a/templates/create-item-templates.sh b/templates/create-item-templates.sh new file mode 100755 index 0000000..3a9c18b --- /dev/null +++ b/templates/create-item-templates.sh @@ -0,0 +1,278 @@ +#!/bin/bash + +# Créer les templates manquants avec une structure de base + +# Prouesse +cat > item-prouesse-sheet.hbs << 'EOF' +
    +
    + +
    +

    +
    +
    +
    +
    +
      +
    • +
    • +
    • +
    • +
    • +
    + +
    {{{enrichedDescription}}}
    +
    +
    +
    +EOF + +# Rune +cat > item-rune-sheet.hbs << 'EOF' +
    +
    + +
    +

    +
    +
    +
    +
    +
      +
    • +
    + +
    {{{enrichedDescription}}}
    +
    +
    +
    +EOF + +# Sortsejdr +cat > item-sortsejdr-sheet.hbs << 'EOF' +
    +
    + +
    +

    +
    +
    +
    +
    +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    + +
    {{{enrichedDescription}}}
    +
    +
    +
    +EOF + +# Sortgaldr +cat > item-sortgaldr-sheet.hbs << 'EOF' +
    +
    + +
    +

    +
    +
    +
    +
    +
      +
    • +
    • +
    + +
    {{{enrichedDescription}}}
    +
    +
    +
    +EOF + +# ArmeCC +cat > item-armecc-sheet.hbs << 'EOF' +
    +
    + +
    +

    +
    +
    +
    +
    +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    + +
    {{{enrichedDescription}}}
    +
    +
    +
    +EOF + +# ArmedDist +cat > item-armedist-sheet.hbs << 'EOF' +
    +
    + +
    +

    +
    +
    +
    +
    +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    + +
    {{{enrichedDescription}}}
    +
    +
    +
    +EOF + +# Armure +cat > item-armure-sheet.hbs << 'EOF' +
    +
    + +
    +

    +
    +
    +
    +
    +
      +
    • +
    • +
    • +
    • +
    • +
    + +
    {{{enrichedDescription}}}
    +
    +
    +
    +EOF + +# Bouclier +cat > item-bouclier-sheet.hbs << 'EOF' +
    +
    + +
    +

    +
    +
    +
    +
    +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    + +
    {{{enrichedDescription}}}
    +
    +
    +
    +EOF + +# Equipement +cat > item-equipement-sheet.hbs << 'EOF' +
    +
    + +
    +

    +
    +
    +
    +
    +
      +
    • +
    • +
    • +
    • +
    + +
    {{{enrichedDescription}}}
    +
    +
    +
    +EOF + +# Monnaie +cat > item-monnaie-sheet.hbs << 'EOF' +
    +
    + +
    +

    +
    +
    +
    +
    +
      +
    • +
    • +
    + +
    {{{enrichedDescription}}}
    +
    +
    +
    +EOF + +# Effetmagique +cat > item-effetmagique-sheet.hbs << 'EOF' +
    +
    + +
    +

    +
    +
    +
    +
    +
      +
    • +
    + +
    + {{#if system.effet}} + {{{system.effet}}} + {{else}} +

    Aucun effet défini

    + {{/if}} +
    +
    +
    +
    +EOF + +echo "Created all item templates!" +ls -1 item-*-sheet.hbs | wc -l diff --git a/templates/figurant-sheet.html b/templates/figurant-sheet.html deleted file mode 100644 index 17869bc..0000000 --- a/templates/figurant-sheet.html +++ /dev/null @@ -1,157 +0,0 @@ -
    - - {{!-- Sheet Header --}} -
    -
    -
    - -

    -
    -
    -
    - - {{!-- Sheet Tab Navigation --}} - - - {{!-- Sheet Body --}} -
    - - {{!-- Carac Tab --}} -
    - Editable/Vérouillé{{#if editScore}}Editable{{else}}Vérouillé{{/if}} - - -
    -
    -

    Attributs

    -
      - {{#each data.attributs as |attr key|}} -
    • - - {{#if attr.rollable}} - {{attr.label}} - {{else}} - {{attr.label}} - {{/if}} - - - {{#each attr.values as |value index|}} - {{#if value.label}} - - {{value.label}} - {{/if}} - - {{/each}} - -
    • -
    - {{/each}} - -
    - -
    -

    Etat

    -
      -
    • - Etat : - -
    • -
    - -

    Sorts/Rune actifs

    -
      - {{#each effetsmagiques as |effetmagique key|}} -
    • - - {{effetmagique.name}} -
      - - -
      -
    • - {{/each}} -
    -
    -
    -
    - - - {{!-- Equipement Tab --}} -
    -

    Argent

    -
      - {{#each monnaies as |monnaie key|}} -
    • - - {{monnaie.name}} - {{monnaie.system.quantite}} - ( -/+) - - -
      - - -
      -
    • - {{/each}} -
    -

    Equipement (Encombrement total : {{encTotal}})

    -
      -
    • - Nom - Quantité - Enc. - +/- -
      -   -   -   -
      -
    • - {{#each equipements as |equipement key|}} -
    • - - {{equipement.name}} - {{equipement.system.quantite}} - {{equipement.system.enc}} - - (-/+) - - -
    • - {{/each}} -
    -
    - - - {{!-- Biography Tab --}} -
    -
    -

    Biographie :

    -
    - {{editor description target="system.description" button=true owner=owner editable=editable}} -
    -
    -

    Notes :

    -
    - {{editor notes target="system.notes" button=true owner=owner editable=editable}} -
    -
    -
    - -
    -
    diff --git a/templates/item-armecc-sheet.hbs b/templates/item-armecc-sheet.hbs new file mode 100644 index 0000000..3b33255 --- /dev/null +++ b/templates/item-armecc-sheet.hbs @@ -0,0 +1,59 @@ +
    +
    + +
    +

    +
    +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    +
    + +
    +

    Description

    +
    + {{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}} +
    +
    + +
    +
    +
    diff --git a/templates/item-armecc-sheet.html b/templates/item-armecc-sheet.html deleted file mode 100644 index 76fa0cc..0000000 --- a/templates/item-armecc-sheet.html +++ /dev/null @@ -1,32 +0,0 @@ -
    -
    - -
    -

    -
    -
    - - {{!-- Sheet Body --}} -
    - -
    -
      -
    • - -
    • -
    • - -
    • -
    • -
    • -
    • -
    • -
    - - {{editor description target="system.description" button=true owner=owner editable=editable}} -
    - -
    -
    diff --git a/templates/item-armedist-sheet.hbs b/templates/item-armedist-sheet.hbs new file mode 100644 index 0000000..8efc548 --- /dev/null +++ b/templates/item-armedist-sheet.hbs @@ -0,0 +1,61 @@ +
    +
    + +
    +

    +
    +
    +
    +
    +
    +
    +
    + + +
    + +
    + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    +
    +

    Description

    +
    + {{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}} +
    + +
    +
    +
    +
    diff --git a/templates/item-armedist-sheet.html b/templates/item-armedist-sheet.html deleted file mode 100644 index 9453b83..0000000 --- a/templates/item-armedist-sheet.html +++ /dev/null @@ -1,33 +0,0 @@ -
    -
    - -
    -

    -
    -
    - - {{!-- Sheet Body --}} -
    - -
    -
      -
    • - -
    • -
    • - -
    • -
    • -
    • -
    • -
    • -
    • -
    - - {{editor description target="system.description" button=true owner=owner editable=editable}} -
    - -
    -
    diff --git a/templates/item-armure-sheet.hbs b/templates/item-armure-sheet.hbs new file mode 100644 index 0000000..187be0f --- /dev/null +++ b/templates/item-armure-sheet.hbs @@ -0,0 +1,51 @@ +
    +
    + +
    +

    +
    +
    +
    +
    +
    +
    +
    + + +
    + +
    + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    +
    +

    Description

    +
    + {{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}} +
    + +
    +
    +
    +
    diff --git a/templates/item-armure-sheet.html b/templates/item-armure-sheet.html deleted file mode 100644 index a7df9cc..0000000 --- a/templates/item-armure-sheet.html +++ /dev/null @@ -1,31 +0,0 @@ -
    -
    - -
    -

    -
    -
    - - {{!-- Sheet Body --}} -
    - -
    -
      -
    • - -
    • -
    • - -
    • -
    • -
    • -
    • -
    - - {{editor description target="system.description" button=true owner=owner editable=editable}} -
    - -
    -
    diff --git a/templates/item-blessure-sheet.hbs b/templates/item-blessure-sheet.hbs new file mode 100644 index 0000000..6232f1f --- /dev/null +++ b/templates/item-blessure-sheet.hbs @@ -0,0 +1,24 @@ +
    +
    + +
    +

    +
    +
    + +
    + +
    +
    + +
    +

    Description

    +
    + {{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}} +
    + +
    + +
    +
    +
    diff --git a/templates/item-blessure-sheet.html b/templates/item-blessure-sheet.html deleted file mode 100644 index 47c9cc1..0000000 --- a/templates/item-blessure-sheet.html +++ /dev/null @@ -1,18 +0,0 @@ -
    -
    - -
    -

    -
    -
    - - {{!-- Sheet Body --}} -
    - -
    - - {{editor description target="system.description" button=true owner=owner editable=editable}} -
    - -
    -
    diff --git a/templates/item-bouclier-sheet.hbs b/templates/item-bouclier-sheet.hbs new file mode 100644 index 0000000..34ac569 --- /dev/null +++ b/templates/item-bouclier-sheet.hbs @@ -0,0 +1,61 @@ +
    +
    + +
    +

    +
    +
    +
    +
    +
    +
    +
    + + +
    + +
    + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    +
    +

    Description

    +
    + {{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}} +
    + +
    +
    +
    +
    diff --git a/templates/item-bouclier-sheet.html b/templates/item-bouclier-sheet.html deleted file mode 100644 index e0a77c3..0000000 --- a/templates/item-bouclier-sheet.html +++ /dev/null @@ -1,33 +0,0 @@ -
    -
    - -
    -

    -
    -
    - - {{!-- Sheet Body --}} -
    - -
    -
      -
    • - -
    • -
    • - -
    • -
    • -
    • -
    • -
    • -
    • -
    - - {{editor description target="system.description" button=true owner=owner editable=editable}} -
    - -
    -
    diff --git a/templates/item-competence-sheet.hbs b/templates/item-competence-sheet.hbs new file mode 100644 index 0000000..1219209 --- /dev/null +++ b/templates/item-competence-sheet.hbs @@ -0,0 +1,64 @@ +
    +
    + +
    +

    +
    +
    + + {{!-- Decorative Separator --}} +
    + + {{!-- Sheet Body --}} +
    +
    + + {{!-- Properties Grid --}} +
    +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + +
    + +
    + +
    + +
    + + {{!-- Description Section --}} +
    +

    Description

    +
    + {{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}} +
    + +
    + +
    +
    +
    diff --git a/templates/item-competence-sheet.html b/templates/item-competence-sheet.html deleted file mode 100644 index 4525ca9..0000000 --- a/templates/item-competence-sheet.html +++ /dev/null @@ -1,37 +0,0 @@ -
    -
    - -
    -

    -
    -
    - - {{!-- Sheet Body --}} -
    - -
    -
      -
    • - -
    • -
    • - -
    • -
    • - -
    • -
    • -
    • - -
    • -
    - - {{editor description target="system.description" button=true owner=owner editable=editable}} -
    - -
    -
    diff --git a/templates/item-don-sheet.hbs b/templates/item-don-sheet.hbs new file mode 100644 index 0000000..f03ed04 --- /dev/null +++ b/templates/item-don-sheet.hbs @@ -0,0 +1,24 @@ +
    +
    + +
    +

    +
    +
    + +
    + +
    +
    + +
    +

    Description

    +
    + {{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}} +
    + +
    + +
    +
    +
    diff --git a/templates/item-don-sheet.html b/templates/item-don-sheet.html deleted file mode 100644 index 47c9cc1..0000000 --- a/templates/item-don-sheet.html +++ /dev/null @@ -1,18 +0,0 @@ -
    -
    - -
    -

    -
    -
    - - {{!-- Sheet Body --}} -
    - -
    - - {{editor description target="system.description" button=true owner=owner editable=editable}} -
    - -
    -
    diff --git a/templates/item-effetderune-sheet.hbs b/templates/item-effetderune-sheet.hbs new file mode 100644 index 0000000..3181609 --- /dev/null +++ b/templates/item-effetderune-sheet.hbs @@ -0,0 +1,20 @@ +
    +
    + +
    +

    +
    +
    +
    +
    +
    +
    +

    Description

    +
    + {{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}} +
    + +
    +
    +
    +
    diff --git a/templates/item-effetderune-sheet.html b/templates/item-effetderune-sheet.html deleted file mode 100644 index 47c9cc1..0000000 --- a/templates/item-effetderune-sheet.html +++ /dev/null @@ -1,18 +0,0 @@ -
    -
    - -
    -

    -
    -
    - - {{!-- Sheet Body --}} -
    - -
    - - {{editor description target="system.description" button=true owner=owner editable=editable}} -
    - -
    -
    diff --git a/templates/item-effetmagique-sheet.hbs b/templates/item-effetmagique-sheet.hbs new file mode 100644 index 0000000..b688927 --- /dev/null +++ b/templates/item-effetmagique-sheet.hbs @@ -0,0 +1,27 @@ +
    +
    + +
    +

    +
    +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    +

    Effet

    +
    + {{formInput systemFields.effet enriched=enrichedEffet value=system.effet name="system.effet" toggled=true}} +
    + +
    +
    +
    +
    diff --git a/templates/item-effetmagique-sheet.html b/templates/item-effetmagique-sheet.html deleted file mode 100644 index ec44ef6..0000000 --- a/templates/item-effetmagique-sheet.html +++ /dev/null @@ -1,24 +0,0 @@ -
    -
    - -
    -

    -
    -
    - - {{!-- Sheet Body --}} -
    - -
    -
      -
    • - - -
    • -
    - - {{editor effet target="system.effet" button=true owner=owner editable=editable}} -
    - -
    -
    diff --git a/templates/item-equipement-sheet.hbs b/templates/item-equipement-sheet.hbs new file mode 100644 index 0000000..d9870c7 --- /dev/null +++ b/templates/item-equipement-sheet.hbs @@ -0,0 +1,39 @@ +
    +
    + +
    +

    +
    +
    +
    +
    +
    +
    +
    + +
    + +
    + + +
    + +
    + + +
    + +
    +
    +

    Description

    +
    + {{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}} +
    + +
    +
    +
    +
    diff --git a/templates/item-equipement-sheet.html b/templates/item-equipement-sheet.html deleted file mode 100644 index 5c9609f..0000000 --- a/templates/item-equipement-sheet.html +++ /dev/null @@ -1,25 +0,0 @@ -
    -
    - -
    -

    -
    -
    - - {{!-- Sheet Body --}} -
    - -
    -
      -
    • - -
    • -
    • -
    • -
    - - {{editor description target="system.description" button=true owner=owner editable=editable}} -
    - -
    -
    diff --git a/templates/item-faiblesse-sheet.hbs b/templates/item-faiblesse-sheet.hbs new file mode 100644 index 0000000..5f9006b --- /dev/null +++ b/templates/item-faiblesse-sheet.hbs @@ -0,0 +1,24 @@ +
    +
    + +
    +

    +
    +
    + +
    + +
    +
    + +
    +

    Description

    +
    + {{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}} +
    + +
    + +
    +
    +
    diff --git a/templates/item-faiblesse-sheet.html b/templates/item-faiblesse-sheet.html deleted file mode 100644 index 47c9cc1..0000000 --- a/templates/item-faiblesse-sheet.html +++ /dev/null @@ -1,18 +0,0 @@ -
    -
    - -
    -

    -
    -
    - - {{!-- Sheet Body --}} -
    - -
    - - {{editor description target="system.description" button=true owner=owner editable=editable}} -
    - -
    -
    diff --git a/templates/item-maladie-sheet.hbs b/templates/item-maladie-sheet.hbs new file mode 100644 index 0000000..909439b --- /dev/null +++ b/templates/item-maladie-sheet.hbs @@ -0,0 +1,34 @@ +
    +
    + +
    +

    +
    +
    +
    +
    +
    +
    +
    + + +
    + +
    + + +
    + +
    +
    +

    Description

    +
    + {{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}} +
    + +
    +
    +
    +
    diff --git a/templates/item-maladie-sheet.html b/templates/item-maladie-sheet.html deleted file mode 100644 index 4732c2d..0000000 --- a/templates/item-maladie-sheet.html +++ /dev/null @@ -1,27 +0,0 @@ -
    -
    - -
    -

    -
    -
    - - {{!-- Sheet Body --}} -
    - -
    -
      -
    • - -
    • -
    • -
    • -
    - - {{editor description target="system.description" button=true owner=owner editable=editable}} -
    - -
    -
    diff --git a/templates/item-monnaie-sheet.hbs b/templates/item-monnaie-sheet.hbs new file mode 100644 index 0000000..d38acea --- /dev/null +++ b/templates/item-monnaie-sheet.hbs @@ -0,0 +1,32 @@ +
    +
    + +
    +

    +
    +
    +
    +
    +
    +
    +
    + + +
    + +
    + + +
    + +
    +
    +

    Description

    +
    + {{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}} +
    + +
    +
    +
    +
    diff --git a/templates/item-monnaie-sheet.html b/templates/item-monnaie-sheet.html deleted file mode 100644 index 4c043ee..0000000 --- a/templates/item-monnaie-sheet.html +++ /dev/null @@ -1,22 +0,0 @@ -
    -
    - -
    -

    -
    -
    - - {{!-- Sheet Body --}} -
    - -
    -
      -
    • -
    • -
    - - {{editor description target="system.description" button=true owner=owner editable=editable}} -
    - -
    -
    diff --git a/templates/item-poison-sheet.hbs b/templates/item-poison-sheet.hbs new file mode 100644 index 0000000..d0f8a8b --- /dev/null +++ b/templates/item-poison-sheet.hbs @@ -0,0 +1,34 @@ +
    +
    + +
    +

    +
    +
    +
    +
    +
    +
    +
    + + +
    + +
    + + +
    + +
    +
    +

    Description

    +
    + {{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}} +
    + +
    +
    +
    +
    diff --git a/templates/item-poison-sheet.html b/templates/item-poison-sheet.html deleted file mode 100644 index 4876f98..0000000 --- a/templates/item-poison-sheet.html +++ /dev/null @@ -1,26 +0,0 @@ -
    -
    - -
    -

    -
    -
    - - {{!-- Sheet Body --}} -
    - -
    -
      -
    • - -
    • -
    • -
    - - {{editor description target="system.description" button=true owner=owner editable=editable}} -
    - -
    -
    diff --git a/templates/item-prouesse-sheet.hbs b/templates/item-prouesse-sheet.hbs new file mode 100644 index 0000000..556ca0a --- /dev/null +++ b/templates/item-prouesse-sheet.hbs @@ -0,0 +1,60 @@ +
    +
    + +
    +

    +
    +
    + +
    + +
    +
    + +
    +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + +
    +

    Description & Effets

    +
    + {{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}} +
    + +
    + +
    +
    +
    diff --git a/templates/item-prouesse-sheet.html b/templates/item-prouesse-sheet.html deleted file mode 100644 index f710f32..0000000 --- a/templates/item-prouesse-sheet.html +++ /dev/null @@ -1,34 +0,0 @@ -
    -
    - -
    -

    -
    -
    - - {{!-- Sheet Body --}} -
    - -
    -
      -
    • - -
    • -
    • - - -
    • -
    • -
    • -
    • -
    - - {{editor description target="system.description" button=true owner=owner editable=editable}} -
    - -
    -
    diff --git a/templates/item-rune-sheet.hbs b/templates/item-rune-sheet.hbs new file mode 100644 index 0000000..538f9e5 --- /dev/null +++ b/templates/item-rune-sheet.hbs @@ -0,0 +1,51 @@ +
    +
    + +
    +

    +
    +
    + + {{!-- Decorative Separator --}} +
    + + {{!-- Sheet Body --}} +
    +
    + + {{!-- Properties Grid --}} +
    +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    +
    + + {{!-- Description Section --}} +
    +

    Description & Effets

    +
    + {{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}} +
    +
    + +
    +
    +
    diff --git a/templates/item-rune-sheet.html b/templates/item-rune-sheet.html deleted file mode 100644 index 149276d..0000000 --- a/templates/item-rune-sheet.html +++ /dev/null @@ -1,29 +0,0 @@ -
    -
    - -
    -

    -
    -
    - - {{!-- Sheet Body --}} -
    - -
    -
      -
    • -
    • - - -
    • -
    • -
    • -
    - - {{editor description target="system.description" button=true owner=owner editable=editable}} -
    - -
    -
    diff --git a/templates/item-sortgaldr-sheet.hbs b/templates/item-sortgaldr-sheet.hbs new file mode 100644 index 0000000..bfe15ce --- /dev/null +++ b/templates/item-sortgaldr-sheet.hbs @@ -0,0 +1,34 @@ +
    +
    + +
    +

    +
    +
    +
    +
    +
    +
    +
    + + +
    + +
    + + +
    + +
    +
    +

    Description & Effets

    +
    + {{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}} +
    + +
    +
    +
    +
    diff --git a/templates/item-sortgaldr-sheet.html b/templates/item-sortgaldr-sheet.html deleted file mode 100644 index 8eb4fd2..0000000 --- a/templates/item-sortgaldr-sheet.html +++ /dev/null @@ -1,27 +0,0 @@ -
    -
    - -
    -

    -
    -
    - - {{!-- Sheet Body --}} -
    - -
    -
      -
    • - - -
    • -
    • -
    - - {{editor description target="system.description" button=true owner=owner editable=editable}} -
    - -
    -
    diff --git a/templates/item-sortsejdr-sheet.hbs b/templates/item-sortsejdr-sheet.hbs new file mode 100644 index 0000000..9ea003e --- /dev/null +++ b/templates/item-sortsejdr-sheet.hbs @@ -0,0 +1,54 @@ +
    +
    + +
    +

    +
    +
    +
    +
    +
    +
    +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    +
    +

    Description & Effets

    +
    + {{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}} +
    + +
    +
    +
    +
    diff --git a/templates/item-sortsejdr-sheet.html b/templates/item-sortsejdr-sheet.html deleted file mode 100644 index 1167345..0000000 --- a/templates/item-sortsejdr-sheet.html +++ /dev/null @@ -1,31 +0,0 @@ -
    -
    - -
    -

    -
    -
    - - {{!-- Sheet Body --}} -
    - -
    -
      -
    • -
    • -
    • - - -
    • -
    • -
    • -
    • -
    - - {{editor description target="system.description" button=true owner=owner editable=editable}} -
    - -
    -
    diff --git a/templates/roll-dialog-armecc.html b/templates/roll-dialog-armecc.html deleted file mode 100644 index d04942e..0000000 --- a/templates/roll-dialog-armecc.html +++ /dev/null @@ -1,71 +0,0 @@ -
    -

    {{title}}

    - -
    -
    - Type d'attaque : - -
    - -
    - Effet : - TEST -   -
    - -
    - Caractéristique : - TEST - TEST -
    - -
    - Compétence : - {{competence.name}} - {{competence.system.niveau}} -
    - -
    - Malus d'Attaque : - {{attackData.malus}} -
    - -
    - Bonus/Malus : - -
    - -
    - Epuisé (1d) : - Blessé (-3) : - Epuisé (1d) : -
    - -
    - Furor à utiliser: - -
    - -
    - Seuil de Réussite : - -
    - -
    - Défense Physique du défenseur : - -
    - -
    - -
    diff --git a/templates/roll-dialog-armetir.html b/templates/roll-dialog-armetir.html deleted file mode 100644 index b3bb2f3..0000000 --- a/templates/roll-dialog-armetir.html +++ /dev/null @@ -1,81 +0,0 @@ -
    -

    {{title}}

    - -
    -
    - Type d'attaque : - -
    - -
    - Effet : - TEST -   -
    - -
    - Caractéristique : - TEST - TEST -
    - -
    - Compétence : - {{competence.name}} - {{competence.system.niveau}} -
    - -
    - Malus d'Attaque : - {{attackData.malus}} -
    - -
    - Bonus/Malus : - -
    - -
    - Epuisé (1d) : - Blessé (-3) : - Epuisé (1d) : -
    - -
    - Furor à utiliser: - -
    - -
    - Seuil de Réussite : - -
    - -
    - Défense Physique du défenseur : - -
    - -
    - -
    diff --git a/templates/roll-dialog-attribut.html b/templates/roll-dialog-attribut.html deleted file mode 100644 index 1829720..0000000 --- a/templates/roll-dialog-attribut.html +++ /dev/null @@ -1,37 +0,0 @@ -
    -

    {{title}}

    - -
    -
    - Attribut : - {{attr.label}} {{#if subAttr.label}} - {{subAttr.label}}{{/if}} -    - TEST -
    - -
    - Bonus/Malus : - -
    - -
    - Défense Physique du défenseur : - -
    - -
    - Seuil de Réussite : - -
    - -
    - -
    diff --git a/templates/roll-dialog-carac.html b/templates/roll-dialog-carac.html deleted file mode 100644 index 781860b..0000000 --- a/templates/roll-dialog-carac.html +++ /dev/null @@ -1,41 +0,0 @@ -
    -

    {{title}}

    - -
    -
    - Caractéristique : - {{selectedCarac.label}} -    - TEST -
    - -
    - Bonus/Malus : - -
    - -
    - Epuisé (1d) : - Blessé (-3) : - Epuisé (1d) : -
    - -
    - Furor à utiliser: - -
    - -
    - Seuil de Réussite : - -
    - -
    - -
    diff --git a/templates/roll-dialog-competence.html b/templates/roll-dialog-competence.html deleted file mode 100644 index beeb0af..0000000 --- a/templates/roll-dialog-competence.html +++ /dev/null @@ -1,52 +0,0 @@ -
    -

    {{title}}

    - -
    - {{#if competence.system.isspecialisation}} -
    - Spécialisation : - {{competence.system.specialisation}} -    -    -
    - {{/if}} - -
    - Caractéristique : - -    - TEST -
    - -
    - Bonus/Malus : - -
    - -
    - Epuisé (1d) : - Blessé (-3) : - Epuisé (1d) : -
    - -
    - Furor à utiliser: - -
    - -
    - Seuil de Réussite : - -
    - -
    - -
    diff --git a/templates/roll-dialog-galdr.html b/templates/roll-dialog-galdr.html deleted file mode 100644 index 3229d7e..0000000 --- a/templates/roll-dialog-galdr.html +++ /dev/null @@ -1,67 +0,0 @@ -
    -

    {{title}} - SD {{sort.system.sd}}

    - -
    -
    - Caractéristique : - TEST - TEST -
    - -
    - Compétence : - {{competence.name}} - {{competence.system.niveau}} -
    - -
    - Durée - -
    - -
    - {{#if (eq sort.data.voie "illusion")}} - Zone - - {{else}} - Nombre de cibles - - {{/if}} -
    - -
    - Bonus/Malus : - -
    - -
    - Epuisé (1d) : - Blessé (-3) : - Epuisé (1d) : -
    - -
    - Furor à utiliser: - -
    - -
    - Seuil de Réussite Total : - 14 -
    - - -
    - -
    diff --git a/templates/roll-dialog-generic-new.hbs b/templates/roll-dialog-generic-new.hbs new file mode 100644 index 0000000..d842bdd --- /dev/null +++ b/templates/roll-dialog-generic-new.hbs @@ -0,0 +1,415 @@ +{{!-- Modern Roll Dialog Layout --}} +
    + + {{!-- Header with Actor Info --}} +
    + {{name}} +
    +

    {{name}}

    + {{#if competence}} +
    + + {{competence.name}} + {{#if competence.system.isspecialisation}} + ({{competence.system.specialisation}}) + {{/if}} +
    + {{/if}} + {{#if arme}} +
    + + {{arme.name}} +
    + {{/if}} + {{#if sort}} +
    + + {{sort.name}} +
    + {{/if}} +
    +
    + + {{!-- Main Content Area --}} +
    + + {{!-- Left Column: Stats & Info --}} +
    + + {{!-- Mode Compétence --}} + {{#if (eq mode "competence")}} +
    + + +
    + +
    + +
    {{competence.name}} ({{competence.system.niveau}})
    +
    + {{/if}} + + {{!-- Mode Carac --}} + {{#if (eq mode "carac")}} +
    + +
    {{selectedCarac.label}}: {{selectedCarac.value}}
    +
    + {{/if}} + + {{!-- Mode Arme CC --}} + {{#if (eq mode "armecc")}} +
    + + +
    + +
    + +
    {{attackData.description}}
    +
    + +
    +
    + +
    {{attackData.categName}} / {{attackData.caracName}}
    +
    + +
    + +
    {{competence.name}} ({{competence.system.niveau}})
    +
    +
    + +
    + +
    {{attackData.malus}}
    +
    + +
    + + +
    + {{/if}} + + {{!-- Mode Arme Tir / Arme Dist --}} + {{#if (or (eq mode "armetir") (eq mode "armedist"))}} +
    + + +
    + +
    + +
    {{attackData.description}}
    +
    + +
    +
    + +
    {{attackData.categName}} / {{attackData.caracName}}
    +
    + +
    + +
    {{competence.name}} ({{competence.system.niveau}})
    +
    +
    + +
    +
    + +
    {{attackData.malus}}
    +
    + +
    + +
    {{arme.system.portee}}
    +
    +
    + +
    + + +
    + {{/if}} + + {{!-- Mode Galdr --}} + {{#if (eq mode "galdr")}} +
    +
    + +
    {{selectedCarac.label}}: {{selectedCarac.value}}
    +
    + +
    + +
    {{competence.name}} ({{competence.system.niveau}})
    +
    +
    + +
    +
    + +
    {{sort.system.voie}}
    +
    + +
    + +
    {{sort.system.sd}}
    +
    +
    + +
    + + +
    + + {{#if (eq sort.system.voie "illusion")}} +
    + + +
    + {{else}} +
    + + +
    + {{/if}} + +
    + +
    {{srTotal}}
    +
    + {{/if}} + + {{!-- Mode Sejdr --}} + {{#if (eq mode "sejdr")}} +
    +
    + +
    {{selectedCarac.label}}: {{selectedCarac.value}}
    +
    + +
    + +
    {{sort.system.preparation}}
    +
    +
    + +
    + +
    {{competence.name}} ({{competence.system.niveau}})
    +
    + +
    +
    + +
    {{sort.system.forme}}
    +
    + +
    + +
    {{sort.system.niveau}}
    +
    + +
    + +
    {{sort.system.malus}}
    +
    +
    + +
    +
    + +
    {{sort.system.duree}}
    +
    + +
    + +
    {{sort.system.zone}}
    +
    +
    + +
    + + +
    + +
    + +
    {{srTotal}}
    +
    + {{/if}} + + {{!-- Mode Rune --}} + {{#if (eq mode "rune")}} +
    +
    + +
    {{selectedCarac.label}}: {{selectedCarac.value}}
    +
    + +
    + +
    {{competence.name}} ({{competence.system.niveau}})
    +
    +
    + +
    + +
    {{sort.system.niveau}}
    +
    + +
    + + +
    + +
    + + +
    + +
    +
    + +
    {{runeDuree}}
    +
    + +
    + +
    {{runeDureeVie}}
    +
    +
    + +
    + +
    {{srTotal}}
    +
    + {{/if}} + +
    + + {{!-- Right Column: Modifiers & Status --}} +
    + + {{!-- Modifiers Card --}} +
    +

    Modificateurs

    + +
    +
    + + +
    + +
    + + +
    +
    + + {{#unless (or (eq mode "galdr") (eq mode "sejdr") (eq mode "rune"))}} +
    + + +
    + {{/unless}} +
    + + {{!-- Status Effects Card --}} +
    +

    État

    + +
    + + + + + +
    +
    + +
    + +
    + +
    diff --git a/templates/roll-dialog-rune.html b/templates/roll-dialog-rune.html deleted file mode 100644 index 69ae9d0..0000000 --- a/templates/roll-dialog-rune.html +++ /dev/null @@ -1,70 +0,0 @@ -
    -

    {{title}} - Niveau {{sort.system.niveau}}

    - -
    -
    - Caractéristique : - TEST - TEST -
    - -
    - Compétence : - {{competence.name}} - {{competence.system.niveau}} -
    - -
    - Graver la Rune : - -
    - -
    - Puissance de la Rune : - -
    - -
    - Bonus/Malus : - -
    - -
    - Epuisé (1d) : - Blessé (-3) : - Epuisé (1d) : -
    - -
    - Furor à utiliser: - -
    - -
    - Durée de réalisation : - 1 -
    - -
    - Durée de Vie : - 1 -
    - -
    - Seuil de Réussite Total : - 14 -
    - - -
    - -
    diff --git a/templates/roll-dialog-sejdr.html b/templates/roll-dialog-sejdr.html deleted file mode 100644 index cea4979..0000000 --- a/templates/roll-dialog-sejdr.html +++ /dev/null @@ -1,63 +0,0 @@ -
    -

    {{title}}

    - -
    -
    - Caractéristique : - TEST - TEST -
    - -
    - Préparation : - {{sort.system.preparation}} -
    - -
    - Compétence : - {{competence.name}} - {{competence.system.niveau}} -
    - -
    - Malus du Sort : - {{sort.system.malus}} -
    - -
    - Bonus/Malus : - -
    - -
    - Epuisé (1d) : - Blessé (-3) : - Epuisé (1d) : -
    - -
    - Furor à utiliser: - -
    - -
    - Défense Mentale du défenseur : - -
    - -
    - Seuil de Réussite Total (14+DM éventuelle): - 14 -
    - - -
    - -