dars-framework 1.0.5__tar.gz → 1.0.7__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 (82) hide show
  1. {dars_framework-1.0.5 → dars_framework-1.0.7}/PKG-INFO +6 -2
  2. {dars_framework-1.0.5 → dars_framework-1.0.7}/README.md +3 -1
  3. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/all.py +2 -0
  4. dars_framework-1.0.7/dars/components/basic/button.py +55 -0
  5. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/components/basic/input.py +8 -2
  6. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/core/app.py +388 -79
  7. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/core/component.py +32 -0
  8. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/exporters/base.py +13 -4
  9. dars_framework-1.0.5/dars/exporters/web/html_css_js.py → dars_framework-1.0.7/dars/exporters/web/OLD/html_css_js_OLD4.py +151 -105
  10. dars_framework-1.0.7/dars/exporters/web/html_css_js.py +1671 -0
  11. dars_framework-1.0.7/dars/scripts/dscript.py +26 -0
  12. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/templates/examples/advanced/advanced_modal_demo.py +2 -2
  13. dars_framework-1.0.7/dars/templates/examples/demo/complete_app.py +24 -0
  14. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/version.py +2 -2
  15. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars_framework.egg-info/PKG-INFO +6 -2
  16. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars_framework.egg-info/SOURCES.txt +2 -0
  17. dars_framework-1.0.7/dars_framework.egg-info/requires.txt +4 -0
  18. {dars_framework-1.0.5 → dars_framework-1.0.7}/pyproject.toml +4 -2
  19. dars_framework-1.0.5/dars/components/basic/button.py +0 -29
  20. dars_framework-1.0.5/dars/templates/examples/demo/complete_app.py +0 -720
  21. dars_framework-1.0.5/dars_framework.egg-info/requires.txt +0 -2
  22. {dars_framework-1.0.5 → dars_framework-1.0.7}/LICENSE +0 -0
  23. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/__init__.py +0 -0
  24. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/cli/__init__.py +0 -0
  25. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/cli/hot_reload.py +0 -0
  26. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/cli/main.py +0 -0
  27. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/cli/preview.py +0 -0
  28. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/cli/translations.py +0 -0
  29. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/components/__init__.py +0 -0
  30. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/components/advanced/__init__.py +0 -0
  31. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/components/advanced/accordion.py +0 -0
  32. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/components/advanced/card.py +0 -0
  33. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/components/advanced/modal.py +0 -0
  34. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/components/advanced/navbar.py +0 -0
  35. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/components/advanced/table.py +0 -0
  36. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/components/advanced/tabs.py +0 -0
  37. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/components/basic/__init__.py +0 -0
  38. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/components/basic/checkbox.py +0 -0
  39. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/components/basic/container.py +0 -0
  40. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/components/basic/datepicker.py +0 -0
  41. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/components/basic/image.py +0 -0
  42. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/components/basic/link.py +0 -0
  43. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/components/basic/page.py +0 -0
  44. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/components/basic/progressbar.py +0 -0
  45. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/components/basic/radiobutton.py +0 -0
  46. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/components/basic/select.py +0 -0
  47. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/components/basic/slider.py +0 -0
  48. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/components/basic/spinner.py +0 -0
  49. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/components/basic/text.py +0 -0
  50. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/components/basic/textarea.py +0 -0
  51. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/components/basic/tooltip.py +0 -0
  52. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/components/layout/__init__.py +0 -0
  53. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/components/layout/anchor.py +0 -0
  54. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/components/layout/flex.py +0 -0
  55. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/components/layout/grid.py +0 -0
  56. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/core/__init__.py +0 -0
  57. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/core/events.py +0 -0
  58. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/core/properties.py +0 -0
  59. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/docs/__init__.py +0 -0
  60. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/exporters/__init__.py +0 -0
  61. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/exporters/web/OLD/html_css_js_old.py +0 -0
  62. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/exporters/web/OLD/html_css_js_old2.py +0 -0
  63. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/exporters/web/__init__.py +0 -0
  64. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/scripts/__init__.py +0 -0
  65. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/scripts/script.py +0 -0
  66. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/templates/__init__.py +0 -0
  67. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/templates/examples/advanced/all_components_demo.py +0 -0
  68. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/templates/examples/advanced/dashboard.py +0 -0
  69. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/templates/examples/advanced/modern_web_app.py +0 -0
  70. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/templates/examples/basic/flex_layout_responsive.py +0 -0
  71. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/templates/examples/basic/form_components.py +0 -0
  72. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/templates/examples/basic/grid_layout_responsive.py +0 -0
  73. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/templates/examples/basic/hello_world.py +0 -0
  74. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/templates/examples/basic/layout_multipage_demo.py +0 -0
  75. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/templates/examples/basic/multipage_example.py +0 -0
  76. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/templates/examples/basic/pwa_custom_icons.py +0 -0
  77. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/templates/examples/basic/simple_form.py +0 -0
  78. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars/templates/html/__init__.py +0 -0
  79. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars_framework.egg-info/dependency_links.txt +0 -0
  80. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars_framework.egg-info/entry_points.txt +0 -0
  81. {dars_framework-1.0.5 → dars_framework-1.0.7}/dars_framework.egg-info/top_level.txt +0 -0
  82. {dars_framework-1.0.5 → dars_framework-1.0.7}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dars-framework
