nicegui 1.4.2__tar.gz → 1.4.4__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 (587) hide show
  1. {nicegui-1.4.2 → nicegui-1.4.4}/PKG-INFO +2 -3
  2. nicegui-1.4.4/nicegui/.syncignore +3 -0
  3. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/air.py +7 -3
  4. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/app/app_config.py +3 -0
  5. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/client.py +5 -4
  6. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/element.py +5 -2
  7. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/aggrid.py +13 -6
  8. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/chat_message.py +10 -5
  9. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/echart.js +1 -1
  10. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/image.js +3 -1
  11. nicegui-1.4.4/nicegui/elements/image.py +47 -0
  12. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/interactive_image.js +3 -1
  13. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/interactive_image.py +15 -0
  14. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/json_editor.js +1 -1
  15. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/mixins/content_element.py +2 -2
  16. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/mixins/disableable_element.py +2 -2
  17. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/mixins/filter_element.py +2 -2
  18. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/mixins/name_element.py +2 -2
  19. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/mixins/source_element.py +2 -2
  20. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/mixins/text_element.py +2 -2
  21. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/mixins/value_element.py +2 -2
  22. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/number.py +18 -1
  23. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/scene.js +10 -4
  24. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/scene.py +2 -2
  25. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/select.js +13 -6
  26. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/select.py +1 -0
  27. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/table.py +53 -1
  28. nicegui-1.4.4/nicegui/functions/download.py +20 -0
  29. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/functions/open.py +9 -3
  30. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/functions/refreshable.py +19 -10
  31. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/nicegui.py +5 -4
  32. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/page.py +10 -1
  33. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/page_layout.py +11 -0
  34. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/templates/index.html +8 -4
  35. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/ui_run.py +10 -6
  36. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/ui_run_with.py +3 -2
  37. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/welcome.py +7 -5
  38. {nicegui-1.4.2 → nicegui-1.4.4}/pyproject.toml +7 -5
  39. {nicegui-1.4.2 → nicegui-1.4.4}/setup.py +2 -3
  40. nicegui-1.4.2/nicegui/elements/chat_message.js +0 -3
  41. nicegui-1.4.2/nicegui/elements/image.py +0 -17
  42. nicegui-1.4.2/nicegui/functions/download.py +0 -19
  43. {nicegui-1.4.2 → nicegui-1.4.4}/LICENSE +0 -0
  44. {nicegui-1.4.2 → nicegui-1.4.4}/README.md +0 -0
  45. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/__init__.py +0 -0
  46. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/api_router.py +0 -0
  47. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/app/__init__.py +0 -0
  48. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/app/app.py +0 -0
  49. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/app/streaming_response.py +0 -0
  50. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/awaitable_response.py +0 -0
  51. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/background_tasks.py +0 -0
  52. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/binding.py +0 -0
  53. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/context.py +0 -0
  54. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/core.py +0 -0
  55. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/dataclasses.py +0 -0
  56. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/dependencies.py +0 -0
  57. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/__init__.py +0 -0
  58. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/aggrid.js +0 -0
  59. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/audio.js +0 -0
  60. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/audio.py +0 -0
  61. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/avatar.py +0 -0
  62. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/badge.py +0 -0
  63. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/button.py +0 -0
  64. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/card.py +0 -0
  65. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/carousel.py +0 -0
  66. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/chart.py +0 -0
  67. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/checkbox.py +0 -0
  68. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/choice_element.py +0 -0
  69. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/code.py +0 -0
  70. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/color_input.py +0 -0
  71. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/color_picker.py +0 -0
  72. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/colors.js +0 -0
  73. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/colors.py +0 -0
  74. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/column.py +0 -0
  75. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/context_menu.py +0 -0
  76. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/dark_mode.js +0 -0
  77. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/dark_mode.py +0 -0
  78. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/date.py +0 -0
  79. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/dialog.py +0 -0
  80. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/echart.py +0 -0
  81. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/editor.py +0 -0
  82. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/expansion.py +0 -0
  83. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/grid.py +0 -0
  84. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/highchart.py +0 -0
  85. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/html.py +0 -0
  86. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/icon.py +0 -0
  87. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/input.js +0 -0
  88. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/input.py +0 -0
  89. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/joystick.py +0 -0
  90. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/joystick.vue +0 -0
  91. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/json_editor.py +0 -0
  92. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/keyboard.js +0 -0
  93. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/keyboard.py +0 -0
  94. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/knob.py +0 -0
  95. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/label.py +0 -0
  96. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/aggrid/ag-grid-community.js +0 -0
  97. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/aggrid/ag-grid-community.min.js +0 -0
  98. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/echarts/echarts.js.map +0 -0
  99. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/echarts/echarts.min.js +0 -0
  100. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/arc-8b90ddc8.js +0 -0
  101. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/arc-907dcd53.js +0 -0
  102. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/array-2ff2c7a6.js +0 -0
  103. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/array-b7dcf730.js +0 -0
  104. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/c4Diagram-331b94a9.js +0 -0
  105. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/c4Diagram-4bfe15a7.js +0 -0
  106. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/c4Diagram-7e558229.js +0 -0
  107. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/classDiagram-1f3fb0f7.js +0 -0
  108. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/classDiagram-8fd6d062.js +0 -0
  109. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/classDiagram-bfe30095.js +0 -0
  110. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/classDiagram-v2-3a55c922.js +0 -0
  111. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/classDiagram-v2-8c49bbbd.js +0 -0
  112. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/classDiagram-v2-e3ddc2d7.js +0 -0
  113. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/constant-2fe7eae5.js +0 -0
  114. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/constant-b644328d.js +0 -0
  115. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/createText-53d25889.js +0 -0
  116. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/createText-56dbee71.js +0 -0
  117. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/createText-b3507a77.js +0 -0
  118. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/edges-32b26c0e.js +0 -0
  119. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/edges-345e4ceb.js +0 -0
  120. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/edges-bc33a094.js +0 -0
  121. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/erDiagram-5b6cebf0.js +0 -0
  122. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/erDiagram-5d923d74.js +0 -0
  123. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/erDiagram-fe64cf2c.js +0 -0
  124. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/flowDb-203d9d78.js +0 -0
  125. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/flowDb-2e398966.js +0 -0
  126. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/flowDb-bd9f2a91.js +0 -0
  127. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/flowDiagram-90a5ee23.js +0 -0
  128. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/flowDiagram-a7ef5206.js +0 -0
  129. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/flowDiagram-fc477a2f.js +0 -0
  130. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/flowDiagram-v2-54a189bd.js +0 -0
  131. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/flowDiagram-v2-5d1a7836.js +0 -0
  132. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/flowDiagram-v2-eab222bb.js +0 -0
  133. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/flowchart-elk-definition-1cf4c568.js +0 -0
  134. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/flowchart-elk-definition-387761c1.js +0 -0
  135. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/flowchart-elk-definition-4ac3371a.js +0 -0
  136. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/ganttDiagram-33f16fa4.js +0 -0
  137. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/ganttDiagram-67dd342e.js +0 -0
  138. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/ganttDiagram-9d6d9e54.js +0 -0
  139. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/gitGraphDiagram-7b32de06.js +0 -0
  140. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/gitGraphDiagram-94f74fa6.js +0 -0
  141. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/gitGraphDiagram-a6165b81.js +0 -0
  142. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/index-08d47d0a.js +0 -0
  143. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/index-a53b5366.js +0 -0
  144. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/index-b0b3af87.js +0 -0
  145. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/infoDiagram-645befec.js +0 -0
  146. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/infoDiagram-6a975df6.js +0 -0
  147. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/infoDiagram-78c839bd.js +0 -0
  148. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/init-cc95ec8e.js +0 -0
  149. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/init-f9637058.js +0 -0
  150. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/journeyDiagram-14f1468f.js +0 -0
  151. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/journeyDiagram-67cc1186.js +0 -0
  152. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/journeyDiagram-85312b66.js +0 -0
  153. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/layout-1caf14c9.js +0 -0
  154. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/layout-8affc211.js +0 -0
  155. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/line-3d4ae7d1.js +0 -0
  156. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/line-9d49a987.js +0 -0
  157. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/linear-1d0b5464.js +0 -0
  158. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/linear-c9300245.js +0 -0
  159. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/mermaid-485fd1a4.js +0 -0
  160. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/mermaid-5f2d2ec5.js +0 -0
  161. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/mermaid-f344f6a7.js +0 -0
  162. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/mermaid.core.mjs +0 -0
  163. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/mermaid.esm.min.mjs +0 -0
  164. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/mermaid.esm.mjs +0 -0
  165. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/mermaid.js +0 -0
  166. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/mermaid.min.js +0 -0
  167. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/mindmap-definition-9a80f489.js +0 -0
  168. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/mindmap-definition-c18effbb.js +0 -0
  169. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/mindmap-definition-e624fba5.js +0 -0
  170. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/ordinal-475e0c0c.js +0 -0
  171. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/ordinal-5695958c.js +0 -0
  172. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/pieDiagram-47467502.js +0 -0
  173. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/pieDiagram-b8ef8d1d.js +0 -0
  174. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/pieDiagram-cdffdf74.js +0 -0
  175. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/quadrantDiagram-3646f1b7.js +0 -0
  176. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/quadrantDiagram-e493ce51.js +0 -0
  177. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/quadrantDiagram-f86baae9.js +0 -0
  178. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/requirementDiagram-3252776f.js +0 -0
  179. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/requirementDiagram-cc8b2f2f.js +0 -0
  180. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/requirementDiagram-d7b522a1.js +0 -0
  181. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/sankeyDiagram-31fcfff2.js +0 -0
  182. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/sankeyDiagram-3886b48b.js +0 -0
  183. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/sankeyDiagram-6008c03c.js +0 -0
  184. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/sequenceDiagram-906ce93a.js +0 -0
  185. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/sequenceDiagram-ccb4d521.js +0 -0
  186. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/sequenceDiagram-e03e412c.js +0 -0
  187. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/stateDiagram-096e8085.js +0 -0
  188. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/stateDiagram-a7efb93f.js +0 -0
  189. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/stateDiagram-dac17514.js +0 -0
  190. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/stateDiagram-v2-0255b0b2.js +0 -0
  191. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/stateDiagram-v2-9dc5bbab.js +0 -0
  192. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/stateDiagram-v2-cedd2d35.js +0 -0
  193. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/styles-081ce523.js +0 -0
  194. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/styles-3bbdb1fe.js +0 -0
  195. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/styles-409bbf16.js +0 -0
  196. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/styles-47086cb2.js +0 -0
  197. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/styles-554c1edb.js +0 -0
  198. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/styles-8234ce8b.js +0 -0
  199. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/styles-9a324dfc.js +0 -0
  200. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/styles-c47180b5.js +0 -0
  201. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/styles-dc48a676.js +0 -0
  202. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/svgDrawCommon-43c67fcf.js +0 -0
  203. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/svgDrawCommon-cae1106a.js +0 -0
  204. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/svgDrawCommon-dee24e02.js +0 -0
  205. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/timeline-definition-2815a264.js +0 -0
  206. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/timeline-definition-64934a04.js +0 -0
  207. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/mermaid/timeline-definition-fd64d3c8.js +0 -0
  208. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/nipplejs/nipplejs.js +0 -0
  209. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/plotly/plotly.js +0 -0
  210. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/plotly/plotly.min.js +0 -0
  211. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/three/modules/CSS2DRenderer.js +0 -0
  212. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/three/modules/CSS3DRenderer.js +0 -0
  213. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/three/modules/DragControls.js +0 -0
  214. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/three/modules/OrbitControls.js +0 -0
  215. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/three/modules/STLLoader.js +0 -0
  216. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/three/three.module.js +0 -0
  217. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/tween/tween.umd.js +0 -0
  218. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/vanilla-jsoneditor/index.js +0 -0
  219. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/lib/vanilla-jsoneditor/index.js.map +0 -0
  220. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/line_plot.py +0 -0
  221. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/link.js +0 -0
  222. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/link.py +0 -0
  223. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/log.js +0 -0
  224. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/log.py +0 -0
  225. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/markdown.js +0 -0
  226. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/markdown.py +0 -0
  227. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/menu.py +0 -0
  228. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/mermaid.js +0 -0
  229. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/mermaid.py +0 -0
  230. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/mixins/__init__.py +0 -0
  231. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/mixins/color_elements.py +0 -0
  232. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/mixins/validation_element.py +0 -0
  233. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/mixins/visibility.py +0 -0
  234. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/pagination.py +0 -0
  235. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/plotly.py +0 -0
  236. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/plotly.vue +0 -0
  237. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/progress.py +0 -0
  238. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/pyplot.py +0 -0
  239. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/query.js +0 -0
  240. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/query.py +0 -0
  241. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/radio.py +0 -0
  242. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/row.py +0 -0
  243. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/scene_object3d.py +0 -0
  244. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/scene_objects.py +0 -0
  245. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/scroll_area.py +0 -0
  246. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/separator.py +0 -0
  247. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/slider.py +0 -0
  248. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/spinner.py +0 -0
  249. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/splitter.py +0 -0
  250. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/stepper.py +0 -0
  251. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/switch.py +0 -0
  252. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/table.js +0 -0
  253. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/tabs.py +0 -0
  254. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/textarea.py +0 -0
  255. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/time.py +0 -0
  256. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/timeline.py +0 -0
  257. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/timer.js +0 -0
  258. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/timer.py +0 -0
  259. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/toggle.py +0 -0
  260. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/tooltip.py +0 -0
  261. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/tree.py +0 -0
  262. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/upload.js +0 -0
  263. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/upload.py +0 -0
  264. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/video.js +0 -0
  265. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/elements/video.py +0 -0
  266. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/error.py +0 -0
  267. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/event_listener.py +0 -0
  268. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/events.py +0 -0
  269. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/favicon.py +0 -0
  270. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/functions/__init__.py +0 -0
  271. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/functions/html.py +0 -0
  272. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/functions/javascript.py +0 -0
  273. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/functions/notify.py +0 -0
  274. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/functions/refreshable.js +0 -0
  275. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/functions/update.py +0 -0
  276. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/helpers.py +0 -0
  277. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/json/__init__.py +0 -0
  278. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/json/builtin_wrapper.py +0 -0
  279. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/json/orjson_wrapper.py +0 -0
  280. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/language.py +0 -0
  281. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/logging.py +0 -0
  282. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/middlewares.py +0 -0
  283. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/native/__init__.py +0 -0
  284. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/native/native.py +0 -0
  285. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/native/native_config.py +0 -0
  286. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/native/native_mode.py +0 -0
  287. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/observables.py +0 -0
  288. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/optional_features.py +0 -0
  289. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/outbox.py +0 -0
  290. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/run.py +0 -0
  291. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/server.py +0 -0
  292. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/slot.py +0 -0
  293. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/es-module-shims.js +0 -0
  294. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/favicon.ico +0 -0
  295. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOkCnqEu92Fr1MmgVxEIzIXKMnyrYk.woff2 +0 -0
  296. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOkCnqEu92Fr1MmgVxFIzIXKMnyrYk.woff2 +0 -0
  297. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOkCnqEu92Fr1MmgVxGIzIXKMnyrYk.woff2 +0 -0
  298. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOkCnqEu92Fr1MmgVxHIzIXKMnyrYk.woff2 +0 -0
  299. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOkCnqEu92Fr1MmgVxIIzIXKMny.woff2 +0 -0
  300. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOkCnqEu92Fr1MmgVxLIzIXKMnyrYk.woff2 +0 -0
  301. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOkCnqEu92Fr1MmgVxMIzIXKMnyrYk.woff2 +0 -0
  302. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOkCnqEu92Fr1MmgWxP.ttf +0 -0
  303. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmEU9fABc4AMP6lbBP.woff2 +0 -0
  304. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmEU9fBBc4AMP6lQ.woff2 +0 -0
  305. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmEU9fBxc4AMP6lbBP.woff2 +0 -0
  306. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmEU9fCBc4AMP6lbBP.woff2 +0 -0
  307. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmEU9fCRc4AMP6lbBP.woff2 +0 -0
  308. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmEU9fChc4AMP6lbBP.woff2 +0 -0
  309. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmEU9fCxc4AMP6lbBP.woff2 +0 -0
  310. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmEU9vAw.ttf +0 -0
  311. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmSU5fABc4AMP6lbBP.woff2 +0 -0
  312. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmSU5fBBc4AMP6lQ.woff2 +0 -0
  313. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmSU5fBxc4AMP6lbBP.woff2 +0 -0
  314. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmSU5fCBc4AMP6lbBP.woff2 +0 -0
  315. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmSU5fCRc4AMP6lbBP.woff2 +0 -0
  316. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmSU5fChc4AMP6lbBP.woff2 +0 -0
  317. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmSU5fCxc4AMP6lbBP.woff2 +0 -0
  318. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmSU5vAw.ttf +0 -0
  319. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmWUlfABc4AMP6lbBP.woff2 +0 -0
  320. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmWUlfBBc4AMP6lQ.woff2 +0 -0
  321. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmWUlfBxc4AMP6lbBP.woff2 +0 -0
  322. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmWUlfCBc4AMP6lbBP.woff2 +0 -0
  323. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmWUlfCRc4AMP6lbBP.woff2 +0 -0
  324. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmWUlfChc4AMP6lbBP.woff2 +0 -0
  325. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmWUlfCxc4AMP6lbBP.woff2 +0 -0
  326. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmWUlvAw.ttf +0 -0
  327. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmYUtfABc4AMP6lbBP.woff2 +0 -0
  328. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmYUtfBBc4AMP6lQ.woff2 +0 -0
  329. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmYUtfBxc4AMP6lbBP.woff2 +0 -0
  330. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmYUtfCBc4AMP6lbBP.woff2 +0 -0
  331. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmYUtfCRc4AMP6lbBP.woff2 +0 -0
  332. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmYUtfChc4AMP6lbBP.woff2 +0 -0
  333. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmYUtfCxc4AMP6lbBP.woff2 +0 -0
  334. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOlCnqEu92Fr1MmYUtvAw.ttf +0 -0
  335. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOmCnqEu92Fr1Me5Q.ttf +0 -0
  336. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOmCnqEu92Fr1Mu4WxKKTU1Kvnz.woff2 +0 -0
  337. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2 +0 -0
  338. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOmCnqEu92Fr1Mu5mxKKTU1Kvnz.woff2 +0 -0
  339. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOmCnqEu92Fr1Mu72xKKTU1Kvnz.woff2 +0 -0
  340. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOmCnqEu92Fr1Mu7GxKKTU1Kvnz.woff2 +0 -0
  341. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOmCnqEu92Fr1Mu7WxKKTU1Kvnz.woff2 +0 -0
  342. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/KFOmCnqEu92Fr1Mu7mxKKTU1Kvnz.woff2 +0 -0
  343. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNZ.ttf +0 -0
  344. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.woff2 +0 -0
  345. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/fonts.css +0 -0
  346. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/ar-TN.umd.prod.js +0 -0
  347. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/ar.umd.prod.js +0 -0
  348. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/az-Latn.umd.prod.js +0 -0
  349. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/bg.umd.prod.js +0 -0
  350. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/bn.umd.prod.js +0 -0
  351. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/ca.umd.prod.js +0 -0
  352. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/cs.umd.prod.js +0 -0
  353. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/da.umd.prod.js +0 -0
  354. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/de-CH.umd.prod.js +0 -0
  355. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/de-DE.umd.prod.js +0 -0
  356. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/de.umd.prod.js +0 -0
  357. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/el.umd.prod.js +0 -0
  358. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/en-GB.umd.prod.js +0 -0
  359. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/en-US.umd.prod.js +0 -0
  360. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/eo.umd.prod.js +0 -0
  361. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/es.umd.prod.js +0 -0
  362. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/et.umd.prod.js +0 -0
  363. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/eu.umd.prod.js +0 -0
  364. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/fa-IR.umd.prod.js +0 -0
  365. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/fa.umd.prod.js +0 -0
  366. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/fi.umd.prod.js +0 -0
  367. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/fr.umd.prod.js +0 -0
  368. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/gn.umd.prod.js +0 -0
  369. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/he.umd.prod.js +0 -0
  370. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/hi.umd.prod.js +0 -0
  371. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/hr.umd.prod.js +0 -0
  372. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/hu.umd.prod.js +0 -0
  373. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/id.umd.prod.js +0 -0
  374. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/is.umd.prod.js +0 -0
  375. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/it.umd.prod.js +0 -0
  376. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/ja.umd.prod.js +0 -0
  377. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/kk.umd.prod.js +0 -0
  378. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/km.umd.prod.js +0 -0
  379. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/ko-KR.umd.prod.js +0 -0
  380. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/kur-CKB.umd.prod.js +0 -0
  381. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/lt.umd.prod.js +0 -0
  382. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/lu.umd.prod.js +0 -0
  383. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/lv.umd.prod.js +0 -0
  384. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/mk.umd.prod.js +0 -0
  385. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/ml.umd.prod.js +0 -0
  386. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/mm.umd.prod.js +0 -0
  387. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/ms.umd.prod.js +0 -0
  388. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/my.umd.prod.js +0 -0
  389. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/nb-NO.umd.prod.js +0 -0
  390. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/nl.umd.prod.js +0 -0
  391. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/pl.umd.prod.js +0 -0
  392. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/pt-BR.umd.prod.js +0 -0
  393. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/pt.umd.prod.js +0 -0
  394. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/ro.umd.prod.js +0 -0
  395. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/ru.umd.prod.js +0 -0
  396. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/sk.umd.prod.js +0 -0
  397. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/sl.umd.prod.js +0 -0
  398. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/sm.umd.prod.js +0 -0
  399. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/sr-CYR.umd.prod.js +0 -0
  400. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/sr.umd.prod.js +0 -0
  401. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/sv.umd.prod.js +0 -0
  402. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/ta.umd.prod.js +0 -0
  403. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/th.umd.prod.js +0 -0
  404. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/tr.umd.prod.js +0 -0
  405. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/ug.umd.prod.js +0 -0
  406. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/uk.umd.prod.js +0 -0
  407. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/uz-Cyrl.umd.prod.js +0 -0
  408. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/uz-Latn.umd.prod.js +0 -0
  409. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/vi.umd.prod.js +0 -0
  410. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/zh-CN.umd.prod.js +0 -0
  411. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/lang/zh-TW.umd.prod.js +0 -0
  412. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/nicegui.css +0 -0
  413. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/quasar.css +0 -0
  414. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/quasar.prod.css +0 -0
  415. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/quasar.umd.js +0 -0
  416. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/quasar.umd.prod.js +0 -0
  417. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/sad_face.svg +0 -0
  418. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/socket.io.min.js +0 -0
  419. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/socket.io.min.js.map +0 -0
  420. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/tailwindcss.min.js +0 -0
  421. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/utils/dynamic_properties.js +0 -0
  422. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/vue.global.js +0 -0
  423. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/static/vue.global.prod.js +0 -0
  424. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/storage.py +0 -0
  425. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind.py +0 -0
  426. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/__init__.py +0 -0
  427. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/accent_color.py +0 -0
  428. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/align_content.py +0 -0
  429. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/align_items.py +0 -0
  430. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/align_self.py +0 -0
  431. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/animation.py +0 -0
  432. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/appearance.py +0 -0
  433. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/aspect_ratio.py +0 -0
  434. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/backdrop_blur.py +0 -0
  435. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/backdrop_brightness.py +0 -0
  436. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/backdrop_contrast.py +0 -0
  437. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/backdrop_grayscale.py +0 -0
  438. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/backdrop_hue_rotate.py +0 -0
  439. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/backdrop_invert.py +0 -0
  440. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/backdrop_opacity.py +0 -0
  441. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/backdrop_saturate.py +0 -0
  442. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/backdrop_sepia.py +0 -0
  443. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/background_attachment.py +0 -0
  444. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/background_blend_mode.py +0 -0
  445. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/background_clip.py +0 -0
  446. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/background_color.py +0 -0
  447. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/background_image.py +0 -0
  448. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/background_origin.py +0 -0
  449. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/background_position.py +0 -0
  450. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/background_repeat.py +0 -0
  451. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/background_size.py +0 -0
  452. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/blur.py +0 -0
  453. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/border_collapse.py +0 -0
  454. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/border_color.py +0 -0
  455. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/border_radius.py +0 -0
  456. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/border_spacing.py +0 -0
  457. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/border_style.py +0 -0
  458. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/border_width.py +0 -0
  459. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/box_decoration_break.py +0 -0
  460. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/box_shadow.py +0 -0
  461. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/box_shadow_color.py +0 -0
  462. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/box_sizing.py +0 -0
  463. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/break_after.py +0 -0
  464. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/break_before.py +0 -0
  465. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/break_inside.py +0 -0
  466. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/brightness.py +0 -0
  467. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/caption_side.py +0 -0
  468. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/caret_color.py +0 -0
  469. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/clear.py +0 -0
  470. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/columns.py +0 -0
  471. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/content.py +0 -0
  472. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/contrast.py +0 -0
  473. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/cursor.py +0 -0
  474. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/display.py +0 -0
  475. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/divide_color.py +0 -0
  476. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/divide_style.py +0 -0
  477. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/divide_width.py +0 -0
  478. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/drop_shadow.py +0 -0
  479. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/fill.py +0 -0
  480. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/flex.py +0 -0
  481. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/flex_basis.py +0 -0
  482. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/flex_direction.py +0 -0
  483. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/flex_grow.py +0 -0
  484. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/flex_shrink.py +0 -0
  485. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/flex_wrap.py +0 -0
  486. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/floats.py +0 -0
  487. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/font_family.py +0 -0
  488. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/font_size.py +0 -0
  489. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/font_smoothing.py +0 -0
  490. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/font_style.py +0 -0
  491. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/font_variant_numeric.py +0 -0
  492. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/font_weight.py +0 -0
  493. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/gap.py +0 -0
  494. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/gradient_color_stops.py +0 -0
  495. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/grayscale.py +0 -0
  496. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/grid_auto_columns.py +0 -0
  497. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/grid_auto_flow.py +0 -0
  498. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/grid_auto_rows.py +0 -0
  499. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/grid_column_start_end.py +0 -0
  500. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/grid_row_start_end.py +0 -0
  501. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/grid_template_columns.py +0 -0
  502. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/grid_template_rows.py +0 -0
  503. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/height.py +0 -0
  504. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/hue_rotate.py +0 -0
  505. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/hyphens.py +0 -0
  506. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/invert.py +0 -0
  507. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/isolation.py +0 -0
  508. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/justify_content.py +0 -0
  509. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/justify_items.py +0 -0
  510. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/justify_self.py +0 -0
  511. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/letter_spacing.py +0 -0
  512. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/line_clamp.py +0 -0
  513. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/line_height.py +0 -0
  514. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/list_style_image.py +0 -0
  515. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/list_style_position.py +0 -0
  516. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/list_style_type.py +0 -0
  517. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/margin.py +0 -0
  518. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/max_height.py +0 -0
  519. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/max_width.py +0 -0
  520. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/min_height.py +0 -0
  521. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/min_width.py +0 -0
  522. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/mix_blend_mode.py +0 -0
  523. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/object_fit.py +0 -0
  524. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/object_position.py +0 -0
  525. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/opacity.py +0 -0
  526. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/order.py +0 -0
  527. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/outline_color.py +0 -0
  528. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/outline_offset.py +0 -0
  529. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/outline_style.py +0 -0
  530. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/outline_width.py +0 -0
  531. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/overflow.py +0 -0
  532. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/overscroll_behavior.py +0 -0
  533. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/padding.py +0 -0
  534. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/place_content.py +0 -0
  535. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/place_items.py +0 -0
  536. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/place_self.py +0 -0
  537. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/pointer_events.py +0 -0
  538. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/position.py +0 -0
  539. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/resize.py +0 -0
  540. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/ring_color.py +0 -0
  541. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/ring_offset_color.py +0 -0
  542. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/ring_offset_width.py +0 -0
  543. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/ring_width.py +0 -0
  544. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/rotate.py +0 -0
  545. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/saturate.py +0 -0
  546. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/scale.py +0 -0
  547. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/screen_readers.py +0 -0
  548. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/scroll_behavior.py +0 -0
  549. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/scroll_margin.py +0 -0
  550. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/scroll_padding.py +0 -0
  551. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/scroll_snap_align.py +0 -0
  552. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/scroll_snap_stop.py +0 -0
  553. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/scroll_snap_type.py +0 -0
  554. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/sepia.py +0 -0
  555. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/skew.py +0 -0
  556. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/space_between.py +0 -0
  557. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/stroke.py +0 -0
  558. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/stroke_width.py +0 -0
  559. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/table_layout.py +0 -0
  560. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/text_align.py +0 -0
  561. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/text_color.py +0 -0
  562. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/text_decoration.py +0 -0
  563. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/text_decoration_color.py +0 -0
  564. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/text_decoration_style.py +0 -0
  565. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/text_decoration_thickness.py +0 -0
  566. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/text_indent.py +0 -0
  567. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/text_overflow.py +0 -0
  568. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/text_transform.py +0 -0
  569. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/text_underline_offset.py +0 -0
  570. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/top_right_bottom_left.py +0 -0
  571. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/touch_action.py +0 -0
  572. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/transform_origin.py +0 -0
  573. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/transition_delay.py +0 -0
  574. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/transition_duration.py +0 -0
  575. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/transition_property.py +0 -0
  576. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/transition_timing_function.py +0 -0
  577. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/translate.py +0 -0
  578. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/user_select.py +0 -0
  579. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/vertical_align.py +0 -0
  580. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/visibility.py +0 -0
  581. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/whitespace.py +0 -0
  582. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/width.py +0 -0
  583. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/will_change.py +0 -0
  584. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/word_break.py +0 -0
  585. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/tailwind_types/z_index.py +0 -0
  586. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/ui.py +0 -0
  587. {nicegui-1.4.2 → nicegui-1.4.4}/nicegui/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nicegui
