{"adoption": {"forks": 309, "observed_at": "2026-08-28T04:07:55.697485+00:00", "stars": 3301}, "canonical_url": "https://ross.abutalabs.com/products/xlactioncontroller", "card": {"archived": false, "artifact_type": "library", "description": "Fully customizable and extensible action sheet controller written in Swift", "domain": ["mobile-development", "frontend"], "enriched": true, "function": ["ui-components", "mobile-framework"], "health_score": 20, "homepage": null, "language": "Swift", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["xmartlabs/XLActionController"], "name": "xmartlabs/XLActionController", "platform": [], "pushed_at": "2023-03-17T21:29:18+00:00", "repo": "xmartlabs/XLActionController", "stars": 3301, "tags": ["action-sheet", "uialertcontroller", "cocoapods", "carthage", "custom-ui", "ios", "swift"], "topics": ["ios", "swift", "cocoapods", "carthage", "ios-ui", "uialertcontroller", "swift-library"], "urls": [], "use_cases": ["show a custom action sheet in an iOS app", "replace UIAlertController with a fully styled action sheet", "build a bottom sheet menu like Spotify or Tweetbot", "create custom action sheet animations and layouts in Swift", "present grouped actions with sections and a cancel button"], "what_it_is": "XLActionController is a Swift library for building fully customizable and extensible action sheet controllers on iOS. It ships with prebuilt styles (Spotify, Twitter, Tweetbot, etc.) and lets developers create their own action sheet layouts and animations.", "when_to_avoid": ["you only need a standard iOS alert or action sheet with no customization", "you are not developing for iOS or not using Swift", "you need a maintained solution with frequent updates"], "when_to_choose": ["you need pixel-level control over action sheet appearance and behavior on iOS", "you want ready-made action sheet styles matching popular apps", "you are building an iOS app in Swift with CocoaPods or Carthage"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/xlactioncontroller", "repo": "xmartlabs/XLActionController", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:55.697485+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:22:40.420565+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d2f0fd321b05f7f8e36309f6a7e9f66d22577eb7b111eca324f86f56c070ccdf", "fetched_at": "2026-08-28T04:07:55.697485+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xmartlabs/XLActionController"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:55.697485+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:22:40.420565+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d2f0fd321b05f7f8e36309f6a7e9f66d22577eb7b111eca324f86f56c070ccdf", "fetched_at": "2026-08-28T04:07:55.697485+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xmartlabs/XLActionController"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:22:40.420565+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d2f0fd321b05f7f8e36309f6a7e9f66d22577eb7b111eca324f86f56c070ccdf", "fetched_at": "2026-08-28T04:07:55.697485+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xmartlabs/XLActionController"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:07:55.697485+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:55.697485+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:55.697485+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:22:40.420565+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d2f0fd321b05f7f8e36309f6a7e9f66d22577eb7b111eca324f86f56c070ccdf", "fetched_at": "2026-08-28T04:07:55.697485+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xmartlabs/XLActionController"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:55.697485+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:55.697485+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:22:40.420565+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d2f0fd321b05f7f8e36309f6a7e9f66d22577eb7b111eca324f86f56c070ccdf", "fetched_at": "2026-08-28T04:07:55.697485+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xmartlabs/XLActionController"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:55.697485+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:55.697485+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:55.697485+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:22:40.420565+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d2f0fd321b05f7f8e36309f6a7e9f66d22577eb7b111eca324f86f56c070ccdf", "fetched_at": "2026-08-28T04:07:55.697485+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xmartlabs/XLActionController"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:55.697485+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:55.697485+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:22:40.420565+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d2f0fd321b05f7f8e36309f6a7e9f66d22577eb7b111eca324f86f56c070ccdf", "fetched_at": "2026-08-28T04:07:55.697485+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xmartlabs/XLActionController"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:22:40.420565+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d2f0fd321b05f7f8e36309f6a7e9f66d22577eb7b111eca324f86f56c070ccdf", "fetched_at": "2026-08-28T04:07:55.697485+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xmartlabs/XLActionController"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:22:40.420565+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d2f0fd321b05f7f8e36309f6a7e9f66d22577eb7b111eca324f86f56c070ccdf", "fetched_at": "2026-08-28T04:07:55.697485+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xmartlabs/XLActionController"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:22:40.420565+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d2f0fd321b05f7f8e36309f6a7e9f66d22577eb7b111eca324f86f56c070ccdf", "fetched_at": "2026-08-28T04:07:55.697485+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xmartlabs/XLActionController"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3919, "days_push": 1265, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}