instaui 0.1.15__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (283) hide show
  1. instaui/__init__.py +9 -0
  2. instaui/_helper/observable_helper.py +45 -0
  3. instaui/arco/__init__.py +191 -0
  4. instaui/arco/_settings.py +25 -0
  5. instaui/arco/_use_tools/locale.py +50 -0
  6. instaui/arco/component_types.py +1019 -0
  7. instaui/arco/components/_utils.py +22 -0
  8. instaui/arco/components/affix.py +29 -0
  9. instaui/arco/components/alert.py +42 -0
  10. instaui/arco/components/anchor.py +42 -0
  11. instaui/arco/components/auto_complete.py +96 -0
  12. instaui/arco/components/avatar.py +55 -0
  13. instaui/arco/components/back_top.py +14 -0
  14. instaui/arco/components/badge.py +14 -0
  15. instaui/arco/components/breadcrumb.py +14 -0
  16. instaui/arco/components/button.py +43 -0
  17. instaui/arco/components/calendar.py +47 -0
  18. instaui/arco/components/card.py +14 -0
  19. instaui/arco/components/carousel.py +33 -0
  20. instaui/arco/components/cascader.py +111 -0
  21. instaui/arco/components/checkbox.py +32 -0
  22. instaui/arco/components/collapse.py +31 -0
  23. instaui/arco/components/color_picker.py +45 -0
  24. instaui/arco/components/comment.py +14 -0
  25. instaui/arco/components/config_provider.py +13 -0
  26. instaui/arco/components/date_picker.py +111 -0
  27. instaui/arco/components/descriptions.py +14 -0
  28. instaui/arco/components/divider.py +13 -0
  29. instaui/arco/components/drawer.py +98 -0
  30. instaui/arco/components/dropdown.py +45 -0
  31. instaui/arco/components/empty.py +14 -0
  32. instaui/arco/components/form.py +55 -0
  33. instaui/arco/components/icon.py +17 -0
  34. instaui/arco/components/image.py +33 -0
  35. instaui/arco/components/input.py +102 -0
  36. instaui/arco/components/input_number.py +97 -0
  37. instaui/arco/components/input_password.py +38 -0
  38. instaui/arco/components/input_search.py +37 -0
  39. instaui/arco/components/input_tag.py +110 -0
  40. instaui/arco/components/layout.py +13 -0
  41. instaui/arco/components/layout_content.py +6 -0
  42. instaui/arco/components/layout_footer.py +6 -0
  43. instaui/arco/components/layout_header.py +6 -0
  44. instaui/arco/components/layout_sider.py +53 -0
  45. instaui/arco/components/link.py +36 -0
  46. instaui/arco/components/list.py +68 -0
  47. instaui/arco/components/mention.py +97 -0
  48. instaui/arco/components/menu.py +88 -0
  49. instaui/arco/components/modal.py +97 -0
  50. instaui/arco/components/overflow_list.py +29 -0
  51. instaui/arco/components/page_header.py +29 -0
  52. instaui/arco/components/pagination.py +45 -0
  53. instaui/arco/components/pop_confirm.py +58 -0
  54. instaui/arco/components/popover.py +32 -0
  55. instaui/arco/components/progress.py +14 -0
  56. instaui/arco/components/radio.py +40 -0
  57. instaui/arco/components/radio_group.py +42 -0
  58. instaui/arco/components/rate.py +45 -0
  59. instaui/arco/components/resize_box.py +62 -0
  60. instaui/arco/components/result.py +14 -0
  61. instaui/arco/components/select.py +182 -0
  62. instaui/arco/components/skeleton.py +14 -0
  63. instaui/arco/components/slider.py +38 -0
  64. instaui/arco/components/space.py +14 -0
  65. instaui/arco/components/spin.py +14 -0
  66. instaui/arco/components/split.py +76 -0
  67. instaui/arco/components/statistic.py +14 -0
  68. instaui/arco/components/steps.py +32 -0
  69. instaui/arco/components/switch.py +57 -0
  70. instaui/arco/components/tab_pane.py +12 -0
  71. instaui/arco/components/table.py +276 -0
  72. instaui/arco/components/tabs.py +101 -0
  73. instaui/arco/components/tag.py +42 -0
  74. instaui/arco/components/textarea.py +84 -0
  75. instaui/arco/components/time_picker.py +76 -0
  76. instaui/arco/components/timeline.py +14 -0
  77. instaui/arco/components/tooltip.py +29 -0
  78. instaui/arco/components/transfer.py +58 -0
  79. instaui/arco/components/tree.py +120 -0
  80. instaui/arco/components/tree_select.py +86 -0
  81. instaui/arco/components/trigger.py +58 -0
  82. instaui/arco/components/typography.py +142 -0
  83. instaui/arco/components/upload.py +71 -0
  84. instaui/arco/components/verification_code.py +58 -0
  85. instaui/arco/components/watermark.py +14 -0
  86. instaui/arco/locales/__init__.py +4 -0
  87. instaui/arco/locales/_index.py +31 -0
  88. instaui/arco/locales/en_us.py +227 -0
  89. instaui/arco/locales/zh_cn.py +224 -0
  90. instaui/arco/setup.py +36 -0
  91. instaui/arco/static/instaui-arco.css +1 -0
  92. instaui/arco/static/instaui-arco.js +55771 -0
  93. instaui/arco/types.py +24 -0
  94. instaui/boot_info.py +43 -0
  95. instaui/common/jsonable.py +37 -0
  96. instaui/components/__init__.py +0 -0
  97. instaui/components/column.py +26 -0
  98. instaui/components/component.py +47 -0
  99. instaui/components/content.py +34 -0
  100. instaui/components/directive.py +55 -0
  101. instaui/components/element.py +573 -0
  102. instaui/components/grid.py +213 -0
  103. instaui/components/html/__init__.py +49 -0
  104. instaui/components/html/_mixins.py +34 -0
  105. instaui/components/html/_preset.py +4 -0
  106. instaui/components/html/button.py +38 -0
  107. instaui/components/html/checkbox.py +35 -0
  108. instaui/components/html/date.py +28 -0
  109. instaui/components/html/div.py +7 -0
  110. instaui/components/html/form.py +7 -0
  111. instaui/components/html/heading.py +51 -0
  112. instaui/components/html/input.py +28 -0
  113. instaui/components/html/label.py +21 -0
  114. instaui/components/html/li.py +17 -0
  115. instaui/components/html/link.py +31 -0
  116. instaui/components/html/number.py +34 -0
  117. instaui/components/html/paragraph.py +29 -0
  118. instaui/components/html/range.py +48 -0
  119. instaui/components/html/select.py +69 -0
  120. instaui/components/html/span.py +19 -0
  121. instaui/components/html/table.py +36 -0
  122. instaui/components/html/textarea.py +28 -0
  123. instaui/components/html/ul.py +20 -0
  124. instaui/components/label.py +5 -0
  125. instaui/components/markdown/markdown.js +33 -0
  126. instaui/components/markdown/markdown.py +41 -0
  127. instaui/components/markdown/static/github-markdown.css +12 -0
  128. instaui/components/markdown/static/marked.esm.js +2579 -0
  129. instaui/components/match.py +108 -0
  130. instaui/components/row.py +17 -0
  131. instaui/components/shiki_code/shiki_code.js +126 -0
  132. instaui/components/shiki_code/shiki_code.py +99 -0
  133. instaui/components/shiki_code/static/langs/css.mjs +5 -0
  134. instaui/components/shiki_code/static/langs/markdown.mjs +5 -0
  135. instaui/components/shiki_code/static/langs/python.mjs +5 -0
  136. instaui/components/shiki_code/static/langs/shell.mjs +2 -0
  137. instaui/components/shiki_code/static/langs/shellscript.mjs +5 -0
  138. instaui/components/shiki_code/static/shiki-core.js +5784 -0
  139. instaui/components/shiki_code/static/shiki-style.css +179 -0
  140. instaui/components/shiki_code/static/shiki-transformers.js +461 -0
  141. instaui/components/shiki_code/static/themes/vitesse-dark.mjs +2 -0
  142. instaui/components/shiki_code/static/themes/vitesse-light.mjs +2 -0
  143. instaui/components/slot.py +81 -0
  144. instaui/components/transition_group.py +9 -0
  145. instaui/components/value_element.py +52 -0
  146. instaui/components/vfor.py +142 -0
  147. instaui/components/vif.py +42 -0
  148. instaui/consts.py +23 -0
  149. instaui/dependencies/component_dependency.py +22 -0
  150. instaui/dependencies/plugin_dependency.py +28 -0
  151. instaui/event/event_mixin.py +12 -0
  152. instaui/event/js_event.py +82 -0
  153. instaui/event/vue_event.py +66 -0
  154. instaui/event/web_event.py +123 -0
  155. instaui/experimental/__init__.py +3 -0
  156. instaui/experimental/debug.py +48 -0
  157. instaui/extra_libs/_echarts.py +3 -0
  158. instaui/extra_libs/_import_error.py +9 -0
  159. instaui/extra_libs/_mermaid.py +3 -0
  160. instaui/extra_libs/_shiki_code.py +3 -0
  161. instaui/fastapi_server/_utils.py +42 -0
  162. instaui/fastapi_server/_uvicorn.py +37 -0
  163. instaui/fastapi_server/debug_mode_router.py +60 -0
  164. instaui/fastapi_server/dependency_router.py +28 -0
  165. instaui/fastapi_server/event_router.py +58 -0
  166. instaui/fastapi_server/middlewares.py +19 -0
  167. instaui/fastapi_server/request_context.py +19 -0
  168. instaui/fastapi_server/resource.py +30 -0
  169. instaui/fastapi_server/server.py +308 -0
  170. instaui/fastapi_server/watch_router.py +53 -0
  171. instaui/handlers/_utils.py +88 -0
  172. instaui/handlers/event_handler.py +60 -0
  173. instaui/handlers/watch_handler.py +61 -0
  174. instaui/html_tools.py +94 -0
  175. instaui/inject.py +33 -0
  176. instaui/js/__init__.py +4 -0
  177. instaui/js/js_output.py +15 -0
  178. instaui/js/lambda_func.py +35 -0
  179. instaui/launch_collector.py +52 -0
  180. instaui/page_info.py +13 -0
  181. instaui/runtime/__init__.py +29 -0
  182. instaui/runtime/_app.py +234 -0
  183. instaui/runtime/_inner_helper.py +9 -0
  184. instaui/runtime/_link_manager.py +89 -0
  185. instaui/runtime/context.py +47 -0
  186. instaui/runtime/dataclass.py +30 -0
  187. instaui/runtime/resource.py +65 -0
  188. instaui/runtime/scope.py +133 -0
  189. instaui/runtime/ui_state_scope.py +15 -0
  190. instaui/settings/__init__.py +4 -0
  191. instaui/settings/__settings.py +13 -0
  192. instaui/shadcn_classless/_index.py +42 -0
  193. instaui/shadcn_classless/static/shadcn-classless.css +403 -0
  194. instaui/skip.py +12 -0
  195. instaui/spa_router/__init__.py +26 -0
  196. instaui/spa_router/_components.py +35 -0
  197. instaui/spa_router/_file_base_utils.py +273 -0
  198. instaui/spa_router/_functions.py +122 -0
  199. instaui/spa_router/_install.py +11 -0
  200. instaui/spa_router/_route_model.py +117 -0
  201. instaui/spa_router/_router_box.py +40 -0
  202. instaui/spa_router/_router_output.py +22 -0
  203. instaui/spa_router/_router_param_var.py +51 -0
  204. instaui/spa_router/_types.py +4 -0
  205. instaui/spa_router/templates/page_routes +60 -0
  206. instaui/static/insta-ui.css +1 -0
  207. instaui/static/insta-ui.esm-browser.prod.js +3717 -0
  208. instaui/static/insta-ui.ico +0 -0
  209. instaui/static/insta-ui.js.map +1 -0
  210. instaui/static/instaui-tools-browser.js +511 -0
  211. instaui/static/templates/debug/sse.html +117 -0
  212. instaui/static/templates/web.html +74 -0
  213. instaui/static/templates/webview.html +78 -0
  214. instaui/static/templates/zero.html +71 -0
  215. instaui/static/vue.esm-browser.prod.js +9 -0
  216. instaui/static/vue.global.prod.js +9 -0
  217. instaui/static/vue.runtime.esm-browser.prod.js +5 -0
  218. instaui/systems/file_system.py +6 -0
  219. instaui/systems/func_system.py +119 -0
  220. instaui/systems/js_system.py +22 -0
  221. instaui/systems/module_system.py +46 -0
  222. instaui/systems/pydantic_system.py +27 -0
  223. instaui/systems/string_system.py +10 -0
  224. instaui/tailwind/__init__.py +6 -0
  225. instaui/tailwind/_index.py +24 -0
  226. instaui/tailwind/static/tailwindcss-v3.min.js +62 -0
  227. instaui/tailwind/static/tailwindcss-v4.min.js +8 -0
  228. instaui/template/__init__.py +4 -0
  229. instaui/template/_utils.py +23 -0
  230. instaui/template/env.py +7 -0
  231. instaui/template/web_template.py +49 -0
  232. instaui/template/webview_template.py +48 -0
  233. instaui/template/zero_template.py +105 -0
  234. instaui/ui/__init__.py +144 -0
  235. instaui/ui/__init__.pyi +149 -0
  236. instaui/ui/events.py +25 -0
  237. instaui/ui_functions/input_slient_data.py +16 -0
  238. instaui/ui_functions/server.py +15 -0
  239. instaui/ui_functions/str_format.py +36 -0
  240. instaui/ui_functions/ui_page.py +16 -0
  241. instaui/ui_functions/ui_types.py +13 -0
  242. instaui/ui_functions/url_location.py +33 -0
  243. instaui/vars/_types.py +8 -0
  244. instaui/vars/data.py +68 -0
  245. instaui/vars/element_ref.py +40 -0
  246. instaui/vars/event_context.py +49 -0
  247. instaui/vars/event_extend.py +0 -0
  248. instaui/vars/js_computed.py +117 -0
  249. instaui/vars/mixin_types/common_type.py +5 -0
  250. instaui/vars/mixin_types/element_binding.py +16 -0
  251. instaui/vars/mixin_types/observable.py +7 -0
  252. instaui/vars/mixin_types/pathable.py +14 -0
  253. instaui/vars/mixin_types/py_binding.py +13 -0
  254. instaui/vars/mixin_types/str_format_binding.py +8 -0
  255. instaui/vars/mixin_types/var_type.py +5 -0
  256. instaui/vars/path_var.py +90 -0
  257. instaui/vars/ref.py +103 -0
  258. instaui/vars/slot_prop.py +46 -0
  259. instaui/vars/state.py +97 -0
  260. instaui/vars/types.py +24 -0
  261. instaui/vars/vfor_item.py +204 -0
  262. instaui/vars/vue_computed.py +81 -0
  263. instaui/vars/web_computed.py +209 -0
  264. instaui/vars/web_view_computed.py +1 -0
  265. instaui/version.py +3 -0
  266. instaui/watch/_types.py +4 -0
  267. instaui/watch/_utils.py +3 -0
  268. instaui/watch/js_watch.py +110 -0
  269. instaui/watch/vue_watch.py +77 -0
  270. instaui/watch/web_watch.py +181 -0
  271. instaui/webview/__init__.py +2 -0
  272. instaui/webview/_utils.py +8 -0
  273. instaui/webview/api.py +72 -0
  274. instaui/webview/func.py +114 -0
  275. instaui/webview/index.py +161 -0
  276. instaui/webview/resource.py +172 -0
  277. instaui/zero/__init__.py +3 -0
  278. instaui/zero/func.py +123 -0
  279. instaui/zero/scope.py +109 -0
  280. instaui-0.1.15.dist-info/METADATA +152 -0
  281. instaui-0.1.15.dist-info/RECORD +283 -0
  282. instaui-0.1.15.dist-info/WHEEL +5 -0
  283. instaui-0.1.15.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,14 @@
