* fix(style): formatting inconsistencies across codebase - Remove trailing semicolons from TypeScript imports - Fix Vue template indentation and line breaks - Standardize component attribute formatting - Remove unnecessary empty lines - Reorder import statements for consistency * chore: update import path and add editorconfig Update SidebarNavLink import path to match new component structure and add standard editorconfig for consistent code formatting
29 lines
1.6 KiB
Vue
29 lines
1.6 KiB
Vue
<script setup lang="ts">
|
|
import type { SplitterResizeHandleEmits, SplitterResizeHandleProps } from 'radix-vue'
|
|
import type { HTMLAttributes } from 'vue'
|
|
import { GripVertical } from 'lucide-vue-next'
|
|
import { SplitterResizeHandle, useForwardPropsEmits } from 'radix-vue'
|
|
import { computed } from 'vue'
|
|
import { cn } from '~/lib/utils'
|
|
|
|
const props = defineProps<SplitterResizeHandleProps & { class?: HTMLAttributes['class'], withHandle?: boolean }>()
|
|
const emits = defineEmits<SplitterResizeHandleEmits>()
|
|
|
|
const delegatedProps = computed(() => {
|
|
const { class: _, ...delegated } = props
|
|
return delegated
|
|
})
|
|
|
|
const forwarded = useForwardPropsEmits(delegatedProps, emits)
|
|
</script>
|
|
|
|
<template>
|
|
<SplitterResizeHandle v-bind="forwarded" :class="cn('relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 [&[data-orientation=vertical]]:h-px [&[data-orientation=vertical]]:w-full [&[data-orientation=vertical]]:after:left-0 [&[data-orientation=vertical]]:after:h-1 [&[data-orientation=vertical]]:after:w-full [&[data-orientation=vertical]]:after:-translate-y-1/2 [&[data-orientation=vertical]]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90', props.class)">
|
|
<template v-if="props.withHandle">
|
|
<div class="z-10 h-4 w-3 flex items-center justify-center border rounded-sm bg-border">
|
|
<GripVertical class="h-2.5 w-2.5" />
|
|
</div>
|
|
</template>
|
|
</SplitterResizeHandle>
|
|
</template>
|