3
- Version: 1.4.2
3
+ Version: 1.4.4
4
4
  Summary: Create web-based user interfaces with Python. The nice way.
5
5
  Home-page: https://github.com/zauberzeug/nicegui
6
6
  License: MIT
@@ -20,7 +20,6 @@ Provides-Extra: native
20
20
  Provides-Extra: plotly
21
21
  Requires-Dist: Pygments (>=2.15.1,<3.0.0)
22
22
  Requires-Dist: aiofiles (>=23.1.0,<24.0.0)
23
- Requires-Dist: aiohttp (>=3.8.5,<4.0.0)
24
23
  Requires-Dist: fastapi (>=0.93,<1.0.0)
25
24
  Requires-Dist: fastapi-socketio (>=0.0.10,<0.0.11)
26
25
  Requires-Dist: httpx (>=0.24.0,<1.0.0)
@@ -35,7 +34,7 @@ Requires-Dist: plotly (>=5.13.0,<6.0.0) ; extra == "plotly"
35
34
  Requires-Dist: python-multipart (>=0.0.6,<0.0.7)
36
35
  Requires-Dist: python-socketio (>=5.10.0)
37
36
  Requires-Dist: pywebview (>=4.4.0,<5.0.0) ; extra == "native"
38
- Requires-Dist: typing-extensions (>=3.10.0)
37
+ Requires-Dist: typing-extensions (>=4.0.0)
39
38
  Requires-Dist: uvicorn[standard] (>=0.22.0,<0.23.0)
