dars-framework 1.0.7__tar.gz → 1.0.8__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 (79) hide show
  1. {dars_framework-1.0.7/dars_framework.egg-info → dars_framework-1.0.8}/PKG-INFO +1 -1
  2. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/all.py +1 -1
  3. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/cli/main.py +3 -0
  4. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/advanced/accordion.py +4 -3
  5. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/advanced/card.py +1 -1
  6. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/advanced/modal.py +1 -1
  7. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/advanced/navbar.py +1 -1
  8. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/advanced/table.py +5 -4
  9. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/advanced/tabs.py +5 -4
  10. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/image.py +1 -1
  11. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/link.py +1 -1
  12. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/page.py +1 -1
  13. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/progressbar.py +4 -3
  14. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/select.py +1 -1
  15. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/spinner.py +2 -1
  16. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/textarea.py +1 -1
  17. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/tooltip.py +5 -4
  18. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/core/app.py +76 -82
  19. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/core/component.py +29 -23
  20. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/core/events.py +11 -10
  21. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/core/properties.py +1 -1
  22. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/exporters/base.py +23 -5
  23. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/exporters/web/html_css_js.py +91 -37
  24. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/scripts/script.py +6 -6
  25. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/templates/examples/basic/flex_layout_responsive.py +1 -1
  26. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/templates/examples/basic/form_components.py +2 -2
  27. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/templates/examples/basic/grid_layout_responsive.py +2 -3
  28. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/templates/examples/basic/hello_world.py +2 -5
  29. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/templates/examples/basic/layout_multipage_demo.py +1 -1
  30. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/templates/examples/basic/multipage_example.py +1 -4
  31. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/templates/examples/basic/pwa_custom_icons.py +7 -3
  32. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/templates/examples/demo/complete_app.py +3 -6
  33. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/version.py +2 -2
  34. {dars_framework-1.0.7 → dars_framework-1.0.8/dars_framework.egg-info}/PKG-INFO +1 -1
  35. {dars_framework-1.0.7 → dars_framework-1.0.8}/pyproject.toml +1 -1
  36. {dars_framework-1.0.7 → dars_framework-1.0.8}/LICENSE +0 -0
  37. {dars_framework-1.0.7 → dars_framework-1.0.8}/README.md +0 -0
  38. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/__init__.py +0 -0
  39. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/cli/__init__.py +0 -0
  40. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/cli/hot_reload.py +0 -0
  41. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/cli/preview.py +0 -0
  42. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/cli/translations.py +0 -0
  43. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/__init__.py +0 -0
  44. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/advanced/__init__.py +0 -0
  45. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/__init__.py +0 -0
  46. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/button.py +0 -0
  47. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/checkbox.py +0 -0
  48. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/container.py +0 -0
  49. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/datepicker.py +0 -0
  50. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/input.py +0 -0
  51. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/radiobutton.py +0 -0
  52. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/slider.py +0 -0
  53. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/text.py +0 -0
  54. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/layout/__init__.py +0 -0
  55. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/layout/anchor.py +0 -0
  56. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/layout/flex.py +0 -0
  57. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/layout/grid.py +0 -0
  58. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/core/__init__.py +0 -0
  59. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/docs/__init__.py +0 -0
  60. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/exporters/__init__.py +0 -0
  61. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/exporters/web/OLD/html_css_js_OLD4.py +0 -0
  62. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/exporters/web/OLD/html_css_js_old.py +0 -0
  63. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/exporters/web/OLD/html_css_js_old2.py +0 -0
  64. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/exporters/web/__init__.py +0 -0
  65. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/scripts/__init__.py +0 -0
  66. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/scripts/dscript.py +0 -0
  67. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/templates/__init__.py +0 -0
  68. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/templates/examples/advanced/advanced_modal_demo.py +0 -0
  69. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/templates/examples/advanced/all_components_demo.py +0 -0
  70. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/templates/examples/advanced/dashboard.py +0 -0
  71. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/templates/examples/advanced/modern_web_app.py +0 -0
  72. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/templates/examples/basic/simple_form.py +0 -0
  73. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/templates/html/__init__.py +0 -0
  74. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars_framework.egg-info/SOURCES.txt +0 -0
  75. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars_framework.egg-info/dependency_links.txt +0 -0
  76. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars_framework.egg-info/entry_points.txt +0 -0
  77. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars_framework.egg-info/requires.txt +0 -0
  78. {dars_framework-1.0.7 → dars_framework-1.0.8}/dars_framework.egg-info/top_level.txt +0 -0
  79. {dars_framework-1.0.7 → dars_framework-1.0.8}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dars-framework