3
- Version: 1.0.5
3
+ Version: 1.0.7
4
4
  Summary: Dars is a Python UI framework for building modern, interactive web apps with only Python code. Write your interface in Python, export it to static HTML/CSS/JS, and deploy anywhere.
5
5
  Author-email: ztamdev <zondax2009@gmail.com>
6
6
  License: MIT License
@@ -29,11 +29,15 @@ Description-Content-Type: text/markdown
29
29
  License-File: LICENSE
30
30
  Requires-Dist: rich
31
31
  Requires-Dist: bs4
32
+ Requires-Dist: uvicorn
33
+ Requires-Dist: fastapi
32
34
  Dynamic: license-file
33
35
 
34
36
  # Dars Framework
35
37
 
36
- Dars is a Python UI framework for building modern, interactive web apps with only Python code. Write your interface in Python, export it to static HTML/CSS/JS, and deploy anywhere.
38
+ Dars Landing Page: https://ztamdev.github.io/Dars-Framework/
39
+
40
+ Dars is a Python UI framework for building modern, interactive web apps with Python code. Write your interface in Python, export it to static HTML/CSS/JS, and deploy anywhere.
37
41
 
38
42
  > Some Javascript or frontend stack required.
39
43
 
@@ -1,6 +1,8 @@
1
1
  # Dars Framework
2
2
 
3
- Dars is a Python UI framework for building modern, interactive web apps with only Python code. Write your interface in Python, export it to static HTML/CSS/JS, and deploy anywhere.
3
+ Dars Landing Page: https://ztamdev.github.io/Dars-Framework/
4
+
5
+ Dars is a Python UI framework for building modern, interactive web apps with Python code. Write your interface in Python, export it to static HTML/CSS/JS, and deploy anywhere.
4
6
 
5
7
  > Some Javascript or frontend stack required.
6
8
 
@@ -39,6 +39,7 @@ from dars.components.layout.flex import FlexLayout
39
39
  from dars.components.layout.anchor import AnchorPoint
40
40
 
41
41
  from dars.scripts.script import *
42
+ from dars.scripts.dscript import dScript
42
43
 
43
44
  # Exporters (optional, for direct use)
44
45
  # from dars.exporters.web.html_css_js import HTMLCSSJSExporter
@@ -52,4 +53,5 @@ __all__ = [
52
53
  'RadioButton', 'Select', 'Slider', 'Spinner', 'Text', 'Textarea', 'Tooltip',
53
54
  'Accordion', 'Card', 'Modal', 'Navbar', 'Table', 'Tabs',
54
55
  'GridLayout', 'FlexLayout', 'LayoutBase', 'AnchorPoint',
56
+ 'InlineScript', 'FileScript', 'dScript',
55
57
  ]
