It’s pretty crazy but you can actually work with React components in anvil using anvil.js 
Though it’s not for the faint hearted and I imagine this toy example will get quite a lot more complicated the further down the rabbit hole you go 
Full example here:
Code snippet
from anvil.js.window import React, ReactDOM
import anvil.js
class FormSwipeable(FormSwipeableTemplate):
def __init__(self, **properties):
...
root = anvil.js.get_dom_node(self)
ReactDOM.render(self.swipable_component(), root)
To convert the component itself to python start with the JSX
Here's the example from swipable list component docs
import { SwipeableList, SwipeableListItem } from '@sandstreamdev/react-swipeable-list';
import '@sandstreamdev/react-swipeable-list/dist/styles.css';
<SwipeableList>
<SwipeableListItem
swipeLeft={{
content: <div>Revealed content during swipe</div>,
action: () => console.info('swipe action triggered')
}}
swipeRight={{
content: <div>Revealed content during swipe</div>,
action: () => console.info('swipe action triggered')
}}
onSwipeProgress={progress => console.info(`Swipe progress: ${progress}%`)}
>
<div>Item name</div>
</SwipeableListItem>
</SwipeableList>
You can convert the to JSX to javascript with this tool:
Babel · The compiler for next generation JavaScript
Converted to javascript:
/*#__PURE__*/
React.createElement(SwipeableList, null, /*#__PURE__*/React.createElement(SwipeableListItem, {
swipeLeft: {
content: /*#__PURE__*/React.createElement("div", null, "Revealed content during swipe"),
action: () => console.info('swipe action triggered')
},
swipeRight: {
content: /*#__PURE__*/React.createElement("div", null, "Revealed content during swipe"),
action: () => console.info('swipe action triggered')
},
onSwipeProgress: progress => console.info(`Swipe progress: ${progress}%`)
}, /*#__PURE__*/React.createElement("div", null, "Item name")));
Then convert it to python:
def swipable_component(self):
return React.createElement(SwipeableList, None, React.createElement(SwipeableListItem, {
'swipeLeft': {
'content': React.createElement("div", None, "Revealed content during swipe"),
'action': lambda: print('swipe action triggered')
},
'swipeRight': {
'content': React.createElement("div", None, "Revealed content during swipe"),
'action': lambda: print('swipe action triggered')
},
'onSwipeProgress': lambda progress: print(f"Swipe progress: {progress}%")
}, React.createElement("div", None, "Item name")))