40
39
  Requires-Dist: vbuild (>=0.8.2)
41
40
  Requires-Dist: watchfiles (>=0.18.1,<1.0.0)
@@ -0,0 +1,3 @@
1
+ __pycache__/
2
+ .DS_Store
3
+ *.tmp
@@ -1,5 +1,6 @@
1
1
  import asyncio
2
2
  import gzip
3
+ import json
3
4
  import re
4
5
  from typing import Any, Dict, Optional
5
6
 
@@ -55,7 +56,8 @@ class Air:
55
56
  @self.relay.on('ready')
56
57
  def _handle_ready(data: Dict[str, Any]) -> None:
57
58
  core.app.urls.add(data['device_url'])
58
- print(f'NiceGUI is on air at {data["device_url"]}', flush=True)
59
+ if core.app.config.show_welcome_message:
60
+ print(f'NiceGUI is on air at {data["device_url"]}', flush=True)
59
61
 
60
62
  @self.relay.on('error')
61
63
  def _handleerror(data: Dict[str, Any]) -> None:
@@ -85,8 +87,10 @@ class Air:
85
87
  if client_id not in Client.instances:
86
88
  return
87
89
  client = Client.instances[client_id]
88
- if isinstance(data['msg']['args'], dict) and 'socket_id' in data['msg']['args']:
89
- data['msg']['args']['socket_id'] = client_id # HACK: translate socket_id of ui.scene's init event
90
+ if data['msg']['args'] and data['msg']['args'][0].startswith('{"socket_id":'):
91
+ args = json.loads(data['msg']['args'][0])
92
+ args['socket_id'] = client_id # HACK: translate socket_id of ui.scene's init event
93
+ data['msg']['args'][0] = json.dumps(args)
90
94
  client.handle_event(data['msg'])
