solara 1.29.1__py2.py3-none-any.whl → 1.30.1__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 (286) hide show
  1. solara/__init__.py +5 -5
  2. solara/__main__.py +6 -2
  3. solara/autorouting.py +88 -56
  4. solara/cache.py +2 -2
  5. solara/checks.html +1 -1
  6. solara/components/__init__.py +1 -1
  7. solara/components/applayout.py +5 -5
  8. solara/components/button.py +4 -4
  9. solara/components/card.py +1 -2
  10. solara/components/component_vue.py +9 -8
  11. solara/components/cross_filter.py +6 -7
  12. solara/components/datatable.py +2 -3
  13. solara/components/figure_altair.py +1 -1
  14. solara/components/file_download.py +2 -2
  15. solara/components/file_drop.py +76 -33
  16. solara/components/file_drop.vue +24 -10
  17. solara/components/head.py +1 -2
  18. solara/components/head_tag.py +2 -3
  19. solara/components/image.py +1 -1
  20. solara/components/link.py +3 -4
  21. solara/components/meta.py +1 -1
  22. solara/components/misc.py +5 -9
  23. solara/datatypes.py +2 -2
  24. solara/hooks/use_reactive.py +2 -2
  25. solara/lab/components/confirmation_dialog.py +1 -1
  26. solara/lab/components/tabs.py +6 -6
  27. solara/reactive.py +1 -1
  28. solara/routing.py +9 -8
  29. solara/scope/__init__.py +3 -2
  30. solara/server/app.py +44 -1
  31. solara/server/assets/style.css +6 -0
  32. solara/server/esm.py +28 -4
  33. solara/server/kernel_context.py +78 -7
  34. solara/server/patch.py +3 -0
  35. solara/server/reload.py +2 -2
  36. solara/server/server.py +3 -3
  37. solara/server/settings.py +1 -0
  38. solara/server/starlette.py +66 -33
  39. solara/server/static/solara_bootstrap.py +1 -1
  40. solara/server/templates/solara.html.j2 +62 -42
  41. solara/tasks.py +1 -6
  42. solara/util.py +23 -1
  43. solara/website/assets/custom.css +56 -0
  44. solara/website/components/__init__.py +1 -0
  45. solara/website/components/algolia_api.vue +157 -0
  46. solara/website/components/docs.py +118 -0
  47. solara/website/components/header.py +20 -10
  48. solara/website/components/hero.py +1 -1
  49. solara/website/components/markdown.py +30 -0
  50. solara/website/pages/__init__.py +234 -20
  51. solara/website/pages/apps/jupyter-dashboard-1.py +1 -1
  52. solara/website/pages/apps/multipage/__init__.py +1 -1
  53. solara/website/pages/apps/multipage/page2.py +1 -1
  54. solara/website/pages/apps/scatter.py +21 -7
  55. solara/website/pages/changelog/__init__.py +8 -0
  56. solara/website/pages/{docs/content/95-changelog.md → changelog/changelog.md} +43 -2
  57. solara/website/pages/contact/__init__.py +8 -0
  58. solara/website/pages/documentation/__init__.py +184 -0
  59. solara/website/pages/{docs → documentation/advanced}/__init__.py +2 -2
  60. solara/website/pages/documentation/advanced/content/00-overview.md +1 -0
  61. solara/website/pages/{docs → documentation/advanced}/content/10-howto/00-overview.md +5 -0
  62. solara/website/pages/{docs/content/10-howto/20-multipage.md → documentation/advanced/content/10-howto/10-multipage.md} +9 -5
  63. solara/website/pages/{docs/content/10-howto/30-layout.md → documentation/advanced/content/10-howto/20-layout.md} +26 -21
  64. solara/website/pages/{docs/content/10-howto/50-testing.md → documentation/advanced/content/10-howto/30-testing.md} +5 -0
  65. solara/website/pages/{docs/content/10-howto/51-debugging.md → documentation/advanced/content/10-howto/31-debugging.md} +4 -1
  66. solara/website/pages/{docs/content/10-howto/80-embed.md → documentation/advanced/content/10-howto/40-embed.md} +7 -1
  67. solara/website/pages/{docs/content/10-howto/ipywidget_libraries.md → documentation/advanced/content/10-howto/50-ipywidget_libraries.md} +4 -0
  68. solara/website/pages/documentation/advanced/content/20-understanding/00-introduction.md +10 -0
  69. solara/website/pages/{docs → documentation/advanced}/content/20-understanding/05-ipywidgets.md +5 -0
  70. solara/website/pages/{docs → documentation/advanced}/content/20-understanding/06-ipyvuetify.md +5 -1
  71. solara/website/pages/{docs → documentation/advanced}/content/20-understanding/10-reacton.md +4 -0
  72. solara/website/pages/{docs → documentation/advanced}/content/20-understanding/12-reacton-basics.md +5 -1
  73. solara/website/pages/{docs → documentation/advanced}/content/20-understanding/15-anatomy.md +6 -2
  74. solara/website/pages/documentation/advanced/content/20-understanding/17-rules-of-hooks.md +7 -0
  75. solara/website/pages/{docs → documentation/advanced}/content/20-understanding/18-containers.md +9 -3
  76. solara/website/pages/{docs → documentation/advanced}/content/20-understanding/20-solara.md +5 -0
  77. solara/website/pages/{docs → documentation/advanced}/content/20-understanding/40-routing.md +13 -9
  78. solara/website/pages/{docs → documentation/advanced}/content/20-understanding/50-solara-server.md +6 -1
  79. solara/website/pages/{docs → documentation/advanced}/content/20-understanding/60-voila.md +5 -0
  80. solara/website/pages/{docs/content/50-enterprise → documentation/advanced/content/30-enterprise}/10-oauth.md +7 -3
  81. solara/website/pages/{docs/content/10-howto → documentation/advanced/content/40-development}/01-contribute.md +9 -5
  82. solara/website/pages/{docs/content/90-development → documentation/advanced/content/40-development}/10-setup.md +6 -2
  83. solara/website/pages/documentation/api/__init__.py +19 -0
  84. solara/website/pages/documentation/api/cross_filter/__init__.py +9 -0
  85. solara/website/pages/documentation/api/hooks/__init__.py +9 -0
  86. solara/website/pages/{api → documentation/api/hooks}/use_effect.md +3 -3
  87. solara/website/pages/{api → documentation/api/hooks}/use_effect.py +2 -1
  88. solara/website/pages/{api → documentation/api/hooks}/use_memo.md +2 -2
  89. solara/website/pages/{api → documentation/api/hooks}/use_memo.py +2 -1
  90. solara/website/pages/{api → documentation/api/hooks}/use_reactive.py +1 -2
  91. solara/website/pages/{api → documentation/api/hooks}/use_state.py +1 -2
  92. solara/website/pages/documentation/api/routing/__init__.py +9 -0
  93. solara/website/pages/{api → documentation/api/routing}/generate_routes.py +1 -2
  94. solara/website/pages/{api → documentation/api/routing}/generate_routes_directory.py +1 -2
  95. solara/website/pages/{api → documentation/api/routing}/use_route.py +2 -2
  96. solara/website/pages/{api → documentation/api/routing}/use_router.py +1 -2
  97. solara/website/pages/documentation/api/utilities/__init__.py +9 -0
  98. solara/website/pages/{api → documentation/api/utilities}/component_vue.py +1 -2
  99. solara/website/pages/{api → documentation/api/utilities}/computed.py +2 -2
  100. solara/website/pages/{api → documentation/api/utilities}/display.py +1 -2
  101. solara/website/pages/{api → documentation/api/utilities}/get_kernel_id.py +2 -2
  102. solara/website/pages/{api → documentation/api/utilities}/get_session_id.py +2 -2
  103. solara/website/pages/{api → documentation/api/utilities}/on_kernel_start.py +9 -3
  104. solara/website/pages/{api → documentation/api/utilities}/reactive.py +1 -2
  105. solara/website/pages/{api → documentation/api/utilities}/widget.py +2 -2
  106. solara/website/pages/documentation/components/__init__.py +12 -0
  107. solara/website/pages/documentation/components/advanced/__init__.py +9 -0
  108. solara/website/pages/documentation/components/data/__init__.py +9 -0
  109. solara/website/pages/documentation/components/enterprise/__init__.py +9 -0
  110. solara/website/pages/{api → documentation/components/enterprise}/avatar.py +1 -2
  111. solara/website/pages/{api → documentation/components/enterprise}/avatar_menu.py +1 -2
  112. solara/website/pages/documentation/components/input/__init__.py +9 -0
  113. solara/website/pages/{api → documentation/components/input}/checkbox.py +1 -2
  114. solara/website/pages/documentation/components/input/file_drop.py +75 -0
  115. solara/website/pages/{api → documentation/components/input}/input.py +1 -2
  116. solara/website/pages/{api → documentation/components/input}/select.py +1 -2
  117. solara/website/pages/{api → documentation/components/input}/slider.py +1 -2
  118. solara/website/pages/{api → documentation/components/input}/switch.py +1 -2
  119. solara/website/pages/{api → documentation/components/input}/togglebuttons.py +1 -2
  120. solara/website/pages/documentation/components/lab/__init__.py +9 -0
  121. solara/website/pages/{api → documentation/components/lab}/chat.py +2 -3
  122. solara/website/pages/{api → documentation/components/lab}/cookies_headers.py +1 -1
  123. solara/website/pages/{api → documentation/components/lab}/input_date.py +1 -2
  124. solara/website/pages/{api → documentation/components/lab}/menu.py +1 -2
  125. solara/website/pages/{api → documentation/components/lab}/task.py +1 -2
  126. solara/website/pages/{api → documentation/components/lab}/theming.py +1 -2
  127. solara/website/pages/{api → documentation/components/lab}/use_task.py +1 -2
  128. solara/website/pages/documentation/components/layout/__init__.py +9 -0
  129. solara/website/pages/{api → documentation/components/layout}/app_bar.py +1 -2
  130. solara/website/pages/{api → documentation/components/layout}/app_bar_title.py +1 -2
  131. solara/website/pages/{api → documentation/components/layout}/card.py +1 -2
  132. solara/website/pages/{api → documentation/components/layout}/card_actions.py +1 -2
  133. solara/website/pages/{api → documentation/components/layout}/griddraggable.py +1 -1
  134. solara/website/pages/{api → documentation/components/layout}/gridfixed.py +1 -1
  135. solara/website/pages/{api → documentation/components/layout}/hbox.py +1 -1
  136. solara/website/pages/{api → documentation/components/layout}/vbox.py +1 -1
  137. solara/website/pages/documentation/components/output/__init__.py +9 -0
  138. solara/website/pages/{api → documentation/components/output}/file_download.py +1 -2
  139. solara/website/pages/{api → documentation/components/output}/image.py +1 -2
  140. solara/website/pages/{api → documentation/components/output}/tooltip.py +1 -2
  141. solara/website/pages/documentation/components/page/__init__.py +9 -0
  142. solara/website/pages/documentation/components/status/__init__.py +9 -0
  143. solara/website/pages/{api → documentation/components/status}/error.py +3 -3
  144. solara/website/pages/{api → documentation/components/status}/info.py +3 -3
  145. solara/website/pages/{api → documentation/components/status}/progress.py +1 -2
  146. solara/website/pages/{api → documentation/components/status}/spinner.py +1 -2
  147. solara/website/pages/{api → documentation/components/status}/success.py +3 -3
  148. solara/website/pages/{api → documentation/components/status}/warning.py +3 -3
  149. solara/website/pages/documentation/components/viz/__init__.py +9 -0
  150. solara/website/pages/{api → documentation/components/viz}/plotly.py +1 -0
  151. solara/website/pages/{examples → documentation/examples}/__init__.py +3 -43
  152. solara/website/pages/{examples → documentation/examples}/general/custom_storage.py +1 -1
  153. solara/website/pages/{examples → documentation/examples}/general/deploy_model.py +3 -3
  154. solara/website/pages/{examples → documentation/examples}/general/login_oauth.py +1 -1
  155. solara/website/pages/{examples → documentation/examples}/general/vue_component.py +1 -2
  156. solara/website/pages/{examples → documentation/examples}/libraries/altair.py +2 -3
  157. solara/website/pages/{examples → documentation/examples}/libraries/ipyleaflet_advanced.py +1 -1
  158. solara/website/pages/{examples → documentation/examples}/utilities/countdown_timer.py +1 -1
  159. solara/website/pages/{examples → documentation/examples}/visualization/plotly.py +1 -2
  160. solara/website/pages/documentation/faq/__init__.py +12 -0
  161. solara/website/pages/{docs → documentation/faq}/content/99-faq.md +4 -1
  162. solara/website/pages/documentation/getting_started/__init__.py +9 -0
  163. solara/website/pages/{docs/content/03-quickstart.md → documentation/getting_started/content/00-quickstart.md} +7 -2
  164. solara/website/pages/{docs/content/00-introduction.md → documentation/getting_started/content/01-introduction.md} +20 -16
  165. solara/website/pages/{docs → documentation/getting_started}/content/02-installing.md +5 -1
  166. solara/website/pages/documentation/getting_started/content/04-tutorials/00-overview.md +14 -0
  167. solara/website/pages/{docs/content/04-tutorial → documentation/getting_started/content/04-tutorials}/20-web-app.md +9 -4
  168. solara/website/pages/{docs/content/04-tutorial → documentation/getting_started/content/04-tutorials}/30-ipywidgets.md +13 -9
  169. solara/website/pages/{docs/content/04-tutorial → documentation/getting_started/content/04-tutorials}/40-streamlit.md +17 -12
  170. solara/website/pages/{docs/content/04-tutorial → documentation/getting_started/content/04-tutorials}/50-dash.md +7 -3
  171. solara/website/pages/{docs/content/04-tutorial → documentation/getting_started/content/04-tutorials}/_data_science.ipynb +5 -5
  172. solara/website/pages/documentation/getting_started/content/05-fundamentals/00-overview.md +11 -0
  173. solara/website/pages/{docs/content/07-fundamentals → documentation/getting_started/content/05-fundamentals}/10-components.md +7 -2
  174. solara/website/pages/{docs/content/07-fundamentals → documentation/getting_started/content/05-fundamentals}/50-state-management.md +8 -3
  175. solara/website/pages/documentation/getting_started/content/06-reference/00-overview.md +3 -0
  176. solara/website/pages/{docs/content/15-reference → documentation/getting_started/content/06-reference}/40-static_files.md +4 -0
  177. solara/website/pages/{docs/content/15-reference → documentation/getting_started/content/06-reference}/41-asset-files.md +5 -1
  178. solara/website/pages/{docs/content/15-reference → documentation/getting_started/content/06-reference}/60-static-site-generation.md +5 -1
  179. solara/website/pages/{docs/content/15-reference → documentation/getting_started/content/06-reference}/70-search.md +5 -1
  180. solara/website/pages/{docs/content/15-reference → documentation/getting_started/content/06-reference}/80-reloading.md +7 -3
  181. solara/website/pages/{docs/content/15-reference → documentation/getting_started/content/06-reference}/90-notebook-support.md +4 -1
  182. solara/website/pages/{docs/content/15-reference → documentation/getting_started/content/06-reference}/95-caching.md +6 -1
  183. solara/website/pages/documentation/getting_started/content/07-deploying/00-overview.md +7 -0
  184. solara/website/pages/{docs/content/30-deploying → documentation/getting_started/content/07-deploying}/10-self-hosted.md +7 -3
  185. solara/website/pages/{docs/content/30-deploying → documentation/getting_started/content/07-deploying}/20-cloud-hosted.md +5 -1
  186. solara/website/pages/documentation/getting_started/content/80-what-is-lab.md +7 -0
  187. solara/website/pages/{docs → documentation/getting_started}/content/90-troubleshoot.md +4 -0
  188. solara/website/pages/showcase/__init__.py +1 -1
  189. solara/website/pages/showcase/domino_code_assist.py +1 -1
  190. solara/website/pages/showcase/solara_dev.py +1 -1
  191. solara/website/public/social/discord.svg +1 -0
  192. solara/website/public/social/github.svg +1 -0
  193. solara/website/public/social/twitter.svg +3 -0
  194. {solara-1.29.1.dist-info → solara-1.30.1.dist-info}/METADATA +8 -7
  195. solara-1.30.1.dist-info/RECORD +437 -0
  196. {solara-1.29.1.dist-info → solara-1.30.1.dist-info}/WHEEL +1 -1
  197. solara/website/pages/api/__init__.py +0 -292
  198. solara/website/pages/api/default_layout.py +0 -16
  199. solara/website/pages/api/file_drop.py +0 -36
  200. solara/website/pages/docs/content/04-tutorial/00-overview.md +0 -9
  201. solara/website/pages/docs/content/07-fundamentals/00-overview.md +0 -7
  202. solara/website/pages/docs/content/15-reference/00-overview.md +0 -6
  203. solara/website/pages/docs/content/20-understanding/00-introduction.md +0 -4
  204. solara/website/pages/docs/content/20-understanding/17-rules-of-hooks.md +0 -3
  205. solara/website/pages/docs/content/30-deploying/00-overview.md +0 -3
  206. solara/website/pages/docs/content/lab/00-what-is-lab.md +0 -3
  207. solara-1.29.1.dist-info/RECORD +0 -411
  208. /solara/website/pages/{docs/content/99-contact.md → contact/contact.md} +0 -0
  209. /solara/website/pages/{docs/content/50-enterprise → documentation/advanced/content/30-enterprise}/00-overview.md +0 -0
  210. /solara/website/pages/{docs/content/__init__.py → documentation/advanced/content/40-development/00-overview.md} +0 -0
  211. /solara/website/pages/{api → documentation/api/cross_filter}/cross_filter_dataframe.py +0 -0
  212. /solara/website/pages/{api → documentation/api/cross_filter}/cross_filter_report.py +0 -0
  213. /solara/website/pages/{api → documentation/api/cross_filter}/cross_filter_select.py +0 -0
  214. /solara/website/pages/{api → documentation/api/cross_filter}/cross_filter_slider.py +0 -0
  215. /solara/website/pages/{api → documentation/api/hooks}/use_cross_filter.py +0 -0
  216. /solara/website/pages/{api → documentation/api/hooks}/use_dark_effective.py +0 -0
  217. /solara/website/pages/{api → documentation/api/hooks}/use_exception.py +0 -0
  218. /solara/website/pages/{api → documentation/api/hooks}/use_previous.py +0 -0
  219. /solara/website/pages/{api → documentation/api/hooks}/use_state_or_update.py +0 -0
  220. /solara/website/pages/{api → documentation/api/hooks}/use_thread.md +0 -0
  221. /solara/website/pages/{api → documentation/api/hooks}/use_thread.py +0 -0
  222. /solara/website/pages/{api → documentation/api/hooks}/use_trait_observe.py +0 -0
  223. /solara/website/pages/{api → documentation/api/routing}/resolve_path.py +0 -0
  224. /solara/website/pages/{api → documentation/api/routing}/route.py +0 -0
  225. /solara/website/pages/{api → documentation/api/utilities}/memoize.py +0 -0
  226. /solara/website/pages/{api → documentation/components/advanced}/link.py +0 -0
  227. /solara/website/pages/{api → documentation/components/advanced}/meta.py +0 -0
  228. /solara/website/pages/{api → documentation/components/advanced}/style.py +0 -0
  229. /solara/website/pages/{api → documentation/components}/common.py +0 -0
  230. /solara/website/pages/{api → documentation/components/data}/dataframe.py +0 -0
  231. /solara/website/pages/{api → documentation/components/data}/pivot_table.py +0 -0
  232. /solara/website/pages/{api → documentation/components/input}/button.py +0 -0
  233. /solara/website/pages/{api → documentation/components/input}/file_browser.py +0 -0
  234. /solara/website/pages/{api → documentation/components/lab}/confirmation_dialog.py +0 -0
  235. /solara/website/pages/{api → documentation/components/lab}/tab.py +0 -0
  236. /solara/website/pages/{api → documentation/components/lab}/tabs.py +0 -0
  237. /solara/website/pages/{api → documentation/components/layout}/app_layout.py +0 -0
  238. /solara/website/pages/{api → documentation/components/layout}/column.py +0 -0
  239. /solara/website/pages/{api → documentation/components/layout}/columns.py +0 -0
  240. /solara/website/pages/{api → documentation/components/layout}/columns_responsive.py +0 -0
  241. /solara/website/pages/{api → documentation/components/layout}/row.py +0 -0
  242. /solara/website/pages/{api → documentation/components/layout}/sidebar.py +0 -0
  243. /solara/website/pages/{api → documentation/components/output}/html.py +0 -0
  244. /solara/website/pages/{api → documentation/components/output}/markdown.py +0 -0
  245. /solara/website/pages/{api → documentation/components/output}/markdown_editor.py +0 -0
  246. /solara/website/pages/{api → documentation/components/output}/sql_code.py +0 -0
  247. /solara/website/pages/{api → documentation/components/page}/head.py +0 -0
  248. /solara/website/pages/{api → documentation/components/page}/title.py +0 -0
  249. /solara/website/pages/{api → documentation/components/viz}/altair.py +0 -0
  250. /solara/website/pages/{api → documentation/components/viz}/echarts.py +0 -0
  251. /solara/website/pages/{api → documentation/components/viz}/matplotlib.py +0 -0
  252. /solara/website/pages/{api → documentation/components/viz}/plotly_express.py +0 -0
  253. /solara/website/pages/{examples → documentation/examples}/ai/__init__.py +0 -0
  254. /solara/website/pages/{examples → documentation/examples}/ai/chatbot.py +0 -0
  255. /solara/website/pages/{examples → documentation/examples}/ai/tokenizer.py +0 -0
  256. /solara/website/pages/{examples → documentation/examples}/basics/__init__.py +0 -0
  257. /solara/website/pages/{examples → documentation/examples}/basics/sine.py +0 -0
  258. /solara/website/pages/{examples → documentation/examples}/fullscreen/__init__.py +0 -0
  259. /solara/website/pages/{examples → documentation/examples}/fullscreen/authorization.py +0 -0
  260. /solara/website/pages/{examples → documentation/examples}/fullscreen/layout_demo.py +0 -0
  261. /solara/website/pages/{examples → documentation/examples}/fullscreen/multipage.py +0 -0
  262. /solara/website/pages/{examples → documentation/examples}/fullscreen/scatter.py +0 -0
  263. /solara/website/pages/{examples → documentation/examples}/fullscreen/scrolling.py +0 -0
  264. /solara/website/pages/{examples → documentation/examples}/fullscreen/tutorial_streamlit.py +0 -0
  265. /solara/website/pages/{examples → documentation/examples}/general/__init__.py +0 -0
  266. /solara/website/pages/{examples → documentation/examples}/general/live_update.py +0 -0
  267. /solara/website/pages/{examples → documentation/examples}/general/mycard.vue +0 -0
  268. /solara/website/pages/{examples → documentation/examples}/general/pokemon_search.py +0 -0
  269. /solara/website/pages/{examples → documentation/examples}/ipycanvas.py +0 -0
  270. /solara/website/pages/{examples → documentation/examples}/libraries/__init__.py +0 -0
  271. /solara/website/pages/{examples → documentation/examples}/libraries/bqplot.py +0 -0
  272. /solara/website/pages/{examples → documentation/examples}/libraries/ipyleaflet.py +0 -0
  273. /solara/website/pages/{examples → documentation/examples}/utilities/__init__.py +0 -0
  274. /solara/website/pages/{examples → documentation/examples}/utilities/calculator.py +0 -0
  275. /solara/website/pages/{examples → documentation/examples}/utilities/todo.py +0 -0
  276. /solara/website/pages/{examples → documentation/examples}/visualization/__init__.py +0 -0
  277. /solara/website/pages/{examples → documentation/examples}/visualization/annotator.py +0 -0
  278. /solara/website/pages/{examples → documentation/examples}/visualization/linked_views.py +0 -0
  279. /solara/website/pages/{docs/content/04-tutorial → documentation/getting_started/content/04-tutorials}/10_data_science.py +0 -0
  280. /solara/website/pages/{docs/content/04-tutorial → documentation/getting_started/content/04-tutorials}/60-jupyter-dashboard-part1.py +0 -0
  281. /solara/website/pages/{docs/content/04-tutorial → documentation/getting_started/content/04-tutorials}/SF_crime_sample.csv.gz +0 -0
  282. /solara/website/pages/{docs/content/04-tutorial → documentation/getting_started/content/04-tutorials}/_jupyter_dashboard_1.ipynb +0 -0
  283. {solara-1.29.1.data → solara-1.30.1.data}/data/etc/jupyter/jupyter_notebook_config.d/solara.json +0 -0
  284. {solara-1.29.1.data → solara-1.30.1.data}/data/etc/jupyter/jupyter_server_config.d/solara.json +0 -0
  285. {solara-1.29.1.dist-info → solara-1.30.1.dist-info}/entry_points.txt +0 -0
  286. {solara-1.29.1.dist-info → solara-1.30.1.dist-info}/licenses/LICENSE +0 -0
