(defcomp
  (&key
    (title :as string?)
    (intro :as string?)
    (col1 :as string?)
    (col2 :as string?)
    rows)
  (div
    (~tw :tokens "space-y-3")
    (when title (h3 (~tw :tokens "text-xl font-semibold text-stone-700") title))
    (when intro (p (~tw :tokens "text-stone-600 mb-6") intro))
    (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-100")
            (th
              (~tw :tokens "px-3 py-2 font-medium text-stone-600")
              (or col1 "Name"))
            (th
              (~tw :tokens "px-3 py-2 font-medium text-stone-600")
              (or col2 "Description"))))
        (tbody rows)))))
