-
+
-
-
- {{ props.title }}
-
+
+
+
+
+
+ {{ props.title }}
+
+
+
+
+
+
{{
+ props.tooltipMetadata?.studio }}
+
+
+
{{ props.tooltipMetadata?.type }}
+
+
{{ props.tooltipMetadata?.rating }} episodes
+
+
+
+ {{ tag }}
+
+
+
+
+
+
diff --git a/app/components/ui/tooltip/TooltipContent.vue b/app/components/ui/tooltip/TooltipContent.vue
index c5d2df9..995364b 100644
--- a/app/components/ui/tooltip/TooltipContent.vue
+++ b/app/components/ui/tooltip/TooltipContent.vue
@@ -6,11 +6,18 @@ import { TooltipArrow, TooltipContent, TooltipPortal, useForwardPropsEmits } fro
import { cn } from "@/lib/utils"
defineOptions({
- inheritAttrs: false,
+ inheritAttrs: false,
})
-const props = withDefaults(defineProps
(), {
- sideOffset: 4,
+interface Props {
+ includeArrow?: boolean
+ class?: HTMLAttributes["class"]
+ arrowClass?: HTMLAttributes["class"]
+}
+
+const props = withDefaults(defineProps(), {
+ sideOffset: 4,
+ includeArrow: true
})
const emits = defineEmits()
@@ -20,15 +27,14 @@ const forwarded = useForwardPropsEmits(delegatedProps, emits)
-
-
-
+
+
+
-
-
-
+
+
+
diff --git a/app/layouts/default.vue b/app/layouts/default.vue
index c78dd4e..0e67e43 100644
--- a/app/layouts/default.vue
+++ b/app/layouts/default.vue
@@ -1,16 +1,18 @@
-
-
-
-
+
+
+
+
+
+
@@ -19,7 +21,10 @@ import 'vue-sonner/style.css'
import Sonner from '@/components/ui/sonner/Sonner.vue';
import AppHeader from '@/components/ui/internal/AppHeader.vue';
-import Headroom from "headroom.js"; import ThemeProvider from '~/components/ui/provider/ThemeProvider.vue';
+import Headroom from "headroom.js";
+import ThemeProvider from '~/components/ui/provider/ThemeProvider.vue';
+import TooltipProvider from '~/components/ui/tooltip/TooltipProvider.vue';
+
const header = ref(null);
diff --git a/app/pages/index.vue b/app/pages/index.vue
index 84507fe..2f06d74 100644
--- a/app/pages/index.vue
+++ b/app/pages/index.vue
@@ -4,6 +4,7 @@ import HeroSection from '@/components/ui/internal/HeroSection.vue';
import MediaImageCard from '~/components/ui/internal/MediaImageCard.vue';
import SkeletonMediaImageCard from '~/components/ui/internal/SkeletonMediaImageCard.vue';
+const tooltipCollisionBoundary = ref(undefined);
@@ -30,28 +31,100 @@ import SkeletonMediaImageCard from '~/components/ui/internal/SkeletonMediaImageC
View all
-
-
+
+ title="Jujutsu Kaisen: Shimetsu Kaiyuu - Zenpen" type="anime" :tooltipEnabled="true"
+ :tooltipMetadata="{
+ studio: 'MAPPA',
+ type: 'TV Show',
+ episodes: 12,
+ rating: 78,
+ tags: ['action', 'adventure']
+ }" :tooltipCollisionBoundary="tooltipCollisionBoundary" />
-
-
+ type="anime" :tooltipEnabled="true" :tooltipMetadata="{
+ studio: 'MAPPA',
+ type: 'TV Show',
+ episodes: 12,
+ rating: 78,
+ tags: ['action', 'adventure']
+ }" :tooltipCollisionBoundary="tooltipCollisionBoundary" />
+
+
-
+ type="anime" :tooltipEnabled="true" :tooltipMetadata="{
+ studio: 'MAPPA',
+ type: 'TV Show',
+ episodes: 12,
+ rating: 78,
+ tags: ['action', 'adventure']
+ }" :tooltipCollisionBoundary="tooltipCollisionBoundary" />
+
+ type="anime" :tooltipEnabled="true" :tooltipMetadata="{
+ studio: 'MAPPA',
+ type: 'TV Show',
+ episodes: 12,
+ rating: 78,
+ tags: ['action', 'adventure']
+ }" :tooltipCollisionBoundary="tooltipCollisionBoundary" />
+ type="anime" :tooltipEnabled="true" :tooltipMetadata="{
+ studio: 'MAPPA',
+ type: 'TV Show',
+ episodes: 12,
+ rating: 78,
+ tags: ['action', 'adventure']
+ }" :tooltipCollisionBoundary="tooltipCollisionBoundary" />
+ title="Okiraku Ryoushu no Tanoshii Ryouchi Bouei teisotsoeitj wgjiwag wgj wigwji" type="anime"
+ :tooltipEnabled="true" :tooltipMetadata="{
+ studio: 'MAPPA',
+ type: 'TV Show',
+ episodes: 12,
+ rating: 78,
+ tags: ['action', 'adventure']
+ }" :tooltipCollisionBoundary="tooltipCollisionBoundary" />
+ title="[Oshi no Ko] 3rd Season iaowjegiogjoiawgio waiogjawiog wag" type="anime"
+ :tooltipEnabled="true" :tooltipMetadata="{
+ studio: 'MAPPA',
+ type: 'TV Show',
+ episodes: 12,
+ rating: 78,
+ tags: ['action', 'adventure']
+ }" :tooltipCollisionBoundary="tooltipCollisionBoundary" />