@@ -5,15 +5,14 @@ These are the components available in Solara to build chat interfaces.
5
5
  Although they can be used together to create a pre-built chat interface, inserting custom components is also possible.
6
6
  For an example of how to use a custom message component, see the bottom of the page.
7
7
 
8
- Also check out the [Chatbot](/examples/ai/chatbot) example.
8
+ Also check out the [Chatbot](/documentation/examples/ai/chatbot) example.
9
9
 
10
10
  # ChatBox
11
11
  """
12
12
  import solara
13
+ from solara.website.components import NoPage
13
14
  from solara.website.utils import apidoc
14
15
 
15
- from . import NoPage
16
-
17
16
  title = "Chat Components"
18
17
 
19
18
 
@@ -42,7 +42,7 @@ def Page():
42
42
 
43
43
  """
44
44
 
45
- from . import NoPage
45
+ from solara.website.components import NoPage
46
46
 
47
47
  title = "Cookies and Headers"
48
48
  Page = NoPage
@@ -6,10 +6,9 @@ This page contains the two variants of datepickers available in solara
6
6
  # InputDate
7
7
  """
8
8
  import solara
9
+ from solara.website.components import NoPage
9
10
  from solara.website.utils import apidoc
10
11
 
11
- from . import NoPage
12
-
13
12
  title = "InputDate"
14
13
 
15
14
 
@@ -6,10 +6,9 @@ This page contains the various kinds of menu elements available to use in solara
6
6
  # Menu
7
7
  """
