solara-ui 1.32.2__tar.gz → 1.34.0__tar.gz

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 (580) hide show
  1. {solara_ui-1.32.2 → solara_ui-1.34.0}/PKG-INFO +1 -1
  2. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/__init__.py +1 -1
  3. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/applayout.py +15 -15
  4. solara_ui-1.34.0/solara/components/details.py +56 -0
  5. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/input.py +2 -2
  6. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/markdown.py +1 -1
  7. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/switch.py +3 -0
  8. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/tooltip.py +1 -1
  9. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/lab/components/input_date.py +47 -6
  10. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/assets/style.css +13 -0
  11. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/esm.py +2 -0
  12. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/server.py +14 -6
  13. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/starlette.py +1 -1
  14. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/static/solara_bootstrap.py +1 -1
  15. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/__init__.py +2 -2
  16. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/changelog/changelog.md +16 -0
  17. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/10-howto/30-testing.md +1 -1
  18. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/30-enterprise/10-oauth.md +3 -1
  19. solara_ui-1.34.0/solara/website/pages/documentation/components/layout/details.py +13 -0
  20. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/esm_test.py +14 -8
  21. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/input_date_test.py +10 -10
  22. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/input_test.py +14 -14
  23. solara_ui-1.32.2/solara/components/details.py +0 -21
  24. {solara_ui-1.32.2 → solara_ui-1.34.0}/.gitignore +0 -0
  25. {solara_ui-1.32.2 → solara_ui-1.34.0}/LICENSE +0 -0
  26. {solara_ui-1.32.2 → solara_ui-1.34.0}/README.md +0 -0
  27. {solara_ui-1.32.2 → solara_ui-1.34.0}/prefix/etc/jupyter/jupyter_notebook_config.d/solara.json +0 -0
  28. {solara_ui-1.32.2 → solara_ui-1.34.0}/prefix/etc/jupyter/jupyter_server_config.d/solara.json +0 -0
  29. {solara_ui-1.32.2 → solara_ui-1.34.0}/pyproject.toml +0 -0
  30. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/__main__.py +0 -0
  31. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/alias.py +0 -0
  32. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/autorouting.py +0 -0
  33. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/cache.py +0 -0
  34. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/checks.html +0 -0
  35. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/checks.py +0 -0
  36. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/comm.py +0 -0
  37. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/__init__.py +0 -0
  38. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/alert.py +0 -0
  39. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/button.py +0 -0
  40. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/card.py +0 -0
  41. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/checkbox.py +0 -0
  42. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/code_highlight_css.py +0 -0
  43. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/code_highlight_css.vue +0 -0
  44. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/columns.py +0 -0
  45. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/component_vue.py +0 -0
  46. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/cross_filter.py +0 -0
  47. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/dataframe.py +0 -0
  48. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/datatable.py +0 -0
  49. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/datatable.vue +0 -0
  50. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/download.vue +0 -0
  51. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/echarts.py +0 -0
  52. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/echarts.vue +0 -0
  53. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/figure_altair.py +0 -0
  54. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/file_browser.py +0 -0
  55. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/file_download.py +0 -0
  56. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/file_drop.py +0 -0
  57. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/file_drop.vue +0 -0
  58. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/file_list_widget.vue +0 -0
  59. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/head.py +0 -0
  60. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/head_tag.py +0 -0
  61. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/head_tag.vue +0 -0
  62. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/image.py +0 -0
  63. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/link.py +0 -0
  64. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/markdown_editor.py +0 -0
  65. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/markdown_editor.vue +0 -0
  66. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/matplotlib.py +0 -0
  67. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/meta.py +0 -0
  68. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/misc.py +0 -0
  69. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/pivot_table.py +0 -0
  70. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/pivot_table.vue +0 -0
  71. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/progress.py +0 -0
  72. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/select.py +0 -0
  73. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/select.vue +0 -0
  74. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/slider.py +0 -0
  75. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/slider_date.vue +0 -0
  76. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/spinner-solara.vue +0 -0
  77. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/spinner.py +0 -0
  78. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/sql_code.py +0 -0
  79. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/sql_code.vue +0 -0
  80. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/style.py +0 -0
  81. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/tab_navigation.py +0 -0
  82. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/title.py +0 -0
  83. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/title.vue +0 -0
  84. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/components/togglebuttons.py +0 -0
  85. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/datatypes.py +0 -0
  86. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/express.py +0 -0
  87. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/hooks/__init__.py +0 -0
  88. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/hooks/dataframe.py +0 -0
  89. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/hooks/misc.py +0 -0
  90. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/hooks/use_reactive.py +0 -0
  91. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/hooks/use_thread.py +0 -0
  92. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/kitchensink.py +0 -0
  93. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/lab/__init__.py +0 -0
  94. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/lab/components/__init__.py +0 -0
  95. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/lab/components/chat.py +0 -0
  96. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/lab/components/confirmation_dialog.py +0 -0
  97. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/lab/components/cross_filter.py +0 -0
  98. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/lab/components/menu.py +0 -0
  99. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/lab/components/menu.vue +0 -0
  100. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/lab/components/tabs.py +0 -0
  101. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/lab/components/theming.py +0 -0
  102. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/lab/components/theming.vue +0 -0
  103. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/lab/hooks/__init__.py +0 -0
  104. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/lab/hooks/dataframe.py +0 -0
  105. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/lab/toestand.py +0 -0
  106. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/lab/utils/__init__.py +0 -0
  107. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/lab/utils/cookies.py +0 -0
  108. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/lab/utils/dataframe.py +0 -0
  109. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/lab/utils/headers.py +0 -0
  110. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/layout.py +0 -0
  111. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/lifecycle.py +0 -0
  112. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/minisettings.py +0 -0
  113. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/py.typed +0 -0
  114. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/reactive.py +0 -0
  115. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/routing.py +0 -0
  116. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/scope/__init__.py +0 -0
  117. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/scope/types.py +0 -0
  118. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/__init__.py +0 -0
  119. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/app.py +0 -0
  120. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/assets/custom.css +0 -0
  121. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/assets/custom.js +0 -0
  122. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/assets/favicon.png +0 -0
  123. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/assets/favicon.svg +0 -0
  124. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/assets/theme-dark.css +0 -0
  125. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/assets/theme-light.css +0 -0
  126. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/assets/theme.js +0 -0
  127. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/cdn_helper.py +0 -0
  128. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/fastapi.py +0 -0
  129. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/flask.py +0 -0
  130. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/jupyter/__init__.py +0 -0
  131. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/jupyter/cdn_handler.py +0 -0
  132. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/jupyter/server_extension.py +0 -0
  133. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/jupytertools.py +0 -0
  134. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/kernel.py +0 -0
  135. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/kernel_context.py +0 -0
  136. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/patch.py +0 -0
  137. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/reload.py +0 -0
  138. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/settings.py +0 -0
  139. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/shell.py +0 -0
  140. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/static/ansi.js +0 -0
  141. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/static/highlight-dark.css +0 -0
  142. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/static/highlight.css +0 -0
  143. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/static/main-vuetify.js +0 -0
  144. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/static/main.js +0 -0
  145. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/static/sun.svg +0 -0
  146. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/static/webworker.js +0 -0
  147. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/telemetry.py +0 -0
  148. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/templates/index.html.j2 +0 -0
  149. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/templates/loader-plain.css +0 -0
  150. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/templates/loader-plain.html +0 -0
  151. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/templates/loader-solara.css +0 -0
  152. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/templates/loader-solara.html +0 -0
  153. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/templates/plain.html +0 -0
  154. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/templates/solara.html.j2 +0 -0
  155. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/threaded.py +0 -0
  156. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/utils.py +0 -0
  157. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/server/websocket.py +0 -0
  158. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/settings.py +0 -0
  159. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/tasks.py +0 -0
  160. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/template/button.py +0 -0
  161. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/template/markdown.py +0 -0
  162. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/template/portal/.flake8 +0 -0
  163. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/template/portal/.pre-commit-config.yaml +0 -0
  164. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/template/portal/LICENSE +0 -0
  165. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/template/portal/Procfile +0 -0
  166. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/template/portal/mypy.ini +0 -0
  167. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/template/portal/pyproject.toml +0 -0
  168. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/template/portal/solara_portal/__init__.py +0 -0
  169. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/template/portal/solara_portal/components/__init__.py +0 -0
  170. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/template/portal/solara_portal/components/article.py +0 -0
  171. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/template/portal/solara_portal/components/data.py +0 -0
  172. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/template/portal/solara_portal/components/header.py +0 -0
  173. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/template/portal/solara_portal/components/layout.py +0 -0
  174. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/template/portal/solara_portal/content/articles/equis-in-vidi.md +0 -0
  175. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/template/portal/solara_portal/content/articles/substiterat-vati.md +0 -0
  176. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/template/portal/solara_portal/data.py +0 -0
  177. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/template/portal/solara_portal/pages/__init__.py +0 -0
  178. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/template/portal/solara_portal/pages/article/__init__.py +0 -0
  179. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/template/portal/solara_portal/pages/tabular.py +0 -0
  180. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/template/portal/solara_portal/pages/viz/__init__.py +0 -0
  181. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/template/portal/solara_portal/pages/viz/overview.py +0 -0
  182. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/test/__init__.py +0 -0
  183. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/test/pytest_plugin.py +0 -0
  184. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/toestand.py +0 -0
  185. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/util.py +0 -0
  186. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/__init__.py +0 -0
  187. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/assets/custom.css +0 -0
  188. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/assets/images/logo-small.png +0 -0
  189. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/assets/images/logo.svg +0 -0
  190. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/assets/images/logo_white.svg +0 -0
  191. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/assets/theme.js +0 -0
  192. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/components/__init__.py +0 -0
  193. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/components/algolia.py +0 -0
  194. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/components/algolia.vue +0 -0
  195. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/components/algolia_api.vue +0 -0
  196. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/components/docs.py +0 -0
  197. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/components/header.py +0 -0
  198. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/components/hero.py +0 -0
  199. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/components/mailchimp.py +0 -0
  200. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/components/mailchimp.vue +0 -0
  201. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/components/markdown.py +0 -0
  202. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/components/notebook.py +0 -0
  203. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/components/sidebar.py +0 -0
  204. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/apps/__init__.py +0 -0
  205. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/apps/authorization/__init__.py +0 -0
  206. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/apps/authorization/admin.py +0 -0
  207. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/apps/authorization/users.py +0 -0
  208. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/apps/jupyter-dashboard-1.py +0 -0
  209. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/apps/layout-demo.py +0 -0
  210. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/apps/multipage/__init__.py +0 -0
  211. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/apps/multipage/page1.py +0 -0
  212. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/apps/multipage/page2.py +0 -0
  213. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/apps/scatter.py +0 -0
  214. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/apps/scrolling.py +0 -0
  215. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/apps/tutorial-streamlit.py +0 -0
  216. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/changelog/__init__.py +0 -0
  217. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/contact/__init__.py +0 -0
  218. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/contact/contact.md +0 -0
  219. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/doc_use_download.py +0 -0
  220. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/__init__.py +0 -0
  221. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/__init__.py +0 -0
  222. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/00-overview.md +0 -0
  223. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/10-howto/00-overview.md +0 -0
  224. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/10-howto/10-multipage.md +0 -0
  225. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/10-howto/20-layout.md +0 -0
  226. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/10-howto/31-debugging.md +0 -0
  227. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/10-howto/40-embed.md +0 -0
  228. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/10-howto/50-ipywidget_libraries.md +0 -0
  229. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/15-reference/00-overview.md +0 -0
  230. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/15-reference/40-static_files.md +0 -0
  231. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/15-reference/41-asset-files.md +0 -0
  232. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/15-reference/60-static-site-generation.md +0 -0
  233. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/15-reference/70-search.md +0 -0
  234. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/15-reference/80-reloading.md +0 -0
  235. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/15-reference/90-notebook-support.md +0 -0
  236. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/15-reference/95-caching.md +0 -0
  237. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/20-understanding/00-introduction.md +0 -0
  238. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/20-understanding/05-ipywidgets.md +0 -0
  239. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/20-understanding/06-ipyvuetify.md +0 -0
  240. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/20-understanding/10-reacton.md +0 -0
  241. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/20-understanding/12-reacton-basics.md +0 -0
  242. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/20-understanding/15-anatomy.md +0 -0
  243. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/20-understanding/17-rules-of-hooks.md +0 -0
  244. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/20-understanding/18-containers.md +0 -0
  245. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/20-understanding/20-solara.md +0 -0
  246. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/20-understanding/40-routing.md +0 -0
  247. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/20-understanding/50-solara-server.md +0 -0
  248. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/20-understanding/60-voila.md +0 -0
  249. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/30-enterprise/00-overview.md +0 -0
  250. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/40-development/00-overview.md +0 -0
  251. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/40-development/01-contribute.md +0 -0
  252. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/advanced/content/40-development/10-setup.md +0 -0
  253. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/__init__.py +0 -0
  254. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/cross_filter/__init__.py +0 -0
  255. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/cross_filter/cross_filter_dataframe.py +0 -0
  256. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/cross_filter/cross_filter_report.py +0 -0
  257. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/cross_filter/cross_filter_select.py +0 -0
  258. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/cross_filter/cross_filter_slider.py +0 -0
  259. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/hooks/__init__.py +0 -0
  260. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/hooks/use_cross_filter.py +0 -0
  261. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/hooks/use_dark_effective.py +0 -0
  262. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/hooks/use_effect.md +0 -0
  263. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/hooks/use_effect.py +0 -0
  264. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/hooks/use_exception.py +0 -0
  265. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/hooks/use_memo.md +0 -0
  266. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/hooks/use_memo.py +0 -0
  267. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/hooks/use_previous.py +0 -0
  268. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/hooks/use_reactive.py +0 -0
  269. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/hooks/use_state.py +0 -0
  270. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/hooks/use_state_or_update.py +0 -0
  271. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/hooks/use_thread.md +0 -0
  272. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/hooks/use_thread.py +0 -0
  273. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/hooks/use_trait_observe.py +0 -0
  274. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/routing/__init__.py +0 -0
  275. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/routing/generate_routes.py +0 -0
  276. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/routing/generate_routes_directory.py +0 -0
  277. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/routing/resolve_path.py +0 -0
  278. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/routing/route.py +0 -0
  279. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/routing/use_route.py +0 -0
  280. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/routing/use_router.py +0 -0
  281. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/utilities/__init__.py +0 -0
  282. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/utilities/component_vue.py +0 -0
  283. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/utilities/computed.py +0 -0
  284. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/utilities/display.py +0 -0
  285. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/utilities/get_kernel_id.py +0 -0
  286. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/utilities/get_session_id.py +0 -0
  287. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/utilities/memoize.py +0 -0
  288. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/utilities/on_kernel_start.py +0 -0
  289. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/utilities/reactive.py +0 -0
  290. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/api/utilities/widget.py +0 -0
  291. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/__init__.py +0 -0
  292. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/advanced/__init__.py +0 -0
  293. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/advanced/link.py +0 -0
  294. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/advanced/meta.py +0 -0
  295. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/advanced/style.py +0 -0
  296. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/common.py +0 -0
  297. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/data/__init__.py +0 -0
  298. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/data/dataframe.py +0 -0
  299. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/data/pivot_table.py +0 -0
  300. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/enterprise/__init__.py +0 -0
  301. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/enterprise/avatar.py +0 -0
  302. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/enterprise/avatar_menu.py +0 -0
  303. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/input/__init__.py +0 -0
  304. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/input/button.py +0 -0
  305. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/input/checkbox.py +0 -0
  306. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/input/file_browser.py +0 -0
  307. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/input/file_drop.py +0 -0
  308. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/input/input.py +0 -0
  309. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/input/select.py +0 -0
  310. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/input/slider.py +0 -0
  311. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/input/switch.py +0 -0
  312. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/input/togglebuttons.py +0 -0
  313. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/lab/__init__.py +0 -0
  314. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/lab/chat.py +0 -0
  315. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/lab/confirmation_dialog.py +0 -0
  316. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/lab/cookies_headers.py +0 -0
  317. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/lab/input_date.py +0 -0
  318. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/lab/menu.py +0 -0
  319. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/lab/tab.py +0 -0
  320. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/lab/tabs.py +0 -0
  321. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/lab/task.py +0 -0
  322. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/lab/theming.py +0 -0
  323. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/lab/use_task.py +0 -0
  324. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/layout/__init__.py +0 -0
  325. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/layout/app_bar.py +0 -0
  326. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/layout/app_bar_title.py +0 -0
  327. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/layout/app_layout.py +0 -0
  328. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/layout/card.py +0 -0
  329. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/layout/card_actions.py +0 -0
  330. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/layout/column.py +0 -0
  331. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/layout/columns.py +0 -0
  332. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/layout/columns_responsive.py +0 -0
  333. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/layout/griddraggable.py +0 -0
  334. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/layout/gridfixed.py +0 -0
  335. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/layout/hbox.py +0 -0
  336. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/layout/row.py +0 -0
  337. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/layout/sidebar.py +0 -0
  338. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/layout/vbox.py +0 -0
  339. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/output/__init__.py +0 -0
  340. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/output/file_download.py +0 -0
  341. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/output/html.py +0 -0
  342. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/output/image.py +0 -0
  343. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/output/markdown.py +0 -0
  344. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/output/markdown_editor.py +0 -0
  345. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/output/sql_code.py +0 -0
  346. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/output/tooltip.py +0 -0
  347. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/page/__init__.py +0 -0
  348. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/page/head.py +0 -0
  349. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/page/title.py +0 -0
  350. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/status/__init__.py +0 -0
  351. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/status/error.py +0 -0
  352. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/status/info.py +0 -0
  353. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/status/progress.py +0 -0
  354. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/status/spinner.py +0 -0
  355. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/status/success.py +0 -0
  356. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/status/warning.py +0 -0
  357. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/viz/__init__.py +0 -0
  358. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/viz/altair.py +0 -0
  359. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/viz/echarts.py +0 -0
  360. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/viz/matplotlib.py +0 -0
  361. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/viz/plotly.py +0 -0
  362. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/components/viz/plotly_express.py +0 -0
  363. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/__init__.py +0 -0
  364. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/ai/__init__.py +0 -0
  365. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/ai/chatbot.py +0 -0
  366. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/ai/tokenizer.py +0 -0
  367. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/basics/__init__.py +0 -0
  368. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/basics/sine.py +0 -0
  369. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/fullscreen/__init__.py +0 -0
  370. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/fullscreen/authorization.py +0 -0
  371. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/fullscreen/layout_demo.py +0 -0
  372. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/fullscreen/multipage.py +0 -0
  373. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/fullscreen/scatter.py +0 -0
  374. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/fullscreen/scrolling.py +0 -0
  375. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/fullscreen/tutorial_streamlit.py +0 -0
  376. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/general/__init__.py +0 -0
  377. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/general/custom_storage.py +0 -0
  378. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/general/deploy_model.py +0 -0
  379. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/general/live_update.py +0 -0
  380. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/general/login_oauth.py +0 -0
  381. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/general/mycard.vue +0 -0
  382. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/general/pokemon_search.py +0 -0
  383. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/general/vue_component.py +0 -0
  384. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/ipycanvas.py +0 -0
  385. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/libraries/__init__.py +0 -0
  386. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/libraries/altair.py +0 -0
  387. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/libraries/bqplot.py +0 -0
  388. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/libraries/ipyleaflet.py +0 -0
  389. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/libraries/ipyleaflet_advanced.py +0 -0
  390. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/utilities/__init__.py +0 -0
  391. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/utilities/calculator.py +0 -0
  392. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/utilities/countdown_timer.py +0 -0
  393. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/utilities/todo.py +0 -0
  394. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/visualization/__init__.py +0 -0
  395. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/visualization/annotator.py +0 -0
  396. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/visualization/linked_views.py +0 -0
  397. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/examples/visualization/plotly.py +0 -0
  398. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/faq/__init__.py +0 -0
  399. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/faq/content/99-faq.md +0 -0
  400. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/getting_started/__init__.py +0 -0
  401. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/getting_started/content/00-quickstart.md +0 -0
  402. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/getting_started/content/01-introduction.md +0 -0
  403. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/getting_started/content/02-installing.md +0 -0
  404. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/getting_started/content/04-tutorials/00-overview.md +0 -0
  405. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/getting_started/content/04-tutorials/10_data_science.py +0 -0
  406. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/getting_started/content/04-tutorials/20-web-app.md +0 -0
  407. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/getting_started/content/04-tutorials/30-ipywidgets.md +0 -0
  408. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/getting_started/content/04-tutorials/40-streamlit.md +0 -0
  409. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/getting_started/content/04-tutorials/50-dash.md +0 -0
  410. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/getting_started/content/04-tutorials/60-jupyter-dashboard-part1.py +0 -0
  411. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/getting_started/content/04-tutorials/SF_crime_sample.csv.gz +0 -0
  412. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/getting_started/content/04-tutorials/_data_science.ipynb +0 -0
  413. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/getting_started/content/04-tutorials/_jupyter_dashboard_1.ipynb +0 -0
  414. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/getting_started/content/05-fundamentals/00-overview.md +0 -0
  415. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/getting_started/content/05-fundamentals/10-components.md +0 -0
  416. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/getting_started/content/05-fundamentals/50-state-management.md +0 -0
  417. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/getting_started/content/07-deploying/00-overview.md +0 -0
  418. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/getting_started/content/07-deploying/10-self-hosted.md +0 -0
  419. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/getting_started/content/07-deploying/20-cloud-hosted.md +0 -0
  420. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/getting_started/content/80-what-is-lab.md +0 -0
  421. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/documentation/getting_started/content/90-troubleshoot.md +0 -0
  422. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/docutils.py +0 -0
  423. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/showcase/__init__.py +0 -0
  424. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/showcase/domino_code_assist.py +0 -0
  425. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/showcase/planeto_tessa.py +0 -0
  426. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/showcase/solara_dev.py +0 -0
  427. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/showcase/solarathon_2023_team_2.py +0 -0
  428. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/showcase/solarathon_2023_team_4.py +0 -0
  429. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/showcase/solarathon_2023_team_5.py +0 -0
  430. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/showcase/solarathon_2023_team_6.py +0 -0
  431. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/pages/showcase/wanderlust.py +0 -0
  432. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/public/beach.jpeg +0 -0
  433. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/public/logo.svg +0 -0
  434. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/public/social/discord.svg +0 -0
  435. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/public/social/github.svg +0 -0
  436. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/public/social/twitter.svg +0 -0
  437. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/public/success.html +0 -0
  438. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/templates/index.html.j2 +0 -0
  439. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/website/utils.py +0 -0
  440. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/widgets/__init__.py +0 -0
  441. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/widgets/vue/gridlayout.vue +0 -0
  442. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/widgets/vue/html.vue +0 -0
  443. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/widgets/vue/navigator.vue +0 -0
  444. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/widgets/vue/vegalite.vue +0 -0
  445. {solara_ui-1.32.2 → solara_ui-1.34.0}/solara/widgets/widgets.py +0 -0
  446. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/__init__.py +0 -0
  447. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/conftest.py +0 -0
  448. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/docs/docs_howto_event_with_future_test.py +0 -0
  449. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/docs/docs_howto_event_with_polling_test.py +0 -0
  450. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/docs/docs_howto_no_browser_api_find_testing_test.py +0 -0
  451. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/docs/docs_howto_no_browser_testing_test.py +0 -0
  452. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/docs/docs_howto_no_browser_threaded_test.py +0 -0
  453. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/__init__.py +0 -0
  454. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/api_test.py +0 -0
  455. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/app_widget.py +0 -0
  456. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/assets/assets1/common.js +0 -0
  457. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/assets/assets1/unique1.js +0 -0
  458. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/assets/assets2/common.js +0 -0
  459. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/assets/assets2/custom.css +0 -0
  460. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/assets/assets2/custom.js +0 -0
  461. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/assets/assets2/unique2.js +0 -0
  462. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/assets_test.py +0 -0
  463. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/async_test.py +0 -0
  464. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/cdn_test.py +0 -0
  465. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/cmdline_test.py +0 -0
  466. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/conftest.py +0 -0
  467. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/create_test.py +0 -0
  468. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/enterprise/__init__.py +0 -0
  469. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/enterprise/oauth_test.py +0 -0
  470. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/error_test.py +0 -0
  471. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/file_download_test.py +0 -0
  472. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/flask_test.py +0 -0
  473. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/latex_test.py +0 -0
  474. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/lifecycle_test.py +0 -0
  475. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/markdown_test.py +0 -0
  476. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/menu_test.py +0 -0
  477. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/popout_test.py +0 -0
  478. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/reconnect_test.py +0 -0
  479. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/reload/apps.py +0 -0
  480. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/router_test.py +0 -0
  481. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/server_test.py +0 -0
  482. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/ssg_test.py +0 -0
  483. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/starlette_test.py +0 -0
  484. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/test.vue +0 -0
  485. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/testapp.py +0 -0
  486. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/integration/widget_test.py +0 -0
  487. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/ui/snapshots/tests/integration/latex_test.py/test_widget_latex_solara-flask-chromium-linux-ipywidgets-7-changed-reference.png +0 -0
  488. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/ui/snapshots/tests/integration/latex_test.py/test_widget_latex_solara-flask-chromium-linux-ipywidgets-7-reference.png +0 -0
  489. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/ui/snapshots/tests/integration/latex_test.py/test_widget_latex_solara-flask-chromium-linux-ipywidgets-8-changed-reference.png +0 -0
  490. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/ui/snapshots/tests/integration/latex_test.py/test_widget_latex_solara-flask-chromium-linux-ipywidgets-8-reference.png +0 -0
  491. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/ui/snapshots/tests/integration/widget_test.py/test_slider_all-flask-jupyter_lab-chromium-linux-ipywidgets-7-reference.png +0 -0
  492. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/ui/snapshots/tests/integration/widget_test.py/test_slider_all-flask-jupyter_lab-chromium-linux-ipywidgets-8-reference.png +0 -0
  493. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/ui/snapshots/tests/integration/widget_test.py/test_slider_all-flask-jupyter_notebook-chromium-linux-ipywidgets-7-reference.png +0 -0
  494. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/ui/snapshots/tests/integration/widget_test.py/test_slider_all-flask-jupyter_notebook-chromium-linux-ipywidgets-8-reference.png +0 -0
  495. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/ui/snapshots/tests/integration/widget_test.py/test_slider_all-flask-solara-chromium-linux-ipywidgets-7-reference.png +0 -0
  496. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/ui/snapshots/tests/integration/widget_test.py/test_slider_all-flask-solara-chromium-linux-ipywidgets-8-reference.png +0 -0
  497. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/ui/snapshots/tests/integration/widget_test.py/test_slider_all-flask-voila-chromium-linux-ipywidgets-7-reference.png +0 -0
  498. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/ui/snapshots/tests/integration/widget_test.py/test_slider_all-flask-voila-chromium-linux-ipywidgets-8-reference.png +0 -0
  499. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/ui/snapshots/tests/integration/widget_test.py/test_slider_all-starlette-solara-chromium-linux-ipywidgets-7-reference.png +0 -0
  500. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/ui/snapshots/tests/integration/widget_test.py/test_slider_all-starlette-solara-chromium-linux-ipywidgets-8-reference.png +0 -0
  501. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/ui/snapshots/tests/integration/widget_test.py/test_solara_button_all-flask-jupyter_lab-chromium-linux-reference.png +0 -0
  502. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/ui/snapshots/tests/integration/widget_test.py/test_solara_button_all-flask-jupyter_notebook-chromium-linux-reference.png +0 -0
  503. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/ui/snapshots/tests/integration/widget_test.py/test_solara_button_all-flask-solara-chromium-linux-reference.png +0 -0
  504. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/ui/snapshots/tests/integration/widget_test.py/test_solara_button_all-flask-voila-chromium-linux-reference.png +0 -0
  505. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/ui/snapshots/tests/integration/widget_test.py/test_solara_button_all-starlette-solara-chromium-linux-reference.png +0 -0
  506. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/ui/snapshots/tests/integration/widget_test.py/test_widget_button_solara-flask-chromium-linux-ipyvuetify3-reference.png +0 -0
  507. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/ui/snapshots/tests/integration/widget_test.py/test_widget_button_solara-flask-chromium-linux-reference.png +0 -0
  508. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/ui/snapshots/tests/integration/widget_test.py/test_widget_button_solara-starlette-chromium-linux-ipyvuetify3-reference.png +0 -0
  509. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/ui/snapshots/tests/integration/widget_test.py/test_widget_button_solara-starlette-chromium-linux-reference.png +0 -0
  510. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/__init__.py +0 -0
  511. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/app_test.py +0 -0
  512. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/applayout_test.py +0 -0
  513. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/autorouting_test.py +0 -0
  514. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/cache_test.py +0 -0
  515. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/cdn_helper_test.py +0 -0
  516. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/chat_test.py +0 -0
  517. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/checkbox_test.py +0 -0
  518. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/common.py +0 -0
  519. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/component_frontend_test.py +0 -0
  520. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/component_vue_test.vue +0 -0
  521. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/confirmation_dialog_test.py +0 -0
  522. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/conftest.py +0 -0
  523. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/cross_filter_component_test.py +0 -0
  524. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/cross_filter_test.py +0 -0
  525. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/dataframe_test.py +0 -0
  526. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/datatable_test.py +0 -0
  527. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/display_test.py +0 -0
  528. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/express_test.py +0 -0
  529. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/file_browser_test.py +0 -0
  530. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/file_download_test.py +0 -0
  531. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/hooks_test.py +0 -0
  532. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/input_date_test.py +0 -0
  533. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/kernel_test.py +0 -0
  534. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/lab/__init__.py +0 -0
  535. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/lifecycle_test.py +0 -0
  536. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/matplotlib_test.py +0 -0
  537. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/no_solara_test.py +0 -0
  538. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/output_widget_test.py +0 -0
  539. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/patch_test.py +0 -0
  540. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/pivottable_test.py +0 -0
  541. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/reload_test.py +0 -0
  542. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/router_test.py +0 -0
  543. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/select_test.py +0 -0
  544. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/settings_test.py +0 -0
  545. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/shell_test.py +0 -0
  546. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/slider_test.py +0 -0
  547. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/solara_test_apps/__init__.py +0 -0
  548. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/solara_test_apps/food/__init__.py +0 -0
  549. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/solara_test_apps/food/food.py +0 -0
  550. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/solara_test_apps/food/index.py +0 -0
  551. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/solara_test_apps/kernel_start.py +0 -0
  552. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/solara_test_apps/multipage/01-home.py +0 -0
  553. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/solara_test_apps/multipage/02-my_fruit.py +0 -0
  554. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/solara_test_apps/multipage/03-some-markdown.md +0 -0
  555. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/solara_test_apps/multipage/04-a_directory/00-another-markdown.md +0 -0
  556. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/solara_test_apps/multipage/04-a_directory/01-not-an-app.py +0 -0
  557. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/solara_test_apps/multipage/04-a_directory/__init__.py +0 -0
  558. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/solara_test_apps/multipage/05-and-notebooks.ipynb +0 -0
  559. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/solara_test_apps/multipage/06-custom-routes.py +0 -0
  560. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/solara_test_apps/multipage/10-single-file-directory/single-file.md +0 -0
  561. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/solara_test_apps/multipage/99-some_other_python_script.py +0 -0
  562. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/solara_test_apps/multipage/some_other_file.txt +0 -0
  563. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/solara_test_apps/multipage-widgets/00-overview.md +0 -0
  564. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/solara_test_apps/multipage-widgets/01-views.py +0 -0
  565. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/solara_test_apps/multipage-widgets/02-likes.py +0 -0
  566. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/solara_test_apps/multipage-widgets/03-volume.py +0 -0
  567. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/solara_test_apps/multipage-widgets/04-color.ipynb +0 -0
  568. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/solara_test_apps/notebookapp_component.ipynb +0 -0
  569. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/solara_test_apps/notebookapp_element.ipynb +0 -0
  570. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/solara_test_apps/notebookapp_widget.ipynb +0 -0
  571. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/solara_test_apps/single_file.py +0 -0
  572. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/solara_test_apps/single_file_multiple_routes.py +0 -0
  573. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/solara_test_apps/single_file_routes.py +0 -0
  574. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/switch_test.py +0 -0
  575. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/tabs_test.py +0 -0
  576. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/task_test.py +0 -0
  577. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/telemetry_tests.py +0 -0
  578. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/toestand_computed_reload.py +0 -0
  579. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/toestand_test.py +0 -0
  580. {solara_ui-1.32.2 → solara_ui-1.34.0}/tests/unit/toggle_button_test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: solara-ui
