widgetti / solara

A Pure Python, React-style Framework for Scaling Your Jupyter and Web Apps
https://solara.dev
MIT License
1.9k stars 140 forks source link

Question: A link between ipyvuetify and solara #642

Open JovanVeljanoski opened 6 months ago

JovanVeljanoski commented 6 months ago

The components available directly via the ipyvuetify library offer larger functionality. I understand there are technical or practical concerns of why not everything is available via solara as it would be if one would use the ipyvuetify directly.

My question is: is there a tutorial or a guide (or could it be) that would show how one can make a custom solara component by taking one or more ipyvuetify components, and exposing/using the arguments that are not exposed in solara.

Cheers!

iisakkirotko commented 6 months ago

Hey Jovan!

I don't think there is an explicit guide in the documentation (we should make one), but you could take a look at how we do this for Solara components. I think the Chat components (https://github.com/widgetti/solara/blob/master/solara/lab/components/chat.py) make use of a couple different components from ipyvuetify. A tip I can give is to keep the vuetify documentation / ipyvuetify code open while making this so you can check what arguments are available and in what types they are exposed. Let us know if you have any follow-up quetions!

JovanVeljanoski commented 5 months ago

Hi @iisakkirotko

Thanks for the answer. Your example above does not use ipyvuetify directly tho, it goes via reacton. That is where I got stuck actually. Accessing a component via reacton.ipyvuetify is the same as solara.v but different than ipyvuetify.

I understand that reacton is necessary for the render and updates etc.. But is it reasonable to expect that reacton does implement all the bells and whistles that ipyvuetify implements? The main point here is to gain access to the.. more rarely used properties of components (e.g. #639 ). But if reacton exposes everything that ipyvuetify exposes - then it is clear! (I might be wrong, but I thought i saw some components and that was not the case)