No, it doesn’t support carousel and it is not open source. The botfront widget supports Carousels.
For saving PDF’s, you should not pass the PDF itself through Rasa and the tracker store. Instead, your widget should push the PDF somewhere (s3 bucket or something like that) and pass on the URL location or an id for the PDF via the utterance. The PDF url/id would go into a slot that your custom action can use to do whatever it needs to do with the PDF.
The botfront widget is written with React so I would take a look at the available react widgets that handle image/file upload. I’m sure there are many of them out there.
I just googled chat widget with upload and found this which could have some good example code.