mongoku 2.9.2 → 2.10.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 (458) hide show
  1. package/build/client/_app/immutable/assets/0.D8aXA7G5.css +1 -0
  2. package/build/client/_app/immutable/assets/0.D8aXA7G5.css.br +0 -0
  3. package/build/client/_app/immutable/assets/0.D8aXA7G5.css.gz +0 -0
  4. package/build/client/_app/immutable/assets/10.-WSj0hXT.css +1 -0
  5. package/build/client/_app/immutable/assets/10.-WSj0hXT.css.br +1 -0
  6. package/build/client/_app/immutable/assets/10.-WSj0hXT.css.gz +0 -0
  7. package/build/client/_app/immutable/assets/16.BpmHh9U0.css +1 -0
  8. package/build/client/_app/immutable/assets/16.BpmHh9U0.css.br +0 -0
  9. package/build/client/_app/immutable/assets/16.BpmHh9U0.css.gz +0 -0
  10. package/build/client/_app/immutable/chunks/-8z-rXzu.js +1 -0
  11. package/build/client/_app/immutable/chunks/-8z-rXzu.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/-8z-rXzu.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/ADrS3reX.js +1 -0
  14. package/build/client/_app/immutable/chunks/ADrS3reX.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/ADrS3reX.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/B3A9hx44.js +1 -0
  17. package/build/client/_app/immutable/chunks/B3A9hx44.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/B3A9hx44.js.gz +0 -0
  19. package/build/client/_app/immutable/chunks/B48saTbS.js +1 -0
  20. package/build/client/_app/immutable/chunks/B48saTbS.js.br +0 -0
  21. package/build/client/_app/immutable/chunks/B48saTbS.js.gz +0 -0
  22. package/build/client/_app/immutable/chunks/{IixngxlS.js → BoF-bMzh.js} +2 -2
  23. package/build/client/_app/immutable/chunks/BoF-bMzh.js.br +0 -0
  24. package/build/client/_app/immutable/chunks/BoF-bMzh.js.gz +0 -0
  25. package/build/client/_app/immutable/chunks/C5BvtFsa.js +1 -0
  26. package/build/client/_app/immutable/chunks/C5BvtFsa.js.br +0 -0
  27. package/build/client/_app/immutable/chunks/C5BvtFsa.js.gz +0 -0
  28. package/build/client/_app/immutable/chunks/C5dXZyme.js +1 -0
  29. package/build/client/_app/immutable/chunks/C5dXZyme.js.br +0 -0
  30. package/build/client/_app/immutable/chunks/C5dXZyme.js.gz +0 -0
  31. package/build/client/_app/immutable/chunks/CUBPtF8t.js +65 -0
  32. package/build/client/_app/immutable/chunks/CUBPtF8t.js.br +0 -0
  33. package/build/client/_app/immutable/chunks/CUBPtF8t.js.gz +0 -0
  34. package/build/client/_app/immutable/chunks/{9xpgPu5N.js → Cf6RCjfg.js} +1 -1
  35. package/build/client/_app/immutable/chunks/Cf6RCjfg.js.br +0 -0
  36. package/build/client/_app/immutable/chunks/Cf6RCjfg.js.gz +0 -0
  37. package/build/client/_app/immutable/chunks/CrLGr586.js +2 -0
  38. package/build/client/_app/immutable/chunks/CrLGr586.js.br +0 -0
  39. package/build/client/_app/immutable/chunks/CrLGr586.js.gz +0 -0
  40. package/build/client/_app/immutable/chunks/CsbWzWJI.js +1 -0
  41. package/build/client/_app/immutable/chunks/CsbWzWJI.js.br +0 -0
  42. package/build/client/_app/immutable/chunks/CsbWzWJI.js.gz +0 -0
  43. package/build/client/_app/immutable/chunks/CyTV7fHl.js +1 -0
  44. package/build/client/_app/immutable/chunks/CyTV7fHl.js.br +0 -0
  45. package/build/client/_app/immutable/chunks/CyTV7fHl.js.gz +0 -0
  46. package/build/client/_app/immutable/chunks/{DCAtHodH.js → D3UCTJm-.js} +2 -2
  47. package/build/client/_app/immutable/chunks/D3UCTJm-.js.br +0 -0
  48. package/build/client/_app/immutable/chunks/D3UCTJm-.js.gz +0 -0
  49. package/build/client/_app/immutable/chunks/{Dzt_TFtX.js → DH7nqg5-.js} +1 -1
  50. package/build/client/_app/immutable/chunks/DH7nqg5-.js.br +0 -0
  51. package/build/client/_app/immutable/chunks/DH7nqg5-.js.gz +0 -0
  52. package/build/client/_app/immutable/chunks/DKMyRjux.js +1 -0
  53. package/build/client/_app/immutable/chunks/DKMyRjux.js.br +0 -0
  54. package/build/client/_app/immutable/chunks/DKMyRjux.js.gz +0 -0
  55. package/build/client/_app/immutable/chunks/DO0gnjpd.js +1 -0
  56. package/build/client/_app/immutable/chunks/DO0gnjpd.js.br +0 -0
  57. package/build/client/_app/immutable/chunks/DO0gnjpd.js.gz +0 -0
  58. package/build/client/_app/immutable/chunks/DVIi8uNn.js +1 -0
  59. package/build/client/_app/immutable/chunks/DVIi8uNn.js.br +0 -0
  60. package/build/client/_app/immutable/chunks/DVIi8uNn.js.gz +0 -0
  61. package/build/client/_app/immutable/chunks/Dc47-4iR.js +1 -0
  62. package/build/client/_app/immutable/chunks/Dc47-4iR.js.br +0 -0
  63. package/build/client/_app/immutable/chunks/Dc47-4iR.js.gz +0 -0
  64. package/build/client/_app/immutable/chunks/{CTk2PBcX.js → Dcgd1m6P.js} +1 -1
  65. package/build/client/_app/immutable/chunks/Dcgd1m6P.js.br +0 -0
  66. package/build/client/_app/immutable/chunks/Dcgd1m6P.js.gz +0 -0
  67. package/build/client/_app/immutable/chunks/Ddz9xOa-.js +1 -0
  68. package/build/client/_app/immutable/chunks/Ddz9xOa-.js.br +0 -0
  69. package/build/client/_app/immutable/chunks/Ddz9xOa-.js.gz +0 -0
  70. package/build/client/_app/immutable/chunks/{IwGwbOe7.js → DfW1b8bA.js} +1 -1
  71. package/build/client/_app/immutable/chunks/DfW1b8bA.js.br +0 -0
  72. package/build/client/_app/immutable/chunks/{IwGwbOe7.js.gz → DfW1b8bA.js.gz} +0 -0
  73. package/build/client/_app/immutable/chunks/Dfjkeakv.js +1 -0
  74. package/build/client/_app/immutable/chunks/Dfjkeakv.js.br +0 -0
  75. package/build/client/_app/immutable/chunks/Dfjkeakv.js.gz +0 -0
  76. package/build/client/_app/immutable/chunks/{ChWGK2Ce.js → DgwByHCB.js} +1 -1
  77. package/build/client/_app/immutable/chunks/DgwByHCB.js.br +0 -0
  78. package/build/client/_app/immutable/chunks/DgwByHCB.js.gz +0 -0
  79. package/build/client/_app/immutable/chunks/{v8XDA7ui.js → DlVaABeK.js} +3 -3
  80. package/build/client/_app/immutable/chunks/DlVaABeK.js.br +0 -0
  81. package/build/client/_app/immutable/chunks/DlVaABeK.js.gz +0 -0
  82. package/build/client/_app/immutable/chunks/DupjJGFi.js +1 -0
  83. package/build/client/_app/immutable/chunks/DupjJGFi.js.br +0 -0
  84. package/build/client/_app/immutable/chunks/DupjJGFi.js.gz +0 -0
  85. package/build/client/_app/immutable/chunks/DymqlScG.js +1 -0
  86. package/build/client/_app/immutable/chunks/DymqlScG.js.br +0 -0
  87. package/build/client/_app/immutable/chunks/DymqlScG.js.gz +0 -0
  88. package/build/client/_app/immutable/chunks/{Z7BFksgg.js → J9ZSs_8c.js} +1 -1
  89. package/build/client/_app/immutable/chunks/J9ZSs_8c.js.br +0 -0
  90. package/build/client/_app/immutable/chunks/J9ZSs_8c.js.gz +0 -0
  91. package/build/client/_app/immutable/chunks/{CKvueigk.js → OvZJ6gNJ.js} +1 -1
  92. package/build/client/_app/immutable/chunks/OvZJ6gNJ.js.br +0 -0
  93. package/build/client/_app/immutable/chunks/OvZJ6gNJ.js.gz +0 -0
  94. package/build/client/_app/immutable/chunks/URA3nPWG.js +1 -0
  95. package/build/client/_app/immutable/chunks/URA3nPWG.js.br +0 -0
  96. package/build/client/_app/immutable/chunks/URA3nPWG.js.gz +0 -0
  97. package/build/client/_app/immutable/chunks/bZzTqofF.js +1 -0
  98. package/build/client/_app/immutable/chunks/bZzTqofF.js.br +0 -0
  99. package/build/client/_app/immutable/chunks/bZzTqofF.js.gz +0 -0
  100. package/build/client/_app/immutable/chunks/oSuzXE6i.js +1 -0
  101. package/build/client/_app/immutable/chunks/oSuzXE6i.js.br +0 -0
  102. package/build/client/_app/immutable/chunks/oSuzXE6i.js.gz +0 -0
  103. package/build/client/_app/immutable/chunks/wZh6TcLb.js +2 -0
  104. package/build/client/_app/immutable/chunks/wZh6TcLb.js.br +0 -0
  105. package/build/client/_app/immutable/chunks/wZh6TcLb.js.gz +0 -0
  106. package/build/client/_app/immutable/entry/app.G0Hwsu0f.js +2 -0
  107. package/build/client/_app/immutable/entry/app.G0Hwsu0f.js.br +0 -0
  108. package/build/client/_app/immutable/entry/app.G0Hwsu0f.js.gz +0 -0
  109. package/build/client/_app/immutable/entry/start.pOs5gHaO.js +1 -0
  110. package/build/client/_app/immutable/entry/start.pOs5gHaO.js.br +0 -0
  111. package/build/client/_app/immutable/entry/start.pOs5gHaO.js.gz +0 -0
  112. package/build/client/_app/immutable/nodes/0.BPw_KPrY.js +1 -0
  113. package/build/client/_app/immutable/nodes/0.BPw_KPrY.js.br +0 -0
  114. package/build/client/_app/immutable/nodes/0.BPw_KPrY.js.gz +0 -0
  115. package/build/client/_app/immutable/nodes/1.eWL7yJRK.js +1 -0
  116. package/build/client/_app/immutable/nodes/1.eWL7yJRK.js.br +4 -0
  117. package/build/client/_app/immutable/nodes/1.eWL7yJRK.js.gz +0 -0
  118. package/build/client/_app/immutable/nodes/10.AwBSgK4-.js +2 -0
  119. package/build/client/_app/immutable/nodes/10.AwBSgK4-.js.br +0 -0
  120. package/build/client/_app/immutable/nodes/10.AwBSgK4-.js.gz +0 -0
  121. package/build/client/_app/immutable/nodes/11.DS8hIvI2.js +6 -0
  122. package/build/client/_app/immutable/nodes/11.DS8hIvI2.js.br +0 -0
  123. package/build/client/_app/immutable/nodes/11.DS8hIvI2.js.gz +0 -0
  124. package/build/client/_app/immutable/nodes/{12.CuCxLKQr.js → 12.DP-oGzlU.js} +1 -1
  125. package/build/client/_app/immutable/nodes/12.DP-oGzlU.js.br +0 -0
  126. package/build/client/_app/immutable/nodes/12.DP-oGzlU.js.gz +0 -0
  127. package/build/client/_app/immutable/nodes/13.DCNBPtGq.js +1 -0
  128. package/build/client/_app/immutable/nodes/13.DCNBPtGq.js.br +0 -0
  129. package/build/client/_app/immutable/nodes/13.DCNBPtGq.js.gz +0 -0
  130. package/build/client/_app/immutable/nodes/14.B3qXj1Pz.js +65 -0
  131. package/build/client/_app/immutable/nodes/14.B3qXj1Pz.js.br +0 -0
  132. package/build/client/_app/immutable/nodes/14.B3qXj1Pz.js.gz +0 -0
  133. package/build/client/_app/immutable/nodes/15.DFTrPy3K.js +1 -0
  134. package/build/client/_app/immutable/nodes/15.DFTrPy3K.js.br +0 -0
  135. package/build/client/_app/immutable/nodes/15.DFTrPy3K.js.gz +0 -0
  136. package/build/client/_app/immutable/nodes/16.wrfG8awE.js +1 -0
  137. package/build/client/_app/immutable/nodes/16.wrfG8awE.js.br +0 -0
  138. package/build/client/_app/immutable/nodes/16.wrfG8awE.js.gz +0 -0
  139. package/build/client/_app/immutable/nodes/{2.Bai-TIgH.js → 2.6jE8uEJq.js} +1 -1
  140. package/build/client/_app/immutable/nodes/2.6jE8uEJq.js.br +0 -0
  141. package/build/client/_app/immutable/nodes/2.6jE8uEJq.js.gz +0 -0
  142. package/build/client/_app/immutable/nodes/{3.ev9oAmrG.js → 3.C59rlT3p.js} +1 -1
  143. package/build/client/_app/immutable/nodes/3.C59rlT3p.js.br +0 -0
  144. package/build/client/_app/immutable/nodes/3.C59rlT3p.js.gz +0 -0
  145. package/build/client/_app/immutable/nodes/4.DbZo8waJ.js +1 -0
  146. package/build/client/_app/immutable/nodes/4.DbZo8waJ.js.br +0 -0
  147. package/build/client/_app/immutable/nodes/4.DbZo8waJ.js.gz +0 -0
  148. package/build/client/_app/immutable/nodes/{5.CyK0fI1l.js → 5.Cu8LcB5H.js} +1 -1
  149. package/build/client/_app/immutable/nodes/5.Cu8LcB5H.js.br +0 -0
  150. package/build/client/_app/immutable/nodes/5.Cu8LcB5H.js.gz +0 -0
  151. package/build/client/_app/immutable/nodes/7.BSMf3Keu.js +1 -0
  152. package/build/client/_app/immutable/nodes/7.BSMf3Keu.js.br +0 -0
  153. package/build/client/_app/immutable/nodes/7.BSMf3Keu.js.gz +0 -0
  154. package/build/client/_app/immutable/nodes/8.CmQOYs57.js +2 -0
  155. package/build/client/_app/immutable/nodes/8.CmQOYs57.js.br +0 -0
  156. package/build/client/_app/immutable/nodes/8.CmQOYs57.js.gz +0 -0
  157. package/build/client/_app/immutable/nodes/9.6ZB3-a4j.js +1 -0
  158. package/build/client/_app/immutable/nodes/9.6ZB3-a4j.js.br +0 -0
  159. package/build/client/_app/immutable/nodes/9.6ZB3-a4j.js.gz +0 -0
  160. package/build/client/_app/version.json +1 -1
  161. package/build/client/_app/version.json.br +0 -0
  162. package/build/client/_app/version.json.gz +0 -0
  163. package/build/server/chunks/0-2tDL-Z_M.js +32 -0
  164. package/build/server/chunks/0-2tDL-Z_M.js.map +1 -0
  165. package/build/server/chunks/1-L1YRtIEr.js +9 -0
  166. package/build/server/chunks/{1-lx7f4PWt.js.map → 1-L1YRtIEr.js.map} +1 -1
  167. package/build/server/chunks/10-kSTe-NQK.js +43 -0
  168. package/build/server/chunks/10-kSTe-NQK.js.map +1 -0
  169. package/build/server/chunks/{11-BEDQUU1_.js → 11-BSFyIooa.js} +5 -24
  170. package/build/server/chunks/11-BSFyIooa.js.map +1 -0
  171. package/build/server/chunks/{12-CzhXMlU9.js → 12-DhN9fz9p.js} +4 -5
  172. package/build/server/chunks/12-DhN9fz9p.js.map +1 -0
  173. package/build/server/chunks/{13-D1eLiA_r.js → 13-B1mdDktE.js} +5 -24
  174. package/build/server/chunks/13-B1mdDktE.js.map +1 -0
  175. package/build/server/chunks/14-G2fvhIG4.js +38 -0
  176. package/build/server/chunks/14-G2fvhIG4.js.map +1 -0
  177. package/build/server/chunks/15-BxHbA5Ao.js +48 -0
  178. package/build/server/chunks/15-BxHbA5Ao.js.map +1 -0
  179. package/build/server/chunks/16-D0Gv3LNT.js +46 -0
  180. package/build/server/chunks/16-D0Gv3LNT.js.map +1 -0
  181. package/build/server/chunks/{2-ckJpvP-Z.js → 2-DGpX4fMQ.js} +2 -2
  182. package/build/server/chunks/{2-ckJpvP-Z.js.map → 2-DGpX4fMQ.js.map} +1 -1
  183. package/build/server/chunks/{3-TPjZ0P0_.js → 3-CwHfLh5P.js} +2 -2
  184. package/build/server/chunks/{3-TPjZ0P0_.js.map → 3-CwHfLh5P.js.map} +1 -1
  185. package/build/server/chunks/{4-DoW1zEiI.js → 4-B5F5-cxe.js} +10 -2
  186. package/build/server/chunks/4-B5F5-cxe.js.map +1 -0
  187. package/build/server/chunks/{5-cZ6VD-C-.js → 5-CxqBB_6c.js} +2 -2
  188. package/build/server/chunks/{5-cZ6VD-C-.js.map → 5-CxqBB_6c.js.map} +1 -1
  189. package/build/server/chunks/{6-eXO6RVDu.js → 6-Qus887OP.js} +3 -2
  190. package/build/server/chunks/{6-eXO6RVDu.js.map → 6-Qus887OP.js.map} +1 -1
  191. package/build/server/chunks/{7-BmJzLrSm.js → 7-BNgFbh-a.js} +6 -5
  192. package/build/server/chunks/{7-BmJzLrSm.js.map → 7-BNgFbh-a.js.map} +1 -1
  193. package/build/server/chunks/{8-Ba9OHB5H.js → 8-DOgOgmwJ.js} +4 -5
  194. package/build/server/chunks/8-DOgOgmwJ.js.map +1 -0
  195. package/build/server/chunks/{9-DSgRe_DY.js → 9-D-PO69az.js} +4 -5
  196. package/build/server/chunks/9-D-PO69az.js.map +1 -0
  197. package/build/server/chunks/IconChevronDown-D8V4kB6o.js +10 -0
  198. package/build/server/chunks/IconChevronDown-D8V4kB6o.js.map +1 -0
  199. package/build/server/chunks/{JsonValue-CGVfzyTL.js → JsonValue-B-iqFShN.js} +4 -3
  200. package/build/server/chunks/JsonValue-B-iqFShN.js.map +1 -0
  201. package/build/server/chunks/{Modal-D2E5OLRi.js → Modal-D10te4nR.js} +2 -2
  202. package/build/server/chunks/Modal-D10te4nR.js.map +1 -0
  203. package/build/server/chunks/{Panel-C6VWd6JD.js → Panel-CBztHh2Y.js} +2 -2
  204. package/build/server/chunks/Panel-CBztHh2Y.js.map +1 -0
  205. package/build/server/chunks/{PrettyJson-Bo4UtQ1o.js → PrettyJson-Dz5fCjPq.js} +6 -6
  206. package/build/server/chunks/PrettyJson-Dz5fCjPq.js.map +1 -0
  207. package/build/server/chunks/{Tooltip-OVylvwfb.js → Tooltip-BHX9gIpe.js} +2 -2
  208. package/build/server/chunks/Tooltip-BHX9gIpe.js.map +1 -0
  209. package/build/server/chunks/{TooltipTable-CLglfpck.js → TooltipTable-BIwNd3UB.js} +3 -3
  210. package/build/server/chunks/TooltipTable-BIwNd3UB.js.map +1 -0
  211. package/build/server/chunks/{_layout.svelte-CLPxHDiP.js → _layout.svelte-BX5H_goi.js} +38 -15
  212. package/build/server/chunks/_layout.svelte-BX5H_goi.js.map +1 -0
  213. package/build/server/chunks/{_page.svelte-zD7qndty.js → _page.svelte-Bh6uDLz6.js} +15 -15
  214. package/build/server/chunks/_page.svelte-Bh6uDLz6.js.map +1 -0
  215. package/build/server/chunks/_page.svelte-CHqJAnyH.js +258 -0
  216. package/build/server/chunks/_page.svelte-CHqJAnyH.js.map +1 -0
  217. package/build/server/chunks/{_page.svelte-CPcgVZQj.js → _page.svelte-CsCyoCpn.js} +15 -15
  218. package/build/server/chunks/_page.svelte-CsCyoCpn.js.map +1 -0
  219. package/build/server/chunks/{_page.svelte-CAAPpbun.js → _page.svelte-Cwyc6wIg.js} +14 -14
  220. package/build/server/chunks/_page.svelte-Cwyc6wIg.js.map +1 -0
  221. package/build/server/chunks/{_page.svelte-e5wWk327.js → _page.svelte-DE0XWW__.js} +12 -12
  222. package/build/server/chunks/_page.svelte-DE0XWW__.js.map +1 -0
  223. package/build/server/chunks/{_page.svelte-DVjTn-ck.js → _page.svelte-DIe5tQ3z.js} +14 -14
  224. package/build/server/chunks/_page.svelte-DIe5tQ3z.js.map +1 -0
  225. package/build/server/chunks/{_page.svelte-C3QVwl-z.js → _page.svelte-DT0U0FvS.js} +5 -4
  226. package/build/server/chunks/_page.svelte-DT0U0FvS.js.map +1 -0
  227. package/build/server/chunks/{_page.svelte-C_GX0K8M.js → _page.svelte-YOsljIow.js} +19 -22
  228. package/build/server/chunks/_page.svelte-YOsljIow.js.map +1 -0
  229. package/build/server/chunks/{_page.svelte-BeiSosXN.js → _page.svelte-aEFurJZ0.js} +55 -15
  230. package/build/server/chunks/_page.svelte-aEFurJZ0.js.map +1 -0
  231. package/build/server/chunks/{_page.svelte-CkZUu9Wh.js → _page.svelte-vWYc1vOs.js} +9 -9
  232. package/build/server/chunks/_page.svelte-vWYc1vOs.js.map +1 -0
  233. package/build/server/chunks/{_server.ts-i-glbZtX.js → _server.ts-BTmpua-U.js} +4 -3
  234. package/build/server/chunks/{_server.ts-i-glbZtX.js.map → _server.ts-BTmpua-U.js.map} +1 -1
  235. package/build/server/chunks/{_server.ts-CEBmCzTO.js → _server.ts-BhWrvCAV.js} +4 -3
  236. package/build/server/chunks/{_server.ts-CEBmCzTO.js.map → _server.ts-BhWrvCAV.js.map} +1 -1
  237. package/build/server/chunks/{_server.ts-CoUHVeKI.js → _server.ts-CUj-HfCf.js} +4 -3
  238. package/build/server/chunks/{_server.ts-CoUHVeKI.js.map → _server.ts-CUj-HfCf.js.map} +1 -1
  239. package/build/server/chunks/client-DrDUOhf5.js +7 -0
  240. package/build/server/chunks/{client-COtw9Xqw.js.map → client-DrDUOhf5.js.map} +1 -1
  241. package/build/server/chunks/{client2-BIa3wTXU.js → client2-Birk_77A.js} +4 -4
  242. package/build/server/chunks/{client2-BIa3wTXU.js.map → client2-Birk_77A.js.map} +1 -1
  243. package/build/server/chunks/error.svelte-DisWvlhZ.js +19 -0
  244. package/build/server/chunks/error.svelte-DisWvlhZ.js.map +1 -0
  245. package/build/server/chunks/{filters-B3U8Nh9P.js → filters-BTgp9cdC.js} +4 -7
  246. package/build/server/chunks/filters-BTgp9cdC.js.map +1 -0
  247. package/build/server/chunks/{hooks.server-BiUSRqj1.js → hooks.server-Cc7EKf-Z.js} +4 -3
  248. package/build/server/chunks/{hooks.server-BiUSRqj1.js.map → hooks.server-Cc7EKf-Z.js.map} +1 -1
  249. package/build/server/chunks/{index-CtYzvcG6.js → index-CDf-jMhD.js} +3 -2
  250. package/build/server/chunks/index-CDf-jMhD.js.map +1 -0
  251. package/build/server/chunks/{index2-B0RgZaJY.js → index2-DNcGQp0K.js} +3 -3
  252. package/build/server/chunks/index2-DNcGQp0K.js.map +1 -0
  253. package/build/server/chunks/{mongo-B92d7zNj.js → mongo-Du0OjH5b.js} +257 -24
  254. package/build/server/chunks/mongo-Du0OjH5b.js.map +1 -0
  255. package/build/server/chunks/{oauth-D6jTWKFd.js → oauth-CyIuK65I.js} +2 -2
  256. package/build/server/chunks/{oauth-D6jTWKFd.js.map → oauth-CyIuK65I.js.map} +1 -1
  257. package/build/server/chunks/{remote-xxtqbu-CDChJkWc.js → remote-xxtqbu-BCjbN3T4.js} +6 -6
  258. package/build/server/chunks/remote-xxtqbu-BCjbN3T4.js.map +1 -0
  259. package/build/server/chunks/renderer-wJWkLEmh.js +1844 -0
  260. package/build/server/chunks/renderer-wJWkLEmh.js.map +1 -0
  261. package/build/server/chunks/{root-otUAnOAR.js → root-Bs42DBih.js} +12 -1849
  262. package/build/server/chunks/root-Bs42DBih.js.map +1 -0
  263. package/build/server/chunks/{routing-EDfUNu8L.js → routing-CJRzZHIr.js} +2 -2
  264. package/build/server/chunks/{routing-EDfUNu8L.js.map → routing-CJRzZHIr.js.map} +1 -1
  265. package/build/server/chunks/{server2-D_y4YbpC.js → server2-B0ZXRoOj.js} +3 -3
  266. package/build/server/chunks/{server2-D_y4YbpC.js.map → server2-B0ZXRoOj.js.map} +1 -1
  267. package/build/server/chunks/{servers.remote-CGenkEHX.js → servers.remote-Bise-7j4.js} +5 -14
  268. package/build/server/chunks/servers.remote-Bise-7j4.js.map +1 -0
  269. package/build/server/chunks/shardKey-BnXqfB_r.js +11 -0
  270. package/build/server/chunks/shardKey-BnXqfB_r.js.map +1 -0
  271. package/build/server/chunks/{shared-DlqhoNLb.js → shared-BJTImRjE.js} +3 -2
  272. package/build/server/chunks/{shared-DlqhoNLb.js.map → shared-BJTImRjE.js.map} +1 -1
  273. package/build/server/chunks/{state.svelte-Bj5yxNNk.js → state.svelte-YUn1p3EK.js} +3 -2
  274. package/build/server/chunks/{state.svelte-Bj5yxNNk.js.map → state.svelte-YUn1p3EK.js.map} +1 -1
  275. package/build/server/index.js +7 -6
  276. package/build/server/index.js.map +1 -1
  277. package/build/server/manifest.js +29 -21
  278. package/build/server/manifest.js.map +1 -1
  279. package/package.json +1 -1
  280. package/src/api/servers.remote.ts +3 -12
  281. package/src/lib/collectionCategories.ts +25 -0
  282. package/src/lib/components/PageSwitcher.svelte +74 -6
  283. package/src/lib/components/ShardBadge.svelte +65 -0
  284. package/src/lib/server/connectionString.ts +50 -0
  285. package/src/lib/server/mongo.ts +208 -37
  286. package/src/lib/types.ts +34 -0
  287. package/src/lib/utils/filters.ts +5 -7
  288. package/src/lib/utils/mongoUri.ts +164 -0
  289. package/src/lib/utils/shardKey.ts +16 -0
  290. package/src/routes/servers/+page.svelte +1 -1
  291. package/src/routes/servers/[server]/databases/[database]/collections/+page.server.ts +5 -0
  292. package/src/routes/servers/[server]/databases/[database]/collections/+page.svelte +47 -9
  293. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/+layout.ts +3 -0
  294. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/sharding/+page.server.ts +26 -0
  295. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/sharding/+page.svelte +319 -0
  296. package/src/tests/server/connectionString.test.ts +108 -0
  297. package/build/client/_app/immutable/assets/0.DTh4C4pw.css +0 -1
  298. package/build/client/_app/immutable/assets/0.DTh4C4pw.css.br +0 -0
  299. package/build/client/_app/immutable/assets/0.DTh4C4pw.css.gz +0 -0
  300. package/build/client/_app/immutable/chunks/8tf5Lvl3.js +0 -1
  301. package/build/client/_app/immutable/chunks/8tf5Lvl3.js.br +0 -0
  302. package/build/client/_app/immutable/chunks/8tf5Lvl3.js.gz +0 -0
  303. package/build/client/_app/immutable/chunks/951V-MIZ.js +0 -1
  304. package/build/client/_app/immutable/chunks/951V-MIZ.js.br +0 -0
  305. package/build/client/_app/immutable/chunks/951V-MIZ.js.gz +0 -0
  306. package/build/client/_app/immutable/chunks/9xpgPu5N.js.br +0 -0
  307. package/build/client/_app/immutable/chunks/9xpgPu5N.js.gz +0 -0
  308. package/build/client/_app/immutable/chunks/BDGd1aqF.js +0 -2
  309. package/build/client/_app/immutable/chunks/BDGd1aqF.js.br +0 -0
  310. package/build/client/_app/immutable/chunks/BDGd1aqF.js.gz +0 -0
  311. package/build/client/_app/immutable/chunks/BN_N9-2s.js +0 -1
  312. package/build/client/_app/immutable/chunks/BN_N9-2s.js.br +0 -0
  313. package/build/client/_app/immutable/chunks/BN_N9-2s.js.gz +0 -0
  314. package/build/client/_app/immutable/chunks/BUO1EOQu.js +0 -1
  315. package/build/client/_app/immutable/chunks/BUO1EOQu.js.br +0 -0
  316. package/build/client/_app/immutable/chunks/BUO1EOQu.js.gz +0 -0
  317. package/build/client/_app/immutable/chunks/BiVfO0yo.js +0 -1
  318. package/build/client/_app/immutable/chunks/BiVfO0yo.js.br +0 -0
  319. package/build/client/_app/immutable/chunks/BiVfO0yo.js.gz +0 -0
  320. package/build/client/_app/immutable/chunks/C6P2UOyZ.js +0 -1
  321. package/build/client/_app/immutable/chunks/C6P2UOyZ.js.br +0 -0
  322. package/build/client/_app/immutable/chunks/C6P2UOyZ.js.gz +0 -0
  323. package/build/client/_app/immutable/chunks/CCOVnadf.js +0 -1
  324. package/build/client/_app/immutable/chunks/CCOVnadf.js.br +0 -0
  325. package/build/client/_app/immutable/chunks/CCOVnadf.js.gz +0 -0
  326. package/build/client/_app/immutable/chunks/CKvueigk.js.br +0 -0
  327. package/build/client/_app/immutable/chunks/CKvueigk.js.gz +0 -0
  328. package/build/client/_app/immutable/chunks/CQE8d3kg.js +0 -1
  329. package/build/client/_app/immutable/chunks/CQE8d3kg.js.br +0 -0
  330. package/build/client/_app/immutable/chunks/CQE8d3kg.js.gz +0 -0
  331. package/build/client/_app/immutable/chunks/CTk2PBcX.js.br +0 -0
  332. package/build/client/_app/immutable/chunks/CTk2PBcX.js.gz +0 -0
  333. package/build/client/_app/immutable/chunks/ChWGK2Ce.js.br +0 -0
  334. package/build/client/_app/immutable/chunks/ChWGK2Ce.js.gz +0 -0
  335. package/build/client/_app/immutable/chunks/CkMoyTwc.js +0 -1
  336. package/build/client/_app/immutable/chunks/CkMoyTwc.js.br +0 -0
  337. package/build/client/_app/immutable/chunks/CkMoyTwc.js.gz +0 -0
  338. package/build/client/_app/immutable/chunks/CmI1igJD.js +0 -1
  339. package/build/client/_app/immutable/chunks/CmI1igJD.js.br +0 -0
  340. package/build/client/_app/immutable/chunks/CmI1igJD.js.gz +0 -0
  341. package/build/client/_app/immutable/chunks/DCAtHodH.js.br +0 -0
  342. package/build/client/_app/immutable/chunks/DCAtHodH.js.gz +0 -0
  343. package/build/client/_app/immutable/chunks/DFXj4NOH.js +0 -1
  344. package/build/client/_app/immutable/chunks/DFXj4NOH.js.br +0 -0
  345. package/build/client/_app/immutable/chunks/DFXj4NOH.js.gz +0 -0
  346. package/build/client/_app/immutable/chunks/DaMh_eeB.js +0 -1
  347. package/build/client/_app/immutable/chunks/DaMh_eeB.js.br +0 -0
  348. package/build/client/_app/immutable/chunks/DaMh_eeB.js.gz +0 -0
  349. package/build/client/_app/immutable/chunks/DqxUmOYD.js +0 -66
  350. package/build/client/_app/immutable/chunks/DqxUmOYD.js.br +0 -0
  351. package/build/client/_app/immutable/chunks/DqxUmOYD.js.gz +0 -0
  352. package/build/client/_app/immutable/chunks/Dzt_TFtX.js.br +0 -0
  353. package/build/client/_app/immutable/chunks/Dzt_TFtX.js.gz +0 -0
  354. package/build/client/_app/immutable/chunks/IixngxlS.js.br +0 -0
  355. package/build/client/_app/immutable/chunks/IixngxlS.js.gz +0 -0
  356. package/build/client/_app/immutable/chunks/IwGwbOe7.js.br +0 -0
  357. package/build/client/_app/immutable/chunks/YMZQSnF3.js +0 -1
  358. package/build/client/_app/immutable/chunks/YMZQSnF3.js.br +0 -0
  359. package/build/client/_app/immutable/chunks/YMZQSnF3.js.gz +0 -0
  360. package/build/client/_app/immutable/chunks/Z7BFksgg.js.br +0 -0
  361. package/build/client/_app/immutable/chunks/Z7BFksgg.js.gz +0 -0
  362. package/build/client/_app/immutable/chunks/dlHwFtkV.js +0 -1
  363. package/build/client/_app/immutable/chunks/dlHwFtkV.js.br +0 -0
  364. package/build/client/_app/immutable/chunks/dlHwFtkV.js.gz +0 -0
  365. package/build/client/_app/immutable/chunks/v8XDA7ui.js.br +0 -0
  366. package/build/client/_app/immutable/chunks/v8XDA7ui.js.gz +0 -0
  367. package/build/client/_app/immutable/entry/app.B1EvSYDg.js +0 -2
  368. package/build/client/_app/immutable/entry/app.B1EvSYDg.js.br +0 -0
  369. package/build/client/_app/immutable/entry/app.B1EvSYDg.js.gz +0 -0
  370. package/build/client/_app/immutable/entry/start.BFVM56Yz.js +0 -1
  371. package/build/client/_app/immutable/entry/start.BFVM56Yz.js.br +0 -0
  372. package/build/client/_app/immutable/entry/start.BFVM56Yz.js.gz +0 -0
  373. package/build/client/_app/immutable/nodes/0.1R1dLPSd.js +0 -1
  374. package/build/client/_app/immutable/nodes/0.1R1dLPSd.js.br +0 -0
  375. package/build/client/_app/immutable/nodes/0.1R1dLPSd.js.gz +0 -0
  376. package/build/client/_app/immutable/nodes/1.LhEdwE1H.js +0 -1
  377. package/build/client/_app/immutable/nodes/1.LhEdwE1H.js.br +0 -0
  378. package/build/client/_app/immutable/nodes/1.LhEdwE1H.js.gz +0 -0
  379. package/build/client/_app/immutable/nodes/10.eB7zuikE.js +0 -2
  380. package/build/client/_app/immutable/nodes/10.eB7zuikE.js.br +0 -0
  381. package/build/client/_app/immutable/nodes/10.eB7zuikE.js.gz +0 -0
  382. package/build/client/_app/immutable/nodes/11.fvrVbout.js +0 -6
  383. package/build/client/_app/immutable/nodes/11.fvrVbout.js.br +0 -0
  384. package/build/client/_app/immutable/nodes/11.fvrVbout.js.gz +0 -0
  385. package/build/client/_app/immutable/nodes/12.CuCxLKQr.js.br +0 -0
  386. package/build/client/_app/immutable/nodes/12.CuCxLKQr.js.gz +0 -0
  387. package/build/client/_app/immutable/nodes/13.DPotp8O6.js +0 -1
  388. package/build/client/_app/immutable/nodes/13.DPotp8O6.js.br +0 -0
  389. package/build/client/_app/immutable/nodes/13.DPotp8O6.js.gz +0 -0
  390. package/build/client/_app/immutable/nodes/14.D5zVPym5.js +0 -65
  391. package/build/client/_app/immutable/nodes/14.D5zVPym5.js.br +0 -0
  392. package/build/client/_app/immutable/nodes/14.D5zVPym5.js.gz +0 -0
  393. package/build/client/_app/immutable/nodes/15.Cucd16Gx.js +0 -1
  394. package/build/client/_app/immutable/nodes/15.Cucd16Gx.js.br +0 -0
  395. package/build/client/_app/immutable/nodes/15.Cucd16Gx.js.gz +0 -0
  396. package/build/client/_app/immutable/nodes/2.Bai-TIgH.js.br +0 -0
  397. package/build/client/_app/immutable/nodes/2.Bai-TIgH.js.gz +0 -0
  398. package/build/client/_app/immutable/nodes/3.ev9oAmrG.js.br +0 -0
  399. package/build/client/_app/immutable/nodes/3.ev9oAmrG.js.gz +0 -0
  400. package/build/client/_app/immutable/nodes/4.DS2d90xq.js +0 -1
  401. package/build/client/_app/immutable/nodes/4.DS2d90xq.js.br +0 -0
  402. package/build/client/_app/immutable/nodes/4.DS2d90xq.js.gz +0 -0
  403. package/build/client/_app/immutable/nodes/5.CyK0fI1l.js.br +0 -0
  404. package/build/client/_app/immutable/nodes/5.CyK0fI1l.js.gz +0 -0
  405. package/build/client/_app/immutable/nodes/7.D-uzybGz.js +0 -1
  406. package/build/client/_app/immutable/nodes/7.D-uzybGz.js.br +0 -0
  407. package/build/client/_app/immutable/nodes/7.D-uzybGz.js.gz +0 -0
  408. package/build/client/_app/immutable/nodes/8.CYKKqJhA.js +0 -2
  409. package/build/client/_app/immutable/nodes/8.CYKKqJhA.js.br +0 -0
  410. package/build/client/_app/immutable/nodes/8.CYKKqJhA.js.gz +0 -0
  411. package/build/client/_app/immutable/nodes/9.CQcxG5IS.js +0 -1
  412. package/build/client/_app/immutable/nodes/9.CQcxG5IS.js.br +0 -0
  413. package/build/client/_app/immutable/nodes/9.CQcxG5IS.js.gz +0 -0
  414. package/build/server/chunks/0-BRQgSkWt.js +0 -31
  415. package/build/server/chunks/0-BRQgSkWt.js.map +0 -1
  416. package/build/server/chunks/1-lx7f4PWt.js +0 -9
  417. package/build/server/chunks/10-Censc2uj.js +0 -42
  418. package/build/server/chunks/10-Censc2uj.js.map +0 -1
  419. package/build/server/chunks/11-BEDQUU1_.js.map +0 -1
  420. package/build/server/chunks/12-CzhXMlU9.js.map +0 -1
  421. package/build/server/chunks/13-D1eLiA_r.js.map +0 -1
  422. package/build/server/chunks/14-BVNQ2wyL.js +0 -57
  423. package/build/server/chunks/14-BVNQ2wyL.js.map +0 -1
  424. package/build/server/chunks/15-Ch9c9iYB.js +0 -67
  425. package/build/server/chunks/15-Ch9c9iYB.js.map +0 -1
  426. package/build/server/chunks/4-DoW1zEiI.js.map +0 -1
  427. package/build/server/chunks/8-Ba9OHB5H.js.map +0 -1
  428. package/build/server/chunks/9-DSgRe_DY.js.map +0 -1
  429. package/build/server/chunks/JsonValue-CGVfzyTL.js.map +0 -1
  430. package/build/server/chunks/Modal-D2E5OLRi.js.map +0 -1
  431. package/build/server/chunks/Panel-C6VWd6JD.js.map +0 -1
  432. package/build/server/chunks/PrettyJson-Bo4UtQ1o.js.map +0 -1
  433. package/build/server/chunks/Tooltip-OVylvwfb.js.map +0 -1
  434. package/build/server/chunks/TooltipTable-CLglfpck.js.map +0 -1
  435. package/build/server/chunks/_layout.svelte-CLPxHDiP.js.map +0 -1
  436. package/build/server/chunks/_page.svelte-BeiSosXN.js.map +0 -1
  437. package/build/server/chunks/_page.svelte-C3QVwl-z.js.map +0 -1
  438. package/build/server/chunks/_page.svelte-CAAPpbun.js.map +0 -1
  439. package/build/server/chunks/_page.svelte-CPcgVZQj.js.map +0 -1
  440. package/build/server/chunks/_page.svelte-C_GX0K8M.js.map +0 -1
  441. package/build/server/chunks/_page.svelte-CkZUu9Wh.js.map +0 -1
  442. package/build/server/chunks/_page.svelte-DVjTn-ck.js.map +0 -1
  443. package/build/server/chunks/_page.svelte-e5wWk327.js.map +0 -1
  444. package/build/server/chunks/_page.svelte-zD7qndty.js.map +0 -1
  445. package/build/server/chunks/client-COtw9Xqw.js +0 -7
  446. package/build/server/chunks/error.svelte-DUZ2SYyF.js +0 -18
  447. package/build/server/chunks/error.svelte-DUZ2SYyF.js.map +0 -1
  448. package/build/server/chunks/filters-B3U8Nh9P.js.map +0 -1
  449. package/build/server/chunks/index-CtYzvcG6.js.map +0 -1
  450. package/build/server/chunks/index2-B0RgZaJY.js.map +0 -1
  451. package/build/server/chunks/mongo-B92d7zNj.js.map +0 -1
  452. package/build/server/chunks/remote-xxtqbu-CDChJkWc.js.map +0 -1
  453. package/build/server/chunks/root-otUAnOAR.js.map +0 -1
  454. package/build/server/chunks/servers.remote-CGenkEHX.js.map +0 -1
  455. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/+page.ts +0 -11
  456. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/indexes/+page.ts +0 -11
  457. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/mappings/+page.ts +0 -11
  458. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/schema/+page.ts +0 -11
