Renamed project to tools
Also added tooltip fixes
This commit is contained in:
64
README.md
64
README.md
@@ -1,61 +1,5 @@
|
||||
# vue-project
|
||||
# Leim Tools
|
||||
A congregate of tools used to visualize TTRPG elements and help content creators (mostly me for now tbh) build their worlds.
|
||||
|
||||
This template should help get you started developing with Vue 3 in Vite.
|
||||
|
||||
## Recommended IDE Setup
|
||||
|
||||
[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur).
|
||||
|
||||
## Type Support for `.vue` Imports in TS
|
||||
|
||||
TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) to make the TypeScript language service aware of `.vue` types.
|
||||
|
||||
## Customize configuration
|
||||
|
||||
See [Vite Configuration Reference](https://vitejs.dev/config/).
|
||||
|
||||
## Project Setup
|
||||
|
||||
```sh
|
||||
npm install
|
||||
```
|
||||
|
||||
### Compile and Hot-Reload for Development
|
||||
|
||||
```sh
|
||||
npm run dev
|
||||
```
|
||||
|
||||
### Type-Check, Compile and Minify for Production
|
||||
|
||||
```sh
|
||||
npm run build
|
||||
```
|
||||
|
||||
### Run Headed Component Tests with [Cypress Component Testing](https://on.cypress.io/component)
|
||||
|
||||
```sh
|
||||
npm run test:unit:dev # or `npm run test:unit` for headless testing
|
||||
```
|
||||
|
||||
### Run End-to-End Tests with [Cypress](https://www.cypress.io/)
|
||||
|
||||
```sh
|
||||
npm run test:e2e:dev
|
||||
```
|
||||
|
||||
This runs the end-to-end tests against the Vite development server.
|
||||
It is much faster than the production build.
|
||||
|
||||
But it's still recommended to test the production build with `test:e2e` before deploying (e.g. in CI environments):
|
||||
|
||||
```sh
|
||||
npm run build
|
||||
npm run test:e2e
|
||||
```
|
||||
|
||||
### Lint with [ESLint](https://eslint.org/)
|
||||
|
||||
```sh
|
||||
npm run lint
|
||||
```
|
||||
## Timeline
|
||||
Visual helper for time-related data, such as events, eras and characters. Helpful to know how old a character is while something is happening in the world, or how far two events are separated in the timeline.
|
||||
|
||||
@@ -9,8 +9,6 @@
|
||||
<meta name="description" content="Outil de visualisation chronologique des évènements de Léim" />
|
||||
<meta name="generator" content="VueJS" />
|
||||
|
||||
<title>Chronologie — Leim Wiki</title>
|
||||
|
||||
<meta name="robots" content="noindex, nofollow">
|
||||
|
||||
<link rel="apple-touch-icon" sizes="76x76" href="/apple-touch-icon.png">
|
||||
@@ -21,9 +19,9 @@
|
||||
<meta name="msapplication-TileColor" content="#00aba9">
|
||||
<meta name="theme-color" content="#a9d1eb">
|
||||
|
||||
<meta property="og:title" content="Chronologie — Leim Wiki"/>
|
||||
<meta property="og:type" content="timeline" />
|
||||
<meta property="og:url" content="timeline.alexcreates.fr" />
|
||||
<meta property="og:title" content="Outils — Leim Wiki"/>
|
||||
<meta property="og:type" content="tabletop-tools" />
|
||||
<meta property="og:url" content="ttt.alexcreates.fr" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "vue-project",
|
||||
"version": "0.0.0",
|
||||
"name": "leim-tool",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
|
||||
@@ -147,7 +147,7 @@ function toFutureFar(): void {
|
||||
<div class="flex items-center gap-2">
|
||||
<TooltipProvider :delayDuration="250">
|
||||
<Tooltip>
|
||||
<TooltipTrigger>
|
||||
<TooltipTrigger as-child>
|
||||
<Button variant="outline" size="icon" @click="toPastFar()">
|
||||
<PhCaretDoubleLeft size="18" />
|
||||
</Button>
|
||||
@@ -160,7 +160,7 @@ function toFutureFar(): void {
|
||||
|
||||
<TooltipProvider :delayDuration="250">
|
||||
<Tooltip>
|
||||
<TooltipTrigger>
|
||||
<TooltipTrigger as-child>
|
||||
<Button variant="outline" size="icon" @click="toPastNear()">
|
||||
<PhCaretLeft size="18" />
|
||||
</Button>
|
||||
@@ -173,7 +173,7 @@ function toFutureFar(): void {
|
||||
|
||||
<TooltipProvider :delayDuration="250">
|
||||
<Tooltip>
|
||||
<TooltipTrigger>
|
||||
<TooltipTrigger as-child>
|
||||
<Button variant="outline" size="icon" @click="toFutureNear()">
|
||||
<PhCaretRight size="18" />
|
||||
</Button>
|
||||
@@ -186,7 +186,7 @@ function toFutureFar(): void {
|
||||
|
||||
<TooltipProvider :delayDuration="250">
|
||||
<Tooltip>
|
||||
<TooltipTrigger>
|
||||
<TooltipTrigger as-child>
|
||||
<Button variant="outline" size="icon" @click="toFutureFar()">
|
||||
<PhCaretDoubleRight size="18" />
|
||||
</Button>
|
||||
|
||||
@@ -68,7 +68,7 @@ function handleGotoPreviousEventPage(position: 'next' | 'prev' = 'next') {
|
||||
<div class="border-slate-700 border-x-[1px] border-t-[1px] rounded-t-sm">
|
||||
<TooltipProvider :delayDuration="250">
|
||||
<Tooltip>
|
||||
<TooltipTrigger>
|
||||
<TooltipTrigger as-child>
|
||||
<Button
|
||||
variant="ghost"
|
||||
size="icon"
|
||||
@@ -87,7 +87,7 @@ function handleGotoPreviousEventPage(position: 'next' | 'prev' = 'next') {
|
||||
<div class="border-slate-700 border-x-[1px] border-t-[1px] rounded-t-sm">
|
||||
<TooltipProvider :delayDuration="250">
|
||||
<Tooltip>
|
||||
<TooltipTrigger>
|
||||
<TooltipTrigger as-child>
|
||||
<Button
|
||||
variant="ghost"
|
||||
size="icon"
|
||||
|
||||
@@ -20,7 +20,7 @@ const isDefaultDate = computed(() => {
|
||||
<template>
|
||||
<TooltipProvider :delayDuration="250">
|
||||
<Tooltip>
|
||||
<TooltipTrigger>
|
||||
<TooltipTrigger as-child>
|
||||
<Button @click="jumpToDefaultDate" size="sm" :disabled="isDefaultDate">
|
||||
Aujourd'hui
|
||||
</Button>
|
||||
|
||||
@@ -20,7 +20,7 @@ const viewTypeTitle = computed(() => getViewTypeTitle(currentConfig.viewType))
|
||||
|
||||
<template>
|
||||
<DropdownMenu>
|
||||
<DropdownMenuTrigger>
|
||||
<DropdownMenuTrigger as-child>
|
||||
<Button size="sm" variant="secondary">
|
||||
<PhCalendarBlank size="18" weight="fill" />
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ const { revealAdvancedSearch } = useCalendar()
|
||||
<li>
|
||||
<TooltipProvider :delayDuration="100">
|
||||
<Tooltip>
|
||||
<TooltipTrigger>
|
||||
<TooltipTrigger as-child>
|
||||
<Button variant="ghost" size="icon" class="rounded-full" as-child>
|
||||
<RouterLink to="/">
|
||||
<PhHouse size="24" weight="fill" />
|
||||
@@ -35,7 +35,7 @@ const { revealAdvancedSearch } = useCalendar()
|
||||
<li>
|
||||
<TooltipProvider :delayDuration="100">
|
||||
<Tooltip>
|
||||
<TooltipTrigger>
|
||||
<TooltipTrigger as-child>
|
||||
<Button
|
||||
variant="ghost"
|
||||
size="icon"
|
||||
|
||||
@@ -361,7 +361,7 @@ function handleCategorySelect(e: any) {
|
||||
|
||||
<TooltipProvider :delayDuration="250">
|
||||
<Tooltip>
|
||||
<TooltipTrigger>
|
||||
<TooltipTrigger as-child>
|
||||
<Button
|
||||
:variant="selectedOrder === 'desc' ? 'secondary' : 'outline'"
|
||||
size="icon"
|
||||
@@ -378,7 +378,7 @@ function handleCategorySelect(e: any) {
|
||||
|
||||
<TooltipProvider :delayDuration="250">
|
||||
<Tooltip>
|
||||
<TooltipTrigger>
|
||||
<TooltipTrigger as-child>
|
||||
<Button
|
||||
:variant="selectedOrder === 'asc' ? 'secondary' : 'outline'"
|
||||
size="icon"
|
||||
|
||||
@@ -39,7 +39,7 @@ const { getFormattedDateTitle } = useCalendar()
|
||||
<li v-if="character.birth">
|
||||
<TooltipProvider :delayDuration="100">
|
||||
<Tooltip>
|
||||
<TooltipTrigger>
|
||||
<TooltipTrigger as-child>
|
||||
<Button
|
||||
@click="$emit('query:date-jump', character.birth!)"
|
||||
variant="ghost"
|
||||
@@ -49,7 +49,7 @@ const { getFormattedDateTitle } = useCalendar()
|
||||
{{ getFormattedDateTitle(character.birth, true) }}
|
||||
</Button>
|
||||
</TooltipTrigger>
|
||||
<TooltipContent>
|
||||
<TooltipContent :side="'bottom'" :align="'end'" :align-offset="20">
|
||||
<p>Date de naissance</p>
|
||||
</TooltipContent>
|
||||
</Tooltip>
|
||||
@@ -59,7 +59,7 @@ const { getFormattedDateTitle } = useCalendar()
|
||||
<li v-if="character.death">
|
||||
<TooltipProvider :delayDuration="100">
|
||||
<Tooltip>
|
||||
<TooltipTrigger>
|
||||
<TooltipTrigger as-child>
|
||||
<Button
|
||||
@click="$emit('query:date-jump', character.death!)"
|
||||
variant="ghost"
|
||||
@@ -69,7 +69,7 @@ const { getFormattedDateTitle } = useCalendar()
|
||||
{{ getFormattedDateTitle(character.death, true) }}
|
||||
</Button>
|
||||
</TooltipTrigger>
|
||||
<TooltipContent>
|
||||
<TooltipContent :side="'bottom'" :align="'start'" :align-offset="20">
|
||||
<p>Date de décès</p>
|
||||
</TooltipContent>
|
||||
</Tooltip>
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
import { storeToRefs } from 'pinia'
|
||||
import { onMounted } from 'vue'
|
||||
import { useCalendar } from '@/stores/CalendarStore'
|
||||
import { useTitle } from '@vueuse/core'
|
||||
import { titleTemplate } from './meta'
|
||||
|
||||
import Calendar from '@/components/calendar/Calendar.vue'
|
||||
import Sidebar from '@/components/calendar/Sidebar.vue'
|
||||
@@ -11,6 +13,8 @@ const { validateUrlParams } = useCalendar()
|
||||
const { isAdvancedSearchOpen } = storeToRefs(useCalendar())
|
||||
|
||||
onMounted(() => validateUrlParams())
|
||||
|
||||
useTitle('Calendrier', titleTemplate)
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
<script setup lang="ts">
|
||||
import { useTitle } from '@vueuse/core'
|
||||
import { titleTemplate } from './meta'
|
||||
|
||||
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card'
|
||||
import { Badge } from '@/components/ui/badge'
|
||||
|
||||
useTitle('Outils', titleTemplate)
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
||||
1
src/views/meta.ts
Normal file
1
src/views/meta.ts
Normal file
@@ -0,0 +1 @@
|
||||
export const titleTemplate = { titleTemplate: '%s — TTTools' }
|
||||
Reference in New Issue
Block a user