mongoku 2.8.1 → 2.9.0-compat

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 (398) hide show
  1. package/build/client/_app/immutable/assets/0.DTh4C4pw.css +1 -0
  2. package/build/client/_app/immutable/assets/0.DTh4C4pw.css.br +0 -0
  3. package/build/client/_app/immutable/assets/0.DTh4C4pw.css.gz +0 -0
  4. package/build/client/_app/immutable/chunks/AXErlVVG.js +1 -0
  5. package/build/client/_app/immutable/chunks/AXErlVVG.js.br +0 -0
  6. package/build/client/_app/immutable/chunks/AXErlVVG.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/B-TH2U-E.js +1 -0
  8. package/build/client/_app/immutable/chunks/B-TH2U-E.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/B-TH2U-E.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/BaCQ7DA8.js +66 -0
  11. package/build/client/_app/immutable/chunks/BaCQ7DA8.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/BaCQ7DA8.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/{Dbu5gl04.js → BnRtSpxa.js} +1 -1
  14. package/build/client/_app/immutable/chunks/BnRtSpxa.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/BnRtSpxa.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/{DZ3j8h_f.js → BwoNhxjg.js} +1 -1
  17. package/build/client/_app/immutable/chunks/BwoNhxjg.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/BwoNhxjg.js.gz +0 -0
  19. package/build/client/_app/immutable/chunks/CS2LukIO.js +1 -0
  20. package/build/client/_app/immutable/chunks/CS2LukIO.js.br +0 -0
  21. package/build/client/_app/immutable/chunks/CS2LukIO.js.gz +0 -0
  22. package/build/client/_app/immutable/chunks/{CafiCU8Z.js → ChBg3kNp.js} +9 -9
  23. package/build/client/_app/immutable/chunks/ChBg3kNp.js.br +0 -0
  24. package/build/client/_app/immutable/chunks/ChBg3kNp.js.gz +0 -0
  25. package/build/client/_app/immutable/chunks/Cl89kjea.js +1 -0
  26. package/build/client/_app/immutable/chunks/Cl89kjea.js.br +0 -0
  27. package/build/client/_app/immutable/chunks/Cl89kjea.js.gz +0 -0
  28. package/build/client/_app/immutable/chunks/CynGo-ch.js +1 -0
  29. package/build/client/_app/immutable/chunks/CynGo-ch.js.br +0 -0
  30. package/build/client/_app/immutable/chunks/CynGo-ch.js.gz +0 -0
  31. package/build/client/_app/immutable/chunks/D1_vCvEb.js +1 -0
  32. package/build/client/_app/immutable/chunks/D1_vCvEb.js.br +0 -0
  33. package/build/client/_app/immutable/chunks/D1_vCvEb.js.gz +0 -0
  34. package/build/client/_app/immutable/chunks/D2Q18L5i.js +1 -0
  35. package/build/client/_app/immutable/chunks/D2Q18L5i.js.br +0 -0
  36. package/build/client/_app/immutable/chunks/D2Q18L5i.js.gz +0 -0
  37. package/build/client/_app/immutable/chunks/D899Ie42.js +1 -0
  38. package/build/client/_app/immutable/chunks/D899Ie42.js.br +0 -0
  39. package/build/client/_app/immutable/chunks/D899Ie42.js.gz +0 -0
  40. package/build/client/_app/immutable/chunks/DIjqwnsi.js +1 -0
  41. package/build/client/_app/immutable/chunks/DIjqwnsi.js.br +0 -0
  42. package/build/client/_app/immutable/chunks/DIjqwnsi.js.gz +0 -0
  43. package/build/client/_app/immutable/chunks/DR3Cu5oT.js +4 -0
  44. package/build/client/_app/immutable/chunks/DR3Cu5oT.js.br +0 -0
  45. package/build/client/_app/immutable/chunks/DR3Cu5oT.js.gz +0 -0
  46. package/build/client/_app/immutable/chunks/Dchfcdh4.js +1 -0
  47. package/build/client/_app/immutable/chunks/Dchfcdh4.js.br +0 -0
  48. package/build/client/_app/immutable/chunks/Dchfcdh4.js.gz +0 -0
  49. package/build/client/_app/immutable/chunks/{B_7uoCj-.js → DeOonNGy.js} +2 -2
  50. package/build/client/_app/immutable/chunks/DeOonNGy.js.br +0 -0
  51. package/build/client/_app/immutable/chunks/DeOonNGy.js.gz +0 -0
  52. package/build/client/_app/immutable/chunks/{ULh2o3ji.js → DjUt71lH.js} +1 -1
  53. package/build/client/_app/immutable/chunks/DjUt71lH.js.br +0 -0
  54. package/build/client/_app/immutable/chunks/DjUt71lH.js.gz +0 -0
  55. package/build/client/_app/immutable/chunks/Hg2DaShQ.js +1 -0
  56. package/build/client/_app/immutable/chunks/Hg2DaShQ.js.br +3 -0
  57. package/build/client/_app/immutable/chunks/Hg2DaShQ.js.gz +0 -0
  58. package/build/client/_app/immutable/chunks/KvnnxfV5.js +1 -0
  59. package/build/client/_app/immutable/chunks/KvnnxfV5.js.br +0 -0
  60. package/build/client/_app/immutable/chunks/KvnnxfV5.js.gz +0 -0
  61. package/build/client/_app/immutable/chunks/{CETiZ6GF.js → NycVVWZD.js} +1 -1
  62. package/build/client/_app/immutable/chunks/NycVVWZD.js.br +0 -0
  63. package/build/client/_app/immutable/chunks/NycVVWZD.js.gz +0 -0
  64. package/build/client/_app/immutable/chunks/{Dv9wDVNU.js → TfiCUZYY.js} +1 -1
  65. package/build/client/_app/immutable/chunks/TfiCUZYY.js.br +0 -0
  66. package/build/client/_app/immutable/chunks/TfiCUZYY.js.gz +0 -0
  67. package/build/client/_app/immutable/chunks/TxmsiDxf.js +1 -0
  68. package/build/client/_app/immutable/chunks/TxmsiDxf.js.br +0 -0
  69. package/build/client/_app/immutable/chunks/TxmsiDxf.js.gz +0 -0
  70. package/build/client/_app/immutable/chunks/ogOVEqzG.js +1 -0
  71. package/build/client/_app/immutable/chunks/ogOVEqzG.js.br +0 -0
  72. package/build/client/_app/immutable/chunks/ogOVEqzG.js.gz +0 -0
  73. package/build/client/_app/immutable/chunks/tqAjkrD5.js +1 -0
  74. package/build/client/_app/immutable/chunks/tqAjkrD5.js.br +0 -0
  75. package/build/client/_app/immutable/chunks/tqAjkrD5.js.gz +0 -0
  76. package/build/client/_app/immutable/chunks/wZ9dd4xr.js +2 -0
  77. package/build/client/_app/immutable/chunks/wZ9dd4xr.js.br +0 -0
  78. package/build/client/_app/immutable/chunks/wZ9dd4xr.js.gz +0 -0
  79. package/build/client/_app/immutable/entry/app.Cnr92HsX.js +2 -0
  80. package/build/client/_app/immutable/entry/app.Cnr92HsX.js.br +0 -0
  81. package/build/client/_app/immutable/entry/app.Cnr92HsX.js.gz +0 -0
  82. package/build/client/_app/immutable/entry/start.CUm_Zoui.js +1 -0
  83. package/build/client/_app/immutable/entry/start.CUm_Zoui.js.br +0 -0
  84. package/build/client/_app/immutable/entry/start.CUm_Zoui.js.gz +0 -0
  85. package/build/client/_app/immutable/nodes/0.D--SH7lr.js +1 -0
  86. package/build/client/_app/immutable/nodes/0.D--SH7lr.js.br +0 -0
  87. package/build/client/_app/immutable/nodes/0.D--SH7lr.js.gz +0 -0
  88. package/build/client/_app/immutable/nodes/1.CfS20bBk.js +1 -0
  89. package/build/client/_app/immutable/nodes/1.CfS20bBk.js.br +0 -0
  90. package/build/client/_app/immutable/nodes/1.CfS20bBk.js.gz +0 -0
  91. package/build/client/_app/immutable/nodes/10.XNPeqIPf.js +2 -0
  92. package/build/client/_app/immutable/nodes/10.XNPeqIPf.js.br +0 -0
  93. package/build/client/_app/immutable/nodes/10.XNPeqIPf.js.gz +0 -0
  94. package/build/client/_app/immutable/nodes/11.CGK1EcDL.js +6 -0
  95. package/build/client/_app/immutable/nodes/11.CGK1EcDL.js.br +0 -0
  96. package/build/client/_app/immutable/nodes/11.CGK1EcDL.js.gz +0 -0
  97. package/build/client/_app/immutable/nodes/{12.PoZV4wBT.js → 12.CxTR_73N.js} +1 -1
  98. package/build/client/_app/immutable/nodes/12.CxTR_73N.js.br +0 -0
  99. package/build/client/_app/immutable/nodes/12.CxTR_73N.js.gz +0 -0
  100. package/build/client/_app/immutable/nodes/13.DxFblnDq.js +1 -0
  101. package/build/client/_app/immutable/nodes/13.DxFblnDq.js.br +0 -0
  102. package/build/client/_app/immutable/nodes/13.DxFblnDq.js.gz +0 -0
  103. package/build/client/_app/immutable/nodes/14.Damf9Bij.js +65 -0
  104. package/build/client/_app/immutable/nodes/14.Damf9Bij.js.br +0 -0
  105. package/build/client/_app/immutable/nodes/14.Damf9Bij.js.gz +0 -0
  106. package/build/client/_app/immutable/nodes/15.DKVveqyb.js +1 -0
  107. package/build/client/_app/immutable/nodes/15.DKVveqyb.js.br +0 -0
  108. package/build/client/_app/immutable/nodes/15.DKVveqyb.js.gz +0 -0
  109. package/build/client/_app/immutable/nodes/{2.C6NzDBVE.js → 2.CdWjCbJf.js} +1 -1
  110. package/build/client/_app/immutable/nodes/2.CdWjCbJf.js.br +0 -0
  111. package/build/client/_app/immutable/nodes/2.CdWjCbJf.js.gz +0 -0
  112. package/build/client/_app/immutable/nodes/{3.CZJqJ4La.js → 3.BIfBaSHs.js} +1 -1
  113. package/build/client/_app/immutable/nodes/3.BIfBaSHs.js.br +1 -0
  114. package/build/client/_app/immutable/nodes/3.BIfBaSHs.js.gz +0 -0
  115. package/build/client/_app/immutable/nodes/{4.CNe3XPNo.js → 4.D_Olflem.js} +1 -1
  116. package/build/client/_app/immutable/nodes/4.D_Olflem.js.br +0 -0
  117. package/build/client/_app/immutable/nodes/4.D_Olflem.js.gz +0 -0
  118. package/build/client/_app/immutable/nodes/{5.BWhhv567.js → 5.BjQaqBuw.js} +1 -1
  119. package/build/client/_app/immutable/nodes/5.BjQaqBuw.js.br +0 -0
  120. package/build/client/_app/immutable/nodes/5.BjQaqBuw.js.gz +0 -0
  121. package/build/client/_app/immutable/nodes/{7.CTCgtWr5.js → 7.BrMDvseF.js} +1 -1
  122. package/build/client/_app/immutable/nodes/7.BrMDvseF.js.br +0 -0
  123. package/build/client/_app/immutable/nodes/7.BrMDvseF.js.gz +0 -0
  124. package/build/client/_app/immutable/nodes/8.BxYzhvU1.js +2 -0
  125. package/build/client/_app/immutable/nodes/8.BxYzhvU1.js.br +0 -0
  126. package/build/client/_app/immutable/nodes/8.BxYzhvU1.js.gz +0 -0
  127. package/build/client/_app/immutable/nodes/{9.DgUUrJMM.js → 9.oHz2JV_1.js} +1 -1
  128. package/build/client/_app/immutable/nodes/9.oHz2JV_1.js.br +0 -0
  129. package/build/client/_app/immutable/nodes/9.oHz2JV_1.js.gz +0 -0
  130. package/build/client/_app/version.json +1 -1
  131. package/build/client/_app/version.json.br +0 -0
  132. package/build/client/_app/version.json.gz +0 -0
  133. package/build/server/chunks/0-xp6k7WWM.js +31 -0
  134. package/build/server/chunks/{0-CKG6FzOP.js.map → 0-xp6k7WWM.js.map} +1 -1
  135. package/build/server/chunks/1-zOPta5ak.js +9 -0
  136. package/build/server/chunks/1-zOPta5ak.js.map +1 -0
  137. package/build/server/chunks/{10-DhUkYynY.js → 10-Dhe07FYG.js} +3 -3
  138. package/build/server/chunks/{10-DhUkYynY.js.map → 10-Dhe07FYG.js.map} +1 -1
  139. package/build/server/chunks/{11-BNbY7gn2.js → 11-DDHEOURT.js} +5 -4
  140. package/build/server/chunks/11-DDHEOURT.js.map +1 -0
  141. package/build/server/chunks/{12-DBj8btwS.js → 12-Db_xDDjW.js} +3 -3
  142. package/build/server/chunks/{12-DBj8btwS.js.map → 12-Db_xDDjW.js.map} +1 -1
  143. package/build/server/chunks/{13-EXQa77Y1.js → 13-CzMKjEv9.js} +5 -4
  144. package/build/server/chunks/13-CzMKjEv9.js.map +1 -0
  145. package/build/server/chunks/{14-DHzR9sir.js → 14-BayJ52pt.js} +5 -4
  146. package/build/server/chunks/14-BayJ52pt.js.map +1 -0
  147. package/build/server/chunks/15-0Uv1hrI_.js +67 -0
  148. package/build/server/chunks/15-0Uv1hrI_.js.map +1 -0
  149. package/build/server/chunks/{2-BNTmkYSf.js → 2-5hqMVf4i.js} +3 -3
  150. package/build/server/chunks/{2-BNTmkYSf.js.map → 2-5hqMVf4i.js.map} +1 -1
  151. package/build/server/chunks/{3-ClKd4dXQ.js → 3-DIscxOEl.js} +3 -3
  152. package/build/server/chunks/{3-ClKd4dXQ.js.map → 3-DIscxOEl.js.map} +1 -1
  153. package/build/server/chunks/{4-BSPVNKkN.js → 4-_oEOFnHF.js} +3 -3
  154. package/build/server/chunks/{4-BSPVNKkN.js.map → 4-_oEOFnHF.js.map} +1 -1
  155. package/build/server/chunks/{5-BzxZlQk0.js → 5-qiB9L-y2.js} +3 -3
  156. package/build/server/chunks/{5-BzxZlQk0.js.map → 5-qiB9L-y2.js.map} +1 -1
  157. package/build/server/chunks/{6-Bw8JUxiD.js → 6-eXO6RVDu.js} +4 -4
  158. package/build/server/chunks/{6-Bw8JUxiD.js.map → 6-eXO6RVDu.js.map} +1 -1
  159. package/build/server/chunks/{7-QcJoMaSg.js → 7-CRPZ9GW3.js} +7 -7
  160. package/build/server/chunks/{7-QcJoMaSg.js.map → 7-CRPZ9GW3.js.map} +1 -1
  161. package/build/server/chunks/{8-UCTaZB_Z.js → 8-CkktJU5D.js} +3 -3
  162. package/build/server/chunks/{8-UCTaZB_Z.js.map → 8-CkktJU5D.js.map} +1 -1
  163. package/build/server/chunks/{9-C0szOSjZ.js → 9-BcC34Wws.js} +3 -3
  164. package/build/server/chunks/{9-C0szOSjZ.js.map → 9-BcC34Wws.js.map} +1 -1
  165. package/build/server/chunks/{JsonValue-CTg4aH_w.js → JsonValue-CGVfzyTL.js} +32 -32
  166. package/build/server/chunks/JsonValue-CGVfzyTL.js.map +1 -0
  167. package/build/server/chunks/{Modal-yO0qzufQ.js → Modal-D2E5OLRi.js} +9 -9
  168. package/build/server/chunks/Modal-D2E5OLRi.js.map +1 -0
  169. package/build/server/chunks/{Panel-D9GzVDDt.js → Panel-C6VWd6JD.js} +9 -9
  170. package/build/server/chunks/Panel-C6VWd6JD.js.map +1 -0
  171. package/build/server/chunks/{PrettyJson-BVgLycwy.js → PrettyJson-0NvyC3vB.js} +43 -21
  172. package/build/server/chunks/PrettyJson-0NvyC3vB.js.map +1 -0
  173. package/build/server/chunks/{Tooltip-D2BX7dwq.js → Tooltip-OVylvwfb.js} +5 -5
  174. package/build/server/chunks/Tooltip-OVylvwfb.js.map +1 -0
  175. package/build/server/chunks/{TooltipTable-91W9LxGR.js → TooltipTable-CLglfpck.js} +6 -6
  176. package/build/server/chunks/TooltipTable-CLglfpck.js.map +1 -0
  177. package/build/server/chunks/{_layout.svelte-BFxKanne.js → _layout.svelte-CLPxHDiP.js} +24 -24
  178. package/build/server/chunks/_layout.svelte-CLPxHDiP.js.map +1 -0
  179. package/build/server/chunks/{_page.svelte-CYgL8X_3.js → _page.svelte-BPcsZPKb.js} +21 -20
  180. package/build/server/chunks/_page.svelte-BPcsZPKb.js.map +1 -0
  181. package/build/server/chunks/{_page.svelte-BkyGMJtY.js → _page.svelte-BS4_Zesn.js} +27 -26
  182. package/build/server/chunks/_page.svelte-BS4_Zesn.js.map +1 -0
  183. package/build/server/chunks/{_page.svelte-Q0qOjc1K.js → _page.svelte-Bx5MBXSd.js} +23 -22
  184. package/build/server/chunks/_page.svelte-Bx5MBXSd.js.map +1 -0
  185. package/build/server/chunks/{_page.svelte-CSuE9bVi.js → _page.svelte-C3QVwl-z.js} +5 -5
  186. package/build/server/chunks/{_page.svelte-CSuE9bVi.js.map → _page.svelte-C3QVwl-z.js.map} +1 -1
  187. package/build/server/chunks/{_page.svelte-DybQp3Hh.js → _page.svelte-CM6QtCvm.js} +26 -25
  188. package/build/server/chunks/_page.svelte-CM6QtCvm.js.map +1 -0
  189. package/build/server/chunks/{_page.svelte-DEuOrgce.js → _page.svelte-Cai_1P5J.js} +58 -57
  190. package/build/server/chunks/_page.svelte-Cai_1P5J.js.map +1 -0
  191. package/build/server/chunks/_page.svelte-Cy0ShxWk.js +135 -0
  192. package/build/server/chunks/_page.svelte-Cy0ShxWk.js.map +1 -0
  193. package/build/server/chunks/{_page.svelte-BE3IXD7W.js → _page.svelte-DFg9NEZU.js} +52 -51
  194. package/build/server/chunks/_page.svelte-DFg9NEZU.js.map +1 -0
  195. package/build/server/chunks/{_page.svelte-BimaUmmG.js → _page.svelte-yY_cbSNt.js} +27 -26
  196. package/build/server/chunks/_page.svelte-yY_cbSNt.js.map +1 -0
  197. package/build/server/chunks/{_server.ts-CNiqI4C6.js → _server.ts-CEBmCzTO.js} +5 -5
  198. package/build/server/chunks/{_server.ts-CNiqI4C6.js.map → _server.ts-CEBmCzTO.js.map} +1 -1
  199. package/build/server/chunks/{_server.ts-OSPJ0dek.js → _server.ts-CoUHVeKI.js} +5 -5
  200. package/build/server/chunks/{_server.ts-OSPJ0dek.js.map → _server.ts-CoUHVeKI.js.map} +1 -1
  201. package/build/server/chunks/{_server.ts-CHqxLmE4.js → _server.ts-i-glbZtX.js} +4 -4
  202. package/build/server/chunks/{_server.ts-CHqxLmE4.js.map → _server.ts-i-glbZtX.js.map} +1 -1
  203. package/build/server/chunks/{async-lVJA8xJZ.js → async-DUoD1OpG.js} +2 -1
  204. package/build/server/chunks/async-DUoD1OpG.js.map +1 -0
  205. package/build/server/chunks/client-COtw9Xqw.js +7 -0
  206. package/build/server/chunks/{client-C7bEwskR.js.map → client-COtw9Xqw.js.map} +1 -1
  207. package/build/server/chunks/{client2-DcCKOWWC.js → client2-BIa3wTXU.js} +5 -5
  208. package/build/server/chunks/client2-BIa3wTXU.js.map +1 -0
  209. package/build/server/chunks/error.svelte-DUZ2SYyF.js +18 -0
  210. package/build/server/chunks/{error.svelte-Bk-0XnBt.js.map → error.svelte-DUZ2SYyF.js.map} +1 -1
  211. package/build/server/chunks/{hooks.server-ChbJBVwm.js → hooks.server-BiUSRqj1.js} +4 -4
  212. package/build/server/chunks/{hooks.server-ChbJBVwm.js.map → hooks.server-BiUSRqj1.js.map} +1 -1
  213. package/build/server/chunks/{index-CC9WtE-y.js → index-CtYzvcG6.js} +2 -2
  214. package/build/server/chunks/index-CtYzvcG6.js.map +1 -0
  215. package/build/server/chunks/{index-wpIsICWW.js → index-NcxaM188.js} +21 -4
  216. package/build/server/chunks/index-NcxaM188.js.map +1 -0
  217. package/build/server/chunks/{index2-DMabdSHV.js → index2-B0RgZaJY.js} +3 -3
  218. package/build/server/chunks/{index2-DMabdSHV.js.map → index2-B0RgZaJY.js.map} +1 -1
  219. package/build/server/chunks/{layout.svelte-CJcHX-Na.js → layout.svelte-PFROMnUZ.js} +2 -2
  220. package/build/server/chunks/{layout.svelte-CJcHX-Na.js.map → layout.svelte-PFROMnUZ.js.map} +1 -1
  221. package/build/server/chunks/{oauth-BbSyq_Sb.js → oauth-D6jTWKFd.js} +2 -2
  222. package/build/server/chunks/{oauth-BbSyq_Sb.js.map → oauth-D6jTWKFd.js.map} +1 -1
  223. package/build/server/chunks/{remote-xxtqbu-DU1VUIfB.js → remote-xxtqbu-CmaCzxbq.js} +8 -7
  224. package/build/server/chunks/remote-xxtqbu-CmaCzxbq.js.map +1 -0
  225. package/build/server/chunks/{url-hmE1zcJ6.js → root-otUAnOAR.js} +1771 -1355
  226. package/build/server/chunks/root-otUAnOAR.js.map +1 -0
  227. package/build/server/chunks/{routing-CYknP78v.js → routing-EDfUNu8L.js} +2 -2
  228. package/build/server/chunks/{routing-CYknP78v.js.map → routing-EDfUNu8L.js.map} +1 -1
  229. package/build/server/chunks/schema-BZonjzNJ.js +315 -0
  230. package/build/server/chunks/schema-BZonjzNJ.js.map +1 -0
  231. package/build/server/chunks/{server2-uigtM6st.js → server2-D_y4YbpC.js} +8 -3
  232. package/build/server/chunks/server2-D_y4YbpC.js.map +1 -0
  233. package/build/server/chunks/{servers.remote-ChLjCujn.js → servers.remote-W2x65uTK.js} +407 -100
  234. package/build/server/chunks/servers.remote-W2x65uTK.js.map +1 -0
  235. package/build/server/chunks/{shared-BqTYMAzZ.js → shared-DlqhoNLb.js} +321 -127
  236. package/build/server/chunks/shared-DlqhoNLb.js.map +1 -0
  237. package/build/server/chunks/state.svelte-Bj5yxNNk.js +10 -0
  238. package/build/server/chunks/state.svelte-Bj5yxNNk.js.map +1 -0
  239. package/build/server/chunks/{utils2-kjxf7BZO.js → utils-BQzn9ikS.js} +2 -3
  240. package/build/server/chunks/utils-BQzn9ikS.js.map +1 -0
  241. package/build/server/index.js +322 -117
  242. package/build/server/index.js.map +1 -1
  243. package/build/server/manifest.js +28 -20
  244. package/build/server/manifest.js.map +1 -1
  245. package/package.json +5 -2
  246. package/src/api/servers.remote.ts +60 -0
  247. package/src/lib/components/PrettyJson.svelte +33 -10
  248. package/src/lib/server/mongo.ts +1 -1
  249. package/src/lib/server/schema.ts +499 -0
  250. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/+page.ts +1 -0
  251. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/indexes/+page.ts +1 -0
  252. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/mappings/+page.ts +1 -0
  253. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/schema/+page.server.ts +25 -0
  254. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/schema/+page.svelte +429 -0
  255. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/schema/+page.ts +11 -0
  256. package/build/client/_app/immutable/assets/0.CdYhspVa.css +0 -1
  257. package/build/client/_app/immutable/assets/0.CdYhspVa.css.br +0 -0
  258. package/build/client/_app/immutable/assets/0.CdYhspVa.css.gz +0 -0
  259. package/build/client/_app/immutable/chunks/B-uukkkJ.js +0 -1
  260. package/build/client/_app/immutable/chunks/B-uukkkJ.js.br +0 -0
  261. package/build/client/_app/immutable/chunks/B-uukkkJ.js.gz +0 -0
  262. package/build/client/_app/immutable/chunks/B59nRjE7.js +0 -1
  263. package/build/client/_app/immutable/chunks/B59nRjE7.js.br +0 -2
  264. package/build/client/_app/immutable/chunks/B59nRjE7.js.gz +0 -0
  265. package/build/client/_app/immutable/chunks/B_7uoCj-.js.br +0 -0
  266. package/build/client/_app/immutable/chunks/B_7uoCj-.js.gz +0 -0
  267. package/build/client/_app/immutable/chunks/BxKxqkS7.js +0 -4
  268. package/build/client/_app/immutable/chunks/BxKxqkS7.js.br +0 -0
  269. package/build/client/_app/immutable/chunks/BxKxqkS7.js.gz +0 -0
  270. package/build/client/_app/immutable/chunks/C1s4M21f.js +0 -1
  271. package/build/client/_app/immutable/chunks/C1s4M21f.js.br +0 -0
  272. package/build/client/_app/immutable/chunks/C1s4M21f.js.gz +0 -0
  273. package/build/client/_app/immutable/chunks/C6nv_pni.js +0 -1
  274. package/build/client/_app/immutable/chunks/C6nv_pni.js.br +0 -0
  275. package/build/client/_app/immutable/chunks/C6nv_pni.js.gz +0 -0
  276. package/build/client/_app/immutable/chunks/CETiZ6GF.js.br +0 -0
  277. package/build/client/_app/immutable/chunks/CETiZ6GF.js.gz +0 -0
  278. package/build/client/_app/immutable/chunks/CX0xC2bt.js +0 -1
  279. package/build/client/_app/immutable/chunks/CX0xC2bt.js.br +0 -0
  280. package/build/client/_app/immutable/chunks/CX0xC2bt.js.gz +0 -0
  281. package/build/client/_app/immutable/chunks/CafiCU8Z.js.br +0 -0
  282. package/build/client/_app/immutable/chunks/CafiCU8Z.js.gz +0 -0
  283. package/build/client/_app/immutable/chunks/DJHYr09v.js +0 -1
  284. package/build/client/_app/immutable/chunks/DJHYr09v.js.br +0 -0
  285. package/build/client/_app/immutable/chunks/DJHYr09v.js.gz +0 -0
  286. package/build/client/_app/immutable/chunks/DZ3j8h_f.js.br +0 -0
  287. package/build/client/_app/immutable/chunks/DZ3j8h_f.js.gz +0 -0
  288. package/build/client/_app/immutable/chunks/DZxZehvI.js +0 -1
  289. package/build/client/_app/immutable/chunks/DZxZehvI.js.br +0 -0
  290. package/build/client/_app/immutable/chunks/DZxZehvI.js.gz +0 -0
  291. package/build/client/_app/immutable/chunks/DaNl6Y92.js +0 -2
  292. package/build/client/_app/immutable/chunks/DaNl6Y92.js.br +0 -0
  293. package/build/client/_app/immutable/chunks/DaNl6Y92.js.gz +0 -0
  294. package/build/client/_app/immutable/chunks/Dbu5gl04.js.br +0 -0
  295. package/build/client/_app/immutable/chunks/Dbu5gl04.js.gz +0 -0
  296. package/build/client/_app/immutable/chunks/DczwA5Ds.js +0 -1
  297. package/build/client/_app/immutable/chunks/DczwA5Ds.js.br +0 -0
  298. package/build/client/_app/immutable/chunks/DczwA5Ds.js.gz +0 -0
  299. package/build/client/_app/immutable/chunks/DjlV9yev.js +0 -1
  300. package/build/client/_app/immutable/chunks/DjlV9yev.js.br +0 -0
  301. package/build/client/_app/immutable/chunks/DjlV9yev.js.gz +0 -0
  302. package/build/client/_app/immutable/chunks/DqCgzOHl.js +0 -1
  303. package/build/client/_app/immutable/chunks/DqCgzOHl.js.br +0 -0
  304. package/build/client/_app/immutable/chunks/DqCgzOHl.js.gz +0 -0
  305. package/build/client/_app/immutable/chunks/DskkUG-R.js +0 -41
  306. package/build/client/_app/immutable/chunks/DskkUG-R.js.br +0 -0
  307. package/build/client/_app/immutable/chunks/DskkUG-R.js.gz +0 -0
  308. package/build/client/_app/immutable/chunks/Dv9wDVNU.js.br +0 -0
  309. package/build/client/_app/immutable/chunks/Dv9wDVNU.js.gz +0 -0
  310. package/build/client/_app/immutable/chunks/DwvJoC1a.js +0 -1
  311. package/build/client/_app/immutable/chunks/DwvJoC1a.js.br +0 -0
  312. package/build/client/_app/immutable/chunks/DwvJoC1a.js.gz +0 -0
  313. package/build/client/_app/immutable/chunks/ULh2o3ji.js.br +0 -0
  314. package/build/client/_app/immutable/chunks/ULh2o3ji.js.gz +0 -0
  315. package/build/client/_app/immutable/chunks/V1mdyEl2.js +0 -1
  316. package/build/client/_app/immutable/chunks/V1mdyEl2.js.br +0 -0
  317. package/build/client/_app/immutable/chunks/V1mdyEl2.js.gz +0 -0
  318. package/build/client/_app/immutable/chunks/gjWX2x82.js +0 -1
  319. package/build/client/_app/immutable/chunks/gjWX2x82.js.br +0 -0
  320. package/build/client/_app/immutable/chunks/gjWX2x82.js.gz +0 -0
  321. package/build/client/_app/immutable/chunks/y5L2Na-S.js +0 -1
  322. package/build/client/_app/immutable/chunks/y5L2Na-S.js.br +0 -0
  323. package/build/client/_app/immutable/chunks/y5L2Na-S.js.gz +0 -0
  324. package/build/client/_app/immutable/entry/app.CobTjvr8.js +0 -2
  325. package/build/client/_app/immutable/entry/app.CobTjvr8.js.br +0 -0
  326. package/build/client/_app/immutable/entry/app.CobTjvr8.js.gz +0 -0
  327. package/build/client/_app/immutable/entry/start.BD32Z2Yy.js +0 -1
  328. package/build/client/_app/immutable/entry/start.BD32Z2Yy.js.br +0 -0
  329. package/build/client/_app/immutable/entry/start.BD32Z2Yy.js.gz +0 -0
  330. package/build/client/_app/immutable/nodes/0.CTNDfBi_.js +0 -1
  331. package/build/client/_app/immutable/nodes/0.CTNDfBi_.js.br +0 -0
  332. package/build/client/_app/immutable/nodes/0.CTNDfBi_.js.gz +0 -0
  333. package/build/client/_app/immutable/nodes/1.B0G4JtnR.js +0 -1
  334. package/build/client/_app/immutable/nodes/1.B0G4JtnR.js.br +0 -0
  335. package/build/client/_app/immutable/nodes/1.B0G4JtnR.js.gz +0 -0
  336. package/build/client/_app/immutable/nodes/10.DiOFtMHY.js +0 -2
  337. package/build/client/_app/immutable/nodes/10.DiOFtMHY.js.br +0 -0
  338. package/build/client/_app/immutable/nodes/10.DiOFtMHY.js.gz +0 -0
  339. package/build/client/_app/immutable/nodes/11.CcFuKX19.js +0 -6
  340. package/build/client/_app/immutable/nodes/11.CcFuKX19.js.br +0 -0
  341. package/build/client/_app/immutable/nodes/11.CcFuKX19.js.gz +0 -0
  342. package/build/client/_app/immutable/nodes/12.PoZV4wBT.js.br +0 -0
  343. package/build/client/_app/immutable/nodes/12.PoZV4wBT.js.gz +0 -0
  344. package/build/client/_app/immutable/nodes/13.BIZ8AY9M.js +0 -1
  345. package/build/client/_app/immutable/nodes/13.BIZ8AY9M.js.br +0 -0
  346. package/build/client/_app/immutable/nodes/13.BIZ8AY9M.js.gz +0 -0
  347. package/build/client/_app/immutable/nodes/14.DfoPNHw_.js +0 -65
  348. package/build/client/_app/immutable/nodes/14.DfoPNHw_.js.br +0 -0
  349. package/build/client/_app/immutable/nodes/14.DfoPNHw_.js.gz +0 -0
  350. package/build/client/_app/immutable/nodes/2.C6NzDBVE.js.br +0 -2
  351. package/build/client/_app/immutable/nodes/2.C6NzDBVE.js.gz +0 -0
  352. package/build/client/_app/immutable/nodes/3.CZJqJ4La.js.br +0 -0
  353. package/build/client/_app/immutable/nodes/3.CZJqJ4La.js.gz +0 -0
  354. package/build/client/_app/immutable/nodes/4.CNe3XPNo.js.br +0 -0
  355. package/build/client/_app/immutable/nodes/4.CNe3XPNo.js.gz +0 -0
  356. package/build/client/_app/immutable/nodes/5.BWhhv567.js.br +0 -0
  357. package/build/client/_app/immutable/nodes/5.BWhhv567.js.gz +0 -0
  358. package/build/client/_app/immutable/nodes/7.CTCgtWr5.js.br +0 -0
  359. package/build/client/_app/immutable/nodes/7.CTCgtWr5.js.gz +0 -0
  360. package/build/client/_app/immutable/nodes/8.B9VIkjMO.js +0 -2
  361. package/build/client/_app/immutable/nodes/8.B9VIkjMO.js.br +0 -0
  362. package/build/client/_app/immutable/nodes/8.B9VIkjMO.js.gz +0 -0
  363. package/build/client/_app/immutable/nodes/9.DgUUrJMM.js.br +0 -0
  364. package/build/client/_app/immutable/nodes/9.DgUUrJMM.js.gz +0 -0
  365. package/build/server/chunks/0-CKG6FzOP.js +0 -31
  366. package/build/server/chunks/1-BobnPu2T.js +0 -9
  367. package/build/server/chunks/1-BobnPu2T.js.map +0 -1
  368. package/build/server/chunks/11-BNbY7gn2.js.map +0 -1
  369. package/build/server/chunks/13-EXQa77Y1.js.map +0 -1
  370. package/build/server/chunks/14-DHzR9sir.js.map +0 -1
  371. package/build/server/chunks/JsonValue-CTg4aH_w.js.map +0 -1
  372. package/build/server/chunks/Modal-yO0qzufQ.js.map +0 -1
  373. package/build/server/chunks/Panel-D9GzVDDt.js.map +0 -1
  374. package/build/server/chunks/PrettyJson-BVgLycwy.js.map +0 -1
  375. package/build/server/chunks/Tooltip-D2BX7dwq.js.map +0 -1
  376. package/build/server/chunks/TooltipTable-91W9LxGR.js.map +0 -1
  377. package/build/server/chunks/_layout.svelte-BFxKanne.js.map +0 -1
  378. package/build/server/chunks/_page.svelte-BE3IXD7W.js.map +0 -1
  379. package/build/server/chunks/_page.svelte-BimaUmmG.js.map +0 -1
  380. package/build/server/chunks/_page.svelte-BkyGMJtY.js.map +0 -1
  381. package/build/server/chunks/_page.svelte-CYgL8X_3.js.map +0 -1
  382. package/build/server/chunks/_page.svelte-DEuOrgce.js.map +0 -1
  383. package/build/server/chunks/_page.svelte-DybQp3Hh.js.map +0 -1
  384. package/build/server/chunks/_page.svelte-Q0qOjc1K.js.map +0 -1
  385. package/build/server/chunks/async-lVJA8xJZ.js.map +0 -1
  386. package/build/server/chunks/client-C7bEwskR.js +0 -7
  387. package/build/server/chunks/client2-DcCKOWWC.js.map +0 -1
  388. package/build/server/chunks/error.svelte-Bk-0XnBt.js +0 -18
  389. package/build/server/chunks/index-CC9WtE-y.js.map +0 -1
  390. package/build/server/chunks/index-wpIsICWW.js.map +0 -1
  391. package/build/server/chunks/remote-xxtqbu-DU1VUIfB.js.map +0 -1
  392. package/build/server/chunks/server2-uigtM6st.js.map +0 -1
  393. package/build/server/chunks/servers.remote-ChLjCujn.js.map +0 -1
  394. package/build/server/chunks/shared-BqTYMAzZ.js.map +0 -1
  395. package/build/server/chunks/state.svelte-Dzb7Lf2r.js +0 -9
  396. package/build/server/chunks/state.svelte-Dzb7Lf2r.js.map +0 -1
  397. package/build/server/chunks/url-hmE1zcJ6.js.map +0 -1
  398. package/build/server/chunks/utils2-kjxf7BZO.js.map +0 -1
