too_few

df |> 
  separate_wider_delim(
    x, "-", names = c("x", "y", "z"),
    too_few = "align_end"
  )
## # A tibble: 3 × 3
##   x     y     z    
##   <chr> <chr> <chr>
## 1 1     1     1    
## 2 <NA>  1     3    
## 3 <NA>  <NA>  1