// Copie presse-papier robuste : l'API `navigator.clipboard` n'existe qu'en
// contexte sécurisé (HTTPS ou localhost) ; en HTTP sur IP LAN elle est absente,
// d'où un repli via un <textarea> temporaire + `document.execCommand('copy')`.
export async function copyToClipboard(text: string): Promise<boolean> {
  if (import.meta.server) return false

  if (navigator.clipboard && window.isSecureContext) {
    try {
      await navigator.clipboard.writeText(text)
      return true
    } catch {
      // contexte sécurisé mais copie refusée → on tente le repli
    }
  }

  try {
    const ta = document.createElement('textarea')
    ta.value = text
    ta.setAttribute('readonly', '')
    ta.style.position = 'fixed'
    ta.style.top = '-9999px'
    document.body.appendChild(ta)
    ta.select()
    const ok = document.execCommand('copy')
    document.body.removeChild(ta)
    return ok
  } catch {
    return false
  }
}