3
- Version: 1.32.2
3
+ Version: 1.34.0
4
4
  Dynamic: Summary
5
5
  Project-URL: Home, https://www.github.com/widgetti/solara
6
6
  Project-URL: Documentation, https://solara.dev
@@ -1,6 +1,6 @@
1
1
  """Build webapps using IPywidgets"""
2
2
 
3
- __version__ = "1.32.2"
3
+ __version__ = "1.34.0"
4
4
  github_url = "https://github.com/widgetti/solara"
5
5
  git_branch = "master"
6
6
 
@@ -257,7 +257,17 @@ def AppLayout(
257
257
  use_drawer = True
258
258
  title = t.use_title_get() or title
259
259
  children_appbartitle = apptitle_portal.use_portal()
260
- show_app_bar = (title and (len(routes) > 1 and navigation)) or children_appbar or use_drawer or children_appbartitle
260
+ v_slots = []
261
+
262
+ tabs_element = None
263
+ for child_appbar in children_appbar.copy():
264
+ if child_appbar.component == solara.lab.Tabs:
265
+ if tabs_element is not None:
266
+ raise ValueError("Only one Tabs component is allowed in the AppBar")
267
+ tabs_element = child_appbar
268
+ children_appbar.remove(tabs_element)
269
+
270
+ show_app_bar = (title and (len(routes) > 1 and navigation)) or bool(children_appbar) or bool(use_drawer) or bool(children_appbartitle) or bool(tabs_element)
261
271
 
262
272
  if style is None:
263
273
  style = {"height": "100%", "max-height": "100%", "overflow": "auto"}
@@ -269,18 +279,8 @@ def AppLayout(
269
279
  path = paths[index]
270
280
  location.pathname = path
271
281
 
272
- v_slots = []
273
-
274
- tabs = None
275
- for child_appbar in children_appbar.copy():
276
- if child_appbar.component == solara.lab.Tabs:
277
- if tabs is not None:
278
- raise ValueError("Only one Tabs component is allowed in the AppBar")
279
- tabs = child_appbar
280
- children_appbar.remove(tabs)
281
-
282
- if (tabs is None) and routes and navigation and (len(routes) > 1):
283
- with solara.lab.Tabs(value=index, on_value=set_path, align="center") as tabs:
282
+ if (tabs_element is None) and routes and navigation and (len(routes) > 1):
283
+ with solara.lab.Tabs(value=index, on_value=set_path, align="center") as tabs_element:
284
284
  for route in routes:
285
285
  name = route.path if route.path != "/" else "Home"
286
286
  solara.lab.Tab(name)
@@ -288,8 +288,8 @@ def AppLayout(
288
288
  # for route in routes:
289
289
  # name = route.path if route.path != "/" else "Home"
290
290
  # v.Tab(children=[name])
291
- if tabs is not None:
292
- v_slots = [{"name": "extension", "children": tabs}]
291
+ if tabs_element is not None and navigation:
292
+ v_slots = [{"name": "extension", "children": tabs_element}]
293
293
  if embedded_mode and not fullscreen:
294
294
  # this version doesn't need to run fullscreen
295
295
  # also ideal in jupyter notebooks
@@ -0,0 +1,56 @@
1
+ import solara
2
+ from solara.alias import rv
3
+
4
+
5
+ @solara.component
6
+ def Details(summary="Summary", children=[], expand=False):
7
+ """Creates an expandable/collapsible section with a summary and additional children content
8
+
9
+ ```solara
10
+ import solara
11
+
12
+
13
+ show_message = solara.reactive(True)
14
+ disable = solara.reactive(False)
15
+
16
+
17
+ @solara.component
18
+ def Page():
19
+ summary_text = "Click to expand for more details"
20
+ additional_content = [
21
+ "Additional detail 1",
22
+ "Additional detail 2",
23
+ "Additional detail 3"
24
+ ]
25
+
26
+ solara.Details(
27
+ summary=summary_text,
28
+ children=additional_content,
29
+ expand=False
30
+ )
31
+
32
+ ```
33
+
34
+
35
+ ## Arguments:
36
+
37
+ * summary: String showing the summary text for the expandable section: Defaults "Summary"
38
+ * children: List showing the children content of the expandable section: Defaults to an Empty list
39
+ * expand: Boolean showing if the section is expanded or collapsed: Defaults to False
40
+ """
41
+
42
+ expand, set_expand = solara.use_state_or_update(expand)
43
+
44
+ def on_v_model(v_model):
45
+ if v_model is None: # collapsed:
46
+ set_expand(False)
47
+ elif v_model == 0:
48
+ set_expand(True)
49
+ else:
50
+ raise RuntimeError(f"v_model has odd value: {v_model}")
51
+
52
+ with rv.ExpansionPanels(v_model=0 if expand else None, on_v_model=on_v_model) as main:
53
+ with rv.ExpansionPanel():
54
+ rv.ExpansionPanelHeader(children=[summary])
55
+ rv.ExpansionPanelContent(children=children)
56
+ return main
@@ -11,7 +11,7 @@ from solara.alias import rv as v
11
11
  T = TypeVar("T")
12
12
 
13
13
 
14
- def use_change(el: reacton.core.Element, on_value: Callable[[Any], Any], enabled=True, update_events=["blur", "keyup.enter"]):
14
+ def use_change(el: reacton.core.Element, on_value: Callable[[Any], Any], enabled=True, update_events=["focusout", "keyup.enter"]):
15
15
  """Trigger a callback when a blur events occurs or the enter key is pressed."""
16
16
  on_value_ref = solara.use_ref(on_value)
17
17
  on_value_ref.current = on_value
@@ -44,7 +44,7 @@ def InputText(
44
44
  disabled: bool = False,
45
45
  password: bool = False,
46
46
  continuous_update: bool = False,
47
- update_events: List[str] = ["blur", "keyup.enter"],
47
+ update_events: List[str] = ["focusout", "keyup.enter"],
48
48
  error: Union[bool, str] = False,
49
49
  message: Optional[str] = None,
50
50
  classes: List[str] = [],
@@ -61,7 +61,7 @@ def _run_solara(code):
61
61
  Page = local_scope["Page"]
62
62
  app = solara.components.applayout._AppLayoutEmbed(children=[ExceptionGuard(children=[Page()])])
63
63
  else:
64
- raise NameError("No Page of app defined")
64
+ raise NameError("No Page or app defined")
65
65
  box = v.Html(tag="div")
66
66
  box, rc = solara.render(cast(solara.Element, app), container=box) # type: ignore
67
67
  widget_id = box._model_id
@@ -12,6 +12,7 @@ def Switch(
12
12
  value: Union[bool, solara.Reactive[bool]] = True,
13
13
  on_value: Callable[[bool], None] = None,
14
14
  disabled: bool = False,
15
+ color: str = None,
15
16
  children: list = [],
16
17
  classes: List[str] = [],
17
18
  style: Optional[Union[str, Dict[str, str]]] = None,
@@ -46,6 +47,7 @@ def Switch(
46
47
  * `value`: The current value of the switch (True or False).
47
48
  * `on_value`: A callback that is called when the switch is toggled.
48
49
  * `disabled`: If True, the switch is disabled and cannot be used.
50
+ * `color`: The color of the switch. Can be the name of a [theme](https://solara.dev/documentation/components/lab/theming) color variable (i.e. "success"), a color from the [Material color palette](https://v2.vuetifyjs.com/en/styles/colors/#material-colors) (i.e. "red darken-3"), or a CSS color (i.e. "#ff991f").
49
51
  * `children`: A list of child elements to display on the switch.
50
52
  * `classes`: Additional CSS classes to apply.
51
53
  * `style`: CSS style to apply.
@@ -62,6 +64,7 @@ def Switch(
62
64
  v_model=reactive_value.value,
63
65
  on_v_model=reactive_value.set,
64
66
  disabled=disabled,
67
+ color=color,
65
68
  class_=solara.util._combine_classes(classes),
66
69
  style_=solara.util._flatten_style(style),
67
70
  children=children,
@@ -7,7 +7,7 @@ import solara
7
7
 
8
8
  @solara.component
9
9
  def Tooltip(
10
- tooltip=Union[str, solara.Element],
10
+ tooltip: Union[str, solara.Element],
11
11
  children=[],
12
12
  color: Optional[str] = None,
13
13
  ):
@@ -43,6 +43,9 @@ def InputDate(
43
43
  first_day_of_the_week: int = 1,
44
44
  style: Optional[Union[str, Dict[str, str]]] = None,
45
45
  classes: Optional[List[str]] = None,
46
+ date_picker_type: str = "date",
47
+ min_date: Optional[str] = None,
48
+ max_date: Optional[str] = None,
46
49
  ):
47
50
  """
48
51
  Show a textfield, which when clicked, opens a datepicker. The input date should be of type `datetime.date`.
@@ -78,12 +81,22 @@ def InputDate(
78
81
  * first_day_of_the_week: Sets the first day of the week, as an `int` starting count from Sunday (`=0`). Defaults to `1`, which is Monday.
79
82
  * style: CSS style to apply to the text field. Either a string or a dictionary of CSS properties (i.e. `{"property": "value"}`).
80
83
  * classes: List of CSS classes to apply to the text field.
84
+ * date_picker_type: Sets the type of the datepicker. Use `"date"` for date selection or `"month"` for month selection. Defaults to `"date"`.
85
+ * min_date: Earliest allowed date/month (ISO 8601 format). If not specified, there is no limit.
86
+ * max_date: Latest allowed date/month (ISO 8601 format). If not specified, there is no limit.
81
87
  """
82
88
  value_reactive = solara.use_reactive(value, on_value) # type: ignore
83
89
  del value, on_value
84
90
  datepicker_is_open = solara.use_reactive(open_value, on_open_value) # type: ignore
85
91
  del open_value, on_open_value
86
92
 
93
+ if date_picker_type == "date":
94
+ internal_date_format = "%Y-%m-%d"
95
+ elif date_picker_type == "month":
96
+ internal_date_format = "%Y-%m"
97
+ else:
98
+ raise ValueError("date_picker_type must be either 'date' or 'month'.")
99
+
87
100
  def set_date_typed_cast(value: Optional[str]):
88
101
  if value:
89
102
  try:
@@ -103,7 +116,7 @@ def InputDate(
103
116
 
104
117
  def set_date_cast(new_value: Optional[str]):
105
118
  if new_value:
106
- date_value = dt.datetime.strptime(new_value, "%Y-%m-%d").date()
119
+ date_value = dt.datetime.strptime(new_value, internal_date_format).date()
107
120
  datepicker_is_open.set(False)
108
121
  value_reactive.value = date_value
109
122
 
@@ -111,7 +124,7 @@ def InputDate(
111
124
  if date is None:
112
125
  return None
113
126
  else:
114
- return date.strftime("%Y-%m-%d")
127
+ return date.strftime(internal_date_format)
115
128
 
116
129
  date_standard_str = standard_strfy(value_reactive.value)
117
130
 
@@ -144,6 +157,9 @@ def InputDate(
144
157
  on_v_model=set_date_cast,
145
158
  first_day_of_week=first_day_of_the_week,
146
159
  style_="width: 100%;",
160
+ max=max_date,
161
+ min=min_date,
162
+ type=date_picker_type,
147
163
  ):
148
164
  if len(children) > 0:
149
165
  solara.display(*children)
@@ -162,6 +178,10 @@ def InputDateRange(
162
178
  first_day_of_the_week: int = 1,
163
179
  style: Optional[Union[str, Dict[str, str]]] = None,
164
180
  classes: Optional[List[str]] = None,
181
+ date_picker_type: str = "date",
182
+ min_date: Optional[str] = None,
183
+ max_date: Optional[str] = None,
184
+ sort: Optional[bool] = False,
165
185
  ):
166
186
  """
167
187
  Show a textfield, which when clicked, opens a datepicker that allows users to select a range of dates by choosing a starting and ending date.
@@ -194,11 +214,16 @@ def InputDateRange(
194
214
  Intended to be used in conjunction with a custom set of controls to close the datepicker.
195
215
  * on_open_value: a callback function for when open_value changes. Also receives the new value as an argument.
196
216
  * date_format: Sets the format of the date displayed in the text field. Defaults to `"%Y/%m/%d"`. For more information,
197
- * optional: Determines whether go show an error when value is `None`. If `True`, no error is shown.
198
217
  see <a href="https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes" target="_blank">the Python documentation</a>.
218
+ * optional: Determines whether go show an error when value is `None`. If `True`, no error is shown.
199
219
  * first_day_of_the_week: Sets the first day of the week, as an `int` starting count from Sunday (`=0`). Defaults to `1`, which is Monday.
200
220
  * style: CSS style to apply to the text field. Either a string or a dictionary of CSS properties (i.e. `{"property": "value"}`).
201
221
  * classes: List of CSS classes to apply to the text field.
222
+ * date_picker_type: Sets the type of the datepicker. Use `"date"` for date selection or `"month"` for month selection. Defaults to `"date"`.
223
+ * min_date: Earliest allowed date/month (ISO 8601 format). If not specified, there is no limit.
224
+ * max_date: Latest allowed date/month (ISO 8601 format). If not specified, there is no limit.
225
+ * sort: If True, selected dates will be sorted in ascending order, regardless of the order they were picked. If False, preserves the order the
226
+ dates were selected.
202
227
 
203
228
  ## A More Advanced Example
204
229
 
@@ -244,7 +269,15 @@ def InputDateRange(
244
269
  """
245
270
  value_reactive = solara.use_reactive(value, on_value) # type: ignore
246
271
  del value, on_value
247
- date_standard_strings = [date.strftime("%Y-%m-%d") for date in value_reactive.value if date is not None]
272
+
273
+ if date_picker_type == "date":
274
+ internal_date_format = "%Y-%m-%d"
275
+ elif date_picker_type == "month":
276
+ internal_date_format = "%Y-%m"
277
+ else:
278
+ raise ValueError("date_picker_type must be either 'date' or 'month'.")
279
+
280
+ date_standard_strings = [date.strftime(internal_date_format) for date in value_reactive.value if date is not None]
248
281
  datepicker_is_open = solara.use_reactive(open_value, on_open_value) # type: ignore
249
282
  del open_value, on_open_value
250
283
  style_flat = solara.util._flatten_style(style)
@@ -252,15 +285,20 @@ def InputDateRange(
252
285
  def dates_to_string(dates: Tuple[Optional[dt.date], Optional[dt.date]]):
253
286
  string_dates = [date.strftime(date_format) if date is not None else "" for date in dates]
254
287
  if (len(dates) < 2 or dates[1] is None) and not optional:
255
- return string_dates[0], "Please select two dates"
288
+ return string_dates[0], f"Please select two {date_picker_type}s"
256
289
  return " - ".join(string_dates), None
257
290
 
258
291
  def set_dates_cast(values):
259
292
  date_value = cast(
260
- Tuple[Optional[dt.date], Optional[dt.date]], tuple([dt.datetime.strptime(item, "%Y-%m-%d").date() if item is not None else None for item in values])
293
+ Tuple[Optional[dt.date], Optional[dt.date]],
294
+ tuple([(dt.datetime.strptime(item, internal_date_format).date() if item is not None else None) for item in values]),
261
295
  )
262
296
  if len(date_value) > 1 and date_value[1] is not None:
263
297
  datepicker_is_open.set(False)
298
+
299
+ if sort:
300
+ date_value = cast(Tuple[dt.date, dt.date], tuple(sorted(date_value)))
301
+
264
302
  value_reactive.value = date_value
265
303
 
266
304
  string_dates, error_message = dates_to_string(value_reactive.value)
@@ -292,6 +330,9 @@ def InputDateRange(
292
330
  range=True,
293
331
  first_day_of_week=first_day_of_the_week,
294
332
  style_="width: 100%;",
333
+ max=max_date,
334
+ min=min_date,
335
+ type=date_picker_type,
295
336
  ):
296
337
  if len(children) > 0:
297
338
  for el in children:
@@ -134,6 +134,19 @@ div.highlight {
134
134
  cursor: default;
135
135
  }
136
136
 
137
+ /* Originally from nbconvert, required for accordion widget to work correctly */
138
+ .p-Widget.p-mod-hidden, /* </DEPRECATED> */
139
+ .lm-Widget.lm-mod-hidden {
140
+ display: none !important;
141
+ }
142
+
143
+ .lm-AccordionPanel[data-orientation='horizontal'] > .lm-AccordionPanel-title {
144
+ /* Title is rotated for horizontal accordion panel using CSS */
145
+ display: block;
146
+ transform-origin: top left;
147
+ transform: rotate(-90deg) translate(-100%);
148
+ }
149
+
137
150
  /* change font settings for ipywidgets */
138
151
  .jupyter-widgets {
139
152
  font-weight:400;
@@ -28,6 +28,8 @@ def define_module(name, module: Union[str, Path]):
28
28
  if name in _modules:
29
29
  old_module, dependencies = _modules[name]
30
30
  _modules[name] = (module, dependencies)
31
+ if kernel_context.has_current_context():
32
+ create_modules()
31
33
  return None
32
34
 
33
35
 
@@ -431,8 +431,12 @@ def get_nbextensions() -> Tuple[List[str], Dict[str, Optional[str]]]:
431
431
 
432
432
  def exists(name):
433
433
  for directory in nbextensions_directories:
434
- if (directory / (name + ".js")).exists():
435
- return True
434
+ try:
435
+ file_path = directory / (name + ".js")
436
+ if file_path.exists():
437
+ return True
438
+ except PermissionError:
439
+ logger.warning(f"Caught PermissionError while checking for existence of nbextension {name!r} at path: {file_path}. This path will be ignored.")
436
440
  logger.info(f"nbextension {name} not found")
437
441
  return False
438
442
 
@@ -444,10 +448,14 @@ def get_nbextensions() -> Tuple[List[str], Dict[str, Optional[str]]]:
444
448
  h = hashlib.new("md5", usedforsecurity=False) # type: ignore
445
449
 
446
450
  for directory in nbextensions_directories:
447
- if (directory / (name + ".js")).exists():
448
- for file in directory.glob("**/*.*"):
449
- data = file.read_bytes()
450
- h.update(data)
451
+ try:
452
+ file_path = directory / (name + ".js")
453
+ if file_path.exists():
454
+ for file in directory.glob("**/*.*"):
455
+ data = file.read_bytes()
456
+ h.update(data)
457
+ except PermissionError:
458
+ logger.warning(f"Caught PermissionError while checking for existence of nbextension {name!r} at path: {file_path}. This path will be ignored.")
451
459
 
452
460
  return h.hexdigest()
453
461
 
@@ -352,7 +352,7 @@ async def root(request: Request, fullpath: str = ""):
352
352
  if content is None:
353
353
  if settings.oauth.private and not request.user.is_authenticated:
354
354
  raise HTTPException(status_code=401, detail="Unauthorized")
355
- return HTMLResponse(content="Page not found by Solara router", status_code=404)
355
+ raise HTTPException(status_code=404, detail="Page not found by Solara router")
356
356
 
357
357
  if settings.oauth.private and not request.user.is_authenticated:
358
358
  from solara_enterprise.auth.starlette import login
@@ -119,7 +119,7 @@ async def main():
119
119
  ]
120
120
  for dep in requirements:
121
121
  await micropip.install(dep, keep_going=True)
122
- await micropip.install("/wheels/solara-1.32.2-py2.py3-none-any.whl", keep_going=True)
122
+ await micropip.install("/wheels/solara-1.34.0-py2.py3-none-any.whl", keep_going=True)
123
123
  import solara
124
124
 
125
125
  el = solara.Warning("lala")
@@ -114,7 +114,7 @@ _redirects = {
114
114
  "/examples/fullscreen/authorization": "/apps/authorization",
115
115
  "documentation/examples/fullscreen/authorization": "/apps/authorization",
116
116
  "/examples/fullscreen/layout-demo": "/apps/layout-demo",
117
- "/documentation/examples/fullscreen/layout-demo": "/apps/layout-demo",
117
+ "/documentation/examples/fullscreen/layout_demo": "/apps/layout-demo",
118
118
  "/examples/fullscreen/multipage": "/apps/multipage",
119
119
  "/documentation/examples/fullscreen/multipage": "/apps/multipage",
120
120
  "/examples/fullscreen/scatter": "apps/scatter",
@@ -122,7 +122,7 @@ _redirects = {
122
122
  "/examples/fullscreen/scrolling": "/apps/scrolling",
123
123
  "/documentation/examples/fullscreen/scrolling": "/apps/scrolling",
124
124
  "/examples/fullscreen/tutorial-streamlit": "/apps/tutorial-streamlit",
125
- "/documentation/examples/fullscreen/tutorial-streamlit": "/apps/tutorial-streamlit",
125
+ "/documentation/examples/fullscreen/tutorial_streamlit": "/apps/tutorial-streamlit",
126
126
  "/api/route": "/documentation/api/routing/route",
127
127
  "/api/route/kiwi": "/documentation/api/routing/route/kiwi",
128
128
  "/api/route/banana": "/documentation/api/routing/route/banana",
@@ -1,5 +1,21 @@
1
1
  # Solara Changelog
2
2
 
3
+ ## Version 1.33.0
4
+
5
+ ### Details
6
+
7
+ * Feature: Add support for `color` argument to `solara.Switch`. [#658](https://github.com/widgetti/solara/pull/658)
8
+ * Bug Fix: Support `define` for ES Modules when running with virtual kernel. [#668](https://github.com/widgetti/solara/pull/668)
9
+ * Bug Fix: Typo in `NameError` message. [#666](https://github.com/widgetti/solara/pull/666)
10
+ * Bug Fix: Show `solara.AppBar` when navigation tabs are the only child. [#656](https://github.com/widgetti/solara/pull/656)
11
+ * Bug Fix: PermissionError for nbextensions on startup in `solara>=1.29`. [#648](https://github.com/widgetti/solara/pull/648)
12
+
13
+ ## Version 1.32.2
14
+
15
+ ### Details
16
+
17
+ * Bug Fix: Theme change not behaving correctly for `solara.Markdown` and `ipywidgets`. [#636](https://github.com/widgetti/solara/pull/636)
18
+
3
19
 
4
20
  ## Version 1.32.1
5
21
 
@@ -361,7 +361,7 @@ To limit the ipywidgets_runner fixture to only run in a specific environment, us
361
361
 
362
362
 
363
363
  ### Organizing Tests and Managing Snapshots
364
- We recommend organizing your visual tests in a separate directory, such as `tests/ui`. This allows you to run fast tests (`test/unit`) separately from slow tests (t`est/ui`). Use the `solara_snapshots_directory` fixture to change the default directory for storing snapshots, which is `tests/ui/snapshots` by default.
364
+ We recommend organizing your visual tests in a separate directory, such as `tests/ui`. This allows you to run fast tests (`test/unit`) separately from slow tests (`test/ui`). Use the `solara_snapshots_directory` fixture to change the default directory for storing snapshots, which is `tests/ui/snapshots` by default.
365
365
 
366
366
  ```bash
367
367
  $ pytest tests/unit # run fast test
@@ -122,7 +122,9 @@ To create your own Auth0 application, follow these steps:
122
122
 
123
123
  Set your `SOLARA_SESSION_SECRET_KEY` to a random string. See the [Generating a secret key](#generating-a-secret-key) for a convenient way to generate a secret key.
124
124
 
125
- If you want to test on localhost, you might also want to set `SOLARA_SESSION_HTTPS_ONLY="false"`
125
+ Solara forces you to set a value for `SOLARA_SESSION_HTTPS_ONLY`, because the OAuth login is only secure when this setting is `True` and your app runs over HTTPS.
126
+ For development, where your app likely doesn't run over HTTPS, you must set it to `False`, otherwise OAuth login will not work.
127
+ For more information on configuring Solara to run over HTTPS, see [HTTPS](/documentation/getting_started/deploying/self-hosted#https).
126
128
 
127
129
  Now you can run the above solara example using your own auth0 provider.
128
130
 
@@ -0,0 +1,13 @@
1
+ """
2
+ # Details
3
+ """
4
+
5
+ import solara
6
+ from solara.website.components import NoPage
7
+ from solara.website.utils import apidoc
8
+
9
+ title = "Details"
10
+
11
+ Page = NoPage
12
+
13
+ __doc__ += apidoc(solara.Details.f) # type: ignore
@@ -14,16 +14,14 @@ solara.server.patch.patch()
14
14
  HERE = Path(__file__).parent
15
15
 
16
16
 
17
- ipyreact.define_module(
18
- "solara-test",
19
- """
17
+ test_js_code = """
20
18
  import * as React from "react";
21
19
 
22
20
  export default function({value, setValue, ...children}) {
23
- return React.createElement("button", {onClick: () => setValue(value + 1), children: `clicked ${value || 0}`})
21
+ return React.createElement("button", {onClick: () => setValue(value + 1), children: `clicked ${value || 0}`})
24
22
  }
25
- """,
26
- )
23
+ """
24
+ ipyreact.define_module("solara-test", test_js_code)
27
25
 
28
26
 
29
27
  @solara.component
@@ -32,9 +30,17 @@ def Page():
32
30
  ipyreact.ValueWidget.element(_module="solara-test", value=0, on_value=value.set)
33
31
 
34
32
 
33
+ @solara.component
34
+ def PageDefineDuringRun():
35
+ ipyreact.define_module("solara-test-dynamic", test_js_code)
36
+ value = solara.use_reactive(0)
37
+ ipyreact.ValueWidget.element(_module="solara-test-dynamic", value=0, on_value=value.set)
38
+
39
+
35
40
  @pytest.mark.skipif(sys.version_info < (3, 7, 0), reason="ipyreact requires python 3.7 or higher")
36
- def test_ipyreact(browser: playwright.sync_api.Browser, page_session: playwright.sync_api.Page, solara_server, solara_app, extra_include_path):
37
- with extra_include_path(HERE), solara_app("esm_test:Page"):
41
+ @pytest.mark.parametrize("app", ["esm_test:Page", "esm_test:PageDefineDuringRun"])
42
+ def test_ipyreact(browser: playwright.sync_api.Browser, page_session: playwright.sync_api.Page, solara_server, solara_app, extra_include_path, app):
43
+ with extra_include_path(HERE), solara_app(app):
38
44
  page_session.goto(solara_server.base_url)
39
45
  page_session.locator("text=clicked 0").first.click()
40
46
  page_session.locator("text=clicked 1").first.click()
@@ -4,8 +4,8 @@ from unittest.mock import MagicMock
4
4
 
5
5
  from playwright.sync_api import Page, expect
6
6
 
7
- today = dt.date.today()
8
- tomorrow = today + dt.timedelta(days=1)
7
+ date = dt.date(2018, 9, 1)
8
+ date2 = date + dt.timedelta(days=1)
9
9
 
10
10
 
11
11
  def test_input_date_single(solara_test, page_session: Page):
@@ -20,24 +20,24 @@ def test_input_date_single(solara_test, page_session: Page):
20
20
  on_value(value)
21
21
  set_value(value)
22
22
 
23
- value, set_value = solara.use_state(today)
23
+ value, set_value = solara.use_state(date)
24
24
  InputDate(value=value, label="label", on_value=update_value, classes=["test-class"])
25
25
 
26
26
  solara.display(Page())
27
27
 
28
28
  input = page_session.locator(".test-class input")
29
29
  expect(input).to_be_visible()
30
- expect(input).to_have_value(today.strftime("%Y/%m/%d"))
30
+ expect(input).to_have_value(date.strftime("%Y/%m/%d"))
31
31
  input.click()
32
32
  page_session.wait_for_timeout(350)
33
33
  expect(page_session.get_by_role("menu")).to_be_visible()
34
- today_button = page_session.get_by_role("button", name=today.strftime("%-d"), exact=True)
34
+ today_button = page_session.get_by_role("button", name=date.strftime("%-d"), exact=True)
35
35
  # We click it, but it does not trigger a change, so we don't auto close
36
36
  # Do we want to change this behaviour, and still close it?
37
37
  today_button.click()
38
38
  page_session.wait_for_timeout(350)
39
39
  expect(page_session.get_by_role("menu")).to_be_visible()
40
- tomorrow_button = page_session.get_by_role("button", name=tomorrow.strftime("%-d"), exact=True)
40
+ tomorrow_button = page_session.get_by_role("button", name=date2.strftime("%-d"), exact=True)
41
41
  tomorrow_button.click()
42
42
  page_session.wait_for_timeout(350)
43
43
  expect(page_session.get_by_role("menu")).not_to_be_visible()
@@ -69,23 +69,23 @@ def test_input_date_range(solara_test, page_session: Page):
69
69
  on_value(value)
70
70
  set_value(value)
71
71
 
72
- value, set_value = solara.use_state([today, tomorrow])
72
+ value, set_value = solara.use_state([date, date2])
73
73
  InputDateRange(value=value, label="label", on_value=update_value, classes=["test-class"])
74
74
 
75
75
  solara.display(Page())
76
76
 
77
77
  input = page_session.locator(".test-class input")
78
78
  expect(input).to_be_visible()
79
- expect(input).to_have_value(f"{today.strftime('%Y/%m/%d')} - {tomorrow.strftime('%Y/%m/%d')}")
79
+ expect(input).to_have_value(f"{date.strftime('%Y/%m/%d')} - {date2.strftime('%Y/%m/%d')}")
80
80
  input.click()
81
81
  page_session.wait_for_timeout(350)
82
82
  expect(page_session.get_by_role("menu")).to_be_visible()
83
- today_button = page_session.get_by_role("button", name=today.strftime("%-d"), exact=True)
83
+ today_button = page_session.get_by_role("button", name=date.strftime("%-d"), exact=True)
84
84
  today_button.click()
85
85
  page_session.wait_for_timeout(350)
86
86
  expect(page_session.locator(".test-class label")).to_contain_text("label (Please select two dates)")
87
87
  expect(page_session.get_by_role("menu")).to_be_visible()
88
- tomorrow_button = page_session.get_by_role("button", name=tomorrow.strftime("%-d"), exact=True)
88
+ tomorrow_button = page_session.get_by_role("button", name=date2.strftime("%-d"), exact=True)
89
89
  tomorrow_button.click()
90
90
  page_session.wait_for_timeout(350)
91
91
  expect(page_session.locator(".test-class label")).not_to_contain_text("(Please select two dates)")