PyWebWinUI3 1.2.4__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.
Files changed (134) hide show
  1. {pywebwinui3-1.2.4/PyWebWinUI3.egg-info → pywebwinui3-1.2.6}/PKG-INFO +1 -1
  2. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6/PyWebWinUI3.egg-info}/PKG-INFO +1 -1
  3. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/PyWebWinUI3.egg-info/SOURCES.txt +13 -13
  4. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/__init__.py +1 -1
  5. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/core.py +130 -148
  6. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/event.py +4 -0
  7. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/util.py +3 -1
  8. pywebwinui3-1.2.4/pywebwinui3/web/_app/immutable/chunks/DF1x2LYX.js → pywebwinui3-1.2.6/pywebwinui3/web/_app/immutable/chunks/BQhJK30C.js +1 -1
  9. pywebwinui3-1.2.6/pywebwinui3/web/_app/immutable/chunks/CUVCm1Gs.js +1 -0
  10. pywebwinui3-1.2.4/pywebwinui3/web/_app/immutable/chunks/D94BNvJJ.js → pywebwinui3-1.2.6/pywebwinui3/web/_app/immutable/chunks/Cm7LUZmC.js +1 -1
  11. pywebwinui3-1.2.4/pywebwinui3/web/_app/immutable/chunks/6pQH9Hkv.js → pywebwinui3-1.2.6/pywebwinui3/web/_app/immutable/chunks/DenSxjN0.js +1 -1
  12. pywebwinui3-1.2.4/pywebwinui3/web/_app/immutable/chunks/CGGCsFu4.js → pywebwinui3-1.2.6/pywebwinui3/web/_app/immutable/chunks/DoXe6v-Z.js +1 -1
  13. pywebwinui3-1.2.4/pywebwinui3/web/_app/immutable/chunks/B-XLOWlt.js → pywebwinui3-1.2.6/pywebwinui3/web/_app/immutable/chunks/GYDIE8Th.js +1 -1
  14. pywebwinui3-1.2.4/pywebwinui3/web/_app/immutable/chunks/CW0wlPPy.js → pywebwinui3-1.2.6/pywebwinui3/web/_app/immutable/chunks/H3JtIqnJ.js +1 -1
  15. pywebwinui3-1.2.4/pywebwinui3/web/_app/immutable/chunks/CZuXpvpo.js → pywebwinui3-1.2.6/pywebwinui3/web/_app/immutable/chunks/IoyDzpMI.js +1 -1
  16. pywebwinui3-1.2.4/pywebwinui3/web/_app/immutable/entry/app.B-Q6XOuJ.js → pywebwinui3-1.2.6/pywebwinui3/web/_app/immutable/entry/app.Cls2e-Vs.js +2 -2
  17. pywebwinui3-1.2.6/pywebwinui3/web/_app/immutable/entry/start.D4vOV_ze.js +1 -0
  18. pywebwinui3-1.2.4/pywebwinui3/web/_app/immutable/nodes/0.C49PHrK2.js → pywebwinui3-1.2.6/pywebwinui3/web/_app/immutable/nodes/0.DieTLBBL.js +1 -1
  19. pywebwinui3-1.2.4/pywebwinui3/web/_app/immutable/nodes/1.a96iIGzo.js → pywebwinui3-1.2.6/pywebwinui3/web/_app/immutable/nodes/1.DCNy7Bof.js +1 -1
  20. pywebwinui3-1.2.6/pywebwinui3/web/_app/immutable/nodes/2.D_z1tXgZ.js +142 -0
  21. pywebwinui3-1.2.6/pywebwinui3/web/_app/version.json +1 -0
  22. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/index.html +15 -15
  23. pywebwinui3-1.2.4/pywebwinui3/web/_app/immutable/chunks/CZPLFskb.js +0 -1
  24. pywebwinui3-1.2.4/pywebwinui3/web/_app/immutable/entry/start.C1-i6FUr.js +0 -1
  25. pywebwinui3-1.2.4/pywebwinui3/web/_app/immutable/nodes/2.Ofs4dh3G.js +0 -142
  26. pywebwinui3-1.2.4/pywebwinui3/web/_app/version.json +0 -1
  27. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/LICENSE +0 -0
  28. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/MANIFEST.in +0 -0
  29. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/NOTICE +0 -0
  30. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/PyWebWinUI3.egg-info/dependency_links.txt +0 -0
  31. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/PyWebWinUI3.egg-info/requires.txt +0 -0
  32. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/PyWebWinUI3.egg-info/top_level.txt +0 -0
  33. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/README.md +0 -0
  34. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pyproject.toml +0 -0
  35. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/type.py +0 -0
  36. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.0.woff2 +0 -0
  37. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.1.woff2 +0 -0
  38. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.10.woff2 +0 -0
  39. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.11.woff2 +0 -0
  40. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.12.woff2 +0 -0
  41. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.13.woff2 +0 -0
  42. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.14.woff2 +0 -0
  43. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.15.woff2 +0 -0
  44. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.16.woff2 +0 -0
  45. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.17.woff2 +0 -0
  46. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.18.woff2 +0 -0
  47. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.19.woff2 +0 -0
  48. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.2.woff2 +0 -0
  49. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.20.woff2 +0 -0
  50. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.21.woff2 +0 -0
  51. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.22.woff2 +0 -0
  52. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.23.woff2 +0 -0
  53. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.24.woff2 +0 -0
  54. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.25.woff2 +0 -0
  55. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.26.woff2 +0 -0
  56. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.27.woff2 +0 -0
  57. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.28.woff2 +0 -0
  58. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.29.woff2 +0 -0
  59. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.3.woff2 +0 -0
  60. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.30.woff2 +0 -0
  61. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.31.woff2 +0 -0
  62. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.32.woff2 +0 -0
  63. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.33.woff2 +0 -0
  64. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.34.woff2 +0 -0
  65. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.35.woff2 +0 -0
  66. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.36.woff2 +0 -0
  67. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.37.woff2 +0 -0
  68. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.38.woff2 +0 -0
  69. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.39.woff2 +0 -0
  70. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.4.woff2 +0 -0
  71. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.40.woff2 +0 -0
  72. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.41.woff2 +0 -0
  73. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.42.woff2 +0 -0
  74. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.43.woff2 +0 -0
  75. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.44.woff2 +0 -0
  76. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.45.woff2 +0 -0
  77. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.46.woff2 +0 -0
  78. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.47.woff2 +0 -0
  79. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.48.woff2 +0 -0
  80. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.49.woff2 +0 -0
  81. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.5.woff2 +0 -0
  82. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.50.woff2 +0 -0
  83. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.51.woff2 +0 -0
  84. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.52.woff2 +0 -0
  85. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.53.woff2 +0 -0
  86. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.54.woff2 +0 -0
  87. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.55.woff2 +0 -0
  88. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.56.woff2 +0 -0
  89. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.57.woff2 +0 -0
  90. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.58.woff2 +0 -0
  91. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.59.woff2 +0 -0
  92. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.6.woff2 +0 -0
  93. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.60.woff2 +0 -0
  94. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.61.woff2 +0 -0
  95. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.62.woff2 +0 -0
  96. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.63.woff2 +0 -0
  97. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.64.woff2 +0 -0
  98. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.65.woff2 +0 -0
  99. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.66.woff2 +0 -0
  100. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.67.woff2 +0 -0
  101. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.68.woff2 +0 -0
  102. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.69.woff2 +0 -0
  103. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.7.woff2 +0 -0
  104. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.70.woff2 +0 -0
  105. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.71.woff2 +0 -0
  106. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.72.woff2 +0 -0
  107. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.73.woff2 +0 -0
  108. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.74.woff2 +0 -0
  109. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.75.woff2 +0 -0
  110. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.76.woff2 +0 -0
  111. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.77.woff2 +0 -0
  112. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.78.woff2 +0 -0
  113. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.79.woff2 +0 -0
  114. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.8.woff2 +0 -0
  115. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.80.woff2 +0 -0
  116. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.81.woff2 +0 -0
  117. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.82.woff2 +0 -0
  118. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.83.woff2 +0 -0
  119. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.84.woff2 +0 -0
  120. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.85.woff2 +0 -0
  121. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.86.woff2 +0 -0
  122. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.87.woff2 +0 -0
  123. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.88.woff2 +0 -0
  124. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.89.woff2 +0 -0
  125. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.9.woff2 +0 -0
  126. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.90.woff2 +0 -0
  127. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/PretendardVariable.subset.91.woff2 +0 -0
  128. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/Pretendard/Variable-dynamic-subset.min.css +0 -0
  129. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/SegoeFluentIcons.ttf +0 -0
  130. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/_app/env.js +0 -0
  131. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/pywebwinui3/web/_app/immutable/assets/2.YxEoeVwz.css +0 -0
  132. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/requirements.txt +0 -0
  133. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/setup.cfg +0 -0
  134. {pywebwinui3-1.2.4 → pywebwinui3-1.2.6}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyWebWinUI3
