collapsible

Basic collapsible

Basic collapsible

Загрузка превью…

src/collapsible/c-collapsible-1.vue

<!--
  Расхождение с апстримом: `IconPlaceholder` заменена инлайновым `<svg>`
  (lucide-react v0.545.0 "chevrons-up-down") — см. docs/PORTING.md §5.
-->
<script setup lang="ts">
import { Badge } from "@/components/reui/badge"
import { Button } from "@/components/ui/button"
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@/components/ui/collapsible"
</script>

<template>
  <div class="h-48 w-full max-w-xs">
    <Collapsible class="flex w-full flex-col gap-2">
      <div class="flex items-center justify-between gap-4 px-2">
        <h4 class="text-sm font-semibold">Order #4189</h4>
        <CollapsibleTrigger as-child>
          <Button variant="ghost" size="icon" class="size-8">
            <svg
              xmlns="http://www.w3.org/2000/svg"
              width="24"
              height="24"
              viewBox="0 0 24 24"
              fill="none"
              stroke="currentColor"
              stroke-width="2"
              stroke-linecap="round"
              stroke-linejoin="round"
              aria-hidden="true"
              class="size-4"
            >
              <path d="m7 15 5 5 5-5" />
              <path d="m7 9 5-5 5 5" />
            </svg>
            <span class="sr-only">Toggle details</span>
          </Button>
        </CollapsibleTrigger>
      </div>

      <div class="bg-muted/30 rounded-lg flex items-center justify-between border px-3 py-2 text-sm">
        <span class="text-muted-foreground">Status</span>
        <Badge variant="success-light">Shipped</Badge>
      </div>

      <CollapsibleContent class="flex flex-col gap-2">
        <div class="rounded-lg border px-3 py-2 text-sm">
          <p class="font-medium">Shipping address</p>
          <p class="text-muted-foreground">100 Market St, San Francisco</p>
        </div>
        <div class="rounded-lg border px-3 py-2 text-sm">
          <p class="font-medium">Items</p>
          <p class="text-muted-foreground">2x Studio Headphones</p>
        </div>
      </CollapsibleContent>
    </Collapsible>
  </div>
</template>

Установка

npx shadcn-vue@latest add https://revueui.rootapi.dev/r/c-collapsible-1.json

Зависимости реестра

Источник: порт из ReUI (Keenthemes, MIT)