---
name: new_spinner_with_timeout
kind: function
lang: go
domain: tui
version: "1.0.0"
purity: pure
signature: "func NewSpinnerWithTimeout(message string, timeout time.Duration) SpinnerWithTimeoutModel"
description: "Construye un modelo de spinner con limite de tiempo. Si la operacion excede el timeout, el spinner se detiene automaticamente."
tags: [tui, spinner, timeout, constructor]
uses_functions: []
uses_types: []
returns: [spinner_with_timeout_model_go_tui]
returns_optional: false
error_type: ""
imports: [time]
params:
  - name: message
    desc: "mensaje del spinner"
  - name: timeout
    desc: "duración máxima antes de auto-parada"
output: "SpinnerWithTimeoutModel: spinner con límite de tiempo"
tested: false
tests: []
test_file_path: ""
file_path: "functions/tui/new_spinner_with_timeout.go"
---

## Ejemplo

```go
model := NewSpinnerWithTimeout("Esperando respuesta...", 30*time.Second)
```

## Notas

El timeout es configuracion pura — el side effect de cancelar ocurre en el runtime de Bubble Tea, no en el constructor.