@@ -0,0 +1,429 @@
1
+ <script lang="ts">
2
+ import { auditSchema } from "$api/servers.remote";
3
+ import Panel from "$lib/components/Panel.svelte";
4
+ import PrettyJson from "$lib/components/PrettyJson.svelte";
5
+ import { notificationStore } from "$lib/stores/notifications.svelte";
6
+ import type { PageData } from "./$types";
7
+
8
+ let { data }: { data: PageData } = $props();
9
+
10
+ let auditResult = $state<Awaited<ReturnType<typeof auditSchema>>["data"]>(null);
11
+ let isAuditing = $state(false);
12
+ let auditError = $state<string | null>(null);
13
+
14
+ let readPreferenceMode = $state<"secondaryPreferred" | "secondary" | "nearest" | "">("");
15
+ let readPreferenceTags = $state("");
16
+
17
+ let schemaInfo = $derived(data.schemaInfo);
18
+
19
+ // Format a document _id for display + navigation. The document-detail
20
+ // route only resolves scalar strings and 24-hex ObjectIds, so we only mark
21
+ // IDs as `navigable` when we know the detail page can open them; everything
22
+ // else (composite keys, Date / Binary / Decimal128 EJSON wrappers, …)
23
+ // renders as plain text rather than a broken link.
24
+ function formatDocId(docId: unknown): { display: string; navigable: string | null } {
25
+ if (docId === null || docId === undefined) {
26
+ return { display: "", navigable: null };
27
+ }
28
+ if (typeof docId === "string" || typeof docId === "number") {
29
+ return { display: String(docId), navigable: String(docId) };
30
+ }
31
+ if (typeof docId === "object") {
32
+ const obj = docId as Record<string, unknown>;
33
+ // EJSON wrapper from JsonEncoder, e.g. { $type: "ObjectId", $value: "..." }.
34
+ // Only ObjectId (and untyped scalar wrappers) are routable on the
35
+ // document detail page — Date / Binary / Decimal128 / etc. are not.
36
+ const hasScalarValue = "$value" in obj && (typeof obj.$value === "string" || typeof obj.$value === "number");
37
+ const isRoutableType = obj.$type === undefined || obj.$type === "ObjectId";
38
+ if (hasScalarValue && isRoutableType) {
39
+ const v = String(obj.$value);
40
+ return { display: v, navigable: v };
41
+ }
42
+ // Composite key (or non-routable EJSON wrapper) — render as
43
+ // `k1: v1 · k2: v2`, not navigable.
44
+ const entries = Object.entries(obj).filter(([k]) => k !== "$type");
45
+ if (entries.length > 0) {
46
+ const display = entries.map(([k, v]) => `${k}: ${typeof v === "object" ? JSON.stringify(v) : v}`).join(" · ");
47
+ return { display, navigable: null };
48
+ }
49
+ }
50
+ return { display: String(docId), navigable: null };
51
+ }
52
+
53
+ // Render the compliance percentage compactly. We *floor* to two decimals
54
+ // (rather than rounding to nearest) so that e.g. 99.9999% never renders as
55
+ // "100%" — only an exact 100 should show as 100. Decimals are hidden when
56
+ // they're both zero.
57
+ function formatPct(pct: number): string {
58
+ if (!Number.isFinite(pct)) {
59
+ return String(pct);
60
+ }
61
+ if (pct >= 100) {
62
+ return "100";
63
+ }
64
+ if (pct <= 0) {
65
+ return "0";
66
+ }
67
+ const truncated = Math.floor(pct * 100) / 100;
68
+ return Number.isInteger(truncated) ? truncated.toFixed(0) : truncated.toString();
69
+ }
70
+
71
+ let complianceColor = $derived.by(() => {
72
+ if (!auditResult) {
73
+ return "var(--text)";
74
+ }
75
+ if (auditResult.compliancePct === 100) {
76
+ return "var(--button-success)";
77
+ }
78
+ if (auditResult.compliancePct >= 90) {
79
+ return "hsl(38, 92%, 50%)";
80
+ }
81
+ return "var(--error)";
82
+ });
83
+
84
+ async function runAudit() {
85
+ isAuditing = true;
86
+ auditError = null;
87
+ auditResult = null;
88
+
89
+ try {
90
+ const result = await auditSchema({
91
+ server: data.server,
92
+ database: data.database,
93
+ collection: data.collection,
94
+ readPreferenceMode: readPreferenceMode || undefined,
95
+ readPreferenceTags: readPreferenceTags || undefined,
96
+ });
97
+
98
+ if (result.error) {
99
+ auditError = result.error;
100
+ notificationStore.notifyError(result.error);
101
+ } else {
102
+ auditResult = result.data;
103
+ if (result.data?.hasSchema) {
104
+ const summary = `Audit complete: ${formatPct(result.data.compliancePct)}% of ${result.data.nrecords.toLocaleString()} documents match the schema`;
105
+ // Match the on-page progress-bar bands: 100% green, ≥90% amber, otherwise red.
106
+ if (result.data.compliancePct === 100) {
107
+ notificationStore.notifySuccess(summary);
108
+ } else if (result.data.compliancePct >= 90) {
109
+ notificationStore.notify(summary, "info");
110
+ } else {
111
+ notificationStore.notifyError(summary);
112
+ }
113
+ }
114
+ }
115
+ } catch (err) {
116
+ const msg = err instanceof Error ? err.message : String(err);
117
+ auditError = msg;
118
+ notificationStore.notifyError(msg);
119
+ } finally {
120
+ isAuditing = false;
121
+ }
122
+ }
123
+ </script>
124
+
125
+ <Panel title="Schema Validation" titleClass="py-2">
126
+ {#snippet actions()}
127
+ {#if schemaInfo.hasSchema}
128
+ <button class="btn btn-primary btn-sm -my-2" onclick={runAudit} disabled={isAuditing}>
129
+ {#if isAuditing}
130
+ <svg
131
+ class="animate-spin w-4 h-4 inline mr-1"
132
+ xmlns="http://www.w3.org/2000/svg"
133
+ fill="none"
134
+ viewBox="0 0 24 24"
135
+ >
136
+ <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
137
+ <path
138
+ class="opacity-75"
139
+ fill="currentColor"
140
+ d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
141
+ ></path>
142
+ </svg>
143
+ {/if}
144
+ {isAuditing ? "Auditing..." : "Run Audit"}
145
+ </button>
146
+ {/if}
147
+ {/snippet}
148
+
149
+ <div class="p-4 space-y-6">
150
+ <!-- Configuration -->
151
+ <div>
152
+ <h3 class="text-sm font-semibold mb-3 uppercase tracking-wide" style="color: var(--text-secondary);">
153
+ Configuration
154
+ </h3>
155
+ {#if schemaInfo.hasSchema}
156
+ <div class="overflow-hidden rounded-lg border border-[var(--border-color)] bg-[var(--color-1)]">
157
+ <table class="table mb-0">
158
+ <tbody>
159
+ <tr>
160
+ <td class="font-medium whitespace-nowrap px-4 py-3 text-sm w-40">Status</td>
161
+ <td class="px-4 py-3">
162
+ <span class="badge badge-success">Active</span>
163
+ </td>
164
+ </tr>
165
+ <tr>
166
+ <td class="font-medium whitespace-nowrap px-4 py-3 text-sm w-40">Validation Level</td>
167
+ <td class="px-4 py-3">
168
+ <span class="font-mono text-sm" style="color: var(--text);"
169
+ >{schemaInfo.validationLevel ?? "strict"}</span
170
+ >
171
+ <span class="text-xs ml-2" style="color: var(--text-darker);">
172
+ {#if schemaInfo.validationLevel === "strict"}— all inserts &amp; updates validated
173
+ {:else if schemaInfo.validationLevel === "moderate"}— only existing valid docs re-checked
174
+ {:else}— no validation{/if}
175
+ </span>
176
+ </td>
177
+ </tr>
178
+ <tr>
179
+ <td class="font-medium whitespace-nowrap px-4 py-3 text-sm w-40">Validation Action</td>
180
+ <td class="px-4 py-3">
181
+ <span class="font-mono text-sm" style="color: var(--text);"
182
+ >{schemaInfo.validationAction ?? "error"}</span
183
+ >
184
+ <span class="text-xs ml-2" style="color: var(--text-darker);">
185
+ {#if schemaInfo.validationAction === "warn"}— invalid docs accepted with warning
186
+ {:else}— invalid docs rejected{/if}
187
+ </span>
188
+ </td>
189
+ </tr>
190
+ </tbody>
191
+ </table>
192
+ </div>
193
+
194
+ <div class="mt-4">
195
+ <h4 class="text-xs font-semibold mb-2 uppercase tracking-wide" style="color: var(--text-secondary);">
196
+ JSON Schema
197
+ </h4>
198
+ <div class="rounded-lg border border-[var(--border-color)] overflow-hidden">
199
+ <PrettyJson
200
+ json={schemaInfo.validator as unknown as Record<string, unknown>}
201
+ autoCollapse={false}
202
+ server={data.server}
203
+ database={data.database}
204
+ collection={data.collection}
205
+ />
206
+ </div>
207
+ </div>
208
+ {:else}
209
+ <div class="rounded-lg border border-[var(--border-color)] bg-[var(--color-1)] p-8 text-center">
210
+ <div class="text-4xl mb-3 opacity-30">&#x1F4CB;</div>
211
+ <p class="text-sm font-medium" style="color: var(--text-secondary);">No JSON Schema validator configured.</p>
212
+ <p class="text-xs mt-1" style="color: var(--text-darker);">
213
+ Use MongoDB's
214
+ <a
215
+ href="https://www.mongodb.com/docs/manual/core/schema-validation/"
216
+ target="_blank"
217
+ rel="noopener"
218
+ class="underline"
219
+ style="color: var(--link);">schema validation</a
220
+ >
221
+ to enforce document structure.
222
+ </p>
223
+ </div>
224
+ {/if}
225
+ </div>
226
+
227
+ <!-- Compliance Audit -->
228
+ {#if schemaInfo.hasSchema}
229
+ <div>
230
+ <h3 class="text-sm font-semibold mb-3 uppercase tracking-wide" style="color: var(--text-secondary);">
231
+ Compliance Audit
232
+ </h3>
233
+
234
+ <details class="mb-4">
235
+ <summary class="cursor-pointer text-sm font-medium" style="color: var(--text-secondary);"
236
+ >Read Preference (optional)</summary
237
+ >
238
+ <div class="mt-3 grid grid-cols-1 sm:grid-cols-2 gap-3 p-3 rounded-lg bg-[var(--color-3)]/50">
239
+ <label class="block">
240
+ <span class="text-xs font-medium" style="color: var(--text-secondary);">Mode</span>
241
+ <select
242
+ bind:value={readPreferenceMode}
243
+ class="mt-1 w-full px-3 py-2 bg-[var(--color-1)] border border-[var(--border-color)] rounded text-sm"
244
+ style="color: var(--text);"
245
+ >
246
+ <option value="">Default</option>
247
+ <option value="secondaryPreferred">secondaryPreferred</option>
248
+ <option value="secondary">secondary</option>
249
+ <option value="nearest">nearest</option>
250
+ </select>
251
+ </label>
252
+ <label class="block">
253
+ <span class="text-xs font-medium" style="color: var(--text-secondary);">Tags (JSON)</span>
254
+ <input
255
+ type="text"
256
+ bind:value={readPreferenceTags}
257
+ placeholder={'[{"nodeType":"ANALYTICS"}]'}
258
+ class="mt-1 w-full px-3 py-2 bg-[var(--color-1)] border border-[var(--border-color)] rounded text-sm font-mono"
259
+ style="color: var(--text);"
260
+ />
261
+ </label>
262
+ </div>
263
+ </details>
264
+
265
+ {#if isAuditing}
266
+ <div class="rounded-lg border border-[var(--border-color)] bg-[var(--color-1)] p-8 text-center">
267
+ <svg
268
+ class="animate-spin w-6 h-6 mx-auto mb-3"
269
+ style="color: var(--link);"
270
+ xmlns="http://www.w3.org/2000/svg"
271
+ fill="none"
272
+ viewBox="0 0 24 24"
273
+ >
274
+ <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
275
+ <path
276
+ class="opacity-75"
277
+ fill="currentColor"
278
+ d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
279
+ ></path>
280
+ </svg>
281
+ <p class="text-sm" style="color: var(--text-secondary);">Running validation...</p>
282
+ </div>
283
+ {:else if auditError}
284
+ <div class="rounded-lg border border-red-500/30 bg-red-500/10 p-4">
285
+ <p class="text-sm text-red-600 font-medium">Audit failed</p>
286
+ <p class="text-xs mt-1 text-red-500">{auditError}</p>
287
+ </div>
288
+ {:else if auditResult}
289
+ <!-- Progress bar -->
290
+ <div class="mb-4">
291
+ <div class="flex justify-between items-center mb-2">
292
+ <span class="text-sm font-medium" style="color: var(--text);">Compliance</span>
293
+ <span class="text-sm font-bold" style="color: {complianceColor};">
294
+ {formatPct(auditResult.compliancePct)}%
295
+ </span>
296
+ </div>
297
+ <div class="w-full h-3 rounded-full bg-[var(--color-3)] overflow-hidden">
298
+ <div
299
+ class="h-full rounded-full transition-all duration-500"
300
+ style="width: {auditResult.compliancePct}%; background: {complianceColor};"
301
+ ></div>
302
+ </div>
303
+ </div>
304
+
305
+ <div class="grid grid-cols-2 sm:grid-cols-4 gap-3 mb-4">
306
+ <div class="rounded-lg border border-[var(--border-color)] bg-[var(--color-1)] p-3 text-center">
307
+ <div class="text-lg font-bold" style="color: var(--text);">{auditResult.nrecords.toLocaleString()}</div>
308
+ <div class="text-xs" style="color: var(--text-darker);">Scanned</div>
309
+ </div>
310
+ <div class="rounded-lg border border-[var(--border-color)] bg-[var(--color-1)] p-3 text-center">
311
+ <div class="text-lg font-bold" style="color: var(--button-success);">
312
+ {auditResult.nValidDocuments.toLocaleString()}
313
+ </div>
314
+ <div class="text-xs" style="color: var(--text-darker);">Valid</div>
315
+ </div>
316
+ <div class="rounded-lg border border-[var(--border-color)] bg-[var(--color-1)] p-3 text-center">
317
+ <div
318
+ class="text-lg font-bold"
319
+ style="color: {auditResult.nInvalidDocuments > 0 ? 'var(--error)' : 'var(--text)'};"
320
+ >
321
+ {auditResult.nInvalidDocuments.toLocaleString()}
322
+ </div>
323
+ <div class="text-xs" style="color: var(--text-darker);">Invalid</div>
324
+ </div>
325
+ <div class="rounded-lg border border-[var(--border-color)] bg-[var(--color-1)] p-3 text-center">
326
+ <div class="text-lg font-bold" style="color: var(--text);">{auditResult.tookMs}ms</div>
327
+ <div class="text-xs" style="color: var(--text-darker);">Duration</div>
328
+ </div>
329
+ </div>
330
+
331
+ <!-- Validation errors -->
332
+ {#if auditResult.errors.length > 0}
333
+ <div class="mt-4">
334
+ <h4 class="text-sm font-semibold mb-3" style="color: var(--error);">
335
+ Validation Errors ({auditResult.errors.length} sampled)
336
+ </h4>
337
+ <div class="space-y-3 max-h-96 overflow-auto pr-2">
338
+ {#each auditResult.errors as err, i (`err-${i}`)}
339
+ <div class="rounded-lg border border-red-500/20 bg-red-500/5 overflow-hidden">
340
+ <!-- Error header with doc link -->
341
+ <div class="px-4 py-3 border-b border-red-500/10">
342
+ {#if err.docId}
343
+ {@const idInfo = formatDocId(err.docId)}
344
+ <div class="flex items-center gap-2">
345
+ <span class="text-xs font-medium" style="color: var(--text-secondary);">Document:</span>
346
+ {#if idInfo.navigable !== null}
347
+ <!-- eslint-disable svelte/no-navigation-without-resolve -->
348
+ <a
349
+ href="/servers/{encodeURIComponent(data.server)}/databases/{encodeURIComponent(
350
+ data.database,
351
+ )}/collections/{encodeURIComponent(data.collection)}/documents/{encodeURIComponent(
352
+ idInfo.navigable,
353
+ )}"
354
+ class="text-xs font-mono underline hover:no-underline"
355
+ style="color: var(--link);"
356
+ >
357
+ {idInfo.display}
358
+ </a>
359
+ <!-- eslint-enable svelte/no-navigation-without-resolve -->
360
+ {:else}
361
+ <span class="text-xs font-mono" style="color: var(--text);">{idInfo.display}</span>
362
+ {/if}
363
+ </div>
364
+ {/if}
365
+ </div>
366
+
367
+ <!-- Error details -->
368
+ <div class="p-4">
369
+ <div class="space-y-2">
370
+ {#each err.message.split("; ") as errorMsg, j (`${i}-${j}`)}
371
+ <div class="flex items-start gap-2">
372
+ <span class="text-red-400 mt-0.5">•</span>
373
+ <pre
374
+ class="text-xs whitespace-pre-wrap font-mono flex-1"
375
+ style="color: var(--error);">{errorMsg}</pre>
376
+ </div>
377
+ {/each}
378
+ </div>
379
+ </div>
380
+
381
+ <!-- Document viewer -->
382
+ {#if err.document}
383
+ <div class="px-4 pb-4">
384
+ <details class="rounded border border-[var(--border-color)] overflow-hidden">
385
+ <summary
386
+ class="cursor-pointer px-3 py-2 text-xs font-medium bg-[var(--color-1)] hover:bg-[var(--color-2)] transition-colors"
387
+ style="color: var(--text-secondary);"
388
+ >
389
+ View full document
390
+ </summary>
391
+ <div class="p-3 border-t border-[var(--border-color)] bg-[var(--color-1)]">
392
+ <PrettyJson
393
+ json={err.document as unknown as Record<string, unknown>}
394
+ autoCollapse={true}
395
+ server={data.server}
396
+ database={data.database}
397
+ collection={data.collection}
398
+ />
399
+ </div>
400
+ </details>
401
+ </div>
402
+ {/if}
403
+ </div>
404
+ {/each}
405
+ </div>
406
+ </div>
407
+ {/if}
408
+
409
+ {#if auditResult.warnings.length > 0}
410
+ <div class="mt-4">
411
+ <h4 class="text-sm font-semibold mb-2" style="color: hsl(38, 92%, 50%);">Warnings</h4>
412
+ <div
413
+ class="rounded-lg border border-yellow-500/20 bg-yellow-500/5 divide-y divide-yellow-500/10 max-h-48 overflow-auto"
414
+ >
415
+ {#each auditResult.warnings as warning (warning)}
416
+ <pre class="p-3 text-xs whitespace-pre-wrap font-mono" style="color: var(--text);">{warning}</pre>
417
+ {/each}
418
+ </div>
419
+ </div>
420
+ {/if}
421
+ {:else}
422
+ <div class="rounded-lg border border-[var(--border-color)] bg-[var(--color-1)] p-6 text-center">
423
+ <p class="text-sm" style="color: var(--text-secondary);">Click "Run Audit" to check document compliance.</p>
424
+ </div>
425
+ {/if}
426
+ </div>
427
+ {/if}
428
+ </div>
429
+ </Panel>
@@ -0,0 +1,11 @@
1
+ export const load = async (data) => {
2
+ return {
3
+ ...data.data,
4
+ categories: [
5
+ { key: "documents", label: "Documents" },
6
+ { key: "indexes", label: "Indexes" },
7
+ { key: "mappings", label: "Mappings" },
8
+ { key: "schema", label: "Schema" },
9
+ ],
10
+ };
11
+ };
@@ -1 +0,0 @@
1
- .notifications.svelte-2qov3s{position:fixed;top:90px;right:20px;z-index:1001;display:flex;flex-direction:column;gap:12px}.notification.svelte-2qov3s{padding:14px 18px;border-radius:1rem;box-shadow:0 4px 12px #00000026;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;gap:12px;min-width:320px;max-width:480px;animation:svelte-2qov3s-slideIn .4s cubic-bezier(.16,1,.3,1);border:1px solid rgba(255,255,255,.1);font-size:14px}.notification.svelte-2qov3s button:where(.svelte-2qov3s){background:#fff3;border:none;border-radius:8px;cursor:pointer;opacity:.8;margin-left:auto;padding:4px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;transition:all .2s}.notification.svelte-2qov3s button:where(.svelte-2qov3s):hover{opacity:1;background:#ffffff4d}.notification-error.svelte-2qov3s{background-color:#ff453a;color:#fff}.notification-success.svelte-2qov3s{background-color:var(--button-success);color:#fff}.notification-info.svelte-2qov3s{background-color:#0a84ff;color:#fff}@keyframes svelte-2qov3s-slideIn{0%{transform:translate(450px);opacity:0}to{transform:translate(0);opacity:1}}.warning-banner.svelte-1358fs2{background-color:#f59e0b;color:#111827;padding:12px 24px;border-bottom:1px solid #d97706}.warning-content.svelte-1358fs2{display:flex;align-items:center;gap:12px;max-width:1400px;margin:0 auto}.warning-content.svelte-1358fs2 svg:where(.svelte-1358fs2){flex-shrink:0}.warning-content.svelte-1358fs2 span:where(.svelte-1358fs2){flex:1;font-size:14px;line-height:1.5}.warning-content.svelte-1358fs2 code:where(.svelte-1358fs2){background-color:#0000001a;padding:2px 6px;border-radius:3px;font-family:monospace;font-size:13px}.dismiss-button.svelte-1358fs2{background:none;border:none;font-size:24px;cursor:pointer;opacity:.7;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#111827}.dismiss-button.svelte-1358fs2:hover{opacity:1}.theme-content.svelte-u8uo5a{display:none}html[data-theme-mode=light] .theme-light.svelte-u8uo5a,html[data-theme-mode=dark] .theme-dark.svelte-u8uo5a{display:inline-flex;opacity:1}html[data-theme-mode=system][data-theme=light] .theme-system-light.svelte-u8uo5a,html[data-theme-mode=system][data-theme=dark] .theme-system-dark.svelte-u8uo5a{display:inline-flex;opacity:.6}.theme-text-system.svelte-u8uo5a{display:none}html[data-theme-mode=system] .theme-text-system.svelte-u8uo5a{display:inline}html[data-theme-mode=light] .theme-switcher.svelte-u8uo5a button:where(.svelte-u8uo5a):first-child,html[data-theme-mode=dark] .theme-switcher.svelte-u8uo5a button:where(.svelte-u8uo5a):first-child{opacity:1}html[data-theme-mode=system] .theme-switcher.svelte-u8uo5a button:where(.svelte-u8uo5a):first-child{opacity:.6}html[data-theme-mode=system] .theme-switcher.svelte-u8uo5a button:where(.svelte-u8uo5a):last-child{opacity:1}html[data-theme-mode=light] .theme-switcher.svelte-u8uo5a button:where(.svelte-u8uo5a):last-child,html[data-theme-mode=dark] .theme-switcher.svelte-u8uo5a button:where(.svelte-u8uo5a):last-child{opacity:.6}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-200:oklch(88.5% .062 18.334);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-green-500:oklch(72.3% .219 149.579);--color-blue-500:oklch(62.3% .214 259.815);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--blur-sm:8px;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}html{height:100%}body{background-color:var(--background-color);color:var(--text);tab-size:2;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Inter,system-ui,sans-serif}a:hover{text-decoration:underline}input[type=text],input[type=number],textarea{border-radius:var(--radius-2xl);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 3);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));background-color:var(--color-3);color:var(--text);border:1px solid var(--color-4);transition:border-color .2s,background-color .2s}input[type=text]:focus,input[type=number]:focus,textarea:focus{border-color:var(--link);background-color:var(--light-background);outline:none}input::placeholder,textarea::placeholder{color:var(--text-secondary);opacity:1}::selection{color:var(--text);background-color:#007aff33}}@layer components{.btn{cursor:pointer;border-radius:var(--radius-xl);border-style:var(--tw-border-style);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;border-width:1px;font-size:14px;transition-duration:.2s}.btn-sm{padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.btn-default{background-color:var(--light-background);color:var(--text);border-color:var(--color-4)}.btn-default:hover:not(:disabled){background-color:var(--color-1-5);filter:brightness(.98)}.btn-danger{background-color:var(--button-danger);color:#fff;border-color:#0000}.btn-danger:hover:not(:disabled){filter:brightness(1.1)}.btn-success{background-color:var(--button-success);color:#fff;border-color:#0000}.btn-success:hover:not(:disabled){filter:brightness(1.05)}.btn-primary{background-color:var(--link);color:#fff;border-color:#0000}.btn-primary:hover:not(:disabled){filter:brightness(1.1)}.btn-outline-danger{color:var(--button-danger);background:0 0;border-color:#ff3b304d}.btn-outline-danger:hover:not(:disabled){background-color:#ff3b301a}.btn-outline-success{color:var(--button-success);background:0 0;border-color:#34c7594d}.btn-outline-success:hover:not(:disabled){background-color:#34c7591a}.btn-outline-light{color:var(--text);border-color:var(--color-4);background:0 0}.btn-outline-light:hover:not(:disabled){background-color:var(--color-3)}.btn-outline-primary{color:var(--link);border-color:var(--link);background:0 0}.btn-outline-primary:hover:not(:disabled){background-color:var(--link);color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed}.table{border-collapse:collapse;width:100%}.table thead tr{background-color:var(--color-3)}.table th,.table td{text-align:left;border-bottom:1px solid var(--border-color);padding:12px}.table tbody tr:last-child td{border-bottom:none}.table th{color:var(--text);font-weight:600}.table tbody tr:hover{background-color:var(--color-1-5)}.badge{border:1px solid var(--color-4);background-color:var(--light-background);border-radius:8px;padding:4px 10px;font-size:12px;display:inline-block}.badge-danger{background-color:var(--button-danger);color:#fff;border-color:#0000}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background-color:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background-color:var(--light-background);border:1px solid var(--color-4);border-radius:1.25rem;width:90%;max-width:500px;box-shadow:0 10px 40px #00000026}.modal-body{padding:24px}.modal-footer{border-top:1px solid var(--color-4);justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}.loading{text-align:center;color:var(--text-darker);padding:40px}}@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-3{top:calc(var(--spacing) * 3)}.right-3{right:calc(var(--spacing) * 3)}.left-0{left:calc(var(--spacing) * 0)}.z-10{z-index:10}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[1000\]{z-index:1000}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.-my-2{margin-block:calc(var(--spacing) * -2)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-2{height:calc(var(--spacing) * 2)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-7{height:calc(var(--spacing) * 7)}.h-9{height:calc(var(--spacing) * 9)}.h-14{height:calc(var(--spacing) * 14)}.h-\[18px\]{height:18px}.h-full{height:100%}.max-h-\[80vh\]{max-height:80vh}.max-h-\[400px\]{max-height:400px}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-7{width:calc(var(--spacing) * 7)}.w-\[18px\]{width:18px}.w-full{width:100%}.w-px{width:1px}.max-w-4xl{max-width:var(--container-4xl)}.max-w-32{max-width:calc(var(--spacing) * 32)}.max-w-\[96rem\]{max-width:96rem}.max-w-\[600px\]{max-width:600px}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.flex-\[2\]{flex:2}.flex-shrink{flex-shrink:1}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-y{resize:vertical}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.\!rounded-none{border-radius:0!important}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-\[var\(--border-color\)\]{border-color:var(--border-color)}.border-\[var\(--color-3\)\]{border-color:var(--color-3)}.border-red-200{border-color:var(--color-red-200)}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab,red,red)){.border-red-500\/30{border-color:color-mix(in oklab,var(--color-red-500) 30%,transparent)}}.border-yellow-500\/30{border-color:#edb2004d}@supports (color:color-mix(in lab,red,red)){.border-yellow-500\/30{border-color:color-mix(in oklab,var(--color-yellow-500) 30%,transparent)}}.border-t-\[var\(--link\)\]{border-top-color:var(--link)}.bg-\[var\(--background-color\)\]\/80{background-color:var(--background-color)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--background-color\)\]\/80{background-color:color-mix(in oklab,var(--background-color) 80%,transparent)}}.bg-\[var\(--border-color\)\]{background-color:var(--border-color)}.bg-\[var\(--color-1\)\]{background-color:var(--color-1)}.bg-\[var\(--color-2\)\]{background-color:var(--color-2)}.bg-\[var\(--color-3\)\],.bg-\[var\(--color-3\)\]\/30{background-color:var(--color-3)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--color-3\)\]\/30{background-color:color-mix(in oklab,var(--color-3) 30%,transparent)}}.bg-\[var\(--color-3\)\]\/50{background-color:var(--color-3)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--color-3\)\]\/50{background-color:color-mix(in oklab,var(--color-3) 50%,transparent)}}.bg-\[var\(--color-4\)\]{background-color:var(--color-4)}.bg-\[var\(--light-background\)\],.bg-\[var\(--light-background\)\]\/70{background-color:var(--light-background)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--light-background\)\]\/70{background-color:color-mix(in oklab,var(--light-background) 70%,transparent)}}.bg-black{background-color:var(--color-black)}.bg-green-500{background-color:var(--color-green-500)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500) 10%,transparent)}}.bg-transparent{background-color:#0000}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-yellow-500\/10{background-color:#edb2001a}@supports (color:color-mix(in lab,red,red)){.bg-yellow-500\/10{background-color:color-mix(in oklab,var(--color-yellow-500) 10%,transparent)}}.p-0{padding:calc(var(--spacing) * 0)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-0{padding-block:calc(var(--spacing) * 0)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-24{padding-block:calc(var(--spacing) * 24)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pl-4{padding-left:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[var\(--danger\,\#f44336\)\]{color:var(--danger,#f44336)}.text-\[var\(--text-muted\)\]{color:var(--text-muted)}.text-\[var\(--text-secondary\)\]{color:var(--text-secondary)}.text-blue-500{color:var(--color-blue-500)}.text-red-600{color:var(--color-red-600)}.text-white{color:var(--color-white)}.text-yellow-600{color:var(--color-yellow-600)}.capitalize{text-transform:capitalize}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.no-underline{text-decoration-line:none}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.shadow-\[inset_0_-1px_0_rgba\(0\,0\,0\,0\.06\)\]{--tw-shadow:inset 0 -1px 0 var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.group-hover\:flex:is(:where(.group):hover *){display:flex}.group-hover\:inline:is(:where(.group):hover *){display:inline}.hover\:bg-\[rgba\(255\,59\,48\,0\.1\)\]:hover{background-color:#ff3b301a}.hover\:bg-\[var\(--button-success-l\)\]:hover{background-color:var(--button-success-l)}.hover\:bg-\[var\(--color-3\)\]:hover{background-color:var(--color-3)}.hover\:bg-\[var\(--hover-background\)\]:hover{background-color:var(--hover-background)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:text-\[var\(--text\)\]:hover{color:var(--text)}.hover\:no-underline:hover{text-decoration-line:none}.hover\:underline:hover{text-decoration-line:underline}.hover\:brightness-110:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:flex{display:flex}.sm\:inline{display:inline}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:gap-4{gap:calc(var(--spacing) * 4)}.sm\:p-4{padding:calc(var(--spacing) * 4)}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:px-4{padding-inline:calc(var(--spacing) * 4)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.sm\:text-\[14px\]{font-size:14px}}@media(min-width:48rem){.md\:block{display:block}.md\:flex{display:flex}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:py-10{padding-block:calc(var(--spacing) * 10)}}@media(min-width:64rem){.lg\:px-8{padding-inline:calc(var(--spacing) * 8)}}@media(prefers-color-scheme:dark){.dark\:bg-white{background-color:var(--color-white)}.dark\:text-black{color:var(--color-black)}}.dotted{border-bottom:1px dotted var(--text);cursor:help}.error{color:var(--error)}}:root[data-theme=light]{--color-1:#f5f5f7;--color-1-5:#fff;--light-background:#fff;--color-3:#f0f0f2;--color-4:#e5e5e7;--background-color:var(--color-1);--border-color:var(--color-4);--text:#1d1d1f;--text-inverse:#fff;--text-darker:#6e6e73;--text-lighter:#000;--text-secondary:#86868b;--link:#007aff;--error:#ff3b30;--button-danger:#ff3b30;--button-danger-l:#ff6961;--button-success:#059669;--button-light:#1d1d1f;--button-light-hover:#000;--code-namespace:#0070c1;--code-boolean:#007aff;--code-null:#007aff;--code-numbers:#098658;--code-string:#d73a49;--code-links:#0451a5;--code-summary:#22863a;--code-regexp:#d16969;--code-function:#6f42c1;--border:1px solid var(--color-4)}:root[data-theme=dark]{--color-1:#1c1c1e;--color-1-5:#2c2c2e;--light-background:#2c2c2e;--color-3:#3a3a3c;--color-4:#48484a;--background-color:var(--color-1);--border-color:var(--color-3);--text:#f5f5f7;--text-inverse:#1c1c1e;--text-darker:#98989d;--text-lighter:#fff;--text-secondary:#8e8e93;--link:#0a84ff;--error:#ff453a;--button-danger:#ff453a;--button-danger-l:#ff6961;--button-success:#10b981;--button-light:#f5f5f7;--button-light-hover:#fff;--code-namespace:#9cdcfe;--code-boolean:#0a84ff;--code-null:#0a84ff;--code-numbers:#a5d6a7;--code-string:#ff8a65;--code-links:#4fc3f7;--code-summary:#81c784;--code-regexp:#ef9a9a;--code-function:#dcdcaa;--border:1px solid var(--color-3)}:root:not([data-theme]){--color-1:#f5f5f7;--color-1-5:#fff;--light-background:#fff;--color-3:#f0f0f2;--color-4:#e5e5e7;--background-color:var(--color-1);--border-color:var(--color-4);--text:#1d1d1f;--text-inverse:#fff;--text-darker:#6e6e73;--text-lighter:#000;--text-secondary:#86868b;--link:#007aff;--error:#ff3b30;--button-danger:#ff3b30;--button-danger-l:#ff6961;--button-success:#059669;--button-light:#1d1d1f;--button-light-hover:#000;--code-namespace:#0070c1;--code-boolean:#007aff;--code-null:#007aff;--code-numbers:#098658;--code-string:#d73a49;--code-links:#0451a5;--code-summary:#22863a;--code-regexp:#d16969;--code-function:#6f42c1;--border:1px solid var(--color-4)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}
@@ -1 +0,0 @@
1
- import{a5 as d,a6 as v,a7 as h,m as c,a8 as l,a9 as f,T as p,aa as A}from"./C6nv_pni.js";import{b as S,r as g}from"./C1s4M21f.js";const m=Symbol("is custom element"),T=Symbol("is html"),N=f?"link":"LINK",E=f?"progress":"PROGRESS";function I(r){if(c){var s=!1,e=()=>{if(!s){if(s=!0,r.hasAttribute("value")){var o=r.value;_(r,"value",null),r.value=o}if(r.hasAttribute("checked")){var a=r.checked;_(r,"checked",null),r.checked=a}}};r.__on_r=e,p(e),A()}}function R(r,s){var e=n(r);e.value===(e.value=s??void 0)||r.value===s&&(s!==0||r.nodeName!==E)||(r.value=s??"")}function _(r,s,e,o){var a=n(r);c&&(a[s]=r.getAttribute(s),s==="src"||s==="srcset"||s==="href"&&r.nodeName===N)||a[s]!==(a[s]=e)&&(s==="loading"&&(r[d]=e),e==null?r.removeAttribute(s):typeof e!="string"&&L(r).includes(s)?r[s]=e:r.setAttribute(s,e))}function n(r){return r.__attributes??={[m]:r.nodeName.includes("-"),[T]:r.namespaceURI===v}}var i=new Map;function L(r){var s=r.getAttribute("is")||r.nodeName,e=i.get(s);if(e)return e;i.set(s,e=[]);for(var o,a=r,u=Element.prototype;u!==a;){o=l(a);for(var t in o)o[t].set&&e.push(t);a=h(a)}return e}const M="";function b(...r){return S+M+g(r[0],r[1])}export{I as a,R as b,b as r,_ as s};
@@ -1 +0,0 @@
1
- import{a3 as u,j as c,k as i,J as p,a4 as d,i as h}from"./C6nv_pni.js";function y(a,e,t){u(()=>{var r=c(()=>e(a,t?.())||{});if(t&&r?.update){var n=!1,f={};i(()=>{var s=t();p(s),n&&d(f,s)&&(f=s,r.update(s))}),n=!0}if(r?.destroy)return()=>r.destroy()})}const o=new Map;function k(a,e="default"){const t=`$$portal.${e}`;if(o.has(t))throw`duplicate portal key "${e}"`;return o.set(t,a),{destroy:o.delete.bind(o,t)}}function l(a,e){if(!o.has(e))throw`unknown portal ${e}`;const t=o.get(e);return t.insertBefore(a,null),()=>t.contains(a)&&t.removeChild(a)}function m(a,e="default"){let t;const r=`$$portal.${e}`;return o.has(r)?t=l(a,r):h().then(()=>{t=l(a,r)}),{destroy:()=>t?.()}}export{y as a,k as c,m as p};
@@ -1,2 +0,0 @@
1
- ���T��,��0��E_�6�o���S$�
2
- ��k�����R��W�j��ф�MS�m6��ZP�e��1���3�
@@ -1,4 +0,0 @@
1
- import{j as Rt,i as ae,bn as Pt}from"./C6nv_pni.js";import{c as Tt,e as Lt,d as jt,f as Ut,H as N,N as B,g as W,P as Le,p as O,i as je,b as T,s as M,w as Ct,n as Ae,h as tt,j as Se,k as ne,l as we,S as he,m as Ye,o as $t,q as Nt,t as Dt,u as Ue,x as H,y as xt,z as Bt,A as rt,B as Mt,C as Ft,D as at,E as nt}from"./C1s4M21f.js";class _e{constructor(t,r){this.status=t,typeof r=="string"?this.body={message:r}:r?this.body=r:this.body={message:`Error: ${t}`}}toString(){return JSON.stringify(this.body)}}class Ce{constructor(t,r){this.status=t,this.location=r}}class $e extends Error{constructor(t,r,a){super(a),this.status=t,this.text=r}}function qt({nodes:e,server_loads:t,dictionary:r,matchers:a}){const n=new Set(t);return Object.entries(r).map(([l,[c,s,h]])=>{const{pattern:f,params:p}=Tt(l),d={id:l,exec:u=>{const w=f.exec(u);if(w)return Lt(w,p,a)},errors:[1,...h||[]].map(u=>e[u]),layouts:[0,...s||[]].map(i),leaf:o(c)};return d.errors.length=d.layouts.length=Math.max(d.errors.length,d.layouts.length),d});function o(l){const c=l<0;return c&&(l=~l),[c,e[l]]}function i(l){return l===void 0?l:[n.has(l),e[l]]}}function ot(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function ze(e,t,r=JSON.stringify){const a=r(t);try{sessionStorage[e]=a}catch{}}class K extends Error{constructor(t,r,a,n){super(t),this.name="DevalueError",this.path=r.join(""),this.value=a,this.root=n}}function Ge(e){return Object(e)!==e}const Vt=Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function Ht(e){const t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||Object.getPrototypeOf(t)===null||Object.getOwnPropertyNames(t).sort().join("\0")===Vt}function Kt(e){return Object.prototype.toString.call(e).slice(8,-1)}function Yt(e){switch(e){case'"':return'\\"';case"<":return"\\u003C";case"\\":return"\\\\";case`
2
- `:return"\\n";case"\r":return"\\r";case" ":return"\\t";case"\b":return"\\b";case"\f":return"\\f";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029";default:return e<" "?`\\u${e.charCodeAt(0).toString(16).padStart(4,"0")}`:""}}function U(e){let t="",r=0;const a=e.length;for(let n=0;n<a;n+=1){const o=e[n],i=Yt(o);i&&(t+=e.slice(r,n)+i,r=n+1)}return`"${r===0?e:t+e.slice(r)}"`}function zt(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.getOwnPropertyDescriptor(e,t).enumerable)}const Gt=/^[a-zA-Z_$][a-zA-Z_$0-9]*$/;function Je(e){return Gt.test(e)?"."+e:"["+JSON.stringify(e)+"]"}function Jt(e){if(e.length===0||e.length>1&&e.charCodeAt(0)===48)return!1;for(let r=0;r<e.length;r++){const a=e.charCodeAt(r);if(a<48||a>57)return!1}const t=+e;return!(t>=2**32-1||t<0)}function Zt(e){const t=Object.keys(e);for(var r=t.length-1;r>=0&&!Jt(t[r]);r--);return t.length=r+1,t}function Wt(e){const t=new DataView(e);let r="";for(let a=0;a<e.byteLength;a++)r+=String.fromCharCode(t.getUint8(a));return er(r)}function Xt(e){const t=Qt(e),r=new ArrayBuffer(t.length),a=new DataView(r);for(let n=0;n<r.byteLength;n++)a.setUint8(n,t.charCodeAt(n));return r}const st="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function Qt(e){e.length%4===0&&(e=e.replace(/==?$/,""));let t="",r=0,a=0;for(let n=0;n<e.length;n++)r<<=6,r|=st.indexOf(e[n]),a+=6,a===24&&(t+=String.fromCharCode((r&16711680)>>16),t+=String.fromCharCode((r&65280)>>8),t+=String.fromCharCode(r&255),r=a=0);return a===12?(r>>=4,t+=String.fromCharCode(r)):a===18&&(r>>=2,t+=String.fromCharCode((r&65280)>>8),t+=String.fromCharCode(r&255)),t}function er(e){let t="";for(let r=0;r<e.length;r+=3){const a=[void 0,void 0,void 0,void 0];a[0]=e.charCodeAt(r)>>2,a[1]=(e.charCodeAt(r)&3)<<4,e.length>r+1&&(a[1]|=e.charCodeAt(r+1)>>4,a[2]=(e.charCodeAt(r+1)&15)<<2),e.length>r+2&&(a[2]|=e.charCodeAt(r+2)>>6,a[3]=e.charCodeAt(r+2)&63);for(let n=0;n<a.length;n++)typeof a[n]>"u"?t+="=":t+=st[a[n]]}return t}const Ne=-1,Ee=-2,it=-3,ct=-4,lt=-5,De=-6,ft=-7;function Er(e,t){return ut(JSON.parse(e),t)}function ut(e,t){if(typeof e=="number")return o(e,!0);if(!Array.isArray(e)||e.length===0)throw new Error("Invalid input");const r=e,a=Array(r.length);let n=null;function o(i,l=!1){if(i===Ne)return;if(i===it)return NaN;if(i===ct)return 1/0;if(i===lt)return-1/0;if(i===De)return-0;if(l||typeof i!="number")throw new Error("Invalid input");if(i in a)return a[i];const c=r[i];if(!c||typeof c!="object")a[i]=c;else if(Array.isArray(c))if(typeof c[0]=="string"){const s=c[0],h=t&&Object.hasOwn(t,s)?t[s]:void 0;if(h){let f=c[1];if(typeof f!="number"&&(f=r.push(c[1])-1),n??=new Set,n.has(f))throw new Error("Invalid circular reference");return n.add(f),a[i]=h(o(f)),n.delete(f),a[i]}switch(s){case"Date":a[i]=new Date(c[1]);break;case"Set":const f=new Set;a[i]=f;for(let u=1;u<c.length;u+=1)f.add(o(c[u]));break;case"Map":const p=new Map;a[i]=p;for(let u=1;u<c.length;u+=2)p.set(o(c[u]),o(c[u+1]));break;case"RegExp":a[i]=new RegExp(c[1],c[2]);break;case"Object":a[i]=Object(c[1]);break;case"BigInt":a[i]=BigInt(c[1]);break;case"null":const d=Object.create(null);a[i]=d;for(let u=1;u<c.length;u+=2)d[c[u]]=o(c[u+1]);break;case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"BigInt64Array":case"BigUint64Array":{if(r[c[1]][0]!=="ArrayBuffer")throw new Error("Invalid data");const u=globalThis[s],w=o(c[1]),y=new u(w);a[i]=c[2]!==void 0?y.subarray(c[2],c[3]):y;break}case"ArrayBuffer":{const u=c[1];if(typeof u!="string")throw new Error("Invalid ArrayBuffer encoding");const w=Xt(u);a[i]=w;break}case"Temporal.Duration":case"Temporal.Instant":case"Temporal.PlainDate":case"Temporal.PlainTime":case"Temporal.PlainDateTime":case"Temporal.PlainMonthDay":case"Temporal.PlainYearMonth":case"Temporal.ZonedDateTime":{const u=s.slice(9);a[i]=Temporal[u].from(c[1]);break}case"URL":{const u=new URL(c[1]);a[i]=u;break}case"URLSearchParams":{const u=new URLSearchParams(c[1]);a[i]=u;break}default:throw new Error(`Unknown type ${s}`)}}else if(c[0]===ft){const s=c[1],h=new Array(s);a[i]=h;for(let f=2;f<c.length;f+=2){const p=c[f];h[p]=o(c[f+1])}}else{const s=new Array(c.length);a[i]=s;for(let h=0;h<c.length;h+=1){const f=c[h];f!==Ee&&(s[h]=o(f))}}else{const s={};a[i]=s;for(const h of Object.keys(c)){if(h==="__proto__")throw new Error("Cannot parse an object with a `__proto__` property");const f=c[h];s[h]=o(f)}}return a[i]}return o(0)}function tr(e,t){const r=[],a=new Map,n=[];if(t)for(const s of Object.getOwnPropertyNames(t))n.push({key:s,fn:t[s]});const o=[];let i=0;function l(s){if(s===void 0)return Ne;if(Number.isNaN(s))return it;if(s===1/0)return ct;if(s===-1/0)return lt;if(s===0&&1/s<0)return De;if(a.has(s))return a.get(s);const h=i++;a.set(s,h);for(const{key:p,fn:d}of n){const u=d(s);if(u)return r[h]=`["${p}",${l(u)}]`,h}if(typeof s=="function")throw new K("Cannot stringify a function",o,s,e);let f="";if(Ge(s))f=ve(s);else{const p=Kt(s);switch(p){case"Number":case"String":case"Boolean":f=`["Object",${ve(s)}]`;break;case"BigInt":f=`["BigInt",${s}]`;break;case"Date":f=`["Date","${!isNaN(s.getDate())?s.toISOString():""}"]`;break;case"URL":f=`["URL",${U(s.toString())}]`;break;case"URLSearchParams":f=`["URLSearchParams",${U(s.toString())}]`;break;case"RegExp":const{source:u,flags:w}=s;f=w?`["RegExp",${U(u)},"${w}"]`:`["RegExp",${U(u)}]`;break;case"Array":{let y=!1;f="[";for(let _=0;_<s.length;_+=1)if(_>0&&(f+=","),Object.hasOwn(s,_))o.push(`[${_}]`),f+=l(s[_]),o.pop();else if(y)f+=Ee;else{const I=Zt(s),m=I.length,b=String(s.length).length,A=(s.length-m)*3,E=4+b+m*(b+1);if(A>E){f="["+ft+","+s.length;for(let v=0;v<I.length;v++){const P=I[v];o.push(`[${P}]`),f+=","+P+","+l(s[P]),o.pop()}break}else y=!0,f+=Ee}f+="]";break}case"Set":f='["Set"';for(const y of s)f+=`,${l(y)}`;f+="]";break;case"Map":f='["Map"';for(const[y,_]of s)o.push(`.get(${Ge(y)?ve(y):"..."})`),f+=`,${l(y)},${l(_)}`,o.pop();f+="]";break;case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"BigInt64Array":case"BigUint64Array":{const y=s;f='["'+p+'",'+l(y.buffer);const _=s.byteOffset,I=_+s.byteLength;if(_>0||I!==y.buffer.byteLength){const m=+/(\d+)/.exec(p)[1]/8;f+=`,${_/m},${I/m}`}f+="]";break}case"ArrayBuffer":{f=`["ArrayBuffer","${Wt(s)}"]`;break}case"Temporal.Duration":case"Temporal.Instant":case"Temporal.PlainDate":case"Temporal.PlainTime":case"Temporal.PlainDateTime":case"Temporal.PlainMonthDay":case"Temporal.PlainYearMonth":case"Temporal.ZonedDateTime":f=`["${p}",${U(s.toString())}]`;break;default:if(!Ht(s))throw new K("Cannot stringify arbitrary non-POJOs",o,s,e);if(zt(s).length>0)throw new K("Cannot stringify POJOs with symbolic keys",o,s,e);if(Object.getPrototypeOf(s)===null){f='["null"';for(const y of Object.keys(s)){if(y==="__proto__")throw new K("Cannot stringify objects with __proto__ keys",o,s,e);o.push(Je(y)),f+=`,${U(y)},${l(s[y])}`,o.pop()}f+="]"}else{f="{";let y=!1;for(const _ of Object.keys(s)){if(_==="__proto__")throw new K("Cannot stringify objects with __proto__ keys",o,s,e);y&&(f+=","),y=!0,o.push(Je(_)),f+=`${U(_)}:${l(s[_])}`,o.pop()}f+="}"}}}return r[h]=f,h}const c=l(e);return c<0?`${c}`:`[${r.join(",")}]`}function ve(e){const t=typeof e;return t==="string"?U(e):e instanceof String?U(e.toString()):e===void 0?Ne.toString():e===0&&1/e<0?De.toString():t==="bigint"?`["BigInt","${e}"]`:String(e)}function rr(e){return e.filter(t=>t!=null)}const ar="x-sveltekit-invalidated",nr="x-sveltekit-trailing-slash";function or(e,t){const r=Object.fromEntries(Object.entries(t).map(([a,n])=>[a,n.encode]));return tr(e,r)}function Ir(e,t){if(e===void 0)return"";const r=or(e,t),a=new TextEncoder().encode(r);return jt(a).replaceAll("=","").replaceAll("+","-").replaceAll("/","_")}function Or(e,t){return e+"/"+t}function oe(e){return e instanceof _e||e instanceof $e?e.status:500}function sr(e){return e instanceof $e?e.text:"Internal Error"}const ir="/__data.json",cr=".html__data.json";function lr(e){return e.endsWith(".html")?e.replace(/\.html$/,cr):e.replace(/\/$/,"")+ir}const Ze={spanContext(){return fr},setAttribute(){return this},setAttributes(){return this},addEvent(){return this},setStatus(){return this},updateName(){return this},end(){return this},isRecording(){return!1},recordException(){return this},addLink(){return this},addLinks(){return this}},fr={traceId:"",spanId:"",traceFlags:0},dt=Rt??(e=>e()),ur=new Set(["icon","shortcut icon","apple-touch-icon"]),x=ot(nt)??{},J=ot(rt)??{},D={url:Ye({}),page:Ye({}),navigating:Ct(null),updated:Ut()};function ye(e){x[e]=M()}function pt(e,t){let r=e+1;for(;x[r];)delete x[r],r+=1;for(r=t+1;J[r];)delete J[r],r+=1}function V(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(()=>{})}async function ht(){if("serviceWorker"in navigator){const e=await navigator.serviceWorker.getRegistration(T||"/");e&&await e.update()}}function Ie(){}let xe,Oe,se,C,Re,S,_t={};const ie=[],ce=[];let L=null;function le(){L?.fork?.then(e=>e?.discard()),L=null}const re=new Map,yt=new Set,dr=new Set,z=new Set;let g={branch:[],error:null,url:null},Be=!1,fe=!1,We=!0,Z=!1,Y=!1,Me=!1,X=!1,Q,k,R,$;const G=new Set;let be;const ue=new Map;async function Rr(e,t,r){globalThis.__sveltekit_ysz0qk?.data&&(_t=globalThis.__sveltekit_ysz0qk.data),document.URL!==location.href&&(location.href=location.href),S=e,await e.hooks.init?.(),xe=qt(e),C=document.documentElement,Re=t,Oe=e.nodes[0],se=e.nodes[1],Oe(),se(),k=history.state?.[N],R=history.state?.[B],k||(k=R=Date.now(),history.replaceState({...history.state,[N]:k,[B]:R},""));const a=x[k];function n(){a&&(history.scrollRestoration="manual",scrollTo(a.x,a.y))}r?(n(),await vr(Re,r)):(await F({type:"enter",url:W(S.hash?kr(new URL(location.href)):location.href),replace_state:!0}),n()),wr()}async function mt(e=!0,t=!0){if(await(be||=Promise.resolve()),!be)return;be=null;const r=$={},a=await ee(g.url,!0);if(le(),X&&ue.forEach(({resource:n})=>{n.refresh?.()}),e){const n=O.state,o=a&&await He(a);if(!o||r!==$)return;if(o.type==="redirect")return Fe(new URL(o.location,g.url).href,{replaceState:!0},1,r);t||(o.props.page.state=n),at(o.props.page),g=o.state,Pe(),Q.$set(o.props)}else Pe();await Promise.all([...ue.values()].map(({resource:n})=>n)).catch(Ie)}function Pe(){ie.length=0,X=!1}function gt(e){ce.some(t=>t?.snapshot)&&(J[e]=ce.map(t=>t?.snapshot?.capture()))}function wt(e){J[e]?.forEach((t,r)=>{ce[r]?.snapshot?.restore(t)})}function Xe(){ye(k),ze(nt,x),gt(R),ze(rt,J)}async function Fe(e,t,r,a){let n;t.invalidateAll&&le(),await F({type:"goto",url:W(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:r,nav_token:a,accept:()=>{t.invalidateAll&&(X=!0,n=[...ue.keys()]),t.invalidate&&t.invalidate.forEach(St)}}),t.invalidateAll&&ae().then(ae).then(()=>{ue.forEach(({resource:o},i)=>{n?.includes(i)&&o.refresh?.()})})}async function pr(e){if(e.id!==L?.id){le();const t={};G.add(t),L={id:e.id,token:t,promise:He({...e,preload:t}).then(r=>(G.delete(t),r.type==="loaded"&&r.state.error&&le(),r)),fork:null}}return L.promise}async function ke(e){const t=(await ee(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(r=>r[1]()))}async function vt(e,t,r){g=e.state;const a=document.querySelector("style[data-sveltekit]");if(a&&a.remove(),Object.assign(O,e.props.page),Q=new S.root({target:t,props:{...e.props,stores:D,components:ce},hydrate:r,sync:!1}),await Promise.resolve(),wt(R),r){const n={from:null,to:{params:g.params,route:{id:g.route?.id??null},url:new URL(location.href),scroll:x[k]??M()},willUnload:!1,type:"enter",complete:Promise.resolve()};z.forEach(o=>o(n))}fe=!0}function de({url:e,params:t,branch:r,status:a,error:n,route:o,form:i}){let l="never";if(T&&(e.pathname===T||e.pathname===T+"/"))l="always";else for(const d of r)d?.slash!==void 0&&(l=d.slash);e.pathname=Dt(e.pathname,l),e.search=e.search;const c={type:"loaded",state:{url:e,params:t,branch:r,error:n,route:o},props:{constructors:rr(r).map(d=>d.node.component),page:te(O)}};i!==void 0&&(c.props.form=i);let s={},h=!O,f=0;for(let d=0;d<Math.max(r.length,g.branch.length);d+=1){const u=r[d],w=g.branch[d];u?.data!==w?.data&&(h=!0),u&&(s={...s,...u.data},h&&(c.props[`data_${f}`]=s),f+=1)}return(!g.url||e.href!==g.url.href||g.error!==n||i!==void 0&&i!==O.form||h)&&(c.props.page={error:n,params:t,route:{id:o?.id??null},state:{},status:a,url:new URL(e),form:i??null,data:h?s:O.data}),c}async function qe({loader:e,parent:t,url:r,params:a,route:n,server_data_node:o}){let i=null,l=!0;const c={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},s=await e();if(s.universal?.load){let h=function(...p){for(const d of p){const{href:u}=new URL(d,r);c.dependencies.add(u)}};const f={tracing:{enabled:!1,root:Ze,current:Ze},route:new Proxy(n,{get:(p,d)=>(l&&(c.route=!0),p[d])}),params:new Proxy(a,{get:(p,d)=>(l&&c.params.add(d),p[d])}),data:o?.data??null,url:Nt(r,()=>{l&&(c.url=!0)},p=>{l&&c.search_params.add(p)},S.hash),async fetch(p,d){p instanceof Request&&(d={body:p.method==="GET"||p.method==="HEAD"?void 0:await p.blob(),cache:p.cache,credentials:p.credentials,headers:[...p.headers].length>0?p?.headers:void 0,integrity:p.integrity,keepalive:p.keepalive,method:p.method,mode:p.mode,redirect:p.redirect,referrer:p.referrer,referrerPolicy:p.referrerPolicy,signal:p.signal,...d});const{resolved:u,promise:w}=bt(p,d,r);return l&&h(u.href),w},setHeaders:()=>{},depends:h,parent(){return l&&(c.parent=!0),t()},untrack(p){l=!1;try{return p()}finally{l=!0}}};i=await s.universal.load.call(null,f)??null}return{node:s,loader:e,server:o,universal:s.universal?.load?{type:"data",data:i,uses:c}:null,data:i??o?.data??null,slash:s.universal?.trailingSlash??o?.slash}}function bt(e,t,r){let a=e instanceof Request?e.url:e;const n=new URL(a,r);n.origin===r.origin&&(a=n.href.slice(r.origin.length));const o=fe?Mt(a,n.href,t):Ft(a,t);return{resolved:n,promise:o}}function Qe(e,t,r,a,n,o){if(X)return!0;if(!n)return!1;if(n.parent&&e||n.route&&t||n.url&&r)return!0;for(const i of n.search_params)if(a.has(i))return!0;for(const i of n.params)if(o[i]!==g.params[i])return!0;for(const i of n.dependencies)if(ie.some(l=>l(new URL(i))))return!0;return!1}function Ve(e,t){return e?.type==="data"?e:e?.type==="skip"?t??null:null}function hr(e,t){if(!e)return new Set(t.searchParams.keys());const r=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(const a of r){const n=e.searchParams.getAll(a),o=t.searchParams.getAll(a);n.every(i=>o.includes(i))&&o.every(i=>n.includes(i))&&r.delete(a)}return r}function et({error:e,url:t,route:r,params:a}){return{type:"loaded",state:{error:e,url:t,route:r,params:a,branch:[]},props:{page:te(O),constructors:[]}}}async function He({id:e,invalidating:t,url:r,params:a,route:n,preload:o}){if(L?.id===e)return G.delete(L.token),L.promise;const{errors:i,layouts:l,leaf:c}=n,s=[...l,c];i.forEach(m=>m?.().catch(()=>{})),s.forEach(m=>m?.[1]().catch(()=>{}));let h=null;const f=g.url?e!==pe(g.url):!1,p=g.route?n.id!==g.route.id:!1,d=hr(g.url,r);let u=!1;{const m=s.map((b,A)=>{const E=g.branch[A],v=!!b?.[0]&&(E?.loader!==b[1]||Qe(u,p,f,d,E.server?.uses,a));return v&&(u=!0),v});if(m.some(Boolean)){try{h=await Et(r,m)}catch(b){const A=await q(b,{url:r,params:a,route:{id:e}});return G.has(o)?et({error:A,url:r,params:a,route:n}):me({status:oe(b),error:A,url:r,route:n})}if(h.type==="redirect")return h}}const w=h?.nodes;let y=!1;const _=s.map(async(m,b)=>{if(!m)return;const A=g.branch[b],E=w?.[b];if((!E||E.type==="skip")&&m[1]===A?.loader&&!Qe(y,p,f,d,A.universal?.uses,a))return A;if(y=!0,E?.type==="error")throw E;return qe({loader:m[1],url:r,params:a,route:n,parent:async()=>{const P={};for(let j=0;j<b;j+=1)Object.assign(P,(await _[j])?.data);return P},server_data_node:Ve(E===void 0&&m[0]?{type:"skip"}:E??null,m[0]?A?.server:void 0)})});for(const m of _)m.catch(()=>{});const I=[];for(let m=0;m<s.length;m+=1)if(s[m])try{I.push(await _[m])}catch(b){if(b instanceof Ce)return{type:"redirect",location:b.location};if(G.has(o))return et({error:await q(b,{params:a,url:r,route:{id:n.id}}),url:r,params:a,route:n});let A=oe(b),E;if(w?.includes(b))A=b.status??A,E=b.error;else if(b instanceof _e)E=b.body;else{if(await D.updated.check())return await ht(),await V(r);E=await q(b,{params:a,url:r,route:{id:n.id}})}const v=await _r(m,I,i);return v?de({url:r,params:a,branch:I.slice(0,v.idx).concat(v.node),status:A,error:E,route:n}):await At(r,{id:n.id},E,A)}else I.push(void 0);return de({url:r,params:a,branch:I,status:200,error:null,route:n,form:t?void 0:null})}async function _r(e,t,r){for(;e--;)if(r[e]){let a=e;for(;!t[a];)a-=1;try{return{idx:a+1,node:{node:await r[e](),loader:r[e],data:{},server:null,universal:null}}}catch{continue}}}async function me({status:e,error:t,url:r,route:a}){const n={};let o=null;if(S.server_loads[0]===0)try{const l=await Et(r,[!0]);if(l.type!=="data"||l.nodes[0]&&l.nodes[0].type!=="data")throw 0;o=l.nodes[0]??null}catch{(r.origin!==Ue||r.pathname!==location.pathname||Be)&&await V(r)}try{const i=await qe({loader:Oe,url:r,params:n,route:a,parent:()=>Promise.resolve({}),server_data_node:Ve(o)}),l={node:await se(),loader:se,universal:null,server:null,data:null};return de({url:r,params:n,branch:[i,l],status:e,error:t,route:null})}catch(i){if(i instanceof Ce)return Fe(new URL(i.location,location.href),{},0);throw i}}async function yr(e){const t=e.href;if(re.has(t))return re.get(t);let r;try{const a=(async()=>{let n=await S.hooks.reroute({url:new URL(e),fetch:async(o,i)=>bt(o,i,e).promise})??e;if(typeof n=="string"){const o=new URL(e);S.hash?o.hash=n:o.pathname=n,n=o}return n})();re.set(t,a),r=await a}catch{re.delete(t);return}return r}async function ee(e,t){if(e&&!je(e,T,S.hash)){const r=await yr(e);if(!r)return;const a=mr(r);for(const n of xe){const o=n.exec(a);if(o)return{id:pe(e),invalidating:t,route:n,params:$t(o),url:e}}}}function mr(e){return xt(S.hash?e.hash.replace(/^#/,"").replace(/[?#].+/,""):e.pathname.slice(T.length))||"/"}function pe(e){return(S.hash?e.hash.replace(/^#/,""):e.pathname)+e.search}function kt({url:e,type:t,intent:r,delta:a,event:n,scroll:o}){let i=!1;const l=Ke(g,r,e,t,o??null);a!==void 0&&(l.navigation.delta=a),n!==void 0&&(l.navigation.event=n);const c={...l.navigation,cancel:()=>{i=!0,l.reject(new Error("navigation cancelled"))}};return Z||yt.forEach(s=>s(c)),i?null:l}async function F({type:e,url:t,popped:r,keepfocus:a,noscroll:n,replace_state:o,state:i={},redirect_count:l=0,nav_token:c={},accept:s=Ie,block:h=Ie,event:f}){_t={};const p=$;$=c;const d=await ee(t,!1),u=e==="enter"?Ke(g,d,t,e):kt({url:t,type:e,delta:r?.delta,intent:d,scroll:r?.scroll,event:f});if(!u){h(),$===c&&($=p);return}const w=k,y=R;s(),Z=!0,fe&&u.navigation.type!=="enter"&&D.navigating.set(Ae.current=u.navigation);let _=d&&await He(d);if(!_){if(je(t,T,S.hash))return await V(t,o);_=await At(t,{id:null},await q(new $e(404,"Not Found",`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404,o)}if(t=d?.url||t,$!==c)return u.reject(new Error("navigation aborted")),!1;if(_.type==="redirect"){if(l<20){await F({type:e,url:new URL(_.location,t),popped:r,keepfocus:a,noscroll:n,replace_state:o,state:i,redirect_count:l+1,nav_token:c}),u.fulfil(void 0);return}_=await me({status:500,error:await q(new Error("Redirect loop"),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}})}else _.props.page.status>=400&&await D.updated.check()&&(await ht(),await V(t,o));if(Pe(),ye(w),gt(y),_.props.page.url.pathname!==t.pathname&&(t.pathname=_.props.page.url.pathname),i=r?r.state:i,!r){const v=o?0:1,P={[N]:k+=v,[B]:R+=v,[he]:i};(o?history.replaceState:history.pushState).call(history,P,"",t),o||pt(k,R)}const I=d&&L?.id===d.id?L.fork:null;L=null,_.props.page.state=i;let m;if(fe){const v=(await Promise.all(Array.from(dr,j=>j(u.navigation)))).filter(j=>typeof j=="function");if(v.length>0){let j=function(){v.forEach(ge=>{z.delete(ge)})};v.push(j),v.forEach(ge=>{z.add(ge)})}g=_.state,_.props.page&&(_.props.page.url=t);const P=I&&await I;P?m=P.commit():(Q.$set(_.props),at(_.props.page),m=Pt?.()),Me=!0}else await vt(_,Re,!1);const{activeElement:b}=document;await m,await ae(),await ae();let A=null;if(We){const v=r?r.scroll:n?M():null;v?scrollTo(v.x,v.y):(A=t.hash&&document.getElementById(Ot(t)))?A.scrollIntoView():scrollTo(0,0)}const E=document.activeElement!==b&&document.activeElement!==document.body;!a&&!E&&br(t,!A),We=!0,_.props.page&&Object.assign(O,_.props.page),Z=!1,e==="popstate"&&wt(R),u.fulfil(void 0),u.navigation.to&&(u.navigation.to.scroll=M()),z.forEach(v=>v(u.navigation)),D.navigating.set(Ae.current=null)}async function At(e,t,r,a,n){return e.origin===Ue&&e.pathname===location.pathname&&!Be?await me({status:a,error:r,url:e,route:t}):await V(e,n)}function gr(){let e,t={element:void 0,href:void 0},r;C.addEventListener("mousemove",l=>{const c=l.target;clearTimeout(e),e=setTimeout(()=>{o(c,H.hover)},20)});function a(l){l.defaultPrevented||o(l.composedPath()[0],H.tap)}C.addEventListener("mousedown",a),C.addEventListener("touchstart",a,{passive:!0});const n=new IntersectionObserver(l=>{for(const c of l)c.isIntersecting&&(ke(new URL(c.target.href)),n.unobserve(c.target))},{threshold:0});async function o(l,c){const s=tt(l,C),h=s===t.element&&s?.href===t.href&&c>=r;if(!s||h)return;const{url:f,external:p,download:d}=Se(s,T,S.hash);if(p||d)return;const u=ne(s),w=f&&pe(g.url)===pe(f);if(!(u.reload||w))if(c<=u.preload_data){t={element:s,href:s.href},r=H.tap;const y=await ee(f,!1);if(!y)return;pr(y)}else c<=u.preload_code&&(t={element:s,href:s.href},r=c,ke(f))}function i(){n.disconnect();for(const l of C.querySelectorAll("a")){const{url:c,external:s,download:h}=Se(l,T,S.hash);if(s||h)continue;const f=ne(l);f.reload||(f.preload_code===H.viewport&&n.observe(l),f.preload_code===H.eager&&ke(c))}}z.add(i),i()}function q(e,t){if(e instanceof _e)return e.body;const r=oe(e),a=sr(e);return S.hooks.handleError({error:e,event:t,status:r,message:a})??{message:a}}function Pr(e,t={}){return e=new URL(W(e)),e.origin!==Ue?Promise.reject(new Error("goto: invalid URL")):Fe(e,t,0)}function Tr(e){return St(e),mt()}function St(e){if(typeof e=="function")ie.push(e);else{const{href:t}=new URL(e,location.href);ie.push(r=>r.href===t)}}function Lr(){return X=!0,mt()}function jr(e,t){ye(k);const r={[N]:k+=1,[B]:R,[Le]:O.url.href,[he]:t};history.pushState(r,"",W(e)),Me=!0,O.state=t,Q.$set({page:dt(()=>te(O))}),pt(k,R)}function Ur(e,t){const r={[N]:k,[B]:R,[Le]:O.url.href,[he]:t};history.replaceState(r,"",W(e)),O.state=t,Q.$set({page:dt(()=>te(O))})}function wr(){history.scrollRestoration="manual",addEventListener("beforeunload",t=>{let r=!1;if(Xe(),!Z){const a=Ke(g,void 0,null,"leave"),n={...a.navigation,cancel:()=>{r=!0,a.reject(new Error("navigation cancelled"))}};yt.forEach(o=>o(n))}r?(t.preventDefault(),t.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&Xe()}),navigator.connection?.saveData||gr(),C.addEventListener("click",async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;const r=tt(t.composedPath()[0],C);if(!r)return;const{url:a,external:n,target:o,download:i}=Se(r,T,S.hash);if(!a)return;if(o==="_parent"||o==="_top"){if(window.parent!==window)return}else if(o&&o!=="_self")return;const l=ne(r);if(!(r instanceof SVGAElement)&&a.protocol!==location.protocol&&!(a.protocol==="https:"||a.protocol==="http:")||i)return;const[s,h]=(S.hash?a.hash.replace(/^#/,""):a.href).split("#"),f=s===we(location);if(n||l.reload&&(!f||!h)){kt({url:a,type:"link",event:t})?Z=!0:t.preventDefault();return}if(h!==void 0&&f){const[,p]=g.url.href.split("#");if(p===h){if(t.preventDefault(),h===""||h==="top"&&r.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const d=r.ownerDocument.getElementById(decodeURIComponent(h));d&&(d.scrollIntoView(),d.focus())}return}if(Y=!0,ye(k),e(a),!l.replace_state)return;Y=!1}t.preventDefault(),await new Promise(p=>{requestAnimationFrame(()=>{setTimeout(p,0)}),setTimeout(p,100)}),await F({type:"link",url:a,keepfocus:l.keepfocus,noscroll:l.noscroll,replace_state:l.replace_state??a.href===location.href,event:t})}),C.addEventListener("submit",t=>{if(t.defaultPrevented)return;const r=HTMLFormElement.prototype.cloneNode.call(t.target),a=t.submitter;if((a?.formTarget||r.target)==="_blank"||(a?.formMethod||r.method)!=="get")return;const i=new URL(a?.hasAttribute("formaction")&&a?.formAction||r.action);if(je(i,T,!1))return;const l=t.target,c=ne(l);if(c.reload)return;t.preventDefault(),t.stopPropagation();const s=new FormData(l,a);i.search=new URLSearchParams(s).toString(),F({type:"form",url:i,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??i.href===location.href,event:t})}),addEventListener("popstate",async t=>{if(!Te){if(t.state?.[N]){const r=t.state[N];if($={},r===k)return;const a=x[r],n=t.state[he]??{},o=new URL(t.state[Le]??location.href),i=t.state[B],l=g.url?we(location)===we(g.url):!1;if(i===R&&(Me||l)){n!==O.state&&(O.state=n),e(o),x[k]=M(),a&&scrollTo(a.x,a.y),k=r;return}const s=r-k;await F({type:"popstate",url:o,popped:{state:n,scroll:a,delta:s},accept:()=>{k=r,R=i},block:()=>{history.go(-s)},nav_token:$,event:t})}else if(!Y){const r=new URL(location.href);e(r),S.hash&&location.reload()}}}),addEventListener("hashchange",()=>{Y&&(Y=!1,history.replaceState({...history.state,[N]:++k,[B]:R},"",location.href))});for(const t of document.querySelectorAll("link"))ur.has(t.rel)&&(t.href=t.href);addEventListener("pageshow",t=>{t.persisted&&D.navigating.set(Ae.current=null)});function e(t){g.url=O.url=t,D.page.set(te(O)),D.page.notify()}}async function vr(e,{status:t=200,error:r,node_ids:a,params:n,route:o,server_route:i,data:l,form:c}){Be=!0;const s=new URL(location.href);let h;({params:n={},route:o={id:null}}=await ee(s,!1)||{}),h=xe.find(({id:d})=>d===o.id);let f,p=!0;try{const d=a.map(async(w,y)=>{const _=l[y];return _?.uses&&(_.uses=It(_.uses)),qe({loader:S.nodes[w],url:s,params:n,route:o,parent:async()=>{const I={};for(let m=0;m<y;m+=1)Object.assign(I,(await d[m]).data);return I},server_data_node:Ve(_)})}),u=await Promise.all(d);if(h){const w=h.layouts;for(let y=0;y<w.length;y++)w[y]||u.splice(y,0,void 0)}f=de({url:s,params:n,branch:u,status:t,error:r,form:c,route:h??null})}catch(d){if(d instanceof Ce){await V(new URL(d.location,location.href));return}f=await me({status:oe(d),error:await q(d,{url:s,params:n,route:o}),url:s,route:o}),e.textContent="",p=!1}f.props.page&&(f.props.page.state={}),await vt(f,e,p)}async function Et(e,t){const r=new URL(e);r.pathname=lr(e.pathname),e.pathname.endsWith("/")&&r.searchParams.append(nr,"1"),r.searchParams.append(ar,t.map(o=>o?"1":"0").join(""));const a=window.fetch,n=await a(r.href,{});if(!n.ok){let o;throw n.headers.get("content-type")?.includes("application/json")?o=await n.json():n.status===404?o="Not Found":n.status===500&&(o="Internal Error"),new _e(n.status,o)}return new Promise(async o=>{const i=new Map,l=n.body.getReader();function c(h){return ut(h,{...S.decoders,Promise:f=>new Promise((p,d)=>{i.set(f,{fulfil:p,reject:d})})})}let s="";for(;;){const{done:h,value:f}=await l.read();if(h&&!s)break;for(s+=!f&&s?`
3
- `:Bt.decode(f,{stream:!0});;){const p=s.indexOf(`
4
- `);if(p===-1)break;const d=JSON.parse(s.slice(0,p));if(s=s.slice(p+1),d.type==="redirect")return o(d);if(d.type==="data")d.nodes?.forEach(u=>{u?.type==="data"&&(u.uses=It(u.uses),u.data=c(u.data))}),o(d);else if(d.type==="chunk"){const{id:u,data:w,error:y}=d,_=i.get(u);i.delete(u),y?_.reject(c(y)):_.fulfil(c(w))}}}})}function It(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}let Te=!1;function br(e,t=!0){const r=document.querySelector("[autofocus]");if(r)r.focus();else{const a=Ot(e);if(a&&document.getElementById(a)){const{x:o,y:i}=M();setTimeout(()=>{const l=history.state;Te=!0,location.replace(new URL(`#${a}`,location.href)),history.replaceState(l,"",e),t&&scrollTo(o,i),Te=!1})}else{const o=document.body,i=o.getAttribute("tabindex");o.tabIndex=-1,o.focus({preventScroll:!0,focusVisible:!1}),i!==null?o.setAttribute("tabindex",i):o.removeAttribute("tabindex")}const n=getSelection();if(n&&n.type!=="None"){const o=[];for(let i=0;i<n.rangeCount;i+=1)o.push(n.getRangeAt(i));setTimeout(()=>{if(n.rangeCount===o.length){for(let i=0;i<n.rangeCount;i+=1){const l=o[i],c=n.getRangeAt(i);if(l.commonAncestorContainer!==c.commonAncestorContainer||l.startContainer!==c.startContainer||l.endContainer!==c.endContainer||l.startOffset!==c.startOffset||l.endOffset!==c.endOffset)return}n.removeAllRanges()}})}}}function Ke(e,t,r,a,n=null){let o,i;const l=new Promise((s,h)=>{o=s,i=h});return l.catch(()=>{}),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:M()},to:r&&{params:t?.params??null,route:{id:t?.route?.id??null},url:r,scroll:n},willUnload:!t,type:a,complete:l},fulfil:o,reject:i}}function te(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function kr(e){const t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function Ot(e){let t;if(S.hash){const[,,r]=e.hash.split("#",3);t=r??""}else t=e.hash.slice(1);return decodeURIComponent(t)}export{_e as H,Ce as R,Ir as a,S as b,Or as c,Ur as d,jr as e,Tr as f,Pr as g,Rr as h,Lr as i,Er as p,ue as q,_t as r,D as s};