{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "p-toggle-8",
  "description": "Bookmark toggle with tooltip and success toast",
  "dependencies": [
    "lucide-react"
  ],
  "registryDependencies": [
    "@coss/toggle",
    "@coss/tooltip",
    "@coss/toast"
  ],
  "files": [
    {
      "path": "registry/default/particles/p-toggle-8.tsx",
      "content": "\"use client\";\n\nimport { BookmarkIcon } from \"lucide-react\";\nimport { useRef, useState } from \"react\";\nimport { anchoredToastManager } from \"@/registry/default/ui/toast\";\nimport { Toggle } from \"@/registry/default/ui/toggle\";\nimport {\n  Tooltip,\n  TooltipPopup,\n  TooltipTrigger,\n} from \"@/registry/default/ui/tooltip\";\n\nexport default function Particle() {\n  const [bookmarked, setBookmarked] = useState(false);\n  const toggleRef = useRef<HTMLDivElement>(null);\n  const toastIdRef = useRef<string | null>(null);\n  const toastTimeout = 2000;\n\n  function handleToggleChange(pressed: boolean) {\n    setBookmarked(pressed);\n\n    if (toastIdRef.current) {\n      anchoredToastManager.close(toastIdRef.current);\n      toastIdRef.current = null;\n    }\n\n    if (pressed && toggleRef.current) {\n      toastIdRef.current = anchoredToastManager.add({\n        data: {\n          tooltipStyle: true,\n        },\n        positionerProps: {\n          anchor: toggleRef.current,\n        },\n        timeout: toastTimeout,\n        title: \"Bookmarked!\",\n        type: \"success\",\n      });\n    }\n  }\n\n  return (\n    <Tooltip>\n      <TooltipTrigger\n        render={\n          <div ref={toggleRef}>\n            <Toggle\n              aria-label={bookmarked ? \"Remove bookmark\" : \"Bookmark this\"}\n              onPressedChange={handleToggleChange}\n              pressed={bookmarked}\n            >\n              <BookmarkIcon aria-hidden=\"true\" />\n            </Toggle>\n          </div>\n        }\n      />\n      <TooltipPopup>\n        <p>{bookmarked ? \"Remove bookmark\" : \"Bookmark this\"}</p>\n      </TooltipPopup>\n    </Tooltip>\n  );\n}\n",
      "type": "registry:block"
    }
  ],
  "categories": [
    "toggle",
    "tooltip",
    "toast"
  ],
  "type": "registry:block"
}