8
8
  import solara
9
+ from solara.website.components import NoPage
9
10
  from solara.website.utils import apidoc
10
11
 
11
- from . import NoPage
12
-
13
12
  title = "Menus"
14
13
 
15
14
 
@@ -4,10 +4,9 @@
4
4
  import solara
5
5
  import solara.autorouting
6
6
  import solara.lab
7
+ from solara.website.components import NoPage
7
8
  from solara.website.utils import apidoc
8
9
 
9
- from . import NoPage
10
-
11
10
  title = "Task"
12
11
  Page = NoPage
13
12
  __doc__ += apidoc(solara.lab.task) # type: ignore
@@ -64,10 +64,9 @@ responds to the theme variant change.
64
64
  """
65
65
 
66
66
  import solara
67
+ from solara.website.components import NoPage
67
68
  from solara.website.utils import apidoc
68
69
 
69
- from . import NoPage
70
-
71
70
  title = "Themes"
72
71
  Page = NoPage
73
72
  __doc__ += apidoc(solara.lab.ThemeToggle) # type: ignore
@@ -4,10 +4,9 @@
4
4
  import solara
5
5
  import solara.autorouting
6
6
  import solara.lab
7
+ from solara.website.components import NoPage
7
8
  from solara.website.utils import apidoc
8
9
 
9
- from . import NoPage
10
-
11
10
  title = "use_task"
12
11
  Page = NoPage
13
12
  __doc__ += apidoc(solara.lab.use_task) # type: ignore
@@ -0,0 +1,9 @@
1
+ import solara
2
+ from solara.website.components import NoPage, SubCategoryLayout
3
+
4
+ Page = NoPage
5
+
6
+
7
+ @solara.component
8
+ def Layout(children=[]):
9
+ SubCategoryLayout(children=children)
@@ -4,10 +4,9 @@
4
4
  """
