dars-framework 1.2.0__tar.gz → 1.2.1__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 (125) hide show
  1. {dars_framework-1.2.0/dars_framework.egg-info → dars_framework-1.2.1}/PKG-INFO +1 -1
  2. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/exporters/web/html_css_js.py +52 -21
  3. {dars_framework-1.2.0 → dars_framework-1.2.1/dars_framework.egg-info}/PKG-INFO +1 -1
  4. {dars_framework-1.2.0 → dars_framework-1.2.1}/pyproject.toml +1 -1
  5. {dars_framework-1.2.0 → dars_framework-1.2.1}/LICENSE +0 -0
  6. {dars_framework-1.2.0 → dars_framework-1.2.1}/MANIFEST.in +0 -0
  7. {dars_framework-1.2.0 → dars_framework-1.2.1}/README.md +0 -0
  8. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/__init__.py +0 -0
  9. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/all.py +0 -0
  10. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/cli/__init__.py +0 -0
  11. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/cli/hot_reload.py +0 -0
  12. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/cli/main.py +0 -0
  13. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/cli/preview.py +0 -0
  14. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/cli/translations.py +0 -0
  15. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/components/__init__.py +0 -0
  16. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/components/advanced/__init__.py +0 -0
  17. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/components/advanced/accordion.py +0 -0
  18. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/components/advanced/card.py +0 -0
  19. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/components/advanced/modal.py +0 -0
  20. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/components/advanced/navbar.py +0 -0
  21. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/components/advanced/table.py +0 -0
  22. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/components/advanced/tabs.py +0 -0
  23. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/components/basic/__init__.py +0 -0
  24. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/components/basic/button.py +0 -0
  25. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/components/basic/checkbox.py +0 -0
  26. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/components/basic/container.py +0 -0
  27. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/components/basic/datepicker.py +0 -0
  28. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/components/basic/image.py +0 -0
  29. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/components/basic/input.py +0 -0
  30. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/components/basic/link.py +0 -0
  31. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/components/basic/markdown.py +0 -0
  32. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/components/basic/page.py +0 -0
  33. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/components/basic/progressbar.py +0 -0
  34. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/components/basic/radiobutton.py +0 -0
  35. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/components/basic/select.py +0 -0
  36. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/components/basic/slider.py +0 -0
  37. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/components/basic/spinner.py +0 -0
  38. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/components/basic/text.py +0 -0
  39. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/components/basic/textarea.py +0 -0
  40. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/components/basic/tooltip.py +0 -0
  41. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/components/layout/__init__.py +0 -0
  42. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/components/layout/anchor.py +0 -0
  43. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/components/layout/flex.py +0 -0
  44. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/components/layout/grid.py +0 -0
  45. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/config.py +0 -0
  46. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/core/__init__.py +0 -0
  47. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/core/app.py +0 -0
  48. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/core/component.py +0 -0
  49. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/core/events.py +0 -0
  50. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/core/properties.py +0 -0
  51. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/core/state.py +0 -0
  52. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/dars_tests/apps_test/health_check.py +0 -0
  53. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/dars_tests/run_tests.py +0 -0
  54. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/dars_tests/tests/test_advanced_components.py +0 -0
  55. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/dars_tests/tests/test_basic_components.py +0 -0
  56. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/dars_tests/tests/test_core_and_cli.py +0 -0
  57. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/dars_tests/tests/test_layout_components.py +0 -0
  58. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/dars_tests/tests/test_version_check.py +0 -0
  59. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/docs/__init__.py +0 -0
  60. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/docs/app.md +0 -0
  61. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/docs/cli.md +0 -0
  62. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/docs/components.md +0 -0
  63. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/docs/custom_components.md +0 -0
  64. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/docs/events.md +0 -0
  65. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/docs/exporters.md +0 -0
  66. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/docs/getting_started.md +0 -0
  67. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/docs/index.md +0 -0
  68. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/docs/scripts.md +0 -0
  69. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/docs/state_management.md +0 -0
  70. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/exporters/__init__.py +0 -0
  71. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/exporters/base.py +0 -0
  72. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/exporters/web/OLD/html_css_js_OLD4.py +0 -0
  73. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/exporters/web/OLD/html_css_js_old.py +0 -0
  74. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/exporters/web/OLD/html_css_js_old2.py +0 -0
  75. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/exporters/web/__init__.py +0 -0
  76. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/exporters/web/vdom.py +0 -0
  77. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/js_lib.py +0 -0
  78. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/scripts/__init__.py +0 -0
  79. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/scripts/dscript.py +0 -0
  80. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/scripts/script.py +0 -0
  81. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/security.py +0 -0
  82. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/__init__.py +0 -0
  83. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/__pycache__/__init__.cpython-311.pyc +0 -0
  84. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/README.md +0 -0
  85. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/__pycache__/dynamic_event_demo.cpython-311.pyc +0 -0
  86. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/advanced/Modal_Demo/advanced_modal_demo.py +0 -0
  87. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/advanced/SimpleDashboard/dashboard.py +0 -0
  88. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/advanced/SimpleModermWeb/modern_web_app.py +0 -0
  89. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/advanced/VariousComponents/all_components_demo.py +0 -0
  90. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/advanced/__init__.py +0 -0
  91. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/advanced/dState/dars_preview/index.html +0 -0
  92. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/advanced/dState/dars_preview/lib/dars.min.js +0 -0
  93. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/advanced/dState/dars_preview/runtime_css.css +0 -0
  94. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/advanced/dState/dars_preview/runtime_dars.js +0 -0
  95. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/advanced/dState/dars_preview/script.js +0 -0
  96. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/advanced/dState/dars_preview/snapshot.json +0 -0
  97. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/advanced/dState/dars_preview/styles.css +0 -0
  98. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/advanced/dState/dars_preview/vdom_tree.js +0 -0
  99. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/advanced/dState/dars_preview/version.txt +0 -0
  100. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/advanced/dState/state_mods_demo.py +0 -0
  101. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/basic/Forms/form_components.py +0 -0
  102. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/basic/Forms/simple_form.py +0 -0
  103. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/basic/HelloWorld/hello_world.py +0 -0
  104. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/basic/Layouts/flex_layout_responsive.py +0 -0
  105. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/basic/Layouts/grid_layout_responsive.py +0 -0
  106. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/basic/Layouts/layout_multipage_demo.py +0 -0
  107. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/basic/Multipage/multipage_example.py +0 -0
  108. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/basic/PWA/icon-192x192.png +0 -0
  109. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/basic/PWA/icon-512x512.png +0 -0
  110. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/basic/PWA/pwa_custom_icons.py +0 -0
  111. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/basic/__init__.py +0 -0
  112. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/demo/__pycache__/complete_app.cpython-311.pyc +0 -0
  113. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/demo/complete_app.py +0 -0
  114. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/markdown/MarkdownTemplate/README.md +0 -0
  115. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/markdown/MarkdownTemplate/markdown_template.py +0 -0
  116. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/markdown/MarkdownTemplate/other_docs.md +0 -0
  117. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/examples/markdown/__init__.py +0 -0
  118. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/templates/html/__init__.py +0 -0
  119. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars/version.py +0 -0
  120. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars_framework.egg-info/SOURCES.txt +0 -0
  121. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars_framework.egg-info/dependency_links.txt +0 -0
  122. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars_framework.egg-info/entry_points.txt +0 -0
  123. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars_framework.egg-info/requires.txt +0 -0
  124. {dars_framework-1.2.0 → dars_framework-1.2.1}/dars_framework.egg-info/top_level.txt +0 -0
  125. {dars_framework-1.2.0 → dars_framework-1.2.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dars_framework
3
- Version: 1.2.0
3
+ Version: 1.2.1
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
@@ -633,7 +633,7 @@ self.addEventListener('fetch', event => {
633
633
  # Incluir dars.min.js (ESM) antes de runtime/script
634
634
  dars_lib_tag = '<script type="module" src="lib/dars.min.js" defer data-dars-lib></script>'
635
635
 
636
- # State bootstrap: emit JSON + module to register states if present
636
+ # State bootstrap: emit JSON (+ obfuscation in bundle) + module to register states
637
637
  bootstrap_json_tag = ""
638
638
  bootstrap_init_tag = ""
639
639
  try:
@@ -641,26 +641,57 @@ self.addEventListener('fetch', event => {
641
641
  if STATE_BOOTSTRAP:
642
642
  import json as _json
643
643
  bootstrap_json = _json.dumps(STATE_BOOTSTRAP, ensure_ascii=False)
644
- bootstrap_json_tag = f'<script type="application/json" id="dars-state-bootstrap">{bootstrap_json}</script>'
645
- # Module that registers the states using ESM if available, else fallback to global
646
- bootstrap_init_tag = (
647
- "<script type=\"module\">\n"
648
- "(async () => {\n"
649
- " if (window.__DARS_STATE_BOOTSTRAPPED__) return;\n"
650
- " const el = document.getElementById('dars-state-bootstrap');\n"
651
- " if (!el) { window.__DARS_STATE_BOOTSTRAPPED__ = true; return; }\n"
652
- " const arr = JSON.parse(el.textContent||'[]');\n"
653
- " try {\n"
654
- " const m = await import('./lib/dars.min.js');\n"
655
- " const reg = m.registerState || (m.default && m.default.registerState);\n"
656
- " if (typeof reg === 'function') { arr.forEach(s => reg(s.name, s)); }\n"
657
- " } catch (e) {\n"
658
- " const D = window.Dars; if (D && typeof D.registerState==='function') { arr.forEach(s => D.registerState(s.name, s)); }\n"
659
- " }\n"
660
- " window.__DARS_STATE_BOOTSTRAPPED__ = true;\n"
661
- "})();\n"
662
- "</script>"
663
- )
644
+ if bundle:
645
+ # Obfuscate: base64-encode the bootstrap JSON
646
+ import base64 as _b64
647
+ _b64data = _b64.b64encode(bootstrap_json.encode('utf-8')).decode('ascii')
648
+ bootstrap_json_tag = f'<script type="application/octet-stream" id="dars-state-bootstrap-b64">{_b64data}</script>'
649
+ bootstrap_init_tag = (
650
+ "<script type=\"module\">\n"
651
+ "(async () => {\n"
652
+ " if (window.__DARS_STATE_BOOTSTRAPPED__) return;\n"
653
+ " const el = document.getElementById('dars-state-bootstrap-b64');\n"
654
+ " if (!el) { window.__DARS_STATE_BOOTSTRAPPED__ = true; return; }\n"
655
+ " let arr = [];\n"
656
+ " try {\n"
657
+ " const b64 = el.textContent || '';\n"
658
+ " let json = '';\n"
659
+ " if (typeof atob === 'function') json = atob(b64);\n"
660
+ " else if (typeof Buffer !== 'undefined') json = Buffer.from(b64, 'base64').toString('utf8');\n"
661
+ " arr = JSON.parse(json||'[]');\n"
662
+ " } catch(_) { arr = []; }\n"
663
+ " try {\n"
664
+ " const m = await import('./lib/dars.min.js');\n"
665
+ " const reg = m.registerState || (m.default && m.default.registerState);\n"
666
+ " if (typeof reg === 'function') { arr.forEach(s => reg(s.name, s)); }\n"
667
+ " } catch (e) {\n"
668
+ " const D = window.Dars; if (D && typeof D.registerState==='function') { arr.forEach(s => D.registerState(s.name, s)); }\n"
669
+ " }\n"
670
+ " window.__DARS_STATE_BOOTSTRAPPED__ = true;\n"
671
+ "})();\n"
672
+ "</script>"
673
+ )
674
+ else:
675
+ # Dev: keep readable JSON
676
+ bootstrap_json_tag = f'<script type="application/json" id="dars-state-bootstrap">{bootstrap_json}</script>'
677
+ bootstrap_init_tag = (
678
+ "<script type=\"module\">\n"
679
+ "(async () => {\n"
680
+ " if (window.__DARS_STATE_BOOTSTRAPPED__) return;\n"
681
+ " const el = document.getElementById('dars-state-bootstrap');\n"
682
+ " if (!el) { window.__DARS_STATE_BOOTSTRAPPED__ = true; return; }\n"
683
+ " const arr = JSON.parse(el.textContent||'[]');\n"
684
+ " try {\n"
685
+ " const m = await import('./lib/dars.min.js');\n"
686
+ " const reg = m.registerState || (m.default && m.default.registerState);\n"
687
+ " if (typeof reg === 'function') { arr.forEach(s => reg(s.name, s)); }\n"
688
+ " } catch (e) {\n"
689
+ " const D = window.Dars; if (D && typeof D.registerState==='function') { arr.forEach(s => D.registerState(s.name, s)); }\n"
690
+ " }\n"
691
+ " window.__DARS_STATE_BOOTSTRAPPED__ = true;\n"
692
+ "})();\n"
693
+ "</script>"
694
+ )
664
695
  except Exception:
665
696
  pass
666
697
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dars_framework
3
- Version: 1.2.0
3
+ Version: 1.2.1
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
@@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta"
7
7
 
8
8
  [project]
9
9
  name = "dars_framework"
10
- version = "1.2.0"
10
+ version = "1.2.1"
11
11
  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."
12
12
  dependencies = [ "rich==14.0.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",]
13
13
  [[project.authors]]
File without changes
File without changes
File without changes