flet 0.70.0.dev6370__tar.gz → 0.70.0.dev6412__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.

Potentially problematic release.


This version of flet might be problematic. Click here for more details.

Files changed (271) hide show
  1. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/PKG-INFO +1 -1
  2. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/pyproject.toml +1 -1
  3. flet-0.70.0.dev6412/src/flet/components/hooks/use_state.py +81 -0
  4. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/stack.py +27 -0
  5. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/auto_complete.py +41 -6
  6. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/menu_item_button.py +1 -1
  7. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/submenu_button.py +19 -0
  8. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/switch.py +5 -0
  9. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/text_button.py +8 -0
  10. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/time_picker.py +8 -0
  11. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/version.py +1 -1
  12. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet.egg-info/PKG-INFO +1 -1
  13. flet-0.70.0.dev6370/src/flet/components/hooks/use_state.py +0 -58
  14. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/README.md +0 -0
  15. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/setup.cfg +0 -0
  16. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/__init__.py +0 -0
  17. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/app.py +0 -0
  18. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/auth/__init__.py +0 -0
  19. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/auth/authorization.py +0 -0
  20. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/auth/authorization_service.py +0 -0
  21. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/auth/group.py +0 -0
  22. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/auth/oauth_provider.py +0 -0
  23. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/auth/oauth_token.py +0 -0
  24. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/auth/providers/__init__.py +0 -0
  25. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/auth/providers/auth0_oauth_provider.py +0 -0
  26. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/auth/providers/azure_oauth_provider.py +0 -0
  27. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/auth/providers/github_oauth_provider.py +0 -0
  28. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/auth/providers/google_oauth_provider.py +0 -0
  29. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/auth/user.py +0 -0
  30. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/canvas/__init__.py +0 -0
  31. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/cli.py +0 -0
  32. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/components/__init__.py +0 -0
  33. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/components/component.py +0 -0
  34. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/components/component_decorator.py +0 -0
  35. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/components/component_owned.py +0 -0
  36. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/components/hooks/__init__.py +0 -0
  37. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/components/hooks/hook.py +0 -0
  38. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/components/hooks/use_callback.py +0 -0
  39. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/components/hooks/use_context.py +0 -0
  40. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/components/hooks/use_effect.py +0 -0
  41. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/components/hooks/use_memo.py +0 -0
  42. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/components/memo.py +0 -0
  43. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/components/observable.py +0 -0
  44. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/components/public_utils.py +0 -0
  45. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/components/utils.py +0 -0
  46. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/__init__.py +0 -0
  47. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/adaptive_control.py +0 -0
  48. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/alignment.py +0 -0
  49. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/animation.py +0 -0
  50. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/base_control.py +0 -0
  51. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/base_page.py +0 -0
  52. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/blur.py +0 -0
  53. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/border.py +0 -0
  54. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/border_radius.py +0 -0
  55. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/box.py +0 -0
  56. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/buttons.py +0 -0
  57. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/colors.py +0 -0
  58. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/context.py +0 -0
  59. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/control.py +0 -0
  60. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/control_event.py +0 -0
  61. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/control_state.py +0 -0
  62. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/__init__.py +0 -0
  63. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/animated_switcher.py +0 -0
  64. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/autofill_group.py +0 -0
  65. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/canvas/__init__.py +0 -0
  66. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/canvas/arc.py +0 -0
  67. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/canvas/canvas.py +0 -0
  68. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/canvas/circle.py +0 -0
  69. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/canvas/color.py +0 -0
  70. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/canvas/fill.py +0 -0
  71. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/canvas/image.py +0 -0
  72. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/canvas/line.py +0 -0
  73. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/canvas/oval.py +0 -0
  74. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/canvas/path.py +0 -0
  75. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/canvas/points.py +0 -0
  76. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/canvas/rect.py +0 -0
  77. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/canvas/shadow.py +0 -0
  78. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/canvas/shape.py +0 -0
  79. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/canvas/text.py +0 -0
  80. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/column.py +0 -0
  81. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/dismissible.py +0 -0
  82. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/drag_target.py +0 -0
  83. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/draggable.py +0 -0
  84. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/flet_app.py +0 -0
  85. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/gesture_detector.py +0 -0
  86. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/grid_view.py +0 -0
  87. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/icon.py +0 -0
  88. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/image.py +0 -0
  89. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/interactive_viewer.py +0 -0
  90. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/keyboard_listener.py +0 -0
  91. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/list_view.py +0 -0
  92. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/markdown.py +0 -0
  93. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/merge_semantics.py +0 -0
  94. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/pagelet.py +0 -0
  95. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/placeholder.py +0 -0
  96. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/reorderable_draggable.py +0 -0
  97. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/responsive_row.py +0 -0
  98. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/row.py +0 -0
  99. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/safe_area.py +0 -0
  100. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/screenshot.py +0 -0
  101. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/semantics.py +0 -0
  102. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/shader_mask.py +0 -0
  103. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/text.py +0 -0
  104. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/text_span.py +0 -0
  105. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/transparent_pointer.py +0 -0
  106. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/view.py +0 -0
  107. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/window.py +0 -0
  108. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/core/window_drag_area.py +0 -0
  109. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/cupertino/__init__.py +0 -0
  110. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/cupertino/cupertino_action_sheet.py +0 -0
  111. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/cupertino/cupertino_action_sheet_action.py +0 -0
  112. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/cupertino/cupertino_activity_indicator.py +0 -0
  113. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/cupertino/cupertino_alert_dialog.py +0 -0
  114. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/cupertino/cupertino_app_bar.py +0 -0
  115. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/cupertino/cupertino_bottom_sheet.py +0 -0
  116. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/cupertino/cupertino_button.py +0 -0
  117. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/cupertino/cupertino_checkbox.py +0 -0
  118. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/cupertino/cupertino_colors.py +0 -0
  119. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/cupertino/cupertino_context_menu.py +0 -0
  120. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/cupertino/cupertino_context_menu_action.py +0 -0
  121. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/cupertino/cupertino_date_picker.py +0 -0
  122. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/cupertino/cupertino_dialog_action.py +0 -0
  123. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/cupertino/cupertino_filled_button.py +0 -0
  124. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/cupertino/cupertino_icons.py +0 -0
  125. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/cupertino/cupertino_list_tile.py +0 -0
  126. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/cupertino/cupertino_navigation_bar.py +0 -0
  127. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/cupertino/cupertino_picker.py +0 -0
  128. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/cupertino/cupertino_radio.py +0 -0
  129. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/cupertino/cupertino_segmented_button.py +0 -0
  130. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/cupertino/cupertino_slider.py +0 -0
  131. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/cupertino/cupertino_sliding_segmented_button.py +0 -0
  132. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/cupertino/cupertino_switch.py +0 -0
  133. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/cupertino/cupertino_textfield.py +0 -0
  134. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/cupertino/cupertino_timer_picker.py +0 -0
  135. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/cupertino/cupertino_tinted_button.py +0 -0
  136. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/device_info.py +0 -0
  137. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/dialog_control.py +0 -0
  138. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/duration.py +0 -0
  139. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/embed_json_encoder.py +0 -0
  140. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/events.py +0 -0
  141. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/exceptions.py +0 -0
  142. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/geometry.py +0 -0
  143. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/gradients.py +0 -0
  144. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/icon_data.py +0 -0
  145. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/id_counter.py +0 -0
  146. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/keys.py +0 -0
  147. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/layout_control.py +0 -0
  148. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/margin.py +0 -0
  149. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/__init__.py +0 -0
  150. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/alert_dialog.py +0 -0
  151. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/app_bar.py +0 -0
  152. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/badge.py +0 -0
  153. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/banner.py +0 -0
  154. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/bottom_app_bar.py +0 -0
  155. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/bottom_sheet.py +0 -0
  156. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/button.py +0 -0
  157. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/card.py +0 -0
  158. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/checkbox.py +0 -0
  159. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/chip.py +0 -0
  160. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/circle_avatar.py +0 -0
  161. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/container.py +0 -0
  162. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/datatable.py +0 -0
  163. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/date_picker.py +0 -0
  164. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/date_range_picker.py +0 -0
  165. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/divider.py +0 -0
  166. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/dropdown.py +0 -0
  167. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/dropdownm2.py +0 -0
  168. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/elevated_button.py +0 -0
  169. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/expansion_panel.py +0 -0
  170. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/expansion_tile.py +0 -0
  171. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/filled_button.py +0 -0
  172. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/filled_tonal_button.py +0 -0
  173. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/floating_action_button.py +0 -0
  174. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/form_field_control.py +0 -0
  175. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/icon_button.py +0 -0
  176. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/icons.py +0 -0
  177. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/list_tile.py +0 -0
  178. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/menu_bar.py +0 -0
  179. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/navigation_bar.py +0 -0
  180. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/navigation_drawer.py +0 -0
  181. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/navigation_rail.py +0 -0
  182. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/outlined_button.py +0 -0
  183. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/popup_menu_button.py +0 -0
  184. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/progress_bar.py +0 -0
  185. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/progress_ring.py +0 -0
  186. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/radio.py +0 -0
  187. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/radio_group.py +0 -0
  188. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/range_slider.py +0 -0
  189. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/reorderable_list_view.py +0 -0
  190. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/search_bar.py +0 -0
  191. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/segmented_button.py +0 -0
  192. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/selection_area.py +0 -0
  193. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/slider.py +0 -0
  194. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/snack_bar.py +0 -0
  195. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/tabs.py +0 -0
  196. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/textfield.py +0 -0
  197. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/tooltip.py +0 -0
  198. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/material/vertical_divider.py +0 -0
  199. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/multi_view.py +0 -0
  200. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/object_patch.py +0 -0
  201. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/padding.py +0 -0
  202. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/page.py +0 -0
  203. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/painting.py +0 -0
  204. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/query_string.py +0 -0
  205. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/ref.py +0 -0
  206. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/scrollable_control.py +0 -0
  207. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/services/__init__.py +0 -0
  208. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/services/browser_context_menu.py +0 -0
  209. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/services/clipboard.py +0 -0
  210. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/services/file_picker.py +0 -0
  211. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/services/haptic_feedback.py +0 -0
  212. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/services/semantics_service.py +0 -0
  213. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/services/service.py +0 -0
  214. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/services/shake_detector.py +0 -0
  215. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/services/shared_preferences.py +0 -0
  216. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/services/storage_paths.py +0 -0
  217. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/services/url_launcher.py +0 -0
  218. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/template_route.py +0 -0
  219. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/text_style.py +0 -0
  220. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/theme.py +0 -0
  221. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/transform.py +0 -0
  222. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/controls/types.py +0 -0
  223. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/fastapi/__init__.py +0 -0
  224. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/messaging/connection.py +0 -0
  225. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/messaging/flet_socket_server.py +0 -0
  226. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/messaging/protocol.py +0 -0
  227. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/messaging/pyodide_connection.py +0 -0
  228. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/messaging/session.py +0 -0
  229. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/messaging/session_store.py +0 -0
  230. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/pubsub/__init__.py +0 -0
  231. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/pubsub/pubsub_client.py +0 -0
  232. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/pubsub/pubsub_hub.py +0 -0
  233. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/security/__init__.py +0 -0
  234. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/testing/__init__.py +0 -0
  235. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/testing/finder.py +0 -0
  236. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/testing/flet_test_app.py +0 -0
  237. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/testing/tester.py +0 -0
  238. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/utils/__init__.py +0 -0
  239. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/utils/browser.py +0 -0
  240. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/utils/classproperty.py +0 -0
  241. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/utils/deprecated.py +0 -0
  242. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/utils/files.py +0 -0
  243. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/utils/from_dict.py +0 -0
  244. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/utils/hashing.py +0 -0
  245. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/utils/json_utils.py +0 -0
  246. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/utils/locks.py +0 -0
  247. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/utils/network.py +0 -0
  248. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/utils/object_model.py +0 -0
  249. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/utils/once.py +0 -0
  250. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/utils/pip.py +0 -0
  251. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/utils/platform_utils.py +0 -0
  252. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/utils/slugify.py +0 -0
  253. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/utils/strings.py +0 -0
  254. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet/utils/vector.py +0 -0
  255. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet.egg-info/SOURCES.txt +0 -0
  256. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet.egg-info/dependency_links.txt +0 -0
  257. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet.egg-info/entry_points.txt +0 -0
  258. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet.egg-info/requires.txt +0 -0
  259. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/src/flet.egg-info/top_level.txt +0 -0
  260. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/tests/test_base_control.py +0 -0
  261. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/tests/test_colors.py +0 -0
  262. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/tests/test_dataclasses.py +0 -0
  263. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/tests/test_datetime.py +0 -0
  264. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/tests/test_events.py +0 -0
  265. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/tests/test_from_dict.py +0 -0
  266. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/tests/test_icons.py +0 -0
  267. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/tests/test_object_diff_frozen.py +0 -0
  268. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/tests/test_object_diff_in_place.py +0 -0
  269. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/tests/test_object_diff_performance.py +0 -0
  270. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/tests/test_observable.py +0 -0
  271. {flet-0.70.0.dev6370 → flet-0.70.0.dev6412}/tests/test_patch_dataclass.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flet
