solara 1.30.0__py2.py3-none-any.whl → 1.31.0__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (439) hide show
  1. {solara-1.30.0.dist-info → solara-1.31.0.dist-info}/METADATA +7 -42
  2. solara-1.31.0.dist-info/RECORD +5 -0
  3. {solara-1.30.0.dist-info → solara-1.31.0.dist-info}/WHEEL +1 -1
  4. {solara/template/portal → solara-1.31.0.dist-info/licenses}/LICENSE +1 -1
  5. solara/__init__.py +0 -123
  6. solara/__main__.py +0 -734
  7. solara/alias.py +0 -6
  8. solara/autorouting.py +0 -554
  9. solara/cache.py +0 -294
  10. solara/checks.html +0 -71
  11. solara/checks.py +0 -224
  12. solara/comm.py +0 -28
  13. solara/components/__init__.py +0 -59
  14. solara/components/alert.py +0 -155
  15. solara/components/applayout.py +0 -393
  16. solara/components/button.py +0 -85
  17. solara/components/card.py +0 -87
  18. solara/components/checkbox.py +0 -50
  19. solara/components/code_highlight_css.py +0 -11
  20. solara/components/code_highlight_css.vue +0 -63
  21. solara/components/columns.py +0 -159
  22. solara/components/component_vue.py +0 -109
  23. solara/components/cross_filter.py +0 -335
  24. solara/components/dataframe.py +0 -546
  25. solara/components/datatable.py +0 -221
  26. solara/components/datatable.vue +0 -175
  27. solara/components/details.py +0 -21
  28. solara/components/download.vue +0 -35
  29. solara/components/echarts.py +0 -75
  30. solara/components/echarts.vue +0 -128
  31. solara/components/figure_altair.py +0 -39
  32. solara/components/file_browser.py +0 -182
  33. solara/components/file_download.py +0 -199
  34. solara/components/file_drop.py +0 -139
  35. solara/components/file_drop.vue +0 -83
  36. solara/components/file_list_widget.vue +0 -78
  37. solara/components/head.py +0 -27
  38. solara/components/head_tag.py +0 -49
  39. solara/components/head_tag.vue +0 -60
  40. solara/components/image.py +0 -173
  41. solara/components/input.py +0 -440
  42. solara/components/link.py +0 -55
  43. solara/components/markdown.py +0 -371
  44. solara/components/markdown_editor.py +0 -25
  45. solara/components/markdown_editor.vue +0 -362
  46. solara/components/matplotlib.py +0 -74
  47. solara/components/meta.py +0 -47
  48. solara/components/misc.py +0 -333
  49. solara/components/pivot_table.py +0 -258
  50. solara/components/pivot_table.vue +0 -158
  51. solara/components/progress.py +0 -47
  52. solara/components/select.py +0 -186
  53. solara/components/select.vue +0 -27
  54. solara/components/slider.py +0 -442
  55. solara/components/slider_date.vue +0 -56
  56. solara/components/spinner-solara.vue +0 -105
  57. solara/components/spinner.py +0 -30
  58. solara/components/sql_code.py +0 -33
  59. solara/components/sql_code.vue +0 -128
  60. solara/components/style.py +0 -105
  61. solara/components/switch.py +0 -68
  62. solara/components/tab_navigation.py +0 -37
  63. solara/components/title.py +0 -90
  64. solara/components/title.vue +0 -38
  65. solara/components/togglebuttons.py +0 -202
  66. solara/components/tooltip.py +0 -61
  67. solara/datatypes.py +0 -143
  68. solara/express.py +0 -241
  69. solara/hooks/__init__.py +0 -4
  70. solara/hooks/dataframe.py +0 -99
  71. solara/hooks/misc.py +0 -263
  72. solara/hooks/use_reactive.py +0 -129
  73. solara/hooks/use_thread.py +0 -129
  74. solara/kitchensink.py +0 -8
  75. solara/lab/__init__.py +0 -34
  76. solara/lab/components/__init__.py +0 -6
  77. solara/lab/components/chat.py +0 -203
  78. solara/lab/components/confirmation_dialog.py +0 -165
  79. solara/lab/components/cross_filter.py +0 -7
  80. solara/lab/components/input_date.py +0 -298
  81. solara/lab/components/menu.py +0 -181
  82. solara/lab/components/menu.vue +0 -38
  83. solara/lab/components/tabs.py +0 -274
  84. solara/lab/components/theming.py +0 -98
  85. solara/lab/components/theming.vue +0 -72
  86. solara/lab/hooks/__init__.py +0 -0
  87. solara/lab/hooks/dataframe.py +0 -12
  88. solara/lab/toestand.py +0 -3
  89. solara/lab/utils/__init__.py +0 -2
  90. solara/lab/utils/cookies.py +0 -5
  91. solara/lab/utils/dataframe.py +0 -115
  92. solara/lab/utils/headers.py +0 -5
  93. solara/layout.py +0 -44
  94. solara/minisettings.py +0 -133
  95. solara/py.typed +0 -0
  96. solara/reactive.py +0 -93
  97. solara/routing.py +0 -268
  98. solara/scope/__init__.py +0 -87
  99. solara/scope/types.py +0 -55
  100. solara/server/__init__.py +0 -0
  101. solara/server/app.py +0 -490
  102. solara/server/assets/custom.css +0 -1
  103. solara/server/assets/custom.js +0 -1
  104. solara/server/assets/favicon.png +0 -0
  105. solara/server/assets/favicon.svg +0 -5
  106. solara/server/assets/style.css +0 -1665
  107. solara/server/assets/theme-dark.css +0 -437
  108. solara/server/assets/theme-light.css +0 -420
  109. solara/server/assets/theme.js +0 -3
  110. solara/server/cdn_helper.py +0 -77
  111. solara/server/esm.py +0 -69
  112. solara/server/fastapi.py +0 -5
  113. solara/server/flask.py +0 -286
  114. solara/server/jupyter/__init__.py +0 -2
  115. solara/server/jupyter/cdn_handler.py +0 -28
  116. solara/server/jupyter/server_extension.py +0 -29
  117. solara/server/jupytertools.py +0 -46
  118. solara/server/kernel.py +0 -319
  119. solara/server/kernel_context.py +0 -393
  120. solara/server/patch.py +0 -552
  121. solara/server/reload.py +0 -242
  122. solara/server/server.py +0 -437
  123. solara/server/settings.py +0 -212
  124. solara/server/shell.py +0 -240
  125. solara/server/starlette.py +0 -597
  126. solara/server/static/ansi.js +0 -270
  127. solara/server/static/highlight-dark.css +0 -82
  128. solara/server/static/highlight.css +0 -43
  129. solara/server/static/main-vuetify.js +0 -260
  130. solara/server/static/main.js +0 -163
  131. solara/server/static/solara_bootstrap.py +0 -129
  132. solara/server/static/sun.svg +0 -23
  133. solara/server/static/webworker.js +0 -42
  134. solara/server/telemetry.py +0 -212
  135. solara/server/templates/index.html.j2 +0 -1
  136. solara/server/templates/loader-plain.css +0 -11
  137. solara/server/templates/loader-plain.html +0 -20
  138. solara/server/templates/loader-solara.css +0 -111
  139. solara/server/templates/loader-solara.html +0 -40
  140. solara/server/templates/plain.html +0 -82
  141. solara/server/templates/solara.html.j2 +0 -446
  142. solara/server/threaded.py +0 -75
  143. solara/server/utils.py +0 -30
  144. solara/server/websocket.py +0 -44
  145. solara/settings.py +0 -56
  146. solara/tasks.py +0 -847
  147. solara/template/button.py +0 -16
  148. solara/template/markdown.py +0 -42
  149. solara/template/portal/.flake8 +0 -6
  150. solara/template/portal/.pre-commit-config.yaml +0 -28
  151. solara/template/portal/Procfile +0 -7
  152. solara/template/portal/mypy.ini +0 -3
  153. solara/template/portal/pyproject.toml +0 -26
  154. solara/template/portal/solara_portal/__init__.py +0 -3
  155. solara/template/portal/solara_portal/components/__init__.py +0 -2
  156. solara/template/portal/solara_portal/components/article.py +0 -28
  157. solara/template/portal/solara_portal/components/data.py +0 -28
  158. solara/template/portal/solara_portal/components/header.py +0 -6
  159. solara/template/portal/solara_portal/components/layout.py +0 -6
  160. solara/template/portal/solara_portal/content/articles/equis-in-vidi.md +0 -85
  161. solara/template/portal/solara_portal/content/articles/substiterat-vati.md +0 -70
  162. solara/template/portal/solara_portal/data.py +0 -60
  163. solara/template/portal/solara_portal/pages/__init__.py +0 -67
  164. solara/template/portal/solara_portal/pages/article/__init__.py +0 -26
  165. solara/template/portal/solara_portal/pages/tabular.py +0 -29
  166. solara/template/portal/solara_portal/pages/viz/__init__.py +0 -69
  167. solara/template/portal/solara_portal/pages/viz/overview.py +0 -14
  168. solara/test/__init__.py +0 -0
  169. solara/test/pytest_plugin.py +0 -698
  170. solara/toestand.py +0 -772
  171. solara/util.py +0 -308
  172. solara/website/__init__.py +0 -0
  173. solara/website/assets/custom.css +0 -462
  174. solara/website/assets/images/logo-small.png +0 -0
  175. solara/website/assets/images/logo.svg +0 -17
  176. solara/website/assets/images/logo_white.svg +0 -50
  177. solara/website/assets/theme.js +0 -8
  178. solara/website/components/__init__.py +0 -5
  179. solara/website/components/algolia.vue +0 -24
  180. solara/website/components/algolia_api.vue +0 -157
  181. solara/website/components/docs.py +0 -118
  182. solara/website/components/header.py +0 -72
  183. solara/website/components/hero.py +0 -15
  184. solara/website/components/mailchimp.py +0 -12
  185. solara/website/components/mailchimp.vue +0 -47
  186. solara/website/components/notebook.py +0 -172
  187. solara/website/pages/__init__.py +0 -564
  188. solara/website/pages/apps/__init__.py +0 -16
  189. solara/website/pages/apps/authorization/__init__.py +0 -118
  190. solara/website/pages/apps/authorization/admin.py +0 -12
  191. solara/website/pages/apps/authorization/users.py +0 -12
  192. solara/website/pages/apps/jupyter-dashboard-1.py +0 -116
  193. solara/website/pages/apps/layout-demo.py +0 -40
  194. solara/website/pages/apps/multipage/__init__.py +0 -38
  195. solara/website/pages/apps/multipage/page1.py +0 -26
  196. solara/website/pages/apps/multipage/page2.py +0 -34
  197. solara/website/pages/apps/scatter.py +0 -136
  198. solara/website/pages/apps/scrolling.py +0 -63
  199. solara/website/pages/apps/tutorial-streamlit.py +0 -18
  200. solara/website/pages/changelog/__init__.py +0 -8
  201. solara/website/pages/changelog/changelog.md +0 -180
  202. solara/website/pages/contact/__init__.py +0 -8
  203. solara/website/pages/contact/contact.md +0 -17
  204. solara/website/pages/doc_use_download.py +0 -85
  205. solara/website/pages/documentation/__init__.py +0 -184
  206. solara/website/pages/documentation/advanced/__init__.py +0 -36
  207. solara/website/pages/documentation/advanced/content/00-overview.md +0 -1
  208. solara/website/pages/documentation/advanced/content/10-howto/00-overview.md +0 -1
  209. solara/website/pages/documentation/advanced/content/10-howto/10-multipage.md +0 -191
  210. solara/website/pages/documentation/advanced/content/10-howto/20-layout.md +0 -120
  211. solara/website/pages/documentation/advanced/content/10-howto/30-testing.md +0 -149
  212. solara/website/pages/documentation/advanced/content/10-howto/31-debugging.md +0 -66
  213. solara/website/pages/documentation/advanced/content/10-howto/40-embed.md +0 -43
  214. solara/website/pages/documentation/advanced/content/10-howto/50-ipywidget_libraries.md +0 -120
  215. solara/website/pages/documentation/advanced/content/20-understanding/00-introduction.md +0 -4
  216. solara/website/pages/documentation/advanced/content/20-understanding/05-ipywidgets.md +0 -30
  217. solara/website/pages/documentation/advanced/content/20-understanding/06-ipyvuetify.md +0 -38
  218. solara/website/pages/documentation/advanced/content/20-understanding/10-reacton.md +0 -24
  219. solara/website/pages/documentation/advanced/content/20-understanding/12-reacton-basics.md +0 -104
  220. solara/website/pages/documentation/advanced/content/20-understanding/15-anatomy.md +0 -19
  221. solara/website/pages/documentation/advanced/content/20-understanding/17-rules-of-hooks.md +0 -3
  222. solara/website/pages/documentation/advanced/content/20-understanding/18-containers.md +0 -160
  223. solara/website/pages/documentation/advanced/content/20-understanding/20-solara.md +0 -13
  224. solara/website/pages/documentation/advanced/content/20-understanding/40-routing.md +0 -236
  225. solara/website/pages/documentation/advanced/content/20-understanding/50-solara-server.md +0 -81
  226. solara/website/pages/documentation/advanced/content/20-understanding/60-voila.md +0 -7
  227. solara/website/pages/documentation/advanced/content/30-enterprise/00-overview.md +0 -1
  228. solara/website/pages/documentation/advanced/content/30-enterprise/10-oauth.md +0 -167
  229. solara/website/pages/documentation/advanced/content/40-development/00-overview.md +0 -0
  230. solara/website/pages/documentation/advanced/content/40-development/01-contribute.md +0 -41
  231. solara/website/pages/documentation/advanced/content/40-development/10-setup.md +0 -72
  232. solara/website/pages/documentation/advanced/content/__init__.py +0 -0
  233. solara/website/pages/documentation/api/__init__.py +0 -19
  234. solara/website/pages/documentation/api/cross_filter/__init__.py +0 -9
  235. solara/website/pages/documentation/api/cross_filter/cross_filter_dataframe.py +0 -23
  236. solara/website/pages/documentation/api/cross_filter/cross_filter_report.py +0 -22
  237. solara/website/pages/documentation/api/cross_filter/cross_filter_select.py +0 -22
  238. solara/website/pages/documentation/api/cross_filter/cross_filter_slider.py +0 -22
  239. solara/website/pages/documentation/api/hooks/__init__.py +0 -9
  240. solara/website/pages/documentation/api/hooks/use_cross_filter.py +0 -25
  241. solara/website/pages/documentation/api/hooks/use_dark_effective.py +0 -13
  242. solara/website/pages/documentation/api/hooks/use_effect.md +0 -43
  243. solara/website/pages/documentation/api/hooks/use_effect.py +0 -9
  244. solara/website/pages/documentation/api/hooks/use_exception.py +0 -33
  245. solara/website/pages/documentation/api/hooks/use_memo.md +0 -16
  246. solara/website/pages/documentation/api/hooks/use_memo.py +0 -9
  247. solara/website/pages/documentation/api/hooks/use_previous.py +0 -32
  248. solara/website/pages/documentation/api/hooks/use_reactive.py +0 -15
  249. solara/website/pages/documentation/api/hooks/use_state.py +0 -11
  250. solara/website/pages/documentation/api/hooks/use_state_or_update.py +0 -68
  251. solara/website/pages/documentation/api/hooks/use_thread.md +0 -58
  252. solara/website/pages/documentation/api/hooks/use_thread.py +0 -44
  253. solara/website/pages/documentation/api/hooks/use_trait_observe.py +0 -13
  254. solara/website/pages/documentation/api/routing/__init__.py +0 -9
  255. solara/website/pages/documentation/api/routing/generate_routes.py +0 -11
  256. solara/website/pages/documentation/api/routing/generate_routes_directory.py +0 -11
  257. solara/website/pages/documentation/api/routing/resolve_path.py +0 -36
  258. solara/website/pages/documentation/api/routing/route.py +0 -32
  259. solara/website/pages/documentation/api/routing/use_route.py +0 -80
  260. solara/website/pages/documentation/api/routing/use_router.py +0 -15
  261. solara/website/pages/documentation/api/utilities/__init__.py +0 -9
  262. solara/website/pages/documentation/api/utilities/component_vue.py +0 -11
  263. solara/website/pages/documentation/api/utilities/computed.py +0 -16
  264. solara/website/pages/documentation/api/utilities/display.py +0 -15
  265. solara/website/pages/documentation/api/utilities/get_kernel_id.py +0 -16
  266. solara/website/pages/documentation/api/utilities/get_session_id.py +0 -16
  267. solara/website/pages/documentation/api/utilities/memoize.py +0 -36
  268. solara/website/pages/documentation/api/utilities/on_kernel_start.py +0 -27
  269. solara/website/pages/documentation/api/utilities/reactive.py +0 -15
  270. solara/website/pages/documentation/api/utilities/widget.py +0 -104
  271. solara/website/pages/documentation/components/__init__.py +0 -12
  272. solara/website/pages/documentation/components/advanced/__init__.py +0 -9
  273. solara/website/pages/documentation/components/advanced/link.py +0 -28
  274. solara/website/pages/documentation/components/advanced/meta.py +0 -21
  275. solara/website/pages/documentation/components/advanced/style.py +0 -44
  276. solara/website/pages/documentation/components/common.py +0 -9
  277. solara/website/pages/documentation/components/data/__init__.py +0 -9
  278. solara/website/pages/documentation/components/data/dataframe.py +0 -44
  279. solara/website/pages/documentation/components/data/pivot_table.py +0 -81
  280. solara/website/pages/documentation/components/enterprise/__init__.py +0 -9
  281. solara/website/pages/documentation/components/enterprise/avatar.py +0 -19
  282. solara/website/pages/documentation/components/enterprise/avatar_menu.py +0 -20
  283. solara/website/pages/documentation/components/input/__init__.py +0 -9
  284. solara/website/pages/documentation/components/input/button.py +0 -22
  285. solara/website/pages/documentation/components/input/checkbox.py +0 -12
  286. solara/website/pages/documentation/components/input/file_browser.py +0 -33
  287. solara/website/pages/documentation/components/input/file_drop.py +0 -75
  288. solara/website/pages/documentation/components/input/input.py +0 -18
  289. solara/website/pages/documentation/components/input/select.py +0 -21
  290. solara/website/pages/documentation/components/input/slider.py +0 -28
  291. solara/website/pages/documentation/components/input/switch.py +0 -12
  292. solara/website/pages/documentation/components/input/togglebuttons.py +0 -20
  293. solara/website/pages/documentation/components/lab/__init__.py +0 -9
  294. solara/website/pages/documentation/components/lab/chat.py +0 -108
  295. solara/website/pages/documentation/components/lab/confirmation_dialog.py +0 -55
  296. solara/website/pages/documentation/components/lab/cookies_headers.py +0 -48
  297. solara/website/pages/documentation/components/lab/input_date.py +0 -19
  298. solara/website/pages/documentation/components/lab/menu.py +0 -21
  299. solara/website/pages/documentation/components/lab/tab.py +0 -24
  300. solara/website/pages/documentation/components/lab/tabs.py +0 -44
  301. solara/website/pages/documentation/components/lab/task.py +0 -12
  302. solara/website/pages/documentation/components/lab/theming.py +0 -72
  303. solara/website/pages/documentation/components/lab/use_task.py +0 -12
  304. solara/website/pages/documentation/components/layout/__init__.py +0 -9
  305. solara/website/pages/documentation/components/layout/app_bar.py +0 -15
  306. solara/website/pages/documentation/components/layout/app_bar_title.py +0 -15
  307. solara/website/pages/documentation/components/layout/app_layout.py +0 -23
  308. solara/website/pages/documentation/components/layout/card.py +0 -14
  309. solara/website/pages/documentation/components/layout/card_actions.py +0 -15
  310. solara/website/pages/documentation/components/layout/column.py +0 -29
  311. solara/website/pages/documentation/components/layout/columns.py +0 -26
  312. solara/website/pages/documentation/components/layout/columns_responsive.py +0 -67
  313. solara/website/pages/documentation/components/layout/griddraggable.py +0 -61
  314. solara/website/pages/documentation/components/layout/gridfixed.py +0 -21
  315. solara/website/pages/documentation/components/layout/hbox.py +0 -17
  316. solara/website/pages/documentation/components/layout/row.py +0 -29
  317. solara/website/pages/documentation/components/layout/sidebar.py +0 -23
  318. solara/website/pages/documentation/components/layout/vbox.py +0 -19
  319. solara/website/pages/documentation/components/output/__init__.py +0 -9
  320. solara/website/pages/documentation/components/output/file_download.py +0 -12
  321. solara/website/pages/documentation/components/output/html.py +0 -22
  322. solara/website/pages/documentation/components/output/image.py +0 -12
  323. solara/website/pages/documentation/components/output/markdown.py +0 -59
  324. solara/website/pages/documentation/components/output/markdown_editor.py +0 -53
  325. solara/website/pages/documentation/components/output/sql_code.py +0 -84
  326. solara/website/pages/documentation/components/output/tooltip.py +0 -12
  327. solara/website/pages/documentation/components/page/__init__.py +0 -9
  328. solara/website/pages/documentation/components/page/head.py +0 -19
  329. solara/website/pages/documentation/components/page/title.py +0 -28
  330. solara/website/pages/documentation/components/status/__init__.py +0 -9
  331. solara/website/pages/documentation/components/status/error.py +0 -40
  332. solara/website/pages/documentation/components/status/info.py +0 -40
  333. solara/website/pages/documentation/components/status/progress.py +0 -10
  334. solara/website/pages/documentation/components/status/spinner.py +0 -10
  335. solara/website/pages/documentation/components/status/success.py +0 -40
  336. solara/website/pages/documentation/components/status/warning.py +0 -47
  337. solara/website/pages/documentation/components/viz/__init__.py +0 -9
  338. solara/website/pages/documentation/components/viz/altair.py +0 -44
  339. solara/website/pages/documentation/components/viz/echarts.py +0 -78
  340. solara/website/pages/documentation/components/viz/matplotlib.py +0 -32
  341. solara/website/pages/documentation/components/viz/plotly.py +0 -63
  342. solara/website/pages/documentation/components/viz/plotly_express.py +0 -41
  343. solara/website/pages/documentation/examples/__init__.py +0 -52
  344. solara/website/pages/documentation/examples/ai/__init__.py +0 -10
  345. solara/website/pages/documentation/examples/ai/chatbot.py +0 -96
  346. solara/website/pages/documentation/examples/ai/tokenizer.py +0 -106
  347. solara/website/pages/documentation/examples/basics/__init__.py +0 -2
  348. solara/website/pages/documentation/examples/basics/sine.py +0 -28
  349. solara/website/pages/documentation/examples/fullscreen/__init__.py +0 -9
  350. solara/website/pages/documentation/examples/fullscreen/authorization.py +0 -3
  351. solara/website/pages/documentation/examples/fullscreen/layout_demo.py +0 -3
  352. solara/website/pages/documentation/examples/fullscreen/multipage.py +0 -3
  353. solara/website/pages/documentation/examples/fullscreen/scatter.py +0 -3
  354. solara/website/pages/documentation/examples/fullscreen/scrolling.py +0 -3
  355. solara/website/pages/documentation/examples/fullscreen/tutorial_streamlit.py +0 -3
  356. solara/website/pages/documentation/examples/general/__init__.py +0 -9
  357. solara/website/pages/documentation/examples/general/custom_storage.py +0 -69
  358. solara/website/pages/documentation/examples/general/deploy_model.py +0 -114
  359. solara/website/pages/documentation/examples/general/live_update.py +0 -38
  360. solara/website/pages/documentation/examples/general/login_oauth.py +0 -76
  361. solara/website/pages/documentation/examples/general/mycard.vue +0 -58
  362. solara/website/pages/documentation/examples/general/pokemon_search.py +0 -51
  363. solara/website/pages/documentation/examples/general/vue_component.py +0 -50
  364. solara/website/pages/documentation/examples/ipycanvas.py +0 -49
  365. solara/website/pages/documentation/examples/libraries/__init__.py +0 -9
  366. solara/website/pages/documentation/examples/libraries/altair.py +0 -63
  367. solara/website/pages/documentation/examples/libraries/bqplot.py +0 -39
  368. solara/website/pages/documentation/examples/libraries/ipyleaflet.py +0 -32
  369. solara/website/pages/documentation/examples/libraries/ipyleaflet_advanced.py +0 -65
  370. solara/website/pages/documentation/examples/utilities/__init__.py +0 -9
  371. solara/website/pages/documentation/examples/utilities/calculator.py +0 -157
  372. solara/website/pages/documentation/examples/utilities/countdown_timer.py +0 -64
  373. solara/website/pages/documentation/examples/utilities/todo.py +0 -195
  374. solara/website/pages/documentation/examples/visualization/__init__.py +0 -6
  375. solara/website/pages/documentation/examples/visualization/annotator.py +0 -68
  376. solara/website/pages/documentation/examples/visualization/linked_views.py +0 -84
  377. solara/website/pages/documentation/examples/visualization/plotly.py +0 -43
  378. solara/website/pages/documentation/faq/__init__.py +0 -11
  379. solara/website/pages/documentation/faq/content/99-faq.md +0 -73
  380. solara/website/pages/documentation/getting_started/__init__.py +0 -15
  381. solara/website/pages/documentation/getting_started/content/00-quickstart.md +0 -84
  382. solara/website/pages/documentation/getting_started/content/01-introduction.md +0 -121
  383. solara/website/pages/documentation/getting_started/content/02-installing.md +0 -81
  384. solara/website/pages/documentation/getting_started/content/04-tutorials/00-overview.md +0 -9
  385. solara/website/pages/documentation/getting_started/content/04-tutorials/10_data_science.py +0 -13
  386. solara/website/pages/documentation/getting_started/content/04-tutorials/20-web-app.md +0 -84
  387. solara/website/pages/documentation/getting_started/content/04-tutorials/30-ipywidgets.md +0 -120
  388. solara/website/pages/documentation/getting_started/content/04-tutorials/40-streamlit.md +0 -141
  389. solara/website/pages/documentation/getting_started/content/04-tutorials/50-dash.md +0 -140
  390. solara/website/pages/documentation/getting_started/content/04-tutorials/60-jupyter-dashboard-part1.py +0 -64
  391. solara/website/pages/documentation/getting_started/content/04-tutorials/SF_crime_sample.csv.gz +0 -0
  392. solara/website/pages/documentation/getting_started/content/04-tutorials/_data_science.ipynb +0 -445
  393. solara/website/pages/documentation/getting_started/content/04-tutorials/_jupyter_dashboard_1.ipynb +0 -1000
  394. solara/website/pages/documentation/getting_started/content/05-fundamentals/00-overview.md +0 -7
  395. solara/website/pages/documentation/getting_started/content/05-fundamentals/10-components.md +0 -218
  396. solara/website/pages/documentation/getting_started/content/05-fundamentals/50-state-management.md +0 -83
  397. solara/website/pages/documentation/getting_started/content/06-reference/00-overview.md +0 -3
  398. solara/website/pages/documentation/getting_started/content/06-reference/40-static_files.md +0 -27
  399. solara/website/pages/documentation/getting_started/content/06-reference/41-asset-files.md +0 -32
  400. solara/website/pages/documentation/getting_started/content/06-reference/60-static-site-generation.md +0 -55
  401. solara/website/pages/documentation/getting_started/content/06-reference/70-search.md +0 -30
  402. solara/website/pages/documentation/getting_started/content/06-reference/80-reloading.md +0 -30
  403. solara/website/pages/documentation/getting_started/content/06-reference/90-notebook-support.md +0 -4
  404. solara/website/pages/documentation/getting_started/content/06-reference/95-caching.md +0 -143
  405. solara/website/pages/documentation/getting_started/content/07-deploying/00-overview.md +0 -3
  406. solara/website/pages/documentation/getting_started/content/07-deploying/10-self-hosted.md +0 -269
  407. solara/website/pages/documentation/getting_started/content/07-deploying/20-cloud-hosted.md +0 -76
  408. solara/website/pages/documentation/getting_started/content/08-lab/00-what-is-lab.md +0 -3
  409. solara/website/pages/documentation/getting_started/content/90-troubleshoot.md +0 -22
  410. solara/website/pages/documentation/getting_started/content/__init__.py +0 -0
  411. solara/website/pages/docutils.py +0 -38
  412. solara/website/pages/showcase/__init__.py +0 -105
  413. solara/website/pages/showcase/domino_code_assist.py +0 -60
  414. solara/website/pages/showcase/planeto_tessa.py +0 -19
  415. solara/website/pages/showcase/solara_dev.py +0 -54
  416. solara/website/pages/showcase/solarathon_2023_team_2.py +0 -22
  417. solara/website/pages/showcase/solarathon_2023_team_4.py +0 -22
  418. solara/website/pages/showcase/solarathon_2023_team_5.py +0 -23
  419. solara/website/pages/showcase/solarathon_2023_team_6.py +0 -34
  420. solara/website/pages/showcase/wanderlust.py +0 -27
  421. solara/website/public/beach.jpeg +0 -0
  422. solara/website/public/logo.svg +0 -6
  423. solara/website/public/social/discord.svg +0 -1
  424. solara/website/public/social/github.svg +0 -1
  425. solara/website/public/social/twitter.svg +0 -3
  426. solara/website/public/success.html +0 -25
  427. solara/website/templates/index.html.j2 +0 -117
  428. solara/website/utils.py +0 -51
  429. solara/widgets/__init__.py +0 -1
  430. solara/widgets/vue/gridlayout.vue +0 -110
  431. solara/widgets/vue/html.vue +0 -4
  432. solara/widgets/vue/navigator.vue +0 -104
  433. solara/widgets/vue/vegalite.vue +0 -115
  434. solara/widgets/widgets.py +0 -65
  435. solara-1.30.0.data/data/etc/jupyter/jupyter_notebook_config.d/solara.json +0 -7
  436. solara-1.30.0.data/data/etc/jupyter/jupyter_server_config.d/solara.json +0 -7
  437. solara-1.30.0.dist-info/RECORD +0 -438
  438. solara-1.30.0.dist-info/entry_points.txt +0 -5
  439. /solara-1.30.0.dist-info/licenses/LICENSE → /LICENSE +0 -0