@@ -0,0 +1,55 @@
1
+ from dars.core.component import Component
2
+ from dars.core.properties import StyleProps
3
+ from dars.core.events import EventTypes
4
+ from dars.scripts.script import Script
5
+ from typing import Optional, Union, Dict, Any, Callable
6
+
7
+ class Button(Component):
8
+ def __init__(
9
+ self,
10
+ text: str = "Button",
11
+ id: Optional[str] = None,
12
+ class_name: Optional[str] = None,
13
+ style: Optional[Dict[str, Any]] = None,
14
+ disabled: bool = False,
15
+ button_type: str = "button", # "button", "submit", "reset"
16
+ on_click: Optional[Callable] = None,
17
+ on_double_click: Optional[Callable] = None,
18
+ on_mouse_enter: Optional[Callable] = None,
19
+ on_mouse_leave: Optional[Callable] = None,
20
+ on_mouse_down: Optional[Callable] = None,
21
+ on_mouse_up: Optional[Callable] = None,
22
+ on_key_down: Optional[Callable] = None,
23
+ on_key_up: Optional[Callable] = None
24
+ ):
25
+ super().__init__(id=id, class_name=class_name, style=style)
26
+ self.text = text
27
+ self.disabled = disabled
28
+ self.button_type = button_type
29
+
30
+ # Soporte para presets JS editables con dScript u otros Script
31
+ if on_click:
32
+ # Convertir a Script si es necesario
33
+ if not isinstance(on_click, Script) and callable(on_click):
34
+ from dars.scripts.dscript import dScript
35
+ on_click = dScript(on_click.__code__)
36
+ self.set_event(EventTypes.CLICK, on_click)
37
+ if on_double_click:
38
+ self.set_event(EventTypes.DOUBLE_CLICK, on_double_click)
39
+ if on_mouse_enter:
40
+ self.set_event(EventTypes.MOUSE_ENTER, on_mouse_enter)
41
+ if on_mouse_leave:
42
+ self.set_event(EventTypes.MOUSE_LEAVE, on_mouse_leave)
43
+ if on_mouse_down:
44
+ self.set_event(EventTypes.MOUSE_DOWN, on_mouse_down)
45
+ if on_mouse_up:
46
+ self.set_event(EventTypes.MOUSE_UP, on_mouse_up)
47
+ if on_key_down:
48
+ self.set_event(EventTypes.KEY_DOWN, on_key_down)
49
+ if on_key_up:
50
+ self.set_event(EventTypes.KEY_UP, on_key_up)
51
+
52
+ def render(self, exporter: Any) -> str:
53
+ # El método render será implementado por cada exportador
54
+ raise NotImplementedError("El método render debe ser implementado por el exportador")
55
+
@@ -21,7 +21,9 @@ class Input(Component):
21
21
  on_change: Optional[Callable] = None,
22
22
  on_input: Optional[Callable] = None,
23
23
  on_focus: Optional[Callable] = None,
24
- on_blur: Optional[Callable] = None
24
+ on_blur: Optional[Callable] = None,
25
+ on_key_down: Optional[Callable] = None,
26
+ on_key_up: Optional[Callable] = None
25
27
  ):
26
28
  super().__init__(id=id, class_name=class_name, style=style)
27
29
  self.value = value
@@ -34,7 +36,7 @@ class Input(Component):
34
36
  self.min_length = min_length
35
37
  self.pattern = pattern
36
38
 
37
- # Registrar eventos si se proporcionan
39
+ # Soporte para presets JS editables con dScript u otros Script
38
40
  if on_change:
39
41
  self.set_event(EventTypes.CHANGE, on_change)
40
42
  if on_input:
@@ -43,6 +45,10 @@ class Input(Component):
43
45
  self.set_event(EventTypes.FOCUS, on_focus)
44
46
  if on_blur:
45
47
  self.set_event(EventTypes.BLUR, on_blur)
48
+ if on_key_down:
49
+ self.set_event(EventTypes.KEY_DOWN, on_key_down)
50
+ if on_key_up:
51
+ self.set_event(EventTypes.KEY_UP, on_key_up)
46
52
 
47
53
  def render(self, exporter: Any) -> str:
48
54
  # El método render será implementado por cada exportador