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.
- {dars_framework-1.0.7/dars_framework.egg-info → dars_framework-1.0.8}/PKG-INFO +1 -1
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/all.py +1 -1
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/cli/main.py +3 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/advanced/accordion.py +4 -3
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/advanced/card.py +1 -1
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/advanced/modal.py +1 -1
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/advanced/navbar.py +1 -1
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/advanced/table.py +5 -4
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/advanced/tabs.py +5 -4
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/image.py +1 -1
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/link.py +1 -1
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/page.py +1 -1
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/progressbar.py +4 -3
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/select.py +1 -1
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/spinner.py +2 -1
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/textarea.py +1 -1
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/tooltip.py +5 -4
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/core/app.py +76 -82
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/core/component.py +29 -23
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/core/events.py +11 -10
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/core/properties.py +1 -1
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/exporters/base.py +23 -5
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/exporters/web/html_css_js.py +91 -37
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/scripts/script.py +6 -6
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/templates/examples/basic/flex_layout_responsive.py +1 -1
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/templates/examples/basic/form_components.py +2 -2
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/templates/examples/basic/grid_layout_responsive.py +2 -3
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/templates/examples/basic/hello_world.py +2 -5
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/templates/examples/basic/layout_multipage_demo.py +1 -1
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/templates/examples/basic/multipage_example.py +1 -4
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/templates/examples/basic/pwa_custom_icons.py +7 -3
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/templates/examples/demo/complete_app.py +3 -6
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/version.py +2 -2
- {dars_framework-1.0.7 → dars_framework-1.0.8/dars_framework.egg-info}/PKG-INFO +1 -1
- {dars_framework-1.0.7 → dars_framework-1.0.8}/pyproject.toml +1 -1
- {dars_framework-1.0.7 → dars_framework-1.0.8}/LICENSE +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/README.md +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/__init__.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/cli/__init__.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/cli/hot_reload.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/cli/preview.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/cli/translations.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/__init__.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/advanced/__init__.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/__init__.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/button.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/checkbox.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/container.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/datepicker.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/input.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/radiobutton.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/slider.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/basic/text.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/layout/__init__.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/layout/anchor.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/layout/flex.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/components/layout/grid.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/core/__init__.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/docs/__init__.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/exporters/__init__.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/exporters/web/OLD/html_css_js_OLD4.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/exporters/web/OLD/html_css_js_old.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/exporters/web/OLD/html_css_js_old2.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/exporters/web/__init__.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/scripts/__init__.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/scripts/dscript.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/templates/__init__.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/templates/examples/advanced/advanced_modal_demo.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/templates/examples/advanced/all_components_demo.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/templates/examples/advanced/dashboard.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/templates/examples/advanced/modern_web_app.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/templates/examples/basic/simple_form.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars/templates/html/__init__.py +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars_framework.egg-info/SOURCES.txt +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars_framework.egg-info/dependency_links.txt +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars_framework.egg-info/entry_points.txt +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars_framework.egg-info/requires.txt +0 -0
- {dars_framework-1.0.7 → dars_framework-1.0.8}/dars_framework.egg-info/top_level.txt +0 -0
- {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.
|
|
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
|
-
|
|
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
|
-
|
|
7
|
-
sections:
|
|
8
|
-
open_indices:
|
|
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
|
-
"""
|
|
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
|
-
"""
|
|
5
|
+
"""Component to display content in a modal."""
|
|
6
6
|
def __init__(
|
|
7
7
|
self,
|
|
8
8
|
children: Optional[List[Component]] = None,
|
|
@@ -3,11 +3,12 @@ from typing import List, Dict, Any, Optional
|
|
|
3
3
|
|
|
4
4
|
class Table(Component):
|
|
5
5
|
"""
|
|
6
|
-
|
|
7
|
-
columns:
|
|
8
|
-
data:
|
|
9
|
-
page_size:
|
|
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
|
-
|
|
7
|
-
tabs:
|
|
8
|
-
panels:
|
|
9
|
-
selected:
|
|
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, List
|
|
3
3
|
|
|
4
4
|
class Page(Component):
|
|
5
|
-
"""
|
|
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
|
-
|
|
7
|
-
value:
|
|
8
|
-
max_value:
|
|
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
|
-
"""
|
|
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
|
|
@@ -3,11 +3,12 @@ from typing import Optional
|
|
|
3
3
|
|
|
4
4
|
class Tooltip(Component):
|
|
5
5
|
"""
|
|
6
|
-
Tooltip:
|
|
7
|
-
text:
|
|
8
|
-
child:
|
|
9
|
-
position: top, right, bottom, left (
|
|
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
|