3
- Version: 1.2.4
3
+ Version: 1.2.6
4
4
  Summary: Create modern WinUI3-style desktop UIs in Python using pywebview and a Svelte frontend.
5
5
  Home-page: https://github.com/Haruna5718/PyWebWinUI3
6
6
  Author: Haruna5718
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyWebWinUI3
3
- Version: 1.2.4
3
+ Version: 1.2.6
4
4
  Summary: Create modern WinUI3-style desktop UIs in Python using pywebview and a Svelte frontend.
5
5
  Home-page: https://github.com/Haruna5718/PyWebWinUI3
6
6
  Author: Haruna5718
@@ -113,16 +113,16 @@ pywebwinui3/web/Pretendard/Variable-dynamic-subset.min.css
113
113
  pywebwinui3/web/_app/env.js
114
114
  pywebwinui3/web/_app/version.json
115
115
  pywebwinui3/web/_app/immutable/assets/2.YxEoeVwz.css
116
- pywebwinui3/web/_app/immutable/chunks/6pQH9Hkv.js
117
- pywebwinui3/web/_app/immutable/chunks/B-XLOWlt.js
118
- pywebwinui3/web/_app/immutable/chunks/CGGCsFu4.js
119
- pywebwinui3/web/_app/immutable/chunks/CW0wlPPy.js
120
- pywebwinui3/web/_app/immutable/chunks/CZPLFskb.js
121
- pywebwinui3/web/_app/immutable/chunks/CZuXpvpo.js
122
- pywebwinui3/web/_app/immutable/chunks/D94BNvJJ.js
123
- pywebwinui3/web/_app/immutable/chunks/DF1x2LYX.js
124
- pywebwinui3/web/_app/immutable/entry/app.B-Q6XOuJ.js
125
- pywebwinui3/web/_app/immutable/entry/start.C1-i6FUr.js
126
- pywebwinui3/web/_app/immutable/nodes/0.C49PHrK2.js
127
- pywebwinui3/web/_app/immutable/nodes/1.a96iIGzo.js
128
- pywebwinui3/web/_app/immutable/nodes/2.Ofs4dh3G.js
116
+ pywebwinui3/web/_app/immutable/chunks/BQhJK30C.js
117
+ pywebwinui3/web/_app/immutable/chunks/CUVCm1Gs.js
118
+ pywebwinui3/web/_app/immutable/chunks/Cm7LUZmC.js
119
+ pywebwinui3/web/_app/immutable/chunks/DenSxjN0.js
120
+ pywebwinui3/web/_app/immutable/chunks/DoXe6v-Z.js
121
+ pywebwinui3/web/_app/immutable/chunks/GYDIE8Th.js
122
+ pywebwinui3/web/_app/immutable/chunks/H3JtIqnJ.js
123
+ pywebwinui3/web/_app/immutable/chunks/IoyDzpMI.js
124
+ pywebwinui3/web/_app/immutable/entry/app.Cls2e-Vs.js
125
+ pywebwinui3/web/_app/immutable/entry/start.D4vOV_ze.js
126
+ pywebwinui3/web/_app/immutable/nodes/0.DieTLBBL.js
127
+ pywebwinui3/web/_app/immutable/nodes/1.DCNy7Bof.js
128
+ pywebwinui3/web/_app/immutable/nodes/2.D_z1tXgZ.js
@@ -1,3 +1,3 @@
1
1
  __all__ = ["core", "event", "util", "type"]
2
2
 
3
- __version__ = '1.2.4'
3
+ __version__ = '1.2.6'
@@ -4,15 +4,10 @@ import ctypes
4
4
  import importlib
5
5
  import json
6
6
  import logging
7
- import mimetypes
8
- import os
9
- import re
10
7
  import sys
11
8
  import threading
12
- from http import HTTPStatus
13
- from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
14
9
  from pathlib import Path
15
- from urllib.parse import unquote, urlparse, urlunparse
10
+ from urllib.parse import urlparse, urlunparse
16
11
  from ctypes import wintypes
17
12
 
18
13
  import webview
@@ -31,6 +26,10 @@ DEFAULT_WINDOW_MIN_WIDTH = 100
31
26
  DEFAULT_WINDOW_MIN_HEIGHT = 100
32
27
 
33
28
 
29
+ def _virtual_host_origin(root_name: str, suffix: str) -> str:
30
+ return f"https://{root_name}.{suffix}"
31
+
32
+
34
33
  class _Point(ctypes.Structure):
35
34
  _fields_ = [
36
35
  ("x", ctypes.c_long),
@@ -118,63 +117,6 @@ def _apply_menu_theme_support(theme: str | None, hwnd: int | None = None):
118
117
  return False
119
118
 
120
119
 
121
- def _default_ui_origin_host(title: str) -> str:
122
- slug = re.sub(r"[^a-z0-9]+", "-", str(title).casefold()).strip("-")
123
- if not slug:
124
- slug = "app"
125
- slug = re.sub(r"-{2,}", "-", slug)[:48].strip("-")
126
- if not slug:
127
- slug = "app"
128
- return f"{slug}.local"
129
-
130
-
131
- class _UiHttpServer(ThreadingHTTPServer):
132
- daemon_threads = True
133
- allow_reuse_address = True
134
-
135
- def __init__(self, server_address, request_handler_class, main: "MainWindow"):
136
- super().__init__(server_address, request_handler_class)
137
- self.main = main
138
-
139
-
140
- class _UiRequestHandler(BaseHTTPRequestHandler):
141
- server: _UiHttpServer
142
-
143
- def do_GET(self):
144
- try:
145
- path = self.server.main._resolve_server_path(urlparse(self.path).path)
146
- if path is None or not path.is_file():
147
- self._send_error("Not found.", HTTPStatus.NOT_FOUND)
148
- return
149
-
150
- body = path.read_bytes()
151
- content_type = mimetypes.guess_type(path.name)[0] or "application/octet-stream"
152
- self.send_response(HTTPStatus.OK)
153
- self._send_common_headers(content_type)
154
- self.send_header("Content-Length", str(len(body)))
155
- self.end_headers()
156
- self.wfile.write(body)
157
- except Exception:
158
- core_logger.debug("Failed to serve UI asset", exc_info=True)
159
- self._send_error("Failed to serve UI asset.", HTTPStatus.INTERNAL_SERVER_ERROR)
160
-
161
- def log_message(self, format, *args):
162
- return
163
-
164
- def _send_error(self, message: str, status: HTTPStatus):
165
- body = message.encode("utf-8")
166
- self.send_response(status)
167
- self._send_common_headers("text/plain; charset=utf-8")
168
- self.send_header("Content-Length", str(len(body)))
169
- self.end_headers()
170
- self.wfile.write(body)
171
-
172
- def _send_common_headers(self, content_type: str):
173
- self.send_header("Content-Type", content_type)
174
- self.send_header("Cache-Control", "no-store")
175
- self.send_header("Permissions-Policy", "display-capture=*")
176
-
177
-
178
120
  class _JsApi:
179
121
  def _init(self, main:MainWindow):
180
122
  self.init = main._init_payload
@@ -200,6 +142,8 @@ class WindowEvents:
200
142
 
201
143
 
202
144
  class MainWindow:
145
+ virtual_host_suffix = "pywebwinui"
146
+
203
147
  def __init__(self, title: str, icon: str | None = None):
204
148
  self.rootPath = Path(sys._getframe(1).f_code.co_filename).parent.resolve()
205
149
  self.packagePath = Path(__file__).parent.resolve() / "web"
@@ -218,11 +162,8 @@ class MainWindow:
218
162
  self._pending_sync: dict[str, object] = {}
219
163
  self._sync_event = threading.Event()
220
164
  self._sync_thread: threading.Thread | None = None
221
- self._ui_server: _UiHttpServer | None = None
222
- self._ui_server_thread: threading.Thread | None = None
223
- self._ui_origin = ""
224
- self._ui_bind_host = "127.0.0.1"
225
- self._ui_origin_host = getattr(self, "ui_origin_host", _default_ui_origin_host(title))
165
+ self._virtual_host_handlers: dict[str, object] = {}
166
+ self._ui_origin = _virtual_host_origin("package", self.virtual_host_suffix)
226
167
  self._resource_roots: list[tuple[str, Path]] = [
227
168
  ("root", self.rootPath),
228
169
  ("package", self.packagePath),
@@ -242,13 +183,11 @@ class MainWindow:
242
183
  }
243
184
  )
