solara 1.30.1__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 (438) hide show
  1. {solara-1.30.1.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.1.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 -545
  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 -110
  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 -88
  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 -396
  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/markdown.py +0 -30
  187. solara/website/components/notebook.py +0 -172
  188. solara/website/pages/__init__.py +0 -575
  189. solara/website/pages/apps/__init__.py +0 -16
  190. solara/website/pages/apps/authorization/__init__.py +0 -118
  191. solara/website/pages/apps/authorization/admin.py +0 -12
  192. solara/website/pages/apps/authorization/users.py +0 -12
  193. solara/website/pages/apps/jupyter-dashboard-1.py +0 -116
  194. solara/website/pages/apps/layout-demo.py +0 -40
  195. solara/website/pages/apps/multipage/__init__.py +0 -38
  196. solara/website/pages/apps/multipage/page1.py +0 -26
  197. solara/website/pages/apps/multipage/page2.py +0 -34
  198. solara/website/pages/apps/scatter.py +0 -136
  199. solara/website/pages/apps/scrolling.py +0 -63
  200. solara/website/pages/apps/tutorial-streamlit.py +0 -18
  201. solara/website/pages/changelog/__init__.py +0 -8
  202. solara/website/pages/changelog/changelog.md +0 -195
  203. solara/website/pages/contact/__init__.py +0 -8
  204. solara/website/pages/contact/contact.md +0 -17
  205. solara/website/pages/doc_use_download.py +0 -85
  206. solara/website/pages/documentation/__init__.py +0 -184
  207. solara/website/pages/documentation/advanced/__init__.py +0 -9
  208. solara/website/pages/documentation/advanced/content/00-overview.md +0 -1
  209. solara/website/pages/documentation/advanced/content/10-howto/00-overview.md +0 -6
  210. solara/website/pages/documentation/advanced/content/10-howto/10-multipage.md +0 -196
  211. solara/website/pages/documentation/advanced/content/10-howto/20-layout.md +0 -125
  212. solara/website/pages/documentation/advanced/content/10-howto/30-testing.md +0 -154
  213. solara/website/pages/documentation/advanced/content/10-howto/31-debugging.md +0 -69
  214. solara/website/pages/documentation/advanced/content/10-howto/40-embed.md +0 -49
  215. solara/website/pages/documentation/advanced/content/10-howto/50-ipywidget_libraries.md +0 -124
  216. solara/website/pages/documentation/advanced/content/20-understanding/00-introduction.md +0 -10
  217. solara/website/pages/documentation/advanced/content/20-understanding/05-ipywidgets.md +0 -35
  218. solara/website/pages/documentation/advanced/content/20-understanding/06-ipyvuetify.md +0 -42
  219. solara/website/pages/documentation/advanced/content/20-understanding/10-reacton.md +0 -28
  220. solara/website/pages/documentation/advanced/content/20-understanding/12-reacton-basics.md +0 -108
  221. solara/website/pages/documentation/advanced/content/20-understanding/15-anatomy.md +0 -23
  222. solara/website/pages/documentation/advanced/content/20-understanding/17-rules-of-hooks.md +0 -7
  223. solara/website/pages/documentation/advanced/content/20-understanding/18-containers.md +0 -166
  224. solara/website/pages/documentation/advanced/content/20-understanding/20-solara.md +0 -18
  225. solara/website/pages/documentation/advanced/content/20-understanding/40-routing.md +0 -240
  226. solara/website/pages/documentation/advanced/content/20-understanding/50-solara-server.md +0 -86
  227. solara/website/pages/documentation/advanced/content/20-understanding/60-voila.md +0 -12
  228. solara/website/pages/documentation/advanced/content/30-enterprise/00-overview.md +0 -1
  229. solara/website/pages/documentation/advanced/content/30-enterprise/10-oauth.md +0 -171
  230. solara/website/pages/documentation/advanced/content/40-development/00-overview.md +0 -0
  231. solara/website/pages/documentation/advanced/content/40-development/01-contribute.md +0 -45
  232. solara/website/pages/documentation/advanced/content/40-development/10-setup.md +0 -76
  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 -12
  379. solara/website/pages/documentation/faq/content/99-faq.md +0 -76
  380. solara/website/pages/documentation/getting_started/__init__.py +0 -9
  381. solara/website/pages/documentation/getting_started/content/00-quickstart.md +0 -89
  382. solara/website/pages/documentation/getting_started/content/01-introduction.md +0 -125
  383. solara/website/pages/documentation/getting_started/content/02-installing.md +0 -85
  384. solara/website/pages/documentation/getting_started/content/04-tutorials/00-overview.md +0 -14
  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 -89
  387. solara/website/pages/documentation/getting_started/content/04-tutorials/30-ipywidgets.md +0 -124
  388. solara/website/pages/documentation/getting_started/content/04-tutorials/40-streamlit.md +0 -146
  389. solara/website/pages/documentation/getting_started/content/04-tutorials/50-dash.md +0 -144
  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 -11
  395. solara/website/pages/documentation/getting_started/content/05-fundamentals/10-components.md +0 -223
  396. solara/website/pages/documentation/getting_started/content/05-fundamentals/50-state-management.md +0 -88
  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 -31
  399. solara/website/pages/documentation/getting_started/content/06-reference/41-asset-files.md +0 -36
  400. solara/website/pages/documentation/getting_started/content/06-reference/60-static-site-generation.md +0 -59
  401. solara/website/pages/documentation/getting_started/content/06-reference/70-search.md +0 -34
  402. solara/website/pages/documentation/getting_started/content/06-reference/80-reloading.md +0 -34
  403. solara/website/pages/documentation/getting_started/content/06-reference/90-notebook-support.md +0 -7
  404. solara/website/pages/documentation/getting_started/content/06-reference/95-caching.md +0 -148
  405. solara/website/pages/documentation/getting_started/content/07-deploying/00-overview.md +0 -7
  406. solara/website/pages/documentation/getting_started/content/07-deploying/10-self-hosted.md +0 -273
  407. solara/website/pages/documentation/getting_started/content/07-deploying/20-cloud-hosted.md +0 -80
  408. solara/website/pages/documentation/getting_started/content/80-what-is-lab.md +0 -7
  409. solara/website/pages/documentation/getting_started/content/90-troubleshoot.md +0 -26
  410. solara/website/pages/docutils.py +0 -38
  411. solara/website/pages/showcase/__init__.py +0 -105
  412. solara/website/pages/showcase/domino_code_assist.py +0 -60
  413. solara/website/pages/showcase/planeto_tessa.py +0 -19
  414. solara/website/pages/showcase/solara_dev.py +0 -54
  415. solara/website/pages/showcase/solarathon_2023_team_2.py +0 -22
  416. solara/website/pages/showcase/solarathon_2023_team_4.py +0 -22
  417. solara/website/pages/showcase/solarathon_2023_team_5.py +0 -23
  418. solara/website/pages/showcase/solarathon_2023_team_6.py +0 -34
  419. solara/website/pages/showcase/wanderlust.py +0 -27
  420. solara/website/public/beach.jpeg +0 -0
  421. solara/website/public/logo.svg +0 -6
  422. solara/website/public/social/discord.svg +0 -1
  423. solara/website/public/social/github.svg +0 -1
  424. solara/website/public/social/twitter.svg +0 -3
  425. solara/website/public/success.html +0 -25
  426. solara/website/templates/index.html.j2 +0 -117
  427. solara/website/utils.py +0 -51
  428. solara/widgets/__init__.py +0 -1
  429. solara/widgets/vue/gridlayout.vue +0 -110
  430. solara/widgets/vue/html.vue +0 -4
  431. solara/widgets/vue/navigator.vue +0 -104
  432. solara/widgets/vue/vegalite.vue +0 -115
  433. solara/widgets/widgets.py +0 -65
  434. solara-1.30.1.data/data/etc/jupyter/jupyter_notebook_config.d/solara.json +0 -7
  435. solara-1.30.1.data/data/etc/jupyter/jupyter_server_config.d/solara.json +0 -7
  436. solara-1.30.1.dist-info/RECORD +0 -437
  437. solara-1.30.1.dist-info/entry_points.txt +0 -5
  438. /solara-1.30.1.dist-info/licenses/LICENSE → /LICENSE +0 -0
@@ -1,20 +0,0 @@
1
- """
2
- # AvatarMenu
3
-
4
- """
5
- try:
6
- from solara_enterprise import auth
7
- except ImportError:
8
- auth = None
9
- from solara.website.components import NoPage
10
- from solara.website.utils import apidoc
11
-
12
- title = "AvatarMenu"
13
-
14
- Page = NoPage
15
-
16
-
17
- if auth:
18
- __doc__ += apidoc(auth.AvatarMenu.f) # type: ignore
19
- else:
20
- __doc__ += "solara-enterprise not installed."
@@ -1,9 +0,0 @@
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)
@@ -1,22 +0,0 @@
1
- """
2
- # Button
3
-
4
- """
5
- import solara
6
- from solara.website.utils import apidoc
7
-
8
-
9
- @solara.component
10
- def Page():
11
- count, set_count = solara.use_state(0)
12
-
13
- def increment():
14
- set_count(count + 1)
15
-
16
- with solara.VBox() as main:
17
- with solara.HBox():
18
- solara.Button(label=f"Clicked {count} times", on_click=increment, icon_name="mdi-thumb-up")
19
- return main
20
-
21
-
22
- __doc__ += apidoc(solara.Button.f) # type: ignore
@@ -1,12 +0,0 @@
1
- """# Checkbox
2
-
3
- """
4
-
5
- import solara
6
- from solara.website.components import NoPage
7
- from solara.website.utils import apidoc
8
-
9
- Page = NoPage
10
-
11
-
12
- __doc__ += apidoc(solara.Checkbox.f) # type: ignore
@@ -1,33 +0,0 @@
1
- """# FileBrowser
2
-
3
- """
4
- from pathlib import Path
5
- from typing import Optional, cast
6
-
7
- import solara
8
- from solara.website.utils import apidoc
9
-
10
-
11
- @solara.component
12
- def Page():
13
- file, set_file = solara.use_state(cast(Optional[Path], None))
14
- path, set_path = solara.use_state(cast(Optional[Path], None))
15
- directory, set_directory = solara.use_state(Path("~").expanduser())
16
-
17
- with solara.VBox() as main:
18
- can_select = solara.ui_checkbox("Enable select")
19
-
20
- def reset_path():
21
- set_path(None)
22
- set_file(None)
23
-
24
- # reset path and file when can_select changes
25
- solara.use_memo(reset_path, [can_select])
26
- solara.FileBrowser(directory, on_directory_change=set_directory, on_path_select=set_path, on_file_open=set_file, can_select=can_select)
27
- solara.Info(f"You are in directory: {directory}")
28
- solara.Info(f"You selected path: {path}")
29
- solara.Info(f"You opened file: {file}")
30
- return main
31
-
32
-
33
- __doc__ += apidoc(solara.FileBrowser.f) # type: ignore
@@ -1,75 +0,0 @@
1
- """
2
- # FileDrop components
3
-
4
- FileDrop comes in two flavours:
5
-
6
- * `FileDrop` for a single file upload
7
- * `FileDropMultiple` which allows for multiple file upload
8
-
9
-
10
- """
11
- import textwrap
12
- from typing import List, cast
13
-
14
- import solara
15
- from solara.components.file_drop import FileInfo
16
- from solara.website.utils import apidoc
17
-
18
-
19
- @solara.component
20
- def FileDropMultipleDemo():
21
- content, set_content = solara.use_state(cast(List[bytes], []))
22
- filename, set_filename = solara.use_state(cast(List[str], []))
23
- size, set_size = solara.use_state(cast(List[int], []))
24
-
25
- def on_file(files: List[FileInfo]):
26
- set_filename([f["name"] for f in files])
27
- set_size([f["size"] for f in files])
28
- set_content([f["file_obj"].read(100) for f in files])
29
-
30
- solara.FileDropMultiple(
31
- label="Drag and drop files(s) here to read the first 100 bytes.",
32
- on_file=on_file,
33
- lazy=True, # We will only read the first 100 bytes
34
- )
35
- if content:
36
- solara.Info(f"Number of uploaded files: {len(filename)}")
37
- for f, s, c in zip(filename, size, content):
38
- solara.Info(f"File {f} has total length: {s}\n, first 100 bytes:")
39
- solara.Preformatted("\n".join(textwrap.wrap(repr(c))))
40
-
41
-
42
- @solara.component
43
- def FileDropDemo():
44
- content, set_content = solara.use_state(b"")
45
- filename, set_filename = solara.use_state("")
46
- size, set_size = solara.use_state(0)
47
-
48
- def on_file(f: FileInfo):
49
- set_filename(f["name"])
50
- set_size(f["size"])
51
- set_content(f["file_obj"].read(100))
52
-
53
- solara.FileDrop(
54
- label="Drag and drop a file here to read the first 100 bytes.",
55
- on_file=on_file,
56
- lazy=True, # We will only read the first 100 bytes
57
- )
58
- if content:
59
- solara.Info(f"File {filename} has total length: {size}\n, first 100 bytes:")
60
- solara.Preformatted("\n".join(textwrap.wrap(repr(content))))
61
-
62
-
63
- @solara.component
64
- def Page():
65
- with solara.Row():
66
- with solara.Card(title="FileDrop"):
67
- FileDropDemo()
68
- with solara.Card(title="FileDropMultiple"):
69
- FileDropMultipleDemo()
70
-
71
-
72
- __doc__ += "# FileDrop"
73
- __doc__ += apidoc(solara.FileDrop.f) # type: ignore
74
- __doc__ += "# FileDropMultiple"
75
- __doc__ += apidoc(solara.FileDropMultiple.f) # type: ignore
@@ -1,18 +0,0 @@
1
- """# Input fields
2
-
3
- This page contains all the input fields available in Solara.
4
-
5
- # InputText
6
- """
7
- import solara
8
- from solara.website.components import NoPage
9
- from solara.website.utils import apidoc
10
-
11
- Page = NoPage
12
-
13
-
14
- __doc__ += apidoc(solara.InputText.f) # type: ignore
15
- __doc__ += "# InputFloat"
16
- __doc__ += apidoc(solara.InputFloat.f) # type: ignore
17
- __doc__ += "# InputInt"
18
- __doc__ += apidoc(solara.InputInt.f) # type: ignore
@@ -1,21 +0,0 @@
1
- """
2
- # Select components
3
-
4
- Select comes in two flavours:
5
-
6
- * `Select` for a singular selection
7
- * `SelectMultiple` which allows for multiple selections
8
-
9
-
10
- """
11
- import solara
12
- from solara.website.components import NoPage
13
- from solara.website.utils import apidoc
14
-
15
- Page = NoPage
16
-
17
-
18
- __doc__ += "# Select"
19
- __doc__ += apidoc(solara.Select.f) # type: ignore
20
- __doc__ += "# SelectMultiple"
21
- __doc__ += apidoc(solara.SelectMultiple.f) # type: ignore
@@ -1,28 +0,0 @@
1
- """
2
- # Sliders
3
-
4
- To support proper typechecks, we have multiple slider (all wrapping the ipyvuetify sliders).
5
-
6
-
7
- """
8
- import solara
9
- from solara.website.components import NoPage
10
- from solara.website.utils import apidoc
11
-
12
- Page = NoPage
13
-
14
- __doc__ += "# SliderInt"
15
- __doc__ += apidoc(solara.SliderInt.f) # type: ignore
16
- __doc__ += "# SliderRangeInt"
17
- __doc__ += apidoc(solara.SliderRangeInt.f) # type: ignore
18
-
19
- __doc__ += "# SliderFloat"
20
- __doc__ += apidoc(solara.SliderFloat.f) # type: ignore
21
- __doc__ += "# SliderRangeFloat"
22
- __doc__ += apidoc(solara.SliderRangeFloat.f) # type: ignore
23
-
24
- __doc__ += "# SliderValue"
25
- __doc__ += apidoc(solara.SliderValue.f) # type: ignore
26
-
27
- __doc__ += "# SliderDate"
28
- __doc__ += apidoc(solara.SliderDate.f) # type: ignore
@@ -1,12 +0,0 @@
1
- """# Switch
2
-
3
- """
4
-
5
- import solara
6
- from solara.website.components import NoPage
7
- from solara.website.utils import apidoc
8
-
9
- Page = NoPage
10
-
11
-
12
- __doc__ += apidoc(solara.Switch.f) # type: ignore
@@ -1,20 +0,0 @@
1
- """
2
- # ToggleButtons
3
-
4
- ToggleButtons are in two flavours, for single, and for multiple selections.
5
-
6
-
7
- """
8
- import solara
9
- from solara.website.components import NoPage
10
- from solara.website.utils import apidoc
11
-
12
- title = "ToggleButtons"
13
-
14
- Page = NoPage
15
-
16
-
17
- __doc__ += "# ToggleButtonsSingle"
18
- __doc__ += apidoc(solara.ToggleButtonsSingle.f) # type: ignore
19
- __doc__ += "# ToggleButtonsMultiple"
20
- __doc__ += apidoc(solara.ToggleButtonsMultiple.f) # type: ignore
@@ -1,9 +0,0 @@
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)
@@ -1,108 +0,0 @@
1
- """
2
- # Chat Components
3
-
4
- These are the components available in Solara to build chat interfaces.
5
- Although they can be used together to create a pre-built chat interface, inserting custom components is also possible.
6
- For an example of how to use a custom message component, see the bottom of the page.
7
-
8
- Also check out the [Chatbot](/documentation/examples/ai/chatbot) example.
9
-
10
- # ChatBox
11
- """
12
- import solara
13
- from solara.website.components import NoPage
14
- from solara.website.utils import apidoc
15
-
16
- title = "Chat Components"
17
-
18
-
19
- __doc__ += apidoc(solara.lab.components.chat.ChatBox.f) # type: ignore
20
- __doc__ += "# ChatInput"
21
- __doc__ += apidoc(solara.lab.components.chat.ChatInput.f) # type: ignore
22
- __doc__ += "# ChatMessage"
23
- __doc__ += apidoc(solara.lab.components.chat.ChatMessage.f) # type: ignore
24
- __doc__ += """## Different Message Styles
25
-
26
- The `ChatMessage` component has a few different styles available. These are shown below.
27
-
28
- ```solara
29
- import solara
30
-
31
- @solara.component
32
- def Page():
33
- with solara.Column():
34
- solara.lab.ChatMessage(["Default"])
35
- solara.lab.ChatMessage(["`color`"], color="#ff991f")
36
- solara.lab.ChatMessage(["`avatar_background_color`"], avatar_background_color="success")
37
- solara.lab.ChatMessage(["`border_radius='20px'`"], border_radius="20px")
38
- solara.lab.ChatMessage(["`notch=True`"], notch=True)
39
- ```
40
- """
41
-
42
- __doc__ += """
43
- # A Basic Example
44
-
45
-
46
- ```solara
47
- import solara
48
-
49
- messages = solara.reactive([])
50
- name = solara.reactive("User")
51
-
52
- def send(new_message):
53
- messages.set([
54
- *messages.value,
55
- {"user": True, "name": name.value, "message": new_message,},
56
- ])
57
-
58
- @solara.component
59
- def Page():
60
- solara.InputText("username", value=name)
61
- with solara.Column(style={"min-height": "50vh"}):
62
- with solara.lab.ChatBox():
63
- for item in messages.value:
64
- with solara.lab.ChatMessage(
65
- user=item["user"],
66
- name=item["name"],
67
- ):
68
- solara.Markdown(item["message"])
69
- solara.lab.ChatInput(send_callback=send)
70
- ```
71
-
72
- # A Custom Message Component
73
-
74
- ```solara
75
- import solara
76
-
77
- messages = solara.reactive([])
78
-
79
- def send(new_message):
80
- messages.set([
81
- *messages.value,
82
- {"name": "User", "message": new_message},
83
- ])
84
-
85
- @solara.component
86
- def CustomMessage(
87
- message,
88
- name = "User",
89
- ):
90
- with solara.Column(gap=0):
91
- with solara.Row():
92
- solara.Markdown(f"**{name}**: {message}")
93
- solara.v.Divider(style_="margin: 0;")
94
-
95
- @solara.component
96
- def Page():
97
- with solara.Column(style={"min-height": "50vh"}):
98
- with solara.lab.ChatBox():
99
- for item in messages.value:
100
- CustomMessage(
101
- message=item["message"],
102
- name=item["name"],
103
- )
104
- solara.lab.ChatInput(send_callback=send)
105
- ```
106
- """
107
-
108
- Page = NoPage
@@ -1,55 +0,0 @@
1
- """
2
- # ConfirmationDialog
3
-
4
- """
5
-
6
- from typing import Union
7
-
8
- import solara
9
- from solara.lab.components.confirmation_dialog import ConfirmationDialog
10
- from solara.website.utils import apidoc
11
-
12
- title = "ConfirmationDialog"
13
- users = solara.reactive("Alice Bob Cindy Dirk Eve Fred".split())
14
- user_to_be_deleted: solara.Reactive[Union[str, None]] = solara.reactive(None)
15
-
16
-
17
- def ask_to_delete_user(user):
18
- user_to_be_deleted.value = user
19
-
20
-
21
- def clear_user_to_be_deleted():
22
- user_to_be_deleted.value = None
23
-
24
-
25
- def delete_user():
26
- users.set([u for u in users.value if u != user_to_be_deleted.value])
27
- clear_user_to_be_deleted()
28
-
29
-
30
- @solara.component
31
- def Page():
32
- """Create a list of users with a button to delete them.
33
-
34
- A confirmation dialog will pop up first before deletion."""
35
- solara.Markdown("#### Users:")
36
- with solara.Column(style={"max-width": "300px"}):
37
- for user in users.value:
38
- with solara.Row(style={"align-items": "center"}):
39
- solara.Text(user)
40
- solara.v.Spacer()
41
- solara.Button(icon_name="mdi-delete", on_click=lambda user=user: ask_to_delete_user(user), icon=True)
42
- if not users.value:
43
- solara.Text("(no users left)")
44
-
45
- with ConfirmationDialog(
46
- user_to_be_deleted.value is not None,
47
- on_ok=delete_user,
48
- on_close=clear_user_to_be_deleted,
49
- ok="Ok, Delete",
50
- title="Delete user",
51
- ):
52
- solara.Markdown(f"Are you sure you want to delete user **{user_to_be_deleted.value}**?")
53
-
54
-
55
- __doc__ += apidoc(solara.lab.components.confirmation_dialog.ConfirmationDialog.f) # type: ignore
@@ -1,48 +0,0 @@
1
- """
2
- # Cookies and Headers
3
-
4
- ## Cookies
5
-
6
- Solara provides access to cookies through `solara.lab.cookies`.
7
-
8
- ```python
9
- cookies: Reactive[Optional[Dict[str, str]]] = reactive(cast(Optional[Dict[str, str]], None))
10
- ```
11
-
12
- This is a reactive object that can be used to read the cookies transferred with the the initial request sent to the server by the client.
13
- Thus it is possible to access also HTTPOnly cookies. The cookies will be updated whenever the client sends a new request to the server,
14
- i.e. only when the client connects to a kernel.
15
-
16
- The cookies are read into a dictionary with the cookie names as keys and the cookie values as values.
17
-
18
- ## Headers
19
-
20
- Solara provides access to headers in the form of `solara.lab.headers`.
21
-
22
- ```python
23
- headers: Reactive[Optional[Dict[str, List[str]]]] = reactive(cast(Optional[Dict[str, List[str]]], None))
24
- ```
25
-
26
- `headers` concatenates the values of multiple header fields with the same name into a list of strings. However, it is still possible that multiple
27
- values are present in one field already in the request, in which case one string will contain multiple values. Unfortunately reversing this is
28
- highly non-trivial.
29
-
30
- Note that the header field names are all lower-case.
31
-
32
- ```solara
33
- import solara
34
- from solara.lab import headers
35
-
36
-
37
- @solara.component
38
- def Page():
39
- solara.Markdown(f"Your 'user-agent' is: {headers.value['user-agent']}")
40
-
41
- ```
42
-
43
- """
44
-
45
- from solara.website.components import NoPage
46
-
47
- title = "Cookies and Headers"
48
- Page = NoPage
@@ -1,19 +0,0 @@
1
- """
2
- # InputDate
3
-
4
- This page contains the two variants of datepickers available in solara
5
-
6
- # InputDate
7
- """
8
- import solara
9
- from solara.website.components import NoPage
10
- from solara.website.utils import apidoc
11
-
12
- title = "InputDate"
13
-
14
-
15
- __doc__ += apidoc(solara.lab.components.input_date.InputDate.f) # type: ignore
16
- __doc__ += "# InputDateRange"
17
- __doc__ += apidoc(solara.lab.components.input_date.InputDateRange.f) # type: ignore
18
-
19
- Page = NoPage
@@ -1,21 +0,0 @@
1
- """
2
- # Menus
3
-
4
- This page contains the various kinds of menu elements available to use in solara
5
-
6
- # Menu
7
- """
8
- import solara
9
- from solara.website.components import NoPage
10
- from solara.website.utils import apidoc
11
-
12
- title = "Menus"
13
-
14
-
15
- __doc__ += apidoc(solara.lab.components.menu.Menu.f) # type: ignore
16
- __doc__ += "# ClickMenu"
17
- __doc__ += apidoc(solara.lab.components.menu.ClickMenu.f) # type: ignore
18
- __doc__ += "# ContextMenu"
19
- __doc__ += apidoc(solara.lab.components.menu.ContextMenu.f) # type: ignore
20
-
21
- Page = NoPage
@@ -1,24 +0,0 @@
1
- """
2
- # Tab
3
-
4
- """
5
- import solara
6
- import solara.lab
7
- from solara.website.utils import apidoc
8
-
9
- disabled = solara.reactive(False)
10
- icon = solara.reactive(True)
11
-
12
-
13
- @solara.component
14
- def Page():
15
- solara.Checkbox(label="Disable Tab 2", value=disabled)
16
- solara.Checkbox(label="Show icon", value=icon)
17
- with solara.lab.Tabs():
18
- with solara.lab.Tab("Tab 1"):
19
- solara.Markdown("Hello")
20
- with solara.lab.Tab("Tab 2", disabled=disabled.value, icon_name="mdi-home" if icon.value else None):
21
- solara.Markdown("World")
22
-
23
-
24
- __doc__ += apidoc(solara.lab.Tab.f) # type: ignore
@@ -1,44 +0,0 @@
1
- """
2
- # Tabs
3
-
4
- """
5
- import solara
6
- import solara.lab
7
- from solara.website.utils import apidoc
8
-
9
- disabled = solara.reactive(False)
10
- align = solara.reactive("center")
11
- grow = solara.reactive(False)
12
- vertical = solara.reactive(False)
13
- dark = solara.reactive(False)
14
-
15
-
16
- @solara.component
17
- def Page():
18
- with solara.Card("Controls"):
19
- with solara.Row():
20
- solara.Checkbox(label="Grow", value=grow)
21
- solara.Checkbox(label="Vertical", value=vertical)
22
- solara.Checkbox(label="Dark", value=dark)
23
- if vertical.value:
24
- align.value = "start"
25
- else:
26
- if not grow.value:
27
- with solara.Row(style={"align-items": "center"}):
28
- solara.Text("Align:")
29
- solara.ToggleButtonsSingle(value=align, values=["start", "center", "end"], dense=True)
30
- with solara.lab.Tabs(
31
- vertical=vertical.value,
32
- grow=grow.value,
33
- align=align.value,
34
- dark=dark.value,
35
- background_color="primary" if dark.value else None,
36
- slider_color="secondary" if dark.value else None,
37
- ):
38
- with solara.lab.Tab("Tab 1"):
39
- solara.Markdown("Hello")
40
- with solara.lab.Tab("Tab 2"):
41
- solara.Markdown("World")
42
-
43
-
44
- __doc__ += apidoc(solara.lab.Tabs.f) # type: ignore
@@ -1,12 +0,0 @@
1
- """# Task
2
-
3
- """
4
- import solara
5
- import solara.autorouting
6
- import solara.lab
7
- from solara.website.components import NoPage
8
- from solara.website.utils import apidoc
9
-
10
- title = "Task"
11
- Page = NoPage
12
- __doc__ += apidoc(solara.lab.task) # type: ignore