1
+ from typing_extensions import Unpack
2
+ from instaui.components.element import Element
3
+ from instaui.arco import component_types
4
+ from ._utils import handle_props
5
+
6
+
7
+ class Comment(Element):
8
+ def __init__(
9
+ self,
10
+ **kwargs: Unpack[component_types.TComment],
11
+ ):
12
+ super().__init__("a-comment")
13
+
14
+ self.props(handle_props(kwargs)) # type: ignore
@@ -0,0 +1,13 @@
1
+ from typing_extensions import Unpack
2
+ from instaui.components.element import Element
3
+ from instaui.arco import component_types
4
+ from ._utils import handle_props
5
+
6
+
7
+ class ConfigProvider(Element):
8
+ def __init__(
9
+ self,
10
+ **kwargs: Unpack[component_types.TConfigprovider],
11
+ ):
12
+ super().__init__("a-config-provider")
13
+ self.props(handle_props(kwargs)) # type: ignore
@@ -0,0 +1,111 @@
1
+ import typing
2
+ from typing_extensions import Unpack
3
+ import datetime
4
+ from instaui.vars.types import TMaybeRef
5
+ from instaui.components.element import Element
6
+ from instaui.arco import component_types
7
+ from instaui.event.event_mixin import EventMixin
8
+ from ._utils import handle_props, try_setup_vmodel
9
+
10
+
11
+ class DatePicker(Element):
12
+ def __init__(
13
+ self,
14
+ value: typing.Optional[TMaybeRef[datetime.datetime]] = None,
15
+ **kwargs: Unpack[component_types.TDatepicker],
16
+ ):
17
+ super().__init__("a-date-picker")
18
+
19
+ try_setup_vmodel(self, value)
20
+ self.props(handle_props(kwargs)) # type: ignore
21
+
22
+ def on_change(
23
+ self,
24
+ handler: EventMixin,
25
+ *,
26
+ extends: typing.Optional[typing.List] = None,
27
+ ):
28
+ self.on(
29
+ "change",
30
+ handler,
31
+ extends=extends,
32
+ )
33
+ return self
34
+
35
+ def on_select(
36
+ self,
37
+ handler: EventMixin,
38
+ *,
39
+ extends: typing.Optional[typing.List] = None,
40
+ ):
41
+ self.on(
42
+ "select",
43
+ handler,
44
+ extends=extends,
45
+ )
46
+ return self
47
+
48
+ def on_popup_visible_change(
49
+ self,
50
+ handler: EventMixin,
51
+ *,
52
+ extends: typing.Optional[typing.List] = None,
53
+ ):
54
+ self.on(
55
+ "popup-visible-change",
56
+ handler,
57
+ extends=extends,
58
+ )
59
+ return self
60
+
61
+ def on_ok(
62
+ self,
63
+ handler: EventMixin,
64
+ *,
65
+ extends: typing.Optional[typing.List] = None,
66
+ ):
67
+ self.on(
68
+ "ok",
69
+ handler,
70
+ extends=extends,
71
+ )
72
+ return self
73
+
74
+ def on_clear(
75
+ self,
76
+ handler: EventMixin,
77
+ *,
78
+ extends: typing.Optional[typing.List] = None,
79
+ ):
80
+ self.on(
81
+ "clear",
82
+ handler,
83
+ extends=extends,
84
+ )
85
+ return self
86
+
87
+ def on_select_shortcut(
88
+ self,
89
+ handler: EventMixin,
90
+ *,
91
+ extends: typing.Optional[typing.List] = None,
92
+ ):
93
+ self.on(
94
+ "select-shortcut",
95
+ handler,
96
+ extends=extends,
97
+ )
98
+ return self
99
+
100
+ def on_picker_value_change(
101
+ self,
102
+ handler: EventMixin,
103
+ *,
104
+ extends: typing.Optional[typing.List] = None,
105
+ ):
106
+ self.on(
107
+ "picker-value-change",
108
+ handler,
109
+ extends=extends,
110
+ )
111
+ return self
@@ -0,0 +1,14 @@
1
+ from typing_extensions import Unpack
2
+ from instaui.components.element import Element
3
+ from instaui.arco import component_types
4
+ from ._utils import handle_props
5
+
6
+
7
+ class Descriptions(Element):
8
+ def __init__(
9
+ self,
10
+ **kwargs: Unpack[component_types.TDescriptions],
11
+ ):
12
+ super().__init__("a-descriptions")
13
+
14
+ self.props(handle_props(kwargs)) # type: ignore
@@ -0,0 +1,13 @@
1
+ from typing_extensions import Unpack
2
+ from instaui.components.element import Element
3
+ from instaui.arco import component_types
4
+ from ._utils import handle_props
5
+
6
+
7
+ class Divider(Element):
8
+ def __init__(
9
+ self,
10
+ **kwargs: Unpack[component_types.TDivider],
11
+ ):
12
+ super().__init__("a-divider")
13
+ self.props(handle_props(kwargs)) # type: ignore
@@ -0,0 +1,98 @@
1
+ import typing
2
+ from typing_extensions import Unpack
3
+ from instaui.components.element import Element
4
+ from instaui.vars.types import TMaybeRef
5
+ from instaui.arco import component_types
6
+ from ._utils import handle_props, try_setup_vmodel
7
+
8
+ from instaui.event.event_mixin import EventMixin
9
+
10
+
11
+ class Drawer(Element):
12
+ def __init__(
13
+ self,
14
+ visible_value: typing.Optional[TMaybeRef[bool]] = None,
15
+ **kwargs: Unpack[component_types.TDrawer],
16
+ ):
17
+ super().__init__("a-drawer")
18
+
19
+ try_setup_vmodel(self, visible_value, prop_name="visible")
20
+ self.props(handle_props(kwargs)) # type: ignore
21
+
22
+ def on_ok(
23
+ self,
24
+ handler: EventMixin,
25
+ *,
26
+ extends: typing.Optional[typing.List] = None,
27
+ ):
28
+ self.on(
29
+ "ok",
30
+ handler,
31
+ extends=extends,
32
+ )
33
+ return self
34
+
35
+ def on_cancel(
36
+ self,
37
+ handler: EventMixin,
38
+ *,
39
+ extends: typing.Optional[typing.List] = None,
40
+ ):
41
+ self.on(
42
+ "cancel",
43
+ handler,
44
+ extends=extends,
45
+ )
46
+ return self
47
+
48
+ def on_open(
49
+ self,
50
+ handler: EventMixin,
51
+ *,
52
+ extends: typing.Optional[typing.List] = None,
53
+ ):
54
+ self.on(
55
+ "open",
56
+ handler,
57
+ extends=extends,
58
+ )
59
+ return self
60
+
61
+ def on_close(
62
+ self,
63
+ handler: EventMixin,
64
+ *,
65
+ extends: typing.Optional[typing.List] = None,
66
+ ):
67
+ self.on(
68
+ "close",
69
+ handler,
70
+ extends=extends,
71
+ )
72
+ return self
73
+
74
+ def on_before_open(
75
+ self,
76
+ handler: EventMixin,
77
+ *,
78
+ extends: typing.Optional[typing.List] = None,
79
+ ):
80
+ self.on(
81
+ "before-open",
82
+ handler,
83
+ extends=extends,
84
+ )
85
+ return self
86
+
87
+ def on_before_close(
88
+ self,
89
+ handler: EventMixin,
90
+ *,
91
+ extends: typing.Optional[typing.List] = None,
92
+ ):
93
+ self.on(
94
+ "before-close",
95
+ handler,
96
+ extends=extends,
97
+ )
98
+ return self
@@ -0,0 +1,45 @@
1
+ import typing
2
+ from typing_extensions import Unpack
3
+ from instaui.components.element import Element
4
+ from instaui.vars.types import TMaybeRef
5
+ from instaui.arco import component_types
6
+ from instaui.event.event_mixin import EventMixin
7
+ from ._utils import handle_props, try_setup_vmodel
8
+
9
+
10
+ class Dropdown(Element):
11
+ def __init__(
12
+ self,
13
+ visible_value: typing.Optional[TMaybeRef[bool]] = None,
14
+ **kwargs: Unpack[component_types.TDropdown],
15
+ ):
16
+ super().__init__("a-dropdown")
17
+
18
+ try_setup_vmodel(self, visible_value, prop_name="visible")
19
+ self.props(handle_props(kwargs)) # type: ignore
20
+
21
+ def on_popup_visible_change(
22
+ self,
23
+ handler: EventMixin,
24
+ *,
25
+ extends: typing.Optional[typing.List] = None,
26
+ ):
27
+ self.on(
28
+ "popup-visible-change",
29
+ handler,
30
+ extends=extends,
31
+ )
32
+ return self
33
+
34
+ def on_select(
35
+ self,
36
+ handler: EventMixin,
37
+ *,
38
+ extends: typing.Optional[typing.List] = None,
39
+ ):
40
+ self.on(
41
+ "select",
42
+ handler,
43
+ extends=extends,
44
+ )
45
+ return self
@@ -0,0 +1,14 @@
1
+ from typing_extensions import Unpack
2
+ from instaui.components.element import Element
3
+ from instaui.arco import component_types
4
+ from ._utils import handle_props
5
+
6
+
7
+ class Empty(Element):
8
+ def __init__(
9
+ self,
10
+ **kwargs: Unpack[component_types.TEmpty],
11
+ ):
12
+ super().__init__("a-empty")
13
+
14
+ self.props(handle_props(kwargs)) # type: ignore
@@ -0,0 +1,55 @@
1
+ import typing
2
+ from typing_extensions import Unpack
3
+ from instaui.components.element import Element
4
+ from instaui.arco import component_types
5
+ from instaui.event.event_mixin import EventMixin
6
+ from ._utils import handle_props
7
+
8
+
9
+ class Form(Element):
10
+ def __init__(
11
+ self,
12
+ **kwargs: Unpack[component_types.TForm],
13
+ ):
14
+ super().__init__("a-form")
15
+
16
+ self.props(handle_props(kwargs)) # type: ignore
17
+
18
+ def on_submit(
19
+ self,
20
+ handler: EventMixin,
21
+ *,
22
+ extends: typing.Optional[typing.List] = None,
23
+ ):
24
+ self.on(
25
+ "submit",
26
+ handler,
27
+ extends=extends,
28
+ )
29
+ return self
30
+
31
+ def on_submit_success(
32
+ self,
33
+ handler: EventMixin,
34
+ *,
35
+ extends: typing.Optional[typing.List] = None,
36
+ ):
37
+ self.on(
38
+ "submit-success",
39
+ handler,
40
+ extends=extends,
41
+ )
42
+ return self
43
+
44
+ def on_submit_failed(
45
+ self,
46
+ handler: EventMixin,
47
+ *,
48
+ extends: typing.Optional[typing.List] = None,
49
+ ):
50
+ self.on(
51
+ "submit-failed",
52
+ handler,
53
+ extends=extends,
54
+ )
55
+ return self
@@ -0,0 +1,17 @@
1
+ from __future__ import annotations
2
+ import typing
3
+ from instaui import ui
4
+ from instaui.vars.types import TMaybeRef
5
+ from instaui.components.element import Element
6
+ from instaui.vars.mixin_types.element_binding import ElementBindingMixin
7
+
8
+
9
+ class Icon(Element):
10
+ def __init__(self, name: typing.Optional[TMaybeRef[str]] = None):
11
+ if isinstance(name, ElementBindingMixin):
12
+ name = ui.str_format(r"a-icon-{}", name)
13
+
14
+ else:
15
+ name = f"a-icon-{name}"
16
+
17
+ super().__init__(name)
@@ -0,0 +1,33 @@
1
+ import typing
2
+ from typing_extensions import Unpack
3
+ from instaui.vars.types import TMaybeRef
4
+ from instaui.components.element import Element
5
+ from instaui.arco import component_types
6
+ from instaui.event.event_mixin import EventMixin
7
+ from ._utils import handle_props, try_setup_vmodel
8
+
9
+
10
+ class Image(Element):
11
+ def __init__(
12
+ self,
13
+ *,
14
+ preview_visible_value: typing.Optional[TMaybeRef[bool]] = None,
15
+ **kwargs: Unpack[component_types.TImage],
16
+ ):
17
+ super().__init__("a-image")
18
+
19
+ try_setup_vmodel(self, preview_visible_value, prop_name="preview-visible")
20
+ self.props(handle_props(kwargs)) # type: ignore
21
+
22
+ def on_preview_visible_change(
23
+ self,
24
+ handler: EventMixin,
25
+ *,
26
+ extends: typing.Optional[typing.List] = None,
27
+ ):
28
+ self.on(
29
+ "preview-visible-change",
30
+ handler,
31
+ extends=extends,
32
+ )
33
+ return self
@@ -0,0 +1,102 @@
1
+ import typing
2
+ from typing_extensions import Unpack
3
+ from instaui.components.element import Element
4
+ from instaui.vars.types import TMaybeRef
5
+ from instaui.arco import component_types
6
+ from instaui.event.event_mixin import EventMixin
7
+ from ._utils import handle_props, try_setup_vmodel
8
+
9
+
10
+ class Input(Element):
11
+ _exten_name: typing.ClassVar[typing.Optional[str]] = None
12
+
13
+ def __init__(
14
+ self,
15
+ value: typing.Optional[TMaybeRef[str]] = None,
16
+ **kwargs: Unpack[component_types.TInput],
17
+ ):
18
+ tag = f"a-input{'-'+ self._exten_name if self._exten_name else ''}"
19
+ super().__init__(tag)
20
+ try_setup_vmodel(self, value)
21
+ self.props(handle_props(kwargs)) # type: ignore
22
+
23
+ def __init_subclass__(cls, *, exten_name: str = "") -> None:
24
+ cls._exten_name = exten_name
25
+
26
+ def on_input(
27
+ self,
28
+ handler: EventMixin,
29
+ *,
30
+ extends: typing.Optional[typing.List] = None,
31
+ ):
32
+ self.on(
33
+ "input",
34
+ handler,
35
+ extends=extends,
36
+ )
37
+ return self
38
+
39
+ def on_change(
40
+ self,
41
+ handler: EventMixin,
42
+ *,
43
+ extends: typing.Optional[typing.List] = None,
44
+ ):
45
+ self.on(
46
+ "change",
47
+ handler,
48
+ extends=extends,
49
+ )
50
+ return self
51
+
52
+ def on_press_enter(
53
+ self,
54
+ handler: EventMixin,
55
+ *,
56
+ extends: typing.Optional[typing.List] = None,
57
+ ):
58
+ self.on(
59
+ "press-enter",
60
+ handler,
61
+ extends=extends,
62
+ )
63
+ return self
64
+
65
+ def on_clear(
66
+ self,
67
+ handler: EventMixin,
68
+ *,
69
+ extends: typing.Optional[typing.List] = None,
70
+ ):
71
+ self.on(
72
+ "clear",
73
+ handler,
74
+ extends=extends,
75
+ )
76
+ return self
77
+
78
+ def on_focus(
79
+ self,
80
+ handler: EventMixin,
81
+ *,
82
+ extends: typing.Optional[typing.List] = None,
83
+ ):
84
+ self.on(
85
+ "focus",
86
+ handler,
87
+ extends=extends,
88
+ )
89
+ return self
90
+
91
+ def on_blur(
92
+ self,
93
+ handler: EventMixin,
94
+ *,
95
+ extends: typing.Optional[typing.List] = None,
96
+ ):
97
+ self.on(
98
+ "blur",
99
+ handler,
100
+ extends=extends,
101
+ )
102
+ return self
@@ -0,0 +1,97 @@
1
+ import typing
2
+ from typing_extensions import Unpack
3
+ from instaui.components.element import Element
4
+ from instaui.vars.types import TMaybeRef
5
+ from instaui.arco import component_types
6
+ from instaui.event.event_mixin import EventMixin
7
+ from ._utils import handle_props, try_setup_vmodel
8
+
9
+
10
+ class InputNumber(Element):
11
+ def __init__(
12
+ self,
13
+ value: typing.Optional[TMaybeRef[typing.Union[int, float]]] = None,
14
+ **kwargs: Unpack[component_types.TInputnumber],
15
+ ):
16
+ super().__init__("a-input-number")
17
+
18
+ try_setup_vmodel(self, value)
19
+ self.props(handle_props(kwargs)) # type: ignore
20
+
21
+ def on_change(
22
+ self,
23
+ handler: EventMixin,
24
+ *,
25
+ extends: typing.Optional[typing.List] = None,
26
+ ):
27
+ self.on(
28
+ "change",
29
+ handler,
30
+ extends=extends,
31
+ )
32
+ return self
33
+
34
+ def on_focus(
35
+ self,
36
+ handler: EventMixin,
37
+ *,
38
+ extends: typing.Optional[typing.List] = None,
39
+ ):
40
+ self.on(
41
+ "focus",
42
+ handler,
43
+ extends=extends,
44
+ )
45
+ return self
46
+
47
+ def on_blur(
48
+ self,
49
+ handler: EventMixin,
50
+ *,
51
+ extends: typing.Optional[typing.List] = None,
52
+ ):
53
+ self.on(
54
+ "blur",
55
+ handler,
56
+ extends=extends,
57
+ )
58
+ return self
59
+
60
+ def on_clear(
61
+ self,
62
+ handler: EventMixin,
63
+ *,
64
+ extends: typing.Optional[typing.List] = None,
65
+ ):
66
+ self.on(
67
+ "clear",
68
+ handler,
69
+ extends=extends,
70
+ )
71
+ return self
72
+
73
+ def on_input(
74
+ self,
75
+ handler: EventMixin,
76
+ *,
77
+ extends: typing.Optional[typing.List] = None,
78
+ ):
79
+ self.on(
80
+ "input",
81
+ handler,
82
+ extends=extends,
83
+ )
84
+ return self
85
+
86
+ def on_keydown(
87
+ self,
88
+ handler: EventMixin,
89
+ *,
90
+ extends: typing.Optional[typing.List] = None,
91
+ ):
92
+ self.on(
93
+ "keydown",
94
+ handler,
95
+ extends=extends,
96
+ )
97
+ return self
@@ -0,0 +1,38 @@
1
+ import typing
2
+ from typing_extensions import Unpack
3
+ from instaui.vars.types import TMaybeRef
4
+ from instaui.arco import component_types
5
+ from instaui.event.event_mixin import EventMixin
6
+ from .input import Input
7
+ from ._utils import try_setup_vmodel
8
+
9
+
10
+ class TInputPassword(component_types.TInput, total=False):
11
+ model_visibility: bool
12
+ default_visibility: bool
13
+ invisible_button: bool
14
+
15
+
16
+ class InputPassword(Input, exten_name="password"):
17
+ def __init__(
18
+ self,
19
+ value: typing.Optional[TMaybeRef[str]] = None,
20
+ *,
21
+ visibility_value: typing.Optional[TMaybeRef[bool]] = None,
22
+ **kwargs: Unpack[TInputPassword],
23
+ ):
24
+ super().__init__(value=value, **kwargs)
25
+ try_setup_vmodel(self, visibility_value, prop_name="visibility")
26
+
27
+ def on_visibility_change(
28
+ self,
29
+ handler: EventMixin,
30
+ *,
31
+ extends: typing.Optional[typing.List] = None,
32
+ ):
33
+ self.on(
34
+ "visibility-change",
35
+ handler,
36
+ extends=extends,
37
+ )
38
+ return self