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.
- package/build/client/_app/immutable/assets/0.BXOUh4Q1.css +1 -0
- package/build/client/_app/immutable/assets/0.BXOUh4Q1.css.br +0 -0
- package/build/client/_app/immutable/assets/0.BXOUh4Q1.css.gz +0 -0
- package/build/client/_app/immutable/assets/10.BrydhPds.css +1 -0
- package/build/client/_app/immutable/assets/10.BrydhPds.css.br +0 -0
- package/build/client/_app/immutable/assets/10.BrydhPds.css.gz +0 -0
- package/build/client/_app/immutable/assets/12.B90SyvCO.css +1 -0
- package/build/client/_app/immutable/assets/12.B90SyvCO.css.br +0 -0
- package/build/client/_app/immutable/assets/12.B90SyvCO.css.gz +0 -0
- package/build/client/_app/immutable/assets/Modal.zD4dMMyk.css +1 -0
- package/build/client/_app/immutable/assets/Modal.zD4dMMyk.css.br +0 -0
- package/build/client/_app/immutable/assets/Modal.zD4dMMyk.css.gz +0 -0
- package/build/client/_app/immutable/chunks/AIOqEo5H.js +1 -0
- package/build/client/_app/immutable/chunks/AIOqEo5H.js.br +0 -0
- package/build/client/_app/immutable/chunks/AIOqEo5H.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{D7E46CWw.js → BEYqxaXI.js} +1 -1
- package/build/client/_app/immutable/chunks/BEYqxaXI.js.br +0 -0
- package/build/client/_app/immutable/chunks/BEYqxaXI.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BJqoLy3B.js +2 -0
- package/build/client/_app/immutable/chunks/BJqoLy3B.js.br +0 -0
- package/build/client/_app/immutable/chunks/BJqoLy3B.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DR9xdhsg.js → BXaawuvz.js} +1 -1
- package/build/client/_app/immutable/chunks/BXaawuvz.js.br +2 -0
- package/build/client/_app/immutable/chunks/BXaawuvz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{D4iRRB8h.js → BgGFWTC8.js} +1 -1
- package/build/client/_app/immutable/chunks/BgGFWTC8.js.br +0 -0
- package/build/client/_app/immutable/chunks/BgGFWTC8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{5nAxkTTP.js → Bpmh7lVJ.js} +1 -1
- package/build/client/_app/immutable/chunks/Bpmh7lVJ.js.br +6 -0
- package/build/client/_app/immutable/chunks/Bpmh7lVJ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BrrIPcne.js +1 -0
- package/build/client/_app/immutable/chunks/BrrIPcne.js.br +0 -0
- package/build/client/_app/immutable/chunks/BrrIPcne.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BUNgwIS0.js → ByHQcyQR.js} +1 -1
- package/build/client/_app/immutable/chunks/ByHQcyQR.js.br +0 -0
- package/build/client/_app/immutable/chunks/ByHQcyQR.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Dx56OlI-.js → C6AfvKtU.js} +1 -1
- package/build/client/_app/immutable/chunks/C6AfvKtU.js.br +0 -0
- package/build/client/_app/immutable/chunks/C6AfvKtU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/COPDkxhL.js +29 -0
- package/build/client/_app/immutable/chunks/COPDkxhL.js.br +0 -0
- package/build/client/_app/immutable/chunks/COPDkxhL.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{3iRu_dUj.js → CTHGUrxr.js} +2 -2
- package/build/client/_app/immutable/chunks/CTHGUrxr.js.br +0 -0
- package/build/client/_app/immutable/chunks/CTHGUrxr.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BQEBQyfZ.js → Cotvfu8-.js} +1 -1
- package/build/client/_app/immutable/chunks/Cotvfu8-.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cotvfu8-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DQ-rgtMu.js +1 -0
- package/build/client/_app/immutable/chunks/DQ-rgtMu.js.br +0 -0
- package/build/client/_app/immutable/chunks/DQ-rgtMu.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DR2XDb5m.js +4 -0
- package/build/client/_app/immutable/chunks/DR2XDb5m.js.br +0 -0
- package/build/client/_app/immutable/chunks/DR2XDb5m.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DUjc2RFp.js +1 -0
- package/build/client/_app/immutable/chunks/DUjc2RFp.js.br +0 -0
- package/build/client/_app/immutable/chunks/DUjc2RFp.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BE8UzJuY.js → DaTUpm_7.js} +1 -1
- package/build/client/_app/immutable/chunks/DaTUpm_7.js.br +0 -0
- package/build/client/_app/immutable/chunks/DaTUpm_7.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{C0PCwpqt.js → DnwC6gcO.js} +1 -1
- package/build/client/_app/immutable/chunks/DnwC6gcO.js.br +0 -0
- package/build/client/_app/immutable/chunks/DnwC6gcO.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dt2qaq8g.js +1 -0
- package/build/client/_app/immutable/chunks/Dt2qaq8g.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dt2qaq8g.js.gz +0 -0
- package/build/client/_app/immutable/chunks/EUN-td6X.js +1 -0
- package/build/client/_app/immutable/chunks/EUN-td6X.js.br +0 -0
- package/build/client/_app/immutable/chunks/EUN-td6X.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Cx2cA4gg.js → EbSISJZg.js} +1 -1
- package/build/client/_app/immutable/chunks/EbSISJZg.js.br +0 -0
- package/build/client/_app/immutable/chunks/EbSISJZg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/f0NSiE2-.js +1 -0
- package/build/client/_app/immutable/chunks/f0NSiE2-.js.br +0 -0
- package/build/client/_app/immutable/chunks/f0NSiE2-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{C2sjtvBO.js → qhxgM-U4.js} +1 -1
- package/build/client/_app/immutable/chunks/qhxgM-U4.js.br +0 -0
- package/build/client/_app/immutable/chunks/qhxgM-U4.js.gz +0 -0
- package/build/client/_app/immutable/chunks/zJxs36IQ.js +1 -0
- package/build/client/_app/immutable/chunks/zJxs36IQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/zJxs36IQ.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.DrdSPfGo.js → app.Cu4hmll6.js} +2 -2
- package/build/client/_app/immutable/entry/app.Cu4hmll6.js.br +0 -0
- package/build/client/_app/immutable/entry/app.Cu4hmll6.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CWodO31h.js +1 -0
- package/build/client/_app/immutable/entry/start.CWodO31h.js.br +2 -0
- package/build/client/_app/immutable/entry/start.CWodO31h.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.CA_MMU1Y.js +1 -0
- package/build/client/_app/immutable/nodes/0.CA_MMU1Y.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.CA_MMU1Y.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.RRRMvoTM.js +1 -0
- package/build/client/_app/immutable/nodes/1.RRRMvoTM.js.br +1 -0
- package/build/client/_app/immutable/nodes/1.RRRMvoTM.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.SPSTrllh.js +1 -0
- package/build/client/_app/immutable/nodes/10.SPSTrllh.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.SPSTrllh.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{11.qfhS2VqU.js → 11.C4Wc3Kw8.js} +1 -1
- package/build/client/_app/immutable/nodes/11.C4Wc3Kw8.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.C4Wc3Kw8.js.gz +0 -0
- package/build/client/_app/immutable/nodes/12.CWkEGtcM.js +1 -0
- package/build/client/_app/immutable/nodes/12.CWkEGtcM.js.br +0 -0
- package/build/client/_app/immutable/nodes/12.CWkEGtcM.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.CHTpks4Z.js +66 -0
- package/build/client/_app/immutable/nodes/13.CHTpks4Z.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.CHTpks4Z.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{2.DwwrLLW4.js → 2.tuhqPc6d.js} +1 -1
- package/build/client/_app/immutable/nodes/2.tuhqPc6d.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.tuhqPc6d.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{3.t20GootO.js → 3.304xAIC7.js} +1 -1
- package/build/client/_app/immutable/nodes/3.304xAIC7.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.304xAIC7.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{4.CXHjkPtf.js → 4.CRm68VfX.js} +1 -1
- package/build/client/_app/immutable/nodes/4.CRm68VfX.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.CRm68VfX.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.C9tcr5B0.js → 5.DfCi7Z5N.js} +1 -1
- package/build/client/_app/immutable/nodes/5.DfCi7Z5N.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.DfCi7Z5N.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.COdDrqa5.js +1 -0
- package/build/client/_app/immutable/nodes/7.COdDrqa5.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.COdDrqa5.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.COLtCRaa.js +1 -0
- package/build/client/_app/immutable/nodes/8.COLtCRaa.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.COLtCRaa.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{9.BXMJq3Z_.js → 9.DGHjsSV7.js} +2 -2
- package/build/client/_app/immutable/nodes/9.DGHjsSV7.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.DGHjsSV7.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/server/chunks/0-QaXL5dxl.js +22 -0
- package/build/server/chunks/0-QaXL5dxl.js.map +1 -0
- package/build/server/chunks/1-lbtVyJzb.js +9 -0
- package/build/server/chunks/{1-C_LPMO7A.js.map → 1-lbtVyJzb.js.map} +1 -1
- package/build/server/chunks/{10-DGUQMXHt.js → 10-srcxgYum.js} +4 -4
- package/build/server/chunks/10-srcxgYum.js.map +1 -0
- package/build/server/chunks/{11-CxBnyyqR.js → 11-Do6XJz0l.js} +4 -4
- package/build/server/chunks/11-Do6XJz0l.js.map +1 -0
- package/build/server/chunks/{12-K_JVUnsk.js → 12-zP_nvSCU.js} +4 -4
- package/build/server/chunks/12-zP_nvSCU.js.map +1 -0
- package/build/server/chunks/{13-Cay35aHK.js → 13-Df-9cdO7.js} +4 -4
- package/build/server/chunks/{13-Cay35aHK.js.map → 13-Df-9cdO7.js.map} +1 -1
- package/build/server/chunks/{2-ClkERMhY.js → 2-CEvLemXF.js} +2 -2
- package/build/server/chunks/{2-ClkERMhY.js.map → 2-CEvLemXF.js.map} +1 -1
- package/build/server/chunks/{3-CTpqmxdo.js → 3-C8wnnjW_.js} +2 -2
- package/build/server/chunks/{3-CTpqmxdo.js.map → 3-C8wnnjW_.js.map} +1 -1
- package/build/server/chunks/{4-CUH4fZn8.js → 4-CFsHQHNr.js} +2 -2
- package/build/server/chunks/{4-CUH4fZn8.js.map → 4-CFsHQHNr.js.map} +1 -1
- package/build/server/chunks/{5-BSEdxfut.js → 5-BHNZukuO.js} +2 -2
- package/build/server/chunks/{5-BSEdxfut.js.map → 5-BHNZukuO.js.map} +1 -1
- package/build/server/chunks/{7-DvU-_ADW.js → 7-_mc0fkA5.js} +4 -4
- package/build/server/chunks/7-_mc0fkA5.js.map +1 -0
- package/build/server/chunks/{8-CA3-CJtS.js → 8-CgCyM--7.js} +4 -4
- package/build/server/chunks/8-CgCyM--7.js.map +1 -0
- package/build/server/chunks/{9-jMOS3lPS.js → 9-CrztPNtK.js} +4 -4
- package/build/server/chunks/9-CrztPNtK.js.map +1 -0
- package/build/server/chunks/{JsonValue-WMdIUvRM.js → JsonValue-BUoddLqM.js} +10 -3
- package/build/server/chunks/JsonValue-BUoddLqM.js.map +1 -0
- package/build/server/chunks/{Modal-zVnoAfFx.js → Modal-BzZ9u6V6.js} +3 -3
- package/build/server/chunks/Modal-BzZ9u6V6.js.map +1 -0
- package/build/server/chunks/Panel-DEP08QXV.js +48 -0
- package/build/server/chunks/Panel-DEP08QXV.js.map +1 -0
- package/build/server/chunks/{PrettyJson-D3CylSVd.js → PrettyJson-5I-m1T9H.js} +53 -38
- package/build/server/chunks/PrettyJson-5I-m1T9H.js.map +1 -0
- package/build/server/chunks/Tooltip-DK6Aok7l.js +35 -0
- package/build/server/chunks/Tooltip-DK6Aok7l.js.map +1 -0
- package/build/server/chunks/{TooltipTable-DCu3GLqO.js → TooltipTable-DUYKVtrh.js} +3 -3
- package/build/server/chunks/{TooltipTable-DCu3GLqO.js.map → TooltipTable-DUYKVtrh.js.map} +1 -1
- package/build/server/chunks/_layout.svelte-CLgSVnvV.js +160 -0
- package/build/server/chunks/_layout.svelte-CLgSVnvV.js.map +1 -0
- package/build/server/chunks/{_page.svelte-DoOBFRSo.js → _page.svelte-B4-xrCHW.js} +42 -30
- package/build/server/chunks/_page.svelte-B4-xrCHW.js.map +1 -0
- package/build/server/chunks/{_page.svelte-C-13GpOe.js → _page.svelte-BORdYQFx.js} +12 -10
- package/build/server/chunks/_page.svelte-BORdYQFx.js.map +1 -0
- package/build/server/chunks/{_page.svelte-2w3fCax2.js → _page.svelte-C8zstZ7b.js} +6 -6
- package/build/server/chunks/{_page.svelte-2w3fCax2.js.map → _page.svelte-C8zstZ7b.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-BBHqwhWF.js → _page.svelte-C9l9vy6P.js} +8 -7
- package/build/server/chunks/{_page.svelte-BBHqwhWF.js.map → _page.svelte-C9l9vy6P.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-BRxX_vQR.js → _page.svelte-CRBjbDDt.js} +8 -7
- package/build/server/chunks/{_page.svelte-BRxX_vQR.js.map → _page.svelte-CRBjbDDt.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-Cm_vgRRR.js → _page.svelte-CiIXCzlp.js} +18 -14
- package/build/server/chunks/_page.svelte-CiIXCzlp.js.map +1 -0
- package/build/server/chunks/{_page.svelte-Ca9u_35e.js → _page.svelte-TuuvQq-s.js} +7 -6
- package/build/server/chunks/{_page.svelte-Ca9u_35e.js.map → _page.svelte-TuuvQq-s.js.map} +1 -1
- package/build/server/chunks/{index2-DBFlGzWV.js → index2-DzKnqQNM.js} +2 -2
- package/build/server/chunks/{index2-DBFlGzWV.js.map → index2-DzKnqQNM.js.map} +1 -1
- package/build/server/index.js +3 -3
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +14 -14
- package/build/server/manifest.js.map +1 -1
- package/package.json +1 -1
- package/src/app.css +161 -134
- package/src/app.html +23 -10
- package/src/lib/actions/portal.ts +28 -0
- package/src/lib/components/Breadcrumbs.svelte +20 -60
- package/src/lib/components/JsonValue.svelte +30 -1
- package/src/lib/components/Modal.svelte +5 -5
- package/src/lib/components/Notifications.svelte +40 -20
- package/src/lib/components/PageSwitcher.svelte +14 -10
- package/src/lib/components/Panel.svelte +19 -15
- package/src/lib/components/PrettyJson.svelte +101 -43
- package/src/lib/components/SearchBox.svelte +117 -96
- package/src/lib/components/ThemeSwitcher.svelte +191 -36
- package/src/lib/components/Tooltip.svelte +23 -14
- package/src/routes/+layout.svelte +36 -17
- package/src/routes/servers/+page.svelte +1 -1
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/+page.svelte +77 -40
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/indexes/+page.svelte +118 -95
- package/src/routes/servers/[server]/databases/[database]/collections/[collection]/mappings/+page.svelte +26 -12
- package/build/client/_app/immutable/assets/0.COnAcXN4.css +0 -1
- package/build/client/_app/immutable/assets/0.COnAcXN4.css.br +0 -0
- package/build/client/_app/immutable/assets/0.COnAcXN4.css.gz +0 -0
- package/build/client/_app/immutable/assets/10.59aTjJn9.css +0 -1
- package/build/client/_app/immutable/assets/10.59aTjJn9.css.br +0 -0
- package/build/client/_app/immutable/assets/10.59aTjJn9.css.gz +0 -0
- package/build/client/_app/immutable/assets/12.BdCOhvz0.css +0 -1
- package/build/client/_app/immutable/assets/12.BdCOhvz0.css.br +0 -0
- package/build/client/_app/immutable/assets/12.BdCOhvz0.css.gz +0 -0
- package/build/client/_app/immutable/assets/Modal.DIIFkbGB.css +0 -1
- package/build/client/_app/immutable/assets/Modal.DIIFkbGB.css.br +0 -0
- package/build/client/_app/immutable/assets/Modal.DIIFkbGB.css.gz +0 -0
- package/build/client/_app/immutable/assets/Panel.B3aWupye.css +0 -1
- package/build/client/_app/immutable/assets/Panel.B3aWupye.css.br +0 -0
- package/build/client/_app/immutable/assets/Panel.B3aWupye.css.gz +0 -0
- package/build/client/_app/immutable/assets/cuprum-cyrillic-400-normal.Cnibl3-L.woff2 +0 -0
- package/build/client/_app/immutable/assets/cuprum-cyrillic-400-normal.RKIjpA76.woff +0 -0
- package/build/client/_app/immutable/assets/cuprum-cyrillic-ext-400-normal.CT5q4ZVh.woff2 +0 -0
- package/build/client/_app/immutable/assets/cuprum-cyrillic-ext-400-normal.iCCFJ4Gn.woff +0 -0
- package/build/client/_app/immutable/assets/cuprum-latin-400-normal.Cbwtr8a4.woff +0 -0
- package/build/client/_app/immutable/assets/cuprum-latin-400-normal.CjFvNwMJ.woff2 +0 -0
- package/build/client/_app/immutable/assets/cuprum-latin-ext-400-normal.BWTJtpjo.woff2 +0 -0
- package/build/client/_app/immutable/assets/cuprum-latin-ext-400-normal.BZXayy47.woff +0 -0
- package/build/client/_app/immutable/assets/cuprum-vietnamese-400-normal.uXRi1gw5.woff +0 -0
- package/build/client/_app/immutable/assets/rajdhani-devanagari-400-normal.BdIzgbsr.woff +0 -0
- package/build/client/_app/immutable/assets/rajdhani-devanagari-400-normal.CTuj2HZW.woff2 +0 -0
- package/build/client/_app/immutable/assets/rajdhani-latin-400-normal.C6_q4usG.woff +0 -0
- package/build/client/_app/immutable/assets/rajdhani-latin-400-normal.CurJOxDW.woff2 +0 -0
- package/build/client/_app/immutable/assets/rajdhani-latin-ext-400-normal.DACPYgMx.woff2 +0 -0
- package/build/client/_app/immutable/assets/rajdhani-latin-ext-400-normal.Der7ynDE.woff +0 -0
- package/build/client/_app/immutable/chunks/3iRu_dUj.js.br +0 -0
- package/build/client/_app/immutable/chunks/3iRu_dUj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/5nAxkTTP.js.br +0 -5
- package/build/client/_app/immutable/chunks/5nAxkTTP.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BBg-V8FE.js +0 -1
- package/build/client/_app/immutable/chunks/BBg-V8FE.js.br +0 -0
- package/build/client/_app/immutable/chunks/BBg-V8FE.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BE8UzJuY.js.br +0 -0
- package/build/client/_app/immutable/chunks/BE8UzJuY.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BQEBQyfZ.js.br +0 -0
- package/build/client/_app/immutable/chunks/BQEBQyfZ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BUNgwIS0.js.br +0 -0
- package/build/client/_app/immutable/chunks/BUNgwIS0.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BvKY81hz.js +0 -1
- package/build/client/_app/immutable/chunks/BvKY81hz.js.br +0 -0
- package/build/client/_app/immutable/chunks/BvKY81hz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C0PCwpqt.js.br +0 -0
- package/build/client/_app/immutable/chunks/C0PCwpqt.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C0rm4mmq.js +0 -1
- package/build/client/_app/immutable/chunks/C0rm4mmq.js.br +0 -0
- package/build/client/_app/immutable/chunks/C0rm4mmq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C2sjtvBO.js.br +0 -0
- package/build/client/_app/immutable/chunks/C2sjtvBO.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C82Rp5eQ.js +0 -1
- package/build/client/_app/immutable/chunks/C82Rp5eQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/C82Rp5eQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CGSOl_q_.js +0 -4
- package/build/client/_app/immutable/chunks/CGSOl_q_.js.br +0 -0
- package/build/client/_app/immutable/chunks/CGSOl_q_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CjNnAkTB.js +0 -1
- package/build/client/_app/immutable/chunks/CjNnAkTB.js.br +0 -0
- package/build/client/_app/immutable/chunks/CjNnAkTB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cx2cA4gg.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cx2cA4gg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D4iRRB8h.js.br +0 -0
- package/build/client/_app/immutable/chunks/D4iRRB8h.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D5ccpaXt.js +0 -1
- package/build/client/_app/immutable/chunks/D5ccpaXt.js.br +0 -0
- package/build/client/_app/immutable/chunks/D5ccpaXt.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D7E46CWw.js.br +0 -0
- package/build/client/_app/immutable/chunks/D7E46CWw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DR9xdhsg.js.br +0 -0
- package/build/client/_app/immutable/chunks/DR9xdhsg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DVRQRZnh.js +0 -1
- package/build/client/_app/immutable/chunks/DVRQRZnh.js.br +0 -0
- package/build/client/_app/immutable/chunks/DVRQRZnh.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DcPEQ0_V.js +0 -29
- package/build/client/_app/immutable/chunks/DcPEQ0_V.js.br +0 -0
- package/build/client/_app/immutable/chunks/DcPEQ0_V.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dx56OlI-.js.br +0 -2
- package/build/client/_app/immutable/chunks/Dx56OlI-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/PXh00dfp.js +0 -2
- package/build/client/_app/immutable/chunks/PXh00dfp.js.br +0 -0
- package/build/client/_app/immutable/chunks/PXh00dfp.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.DrdSPfGo.js.br +0 -0
- package/build/client/_app/immutable/entry/app.DrdSPfGo.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.DGG3CpnK.js +0 -1
- package/build/client/_app/immutable/entry/start.DGG3CpnK.js.br +0 -2
- package/build/client/_app/immutable/entry/start.DGG3CpnK.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.kCLtccjl.js +0 -5
- package/build/client/_app/immutable/nodes/0.kCLtccjl.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.kCLtccjl.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.Dr8p9JHT.js +0 -1
- package/build/client/_app/immutable/nodes/1.Dr8p9JHT.js.br +0 -3
- package/build/client/_app/immutable/nodes/1.Dr8p9JHT.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.B4uwvHd0.js +0 -2
- package/build/client/_app/immutable/nodes/10.B4uwvHd0.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.B4uwvHd0.js.gz +0 -0
- package/build/client/_app/immutable/nodes/11.qfhS2VqU.js.br +0 -0
- package/build/client/_app/immutable/nodes/11.qfhS2VqU.js.gz +0 -0
- package/build/client/_app/immutable/nodes/12.DkZDCIfS.js +0 -1
- package/build/client/_app/immutable/nodes/12.DkZDCIfS.js.br +0 -0
- package/build/client/_app/immutable/nodes/12.DkZDCIfS.js.gz +0 -0
- package/build/client/_app/immutable/nodes/13.DFVzMgyY.js +0 -66
- package/build/client/_app/immutable/nodes/13.DFVzMgyY.js.br +0 -0
- package/build/client/_app/immutable/nodes/13.DFVzMgyY.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.DwwrLLW4.js.br +0 -1
- package/build/client/_app/immutable/nodes/2.DwwrLLW4.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.t20GootO.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.t20GootO.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.CXHjkPtf.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.CXHjkPtf.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.C9tcr5B0.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.C9tcr5B0.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.D14iWySv.js +0 -1
- package/build/client/_app/immutable/nodes/7.D14iWySv.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.D14iWySv.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.BSXe_VNA.js +0 -1
- package/build/client/_app/immutable/nodes/8.BSXe_VNA.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.BSXe_VNA.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.BXMJq3Z_.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.BXMJq3Z_.js.gz +0 -0
- package/build/server/chunks/0-BozXjQlk.js +0 -22
- package/build/server/chunks/0-BozXjQlk.js.map +0 -1
- package/build/server/chunks/1-C_LPMO7A.js +0 -9
- package/build/server/chunks/10-DGUQMXHt.js.map +0 -1
- package/build/server/chunks/11-CxBnyyqR.js.map +0 -1
- package/build/server/chunks/12-K_JVUnsk.js.map +0 -1
- package/build/server/chunks/7-DvU-_ADW.js.map +0 -1
- package/build/server/chunks/8-CA3-CJtS.js.map +0 -1
- package/build/server/chunks/9-jMOS3lPS.js.map +0 -1
- package/build/server/chunks/JsonValue-WMdIUvRM.js.map +0 -1
- package/build/server/chunks/Modal-zVnoAfFx.js.map +0 -1
- package/build/server/chunks/Panel-yg5YKL4d.js +0 -38
- package/build/server/chunks/Panel-yg5YKL4d.js.map +0 -1
- package/build/server/chunks/PrettyJson-D3CylSVd.js.map +0 -1
- package/build/server/chunks/Tooltip-ys6l541_.js +0 -28
- package/build/server/chunks/Tooltip-ys6l541_.js.map +0 -1
- package/build/server/chunks/_layout.svelte-DMm1Ill8.js +0 -168
- package/build/server/chunks/_layout.svelte-DMm1Ill8.js.map +0 -1
- package/build/server/chunks/_page.svelte-C-13GpOe.js.map +0 -1
- package/build/server/chunks/_page.svelte-Cm_vgRRR.js.map +0 -1
- 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
|
|
22
|
-
|
|
23
|
-
{#
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
{
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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
|
|
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:
|
|
51
|
+
padding: 24px 24px 0;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
.modal-header h3 {
|
|
55
55
|
margin: 0;
|
|
56
|
-
font-size: 1.
|
|
57
|
-
font-weight:
|
|
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)}
|
|
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:
|
|
32
|
+
top: 90px;
|
|
18
33
|
right: 20px;
|
|
19
34
|
z-index: 1000;
|
|
20
35
|
display: flex;
|
|
21
36
|
flex-direction: column;
|
|
22
|
-
gap:
|
|
37
|
+
gap: 12px;
|
|
23
38
|
}
|
|
24
39
|
|
|
25
40
|
.notification {
|
|
26
|
-
padding:
|
|
27
|
-
border-radius:
|
|
28
|
-
box-shadow: 0
|
|
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:
|
|
32
|
-
min-width:
|
|
33
|
-
max-width:
|
|
34
|
-
animation: slideIn 0.
|
|
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:
|
|
55
|
+
background: rgba(255, 255, 255, 0.2);
|
|
38
56
|
border: none;
|
|
39
|
-
|
|
57
|
+
border-radius: 8px;
|
|
40
58
|
cursor: pointer;
|
|
41
|
-
opacity: 0.
|
|
59
|
+
opacity: 0.8;
|
|
42
60
|
margin-left: auto;
|
|
43
|
-
padding:
|
|
44
|
-
width:
|
|
45
|
-
height:
|
|
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: #
|
|
77
|
+
background-color: #ff453a;
|
|
58
78
|
color: white;
|
|
59
79
|
}
|
|
60
80
|
|
|
61
81
|
.notification-success {
|
|
62
|
-
background-color: #
|
|
82
|
+
background-color: #32d74b;
|
|
63
83
|
color: white;
|
|
64
84
|
}
|
|
65
85
|
|
|
66
86
|
.notification-info {
|
|
67
|
-
background-color: #
|
|
87
|
+
background-color: #0a84ff;
|
|
68
88
|
color: white;
|
|
69
89
|
}
|
|
70
90
|
|
|
71
91
|
@keyframes slideIn {
|
|
72
92
|
from {
|
|
73
|
-
transform: translateX(
|
|
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
|
|
18
|
-
|
|
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
|
|
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
|
|
31
|
-
<a
|
|
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
|
|
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
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
{
|
|
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
|
|
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
|
-
<
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
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
|
-
<
|
|
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:
|
|
234
|
-
<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
|
|
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
|
|
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="
|
|
246
|
-
<div class="font-mono text-sm leading-
|
|
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
|
-
|
|
251
|
-
<div
|
|
252
|
-
|
|
253
|
-
|
|
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-
|
|
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
|
-
|
|
262
|
-
|
|
263
|
-
|
|
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
|
-
|
|
272
|
-
|
|
329
|
+
</div>
|
|
330
|
+
{/if}
|
|
273
331
|
</Panel>
|