(defcomp (&key items) (div (~tw :tokens "mt-8") (h2 (~tw :tokens "text-lg font-semibold text-stone-700 border-b border-stone-200 pb-1 mb-3") "Platform Interface") (p (~tw :tokens "text-sm text-stone-500 mb-3") "Functions the host platform must provide.") (div (~tw :tokens "overflow-x-auto rounded border border-stone-200") (table (~tw :tokens "w-full text-left text-sm") (thead (tr (~tw :tokens "border-b border-stone-200 bg-stone-50") (th (~tw :tokens "px-3 py-2 font-medium text-stone-600") "Name") (th (~tw :tokens "px-3 py-2 font-medium text-stone-600") "Params") (th (~tw :tokens "px-3 py-2 font-medium text-stone-600") "Returns") (th (~tw :tokens "px-3 py-2 font-medium text-stone-600") "Description"))) (tbody (map (fn (item) (let-match {:doc doc :params params :returns returns :name name} item (tr (~tw :tokens "border-b border-stone-100") (td (~tw :tokens "px-3 py-2 font-mono text-sm text-violet-700") name) (td (~tw :tokens "px-3 py-2 font-mono text-xs text-stone-500") params) (td (~tw :tokens "px-3 py-2 font-mono text-xs text-stone-500") returns) (td (~tw :tokens "px-3 py-2 text-stone-600") doc)))) items))))))