{"_id":"@alsocoder/apna-toast","_rev":"2-8b67d4b30e8465326b34f2f4a84033eb","name":"@alsocoder/apna-toast","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@alsocoder/apna-toast","version":"0.1.0","keywords":["react","react-component","toast","notification","sonner","snackbar","ui-component","css-variables","typescript","apna-toast","alsocoder"],"author":{"url":"https://alsocoder.com","name":"Also Coder"},"license":"MIT","_id":"@alsocoder/apna-toast@0.1.0","maintainers":[{"name":"alsocoder-org","email":"alsocoder@gmail.com"}],"homepage":"https://github.com/alsocoders/apna-toast#readme","bugs":{"url":"https://github.com/alsocoders/apna-toast/issues"},"dist":{"shasum":"6dd3f589c406c9bb85b8ccbcaa2646ef8ce9a42e","tarball":"https://registry.npmjs.org/@alsocoder/apna-toast/-/apna-toast-0.1.0.tgz","fileCount":9,"integrity":"sha512-jM1LwlQ7hy0du6QFdnAkEbN2j6wYCI4eDw+Az75e6DWNd/CPcHTIQimwRLbOmchFb9YkE+bg0NSVnbmF/2WK/Q==","signatures":[{"sig":"MEUCIByqiw9BEnDXVNvZ92hhUWT7xRyDsxryXKGpGYzIvNqUAiEA2qQGdCL2MIhcwotWC4kKrclX4Pemvuomf5H5Ce64YAw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69037},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./styles.css":"./dist/styles.css"},"scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"alsocoder-org","email":"alsocoder@gmail.com"},"repository":{"url":"git+https://github.com/alsocoders/apna-toast.git","type":"git"},"_npmVersion":"12.0.1","description":"React toast notifications with Sonner engine, vanilla CSS, and shadcn token fallbacks.","directories":{},"sideEffects":["*.css"],"_nodeVersion":"24.16.0","browserslist":["Chrome >= 90","Firefox >= 90","Safari >= 14","Edge >= 90","iOS >= 14","Samsung >= 15","not dead"],"dependencies":{"clsx":"^2.1.1","sonner":"^2.0.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","react":"^19.1.0","react-dom":"^19.1.0","typescript":"^5.9.2","@types/react":"^19.1.8","@types/react-dom":"^19.1.6"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/apna-toast_0.1.0_1785755114423_0.27233435602351097","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@alsocoder/apna-toast","version":"0.1.1","description":"React toast notifications with Sonner engine, vanilla CSS, and shadcn token fallbacks.","license":"MIT","author":{"name":"Also Coder","url":"https://alsocoder.com"},"type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./styles.css":"./dist/styles.css"},"sideEffects":["*.css"],"scripts":{"build":"tsup","dev":"tsup --watch","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"keywords":["react","react-component","toast","notification","sonner","snackbar","ui-component","css-variables","typescript","apna-toast","alsocoder"],"browserslist":["Chrome >= 90","Firefox >= 90","Safari >= 14","Edge >= 90","iOS >= 14","Samsung >= 15","not dead"],"repository":{"type":"git","url":"git+https://github.com/alsocoders/apna-toast.git"},"bugs":{"url":"https://github.com/alsocoders/apna-toast/issues"},"homepage":"https://github.com/alsocoders/apna-toast#readme","peerDependencies":{"react":">=18","react-dom":">=18"},"dependencies":{"clsx":"^2.1.1","sonner":"^2.0.7"},"devDependencies":{"@types/react":"^19.1.8","@types/react-dom":"^19.1.6","react":"^19.1.0","react-dom":"^19.1.0","tsup":"^8.5.0","typescript":"^5.9.2"},"gitHead":"874a1e83770e106b571815ce59d6b99f9e702478","_id":"@alsocoder/apna-toast@0.1.1","_nodeVersion":"24.16.0","_npmVersion":"12.0.1","dist":{"integrity":"sha512-Qz/QjLJIabZ9z9wSpqFc476z0w+zArWS4lonjxkmUxKRK3nilFVfiHj6MqEgQuo33Xyk0fpKByyt/T5K4l2rog==","shasum":"cff71bc4749e43c42c3ef60187433347e707cfb9","tarball":"https://registry.npmjs.org/@alsocoder/apna-toast/-/apna-toast-0.1.1.tgz","fileCount":10,"unpackedSize":76255,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIG2/xczu+zOlFBNMl0wMY0ejr7nnd4W92DD58UqFLwUUAiBzjwrj3uOpspxBDoAC5s+BXeflq6K6G45axpCnRKAcQQ=="}]},"_npmUser":{"name":"alsocoder-org","email":"alsocoder@gmail.com"},"directories":{},"maintainers":[{"name":"alsocoder-org","email":"alsocoder@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/apna-toast_0.1.1_1786261604560_0.5641221829161098"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-03T11:05:14.301Z","modified":"2026-08-09T07:46:44.843Z","0.1.0":"2026-08-03T11:05:14.560Z","0.1.1":"2026-08-09T07:46:44.698Z"},"bugs":{"url":"https://github.com/alsocoders/apna-toast/issues"},"author":{"name":"Also Coder","url":"https://alsocoder.com"},"license":"MIT","homepage":"https://github.com/alsocoders/apna-toast#readme","keywords":["react","react-component","toast","notification","sonner","snackbar","ui-component","css-variables","typescript","apna-toast","alsocoder"],"repository":{"type":"git","url":"git+https://github.com/alsocoders/apna-toast.git"},"description":"React toast notifications with Sonner engine, vanilla CSS, and shadcn token fallbacks.","maintainers":[{"name":"alsocoder-org","email":"alsocoder@gmail.com"}],"readme":"# @alsocoder/apna-toast\r\n\r\nReact toast notifications powered by Sonner, with Apna vanilla CSS and shadcn/Tailwind token fallbacks. Works with or without Tailwind.\r\n\r\n## Install\r\n\r\n```bash\r\nnpm install @alsocoder/apna-toast\r\n```\r\n\r\nPeer dependencies: `react` and `react-dom` (>= 18).\r\n\r\n## Quick start\r\n\r\n```tsx\r\nimport \"@alsocoder/apna-toast/styles.css\"\r\nimport { ApnaToaster, apnaToast } from \"@alsocoder/apna-toast\"\r\n\r\nexport function App() {\r\n  return (\r\n    <>\r\n      <ApnaToaster position=\"top-right\" closeButton />\r\n      <button onClick={() => apnaToast.success(\"Saved!\")}>Save</button>\r\n    </>\r\n  )\r\n}\r\n```\r\n\r\n## `ApnaToaster`\r\n\r\nMount once in your root layout. Forwards all [Sonner Toaster](https://sonner.emilkowal.ski/) props.\r\n\r\n```tsx\r\n<ApnaToaster\r\n  position=\"top-right\"\r\n  expand\r\n  closeButton\r\n  visibleToasts={5}\r\n  duration={4000}\r\n/>\r\n```\r\n\r\n### Customization\r\n\r\n**1. CSS variables** — override `--apna-toast-*` tokens globally or on a wrapper.\r\n\r\n**2. `classNames`** — slot-wise class overrides:\r\n\r\n```tsx\r\n<ApnaToaster\r\n  classNames={{\r\n    toast: \"rounded-xl\",\r\n    success: \"border-l-4\",\r\n  }}\r\n/>\r\n```\r\n\r\n**3. `icons`** — replace default SVG icons:\r\n\r\n```tsx\r\n<ApnaToaster icons={{ success: <MyIcon /> }} />\r\n```\r\n\r\n**4. Dark mode** — set `data-apna-toast-theme=\"dark\"` on a parent, or use `.apna-toast-dark`.\r\n\r\n## `apnaToast` API\r\n\r\n```tsx\r\napnaToast(\"Hello\")\r\napnaToast.success(\"Saved successfully\")\r\napnaToast.error(\"Failed\", { description: \"Try again later\" })\r\napnaToast.warning(\"Low storage\")\r\napnaToast.info(\"New update available\")\r\napnaToast.loading(\"Uploading...\")\r\n\r\napnaToast.promise(saveData(), {\r\n  loading: \"Saving...\",\r\n  success: \"Saved!\",\r\n  error: \"Failed to save\",\r\n})\r\n\r\napnaToast.custom((id) => (\r\n  <div className=\"apna-toast\">\r\n  </div>\r\n))\r\n\r\napnaToast.dismiss()\r\napnaToast.dismiss(toastId)\r\n```\r\n\r\n### Action and cancel buttons\r\n\r\n```tsx\r\napnaToast(\"Event created\", {\r\n  description: \"Monday at 6:00 PM\",\r\n  action: {\r\n    label: \"Undo\",\r\n    onClick: () => console.log(\"Undo\"),\r\n  },\r\n  cancel: {\r\n    label: \"Dismiss\",\r\n    onClick: () => console.log(\"Cancelled\"),\r\n  },\r\n})\r\n```\r\n\r\n## CSS variables\r\n\r\n| Variable | Fallback |\r\n|----------|----------|\r\n| `--apna-toast-bg` | `--popover` |\r\n| `--apna-toast-text` | `--popover-foreground` |\r\n| `--apna-toast-border` | `--border` |\r\n| `--apna-toast-description` | `--muted-foreground` |\r\n| `--apna-toast-success` | `--chart-2` |\r\n| `--apna-toast-error` | `--destructive` |\r\n| `--apna-toast-warning` | `#d97706` |\r\n| `--apna-toast-info` | `--primary` |\r\n| `--apna-toast-radius` | `0.5rem` |\r\n| `--apna-toast-shadow` | subtle box shadow |\r\n| `--apna-toast-z-index` | `300` |\r\n\r\n## Exports\r\n\r\n- `ApnaToaster`, `ApnaToasterProps`\r\n- `apnaToast`\r\n- `defaultClassNames`, `mergeClassNames`, `ApnaToastClassNames`\r\n- `defaultIcons`, `ApnaToastIcons`\r\n- `ApnaToastOptions`, `ExternalToast`, `ToastT`\r\n\r\n## Playground\r\n\r\n```bash\r\nnpm install\r\nnpm run build\r\ncd playground\r\nnpm install\r\nnpm run dev\r\n```\r\n\r\n## License\r\n\r\nMIT\r\n","readmeFilename":"README.md"}