@@ -0,0 +1,26 @@
1
+ import { logger } from "$lib/server/logger";
2
+ import { getMongo } from "$lib/server/mongo";
3
+ import type { ShardingInfo } from "$lib/types";
4
+ import type { PageServerLoad } from "./$types";
5
+
6
+ export const load: PageServerLoad = async ({ params, depends }) => {
7
+ depends("app:sharding");
8
+
9
+ const shardingPromise = (async (): Promise<{ data: ShardingInfo | null; error: string | null }> => {
10
+ try {
11
+ const mongo = await getMongo();
12
+ const data = await mongo.getShardingInfo(params.server, params.database, params.collection);
13
+ return { data, error: null };
14
+ } catch (err) {
15
+ logger.error("Error fetching sharding info:", err);
16
+ return {
17
+ data: null,
18
+ error: `Failed to fetch sharding info: ${err instanceof Error ? err.message : String(err)}`,
19
+ };
20
+ }
21
+ })();
22
+
23
+ return {
24
+ sharding: shardingPromise,
25
+ };
26
+ };
@@ -0,0 +1,319 @@
1
+ <script lang="ts">
2
+ import Panel from "$lib/components/Panel.svelte";
3
+ import { formatBytes, formatNumber } from "$lib/utils/filters";
4
+ import { formatShardKey } from "$lib/utils/shardKey";
5
+
6
+ const { data } = $props();
7
+
8
+ function pct(value: number, total: number): number {
9
+ if (total <= 0) {
10
+ return 0;
11
+ }
12
+ return Math.round((value / total) * 100);
13
+ }
14
+
15
+ // Deterministic color per shard for the distribution bar.
16
+ const shardColors = [
17
+ "hsl(210, 70%, 55%)",
18
+ "hsl(150, 60%, 45%)",
19
+ "hsl(38, 92%, 50%)",
20
+ "hsl(280, 60%, 58%)",
21
+ "hsl(0, 70%, 58%)",
22
+ "hsl(190, 65%, 48%)",
23
+ "hsl(330, 65%, 58%)",
24
+ "hsl(95, 55%, 45%)",
25
+ ];
26
+ </script>
27
+
28
+ {#await data.sharding}
29
+ <Panel title="Sharding">
30
+ <div class="loading p-4">Loading sharding info...</div>
31
+ </Panel>
32
+ {:then result}
33
+ {#if !result || result.error}
34
+ <Panel title="Sharding">
35
+ <div class="p-4">
36
+ <p class="error">{result?.error ?? "Failed to load sharding info"}</p>
37
+ </div>
38
+ </Panel>
39
+ {:else}
40
+ {@const info = result.data}
41
+ {#if !info}
42
+ <Panel title="Sharding">
43
+ <div class="p-4 text-center" style="color: var(--text-darker);">No data</div>
44
+ </Panel>
45
+ {:else if !info.shardingEnabled}
46
+ <Panel title="Sharding">
47
+ <div class="p-6 text-center">
48
+ <div class="text-3xl mb-2">⛁</div>
49
+ <p style="color: var(--text);">This server is not a sharded cluster.</p>
50
+ <p class="text-sm mt-1" style="color: var(--text-darker);">
51
+ Connect through a <code>mongos</code> router to view shard distribution.
52
+ </p>
53
+ </div>
54
+ </Panel>
55
+ {:else}
56
+ {@const totalChunks = info.totalChunks}
57
+ {@const totalDocs = info.shards.reduce((acc, s) => acc + (s.documents ?? 0), 0)}
58
+ {@const totalSize = info.shards.reduce((acc, s) => acc + (s.size ?? 0), 0)}
59
+
60
+ <!-- Status summary -->
61
+ <Panel title="Sharding status" class="mb-4">
62
+ <div class="p-4 flex flex-wrap gap-4 items-center">
63
+ {#if info.sharded}
64
+ <span class="badge badge-sharded">Sharded</span>
65
+ {:else}
66
+ <span class="badge badge-unsharded">Not sharded</span>
67
+ {/if}
68
+ {#if info.hashed}
69
+ <span class="badge badge-prop">hashed</span>
70
+ {/if}
71
+ {#if info.unique}
72
+ <span class="badge badge-prop">unique key</span>
73
+ {/if}
74
+ {#if info.sharded}
75
+ {#if info.balancerEnabled}
76
+ <span class="badge badge-ok">balancer on</span>
77
+ {:else}
78
+ <span class="badge badge-warn">balancing disabled</span>
79
+ {/if}
80
+ {/if}
81
+
82
+ {#if info.shardKey}
83
+ <div class="key-pill" title="Shard key">
84
+ <span class="key-label">shard key</span>
85
+ <span class="font-mono text-sm">{formatShardKey(info.shardKey)}</span>
86
+ </div>
87
+ {/if}
88
+
89
+ {#if info.sharded}
90
+ <div class="ml-auto text-sm" style="color: var(--text-darker);">
91
+ {formatNumber(totalChunks)} chunk{totalChunks === 1 ? "" : "s"} across {info.shards.length} shard{info
92
+ .shards.length === 1
93
+ ? ""
94
+ : "s"}
95
+ </div>
96
+ {/if}
97
+ </div>
98
+
99
+ {#if info.warning}
100
+ <div class="px-4 pb-3 text-sm" style="color: var(--warning, hsl(38, 92%, 45%));">⚠ {info.warning}</div>
101
+ {/if}
102
+ </Panel>
103
+
104
+ <!-- Distribution bar (chunks) -->
105
+ {#if info.sharded && totalChunks > 0}
106
+ <Panel title="Chunk distribution" class="mb-4">
107
+ <div class="p-4">
108
+ <div class="dist-bar">
109
+ {#each info.shards as shard, i (shard.shardId)}
110
+ {#if shard.chunks > 0}
111
+ <div
112
+ class="dist-seg"
113
+ style="width: {pct(shard.chunks, totalChunks)}%; background: {shardColors[i % shardColors.length]};"
114
+ title="{shard.shardId}: {shard.chunks} chunks ({pct(shard.chunks, totalChunks)}%)"
115
+ >
116
+ {#if pct(shard.chunks, totalChunks) >= 8}
117
+ {pct(shard.chunks, totalChunks)}%
118
+ {/if}
119
+ </div>
120
+ {/if}
121
+ {/each}
122
+ </div>
123
+ <div class="legend">
124
+ {#each info.shards as shard, i (shard.shardId)}
125
+ <div class="legend-item">
126
+ <span class="legend-dot" style="background: {shardColors[i % shardColors.length]};"></span>
127
+ <span class="font-mono text-xs">{shard.shardId}</span>
128
+ </div>
129
+ {/each}
130
+ </div>
131
+ </div>
132
+ </Panel>
133
+ {/if}
134
+
135
+ <!-- Per-shard table -->
136
+ <Panel title="Per-shard breakdown">
137
+ <div class="table-wrapper">
138
+ <table class="table">
139
+ <thead>
140
+ <tr>
141
+ <th>Shard</th>
142
+ <th>Host</th>
143
+ {#if info.sharded}
144
+ <th class="shrink-column">Chunks</th>
145
+ {/if}
146
+ <th class="shrink-column">Documents</th>
147
+ <th class="shrink-column">Size</th>
148
+ </tr>
149
+ </thead>
150
+ <tbody>
151
+ {#each info.shards as shard, i (shard.shardId)}
152
+ <tr>
153
+ <td>
154
+ <span
155
+ class="legend-dot inline-block mr-2"
156
+ style="background: {shardColors[i % shardColors.length]};"
157
+ ></span>
158
+ <span class="font-mono text-sm">{shard.shardId}</span>
159
+ </td>
160
+ <td>
161
+ <span class="font-mono text-xs" style="color: var(--text-darker);">{shard.host}</span>
162
+ </td>
163
+ {#if info.sharded}
164
+ <td>
165
+ {formatNumber(shard.chunks)}
166
+ <span class="text-xs" style="color: var(--text-darker);">
167
+ ({pct(shard.chunks, totalChunks)}%)
168
+ </span>
169
+ </td>
170
+ {/if}
171
+ <td>
172
+ {#if shard.documents != null}
173
+ {formatNumber(shard.documents)}
174
+ {#if totalDocs > 0}
175
+ <span class="text-xs" style="color: var(--text-darker);">
176
+ ({pct(shard.documents, totalDocs)}%)
177
+ </span>
178
+ {/if}
179
+ {:else}
180
+ <span style="color: var(--text-darker);">-</span>
181
+ {/if}
182
+ </td>
183
+ <td>
184
+ {#if shard.size != null}
185
+ {formatBytes(shard.size)}
186
+ {#if totalSize > 0}
187
+ <span class="text-xs" style="color: var(--text-darker);">
188
+ ({pct(shard.size, totalSize)}%)
189
+ </span>
190
+ {/if}
191
+ {:else}
192
+ <span style="color: var(--text-darker);">-</span>
193
+ {/if}
194
+ </td>
195
+ </tr>
196
+ {/each}
197
+ </tbody>
198
+ </table>
199
+ </div>
200
+ </Panel>
201
+ {/if}
202
+ {/if}
203
+ {:catch err}
204
+ <Panel title="Sharding">
205
+ <div class="p-4">
206
+ <p class="error">Error loading sharding info: {err}</p>
207
+ </div>
208
+ </Panel>
209
+ {/await}
210
+
211
+ <style lang="postcss">
212
+ .table-wrapper {
213
+ overflow-x: auto;
214
+ }
215
+
216
+ .shrink-column {
217
+ width: 1%;
218
+ white-space: nowrap;
219
+ }
220
+
221
+ .badge {
222
+ display: inline-flex;
223
+ align-items: center;
224
+ border-radius: 6px;
225
+ padding: 4px 10px;
226
+ font-size: 13px;
227
+ font-weight: 600;
228
+ }
229
+
230
+ .badge-sharded {
231
+ background-color: hsl(150, 60%, 45%);
232
+ color: white;
233
+ }
234
+
235
+ .badge-unsharded {
236
+ background-color: hsl(0, 0%, 45%);
237
+ color: white;
238
+ }
239
+
240
+ .badge-prop {
241
+ background-color: hsl(220, 70%, 55%);
242
+ color: white;
243
+ }
244
+
245
+ .badge-ok {
246
+ background-color: var(--color-3);
247
+ color: var(--text);
248
+ border: 1px solid var(--color-4);
249
+ }
250
+
251
+ .badge-warn {
252
+ background-color: hsl(38, 92%, 50%);
253
+ color: var(--text-inverse);
254
+ }
255
+
256
+ .key-pill {
257
+ display: inline-flex;
258
+ align-items: center;
259
+ gap: 8px;
260
+ border-radius: 6px;
261
+ padding: 4px 10px;
262
+ background-color: var(--color-3);
263
+ border: 1px solid var(--color-4);
264
+ color: var(--text);
265
+ }
266
+
267
+ .key-label {
268
+ font-size: 11px;
269
+ text-transform: uppercase;
270
+ letter-spacing: 0.04em;
271
+ color: var(--text-darker);
272
+ }
273
+
274
+ .dist-bar {
275
+ display: flex;
276
+ width: 100%;
277
+ height: 28px;
278
+ border-radius: 6px;
279
+ overflow: hidden;
280
+ background-color: var(--color-1);
281
+ border: 1px solid var(--border-color);
282
+ }
283
+
284
+ .dist-seg {
285
+ display: flex;
286
+ align-items: center;
287
+ justify-content: center;
288
+ font-size: 11px;
289
+ font-weight: 600;
290
+ color: white;
291
+ overflow: hidden;
292
+ white-space: nowrap;
293
+ transition: width 0.2s ease;
294
+ }
295
+
296
+ .legend {
297
+ display: flex;
298
+ flex-wrap: wrap;
299
+ gap: 12px;
300
+ margin-top: 12px;
301
+ }
302
+
303
+ .legend-item {
304
+ display: flex;
305
+ align-items: center;
306
+ gap: 6px;
307
+ }
308
+
309
+ .legend-dot {
310
+ width: 12px;
311
+ height: 12px;
312
+ border-radius: 3px;
313
+ flex-shrink: 0;
314
+ }
315
+
316
+ .error {
317
+ color: var(--error);
318
+ }
319
+ </style>
@@ -0,0 +1,108 @@
1
+ import { buildDirectConnectionUri, mongoHostKey, parseMongoUri, sanitizeMongoUri } from "$lib/server/connectionString";
2
+ import { mongoDisplayName } from "$lib/utils/mongoUri";
3
+ import { describe, expect, it } from "vitest";
4
+
5
+ const MULTI_HOST =
6
+ "mongodb://user:pass@mongodb-mongos-0.moonlanding-bucket-prod.mongodb.internal:27017,mongodb-mongos-1.moonlanding-bucket-prod.mongodb.internal:27017,mongodb-mongos-2.moonlanding-bucket-prod.mongodb.internal:27017/?replicaSet=rs0";
7
+
8
+ describe("connectionString", () => {
9
+ describe("parseMongoUri", () => {
10
+ it("parses a multi-host (mongos) connection string", () => {
11
+ const parsed = parseMongoUri(MULTI_HOST);
12
+ expect(parsed.protocol).toBe("mongodb:");
13
+ expect(parsed.username).toBe("user");
14
+ expect(parsed.password).toBe("pass");
15
+ expect(parsed.hosts).toHaveLength(3);
16
+ expect(parsed.hosts[0]).toBe("mongodb-mongos-0.moonlanding-bucket-prod.mongodb.internal:27017");
17
+ expect(parsed.hosts[2]).toBe("mongodb-mongos-2.moonlanding-bucket-prod.mongodb.internal:27017");
18
+ expect(parsed.search).toBe("replicaSet=rs0");
19
+ });
20
+
21
+ it("parses a simple single-host uri without credentials", () => {
22
+ const parsed = parseMongoUri("mongodb://localhost:27017");
23
+ expect(parsed.username).toBe("");
24
+ expect(parsed.password).toBe("");
25
+ expect(parsed.hosts).toEqual(["localhost:27017"]);
26
+ expect(parsed.pathname).toBe("");
27
+ });
28
+
29
+ it("parses mongodb+srv uris", () => {
30
+ const parsed = parseMongoUri("mongodb+srv://user:pass@cluster0.example.mongodb.net/db?w=majority");
31
+ expect(parsed.protocol).toBe("mongodb+srv:");
32
+ expect(parsed.hosts).toEqual(["cluster0.example.mongodb.net"]);
33
+ expect(parsed.pathname).toBe("/db");
34
+ expect(parsed.search).toBe("w=majority");
35
+ });
36
+
37
+ it("throws on a non-mongodb scheme", () => {
38
+ expect(() => parseMongoUri("http://example.com")).toThrow();
39
+ });
40
+ });
41
+
42
+ describe("mongoHostKey", () => {
43
+ it("returns the raw comma-joined host list for multi-host", () => {
44
+ expect(mongoHostKey(MULTI_HOST)).toBe(
45
+ "mongodb-mongos-0.moonlanding-bucket-prod.mongodb.internal:27017,mongodb-mongos-1.moonlanding-bucket-prod.mongodb.internal:27017,mongodb-mongos-2.moonlanding-bucket-prod.mongodb.internal:27017",
46
+ );
47
+ });
48
+
49
+ it("returns the host for a single-host uri", () => {
50
+ expect(mongoHostKey("mongodb://localhost:27017/db")).toBe("localhost:27017");
51
+ });
52
+ });
53
+
54
+ describe("sanitizeMongoUri", () => {
55
+ it("masks credentials in a multi-host uri without dropping hosts", () => {
56
+ const out = sanitizeMongoUri(MULTI_HOST);
57
+ expect(out).toContain("***:***@");
58
+ expect(out).not.toContain("user:pass");
59
+ expect(out).toContain("mongodb-mongos-0.moonlanding-bucket-prod.mongodb.internal:27017");
60
+ expect(out).toContain("replicaSet=rs0");
61
+ });
62
+
63
+ it("leaves credential-less uris untouched", () => {
64
+ expect(sanitizeMongoUri("mongodb://localhost:27017")).toBe("mongodb://localhost:27017");
65
+ });
66
+ });
67
+
68
+ describe("buildDirectConnectionUri", () => {
69
+ it("targets a single node, keeping credentials and adding directConnection", () => {
70
+ const node = "mongodb-mongos-1.moonlanding-bucket-prod.mongodb.internal:27017";
71
+ const out = buildDirectConnectionUri(MULTI_HOST, node);
72
+ expect(out).toContain(`@${node}/`);
73
+ expect(out).toContain("directConnection=true");
74
+ expect(out).toContain("user:pass");
75
+ // only the single node, not the comma list
76
+ expect(out).not.toContain("mongos-0");
77
+ expect(out).not.toContain("mongos-2");
78
+ });
79
+
80
+ it("adds tls=true for srv sources", () => {
81
+ const out = buildDirectConnectionUri(
82
+ "mongodb+srv://u:p@cluster0.example.mongodb.net/db",
83
+ "shard-00-00.example.mongodb.net:27017",
84
+ );
85
+ expect(out).toContain("tls=true");
86
+ expect(out).toContain("directConnection=true");
87
+ });
88
+ });
89
+
90
+ describe("mongoDisplayName", () => {
91
+ it("strips credentials and port for a single host", () => {
92
+ expect(mongoDisplayName("mongodb://user:pass@db.example.com:27017/admin")).toBe("db.example.com");
93
+ });
94
+
95
+ it("collapses a multi-host list to the shared domain with a count", () => {
96
+ // The failing real-world case: don't render a giant comma-joined name.
97
+ expect(mongoDisplayName(MULTI_HOST)).toBe("moonlanding-bucket-prod.mongodb.internal (3 hosts)");
98
+ });
99
+
100
+ it("falls back to first host (+n) when hosts share no suffix", () => {
101
+ expect(mongoDisplayName("mongodb://a.foo.com:27017,b.bar.com:27017")).toBe("a.foo.com (+1)");
102
+ });
103
+
104
+ it("returns the input unchanged for non-mongodb strings", () => {
105
+ expect(mongoDisplayName("not-a-uri")).toBe("not-a-uri");
106
+ });
107
+ });
108
+ });
@@ -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-divide-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-400:oklch(70.4% .191 22.216);--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);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.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)}.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-0\.5{margin-top:calc(var(--spacing) * .5)}.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-0{margin-bottom:calc(var(--spacing) * 0)}.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-2{margin-left:calc(var(--spacing) * 2)}.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-6{height:calc(var(--spacing) * 6)}.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-48{max-height:calc(var(--spacing) * 48)}.max-h-96{max-height:calc(var(--spacing) * 96)}.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-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-40{width:calc(var(--spacing) * 40)}.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-1{grid-template-columns:repeat(1,minmax(0,1fr))}.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)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-yellow-500\/10>:not(:last-child)){border-color:#edb2001a}@supports (color:color-mix(in lab,red,red)){:where(.divide-yellow-500\/10>:not(:last-child)){border-color:color-mix(in oklab,var(--color-yellow-500) 10%,transparent)}}.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\/10{border-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.border-red-500\/10{border-color:color-mix(in oklab,var(--color-red-500) 10%,transparent)}}.border-red-500\/20{border-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.border-red-500\/20{border-color:color-mix(in oklab,var(--color-red-500) 20%,transparent)}}.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\/20{border-color:#edb20033}@supports (color:color-mix(in lab,red,red)){.border-yellow-500\/20{border-color:color-mix(in oklab,var(--color-yellow-500) 20%,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\/5{background-color:#fb2c360d}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/5{background-color:color-mix(in oklab,var(--color-red-500) 5%,transparent)}}.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\/5{background-color:#edb2000d}@supports (color:color-mix(in lab,red,red)){.bg-yellow-500\/5{background-color:color-mix(in oklab,var(--color-yellow-500) 5%,transparent)}}.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)}.p-8{padding:calc(var(--spacing) * 8)}.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-3{padding-block:calc(var(--spacing) * 3)}.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)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.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-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.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)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.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-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-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}.uppercase{text-transform:uppercase}.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}.underline{text-decoration-line:underline}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.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}.duration-500{--tw-duration:.5s;transition-duration:.5s}.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-2\)\]:hover{background-color:var(--color-2)}.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\:grid-cols-4{grid-template-columns:repeat(4,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-divide-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{f as O,a as A}from"./DaMh_eeB.js";import{a9 as R,j as C,p as j,b as g,a8 as k,a1 as x,g as t,O as z,d as u,f as G,c as T,r as E,s as I,a as N,t as S}from"./IwGwbOe7.js";import{e as y}from"./BDGd1aqF.js";import{s as B}from"./BUO1EOQu.js";import{p as H,i as Y}from"./CCOVnadf.js";import{a as q,p as D}from"./CKvueigk.js";import{t as F,s as J}from"./DqxUmOYD.js";import{b as M}from"./CkMoyTwc.js";function m(o,e={},n,l){for(var i in n){var s=n[i];e[i]!==s&&(n[i]==null?o.style.removeProperty(i):o.style.setProperty(i,s,l))}}function K(o,e,n,l){var i=o[R];if(C||i!==e){var s=F(e,l);(!C||s!==o.getAttribute("style"))&&(s==null?o.removeAttribute("style"):o.style.cssText=s),o[R]=e}else l&&(Array.isArray(l)?(m(o,n?.[0],l[0]),m(o,n?.[1],l[1],"important")):m(o,n,l));return l}var Q=O('<div role="tooltip"><!></div>'),U=O('<div class="relative inline-block"><!></div><!>',1);function rt(o,e){j(e,!0);let n=H(e,"show",3,!1),l=H(e,"tooltipClass",3,""),i=g(void 0),s=g(void 0),f=g(k({left:"",right:"",top:""}));x(()=>{n()&&t(i)&&t(s)&&z().then(()=>{if(!t(s)||!t(i))return;const r=t(s).getBoundingClientRect(),a=t(i).getBoundingClientRect(),c=window.innerWidth,h=window.innerHeight;u(f,{left:"",right:"",top:""},!0),r.left+a.width>c?t(f).right=`${c-r.right}px`:t(f).left=`${r.left}px`;const w=h-r.bottom,W=r.top,d=5;w>=a.height+d||w>W?t(f).top=`${r.bottom+d}px`:t(f).top=`${r.top-a.height-d}px`})});var b=U(),v=G(b),P=T(v);B(P,()=>e.trigger),E(v),M(v,r=>u(s,r),()=>t(s));var _=I(v);{var L=r=>{var a=Q();let c;var h=T(a);B(h,()=>e.content),E(a),q(a,p=>D?.(p)),M(a,p=>u(i,p),()=>t(i)),S(()=>{J(a,1,`fixed bg-[var(--light-background)] border border-[var(--border-color)] rounded-2xl z-[1000] shadow-xl backdrop-blur-md ${l()??""}`),c=K(a,"color: var(--text);",c,{left:t(f).left,right:t(f).right,top:t(f).top})}),y("mouseenter",a,function(...p){e.onTooltipMouseEnter?.apply(this,p)}),y("mouseleave",a,function(...p){e.onTooltipMouseLeave?.apply(this,p)}),A(r,a)};Y(_,r=>{n()&&r(L)})}A(o,b),N()}export{rt as T,K as s};
@@ -1 +0,0 @@
1
- import{S as l,T as o,V as u,W as m,X as n,Y as d,l as p,j as _,Z as v,_ as k}from"./IwGwbOe7.js";class w{anchor;#t=new Map;#s=new Map;#e=new Map;#i=new Set;#a=!0;constructor(t,s=!0){this.anchor=t,this.#a=s}#f=t=>{if(this.#t.has(t)){var s=this.#t.get(t),e=this.#s.get(s);if(e)l(e),this.#i.delete(s);else{var a=this.#e.get(s);a&&(this.#s.set(s,a.effect),this.#e.delete(s),a.fragment.lastChild.remove(),this.anchor.before(a.fragment),e=a.effect)}for(const[i,f]of this.#t){if(this.#t.delete(i),i===t)break;const r=this.#e.get(f);r&&(o(r.effect),this.#e.delete(f))}for(const[i,f]of this.#s){if(i===s||this.#i.has(i))continue;const r=()=>{if(Array.from(this.#t.values()).includes(i)){var c=document.createDocumentFragment();k(f,c),c.append(n()),this.#e.set(i,{effect:f,fragment:c})}else o(f);this.#i.delete(i),this.#s.delete(i)};this.#a||!e?(this.#i.add(i),u(f,r,!1)):r()}}};#r=t=>{this.#t.delete(t);const s=Array.from(this.#t.values());for(const[e,a]of this.#e)s.includes(e)||(o(a.effect),this.#e.delete(e))};ensure(t,s){var e=p,a=m();if(s&&!this.#s.has(t)&&!this.#e.has(t))if(a){var i=document.createDocumentFragment(),f=n();i.append(f),this.#e.set(t,{effect:d(()=>s(f)),fragment:i})}else this.#s.set(t,d(()=>s(this.anchor)));if(this.#t.set(e,t),a){for(const[r,h]of this.#s)r===t?e.unskip_effect(h):e.skip_effect(h);for(const[r,h]of this.#e)r===t?e.unskip_effect(h.effect):e.skip_effect(h.effect);e.oncommit(this.#f),e.ondiscard(this.#r)}else _&&(this.anchor=v),this.#f(e)}}export{w as B};
@@ -1,2 +0,0 @@
1
- import{aB as ee,g as X,y as z,Q as te,P as re,al as P,w as S,Z as v,j as y,as as E,aC as V,h as se,k as ie,H as ne,aD as W,Y as p,X as J,V as x,l as g,_ as ae,aE as fe,aF as A,aG as D,aH as $,B as he,aI as oe,aJ as Q,$ as U,x as le,T as C,o as O,n as de,q as ce,aK as R,R as ue,aL as _e,aM as pe,aN as ge,F as ve,aO as ye,aP as me,aQ as q,aR as H,aS as be,aT as Z,aU as Ee,aV as Te,aW as L,v as N,aX as we,aY as Se,aZ as Re,a_ as Ne,p as ke,a$ as Ae,b0 as De,a as Oe}from"./IwGwbOe7.js";import{d as Fe}from"./DaMh_eeB.js";function xe(t){let e=0,r=z(0),i;return()=>{ee()&&(X(r),te(()=>(e===0&&(i=re(()=>t(()=>P(r)))),e+=1,()=>{S(()=>{e-=1,e===0&&(i?.(),i=void 0,P(r))})})))}}var Ce=ue|_e;function He(t,e,r,i){new Le(t,e,r,i)}class Le{parent;is_pending=!1;transform_error;#r;#_=y?v:null;#i;#o;#t;#n=null;#e=null;#s=null;#a=null;#l=0;#h=0;#d=!1;#p=new Set;#g=new Set;#f=null;#b=xe(()=>(this.#f=z(this.#l),()=>{this.#f=null}));constructor(e,r,i,n){this.#r=e,this.#i=r,this.#o=s=>{var a=E;a.b=this,a.f|=V,i(s)},this.parent=E.b,this.transform_error=n??this.parent?.transform_error??(s=>s),this.#t=se(()=>{if(y){const s=this.#_;ie();const a=s.data===ne;if(s.data.startsWith(W)){const f=JSON.parse(s.data.slice(W.length));this.#T(f)}else a?this.#w():this.#E()}else this.#v()},Ce),y&&(this.#r=v)}#E(){try{this.#n=p(()=>this.#o(this.#r))}catch(e){this.error(e)}}#T(e){const r=this.#i.failed;r&&(this.#s=p(()=>{r(this.#r,()=>e,()=>()=>{})}))}#w(){const e=this.#i.pending;e&&(this.is_pending=!0,this.#e=p(()=>e(this.#r)),S(()=>{var r=this.#a=document.createDocumentFragment(),i=J();r.append(i),this.#n=this.#u(()=>p(()=>this.#o(i))),this.#h===0&&(this.#r.before(r),this.#a=null,x(this.#e,()=>{this.#e=null}),this.#c(g))}))}#v(){try{if(this.is_pending=this.has_pending_snippet(),this.#h=0,this.#l=0,this.#n=p(()=>{this.#o(this.#r)}),this.#h>0){var e=this.#a=document.createDocumentFragment();ae(this.#n,e);const r=this.#i.pending;this.#e=p(()=>r(this.#r))}else this.#c(g)}catch(r){this.error(r)}}#c(e){this.is_pending=!1,e.transfer_effects(this.#p,this.#g)}defer_effect(e){fe(e,this.#p,this.#g)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#i.pending}#u(e){var r=E,i=Q,n=U;A(this.#t),D(this.#t),$(this.#t.ctx);try{return he.ensure(),e()}catch(s){return oe(s),null}finally{A(r),D(i),$(n)}}#y(e,r){if(!this.has_pending_snippet()){this.parent&&this.parent.#y(e,r);return}this.#h+=e,this.#h===0&&(this.#c(r),this.#e&&x(this.#e,()=>{this.#e=null}),this.#a&&(this.#r.before(this.#a),this.#a=null))}update_pending_count(e,r){this.#y(e,r),this.#l+=e,!(!this.#f||this.#d)&&(this.#d=!0,S(()=>{this.#d=!1,this.#f&&le(this.#f,this.#l)}))}get_effect_pending(){return this.#b(),X(this.#f)}error(e){if(!this.#i.onerror&&!this.#i.failed)throw e;g?.is_fork?(this.#n&&g.skip_effect(this.#n),this.#e&&g.skip_effect(this.#e),this.#s&&g.skip_effect(this.#s),g.on_fork_commit(()=>{this.#m(e)})):this.#m(e)}#m(e){this.#n&&(C(this.#n),this.#n=null),this.#e&&(C(this.#e),this.#e=null),this.#s&&(C(this.#s),this.#s=null),y&&(O(this.#_),de(),O(ce()));var r=this.#i.onerror;let i=this.#i.failed;var n=!1,s=!1;const a=()=>{if(n){ge();return}n=!0,s&&pe(),this.#s!==null&&x(this.#s,()=>{this.#s=null}),this.#u(()=>{this.#v()})},c=f=>{try{s=!0,r?.(f,a),s=!1}catch(h){R(h,this.#t&&this.#t.parent)}i&&(this.#s=this.#u(()=>{try{return p(()=>{var h=E;h.b=this,h.f|=V,i(this.#r,()=>f,()=>a)})}catch(h){return R(h,this.#t.parent),null}}))};S(()=>{var f;try{f=this.transform_error(e)}catch(h){R(h,this.#t&&this.#t.parent);return}f!==null&&typeof f=="object"&&typeof f.then=="function"?f.then(c,h=>R(h,this.#t&&this.#t.parent)):c(f)})}}const Me=["touchstart","touchmove"];function Ie(t){return Me.includes(t)}const w=Symbol("events"),G=new Set,M=new Set;function Ye(t,e,r,i={}){function n(s){if(i.capture||I.call(e,s),!s.cancelBubble)return ye(()=>r?.call(this,s))}return t.startsWith("pointer")||t.startsWith("touch")||t==="wheel"?S(()=>{e.addEventListener(t,n,i)}):e.addEventListener(t,n,i),n}function We(t,e,r,i,n){var s={capture:i,passive:n},a=Ye(t,e,r,s);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&ve(()=>{e.removeEventListener(t,a,s)})}function $e(t,e,r){(e[w]??={})[t]=r}function qe(t){for(var e=0;e<t.length;e++)G.add(t[e]);for(var r of M)r(t)}let j=null;function I(t){var e=this,r=e.ownerDocument,i=t.type,n=t.composedPath?.()||[],s=n[0]||t.target;j=t;var a=0,c=j===t&&t[w];if(c){var f=n.indexOf(c);if(f!==-1&&(e===document||e===window)){t[w]=e;return}var h=n.indexOf(e);if(h===-1)return;f<=h&&(a=f)}if(s=n[a]||t.target,s!==e){me(t,"currentTarget",{configurable:!0,get(){return s||r}});var m=Q,T=E;D(null),A(null);try{for(var _,l=[];s!==null;){var o=s.assignedSlot||s.parentNode||s.host||null;try{var d=s[w]?.[i];d!=null&&(!s.disabled||t.target===s)&&d.call(s,t)}catch(u){_?l.push(u):_=u}if(t.cancelBubble||o===e||o===null)break;s=o}if(_){for(let u of l)queueMicrotask(()=>{throw u});throw _}}finally{t[w]=e,delete t.currentTarget,D(m),A(T)}}}function je(t,e){var r=e==null?"":typeof e=="object"?`${e}`:e;r!==(t[q]??=t.nodeValue)&&(t[q]=r,t.nodeValue=`${r}`)}function Be(t,e){return K(t,e)}function Xe(t,e){H(),e.intro=e.intro??!1;const r=e.target,i=y,n=v;try{for(var s=be(r);s&&(s.nodeType!==Z||s.data!==Ee);)s=Te(s);if(!s)throw L;N(!0),O(s);const a=K(t,{...e,anchor:s});return N(!1),a}catch(a){if(a instanceof Error&&a.message.split(`
2
- `).some(c=>c.startsWith("https://svelte.dev/e/")))throw a;return a!==L&&console.warn("Failed to hydrate: ",a),e.recover===!1&&we(),H(),Se(r),N(!1),Be(t,e)}finally{N(i),O(n)}}const k=new Map;function K(t,{target:e,anchor:r,props:i={},events:n,context:s,intro:a=!0,transformError:c}){H();var f=void 0,h=Re(()=>{var m=r??e.appendChild(J());He(m,{pending:()=>{}},l=>{ke({});var o=U;if(s&&(o.c=s),n&&(i.$$events=n),y&&Fe(l,null),f=t(l,i)||{},y&&(E.nodes.end=v,v===null||v.nodeType!==Z||v.data!==Ae))throw De(),L;Oe()},c);var T=new Set,_=l=>{for(var o=0;o<l.length;o++){var d=l[o];if(!T.has(d)){T.add(d);var u=Ie(d);for(const F of[e,document]){var b=k.get(F);b===void 0&&(b=new Map,k.set(F,b));var B=b.get(d);B===void 0?(F.addEventListener(d,I,{passive:u}),b.set(d,1)):b.set(d,B+1)}}}};return _(Ne(G)),M.add(_),()=>{for(var l of T)for(const u of[e,document]){var o=k.get(u),d=o.get(l);--d==0?(u.removeEventListener(l,I),o.delete(l),o.size===0&&k.delete(u)):o.set(l,d)}M.delete(_),m!==r&&m.parentNode?.removeChild(m)}});return Y.set(f,h),f}let Y=new WeakMap;function ze(t,e){const r=Y.get(t);return r?(Y.delete(t),r(e)):Promise.resolve()}export{$e as a,qe as d,We as e,Xe as h,Be as m,je as s,ze as u};
@@ -1 +0,0 @@
1
- function e(r){return r===0?"0 B":r<1e3?r+" B":r<1e6?(r/1e3).toFixed(2)+" kB":r<1e9?(r/1e6).toFixed(2)+" MB":r<1e12?(r/1e9).toFixed(2)+" GB":(r/1e12).toFixed(2)+" TB"}function n(r){return r.toLocaleString()}function o(r){if(r.startsWith("mongodb://")||r.startsWith("mongodb+srv://"))try{return new URL(r).hostname}catch{return r}return r}export{n as a,e as f,o as s};
@@ -1 +0,0 @@
1
- import{h as p,R as t}from"./IwGwbOe7.js";import{B as c}from"./951V-MIZ.js";function f(r,s,...a){var e=new c(r);p(()=>{const n=s()??null;e.ensure(n,n&&(o=>n(o,...a)))},t)}export{f as s};
@@ -1 +0,0 @@
1
- import{c as m,a as i}from"./DaMh_eeB.js";import{f as n}from"./IwGwbOe7.js";import{s as p}from"./BUO1EOQu.js";function c(a,o){var r=m(),t=n(r);p(t,()=>o.children),i(a,r)}export{c as L};
@@ -1 +0,0 @@
1
- import{a1 as o,$ as t,aj as r,P as a}from"./IwGwbOe7.js";function i(e){throw new Error("https://svelte.dev/e/experimental_async_required")}function c(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function s(e){t===null&&c(),r&&t.l!==null?l(t).m.push(e):o(()=>{const n=a(e);if(typeof n=="function")return n})}function l(e){var n=e.l;return n.u??={a:[],b:[],m:[]}}export{i as e,s as o};
@@ -1 +0,0 @@
1
- import{h as B,j as R,k as L,R as D,am as N,q as x,o as M,v as A,Z as Y,an as q,ao as w,ap as U,g as P,a5 as T,aq as j,a8 as z,d as C,ar as F,as as Z,at as $,au as G,P as H,aj as J,av as K,aw as Q,ax as V,ay as W,az as X}from"./IwGwbOe7.js";import{B as p}from"./951V-MIZ.js";let h=!1;function k(e){var n=h;try{return h=!1,[e(),h]}finally{h=n}}function ra(e,n,f=!1){var t;R&&(t=Y,L());var i=new p(e),u=f?D:0;function v(r,s){if(R){var _=N(t);if(r!==parseInt(_.substring(1))){var l=x();M(l),i.anchor=l,A(!1),i.ensure(r,s),A(!0);return}}i.ensure(r,s)}B(()=>{var r=!1;n((s,_=0)=>{r=!0,v(_,s)}),r||v(-1,null)},u)}function na(e,n,f,t){var i=!J||(f&K)!==0,u=(f&G)!==0,v=(f&V)!==0,r=t,s=!0,_=void 0,l=()=>v&&i?(_??=T(t),P(_)):(s&&(s=!1,r=v?H(t):t),r);let c;if(u){var m=W in e||X in e;c=q(e,n)?.set??(m&&n in e?a=>e[n]=a:void 0)}var o,E=!1;u?[o,E]=k(()=>e[n]):o=e[n],o===void 0&&t!==void 0&&(o=l(),c&&(i&&w(),c(o)));var d;if(i?d=()=>{var a=e[n];return a===void 0?l():(s=!0,a)}:d=()=>{var a=e[n];return a!==void 0&&(r=void 0),a===void 0?r:a},i&&(f&U)===0)return d;if(c){var O=e.$$legacy;return(function(a,S){return arguments.length>0?((!i||!S||O||E)&&c(S?d():a),a):d()})}var b=!1,g=((f&Q)!==0?T:j)(()=>(b=!1,d()));u&&P(g);var y=Z;return(function(a,S){if(arguments.length>0){const I=S?P(g):i&&u?z(a):a;return C(g,I),b=!0,r!==void 0&&(r=I),a}return F&&b||(y.f&$)!==0?g.v:P(g)})}export{ra as i,na as p};