Migration to nuxt 4
Used codemods CLI and reworked most alias'd path that stopped working
This commit is contained in:
25
app/components/ui/pagination/PaginationEllipsis.vue
Normal file
25
app/components/ui/pagination/PaginationEllipsis.vue
Normal file
@@ -0,0 +1,25 @@
|
||||
<script setup lang="ts">
|
||||
import { type HTMLAttributes, computed } from "vue"
|
||||
import { PaginationEllipsis, type PaginationEllipsisProps } from "radix-vue"
|
||||
import { cn } from "@/lib/utils"
|
||||
import { PhArrowsHorizontal } from "@phosphor-icons/vue";
|
||||
|
||||
const props = defineProps<PaginationEllipsisProps & { class?: HTMLAttributes["class"] }>()
|
||||
|
||||
const delegatedProps = computed(() => {
|
||||
const { class: _, ...delegated } = props
|
||||
|
||||
return delegated
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<PaginationEllipsis
|
||||
v-bind="delegatedProps"
|
||||
:class="cn('size-8 md:size-10 flex items-center justify-center', props.class)"
|
||||
>
|
||||
<slot>
|
||||
<PhArrowsHorizontal />
|
||||
</slot>
|
||||
</PaginationEllipsis>
|
||||
</template>
|
||||
30
app/components/ui/pagination/PaginationFirst.vue
Normal file
30
app/components/ui/pagination/PaginationFirst.vue
Normal file
@@ -0,0 +1,30 @@
|
||||
<script setup lang="ts">
|
||||
import { type HTMLAttributes, computed } from "vue"
|
||||
import { PaginationFirst, type PaginationFirstProps } from "radix-vue"
|
||||
import { Button } from "~/components/ui/button"
|
||||
import { cn } from "@/lib/utils"
|
||||
import { PhCaretDoubleLeft } from "@phosphor-icons/vue"
|
||||
|
||||
const props = withDefaults(
|
||||
defineProps<PaginationFirstProps & { class?: HTMLAttributes["class"] }>(),
|
||||
{
|
||||
asChild: true
|
||||
}
|
||||
)
|
||||
|
||||
const delegatedProps = computed(() => {
|
||||
const { class: _, ...delegated } = props
|
||||
|
||||
return delegated
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<PaginationFirst v-bind="delegatedProps">
|
||||
<Button :class="cn('size-8 md:size-10 p-0', props.class)" variant="outline">
|
||||
<slot>
|
||||
<PhCaretDoubleLeft class="size-4" />
|
||||
</slot>
|
||||
</Button>
|
||||
</PaginationFirst>
|
||||
</template>
|
||||
30
app/components/ui/pagination/PaginationLast.vue
Normal file
30
app/components/ui/pagination/PaginationLast.vue
Normal file
@@ -0,0 +1,30 @@
|
||||
<script setup lang="ts">
|
||||
import { type HTMLAttributes, computed } from "vue"
|
||||
import { PaginationLast, type PaginationLastProps } from "radix-vue"
|
||||
import { Button } from "~/components/ui/button"
|
||||
import { cn } from "@/lib/utils"
|
||||
import { PhCaretDoubleRight } from "@phosphor-icons/vue"
|
||||
|
||||
const props = withDefaults(
|
||||
defineProps<PaginationLastProps & { class?: HTMLAttributes["class"] }>(),
|
||||
{
|
||||
asChild: true
|
||||
}
|
||||
)
|
||||
|
||||
const delegatedProps = computed(() => {
|
||||
const { class: _, ...delegated } = props
|
||||
|
||||
return delegated
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<PaginationLast v-bind="delegatedProps">
|
||||
<Button :class="cn('size-8 md:size-10 p-0', props.class)" variant="outline">
|
||||
<slot>
|
||||
<PhCaretDoubleRight class="size-4" />
|
||||
</slot>
|
||||
</Button>
|
||||
</PaginationLast>
|
||||
</template>
|
||||
30
app/components/ui/pagination/PaginationNext.vue
Normal file
30
app/components/ui/pagination/PaginationNext.vue
Normal file
@@ -0,0 +1,30 @@
|
||||
<script setup lang="ts">
|
||||
import { type HTMLAttributes, computed } from "vue"
|
||||
import { PaginationNext, type PaginationNextProps } from "radix-vue"
|
||||
import { Button } from "~/components/ui/button"
|
||||
import { cn } from "@/lib/utils"
|
||||
import { PhCaretRight } from "@phosphor-icons/vue"
|
||||
|
||||
const props = withDefaults(
|
||||
defineProps<PaginationNextProps & { class?: HTMLAttributes["class"] }>(),
|
||||
{
|
||||
asChild: true
|
||||
}
|
||||
)
|
||||
|
||||
const delegatedProps = computed(() => {
|
||||
const { class: _, ...delegated } = props
|
||||
|
||||
return delegated
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<PaginationNext v-bind="delegatedProps">
|
||||
<Button :class="cn('size-8 md:size-10 p-0', props.class)" variant="outline">
|
||||
<slot>
|
||||
<PhCaretRight class="size-4" />
|
||||
</slot>
|
||||
</Button>
|
||||
</PaginationNext>
|
||||
</template>
|
||||
30
app/components/ui/pagination/PaginationPrev.vue
Normal file
30
app/components/ui/pagination/PaginationPrev.vue
Normal file
@@ -0,0 +1,30 @@
|
||||
<script setup lang="ts">
|
||||
import { type HTMLAttributes, computed } from "vue"
|
||||
import { PaginationPrev, type PaginationPrevProps } from "radix-vue"
|
||||
import { Button } from "~/components/ui/button"
|
||||
import { cn } from "@/lib/utils"
|
||||
import { PhCaretLeft } from "@phosphor-icons/vue"
|
||||
|
||||
const props = withDefaults(
|
||||
defineProps<PaginationPrevProps & { class?: HTMLAttributes["class"] }>(),
|
||||
{
|
||||
asChild: true
|
||||
}
|
||||
)
|
||||
|
||||
const delegatedProps = computed(() => {
|
||||
const { class: _, ...delegated } = props
|
||||
|
||||
return delegated
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<PaginationPrev v-bind="delegatedProps">
|
||||
<Button :class="cn('size-8 md:size-10 p-0', props.class)" variant="outline">
|
||||
<slot>
|
||||
<PhCaretLeft class="size-4" />
|
||||
</slot>
|
||||
</Button>
|
||||
</PaginationPrev>
|
||||
</template>
|
||||
6
app/components/ui/pagination/index.ts
Normal file
6
app/components/ui/pagination/index.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
export { PaginationRoot as Pagination, PaginationList, PaginationListItem } from "radix-vue"
|
||||
export { default as PaginationEllipsis } from "@/components/ui/pagination/PaginationEllipsis.vue"
|
||||
export { default as PaginationFirst } from "@/components/ui/pagination/PaginationFirst.vue"
|
||||
export { default as PaginationLast } from "@/components/ui/pagination/PaginationLast.vue"
|
||||
export { default as PaginationNext } from "@/components/ui/pagination/PaginationNext.vue"
|
||||
export { default as PaginationPrev } from "@/components/ui/pagination/PaginationPrev.vue"
|
||||
Reference in New Issue
Block a user