FLḶ0ẋ;þµ^þ/ẎẠ€Ẹ
Try it online!
Explanation
FLḶ0ẋ;þµ^þ/ẎẠ€Ẹ Main Link
FL Take the length of all lists flattened (sum of lengths)
Ḷ 0 .. sum (offsets)
0ẋ Repeat `[0]` by each of the offset sizes
;þ Product table by `;` (gets `n` lists of lists for input size `n`, with each sublist containing all shifts of the original lists)
µ <new monadic chain>
/ Reduce:
^þ Product table of XOR
Ẏ Tighten; contains all attempted tilings now
Ạ€ All elements truthy for each sublist?
Ẹ Any sublist had all 1s?
For whatever reason, you need to input the falsy test case [1, 0, 1]
as [[[1, 0, 1]]]
; I think that's because of the way Jelly processes input.
-1 byte thanks to Mr. Xcoder