--- 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] 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.