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
@@ -1,292 +0,0 @@
1
- """
2
- # Overview
3
- Click on one of the items on the left.
4
- """
5
-
6
- import solara
7
- from solara.alias import rv
8
-
9
- from .. import List
10
- from .. import SimpleListItem as ListItem
11
-
12
- _title = "API"
13
-
14
-
15
- # @solara.component
16
- # def Page():
17
- # return solara.Markdown(__doc__)
18
-
19
- items = [
20
- {
21
- "name": "Input",
22
- "icon": "mdi-chevron-left-box",
23
- "pages": ["button", "checkbox", "input", "select", "slider", "switch", "togglebuttons", "file_browser", "file_drop"],
24
- },
25
- {
26
- "name": "Output",
27
- "icon": "mdi-chevron-right-box",
28
- "pages": ["markdown", "markdown_editor", "html", "image", "sql_code", "file_download", "tooltip"],
29
- },
30
- {
31
- "name": "Status",
32
- "icon": "mdi-information",
33
- "pages": ["success", "info", "warning", "error", "spinner", "progress"],
34
- },
35
- {
36
- "name": "Viz",
37
- "icon": "mdi-chart-histogram",
38
- "pages": ["altair", "echarts", "matplotlib", "plotly", "plotly_express"],
39
- },
40
- {
41
- "name": "Layout",
42
- "icon": "mdi-page-layout-sidebar-left",
43
- "pages": [
44
- "app_layout",
45
- "app_bar",
46
- "app_bar_title",
47
- "card",
48
- "card_actions",
49
- "columns",
50
- "columns_responsive",
51
- "column",
52
- "row",
53
- "griddraggable",
54
- "gridfixed",
55
- "sidebar",
56
- "hbox",
57
- "vbox",
58
- ],
59
- },
60
- {
61
- "name": "Data",
62
- "icon": "mdi-database",
63
- "pages": ["dataframe", "pivot_table"],
64
- },
65
- {
66
- "name": "Page",
67
- "icon": "mdi-file-code",
68
- "pages": ["head", "title"],
69
- },
70
- {
71
- "name": "Hooks",
72
- "icon": "mdi-hook",
73
- "pages": [
74
- "use_cross_filter",
75
- "use_thread",
76
- "use_exception",
77
- "use_effect",
78
- "use_memo",
79
- "use_previous",
80
- "use_reactive",
81
- "use_state",
82
- "use_state_or_update",
83
- "use_trait_observe",
84
- ],
85
- },
86
- {
87
- "name": "Types",
88
- "icon": "mdi-fingerprint",
89
- "pages": ["route"],
90
- },
91
- {
92
- "name": "Routing",
93
- "icon": "mdi-router",
94
- "pages": ["use_route", "use_router", "resolve_path", "generate_routes", "generate_routes_directory", "link"],
95
- },
96
- {
97
- "name": "Utils",
98
- "icon": "mdi-hammer-wrench",
99
- "pages": [
100
- "display",
101
- "get_kernel_id",
102
- "get_session_id",
103
- "memoize",
104
- "reactive",
105
- "widget",
106
- "component_vue",
107
- ],
108
- },
109
- {
110
- "name": "Advanced",
111
- "icon": "mdi-head-cog-outline",
112
- "pages": ["style", "meta"],
113
- },
114
- {
115
- "name": "Cross filter",
116
- "icon": "mdi-filter-variant-remove",
117
- "pages": ["cross_filter_dataframe", "cross_filter_report", "cross_filter_slider", "cross_filter_select"],
118
- },
119
- {
120
- "name": "Enterprise",
121
- "icon": "mdi-office-building",
122
- "pages": ["avatar", "avatar_menu"],
123
- },
124
- {
125
- "name": "Lab (experimental)",
126
- "icon": "mdi-flask-outline",
127
- "pages": [
128
- "computed",
129
- "chat",
130
- "confirmation_dialog",
131
- "cookies_headers",
132
- "menu",
133
- "input_date",
134
- "on_kernel_start",
135
- "tab",
136
- "tabs",
137
- "task",
138
- "theming",
139
- "use_task",
140
- "use_dark_effective",
141
- ],
142
- },
143
- ]
144
-
145
-
146
- @solara.component
147
- def Page():
148
- # show a gallery of all the api pages
149
- router = solara.use_router()
150
- route_current = router.path_routes[-2]
151
-
152
- routes = {r.path: r for r in route_current.children}
153
-
154
- for item in items:
155
- solara.Markdown(f"## {item['name']}")
156
- with solara.ColumnsResponsive(12, 6, 6, 4, 4):
157
- for page in item["pages"]:
158
- if page not in routes:
159
- continue
160
- route = routes[page]
161
- path = route.path
162
- image_url = None
163
- if page in [
164
- "button",
165
- "checkbox",
166
- "confirmation_dialog",
167
- "echarts",
168
- "file_browser",
169
- "file_download",
170
- "matplotlib",
171
- "select",
172
- "switch",
173
- "tooltip",
174
- ]:
175
- image_url = "https://dxhl76zpt6fap.cloudfront.net/public/api/" + page + ".gif"
176
- elif page in ["card", "dataframe", "pivot_table", "slider"]:
177
- image_url = "https://dxhl76zpt6fap.cloudfront.net/public/api/" + page + ".png"
178
- else:
179
- image_url = "https://dxhl76zpt6fap.cloudfront.net/public/logo.svg"
180
-
181
- path = getattr(route.module, "redirect", path)
182
- if path:
183
- with rv.Card(
184
- elevation=2,
185
- dark=False,
186
- height="100%",
187
- style_="display: flex; flex-direction: column; justify-content: space-between;",
188
- ):
189
- rv.CardTitle(children=[route.label])
190
- with rv.CardText():
191
- with solara.Link(path):
192
- with solara.Column(align="center"):
193
- solara.Image(image_url, width="120px")
194
- doc = route.module.__doc__ or ""
195
- if doc:
196
- lines = doc.split("\n")
197
- lines = [line.strip() for line in lines if line.strip()]
198
- first = lines[1]
199
-
200
- rv.CardText(
201
- children=[solara.Markdown(first)],
202
- )
203
-
204
-
205
- @solara.component
206
- def NoPage():
207
- raise RuntimeError("This page should not be rendered")
208
-
209
-
210
- @solara.component
211
- def Sidebar(children=[], level=0):
212
- # note that we don't use children here, but we used route.module instead to ge the module
213
- # this is fine because all api/*.py files use the standard Page component, and do not add
214
- # a new Layout component
215
- route_current, all_routes = solara.use_route()
216
- if route_current is None:
217
- return solara.Error("Page not found")
218
-
219
- # keeps track of which routes we includes
220
- routes = {r.path: r for r in all_routes.copy()}
221
-
222
- def add(path):
223
- route = routes[path]
224
- with solara.Link(route):
225
- ListItem(route.label, class_="active" if route_current is not None and path == route_current.path else None)
226
- del routes[path]
227
-
228
- # with solara.HBox(grow=True) as main:
229
- with rv.Col(tag="aside", md=4, lg=3, class_="sidebar bg-grey d-none d-md-block") as main:
230
- with solara.Head():
231
- name = route_current.label if route_current.label is not None else "No name"
232
- if name == "API":
233
- solara.Title("Solara » API overview")
234
- else:
235
- solara.Title("Solara » API » " + name)
236
- with List():
237
- add("/")
238
-
239
- for item in items:
240
- with ListItem(item["name"], icon_name=item["icon"]):
241
- with List():
242
- for component in item["pages"]:
243
- add(component)
244
-
245
- if routes:
246
- print(f"Routes not used: {list(routes.keys())}") # noqa
247
-
248
- return main
249
-
250
-
251
- @solara.component
252
- def Layout(children=[]):
253
- route_current, all_routes = solara.use_route()
254
- if route_current is None:
255
- return solara.Error("Page not found")
256
-
257
- if route_current.path == "/":
258
- return Page()
259
- else:
260
- with solara.HBox(grow=True) as main:
261
- with solara.Padding(4):
262
- if route_current.module:
263
- # we ignore children, and make the element again
264
- WithCode(route_current.module)
265
- return main
266
-
267
-
268
- @solara.component
269
- def WithCode(module):
270
- # e = solara.use_exception_handler()
271
- # if e is not None:
272
- # return solara.Error("oops")
273
- component = getattr(module, "Page", None)
274
- with rv.Sheet() as main:
275
- # It renders code better
276
- solara.Markdown(
277
- module.__doc__ or "# no docs yet",
278
- unsafe_solara_execute=True,
279
- )
280
- if component and component != NoPage:
281
- with solara.Card("Example", margin=0, classes=["mt-8"]):
282
- component()
283
- github_url = solara.util.github_url(module.__file__)
284
- solara.Button(
285
- label="View source",
286
- icon_name="mdi-github-circle",
287
- attributes={"href": github_url, "target": "_blank"},
288
- text=True,
289
- outlined=True,
290
- class_="mt-8",
291
- )
292
- return main
@@ -1,16 +0,0 @@
1
- """# DefaultLayout
2
-
3
- """
4
-
5
- import solara
6
- from solara.website.utils import apidoc
7
-
8
- title = "DefaultLayout"
9
-
10
-
11
- @solara.component
12
- def Page():
13
- return solara.Warning("This component does not render well as a child component. If you want to see it, you should follow the multipage guide above 🙂")
14
-
15
-
16
- __doc__ += apidoc(solara.DefaultLayout.f) # type: ignore
@@ -1,36 +0,0 @@
1
- """
2
- # FileDrop
3
- """
4
- import textwrap
5
-
6
- import solara
7
- from solara.components.file_drop import FileInfo
8
- from solara.website.utils import apidoc
9
-
10
-
11
- @solara.component
12
- def Page():
13
- content, set_content = solara.use_state(b"")
14
- filename, set_filename = solara.use_state("")
15
- size, set_size = solara.use_state(0)
16
-
17
- def on_file(file: FileInfo):
18
- set_filename(file["name"])
19
- set_size(file["size"])
20
- f = file["file_obj"]
21
- set_content(f.read(100))
22
-
23
- with solara.Div() as main:
24
- solara.FileDrop(
25
- label="Drag and drop a file here to read the first 100 bytes",
26
- on_file=on_file,
27
- lazy=True, # We will only read the first 100 bytes
28
- )
29
- if content:
30
- solara.Info(f"File {filename} has total length: {size}\n, first 100 bytes:")
31
- solara.Preformatted("\n".join(textwrap.wrap(repr(content))))
32
-
33
- return main
34
-
35
-
36
- __doc__ += apidoc(solara.FileDrop.f) # type: ignore
@@ -1,9 +0,0 @@
1
- # Tutorials
2
-
3
- Instead of having one tutorial, we have tutorials for different audiences.
4
-
5
- * [Jupyter Dashboard](/docs/tutorial/jupyter-dashboard-part1): Learn to create a dashboard in the Jupyter notebook.
6
- * [Data science](/docs/tutorial/data-science): In this tutorial, we will introduce Solara from the perspective of a data scientist or when you are thinking of using Solara for a data science app.
7
- * [Web app](/docs/tutorial/web-app): You are not a data scientist, but you are interested in using Solara to create a web app using Pure Python.
8
- * [IPywidgets user](/docs/tutorial/ipywidgets): If you are already using [ipywidgets](/docs/understanding/ipywidgets) you will learn how to use the [Solara server](/docs/understanding/solara-server) to render your regular ipywidget applications.
9
- * [Streamlit](/docs/tutorial/streamlit): If you are an existing Streamlit user, this might appeal more to you.
@@ -1,7 +0,0 @@
1
- # Fundamentals
2
-
3
- If you want to dive deeper into Solara, this section is for you. We will cover the following topics:
4
-
5
- * [Components](/docs/fundamentals/components)
6
- * Hooks (soon)
7
- * [State management](/docs/fundamentals/state-management)
@@ -1,6 +0,0 @@
1
- # Reference documentation
2
-
3
- Our reference documentation informs you about how certain parts in Solara work.
4
-
5
- The [API docs](/api) are considered part of the reference documentation, but because of the
6
- large content has its own page.
@@ -1,4 +0,0 @@
1
- # Introduction
2
-
3
- Solara builds on existing technologies. If you are new to Solara or some of the underlying technologies, you may feel lost at times.
4
- These 'understanding' guides are meant to help you understand topics at a deeper level and how they connect to Solara.
@@ -1,3 +0,0 @@
1
- # Rules of hooks
2
-
3
- For now, we refer to the [ReactJS documentation](https://reactjs.org/docs/hooks-rules.html).
@@ -1,3 +0,0 @@
1
- # Deploying a solara app
2
-
3
- A Solara app can be [self hosted](/docs/deploying/self-hosted) or [cloud hosted](/docs/deploying/cloud-hosted).
@@ -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.