91
95
 
92
96
  @self.relay.on('javascript_response')
@@ -34,6 +34,7 @@ class AppConfig:
34
34
  reconnect_timeout: float = field(init=False)
35
35
  tailwind: bool = field(init=False)
36
36
  prod_js: bool = field(init=False)
37
+ show_welcome_message: bool = field(init=False)
37
38
  _has_run_config: bool = False
38
39
 
39
40
  def add_run_config(self,
@@ -48,6 +49,7 @@ class AppConfig:
48
49
  reconnect_timeout: float,
49
50
  tailwind: bool,
50
51
  prod_js: bool,
52
+ show_welcome_message: bool,
51
53
  ) -> None:
52
54
  """Add the run config to the app config."""
53
55
  self.reload = reload
@@ -60,6 +62,7 @@ class AppConfig:
60
62
  self.reconnect_timeout = reconnect_timeout
61
63
  self.tailwind = tailwind
62
64
  self.prod_js = prod_js
65
+ self.show_welcome_message = show_welcome_message
63
66
  self._has_run_config = True
64
67
 
65
68
  @property
@@ -105,7 +105,8 @@ class Client:
105
105
  'elements': elements.replace('&', '&amp;')
106
106
  .replace('<', '&lt;')
107
107
  .replace('>', '&gt;')
