Coverage for src/lexigram/admin/theme/tailwind.py: 100%

4 statements  

« prev     ^ index     » next       coverage.py v7.15.4, created at 2026-08-21 14:26 +0800

1from __future__ import annotations 

2 

3"""Shared Tailwind CSS runtime scripts for admin layouts. 

4 

5Bootstrap scripts for the ``dark`` class on ``<html>`` before Alpine.js 

6loads. The Tailwind utility stylesheet itself is prebuilt statically 

7(see ``tailwind/build.sh``) and referenced via ``admin/static/css/tailwind.css``. 

8""" 

9 

10DARK_BOOTSTRAP_SCRIPT: str = """<script> 

11(function () { 

12 var stored = localStorage.getItem('darkMode'); 

13 var dark = stored !== null ? stored === 'true' : window.matchMedia('(prefers-color-scheme: dark)').matches; 

14 if (dark) document.documentElement.classList.add('dark'); 

15})(); 

16</script>""" 

17 

18THEME_BRIDGE_SCRIPT: str = """<script> 

19window.toggleTheme = function () { 

20 var dark = !document.documentElement.classList.contains('dark'); 

21 document.documentElement.classList.toggle('dark', dark); 

22 localStorage.setItem('darkMode', String(dark)); 

23 window.dispatchEvent(new CustomEvent('darkmode-change', { detail: { dark: dark } })); 

24}; 

25</script>"""