5
5
  import solara
6
6
  import solara.lab
7
+ from solara.website.components import NoPage
7
8
  from solara.website.utils import apidoc
8
9
 
9
- from . import NoPage
10
-
11
10
  title = "AppBar"
12
11
 
13
12
  Page = NoPage
@@ -4,10 +4,9 @@
4
4
  """
5
5
  import solara
6
6
  import solara.lab
7
+ from solara.website.components import NoPage
7
8
  from solara.website.utils import apidoc
8
9
 
9
- from . import NoPage
10
-
11
10
  title = "AppBarTitle"
12
11
 
13
12
  Page = NoPage
@@ -4,10 +4,9 @@
4
4
  """
5
5
  import solara
6
6
  import solara.lab
7
+ from solara.website.components import NoPage
7
8
  from solara.website.utils import apidoc
8
9
 
9
- from . import NoPage
10
-
11
10
  title = "Card"
12
11
 
13
12
  Page = NoPage
@@ -4,10 +4,9 @@
4
4
  """
5
5
  import solara
6
6
  import solara.lab
7
+ from solara.website.components import NoPage
7
8
  from solara.website.utils import apidoc
8
9
 
9
- from . import NoPage
10
-
11
10
  title = "CardActions"
12
11
 
13
12
  Page = NoPage
@@ -8,7 +8,7 @@ import textwrap
8
8
 
9
9
  import solara
10
10
 
11
- from .common import ColorCard
11
+ from ..common import ColorCard
12
12
 
13
13
  title = "GridDraggable"
14
14
 
@@ -6,7 +6,7 @@ Lays out children in a grid with a fixed number of columns.
6
6
 
7
7
  import solara
8
8
 
9
- from .common import ColorCard
9
+ from ..common import ColorCard
10
10
 
11
11
  title = "GridFixed"
12
12
 
@@ -4,7 +4,7 @@ Lays out children in horizontal direction.
4
4
  """