108
- .replace('`', '&#96;'),
108
+ .replace('`', '&#96;')
109
+ .replace('$', '&#36;'),
109
110
  'head_html': self.head_html,
110
111
  'body_html': '<style>' + '\n'.join(vue_styles) + '</style>\n' + self.body_html + '\n' + '\n'.join(vue_html),
111
112
  'vue_scripts': '\n'.join(vue_scripts),
@@ -192,9 +193,9 @@ class Client:
192
193
  path = target if isinstance(target, str) else self.page_routes[target]
193
194
  outbox.enqueue_message('open', {'path': path, 'new_tab': new_tab}, self.id)
194
195
 
195
- def download(self, url: str, filename: Optional[str] = None) -> None:
196
- """Download a file from the given URL."""
197
- outbox.enqueue_message('download', {'url': url, 'filename': filename}, self.id)
196
+ def download(self, src: Union[str, bytes], filename: Optional[str] = None) -> None:
197
+ """Download a file from a given URL or raw bytes."""
198
+ outbox.enqueue_message('download', {'src': src, 'filename': filename}, self.id)
198
199
 
199
200
  def on_connect(self, handler: Union[Callable[..., Any], Awaitable]) -> None:
200
201
  """Register a callback to be called when the client connects."""
@@ -410,7 +410,7 @@ class Element(Visibility):
410
410
  """Update the element on the client side."""
