Add comprehensive spell management functionality

- Introduced spell management with creation, editing, deletion, and tagging capabilities.
- Added `Spell`, `SpellList`, `SpellTagManager` models with corresponding IPC handlers for data operations.
- Implemented `SpellList` and `SpellTagChip` components for UI interactions with spells and tags.
- Localized spell-related strings for English (e.g., error messages, tooltips, and prompts).
- Enhanced database models and repositories with encryption and decryption workflows for secure data handling.
- Updated API to include filtering, searching, and tag-based spell management options.
This commit is contained in:
natreex
2026-01-19 21:38:38 -05:00
parent c62a7eb0f7
commit fd09a5531c
14 changed files with 2717 additions and 1 deletions

View File

@@ -456,6 +456,80 @@
"characterSectionElement": {
"newItem": "New {item}"
},
"spellComponent": {
"enableTool": "Enable spell book",
"enableToolDescription": "Manage the spells and magic of your universe.",
"errorNameRequired": "Spell name is required.",
"errorDescriptionRequired": "Spell description is required.",
"errorAppearanceRequired": "Spell appearance is required.",
"errorAddSpell": "Error adding spell.",
"errorUpdateSpell": "Error updating spell.",
"errorDeleteSpell": "Error deleting spell.",
"successAdd": "Spell added successfully.",
"successUpdate": "Spell updated successfully.",
"successDelete": "Spell deleted successfully."
},
"spellList": {
"search": "Search for a spell...",
"add": "Add a spell",
"manageTags": "Manage tags",
"filterByTag": "Filter by tag",
"filterByLevel": "Filter by level",
"allTags": "All tags",
"allLevels": "All levels",
"noSpells": "No spells created",
"noSpellsDescription": "Add your first spell to get started."
},
"spellDetail": {
"back": "Back",
"newSpell": "New spell",
"save": "Save",
"delete": "Delete",
"deleteTitle": "Delete spell",
"deleteMessage": "You are about to permanently delete the spell \"{name}\".",
"basicInfo": "Basic information",
"name": "Spell name",
"namePlaceholder": "Enter spell name",
"description": "Description",
"descriptionPlaceholder": "Describe the effects and nature of the spell",
"appearance": "Appearance",
"appearancePlaceholder": "Describe the visual appearance of the spell",
"tags": "Tags",
"addTag": "Add a tag...",
"createTag": "Create \"{name}\"",
"powerLevel": "Power level",
"components": "Components",
"componentsPlaceholder": "Ingredients, gestures, incantations required...",
"limitations": "Limitations",
"limitationsPlaceholder": "Restrictions, side effects, conditions of use...",
"notes": "Notes",
"notesPlaceholder": "Additional notes about the spell..."
},
"spellTagManager": {
"title": "Tag management",
"back": "Back",
"addTag": "Add a tag",
"tagName": "Tag name",
"tagNamePlaceholder": "Tag name...",
"tagColor": "Color",
"editTag": "Edit tag",
"preview": "Preview",
"deleteTagTitle": "Delete tag",
"delete": "Delete",
"confirmDelete": "Delete this tag? It will be removed from all spells.",
"noTags": "No tags created",
"successAdd": "Tag added successfully.",
"successUpdate": "Tag updated successfully.",
"successDelete": "Tag deleted successfully."
},
"spellPowerLevels": {
"none": "None",
"minor": "Minor",
"moderate": "Moderate",
"major": "Major",
"legendary": "Legendary",
"divine": "Divine"
},
"aboutEditors": {
"title": "About Scribe",
"version": "Version",

View File

@@ -456,6 +456,80 @@
"characterSectionElement": {
"newItem": "Nouveau {item}"
},
"spellComponent": {
"enableTool": "Activer le grimoire de sorts",
"enableToolDescription": "Gérez les sorts et la magie de votre univers.",
"errorNameRequired": "Le nom du sort est requis.",
"errorDescriptionRequired": "La description du sort est requise.",
"errorAppearanceRequired": "L'apparence du sort est requise.",
"errorAddSpell": "Erreur lors de l'ajout du sort.",
"errorUpdateSpell": "Erreur lors de la mise à jour du sort.",
"errorDeleteSpell": "Erreur lors de la suppression du sort.",
"successAdd": "Sort ajouté avec succès.",
"successUpdate": "Sort mis à jour avec succès.",
"successDelete": "Sort supprimé avec succès."
},
"spellList": {
"search": "Rechercher un sort...",
"add": "Ajouter un sort",
"manageTags": "Gérer les tags",
"filterByTag": "Filtrer par tag",
"filterByLevel": "Filtrer par niveau",
"allTags": "Tous les tags",
"allLevels": "Tous les niveaux",
"noSpells": "Aucun sort créé",
"noSpellsDescription": "Ajoutez votre premier sort pour commencer."
},
"spellDetail": {
"back": "Retour",
"newSpell": "Nouveau sort",
"save": "Enregistrer",
"delete": "Supprimer",
"deleteTitle": "Supprimer le sort",
"deleteMessage": "Vous êtes sur le point de supprimer le sort « {name} » définitivement.",
"basicInfo": "Informations de base",
"name": "Nom du sort",
"namePlaceholder": "Entrez le nom du sort",
"description": "Description",
"descriptionPlaceholder": "Décrivez les effets et la nature du sort",
"appearance": "Apparence",
"appearancePlaceholder": "Décrivez l'apparence visuelle du sort",
"tags": "Tags",
"addTag": "Ajouter un tag...",
"createTag": "Créer \"{name}\"",
"powerLevel": "Niveau de puissance",
"components": "Composantes",
"componentsPlaceholder": "Ingrédients, gestes, incantations nécessaires...",
"limitations": "Limitations",
"limitationsPlaceholder": "Restrictions, effets secondaires, conditions d'utilisation...",
"notes": "Notes",
"notesPlaceholder": "Notes supplémentaires sur le sort..."
},
"spellTagManager": {
"title": "Gestion des tags",
"back": "Retour",
"addTag": "Ajouter un tag",
"tagName": "Nom du tag",
"tagNamePlaceholder": "Nom du tag...",
"tagColor": "Couleur",
"editTag": "Modifier le tag",
"preview": "Aperçu",
"deleteTagTitle": "Supprimer le tag",
"delete": "Supprimer",
"confirmDelete": "Supprimer ce tag? Il sera retiré de tous les sorts.",
"noTags": "Aucun tag créé",
"successAdd": "Tag ajouté avec succès.",
"successUpdate": "Tag mis à jour avec succès.",
"successDelete": "Tag supprimé avec succès."
},
"spellPowerLevels": {
"none": "Aucun",
"minor": "Mineur",
"moderate": "Modéré",
"major": "Majeur",
"legendary": "Légendaire",
"divine": "Divin"
},
"aboutEditors": {
"title": "À propos de Scribe",
"version": "Version",

View File

@@ -61,6 +61,7 @@ export interface BookToolsSettings {
characters: boolean;
worlds: boolean;
locations: boolean;
spells: boolean;
}
export interface BookProps {