{"id":44947646,"url":"https://github.com/mshibanami/confirmation","last_synced_at":"2026-02-18T10:01:00.112Z","repository":{"id":92536965,"uuid":"532108661","full_name":"mshibanami/Confirmation","owner":"mshibanami","description":"Await-able native alert/sheet wrapper for iOS and macOS.","archived":false,"fork":false,"pushed_at":"2025-04-07T07:32:40.000Z","size":25,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-21T14:16:07.660Z","etag":null,"topics":["appkit","async-await","ios","macos","swift","uikit"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mshibanami.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-09-02T23:46:45.000Z","updated_at":"2025-04-07T07:32:38.000Z","dependencies_parsed_at":"2024-08-27T09:04:06.128Z","dependency_job_id":null,"html_url":"https://github.com/mshibanami/Confirmation","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/mshibanami/Confirmation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mshibanami%2FConfirmation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mshibanami%2FConfirmation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mshibanami%2FConfirmation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mshibanami%2FConfirmation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mshibanami","download_url":"https://codeload.github.com/mshibanami/Confirmation/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mshibanami%2FConfirmation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29575343,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T08:38:15.585Z","status":"ssl_error","status_checked_at":"2026-02-18T08:38:14.917Z","response_time":162,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["appkit","async-await","ios","macos","swift","uikit"],"created_at":"2026-02-18T10:00:32.544Z","updated_at":"2026-02-18T10:01:00.097Z","avatar_url":"https://github.com/mshibanami.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Confirmation\n\nThis is an alert/sheet library for iOS and macOS, which internally use the native APIs as follows:\n\n- iOS: `UIAlertController` of UIKit\n- macOS: `NSAlert` of AppKit\n\nThis wrapper supports `async`/`await` so you can write a sequential flow easier.\n\n## Sample Code\n\n```swift\nlet selectedAction = await Confirmation.show(\n    title: \"Title\",\n    description: \"Description\",\n    actions: [\n        .default(title: \"Default\"),\n        .default(title: \"Default (Preferred)\", isPreferred: true),\n        .destructive(title: \"Destructive\"),\n        .cancel()\n    ],\n    style: .alert()) // .alert() can also take UIViewController or NSWindow\n\nswitch selectedAction {\ncase .cancel:\n    print(\"Canceled\")\ncase .destructive(title: let title, _):\n    print(\"\\\"\\(title)\\\" has been selected.\")\ncase .default(title: let title, _):\n    print(\"\\\"\\(title)\\\" has been selected.\")\ncase .none:\n    break\n}\n```\n\nOpen `Example/` in Xcode for more details.\n\n## Demo\n\n### iOS\n\nhttps://user-images.githubusercontent.com/1333214/188247963-c440cde4-77e4-4281-8162-c5c29adcb696.mov\n\n### macOS\n\nhttps://user-images.githubusercontent.com/1333214/188248181-6e7594ed-3d1d-4a8b-9d9e-29b3a47e9af1.mov\n\n## Apps that use this package\n\n- [Redirect Web for Safari](https://apps.apple.com/app/id1571283503)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmshibanami%2Fconfirmation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmshibanami%2Fconfirmation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmshibanami%2Fconfirmation/lists"}