Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,571 changes: 571 additions & 1,000 deletions package-lock.json

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,16 +25,16 @@
"dependencies": {
"@inertiajs/vue3": "^2.0.0-beta.3",
"@vitejs/plugin-vue": "^5.2.1",
"@vueuse/core": "^12.0.0",
"@vueuse/core": "^12.8.2",
"autoprefixer": "^10.4.20",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"concurrently": "^9.0.1",
"laravel-vite-plugin": "^1.0",
"lucide": "^0.468.0",
"lucide-vue-next": "^0.468.0",
"radix-vue": "^1.9.11",
"tailwind-merge": "^2.5.5",
"reka-ui": "^2.1.1",
"tailwind-merge": "^2.6.0",
"tailwindcss": "^3.4.1",
"tailwindcss-animate": "^1.0.7",
"typescript": "^5.2.2",
Expand Down
33 changes: 15 additions & 18 deletions resources/js/components/ui/avatar/Avatar.vue
Original file line number Diff line number Diff line change
@@ -1,24 +1,21 @@
<script setup lang="ts">
import { cn } from '@/lib/utils';
import { AvatarRoot } from 'radix-vue';
import type { HTMLAttributes } from 'vue';
import { avatarVariant, type AvatarVariants } from '.';
import type { HTMLAttributes } from 'vue'
import { cn } from '@/lib/utils'
import { AvatarRoot } from 'reka-ui'
import { avatarVariant, type AvatarVariants } from '.'

const props = withDefaults(
defineProps<{
class?: HTMLAttributes['class'];
size?: AvatarVariants['size'];
shape?: AvatarVariants['shape'];
}>(),
{
size: 'sm',
shape: 'circle',
},
);
const props = withDefaults(defineProps<{
class?: HTMLAttributes['class']
size?: AvatarVariants['size']
shape?: AvatarVariants['shape']
}>(), {
size: 'sm',
shape: 'circle',
})
</script>

<template>
<AvatarRoot :class="cn(avatarVariant({ size, shape }), props.class)">
<slot />
</AvatarRoot>
<AvatarRoot :class="cn(avatarVariant({ size, shape }), props.class)">
<slot />
</AvatarRoot>
</template>
10 changes: 5 additions & 5 deletions resources/js/components/ui/avatar/AvatarFallback.vue
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<script setup lang="ts">
import { AvatarFallback, type AvatarFallbackProps } from 'radix-vue';
import { AvatarFallback, type AvatarFallbackProps } from 'reka-ui'

const props = defineProps<AvatarFallbackProps>();
const props = defineProps<AvatarFallbackProps>()
</script>

<template>
<AvatarFallback v-bind="props">
<slot />
</AvatarFallback>
<AvatarFallback v-bind="props">
<slot />
</AvatarFallback>
</template>
9 changes: 6 additions & 3 deletions resources/js/components/ui/avatar/AvatarImage.vue
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
<script setup lang="ts">
import { AvatarImage, type AvatarImageProps } from 'radix-vue';
import type { AvatarImageProps } from 'reka-ui'
import { AvatarImage } from 'reka-ui'

const props = defineProps<AvatarImageProps>();
const props = defineProps<AvatarImageProps>()
</script>

<template>
<AvatarImage v-bind="props" class="h-full w-full object-cover" />
<AvatarImage v-bind="props" class="h-full w-full object-cover">
<slot />
</AvatarImage>
</template>
38 changes: 19 additions & 19 deletions resources/js/components/ui/avatar/index.ts
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
import { cva, type VariantProps } from 'class-variance-authority';
import { cva, type VariantProps } from 'class-variance-authority'

export { default as Avatar } from './Avatar.vue';
export { default as AvatarFallback } from './AvatarFallback.vue';
export { default as AvatarImage } from './AvatarImage.vue';
export { default as Avatar } from './Avatar.vue'
export { default as AvatarFallback } from './AvatarFallback.vue'
export { default as AvatarImage } from './AvatarImage.vue'

export const avatarVariant = cva(
'inline-flex items-center justify-center font-normal text-foreground select-none shrink-0 bg-secondary overflow-hidden',
{
variants: {
size: {
sm: 'h-10 w-10 text-xs',
base: 'h-16 w-16 text-2xl',
lg: 'h-32 w-32 text-5xl',
},
shape: {
circle: 'rounded-full',
square: 'rounded-md',
},
},
'inline-flex items-center justify-center font-normal text-foreground select-none shrink-0 bg-secondary overflow-hidden',
{
variants: {
size: {
sm: 'h-10 w-10 text-xs',
base: 'h-16 w-16 text-2xl',
lg: 'h-32 w-32 text-5xl',
},
shape: {
circle: 'rounded-full',
square: 'rounded-md',
},
},
);
},
)

export type AvatarVariants = VariantProps<typeof avatarVariant>;
export type AvatarVariants = VariantProps<typeof avatarVariant>
12 changes: 6 additions & 6 deletions resources/js/components/ui/breadcrumb/Breadcrumb.vue
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
<script lang="ts" setup>
import type { HTMLAttributes } from 'vue';
import type { HTMLAttributes } from 'vue'

const props = defineProps<{
class?: HTMLAttributes['class'];
}>();
class?: HTMLAttributes['class']
}>()
</script>