@@ -1,269 +0,0 @@
1
- # Self hosted deployment
2
-
3
- * [Flask](#flask)
4
- * [Starlette](#flask)
5
- * [FastAPI](#flask)
6
- * [Voila](#voila)
7
- * [Panel](#panel)
8
- * [Nginx](#nginx)
9
- * [Docker](#docker)
10
-
11
-
12
- Solara runs on several web frameworks, such as
13
-
14
- * [Flask](https://flask.palletsprojects.com/)
15
- * [Starlette](https://www.starlette.io/) (and thus [FastAPI](https://fastapi.tiangolo.com/))
16
-
17
- The most straightforward and well-tested method to deploy Solara is through the `solara run` command:
18
-
19
- $ solara run sol.py --production
20
-
21
- which uses Starlette under the hood.
22
-
23
- Your `sol.py` file could resemble the following:
24
-
25
- ```python
26
- import solara
27
-
28
- clicks = solara.reactive(0)
29
-
30
-
31
- @solara.component
32
- def Page():
33
- color = "green"
34
- if clicks.value >= 5:
35
- color = "red"
36
-
37
- def increment():
38
- clicks.value += 1
39
- print("clicks", clicks) # noqa
40
-
41
- solara.Button(label=f"Clicked: {clicks}", on_click=increment, color=color)
42
- ```
43
-
44
-
45
- If you're aiming to integrate Solara with other web frameworks such as [Flask](https://flask.palletsprojects.com/deploying/), [Starlette](https://www.starlette.io/), or [FastAPI](https://fastapi.tiangolo.com/), you normally do not execute `solara run sol.py`.
46
- Instead, start your chosen web framework as directed by their documentation and configure Solara via environment variables. For instance, instead of running the development server like `solara run sol.py`, set the `SOLARA_APP` environment variable to `sol.py`:
47
-
48
- $ export SOLARA_APP=sol.py
49
- # run flask or starlette
50
-
51
- or look at the examples below for more detailed instructions per web framework. Note that when solara is used this way it [by default runs in production mode](https://solara.dev/documentation/advanced/understanding/solara-server).
52
-
53
- ## Flask
54
-
55
- For Flask, you can consult [the Flask documentation](https://flask.palletsprojects.com/deploying/).
56
-
57
- A common solution is to use [gunicorn](https://gunicorn.org/) as the WSGI HTTP Server.
58
-
59
- A typical command would be:
60
- ```
61
- $ SOLARA_APP=sol.py gunicorn --workers 4 --threads=20 -b 0.0.0.0:8765 solara.server.flask:app
62
- ```
63
-
64
- Note that we need at least 1 thread per user due to the use of a websocket.
65
-
66
- ### Embedding in an existing Flask application
67
-
68
- If you already have a Flask app and want to add your Solara app behind a prefix, say `'/solara/'`, you can add the [Blueprint](https://flask.palletsprojects.com/blueprints/) to your existing app as follows.
69
-
70
- ```python
71
- from flask import Flask
72
- import solara.server.flask
73
-
74
- app = Flask(__name__)
75
- app.register_blueprint(solara.server.flask.blueprint, url_prefix="/solara/")
76
-
77
- @app.route("/")
78
- def hello_world():
79
- return "<p>Hello, World!</p>"
80
- ```
81
-
82
- Save this file as `"app.py"` and run
83
-
84
- $ SOLARA_APP=sol.py flask run
85
- * Running on http://127.0.0.1:5000/
86
-
87
- If you navigate to [http://127.0.0.1:5000/solara](http://127.0.0.1:5000/solara) you should see the Solara app.
88
-
89
- ## Starlette
90
-
91
- For [Starlette](https://www.starlette.io/) we will assume [uvicorn](http://www.uvicorn.org/) for the ASGI webserver and follow their [deployment documentation](https://www.uvicorn.org/deployment/):
92
-
93
- ```
94
- $ SOLARA_APP=sol.py uvicorn --workers 4 --host 0.0.0.0 --port 8765 solara.server.starlette:app
95
- ```
96
-
97
- ### Embedding in an existing Starlette application
98
-
99
- If you already have a Starlette app and want to add your Solara app behind a prefix, say `'/solara/'`, you can mount the Starlette routes for Solara to your existing app as follows.
100
-
101
- ```python
102
- from starlette.applications import Starlette
103
- from starlette.requests import Request
104
- from starlette.responses import JSONResponse
105
- from starlette.routing import Mount, Route
106
-
107
- import solara.server.starlette
108
-
109
-
110
- def myroot(request: Request):
111
- return JSONResponse({"framework": "solara"})
112
-
113
-
114
- routes = [
115
- Route("/", endpoint=myroot),
116
- Mount("/solara/", routes=solara.server.starlette.routes),
117
- ]
118
-
119
- app = Starlette(routes=routes)
120
- ```
121
-
122
- Save this file as `"solara_on_starlette.py"` and run
123
-
124
- ```
125
- $ SOLARA_APP=sol.py uvicorn solara_on_starlette:app
126
- ...
127
- INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
128
- ...
129
- ```
130
-
131
- If you navigate to [http://127.0.0.1:8000/solara](http://127.0.0.1:8000/solara) you should see the Solara app.
132
-
133
- ## FastAPI
134
-
135
- Since [FastAPI](https://fastapi.tiangolo.com/) is built on Starlette, see the section on [Starlette](#starlette) about how to deploy a Starlette app.
136
-
137
- ### Embedding in an existing FastAPI application
138
-
139
- Use `app.mount` to mount the Solara app into your existing FastAPI app.
140
-
141
- ```python
142
- from fastapi import FastAPI
143
- import solara.server.fastapi
144
-
145
- app = FastAPI()
146
-
147
-
148
- @app.get("/")
149
- def read_root():
150
- return {"Hello": "World"}
151
-
152
-
153
- app.mount("/solara/", app=solara.server.fastapi.app)
154
- ```
155
-
156
- Save this file as `"solara_on_fastapi.py"` and run
157
-
158
- ```
159
- $ SOLARA_APP=sol.py uvicorn solara_on_fastapi:app
160
- ...
161
- INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
162
- ...
163
- ```
164
-
165
- If you navigate to [http://127.0.0.1:8000/solara](http://127.0.0.1:8000/solara) you should see the Solara app.
166
-
167
-
168
- ## Voila
169
-
170
- If you use Voila, [you can use those deployment options](https://voila.readthedocs.io/en/stable/deploy.html).
171
-
172
- Make sure you run a notebook where you display the app, e.g.
173
- ```python
174
- @solara.component
175
- def Page():
176
- ...
177
- element = Page()
178
- display(element)
179
- ```
180
-
181
- Or consider using [Voila-vuetify](https://github.com/voila-dashboards/voila-vuetify).
182
-
183
- Solara apps in Voila do not have support for [routing](/documentation/advanced/understanding/routing)/[multipage](/documentation/advanced/howto/multipage).
184
-
185
-
186
- ## Panel
187
-
188
- [Panel](https://panel.holoviz.org/) supports [IPyWidgets](https://panel.holoviz.org/reference/panes/IPyWidget.html), which
189
- means we can also embed the resulting widget from Reacton or Solara. See their [section on deployment](https://panel.holoviz.org/user_guide/Server_Deployment.html) and use the following code as an example of how to include a react component.
190
- ```python
191
- import panel as pn
192
- import solara
193
-
194
-
195
- @solara.component
196
- def ButtonClick(label="Hi"):
197
- clicks, set_clicks = solara.use_state(0)
198
- def increment():
199
- set_clicks(clicks + 1)
200
- return solara.Button(f"{label}: Clicked {clicks} times", on_click=increment)
201
-
202
- # this creates just an element, Panel doesn't know what to do with that
203
- element = ButtonClick("Solara+Panel")
204
- # we explicitly ask Reacton to render it, and give us the widget
205
- button_widget, render_context = reacton.render_fixed(element)
206
- # mark this panel to be served by the panel server
207
- pn.panel(button_widget).servable()
208
- ```
209
-
210
- For development/testing purposes, run this script as:
211
-
212
- $ panel serve solara_in_panel.py
213
-
214
- Solara apps in Panel do not have support for [routing](/documentation/advanced/understanding/routing)/[multipage](/documentation/advanced/howto/multipage).
215
-
216
- ## Nginx
217
-
218
- If you use Nginx as a (reverse) proxy in front of your Python web server, a minimal
219
- configuration would be:
220
-
221
- ```
222
- server {
223
- server_name widgetti.io;
224
- listen 80
225
- location /solara/ {
226
- # the local solara server (could be using Starlette/uvicorn)
227
- proxy_pass http://localhost:8765/;
228
-
229
- proxy_set_header Host $host;
230
- proxy_set_header X-Real-IP $remote_addr;
231
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
232
- proxy_set_header X-Script-Name /solara; # informs solara to produce correct urls
233
-
234
- proxy_http_version 1.1;
235
- proxy_set_header Upgrade $http_upgrade;
236
- proxy_set_header Connection "upgrade";
237
- proxy_read_timeout 86400;
238
- }
239
- }
240
- ```
241
-
242
- Note that if we use `location /` instead of `location /solara/`, we can skip the `proxy_set_header X-Script-Name /solara` line.
243
-
244
- An alternative to using the `X-Script-Name` header with uvicorn, would be to pass the `--root-path` flag, e.g.:
245
-
246
- ```
247
- $ SOLARA_APP=sol.py uvicorn --workers 1 --root-path /solara -b 0.0.0.0:8765 solara.server.flask:app
248
- ```
249
-
250
- ## Docker
251
-
252
- There is nothing special about running Solara in Docker. The only things you probably need to change is the interface the server binds to.
253
- Solara by default binds to localhost, so that it is not accessible from the outside world. Apart from that localhost (or `::1` in case of IPv6)
254
- might not be available, you probably want the outside world to see your Solara app. For that, you can use `--host=0.0.0.0` or `--host=::` option to bind to all interfaces.
255
-
256
- Your Dockerfile could look like:
257
-
258
- ```Dockerfile
259
- FROM ....
260
-
261
- ...
262
- CMD ["solara", "run", "sol.py", "--host=0.0.0.0", "--production"]
263
-
264
- ```
265
-
266
- For a complete example, you can take a look at:
267
- * [https://huggingface.co/spaces/solara-dev/template](https://huggingface.co/spaces/solara-dev/template)
268
- * [https://huggingface.co/spaces/giswqs/solara-template/tree/main](https://huggingface.co/spaces/giswqs/solara-template/tree/main)
269
- * [https://github.com/opengeos/solara-template](https://github.com/opengeos/solara-template)
@@ -1,76 +0,0 @@
1
- # Cloud hosted
2
-
3
- ## Integrated solution (in development)
4
-
5
- Are you interested in a cloud hosted solution?
6
-
7
- ```bash
8
- $ solara deploy
9
- ...
10
- Your app is live on awesomeapp-mystartup-gh.solara.run
11
- ```
12
-
13
- Sign up for our waiting list to get early access.
14
-
15
- <!-- Begin Mailchimp Signup Form -->
16
- <link href="//cdn-images.mailchimp.com/embedcode/classic-071822.css" rel="stylesheet" type="text/css">
17
- <style type="text/css">
18
- #mc_embed_signup{background:#fff; clear:left; font:14px Helvetica,Arial,sans-serif; width:600px;}
19
- /* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.
20
- We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
21
- </style>
22
- <div id="mc_embed_signup">
23
- <form action="https://gmail.us13.list-manage.com/subscribe/post?u=1dcdd74de47214edace5b6f49&amp;id=c60b5def86&amp;f_id=00f4c1e2f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
24
- <div id="mc_embed_signup_scroll">
25
- <h2>Sign up for our waiting list</h2>
26
- <div class="indicates-required"><span class="asterisk">*</span> indicates required</div>
27
- <div class="mc-field-group">
28
- <label for="mce-EMAIL">Email Address <span class="asterisk">*</span>
29
- </label>
30
- <input type="email" value="" name="EMAIL" class="required email" id="mce-EMAIL" required>
31
- <span id="mce-EMAIL-HELPERTEXT" class="helper_text"></span>
32
- </div>
33
- <div class="mc-field-group">
34
- <label for="mce-FNAME">First Name </label>
35
- <input type="text" value="" name="FNAME" class="" id="mce-FNAME">
36
- <span id="mce-FNAME-HELPERTEXT" class="helper_text"></span>
37
- </div>
38
- <div class="mc-field-group">
39
- <label for="mce-LNAME">Last Name </label>
40
- <input type="text" value="" name="LNAME" class="" id="mce-LNAME">
41
- <span id="mce-LNAME-HELPERTEXT" class="helper_text"></span>
42
- </div>
43
- <div class="mc-field-group">
44
- <label for="mce-COMPANY">Company </label>
45
- <input type="text" value="" name="COMPANY" class="" id="mce-COMPANY">
46
- <span id="mce-COMPANY-HELPERTEXT" class="helper_text"></span>
47
- </div>
48
-
49
- <div class="mc-field-group">
50
- <label for="mce-WHYCLOUD">Why are you interested in a cloud hosted solution? </label>
51
- <input type="text" value="" name="WHYCLOUD" class="" id="mce-WHYCLOUD">
52
- <span id="mce-WHYCLOUD-HELPERTEXT" class="helper_text"></span>
53
- </div>
54
-
55
- <div id="mce-responses" class="clear foot">
56
- <div class="response" id="mce-error-response" style="display:none"></div>
57
- <div class="response" id="mce-success-response" style="display:none"></div>
58
- </div> <!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
59
- <div style="position: absolute; left: -5000px;" aria-hidden="true"><input type="text" name="b_1dcdd74de47214edace5b6f49_c60b5def86" tabindex="-1" value=""></div>
60
- <div class="optionalParent">
61
- <div class="clear foot">
62
- <input type="submit" value="Sign up" name="subscribe" id="mc-embedded-subscribe" class="button">
63
- </div>
64
- </div>
65
- </div>
66
- </form>
67
- </div>
68
- <script type='text/javascript' src='//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js'></script><script type='text/javascript'>(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';fnames[3]='ADDRESS';ftypes[3]='address';fnames[4]='PHONE';ftypes[4]='phone';fnames[5]='BIRTHDAY';ftypes[5]='birthday';fnames[6]='USECASE';ftypes[6]='text';fnames[7]='COMPANY';ftypes[7]='text';fnames[8]='POSITION';ftypes[8]='text';}(jQuery));var $mcj = jQuery.noConflict(true);</script>
69
- <!--End mc_embed_signup-->
70
-
71
-
72
- ## Ploomber Cloud
73
-
74
- You can use [Ploomber Cloud](https://www.platform.ploomber.io) to deploy Solara apps for free (no credit card required).
75
-
76
- To learn more, check out their [documentation.](https://docs.cloud.ploomber.io/en/latest/apps/solara.html)
@@ -1,3 +0,0 @@
1
- # What is Solara lab?
2
-
3
- Solara lab is a subpackage in solara containing Components, hooks and parts of Solara that are slightly experimental.
@@ -1,22 +0,0 @@
1
- # Troubleshoot
2
-
3
- ## Issues in Jupyter
4
-
5
- The most common issue in the Jupyter notebook, or Jupyter Lab happens when the notebook server and the kernel do not share the same Python environment. When you install solara via the notebook (e.g. `!pip install solara`), it will install the ipyvue and ipyvuetify libraries, two of its dependencies. These libraries will get installed in the Python environment of your Python kernel.
6
-
7
- If your Jupyter notebook or Jupyter Lab server runs in a different Python environment, your browser will not load the Javascript libraries it needs to. In order to get the server to provide these libraries to your browser, we also need to install ipyvue and ipyvuetify in the Python environment of your server.
8
-
9
- For instance, running the following in AWS SageMaker, will give you information about the Python environment of the kernel.
10
-
11
- ```python
12
- >>> import sys
13
- >>> sys.executable
14
- '/home/ec2-user/anaconda3/envs/python3/bin/python'
15
- ```
16
-
17
- While if we inspect the output of `!ps aux | grep jupyter`, we see that the notebook server is using the Python executable at `/home/ec2-user/anaconda3/envs/JupyterSystemEnv/bin/python3.7`.
18
-
19
- The solution is to run `!/home/ec2-user/anaconda3/envs/JupyterSystemEnv/bin/python3.7 -m pip install ipyvue ipyvuetify`, and refresh your browser.
20
-
21
- The function `solara.check_jupyter()` will perform these checks for you and tell you what to do. However, if it fails and you
22
- end up in this documentation, we should try to improve it by opening an [Issue on GitHub](https://github.com/widgetti/solara/issues/new).
@@ -1,38 +0,0 @@
1
- import inspect
2
-
3
- import solara
4
- from solara.alias import rw
5
- from solara.components import Markdown
6
-
7
-
8
- @solara.component
9
- def Sample(code, component):
10
- locals = globals().copy()
11
- exec(code, locals)
12
- c = locals[component]
13
- with rw.VBox() as main:
14
- Markdown(
15
- f"""
16
- ```python
17
- {code}
18
- ```
19
- """
20
- )
21
- c()
22
- return main
23
-
24
-
25
- @solara.component
26
- def IncludeComponent(component, pre="", highlight=[], **kwargs):
27
- code = inspect.getsource(component.f)
28
- with rw.VBox(layout={"padding": "20px", "max_width": "1024px", "border": "1px #333 solid"}) as main:
29
- Markdown(
30
- f"""
31
- ```python
32
- {pre}{code}
33
- ```
34
- """,
35
- highlight=highlight,
36
- )
37
- component(**kwargs)
38
- return main
@@ -1,105 +0,0 @@
1
- import solara
2
-
3
- title = "Showcase"
4
-
5
-
6
- @solara.component
7
- def Page():
8
- with solara.ColumnsResponsive(12, medium=6):
9
- with solara.Card("Wanderlust", style={"height": "100%"}):
10
- solara.Markdown(
11
- """
12
- [Wanderlust](/showcase/wanderlust) is a reproduction of the travel assistant demo shown at the
13
- [OpenAI DevDay](https://devday.openai.com/) 2023, built using Solara and the OpenAI Assistants API.
14
- """
15
- )
16
- with solara.Link("./wanderlust"):
17
- solara.Image("https://dxhl76zpt6fap.cloudfront.net/public/showcase/wanderlust/thumbnail.png", width="100%")
18
- with solara.v.Html(tag="a", attributes={"href": "https://github.com/widgetti/wanderlust", "target": "_blank"}):
19
- with solara.Row(style={"min-height": "24px"}):
20
- solara.v.Icon(children=["mdi-github-circle"], x_large=True, class_="mr-2")
21
-
22
- with solara.Card("Domino Code Assist", style={"height": "100%"}):
23
- solara.Markdown(
24
- """
25
- Domino Code Assist (DCA) is a tool developed for Domino Data Lab which provides a simple, intuitive point-and-click interface for generating
26
- Python or R code.
27
- """
28
- )
29
- with solara.Link("./domino_code_assist"):
30
- solara.Image("https://dxhl76zpt6fap.cloudfront.net/public/showcase/lca/thumbnail.png", width="100%")
31
-
32
- with solara.Card("TESSA", style={"height": "100%"}):
33
- solara.Markdown(
34
- """
35
- [TESSA](https://planeto-energy.ch/solution/) is a tool developed by Planeto for district heating & cooling planning.
36
- """
37
- )
38
- with solara.Link("./planeto_tessa"):
39
- solara.Image("https://dxhl76zpt6fap.cloudfront.net/public/showcase/tessa/thumbnail.png", width="100%")
40
-
41
- with solara.Card("Bulk labeling", style={"height": "100%"}):
42
- solara.Markdown(
43
- """
44
- [Bulk labeling](https://github.com/Ben-Epstein/solara-examples/tree/main/bulk-labeling)
45
- is a tool developed by Ben Epstein for labeling data in bulk."""
46
- )
47
- from solara.alias import rv
48
-
49
- img = "https://avatars.githubusercontent.com/u/22605641?v=4"
50
- with rv.Html(tag="a", attributes={"href": "https://github.com/Ben-Epstein/solara-examples/tree/main/bulk-labeling", "target": "_blank"}):
51
- solara.Image("https://user-images.githubusercontent.com/1765949/237517090-8f7242b1-3189-4c5b-abd3-0f0986292ade.png", width="100%")
52
- with rv.Html(tag="a", attributes={"href": "https://github.com/Ben-Epstein/", "target": "_blank"}):
53
- with rv.ListItem(class_="grow"):
54
- with rv.ListItemAvatar(color="grey darken-3"):
55
- rv.Img(
56
- class_="elevation-6",
57
- src=img,
58
- )
59
-
60
- with solara.Card("solara.dev", style={"height": "100%"}):
61
- solara.Markdown(
62
- """
63
- The Solara.dev website is built using Solara itself, showcasing the library's features and capabilities.
64
- All documentation and example are on this page.
65
- """
66
- )
67
- with solara.Link("./solara_dev"):
68
- solara.Image("https://dxhl76zpt6fap.cloudfront.net/public/showcase/solara/thumbnail.png", width="100%")
69
-
70
- solara.HTML(tag="h1", unsafe_innerHTML="Solarathon 2023")
71
- solara.Markdown(
72
- """
73
- In November 2023, we hosted the first Solarathon, a two-week hackathon,
74
- during which participants built projects using Solara, and deployed them to [Ploomber](https://ploomber.io/).
75
- The event was a great success, and we are looking forward to hosting more Solarathons in the future.
76
- The projects built during the event are showcased below."""
77
- )
78
- with solara.ColumnsResponsive(12, medium=6):
79
- with solara.Card("Team 2: Travel Assistant", style={"height": "100%"}):
80
- with solara.Link("./solarathon_2023_team_2"):
81
- solara.Image("https://dxhl76zpt6fap.cloudfront.net/public/showcase/solarathon_2023_team_2/thumbnail.png", width="100%")
82
- with solara.v.Html(tag="a", attributes={"href": "https://github.com/alonsosilvaallende/solarathon", "target": "_blank"}):
83
- with solara.Row(style={"min-height": "24px"}):
84
- solara.v.Icon(children=["mdi-github-circle"], x_large=True, class_="mr-2")
85
-
86
- with solara.Card("Team 4: Live Cryptocurrency Dashboard", style={"height": "100%"}):
87
- with solara.Link("./solarathon_2023_team_4"):
88
- solara.Image("https://dxhl76zpt6fap.cloudfront.net/public/showcase/solarathon_2023_team_4/thumbnail.png", width="100%")
89
- with solara.v.Html(tag="a", attributes={"href": "https://github.com/theeldermillenial/solarathon", "target": "_blank"}):
90
- with solara.Row(style={"min-height": "24px"}):
91
- solara.v.Icon(children=["mdi-github-circle"], x_large=True, class_="mr-2")
92
-
93
- with solara.Card("Team 5: Sports Video Analysis", style={"height": "100%"}):
94
- with solara.Link("./solarathon_2023_team_5"):
95
- solara.Image("https://dxhl76zpt6fap.cloudfront.net/public/showcase/solarathon_2023_team_5/thumbnail.png", width="100%")
96
- with solara.v.Html(tag="a", attributes={"href": "https://github.com/FelipeCabelloE/solarathon-team5/", "target": "_blank"}):
97
- with solara.Row(style={"min-height": "24px"}):
98
- solara.v.Icon(children=["mdi-github-circle"], x_large=True, class_="mr-2")
99
-
100
- with solara.Card("Team 6: Automatic FAQ Creator", style={"height": "100%"}):
101
- with solara.Link("./solarathon_2023_team_6"):
102
- solara.Image("https://dxhl76zpt6fap.cloudfront.net/public/showcase/solarathon_2023_team_6/thumbnail.png", width="100%")
103
- with solara.v.Html(tag="a", attributes={"href": "https://github.com/silvhua/solarathon-faq-creator", "target": "_blank"}):
104
- with solara.Row(style={"min-height": "24px"}):
105
- solara.v.Icon(children=["mdi-github-circle"], x_large=True, class_="mr-2")
@@ -1,60 +0,0 @@
1
- import solara
2
-
3
-
4
- @solara.component
5
- def Page():
6
- with solara.Link("/showcase"):
7
- solara.Text("« Back to Showcases")
8
- with solara.ColumnsResponsive(12, medium=6):
9
- solara.Markdown(
10
- """
11
- # Domino code assist
12
-
13
- [Domino Code Assist](https://www.dominodatalab.com/product/code-assist) (DCA) is a tool developed for [Domino Data Lab](https://www.dominodatalab.com/)
14
- which provides a simple, intuitive point-and-click interface for generating Python or R code.
15
- DCA uses many of the solara components to render the UI in the classical notebook and lab. Solara server is used to serve data apps.
16
-
17
- Domino code assist is deeply integrated in the Jupyter notebook.
18
- """
19
- )
20
- solara.Image("https://dxhl76zpt6fap.cloudfront.net/public/showcase/lca/load-data-lab.png", width="100%", classes=["pt-12"])
21
-
22
- with solara.ColumnsResponsive(12, medium=6):
23
- solara.Image("https://dxhl76zpt6fap.cloudfront.net/public/showcase/lca/viz.png", width="100%", classes=["pt-12"])
24
- solara.Markdown(
25
- """
26
- # Sophisticated UIs
27
-
28
- Using Solara, we can build sophisticated UIs that are easy to use, intuitive
29
- and have a modern look and feel.
30
-
31
- """
32
- )
33
-
34
- with solara.ColumnsResponsive(12, medium=6):
35
- solara.Markdown(
36
- """
37
- # Making apps.
38
-
39
- Using Solara we could build an "What You See Is What You Get" app designer.
40
- All solara components look and feel the same in the notebook and in the deployed app.
41
-
42
- """
43
- )
44
- solara.Image("https://dxhl76zpt6fap.cloudfront.net/public/showcase/lca/app-design.png", width="100%", classes=["pt-12"])
45
-
46
- with solara.ColumnsResponsive(12, medium=6):
47
- solara.Image("https://dxhl76zpt6fap.cloudfront.net/public/showcase/lca/app-deployed.png", width="100%", classes=["pt-12"])
48
- solara.Markdown(
49
- """
50
-
51
- # App deploying
52
-
53
- To deploy apps we use [solara server](/documentation/advanced/understanding/solara-server) which can
54
- render the same UI as in the notebook, but now sharable with non-technical users.
55
-
56
- Many users have deployed apps at Domino using Solara with
57
- a single click.
58
-
59
- """
60
- )
@@ -1,19 +0,0 @@
1
- import solara
2
-
3
-
4
- @solara.component
5
- def Page():
6
- with solara.Link("/showcase"):
7
- solara.Text("« Back to Showcases")
8
- with solara.ColumnsResponsive(12, medium=6):
9
- solara.Markdown(
10
- """
11
- # TESSA by Planeto
12
-
13
- [Planeto](https://planeto-energy.ch/) developed a tool called [TESSA](https://planeto-energy.ch/solution/) for district heating & cooling planning.
14
-
15
- TESSA was prototyped in the Jupyter notebook using ipywidgets. Using solara, they are able to bring TESSA into production using the
16
- same technology stack.
17
- """
18
- )
19
- solara.Image("https://dxhl76zpt6fap.cloudfront.net/public/showcase/tessa/thumbnail.png", width="100%", classes=["pt-12"])
@@ -1,54 +0,0 @@
1
- import solara
2
-
3
-
4
- @solara.component
5
- def Page():
6
- with solara.Link("/showcase"):
7
- solara.Text("« Back to Showcases")
8
- with solara.ColumnsResponsive(12, medium=6):
9
- solara.Markdown(
10
- """
11
- # Solara.dev
12
-
13
- The Solara.dev website is built using Solara itself, showcasing the library's features and capabilities.
14
- All documentation and example are on this website.
15
- """
16
- )
17
-
18
- with solara.ColumnsResponsive(12, medium=6):
19
- solara.Markdown(
20
- """
21
- ## Desktop and mobile
22
-
23
- Solara.dev is designed to be responsive, working seamlessly on both desktop and mobile devices.
24
- On smaller screens, the top navigation bar is replaced with a drawer for easy navigation.
25
- The [`ColumnsResponsive`](/documentation/components/layout/columns_responsive) component can be used to create responsive content layouts.
26
-
27
- """
28
- )
29
- solara.Image("https://dxhl76zpt6fap.cloudfront.net/public/showcase/solara/home-mobile.png", width="100%", classes=["pt-12"])
30
-
31
- with solara.ColumnsResponsive(12, medium=6):
32
- solara.Image("https://dxhl76zpt6fap.cloudfront.net/public/showcase/solara/docs.png", width="100%")
33
- solara.Markdown(
34
- """
35
- ## Multi-page
36
-
37
- The website is composed of multiple pages, illustrating how users can navigate between the home page, documentation, and tutorial sections.
38
-
39
- """
40
- )
41
-
42
- with solara.ColumnsResponsive(12, medium=6):
43
- solara.Markdown(
44
- """
45
- ## Markdown support
46
-
47
- Solara supports the use of Markdown for creating dynamic and static content.
48
- This makes it possible to combine Python-generated pages with static Markdown pages in a single website.
49
- Hot reloading ensures that the page is automatically updated whenever changes are made to the Markdown files.
50
-
51
-
52
- """
53
- )
54
- solara.Image("https://dxhl76zpt6fap.cloudfront.net/public/showcase/solara/vscode-markdown.png", width="100%")