mongoku 2.2.4 → 2.3.0

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 (351) hide show
  1. package/build/client/_app/immutable/assets/0.BXOUh4Q1.css +1 -0
  2. package/build/client/_app/immutable/assets/0.BXOUh4Q1.css.br +0 -0
  3. package/build/client/_app/immutable/assets/0.BXOUh4Q1.css.gz +0 -0
  4. package/build/client/_app/immutable/assets/10.BrydhPds.css +1 -0
  5. package/build/client/_app/immutable/assets/10.BrydhPds.css.br +0 -0
  6. package/build/client/_app/immutable/assets/10.BrydhPds.css.gz +0 -0
  7. package/build/client/_app/immutable/assets/12.B90SyvCO.css +1 -0
  8. package/build/client/_app/immutable/assets/12.B90SyvCO.css.br +0 -0
  9. package/build/client/_app/immutable/assets/12.B90SyvCO.css.gz +0 -0
  10. package/build/client/_app/immutable/assets/Modal.zD4dMMyk.css +1 -0
  11. package/build/client/_app/immutable/assets/Modal.zD4dMMyk.css.br +0 -0
  12. package/build/client/_app/immutable/assets/Modal.zD4dMMyk.css.gz +0 -0
  13. package/build/client/_app/immutable/chunks/AIOqEo5H.js +1 -0
  14. package/build/client/_app/immutable/chunks/AIOqEo5H.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/AIOqEo5H.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/{D7E46CWw.js → BEYqxaXI.js} +1 -1
  17. package/build/client/_app/immutable/chunks/BEYqxaXI.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/BEYqxaXI.js.gz +0 -0
  19. package/build/client/_app/immutable/chunks/BJqoLy3B.js +2 -0
  20. package/build/client/_app/immutable/chunks/BJqoLy3B.js.br +0 -0
  21. package/build/client/_app/immutable/chunks/BJqoLy3B.js.gz +0 -0
  22. package/build/client/_app/immutable/chunks/{DR9xdhsg.js → BXaawuvz.js} +1 -1
  23. package/build/client/_app/immutable/chunks/BXaawuvz.js.br +2 -0
  24. package/build/client/_app/immutable/chunks/BXaawuvz.js.gz +0 -0
  25. package/build/client/_app/immutable/chunks/{D4iRRB8h.js → BgGFWTC8.js} +1 -1
  26. package/build/client/_app/immutable/chunks/BgGFWTC8.js.br +0 -0
  27. package/build/client/_app/immutable/chunks/BgGFWTC8.js.gz +0 -0
  28. package/build/client/_app/immutable/chunks/{5nAxkTTP.js → Bpmh7lVJ.js} +1 -1
  29. package/build/client/_app/immutable/chunks/Bpmh7lVJ.js.br +6 -0
  30. package/build/client/_app/immutable/chunks/Bpmh7lVJ.js.gz +0 -0
  31. package/build/client/_app/immutable/chunks/BrrIPcne.js +1 -0
  32. package/build/client/_app/immutable/chunks/BrrIPcne.js.br +0 -0
  33. package/build/client/_app/immutable/chunks/BrrIPcne.js.gz +0 -0
  34. package/build/client/_app/immutable/chunks/{BUNgwIS0.js → ByHQcyQR.js} +1 -1
  35. package/build/client/_app/immutable/chunks/ByHQcyQR.js.br +0 -0
  36. package/build/client/_app/immutable/chunks/ByHQcyQR.js.gz +0 -0
  37. package/build/client/_app/immutable/chunks/{Dx56OlI-.js → C6AfvKtU.js} +1 -1
  38. package/build/client/_app/immutable/chunks/C6AfvKtU.js.br +0 -0
  39. package/build/client/_app/immutable/chunks/C6AfvKtU.js.gz +0 -0
  40. package/build/client/_app/immutable/chunks/COPDkxhL.js +29 -0
  41. package/build/client/_app/immutable/chunks/COPDkxhL.js.br +0 -0
  42. package/build/client/_app/immutable/chunks/COPDkxhL.js.gz +0 -0
  43. package/build/client/_app/immutable/chunks/{3iRu_dUj.js → CTHGUrxr.js} +2 -2
  44. package/build/client/_app/immutable/chunks/CTHGUrxr.js.br +0 -0
  45. package/build/client/_app/immutable/chunks/CTHGUrxr.js.gz +0 -0
  46. package/build/client/_app/immutable/chunks/{BQEBQyfZ.js → Cotvfu8-.js} +1 -1
  47. package/build/client/_app/immutable/chunks/Cotvfu8-.js.br +0 -0
  48. package/build/client/_app/immutable/chunks/Cotvfu8-.js.gz +0 -0
  49. package/build/client/_app/immutable/chunks/DQ-rgtMu.js +1 -0
  50. package/build/client/_app/immutable/chunks/DQ-rgtMu.js.br +0 -0
  51. package/build/client/_app/immutable/chunks/DQ-rgtMu.js.gz +0 -0
  52. package/build/client/_app/immutable/chunks/DR2XDb5m.js +4 -0
  53. package/build/client/_app/immutable/chunks/DR2XDb5m.js.br +0 -0
  54. package/build/client/_app/immutable/chunks/DR2XDb5m.js.gz +0 -0
  55. package/build/client/_app/immutable/chunks/DUjc2RFp.js +1 -0
  56. package/build/client/_app/immutable/chunks/DUjc2RFp.js.br +0 -0
  57. package/build/client/_app/immutable/chunks/DUjc2RFp.js.gz +0 -0
  58. package/build/client/_app/immutable/chunks/{BE8UzJuY.js → DaTUpm_7.js} +1 -1
  59. package/build/client/_app/immutable/chunks/DaTUpm_7.js.br +0 -0
  60. package/build/client/_app/immutable/chunks/DaTUpm_7.js.gz +0 -0
  61. package/build/client/_app/immutable/chunks/{C0PCwpqt.js → DnwC6gcO.js} +1 -1
  62. package/build/client/_app/immutable/chunks/DnwC6gcO.js.br +0 -0
  63. package/build/client/_app/immutable/chunks/DnwC6gcO.js.gz +0 -0
  64. package/build/client/_app/immutable/chunks/Dt2qaq8g.js +1 -0
  65. package/build/client/_app/immutable/chunks/Dt2qaq8g.js.br +0 -0
  66. package/build/client/_app/immutable/chunks/Dt2qaq8g.js.gz +0 -0
  67. package/build/client/_app/immutable/chunks/EUN-td6X.js +1 -0
  68. package/build/client/_app/immutable/chunks/EUN-td6X.js.br +0 -0
  69. package/build/client/_app/immutable/chunks/EUN-td6X.js.gz +0 -0
  70. package/build/client/_app/immutable/chunks/{Cx2cA4gg.js → EbSISJZg.js} +1 -1
  71. package/build/client/_app/immutable/chunks/EbSISJZg.js.br +0 -0
  72. package/build/client/_app/immutable/chunks/EbSISJZg.js.gz +0 -0
  73. package/build/client/_app/immutable/chunks/f0NSiE2-.js +1 -0
  74. package/build/client/_app/immutable/chunks/f0NSiE2-.js.br +0 -0
  75. package/build/client/_app/immutable/chunks/f0NSiE2-.js.gz +0 -0
  76. package/build/client/_app/immutable/chunks/{C2sjtvBO.js → qhxgM-U4.js} +1 -1
  77. package/build/client/_app/immutable/chunks/qhxgM-U4.js.br +0 -0
  78. package/build/client/_app/immutable/chunks/qhxgM-U4.js.gz +0 -0
  79. package/build/client/_app/immutable/chunks/zJxs36IQ.js +1 -0
  80. package/build/client/_app/immutable/chunks/zJxs36IQ.js.br +0 -0
  81. package/build/client/_app/immutable/chunks/zJxs36IQ.js.gz +0 -0
  82. package/build/client/_app/immutable/entry/{app.DrdSPfGo.js → app.Cu4hmll6.js} +2 -2
  83. package/build/client/_app/immutable/entry/app.Cu4hmll6.js.br +0 -0
  84. package/build/client/_app/immutable/entry/app.Cu4hmll6.js.gz +0 -0
  85. package/build/client/_app/immutable/entry/start.CWodO31h.js +1 -0
  86. package/build/client/_app/immutable/entry/start.CWodO31h.js.br +2 -0
  87. package/build/client/_app/immutable/entry/start.CWodO31h.js.gz +0 -0
  88. package/build/client/_app/immutable/nodes/0.CA_MMU1Y.js +1 -0
  89. package/build/client/_app/immutable/nodes/0.CA_MMU1Y.js.br +0 -0
  90. package/build/client/_app/immutable/nodes/0.CA_MMU1Y.js.gz +0 -0
  91. package/build/client/_app/immutable/nodes/1.RRRMvoTM.js +1 -0
  92. package/build/client/_app/immutable/nodes/1.RRRMvoTM.js.br +1 -0
  93. package/build/client/_app/immutable/nodes/1.RRRMvoTM.js.gz +0 -0
  94. package/build/client/_app/immutable/nodes/10.SPSTrllh.js +1 -0
  95. package/build/client/_app/immutable/nodes/10.SPSTrllh.js.br +0 -0
  96. package/build/client/_app/immutable/nodes/10.SPSTrllh.js.gz +0 -0
  97. package/build/client/_app/immutable/nodes/{11.qfhS2VqU.js → 11.C4Wc3Kw8.js} +1 -1
  98. package/build/client/_app/immutable/nodes/11.C4Wc3Kw8.js.br +0 -0
  99. package/build/client/_app/immutable/nodes/11.C4Wc3Kw8.js.gz +0 -0
  100. package/build/client/_app/immutable/nodes/12.CWkEGtcM.js +1 -0
  101. package/build/client/_app/immutable/nodes/12.CWkEGtcM.js.br +0 -0
  102. package/build/client/_app/immutable/nodes/12.CWkEGtcM.js.gz +0 -0
  103. package/build/client/_app/immutable/nodes/13.CHTpks4Z.js +66 -0
  104. package/build/client/_app/immutable/nodes/13.CHTpks4Z.js.br +0 -0
  105. package/build/client/_app/immutable/nodes/13.CHTpks4Z.js.gz +0 -0
  106. package/build/client/_app/immutable/nodes/{2.DwwrLLW4.js → 2.tuhqPc6d.js} +1 -1
  107. package/build/client/_app/immutable/nodes/2.tuhqPc6d.js.br +0 -0
  108. package/build/client/_app/immutable/nodes/2.tuhqPc6d.js.gz +0 -0
  109. package/build/client/_app/immutable/nodes/{3.t20GootO.js → 3.304xAIC7.js} +1 -1
  110. package/build/client/_app/immutable/nodes/3.304xAIC7.js.br +0 -0
  111. package/build/client/_app/immutable/nodes/3.304xAIC7.js.gz +0 -0
  112. package/build/client/_app/immutable/nodes/{4.CXHjkPtf.js → 4.CRm68VfX.js} +1 -1
  113. package/build/client/_app/immutable/nodes/4.CRm68VfX.js.br +0 -0
  114. package/build/client/_app/immutable/nodes/4.CRm68VfX.js.gz +0 -0
  115. package/build/client/_app/immutable/nodes/{5.C9tcr5B0.js → 5.DfCi7Z5N.js} +1 -1
  116. package/build/client/_app/immutable/nodes/5.DfCi7Z5N.js.br +0 -0
  117. package/build/client/_app/immutable/nodes/5.DfCi7Z5N.js.gz +0 -0
  118. package/build/client/_app/immutable/nodes/7.COdDrqa5.js +1 -0
  119. package/build/client/_app/immutable/nodes/7.COdDrqa5.js.br +0 -0
  120. package/build/client/_app/immutable/nodes/7.COdDrqa5.js.gz +0 -0
  121. package/build/client/_app/immutable/nodes/8.COLtCRaa.js +1 -0
  122. package/build/client/_app/immutable/nodes/8.COLtCRaa.js.br +0 -0
  123. package/build/client/_app/immutable/nodes/8.COLtCRaa.js.gz +0 -0
  124. package/build/client/_app/immutable/nodes/{9.BXMJq3Z_.js → 9.DGHjsSV7.js} +2 -2
  125. package/build/client/_app/immutable/nodes/9.DGHjsSV7.js.br +0 -0
  126. package/build/client/_app/immutable/nodes/9.DGHjsSV7.js.gz +0 -0
  127. package/build/client/_app/version.json +1 -1
  128. package/build/client/_app/version.json.br +0 -0
  129. package/build/client/_app/version.json.gz +0 -0
  130. package/build/server/chunks/0-QaXL5dxl.js +22 -0
  131. package/build/server/chunks/0-QaXL5dxl.js.map +1 -0
  132. package/build/server/chunks/1-lbtVyJzb.js +9 -0
  133. package/build/server/chunks/{1-C_LPMO7A.js.map → 1-lbtVyJzb.js.map} +1 -1
  134. package/build/server/chunks/{10-DGUQMXHt.js → 10-srcxgYum.js} +4 -4
  135. package/build/server/chunks/10-srcxgYum.js.map +1 -0
  136. package/build/server/chunks/{11-CxBnyyqR.js → 11-Do6XJz0l.js} +4 -4
  137. package/build/server/chunks/11-Do6XJz0l.js.map +1 -0
  138. package/build/server/chunks/{12-K_JVUnsk.js → 12-zP_nvSCU.js} +4 -4
  139. package/build/server/chunks/12-zP_nvSCU.js.map +1 -0
  140. package/build/server/chunks/{13-Cay35aHK.js → 13-Df-9cdO7.js} +4 -4
  141. package/build/server/chunks/{13-Cay35aHK.js.map → 13-Df-9cdO7.js.map} +1 -1
  142. package/build/server/chunks/{2-ClkERMhY.js → 2-CEvLemXF.js} +2 -2
  143. package/build/server/chunks/{2-ClkERMhY.js.map → 2-CEvLemXF.js.map} +1 -1
  144. package/build/server/chunks/{3-CTpqmxdo.js → 3-C8wnnjW_.js} +2 -2
  145. package/build/server/chunks/{3-CTpqmxdo.js.map → 3-C8wnnjW_.js.map} +1 -1
  146. package/build/server/chunks/{4-CUH4fZn8.js → 4-CFsHQHNr.js} +2 -2
  147. package/build/server/chunks/{4-CUH4fZn8.js.map → 4-CFsHQHNr.js.map} +1 -1
  148. package/build/server/chunks/{5-BSEdxfut.js → 5-BHNZukuO.js} +2 -2
  149. package/build/server/chunks/{5-BSEdxfut.js.map → 5-BHNZukuO.js.map} +1 -1
  150. package/build/server/chunks/{7-DvU-_ADW.js → 7-_mc0fkA5.js} +4 -4
  151. package/build/server/chunks/7-_mc0fkA5.js.map +1 -0
  152. package/build/server/chunks/{8-CA3-CJtS.js → 8-CgCyM--7.js} +4 -4
  153. package/build/server/chunks/8-CgCyM--7.js.map +1 -0
  154. package/build/server/chunks/{9-jMOS3lPS.js → 9-CrztPNtK.js} +4 -4
  155. package/build/server/chunks/9-CrztPNtK.js.map +1 -0
  156. package/build/server/chunks/{JsonValue-WMdIUvRM.js → JsonValue-BUoddLqM.js} +10 -3
  157. package/build/server/chunks/JsonValue-BUoddLqM.js.map +1 -0
  158. package/build/server/chunks/{Modal-zVnoAfFx.js → Modal-BzZ9u6V6.js} +3 -3
  159. package/build/server/chunks/Modal-BzZ9u6V6.js.map +1 -0
  160. package/build/server/chunks/Panel-DEP08QXV.js +48 -0
  161. package/build/server/chunks/Panel-DEP08QXV.js.map +1 -0
  162. package/build/server/chunks/{PrettyJson-D3CylSVd.js → PrettyJson-5I-m1T9H.js} +53 -38
  163. package/build/server/chunks/PrettyJson-5I-m1T9H.js.map +1 -0
  164. package/build/server/chunks/Tooltip-DK6Aok7l.js +35 -0
  165. package/build/server/chunks/Tooltip-DK6Aok7l.js.map +1 -0
  166. package/build/server/chunks/{TooltipTable-DCu3GLqO.js → TooltipTable-DUYKVtrh.js} +3 -3
  167. package/build/server/chunks/{TooltipTable-DCu3GLqO.js.map → TooltipTable-DUYKVtrh.js.map} +1 -1
  168. package/build/server/chunks/_layout.svelte-CLgSVnvV.js +160 -0
  169. package/build/server/chunks/_layout.svelte-CLgSVnvV.js.map +1 -0
  170. package/build/server/chunks/{_page.svelte-DoOBFRSo.js → _page.svelte-B4-xrCHW.js} +42 -30
  171. package/build/server/chunks/_page.svelte-B4-xrCHW.js.map +1 -0
  172. package/build/server/chunks/{_page.svelte-C-13GpOe.js → _page.svelte-BORdYQFx.js} +12 -10
  173. package/build/server/chunks/_page.svelte-BORdYQFx.js.map +1 -0
  174. package/build/server/chunks/{_page.svelte-2w3fCax2.js → _page.svelte-C8zstZ7b.js} +6 -6
  175. package/build/server/chunks/{_page.svelte-2w3fCax2.js.map → _page.svelte-C8zstZ7b.js.map} +1 -1
  176. package/build/server/chunks/{_page.svelte-BBHqwhWF.js → _page.svelte-C9l9vy6P.js} +8 -7
  177. package/build/server/chunks/{_page.svelte-BBHqwhWF.js.map → _page.svelte-C9l9vy6P.js.map} +1 -1
  178. package/build/server/chunks/{_page.svelte-BRxX_vQR.js → _page.svelte-CRBjbDDt.js} +8 -7
  179. package/build/server/chunks/{_page.svelte-BRxX_vQR.js.map → _page.svelte-CRBjbDDt.js.map} +1 -1
  180. package/build/server/chunks/{_page.svelte-Cm_vgRRR.js → _page.svelte-CiIXCzlp.js} +18 -14
  181. package/build/server/chunks/_page.svelte-CiIXCzlp.js.map +1 -0
  182. package/build/server/chunks/{_page.svelte-Ca9u_35e.js → _page.svelte-TuuvQq-s.js} +7 -6
  183. package/build/server/chunks/{_page.svelte-Ca9u_35e.js.map → _page.svelte-TuuvQq-s.js.map} +1 -1
  184. package/build/server/chunks/{index2-DBFlGzWV.js → index2-DzKnqQNM.js} +2 -2
  185. package/build/server/chunks/{index2-DBFlGzWV.js.map → index2-DzKnqQNM.js.map} +1 -1
  186. package/build/server/index.js +3 -3
  187. package/build/server/index.js.map +1 -1
  188. package/build/server/manifest.js +14 -14
  189. package/build/server/manifest.js.map +1 -1
  190. package/package.json +1 -1
  191. package/src/app.css +161 -134
  192. package/src/app.html +23 -10
  193. package/src/lib/actions/portal.ts +28 -0
  194. package/src/lib/components/Breadcrumbs.svelte +20 -60
  195. package/src/lib/components/JsonValue.svelte +30 -1
  196. package/src/lib/components/Modal.svelte +5 -5
  197. package/src/lib/components/Notifications.svelte +40 -20
  198. package/src/lib/components/PageSwitcher.svelte +14 -10
  199. package/src/lib/components/Panel.svelte +19 -15
  200. package/src/lib/components/PrettyJson.svelte +101 -43
  201. package/src/lib/components/SearchBox.svelte +117 -96
  202. package/src/lib/components/ThemeSwitcher.svelte +191 -36
  203. package/src/lib/components/Tooltip.svelte +23 -14
  204. package/src/routes/+layout.svelte +36 -17
  205. package/src/routes/servers/+page.svelte +1 -1
  206. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/+page.svelte +77 -40
  207. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/indexes/+page.svelte +118 -95
  208. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/mappings/+page.svelte +26 -12
  209. package/build/client/_app/immutable/assets/0.COnAcXN4.css +0 -1
  210. package/build/client/_app/immutable/assets/0.COnAcXN4.css.br +0 -0
  211. package/build/client/_app/immutable/assets/0.COnAcXN4.css.gz +0 -0
  212. package/build/client/_app/immutable/assets/10.59aTjJn9.css +0 -1
  213. package/build/client/_app/immutable/assets/10.59aTjJn9.css.br +0 -0
  214. package/build/client/_app/immutable/assets/10.59aTjJn9.css.gz +0 -0
  215. package/build/client/_app/immutable/assets/12.BdCOhvz0.css +0 -1
  216. package/build/client/_app/immutable/assets/12.BdCOhvz0.css.br +0 -0
  217. package/build/client/_app/immutable/assets/12.BdCOhvz0.css.gz +0 -0
  218. package/build/client/_app/immutable/assets/Modal.DIIFkbGB.css +0 -1
  219. package/build/client/_app/immutable/assets/Modal.DIIFkbGB.css.br +0 -0
  220. package/build/client/_app/immutable/assets/Modal.DIIFkbGB.css.gz +0 -0
  221. package/build/client/_app/immutable/assets/Panel.B3aWupye.css +0 -1
  222. package/build/client/_app/immutable/assets/Panel.B3aWupye.css.br +0 -0
  223. package/build/client/_app/immutable/assets/Panel.B3aWupye.css.gz +0 -0
  224. package/build/client/_app/immutable/assets/cuprum-cyrillic-400-normal.Cnibl3-L.woff2 +0 -0
  225. package/build/client/_app/immutable/assets/cuprum-cyrillic-400-normal.RKIjpA76.woff +0 -0
  226. package/build/client/_app/immutable/assets/cuprum-cyrillic-ext-400-normal.CT5q4ZVh.woff2 +0 -0
  227. package/build/client/_app/immutable/assets/cuprum-cyrillic-ext-400-normal.iCCFJ4Gn.woff +0 -0
  228. package/build/client/_app/immutable/assets/cuprum-latin-400-normal.Cbwtr8a4.woff +0 -0
  229. package/build/client/_app/immutable/assets/cuprum-latin-400-normal.CjFvNwMJ.woff2 +0 -0
  230. package/build/client/_app/immutable/assets/cuprum-latin-ext-400-normal.BWTJtpjo.woff2 +0 -0
  231. package/build/client/_app/immutable/assets/cuprum-latin-ext-400-normal.BZXayy47.woff +0 -0
  232. package/build/client/_app/immutable/assets/cuprum-vietnamese-400-normal.uXRi1gw5.woff +0 -0
  233. package/build/client/_app/immutable/assets/rajdhani-devanagari-400-normal.BdIzgbsr.woff +0 -0
  234. package/build/client/_app/immutable/assets/rajdhani-devanagari-400-normal.CTuj2HZW.woff2 +0 -0
  235. package/build/client/_app/immutable/assets/rajdhani-latin-400-normal.C6_q4usG.woff +0 -0
  236. package/build/client/_app/immutable/assets/rajdhani-latin-400-normal.CurJOxDW.woff2 +0 -0
  237. package/build/client/_app/immutable/assets/rajdhani-latin-ext-400-normal.DACPYgMx.woff2 +0 -0
  238. package/build/client/_app/immutable/assets/rajdhani-latin-ext-400-normal.Der7ynDE.woff +0 -0
  239. package/build/client/_app/immutable/chunks/3iRu_dUj.js.br +0 -0
  240. package/build/client/_app/immutable/chunks/3iRu_dUj.js.gz +0 -0
  241. package/build/client/_app/immutable/chunks/5nAxkTTP.js.br +0 -5
  242. package/build/client/_app/immutable/chunks/5nAxkTTP.js.gz +0 -0
  243. package/build/client/_app/immutable/chunks/BBg-V8FE.js +0 -1
  244. package/build/client/_app/immutable/chunks/BBg-V8FE.js.br +0 -0
  245. package/build/client/_app/immutable/chunks/BBg-V8FE.js.gz +0 -0
  246. package/build/client/_app/immutable/chunks/BE8UzJuY.js.br +0 -0
  247. package/build/client/_app/immutable/chunks/BE8UzJuY.js.gz +0 -0
  248. package/build/client/_app/immutable/chunks/BQEBQyfZ.js.br +0 -0
  249. package/build/client/_app/immutable/chunks/BQEBQyfZ.js.gz +0 -0
  250. package/build/client/_app/immutable/chunks/BUNgwIS0.js.br +0 -0
  251. package/build/client/_app/immutable/chunks/BUNgwIS0.js.gz +0 -0
  252. package/build/client/_app/immutable/chunks/BvKY81hz.js +0 -1
  253. package/build/client/_app/immutable/chunks/BvKY81hz.js.br +0 -0
  254. package/build/client/_app/immutable/chunks/BvKY81hz.js.gz +0 -0
  255. package/build/client/_app/immutable/chunks/C0PCwpqt.js.br +0 -0
  256. package/build/client/_app/immutable/chunks/C0PCwpqt.js.gz +0 -0
  257. package/build/client/_app/immutable/chunks/C0rm4mmq.js +0 -1
  258. package/build/client/_app/immutable/chunks/C0rm4mmq.js.br +0 -0
  259. package/build/client/_app/immutable/chunks/C0rm4mmq.js.gz +0 -0
  260. package/build/client/_app/immutable/chunks/C2sjtvBO.js.br +0 -0
  261. package/build/client/_app/immutable/chunks/C2sjtvBO.js.gz +0 -0
  262. package/build/client/_app/immutable/chunks/C82Rp5eQ.js +0 -1
  263. package/build/client/_app/immutable/chunks/C82Rp5eQ.js.br +0 -0
  264. package/build/client/_app/immutable/chunks/C82Rp5eQ.js.gz +0 -0
  265. package/build/client/_app/immutable/chunks/CGSOl_q_.js +0 -4
  266. package/build/client/_app/immutable/chunks/CGSOl_q_.js.br +0 -0
  267. package/build/client/_app/immutable/chunks/CGSOl_q_.js.gz +0 -0
  268. package/build/client/_app/immutable/chunks/CjNnAkTB.js +0 -1
  269. package/build/client/_app/immutable/chunks/CjNnAkTB.js.br +0 -0
  270. package/build/client/_app/immutable/chunks/CjNnAkTB.js.gz +0 -0
  271. package/build/client/_app/immutable/chunks/Cx2cA4gg.js.br +0 -0
  272. package/build/client/_app/immutable/chunks/Cx2cA4gg.js.gz +0 -0
  273. package/build/client/_app/immutable/chunks/D4iRRB8h.js.br +0 -0
  274. package/build/client/_app/immutable/chunks/D4iRRB8h.js.gz +0 -0
  275. package/build/client/_app/immutable/chunks/D5ccpaXt.js +0 -1
  276. package/build/client/_app/immutable/chunks/D5ccpaXt.js.br +0 -0
  277. package/build/client/_app/immutable/chunks/D5ccpaXt.js.gz +0 -0
  278. package/build/client/_app/immutable/chunks/D7E46CWw.js.br +0 -0
  279. package/build/client/_app/immutable/chunks/D7E46CWw.js.gz +0 -0
  280. package/build/client/_app/immutable/chunks/DR9xdhsg.js.br +0 -0
  281. package/build/client/_app/immutable/chunks/DR9xdhsg.js.gz +0 -0
  282. package/build/client/_app/immutable/chunks/DVRQRZnh.js +0 -1
  283. package/build/client/_app/immutable/chunks/DVRQRZnh.js.br +0 -0
  284. package/build/client/_app/immutable/chunks/DVRQRZnh.js.gz +0 -0
  285. package/build/client/_app/immutable/chunks/DcPEQ0_V.js +0 -29
  286. package/build/client/_app/immutable/chunks/DcPEQ0_V.js.br +0 -0
  287. package/build/client/_app/immutable/chunks/DcPEQ0_V.js.gz +0 -0
  288. package/build/client/_app/immutable/chunks/Dx56OlI-.js.br +0 -2
  289. package/build/client/_app/immutable/chunks/Dx56OlI-.js.gz +0 -0
  290. package/build/client/_app/immutable/chunks/PXh00dfp.js +0 -2
  291. package/build/client/_app/immutable/chunks/PXh00dfp.js.br +0 -0
  292. package/build/client/_app/immutable/chunks/PXh00dfp.js.gz +0 -0
  293. package/build/client/_app/immutable/entry/app.DrdSPfGo.js.br +0 -0
  294. package/build/client/_app/immutable/entry/app.DrdSPfGo.js.gz +0 -0
  295. package/build/client/_app/immutable/entry/start.DGG3CpnK.js +0 -1
  296. package/build/client/_app/immutable/entry/start.DGG3CpnK.js.br +0 -2
  297. package/build/client/_app/immutable/entry/start.DGG3CpnK.js.gz +0 -0
  298. package/build/client/_app/immutable/nodes/0.kCLtccjl.js +0 -5
  299. package/build/client/_app/immutable/nodes/0.kCLtccjl.js.br +0 -0
  300. package/build/client/_app/immutable/nodes/0.kCLtccjl.js.gz +0 -0
  301. package/build/client/_app/immutable/nodes/1.Dr8p9JHT.js +0 -1
  302. package/build/client/_app/immutable/nodes/1.Dr8p9JHT.js.br +0 -3
  303. package/build/client/_app/immutable/nodes/1.Dr8p9JHT.js.gz +0 -0
  304. package/build/client/_app/immutable/nodes/10.B4uwvHd0.js +0 -2
  305. package/build/client/_app/immutable/nodes/10.B4uwvHd0.js.br +0 -0
  306. package/build/client/_app/immutable/nodes/10.B4uwvHd0.js.gz +0 -0
  307. package/build/client/_app/immutable/nodes/11.qfhS2VqU.js.br +0 -0
  308. package/build/client/_app/immutable/nodes/11.qfhS2VqU.js.gz +0 -0
  309. package/build/client/_app/immutable/nodes/12.DkZDCIfS.js +0 -1
  310. package/build/client/_app/immutable/nodes/12.DkZDCIfS.js.br +0 -0
  311. package/build/client/_app/immutable/nodes/12.DkZDCIfS.js.gz +0 -0
  312. package/build/client/_app/immutable/nodes/13.DFVzMgyY.js +0 -66
  313. package/build/client/_app/immutable/nodes/13.DFVzMgyY.js.br +0 -0
  314. package/build/client/_app/immutable/nodes/13.DFVzMgyY.js.gz +0 -0
  315. package/build/client/_app/immutable/nodes/2.DwwrLLW4.js.br +0 -1
  316. package/build/client/_app/immutable/nodes/2.DwwrLLW4.js.gz +0 -0
  317. package/build/client/_app/immutable/nodes/3.t20GootO.js.br +0 -0
  318. package/build/client/_app/immutable/nodes/3.t20GootO.js.gz +0 -0
  319. package/build/client/_app/immutable/nodes/4.CXHjkPtf.js.br +0 -0
  320. package/build/client/_app/immutable/nodes/4.CXHjkPtf.js.gz +0 -0
  321. package/build/client/_app/immutable/nodes/5.C9tcr5B0.js.br +0 -0
  322. package/build/client/_app/immutable/nodes/5.C9tcr5B0.js.gz +0 -0
  323. package/build/client/_app/immutable/nodes/7.D14iWySv.js +0 -1
  324. package/build/client/_app/immutable/nodes/7.D14iWySv.js.br +0 -0
  325. package/build/client/_app/immutable/nodes/7.D14iWySv.js.gz +0 -0
  326. package/build/client/_app/immutable/nodes/8.BSXe_VNA.js +0 -1
  327. package/build/client/_app/immutable/nodes/8.BSXe_VNA.js.br +0 -0
  328. package/build/client/_app/immutable/nodes/8.BSXe_VNA.js.gz +0 -0
  329. package/build/client/_app/immutable/nodes/9.BXMJq3Z_.js.br +0 -0
  330. package/build/client/_app/immutable/nodes/9.BXMJq3Z_.js.gz +0 -0
  331. package/build/server/chunks/0-BozXjQlk.js +0 -22
  332. package/build/server/chunks/0-BozXjQlk.js.map +0 -1
  333. package/build/server/chunks/1-C_LPMO7A.js +0 -9
  334. package/build/server/chunks/10-DGUQMXHt.js.map +0 -1
  335. package/build/server/chunks/11-CxBnyyqR.js.map +0 -1
  336. package/build/server/chunks/12-K_JVUnsk.js.map +0 -1
  337. package/build/server/chunks/7-DvU-_ADW.js.map +0 -1
  338. package/build/server/chunks/8-CA3-CJtS.js.map +0 -1
  339. package/build/server/chunks/9-jMOS3lPS.js.map +0 -1
  340. package/build/server/chunks/JsonValue-WMdIUvRM.js.map +0 -1
  341. package/build/server/chunks/Modal-zVnoAfFx.js.map +0 -1
  342. package/build/server/chunks/Panel-yg5YKL4d.js +0 -38
  343. package/build/server/chunks/Panel-yg5YKL4d.js.map +0 -1
  344. package/build/server/chunks/PrettyJson-D3CylSVd.js.map +0 -1
  345. package/build/server/chunks/Tooltip-ys6l541_.js +0 -28
  346. package/build/server/chunks/Tooltip-ys6l541_.js.map +0 -1
  347. package/build/server/chunks/_layout.svelte-DMm1Ill8.js +0 -168
  348. package/build/server/chunks/_layout.svelte-DMm1Ill8.js.map +0 -1
  349. package/build/server/chunks/_page.svelte-C-13GpOe.js.map +0 -1
  350. package/build/server/chunks/_page.svelte-Cm_vgRRR.js.map +0 -1
  351. package/build/server/chunks/_page.svelte-DoOBFRSo.js.map +0 -1