411
411
  outbox.enqueue_update(self)
412
412
 
413
- def run_method(self, name: str, *args: Any) -> AwaitableResponse:
413
+ def run_method(self, name: str, *args: Any, timeout: float = 1, check_interval: float = 0.01) -> AwaitableResponse:
414
414
  """Run a method on the client side.
415
415
 
416
416
  If the function is awaited, the result of the method call is returned.
@@ -418,10 +418,13 @@ class Element(Visibility):
418
418
 
419
419
  :param name: name of the method
420
420
  :param args: arguments to pass to the method
421
+ :param timeout: maximum time to wait for a response (default: 1 second)
422
+ :param check_interval: time between checks for a response (default: 0.01 seconds)
421
423
  """
422
424
  if not core.loop:
423
425
  return NullResponse()
424
- return self.client.run_javascript(f'return runMethod({self.id}, "{name}", {json.dumps(args)})')
426
+ return self.client.run_javascript(f'return runMethod({self.id}, "{name}", {json.dumps(args)})',
427
+ timeout=timeout, check_interval=check_interval)
425
428
 
426
429
  def _collect_descendants(self, *, include_self: bool = False) -> List[Element]:
427
430
  elements: List[Element] = [self] if include_self else []
@@ -85,7 +85,7 @@ class AgGrid(Element, component='aggrid.js', libraries=['lib/aggrid/ag-grid-comm
85
85
  super().update()
86
86
  self.run_method('update_grid')
87
87
 
88
- def call_api_method(self, name: str, *args) -> AwaitableResponse:
88
+ def call_api_method(self, name: str, *args, timeout: float = 1, check_interval: float = 0.01) -> AwaitableResponse:
89
89
  """Call an AG Grid API method.
90
90
 
91
91
  See `AG Grid API <https://www.ag-grid.com/javascript-data-grid/grid-api/>`_ for a list of methods.
@@ -95,12 +95,15 @@ class AgGrid(Element, component='aggrid.js', libraries=['lib/aggrid/ag-grid-comm
95
95
 
96
96
  :param name: name of the method
97
97
  :param args: arguments to pass to the method
98
+ :param timeout: timeout in seconds (default: 1 second)
99
+ :param check_interval: interval in seconds to check for a response (default: 0.01 seconds)
98
100
 
99
101
  :return: AwaitableResponse that can be awaited to get the result of the method call
100
102
  """
101
- return self.run_method('call_api_method', name, *args)
103
+ return self.run_method('call_api_method', name, *args, timeout=timeout, check_interval=check_interval)
102
104
 
103
- def call_column_api_method(self, name: str, *args) -> AwaitableResponse:
105
+ def call_column_api_method(self, name: str, *args,
106
+ timeout: float = 1, check_interval: float = 0.01) -> AwaitableResponse:
104
107
  """Call an AG Grid Column API method.
105
108
 
106
109
  See `AG Grid Column API <https://www.ag-grid.com/javascript-data-grid/column-api/>`_ for a list of methods.
@@ -110,10 +113,12 @@ class AgGrid(Element, component='aggrid.js', libraries=['lib/aggrid/ag-grid-comm
110
113
 
111
114
  :param name: name of the method
112
115
  :param args: arguments to pass to the method
116
+ :param timeout: timeout in seconds (default: 1 second)
117
+ :param check_interval: interval in seconds to check for a response (default: 0.01 seconds)
113
118
 
114
119
  :return: AwaitableResponse that can be awaited to get the result of the method call
115
120
  """
116
- return self.run_method('call_column_api_method', name, *args)
121
+ return self.run_method('call_column_api_method', name, *args, timeout=timeout, check_interval=check_interval)
117
122
 
118
123
  async def get_selected_rows(self) -> List[Dict]:
119
124
  """Get the currently selected rows.
@@ -137,7 +142,7 @@ class AgGrid(Element, component='aggrid.js', libraries=['lib/aggrid/ag-grid-comm
137
142
  rows = await self.get_selected_rows()
138
143
  return rows[0] if rows else None
139
144
 
140
- async def get_client_data(self) -> List[Dict]:
145
+ async def get_client_data(self, *, timeout: float = 1, check_interval: float = 0.01) -> List[Dict]:
141
146
  """Get the data from the client including any edits made by the client.
142
147
 
143
148
  This method is especially useful when the grid is configured with ``'editable': True``.
@@ -147,13 +152,15 @@ class AgGrid(Element, component='aggrid.js', libraries=['lib/aggrid/ag-grid-comm
147
152
  Note that when editing a cell, the row data is not updated until the cell exits the edit mode.
148
153
  This does not happen when the cell loses focus, unless ``stopEditingWhenCellsLoseFocus: True`` is set.
149
154
 
155
+ :param timeout: timeout in seconds (default: 1 second)
156
+ :param check_interval: interval in seconds to check for a response (default: 0.01 seconds)
150
157
  :return: list of row data
151
158
  """
152
159
  result = await self.client.run_javascript(f'''
153
160
  const rowData = [];
154
161
  getElement({self.id}).gridOptions.api.forEachNode(node => rowData.push(node.data));
155
162
  return rowData;
156
- ''')
163
+ ''', timeout=timeout, check_interval=check_interval)
157
164
  return cast(List[Dict], result)
158
165
 
159
166
  async def load_client_data(self) -> None:
@@ -2,12 +2,13 @@ import html
2
2
  from typing import List, Optional, Union
3
3
 
4
4
  from ..element import Element
5
+ from .html import Html
5
6
 
6
7
 
7
- class ChatMessage(Element, component='chat_message.js'):
8
+ class ChatMessage(Element):
8
9
 
9
10
  def __init__(self,
10
- text: Union[str, List[str]], *,
11
+ text: Union[str, List[str]] = ..., *,
11
12
  name: Optional[str] = None,
12
13
  label: Optional[str] = None,
13
14
  stamp: Optional[str] = None,
@@ -27,15 +28,15 @@ class ChatMessage(Element, component='chat_message.js'):
27
28
  :param sent: render as a sent message (so from current user) (default: False)
28
29
  :param text_html: render text as HTML (default: False)
29
30
  """
30
- super().__init__()
31
+ super().__init__('q-chat-message')
31
32
 
33
+ if text is ...:
34
+ text = []
32
35
  if isinstance(text, str):
33
36
  text = [text]
34
37
  if not text_html:
35
38
  text = [html.escape(part) for part in text]
36
39
  text = [part.replace('\n', '<br />') for part in text]
37
- self._props['text'] = text
38
- self._props['text-html'] = True
39
40
 
40
41
  if name is not None:
41
42
  self._props['name'] = name
@@ -46,3 +47,7 @@ class ChatMessage(Element, component='chat_message.js'):
46
47
  if avatar is not None:
47
48
  self._props['avatar'] = avatar
48
49
  self._props['sent'] = sent
50
+
51
+ with self:
52
+ for line in text:
53
+ Html(line)
@@ -17,7 +17,7 @@ export default {
17
17
  methods: {
18
18
  update_chart() {
19
19
  convertDynamicProperties(this.options, true);
20
- this.chart.setOption(this.options);
20
+ this.chart.setOption(this.options, { notMerge: this.chart.options?.series.length != this.options.series.length });
21
21
  },
22
22
  },
23
23
  props: {
@@ -12,6 +12,7 @@ export default {
12
12
  `,
13
13
  props: {
14
14
  src: String,
15
+ t: String,
15
16
  },
16
17
  data: function () {
17
18
  return {
@@ -26,7 +27,8 @@ export default {
26
27
  },
27
28
  methods: {
28
29
  compute_src() {
29
- this.computed_src = (this.src.startsWith("/") ? window.path_prefix : "") + this.src;
30
+ const suffix = this.t ? (this.src.includes("?") ? "&" : "?") + "_nicegui_t=" + this.t : "";
31
+ this.computed_src = (this.src.startsWith("/") ? window.path_prefix : "") + this.src + suffix;
30
32
  },
31
33
  },
32
34
  };
@@ -0,0 +1,47 @@
1
+ import base64
2
+ import io
3
+ import time
4
+ from pathlib import Path
5
+ from typing import Union
6
+
7
+ from PIL.Image import Image as PIL_Image
8
+
9
+ from .mixins.source_element import SourceElement
10
+
11
+
12
+ class Image(SourceElement, component='image.js'):
13
+ PIL_CONVERT_FORMAT = 'PNG'
14
+
15
+ def __init__(self, source: Union[str, Path, PIL_Image] = '') -> None:
16
+ """Image
17
+
18
+ Displays an image.
19
+ This element is based on Quasar's `QImg <https://quasar.dev/vue-components/img>`_ component.
20
+
21
+ :param source: the source of the image; can be a URL, local file path, a base64 string or a PIL image
22
+ """
23
+ super().__init__(source=source)
24
+
25
+ def _set_props(self, source: Union[str, Path]) -> None:
26
+ if isinstance(source, PIL_Image):
27
+ source = pil_to_base64(source, self.PIL_CONVERT_FORMAT)
28
+ super()._set_props(source)
29
+
30
+ def force_reload(self) -> None:
31
+ """Force the image to reload from the source."""
32
+ self._props['t'] = time.time()
33
+ self.update()
34
+
35
+
36
+ def pil_to_base64(pil_image: PIL_Image, image_format: str) -> str:
37
+ """Convert a PIL image to a base64 string which can be used as image source.
38
+
39
+ :param pil_image: the PIL image
40
+ :param image_format: the image format
41
+ :return: the base64 string
42
+ """
43
+ buffer = io.BytesIO()
44
+ pil_image.save(buffer, image_format)
45
+ base64_encoded = base64.b64encode(buffer.getvalue())
46
+ base64_string = base64_encoded.decode('utf-8')
47
+ return f'data:image/{image_format.lower()};base64,{base64_string}'
@@ -49,7 +49,8 @@ export default {
49
49
  },
50
50
  methods: {
51
51
  compute_src() {
52
- const new_src = (this.src.startsWith("/") ? window.path_prefix : "") + this.src;
52
+ const suffix = this.t ? (this.src.includes("?") ? "&" : "?") + "_nicegui_t=" + this.t : "";
53
+ const new_src = (this.src.startsWith("/") ? window.path_prefix : "") + this.src + suffix;
53
54
  if (new_src == this.computed_src) {
54
55
  return;
55
56
  }
@@ -103,5 +104,6 @@ export default {
103
104
  content: String,
104
105
  events: Array,
105
106
  cross: Boolean,
107
+ t: String,
106
108
  },
107
109
  };
@@ -1,15 +1,20 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import time
3
4
  from pathlib import Path
4
5
  from typing import Any, Callable, List, Optional, Union, cast
5
6
 
7
+ from PIL.Image import Image as PIL_Image
8
+
6
9
  from ..events import GenericEventArguments, MouseEventArguments, handle_event
10
+ from .image import pil_to_base64
7
11
  from .mixins.content_element import ContentElement
8
12
  from .mixins.source_element import SourceElement
9
13
 
10
14
 
11
15
  class InteractiveImage(SourceElement, ContentElement, component='interactive_image.js'):
12
16
  CONTENT_PROP = 'content'
17
+ PIL_CONVERT_FORMAT = 'PNG'
13
18
 
14
19
  def __init__(self,
15
20
  source: Union[str, Path] = '', *,
@@ -55,3 +60,13 @@ class InteractiveImage(SourceElement, ContentElement, component='interactive_ima
55
60
  )
56
61
  handle_event(on_mouse, arguments)
57
62
  self.on('mouse', handle_mouse)
63
+
64
+ def _set_props(self, source: Union[str, Path]) -> None:
65
+ if isinstance(source, PIL_Image):
66
+ source = pil_to_base64(source, self.PIL_CONVERT_FORMAT)
67
+ super()._set_props(source)
68
+
69
+ def force_reload(self) -> None:
70
+ """Force the image to reload from the source."""
71
+ self._props['t'] = time.time()
72
+ self.update()
@@ -28,7 +28,7 @@ export default {
28
28
  },
29
29
  destroyEditor() {
30
30
  if (this.editor) {
31
- this.editor.dispose();
31
+ this.editor.destroy();
32
32
  }
33
33
  },
34
34
  },
@@ -1,6 +1,6 @@
1
- from typing import Any, Callable
1
+ from typing import Any, Callable, cast
2
2
 
3
- from typing_extensions import Self, cast
3
+ from typing_extensions import Self
4
4
 
5
5
  from ...binding import BindableProperty, bind, bind_from, bind_to
6
6
  from ...element import Element
@@ -1,6 +1,6 @@
1
- from typing import Any, Callable
1
+ from typing import Any, Callable, cast
2
2
 
3
- from typing_extensions import Self, cast
3
+ from typing_extensions import Self
4
4
 
5
5
  from ...binding import BindableProperty, bind, bind_from, bind_to
6
6
  from ...element import Element
@@ -1,6 +1,6 @@
1
- from typing import Any, Callable, Optional
1
+ from typing import Any, Callable, Optional, cast
2
2
 
3
- from typing_extensions import Self, cast
3
+ from typing_extensions import Self
4
4
 
5
5
  from ...binding import BindableProperty, bind, bind_from, bind_to
6
6
  from ...element import Element
@@ -1,6 +1,6 @@
1
- from typing import Any, Callable
1
+ from typing import Any, Callable, cast
2
2
 
3
- from typing_extensions import Self, cast
3
+ from typing_extensions import Self
4
4
 
5
5
  from ...binding import BindableProperty, bind, bind_from, bind_to
6
6
  from ...element import Element
@@ -1,7 +1,7 @@
1
1
  from pathlib import Path
2
- from typing import Any, Callable, Optional, Union
2
+ from typing import Any, Callable, Optional, Union, cast
3
3
 
4
- from typing_extensions import Self, cast
4
+ from typing_extensions import Self
5
5
 
6
6
  from ... import core
7
7
  from ...binding import BindableProperty, bind, bind_from, bind_to
@@ -1,6 +1,6 @@
1
- from typing import Any, Callable
1
+ from typing import Any, Callable, cast
2
2
 
3
- from typing_extensions import Self, cast
3
+ from typing_extensions import Self
4
4
 
5
5
  from ...binding import BindableProperty, bind, bind_from, bind_to
6
6
  from ...element import Element
@@ -1,6 +1,6 @@
1
- from typing import Any, Callable, Optional
1
+ from typing import Any, Callable, Optional, cast
2
2
 
3
- from typing_extensions import Self, cast
3
+ from typing_extensions import Self
4
4
 
5
5
  from ...binding import BindableProperty, bind, bind_from, bind_to
6
6
  from ...element import Element
@@ -14,6 +14,7 @@ class Number(ValidationElement, DisableableElement):
14
14
  value: Optional[float] = None,
15
15
  min: Optional[float] = None, # pylint: disable=redefined-builtin
16
16
  max: Optional[float] = None, # pylint: disable=redefined-builtin
17
+ precision: Optional[int] = None,
17
18
  step: Optional[float] = None,
18
19
  prefix: Optional[str] = None,
19
20
  suffix: Optional[str] = None,
@@ -33,6 +34,7 @@ class Number(ValidationElement, DisableableElement):
33
34
  :param value: the initial value of the field
34
35
  :param min: the minimum value allowed
35
36
  :param max: the maximum value allowed
37
+ :param precision: the number of decimal places allowed (default: no limit, negative: decimal places before the dot)
36
38
  :param step: the step size for the stepper buttons
37
39
  :param prefix: a prefix to prepend to the displayed value
38
40
  :param suffix: a suffix to append to the displayed value
@@ -51,6 +53,7 @@ class Number(ValidationElement, DisableableElement):
51
53
  self._props['min'] = min
52
54
  if max is not None:
53
55
  self._props['max'] = max
56
+ self._precision = precision
54
57
  if step is not None:
55
58
  self._props['step'] = step
56
59
  if prefix is not None:
@@ -79,6 +82,16 @@ class Number(ValidationElement, DisableableElement):
79
82
  self._props['max'] = value
80
83
  self.sanitize()
81
84
 
85
+ @property
86
+ def precision(self) -> Optional[int]:
87
+ """The number of decimal places allowed (default: no limit, negative: decimal places before the dot)."""
88
+ return self._precision
89
+
90
+ @precision.setter
91
+ def precision(self, value: Optional[int]) -> None:
92
+ self._precision = value
93
+ self.sanitize()
94
+
82
95
  @property
83
96
  def out_of_limits(self) -> bool:
84
97
  """Whether the current value is out of the allowed limits."""
@@ -86,9 +99,13 @@ class Number(ValidationElement, DisableableElement):
86
99
 
87
100
  def sanitize(self) -> None:
88
101
  """Sanitize the current value to be within the allowed limits."""
89
- value = float(self.value or 0)
102
+ if self.value is None:
103
+ return
104
+ value = float(self.value)
90
105
  value = max(value, self.min)
91
106
  value = min(value, self.max)
107
+ if self.precision is not None:
108
+ value = float(round(value, self.precision))
92
109
  self.set_value(float(self.format % value) if self.format else value)
93
110
 
94
111
  def _event_args_to_value(self, e: GenericEventArguments) -> Any:
@@ -326,14 +326,20 @@ export default {
326
326
  },
327
327
  draggable(object_id, value) {
328
328
  if (!this.objects.has(object_id)) return;
329
- if (value) this.draggable_objects.push(this.objects.get(object_id));
330
- else this.draggable_objects.pop(this.objects.get(object_id));
329
+ const object = this.objects.get(object_id);
330
+ if (value) this.draggable_objects.push(object);
331
+ else {
332
+ const index = this.draggable_objects.indexOf(object);
333
+ if (index != -1) this.draggable_objects.splice(index, 1);
334
+ }
331
335
  },
332
336
  delete(object_id) {
333
337
  if (!this.objects.has(object_id)) return;
334
- this.objects.get(object_id).removeFromParent();
338
+ const object = this.objects.get(object_id);
339
+ object.removeFromParent();
335
340
  this.objects.delete(object_id);
336
- this.draggable_objects.pop(this.objects.get(object_id));
341
+ const index = this.draggable_objects.indexOf(object);
342
+ if (index != -1) this.draggable_objects.splice(index, 1);
337
343
  },
338
344
  set_texture_url(object_id, url) {
339
345
  if (!this.objects.has(object_id)) return;
@@ -117,7 +117,7 @@ class Scene(Element,
117
117
  for obj in self.objects.values():
118
118
  obj.send()
119
119
 
120
- def run_method(self, name: str, *args: Any) -> AwaitableResponse:
120
+ def run_method(self, name: str, *args: Any, timeout: float = 1, check_interval: float = 0.01) -> AwaitableResponse:
121
121
  """Run a method on the client.
122
122
 
123
123
  :param name: name of the method
@@ -125,7 +125,7 @@ class Scene(Element,
125
125
  """
126
126
  if not self.is_initialized:
127
127
  return NullResponse()
128
- return super().run_method(name, *args)
128
+ return super().run_method(name, *args, timeout=timeout, check_interval=check_interval)
129
129
 
130
130
  def _handle_click(self, e: GenericEventArguments) -> None:
131
131
  arguments = SceneClickEventArguments(
@@ -20,13 +20,20 @@ export default {
20
20
  },
21
21
  methods: {
22
22
  filterFn(val, update, abort) {
23
- update(() => {
24
- const needle = val.toLocaleLowerCase();
25
- this.filteredOptions = needle
26
- ? this.initialOptions.filter((v) => String(v.label).toLocaleLowerCase().indexOf(needle) > -1)
27
- : this.initialOptions;
28
- });
23
+ update(() => (this.filteredOptions = this.findFilteredOptions()));
29
24
  },
25
+ findFilteredOptions() {
26
+ const needle = this.$el.querySelector("input[type=search]")?.value.toLocaleLowerCase();
27
+ return needle
28
+ ? this.initialOptions.filter((v) => String(v.label).toLocaleLowerCase().indexOf(needle) > -1)
29
+ : this.initialOptions;
30
+ },
31
+ },
32
+ updated() {
33
+ const newFilteredOptions = this.findFilteredOptions();
34
+ if (newFilteredOptions.length !== this.filteredOptions.length) {
35
+ this.filteredOptions = newFilteredOptions;
36
+ }
30
37
  },
31
38
  watch: {
32
39
  options: {
@@ -29,6 +29,7 @@ class Select(ChoiceElement, DisableableElement, component='select.js'):
29
29
 
30
30
  If `new_value_mode` is not None, it implies `with_input=True` and the user can enter new values in the input field.
31
31
  See `Quasar's documentation <https://quasar.dev/vue-components/select#the-new-value-mode-prop>`_ for details.
32
+ Note that this mode is ineffective when setting the `value` property programmatically.
32
33
 
33
34
  :param options: a list ['value1', ...] or dictionary `{'value1':'label1', ...}` specifying the options
34
35
  :param label: the label to display above the selection