--- 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, pendiente-usar] 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.