(defcomp
  (&key d filename)
  (let-match
    {:kind kind :name name}
    d
    (div
      (~tw
        :tokens "flex items-center gap-2 py-1.5 px-2 rounded hover:bg-stone-50 cursor-pointer group")
      :id (str "fn-" name)
      :sx-get (str
        "/sx/(language.(spec.(explore."
        (replace filename ".sx" "")
        "."
        name
        ")))")
      :sx-target "#sx-content"
      :sx-select "#sx-content"
      :sx-swap "innerHTML"
      :sx-push-url "true"
      (span
        (~tw
          :tokens "font-mono text-sm font-medium text-stone-800 group-hover:text-violet-700")
        name)
      (span (~tw :tokens "text-xs text-stone-400") kind))))
