AppRightSidebar.vue 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <script setup lang="ts">
  2. import { ref } from "vue"
  3. const open = defineModel<boolean>("open", { required: true })
  4. const tabs = ref([
  5. { label: "References", icon: "i-lucide-link", value: "refs" },
  6. { label: "Search", icon: "i-lucide-search", value: "search" },
  7. ])
  8. const activeTab = ref("refs")
  9. </script>
  10. <template>
  11. <USidebar
  12. v-model:open="open"
  13. collapsible="offcanvas"
  14. side="right"
  15. :ui="{ width: 'w-80' }"
  16. rail
  17. >
  18. <template #header>
  19. <UTabs
  20. v-model="activeTab"
  21. :items="tabs"
  22. size="sm"
  23. color="neutral"
  24. variant="link"
  25. class="w-full"
  26. />
  27. </template>
  28. <div v-if="activeTab === 'refs'" class="p-3 text-sm text-muted">
  29. <p>References will appear here once you start linking pages.</p>
  30. </div>
  31. <div v-if="activeTab === 'search'" class="p-3">
  32. <UInput
  33. placeholder="Search pages..."
  34. size="sm"
  35. color="neutral"
  36. variant="outline"
  37. />
  38. <p class="mt-3 text-sm text-muted">
  39. Search results appear here.
  40. </p>
  41. </div>
  42. </USidebar>
  43. </template>