3
- Version: 0.70.0.dev6370
3
+ Version: 0.70.0.dev6412
4
4
  Summary: Flet for Python - easily build interactive multi-platform apps in Python
5
5
  Author-email: "Appveyor Systems Inc." <hello@flet.dev>
6
6
  License-Expression: Apache-2.0
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "flet"
3
- version = "0.70.0.dev6370"
3
+ version = "0.70.0.dev6412"
4
4
  description = "Flet for Python - easily build interactive multi-platform apps in Python"
5
5
  authors = [{name = "Appveyor Systems Inc.", email = "hello@flet.dev"}]
6
6
  license = "Apache-2.0"
@@ -0,0 +1,81 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Callable
4
+ from dataclasses import dataclass
5
+ from typing import Any, TypeVar
6
+
7
+ from flet.components.hooks.hook import Hook
8
+ from flet.components.observable import Observable, ObservableSubscription
9
+ from flet.components.utils import current_component
10
+
11
+ StateT = TypeVar("StateT")
12
+ Updater = Callable[[StateT], StateT]
13
+
14
+
15
+ @dataclass
16
+ class StateHook(Hook):
17
+ value: Any
18
+ subscription: ObservableSubscription | None = None
19
+ version: int = 0
20
+
21
+
22
+ def use_state(
23
+ initial: StateT | Callable[[], StateT],
24
+ ) -> tuple[StateT, Callable[[StateT | Updater], None]]:
25
+ """
26
+ Adds state to a function component, similar to React's useState().
27
+
28
+ The returned setter accepts either:
29
+ - a new value, or
30
+ - a function receiving the previous state and returning the next one.
31
+
32
+ Args:
33
+ initial: Initial state value or a function returning it.
34
+
35
+ Returns:
36
+ (value, set_value) tuple.
37
+ """
38
+ component = current_component()
39
+ hook = component.use_hook(
40
+ lambda: StateHook(
41
+ component,
42
+ initial() if callable(initial) else initial,
43
+ )
44
+ )
45
+
46
+ def update_subscription(h: StateHook):
47
+ # Detach previous subscription if any
48
+ if h.subscription:
49
+ component._detach_observable_subscription(h.subscription)
50
+ h.subscription = None
51
+
52
+ # Attach new subscription if value is Observable
53
+ if isinstance(h.value, Observable):
54
+ h.subscription = component._attach_observable_subscription(h.value)
55
+
56
+ update_subscription(hook)
57
+
58
+ def set_state(new_value_or_fn: StateT | Updater):
59
+ """
60
+ Update the state value.
61
+
62
+ Can be called with either:
63
+ - a direct new value, or
64
+ - a function that takes the current value and returns the next one.
65
+ """
66
+ # Compute next value
67
+ new_value = (
68
+ new_value_or_fn(hook.value)
69
+ if callable(new_value_or_fn)
70
+ else new_value_or_fn
71
+ )
72
+
73
+ # Only trigger update if value changed (shallow equality)
74
+ if new_value != hook.value:
75
+ hook.value = new_value
76
+ update_subscription(hook)
77
+ hook.version += 1
78
+ if hook.component:
79
+ hook.component._schedule_update()
80
+
81
+ return hook.value, set_state
@@ -31,6 +31,33 @@ class Stack(LayoutControl, AdaptiveControl):
31
31
  Stack is also useful if you want to implement implicit animations