3
- Version: 1.0.7
3
+ Version: 1.0.8
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
@@ -42,7 +42,7 @@ from dars.scripts.script import *
42
42
  from dars.scripts.dscript import dScript
43
43
 
44
44
  # Exporters (optional, for direct use)
45
- # from dars.exporters.web.html_css_js import HTMLCSSJSExporter
45
+ from dars.exporters.web.html_css_js import HTMLCSSJSExporter
46
46
 
47
47
  # CLI (optional, for advanced usage)
48
48
  # from dars.cli.main import main as dars_cli_main
@@ -425,6 +425,9 @@ container.add_child(subtitle_text)
425
425
  container.add_child(button)
426
426
  app.set_root(container)
427
427
  app.add_script(script)
428
+
429
+ if __name__ == '__main__':
430
+ app.rTimeCompile()
428
431
  """
429
432
  """Initializes a base Dars project, optionally using a template"""
430
433
  if os.path.exists(name):
@@ -3,10 +3,11 @@ from typing import List, Optional
3
3
 
4
4
  class Accordion(Component):
5
5
  """
6
- Componente Accordion para mostrar secciones colapsables.
7
- sections: Lista de tuplas (título, contenido)
8
- open_indices: Lista de índices abiertos (opcional)
6
+ Accordion component to display collapsible sections.
7
+ sections: List of tuples (title, content)
8
+ open_indices: List of open indices (optional)
9
9
  """
10
+
10
11
  def __init__(self, sections: List[tuple], open_indices: Optional[List[int]]=None, minimum_logic: bool = True, **props):
11
12
  super().__init__(**props)
12
13
  self.sections = sections
@@ -2,7 +2,7 @@ from dars.core.component import Component
2
2
  from typing import Optional, Dict, Any, List
3
3
 
4
4
  class Card(Component):
5
- """Componente para mostrar contenido en una tarjeta."""
5
+ """Component to display content in a card."""
6
6
  def __init__(
7
7
  self,
8
8
  children: Optional[List[Component]] = None,
@@ -2,7 +2,7 @@ from dars.core.component import Component
2
2
  from typing import Optional, Dict, Any, List
3
3
 
4
4
  class Modal(Component):
5
- """Componente para mostrar contenido en un modal."""
5
+ """Component to display content in a modal."""
6
6
  def __init__(
7
7
  self,
8
8
  children: Optional[List[Component]] = None,
@@ -2,7 +2,7 @@ from dars.core.component import Component
2
2
  from typing import Optional, Dict, Any, List
3
3
 
4
4
  class Navbar(Component):
5
- """Componente para crear barras de navegación."""
5
+ """Component to create navigation bars."""
6
6
  def __init__(
7
7
  self,
8
8
  *children,
@@ -3,11 +3,12 @@ from typing import List, Dict, Any, Optional
3
3
 
4
4
  class Table(Component):
5
5
  """
6
- Componente para mostrar datos tabulares con columnas, datos, paginación, orden y filtrado.
7
- columns: Lista de diccionarios con claves 'title', 'field', 'sortable', 'width', etc.
8
- data: Lista de diccionarios (cada uno es una fila).
9
- page_size: Número de filas por página (opcional).
6
+ Component to display tabular data with columns, data, pagination, sorting, and filtering.
7
+ columns: List of dictionaries with keys 'title', 'field', 'sortable', 'width', etc.
8
+ data: List of dictionaries (each one is a row)
9
+ page_size: Number of rows per page (optional)
10
10
  """
11
+
11
12
  def __init__(self, columns: List[Dict[str, Any]], data: List[Dict[str, Any]], page_size: Optional[int]=None, **props):
12
13
  super().__init__(**props)
13
14
  self.columns = columns
@@ -3,11 +3,12 @@ from typing import List, Optional
3
3
 
4
4
  class Tabs(Component):
5
5
  """