<template>
<nav aria-label="breadcrumb" :class="props.class">
<slot />
</nav>
<nav aria-label="breadcrumb" :class="props.class">
<slot />
</nav>
</template>
26 changes: 15 additions & 11 deletions resources/js/components/ui/breadcrumb/BreadcrumbEllipsis.vue
Original file line number Diff line number Diff line change
@@ -1,18 +1,22 @@
<script lang="ts" setup>
import { cn } from '@/lib/utils';
import { MoreHorizontal } from 'lucide-vue-next';
import type { HTMLAttributes } from 'vue';
import type { HTMLAttributes } from 'vue'
import { cn } from '@/lib/utils'
import { MoreHorizontal } from 'lucide-vue-next'

const props = defineProps<{
class?: HTMLAttributes['class'];
}>();
class?: HTMLAttributes['class']
}>()
</script>

<template>
<span role="presentation" aria-hidden="true" :class="cn('flex h-9 w-9 items-center justify-center', props.class)">
<slot>
<MoreHorizontal class="h-4 w-4" />
</slot>
<span class="sr-only">More</span>
</span>
<span
role="presentation"
aria-hidden="true"
:class="cn('flex h-9 w-9 items-center justify-center', props.class)"
>
<slot>
<MoreHorizontal class="h-4 w-4" />
</slot>
<span class="sr-only">More</span>
</span>
</template>
16 changes: 9 additions & 7 deletions resources/js/components/ui/breadcrumb/BreadcrumbItem.vue
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
<script lang="ts" setup>
import { cn } from '@/lib/utils';
import type { HTMLAttributes } from 'vue';
import type { HTMLAttributes } from 'vue'
import { cn } from '@/lib/utils'

const props = defineProps<{
class?: HTMLAttributes['class'];
}>();
class?: HTMLAttributes['class']
}>()
</script>

<template>
<li :class="cn('inline-flex items-center gap-1.5', props.class)">
<slot />
</li>
<li
:class="cn('inline-flex items-center gap-1.5', props.class)"
>
<slot />
</li>
</template>
20 changes: 12 additions & 8 deletions resources/js/components/ui/breadcrumb/BreadcrumbLink.vue
Original file line number Diff line number Diff line change
@@ -1,15 +1,19 @@
<script lang="ts" setup>
import { cn } from '@/lib/utils';
import { Primitive, type PrimitiveProps } from 'radix-vue';
import type { HTMLAttributes } from 'vue';
import type { HTMLAttributes } from 'vue'
import { cn } from '@/lib/utils'
import { Primitive, type PrimitiveProps } from 'reka-ui'

const props = withDefaults(defineProps<PrimitiveProps & { class?: HTMLAttributes['class'] }>(), {
as: 'a',
});
as: 'a',
})
</script>

<template>
<Primitive :as="as" :as-child="asChild" :class="cn('transition-colors hover:text-foreground', props.class)">
<slot />
</Primitive>
<Primitive
:as="as"
:as-child="asChild"
:class="cn('transition-colors hover:text-foreground', props.class)"
>
<slot />
</Primitive>
</template>
16 changes: 9 additions & 7 deletions resources/js/components/ui/breadcrumb/BreadcrumbList.vue
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
<script lang="ts" setup>
import { cn } from '@/lib/utils';
import type { HTMLAttributes } from 'vue';
import type { HTMLAttributes } from 'vue'
import { cn } from '@/lib/utils'

const props = defineProps<{
class?: HTMLAttributes['class'];
}>();
class?: HTMLAttributes['class']
}>()
</script>