5
5
  import solara
6
6
 
7
- from .common import ColorCard
7
+ from ..common import ColorCard
8
8
 
9
9
 
10
10
  @solara.component
@@ -6,7 +6,7 @@ Lays out children in a vertical direction.
6
6
 
7
7
  import solara
8
8
 
9
- from .common import ColorCard
9
+ from ..common import ColorCard
10
10
 
11
11
 
12
12
  @solara.component
@@ -0,0 +1,9 @@
1
+ import solara
2
+ from solara.website.components import NoPage, SubCategoryLayout
3
+
4
+ Page = NoPage
5
+
6
+
7
+ @solara.component
8
+ def Layout(children=[]):
9
+ SubCategoryLayout(children=children)
@@ -2,10 +2,9 @@
2
2
 
3
3
  """
4
4
  import solara
5
+ from solara.website.components import NoPage
5
6
  from solara.website.utils import apidoc
6
7
 
7
- from . import NoPage
8
-
9
8
  Page = NoPage
10
9
  title = "FileDownload"
11
10
 
@@ -2,10 +2,9 @@
2
2
 
3
3
  """
4
4
  import solara
5
+ from solara.website.components import NoPage
5
6
  from solara.website.utils import apidoc
6
7
 
7
- from . import NoPage
8
-
9
8
  Page = NoPage
