dars-framework 1.2.5__tar.gz → 1.2.6__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.2.5/dars_framework.egg-info → dars_framework-1.2.6}/PKG-INFO +1 -1
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/config.py +2 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/core/component.py +7 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/exporters/web/html_css_js.py +61 -3
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/version.py +2 -2
- {dars_framework-1.2.5 → dars_framework-1.2.6/dars_framework.egg-info}/PKG-INFO +1 -1
- {dars_framework-1.2.5 → dars_framework-1.2.6}/pyproject.toml +1 -1
- {dars_framework-1.2.5 → dars_framework-1.2.6}/LICENSE +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/MANIFEST.in +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/README.md +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/__init__.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/all.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/cli/__init__.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/cli/doctor/__init__.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/cli/doctor/detect.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/cli/doctor/doctor.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/cli/doctor/installers.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/cli/doctor/persist.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/cli/doctor/preflight.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/cli/doctor/ui.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/cli/hot_reload.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/cli/main.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/cli/preview.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/cli/translations.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/components/__init__.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/components/advanced/__init__.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/components/advanced/accordion.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/components/advanced/card.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/components/advanced/modal.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/components/advanced/navbar.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/components/advanced/table.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/components/advanced/tabs.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/components/basic/__init__.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/components/basic/button.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/components/basic/checkbox.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/components/basic/container.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/components/basic/datepicker.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/components/basic/image.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/components/basic/input.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/components/basic/link.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/components/basic/markdown.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/components/basic/page.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/components/basic/progressbar.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/components/basic/radiobutton.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/components/basic/select.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/components/basic/slider.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/components/basic/spinner.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/components/basic/text.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/components/basic/textarea.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/components/basic/tooltip.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/components/layout/__init__.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/components/layout/anchor.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/components/layout/flex.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/components/layout/grid.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/core/__init__.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/core/app.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/core/events.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/core/js_bridge.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/core/properties.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/core/state.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/dars_tests/apps_test/health_check.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/dars_tests/run_tests.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/dars_tests/tests/test_advanced_components.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/dars_tests/tests/test_basic_components.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/dars_tests/tests/test_core_and_cli.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/dars_tests/tests/test_layout_components.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/dars_tests/tests/test_version_check.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/docs/__init__.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/docs/app.md +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/docs/cli.md +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/docs/components.md +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/docs/custom_components.md +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/docs/events.md +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/docs/exporters.md +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/docs/getting_started.md +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/docs/index.md +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/docs/scripts.md +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/docs/state_management.md +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/exporters/__init__.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/exporters/base.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/exporters/web/OLD/html_css_js_OLD4.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/exporters/web/OLD/html_css_js_old.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/exporters/web/OLD/html_css_js_old2.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/exporters/web/__init__.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/exporters/web/vdom.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/js_lib.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/scripts/__init__.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/scripts/dscript.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/scripts/script.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/security.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/__init__.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/__pycache__/__init__.cpython-311.pyc +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/examples/README.md +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/examples/__pycache__/dynamic_event_demo.cpython-311.pyc +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/examples/advanced/Modal_Demo/advanced_modal_demo.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/examples/advanced/SimpleDashboard/dashboard.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/examples/advanced/SimpleModermWeb/modern_web_app.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/examples/advanced/VariousComponents/all_components_demo.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/examples/advanced/__init__.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/examples/advanced/dState/state_mods_demo.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/examples/basic/Forms/form_components.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/examples/basic/Forms/simple_form.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/examples/basic/HelloWorld/hello_world.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/examples/basic/Layouts/flex_layout_responsive.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/examples/basic/Layouts/grid_layout_responsive.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/examples/basic/Layouts/layout_multipage_demo.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/examples/basic/Multipage/multipage_example.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/examples/basic/PWA/icon-192x192.png +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/examples/basic/PWA/icon-512x512.png +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/examples/basic/PWA/pwa_custom_icons.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/examples/basic/__init__.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/examples/demo/__pycache__/complete_app.cpython-311.pyc +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/examples/demo/complete_app.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/examples/markdown/MarkdownTemplate/README.md +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/examples/markdown/MarkdownTemplate/markdown_template.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/examples/markdown/MarkdownTemplate/other_docs.md +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/examples/markdown/__init__.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/html/__init__.py +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars_framework.egg-info/SOURCES.txt +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars_framework.egg-info/dependency_links.txt +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars_framework.egg-info/entry_points.txt +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars_framework.egg-info/requires.txt +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/dars_framework.egg-info/top_level.txt +0 -0
- {dars_framework-1.2.5 → dars_framework-1.2.6}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dars_framework
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.6
|
|
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 <ztadevs@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -250,6 +250,13 @@ class Component(ABC):
|
|
|
250
250
|
|
|
251
251
|
def mod(self, **attrs):
|
|
252
252
|
return DeferredAttr(self, attrs)
|
|
253
|
+
|
|
254
|
+
def render_children(self, exporter: 'Exporter') -> str:
|
|
255
|
+
"""Render all children of the component using the exporter."""
|
|
256
|
+
children_html = ""
|
|
257
|
+
for child in self.children:
|
|
258
|
+
children_html += exporter.render_component(child)
|
|
259
|
+
return children_html
|
|
253
260
|
|
|
254
261
|
|
|
255
262
|
class DeferredAttr:
|
|
@@ -2615,7 +2615,12 @@ body {
|
|
|
2615
2615
|
# Convert markdown to HTML
|
|
2616
2616
|
html_content = markdown2.markdown(
|
|
2617
2617
|
markdown.content,
|
|
2618
|
-
extras=[
|
|
2618
|
+
extras=[
|
|
2619
|
+
"fenced-code-blocks",
|
|
2620
|
+
"code-friendly",
|
|
2621
|
+
"tables",
|
|
2622
|
+
"header-ids",
|
|
2623
|
+
],
|
|
2619
2624
|
)
|
|
2620
2625
|
except ImportError:
|
|
2621
2626
|
# Fallback to basic conversion if markdown2 is not available
|
|
@@ -2630,8 +2635,61 @@ body {
|
|
|
2630
2635
|
|
|
2631
2636
|
class_attr = f'class="{class_name.strip()}"'
|
|
2632
2637
|
style_attr = f'style="{self.render_styles(markdown.style)}"' if markdown.style else ""
|
|
2633
|
-
|
|
2634
|
-
|
|
2638
|
+
|
|
2639
|
+
# Normalize code block classes for client highlighters (e.g., Prism)
|
|
2640
|
+
# markdown2 may emit <code class="lang-python">; convert to language-python
|
|
2641
|
+
import re
|
|
2642
|
+
html_content = re.sub(r'<code class="lang-([a-zA-Z0-9_+-]+)">', r'<code class="language-\1">', html_content)
|
|
2643
|
+
# If a <pre><code> lacks a class, add language-none for Prism to process
|
|
2644
|
+
html_content = re.sub(r'<pre([^>]*)>\s*<code(?![^>]*class=)([^>]*)>', r'<pre\1>\n<code class="language-none"\2>', html_content)
|
|
2645
|
+
# Ensure multiline code blocks render correctly even without extra CSS and allow absolute-positioned copy button
|
|
2646
|
+
html_content = html_content.replace(
|
|
2647
|
+
'<pre><code',
|
|
2648
|
+
'<pre style="white-space: pre; overflow:auto; position: relative;"><code'
|
|
2649
|
+
)
|
|
2650
|
+
|
|
2651
|
+
# Auto-inject highlight.js (CSS + JS + init) once per page if enabled in config and not injected
|
|
2652
|
+
assets = ""
|
|
2653
|
+
cfg_hl = True
|
|
2654
|
+
hl_theme = "auto"
|
|
2655
|
+
try:
|
|
2656
|
+
# Try to read config for markdownHighlight; default True if missing/errors
|
|
2657
|
+
app_source = getattr(getattr(self, 'app', None), '__source__', None)
|
|
2658
|
+
project_root = os.getcwd() if not app_source else os.path.dirname(os.path.abspath(app_source))
|
|
2659
|
+
from dars.config import load_config
|
|
2660
|
+
cfg, _ = load_config(project_root)
|
|
2661
|
+
cfg_hl = bool(cfg.get('markdownHighlight', True))
|
|
2662
|
+
hl_theme = str(cfg.get('markdownHighlightTheme', 'auto')).lower()
|
|
2663
|
+
except Exception:
|
|
2664
|
+
cfg_hl = True
|
|
2665
|
+
if cfg_hl and (not hasattr(self, "_hljs_injected") or not getattr(self, "_hljs_injected")):
|
|
2666
|
+
# Prism.js theme CSS selection
|
|
2667
|
+
css_links = ''
|
|
2668
|
+
if hl_theme == 'dark':
|
|
2669
|
+
css_links = '<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism-okaidia.min.css">\n'
|
|
2670
|
+
elif hl_theme == 'light':
|
|
2671
|
+
css_links = '<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism.min.css">\n'
|
|
2672
|
+
else: # auto
|
|
2673
|
+
css_links = (
|
|
2674
|
+
'<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism.min.css" media="(prefers-color-scheme: light)">\n'
|
|
2675
|
+
'<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism-okaidia.min.css" media="(prefers-color-scheme: dark)">\n'
|
|
2676
|
+
)
|
|
2677
|
+
parts = []
|
|
2678
|
+
parts.append(css_links)
|
|
2679
|
+
parts.append('<style>.dars-code-copy{position:absolute;top:8px;right:8px;background:rgba(0,0,0,0.5);color:#fff;border:none;border-radius:6px;padding:4px 8px;font-size:12px;cursor:pointer;opacity:.0;transition:opacity .2s ease;}pre:hover .dars-code-copy{opacity:.9}.dars-code-copy.copied{background:#16a34a}</style>\n')
|
|
2680
|
+
parts.append('<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"></script>\n')
|
|
2681
|
+
parts.append('<script>window.Prism=window.Prism||{};Prism.plugins=Prism.plugins||{};Prism.plugins.autoloader=Prism.plugins.autoloader||{};Prism.plugins.autoloader.languages_path="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/";</script>\n')
|
|
2682
|
+
parts.append('<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/autoloader/prism-autoloader.min.js"></script>\n')
|
|
2683
|
+
parts.append('<script>(function(){function addCopyButtons(){document.querySelectorAll("pre code").forEach(function(code){var pre=code.parentElement;if(!pre||pre.querySelector(".dars-code-copy"))return;var btn=document.createElement("button");btn.className="dars-code-copy";btn.type="button";btn.textContent="Copy";btn.addEventListener("click",async function(e){e.stopPropagation();try{await navigator.clipboard.writeText(code.innerText);btn.textContent="Copied";btn.classList.add("copied");setTimeout(function(){btn.textContent="Copy";btn.classList.remove("copied")},1200)}catch(err){btn.textContent="Error";setTimeout(function(){btn.textContent="Copy"},1200)}});pre.appendChild(btn);});}function guessLang(text){var t=text.trim();if(/^{[\\s\\S]*}$/.test(t)||/^\\[/.test(t))return "json";if(/^(pip |python |python3 |dars |#|\\$ )/m.test(t))return "bash";if(/\\b(def |class |import |from |print\\(|self\\b)/.test(t))return "python";return null;}function stripPygments(code){if(code && code.innerHTML && code.innerHTML.indexOf("<span")!==-1){code.textContent = code.innerText;}}function prepareAndHighlight(){document.querySelectorAll("pre code").forEach(function(code){stripPygments(code);if(!code.className||code.className.indexOf("language-")===-1){var g=guessLang(code.innerText);code.classList.add("language-"+(g||"none"));}if(window.Prism&&Prism.highlightElement){Prism.highlightElement(code);}});}document.addEventListener("DOMContentLoaded",function(){try{prepareAndHighlight();}catch(e){};try{addCopyButtons()}catch(e){}});})();</script>')
|
|
2684
|
+
assets = ''.join(parts)
|
|
2685
|
+
setattr(self, "_hljs_injected", True)
|
|
2686
|
+
|
|
2687
|
+
# Add stable theme class to container for easier overriding if needed
|
|
2688
|
+
theme_tag = hl_theme if hl_theme in ('light','dark') else 'auto'
|
|
2689
|
+
class_name = f"{class_name} dars-code-theme-{theme_tag}"
|
|
2690
|
+
class_attr = f'class="{class_name.strip()}"'
|
|
2691
|
+
|
|
2692
|
+
return f'{assets}<div id="{component_id}" {class_attr} {style_attr}>{html_content}</div>'
|
|
2635
2693
|
|
|
2636
2694
|
def _basic_markdown_to_html(self, markdown_text: str) -> str:
|
|
2637
2695
|
"""Basic markdown to HTML conversion as fallback"""
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
__version__ = "1.2.
|
|
2
|
-
__release_url__ = "https://github.com/ZtaMDev/Dars-Framework/releases/tag/1.2.
|
|
1
|
+
__version__ = "1.2.6"
|
|
2
|
+
__release_url__ = "https://github.com/ZtaMDev/Dars-Framework/releases/tag/1.2.6"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dars_framework
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.6
|
|
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 <ztadevs@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "dars_framework"
|
|
7
|
-
version = "1.2.
|
|
7
|
+
version = "1.2.6"
|
|
8
8
|
description = "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."
|
|
9
9
|
dependencies = [ "rich==14.2.0", "bs4==0.0.2", "uvicorn==0.35.0", "fastapi==0.116.1", "markdown2==2.5.4", "requests==2.32.5", "rjsmin==1.2.5",]
|
|
10
10
|
license = "MIT"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dars_framework-1.2.5 → dars_framework-1.2.6}/dars/dars_tests/tests/test_advanced_components.py
RENAMED
|
File without changes
|
{dars_framework-1.2.5 → dars_framework-1.2.6}/dars/dars_tests/tests/test_basic_components.py
RENAMED
|
File without changes
|
|
File without changes
|
{dars_framework-1.2.5 → dars_framework-1.2.6}/dars/dars_tests/tests/test_layout_components.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/__pycache__/__init__.cpython-311.pyc
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/examples/basic/Forms/form_components.py
RENAMED
|
File without changes
|
{dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/examples/basic/Forms/simple_form.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/examples/basic/PWA/icon-192x192.png
RENAMED
|
File without changes
|
{dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/examples/basic/PWA/icon-512x512.png
RENAMED
|
File without changes
|
{dars_framework-1.2.5 → dars_framework-1.2.6}/dars/templates/examples/basic/PWA/pwa_custom_icons.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|