{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "p-toast-13",
  "description": "Anchored deduplicated error toast",
  "dependencies": [
    "lucide-react"
  ],
  "registryDependencies": [
    "@coss/button",
    "@coss/toast",
    "@coss/tooltip"
  ],
  "files": [
    {
      "path": "registry/default/particles/p-toast-13.tsx",
      "content": "\"use client\";\n\nimport { SaveIcon } from \"lucide-react\";\nimport { useRef } from \"react\";\nimport { Button } from \"@/registry/default/ui/button\";\nimport { anchoredToastManager } from \"@/registry/default/ui/toast\";\nimport {\n  Tooltip,\n  TooltipPopup,\n  TooltipTrigger,\n} from \"@/registry/default/ui/tooltip\";\n\nconst ANCHORED_SAVE_ERROR_TOAST_ID = \"coss-demo-anchored-save-error-toast\";\n\nexport default function Particle() {\n  const saveButtonRef = useRef<HTMLButtonElement>(null);\n  const toastTimeout = 2000;\n\n  function handleSave() {\n    if (!saveButtonRef.current) return;\n    anchoredToastManager.add({\n      data: {\n        tooltipStyle: true,\n      },\n      id: ANCHORED_SAVE_ERROR_TOAST_ID,\n      positionerProps: {\n        anchor: saveButtonRef.current,\n        sideOffset: 6,\n      },\n      timeout: toastTimeout,\n      title: \"Couldn't save draft\",\n      type: \"error\",\n    });\n  }\n\n  return (\n    <Tooltip>\n      <TooltipTrigger\n        delay={0}\n        render={\n          <Button\n            aria-label=\"Save\"\n            onClick={handleSave}\n            ref={saveButtonRef}\n            size=\"icon\"\n            variant=\"outline\"\n          />\n        }\n      >\n        <SaveIcon aria-hidden=\"true\" />\n      </TooltipTrigger>\n      <TooltipPopup>\n        <p>Save</p>\n      </TooltipPopup>\n    </Tooltip>\n  );\n}\n",
      "type": "registry:block"
    }
  ],
  "categories": [
    "toast",
    "button",
    "error"
  ],
  "type": "registry:block"
}