10
9
  title = "Image"
11
10
 
@@ -2,10 +2,9 @@
2
2
 
3
3
  """
4
4
  import solara
5
+ from solara.website.components import NoPage
5
6
  from solara.website.utils import apidoc
6
7
 
7
- from . import NoPage
8
-
9
8
  Page = NoPage
10
9
  title = "Tooltip"
11
10
 
@@ -0,0 +1,9 @@
1
+ import solara
2
+ from solara.website.components import NoPage, SubCategoryLayout
3
+
4
+ Page = NoPage
5
+
6
+
7
+ @solara.component
8
+ def Layout(children=[]):
9
+ SubCategoryLayout(children=children)
@@ -0,0 +1,9 @@
1
+ import solara
2
+ from solara.website.components import NoPage, SubCategoryLayout
3
+
4
+ Page = NoPage
5
+
6
+
7
+ @solara.component
8
+ def Layout(children=[]):
9
+ SubCategoryLayout(children=children)
@@ -2,9 +2,9 @@
2
2
 
3
3
  Solara has 4 types of alerts:
4
4
 
5
- * [Success](/api/success)
6
- * [Info](/api/info)
7
- * [Warning](/api/warning)
5
+ * [Success](/documentation/components/status/success)
6
+ * [Info](/documentation/components/status/info)
7
+ * [Warning](/documentation/components/status/warning)
8
8
  * Error (this page)
9
9
 
10
10
 
@@ -2,10 +2,10 @@
2
2
 
3
3
  Solara has 4 types of alerts:
4
4
 
5
- * [Success](/api/success)
5
+ * [Success](/documentation/components/status/success)
6
6
  * Info (this page)
7
- * [Warning](/api/warning)
8
- * [Error](/api/error)
7
+ * [Warning](/documentation/components/status/warning)
8
+ * [Error](/documentation/components/status/error)
9
9
 
10
10
 
11
11
 
@@ -1,10 +1,9 @@
1
1
  """# ProgressLinear
2
2
  """
3
3
  import solara
4
+ from solara.website.components import NoPage
4
5
  from solara.website.utils import apidoc
5
6
 
6
- from . import NoPage
7
-
8
7
  Page = NoPage
9
8
 
10
9
 
@@ -2,10 +2,9 @@
2
2
  # SpinnerSolara
3
3
  """
