[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-3692":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":23,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":31,"readmeContent":32,"aiSummary":33,"trendingCount":16,"starSnapshotCount":16,"syncStatus":34,"lastSyncTime":35,"discoverSource":36},3692,"sweetalert","t4t5\u002Fsweetalert","t4t5","A beautiful replacement for JavaScript's \"alert\"","https:\u002F\u002Fsweetalert.js.org",null,"TypeScript",22290,2758,439,166,0,1,5,45,"MIT License",false,"master",true,[25,26,27,28,29,5,30],"alert","dialog","javascript","modal","popup","ui","2026-06-12 02:00:52","\u003Cp align=\"center\">\n  \u003Ca href=\"http:\u002F\u002Fsweetalert.js.org\">\n    \u003Cimg alt=\"SweetAlert\" src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Ft4t5\u002Fsweetalert\u002Fe3c2085473a0eb5a6b022e43eb22e746380bb955\u002Fassets\u002Flogotype.png\" width=\"300\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  A beautiful replacement for JavaScript's \"alert\"\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fbadge.fury.io\u002Fjs\u002Fsweetalert\">\u003Cimg src=\"https:\u002F\u002Fbadge.fury.io\u002Fjs\u002Fsweetalert.svg\" alt=\"npm version\" height=\"18\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Ftravis-ci.org\u002Ft4t5\u002Fsweetalert\">\u003Cimg src=\"https:\u002F\u002Ftravis-ci.org\u002Ft4t5\u002Fsweetalert.svg\" alt=\"Build status\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fsweetalert\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Fsweetalert.svg\" \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ft4t5\u002Fsweetalert\u002Fblob\u002Fmaster\u002FLICENSE\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Ft4t5\u002Fsweetalert.svg\" \u002F>\n  \u003C\u002Fa> \n  \u003Ca href=\"#backers\" alt=\"sponsors on Open Collective\">\u003Cimg src=\"https:\u002F\u002Fopencollective.com\u002FSweetAlert\u002Fbackers\u002Fbadge.svg\" \u002F>\u003C\u002Fa> \u003Ca href=\"#sponsors\" alt=\"Sponsors on Open Collective\">\u003Cimg src=\"https:\u002F\u002Fopencollective.com\u002FSweetAlert\u002Fsponsors\u002Fbadge.svg\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg alt=\"A success modal\" src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Ft4t5\u002Fsweetalert\u002Fe3c2085473a0eb5a6b022e43eb22e746380bb955\u002Fassets\u002Fswal.gif\">\n\u003C\u002Fp>\n\n\n## Installation\n\n```bash\n$ npm install --save sweetalert\n```\n\n## Usage\n\n```javascript\nimport swal from 'sweetalert';\n\nswal(\"Hello world!\");\n```\n\n## Upgrading from 1.X\n\nMany improvements and breaking changes have been introduced in the 2.0 release. Make sure you read the [upgrade guide](https:\u002F\u002Fsweetalert.js.org\u002Fguides\u002F#upgrading-from-1x) to avoid nasty surprises!\n\n## Guides\n\n- [Installation](https:\u002F\u002Fsweetalert.js.org\u002Fguides\u002F#installation)\n- [Getting started](https:\u002F\u002Fsweetalert.js.org\u002Fguides\u002F#getting-started)\n- [Advanced examples](https:\u002F\u002Fsweetalert.js.org\u002Fguides\u002F#advanced-examples)\n- [Using with libraries](https:\u002F\u002Fsweetalert.js.org\u002Fguides\u002F#using-with-libraries)\n- [Upgrading from 1.X](https:\u002F\u002Fsweetalert.js.org\u002Fguides\u002F#upgrading-from-1x)\n\n## Documentation\n\n- [Configuration](https:\u002F\u002Fsweetalert.js.org\u002Fdocs\u002F#configuration)\n- [Methods](https:\u002F\u002Fsweetalert.js.org\u002Fdocs\u002F#methods)\n- [Theming](https:\u002F\u002Fsweetalert.js.org\u002Fdocs\u002F#theming)\n\n## Examples\n\n### An error message:\n```javascript\nswal(\"Oops!\", \"Something went wrong!\", \"error\");\n```\n\n### A warning message, with a function attached to the confirm message:\n  - Using promises:\n  ```javascript\n  swal({\n    title: \"Are you sure?\",\n    text: \"Are you sure that you want to leave this page?\",\n    icon: \"warning\",\n    dangerMode: true,\n  })\n  .then(willDelete => {\n    if (willDelete) {\n      swal(\"Deleted!\", \"Your imaginary file has been deleted!\", \"success\");\n    }\n  });\n  ```\n  - Using async\u002Fawait:\n  ```javascript\n  const willDelete = await swal({\n    title: \"Are you sure?\",\n    text: \"Are you sure that you want to delete this file?\",\n    icon: \"warning\",\n    dangerMode: true,\n  });\n\n  if (willDelete) {\n    swal(\"Deleted!\", \"Your imaginary file has been deleted!\", \"success\");\n  }\n  ```\n  \n### A prompt modal, where the user's input is logged:\n  - Using promises:\n  ```javascript\n  swal(\"Type something:\", {\n    content: \"input\",\n  })\n  .then((value) => {\n    swal(`You typed: ${value}`);\n  });\n  ```\n  - Using async\u002Fawait:\n  ```javascript\n  const value = await swal(\"Type something:\", {\n    content: \"input\",\n  });\n\n  swal(`You typed: ${value}`);\n  ```\n\n### In combination with Fetch:\n  - Using promises:\n  ```javascript\n  swal({\n    text: \"Wanna log some information about Bulbasaur?\",\n    button: {\n      text: \"Search!\",\n      closeModal: false,\n    },\n  })\n  .then(willSearch => {\n    if (willSearch) {\n      return fetch(\"http:\u002F\u002Fpokeapi.co\u002Fapi\u002Fv2\u002Fpokemon\u002F1\");\n    }\n  })\n  .then(result => result.json())\n  .then(json => console.log(json))\n  .catch(err => {\n    swal(\"Oops!\", \"Seems like we couldn't fetch the info\", \"error\");\n  });\n  ```\n  - Using async\u002Fawait:\n  ```javascript\n  const willSearch = await swal({\n    text: \"Wanna log some information about Bulbasaur?\",\n    button: {\n      text: \"Search!\",\n      closeModal: false,\n    },\n  });\n  \n  if (willSearch) {\n    try {\n      const result = await fetch(\"http:\u002F\u002Fpokeapi.co\u002Fapi\u002Fv2\u002Fpokemon\u002F1\");\n      const json = await result.json();\n      console.log(json);\n    } catch (err) {\n      swal(\"Oops!\", \"Seems like we couldn't fetch the info\", \"error\");\n    }\n  }\n  ```\n\n## Using with React\n\nSweetAlert has tools for [integrating with your favourite rendering library.](https:\u002F\u002Fsweetalert.js.org\u002Fguides\u002F#using-with-libraries).\n\nIf you're using React, you can install [SweetAlert with React](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@sweetalert\u002Fwith-react) in addition to the main library, and easily add React components to your alerts like this:\n\n```javascript\nimport React from 'react'\nimport swal from '@sweetalert\u002Fwith-react'\n\nswal(\n  \u003Cdiv>\n    \u003Ch1>Hello world!\u003C\u002Fh1>\n    \u003Cp>\n      This is now rendered with JSX!\n    \u003C\u002Fp>\n  \u003C\u002Fdiv>\n)\n```\n\n[Read more about integrating with React](https:\u002F\u002Fsweetalert.js.org\u002Fguides\u002F#using-react)\n\n## Contributing\n\n### If you're changing the core library:\n1. Make changes in the `src` folder.\n2. Preview changes by running `npm run docs`\n3. Submit pull request\n\n### If you're changing the documentation:\n1. Make changes in the `docs-src` folder.\n2. Preview changes by running `npm run docs`\n3. Run `npm run builddocs` to compile the changes to the `docs` folder\n4. Submit pull request\n\n## Contributors\n\nThis project exists thanks to all the people who contribute. [[Contribute](https:\u002F\u002Fgithub.com\u002Ft4t5\u002Fsweetalert#contributing)].\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ft4t5\u002Fsweetalert\u002Fgraphs\u002Fcontributors\">\u003Cimg src=\"https:\u002F\u002Fopencollective.com\u002FSweetAlert\u002Fcontributors.svg?width=890&button=false\" \u002F>\u003C\u002Fa>\n\n\n## Backers\n\nThank you to all our backers! 🙏 [[Become a backer](https:\u002F\u002Fopencollective.com\u002FSweetAlert#backer)]\n\n\u003Ca href=\"https:\u002F\u002Fopencollective.com\u002FSweetAlert#backers\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fopencollective.com\u002FSweetAlert\u002Fbackers.svg?width=890\">\u003C\u002Fa>\n\n\n## Sponsors\n\nSupport this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https:\u002F\u002Fopencollective.com\u002FSweetAlert#sponsor)]\n\n\u003Ca href=\"https:\u002F\u002Fopencollective.com\u002FSweetAlert\u002Fsponsor\u002F0\u002Fwebsite\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fopencollective.com\u002FSweetAlert\u002Fsponsor\u002F0\u002Favatar.svg\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fopencollective.com\u002FSweetAlert\u002Fsponsor\u002F1\u002Fwebsite\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fopencollective.com\u002FSweetAlert\u002Fsponsor\u002F1\u002Favatar.svg\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fopencollective.com\u002FSweetAlert\u002Fsponsor\u002F2\u002Fwebsite\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fopencollective.com\u002FSweetAlert\u002Fsponsor\u002F2\u002Favatar.svg\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fopencollective.com\u002FSweetAlert\u002Fsponsor\u002F3\u002Fwebsite\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fopencollective.com\u002FSweetAlert\u002Fsponsor\u002F3\u002Favatar.svg\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fopencollective.com\u002FSweetAlert\u002Fsponsor\u002F4\u002Fwebsite\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fopencollective.com\u002FSweetAlert\u002Fsponsor\u002F4\u002Favatar.svg\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fopencollective.com\u002FSweetAlert\u002Fsponsor\u002F5\u002Fwebsite\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fopencollective.com\u002FSweetAlert\u002Fsponsor\u002F5\u002Favatar.svg\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fopencollective.com\u002FSweetAlert\u002Fsponsor\u002F6\u002Fwebsite\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fopencollective.com\u002FSweetAlert\u002Fsponsor\u002F6\u002Favatar.svg\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fopencollective.com\u002FSweetAlert\u002Fsponsor\u002F7\u002Fwebsite\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fopencollective.com\u002FSweetAlert\u002Fsponsor\u002F7\u002Favatar.svg\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fopencollective.com\u002FSweetAlert\u002Fsponsor\u002F8\u002Fwebsite\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fopencollective.com\u002FSweetAlert\u002Fsponsor\u002F8\u002Favatar.svg\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fopencollective.com\u002FSweetAlert\u002Fsponsor\u002F9\u002Fwebsite\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fopencollective.com\u002FSweetAlert\u002Fsponsor\u002F9\u002Favatar.svg\">\u003C\u002Fa>\n\n\n","SweetAlert 是一个美观的 JavaScript 弹窗替代方案。它提供了丰富的自定义选项，支持多种类型的弹出框如警告、错误提示和确认对话框等，并且可以方便地与 Promise 和 async\u002Fawait 结合使用以实现更流畅的用户体验。基于 TypeScript 开发，SweetAlert 具有良好的类型安全性和可维护性。适用于需要提升界面美观度及用户交互体验的各种 Web 应用场景中，特别是在需要友好且功能丰富的消息提示时。",2,"2026-06-06 02:56:20","top_language"]