244
185
  self.values.sync = self.queue_sync_value
245
- self._start_ui_server()
246
- self._configure_webview2_origin_identity()
247
186
  _apply_menu_theme_support(self.values.get("system_theme"))
248
187
 
249
188
  self._window = webview.create_window(
250
189
  self.values.get("system_title", self._title),
251
- f"{self._ui_origin}/index.html",
190
+ "about:blank",
252
191
  js_api=self.api,
253
192
  background_color="#202020",
254
193
  text_select=True,
@@ -301,11 +240,29 @@ class MainWindow:
301
240
  def onExit(self):
302
241
  return self._event_decorator(self.events.closed)
303
242
 
304
- def notice(self, level: Status, title: str, description: str, item: dict | None = None):
305
- self.values["system_nofication"] = [
306
- *(self.values["system_nofication"] or []),
307
- [level, title, description, item],
308
- ]
243
+ def notice(
244
+ self,
245
+ level: Status,
246
+ title: str,
247
+ description: str,
248
+ item: dict | None = None,
249
+ *,
250
+ key: str | None = None,
251
+ ):
252
+ notifications = list(self.values["system_nofication"] or [])
253
+ notification = [key, level, title, description, item] if key is not None else [level, title, description, item]
254
+
255
+ if key is not None:
256
+ for index, current in enumerate(notifications):
257
+ if len(current) == 5 and current[0] == key:
258
+ notifications[index] = notification
259
+ break
260
+ else:
261
+ notifications.append(notification)
262
+ else:
263
+ notifications.append(notification)
264
+
265
+ self.values["system_nofication"] = notifications
309
266
 
310
267
  def pin(self, state: bool):
311
268
  state = bool(state)
@@ -366,82 +323,86 @@ class MainWindow:
366
323
  raise FileNotFoundError(f"Frontend entry not found: {entry}")
367
324
  return entry
368
325
 
369
- def _start_ui_server(self):
370
- self._ui_server = _UiHttpServer((self._ui_bind_host, 0), _UiRequestHandler, self)
371
- self._ui_origin = f"http://{self._ui_origin_host}:{self._ui_server.server_port}"
372
- self._ui_server_thread = threading.Thread(target=self._ui_server.serve_forever, daemon=True)
373
- self._ui_server_thread.start()
374
-
375
- def _configure_webview2_origin_identity(self):
376
- if self._ui_origin_host == self._ui_bind_host:
377
- return
326
+ def _resource_url(self, path: Path) -> str:
327
+ path = path.resolve()
328
+ for name, base_path in sorted(self._resource_roots, key=lambda item: len(item[1].parts), reverse=True):
329
+ try:
330
+ relative = path.relative_to(base_path)
331
+ except ValueError:
332
+ continue
378
333
 
379
- parsed = urlparse(self._ui_origin)
380
- if not parsed.scheme or parsed.port is None:
381
- return
334
+ return f"{_virtual_host_origin(name, self.virtual_host_suffix)}/{relative.as_posix()}"
382
335
 
383
- required_args = [
384
- f'--host-resolver-rules="MAP {self._ui_origin_host} {self._ui_bind_host}"',
385
- f"--unsafely-treat-insecure-origin-as-secure={parsed.scheme}://{self._ui_origin_host}:{parsed.port}",
386
- ]
387
- existing = os.environ.get("WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS", "").strip()
388
- missing = [arg for arg in required_args if arg not in existing]
389
- if missing:
390
- os.environ["WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS"] = " ".join(
391
- [value for value in [existing, *missing] if value]
392
- ).strip()
393
-
394
- def _stop_ui_server(self):
395
- if self._ui_server is None:
396
- return
397
- try:
398
- self._ui_server.shutdown()
399
- self._ui_server.server_close()
400
- except Exception:
401
- core_logger.debug("Failed to stop UI server", exc_info=True)
402
- finally:
403
- self._ui_server = None
404
- self._ui_server_thread = None
405
-
406
- def _resolve_path_under(self, base_path: Path, relative_path: str) -> Path | None:
407
- candidate = (base_path / relative_path).resolve()
408
- try:
409
- candidate.relative_to(base_path)
410
- except ValueError:
411
- return None
412
- return candidate
336
+ raise ValueError(f"Path is outside of registered resource roots: {path}")
413
337
 
414
- def _resolve_server_path(self, raw_path: str) -> Path | None:
415
- path = unquote(raw_path or "/")
416
- if path in {"", "/"}:
417
- return self._entry_path()
338
+ def _map_virtual_hosts(self, core_webview):
339
+ parameter = core_webview.GetType().GetMethod("SetVirtualHostNameToFolderMapping").GetParameters()[2]
340
+ access_kind = next(
341
+ value for value in parameter.ParameterType.GetEnumValues()
342
+ if str(value) == "DenyCors"
343
+ )
418
344
 
419
345
  for name, base_path in self._resource_roots:
420
- if name == "package":
421
- continue
346
+ core_webview.SetVirtualHostNameToFolderMapping(
347
+ f"{name}.{self.virtual_host_suffix}",
348
+ str(base_path),
349
+ access_kind,
350
+ )
422
351
 
423
- prefix = f"/__{name}__/"
424
- if path.startswith(prefix):
425
- return self._resolve_path_under(base_path, path[len(prefix) :])
352
+ def _configure_virtual_host_window(self, window, target_url: str, *, show: bool = False):
353
+ native = getattr(window, "native", None)
354
+ browser = getattr(native, "browser", None)
355
+ webview_control = getattr(browser, "webview", None)
356
+ if native is None or browser is None or webview_control is None:
357
+ core_logger.debug("WebView2 is unavailable for virtual host mapping")
358
+ return
426
359
 
427
- return self._resolve_path_under(self.packagePath, path.lstrip("/"))
360
+ def load_mapped_url(core_webview):
361
+ self._map_virtual_hosts(core_webview)
362
+ browser.load_url(target_url)
363
+ if show:
364
+ window.show()
428
365
 
429
- def _resource_url(self, path: Path) -> str:
430
- path = path.resolve()
431
- for name, base_path in self._resource_roots:
366
+ def on_initialized(_, args):
432
367
  try:
433
- relative = path.relative_to(base_path)
434
- except ValueError:
435
- continue
368
+ if not args.IsSuccess:
369
+ core_logger.error("WebView2 initialization failed before virtual host mapping")
370
+ return
371
+ load_mapped_url(webview_control.CoreWebView2)
372
+ except Exception:
373
+ core_logger.error("Failed to configure WebView2 virtual host mapping", exc_info=True)
374
+ finally:
375
+ try:
376
+ webview_control.CoreWebView2InitializationCompleted -= on_initialized
377
+ except Exception:
378
+ pass
379
+ self._virtual_host_handlers.pop(window.uid, None)
436
380
 
437
- if name == "package":
438
- return f"{self._ui_origin}/{relative.as_posix()}"
439
- return f"{self._ui_origin}/__{name}__/{relative.as_posix()}"
381
+ def configure():
382
+ try:
383
+ core_webview = webview_control.CoreWebView2
384
+ except Exception:
385
+ core_webview = None
386
+ if core_webview is not None:
387
+ load_mapped_url(core_webview)
388
+ return
389
+ self._virtual_host_handlers[window.uid] = on_initialized
390
+ webview_control.CoreWebView2InitializationCompleted += on_initialized
440
391
 
441
- raise ValueError(f"Path is outside of registered resource roots: {path}")
392
+ try:
393
+ self._invoke_native_sync(native, configure)
394
+ except Exception:
395
+ core_logger.error("Failed to configure WebView2 virtual host mapping", exc_info=True)
396
+
397
+ def createResourceWindow(self, title: str, url: str, **kwargs):
398
+ keep_hidden = bool(kwargs.pop("hidden", False))
399
+ window = webview.create_window(title, "about:blank", hidden=True, **kwargs)
400
+ self._configure_virtual_host_window(window, url, show=not keep_hidden)
401
+ return window
442
402
 
443
403
  def _before_show(self):
444
404
  try:
405
+ self._configure_virtual_host_window(self._window, self._resource_url(self._entry_path()))
445
406
  hwnd = self._window.native.Handle.ToInt64()
446
407
  _apply_menu_theme_support(self.values.get("system_theme"), hwnd)
447
408
  if self._defer_window_chrome:
@@ -586,21 +547,43 @@ class MainWindow:
586
547
  with self._sync_lock:
587
548
  self._pending_sync.clear()
588
549
  self._sync_event.set()
589
- self._stop_ui_server()
550
+ self._virtual_host_handlers.clear()
590
551
  self.events.closed.set()
591
552
 
592
- def _dispatch_sync_value(self, key: str, value):
593
- if key == "system_title":
553
+ def _dispatch_sync_values(self, values: dict[str, object]):
554
+ if not values:
555
+ return
556
+
557
+ if "system_title" in values:
594
558
  try:
595
- self._window.title = str(value or self._title)
559
+ self._window.title = str(values["system_title"] or self._title)
596
560
  except Exception:
597
561
  core_logger.debug("Failed to update window title", exc_info=True)
598
562
 
599
- script = f"window.syncValue({json.dumps(key, ensure_ascii=False)}, {json.dumps(value, ensure_ascii=False)}, false)"
563
+ native = getattr(self._window, "native", None)
564
+ browser = getattr(native, "browser", None)
565
+ webview2 = getattr(browser, "webview", None)
566
+ if native is None or webview2 is None:
567
+ core_logger.debug("WebView2 is unavailable for UI sync")
568
+ return
569
+
600
570
  try:
601
- self._window.run_js(script)
571
+ message = json.dumps(
572
+ {"type": "pywebwinui3.sync", "values": values},
573
+ ensure_ascii=False,
574
+ )
575
+
576
+ def post_message():
577
+ try:
578
+ core_webview = webview2.CoreWebView2
579
+ if core_webview is not None:
580
+ core_webview.PostWebMessageAsJson(message)
581
+ except Exception:
582
+ core_logger.debug("Failed to post UI sync message", exc_info=True)
583
+
584
+ self._invoke_native(native, post_message)
602
585
  except Exception:
603
- core_logger.debug("Failed to sync value %s", key, exc_info=True)
586
+ core_logger.debug("Failed to queue UI sync message", exc_info=True)
604
587
 
605
588
  def queue_sync_value(self, key: str, value):
606
589
  with self._sync_lock:
@@ -626,11 +609,10 @@ class MainWindow:
626
609
  if not self._pending_sync:
627
610
  self._sync_event.clear()
628
611
  break
629
- pending = tuple(self._pending_sync.items())
612
+ pending = dict(self._pending_sync)
630
613
  self._pending_sync.clear()
631
614
 
632
- for key, value in pending:
633
- self._dispatch_sync_value(key, value)
615
+ self._dispatch_sync_values(pending)
634
616
 
635
617
  def _set_window_maximized_state(self, value: bool, *, sync: bool = True):
636
618
  value = bool(value)
@@ -45,6 +45,8 @@ class Event:
45
45
 
46
46
 
47
47
  class PathEvent:
48
+ _PATTERN_CACHE_LIMIT = 512
49
+
48
50
  def __init__(self) -> None:
49
51
  self.exact_items: dict[str, Event] = {}
50
52
  self.pattern_items: dict[str, Event] = {}
@@ -82,6 +84,8 @@ class PathEvent:
82
84
  logger.exception("Pattern match failed")
83
85
 
84
86
  result = tuple(matched_events)
87
+ if len(self._pattern_cache) >= self._PATTERN_CACHE_LIMIT:
88
+ self._pattern_cache.clear()
85
89
  self._pattern_cache[target] = result
86
90
  return result
87
91
 
@@ -175,7 +175,9 @@ class SyncDict(dict):
175
175
  return True
176
176
 
177
177
  def _sync(self, key, before, after, sync):
178
- if sync and self.sync:
178
+ # Commands can intentionally set the same value again, so events must still
179
+ # run. The frontend only needs an update when its visible value changed.
180
+ if sync and self.sync and before != after:
179
181
  self.sync(key, after)
180
182
  self.event.set(key, before, after)
181
183
 
@@ -1 +1 @@
1
- import{f as g,u as d,g as c,i as m,j as b,k as i,l as p,n as k,o as v,q as h}from"./CZPLFskb.js";function x(t=!1){const s=g,e=s.l.u;if(!e)return;let f=()=>k(s.s);if(t){let o=0,n={};const _=v(()=>{let l=!1;const r=s.s;for(const a in r)r[a]!==n[a]&&(n[a]=r[a],l=!0);return l&&o++,o});f=()=>p(_)}e.b.length&&d(()=>{u(s,f),i(e.b)}),c(()=>{const o=m(()=>e.m.map(b));return()=>{for(const n of o)typeof n=="function"&&n()}}),e.a.length&&c(()=>{u(s,f),i(e.a)})}function u(t,s){if(t.l.s)for(const e of t.l.s)p(e);s()}h();export{x as i};
1
+ import{f as g,u as d,g as c,i as m,j as b,k as i,l as p,n as k,o as v,q as h}from"./CUVCm1Gs.js";function x(t=!1){const s=g,e=s.l.u;if(!e)return;let f=()=>k(s.s);if(t){let o=0,n={};const _=v(()=>{let l=!1;const r=s.s;for(const a in r)r[a]!==n[a]&&(n[a]=r[a],l=!0);return l&&o++,o});f=()=>p(_)}e.b.length&&d(()=>{u(s,f),i(e.b)}),c(()=>{const o=m(()=>e.m.map(b));return()=>{for(const n of o)typeof n=="function"&&n()}}),e.a.length&&c(()=>{u(s,f),i(e.a)})}function u(t,s){if(t.l.s)for(const e of t.l.s)p(e);s()}h();export{x as i};
@@ -0,0 +1 @@
1
+ var jt=Array.isArray,qt=Array.prototype.indexOf,kn=Array.from,On=Object.defineProperty,ue=Object.getOwnPropertyDescriptor,Yt=Object.getOwnPropertyDescriptors,Ht=Object.prototype,Ut=Array.prototype,st=Object.getPrototypeOf,Je=Object.isExtensible;const Dn=()=>{};function Nn(e){return e()}function Bt(e){for(var t=0;t<e.length;t++)e[t]()}function ft(){var e,t,n=new Promise((r,s)=>{e=r,t=s});return{promise:n,resolve:e,reject:t}}const y=2,qe=4,Se=8,Vt=1<<24,j=16,q=32,ne=64,Ye=128,D=512,E=1024,A=2048,N=4096,I=8192,H=16384,He=32768,pe=65536,Ne=1<<17,it=1<<18,de=1<<19,at=1<<20,Pn=1<<25,J=32768,Pe=1<<21,Ue=1<<22,U=1<<23,ce=Symbol("$state"),In=Symbol("legacy props"),Cn=Symbol(""),re=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},Be=3,lt=8;function Gt(e){throw new Error("https://svelte.dev/e/experimental_async_required")}function Mn(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function Kt(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function $t(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function zt(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Xt(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Zt(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Wt(){throw new Error("https://svelte.dev/e/fork_discarded")}function Jt(){throw new Error("https://svelte.dev/e/fork_timing")}function Ln(){throw new Error("https://svelte.dev/e/hydration_failed")}function jn(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function Qt(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function en(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function tn(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function qn(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const Yn=1,Hn=2,Un=4,Bn=8,Vn=16,Gn=1,Kn=2,$n=4,zn=8,Xn=16,Zn=1,Wn=2,nn="[",rn="[!",sn="]",Ve={},g=Symbol(),Jn="http://www.w3.org/1999/xhtml";function Ge(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function Qn(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let Q=!1;function er(e){Q=e}let x;function se(e){if(e===null)throw Ge(),Ve;return x=e}function tr(){return se(K(x))}function nr(e){if(Q){if(K(x)!==null)throw Ge(),Ve;x=e}}function rr(e=1){if(Q){for(var t=e,n=x;t--;)n=K(n);x=n}}function sr(e=!0){for(var t=0,n=x;;){if(n.nodeType===lt){var r=n.data;if(r===sn){if(t===0)return n;t-=1}else(r===nn||r===rn)&&(t+=1)}var s=K(n);e&&n.remove(),n=s}}function fr(e){if(!e||e.nodeType!==lt)throw Ge(),Ve;return e.data}function ot(e){return e===this.v}function fn(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function ut(e){return!fn(e,this.v)}let xe=!1;function ir(){xe=!0}let m=null;function we(e){m=e}function ar(e,t=!1,n){m={p:m,i:!1,c:null,e:null,s:e,x:null,l:xe&&!t?{s:null,u:null,$:[]}:null}}function lr(e){var t=m,n=t.e;if(n!==null){t.e=null;for(var r of n)Tt(r)}return t.i=!0,m=t.p,{}}function he(){return!xe||m!==null&&m.l===null}let $=[];function ct(){var e=$;$=[],Bt(e)}function an(e){if($.length===0&&!_e){var t=$;queueMicrotask(()=>{t===$&&ct()})}$.push(e)}function ln(){for(;$.length>0;)ct()}function on(e){var t=h;if(t===null)return _.f|=U,e;if((t.f&He)===0){if((t.f&Ye)===0)throw e;t.b.error(e)}else ye(e,t)}function ye(e,t){for(;t!==null;){if((t.f&Ye)!==0)try{t.b.error(e);return}catch(n){e=n}t=t.parent}throw e}const z=new Set;let p=null,T=null,k=[],Re=null,Ie=!1,_e=!1;class V{committed=!1;current=new Map;previous=new Map;#r=new Set;#s=new Set;#e=0;#t=0;#a=null;#f=new Set;#i=new Set;skipped_effects=new Set;is_fork=!1;is_deferred(){return this.is_fork||this.#t>0}process(t){k=[],this.apply();var n={parent:null,effect:null,effects:[],render_effects:[]};for(const r of t)this.#l(r,n);this.is_fork||this.#u(),this.is_deferred()?(this.#n(n.effects),this.#n(n.render_effects)):(p=null,Qe(n.render_effects),Qe(n.effects),this.#a?.resolve()),T=null}#l(t,n){t.f^=E;for(var r=t.first;r!==null;){var s=r.f,f=(s&(q|ne))!==0,o=f&&(s&E)!==0,l=o||(s&I)!==0||this.skipped_effects.has(r);if((r.f&Ye)!==0&&r.b?.is_pending()&&(n={parent:n,effect:r,effects:[],render_effects:[]}),!l&&r.fn!==null){f?r.f^=E:(s&qe)!==0?n.effects.push(r):le(r)&&((r.f&j)!==0&&this.#f.add(r),ie(r));var i=r.first;if(i!==null){r=i;continue}}var a=r.parent;for(r=r.next;r===null&&a!==null;)a===n.effect&&(this.#n(n.effects),this.#n(n.render_effects),n=n.parent),r=a.next,a=a.parent}}#n(t){for(const n of t)(n.f&A)!==0?this.#f.add(n):(n.f&N)!==0&&this.#i.add(n),this.#o(n.deps),w(n,E)}#o(t){if(t!==null)for(const n of t)(n.f&y)===0||(n.f&J)===0||(n.f^=J,this.#o(n.deps))}capture(t,n){this.previous.has(t)||this.previous.set(t,n),(t.f&U)===0&&(this.current.set(t,t.v),T?.set(t,t.v))}activate(){p=this,this.apply()}deactivate(){p===this&&(p=null,T=null)}flush(){if(this.activate(),k.length>0){if(Fe(),p!==null&&p!==this)return}else this.#e===0&&this.process([]);this.deactivate()}discard(){for(const t of this.#s)t(this);this.#s.clear()}#u(){if(this.#t===0){for(const t of this.#r)t();this.#r.clear()}this.#e===0&&this.#c()}#c(){if(z.size>1){this.previous.clear();var t=T,n=!0,r={parent:null,effect:null,effects:[],render_effects:[]};for(const f of z){if(f===this){n=!1;continue}const o=[];for(const[i,a]of this.current){if(f.current.has(i))if(n&&a!==f.current.get(i))f.current.set(i,a);else continue;o.push(i)}if(o.length===0)continue;const l=[...f.current.keys()].filter(i=>!this.current.has(i));if(l.length>0){var s=k;k=[];const i=new Set,a=new Map;for(const u of o)_t(u,l,i,a);if(k.length>0){p=f,f.apply();for(const u of k)f.#l(u,r);f.deactivate()}k=s}}p=null,T=t}this.committed=!0,z.delete(this)}increment(t){this.#e+=1,t&&(this.#t+=1)}decrement(t){this.#e-=1,t&&(this.#t-=1),this.revive()}revive(){for(const t of this.#f)this.#i.delete(t),w(t,A),ee(t);for(const t of this.#i)w(t,N),ee(t);this.flush()}oncommit(t){this.#r.add(t)}ondiscard(t){this.#s.add(t)}settled(){return(this.#a??=ft()).promise}static ensure(){if(p===null){const t=p=new V;z.add(p),_e||V.enqueue(()=>{p===t&&t.flush()})}return p}static enqueue(t){an(t)}apply(){}}function Ce(e){var t=_e;_e=!0;try{var n;for(e&&(p!==null&&Fe(),n=e());;){if(ln(),k.length===0&&(p?.flush(),k.length===0))return Re=null,n;Fe()}}finally{_e=t}}function Fe(){var e=Z;Ie=!0;var t=null;try{var n=0;for(Te(!0);k.length>0;){var r=V.ensure();if(n++>1e3){var s,f;un()}r.process(k),B.clear()}}finally{Ie=!1,Te(e),Re=null}}function un(){try{Zt()}catch(e){ye(e,Re)}}let F=null;function Qe(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if((r.f&(H|I))===0&&le(r)&&(F=new Set,ie(r),r.deps===null&&r.first===null&&r.nodes===null&&(r.teardown===null&&r.ac===null?Rt(r):r.fn=null),F?.size>0)){B.clear();for(const s of F){if((s.f&(H|I))!==0)continue;const f=[s];let o=s.parent;for(;o!==null;)F.has(o)&&(F.delete(o),f.push(o)),o=o.parent;for(let l=f.length-1;l>=0;l--){const i=f[l];(i.f&(H|I))===0&&ie(i)}}F.clear()}}F=null}}function _t(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(const s of e.reactions){const f=s.f;(f&y)!==0?_t(s,t,n,r):(f&(Ue|j))!==0&&(f&A)===0&&dt(s,t,r)&&(w(s,A),ee(s))}}function vt(e,t){if(e.reactions!==null)for(const n of e.reactions){const r=n.f;(r&y)!==0?vt(n,t):(r&Ne)!==0&&(w(n,A),t.add(n))}}function dt(e,t,n){const r=n.get(e);if(r!==void 0)return r;if(e.deps!==null)for(const s of e.deps){if(t.includes(s))return!0;if((s.f&y)!==0&&dt(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function ee(e){for(var t=Re=e;t.parent!==null;){t=t.parent;var n=t.f;if(Ie&&t===h&&(n&j)!==0&&(n&it)===0)return;if((n&(ne|q))!==0){if((n&E)===0)return;t.f^=E}}k.push(t)}function or(e){Gt(),p!==null&&Jt();var t=V.ensure();t.is_fork=!0,T=new Map;var n=!1,r=t.settled();Ce(e),T=null;for(var[s,f]of t.previous)s.v=f;return{commit:async()=>{if(n){await r;return}z.has(t)||Wt(),n=!0,t.is_fork=!1;for(var[o,l]of t.current)o.v=l;Ce(()=>{var i=new Set;for(var a of t.current.keys())vt(a,i);pn(i),yt()}),t.revive(),await r},discard:()=>{!n&&z.has(t)&&(z.delete(t),t.discard())}}}function cn(e,t,n,r){const s=he()?Ke:dn;if(n.length===0&&e.length===0){r(t.map(s));return}var f=p,o=h,l=_n();function i(){Promise.all(n.map(a=>vn(a))).then(a=>{l();try{r([...t.map(s),...a])}catch(u){(o.f&H)===0&&ye(u,o)}f?.deactivate(),Ee()}).catch(a=>{ye(a,o)})}e.length>0?Promise.all(e).then(()=>{l();try{return i()}finally{f?.deactivate(),Ee()}}):i()}function _n(){var e=h,t=_,n=m,r=p;return function(f=!0){fe(e),G(t),we(n),f&&r?.activate()}}function Ee(){fe(null),G(null),we(null)}function Ke(e){var t=y|A,n=_!==null&&(_.f&y)!==0?_:null;return h!==null&&(h.f|=de),{ctx:m,deps:null,effects:null,equals:ot,f:t,fn:e,reactions:null,rv:0,v:g,wv:0,parent:n??h,ac:null}}function vn(e,t){let n=h;n===null&&Kt();var r=n.b,s=void 0,f=ze(g),o=!_,l=new Map;return gn(()=>{var i=ft();s=i.promise;try{Promise.resolve(e()).then(i.resolve,i.reject).then(()=>{a===p&&a.committed&&a.deactivate(),Ee()})}catch(c){i.reject(c),Ee()}var a=p;if(o){var u=!r.is_pending();r.update_pending_count(1),a.increment(u),l.get(a)?.reject(re),l.delete(a),l.set(a,i)}const v=(c,d=void 0)=>{if(a.activate(),d)d!==re&&(f.f|=U,Me(f,d));else{(f.f&U)!==0&&(f.f^=U),Me(f,c);for(const[O,ke]of l){if(l.delete(O),O===a)break;ke.reject(re)}}o&&(r.update_pending_count(-1),a.decrement(u))};i.promise.then(v,c=>v(null,c||"unknown"))}),mn(()=>{for(const i of l.values())i.reject(re)}),new Promise(i=>{function a(u){function v(){u===s?i(f):a(s)}u.then(v,v)}a(s)})}function ur(e){const t=Ke(e);return Dt(t),t}function dn(e){const t=Ke(e);return t.equals=ut,t}function ht(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)te(t[n])}}function hn(e){for(var t=e.parent;t!==null;){if((t.f&y)===0)return(t.f&H)===0?t:null;t=t.parent}return null}function $e(e){var t,n=h;fe(hn(e));try{e.f&=~J,ht(e),t=Ct(e)}finally{fe(n)}return t}function pt(e){var t=$e(e);if(e.equals(t)||(p?.is_fork||(e.v=t),e.wv=Pt()),!ae)if(T!==null)(be()||p?.is_fork)&&T.set(e,t);else{var n=(e.f&D)===0?N:E;w(e,n)}}let me=new Set;const B=new Map;function pn(e){me=e}let wt=!1;function ze(e,t){var n={f:0,v:e,reactions:null,equals:ot,rv:0,wv:0};return n}function Y(e,t){const n=ze(e);return Dt(n),n}function cr(e,t=!1,n=!0){const r=ze(e);return t||(r.equals=ut),xe&&n&&m!==null&&m.l!==null&&(m.l.s??=[]).push(r),r}function _r(e,t){return M(e,Lt(()=>X(e))),t}function M(e,t,n=!1){_!==null&&(!P||(_.f&Ne)!==0)&&he()&&(_.f&(y|j|Ue|Ne))!==0&&!L?.includes(e)&&tn();let r=n?oe(t):t;return Me(e,r)}function Me(e,t){if(!e.equals(t)){var n=e.v;ae?B.set(e,t):B.set(e,n),e.v=t;var r=V.ensure();r.capture(e,n),(e.f&y)!==0&&((e.f&A)!==0&&$e(e),w(e,(e.f&D)!==0?E:N)),e.wv=Pt(),Et(e,A),he()&&h!==null&&(h.f&E)!==0&&(h.f&(q|ne))===0&&(R===null?Sn([e]):R.push(e)),!r.is_fork&&me.size>0&&!wt&&yt()}return t}function yt(){wt=!1;var e=Z;Te(!0);const t=Array.from(me);try{for(const n of t)(n.f&E)!==0&&w(n,N),le(n)&&ie(n)}finally{Te(e)}me.clear()}function vr(e,t=1){var n=X(e);return M(e,t===1?++n:--n)}function De(e){M(e,e.v+1)}function Et(e,t){var n=e.reactions;if(n!==null)for(var r=he(),s=n.length,f=0;f<s;f++){var o=n[f],l=o.f;if(!(!r&&o===h)){var i=(l&A)===0;if(i&&w(o,t),(l&y)!==0){var a=o;T?.delete(a),(l&J)===0&&(l&D&&(o.f|=J),Et(a,N))}else i&&((l&j)!==0&&F!==null&&F.add(o),ee(o))}}}function oe(e){if(typeof e!="object"||e===null||ce in e)return e;const t=st(e);if(t!==Ht&&t!==Ut)return e;var n=new Map,r=jt(e),s=Y(0),f=W,o=l=>{if(W===f)return l();var i=_,a=W;G(null),rt(f);var u=l();return G(i),rt(a),u};return r&&n.set("length",Y(e.length)),new Proxy(e,{defineProperty(l,i,a){(!("value"in a)||a.configurable===!1||a.enumerable===!1||a.writable===!1)&&Qt();var u=n.get(i);return u===void 0?u=o(()=>{var v=Y(a.value);return n.set(i,v),v}):M(u,a.value,!0),!0},deleteProperty(l,i){var a=n.get(i);if(a===void 0){if(i in l){const u=o(()=>Y(g));n.set(i,u),De(s)}}else M(a,g),De(s);return!0},get(l,i,a){if(i===ce)return e;var u=n.get(i),v=i in l;if(u===void 0&&(!v||ue(l,i)?.writable)&&(u=o(()=>{var d=oe(v?l[i]:g),O=Y(d);return O}),n.set(i,u)),u!==void 0){var c=X(u);return c===g?void 0:c}return Reflect.get(l,i,a)},getOwnPropertyDescriptor(l,i){var a=Reflect.getOwnPropertyDescriptor(l,i);if(a&&"value"in a){var u=n.get(i);u&&(a.value=X(u))}else if(a===void 0){var v=n.get(i),c=v?.v;if(v!==void 0&&c!==g)return{enumerable:!0,configurable:!0,value:c,writable:!0}}return a},has(l,i){if(i===ce)return!0;var a=n.get(i),u=a!==void 0&&a.v!==g||Reflect.has(l,i);if(a!==void 0||h!==null&&(!u||ue(l,i)?.writable)){a===void 0&&(a=o(()=>{var c=u?oe(l[i]):g,d=Y(c);return d}),n.set(i,a));var v=X(a);if(v===g)return!1}return u},set(l,i,a,u){var v=n.get(i),c=i in l;if(r&&i==="length")for(var d=a;d<v.v;d+=1){var O=n.get(d+"");O!==void 0?M(O,g):d in l&&(O=o(()=>Y(g)),n.set(d+"",O))}if(v===void 0)(!c||ue(l,i)?.writable)&&(v=o(()=>Y(void 0)),M(v,oe(a)),n.set(i,v));else{c=v.v!==g;var ke=o(()=>oe(a));M(v,ke)}var Ze=Reflect.getOwnPropertyDescriptor(l,i);if(Ze?.set&&Ze.set.call(u,a),!c){if(r&&typeof i=="string"){var We=n.get("length"),Oe=Number(i);Number.isInteger(Oe)&&Oe>=We.v&&M(We,Oe+1)}De(s)}return!0},ownKeys(l){X(s);var i=Reflect.ownKeys(l).filter(v=>{var c=n.get(v);return c===void 0||c.v!==g});for(var[a,u]of n)u.v!==g&&!(a in l)&&i.push(a);return i},setPrototypeOf(){en()}})}var et,wn,mt,gt;function dr(){if(et===void 0){et=window,wn=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;mt=ue(t,"firstChild").get,gt=ue(t,"nextSibling").get,Je(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),Je(n)&&(n.__t=void 0)}}function ge(e=""){return document.createTextNode(e)}function Le(e){return mt.call(e)}function K(e){return gt.call(e)}function hr(e,t){if(!Q)return Le(e);var n=Le(x);if(n===null)n=x.appendChild(ge());else if(t&&n.nodeType!==Be){var r=ge();return n?.before(r),se(r),r}return se(n),n}function pr(e,t=!1){if(!Q){var n=Le(e);return n instanceof Comment&&n.data===""?K(n):n}if(t&&x?.nodeType!==Be){var r=ge();return x?.before(r),se(r),r}return x}function wr(e,t=1,n=!1){let r=Q?x:e;for(var s;t--;)s=r,r=K(r);if(!Q)return r;if(n&&r?.nodeType!==Be){var f=ge();return r===null?s?.after(f):r.before(f),se(f),f}return se(r),r}function yr(e){e.textContent=""}function Er(){return!1}let tt=!1;function yn(){tt||(tt=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function Xe(e){var t=_,n=h;G(null),fe(null);try{return e()}finally{G(t),fe(n)}}function mr(e,t,n,r=n){e.addEventListener(t,()=>Xe(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),yn()}function bt(e){h===null&&(_===null&&Xt(),zt()),ae&&$t()}function En(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function C(e,t,n){var r=h;r!==null&&(r.f&I)!==0&&(e|=I);var s={ctx:m,deps:null,nodes:null,f:e|A|D,first:null,fn:t,last:null,next:null,parent:r,b:r&&r.b,prev:null,teardown:null,wv:0,ac:null};if(n)try{ie(s),s.f|=He}catch(l){throw te(s),l}else t!==null&&ee(s);var f=s;if(n&&f.deps===null&&f.teardown===null&&f.nodes===null&&f.first===f.last&&(f.f&de)===0&&(f=f.first,(e&j)!==0&&(e&pe)!==0&&f!==null&&(f.f|=pe)),f!==null&&(f.parent=r,r!==null&&En(f,r),_!==null&&(_.f&y)!==0&&(e&ne)===0)){var o=_;(o.effects??=[]).push(f)}return s}function be(){return _!==null&&!P}function mn(e){const t=C(Se,null,!1);return w(t,E),t.teardown=e,t}function gr(e){bt();var t=h.f,n=!_&&(t&q)!==0&&(t&He)===0;if(n){var r=m;(r.e??=[]).push(e)}else return Tt(e)}function Tt(e){return C(qe|at,e,!1)}function br(e){return bt(),C(Se|at,e,!0)}function Tr(e){V.ensure();const t=C(ne|de,e,!0);return(n={})=>new Promise(r=>{n.outro?An(t,()=>{te(t),r(void 0)}):(te(t),r(void 0))})}function Ar(e){return C(qe,e,!1)}function Sr(e,t){var n=m,r={effect:null,ran:!1,deps:e};n.l.$.push(r),r.effect=At(()=>{e(),!r.ran&&(r.ran=!0,Lt(t))})}function xr(){var e=m;At(()=>{for(var t of e.l.$){t.deps();var n=t.effect;(n.f&E)!==0&&w(n,N),le(n)&&ie(n),t.ran=!1}})}function gn(e){return C(Ue|de,e,!0)}function At(e,t=0){return C(Se|t,e,!0)}function Rr(e,t=[],n=[],r=[]){cn(r,t,n,s=>{C(Se,()=>e(...s.map(X)),!0)})}function kr(e,t=0){var n=C(j|t,e,!0);return n}function Or(e){return C(q|de,e,!0)}function St(e){var t=e.teardown;if(t!==null){const n=ae,r=_;nt(!0),G(null);try{t.call(null)}finally{nt(n),G(r)}}}function xt(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&Xe(()=>{s.abort(re)});var r=n.next;(n.f&ne)!==0?n.parent=null:te(n,t),n=r}}function bn(e){for(var t=e.first;t!==null;){var n=t.next;(t.f&q)===0&&te(t),t=n}}function te(e,t=!0){var n=!1;(t||(e.f&it)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(Tn(e.nodes.start,e.nodes.end),n=!0),xt(e,t&&!n),Ae(e,0),w(e,H);var r=e.nodes&&e.nodes.t;if(r!==null)for(const f of r)f.stop();St(e);var s=e.parent;s!==null&&s.first!==null&&Rt(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=null}function Tn(e,t){for(;e!==null;){var n=e===t?null:K(e);e.remove(),e=n}}function Rt(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function An(e,t,n=!0){var r=[];kt(e,r,!0);var s=()=>{n&&te(e),t&&t()},f=r.length;if(f>0){var o=()=>--f||s();for(var l of r)l.out(o)}else s()}function kt(e,t,n){if((e.f&I)===0){e.f^=I;var r=e.nodes&&e.nodes.t;if(r!==null)for(const l of r)(l.is_global||n)&&t.push(l);for(var s=e.first;s!==null;){var f=s.next,o=(s.f&pe)!==0||(s.f&q)!==0&&(e.f&j)!==0;kt(s,t,o?n:!1),s=f}}}function Dr(e){Ot(e,!0)}function Ot(e,t){if((e.f&I)!==0){e.f^=I,(e.f&E)===0&&(w(e,A),ee(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&pe)!==0||(n.f&q)!==0;Ot(n,s?t:!1),n=r}var f=e.nodes&&e.nodes.t;if(f!==null)for(const o of f)(o.is_global||t)&&o.in()}}function Nr(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:K(n);t.append(n),n=s}}let Z=!1;function Te(e){Z=e}let ae=!1;function nt(e){ae=e}let _=null,P=!1;function G(e){_=e}let h=null;function fe(e){h=e}let L=null;function Dt(e){_!==null&&(L===null?L=[e]:L.push(e))}let b=null,S=0,R=null;function Sn(e){R=e}let Nt=1,ve=0,W=ve;function rt(e){W=e}function Pt(){return++Nt}function le(e){var t=e.f;if((t&A)!==0)return!0;if(t&y&&(e.f&=~J),(t&N)!==0){var n=e.deps;if(n!==null)for(var r=n.length,s=0;s<r;s++){var f=n[s];if(le(f)&&pt(f),f.wv>e.wv)return!0}(t&D)!==0&&T===null&&w(e,E)}return!1}function It(e,t,n=!0){var r=e.reactions;if(r!==null&&!L?.includes(e))for(var s=0;s<r.length;s++){var f=r[s];(f.f&y)!==0?It(f,t,!1):t===f&&(n?w(f,A):(f.f&E)!==0&&w(f,N),ee(f))}}function Ct(e){var t=b,n=S,r=R,s=_,f=L,o=m,l=P,i=W,a=e.f;b=null,S=0,R=null,_=(a&(q|ne))===0?e:null,L=null,we(e.ctx),P=!1,W=++ve,e.ac!==null&&(Xe(()=>{e.ac.abort(re)}),e.ac=null);try{e.f|=Pe;var u=e.fn,v=u(),c=e.deps;if(b!==null){var d;if(Ae(e,S),c!==null&&S>0)for(c.length=S+b.length,d=0;d<b.length;d++)c[S+d]=b[d];else e.deps=c=b;if(be()&&(e.f&D)!==0)for(d=S;d<c.length;d++)(c[d].reactions??=[]).push(e)}else c!==null&&S<c.length&&(Ae(e,S),c.length=S);if(he()&&R!==null&&!P&&c!==null&&(e.f&(y|N|A))===0)for(d=0;d<R.length;d++)It(R[d],e);return s!==null&&s!==e&&(ve++,R!==null&&(r===null?r=R:r.push(...R))),(e.f&U)!==0&&(e.f^=U),v}catch(O){return on(O)}finally{e.f^=Pe,b=t,S=n,R=r,_=s,L=f,we(o),P=l,W=i}}function xn(e,t){let n=t.reactions;if(n!==null){var r=qt.call(n,e);if(r!==-1){var s=n.length-1;s===0?n=t.reactions=null:(n[r]=n[s],n.pop())}}n===null&&(t.f&y)!==0&&(b===null||!b.includes(t))&&(w(t,N),(t.f&D)!==0&&(t.f^=D,t.f&=~J),ht(t),Ae(t,0))}function Ae(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)xn(e,n[r])}function ie(e){var t=e.f;if((t&H)===0){w(e,E);var n=h,r=Z;h=e,Z=!0;try{(t&(j|Vt))!==0?bn(e):xt(e),St(e);var s=Ct(e);e.teardown=typeof s=="function"?s:null,e.wv=Nt;var f}finally{Z=r,h=n}}}async function Pr(){await Promise.resolve(),Ce()}function Ir(){return V.ensure().settled()}function X(e){var t=e.f,n=(t&y)!==0;if(_!==null&&!P){var r=h!==null&&(h.f&H)!==0;if(!r&&!L?.includes(e)){var s=_.deps;if((_.f&Pe)!==0)e.rv<ve&&(e.rv=ve,b===null&&s!==null&&s[S]===e?S++:b===null?b=[e]:b.includes(e)||b.push(e));else{(_.deps??=[]).push(e);var f=e.reactions;f===null?e.reactions=[_]:f.includes(_)||f.push(_)}}}if(ae){if(B.has(e))return B.get(e);if(n){var o=e,l=o.v;return((o.f&E)===0&&o.reactions!==null||Mt(o))&&(l=$e(o)),B.set(o,l),l}}else n&&(!T?.has(e)||p?.is_fork&&!be())&&(o=e,le(o)&&pt(o),Z&&be()&&(o.f&D)===0&&Ft(o));if(T?.has(e))return T.get(e);if((e.f&U)!==0)throw e.v;return e.v}function Ft(e){if(e.deps!==null){e.f^=D;for(const t of e.deps)(t.reactions??=[]).push(e),(t.f&y)!==0&&(t.f&D)===0&&Ft(t)}}function Mt(e){if(e.v===g)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(B.has(t)||(t.f&y)!==0&&Mt(t))return!0;return!1}function Lt(e){var t=P;try{return P=!0,e()}finally{P=t}}const Rn=-7169;function w(e,t){e.f=e.f&Rn|t}function Cr(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if(ce in e)je(e);else if(!Array.isArray(e))for(let t in e){const n=e[t];typeof n=="object"&&n&&ce in n&&je(n)}}}function je(e,t=new Set){if(typeof e=="object"&&e!==null&&!(e instanceof EventTarget)&&!t.has(e)){t.add(e),e instanceof Date&&e.getTime();for(let r in e)try{je(e[r],t)}catch{}const n=st(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){const r=Yt(n);for(let s in r){const f=r[s].get;if(f)try{f.call(e)}catch{}}}}}export{ce as $,wr as A,Dn as B,fn as C,Mn as D,xe as E,kr as F,pe as G,it as H,Le as I,lt as J,K,er as L,se as M,rr as N,wn as O,h as P,Wn as Q,He as R,tr as S,Zn as T,Be as U,fr as V,rn as W,sr as X,Ar as Y,At as Z,an as _,ge as a,_r as a$,mn as a0,On as a1,cr as a2,M as a3,ue as a4,jn as a5,$n as a6,dn as a7,oe as a8,ae as a9,yr as aA,kn as aB,Tr as aC,sn as aD,Ge as aE,Ce as aF,Y as aG,Pr as aH,ur as aI,he as aJ,Pn as aK,jt as aL,Yn as aM,Vn as aN,Hn as aO,I as aP,Un as aQ,Bn as aR,Jn as aS,st as aT,Yt as aU,yn as aV,Cn as aW,mr as aX,Sr as aY,xr as aZ,et as a_,H as aa,zn as ab,Kn as ac,Gn as ad,Xn as ae,In as af,be as ag,ze as ah,De as ai,V as aj,fe as ak,G as al,we as am,on as an,_ as ao,Me as ap,ye as aq,qn as ar,de as as,Ye as at,Qn as au,Xe as av,dr as aw,nn as ax,Ve as ay,Ln as az,Or as b,vr as b0,or as b1,Ir as b2,p as c,te as d,x as e,m as f,gr as g,Q as h,Lt as i,Nn as j,Bt as k,X as l,Nr as m,Cr as n,Ke as o,An as p,ir as q,Dr as r,Er as s,ar as t,br as u,pr as v,Rr as w,lr as x,hr as y,nr as z};