Skip to content
Merged
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 change: 1 addition & 0 deletions apps/test/app/examples/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@ export { default as OpenInChat } from './open-in-chat.vue'
export { default as PromptInput } from './prompt-input.vue'
export { default as Response } from './response.vue'
export { default as Shimmer } from './shimmer.vue'
export { default as Task } from './task.vue'
61 changes: 61 additions & 0 deletions apps/test/app/examples/task.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
<script setup lang="ts">
import { Task, TaskContent, TaskItem, TaskItemFile, TaskTrigger } from '@repo/elements/task'
import { nanoid } from 'nanoid'
import { ref } from 'vue'

interface TaskEntry {
key: string
type?: 'text' | 'file'
text?: string
filename?: string
}

const tasks = ref<TaskEntry[]>([
{ key: nanoid(), text: 'Searching "app/page.tsx, components structure"' },
{ key: nanoid(), type: 'file', text: 'Read', filename: 'index.vue' },
{ key: nanoid(), text: 'Scanning 52 files' },
{ key: nanoid(), text: 'Scanning 2 files' },
{ key: nanoid(), type: 'file', text: 'Reading files', filename: 'layout.vue' },
])
</script>

<template>
<div style="height: 200px">
<Task class="w-full">
<TaskTrigger title="Found project files" />
<TaskContent>
<TaskItem
v-for="task in tasks"
:key="task.key"
>
<!-- If task is text -->
<template v-if="!task.type">
{{ task.text }}
</template>

<!-- If task includes a file -->
<template v-else>
<span class="inline-flex items-center gap-1">
{{ task.text }}
<TaskItemFile>
<svg
viewBox="0 0 32 32"
fill="none"
xmlns="http://www.w3.org/2000/svg"
class="size-4"
>
<path d="M2 4L16 28L30 4H24.5L16 18.5L7.5 4H2Z" fill="#41B883" />
<path
d="M7.5 4L16 18.5L24.5 4H19.5L16.0653 10.0126L12.5 4H7.5Z"
fill="#35495E"
/>
</svg>
<span>{{ task.filename }}</span>
</TaskItemFile>
</span>
</template>
</TaskItem>
</TaskContent>
</Task>
</div>
</template>
2 changes: 2 additions & 0 deletions apps/test/app/pages/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import PromptInput from '~/examples/prompt-input.vue'
import Response from '~/examples/response.vue'
import Shimmer from '~/examples/shimmer.vue'
import Suggestion from '~/examples/suggestion.vue'
import Task from '~/examples/task.vue'

const components = [
{ name: 'Message', Component: Message },
Expand All @@ -27,6 +28,7 @@ const components = [
{ name: 'CodeBlock', Component: CodeBlock },
{ name: 'Image', Component: Image },
{ name: 'Shimmer', Component: Shimmer },
{ name: 'Task', Component: Task },
{ name: 'Suggestion', Component: Suggestion },
{ name: 'OpenInChat', Component: OpenInChat },
{ name: 'Loader', Component: Loader },
Expand Down
Loading