4
4
  import solara
5
+ from solara.website.components import NoPage
5
6
  from solara.website.utils import apidoc
6
7
 
7
- from . import NoPage
8
-
9
8
  Page = NoPage
10
9
 
11
10
  __doc__ += apidoc(solara.SpinnerSolara.f) # type: ignore
@@ -3,9 +3,9 @@
3
3
  Solara has 4 types of alerts:
4
4
 
5
5
  * Success (this page)
6
- * [Info](/api/info)
7
- * [Warning](/api/warning)
8
- * [Error](/api/error)
6
+ * [Info](/documentation/components/status/info)
7
+ * [Warning](/documentation/components/status/warning)
8
+ * [Error](/documentation/components/status/error)
9
9
 
10
10
 
11
11
 
@@ -2,10 +2,10 @@
2
2
 
3
3
  Solara has 4 types of alerts:
4
4
 
5
- * [Success](/api/success)
6
- * [Info](/api/info)
5
+ * [Success](/documentation/components/status/success)
6
+ * [Info](/documentation/components/status/info)
7
7
  * Warning (this page)
8
- * [Error](/api/error)
8
+ * [Error](/documentation/components/status/error)
9
9
 
10
10
 
11
11
 
@@ -0,0 +1,9 @@
1
+ import solara
2
+ from solara.website.components import NoPage, SubCategoryLayout
3
+
4
+ Page = NoPage
5
+
6
+
7
+ @solara.component
8
+ def Layout(children=[]):
9
+ SubCategoryLayout(children=children)
@@ -10,6 +10,7 @@ This can be significantly faster than comparing he figure data directly.
10
10
  """
11
11
 
12
12
  import plotly.express as px
13
+
13
14
  import solara
14
15
 
15
16
  df = px.data.iris()
@@ -1,52 +1,12 @@
1
- # import inspect
2
- # import urllib.parse
3
-
4
1
  import solara
2
+ from solara.website.components import Gallery
5
3
 
6
4
  title = "Examples"
7
5
 
8
6
 
9
7
  @solara.component
10
- def Page():
11
- # show a gallery of all the examples
12
- router = solara.use_router()
13
- route_current = router.path_routes[-2]
14
-
15
- for route in route_current.children:
16
- if route.children:
17
- solara.Markdown(f"## {route.label}\n" + (route.module.__doc__ or ""))
18
- with solara.ColumnsResponsive(12, 6, 6, 6, 4):
19
- for child in route.children:
20
- path = route.path + "/" + child.path
21
- if child.path in [
22
- "tokenizer",
23
- "sine",
24
- "authorization",
25
- "layout_demo",
26
- "multipage",
27
- "scatter",
28
- "scrolling",
29
- "tutorial_streamlit",
30
- "login_oauth",
31
- "pokemon_search",
32
- "altair",
33
- "bqplot",
34
- "ipyleaflet",
35
- "calculator",
36
- "countdown_timer",
37
- "todo",
38
- ]:
39
- image = route.path + "/" + child.path + ".png"
40
- image_url = "https://dxhl76zpt6fap.cloudfront.net/public/examples/" + image
41
- else:
42
- image_url = "https://dxhl76zpt6fap.cloudfront.net/public/logo.svg"
43
-
44
- path = getattr(child.module, "redirect", path)
45
- if path:
46
- with solara.Card(child.label, style="height: 100%;"):
47
- with solara.Link(path):
48
- with solara.Column(align="center"):
49
- solara.Image(image_url, width="120px" if image_url.endswith(".svg") else "100%")
8
+ def Page(route_external=None):
9
+ Gallery(route_external)
50
10
 
51
11
 
52
12
  @solara.component
@@ -10,7 +10,7 @@ function to get a unique id tied to the users browser. This can be used to store
10
10
 
11
11
  In case you want to store state/data scoped to a user, you can use a similar strategy, but use a unique identifier based on the user,
12
12
  instead of the session id. You can take a look at [Our oauth example](examples/general/login_oauth) or
13
- [the authorization example](/examples/apps/authorization) for inspiration.
13
+ [the authorization example](/apps/authorization) for inspiration.
14
14
 
15
15
  """
16
16
  from typing import Dict
@@ -1,7 +1,8 @@
1
1
  """# Deploy model demo
2
2
 
3
- This show off a combination of [solara.lab.Menu](/api/menu) and [solara.lab.ConfirmationDialog](/api/confirmation_dialog)
4
- and [solara.use_thread](/api/use_thread) to demonstrate how to tune, fit and deploy a model.
3
+ This show off a combination of [solara.lab.Menu](/documentation/components/lab/menu) and
4
+ [solara.lab.ConfirmationDialog](/documentation/components/lab/confirmation_dialog)
5
+ and [solara.use_thread](/documentation/api/hooks/use_thread) to demonstrate how to tune, fit and deploy a model.
5
6
  The actually deployment is not real, but simulated by a thread that returns a boolean value on success and sleep for a while to
6
7
  similate the deployment taking time.
7
8
 
@@ -15,7 +16,6 @@ import time
15
16
  import numpy as np
16
17
  import pandas as pd
17
18
  import plotly.express as px
18
-
19
19
  import solara
20
20
  import solara.lab
21
21
 
@@ -54,7 +54,7 @@ def Page():
54
54
 
55
55
  This is the raw user data from the auth provider.
56
56
 
57
- We use the `picture` field to display an avatar in the [AppBar](/api/appbar).
57
+ We use the `picture` field to display an avatar in the [AppBar](/documentation/components/layout/app_bar).
58
58
  """
59
59
  )
60
60
  sl.Preformatted(pprint.pformat(auth.user.value))
