On using Enum.take_while/2

I am using Enum.take_while/2 to filter this list

[
  ["can't be blank"],
  ["can't be blank"],
  %{
    cost_price: ["can't be blank"],
    price: %{amount: ["can't be blank"]},
    sku: ["can't be blank"]
  },
  ["can't be blank"]
]|> Enum.take_while(fn  x-> is_map(x) end)

iex(6)> []

it returns empty list

but

[
  ["can't be blank"],
  ["can't be blank"],
  %{
    cost_price: ["can't be blank"],
    price: %{amount: ["can't be blank"]},
    sku: ["can't be blank"]
  },
  ["can't be blank"]
]|>Enum.map(fn x-> is_map(x) end)
iex()> [false, false, true, false]

I am failing to recognise the output of Enum.take_while/2
I need to take that map from the list
I am requesting for a help from the community
thanks and regards