<template>
<ol :class="cn('flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5', props.class)">
<slot />
</ol>
<ol
:class="cn('flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5', props.class)"
>
<slot />
</ol>
</template>
19 changes: 12 additions & 7 deletions resources/js/components/ui/breadcrumb/BreadcrumbPage.vue
Original file line number Diff line number Diff line change
@@ -1,14 +1,19 @@
<script lang="ts" setup>
import { cn } from '@/lib/utils';
import type { HTMLAttributes } from 'vue';
import type { HTMLAttributes } from 'vue'
import { cn } from '@/lib/utils'

const props = defineProps<{
class?: HTMLAttributes['class'];
}>();
class?: HTMLAttributes['class']
}>()
</script>

<template>
<span role="link" aria-disabled="true" aria-current="page" :class="cn('font-normal text-foreground', props.class)">
<slot />
</span>
<span
role="link"
aria-disabled="true"
aria-current="page"
:class="cn('font-normal text-foreground', props.class)"
>
<slot />
</span>
</template>
24 changes: 14 additions & 10 deletions resources/js/components/ui/breadcrumb/BreadcrumbSeparator.vue
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
<script lang="ts" setup>
import { cn } from '@/lib/utils';
import { ChevronRight } from 'lucide-vue-next';
import type { HTMLAttributes } from 'vue';
import type { HTMLAttributes } from 'vue'
import { cn } from '@/lib/utils'
import { ChevronRight } from 'lucide-vue-next'

const props = defineProps<{
class?: HTMLAttributes['class'];
}>();
class?: HTMLAttributes['class']
}>()
</script>

<template>
<li role="presentation" aria-hidden="true" :class="cn('[&>svg]:h-3.5 [&>svg]:w-3.5', props.class)">
<slot>
<ChevronRight />
</slot>
</li>
<li
role="presentation"
aria-hidden="true"
:class="cn('[&>svg]:w-3.5 [&>svg]:h-3.5', props.class)"
>
<slot>
<ChevronRight />
</slot>
</li>
</template>
14 changes: 7 additions & 7 deletions resources/js/components/ui/breadcrumb/index.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
export { default as Breadcrumb } from './Breadcrumb.vue';
export { default as BreadcrumbEllipsis } from './BreadcrumbEllipsis.vue';
export { default as BreadcrumbItem } from './BreadcrumbItem.vue';
export { default as BreadcrumbLink } from './BreadcrumbLink.vue';
export { default as BreadcrumbList } from './BreadcrumbList.vue';
export { default as BreadcrumbPage } from './BreadcrumbPage.vue';
export { default as BreadcrumbSeparator } from './BreadcrumbSeparator.vue';
export { default as Breadcrumb } from './Breadcrumb.vue'
export { default as BreadcrumbEllipsis } from './BreadcrumbEllipsis.vue'
export { default as BreadcrumbItem } from './BreadcrumbItem.vue'
export { default as BreadcrumbLink } from './BreadcrumbLink.vue'
export { default as BreadcrumbList } from './BreadcrumbList.vue'
export { default as BreadcrumbPage } from './BreadcrumbPage.vue'
export { default as BreadcrumbSeparator } from './BreadcrumbSeparator.vue'
28 changes: 16 additions & 12 deletions resources/js/components/ui/button/Button.vue
Original file line number Diff line number Diff line change
@@ -1,22 +1,26 @@
<script setup lang="ts">
import { cn } from '@/lib/utils';
import { Primitive, type PrimitiveProps } from 'radix-vue';
import type { HTMLAttributes } from 'vue';
import { buttonVariants, type ButtonVariants } from '.';
import type { HTMLAttributes } from 'vue'
import { cn } from '@/lib/utils'
import { Primitive, type PrimitiveProps } from 'reka-ui'
import { type ButtonVariants, buttonVariants } from '.'

interface Props extends PrimitiveProps {
variant?: ButtonVariants['variant'];
size?: ButtonVariants['size'];
class?: HTMLAttributes['class'];
variant?: ButtonVariants['variant']
size?: ButtonVariants['size']
class?: HTMLAttributes['class']
}

const props = withDefaults(defineProps<Props>(), {
as: 'button',
});
as: 'button',
})
</script>

<template>
<Primitive :as="as" :as-child="asChild" :class="cn(buttonVariants({ variant, size }), props.class)">
<slot />
</Primitive>
<Primitive
:as="as"
:as-child="asChild"
:class="cn(buttonVariants({ variant, size }), props.class)"
>
<slot />
</Primitive>
</template>
Loading