instaui 0.1.14__tar.gz → 0.1.16__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.
- {instaui-0.1.14 → instaui-0.1.16}/PKG-INFO +1 -2
- instaui-0.1.16/instaui/action/__init__.py +10 -0
- instaui-0.1.16/instaui/action/cookie.py +25 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/radio.py +19 -6
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/radio_group.py +2 -3
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/slider.py +1 -1
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/component.py +2 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/element.py +17 -4
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/html/__init__.py +2 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/html/label.py +9 -7
- instaui-0.1.16/instaui/components/html/radio.py +37 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/match.py +2 -0
- instaui-0.1.16/instaui/components/timer/timer.js +48 -0
- instaui-0.1.16/instaui/components/timer/timer.py +94 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/vfor.py +2 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/vif.py +5 -1
- {instaui-0.1.14 → instaui-0.1.16}/instaui/event/js_event.py +2 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/event/vue_event.py +3 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/event/web_event.py +3 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/runtime/scope.py +18 -4
- {instaui-0.1.14 → instaui-0.1.16}/instaui/static/insta-ui.esm-browser.prod.js +3717 -3717
- {instaui-0.1.14 → instaui-0.1.16}/instaui/static/insta-ui.js.map +1 -1
- {instaui-0.1.14 → instaui-0.1.16}/instaui/ui/__init__.py +2 -2
- {instaui-0.1.14 → instaui-0.1.16}/instaui/ui/__init__.pyi +2 -2
- {instaui-0.1.14 → instaui-0.1.16}/instaui/vars/js_computed.py +16 -1
- instaui-0.1.16/instaui/vars/mixin_types/element_binding.py +22 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/vars/path_var.py +3 -3
- {instaui-0.1.14 → instaui-0.1.16}/instaui/vars/vue_computed.py +17 -1
- {instaui-0.1.14 → instaui-0.1.16}/instaui/vars/web_computed.py +17 -5
- {instaui-0.1.14 → instaui-0.1.16}/instaui/watch/js_watch.py +2 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/watch/web_watch.py +2 -0
- {instaui-0.1.14 → instaui-0.1.16}/pyproject.toml +2 -16
- instaui-0.1.14/instaui/vars/mixin_types/element_binding.py +0 -10
- {instaui-0.1.14 → instaui-0.1.16}/.gitignore +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/LICENSE +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/README.md +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/__init__.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/_helper/observable_helper.py +0 -0
- {instaui-0.1.14/instaui/ui_functions → instaui-0.1.16/instaui/action}/url_location.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/__init__.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/_settings.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/_use_tools/locale.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/component_types.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/_utils.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/affix.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/alert.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/anchor.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/auto_complete.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/avatar.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/back_top.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/badge.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/breadcrumb.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/button.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/calendar.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/card.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/carousel.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/cascader.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/checkbox.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/collapse.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/color_picker.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/comment.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/config_provider.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/date_picker.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/descriptions.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/divider.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/drawer.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/dropdown.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/empty.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/form.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/icon.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/image.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/input.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/input_number.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/input_password.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/input_search.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/input_tag.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/layout.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/layout_content.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/layout_footer.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/layout_header.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/layout_sider.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/link.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/list.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/mention.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/menu.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/modal.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/overflow_list.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/page_header.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/pagination.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/pop_confirm.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/popover.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/progress.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/rate.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/resize_box.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/result.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/select.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/skeleton.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/space.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/spin.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/split.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/statistic.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/steps.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/switch.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/tab_pane.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/table.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/tabs.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/tag.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/textarea.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/time_picker.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/timeline.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/tooltip.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/transfer.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/tree.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/tree_select.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/trigger.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/typography.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/upload.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/verification_code.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/components/watermark.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/locales/__init__.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/locales/_index.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/locales/en_us.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/locales/zh_cn.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/setup.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/static/instaui-arco.css +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/static/instaui-arco.js +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/arco/types.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/boot_info.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/common/jsonable.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/__init__.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/column.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/content.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/directive.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/grid.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/html/_mixins.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/html/_preset.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/html/button.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/html/checkbox.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/html/date.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/html/div.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/html/form.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/html/heading.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/html/input.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/html/li.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/html/link.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/html/number.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/html/paragraph.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/html/range.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/html/select.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/html/span.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/html/table.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/html/textarea.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/html/ul.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/label.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/markdown/markdown.js +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/markdown/markdown.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/markdown/static/github-markdown.css +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/markdown/static/marked.esm.js +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/row.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/shiki_code/shiki_code.js +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/shiki_code/shiki_code.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/shiki_code/static/langs/css.mjs +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/shiki_code/static/langs/markdown.mjs +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/shiki_code/static/langs/python.mjs +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/shiki_code/static/langs/shell.mjs +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/shiki_code/static/langs/shellscript.mjs +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/shiki_code/static/shiki-core.js +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/shiki_code/static/shiki-style.css +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/shiki_code/static/shiki-transformers.js +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/shiki_code/static/themes/vitesse-dark.mjs +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/shiki_code/static/themes/vitesse-light.mjs +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/slot.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/transition_group.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/components/value_element.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/consts.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/dependencies/component_dependency.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/dependencies/plugin_dependency.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/event/event_mixin.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/experimental/__init__.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/experimental/debug.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/extra_libs/_echarts.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/extra_libs/_import_error.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/extra_libs/_mermaid.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/extra_libs/_shiki_code.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/fastapi_server/_utils.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/fastapi_server/_uvicorn.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/fastapi_server/debug_mode_router.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/fastapi_server/dependency_router.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/fastapi_server/event_router.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/fastapi_server/middlewares.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/fastapi_server/request_context.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/fastapi_server/resource.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/fastapi_server/server.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/fastapi_server/watch_router.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/handlers/_utils.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/handlers/event_handler.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/handlers/watch_handler.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/html_tools.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/inject.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/js/__init__.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/js/js_output.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/js/lambda_func.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/launch_collector.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/page_info.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/runtime/__init__.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/runtime/_app.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/runtime/_inner_helper.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/runtime/_link_manager.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/runtime/context.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/runtime/dataclass.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/runtime/resource.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/runtime/ui_state_scope.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/settings/__init__.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/settings/__settings.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/shadcn_classless/_index.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/shadcn_classless/static/shadcn-classless.css +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/skip.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/spa_router/__init__.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/spa_router/_components.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/spa_router/_file_base_utils.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/spa_router/_functions.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/spa_router/_install.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/spa_router/_route_model.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/spa_router/_router_box.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/spa_router/_router_output.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/spa_router/_router_param_var.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/spa_router/_types.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/spa_router/templates/page_routes +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/static/insta-ui.css +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/static/insta-ui.ico +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/static/instaui-tools-browser.js +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/static/templates/debug/sse.html +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/static/templates/web.html +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/static/templates/webview.html +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/static/templates/zero.html +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/static/vue.esm-browser.prod.js +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/static/vue.global.prod.js +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/static/vue.runtime.esm-browser.prod.js +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/systems/file_system.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/systems/func_system.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/systems/js_system.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/systems/module_system.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/systems/pydantic_system.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/systems/string_system.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/tailwind/__init__.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/tailwind/_index.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/tailwind/static/tailwindcss-v3.min.js +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/tailwind/static/tailwindcss-v4.min.js +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/template/__init__.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/template/_utils.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/template/env.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/template/web_template.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/template/webview_template.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/template/zero_template.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/ui/events.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/ui_functions/input_slient_data.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/ui_functions/server.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/ui_functions/str_format.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/ui_functions/ui_page.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/ui_functions/ui_types.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/vars/_types.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/vars/data.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/vars/element_ref.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/vars/event_context.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/vars/event_extend.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/vars/mixin_types/common_type.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/vars/mixin_types/observable.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/vars/mixin_types/pathable.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/vars/mixin_types/py_binding.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/vars/mixin_types/str_format_binding.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/vars/mixin_types/var_type.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/vars/ref.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/vars/slot_prop.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/vars/state.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/vars/types.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/vars/vfor_item.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/vars/web_view_computed.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/version.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/watch/_types.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/watch/_utils.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/watch/vue_watch.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/webview/__init__.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/webview/_utils.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/webview/api.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/webview/func.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/webview/index.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/webview/resource.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/zero/__init__.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/zero/func.py +0 -0
- {instaui-0.1.14 → instaui-0.1.16}/instaui/zero/scope.py +0 -0
@@ -1,12 +1,11 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: instaui
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.16
|
4
4
|
Summary: insta-ui is a Python-based UI library for rapidly building user interfaces.
|
5
5
|
Author-email: CrystalWindSnake <568166495@qq.com>
|
6
6
|
License-Expression: MIT
|
7
7
|
License-File: LICENSE
|
8
8
|
Keywords: gui,ui,web
|
9
|
-
Requires-Python: <3.13,>=3.8
|
10
9
|
Requires-Dist: jinja2>=3.1.6
|
11
10
|
Requires-Dist: orjson>=3.10.15
|
12
11
|
Requires-Dist: pydantic>=2.10.6
|
@@ -0,0 +1,25 @@
|
|
1
|
+
from datetime import datetime
|
2
|
+
from typing import Optional, Union
|
3
|
+
from instaui.runtime.context import get_context
|
4
|
+
|
5
|
+
|
6
|
+
def cookie_output():
|
7
|
+
if not get_context().app_mode == "web":
|
8
|
+
raise ValueError("cookie_output can only be used in web mode")
|
9
|
+
|
10
|
+
|
11
|
+
def cookie_input():
|
12
|
+
pass
|
13
|
+
|
14
|
+
|
15
|
+
def set_cookie(
|
16
|
+
key: str,
|
17
|
+
value: str,
|
18
|
+
*,
|
19
|
+
max_age: Optional[int] = None,
|
20
|
+
expires: Optional[Union[int, datetime]] = None,
|
21
|
+
secure: bool = False,
|
22
|
+
httponly: bool = False,
|
23
|
+
samesite: Optional[str] = None,
|
24
|
+
):
|
25
|
+
pass
|
@@ -1,3 +1,4 @@
|
|
1
|
+
from __future__ import annotations
|
1
2
|
import typing
|
2
3
|
from typing_extensions import Unpack
|
3
4
|
import pydantic
|
@@ -6,13 +7,16 @@ from instaui.vars.types import TMaybeRef
|
|
6
7
|
from instaui.vars.state import StateModel
|
7
8
|
from instaui.arco import component_types
|
8
9
|
from instaui.event.event_mixin import EventMixin
|
9
|
-
from ._utils import handle_props
|
10
|
+
from ._utils import handle_props
|
11
|
+
from .radio_group import RadioGroup
|
12
|
+
|
13
|
+
_TValue = typing.Union[str, float]
|
10
14
|
|
11
15
|
|
12
16
|
class Radio(Element):
|
13
17
|
def __init__(
|
14
18
|
self,
|
15
|
-
value: typing.Optional[TMaybeRef[
|
19
|
+
value: typing.Optional[TMaybeRef[_TValue]] = None,
|
16
20
|
**kwargs: Unpack[component_types.TRadio],
|
17
21
|
):
|
18
22
|
super().__init__("a-radio")
|
@@ -33,8 +37,17 @@ class Radio(Element):
|
|
33
37
|
)
|
34
38
|
return self
|
35
39
|
|
40
|
+
@staticmethod
|
41
|
+
def from_list(options: TMaybeRef[typing.List[_TValue]], value: TMaybeRef[_TValue]):
|
42
|
+
return RadioGroup(value=value, options=options) # type: ignore
|
43
|
+
|
44
|
+
@staticmethod
|
45
|
+
def from_options(
|
46
|
+
options: TMaybeRef[typing.List[RadioOption]], value: TMaybeRef[_TValue]
|
47
|
+
):
|
48
|
+
return RadioGroup(value=value, options=options) # type: ignore
|
36
49
|
|
37
|
-
class RadioOption(StateModel):
|
38
|
-
|
39
|
-
|
40
|
-
|
50
|
+
class RadioOption(StateModel):
|
51
|
+
label: str
|
52
|
+
value: typing.Union[str, int]
|
53
|
+
disabled: bool = pydantic.Field(default=False)
|
@@ -4,7 +4,6 @@ from instaui.components.element import Element
|
|
4
4
|
from instaui.vars.types import TMaybeRef
|
5
5
|
from instaui.event.event_mixin import EventMixin
|
6
6
|
from ._utils import handle_props, try_setup_vmodel
|
7
|
-
from .radio import RadioOption
|
8
7
|
|
9
8
|
|
10
9
|
class TRadioGroup(TypedDict, total=False):
|
@@ -12,7 +11,7 @@ class TRadioGroup(TypedDict, total=False):
|
|
12
11
|
default_value: typing.Union[str, int, bool]
|
13
12
|
type: typing.Literal["radio", "button"]
|
14
13
|
size: typing.Literal["mini", "small", "medium", "large"]
|
15
|
-
options: typing.List[typing.Union[str, int
|
14
|
+
options: typing.List[typing.Union[str, int]]
|
16
15
|
direction: typing.Literal["horizontal", "vertical"]
|
17
16
|
disabled: bool
|
18
17
|
|
@@ -20,7 +19,7 @@ class TRadioGroup(TypedDict, total=False):
|
|
20
19
|
class RadioGroup(Element):
|
21
20
|
def __init__(
|
22
21
|
self,
|
23
|
-
value: typing.Optional[TMaybeRef[typing.Union[str,
|
22
|
+
value: typing.Optional[TMaybeRef[typing.Union[str, float]]] = None,
|
24
23
|
**kwargs: Unpack[TRadioGroup],
|
25
24
|
):
|
26
25
|
super().__init__("a-radio-group")
|
@@ -6,7 +6,7 @@ from instaui.arco import component_types
|
|
6
6
|
from instaui.event.event_mixin import EventMixin
|
7
7
|
from ._utils import handle_props, try_setup_vmodel
|
8
8
|
|
9
|
-
_TSliderValue = typing.Union[int, float]
|
9
|
+
_TSliderValue = typing.Union[int, float, typing.List[int], typing.List[float]]
|
10
10
|
|
11
11
|
|
12
12
|
class Slider(Element):
|
@@ -97,10 +97,6 @@ class Element(Component):
|
|
97
97
|
self._proxy_props: List[ElementBindingMixin] = []
|
98
98
|
|
99
99
|
self._events: defaultdict[str, List[EventMixin]] = defaultdict(list)
|
100
|
-
|
101
|
-
# self._js_events: defaultdict[str, List[EventMixin]] = defaultdict(list)
|
102
|
-
# self._web_events: defaultdict[str, List[EventMixin]] = defaultdict(list)
|
103
|
-
# self._vue_events: defaultdict[str, List[EventMixin]] = defaultdict(list)
|
104
100
|
self._directives: Dict[Directive, None] = {}
|
105
101
|
|
106
102
|
self._slot_manager = SlotManager()
|
@@ -275,18 +271,28 @@ class Element(Component):
|
|
275
271
|
|
276
272
|
if isinstance(add, dict):
|
277
273
|
self._dict_classes.update(**add) # type: ignore
|
274
|
+
for value in (
|
275
|
+
v for v in add.values() if isinstance(v, ElementBindingMixin)
|
276
|
+
):
|
277
|
+
value._mark_used()
|
278
278
|
|
279
279
|
if isinstance(add, ElementBindingMixin):
|
280
280
|
self._bind_str_classes.append(add) # type: ignore
|
281
|
+
add._mark_used()
|
281
282
|
|
282
283
|
return self
|
283
284
|
|
284
285
|
def style(self, add: Union[str, Dict[str, Any], TMaybeRef[str]]) -> Self:
|
285
286
|
if isinstance(add, dict):
|
286
287
|
add = {key: value for key, value in add.items()}
|
288
|
+
for value in (
|
289
|
+
v for v in add.values() if isinstance(v, ElementBindingMixin)
|
290
|
+
):
|
291
|
+
value._mark_used()
|
287
292
|
|
288
293
|
if isinstance(add, ElementBindingMixin):
|
289
294
|
self._style_str_binds.append(add)
|
295
|
+
add._mark_used()
|
290
296
|
return self
|
291
297
|
|
292
298
|
new_style = self._parse_style(add)
|
@@ -296,10 +302,17 @@ class Element(Component):
|
|
296
302
|
def props(self, add: Union[str, Dict[str, Any], TMaybeRef]) -> Self:
|
297
303
|
if isinstance(add, ElementBindingMixin):
|
298
304
|
self._proxy_props.append(add)
|
305
|
+
add._mark_used()
|
299
306
|
return self
|
300
307
|
|
301
308
|
if isinstance(add, dict):
|
302
309
|
add = {key: value for key, value in add.items() if value is not None}
|
310
|
+
|
311
|
+
for value in (
|
312
|
+
v for v in add.values() if isinstance(v, ElementBindingMixin)
|
313
|
+
):
|
314
|
+
value._mark_used()
|
315
|
+
|
303
316
|
new_props = self._parse_props(add)
|
304
317
|
self._props.update(new_props)
|
305
318
|
return self
|
@@ -6,6 +6,7 @@ __all__ = [
|
|
6
6
|
"number",
|
7
7
|
"button",
|
8
8
|
"checkbox",
|
9
|
+
"radio",
|
9
10
|
"form",
|
10
11
|
"select",
|
11
12
|
"option",
|
@@ -32,6 +33,7 @@ from .input import Input as input
|
|
32
33
|
from .number import Number as number
|
33
34
|
from .button import Button as button
|
34
35
|
from .checkbox import Checkbox as checkbox
|
36
|
+
from .radio import Radio as radio
|
35
37
|
from .form import Form as form
|
36
38
|
from .select import Select as select
|
37
39
|
from .ul import Ul as ul
|
@@ -1,5 +1,5 @@
|
|
1
1
|
from __future__ import annotations
|
2
|
-
from typing import TYPE_CHECKING, Any, Union
|
2
|
+
from typing import TYPE_CHECKING, Any, Optional, Union
|
3
3
|
from instaui.components.element import Element
|
4
4
|
|
5
5
|
if TYPE_CHECKING:
|
@@ -10,12 +10,14 @@ class Label(Element):
|
|
10
10
|
def __init__(
|
11
11
|
self,
|
12
12
|
text: Union[Any, TMaybeRef[Any], None] = None,
|
13
|
+
*,
|
14
|
+
for_: Optional[TMaybeRef[str]] = None,
|
13
15
|
):
|
14
16
|
super().__init__("label")
|
15
17
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
18
|
+
self.props(
|
19
|
+
{
|
20
|
+
"innerText": text,
|
21
|
+
"for": for_,
|
22
|
+
}
|
23
|
+
)
|
@@ -0,0 +1,37 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
from typing import TYPE_CHECKING, Optional, Union
|
3
|
+
from instaui.components.element import Element
|
4
|
+
from instaui.components.value_element import ValueElement
|
5
|
+
from ._mixins import InputEventMixin
|
6
|
+
|
7
|
+
if TYPE_CHECKING:
|
8
|
+
from instaui.vars.types import TMaybeRef
|
9
|
+
|
10
|
+
|
11
|
+
_T_value = str
|
12
|
+
|
13
|
+
|
14
|
+
class Radio(InputEventMixin, ValueElement[_T_value]):
|
15
|
+
def __init__(
|
16
|
+
self,
|
17
|
+
value: Optional[TMaybeRef[_T_value]] = None,
|
18
|
+
*,
|
19
|
+
model_value: Optional[_T_value] = None,
|
20
|
+
id: Optional[TMaybeRef[str]] = None,
|
21
|
+
name: Optional[TMaybeRef[str]] = None,
|
22
|
+
):
|
23
|
+
super().__init__("input", value, is_html_component=True)
|
24
|
+
self.props({"type": "radio"})
|
25
|
+
|
26
|
+
self.props(
|
27
|
+
{
|
28
|
+
"id": id,
|
29
|
+
"name": name,
|
30
|
+
}
|
31
|
+
)
|
32
|
+
|
33
|
+
if model_value is not None:
|
34
|
+
self.props({"value": model_value})
|
35
|
+
|
36
|
+
def _input_event_mixin_element(self) -> Element:
|
37
|
+
return self
|
@@ -0,0 +1,48 @@
|
|
1
|
+
import { ref, watch, onMounted, onUnmounted, toRef } from 'vue'
|
2
|
+
|
3
|
+
|
4
|
+
export default {
|
5
|
+
props: ['intervalSeconds', 'active', 'once', 'immediate'],
|
6
|
+
setup(props, { emit }) {
|
7
|
+
const { intervalSeconds, once = false, immediate = true } = props
|
8
|
+
const intervalId = ref(null)
|
9
|
+
const isActive = toRef(() => props.active ?? true)
|
10
|
+
const emitTick = once ? () => { emit('tick'); stopInterval() } : () => emit('tick')
|
11
|
+
|
12
|
+
if (once === false) {
|
13
|
+
watch(isActive, (value) => {
|
14
|
+
if (value) {
|
15
|
+
startInterval()
|
16
|
+
} else {
|
17
|
+
stopInterval()
|
18
|
+
}
|
19
|
+
})
|
20
|
+
}
|
21
|
+
|
22
|
+
const startInterval = () => {
|
23
|
+
if (immediate) {
|
24
|
+
emitTick()
|
25
|
+
}
|
26
|
+
|
27
|
+
intervalId.value = setInterval(() => {
|
28
|
+
emitTick()
|
29
|
+
}, intervalSeconds * 1000)
|
30
|
+
}
|
31
|
+
|
32
|
+
const stopInterval = () => {
|
33
|
+
clearInterval(intervalId.value)
|
34
|
+
emit('stop')
|
35
|
+
}
|
36
|
+
|
37
|
+
onMounted(() => {
|
38
|
+
if (isActive.value) {
|
39
|
+
startInterval()
|
40
|
+
}
|
41
|
+
})
|
42
|
+
|
43
|
+
onUnmounted(() => {
|
44
|
+
stopInterval()
|
45
|
+
})
|
46
|
+
}
|
47
|
+
|
48
|
+
}
|
@@ -0,0 +1,94 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
from typing import List, Optional
|
3
|
+
from instaui.components.element import Element
|
4
|
+
from instaui.vars.types import TMaybeRef
|
5
|
+
from instaui.event.event_mixin import EventMixin
|
6
|
+
|
7
|
+
|
8
|
+
class Timer(Element, esm="./timer.js"):
|
9
|
+
"""
|
10
|
+
A timer component that triggers events at specified intervals.
|
11
|
+
|
12
|
+
Args:
|
13
|
+
interval_seconds (float): Time in seconds between repeated events.
|
14
|
+
active (Optional[TMaybeRef[bool]], optional): If True, starts the timer immediately.
|
15
|
+
Accepts reactive values (e.g., state references) for dynamic control. Defaults to None (equivalent to True).
|
16
|
+
immediate (Optional[bool], optional): If True, triggers the first event immediately. Defaults to None (equivalent to True).
|
17
|
+
|
18
|
+
Example:
|
19
|
+
.. code-block:: python
|
20
|
+
from instaui import ui, html
|
21
|
+
|
22
|
+
@ui.page('/')
|
23
|
+
def index():
|
24
|
+
x = ui.state(0)
|
25
|
+
active = ui.state(True)
|
26
|
+
|
27
|
+
@ui.event(inputs=[x], outputs=[x])
|
28
|
+
def on_tick(x):
|
29
|
+
return x + 1
|
30
|
+
|
31
|
+
ui.timer(1, active=active).on_tick(on_tick)
|
32
|
+
|
33
|
+
html.checkbox(active)
|
34
|
+
html.span(x)
|
35
|
+
"""
|
36
|
+
|
37
|
+
def __init__(
|
38
|
+
self,
|
39
|
+
interval_seconds: float,
|
40
|
+
*,
|
41
|
+
active: Optional[TMaybeRef[bool]] = None,
|
42
|
+
immediate: Optional[bool] = None,
|
43
|
+
):
|
44
|
+
super().__init__("template")
|
45
|
+
|
46
|
+
self.props(
|
47
|
+
{
|
48
|
+
"intervalSeconds": interval_seconds,
|
49
|
+
"active": active,
|
50
|
+
"immediate": immediate,
|
51
|
+
}
|
52
|
+
)
|
53
|
+
|
54
|
+
def on_tick(
|
55
|
+
self,
|
56
|
+
handler: EventMixin,
|
57
|
+
*,
|
58
|
+
extends: Optional[List] = None,
|
59
|
+
):
|
60
|
+
"""
|
61
|
+
Registers an event handler for the "tick" event.
|
62
|
+
"""
|
63
|
+
return self.on("tick", handler, extends=extends)
|
64
|
+
|
65
|
+
def on_stop(
|
66
|
+
self,
|
67
|
+
handler: EventMixin,
|
68
|
+
*,
|
69
|
+
extends: Optional[List] = None,
|
70
|
+
):
|
71
|
+
"""
|
72
|
+
Registers an event handler for the "stop" event.
|
73
|
+
"""
|
74
|
+
|
75
|
+
return self.on("stop", handler, extends=extends)
|
76
|
+
|
77
|
+
@classmethod
|
78
|
+
def once(cls, delay_seconds: float):
|
79
|
+
"""
|
80
|
+
Creates a timer that triggers only once.
|
81
|
+
|
82
|
+
Args:
|
83
|
+
delay_seconds (float): Time in seconds before the timer triggers.
|
84
|
+
|
85
|
+
Example:
|
86
|
+
.. code-block:: python
|
87
|
+
msg = ui.state('')
|
88
|
+
on_done = ui.js_event(outputs=[msg],code="()=> 'Done!'")
|
89
|
+
|
90
|
+
ui.timer.once(1).on_tick(on_done)
|
91
|
+
html.span(msg) # will show "Done!" after 1 second
|
92
|
+
|
93
|
+
"""
|
94
|
+
return cls(delay_seconds, immediate=False).props({"once": True})
|
@@ -50,6 +50,8 @@ class VFor(Component, Generic[_T]):
|
|
50
50
|
|
51
51
|
super().__init__("vfor")
|
52
52
|
self._data = data
|
53
|
+
if isinstance(self._data, ElementBindingMixin):
|
54
|
+
self._data._mark_used()
|
53
55
|
self._key = key
|
54
56
|
self._fid = get_app_slot().generate_vfor_id()
|
55
57
|
self.__scope_manager = new_scope(append_to_app=False)
|
@@ -10,6 +10,8 @@ class VIf(Component):
|
|
10
10
|
def __init__(self, on: TMaybeRef[bool]):
|
11
11
|
super().__init__("vif")
|
12
12
|
self._on = cast(ElementBindingMixin, on)
|
13
|
+
if isinstance(on, ElementBindingMixin):
|
14
|
+
on._mark_used()
|
13
15
|
self.__scope_manager = new_scope(append_to_app=False)
|
14
16
|
self.__scope = None
|
15
17
|
|
@@ -24,7 +26,9 @@ class VIf(Component):
|
|
24
26
|
def _to_json_dict(self):
|
25
27
|
data = super()._to_json_dict()
|
26
28
|
data["props"] = {
|
27
|
-
"on": self._on
|
29
|
+
"on": self._on
|
30
|
+
if isinstance(self._on, bool)
|
31
|
+
else self._on._to_element_binding_config(),
|
28
32
|
}
|
29
33
|
props: Dict = data["props"]
|
30
34
|
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import typing
|
2
2
|
from instaui.vars.mixin_types.py_binding import CanInputMixin, CanOutputMixin
|
3
|
+
from instaui.vars.mixin_types.element_binding import _try_mark_inputs_used
|
3
4
|
from instaui.common.jsonable import Jsonable
|
4
5
|
from .event_mixin import EventMixin
|
5
6
|
|
@@ -26,6 +27,7 @@ class JsEvent(Jsonable, EventMixin):
|
|
26
27
|
def _to_json_dict(self):
|
27
28
|
data = super()._to_json_dict()
|
28
29
|
data["type"] = self.event_type()
|
30
|
+
_try_mark_inputs_used(self._org_inputs)
|
29
31
|
|
30
32
|
if self._inputs:
|
31
33
|
data["inputs"] = self._inputs
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import typing
|
2
2
|
from instaui.common.jsonable import Jsonable
|
3
3
|
from instaui.vars.mixin_types.observable import ObservableMixin
|
4
|
+
from instaui.vars.mixin_types.element_binding import _try_mark_inputs_used
|
4
5
|
from .event_mixin import EventMixin
|
5
6
|
|
6
7
|
|
@@ -59,6 +60,8 @@ class VueEvent(Jsonable, EventMixin):
|
|
59
60
|
|
60
61
|
def _to_json_dict(self):
|
61
62
|
data = super()._to_json_dict()
|
63
|
+
|
64
|
+
_try_mark_inputs_used((self._bindings or {}).values())
|
62
65
|
data["type"] = self.event_type()
|
63
66
|
return data
|
64
67
|
|
@@ -4,6 +4,7 @@ from typing_extensions import ParamSpec
|
|
4
4
|
from instaui.common.jsonable import Jsonable
|
5
5
|
from instaui.runtime._app import get_current_scope, get_app_slot
|
6
6
|
from instaui.vars.mixin_types.py_binding import CanInputMixin, CanOutputMixin
|
7
|
+
from instaui.vars.mixin_types.element_binding import _try_mark_inputs_used
|
7
8
|
from instaui.handlers import event_handler
|
8
9
|
from .event_mixin import EventMixin
|
9
10
|
|
@@ -46,6 +47,8 @@ class WebEvent(Jsonable, EventMixin, typing.Generic[P, R]):
|
|
46
47
|
def _to_json_dict(self):
|
47
48
|
app = get_app_slot()
|
48
49
|
|
50
|
+
_try_mark_inputs_used(self._inputs)
|
51
|
+
|
49
52
|
hkey = event_handler.create_handler_key(
|
50
53
|
page_path=app.page_path, handler=self._fn
|
51
54
|
)
|
@@ -96,10 +96,24 @@ class Scope(Jsonable):
|
|
96
96
|
data["vue_watch"] = self._vue_watchs
|
97
97
|
if self._element_refs:
|
98
98
|
data["eRefs"] = self._element_refs
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
99
|
+
|
100
|
+
# web computeds
|
101
|
+
_web_computeds = [
|
102
|
+
computed for computed in self._web_computeds if computed._is_used()
|
103
|
+
]
|
104
|
+
|
105
|
+
if _web_computeds:
|
106
|
+
data["web_computed"] = _web_computeds
|
107
|
+
|
108
|
+
# js computeds
|
109
|
+
_js_computeds = [
|
110
|
+
computed for computed in self._js_computeds if computed._is_used()
|
111
|
+
]
|
112
|
+
|
113
|
+
if _js_computeds:
|
114
|
+
data["js_computed"] = _js_computeds
|
115
|
+
|
116
|
+
# vue computeds
|
103
117
|
if self._vue_computeds:
|
104
118
|
data["vue_computed"] = self._vue_computeds
|
105
119
|
if self._const_data:
|