{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "filter-bar",
  "type": "registry:ui",
  "title": "Filter bar",
  "description": "A wrapping Tailwind toolbar for tables and lists: a search input first, your own filter controls as children, and a Clear button when onClear is set.",
  "dependencies": [],
  "registryDependencies": [
    "https://ui.minidev.pro/r/button.json",
    "https://ui.minidev.pro/r/search-input.json",
    "utils"
  ],
  "files": [
    {
      "path": "registry/ui/filter-bar.tsx",
      "type": "registry:ui",
      "target": "components/ui/filter-bar.tsx",
      "content": "\"use client\"\nimport * as React from \"react\"\nimport { cn } from \"@/lib/utils\"\nimport { SearchInput } from \"@/components/ui/search-input\"\nimport { Button } from \"@/components/ui/button\"\n\nfunction FilterBar({\n  children,\n  onClear,\n  className,\n}: {\n  children?: React.ReactNode\n  onClear?: () => void\n  className?: string\n}) {\n  return (\n    <div\n      data-slot=\"filter-bar\"\n      className={cn(\n        \"flex flex-wrap items-center gap-2 rounded-xl border border-border bg-surface p-2\",\n        className\n      )}\n    >\n      <SearchInput aria-label=\"Filter\" placeholder=\"Filter…\" containerClassName=\"w-48\" />\n      {children}\n      {onClear ? (\n        <Button type=\"button\" variant=\"ghost\" size=\"sm\" className=\"ml-auto\" onClick={onClear}>\n          Clear\n        </Button>\n      ) : null}\n    </div>\n  )\n}\nexport { FilterBar }\n"
    }
  ]
}
