plum-e2e 2.8.5 → 2.9.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/backend/_scaffold/utils/browser.ts +184 -30
- package/backend/_scaffold/utils/hooks.ts +37 -8
- package/backend/app.js +0 -5
- package/backend/config/scripts/generate-report.js +2 -2
- package/backend/constants/socketEvents.js +7 -4
- package/backend/lib/reportFilename.js +1 -2
- package/backend/lib/{screenshotPoller.js → rrwebPoller.js} +7 -4
- package/backend/lib/serverBootstrap.js +14 -0
- package/backend/logs/runner-cmtbz5b1l0000mr0110b27w5k.log +8 -0
- package/backend/mcp/server.js +3 -47
- package/backend/package-lock.json +199 -1
- package/backend/package.json +3 -1
- package/backend/prisma/migrations/20260828120000_add_recording_and_split_runner_worker_count/migration.sql +39 -0
- package/backend/prisma/migrations/20260828140000_add_recording_started_ended_at/migration.sql +5 -0
- package/backend/prisma/migrations/20260828150000_strip_screenshot_refs_from_reports/migration.sql +34 -0
- package/backend/prisma/migrations/20260828160000_add_backup_include_reports/migration.sql +4 -0
- package/backend/prisma/schema.prisma +97 -70
- package/backend/routes/backup.routes.js +47 -1
- package/backend/routes/reports.routes.js +23 -0
- package/backend/routes/test-cases.routes.js +7 -2
- package/backend/server.js +1 -1
- package/backend/services/backupCronService.js +1 -1
- package/backend/services/backupService.js +134 -44
- package/backend/services/cronService.js +23 -15
- package/backend/services/nodeExecutionService.js +41 -15
- package/backend/services/nodeStreamRegistry.js +24 -0
- package/backend/services/reportService.js +174 -84
- package/backend/services/runnerService.js +19 -7
- package/backend/services/settingsService.js +6 -3
- package/backend/services/testCaseService.js +3 -2
- package/backend/services/triggerService.js +20 -13
- package/backend/services/userService.js +1 -3
- package/backend/websockets/nodeSocketHandler.js +40 -0
- package/backend/websockets/socketHandler.js +9 -7
- package/frontend/.svelte-kit/adapter-node/.vite/manifest.json +1 -1
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.C1TbMUws.css +6 -0
- package/frontend/.svelte-kit/adapter-node/chunks/internal.js +1 -1
- package/frontend/.svelte-kit/adapter-node/entries/pages/_page.svelte.js +22 -22
- package/frontend/.svelte-kit/adapter-node/entries/pages/settings/_page.svelte.js +3 -3
- package/frontend/.svelte-kit/adapter-node/manifest-full.js +1 -1
- package/frontend/.svelte-kit/adapter-node/manifest.js +1 -1
- package/frontend/.svelte-kit/adapter-node/nodes/0.js +1 -1
- package/frontend/.svelte-kit/adapter-node/nodes/1.js +1 -1
- package/frontend/.svelte-kit/adapter-node/nodes/11.js +1 -1
- package/frontend/.svelte-kit/adapter-node/nodes/12.js +1 -1
- package/frontend/.svelte-kit/adapter-node/nodes/2.js +2 -2
- package/frontend/.svelte-kit/adapter-node/nodes/3.js +1 -1
- package/frontend/.svelte-kit/adapter-node/nodes/5.js +1 -1
- package/frontend/.svelte-kit/adapter-node/nodes/6.js +1 -1
- package/frontend/.svelte-kit/adapter-node/nodes/8.js +1 -1
- package/frontend/.svelte-kit/adapter-node/nodes/9.js +1 -1
- package/frontend/.svelte-kit/ambient.d.ts +4 -0
- package/frontend/.svelte-kit/generated/server/internal.js +1 -1
- package/frontend/.svelte-kit/output/client/.vite/manifest.json +35 -35
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/2.C1TbMUws.css +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.C1TbMUws.css +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{DEKAA-Fm.js → DDZw0L0T.js} +1 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{Dhf4xQKo.js → kkA1mrsH.js} +2 -2
- package/frontend/.svelte-kit/output/client/_app/immutable/entry/{app.B0GH5ONo.js → app.KrtMZ3my.js} +2 -2
- package/frontend/.svelte-kit/output/client/_app/immutable/entry/{start.Bn25CW9X.js → start.4qxHHAcl.js} +1 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/{0.-imXt0f5.js → 0.C8DodwXs.js} +1 -1
- package/frontend/{build/client/_app/immutable/nodes/1.Dom3CKWF.js → .svelte-kit/output/client/_app/immutable/nodes/1.Df9sLw8b.js} +1 -1
- package/frontend/{build/client/_app/immutable/nodes/11.DMlayLCK.js → .svelte-kit/output/client/_app/immutable/nodes/11.BViaDK2m.js} +1 -1
- package/frontend/{build/client/_app/immutable/nodes/12.Bu89A1eX.js → .svelte-kit/output/client/_app/immutable/nodes/12.BMSCSd88.js} +1 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/2.BCPSg7H4.js +6 -0
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/{3.B86rlHXU.js → 3.8BFAJoHT.js} +1 -1
- package/frontend/{build/client/_app/immutable/nodes/5.CqTXvadV.js → .svelte-kit/output/client/_app/immutable/nodes/5.DVeH2eQP.js} +1 -1
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/{6.BJZ62MCd.js → 6.DI7-IJhN.js} +1 -1
- package/frontend/{build/client/_app/immutable/nodes/8.B4fj2Xyu.js → .svelte-kit/output/client/_app/immutable/nodes/8.93Mb3ofT.js} +4 -4
- package/frontend/{build/client/_app/immutable/nodes/9.C57_2xq6.js → .svelte-kit/output/client/_app/immutable/nodes/9.CvfGx3Hu.js} +1 -1
- package/frontend/.svelte-kit/output/client/_app/version.json +1 -1
- package/frontend/.svelte-kit/output/server/.vite/manifest.json +1 -1
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.C1TbMUws.css +6 -0
- package/frontend/.svelte-kit/output/server/chunks/internal.js +1 -1
- package/frontend/.svelte-kit/output/server/entries/pages/_page.svelte.js +22 -22
- package/frontend/.svelte-kit/output/server/entries/pages/settings/_page.svelte.js +3 -3
- package/frontend/.svelte-kit/output/server/manifest-full.js +1 -1
- package/frontend/.svelte-kit/output/server/manifest.js +1 -1
- package/frontend/.svelte-kit/output/server/nodes/0.js +1 -1
- package/frontend/.svelte-kit/output/server/nodes/1.js +1 -1
- package/frontend/.svelte-kit/output/server/nodes/11.js +1 -1
- package/frontend/.svelte-kit/output/server/nodes/12.js +1 -1
- package/frontend/.svelte-kit/output/server/nodes/2.js +2 -2
- package/frontend/.svelte-kit/output/server/nodes/3.js +1 -1
- package/frontend/.svelte-kit/output/server/nodes/5.js +1 -1
- package/frontend/.svelte-kit/output/server/nodes/6.js +1 -1
- package/frontend/.svelte-kit/output/server/nodes/8.js +1 -1
- package/frontend/.svelte-kit/output/server/nodes/9.js +1 -1
- package/frontend/build/client/_app/immutable/assets/2.C1TbMUws.css +6 -0
- package/frontend/build/client/_app/immutable/assets/2.C1TbMUws.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/2.C1TbMUws.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.C1TbMUws.css +6 -0
- package/frontend/build/client/_app/immutable/assets/_page.C1TbMUws.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.C1TbMUws.css.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/{DEKAA-Fm.js → DDZw0L0T.js} +1 -1
- package/frontend/build/client/_app/immutable/chunks/DDZw0L0T.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/DDZw0L0T.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/{Dhf4xQKo.js → kkA1mrsH.js} +2 -2
- package/frontend/build/client/_app/immutable/chunks/kkA1mrsH.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/kkA1mrsH.js.gz +0 -0
- package/frontend/build/client/_app/immutable/entry/{app.B0GH5ONo.js → app.KrtMZ3my.js} +2 -2
- package/frontend/build/client/_app/immutable/entry/app.KrtMZ3my.js.br +0 -0
- package/frontend/build/client/_app/immutable/entry/app.KrtMZ3my.js.gz +0 -0
- package/frontend/build/client/_app/immutable/entry/{start.Bn25CW9X.js → start.4qxHHAcl.js} +1 -1
- package/frontend/build/client/_app/immutable/entry/{start.Bn25CW9X.js.br → start.4qxHHAcl.js.br} +0 -0
- package/frontend/build/client/_app/immutable/entry/{start.Bn25CW9X.js.gz → start.4qxHHAcl.js.gz} +0 -0
- package/frontend/build/client/_app/immutable/nodes/{0.-imXt0f5.js → 0.C8DodwXs.js} +1 -1
- package/frontend/build/client/_app/immutable/nodes/0.C8DodwXs.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/0.C8DodwXs.js.gz +0 -0
- package/frontend/{.svelte-kit/output/client/_app/immutable/nodes/1.Dom3CKWF.js → build/client/_app/immutable/nodes/1.Df9sLw8b.js} +1 -1
- package/frontend/build/client/_app/immutable/nodes/1.Df9sLw8b.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/1.Df9sLw8b.js.gz +0 -0
- package/frontend/{.svelte-kit/output/client/_app/immutable/nodes/11.DMlayLCK.js → build/client/_app/immutable/nodes/11.BViaDK2m.js} +1 -1
- package/frontend/build/client/_app/immutable/nodes/11.BViaDK2m.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/11.BViaDK2m.js.gz +0 -0
- package/frontend/{.svelte-kit/output/client/_app/immutable/nodes/12.Bu89A1eX.js → build/client/_app/immutable/nodes/12.BMSCSd88.js} +1 -1
- package/frontend/build/client/_app/immutable/nodes/12.BMSCSd88.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/{12.Bu89A1eX.js.gz → 12.BMSCSd88.js.gz} +0 -0
- package/frontend/build/client/_app/immutable/nodes/2.BCPSg7H4.js +6 -0
- package/frontend/build/client/_app/immutable/nodes/2.BCPSg7H4.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/2.BCPSg7H4.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/{3.B86rlHXU.js → 3.8BFAJoHT.js} +1 -1
- package/frontend/build/client/_app/immutable/nodes/3.8BFAJoHT.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/3.8BFAJoHT.js.gz +0 -0
- package/frontend/{.svelte-kit/output/client/_app/immutable/nodes/5.CqTXvadV.js → build/client/_app/immutable/nodes/5.DVeH2eQP.js} +1 -1
- package/frontend/build/client/_app/immutable/nodes/5.DVeH2eQP.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/5.DVeH2eQP.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/{6.BJZ62MCd.js → 6.DI7-IJhN.js} +1 -1
- package/frontend/build/client/_app/immutable/nodes/6.DI7-IJhN.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/6.DI7-IJhN.js.gz +0 -0
- package/frontend/{.svelte-kit/output/client/_app/immutable/nodes/8.B4fj2Xyu.js → build/client/_app/immutable/nodes/8.93Mb3ofT.js} +4 -4
- package/frontend/build/client/_app/immutable/nodes/8.93Mb3ofT.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/8.93Mb3ofT.js.gz +0 -0
- package/frontend/{.svelte-kit/output/client/_app/immutable/nodes/9.C57_2xq6.js → build/client/_app/immutable/nodes/9.CvfGx3Hu.js} +1 -1
- package/frontend/build/client/_app/immutable/nodes/9.CvfGx3Hu.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/9.CvfGx3Hu.js.gz +0 -0
- package/frontend/build/client/_app/version.json +1 -1
- package/frontend/build/client/_app/version.json.br +0 -0
- package/frontend/build/client/_app/version.json.gz +0 -0
- package/frontend/build/server/chunks/{0-DG1Uv07a.js → 0-D5YWFygh.js} +2 -2
- package/frontend/build/server/chunks/{0-DG1Uv07a.js.map → 0-D5YWFygh.js.map} +1 -1
- package/frontend/build/server/chunks/{1-iB0ogJU_.js → 1-Kxn9d30Z.js} +2 -2
- package/frontend/build/server/chunks/{1-iB0ogJU_.js.map → 1-Kxn9d30Z.js.map} +1 -1
- package/frontend/build/server/chunks/{11-Df9vGZ_v.js → 11-CNLerze_.js} +2 -2
- package/frontend/build/server/chunks/{11-Df9vGZ_v.js.map → 11-CNLerze_.js.map} +1 -1
- package/frontend/build/server/chunks/{12-DqvjCln4.js → 12-De6Ol6pu.js} +2 -2
- package/frontend/build/server/chunks/{12-DqvjCln4.js.map → 12-De6Ol6pu.js.map} +1 -1
- package/frontend/build/server/chunks/{2-Cte30Dgy.js → 2-Dc_rKWoK.js} +4 -4
- package/frontend/build/server/chunks/{2-Cte30Dgy.js.map → 2-Dc_rKWoK.js.map} +1 -1
- package/frontend/build/server/chunks/{3-BYKCZi4U.js → 3-DrRqVrcX.js} +2 -2
- package/frontend/build/server/chunks/{3-BYKCZi4U.js.map → 3-DrRqVrcX.js.map} +1 -1
- package/frontend/build/server/chunks/{5-B6Jc1foX.js → 5-CFeE5dPZ.js} +2 -2
- package/frontend/build/server/chunks/{5-B6Jc1foX.js.map → 5-CFeE5dPZ.js.map} +1 -1
- package/frontend/build/server/chunks/{6-dXZKtN86.js → 6-DZk37MZH.js} +2 -2
- package/frontend/build/server/chunks/{6-dXZKtN86.js.map → 6-DZk37MZH.js.map} +1 -1
- package/frontend/build/server/chunks/{8-D-Bp7HzS.js → 8-CKPVFOqJ.js} +3 -3
- package/frontend/build/server/chunks/{8-D-Bp7HzS.js.map → 8-CKPVFOqJ.js.map} +1 -1
- package/frontend/build/server/chunks/{9-BynjuGUO.js → 9-DirZG_Lu.js} +2 -2
- package/frontend/build/server/chunks/{9-BynjuGUO.js.map → 9-DirZG_Lu.js.map} +1 -1
- package/frontend/build/server/chunks/{_page.svelte-CpB-fgJl.js → _page.svelte-04WxjOuH.js} +23 -23
- package/frontend/build/server/chunks/_page.svelte-04WxjOuH.js.map +5 -0
- package/frontend/build/server/chunks/{_page.svelte-wKyUmA2e.js → _page.svelte-8gELc_B1.js} +4 -4
- package/frontend/build/server/chunks/_page.svelte-8gELc_B1.js.map +5 -0
- package/frontend/build/server/index.js +1 -1
- package/frontend/build/server/index.js.map +1 -1
- package/frontend/build/server/manifest.js +11 -11
- package/frontend/build/server/manifest.js.map +1 -1
- package/frontend/package-lock.json +121 -32
- package/frontend/package.json +1 -0
- package/frontend/src/lib/api/reports.js +13 -4
- package/frontend/src/lib/api/repository.js +2 -2
- package/frontend/src/lib/api/settings.js +16 -1
- package/frontend/src/lib/components/layout/RunnerPanel.svelte +9 -24
- package/frontend/src/lib/components/reports/ElementInspector.svelte +141 -0
- package/frontend/src/lib/components/reports/LiveReplayer.svelte +110 -0
- package/frontend/src/lib/components/reports/MultiTabTimeline.svelte +115 -0
- package/frontend/src/lib/components/reports/RecordingPlayer.svelte +786 -0
- package/frontend/src/lib/components/reports/StepsRail.svelte +109 -0
- package/frontend/src/lib/components/ui/CodeViewer.svelte +61 -0
- package/frontend/src/lib/constants.js +0 -1
- package/frontend/src/lib/copy/reports.js +18 -8
- package/frontend/src/lib/copy/repository.js +6 -0
- package/frontend/src/lib/copy/settings.js +25 -4
- package/frontend/src/lib/socketEvents.js +7 -4
- package/frontend/src/lib/stores/runner.js +26 -3
- package/frontend/src/lib/styles/tokens.css +7 -0
- package/frontend/src/lib/utils/format.js +108 -2
- package/frontend/src/lib/utils/inspectElement.js +34 -0
- package/frontend/src/routes/+page.svelte +6 -1
- package/frontend/src/routes/reports/+page.svelte +79 -1
- package/frontend/src/routes/reports/[id]/+page.svelte +304 -495
- package/frontend/src/routes/reports/live/+page.svelte +236 -260
- package/frontend/src/routes/settings/+page.svelte +246 -8
- package/frontend/src/routes/test-repository/suites/[id]/+page.svelte +116 -0
- package/package.json +1 -1
- package/backend/playwright.config.js +0 -85
- package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.DvMkmYA-.css +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/2.DvMkmYA-.css +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.DvMkmYA-.css +0 -6
- package/frontend/.svelte-kit/output/client/_app/immutable/nodes/2.BnHalSCi.js +0 -6
- package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.DvMkmYA-.css +0 -6
- package/frontend/build/client/_app/immutable/assets/2.DvMkmYA-.css +0 -6
- package/frontend/build/client/_app/immutable/assets/2.DvMkmYA-.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/2.DvMkmYA-.css.gz +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.DvMkmYA-.css +0 -6
- package/frontend/build/client/_app/immutable/assets/_page.DvMkmYA-.css.br +0 -0
- package/frontend/build/client/_app/immutable/assets/_page.DvMkmYA-.css.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/DEKAA-Fm.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/DEKAA-Fm.js.gz +0 -0
- package/frontend/build/client/_app/immutable/chunks/Dhf4xQKo.js.br +0 -0
- package/frontend/build/client/_app/immutable/chunks/Dhf4xQKo.js.gz +0 -0
- package/frontend/build/client/_app/immutable/entry/app.B0GH5ONo.js.br +0 -0
- package/frontend/build/client/_app/immutable/entry/app.B0GH5ONo.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/0.-imXt0f5.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/0.-imXt0f5.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/1.Dom3CKWF.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/1.Dom3CKWF.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/11.DMlayLCK.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/11.DMlayLCK.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/12.Bu89A1eX.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/2.BnHalSCi.js +0 -6
- package/frontend/build/client/_app/immutable/nodes/2.BnHalSCi.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/2.BnHalSCi.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/3.B86rlHXU.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/3.B86rlHXU.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/5.CqTXvadV.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/5.CqTXvadV.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/6.BJZ62MCd.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/6.BJZ62MCd.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/8.B4fj2Xyu.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/8.B4fj2Xyu.js.gz +0 -0
- package/frontend/build/client/_app/immutable/nodes/9.C57_2xq6.js.br +0 -0
- package/frontend/build/client/_app/immutable/nodes/9.C57_2xq6.js.gz +0 -0
- package/frontend/build/server/chunks/_page.svelte-CpB-fgJl.js.map +0 -5
- package/frontend/build/server/chunks/_page.svelte-wKyUmA2e.js.map +0 -5
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* This file is part of Plum.
|
|
3
|
-
* Licensed under the MIT License. See LICENSE file in the project root for details.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
.page-header.svelte-ll28r2{margin-bottom:1.75rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.header-top.svelte-ll28r2{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}h1.svelte-ll28r2{font-size:2.5rem;margin-bottom:.25rem}.subtitle.svelte-ll28r2{color:var(--text-muted);font-size:.875rem}.search-row.svelte-ll28r2{display:flex;gap:.75rem}.search-wrap.svelte-ll28r2{position:relative;flex:1;max-width:480px}.search-icon.svelte-ll28r2{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.search-input.svelte-ll28r2{width:100%;padding:.55rem .875rem .55rem 2.25rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-subtle);color:var(--text);font-family:var(--font-body);font-size:.875rem;font-weight:300;outline:none;transition:border-color var(--duration-fast),box-shadow var(--duration-fast)}.search-input.svelte-ll28r2:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:var(--bg-elevated)}.sort-bar.svelte-ll28r2{display:flex;align-items:center;gap:.375rem;margin:1.25rem 0;flex-wrap:wrap}.sort-label.svelte-ll28r2{font-size:.75rem;color:var(--text-muted);margin-right:.25rem}.sort-chip.svelte-ll28r2{display:flex;align-items:center;gap:.25rem;height:28px;padding:0 .625rem;font-family:var(--font-body);font-size:.8125rem;color:var(--text-muted);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-pill);cursor:pointer;transition:color var(--duration-fast),border-color var(--duration-fast),background var(--duration-fast)}.sort-chip.svelte-ll28r2:hover{color:var(--text);border-color:var(--accent)}.sort-chip.active.svelte-ll28r2{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.sort-dir.svelte-ll28r2{font-size:.7rem;opacity:.8}.search-input.svelte-ll28r2::placeholder{color:var(--text-muted)}.search-clear.svelte-ll28r2{position:absolute;right:.625rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;border:none;background:var(--border);color:var(--text-muted);cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast)}.search-clear.svelte-ll28r2:hover{background:var(--text-muted);color:var(--bg)}.suites.svelte-ll28r2{display:flex;flex-direction:column;gap:1rem}.suite.svelte-ll28r2{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:visible;background:var(--bg-elevated);animation:fadeUp .35s var(--ease-out) both}.suite-header.svelte-ll28r2{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.875rem 1.25rem;background:var(--bg-subtle);border-bottom:1px solid var(--border);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.suite-toggle.svelte-ll28r2{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;flex-shrink:0;border-radius:var(--radius-sm);transition:background var(--duration-fast),color var(--duration-fast)}.suite-toggle.svelte-ll28r2:hover{background:var(--bg-elevated);color:var(--text)}.suite-toggle.svelte-ll28r2 svg:where(.svelte-ll28r2){transition:transform var(--duration-fast) var(--ease-out)}.suite-toggle.svelte-ll28r2 svg.rotated:where(.svelte-ll28r2){transform:rotate(90deg)}.suite-meta.svelte-ll28r2{display:flex;align-items:center;gap:.625rem;flex:1;min-width:0}.suite-badges.svelte-ll28r2{display:flex;gap:.25rem;flex-shrink:0}.suite-name.svelte-ll28r2{font-size:.9rem;font-weight:400;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.suite-count.svelte-ll28r2{font-size:.75rem;color:var(--text-muted);flex-shrink:0}.run-btn.svelte-ll28r2{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-body);font-size:.75rem;font-weight:400;padding:.3rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text-muted);cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background var(--duration-fast),color var(--duration-fast),border-color var(--duration-fast)}.run-btn.svelte-ll28r2:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.tests.svelte-ll28r2{display:flex;flex-direction:column}.test-row.svelte-ll28r2{border-bottom:1px solid var(--border);animation:fadeUp .3s var(--ease-out) both}.test-row.svelte-ll28r2:last-child{border-bottom:none}.test-main.svelte-ll28r2{display:flex;align-items:center;gap:.625rem;padding:.75rem 1.25rem}.run-icon-btn.svelte-ll28r2{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;flex-shrink:0;transition:background var(--duration-fast),color var(--duration-fast),border-color var(--duration-fast)}.run-icon-btn.svelte-ll28r2:hover{background:var(--accent);color:var(--white);border-color:var(--accent)}.test-ids.svelte-ll28r2{display:flex;gap:.25rem;flex-shrink:0}.id-pill.svelte-ll28r2{position:relative;font-size:.68rem;font-weight:500;letter-spacing:.04em;color:var(--accent);background:var(--accent-soft);border:none;border-radius:var(--radius-pill);padding:.15rem .55rem;cursor:pointer;font-family:JetBrains Mono,monospace;transition:background var(--duration-fast),color var(--duration-fast),filter var(--duration-fast)}.id-pill.svelte-ll28r2:hover{filter:brightness(.92)}.id-pill.copied.svelte-ll28r2{color:var(--pass);background:var(--pass-soft)}.id-pill.copied.svelte-ll28r2:after{content:"Copied";position:absolute;left:50%;bottom:calc(100% + 6px);z-index:50;transform:translate(-50%);padding:.16rem .42rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--pass);box-shadow:0 4px 14px #00000014;font-family:var(--font-body);font-size:.65rem;font-weight:500;letter-spacing:0;pointer-events:none;animation:svelte-ll28r2-copiedPop 1.4s var(--ease-out) both}.test-name.svelte-ll28r2{flex:1;font-size:.875rem;color:var(--text);min-width:0}.outline-badge.svelte-ll28r2{display:inline-block;font-size:.62rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;background:var(--warn-soft);color:var(--warn);padding:.1rem .4rem;border-radius:var(--radius-pill);margin-left:.4rem;vertical-align:middle}.steps-toggle.svelte-ll28r2{display:inline-flex;align-items:center;gap:.2rem;font-family:var(--font-body);font-size:.72rem;font-weight:400;color:var(--text-muted);background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.2rem .5rem;cursor:pointer;flex-shrink:0;transition:background var(--duration-fast),color var(--duration-fast)}.steps-toggle.svelte-ll28r2:hover{background:var(--bg-subtle);color:var(--text)}.steps-toggle.svelte-ll28r2 svg:where(.svelte-ll28r2){transition:transform var(--duration-fast) var(--ease-out)}.steps-toggle.svelte-ll28r2 svg.rotated:where(.svelte-ll28r2){transform:rotate(90deg)}.steps.svelte-ll28r2{padding:.75rem 1.25rem .875rem 3.75rem;background:var(--bg-subtle);border-top:1px solid var(--border)}.step-list.svelte-ll28r2{list-style:none;display:flex;flex-direction:column;gap:.3rem}.step.svelte-ll28r2{font-size:.8125rem;color:var(--text-muted);font-family:JetBrains Mono,monospace;line-height:1.5;padding-left:1rem;position:relative}.step.svelte-ll28r2:before{content:"›";position:absolute;left:0;color:var(--accent);font-family:var(--font-body)}.examples.svelte-ll28r2{margin-top:.75rem;padding-top:.75rem;border-top:1px dashed var(--border)}.examples-label.svelte-ll28r2{display:block;font-size:.68rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.5rem}.examples-table-wrap.svelte-ll28r2{overflow-x:auto}.examples-table.svelte-ll28r2{border-collapse:collapse;font-size:.78rem;font-family:JetBrains Mono,monospace;width:auto}.examples-table.svelte-ll28r2 th:where(.svelte-ll28r2){text-align:left;padding:.3rem .75rem;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);font-family:var(--font-body);font-weight:500}.examples-table.svelte-ll28r2 td:where(.svelte-ll28r2){padding:.3rem .75rem;color:var(--text-muted);border-bottom:1px solid var(--border)}.examples-table.svelte-ll28r2 tbody:where(.svelte-ll28r2) tr:where(.svelte-ll28r2):last-child td:where(.svelte-ll28r2){border-bottom:none}@keyframes svelte-ll28r2-copiedPop{0%{opacity:0;transform:translate(-50%,4px) scale(.96)}12%,78%{opacity:1;transform:translate(-50%) scale(1)}to{opacity:0;transform:translate(-50%,-2px) scale(.98)}}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* This file is part of Plum.
|
|
3
|
-
* Licensed under the MIT License. See LICENSE file in the project root for details.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import{h as xt,a as i,t as c,b as Ge,s as g,e as B}from"../chunks/CMBQQ9RZ.js";import{i as yt}from"../chunks/CKDtmZUQ.js";import{p as wt,m as E,o as St,an as Ct,l as ve,b as Et,f as Lt,g as e,c as kt,s as b,$ as At,d as l,j as n,k as a,t as x,x as w}from"../chunks/BAACMRH5.js";import{i as L}from"../chunks/CgnwuKKO.js";import{e as T,t as ee,i as I,a as je,g as qe}from"../chunks/TOCyHP97.js";import{A as Tt,p as Ce,s as _,r as It,c as $t,S as Bt,w as Nt}from"../chunks/CUC98kMZ.js";import{b as Ot}from"../chunks/t-La0hgu.js";import{e as Mt,t as Rt}from"../chunks/DHM6H-es.js";import{s as Je}from"../chunks/DSLBMEpr.js";import{E as Dt}from"../chunks/BKuh57WU.js";async function Pt(){const o=await fetch(`${Tt}/tests`),{suites:$}=await o.json();return $.suites??[]}const Ht="Automated Tests — Plum",Ut="Tests",Gt="Search suites or tests…",jt="No test suites found.",Ye="Run suite",qt="outline",Jt="Hide",Yt="Steps",zt="Examples",Ft=o=>`No tests matching "${o}"`,Kt=o=>`Copied ${o}`,Vt=o=>`Copy ${o}`,Xt=o=>`Run ${o}`,Qt=o=>`Run ${o}`,Wt=o=>o?"Collapse suite":"Expand suite",Zt=(o,$)=>`${o} of ${$} tests`,es=o=>`${o} ${Ce(o,"test")}`,ts=(o,$)=>`${o} ${Ce(o,"suite")} · ${$} ${Ce($,"test")}`;var ss=c('<button class="search-clear svelte-ll28r2"><svg width="12" height="12" viewBox="0 0 14 14" fill="none" class="svelte-ll28r2"><path d="M1 1l12 12M13 1L1 13" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" class="svelte-ll28r2"></path></svg></button>'),as=c('<span class="sort-dir svelte-ll28r2"> </span>'),ls=c('<button class="sort-chip svelte-ll28r2"> <!></button>'),rs=c('<div class="sort-bar svelte-ll28r2"><span class="sort-label svelte-ll28r2"></span> <!></div>'),os=c('<button class="id-pill svelte-ll28r2"> </button>'),ns=c('<button class="id-pill svelte-ll28r2"> </button>'),is=c('<span class="outline-badge svelte-ll28r2"></span>'),vs=c('<button class="steps-toggle svelte-ll28r2"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-ll28r2"><polyline points="9 18 15 12 9 6" class="svelte-ll28r2"></polyline></svg> </button>'),cs=c('<li class="step svelte-ll28r2"> </li>'),ds=c('<th class="svelte-ll28r2"> </th>'),us=c('<td class="svelte-ll28r2"> </td>'),ps=c('<tr class="svelte-ll28r2"></tr>'),_s=c('<div class="examples svelte-ll28r2"><span class="examples-label svelte-ll28r2"></span> <div class="examples-table-wrap svelte-ll28r2"><table class="examples-table svelte-ll28r2"><thead class="svelte-ll28r2"><tr class="svelte-ll28r2"></tr></thead><tbody class="svelte-ll28r2"></tbody></table></div></div>'),hs=c('<div class="steps svelte-ll28r2"><ol class="step-list svelte-ll28r2"></ol> <!></div>'),fs=c('<div class="test-row svelte-ll28r2"><div class="test-main svelte-ll28r2"><button class="run-icon-btn svelte-ll28r2"><svg width="10" height="10" viewBox="0 0 24 24" fill="currentColor" stroke="none" class="svelte-ll28r2"><polygon points="5,3 19,12 5,21" class="svelte-ll28r2"></polygon></svg></button> <div class="test-ids svelte-ll28r2"></div> <span class="test-name svelte-ll28r2"> <!></span> <!></div> <!></div>'),ms=c('<div class="tests svelte-ll28r2"></div>'),gs=c('<div class="suite svelte-ll28r2"><div class="suite-header svelte-ll28r2"><button class="suite-toggle svelte-ll28r2"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-ll28r2"><polyline points="9 18 15 12 9 6" class="svelte-ll28r2"></polyline></svg></button> <div class="suite-meta svelte-ll28r2"><div class="suite-badges svelte-ll28r2"></div> <span class="suite-name svelte-ll28r2"> </span> <span class="suite-count svelte-ll28r2"> </span></div> <button class="run-btn suite-run svelte-ll28r2"><svg width="11" height="11" viewBox="0 0 24 24" fill="currentColor" stroke="none" class="svelte-ll28r2"><polygon points="5,3 19,12 5,21" class="svelte-ll28r2"></polygon></svg> </button></div> <!></div>'),bs=c('<div class="suites svelte-ll28r2"></div>'),xs=c('<div class="page-header svelte-ll28r2"><div class="header-top svelte-ll28r2"><div class="svelte-ll28r2"><h1 class="svelte-ll28r2"></h1> <p class="subtitle svelte-ll28r2"><!></p></div></div> <div class="search-row svelte-ll28r2"><div class="search-wrap svelte-ll28r2"><svg class="search-icon svelte-ll28r2" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8" class="svelte-ll28r2"></circle><line x1="21" y1="21" x2="16.65" y2="16.65" class="svelte-ll28r2"></line></svg> <input type="text" class="search-input svelte-ll28r2"> <!></div></div></div> <!> <!>',1);function $s(o,$){wt($,!1);const S=E(),V=E(),ce=E(),Ee=E();let U=E([]),N=E(""),G=E(new Set),j=E(new Set),C=E(new Set);const X=new Map;function ze(t,s){try{const v=sessionStorage.getItem(t);if(v)return JSON.parse(v)}catch{}return s}function Fe(t,s){try{sessionStorage.setItem(t,JSON.stringify(s))}catch{}}let h=E(ze("plum:automated-tests:sort",{by:"id",order:"desc"}));function Ke(t){b(h,e(h).by===t?{...e(h),order:e(h).order==="asc"?"desc":"asc"}:{by:t,order:t==="id"?"desc":"asc"}),Fe("plum:automated-tests:sort",e(h))}async function Ve(){try{b(U,await Pt())}catch(t){console.error("Failed to fetch suites",t)}}St(Ve);function q(t){return Array.isArray(t.suiteId)?t.suiteId:[t.suiteId]}function Le(t){return Array.isArray(t.id)?t.id:[t.id]}function de(t){return Array.isArray(t.id)?t.id[0]:t.id}function Xe(t){e(G).has(t)?e(G).delete(t):e(G).add(t),b(G,e(G))}function Qe(t){e(j).has(t)?e(j).delete(t):e(j).add(t),b(j,e(j))}function ke(t){Mt.update(s=>({...s,testID:t})),Rt(t)}function We(t){ke(q(t)[0])}async function Ae(t){await navigator.clipboard.writeText(t),e(C).add(t),b(C,e(C)),X.has(t)&&clearTimeout(X.get(t)),X.set(t,setTimeout(()=>{e(C).delete(t),b(C,e(C)),X.delete(t)},Nt))}Ct(()=>{for(const t of X.values())clearTimeout(t)}),ve(()=>e(N),()=>{b(S,e(N).trim().toLowerCase())}),ve(()=>(e(U),e(S),e(h)),()=>{b(V,e(U).map(t=>{if(!e(S))return t;const s=t.suiteName.toLowerCase().includes(e(S))||q(t).some(d=>d.toLowerCase().includes(e(S))),v=t.tests.filter(d=>d.testCase.toLowerCase().includes(e(S))||Le(d).some(J=>J.toLowerCase().includes(e(S))));return!s&&v.length===0?null:{...t,tests:s?t.tests:v}}).filter(Boolean).map(t=>({...t,tests:[...t.tests].sort((s,v)=>{const d=e(h).by==="name"?s.testCase.localeCompare(v.testCase):(de(s)??"").localeCompare(de(v)??"");return e(h).order==="asc"?d:-d})})).sort((t,s)=>{const v=e(h).by==="name"?t.suiteName.localeCompare(s.suiteName):(q(t)[0]??"").localeCompare(q(s)[0]??"");return e(h).order==="asc"?v:-v}))}),ve(()=>e(U),()=>{b(ce,e(U).reduce((t,s)=>t+s.tests.length,0))}),ve(()=>e(V),()=>{b(Ee,e(V).reduce((t,s)=>t+s.tests.length,0))}),Et(),yt();var Te=xs();xt(t=>{At.title=Ht});var ue=Lt(Te),pe=l(ue),Ie=l(pe),$e=l(Ie);$e.textContent=Ut;var Be=n($e,2),Ze=l(Be);{var et=t=>{var s=Ge();x(v=>g(s,v),[()=>Zt(e(Ee),e(ce))],w),i(t,s)},tt=t=>{var s=Ge();x(v=>g(s,v),[()=>ts(e(U).length,e(ce))],w),i(t,s)};L(Ze,t=>{e(S)?t(et):t(tt,!1)})}a(Be),a(Ie),a(pe);var Ne=n(pe,2),Oe=l(Ne),te=n(l(Oe),2);It(te),_(te,"placeholder",Gt);var st=n(te,2);{var at=t=>{var s=ss();_(s,"aria-label",$t),B("click",s,()=>b(N,"")),i(t,s)};L(st,t=>{e(N)&&t(at)})}a(Oe),a(Ne),a(ue);var Me=n(ue,2);{var lt=t=>{var s=rs(),v=l(s);v.textContent=Bt;var d=n(v,2);T(d,0,()=>[["id","ID"],["name","Name"]],I,(J,O)=>{let Y=()=>O[0],z=()=>O[1];var k=ls(),A=l(k),_e=n(A);{var Q=M=>{var R=as(),he=l(R,!0);a(R),x(()=>g(he,e(h).order==="asc"?"↑":"↓")),i(M,R)};L(_e,M=>{e(h).by===Y()&&M(Q)})}a(k),x(()=>{ee(k,"active",e(h).by===Y()),g(A,`${z()??""} `)}),B("click",k,()=>Ke(Y())),i(J,k)}),a(s),i(t,s)};L(Me,t=>{e(S)||t(lt)})}var rt=n(Me,2);{var ot=t=>{const s=w(()=>e(S)?Ft(e(N)):jt);Dt(t,{get message(){return e(s)}})},nt=t=>{var s=bs();T(s,5,()=>e(V),I,(v,d,J)=>{var O=gs();const Y=w(()=>q(e(d))[0]??e(d).suiteName),z=w(()=>!e(j).has(e(Y)));var k=l(O),A=l(k),_e=l(A);a(A);var Q=n(A,2),M=l(Q);T(M,5,()=>q(e(d)),I,(D,f)=>{var y=os(),m=l(y,!0);a(y),x((ae,F)=>{_(y,"title",ae),_(y,"aria-label",ae),ee(y,"copied",F),g(m,e(f))},[()=>e(C).has(e(f))?Kt(e(f)):Vt(e(f)),()=>e(C).has(e(f))],w),B("click",y,()=>Ae(e(f))),i(D,y)}),a(M);var R=n(M,2),he=l(R,!0);a(R);var Re=n(R,2),it=l(Re,!0);a(Re),a(Q);var se=n(Q,2);_(se,"title",Ye);var vt=n(l(se));vt.nodeValue=` ${Ye}`,a(se),a(k);var ct=n(k,2);{var dt=D=>{var f=ms();T(f,5,()=>e(d).tests,I,(y,m,ae)=>{var F=fs();const le=w(()=>de(e(m))),re=w(()=>e(G).has(e(le)));var fe=l(F),oe=l(fe),me=n(oe,2);T(me,5,()=>Le(e(m)),I,(p,r)=>{var u=ns(),W=l(u,!0);a(u),x((ne,P)=>{_(u,"title",ne),_(u,"aria-label",ne),ee(u,"copied",P),g(W,e(r))},[()=>e(C).has(e(r))?`Copied ${e(r)}`:`Copy ${e(r)}`,()=>e(C).has(e(r))],w),B("click",u,()=>Ae(e(r))),i(p,u)}),a(me);var ge=n(me,2),De=l(ge),ut=n(De);{var pt=p=>{var r=is();r.textContent=qt,i(p,r)};L(ut,p=>{e(m).type==="outline"&&p(pt)})}a(ge);var _t=n(ge,2);{var ht=p=>{var r=vs(),u=l(r),W=n(u);a(r),x(()=>{_(r,"aria-expanded",e(re)),ee(u,"rotated",e(re)),g(W,` ${(e(re)?Jt:Yt)??""}`)}),B("click",r,()=>Xe(e(le))),i(p,r)};L(_t,p=>{var r;((r=e(m).steps)==null?void 0:r.length)>0&&p(ht)})}a(fe);var ft=n(fe,2);{var mt=p=>{var r=hs(),u=l(r);T(u,5,()=>e(m).steps,I,(P,Z)=>{var K=cs(),ie=l(K,!0);a(K),x(()=>g(ie,e(Z))),i(P,K)}),a(u);var W=n(u,2);{var ne=P=>{var Z=_s(),K=l(Z);K.textContent=zt;var ie=n(K,2),Pe=l(ie),be=l(Pe),He=l(be);T(He,5,()=>e(m).examples.headers,I,(xe,ye)=>{var H=ds(),we=l(H,!0);a(H),x(()=>g(we,e(ye))),i(xe,H)}),a(He),a(be);var Ue=n(be);T(Ue,5,()=>e(m).examples.rows,I,(xe,ye)=>{var H=ps();T(H,5,()=>e(ye),I,(we,gt)=>{var Se=us(),bt=l(Se,!0);a(Se),x(()=>g(bt,e(gt))),i(we,Se)}),a(H),i(xe,H)}),a(Ue),a(Pe),a(ie),a(Z),i(P,Z)};L(W,P=>{e(m).examples&&P(ne)})}a(r),je(3,r,()=>qe,()=>({duration:180})),i(p,r)};L(ft,p=>{var r;e(re)&&((r=e(m).steps)==null?void 0:r.length)>0&&p(mt)})}a(F),x((p,r,u)=>{_(F,"style",p),_(oe,"title",r),_(oe,"aria-label",u),g(De,`${e(m).testCase??""} `)},[()=>Je(J*4+ae,30),()=>Xt(e(le)),()=>Qt(e(m).testCase)],w),B("click",oe,()=>ke(e(le))),i(y,F)}),a(f),je(3,f,()=>qe,()=>({duration:180})),i(D,f)};L(ct,D=>{e(z)&&D(dt)})}a(O),x((D,f,y)=>{_(O,"style",D),_(A,"aria-expanded",e(z)),_(A,"aria-label",f),ee(_e,"rotated",e(z)),g(he,e(d).suiteName),g(it,y)},[()=>Je(J,55),()=>Wt(e(z)),()=>es(e(d).tests.length)],w),B("click",A,()=>Qe(e(Y))),B("click",se,()=>We(e(d))),i(v,O)}),a(s),i(t,s)};L(rt,t=>{e(V).length===0?t(ot):t(nt,!1)})}Ot(te,()=>e(N),t=>b(N,t)),i(o,Te),kt()}export{$s as component};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* This file is part of Plum.
|
|
3
|
-
* Licensed under the MIT License. See LICENSE file in the project root for details.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
.page-header.svelte-ll28r2{margin-bottom:1.75rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.header-top.svelte-ll28r2{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}h1.svelte-ll28r2{font-size:2.5rem;margin-bottom:.25rem}.subtitle.svelte-ll28r2{color:var(--text-muted);font-size:.875rem}.search-row.svelte-ll28r2{display:flex;gap:.75rem}.search-wrap.svelte-ll28r2{position:relative;flex:1;max-width:480px}.search-icon.svelte-ll28r2{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.search-input.svelte-ll28r2{width:100%;padding:.55rem .875rem .55rem 2.25rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-subtle);color:var(--text);font-family:var(--font-body);font-size:.875rem;font-weight:300;outline:none;transition:border-color var(--duration-fast),box-shadow var(--duration-fast)}.search-input.svelte-ll28r2:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:var(--bg-elevated)}.sort-bar.svelte-ll28r2{display:flex;align-items:center;gap:.375rem;margin:1.25rem 0;flex-wrap:wrap}.sort-label.svelte-ll28r2{font-size:.75rem;color:var(--text-muted);margin-right:.25rem}.sort-chip.svelte-ll28r2{display:flex;align-items:center;gap:.25rem;height:28px;padding:0 .625rem;font-family:var(--font-body);font-size:.8125rem;color:var(--text-muted);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-pill);cursor:pointer;transition:color var(--duration-fast),border-color var(--duration-fast),background var(--duration-fast)}.sort-chip.svelte-ll28r2:hover{color:var(--text);border-color:var(--accent)}.sort-chip.active.svelte-ll28r2{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.sort-dir.svelte-ll28r2{font-size:.7rem;opacity:.8}.search-input.svelte-ll28r2::placeholder{color:var(--text-muted)}.search-clear.svelte-ll28r2{position:absolute;right:.625rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;border:none;background:var(--border);color:var(--text-muted);cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast)}.search-clear.svelte-ll28r2:hover{background:var(--text-muted);color:var(--bg)}.suites.svelte-ll28r2{display:flex;flex-direction:column;gap:1rem}.suite.svelte-ll28r2{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:visible;background:var(--bg-elevated);animation:fadeUp .35s var(--ease-out) both}.suite-header.svelte-ll28r2{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.875rem 1.25rem;background:var(--bg-subtle);border-bottom:1px solid var(--border);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.suite-toggle.svelte-ll28r2{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;flex-shrink:0;border-radius:var(--radius-sm);transition:background var(--duration-fast),color var(--duration-fast)}.suite-toggle.svelte-ll28r2:hover{background:var(--bg-elevated);color:var(--text)}.suite-toggle.svelte-ll28r2 svg:where(.svelte-ll28r2){transition:transform var(--duration-fast) var(--ease-out)}.suite-toggle.svelte-ll28r2 svg.rotated:where(.svelte-ll28r2){transform:rotate(90deg)}.suite-meta.svelte-ll28r2{display:flex;align-items:center;gap:.625rem;flex:1;min-width:0}.suite-badges.svelte-ll28r2{display:flex;gap:.25rem;flex-shrink:0}.suite-name.svelte-ll28r2{font-size:.9rem;font-weight:400;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.suite-count.svelte-ll28r2{font-size:.75rem;color:var(--text-muted);flex-shrink:0}.run-btn.svelte-ll28r2{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-body);font-size:.75rem;font-weight:400;padding:.3rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text-muted);cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background var(--duration-fast),color var(--duration-fast),border-color var(--duration-fast)}.run-btn.svelte-ll28r2:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.tests.svelte-ll28r2{display:flex;flex-direction:column}.test-row.svelte-ll28r2{border-bottom:1px solid var(--border);animation:fadeUp .3s var(--ease-out) both}.test-row.svelte-ll28r2:last-child{border-bottom:none}.test-main.svelte-ll28r2{display:flex;align-items:center;gap:.625rem;padding:.75rem 1.25rem}.run-icon-btn.svelte-ll28r2{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;flex-shrink:0;transition:background var(--duration-fast),color var(--duration-fast),border-color var(--duration-fast)}.run-icon-btn.svelte-ll28r2:hover{background:var(--accent);color:var(--white);border-color:var(--accent)}.test-ids.svelte-ll28r2{display:flex;gap:.25rem;flex-shrink:0}.id-pill.svelte-ll28r2{position:relative;font-size:.68rem;font-weight:500;letter-spacing:.04em;color:var(--accent);background:var(--accent-soft);border:none;border-radius:var(--radius-pill);padding:.15rem .55rem;cursor:pointer;font-family:JetBrains Mono,monospace;transition:background var(--duration-fast),color var(--duration-fast),filter var(--duration-fast)}.id-pill.svelte-ll28r2:hover{filter:brightness(.92)}.id-pill.copied.svelte-ll28r2{color:var(--pass);background:var(--pass-soft)}.id-pill.copied.svelte-ll28r2:after{content:"Copied";position:absolute;left:50%;bottom:calc(100% + 6px);z-index:50;transform:translate(-50%);padding:.16rem .42rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--pass);box-shadow:0 4px 14px #00000014;font-family:var(--font-body);font-size:.65rem;font-weight:500;letter-spacing:0;pointer-events:none;animation:svelte-ll28r2-copiedPop 1.4s var(--ease-out) both}.test-name.svelte-ll28r2{flex:1;font-size:.875rem;color:var(--text);min-width:0}.outline-badge.svelte-ll28r2{display:inline-block;font-size:.62rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;background:var(--warn-soft);color:var(--warn);padding:.1rem .4rem;border-radius:var(--radius-pill);margin-left:.4rem;vertical-align:middle}.steps-toggle.svelte-ll28r2{display:inline-flex;align-items:center;gap:.2rem;font-family:var(--font-body);font-size:.72rem;font-weight:400;color:var(--text-muted);background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.2rem .5rem;cursor:pointer;flex-shrink:0;transition:background var(--duration-fast),color var(--duration-fast)}.steps-toggle.svelte-ll28r2:hover{background:var(--bg-subtle);color:var(--text)}.steps-toggle.svelte-ll28r2 svg:where(.svelte-ll28r2){transition:transform var(--duration-fast) var(--ease-out)}.steps-toggle.svelte-ll28r2 svg.rotated:where(.svelte-ll28r2){transform:rotate(90deg)}.steps.svelte-ll28r2{padding:.75rem 1.25rem .875rem 3.75rem;background:var(--bg-subtle);border-top:1px solid var(--border)}.step-list.svelte-ll28r2{list-style:none;display:flex;flex-direction:column;gap:.3rem}.step.svelte-ll28r2{font-size:.8125rem;color:var(--text-muted);font-family:JetBrains Mono,monospace;line-height:1.5;padding-left:1rem;position:relative}.step.svelte-ll28r2:before{content:"›";position:absolute;left:0;color:var(--accent);font-family:var(--font-body)}.examples.svelte-ll28r2{margin-top:.75rem;padding-top:.75rem;border-top:1px dashed var(--border)}.examples-label.svelte-ll28r2{display:block;font-size:.68rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.5rem}.examples-table-wrap.svelte-ll28r2{overflow-x:auto}.examples-table.svelte-ll28r2{border-collapse:collapse;font-size:.78rem;font-family:JetBrains Mono,monospace;width:auto}.examples-table.svelte-ll28r2 th:where(.svelte-ll28r2){text-align:left;padding:.3rem .75rem;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);font-family:var(--font-body);font-weight:500}.examples-table.svelte-ll28r2 td:where(.svelte-ll28r2){padding:.3rem .75rem;color:var(--text-muted);border-bottom:1px solid var(--border)}.examples-table.svelte-ll28r2 tbody:where(.svelte-ll28r2) tr:where(.svelte-ll28r2):last-child td:where(.svelte-ll28r2){border-bottom:none}@keyframes svelte-ll28r2-copiedPop{0%{opacity:0;transform:translate(-50%,4px) scale(.96)}12%,78%{opacity:1;transform:translate(-50%) scale(1)}to{opacity:0;transform:translate(-50%,-2px) scale(.98)}}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* This file is part of Plum.
|
|
3
|
-
* Licensed under the MIT License. See LICENSE file in the project root for details.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
.page-header.svelte-ll28r2{margin-bottom:1.75rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.header-top.svelte-ll28r2{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}h1.svelte-ll28r2{font-size:2.5rem;margin-bottom:.25rem}.subtitle.svelte-ll28r2{color:var(--text-muted);font-size:.875rem}.search-row.svelte-ll28r2{display:flex;gap:.75rem}.search-wrap.svelte-ll28r2{position:relative;flex:1;max-width:480px}.search-icon.svelte-ll28r2{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.search-input.svelte-ll28r2{width:100%;padding:.55rem .875rem .55rem 2.25rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-subtle);color:var(--text);font-family:var(--font-body);font-size:.875rem;font-weight:300;outline:none;transition:border-color var(--duration-fast),box-shadow var(--duration-fast)}.search-input.svelte-ll28r2:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:var(--bg-elevated)}.sort-bar.svelte-ll28r2{display:flex;align-items:center;gap:.375rem;margin:1.25rem 0;flex-wrap:wrap}.sort-label.svelte-ll28r2{font-size:.75rem;color:var(--text-muted);margin-right:.25rem}.sort-chip.svelte-ll28r2{display:flex;align-items:center;gap:.25rem;height:28px;padding:0 .625rem;font-family:var(--font-body);font-size:.8125rem;color:var(--text-muted);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-pill);cursor:pointer;transition:color var(--duration-fast),border-color var(--duration-fast),background var(--duration-fast)}.sort-chip.svelte-ll28r2:hover{color:var(--text);border-color:var(--accent)}.sort-chip.active.svelte-ll28r2{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.sort-dir.svelte-ll28r2{font-size:.7rem;opacity:.8}.search-input.svelte-ll28r2::placeholder{color:var(--text-muted)}.search-clear.svelte-ll28r2{position:absolute;right:.625rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;border:none;background:var(--border);color:var(--text-muted);cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast)}.search-clear.svelte-ll28r2:hover{background:var(--text-muted);color:var(--bg)}.suites.svelte-ll28r2{display:flex;flex-direction:column;gap:1rem}.suite.svelte-ll28r2{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:visible;background:var(--bg-elevated);animation:fadeUp .35s var(--ease-out) both}.suite-header.svelte-ll28r2{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.875rem 1.25rem;background:var(--bg-subtle);border-bottom:1px solid var(--border);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.suite-toggle.svelte-ll28r2{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;flex-shrink:0;border-radius:var(--radius-sm);transition:background var(--duration-fast),color var(--duration-fast)}.suite-toggle.svelte-ll28r2:hover{background:var(--bg-elevated);color:var(--text)}.suite-toggle.svelte-ll28r2 svg:where(.svelte-ll28r2){transition:transform var(--duration-fast) var(--ease-out)}.suite-toggle.svelte-ll28r2 svg.rotated:where(.svelte-ll28r2){transform:rotate(90deg)}.suite-meta.svelte-ll28r2{display:flex;align-items:center;gap:.625rem;flex:1;min-width:0}.suite-badges.svelte-ll28r2{display:flex;gap:.25rem;flex-shrink:0}.suite-name.svelte-ll28r2{font-size:.9rem;font-weight:400;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.suite-count.svelte-ll28r2{font-size:.75rem;color:var(--text-muted);flex-shrink:0}.run-btn.svelte-ll28r2{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-body);font-size:.75rem;font-weight:400;padding:.3rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text-muted);cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background var(--duration-fast),color var(--duration-fast),border-color var(--duration-fast)}.run-btn.svelte-ll28r2:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.tests.svelte-ll28r2{display:flex;flex-direction:column}.test-row.svelte-ll28r2{border-bottom:1px solid var(--border);animation:fadeUp .3s var(--ease-out) both}.test-row.svelte-ll28r2:last-child{border-bottom:none}.test-main.svelte-ll28r2{display:flex;align-items:center;gap:.625rem;padding:.75rem 1.25rem}.run-icon-btn.svelte-ll28r2{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;flex-shrink:0;transition:background var(--duration-fast),color var(--duration-fast),border-color var(--duration-fast)}.run-icon-btn.svelte-ll28r2:hover{background:var(--accent);color:var(--white);border-color:var(--accent)}.test-ids.svelte-ll28r2{display:flex;gap:.25rem;flex-shrink:0}.id-pill.svelte-ll28r2{position:relative;font-size:.68rem;font-weight:500;letter-spacing:.04em;color:var(--accent);background:var(--accent-soft);border:none;border-radius:var(--radius-pill);padding:.15rem .55rem;cursor:pointer;font-family:JetBrains Mono,monospace;transition:background var(--duration-fast),color var(--duration-fast),filter var(--duration-fast)}.id-pill.svelte-ll28r2:hover{filter:brightness(.92)}.id-pill.copied.svelte-ll28r2{color:var(--pass);background:var(--pass-soft)}.id-pill.copied.svelte-ll28r2:after{content:"Copied";position:absolute;left:50%;bottom:calc(100% + 6px);z-index:50;transform:translate(-50%);padding:.16rem .42rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--pass);box-shadow:0 4px 14px #00000014;font-family:var(--font-body);font-size:.65rem;font-weight:500;letter-spacing:0;pointer-events:none;animation:svelte-ll28r2-copiedPop 1.4s var(--ease-out) both}.test-name.svelte-ll28r2{flex:1;font-size:.875rem;color:var(--text);min-width:0}.outline-badge.svelte-ll28r2{display:inline-block;font-size:.62rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;background:var(--warn-soft);color:var(--warn);padding:.1rem .4rem;border-radius:var(--radius-pill);margin-left:.4rem;vertical-align:middle}.steps-toggle.svelte-ll28r2{display:inline-flex;align-items:center;gap:.2rem;font-family:var(--font-body);font-size:.72rem;font-weight:400;color:var(--text-muted);background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.2rem .5rem;cursor:pointer;flex-shrink:0;transition:background var(--duration-fast),color var(--duration-fast)}.steps-toggle.svelte-ll28r2:hover{background:var(--bg-subtle);color:var(--text)}.steps-toggle.svelte-ll28r2 svg:where(.svelte-ll28r2){transition:transform var(--duration-fast) var(--ease-out)}.steps-toggle.svelte-ll28r2 svg.rotated:where(.svelte-ll28r2){transform:rotate(90deg)}.steps.svelte-ll28r2{padding:.75rem 1.25rem .875rem 3.75rem;background:var(--bg-subtle);border-top:1px solid var(--border)}.step-list.svelte-ll28r2{list-style:none;display:flex;flex-direction:column;gap:.3rem}.step.svelte-ll28r2{font-size:.8125rem;color:var(--text-muted);font-family:JetBrains Mono,monospace;line-height:1.5;padding-left:1rem;position:relative}.step.svelte-ll28r2:before{content:"›";position:absolute;left:0;color:var(--accent);font-family:var(--font-body)}.examples.svelte-ll28r2{margin-top:.75rem;padding-top:.75rem;border-top:1px dashed var(--border)}.examples-label.svelte-ll28r2{display:block;font-size:.68rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.5rem}.examples-table-wrap.svelte-ll28r2{overflow-x:auto}.examples-table.svelte-ll28r2{border-collapse:collapse;font-size:.78rem;font-family:JetBrains Mono,monospace;width:auto}.examples-table.svelte-ll28r2 th:where(.svelte-ll28r2){text-align:left;padding:.3rem .75rem;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);font-family:var(--font-body);font-weight:500}.examples-table.svelte-ll28r2 td:where(.svelte-ll28r2){padding:.3rem .75rem;color:var(--text-muted);border-bottom:1px solid var(--border)}.examples-table.svelte-ll28r2 tbody:where(.svelte-ll28r2) tr:where(.svelte-ll28r2):last-child td:where(.svelte-ll28r2){border-bottom:none}@keyframes svelte-ll28r2-copiedPop{0%{opacity:0;transform:translate(-50%,4px) scale(.96)}12%,78%{opacity:1;transform:translate(-50%) scale(1)}to{opacity:0;transform:translate(-50%,-2px) scale(.98)}}
|
|
Binary file
|
|
Binary file
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* This file is part of Plum.
|
|
3
|
-
* Licensed under the MIT License. See LICENSE file in the project root for details.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
.page-header.svelte-ll28r2{margin-bottom:1.75rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.header-top.svelte-ll28r2{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}h1.svelte-ll28r2{font-size:2.5rem;margin-bottom:.25rem}.subtitle.svelte-ll28r2{color:var(--text-muted);font-size:.875rem}.search-row.svelte-ll28r2{display:flex;gap:.75rem}.search-wrap.svelte-ll28r2{position:relative;flex:1;max-width:480px}.search-icon.svelte-ll28r2{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.search-input.svelte-ll28r2{width:100%;padding:.55rem .875rem .55rem 2.25rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-subtle);color:var(--text);font-family:var(--font-body);font-size:.875rem;font-weight:300;outline:none;transition:border-color var(--duration-fast),box-shadow var(--duration-fast)}.search-input.svelte-ll28r2:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:var(--bg-elevated)}.sort-bar.svelte-ll28r2{display:flex;align-items:center;gap:.375rem;margin:1.25rem 0;flex-wrap:wrap}.sort-label.svelte-ll28r2{font-size:.75rem;color:var(--text-muted);margin-right:.25rem}.sort-chip.svelte-ll28r2{display:flex;align-items:center;gap:.25rem;height:28px;padding:0 .625rem;font-family:var(--font-body);font-size:.8125rem;color:var(--text-muted);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-pill);cursor:pointer;transition:color var(--duration-fast),border-color var(--duration-fast),background var(--duration-fast)}.sort-chip.svelte-ll28r2:hover{color:var(--text);border-color:var(--accent)}.sort-chip.active.svelte-ll28r2{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.sort-dir.svelte-ll28r2{font-size:.7rem;opacity:.8}.search-input.svelte-ll28r2::placeholder{color:var(--text-muted)}.search-clear.svelte-ll28r2{position:absolute;right:.625rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;border:none;background:var(--border);color:var(--text-muted);cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast)}.search-clear.svelte-ll28r2:hover{background:var(--text-muted);color:var(--bg)}.suites.svelte-ll28r2{display:flex;flex-direction:column;gap:1rem}.suite.svelte-ll28r2{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:visible;background:var(--bg-elevated);animation:fadeUp .35s var(--ease-out) both}.suite-header.svelte-ll28r2{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.875rem 1.25rem;background:var(--bg-subtle);border-bottom:1px solid var(--border);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.suite-toggle.svelte-ll28r2{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;flex-shrink:0;border-radius:var(--radius-sm);transition:background var(--duration-fast),color var(--duration-fast)}.suite-toggle.svelte-ll28r2:hover{background:var(--bg-elevated);color:var(--text)}.suite-toggle.svelte-ll28r2 svg:where(.svelte-ll28r2){transition:transform var(--duration-fast) var(--ease-out)}.suite-toggle.svelte-ll28r2 svg.rotated:where(.svelte-ll28r2){transform:rotate(90deg)}.suite-meta.svelte-ll28r2{display:flex;align-items:center;gap:.625rem;flex:1;min-width:0}.suite-badges.svelte-ll28r2{display:flex;gap:.25rem;flex-shrink:0}.suite-name.svelte-ll28r2{font-size:.9rem;font-weight:400;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.suite-count.svelte-ll28r2{font-size:.75rem;color:var(--text-muted);flex-shrink:0}.run-btn.svelte-ll28r2{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-body);font-size:.75rem;font-weight:400;padding:.3rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text-muted);cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background var(--duration-fast),color var(--duration-fast),border-color var(--duration-fast)}.run-btn.svelte-ll28r2:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.tests.svelte-ll28r2{display:flex;flex-direction:column}.test-row.svelte-ll28r2{border-bottom:1px solid var(--border);animation:fadeUp .3s var(--ease-out) both}.test-row.svelte-ll28r2:last-child{border-bottom:none}.test-main.svelte-ll28r2{display:flex;align-items:center;gap:.625rem;padding:.75rem 1.25rem}.run-icon-btn.svelte-ll28r2{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;flex-shrink:0;transition:background var(--duration-fast),color var(--duration-fast),border-color var(--duration-fast)}.run-icon-btn.svelte-ll28r2:hover{background:var(--accent);color:var(--white);border-color:var(--accent)}.test-ids.svelte-ll28r2{display:flex;gap:.25rem;flex-shrink:0}.id-pill.svelte-ll28r2{position:relative;font-size:.68rem;font-weight:500;letter-spacing:.04em;color:var(--accent);background:var(--accent-soft);border:none;border-radius:var(--radius-pill);padding:.15rem .55rem;cursor:pointer;font-family:JetBrains Mono,monospace;transition:background var(--duration-fast),color var(--duration-fast),filter var(--duration-fast)}.id-pill.svelte-ll28r2:hover{filter:brightness(.92)}.id-pill.copied.svelte-ll28r2{color:var(--pass);background:var(--pass-soft)}.id-pill.copied.svelte-ll28r2:after{content:"Copied";position:absolute;left:50%;bottom:calc(100% + 6px);z-index:50;transform:translate(-50%);padding:.16rem .42rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--pass);box-shadow:0 4px 14px #00000014;font-family:var(--font-body);font-size:.65rem;font-weight:500;letter-spacing:0;pointer-events:none;animation:svelte-ll28r2-copiedPop 1.4s var(--ease-out) both}.test-name.svelte-ll28r2{flex:1;font-size:.875rem;color:var(--text);min-width:0}.outline-badge.svelte-ll28r2{display:inline-block;font-size:.62rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;background:var(--warn-soft);color:var(--warn);padding:.1rem .4rem;border-radius:var(--radius-pill);margin-left:.4rem;vertical-align:middle}.steps-toggle.svelte-ll28r2{display:inline-flex;align-items:center;gap:.2rem;font-family:var(--font-body);font-size:.72rem;font-weight:400;color:var(--text-muted);background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.2rem .5rem;cursor:pointer;flex-shrink:0;transition:background var(--duration-fast),color var(--duration-fast)}.steps-toggle.svelte-ll28r2:hover{background:var(--bg-subtle);color:var(--text)}.steps-toggle.svelte-ll28r2 svg:where(.svelte-ll28r2){transition:transform var(--duration-fast) var(--ease-out)}.steps-toggle.svelte-ll28r2 svg.rotated:where(.svelte-ll28r2){transform:rotate(90deg)}.steps.svelte-ll28r2{padding:.75rem 1.25rem .875rem 3.75rem;background:var(--bg-subtle);border-top:1px solid var(--border)}.step-list.svelte-ll28r2{list-style:none;display:flex;flex-direction:column;gap:.3rem}.step.svelte-ll28r2{font-size:.8125rem;color:var(--text-muted);font-family:JetBrains Mono,monospace;line-height:1.5;padding-left:1rem;position:relative}.step.svelte-ll28r2:before{content:"›";position:absolute;left:0;color:var(--accent);font-family:var(--font-body)}.examples.svelte-ll28r2{margin-top:.75rem;padding-top:.75rem;border-top:1px dashed var(--border)}.examples-label.svelte-ll28r2{display:block;font-size:.68rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.5rem}.examples-table-wrap.svelte-ll28r2{overflow-x:auto}.examples-table.svelte-ll28r2{border-collapse:collapse;font-size:.78rem;font-family:JetBrains Mono,monospace;width:auto}.examples-table.svelte-ll28r2 th:where(.svelte-ll28r2){text-align:left;padding:.3rem .75rem;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);font-family:var(--font-body);font-weight:500}.examples-table.svelte-ll28r2 td:where(.svelte-ll28r2){padding:.3rem .75rem;color:var(--text-muted);border-bottom:1px solid var(--border)}.examples-table.svelte-ll28r2 tbody:where(.svelte-ll28r2) tr:where(.svelte-ll28r2):last-child td:where(.svelte-ll28r2){border-bottom:none}@keyframes svelte-ll28r2-copiedPop{0%{opacity:0;transform:translate(-50%,4px) scale(.96)}12%,78%{opacity:1;transform:translate(-50%) scale(1)}to{opacity:0;transform:translate(-50%,-2px) scale(.98)}}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* This file is part of Plum.
|
|
3
|
-
* Licensed under the MIT License. See LICENSE file in the project root for details.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import{h as xt,a as i,t as c,b as Ge,s as g,e as B}from"../chunks/CMBQQ9RZ.js";import{i as yt}from"../chunks/CKDtmZUQ.js";import{p as wt,m as E,o as St,an as Ct,l as ve,b as Et,f as Lt,g as e,c as kt,s as b,$ as At,d as l,j as n,k as a,t as x,x as w}from"../chunks/BAACMRH5.js";import{i as L}from"../chunks/CgnwuKKO.js";import{e as T,t as ee,i as I,a as je,g as qe}from"../chunks/TOCyHP97.js";import{A as Tt,p as Ce,s as _,r as It,c as $t,S as Bt,w as Nt}from"../chunks/CUC98kMZ.js";import{b as Ot}from"../chunks/t-La0hgu.js";import{e as Mt,t as Rt}from"../chunks/DHM6H-es.js";import{s as Je}from"../chunks/DSLBMEpr.js";import{E as Dt}from"../chunks/BKuh57WU.js";async function Pt(){const o=await fetch(`${Tt}/tests`),{suites:$}=await o.json();return $.suites??[]}const Ht="Automated Tests — Plum",Ut="Tests",Gt="Search suites or tests…",jt="No test suites found.",Ye="Run suite",qt="outline",Jt="Hide",Yt="Steps",zt="Examples",Ft=o=>`No tests matching "${o}"`,Kt=o=>`Copied ${o}`,Vt=o=>`Copy ${o}`,Xt=o=>`Run ${o}`,Qt=o=>`Run ${o}`,Wt=o=>o?"Collapse suite":"Expand suite",Zt=(o,$)=>`${o} of ${$} tests`,es=o=>`${o} ${Ce(o,"test")}`,ts=(o,$)=>`${o} ${Ce(o,"suite")} · ${$} ${Ce($,"test")}`;var ss=c('<button class="search-clear svelte-ll28r2"><svg width="12" height="12" viewBox="0 0 14 14" fill="none" class="svelte-ll28r2"><path d="M1 1l12 12M13 1L1 13" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" class="svelte-ll28r2"></path></svg></button>'),as=c('<span class="sort-dir svelte-ll28r2"> </span>'),ls=c('<button class="sort-chip svelte-ll28r2"> <!></button>'),rs=c('<div class="sort-bar svelte-ll28r2"><span class="sort-label svelte-ll28r2"></span> <!></div>'),os=c('<button class="id-pill svelte-ll28r2"> </button>'),ns=c('<button class="id-pill svelte-ll28r2"> </button>'),is=c('<span class="outline-badge svelte-ll28r2"></span>'),vs=c('<button class="steps-toggle svelte-ll28r2"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-ll28r2"><polyline points="9 18 15 12 9 6" class="svelte-ll28r2"></polyline></svg> </button>'),cs=c('<li class="step svelte-ll28r2"> </li>'),ds=c('<th class="svelte-ll28r2"> </th>'),us=c('<td class="svelte-ll28r2"> </td>'),ps=c('<tr class="svelte-ll28r2"></tr>'),_s=c('<div class="examples svelte-ll28r2"><span class="examples-label svelte-ll28r2"></span> <div class="examples-table-wrap svelte-ll28r2"><table class="examples-table svelte-ll28r2"><thead class="svelte-ll28r2"><tr class="svelte-ll28r2"></tr></thead><tbody class="svelte-ll28r2"></tbody></table></div></div>'),hs=c('<div class="steps svelte-ll28r2"><ol class="step-list svelte-ll28r2"></ol> <!></div>'),fs=c('<div class="test-row svelte-ll28r2"><div class="test-main svelte-ll28r2"><button class="run-icon-btn svelte-ll28r2"><svg width="10" height="10" viewBox="0 0 24 24" fill="currentColor" stroke="none" class="svelte-ll28r2"><polygon points="5,3 19,12 5,21" class="svelte-ll28r2"></polygon></svg></button> <div class="test-ids svelte-ll28r2"></div> <span class="test-name svelte-ll28r2"> <!></span> <!></div> <!></div>'),ms=c('<div class="tests svelte-ll28r2"></div>'),gs=c('<div class="suite svelte-ll28r2"><div class="suite-header svelte-ll28r2"><button class="suite-toggle svelte-ll28r2"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-ll28r2"><polyline points="9 18 15 12 9 6" class="svelte-ll28r2"></polyline></svg></button> <div class="suite-meta svelte-ll28r2"><div class="suite-badges svelte-ll28r2"></div> <span class="suite-name svelte-ll28r2"> </span> <span class="suite-count svelte-ll28r2"> </span></div> <button class="run-btn suite-run svelte-ll28r2"><svg width="11" height="11" viewBox="0 0 24 24" fill="currentColor" stroke="none" class="svelte-ll28r2"><polygon points="5,3 19,12 5,21" class="svelte-ll28r2"></polygon></svg> </button></div> <!></div>'),bs=c('<div class="suites svelte-ll28r2"></div>'),xs=c('<div class="page-header svelte-ll28r2"><div class="header-top svelte-ll28r2"><div class="svelte-ll28r2"><h1 class="svelte-ll28r2"></h1> <p class="subtitle svelte-ll28r2"><!></p></div></div> <div class="search-row svelte-ll28r2"><div class="search-wrap svelte-ll28r2"><svg class="search-icon svelte-ll28r2" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8" class="svelte-ll28r2"></circle><line x1="21" y1="21" x2="16.65" y2="16.65" class="svelte-ll28r2"></line></svg> <input type="text" class="search-input svelte-ll28r2"> <!></div></div></div> <!> <!>',1);function $s(o,$){wt($,!1);const S=E(),V=E(),ce=E(),Ee=E();let U=E([]),N=E(""),G=E(new Set),j=E(new Set),C=E(new Set);const X=new Map;function ze(t,s){try{const v=sessionStorage.getItem(t);if(v)return JSON.parse(v)}catch{}return s}function Fe(t,s){try{sessionStorage.setItem(t,JSON.stringify(s))}catch{}}let h=E(ze("plum:automated-tests:sort",{by:"id",order:"desc"}));function Ke(t){b(h,e(h).by===t?{...e(h),order:e(h).order==="asc"?"desc":"asc"}:{by:t,order:t==="id"?"desc":"asc"}),Fe("plum:automated-tests:sort",e(h))}async function Ve(){try{b(U,await Pt())}catch(t){console.error("Failed to fetch suites",t)}}St(Ve);function q(t){return Array.isArray(t.suiteId)?t.suiteId:[t.suiteId]}function Le(t){return Array.isArray(t.id)?t.id:[t.id]}function de(t){return Array.isArray(t.id)?t.id[0]:t.id}function Xe(t){e(G).has(t)?e(G).delete(t):e(G).add(t),b(G,e(G))}function Qe(t){e(j).has(t)?e(j).delete(t):e(j).add(t),b(j,e(j))}function ke(t){Mt.update(s=>({...s,testID:t})),Rt(t)}function We(t){ke(q(t)[0])}async function Ae(t){await navigator.clipboard.writeText(t),e(C).add(t),b(C,e(C)),X.has(t)&&clearTimeout(X.get(t)),X.set(t,setTimeout(()=>{e(C).delete(t),b(C,e(C)),X.delete(t)},Nt))}Ct(()=>{for(const t of X.values())clearTimeout(t)}),ve(()=>e(N),()=>{b(S,e(N).trim().toLowerCase())}),ve(()=>(e(U),e(S),e(h)),()=>{b(V,e(U).map(t=>{if(!e(S))return t;const s=t.suiteName.toLowerCase().includes(e(S))||q(t).some(d=>d.toLowerCase().includes(e(S))),v=t.tests.filter(d=>d.testCase.toLowerCase().includes(e(S))||Le(d).some(J=>J.toLowerCase().includes(e(S))));return!s&&v.length===0?null:{...t,tests:s?t.tests:v}}).filter(Boolean).map(t=>({...t,tests:[...t.tests].sort((s,v)=>{const d=e(h).by==="name"?s.testCase.localeCompare(v.testCase):(de(s)??"").localeCompare(de(v)??"");return e(h).order==="asc"?d:-d})})).sort((t,s)=>{const v=e(h).by==="name"?t.suiteName.localeCompare(s.suiteName):(q(t)[0]??"").localeCompare(q(s)[0]??"");return e(h).order==="asc"?v:-v}))}),ve(()=>e(U),()=>{b(ce,e(U).reduce((t,s)=>t+s.tests.length,0))}),ve(()=>e(V),()=>{b(Ee,e(V).reduce((t,s)=>t+s.tests.length,0))}),Et(),yt();var Te=xs();xt(t=>{At.title=Ht});var ue=Lt(Te),pe=l(ue),Ie=l(pe),$e=l(Ie);$e.textContent=Ut;var Be=n($e,2),Ze=l(Be);{var et=t=>{var s=Ge();x(v=>g(s,v),[()=>Zt(e(Ee),e(ce))],w),i(t,s)},tt=t=>{var s=Ge();x(v=>g(s,v),[()=>ts(e(U).length,e(ce))],w),i(t,s)};L(Ze,t=>{e(S)?t(et):t(tt,!1)})}a(Be),a(Ie),a(pe);var Ne=n(pe,2),Oe=l(Ne),te=n(l(Oe),2);It(te),_(te,"placeholder",Gt);var st=n(te,2);{var at=t=>{var s=ss();_(s,"aria-label",$t),B("click",s,()=>b(N,"")),i(t,s)};L(st,t=>{e(N)&&t(at)})}a(Oe),a(Ne),a(ue);var Me=n(ue,2);{var lt=t=>{var s=rs(),v=l(s);v.textContent=Bt;var d=n(v,2);T(d,0,()=>[["id","ID"],["name","Name"]],I,(J,O)=>{let Y=()=>O[0],z=()=>O[1];var k=ls(),A=l(k),_e=n(A);{var Q=M=>{var R=as(),he=l(R,!0);a(R),x(()=>g(he,e(h).order==="asc"?"↑":"↓")),i(M,R)};L(_e,M=>{e(h).by===Y()&&M(Q)})}a(k),x(()=>{ee(k,"active",e(h).by===Y()),g(A,`${z()??""} `)}),B("click",k,()=>Ke(Y())),i(J,k)}),a(s),i(t,s)};L(Me,t=>{e(S)||t(lt)})}var rt=n(Me,2);{var ot=t=>{const s=w(()=>e(S)?Ft(e(N)):jt);Dt(t,{get message(){return e(s)}})},nt=t=>{var s=bs();T(s,5,()=>e(V),I,(v,d,J)=>{var O=gs();const Y=w(()=>q(e(d))[0]??e(d).suiteName),z=w(()=>!e(j).has(e(Y)));var k=l(O),A=l(k),_e=l(A);a(A);var Q=n(A,2),M=l(Q);T(M,5,()=>q(e(d)),I,(D,f)=>{var y=os(),m=l(y,!0);a(y),x((ae,F)=>{_(y,"title",ae),_(y,"aria-label",ae),ee(y,"copied",F),g(m,e(f))},[()=>e(C).has(e(f))?Kt(e(f)):Vt(e(f)),()=>e(C).has(e(f))],w),B("click",y,()=>Ae(e(f))),i(D,y)}),a(M);var R=n(M,2),he=l(R,!0);a(R);var Re=n(R,2),it=l(Re,!0);a(Re),a(Q);var se=n(Q,2);_(se,"title",Ye);var vt=n(l(se));vt.nodeValue=` ${Ye}`,a(se),a(k);var ct=n(k,2);{var dt=D=>{var f=ms();T(f,5,()=>e(d).tests,I,(y,m,ae)=>{var F=fs();const le=w(()=>de(e(m))),re=w(()=>e(G).has(e(le)));var fe=l(F),oe=l(fe),me=n(oe,2);T(me,5,()=>Le(e(m)),I,(p,r)=>{var u=ns(),W=l(u,!0);a(u),x((ne,P)=>{_(u,"title",ne),_(u,"aria-label",ne),ee(u,"copied",P),g(W,e(r))},[()=>e(C).has(e(r))?`Copied ${e(r)}`:`Copy ${e(r)}`,()=>e(C).has(e(r))],w),B("click",u,()=>Ae(e(r))),i(p,u)}),a(me);var ge=n(me,2),De=l(ge),ut=n(De);{var pt=p=>{var r=is();r.textContent=qt,i(p,r)};L(ut,p=>{e(m).type==="outline"&&p(pt)})}a(ge);var _t=n(ge,2);{var ht=p=>{var r=vs(),u=l(r),W=n(u);a(r),x(()=>{_(r,"aria-expanded",e(re)),ee(u,"rotated",e(re)),g(W,` ${(e(re)?Jt:Yt)??""}`)}),B("click",r,()=>Xe(e(le))),i(p,r)};L(_t,p=>{var r;((r=e(m).steps)==null?void 0:r.length)>0&&p(ht)})}a(fe);var ft=n(fe,2);{var mt=p=>{var r=hs(),u=l(r);T(u,5,()=>e(m).steps,I,(P,Z)=>{var K=cs(),ie=l(K,!0);a(K),x(()=>g(ie,e(Z))),i(P,K)}),a(u);var W=n(u,2);{var ne=P=>{var Z=_s(),K=l(Z);K.textContent=zt;var ie=n(K,2),Pe=l(ie),be=l(Pe),He=l(be);T(He,5,()=>e(m).examples.headers,I,(xe,ye)=>{var H=ds(),we=l(H,!0);a(H),x(()=>g(we,e(ye))),i(xe,H)}),a(He),a(be);var Ue=n(be);T(Ue,5,()=>e(m).examples.rows,I,(xe,ye)=>{var H=ps();T(H,5,()=>e(ye),I,(we,gt)=>{var Se=us(),bt=l(Se,!0);a(Se),x(()=>g(bt,e(gt))),i(we,Se)}),a(H),i(xe,H)}),a(Ue),a(Pe),a(ie),a(Z),i(P,Z)};L(W,P=>{e(m).examples&&P(ne)})}a(r),je(3,r,()=>qe,()=>({duration:180})),i(p,r)};L(ft,p=>{var r;e(re)&&((r=e(m).steps)==null?void 0:r.length)>0&&p(mt)})}a(F),x((p,r,u)=>{_(F,"style",p),_(oe,"title",r),_(oe,"aria-label",u),g(De,`${e(m).testCase??""} `)},[()=>Je(J*4+ae,30),()=>Xt(e(le)),()=>Qt(e(m).testCase)],w),B("click",oe,()=>ke(e(le))),i(y,F)}),a(f),je(3,f,()=>qe,()=>({duration:180})),i(D,f)};L(ct,D=>{e(z)&&D(dt)})}a(O),x((D,f,y)=>{_(O,"style",D),_(A,"aria-expanded",e(z)),_(A,"aria-label",f),ee(_e,"rotated",e(z)),g(he,e(d).suiteName),g(it,y)},[()=>Je(J,55),()=>Wt(e(z)),()=>es(e(d).tests.length)],w),B("click",A,()=>Qe(e(Y))),B("click",se,()=>We(e(d))),i(v,O)}),a(s),i(t,s)};L(rt,t=>{e(V).length===0?t(ot):t(nt,!1)})}Ot(te,()=>e(N),t=>b(N,t)),i(o,Te),kt()}export{$s as component};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
This file is part of Plum.
|
|
3
|
-
Licensed under the MIT License. See LICENSE file in the project root for details.
|
|
4
|
-
*/
|
|
5
|
-
{"version":3,"file":"_page.svelte-CpB-fgJl.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/_page.svelte.js"],"sourcesContent":["import { X as head, Y as ensure_array_like, Z as stringify, p as pop, a as push } from \"../../chunks/index.js\";\nimport { o as onDestroy } from \"../../chunks/index-server.js\";\nimport \"../../chunks/runner.js\";\nimport { s as stagger } from \"../../chunks/format.js\";\nimport { E as EmptyState } from \"../../chunks/EmptyState.js\";\nimport { p as pluralize, S as SORT_BY_LABEL } from \"../../chunks/common.js\";\nimport { e as escape_html } from \"../../chunks/escaping.js\";\nimport { a as attr } from \"../../chunks/attributes.js\";\nconst PAGE_TITLE = \"Automated Tests — Plum\";\nconst HEADING = \"Tests\";\nconst SEARCH_PLACEHOLDER = \"Search suites or tests…\";\nconst NO_SUITES_MESSAGE = \"No test suites found.\";\nconst RUN_SUITE_LABEL = \"Run suite\";\nconst OUTLINE_BADGE = \"outline\";\nconst HIDE_LABEL = \"Hide\";\nconst STEPS_LABEL = \"Steps\";\nconst EXAMPLES_LABEL = \"Examples\";\nconst noMatchMessage = (search) => `No tests matching \"${search}\"`;\nconst copiedTitle = (id) => `Copied ${id}`;\nconst copyTitle = (id) => `Copy ${id}`;\nconst runIdTitle = (pid) => `Run ${pid}`;\nconst runTestLabel = (name) => `Run ${name}`;\nconst collapseOrExpandSuiteLabel = (expanded) => expanded ? \"Collapse suite\" : \"Expand suite\";\nconst visibleOfTotal = (visible, total) => `${visible} of ${total} tests`;\nconst testCountLabel = (count) => `${count} ${pluralize(count, \"test\")}`;\nconst suiteSummary = (suiteCount, testCount) => `${suiteCount} ${pluralize(suiteCount, \"suite\")} · ${testCount} ${pluralize(testCount, \"test\")}`;\nfunction _page($$payload, $$props) {\n push();\n let q, filtered, totalTests, visibleTests;\n let suites = [];\n let search = \"\";\n let expandedSteps = /* @__PURE__ */ new Set();\n let collapsedSuites = /* @__PURE__ */ new Set();\n let copiedIds = /* @__PURE__ */ new Set();\n const copyTimers = /* @__PURE__ */ new Map();\n function readSort(key, fallback) {\n try {\n const v = sessionStorage.getItem(key);\n if (v) return JSON.parse(v);\n } catch {\n }\n return fallback;\n }\n let sort = readSort(\"plum:automated-tests:sort\", { by: \"id\", order: \"desc\" });\n function suiteIds(suite) {\n return Array.isArray(suite.suiteId) ? suite.suiteId : [suite.suiteId];\n }\n function testIds(test) {\n return Array.isArray(test.id) ? test.id : [test.id];\n }\n function primaryId(test) {\n return Array.isArray(test.id) ? test.id[0] : test.id;\n }\n onDestroy(() => {\n for (const timer of copyTimers.values()) clearTimeout(timer);\n });\n q = search.trim().toLowerCase();\n filtered = suites.map((suite) => {\n if (!q) return suite;\n const suiteMatches = suite.suiteName.toLowerCase().includes(q) || suiteIds(suite).some((id) => id.toLowerCase().includes(q));\n const matchedTests = suite.tests.filter((t) => t.testCase.toLowerCase().includes(q) || testIds(t).some((id) => id.toLowerCase().includes(q)));\n if (!suiteMatches && matchedTests.length === 0) return null;\n return {\n ...suite,\n tests: suiteMatches ? suite.tests : matchedTests\n };\n }).filter(Boolean).map((suite) => ({\n ...suite,\n tests: [...suite.tests].sort((a, b) => {\n const diff = sort.by === \"name\" ? a.testCase.localeCompare(b.testCase) : (primaryId(a) ?? \"\").localeCompare(primaryId(b) ?? \"\");\n return sort.order === \"asc\" ? diff : -diff;\n })\n })).sort((a, b) => {\n const diff = sort.by === \"name\" ? a.suiteName.localeCompare(b.suiteName) : (suiteIds(a)[0] ?? \"\").localeCompare(suiteIds(b)[0] ?? \"\");\n return sort.order === \"asc\" ? diff : -diff;\n });\n totalTests = suites.reduce((n, s) => n + s.tests.length, 0);\n visibleTests = filtered.reduce((n, s) => n + s.tests.length, 0);\n head($$payload, ($$payload2) => {\n $$payload2.title = `<title>${escape_html(PAGE_TITLE)}</title>`;\n });\n $$payload.out += `<div class=\"page-header svelte-ll28r2\"><div class=\"header-top svelte-ll28r2\"><div class=\"svelte-ll28r2\"><h1 class=\"svelte-ll28r2\">${escape_html(HEADING)}</h1> <p class=\"subtitle svelte-ll28r2\">`;\n if (q) {\n $$payload.out += \"<!--[-->\";\n $$payload.out += `${escape_html(visibleOfTotal(visibleTests, totalTests))}`;\n } else {\n $$payload.out += \"<!--[!-->\";\n $$payload.out += `${escape_html(suiteSummary(suites.length, totalTests))}`;\n }\n $$payload.out += `<!--]--></p></div></div> <div class=\"search-row svelte-ll28r2\"><div class=\"search-wrap svelte-ll28r2\"><svg class=\"search-icon svelte-ll28r2\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"11\" cy=\"11\" r=\"8\" class=\"svelte-ll28r2\"></circle><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" class=\"svelte-ll28r2\"></line></svg> <input type=\"text\" class=\"search-input svelte-ll28r2\"${attr(\"value\", search)}${attr(\"placeholder\", SEARCH_PLACEHOLDER)}> `;\n {\n $$payload.out += \"<!--[!-->\";\n }\n $$payload.out += `<!--]--></div></div></div> `;\n if (!q) {\n $$payload.out += \"<!--[-->\";\n const each_array = ensure_array_like([[\"id\", \"ID\"], [\"name\", \"Name\"]]);\n $$payload.out += `<div class=\"sort-bar svelte-ll28r2\"><span class=\"sort-label svelte-ll28r2\">${escape_html(SORT_BY_LABEL)}</span> <!--[-->`;\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let [val, label] = each_array[$$index];\n $$payload.out += `<button${attr(\"class\", `sort-chip svelte-ll28r2 ${stringify([sort.by === val ? \"active\" : \"\"].filter(Boolean).join(\" \"))}`)}>${escape_html(label)} `;\n if (sort.by === val) {\n $$payload.out += \"<!--[-->\";\n $$payload.out += `<span class=\"sort-dir svelte-ll28r2\">${escape_html(sort.order === \"asc\" ? \"↑\" : \"↓\")}</span>`;\n } else {\n $$payload.out += \"<!--[!-->\";\n }\n $$payload.out += `<!--]--></button>`;\n }\n $$payload.out += `<!--]--></div>`;\n } else {\n $$payload.out += \"<!--[!-->\";\n }\n $$payload.out += `<!--]--> `;\n if (filtered.length === 0) {\n $$payload.out += \"<!--[-->\";\n EmptyState($$payload, {\n message: q ? noMatchMessage(search) : NO_SUITES_MESSAGE\n });\n } else {\n $$payload.out += \"<!--[!-->\";\n const each_array_1 = ensure_array_like(filtered);\n $$payload.out += `<div class=\"suites svelte-ll28r2\"><!--[-->`;\n for (let si = 0, $$length = each_array_1.length; si < $$length; si++) {\n let suite = each_array_1[si];\n const suiteKey = suiteIds(suite)[0] ?? suite.suiteName;\n const suiteOpen = !collapsedSuites.has(suiteKey);\n const each_array_2 = ensure_array_like(suiteIds(suite));\n $$payload.out += `<div class=\"suite svelte-ll28r2\"${attr(\"style\", stagger(si, 55))}><div class=\"suite-header svelte-ll28r2\"><button class=\"suite-toggle svelte-ll28r2\"${attr(\"aria-expanded\", suiteOpen)}${attr(\"aria-label\", collapseOrExpandSuiteLabel(suiteOpen))}><svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"${attr(\"class\", `svelte-ll28r2 ${stringify([suiteOpen ? \"rotated\" : \"\"].filter(Boolean).join(\" \"))}`)}><polyline points=\"9 18 15 12 9 6\" class=\"svelte-ll28r2\"></polyline></svg></button> <div class=\"suite-meta svelte-ll28r2\"><div class=\"suite-badges svelte-ll28r2\"><!--[-->`;\n for (let $$index_1 = 0, $$length2 = each_array_2.length; $$index_1 < $$length2; $$index_1++) {\n let id = each_array_2[$$index_1];\n $$payload.out += `<button${attr(\"class\", `id-pill svelte-ll28r2 ${stringify([copiedIds.has(id) ? \"copied\" : \"\"].filter(Boolean).join(\" \"))}`)}${attr(\"title\", copiedIds.has(id) ? copiedTitle(id) : copyTitle(id))}${attr(\"aria-label\", copiedIds.has(id) ? copiedTitle(id) : copyTitle(id))}>${escape_html(id)}</button>`;\n }\n $$payload.out += `<!--]--></div> <span class=\"suite-name svelte-ll28r2\">${escape_html(suite.suiteName)}</span> <span class=\"suite-count svelte-ll28r2\">${escape_html(testCountLabel(suite.tests.length))}</span></div> <button class=\"run-btn suite-run svelte-ll28r2\"${attr(\"title\", RUN_SUITE_LABEL)}><svg width=\"11\" height=\"11\" viewBox=\"0 0 24 24\" fill=\"currentColor\" stroke=\"none\" class=\"svelte-ll28r2\"><polygon points=\"5,3 19,12 5,21\" class=\"svelte-ll28r2\"></polygon></svg> ${escape_html(RUN_SUITE_LABEL)}</button></div> `;\n if (suiteOpen) {\n $$payload.out += \"<!--[-->\";\n const each_array_3 = ensure_array_like(suite.tests);\n $$payload.out += `<div class=\"tests svelte-ll28r2\"><!--[-->`;\n for (let ti = 0, $$length2 = each_array_3.length; ti < $$length2; ti++) {\n let test = each_array_3[ti];\n const pid = primaryId(test);\n const stepsOpen = expandedSteps.has(pid);\n const each_array_4 = ensure_array_like(testIds(test));\n $$payload.out += `<div class=\"test-row svelte-ll28r2\"${attr(\"style\", stagger(si * 4 + ti, 30))}><div class=\"test-main svelte-ll28r2\"><button class=\"run-icon-btn svelte-ll28r2\"${attr(\"title\", runIdTitle(pid))}${attr(\"aria-label\", runTestLabel(test.testCase))}><svg width=\"10\" height=\"10\" viewBox=\"0 0 24 24\" fill=\"currentColor\" stroke=\"none\" class=\"svelte-ll28r2\"><polygon points=\"5,3 19,12 5,21\" class=\"svelte-ll28r2\"></polygon></svg></button> <div class=\"test-ids svelte-ll28r2\"><!--[-->`;\n for (let $$index_2 = 0, $$length3 = each_array_4.length; $$index_2 < $$length3; $$index_2++) {\n let id = each_array_4[$$index_2];\n $$payload.out += `<button${attr(\"class\", `id-pill svelte-ll28r2 ${stringify([copiedIds.has(id) ? \"copied\" : \"\"].filter(Boolean).join(\" \"))}`)}${attr(\"title\", copiedIds.has(id) ? `Copied ${id}` : `Copy ${id}`)}${attr(\"aria-label\", copiedIds.has(id) ? `Copied ${id}` : `Copy ${id}`)}>${escape_html(id)}</button>`;\n }\n $$payload.out += `<!--]--></div> <span class=\"test-name svelte-ll28r2\">${escape_html(test.testCase)} `;\n if (test.type === \"outline\") {\n $$payload.out += \"<!--[-->\";\n $$payload.out += `<span class=\"outline-badge svelte-ll28r2\">${escape_html(OUTLINE_BADGE)}</span>`;\n } else {\n $$payload.out += \"<!--[!-->\";\n }\n $$payload.out += `<!--]--></span> `;\n if (test.steps?.length > 0) {\n $$payload.out += \"<!--[-->\";\n $$payload.out += `<button class=\"steps-toggle svelte-ll28r2\"${attr(\"aria-expanded\", stepsOpen)}><svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"${attr(\"class\", `svelte-ll28r2 ${stringify([stepsOpen ? \"rotated\" : \"\"].filter(Boolean).join(\" \"))}`)}><polyline points=\"9 18 15 12 9 6\" class=\"svelte-ll28r2\"></polyline></svg> ${escape_html(stepsOpen ? HIDE_LABEL : STEPS_LABEL)}</button>`;\n } else {\n $$payload.out += \"<!--[!-->\";\n }\n $$payload.out += `<!--]--></div> `;\n if (stepsOpen && test.steps?.length > 0) {\n $$payload.out += \"<!--[-->\";\n const each_array_5 = ensure_array_like(test.steps);\n $$payload.out += `<div class=\"steps svelte-ll28r2\"><ol class=\"step-list svelte-ll28r2\"><!--[-->`;\n for (let $$index_3 = 0, $$length3 = each_array_5.length; $$index_3 < $$length3; $$index_3++) {\n let step = each_array_5[$$index_3];\n $$payload.out += `<li class=\"step svelte-ll28r2\">${escape_html(step)}</li>`;\n }\n $$payload.out += `<!--]--></ol> `;\n if (test.examples) {\n $$payload.out += \"<!--[-->\";\n const each_array_6 = ensure_array_like(test.examples.headers);\n const each_array_7 = ensure_array_like(test.examples.rows);\n $$payload.out += `<div class=\"examples svelte-ll28r2\"><span class=\"examples-label svelte-ll28r2\">${escape_html(EXAMPLES_LABEL)}</span> <div class=\"examples-table-wrap svelte-ll28r2\"><table class=\"examples-table svelte-ll28r2\"><thead class=\"svelte-ll28r2\"><tr class=\"svelte-ll28r2\"><!--[-->`;\n for (let $$index_4 = 0, $$length3 = each_array_6.length; $$index_4 < $$length3; $$index_4++) {\n let h = each_array_6[$$index_4];\n $$payload.out += `<th class=\"svelte-ll28r2\">${escape_html(h)}</th>`;\n }\n $$payload.out += `<!--]--></tr></thead><tbody class=\"svelte-ll28r2\"><!--[-->`;\n for (let $$index_6 = 0, $$length3 = each_array_7.length; $$index_6 < $$length3; $$index_6++) {\n let row = each_array_7[$$index_6];\n const each_array_8 = ensure_array_like(row);\n $$payload.out += `<tr class=\"svelte-ll28r2\"><!--[-->`;\n for (let $$index_5 = 0, $$length4 = each_array_8.length; $$index_5 < $$length4; $$index_5++) {\n let cell = each_array_8[$$index_5];\n $$payload.out += `<td class=\"svelte-ll28r2\">${escape_html(cell)}</td>`;\n }\n $$payload.out += `<!--]--></tr>`;\n }\n $$payload.out += `<!--]--></tbody></table></div></div>`;\n } else {\n $$payload.out += \"<!--[!-->\";\n }\n $$payload.out += `<!--]--></div>`;\n } else {\n $$payload.out += \"<!--[!-->\";\n }\n $$payload.out += `<!--]--></div>`;\n }\n $$payload.out += `<!--]--></div>`;\n } else {\n $$payload.out += \"<!--[!-->\";\n }\n $$payload.out += `<!--]--></div>`;\n }\n $$payload.out += `<!--]--></div>`;\n }\n $$payload.out += `<!--]-->`;\n pop();\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
This file is part of Plum.
|
|
3
|
-
Licensed under the MIT License. See LICENSE file in the project root for details.
|
|
4
|
-
*/
|
|
5
|
-
{"version":3,"file":"_page.svelte-wKyUmA2e.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/settings/_page.svelte.js"],"sourcesContent":["import { _ as store_get, a2 as copy_payload, a3 as assign_payload, $ as unsubscribe_stores, p as pop, a as push, Y as ensure_array_like, X as head, Z as stringify } from \"../../../chunks/index.js\";\nimport \"../../../chunks/client.js\";\nimport { A as API_BASE, M as MAX_TEST_RETRIES, B as BROWSERS } from \"../../../chunks/constants.js\";\nimport { a as auth } from \"../../../chunks/auth.js\";\nimport { c as builtInEnabled } from \"../../../chunks/runner.js\";\nimport { t as theme } from \"../../../chunks/theme.js\";\nimport { T as Toast, B as Button } from \"../../../chunks/Toast.js\";\nimport { C as ConfirmModal } from \"../../../chunks/ConfirmModal.js\";\nimport { B as Badge } from \"../../../chunks/Badge.js\";\nimport { a as SAVE_LABEL, b as CANCEL_LABEL, E as EDIT_LABEL, c as EMAIL_LABEL } from \"../../../chunks/common.js\";\nimport { e as escape_html } from \"../../../chunks/escaping.js\";\nimport { a as attr } from \"../../../chunks/attributes.js\";\nconst PAGE_TITLE = \"Settings — Plum\";\nconst HEADING = \"Settings\";\nconst NAME_LABEL = \"Name\";\nconst PROJECT_LABEL = \"Project\";\nconst RUNNERS_LABEL = \"Runners\";\nconst REPOSITORY_NAV_LABEL = \"Repository\";\nconst REPOSITORY_HEADING = \"Test Repository\";\nconst INTEGRATIONS_LABEL = \"Integrations\";\nconst MCP_NAV_LABEL = \"MCP\";\nconst MCP_HEADING = \"MCP Integration\";\nconst ACCOUNT_LABEL = \"Account\";\nconst USERS_LABEL = \"Users\";\nconst BACKUP_LABEL = \"Backup\";\nconst PROJECT_DESC = \"Identity information shown across the UI\";\nconst RUNNERS_DESC = \"Register self-hosted runner nodes to distribute tests across machines.\";\nconst REPOSITORY_DESC = \"Configure ID prefixes for test suites and cases.\";\nconst INTEGRATIONS_DESC = \"Connect Discord and Slack to receive run notifications with pass/fail results and report links.\";\nconst MCP_DESC = \"Generate an API key for any MCP-compatible AI client — Claude, Cursor, Windsurf, and others.\";\nconst ACCOUNT_DESC = \"Manage your profile, credentials and session.\";\nconst USERS_DESC = \"Add and manage who can access Plum.\";\nconst BACKUP_DESC = \"Export your test cases, schedules, users, and project settings. Automate uploads to any S3-compatible storage — Cloudflare R2, Backblaze B2, AWS S3, or MinIO.\";\nconst PROJECT_NAME_LABEL = \"Project Name\";\nconst PROJECT_NAME_PLACEHOLDER = \"My Test Suite\";\nconst LOGO_URL_LABEL = \"Logo URL\";\nconst LOGO_URL_HINT = \"Direct link to an image (PNG, SVG, JPG)\";\nconst LOGO_URL_PLACEHOLDER = \"https://example.com/logo.png\";\nconst TIMEZONE_LABEL = \"Timezone\";\nconst TIMEZONE_HINT = \"Used to schedule cron jobs and backups\";\nconst RETRY_FAILED_TESTS_LABEL = \"Retry failed tests\";\nconst RETRY_FAILED_TESTS_HINT = \"Automatically re-run failed scenarios up to this many times before finalizing the report. 0 disables retries.\";\nconst DARK_MODE_LABEL = \"Dark mode\";\nconst DARK_MODE_DESC = \"Switch between light and dark appearance\";\nconst saveProjectLabel = (saving) => \"Save Project\";\nconst BUILTIN_RUNNER_TOGGLE_LABEL = \"Built-in runner\";\nconst BUILTIN_RUNNER_TOGGLE_DESC = \"Use this server to run tests locally. Disable to route all runs to external nodes.\";\nconst RUNNER_URL_LABEL = \"URL\";\nconst RUNNER_URL_HINT_PREFIX = \"Use\";\nconst RUNNER_URL_HINT_SUFFIX = \"for local nodes\";\nconst RUNNER_URL_PLACEHOLDER = \"http://host.docker.internal:3002\";\nconst TOKEN_LABEL = \"Token\";\nconst KEEP_TOKEN_PLACEHOLDER = \"Leave blank to keep current token\";\nconst BROWSER_LABEL = \"Browser\";\nconst RUNNER_NAME_PLACEHOLDER = \"staging-node\";\nconst RUNNER_UNREACHABLE_LABEL = \"unreachable\";\nconst RUNNER_PINGING_LABEL = \"pinging…\";\nconst REMOVE_LABEL = \"Remove\";\nconst OPEN_ADD_RUNNER_LABEL = \"+ Add Runner\";\nconst RESTART_LABEL = \"Restart\";\nconst RESTARTING_LABEL = \"Restarting…\";\nconst STOP_LABEL = \"Stop\";\nconst STOPPING_LABEL = \"Stopping…\";\nconst editRunnerSubmitLabel = (saving) => SAVE_LABEL;\nconst restartRunnerLabel = (restarting) => restarting ? RESTARTING_LABEL : RESTART_LABEL;\nconst stopRunnerLabel = (stopping) => stopping ? STOPPING_LABEL : STOP_LABEL;\nconst CASE_PREFIX_LABEL = \"Test Case prefix\";\nconst CASE_PREFIX_PLACEHOLDER = \"TC\";\nconst SUITE_PREFIX_LABEL = \"Test Suite prefix\";\nconst SUITE_PREFIX_PLACEHOLDER = \"TS\";\nconst EXAMPLES_LABEL = \"Examples:\";\nconst MIGRATE_IDS_HEADING = \"Migrate IDs\";\nconst MIGRATE_DESC_PREFIX = \"Rename all existing test IDs to use a new prefix. Cucumber tags in code are\";\nconst MIGRATE_DESC_STRONG = \"not\";\nconst MIGRATE_DESC_SUFFIX = \"affected — you manage those separately.\";\nconst NEW_CASE_PREFIX_LABEL = \"New case prefix\";\nconst NEW_SUITE_PREFIX_LABEL = \"New suite prefix\";\nconst savePrefixesLabel = (saving) => \"Save Prefixes\";\nconst runMigrationLabel = (migrating) => \"Run Migration\";\nconst WEBHOOKS_CARD_TITLE = \"Webhooks\";\nconst DISCORD_WEBHOOK_LABEL = \"Discord Webhook URL\";\nconst DISCORD_WEBHOOK_HINT = \"Leave blank to disable Discord notifications\";\nconst DISCORD_WEBHOOK_PLACEHOLDER = \"https://discord.com/api/webhooks/…\";\nconst SLACK_WEBHOOK_LABEL = \"Slack Webhook URL\";\nconst SLACK_WEBHOOK_HINT = \"Leave blank to disable Slack notifications\";\nconst SLACK_WEBHOOK_PLACEHOLDER = \"https://hooks.slack.com/services/…\";\nconst PUBLIC_URL_LABEL = \"Public URL\";\nconst PUBLIC_URL_HINT = \"Base URL of this Plum instance, used to link reports in notifications\";\nconst PUBLIC_URL_PLACEHOLDER = \"https://plum.yourcompany.com\";\nconst CI_TRIGGERS_CARD_TITLE = \"CI / External Triggers\";\nconst CI_DESC_PART1 = \"Trigger a Plum run from GitHub Actions (e.g. on a pull request, against its preview deployment) or any other external script by calling\";\nconst CI_DESC_PART2 = \"with an\";\nconst CI_DESC_PART3 = \"header. Generate a key on the\";\nconst MCP_TAB_LINK_LABEL = \"MCP tab\";\nconst CI_DESC_PART4 = \"and store it as a repo secret — never commit it directly. Runs triggered this way show up in Reports tagged\";\nconst EXTERNAL_BADGE_LABEL = \"External\";\nconst COPY_WORKFLOW_STEP_LABEL = \"Copy Workflow Step\";\nconst saveIntegrationsLabel = (saving) => \"Save Integrations\";\nconst copyCiSnippetLabel = (copied) => COPY_WORKFLOW_STEP_LABEL;\nconst API_KEY_CARD_TITLE = \"API Key\";\nconst NO_KEY_GENERATED_MESSAGE = \"No key generated yet.\";\nconst generateKeyLabel = (generating) => \"Generate Key\";\nconst PROFILE_CARD_TITLE = \"Profile\";\nconst CHANGE_PASSWORD_CARD_TITLE = \"Change password\";\nconst CURRENT_PASSWORD_LABEL = \"Current password\";\nconst NEW_PASSWORD_LABEL = \"New password\";\nconst CONFIRM_NEW_PASSWORD_LABEL = \"Confirm new password\";\nconst SIGN_OUT_LABEL = \"Sign out\";\nconst saveProfileLabel = (saving) => \"Save Profile\";\nconst changePasswordLabel = (saving) => \"Change Password\";\nconst REMOVE_USER_MODAL_TITLE = \"Remove User\";\nconst REMOVE_USER_LABEL = \"Remove\";\nconst ADD_USER_CARD_TITLE = \"Add User\";\nconst USER_NAME_PLACEHOLDER = \"Jane Smith\";\nconst USER_EMAIL_PLACEHOLDER = \"jane@example.com\";\nconst PASSWORD_LABEL = \"Password\";\nconst ROLE_LABEL = \"Role\";\nconst USER_ROLE_OPTION = \"User\";\nconst ADMIN_ROLE_OPTION = \"Admin\";\nconst REMOVE_USER_ICON_TITLE = \"Remove user\";\nconst YOU_CHIP_LABEL = \"you\";\nconst addUserLabel = (saving) => \"Add User\";\nconst MANUAL_BACKUP_CARD_TITLE = \"Manual Backup\";\nconst EXPORT_BLOCK_TITLE = \"Export\";\nconst EXPORT_BLOCK_DESC_PREFIX = \"Downloads a\";\nconst EXPORT_BLOCK_DESC_SUFFIX = \"file with all cron jobs, test cases, test runs, users, runners, and project settings.\";\nconst IMPORT_BLOCK_TITLE = \"Import\";\nconst IMPORT_BLOCK_DESC = \"Restores all data from a previously exported backup. Existing records are overwritten. Cron jobs are re-scheduled after import.\";\nconst CHOOSE_FILE_LABEL = \"Choose file…\";\nconst BACKUP_DISCLAIMER_PREFIX = \"Reports are not included in backups. To back up report history, run\";\nconst BACKUP_DISCLAIMER_SUFFIX = \"directly on the PostgreSQL volume.\";\nconst S3_STORAGE_CARD_TITLE = \"S3 Storage\";\nconst S3_STORAGE_DESC_PREFIX = \"Works with any S3-compatible provider — Cloudflare R2, Backblaze B2, AWS S3, or MinIO. Leave\";\nconst ENDPOINT_URL_LABEL = \"Endpoint URL\";\nconst S3_STORAGE_DESC_SUFFIX = \"empty for AWS S3.\";\nconst ENDPOINT_URL_HINT = \"Leave blank for AWS S3\";\nconst ENDPOINT_URL_PLACEHOLDER = \"https://account.r2.cloudflarestorage.com\";\nconst REGION_LABEL = \"Region\";\nconst REGION_HINT_PREFIX = \"Use\";\nconst REGION_HINT_SUFFIX = \"for Cloudflare R2\";\nconst REGION_PLACEHOLDER = \"us-east-1\";\nconst BUCKET_LABEL = \"Bucket\";\nconst BUCKET_PLACEHOLDER = \"my-plum-backups\";\nconst PATH_PREFIX_LABEL = \"Path Prefix\";\nconst PATH_PREFIX_HINT = \"Optional folder inside the bucket\";\nconst PATH_PREFIX_PLACEHOLDER = \"plum/\";\nconst ACCESS_KEY_LABEL = \"Access Key ID\";\nconst ACCESS_KEY_PLACEHOLDER = \"AKIAIOSFODNN7EXAMPLE\";\nconst SECRET_KEY_LABEL = \"Secret Access Key\";\nconst TEST_CONNECTION_LABEL = \"Test Connection\";\nconst SAVE_S3_CONFIG_LABEL = \"Save S3 Config\";\nconst SECRET_KEY_REQUIRED_HINT = \"Required\";\nconst SECRET_KEY_SET_PLACEHOLDER = \"••••••••\";\nconst SECRET_KEY_UNSET_PLACEHOLDER = \"Enter secret key\";\nconst SCHEDULED_BACKUP_CARD_TITLE = \"Scheduled Backup\";\nconst CONFIGURE_S3_FIRST_MESSAGE = \"Configure S3 storage above to enable scheduled backups.\";\nconst ENABLE_SCHEDULED_BACKUP_LABEL = \"Enable scheduled backup\";\nconst CRON_EXPRESSION_LABEL = \"Cron Expression\";\nconst CRON_HINT_PREFIX = \"5-field cron — e.g.\";\nconst CRON_HINT_SUFFIX = \"= daily at 2 AM.\";\nconst CRONTAB_LINK_LABEL = \"Test at crontab.guru ↗\";\nconst CRON_PLACEHOLDER = \"0 2 * * *\";\nconst UPLOAD_TO_S3_NOW_LABEL = \"Upload to S3 Now\";\nconst SAVE_SCHEDULE_LABEL = \"Save Schedule\";\nconst exportLabel = (exporting) => \"Export JSON\";\nconst importLabel = (importing) => \"Import\";\nconst secretKeyHint = (isSet) => SECRET_KEY_REQUIRED_HINT;\nconst secretKeyPlaceholder = (isSet) => isSet ? SECRET_KEY_SET_PLACEHOLDER : SECRET_KEY_UNSET_PLACEHOLDER;\nconst testConnectionLabel = (testing) => TEST_CONNECTION_LABEL;\nconst saveS3ConfigLabel = (saving) => SAVE_S3_CONFIG_LABEL;\nconst uploadS3NowLabel = (running) => UPLOAD_TO_S3_NOW_LABEL;\nconst saveScheduleLabel = (saving) => SAVE_SCHEDULE_LABEL;\nfunction _page($$payload, $$props) {\n push();\n var $$store_subs;\n let s3Configured, ciWorkflowSnippet, navItems;\n let section = typeof sessionStorage !== \"undefined\" && sessionStorage.getItem(\"plum:settings:section\") || \"project\";\n let project = {\n name: \"\",\n logoUrl: \"\",\n maxRetries: 0\n };\n let projectSaving = false;\n let toast = null;\n const TIMEZONES = (() => {\n try {\n return Intl.supportedValuesOf(\"timeZone\");\n } catch {\n return [\"UTC\"];\n }\n })();\n let prefixes = { testCasePrefix: \"TC\", testSuitePrefix: \"TS\" };\n let prefixesSaving = false;\n let migrateForm = { testCasePrefix: \"\", testSuitePrefix: \"\" };\n let migrating = false;\n let profileForm = { name: \"\", email: \"\" };\n let allUsers = [];\n let userForm = {\n name: \"\",\n email: \"\",\n password: \"\"\n };\n let userFormSaving = false;\n let confirmDeleteUserOpen = false;\n let pwForm = {\n currentPassword: \"\",\n newPassword: \"\",\n confirmPassword: \"\"\n };\n let exporting = false;\n let integrations = {\n discordWebhookUrl: \"\",\n slackWebhookUrl: \"\",\n notifyPublicUrl: \"\"\n };\n let integrationsSaving = false;\n let mcpKey = \"\";\n let mcpGenerating = false;\n let backupConfig = {\n backupEnabled: false,\n backupCron: \"0 2 * * *\",\n backupS3Endpoint: \"\",\n backupS3Region: \"\",\n backupS3Bucket: \"\",\n backupS3AccessKey: \"\",\n backupS3SecretKey: \"\",\n backupS3Prefix: \"\"\n };\n let backupConfigSaving = false;\n let backupS3SecretKeySet = false;\n let backupTestingS3 = false;\n let backupRunningNow = false;\n let runners = [];\n let pingResults = {};\n let stoppingId = null;\n let restartingId = null;\n let editingId = null;\n let editForm = {\n name: \"\",\n url: \"\",\n token: \"\"\n };\n let editFormSaving = false;\n const ADMIN_SECTIONS = /* @__PURE__ */ new Set([\n \"project\",\n \"runners\",\n \"repository\",\n \"integrations\",\n \"mcp\",\n \"users\",\n \"backup\"\n ]);\n if (store_get($$store_subs ??= {}, \"$auth\", auth).user && store_get($$store_subs ??= {}, \"$auth\", auth).user.role !== \"admin\" && ADMIN_SECTIONS.has(section)) {\n section = \"account\";\n }\n s3Configured = false;\n JSON.stringify(\n {\n mcpServers: {\n plum: {\n command: \"plum\",\n args: [\"mcp\"],\n env: { PLUM_API_URL: API_BASE, PLUM_API_KEY: mcpKey }\n }\n }\n },\n null,\n 2\n );\n ciWorkflowSnippet = [\n \"- name: Run Plum tests\",\n \" run: |\",\n ` curl -X POST ${API_BASE}/trigger \\\\`,\n ' -H \"Authorization: ApiKey ${{ secrets.PLUM_API_KEY }}\" \\\\',\n ' -H \"Content-Type: application/json\" \\\\',\n ` -d '{\"tag\": \"@smoke\", \"baseUrl\": \"https://your-pr-preview-url\"}'`\n ].join(\"\\n\");\n navItems = store_get($$store_subs ??= {}, \"$auth\", auth).user?.role === \"admin\" ? [\n { id: \"project\", label: PROJECT_LABEL },\n { id: \"runners\", label: RUNNERS_LABEL },\n { id: \"repository\", label: REPOSITORY_NAV_LABEL },\n { id: \"integrations\", label: INTEGRATIONS_LABEL },\n { id: \"mcp\", label: MCP_NAV_LABEL },\n { id: \"account\", label: ACCOUNT_LABEL },\n { id: \"users\", label: USERS_LABEL },\n { id: \"backup\", label: BACKUP_LABEL }\n ] : [{ id: \"account\", label: ACCOUNT_LABEL }];\n let $$settled = true;\n let $$inner_payload;\n function $$render_inner($$payload2) {\n const each_array = ensure_array_like(navItems);\n head($$payload2, ($$payload3) => {\n $$payload3.title = `<title>${escape_html(PAGE_TITLE)}</title>`;\n });\n Toast($$payload2, { toast });\n $$payload2.out += `<!----> <div class=\"page-header svelte-bpb2i4\"><h1 class=\"svelte-bpb2i4\">${escape_html(HEADING)}</h1></div> <div class=\"settings-layout svelte-bpb2i4\"><aside class=\"settings-sidebar svelte-bpb2i4\"><nav class=\"svelte-bpb2i4\"><!--[-->`;\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let item = each_array[$$index];\n $$payload2.out += `<button${attr(\"class\", `sidebar-item svelte-bpb2i4 ${stringify([section === item.id ? \"active\" : \"\"].filter(Boolean).join(\" \"))}`)}>${escape_html(item.label)}</button>`;\n }\n $$payload2.out += `<!--]--></nav></aside> <div class=\"settings-content svelte-bpb2i4\">`;\n if (section === \"project\") {\n $$payload2.out += \"<!--[-->\";\n const each_array_1 = ensure_array_like(TIMEZONES);\n $$payload2.out += `<div class=\"content-section svelte-bpb2i4\"><div class=\"content-header svelte-bpb2i4\"><h2 class=\"svelte-bpb2i4\">${escape_html(PROJECT_LABEL)}</h2> <p class=\"content-desc svelte-bpb2i4\">${escape_html(PROJECT_DESC)}</p></div> <div class=\"card settings-card svelte-bpb2i4\"><div class=\"field\"><label class=\"field-label svelte-bpb2i4\" for=\"project-name\">${escape_html(PROJECT_NAME_LABEL)}</label> <input id=\"project-name\" type=\"text\" class=\"field-input\"${attr(\"value\", project.name)}${attr(\"placeholder\", PROJECT_NAME_PLACEHOLDER)}></div> <div class=\"field\"><label class=\"field-label svelte-bpb2i4\" for=\"project-logo\"><span>${escape_html(LOGO_URL_LABEL)}</span> <span class=\"field-hint svelte-bpb2i4\">${escape_html(LOGO_URL_HINT)}</span></label> <input id=\"project-logo\" type=\"url\" class=\"field-input\"${attr(\"value\", project.logoUrl)}${attr(\"placeholder\", LOGO_URL_PLACEHOLDER)}></div> `;\n {\n $$payload2.out += \"<!--[!-->\";\n }\n $$payload2.out += `<!--]--> <div class=\"field\"><label class=\"field-label svelte-bpb2i4\" for=\"project-timezone\"><span>${escape_html(TIMEZONE_LABEL)}</span> <span class=\"field-hint svelte-bpb2i4\">${escape_html(TIMEZONE_HINT)}</span></label> <select id=\"project-timezone\" class=\"field-input\"><!--[-->`;\n for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {\n let tz = each_array_1[$$index_1];\n $$payload2.out += `<option${attr(\"value\", tz)}>${escape_html(tz)}</option>`;\n }\n $$payload2.out += `<!--]--></select></div> <div class=\"field\"><label class=\"field-label svelte-bpb2i4\" for=\"project-max-retries\"><span>${escape_html(RETRY_FAILED_TESTS_LABEL)}</span> <span class=\"field-hint svelte-bpb2i4\">${escape_html(RETRY_FAILED_TESTS_HINT)}</span></label> <input id=\"project-max-retries\" type=\"number\" class=\"field-input\" min=\"0\"${attr(\"max\", MAX_TEST_RETRIES)}${attr(\"value\", project.maxRetries)}></div> <div class=\"toggle-row svelte-bpb2i4\"><div class=\"toggle-info svelte-bpb2i4\"><span class=\"toggle-label svelte-bpb2i4\">${escape_html(DARK_MODE_LABEL)}</span> <span class=\"toggle-desc svelte-bpb2i4\">${escape_html(DARK_MODE_DESC)}</span></div> <button${attr(\"class\", `toggle-switch svelte-bpb2i4 ${stringify([\n store_get($$store_subs ??= {}, \"$theme\", theme) === \"dark\" ? \"on\" : \"\"\n ].filter(Boolean).join(\" \"))}`)} role=\"switch\"${attr(\"aria-checked\", store_get($$store_subs ??= {}, \"$theme\", theme) === \"dark\")}><span class=\"toggle-thumb svelte-bpb2i4\"></span></button></div> <div class=\"card-footer svelte-bpb2i4\">`;\n Button($$payload2, {\n disabled: projectSaving,\n children: ($$payload3) => {\n $$payload3.out += `<!---->${escape_html(saveProjectLabel())}`;\n },\n $$slots: { default: true }\n });\n $$payload2.out += `<!----></div></div></div>`;\n } else {\n $$payload2.out += \"<!--[!-->\";\n if (section === \"runners\") {\n $$payload2.out += \"<!--[-->\";\n $$payload2.out += `<div class=\"content-section svelte-bpb2i4\"><div class=\"content-header svelte-bpb2i4\"><h2 class=\"svelte-bpb2i4\">${escape_html(RUNNERS_LABEL)}</h2> <p class=\"content-desc svelte-bpb2i4\">${escape_html(RUNNERS_DESC)}</p></div> <div class=\"card settings-card svelte-bpb2i4\"><div class=\"toggle-row svelte-bpb2i4\"><div class=\"toggle-info svelte-bpb2i4\"><span class=\"toggle-label svelte-bpb2i4\">${escape_html(BUILTIN_RUNNER_TOGGLE_LABEL)}</span> <span class=\"toggle-desc svelte-bpb2i4\">${escape_html(BUILTIN_RUNNER_TOGGLE_DESC)}</span></div> <button${attr(\"class\", `toggle-switch svelte-bpb2i4 ${stringify([\n store_get($$store_subs ??= {}, \"$builtInEnabled\", builtInEnabled) ? \"on\" : \"\"\n ].filter(Boolean).join(\" \"))}`)} role=\"switch\"${attr(\"aria-checked\", store_get($$store_subs ??= {}, \"$builtInEnabled\", builtInEnabled))}><span class=\"toggle-thumb svelte-bpb2i4\"></span></button></div> `;\n if (runners.length > 0) {\n $$payload2.out += \"<!--[-->\";\n const each_array_2 = ensure_array_like(runners);\n $$payload2.out += `<div class=\"runner-cards svelte-bpb2i4\"><!--[-->`;\n for (let $$index_3 = 0, $$length = each_array_2.length; $$index_3 < $$length; $$index_3++) {\n let r = each_array_2[$$index_3];\n const ping = pingResults[r.id];\n if (editingId === r.id) {\n $$payload2.out += \"<!--[-->\";\n const each_array_3 = ensure_array_like(BROWSERS);\n $$payload2.out += `<div class=\"runner-card editing svelte-bpb2i4\"><div class=\"runner-form-fields svelte-bpb2i4\"><div class=\"field\"><label class=\"field-label svelte-bpb2i4\"${attr(\"for\", `edit-name-${stringify(r.id)}`)}>${escape_html(NAME_LABEL)}</label> <input${attr(\"id\", `edit-name-${stringify(r.id)}`)} type=\"text\" class=\"field-input\"${attr(\"value\", editForm.name)}${attr(\"placeholder\", RUNNER_NAME_PLACEHOLDER)}></div> <div class=\"field\"><label class=\"field-label svelte-bpb2i4\"${attr(\"for\", `edit-url-${stringify(r.id)}`)}>${escape_html(RUNNER_URL_LABEL)} <span class=\"field-hint svelte-bpb2i4\">${escape_html(RUNNER_URL_HINT_PREFIX)} <code>host.docker.internal</code> ${escape_html(RUNNER_URL_HINT_SUFFIX)}</span></label> <input${attr(\"id\", `edit-url-${stringify(r.id)}`)} type=\"url\" class=\"field-input\"${attr(\"value\", editForm.url)}${attr(\"placeholder\", RUNNER_URL_PLACEHOLDER)}></div> <div class=\"field\"><label class=\"field-label svelte-bpb2i4\"${attr(\"for\", `edit-token-${stringify(r.id)}`)}>${escape_html(TOKEN_LABEL)}</label> <input${attr(\"id\", `edit-token-${stringify(r.id)}`)} type=\"text\" class=\"field-input\"${attr(\"value\", editForm.token)}${attr(\"placeholder\", KEEP_TOKEN_PLACEHOLDER)} spellcheck=\"false\" autocomplete=\"off\"></div> <div class=\"field\"><label class=\"field-label svelte-bpb2i4\"${attr(\"for\", `edit-browser-${stringify(r.id)}`)}>${escape_html(BROWSER_LABEL)}</label> <select${attr(\"id\", `edit-browser-${stringify(r.id)}`)} class=\"field-input\"><!--[-->`;\n for (let $$index_2 = 0, $$length2 = each_array_3.length; $$index_2 < $$length2; $$index_2++) {\n let b = each_array_3[$$index_2];\n $$payload2.out += `<option${attr(\"value\", b.id)}>${escape_html(b.label)}</option>`;\n }\n $$payload2.out += `<!--]--></select></div></div> `;\n {\n $$payload2.out += \"<!--[!-->\";\n }\n $$payload2.out += `<!--]--> <div class=\"runner-form-actions svelte-bpb2i4\">`;\n Button($$payload2, {\n disabled: editFormSaving,\n children: ($$payload3) => {\n $$payload3.out += `<!---->${escape_html(editRunnerSubmitLabel())}`;\n },\n $$slots: { default: true }\n });\n $$payload2.out += `<!----> `;\n Button($$payload2, {\n variant: \"ghost\",\n disabled: editFormSaving,\n children: ($$payload3) => {\n $$payload3.out += `<!---->${escape_html(CANCEL_LABEL)}`;\n },\n $$slots: { default: true }\n });\n $$payload2.out += `<!----></div></div>`;\n } else {\n $$payload2.out += \"<!--[!-->\";\n $$payload2.out += `<div class=\"runner-card svelte-bpb2i4\"><div class=\"runner-card-header svelte-bpb2i4\"><svg class=\"runner-card-icon svelte-bpb2i4\" width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\"></rect><path d=\"M8 21h8M12 17v4\"></path></svg> <span class=\"runner-card-name svelte-bpb2i4\">${escape_html(r.name)}</span> <span class=\"runner-browser-pill svelte-bpb2i4\">${escape_html(r.browser)}</span> `;\n if (ping && !ping.loading) {\n $$payload2.out += \"<!--[-->\";\n if (ping.ok) {\n $$payload2.out += \"<!--[-->\";\n $$payload2.out += `<span class=\"ping-badge ok svelte-bpb2i4\">${escape_html(ping.latency)}ms</span>`;\n } else {\n $$payload2.out += \"<!--[!-->\";\n $$payload2.out += `<span class=\"ping-badge fail svelte-bpb2i4\"${attr(\"title\", ping.error)}>${escape_html(RUNNER_UNREACHABLE_LABEL)}</span>`;\n }\n $$payload2.out += `<!--]-->`;\n } else {\n $$payload2.out += \"<!--[!-->\";\n if (ping?.loading) {\n $$payload2.out += \"<!--[-->\";\n $$payload2.out += `<span class=\"ping-badge pinging svelte-bpb2i4\">${escape_html(RUNNER_PINGING_LABEL)}</span>`;\n } else {\n $$payload2.out += \"<!--[!-->\";\n }\n $$payload2.out += `<!--]-->`;\n }\n $$payload2.out += `<!--]--></div> <p class=\"runner-card-url svelte-bpb2i4\">${escape_html(r.url)}</p> <div class=\"runner-card-actions svelte-bpb2i4\">`;\n Button($$payload2, {\n variant: \"ghost\",\n size: \"sm\",\n children: ($$payload3) => {\n $$payload3.out += `<!---->${escape_html(EDIT_LABEL)}`;\n },\n $$slots: { default: true }\n });\n $$payload2.out += `<!----> `;\n Button($$payload2, {\n variant: \"ghost\",\n size: \"sm\",\n disabled: restartingId === r.id,\n children: ($$payload3) => {\n $$payload3.out += `<!---->${escape_html(restartRunnerLabel(restartingId === r.id))}`;\n },\n $$slots: { default: true }\n });\n $$payload2.out += `<!----> `;\n Button($$payload2, {\n variant: \"ghost\",\n size: \"sm\",\n disabled: stoppingId === r.id,\n children: ($$payload3) => {\n $$payload3.out += `<!---->${escape_html(stopRunnerLabel(stoppingId === r.id))}`;\n },\n $$slots: { default: true }\n });\n $$payload2.out += `<!----> `;\n Button($$payload2, {\n variant: \"danger\",\n size: \"sm\",\n children: ($$payload3) => {\n $$payload3.out += `<!---->${escape_html(REMOVE_LABEL)}`;\n },\n $$slots: { default: true }\n });\n $$payload2.out += `<!----></div></div>`;\n }\n $$payload2.out += `<!--]-->`;\n }\n $$payload2.out += `<!--]--></div>`;\n } else {\n $$payload2.out += \"<!--[!-->\";\n }\n $$payload2.out += `<!--]--> `;\n {\n $$payload2.out += \"<!--[!-->\";\n $$payload2.out += `<div class=\"card-footer svelte-bpb2i4\">`;\n Button($$payload2, {\n variant: \"ghost\",\n children: ($$payload3) => {\n $$payload3.out += `<!---->${escape_html(OPEN_ADD_RUNNER_LABEL)}`;\n },\n $$slots: { default: true }\n });\n $$payload2.out += `<!----></div>`;\n }\n $$payload2.out += `<!--]--></div></div>`;\n } else {\n $$payload2.out += \"<!--[!-->\";\n if (section === \"repository\") {\n $$payload2.out += \"<!--[-->\";\n $$payload2.out += `<div class=\"content-section svelte-bpb2i4\"><div class=\"content-header svelte-bpb2i4\"><h2 class=\"svelte-bpb2i4\">${escape_html(REPOSITORY_HEADING)}</h2> <p class=\"content-desc svelte-bpb2i4\">${escape_html(REPOSITORY_DESC)}</p></div> <div class=\"card settings-card svelte-bpb2i4\"><div class=\"field-row svelte-bpb2i4\"><div class=\"field\"><label class=\"field-label svelte-bpb2i4\" for=\"tc-prefix\">${escape_html(CASE_PREFIX_LABEL)}</label> <input id=\"tc-prefix\" type=\"text\" class=\"field-input mono svelte-bpb2i4\"${attr(\"value\", prefixes.testCasePrefix)}${attr(\"placeholder\", CASE_PREFIX_PLACEHOLDER)} maxlength=\"10\"></div> <div class=\"field\"><label class=\"field-label svelte-bpb2i4\" for=\"ts-prefix\">${escape_html(SUITE_PREFIX_LABEL)}</label> <input id=\"ts-prefix\" type=\"text\" class=\"field-input mono svelte-bpb2i4\"${attr(\"value\", prefixes.testSuitePrefix)}${attr(\"placeholder\", SUITE_PREFIX_PLACEHOLDER)} maxlength=\"10\"></div></div> <p class=\"content-desc svelte-bpb2i4\">${escape_html(EXAMPLES_LABEL)} <code class=\"code-sample svelte-bpb2i4\">${escape_html(prefixes.testCasePrefix)}-001</code>, <code class=\"code-sample svelte-bpb2i4\">${escape_html(prefixes.testSuitePrefix)}-001</code></p> <div class=\"card-footer svelte-bpb2i4\">`;\n Button($$payload2, {\n disabled: prefixesSaving,\n children: ($$payload3) => {\n $$payload3.out += `<!---->${escape_html(savePrefixesLabel())}`;\n },\n $$slots: { default: true }\n });\n $$payload2.out += `<!----></div></div> <div class=\"content-header svelte-bpb2i4\" style=\"margin-top: 1rem\"><h2 class=\"svelte-bpb2i4\">${escape_html(MIGRATE_IDS_HEADING)}</h2> <p class=\"content-desc svelte-bpb2i4\">${escape_html(MIGRATE_DESC_PREFIX)} <strong>${escape_html(MIGRATE_DESC_STRONG)}</strong> ${escape_html(MIGRATE_DESC_SUFFIX)}</p></div> <div class=\"card settings-card svelte-bpb2i4\"><div class=\"field-row svelte-bpb2i4\"><div class=\"field\"><label class=\"field-label svelte-bpb2i4\" for=\"mig-tc\">${escape_html(NEW_CASE_PREFIX_LABEL)}</label> <input id=\"mig-tc\" type=\"text\" class=\"field-input mono svelte-bpb2i4\"${attr(\"value\", migrateForm.testCasePrefix)}${attr(\"placeholder\", prefixes.testCasePrefix)} maxlength=\"10\"></div> <div class=\"field\"><label class=\"field-label svelte-bpb2i4\" for=\"mig-ts\">${escape_html(NEW_SUITE_PREFIX_LABEL)}</label> <input id=\"mig-ts\" type=\"text\" class=\"field-input mono svelte-bpb2i4\"${attr(\"value\", migrateForm.testSuitePrefix)}${attr(\"placeholder\", prefixes.testSuitePrefix)} maxlength=\"10\"></div></div> <div class=\"card-footer svelte-bpb2i4\">`;\n Button($$payload2, {\n variant: \"ghost\",\n disabled: migrating,\n children: ($$payload3) => {\n $$payload3.out += `<!---->${escape_html(runMigrationLabel())}`;\n },\n $$slots: { default: true }\n });\n $$payload2.out += `<!----></div></div></div>`;\n } else {\n $$payload2.out += \"<!--[!-->\";\n if (section === \"integrations\") {\n $$payload2.out += \"<!--[-->\";\n $$payload2.out += `<div class=\"content-section svelte-bpb2i4\"><div class=\"content-header svelte-bpb2i4\"><h2 class=\"svelte-bpb2i4\">${escape_html(INTEGRATIONS_LABEL)}</h2> <p class=\"content-desc svelte-bpb2i4\">${escape_html(INTEGRATIONS_DESC)}</p></div> <div class=\"card settings-card svelte-bpb2i4\"><p class=\"card-title\">${escape_html(WEBHOOKS_CARD_TITLE)}</p> <div class=\"field\"><label class=\"field-label svelte-bpb2i4\" for=\"discord-url\"><span>${escape_html(DISCORD_WEBHOOK_LABEL)}</span> <span class=\"field-hint svelte-bpb2i4\">${escape_html(DISCORD_WEBHOOK_HINT)}</span></label> <input id=\"discord-url\" type=\"url\" class=\"field-input\"${attr(\"value\", integrations.discordWebhookUrl)}${attr(\"placeholder\", DISCORD_WEBHOOK_PLACEHOLDER)}></div> <div class=\"field\"><label class=\"field-label svelte-bpb2i4\" for=\"slack-url\"><span>${escape_html(SLACK_WEBHOOK_LABEL)}</span> <span class=\"field-hint svelte-bpb2i4\">${escape_html(SLACK_WEBHOOK_HINT)}</span></label> <input id=\"slack-url\" type=\"url\" class=\"field-input\"${attr(\"value\", integrations.slackWebhookUrl)}${attr(\"placeholder\", SLACK_WEBHOOK_PLACEHOLDER)}></div> <div class=\"field\"><label class=\"field-label svelte-bpb2i4\" for=\"public-url\"><span>${escape_html(PUBLIC_URL_LABEL)}</span> <span class=\"field-hint svelte-bpb2i4\">${escape_html(PUBLIC_URL_HINT)}</span></label> <input id=\"public-url\" type=\"url\" class=\"field-input\"${attr(\"value\", integrations.notifyPublicUrl)}${attr(\"placeholder\", PUBLIC_URL_PLACEHOLDER)}></div> `;\n Button($$payload2, {\n disabled: integrationsSaving,\n children: ($$payload3) => {\n $$payload3.out += `<!---->${escape_html(saveIntegrationsLabel())}`;\n },\n $$slots: { default: true }\n });\n $$payload2.out += `<!----></div> <div class=\"card settings-card svelte-bpb2i4\"><p class=\"card-title\">${escape_html(CI_TRIGGERS_CARD_TITLE)}</p> <p class=\"content-desc svelte-bpb2i4\">${escape_html(CI_DESC_PART1)} <code class=\"code-sample svelte-bpb2i4\">POST ${escape_html(API_BASE)}/trigger</code> ${escape_html(CI_DESC_PART2)} <code class=\"code-sample svelte-bpb2i4\">Authorization: ApiKey …</code> ${escape_html(CI_DESC_PART3)} <button class=\"link-btn svelte-bpb2i4\">${escape_html(MCP_TAB_LINK_LABEL)}</button> ${escape_html(CI_DESC_PART4)} `;\n Badge($$payload2, {\n variant: \"external\",\n children: ($$payload3) => {\n $$payload3.out += `<!---->${escape_html(EXTERNAL_BADGE_LABEL)}`;\n },\n $$slots: { default: true }\n });\n $$payload2.out += `<!---->.</p> <pre class=\"mcp-snippet svelte-bpb2i4\">${escape_html(ciWorkflowSnippet)}</pre> <div class=\"card-footer svelte-bpb2i4\">`;\n Button($$payload2, {\n variant: \"ghost\",\n children: ($$payload3) => {\n $$payload3.out += `<!---->${escape_html(copyCiSnippetLabel())}`;\n },\n $$slots: { default: true }\n });\n $$payload2.out += `<!----></div></div></div>`;\n } else {\n $$payload2.out += \"<!--[!-->\";\n if (section === \"mcp\") {\n $$payload2.out += \"<!--[-->\";\n $$payload2.out += `<div class=\"content-section svelte-bpb2i4\"><div class=\"content-header svelte-bpb2i4\"><h2 class=\"svelte-bpb2i4\">${escape_html(MCP_HEADING)}</h2> <p class=\"content-desc svelte-bpb2i4\">${escape_html(MCP_DESC)}</p></div> <div class=\"card settings-card svelte-bpb2i4\"><p class=\"card-title\">${escape_html(API_KEY_CARD_TITLE)}</p> `;\n {\n $$payload2.out += \"<!--[-->\";\n $$payload2.out += `<p class=\"content-desc svelte-bpb2i4\">${escape_html(NO_KEY_GENERATED_MESSAGE)}</p> <div class=\"card-footer svelte-bpb2i4\">`;\n Button($$payload2, {\n disabled: mcpGenerating,\n children: ($$payload3) => {\n $$payload3.out += `<!---->${escape_html(generateKeyLabel())}`;\n },\n $$slots: { default: true }\n });\n $$payload2.out += `<!----></div>`;\n }\n $$payload2.out += `<!--]--></div> `;\n {\n $$payload2.out += \"<!--[!-->\";\n }\n $$payload2.out += `<!--]--></div>`;\n } else {\n $$payload2.out += \"<!--[!-->\";\n if (section === \"account\") {\n $$payload2.out += \"<!--[-->\";\n $$payload2.out += `<div class=\"content-section svelte-bpb2i4\"><div class=\"content-header svelte-bpb2i4\"><h2 class=\"svelte-bpb2i4\">${escape_html(ACCOUNT_LABEL)}</h2> <p class=\"content-desc svelte-bpb2i4\">${escape_html(ACCOUNT_DESC)}</p></div> <div class=\"card settings-card svelte-bpb2i4\"><p class=\"card-title\">${escape_html(PROFILE_CARD_TITLE)}</p> <div class=\"field\"><label class=\"field-label svelte-bpb2i4\" for=\"profile-name\">${escape_html(NAME_LABEL)}</label> <input id=\"profile-name\" type=\"text\" class=\"field-input\"${attr(\"value\", profileForm.name)}></div> <div class=\"field\"><label class=\"field-label svelte-bpb2i4\" for=\"profile-email\">${escape_html(EMAIL_LABEL)}</label> <input id=\"profile-email\" type=\"email\" class=\"field-input\"${attr(\"value\", profileForm.email)}></div> `;\n {\n $$payload2.out += \"<!--[!-->\";\n }\n $$payload2.out += `<!--]--> <div class=\"card-footer svelte-bpb2i4\">`;\n Button($$payload2, {\n disabled: true,\n children: ($$payload3) => {\n $$payload3.out += `<!---->${escape_html(saveProfileLabel())}`;\n },\n $$slots: { default: true }\n });\n $$payload2.out += `<!----></div></div> <div class=\"card settings-card svelte-bpb2i4\"><p class=\"card-title\">${escape_html(CHANGE_PASSWORD_CARD_TITLE)}</p> <div class=\"field\"><label class=\"field-label svelte-bpb2i4\" for=\"pw-current\">${escape_html(CURRENT_PASSWORD_LABEL)}</label> <input id=\"pw-current\" type=\"password\" class=\"field-input\"${attr(\"value\", pwForm.currentPassword)} autocomplete=\"current-password\"></div> <div class=\"field\"><label class=\"field-label svelte-bpb2i4\" for=\"pw-new\">${escape_html(NEW_PASSWORD_LABEL)}</label> <input id=\"pw-new\" type=\"password\" class=\"field-input\"${attr(\"value\", pwForm.newPassword)} autocomplete=\"new-password\"></div> <div class=\"field\"><label class=\"field-label svelte-bpb2i4\" for=\"pw-confirm\">${escape_html(CONFIRM_NEW_PASSWORD_LABEL)}</label> <input id=\"pw-confirm\" type=\"password\" class=\"field-input\"${attr(\"value\", pwForm.confirmPassword)} autocomplete=\"new-password\"></div> `;\n {\n $$payload2.out += \"<!--[!-->\";\n }\n $$payload2.out += `<!--]--> <div class=\"card-footer svelte-bpb2i4\">`;\n Button($$payload2, {\n disabled: true,\n children: ($$payload3) => {\n $$payload3.out += `<!---->${escape_html(changePasswordLabel())}`;\n },\n $$slots: { default: true }\n });\n $$payload2.out += `<!----></div></div> <div class=\"card settings-card svelte-bpb2i4\"><div class=\"card-footer svelte-bpb2i4\">`;\n Button($$payload2, {\n variant: \"danger\",\n size: \"sm\",\n children: ($$payload3) => {\n $$payload3.out += `<!---->${escape_html(SIGN_OUT_LABEL)}`;\n },\n $$slots: { default: true }\n });\n $$payload2.out += `<!----></div></div></div>`;\n } else {\n $$payload2.out += \"<!--[!-->\";\n if (section === \"users\") {\n $$payload2.out += \"<!--[-->\";\n $$payload2.out += `<div class=\"content-section svelte-bpb2i4\"><div class=\"content-header svelte-bpb2i4\"><h2 class=\"svelte-bpb2i4\">${escape_html(USERS_LABEL)}</h2> <p class=\"content-desc svelte-bpb2i4\">${escape_html(USERS_DESC)}</p></div> `;\n ConfirmModal($$payload2, {\n title: REMOVE_USER_MODAL_TITLE,\n confirmLabel: REMOVE_USER_LABEL,\n get open() {\n return confirmDeleteUserOpen;\n },\n set open($$value) {\n confirmDeleteUserOpen = $$value;\n $$settled = false;\n },\n children: ($$payload3) => {\n {\n $$payload3.out += \"<!--[!-->\";\n }\n $$payload3.out += `<!--]-->`;\n },\n $$slots: { default: true }\n });\n $$payload2.out += `<!----> <div class=\"card settings-card svelte-bpb2i4\"><p class=\"card-title\">${escape_html(ADD_USER_CARD_TITLE)}</p> <div class=\"field-row svelte-bpb2i4\"><div class=\"field\"><label class=\"field-label svelte-bpb2i4\" for=\"u-name\">${escape_html(NAME_LABEL)}</label> <input id=\"u-name\" type=\"text\" class=\"field-input\"${attr(\"value\", userForm.name)}${attr(\"placeholder\", USER_NAME_PLACEHOLDER)}></div> <div class=\"field\"><label class=\"field-label svelte-bpb2i4\" for=\"u-email\">${escape_html(EMAIL_LABEL)}</label> <input id=\"u-email\" type=\"email\" class=\"field-input\"${attr(\"value\", userForm.email)}${attr(\"placeholder\", USER_EMAIL_PLACEHOLDER)}></div></div> <div class=\"field-row svelte-bpb2i4\"><div class=\"field\"><label class=\"field-label svelte-bpb2i4\" for=\"u-pw\">${escape_html(PASSWORD_LABEL)}</label> <input id=\"u-pw\" type=\"password\" class=\"field-input\"${attr(\"value\", userForm.password)} autocomplete=\"new-password\"></div> <div class=\"field\"><label class=\"field-label svelte-bpb2i4\" for=\"u-role\">${escape_html(ROLE_LABEL)}</label> <select id=\"u-role\" class=\"field-input\"><option value=\"user\">${escape_html(USER_ROLE_OPTION)}</option><option value=\"admin\">${escape_html(ADMIN_ROLE_OPTION)}</option></select></div></div> `;\n {\n $$payload2.out += \"<!--[!-->\";\n }\n $$payload2.out += `<!--]--> <div class=\"card-footer svelte-bpb2i4\">`;\n Button($$payload2, {\n disabled: userFormSaving,\n children: ($$payload3) => {\n $$payload3.out += `<!---->${escape_html(addUserLabel())}`;\n },\n $$slots: { default: true }\n });\n $$payload2.out += `<!----></div></div> `;\n if (allUsers.length > 0) {\n $$payload2.out += \"<!--[-->\";\n const each_array_5 = ensure_array_like(allUsers);\n $$payload2.out += `<div class=\"users-table svelte-bpb2i4\"><!--[-->`;\n for (let $$index_5 = 0, $$length = each_array_5.length; $$index_5 < $$length; $$index_5++) {\n let u = each_array_5[$$index_5];\n $$payload2.out += `<div class=\"user-row svelte-bpb2i4\"><div class=\"user-info svelte-bpb2i4\"><span class=\"user-name svelte-bpb2i4\">${escape_html(u.name)}</span> <span class=\"user-email svelte-bpb2i4\">${escape_html(u.email)}</span></div> <span${attr(\"class\", `role-chip ${stringify(u.role)} svelte-bpb2i4`)}>${escape_html(u.role)}</span> `;\n if (u.id !== store_get($$store_subs ??= {}, \"$auth\", auth).user?.id) {\n $$payload2.out += \"<!--[-->\";\n $$payload2.out += `<button class=\"icon-btn danger svelte-bpb2i4\"${attr(\"title\", REMOVE_USER_ICON_TITLE)}><svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"3 6 5 6 21 6\"></polyline><path d=\"M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6\"></path><path d=\"M10 11v6M14 11v6\"></path><path d=\"M9 6V4h6v2\"></path></svg></button>`;\n } else {\n $$payload2.out += \"<!--[!-->\";\n $$payload2.out += `<span class=\"you-chip svelte-bpb2i4\">${escape_html(YOU_CHIP_LABEL)}</span>`;\n }\n $$payload2.out += `<!--]--></div>`;\n }\n $$payload2.out += `<!--]--></div>`;\n } else {\n $$payload2.out += \"<!--[!-->\";\n }\n $$payload2.out += `<!--]--></div>`;\n } else {\n $$payload2.out += \"<!--[!-->\";\n if (section === \"backup\") {\n $$payload2.out += \"<!--[-->\";\n $$payload2.out += `<div class=\"content-section svelte-bpb2i4\"><div class=\"content-header svelte-bpb2i4\"><h2 class=\"svelte-bpb2i4\">${escape_html(BACKUP_LABEL)}</h2> <p class=\"content-desc svelte-bpb2i4\">${escape_html(BACKUP_DESC)}</p></div> <div class=\"card settings-card svelte-bpb2i4\"><p class=\"card-title\">${escape_html(MANUAL_BACKUP_CARD_TITLE)}</p> <div class=\"backup-row svelte-bpb2i4\"><div class=\"backup-block svelte-bpb2i4\"><p class=\"backup-block-title svelte-bpb2i4\">${escape_html(EXPORT_BLOCK_TITLE)}</p> <p class=\"backup-block-desc svelte-bpb2i4\">${escape_html(EXPORT_BLOCK_DESC_PREFIX)} <code class=\"svelte-bpb2i4\">.json</code> ${escape_html(EXPORT_BLOCK_DESC_SUFFIX)}</p> `;\n Button($$payload2, {\n disabled: exporting,\n children: ($$payload3) => {\n $$payload3.out += `<!---->${escape_html(exportLabel())}`;\n },\n $$slots: { default: true }\n });\n $$payload2.out += `<!----></div> <div class=\"backup-divider svelte-bpb2i4\"></div> <div class=\"backup-block svelte-bpb2i4\"><p class=\"backup-block-title svelte-bpb2i4\">${escape_html(IMPORT_BLOCK_TITLE)}</p> <p class=\"backup-block-desc svelte-bpb2i4\">${escape_html(IMPORT_BLOCK_DESC)}</p> <div class=\"import-row svelte-bpb2i4\"><label class=\"file-label svelte-bpb2i4\"><input type=\"file\" accept=\".json\" class=\"file-input-hidden svelte-bpb2i4\"> <span class=\"file-btn svelte-bpb2i4\">${escape_html(CHOOSE_FILE_LABEL)}</span></label> `;\n Button($$payload2, {\n disabled: true,\n children: ($$payload3) => {\n $$payload3.out += `<!---->${escape_html(importLabel())}`;\n },\n $$slots: { default: true }\n });\n $$payload2.out += `<!----></div></div></div> <p class=\"backup-disclaimer svelte-bpb2i4\">${escape_html(BACKUP_DISCLAIMER_PREFIX)} <code>pg_dump</code> ${escape_html(BACKUP_DISCLAIMER_SUFFIX)}</p></div> <div class=\"card settings-card svelte-bpb2i4\"><p class=\"card-title\">${escape_html(S3_STORAGE_CARD_TITLE)}</p> <p class=\"backup-block-desc svelte-bpb2i4\" style=\"margin-bottom: 1.25rem;\">${escape_html(S3_STORAGE_DESC_PREFIX)} <strong>${escape_html(ENDPOINT_URL_LABEL)}</strong> ${escape_html(S3_STORAGE_DESC_SUFFIX)}</p> <div class=\"field-row svelte-bpb2i4\"><div class=\"field\"><label class=\"field-label svelte-bpb2i4\" for=\"s3-endpoint\"><span>${escape_html(ENDPOINT_URL_LABEL)}</span> <span class=\"field-hint svelte-bpb2i4\">${escape_html(ENDPOINT_URL_HINT)}</span></label> <input id=\"s3-endpoint\" type=\"url\" class=\"field-input\"${attr(\"value\", backupConfig.backupS3Endpoint)}${attr(\"placeholder\", ENDPOINT_URL_PLACEHOLDER)}></div> <div class=\"field\"><label class=\"field-label svelte-bpb2i4\" for=\"s3-region\"><span>${escape_html(REGION_LABEL)}</span> <span class=\"field-hint svelte-bpb2i4\">${escape_html(REGION_HINT_PREFIX)} <code>auto</code> ${escape_html(REGION_HINT_SUFFIX)}</span></label> <input id=\"s3-region\" type=\"text\" class=\"field-input\"${attr(\"value\", backupConfig.backupS3Region)}${attr(\"placeholder\", REGION_PLACEHOLDER)}></div></div> <div class=\"field-row svelte-bpb2i4\"><div class=\"field\"><label class=\"field-label svelte-bpb2i4\" for=\"s3-bucket\"><span>${escape_html(BUCKET_LABEL)}</span></label> <input id=\"s3-bucket\" type=\"text\" class=\"field-input\"${attr(\"value\", backupConfig.backupS3Bucket)}${attr(\"placeholder\", BUCKET_PLACEHOLDER)}></div> <div class=\"field\"><label class=\"field-label svelte-bpb2i4\" for=\"s3-prefix\"><span>${escape_html(PATH_PREFIX_LABEL)}</span> <span class=\"field-hint svelte-bpb2i4\">${escape_html(PATH_PREFIX_HINT)}</span></label> <input id=\"s3-prefix\" type=\"text\" class=\"field-input\"${attr(\"value\", backupConfig.backupS3Prefix)}${attr(\"placeholder\", PATH_PREFIX_PLACEHOLDER)}></div></div> <div class=\"field-row svelte-bpb2i4\"><div class=\"field\"><label class=\"field-label svelte-bpb2i4\" for=\"s3-access-key\"><span>${escape_html(ACCESS_KEY_LABEL)}</span></label> <input id=\"s3-access-key\" type=\"text\" class=\"field-input\"${attr(\"value\", backupConfig.backupS3AccessKey)}${attr(\"placeholder\", ACCESS_KEY_PLACEHOLDER)} autocomplete=\"off\"></div> <div class=\"field\"><label class=\"field-label svelte-bpb2i4\" for=\"s3-secret-key\"><span>${escape_html(SECRET_KEY_LABEL)}</span> <span class=\"field-hint svelte-bpb2i4\">${escape_html(secretKeyHint())}</span></label> <input id=\"s3-secret-key\" type=\"password\" class=\"field-input\"${attr(\"value\", backupConfig.backupS3SecretKey)}${attr(\"placeholder\", secretKeyPlaceholder(backupS3SecretKeySet))} autocomplete=\"new-password\"></div></div> <div class=\"backup-actions svelte-bpb2i4\">`;\n Button($$payload2, {\n variant: \"ghost\",\n disabled: backupTestingS3,\n children: ($$payload3) => {\n $$payload3.out += `<!---->${escape_html(testConnectionLabel())}`;\n },\n $$slots: { default: true }\n });\n $$payload2.out += `<!----> `;\n Button($$payload2, {\n disabled: backupConfigSaving,\n children: ($$payload3) => {\n $$payload3.out += `<!---->${escape_html(saveS3ConfigLabel())}`;\n },\n $$slots: { default: true }\n });\n $$payload2.out += `<!----></div> `;\n {\n $$payload2.out += \"<!--[!-->\";\n }\n $$payload2.out += `<!--]--></div> <div${attr(\"class\", `card settings-card svelte-bpb2i4 ${stringify([!s3Configured ? \"card-disabled\" : \"\"].filter(Boolean).join(\" \"))}`)}><p class=\"card-title\">${escape_html(SCHEDULED_BACKUP_CARD_TITLE)}</p> `;\n if (!s3Configured) {\n $$payload2.out += \"<!--[-->\";\n $$payload2.out += `<p class=\"backup-block-desc svelte-bpb2i4\">${escape_html(CONFIGURE_S3_FIRST_MESSAGE)}</p>`;\n } else {\n $$payload2.out += \"<!--[!-->\";\n $$payload2.out += `<div class=\"field\"><label class=\"field-label backup-toggle-label svelte-bpb2i4\" for=\"backup-enabled\"><span>${escape_html(ENABLE_SCHEDULED_BACKUP_LABEL)}</span> <button id=\"backup-enabled\"${attr(\"class\", `toggle-btn svelte-bpb2i4 ${stringify([\"\"].filter(Boolean).join(\" \"))}`)} role=\"switch\"${attr(\"aria-checked\", backupConfig.backupEnabled)}><span class=\"toggle-thumb svelte-bpb2i4\"></span></button></label></div> <div class=\"field\"><label class=\"field-label svelte-bpb2i4\" for=\"backup-cron\"><span>${escape_html(CRON_EXPRESSION_LABEL)}</span> <span class=\"field-hint svelte-bpb2i4\">${escape_html(CRON_HINT_PREFIX)} <code>0 2 * * *</code> ${escape_html(CRON_HINT_SUFFIX)} <a href=\"https://crontab.guru\" target=\"_blank\" rel=\"noopener noreferrer\">${escape_html(CRONTAB_LINK_LABEL)}</a></span></label> <input id=\"backup-cron\" type=\"text\" class=\"field-input field-input-mono svelte-bpb2i4\"${attr(\"value\", backupConfig.backupCron)}${attr(\"placeholder\", CRON_PLACEHOLDER)}></div> `;\n {\n $$payload2.out += \"<!--[!-->\";\n }\n $$payload2.out += `<!--]--> <div class=\"backup-actions svelte-bpb2i4\">`;\n Button($$payload2, {\n variant: \"ghost\",\n disabled: backupRunningNow,\n children: ($$payload3) => {\n $$payload3.out += `<!---->${escape_html(uploadS3NowLabel())}`;\n },\n $$slots: { default: true }\n });\n $$payload2.out += `<!----> `;\n Button($$payload2, {\n disabled: backupConfigSaving,\n children: ($$payload3) => {\n $$payload3.out += `<!---->${escape_html(saveScheduleLabel())}`;\n },\n $$slots: { default: true }\n });\n $$payload2.out += `<!----></div>`;\n }\n $$payload2.out += `<!--]--></div></div>`;\n } else {\n $$payload2.out += \"<!--[!-->\";\n }\n $$payload2.out += `<!--]-->`;\n }\n $$payload2.out += `<!--]-->`;\n }\n $$payload2.out += `<!--]-->`;\n }\n $$payload2.out += `<!--]-->`;\n }\n $$payload2.out += `<!--]-->`;\n }\n $$payload2.out += `<!--]-->`;\n }\n $$payload2.out += `<!--]-->`;\n }\n $$payload2.out += `<!--]--></div></div>`;\n }\n do {\n $$settled = true;\n $$inner_payload = copy_payload($$payload);\n $$render_inner($$inner_payload);\n } while (!$$settled);\n assign_payload($$payload, $$inner_payload);\n if ($$store_subs) unsubscribe_stores($$store_subs);\n pop();\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":"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"}
|