@@ -4,7 +4,7 @@ Although many components can be made from the Python side, sometimes it is easie
4
4
  It can also be beneficial for performance, since instead of creating many widgets from the Python side we only send data to
5
5
  the frontend. If event handling is also done on the frontend, this reduces latency and makes you app feel much smoother.
6
6
 
7
- See [the API documentation on component_vue](/api/component_vue) for more information.
7
+ See [the API documentation on component_vue](/documentation/api/utilities/component_vue) for more information.
8
8
 
9
9
  This example is based on [the vuetify docs](https://v2.vuetifyjs.com/en/components/sparklines/#custom-labels),
10
10
  Note that the "Go to report" button does not do anything yet.
@@ -14,7 +14,6 @@ Note that the "Go to report" button does not do anything yet.
14
14
  from typing import Callable
15
15
 
16
16
  import numpy as np
17
-
18
17
  import solara
19
18
 
20
19
  seed = solara.reactive(42)
@@ -2,16 +2,15 @@
2
2
 
3
3
  [Altair](https://altair-viz.github.io/index.html) is a declarative statistical visualization library for Python.
4
4
 
5
- This example show how to use the [on_click handler](/api/altair) to display data for a specific day in the chart.
5
+ This example show how to use the [on_click handler](/documentation/components/viz/altair) to display data for a specific day in the chart.
6
6
 
7
7
  Based on [an Altair example](https://altair-viz.github.io/gallery/annual_weather_heatmap.html)
8
8
 
9
9
  """
10
10
  import altair as alt
11
11
  import pandas as pd
12
- from vega_datasets import data
13
-
14
12
  import solara
13
+ from vega_datasets import data
15
14
 
16
15
  # title = "Altair visualization"
17
16
  source = data.seattle_weather()
@@ -1,7 +1,7 @@
1
1
  """
2
2
  # ipyleaflet advanced
3
3
 
4
- Extends the [basic ipyleaflet example](/examples/libraries/ipyleaflet) with a marker that can be dragged around, and a
4
+ Extends the [basic ipyleaflet example](/documentation/examples/libraries/ipyleaflet) with a marker that can be dragged around, and a
5
5
  dropdown to select the map style. Two buttons allow to reset the map to the default zoom and center and to zoom
6
6
  to the marker.
7
7
  """
@@ -1,6 +1,6 @@
1
1
  """# Countdown timer.
2
2
 
3
- This example shows how to use [use_thread](/api/use_thread) to create a countdown timer.
3
+ This example shows how to use [use_thread](/documentation/api/hooks/use_thread) to create a countdown timer.
4
4
 
5
5
  The UI code demonstrates a lot of conditional rendering.
6
6
 
@@ -8,12 +8,11 @@ Inspired by the dash documentation.
8
8
  ## Note
9
9
 
10
10
  Solara supports plotly and plotly express. Create your figure (not a figure widget)
11
- and pass it to the [FigurePlotly](/api/plotly) component.
11
+ and pass it to the [FigurePlotly](/documentation/components/viz/plotly) component.
12
12
 
13
13
  """
14
14
  import pandas as pd
15
15
  import plotly.express as px
16
-
17
16
  import solara
18
17
 
19
18
  title = "Scatter plot using Plotly"
@@ -0,0 +1,12 @@
1
+ from pathlib import Path
2
+
3
+ import solara
4
+ from solara.website.components.markdown import MarkdownWithMetadata
5
+
6
+ title = "FAQ"
7
+ HERE = Path(__file__)
8
+
9
+
10
+ @solara.component
11
+ def Page(route_external=None):
12
+ MarkdownWithMetadata(Path(HERE.parent / "content" / "99-faq.md").read_text())
@@ -1,4 +1,7 @@
1
-
1
+ ---
2
+ title: FAQ about Solara
3
+ description: Answers to some common questions about using Solara, and building your app using the framework
4
+ ---
2
5
  # FAQ
3
6
 
4
7
  ## I am not interested in the server, I'm happy with Jupyter/Voila, what's in it for me?
@@ -0,0 +1,9 @@
1
+ from pathlib import Path
2
+
3
+ from solara.autorouting import generate_routes_directory
4
+ from solara.website.components.markdown import MarkdownWithMetadata
5
+
6
+ HERE = Path(__file__)
7
+ # if we didn't put the content in the subdirectory, but pointed to the current file
8
+ # we would include the current file recursively, causing an infinite loop
9
+ routes = generate_routes_directory(HERE.parent / "content", MarkdownWithMetadata)
@@ -1,3 +1,8 @@
1
+ ---
2
+ title: Solara Quickstart
3
+ description: Get started with building web- and data-apps in pure python with Solara.
4
+ ---
5
+
1
6
  # Quickstart
2
7
 
3
8
  This 1-minute quickstart will get you to:
@@ -7,12 +12,12 @@ This 1-minute quickstart will get you to:
7
12
  * Run your script using Solara server.
8
13
  * (Optional) Reuse your code in the Jupyter notebook.
9
14
 
10
- If you are an existing ipywidget user and do not want to learn the component based method, you might want to skip the quickstart and directly go to the [IPywidgets user tutorial](/docs/tutorial/ipywidgets).
15
+ If you are an existing ipywidget user and do not want to learn the component based method, you might want to skip the quickstart and directly go to the [IPywidgets user tutorial](/documentation/getting_started/tutorials/ipywidgets).
11
16
 
12
17
  ## Installation
13
18
 
14
19
 
15
- Run `pip install solara`, or follow the [Installation instructions](/docs/installing) for more detailed instructions.
20
+ Run `pip install solara`, or follow the [Installation instructions](/documentation/getting_started/installing) for more detailed instructions.
16
21
 
17
22
 
18
23
  ## First script