6
- Componente de navegación por pestañas.
7
- tabs: Lista de títulos de pestañas
8
- panels: Lista de componentes o strings (contenido de cada pestaña)
9
- selected: Índice de la pestaña activa (opcional)
6
+ Tab navigation component.
7
+ tabs: List of tab titles
8
+ panels: List of components or strings (content of each tab)
9
+ selected: Index of the active tab (optional)
10
10
  """
11
+
11
12
  def __init__(self, tabs: List[str], panels: List[Component], selected: Optional[int]=0, minimum_logic: bool = True, **props):
12
13
  super().__init__(**props)
13
14
  self.tabs = tabs
@@ -2,7 +2,7 @@ from dars.core.component import Component
2
2
  from typing import Optional, Dict, Any
3
3
 
4
4
  class Image(Component):
5
- """Componente para mostrar imágenes."""
5
+ """Component to display images."""
6
6
  def __init__(
7
7
  self,
8
8
  src: str,
@@ -2,7 +2,7 @@ from dars.core.component import Component
2
2
  from typing import Optional, Dict, Any
3
3
 
4
4
  class Link(Component):
5
- """Componente para crear enlaces."""
5
+ """Component to create links."""
6
6
  def __init__(
7
7
  self,
8
8
  text: str,
@@ -2,7 +2,7 @@ from dars.core.component import Component
2
2
  from typing import Optional, Dict, Any, List
3
3
 
4
4
  class Page(Component):
5
- """Componente raíz para páginas en apps multipágina Dars. Permite pasar hijos como argumentos posicionales y scripts por página."""
5
+ """Root component for pages in Dars multipage apps. Allows passing children as positional arguments and scripts per page."""
6
6
  def __init__(self, *children: Component, id: Optional[str] = None, class_name: Optional[str] = None, style: Optional[Dict[str, Any]] = None):
7
7
  super().__init__(id=id, class_name=class_name, style=style)
8
8
  self.scripts = []
@@ -3,10 +3,11 @@ from typing import Optional
3
3
 
4
4
  class ProgressBar(Component):
5
5
  """
6
- Barra de progreso visual.
7
- value: valor actual (0-100)
8
- max_value: valor máximo (default 100)
6
+ Visual progress bar.
7
+ value: current value (0-100)
8
+ max_value: maximum value (default 100)
9
9
  """
10
+
10
11
  def __init__(self, value: int, max_value: int = 100, **props):
11
12
  super().__init__(**props)
12
13
  self.value = value
@@ -4,7 +4,7 @@ from dars.core.events import EventTypes
4
4
  from typing import Optional, Union, Dict, Any, Callable, List
5
5
 
6
6
  class SelectOption:
7
- """Clase para representar una opción del select"""
7
+ """Class to represent a select option"""
8
8
  def __init__(self, value: str, label: str, disabled: bool = False):
9
9
  self.value = value
10
10
  self.label = label
@@ -2,8 +2,9 @@ from dars.core.component import Component
2
2
 
3
3
  class Spinner(Component):
4
4
  """
5
- Indicador de carga circular (spinner).
5
+ Circular loading indicator (spinner).
6
6
  """
7
+
7
8
  def __init__(self, **props):
8
9
  super().__init__(**props)
9
10
 
@@ -2,7 +2,7 @@ from dars.core.component import Component
2
2
  from typing import Optional, Dict, Any
3
3
 
4
4
  class Textarea(Component):
5
- """Componente para áreas de texto multilínea."""
5
+ """Component for multiline text areas."""
6
6
  def __init__(
7
7
  self,
8
8
  value: str = "",
@@ -3,11 +3,12 @@ from typing import Optional
3
3
 
4
4
  class Tooltip(Component):
5
5
  """
6
- Tooltip: cuadro de información al pasar el cursor.
7
- text: texto a mostrar
8
- child: componente o HTML envuelto
9
- position: top, right, bottom, left (opcional)
6
+ Tooltip: information box on hover.
7
+ text: text to display
8
+ child: wrapped component or HTML
9
+ position: top, right, bottom, left (optional)
10
10
  """
11
+
11
12
  def __init__(self, text: str, child: Component, position: Optional[str] = "top", **props):
12
13
  super().__init__(**props)
13
14
  self.text = text