ex4nicegui 0.6.7__tar.gz → 0.6.9__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 (175) hide show
  1. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/PKG-INFO +61 -4
  2. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/README.md +60 -3
  3. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/__init__.py +12 -6
  4. ex4nicegui-0.6.9/ex4nicegui/gsap/__init__.py +23 -0
  5. ex4nicegui-0.6.9/ex4nicegui/helper/__init__.py +4 -0
  6. ex4nicegui-0.6.9/ex4nicegui/helper/client_instance_locker.py +31 -0
  7. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/__init__.py +4 -0
  8. ex4nicegui-0.6.9/ex4nicegui/reactive/base.py +426 -0
  9. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/deferredTask.py +3 -2
  10. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/local_file_picker.py +1 -2
  11. ex4nicegui-0.6.9/ex4nicegui/reactive/mixins/backgroundColor.py +41 -0
  12. ex4nicegui-0.6.9/ex4nicegui/reactive/mixins/disableable.py +44 -0
  13. ex4nicegui-0.6.9/ex4nicegui/reactive/mixins/textColor.py +66 -0
  14. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/aggrid.py +4 -4
  15. ex4nicegui-0.6.9/ex4nicegui/reactive/officials/base.py +5 -0
  16. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/button.py +36 -3
  17. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/checkbox.py +2 -3
  18. ex4nicegui-0.6.9/ex4nicegui/reactive/officials/chip.py +102 -0
  19. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/circular_progress.py +6 -5
  20. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/color_picker.py +3 -4
  21. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/column.py +1 -1
  22. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/date.py +2 -3
  23. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/drawer.py +2 -3
  24. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/echarts.py +2 -3
  25. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/expansion.py +2 -3
  26. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/grid.py +4 -3
  27. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/html.py +1 -3
  28. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/icon.py +5 -9
  29. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/image.py +2 -4
  30. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/input.py +4 -6
  31. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/knob.py +6 -4
  32. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/label.py +3 -10
  33. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/linear_progress.py +5 -9
  34. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/number.py +3 -6
  35. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/radio.py +3 -5
  36. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/row.py +1 -1
  37. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/select.py +3 -5
  38. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/slider.py +4 -6
  39. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/switch.py +2 -4
  40. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/tab.py +1 -1
  41. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/tab_panel.py +1 -1
  42. ex4nicegui-0.6.9/ex4nicegui/reactive/officials/tab_panels.py +164 -0
  43. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/table.py +7 -6
  44. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/tabs.py +1 -1
  45. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/textarea.py +3 -5
  46. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/upload.py +2 -2
  47. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/q_pagination.py +2 -2
  48. ex4nicegui-0.6.9/ex4nicegui/reactive/scopedStyle.js +55 -0
  49. ex4nicegui-0.6.9/ex4nicegui/reactive/scopedStyle.py +25 -0
  50. ex4nicegui-0.6.9/ex4nicegui/reactive/services/pandas_service.py +31 -0
  51. ex4nicegui-0.6.7/ex4nicegui/reactive/utils.py → ex4nicegui-0.6.9/ex4nicegui/reactive/services/reactive_service.py +9 -67
  52. ex4nicegui-0.6.9/ex4nicegui/reactive/systems/color_system.py +157 -0
  53. ex4nicegui-0.6.9/ex4nicegui/reactive/systems/object_system.py +33 -0
  54. ex4nicegui-0.6.9/ex4nicegui/reactive/systems/reactive_system.py +21 -0
  55. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/useMouse/UseMouse.py +4 -4
  56. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/usePagination.py +1 -1
  57. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/vfor.py +1 -2
  58. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/vmodel.py +1 -1
  59. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/utils/apiEffect.py +5 -1
  60. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/utils/effect.py +3 -2
  61. ex4nicegui-0.6.9/ex4nicegui/utils/refComputed.py +147 -0
  62. ex4nicegui-0.6.9/ex4nicegui/utils/refWrapper.py +57 -0
  63. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/utils/scheduler.py +20 -4
  64. ex4nicegui-0.6.9/ex4nicegui/utils/signals.py +270 -0
  65. ex4nicegui-0.6.9/ex4nicegui/utils/types.py +16 -0
  66. ex4nicegui-0.6.9/ex4nicegui/version.py +3 -0
  67. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/pyproject.toml +2 -1
  68. ex4nicegui-0.6.7/ex4nicegui/gsap/__init__.py +0 -12
  69. ex4nicegui-0.6.7/ex4nicegui/reactive/dropZone/__init__.py +0 -0
  70. ex4nicegui-0.6.7/ex4nicegui/reactive/mermaid/__init__.py +0 -0
  71. ex4nicegui-0.6.7/ex4nicegui/reactive/officials/__init__.py +0 -1
  72. ex4nicegui-0.6.7/ex4nicegui/reactive/officials/base.py +0 -352
  73. ex4nicegui-0.6.7/ex4nicegui/reactive/officials/tab_panels.py +0 -58
  74. ex4nicegui-0.6.7/ex4nicegui/reactive/officials/utils.py +0 -11
  75. ex4nicegui-0.6.7/ex4nicegui/reactive/useMouse/__init__.py +0 -0
  76. ex4nicegui-0.6.7/ex4nicegui/tools/__init__.py +0 -0
  77. ex4nicegui-0.6.7/ex4nicegui/utils/__init__.py +0 -0
  78. ex4nicegui-0.6.7/ex4nicegui/utils/signals.py +0 -411
  79. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/LICENSE +0 -0
  80. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/__init__.py +0 -0
  81. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/dataSource.py +0 -0
  82. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/dataSourceFacade.py +0 -0
  83. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/elements/__init__.py +0 -0
  84. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/elements/containers.py +0 -0
  85. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/elements/layouts.py +0 -0
  86. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/elements/models.py +0 -0
  87. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/elements/text.py +0 -0
  88. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/elements/ui_aggrid.py +0 -0
  89. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/elements/ui_date_picker.js +0 -0
  90. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/elements/ui_date_picker.py +0 -0
  91. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/elements/ui_echarts.py +0 -0
  92. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/elements/ui_radio.py +0 -0
  93. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/elements/ui_range.py +0 -0
  94. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/elements/ui_select.py +0 -0
  95. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/elements/ui_slider.py +0 -0
  96. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/elements/ui_table.py +0 -0
  97. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/index.py +0 -0
  98. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/protocols.py +0 -0
  99. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/bi/types.py +0 -0
  100. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/experimental_/__init__.py +0 -0
  101. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/experimental_/gridLayout/__init__.py +0 -0
  102. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/experimental_/gridLayout/index.py +0 -0
  103. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/gsap/gsap.py +0 -0
  104. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/gsap/timeline.js +0 -0
  105. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/gsap/timeline.py +0 -0
  106. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/gsap/wrapGsap.js +0 -0
  107. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/layout/__init__.py +0 -0
  108. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/layout/gridFlex/GridFlex.js +0 -0
  109. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/layout/gridFlex/__init__.py +0 -0
  110. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/layout/gridFlex/gridFlex.py +0 -0
  111. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/layout/gridFlex/utils.py +0 -0
  112. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/layout/rxFlex/__init__.py +0 -0
  113. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/layout/rxFlex/index.py +0 -0
  114. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/layout/rxFlex/types.py +0 -0
  115. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/__init__.py +0 -0
  116. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/d3/__init__.py +0 -0
  117. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/d3/d3-color.ems.js +0 -0
  118. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/d3/d3-dispatch.ems.js +0 -0
  119. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/d3/d3-drag.ems.js +0 -0
  120. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/d3/d3-ease.ems.js +0 -0
  121. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/d3/d3-interpolate.ems.js +0 -0
  122. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/d3/d3-selection.ems.js +0 -0
  123. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/d3/d3-timer.ems.js +0 -0
  124. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/d3/d3-transition.ems.js +0 -0
  125. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/d3/d3-zoom.ems.js +0 -0
  126. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/.DS_Store +0 -0
  127. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/CSSPlugin.js +0 -0
  128. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/CSSRulePlugin.js +0 -0
  129. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/CustomEase.js +0 -0
  130. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/Draggable.js +0 -0
  131. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/EasePack.js +0 -0
  132. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/EaselPlugin.js +0 -0
  133. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/Flip.js +0 -0
  134. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/MotionPathPlugin.js +0 -0
  135. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/Observer.js +0 -0
  136. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/PixiPlugin.js +0 -0
  137. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/ScrollToPlugin.js +0 -0
  138. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/ScrollTrigger.js +0 -0
  139. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/TextPlugin.js +0 -0
  140. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/__init__.py +0 -0
  141. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/all.js +0 -0
  142. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/gsap-core.js +0 -0
  143. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/gsap.mjs +0 -0
  144. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/utils/__init__.py +0 -0
  145. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/utils/matrix.js +0 -0
  146. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/utils/paths.js +0 -0
  147. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/libs/gsap/utils/strings.js +0 -0
  148. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/EChartsComponent/ECharts.js +0 -0
  149. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/EChartsComponent/ECharts.py +0 -0
  150. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/EChartsComponent/events.py +0 -0
  151. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/EChartsComponent/types.py +0 -0
  152. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/EChartsComponent/utils.py +0 -0
  153. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/UseDraggable/UseDraggable.js +0 -0
  154. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/UseDraggable/UseDraggable.py +0 -0
  155. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/dropZone/dropZone.js +0 -0
  156. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/dropZone/dropZone.py +0 -0
  157. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/empty.js +0 -0
  158. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/empty.py +0 -0
  159. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/fileWatcher.py +0 -0
  160. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/mermaid/mermaid.js +0 -0
  161. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/mermaid/mermaid.py +0 -0
  162. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/card.py +0 -0
  163. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/element.py +0 -0
  164. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/officials/html.js +0 -0
  165. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/rxui.py +0 -0
  166. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/transitionGroup.js +0 -0
  167. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/transitionGroup.py +0 -0
  168. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/useMouse/UseMouse.js +0 -0
  169. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/reactive/vfor.js +0 -0
  170. {ex4nicegui-0.6.7/ex4nicegui/reactive/EChartsComponent → ex4nicegui-0.6.9/ex4nicegui/tools}/__init__.py +0 -0
  171. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/tools/debug.py +0 -0
  172. {ex4nicegui-0.6.7/ex4nicegui/reactive/UseDraggable → ex4nicegui-0.6.9/ex4nicegui/utils}/__init__.py +0 -0
  173. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/utils/asyncComputed.py +0 -0
  174. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/utils/clientScope.py +0 -0
  175. {ex4nicegui-0.6.7 → ex4nicegui-0.6.9}/ex4nicegui/utils/common.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ex4nicegui