32
32
  (https://flet.dev/docs/guides/python/animations/) that require knowing absolute
33
33
  position of a target value.
34
+
35
+ ```python
36
+ ft.Stack(
37
+ width=300,
38
+ height=300,
39
+ controls=[
40
+ ft.Image(
41
+ src="https://picsum.photos/300/300",
42
+ width=300,
43
+ height=300,
44
+ fit=ft.BoxFit.CONTAIN,
45
+ ),
46
+ ft.Row(
47
+ alignment=ft.MainAxisAlignment.CENTER,
48
+ controls=[
49
+ ft.Text(
50
+ value="Image title",
51
+ color=ft.Colors.SURFACE_TINT,
52
+ size=40,
53
+ weight=ft.FontWeight.BOLD,
54
+ opacity=0.5,
55
+ )
56
+ ],
57
+ ),
58
+ ],
59
+ )
60
+ ```
34
61
  """
35
62
 
36
63
  controls: list[Control] = field(default_factory=list)
@@ -1,9 +1,9 @@
1
1
  from dataclasses import dataclass, field
2
2
  from typing import Optional
3
3
 
4
+ from flet import LayoutControl
4
5
  from flet.controls.base_control import control
5
- from flet.controls.control import Control
6
- from flet.controls.control_event import Event, EventHandler
6
+ from flet.controls.control_event import ControlEventHandler, Event, EventHandler
7
7
  from flet.controls.types import Number
8
8
 
9
9
  __all__ = ["AutoComplete", "AutoCompleteSelectEvent", "AutoCompleteSuggestion"]
@@ -11,22 +11,45 @@ __all__ = ["AutoComplete", "AutoCompleteSelectEvent", "AutoCompleteSuggestion"]
11
11
 
12
12
  @dataclass
13
13
  class AutoCompleteSuggestion:
14
+ """
15
+ Represents a suggestion item for the [`AutoComplete`][flet.] control.
16
+ """
17
+
14
18
  key: str
19
+ """A unique identifier or value used for filtering and selection."""
20
+
15
21
  value: str
22
+ """The display text shown to the user."""
16
23
 
17
24
 
18
25
  @dataclass
19
26
  class AutoCompleteSelectEvent(Event["AutoComplete"]):
27
+ """Event representing the selection of a suggestion in the AutoComplete control."""
28
+
29
+ index: int
30
+ """
31
+ The index of the selected suggestion from the corresponding
32
+ [`AutoComplete.suggestions`][flet.] list.
33
+ """
34
+
20
35
  selection: AutoCompleteSuggestion
36
+ """The selected suggestion."""
21
37
 
22
38
 
23
39
  @control("AutoComplete")
24
- class AutoComplete(Control):
40
+ class AutoComplete(LayoutControl):
25
41
  """
26
42
  Helps the user make a selection by entering some text and choosing from among a
27
43
  list of displayed options.
28
44
  """
29
45
 
46
+ value: str = ""
47
+ """
48
+ Current text displayed in the input field.
49
+
50
+ This value reflects user input even if it does not match any provided suggestion.
51
+ """
52
+
30
53
  suggestions: list[AutoCompleteSuggestion] = field(default_factory=list)
31
54
  """
32
55
  A list of [`AutoCompleteSuggestion`][flet.]
@@ -53,7 +76,19 @@ class AutoComplete(Control):
53
76
  Called when a suggestion is selected.
54
77
  """
55
78
 
79
+ on_change: Optional[ControlEventHandler["AutoComplete"]] = None
80
+ """
81
+ Called when the input text changes.
82
+ """
83
+
56
84
  @property
57
- def selected_index(self):
58
- # TODO: check availability of _selected_index + a default if not yet available
59
- return self._selected_index
85
+ def selected_index(self) -> Optional[int]:
86
+ """
87
+ The index of the (last) selected suggestion.
88
+
89
+ It is `None` until a suggestion has been selected from the UI.
90
+
91
+ Note:
92
+ This property is read-only.
93
+ """
94
+ return getattr(self, "_selected_index", None)
@@ -80,7 +80,7 @@ class MenuItemButton(LayoutControl):
80
80
 
81
81
  on_click: Optional[ControlEventHandler["MenuItemButton"]] = None
82
82
  """
83
- Called when the button is clicked.
83
+ Called when the button is clicked.If not defined the button will be disabled.
84
84
  """
85
85
 
86
86
  on_hover: Optional[ControlEventHandler["MenuItemButton"]] = None
@@ -19,6 +19,25 @@ class SubmenuButton(LayoutControl):
19
19
  A menu button that displays a cascading menu.
20
20
 
21
21
  Typically used in a [`MenuBar`][flet.] control.
22
+
23
+ ```python
24
+ ft.SubmenuButton(
25
+ content=ft.Text("Choose text style"),
26
+ key="smbutton",
27
+ expand=True,
28
+ menu_style=ft.MenuStyle(
29
+ alignment=ft.Alignment.BOTTOM_LEFT, side=ft.BorderSide(1)
30
+ ),
31
+ controls=[
32
+ ft.MenuItemButton(
33
+ content=ft.Text("Underlined"),
34
+ on_click=lambda e: print(f"{e.control.content.value}.on_click")
35
+ ),
36
+ ft.MenuItemButton(...),
37
+ ...
38
+ ]
39
+ )
40
+ ```
22
41
  """
23
42
 
24
43
  content: Optional[StrOrControl] = None
@@ -26,6 +26,11 @@ class Switch(LayoutControl, AdaptiveControl):
26
26
  two mutually exclusive options.
27
27
 
28
28
  For example, "On/Off", "Show/Hide".
29
+
30
+ ```python
31
+ ft.Switch(label="Unchecked switch", value=False)
32
+ ft.Switch(label="Disabled switch", disabled=True)
33
+ ```
29
34
  """
30
35
 
31
36
  label: Optional[StrOrControl] = None
@@ -22,6 +22,14 @@ class TextButton(LayoutControl, AdaptiveControl):
22
22
  Text buttons are used for the lowest priority actions, especially when presenting
23
23
  multiple options. Text buttons can be placed on a variety of backgrounds. Until the
24
24
  button is interacted with, its container isn’t visible.
25
+
26
+ ```python
27
+ ft.TextButton(
28
+ content="Text Button",
29
+ icon=ft.Icons.STAR_BORDER,
30
+ icon_color=ft.Colors.BLUE_300,
31
+ )
32
+ ```
25
33
  """
26
34
 
27
35
  content: Optional[StrOrControl] = None
@@ -38,6 +38,14 @@ class TimePicker(DialogControl):
38
38
 
39
39
  Depending on the `time_picker_entry_mode`, it will show either a Dial or
40
40
  an Input (hour and minute text fields) for picking a time.
41
+
42
+ ```python
43
+ ft.TimePicker(
44
+ value=time(1, 2),
45
+ time_picker_entry_mode=ft.TimePickerEntryMode.INPUT_ONLY,
46
+ open=True,
47
+ )
48
+ ```
41
49
  """
42
50
 
43
51
  value: Optional[time] = field(default_factory=lambda: datetime.now().time())
@@ -10,7 +10,7 @@ from flet.utils import is_mobile, is_windows, which
10
10
  DEFAULT_VERSION = "0.1.0"
11
11
 
12
12
  # will be replaced by CI
13
- version = "0.70.0.dev6370"
13
+ version = "0.70.0.dev6412"
14
14
 
15
15
 
16
16
  def update_version():
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flet
3
- Version: 0.70.0.dev6370
3
+ Version: 0.70.0.dev6412
4
4
  Summary: Flet for Python - easily build interactive multi-platform apps in Python
5
5
  Author-email: "Appveyor Systems Inc." <hello@flet.dev>
6
6
  License-Expression: Apache-2.0
@@ -1,58 +0,0 @@
1
- from collections.abc import Callable
2
- from dataclasses import dataclass
3
- from typing import Any, TypeVar
4
-
5
- from flet.components.hooks.hook import Hook
6
- from flet.components.observable import Observable, ObservableSubscription
7
- from flet.components.utils import current_component
8
-
9
-
10
- @dataclass
11
- class StateHook(Hook):
12
- value: Any
13
- subscription: ObservableSubscription | None = None
14
- version: int = 0
15
-
16
-
17
- StateT = TypeVar("StateT")
18
-
19
-
20
- def use_state(
21
- initial: StateT | Callable[[], StateT],
22
- ) -> tuple[StateT, Callable[[StateT], None]]:
23
- """
24
- Add state to function components.
25
-
26
- Args:
27
- initial: Initial state value or a function that returns the initial state value.
28
-
29
- Returns:
30
- A tuple of the current state value and a function to update it.
31
- """
32
- component = current_component()
33
- hook = component.use_hook(
34
- lambda: StateHook(
35
- component,
36
- initial() if callable(initial) else initial,
37
- )
38
- )
39
-
40
- def update_subscription(hook: StateHook):
41
- if hook.subscription:
42
- component._detach_observable_subscription(hook.subscription)
43
- hook.subscription = None
44
- if isinstance(hook.value, Observable):
45
- hook.subscription = component._attach_observable_subscription(hook.value)
46
-
47
- update_subscription(hook)
48
-
49
- def set_state(new_value: Any):
50
- # shallow equality; swap to "is" or custom comparator if needed
51
- if new_value != hook.value:
52
- hook.value = new_value
53
- update_subscription(hook)
54
- hook.version += 1
55
- if hook.component:
56
- hook.component._schedule_update()
57
-
58
- return hook.value, set_state
File without changes
File without changes