@@ -18,65 +18,25 @@
18
18
  </script>
19
19
 
20
20
  {#if breadcrumbs.length > 0}
21
- <nav class="breadcrumbs" aria-label="Breadcrumb">
22
- <ol class="breadcrumb-list">
23
- {#each breadcrumbs as crumb, index (index)}
24
- <li class="breadcrumb-item">
25
- {#if crumb.href && index < breadcrumbs.length - 1}
26
- <!-- eslint-disable-next-line @typescript-eslint/no-explicit-any -->
27
- <a href={resolve(crumb.href as any)} class="breadcrumb-link">{crumb.label}</a>
28
- {:else}
29
- <span class="breadcrumb-current">{crumb.label}</span>
30
- {/if}
31
- {#if index < breadcrumbs.length - 1}
32
- <span class="breadcrumb-separator">/</span>
33
- {/if}
34
- </li>
35
- {/each}
36
- </ol>
21
+ <nav aria-label="Breadcrumb" class="hidden md:flex items-center gap-1 text-sm">
22
+ {#each breadcrumbs as crumb, index (index)}
23
+ {#if crumb.href && index < breadcrumbs.length - 1}
24
+ <!-- eslint-disable @typescript-eslint/no-explicit-any -->
25
+ <a
26
+ href={resolve(crumb.href as any)}
27
+ class="px-2 py-1 rounded-md hover:bg-[var(--color-3)] transition no-underline"
28
+ style="color: var(--text);"
29
+ >
30
+ {crumb.label}
31
+ </a>
32
+ {:else}
33
+ <span aria-current="page" class="px-2 py-1 rounded-md font-medium" style="color: var(--text);">
34
+ {crumb.label}
35
+ </span>
36
+ {/if}
37
+ {#if index < breadcrumbs.length - 1}
38
+ <span style="color: var(--text-secondary);">/</span>
39
+ {/if}
40
+ {/each}
37
41
  </nav>
38
42
  {/if}
39
-
40
- <style lang="postcss">
41
- .breadcrumbs {
42
- margin-left: 20px;
43
- font-size: 16px;
44
- }
45
-
46
- .breadcrumb-list {
47
- display: flex;
48
- align-items: center;
49
- list-style: none;
50
- margin: 0;
51
- padding: 0;
52
- gap: 8px;
53
- }
54
-
55
- .breadcrumb-item {
56
- display: flex;
57
- align-items: center;
58
- gap: 8px;
59
- }
60
-
61
- .breadcrumb-link {
62
- color: var(--text);
63
- text-decoration: none;
64
- transition: color 0.2s;
65
-
66
- &:hover {
67
- color: var(--text);
68
- text-decoration: underline;
69
- }
70
- }
71
-
72
- .breadcrumb-current {
73
- color: var(--text-darker);
74
- font-weight: 500;
75
- }
76
-
77
- .breadcrumb-separator {
78
- color: var(--text-darker);
79
- font-weight: 300;
80
- user-select: none;
81
- }
82
- </style>
@@ -52,6 +52,7 @@
52
52
  let fetchedCollection = $state<string | null>(null);
53
53
  let isFetching = $state(false);
54
54
  let fetchError = $state<string | null>(null);
55
+ let hideTooltipTimeout: ReturnType<typeof setTimeout> | null = null;
55
56
 
56
57
  // Check if current key has a mapping
57
58
  const currentKeyPath = $derived([keyPath, key].filter(Boolean).join("."));
@@ -59,6 +60,12 @@
59
60
  async function handleMouseEnter() {
60
61
  if (!hasMappings || !fetchMappedDocument) return;
61
62
 
63
+ // Clear any pending hide timeout
64
+ if (hideTooltipTimeout) {
65
+ clearTimeout(hideTooltipTimeout);
66
+ hideTooltipTimeout = null;
67
+ }
68
+
62
69
  showTooltip = true;
63
70
 
64
71
  // If already fetched, don't fetch again
@@ -85,6 +92,23 @@
85
92
  }
86
93
 
87
94
  function handleMouseLeave() {
95
+ // Delay hiding to allow moving mouse to tooltip
96
+ hideTooltipTimeout = setTimeout(() => {
97
+ showTooltip = false;
98
+ hideTooltipTimeout = null;
99
+ }, 100);
100
+ }
101
+
102
+ function handleTooltipMouseEnter() {
103
+ // Cancel hiding when mouse enters tooltip
104
+ if (hideTooltipTimeout) {
105
+ clearTimeout(hideTooltipTimeout);
106
+ hideTooltipTimeout = null;
107
+ }
108
+ }
109
+
110
+ function handleTooltipMouseLeave() {
111
+ // Hide tooltip when mouse leaves tooltip content
88
112
  showTooltip = false;
89
113
  }
90
114
 
@@ -295,7 +319,12 @@
295
319
  {/if}
296
320
  {/snippet}
297
321
  {#if hasMappings}
298
- <Tooltip show={showTooltip} tooltipClass="max-w-[600px] max-h-[400px] overflow-auto whitespace-pre-wrap">
322
+ <Tooltip
323
+ show={showTooltip}
324
+ tooltipClass="max-w-[600px] max-h-[400px] overflow-auto whitespace-pre-wrap"
325
+ onTooltipMouseEnter={handleTooltipMouseEnter}
326
+ onTooltipMouseLeave={handleTooltipMouseLeave}
327
+ >
299
328
  {#snippet trigger()}
300
329
  <span
301
330
  class="string mapped"
@@ -31,10 +31,10 @@
31
31
  <div class="modal" onclick={(e) => e.stopPropagation()}>
32
32
  {#if title}
33
33
  <div class="modal-header">
34
- <h3>{title}</h3>
34
+ <h3 style="color: var(--text);">{title}</h3>
35
35
  </div>
36
36
  {/if}
37
- <div class="modal-body">
37
+ <div class="modal-body" style="color: var(--text);">
38
38
  {@render children?.()}
39
39
  </div>
40
40
  {#if footer}
@@ -48,12 +48,12 @@
48
48
 
49
49
  <style lang="postcss">
50
50
  .modal-header {
51
- padding: 20px 20px 0;
51
+ padding: 24px 24px 0;
52
52
  }
53
53
 
54
54
  .modal-header h3 {
55
55
  margin: 0;
56
- font-size: 1.25rem;
57
- font-weight: 500;
56
+ font-size: 1.375rem;
57
+ font-weight: 600;
58
58
  }
59
59
  </style>
@@ -6,7 +6,22 @@
6
6
  {#each notificationStore.items as notification (notification.id)}
7
7
  <div class="notification notification-{notification.type}">
8
8
  <span>{notification.message}</span>
9
- <button onclick={() => notificationStore.remove(notification.id)}>&times;</button>
9
+ <button onclick={() => notificationStore.remove(notification.id)} aria-label="Dismiss notification">
10
+ <svg
11
+ xmlns="http://www.w3.org/2000/svg"
12
+ width="18"
13
+ height="18"
14
+ viewBox="0 0 24 24"
15
+ fill="none"
16
+ stroke="currentColor"
17
+ stroke-width="2"
18
+ stroke-linecap="round"
19
+ stroke-linejoin="round"
20
+ >
21
+ <line x1="18" y1="6" x2="6" y2="18"></line>
22
+ <line x1="6" y1="6" x2="18" y2="18"></line>
23
+ </svg>
24
+ </button>
10
25
  </div>
11
26
  {/each}
12
27
  </div>
@@ -14,63 +29,68 @@
14
29
  <style lang="postcss">
15
30
  .notifications {
16
31
  position: fixed;
17
- top: 80px;
32
+ top: 90px;
18
33
  right: 20px;
19
34
  z-index: 1000;
20
35
  display: flex;
21
36
  flex-direction: column;
22
- gap: 10px;
37
+ gap: 12px;
23
38
  }
24
39
 
25
40
  .notification {
26
- padding: 15px 20px;
27
- border-radius: 4px;
28
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
41
+ padding: 14px 18px;
42
+ border-radius: 1rem;
43
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
44
+ backdrop-filter: blur(10px);
29
45
  display: flex;
30
46
  align-items: center;
31
- gap: 15px;
32
- min-width: 300px;
33
- max-width: 500px;
34
- animation: slideIn 0.3s ease-out;
47
+ gap: 12px;
48
+ min-width: 320px;
49
+ max-width: 480px;
50
+ animation: slideIn 0.4s cubic-bezier(0.16, 1, 0.3, 1);
51
+ border: 1px solid rgba(255, 255, 255, 0.1);
52
+ font-size: 14px;
35
53
 
36
54
  button {
37
- background: none;
55
+ background: rgba(255, 255, 255, 0.2);
38
56
  border: none;
39
- font-size: 24px;
57
+ border-radius: 8px;
40
58
  cursor: pointer;
41
- opacity: 0.7;
59
+ opacity: 0.8;
42
60
  margin-left: auto;
43
- padding: 0;
44
- width: 24px;
45
- height: 24px;
61
+ padding: 4px;
62
+ width: 28px;
63
+ height: 28px;
46
64
  display: flex;
47
65
  align-items: center;
48
66
  justify-content: center;
67
+ transition: all 0.2s;
49
68
 
50
69
  &:hover {
51
70
  opacity: 1;
71
+ background: rgba(255, 255, 255, 0.3);
52
72
  }
53
73
  }
54
74
  }
55
75
 
56
76
  .notification-error {
57
- background-color: #dc3545;
77
+ background-color: #ff453a;
58
78
  color: white;
59
79
  }
60
80
 
61
81
  .notification-success {
62
- background-color: #28a745;
82
+ background-color: #32d74b;
63
83
  color: white;
64
84
  }
65
85
 
66
86
  .notification-info {
67
- background-color: #17a2b8;
87
+ background-color: #0a84ff;
68
88
  color: white;
69
89
  }
70
90
 
71
91
  @keyframes slideIn {
72
92
  from {
73
- transform: translateX(400px);
93
+ transform: translateX(450px);
74
94
  opacity: 0;
75
95
  }
76
96
  to {
@@ -14,21 +14,25 @@
14
14
  </script>
15
15
 
16
16
  {#if categories.length}
17
- <div class="flex {className}">
18
- {#each categories as category, index (category.key)}
17
+ <div
18
+ class="hidden sm:flex rounded-lg border border-[var(--border-color)] overflow-hidden bg-[var(--light-background)] shadow-sm {className}"
19
+ >
20
+ {#each categories as category (category.key)}
19
21
  {@const isActive = currentPath === category.key}
20
- {@const sharedClasses = `btn btn-default btn-sm uppercase
21
- ${index === 0 ? "" : "rounded-l-none"}
22
- ${index === categories.length - 1 ? "" : "rounded-r-none"}
23
- ${index > 0 ? "-ml-px" : ""}
24
- ${isActive ? "opacity-100 cursor-default !bg-[var(--color-3)]" : ""}`}
25
22
  {#if isActive}
26
- <span class={sharedClasses}>
23
+ <span
24
+ class="px-3 py-1.5 text-[13px] font-medium bg-[var(--color-1)] shadow-[inset_0_-1px_0_rgba(0,0,0,0.06)] cursor-default"
25
+ style="color: var(--text);"
26
+ >
27
27
  {category.label}
28
28
  </span>
29
29
  {:else}
30
- <!-- eslint-disable-next-line @typescript-eslint/no-explicit-any -->
31
- <a href={resolve(category.href as any)} class={sharedClasses}>
30
+ <!-- eslint-disable @typescript-eslint/no-explicit-any -->
31
+ <a
32
+ href={resolve(category.href as any)}
33
+ class="px-3 py-1.5 text-[13px] hover:bg-[var(--color-3)] transition no-underline"
34
+ style="color: var(--text-secondary);"
35
+ >
32
36
  {category.label}
33
37
  </a>
34
38
  {/if}
@@ -4,21 +4,32 @@
4
4
  interface Props {
5
5
  children?: Snippet;
6
6
  title?: string | Snippet;
7
+ titleClass?: string;
7
8
  actions?: Snippet;
8
9
  class?: string;
10
+ ref?: HTMLDivElement;
9
11
  }
10
12
 
11
- let { children, title, actions, class: className }: Props = $props();
13
+ let { children, title, titleClass, actions, class: className, ref = $bindable() }: Props = $props();
12
14
  </script>
13
15
 
14
- <div class="panel rounded-md {className}">
16
+ <div
17
+ bind:this={ref}
18
+ class="rounded-2xl border border-[var(--border-color)] bg-[var(--light-background)]/70 shadow-sm {className}"
19
+ >
15
20
  {#if title}
16
- <div class="px-4 py-2 flex justify-between items-center text-lg uppercase font-medium">
17
- {#if typeof title === "string"}
18
- <span>{title}</span>
19
- {:else}
20
- {@render title()}
21
- {/if}
21
+ <div
22
+ class="px-3 sm:px-4 py-2 flex justify-between items-center {children
23
+ ? 'border-b border-[var(--border-color)]'
24
+ : ''}"
25
+ >
26
+ <div class="text-sm font-medium {titleClass}" style="color: var(--text);">
27
+ {#if typeof title === "string"}
28
+ <span>{title}</span>
29
+ {:else}
30
+ {@render title()}
31
+ {/if}
32
+ </div>
22
33
  {#if actions}
23
34
  <div class="flex gap-2 items-center">
24
35
  {@render actions()}
@@ -28,10 +39,3 @@
28
39
  {/if}
29
40
  {@render children?.()}
30
41
  </div>
31
-
32
- <style lang="postcss">
33
- .panel {
34
- background-color: var(--light-background);
35
- border: var(--border);
36
- }
37
- </style>
@@ -90,7 +90,9 @@
90
90
  let editJson = $state("");
91
91
  let removing = $state(false);
92
92
  let contentContainerRef = $state<HTMLDivElement>();
93
- let editorHeight = $state<string>("300px");
93
+ let textareaRef = $state<HTMLTextAreaElement>();
94
+ let panelRef = $state<HTMLDivElement>();
95
+ let lastSetHeight = $state<number>(0);
94
96
 
95
97
  // Extract timestamp from ObjectId
96
98
  function getTimestampFromObjectId(objectId: string): Date | null {
@@ -151,13 +153,6 @@
151
153
 
152
154
  function enableEditor() {
153
155
  editJson = serializeForEditing(json);
154
-
155
- // Set editor height to match the full content container (including padding)
156
- if (contentContainerRef) {
157
- const height = contentContainerRef.offsetHeight;
158
- editorHeight = `${Math.max(height, 300)}px`;
159
- }
160
-
161
156
  editorVisible = true;
162
157
  }
163
158
 
@@ -168,9 +163,39 @@
168
163
  }
169
164
  });
170
165
 
166
+ // Watch for textarea resize and update panel height
167
+ $effect(() => {
168
+ if (!textareaRef || !panelRef || !editorVisible) return;
169
+
170
+ const resizeObserver = new ResizeObserver((entries) => {
171
+ for (const entry of entries) {
172
+ const newHeight = entry.borderBoxSize[0].blockSize;
173
+ // Only update if height changed and is different from what we last set
174
+ if (newHeight > 0 && Math.abs(newHeight - lastSetHeight) > 1) {
175
+ const totalHeight = newHeight; // Add padding for buttons
176
+ lastSetHeight = newHeight;
177
+ if (panelRef) {
178
+ panelRef.style.minHeight = `${totalHeight}px`;
179
+ }
180
+ }
181
+ }
182
+ });
183
+
184
+ resizeObserver.observe(textareaRef);
185
+
186
+ return () => {
187
+ resizeObserver.disconnect();
188
+ };
189
+ });
190
+
171
191
  function disableEditor() {
172
192
  editorVisible = false;
173
193
  editJson = "";
194
+ lastSetHeight = 0;
195
+ // Reset panel min-height when editor closes
196
+ if (panelRef) {
197
+ panelRef.style.minHeight = "";
198
+ }
174
199
  }
175
200
 
176
201
  function save() {
@@ -209,20 +234,24 @@
209
234
  {#snippet title()}
210
235
  {#if json._id}
211
236
  {@const idValue = json._id.$value ?? json._id}
212
- <div class="">
213
- <a
214
- type="button"
215
- class="bg-transparent border-none text-[var(--text)] no-underline cursor-pointer text-xl font-inherit p-0 hover:underline normal-case"
216
- href={resolve(
217
- `/servers/${encodeURIComponent(server)}/databases/${encodeURIComponent(database)}/collections/${encodeURIComponent(collection)}/documents/${idValue}`,
218
- )}
219
- >
220
- {idValue}
221
- </a>
237
+ <div class="flex flex-col sm:flex-row sm:items-center gap-2 sm:gap-4 min-w-0 flex-1">
238
+ <h2 class="truncate">
239
+ <a
240
+ class="text-[15px] sm:text-base font-semibold hover:underline no-underline"
241
+ style="color: var(--text); text-decoration-color: var(--link);"
242
+ href={resolve(
243
+ `/servers/${encodeURIComponent(server)}/databases/${encodeURIComponent(database)}/collections/${encodeURIComponent(collection)}/documents/${idValue}`,
244
+ )}
245
+ >
246
+ {idValue}
247
+ </a>
248
+ </h2>
222
249
  {#if json._id.$value}
223
250
  {@const timestamp = getTimestampFromObjectId(json._id.$value)}
224
251
  {#if timestamp}
225
- <span class="ml-2 text-md text-[var(--text-secondary,#888)]">{timestamp.toLocaleString()}</span>
252
+ <p class="text-xs" style="color: var(--text-secondary);">
253
+ Created on {timestamp.toLocaleDateString()} · {timestamp.toLocaleTimeString()}
254
+ </p>
226
255
  {/if}
227
256
  {/if}
228
257
  </div>
@@ -230,44 +259,73 @@
230
259
  {/snippet}
231
260
 
232
261
  {#snippet actions()}
233
- <div class="hidden group-hover:block">
234
- <button class="btn btn-outline-light btn-sm ml-2 -my-2" onclick={copyToClipboard}>Copy</button>
262
+ <div class="hidden group-hover:flex items-center gap-2 -my-2">
263
+ <button
264
+ class="px-3 py-1 rounded-lg border border-[var(--border-color)] bg-[var(--light-background)] hover:bg-[var(--color-3)] text-[13px] transition cursor-pointer"
265
+ style="color: var(--text);"
266
+ onclick={copyToClipboard}
267
+ >
268
+ Copy
269
+ </button>
235
270
  {#if onedit}
236
- <button class="btn btn-outline-light btn-sm ml-2 -my-2" onclick={enableEditor}>Edit</button>
271
+ <button
272
+ class="px-3 py-1 rounded-lg border border-[var(--border-color)] bg-[var(--light-background)] hover:bg-[var(--color-3)] text-[13px] transition cursor-pointer"
273
+ style="color: var(--text);"
274
+ onclick={enableEditor}
275
+ >
276
+ Edit
277
+ </button>
237
278
  {/if}
238
279
  {#if onremove}
239
- <button class="btn btn-outline-danger btn-sm ml-2 -my-2" onclick={showRemove}>Remove</button>
280
+ <button
281
+ class="px-3 py-1 rounded-lg border border-red-200 hover:bg-red-50 text-[13px] transition cursor-pointer"
282
+ style="color: var(--button-danger);"
283
+ onclick={showRemove}
284
+ >
285
+ Delete
286
+ </button>
240
287
  {/if}
241
288
  </div>
242
289
  {/snippet}
243
290
 
244
- <Panel class="group" title={json._id ? title : undefined} {actions}>
245
- <div bind:this={contentContainerRef} class=" relative border-t border-[var(--border-color)]">
246
- <div class="font-mono text-sm leading-tight whitespace-pre-wrap break-words p-4 overflow-x-auto">
291
+ <Panel class="group relative" title={json._id ? title : undefined} {actions} bind:ref={panelRef}>
292
+ <div bind:this={contentContainerRef} class="relative p-4 sm:p-6">
293
+ <div class="font-mono text-[13px] sm:text-[14px] leading-relaxed whitespace-pre-wrap break-words overflow-x-auto">
247
294
  <JsonValue value={json} {autoCollapse} collapsed={false} {isKeyMapped} {fetchMappedDocument} />
248
295
  </div>
249
296
 
250
- <div class="absolute h-full z-[100] w-full top-0 left-0" class:hidden={!editorVisible} class:block={editorVisible}>
251
- <div class="absolute z-10 right-5 top-4">
252
- <button class="btn btn-success ml-2" onclick={save}>Save</button>
253
- <button class="btn btn-default ml-2" onclick={disableEditor}>Cancel</button>
297
+ {#if removing}
298
+ <div
299
+ class="absolute z-10 top-0 left-0 w-full h-full rounded-2xl backdrop-blur-sm flex items-center justify-center"
300
+ style="background-color: rgba(0, 0, 0, 0.4);"
301
+ >
302
+ <div
303
+ class="bg-[var(--light-background)] rounded-2xl p-6 shadow-xl border border-[var(--border-color)] max-w-sm mx-4"
304
+ >
305
+ <p class="text-lg font-semibold mb-4" style="color: var(--text);">Delete this document?</p>
306
+ <p class="text-sm mb-6" style="color: var(--text-secondary);">This action cannot be undone.</p>
307
+ <div class="flex gap-3">
308
+ <button class="btn btn-danger flex-1" onclick={confirmRemove}>Delete</button>
309
+ <button class="btn btn-default flex-1" onclick={cancelRemove}>Cancel</button>
310
+ </div>
311
+ </div>
254
312
  </div>
313
+ {/if}
314
+ </div>
315
+
316
+ {#if editorVisible}
317
+ <div class="absolute inset-0 z-[100] bg-[var(--light-background)]">
255
318
  <textarea
319
+ bind:this={textareaRef}
256
320
  bind:value={editJson}
257
- style="height: {editorHeight};"
258
321
  use:jsonTextarea={{ onsubmit: save, onescape: disableEditor }}
259
- class="w-full font-mono text-sm leading-relaxed p-2.5 bg-[var(--color-1)] text-[var(--text)] border border-[var(--border-color)] rounded resize-y"
322
+ class="w-full h-full font-mono text-[13px] sm:text-[14px] leading-relaxed p-4 border-0 bg-[var(--color-3)] focus:outline-none focus:ring-0"
323
+ style="color: var(--text);"
260
324
  ></textarea>
261
- </div>
262
-
263
- {#if removing}
264
- <div class="absolute z-10 top-0 left-0 w-full h-full rounded bg-[var(--text-inverse)] opacity-70">
265
- <p class="text-[var(--text)] text-center mt-5 text-2xl">Are you sure?</p>
266
- <div class="absolute w-full h-full top-0 flex justify-center items-center">
267
- <button class="btn btn-danger m-5" onclick={confirmRemove}>Yes - Remove</button>
268
- <button class="btn btn-success m-5" onclick={cancelRemove}>No - Cancel</button>
269
- </div>
325
+ <div class="absolute top-3 right-3 flex items-center gap-2">
326
+ <button class="btn btn-success" onclick={save}>Save</button>
327
+ <button class="btn btn-default" onclick={disableEditor}>Cancel</button>
270
328
  </div>
271
- {/if}
272
- </div>
329
+ </div>
330
+ {/if}
273
331
  </Panel>