3
- Version: 0.6.7
3
+ Version: 0.6.9
4
4
  Summary: Extension library based on nicegui, providing data responsive,BI functionality modules
5
5
  Home-page: https://github.com/CrystalWindSnake/ex4nicegui
6
6
  License: MIT
@@ -604,7 +604,7 @@ rxui.label("bind to ref_computed").bind_classes(
604
604
 
605
605
  ---
606
606
 
607
- 绑定为列表
607
+ 绑定为列表或单个字符串的响应式变量
608
608
 
609
609
  ```python
610
610
  bg_color = to_ref("red")
@@ -617,10 +617,11 @@ rxui.select(["red", "green", "yellow"], label="bg color", value=bg_color)
617
617
  rxui.select(["red", "green", "yellow"], label="text color", value=text_color)
618
618
 
619
619
  rxui.label("binding to arrays").bind_classes([bg_color_class, text_color_class])
620
-
620
+ rxui.label("binding to single string").bind_classes(bg_color_class)
621
621
  ```
622
622
 
623
- 列表中每个元素为返回类名的响应式变量
623
+ - 列表中每个元素为返回类名的响应式变量
624
+
624
625
 
625
626
  ---
626
627
 
@@ -887,6 +888,62 @@ rxui.radio(names, value=current_tab).props("inline")
887
888
 
888
889
  rxui.label(lambda: f"当前 tab 为:{current_tab.value}")
889
890
  ```
891
+ ---
892
+
893
+ ### lazy_tab_panels
894
+
895
+ 懒加载模式下,只有当前激活的 tab 才会渲染。
896
+ ```python
897
+ from ex4nicegui import to_ref, rxui, on, deep_ref
898
+
899
+ current_tab = to_ref("t1")
900
+
901
+ with rxui.tabs(current_tab):
902
+ ui.tab("t1")
903
+ ui.tab("t2")
904
+
905
+ with rxui.lazy_tab_panels(current_tab) as panels:
906
+
907
+ @panels.add_tab_panel("t1")
908
+ def _():
909
+ ui.notify("Hello from t1")
910
+
911
+ @panels.add_tab_panel("t2")
912
+ def _():
913
+ ui.notify("Hello from t2")
914
+
915
+ ```
916
+
917
+ 页面加载后,立刻显示 "Hello from t1"。当切换到 "t2" 页签,才会显示 "Hello from t2"。
918
+
919
+ ---
920
+
921
+ ### scoped_style
922
+
923
+ `scoped_style` 方法允许你创建限定在组件内部的样式。
924
+
925
+ ```python
926
+ # 所有子元素都会有红色轮廓,但排除自身
927
+ with rxui.row().scoped_style("*", "outline: 1px solid red;") as row:
928
+ ui.label("Hello")
929
+ ui.label("World")
930
+
931
+
932
+ # 所有子元素都会有红色轮廓,包括自身
933
+ with rxui.row().scoped_style(":self *", "outline: 1px solid red;") as row:
934
+ ui.label("Hello")
935
+ ui.label("World")
936
+
937
+ # 当鼠标悬停在 row 组件时,所有子元素都会有红色轮廓,但排除自身
938
+ with rxui.row().scoped_style(":hover *", "outline: 1px solid red;") as row:
939
+ ui.label("Hello")
940
+ ui.label("World")
941
+
942
+ # 当鼠标悬停在 row 组件时,所有子元素都会有红色轮廓,包括自身
943
+ with rxui.row().scoped_style(":self:hover *", "outline: 1px solid red;") as row:
944
+ ui.label("Hello")
945
+ ui.label("World")
946
+ ```
890
947
 
891
948
 
892
949
  ---
@@ -581,7 +581,7 @@ rxui.label("bind to ref_computed").bind_classes(
581
581
 
582
582
  ---
583
583
 
584
- 绑定为列表
584
+ 绑定为列表或单个字符串的响应式变量
585
585
 
586
586
  ```python
587
587
  bg_color = to_ref("red")
@@ -594,10 +594,11 @@ rxui.select(["red", "green", "yellow"], label="bg color", value=bg_color)
594
594
  rxui.select(["red", "green", "yellow"], label="text color", value=text_color)
595
595
 
596
596
  rxui.label("binding to arrays").bind_classes([bg_color_class, text_color_class])
597
-
597
+ rxui.label("binding to single string").bind_classes(bg_color_class)
598
598
  ```
599
599
 
600
- 列表中每个元素为返回类名的响应式变量
600
+ - 列表中每个元素为返回类名的响应式变量
601
+
601
602
 
602
603
  ---
603
604
 
@@ -864,6 +865,62 @@ rxui.radio(names, value=current_tab).props("inline")
864
865
 
865
866
  rxui.label(lambda: f"当前 tab 为:{current_tab.value}")
866
867
  ```
868
+ ---
869
+
870
+ ### lazy_tab_panels
871
+
872
+ 懒加载模式下,只有当前激活的 tab 才会渲染。
873
+ ```python
874
+ from ex4nicegui import to_ref, rxui, on, deep_ref
875
+
876
+ current_tab = to_ref("t1")
877
+
878
+ with rxui.tabs(current_tab):
879
+ ui.tab("t1")
880
+ ui.tab("t2")
881
+
882
+ with rxui.lazy_tab_panels(current_tab) as panels:
883
+
884
+ @panels.add_tab_panel("t1")
885
+ def _():
886
+ ui.notify("Hello from t1")
887
+
888
+ @panels.add_tab_panel("t2")
889
+ def _():
890
+ ui.notify("Hello from t2")
891
+
892
+ ```
893
+
894
+ 页面加载后,立刻显示 "Hello from t1"。当切换到 "t2" 页签,才会显示 "Hello from t2"。
895
+
896
+ ---
897
+
898
+ ### scoped_style
899
+
900
+ `scoped_style` 方法允许你创建限定在组件内部的样式。
901
+
902
+ ```python
903
+ # 所有子元素都会有红色轮廓,但排除自身
904
+ with rxui.row().scoped_style("*", "outline: 1px solid red;") as row:
905
+ ui.label("Hello")
906
+ ui.label("World")
907
+
908
+
909
+ # 所有子元素都会有红色轮廓,包括自身
910
+ with rxui.row().scoped_style(":self *", "outline: 1px solid red;") as row:
911
+ ui.label("Hello")
912
+ ui.label("World")
913
+
914
+ # 当鼠标悬停在 row 组件时,所有子元素都会有红色轮廓,但排除自身
915
+ with rxui.row().scoped_style(":hover *", "outline: 1px solid red;") as row:
916
+ ui.label("Hello")
917
+ ui.label("World")
918
+
919
+ # 当鼠标悬停在 row 组件时,所有子元素都会有红色轮廓,包括自身
920
+ with rxui.row().scoped_style(":self:hover *", "outline: 1px solid red;") as row:
921
+ ui.label("Hello")
922
+ ui.label("World")
923
+ ```
867
924
 
868
925
 
869
926
  ---
@@ -1,6 +1,13 @@
1
1
  from ex4nicegui import reactive as rxui
2
+ from ex4nicegui.utils.refComputed import ref_computed
3
+ from ex4nicegui.utils.types import (
4
+ _TMaybeRef as TMaybeRef,
5
+ Ref,
6
+ ReadonlyRef,
7
+ TGetterOrReadonlyRef,
8
+ )
9
+ from ex4nicegui.utils.scheduler import next_tick
2
10
  from ex4nicegui.utils.signals import (
3
- ref_computed,
4
11
  effect,
5
12
  effect_refreshable,
6
13
  to_raw,
@@ -10,9 +17,6 @@ from ex4nicegui.utils.signals import (
10
17
  ref,
11
18
  on,
12
19
  event_batch,
13
- _TMaybeRef as TMaybeRef,
14
- Ref,
15
- ReadonlyRef,
16
20
  reactive,
17
21
  deep_ref,
18
22
  is_setter_ref,
@@ -21,6 +25,7 @@ from ex4nicegui.utils.signals import (
21
25
  )
22
26
  from ex4nicegui.utils.asyncComputed import async_computed
23
27
  from ex4nicegui.utils.clientScope import new_scope
28
+ from .version import __version__
24
29
 
25
30
  __all__ = [
26
31
  "async_computed",
@@ -36,6 +41,7 @@ __all__ = [
36
41
  "on",
37
42
  "event_batch",
38
43
  "TMaybeRef",
44
+ "TGetterOrReadonlyRef",
39
45
  "Ref",
40
46
  "ReadonlyRef",
41
47
  "reactive",
@@ -44,6 +50,6 @@ __all__ = [
44
50
  "to_raw",
45
51
  "is_setter_ref",
46
52
  "new_scope",
53
+ "next_tick",
54
+ "__version__",
47
55
  ]
48
-
49
- __version__ = "0.6.6"
@@ -0,0 +1,23 @@
1
+ from .gsap import set_defaults, from_, to, new, run_script
2
+ from .timeline import Timeline as timeline
3
+
4
+
5
+ import warnings
6
+
7
+ RED = "\033[91m"
8
+ RESET = "\033[0m"
9
+
10
+ warnings.warn(
11
+ f"{RED}The gsap module is deprecated and will be removed in the next major version.{RESET}",
12
+ DeprecationWarning,
13
+ stacklevel=2,
14
+ )
15
+
16
+ __all__ = [
17
+ "set_defaults",
18
+ "from_",
19
+ "to",
20
+ "new",
21
+ "run_script",
22
+ "timeline",
23
+ ]
@@ -0,0 +1,4 @@
1
+ from .client_instance_locker import ClientInstanceLocker
2
+
3
+
4
+ __all__ = ["ClientInstanceLocker"]
@@ -0,0 +1,31 @@
1
+ from typing import Callable, Optional, TypeVar, Generic
2
+ from nicegui import ui, Client
3
+ from weakref import WeakKeyDictionary
4
+
5
+
6
+ _T = TypeVar("_T")
7
+
8
+
9
+ class ClientInstanceLocker(Generic[_T]):
10
+ def __init__(self, factory: Callable[[], _T]):
11
+ """Creates a new instance locker that creates a new instance for each client.
12
+
13
+ Args:
14
+ factory (Callable[[], _T]): A factory function that creates a new instance.
15
+ """
16
+ self._client_instances: WeakKeyDictionary[Client, _T] = WeakKeyDictionary()
17
+ self._factory = factory
18
+
19
+ def get_object(self, client: Optional[Client] = None):
20
+ if not ui.context.slot_stack:
21
+ return None
22
+
23
+ client = client or ui.context.client
24
+ if client not in self._client_instances:
25
+ self._client_instances[client] = self._factory()
26
+
27
+ @client.on_disconnect
28
+ def _():
29
+ self._client_instances.pop(client, None)
30
+
31
+ return self._client_instances[client]
@@ -51,7 +51,9 @@ from .officials.tab import TabBindableUi as tab
51
51
  from .officials.tab_panels import TabPanelsBindableUi as tab_panels
52
52
  from .officials.tab_panel import TabPanelBindableUi as tab_panel
53
53
  from .officials.element import ElementBindableUi as element
54
+ from .officials.tab_panels import LazyTabPanelsBindableUi as lazy_tab_panels
54
55
  from .q_pagination import PaginationBindableUi as q_pagination
56
+ from .officials.chip import ChipBindableUi as chip
55
57
 
56
58
  from .local_file_picker import local_file_picker
57
59
  from .UseDraggable.UseDraggable import use_draggable
@@ -70,6 +72,7 @@ pagination = q_pagination
70
72
  __all__ = [
71
73
  "element",
72
74
  "tab_panels",
75
+ "lazy_tab_panels",
73
76
  "tab_panel",
74
77
  "tabs",
75
78
  "tab",
@@ -120,4 +123,5 @@ __all__ = [
120
123
  "q_pagination",
121
124
  "pagination",
122
125
  "mermaid",
126
+ "chip",
123
127
  ]