{{ getFormattedDateTitle(r.date, true) }}
diff --git a/src/components/ui/command/Command.vue b/src/components/ui/command/Command.vue
new file mode 100644
index 0000000..b1c809c
--- /dev/null
+++ b/src/components/ui/command/Command.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
diff --git a/src/components/ui/command/CommandDialog.vue b/src/components/ui/command/CommandDialog.vue
new file mode 100644
index 0000000..2b19c30
--- /dev/null
+++ b/src/components/ui/command/CommandDialog.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
diff --git a/src/components/ui/command/CommandEmpty.vue b/src/components/ui/command/CommandEmpty.vue
new file mode 100644
index 0000000..1295d2a
--- /dev/null
+++ b/src/components/ui/command/CommandEmpty.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
diff --git a/src/components/ui/command/CommandGroup.vue b/src/components/ui/command/CommandGroup.vue
new file mode 100644
index 0000000..3a4422b
--- /dev/null
+++ b/src/components/ui/command/CommandGroup.vue
@@ -0,0 +1,36 @@
+
+
+
+
+
+ {{ heading }}
+
+
+
+
diff --git a/src/components/ui/command/CommandInput.vue b/src/components/ui/command/CommandInput.vue
new file mode 100644
index 0000000..936f789
--- /dev/null
+++ b/src/components/ui/command/CommandInput.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
diff --git a/src/components/ui/command/CommandItem.vue b/src/components/ui/command/CommandItem.vue
new file mode 100644
index 0000000..027fca1
--- /dev/null
+++ b/src/components/ui/command/CommandItem.vue
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
diff --git a/src/components/ui/command/CommandList.vue b/src/components/ui/command/CommandList.vue
new file mode 100644
index 0000000..265317b
--- /dev/null
+++ b/src/components/ui/command/CommandList.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/components/ui/command/CommandSeparator.vue b/src/components/ui/command/CommandSeparator.vue
new file mode 100644
index 0000000..2d83d0f
--- /dev/null
+++ b/src/components/ui/command/CommandSeparator.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
diff --git a/src/components/ui/command/CommandShortcut.vue b/src/components/ui/command/CommandShortcut.vue
new file mode 100644
index 0000000..0d4da92
--- /dev/null
+++ b/src/components/ui/command/CommandShortcut.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/src/components/ui/command/index.ts b/src/components/ui/command/index.ts
new file mode 100644
index 0000000..0e35f4b
--- /dev/null
+++ b/src/components/ui/command/index.ts
@@ -0,0 +1,9 @@
+export { default as Command } from './Command.vue'
+export { default as CommandDialog } from './CommandDialog.vue'
+export { default as CommandEmpty } from './CommandEmpty.vue'
+export { default as CommandGroup } from './CommandGroup.vue'
+export { default as CommandInput } from './CommandInput.vue'
+export { default as CommandItem } from './CommandItem.vue'
+export { default as CommandList } from './CommandList.vue'
+export { default as CommandSeparator } from './CommandSeparator.vue'
+export { default as CommandShortcut } from './CommandShortcut.vue'
diff --git a/src/components/ui/tags-input/TagsInput.vue b/src/components/ui/tags-input/TagsInput.vue
new file mode 100644
index 0000000..d5ed3ee
--- /dev/null
+++ b/src/components/ui/tags-input/TagsInput.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
diff --git a/src/components/ui/tags-input/TagsInputInput.vue b/src/components/ui/tags-input/TagsInputInput.vue
new file mode 100644
index 0000000..399274c
--- /dev/null
+++ b/src/components/ui/tags-input/TagsInputInput.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
diff --git a/src/components/ui/tags-input/TagsInputItem.vue b/src/components/ui/tags-input/TagsInputItem.vue
new file mode 100644
index 0000000..0703456
--- /dev/null
+++ b/src/components/ui/tags-input/TagsInputItem.vue
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
diff --git a/src/components/ui/tags-input/TagsInputItemDelete.vue b/src/components/ui/tags-input/TagsInputItemDelete.vue
new file mode 100644
index 0000000..4401215
--- /dev/null
+++ b/src/components/ui/tags-input/TagsInputItemDelete.vue
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/components/ui/tags-input/TagsInputItemText.vue b/src/components/ui/tags-input/TagsInputItemText.vue
new file mode 100644
index 0000000..f714957
--- /dev/null
+++ b/src/components/ui/tags-input/TagsInputItemText.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
diff --git a/src/components/ui/tags-input/index.ts b/src/components/ui/tags-input/index.ts
new file mode 100644
index 0000000..31305f3
--- /dev/null
+++ b/src/components/ui/tags-input/index.ts
@@ -0,0 +1,5 @@
+export { default as TagsInput } from './TagsInput.vue'
+export { default as TagsInputInput } from './TagsInputInput.vue'
+export { default as TagsInputItem } from './TagsInputItem.vue'
+export { default as TagsInputItemDelete } from './TagsInputItemDelete.vue'
+export { default as TagsInputItemText } from './TagsInputItemText.vue'
diff --git a/src/data/Characters.ts b/src/data/Characters.ts
index 2b0515f..4caf5b8 100644
--- a/src/data/Characters.ts
+++ b/src/data/Characters.ts
@@ -9,19 +9,41 @@ export const charactersList: Character[] = [
name: 'Sulvan Trois-Barbes',
birth: { day: 20, month: 3, year: 3169 },
wiki: 'https://alexcreates.fr/leim/index.php/Sulvan_Trois-Barbes',
- category: 'joueur'
+ category: 'joueur',
+ secondaryCategories: ['criminel', 'étincelle']
},
{
name: 'Vascylly',
birth: { day: 3, month: 5, year: 3181 },
wiki: 'https://alexcreates.fr/leim/index.php/Vascylly',
- category: 'joueur'
+ category: 'joueur',
+ secondaryCategories: ['mage']
+ },
+ {
+ name: 'Tara Belyus',
+ birth: { day: 14, month: 9, year: 3186 },
+ category: 'joueur',
+ secondaryCategories: ['mage']
},
- { name: 'Tara Belyus', birth: { day: 14, month: 9, year: 3186 }, category: 'joueur' },
// "Les Cloches de Cantane"
- { name: 'Malik', birth: { day: 22, month: 8, year: 3181 }, category: 'joueur' },
- { name: 'Elie', birth: { day: 5, month: 6, year: 3192 }, category: 'joueur' },
- { name: 'Clayron', birth: { day: 3, month: 5, year: 3178 }, category: 'joueur' },
+ {
+ name: 'Malik',
+ birth: { day: 22, month: 8, year: 3181 },
+ category: 'joueur',
+ secondaryCategories: ['scientifique']
+ },
+ {
+ name: 'Elie',
+ birth: { day: 5, month: 6, year: 3192 },
+ category: 'joueur',
+ secondaryCategories: ['ecclésiastique']
+ },
+ {
+ name: 'Clayron',
+ birth: { day: 3, month: 5, year: 3178 },
+ category: 'joueur',
+ secondaryCategories: ['sentinelle']
+ },
/**
* NPC
diff --git a/src/data/Events.ts b/src/data/Events.ts
index 045d908..bfd1b67 100644
--- a/src/data/Events.ts
+++ b/src/data/Events.ts
@@ -9,7 +9,7 @@ export const regularEvents: CalendarEvent[] = [
"Le léviathan Tyhos rend l'âme après un combat de plusieurs années contre Lystos, le dieu du Soleil.",
category: 'bénédiction',
secondaryCategories: ['mort'],
- wiki: 'https://alexcreates.fr/leim/index.php/Alliance_Kald%C3%A9lienne#Trait%C3%A9_de_Kadel',
+ wiki: 'https://alexcreates.fr/leim/index.php/Tyhos',
hidden: true
},
{
diff --git a/src/models/Characters.ts b/src/models/Characters.ts
index bc96083..8be796c 100644
--- a/src/models/Characters.ts
+++ b/src/models/Characters.ts
@@ -11,18 +11,20 @@ export interface Character {
secondaryCategories?: CharacterCategory[]
wiki?: string
}
+export const characterCategories = [
+ 'joueur',
+ 'comte',
+ 'scientifique',
+ 'mage',
+ 'professeur',
+ 'criminel',
+ 'étincelle',
+ 'buse blanche',
+ 'ecclésiastique',
+ 'sentinelle'
+] as const
-export type CharacterCategory =
- | 'joueur'
- | 'comte'
- | 'scientifique'
- | 'mage'
- | 'professeur'
- | 'criminel'
- | 'étincelle'
- | 'buse blanche'
- | 'ecclésiastique'
- | 'sentinelle'
+export type CharacterCategory = (typeof characterCategories)[number]
export function isCharacter(object: any): object is Character {
return 'birth' in object
diff --git a/src/models/Events.ts b/src/models/Events.ts
index c72ba9e..02e5cad 100644
--- a/src/models/Events.ts
+++ b/src/models/Events.ts
@@ -10,18 +10,21 @@ export interface CalendarEvent {
wiki?: string
}
-export type CalendarEventCategory =
- | 'naissance'
- | 'mort'
- | 'catastrophe'
- | 'législation'
- | 'catastrophe-naturelle'
- | 'inauguration'
- | 'religion'
- | 'invention'
- | 'science'
- | 'bénédiction' // Great event on a global scale
- | 'joueurs'
+export const calendarEventCategories = [
+ 'naissance',
+ 'mort',
+ 'catastrophe',
+ 'législation',
+ 'catastrophe naturelle',
+ 'inauguration',
+ 'religion',
+ 'invention',
+ 'science',
+ 'bénédiction',
+ 'joueurs'
+]
+
+export type CalendarEventCategory = (typeof calendarEventCategories)[number]
export function isCalendarEvent(object: any): object is CalendarEvent {
return 'date' in object
diff --git a/src/utils/Strings.ts b/src/utils/Strings.ts
new file mode 100644
index 0000000..d210e67
--- /dev/null
+++ b/src/utils/Strings.ts
@@ -0,0 +1,12 @@
+/**
+ * Capitalizes first letters of words in string.
+ * @param {string} str String to be modified
+ * @param {boolean=false} lower Whether all other letters should be lowercased
+ * @return {string}
+ * @usage
+ * capitalize('fix this string'); // -> 'Fix This String'
+ * capitalize('javaSCrIPT'); // -> 'JavaSCrIPT'
+ * capitalize('javaSCrIPT', true); // -> 'Javascript'
+ */
+export const capitalize = (str: string, lower: boolean = false) =>
+ (lower ? str.toLowerCase() : str).replace(/(?:^|\s|["'([{])+\S/g, (match) => match.toUpperCase())