plum-e2e 2.8.4 → 2.8.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/backend/package-lock.json +3 -3
  2. package/backend/package.json +1 -1
  3. package/backend/routes/test-cases.routes.js +7 -2
  4. package/backend/services/reportService.js +7 -1
  5. package/backend/services/testCaseService.js +3 -2
  6. package/backend/services/userService.js +1 -3
  7. package/frontend/.svelte-kit/adapter-node/.vite/manifest.json +1 -1
  8. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.C1TbMUws.css +6 -0
  9. package/frontend/.svelte-kit/adapter-node/chunks/internal.js +1 -1
  10. package/frontend/.svelte-kit/adapter-node/entries/pages/_page.svelte.js +22 -22
  11. package/frontend/.svelte-kit/adapter-node/entries/pages/settings/_page.svelte.js +3 -3
  12. package/frontend/.svelte-kit/adapter-node/manifest-full.js +1 -1
  13. package/frontend/.svelte-kit/adapter-node/manifest.js +1 -1
  14. package/frontend/.svelte-kit/adapter-node/nodes/0.js +1 -1
  15. package/frontend/.svelte-kit/adapter-node/nodes/1.js +1 -1
  16. package/frontend/.svelte-kit/adapter-node/nodes/11.js +1 -1
  17. package/frontend/.svelte-kit/adapter-node/nodes/12.js +1 -1
  18. package/frontend/.svelte-kit/adapter-node/nodes/2.js +2 -2
  19. package/frontend/.svelte-kit/adapter-node/nodes/3.js +1 -1
  20. package/frontend/.svelte-kit/adapter-node/nodes/5.js +1 -1
  21. package/frontend/.svelte-kit/adapter-node/nodes/6.js +1 -1
  22. package/frontend/.svelte-kit/adapter-node/nodes/8.js +1 -1
  23. package/frontend/.svelte-kit/adapter-node/nodes/9.js +1 -1
  24. package/frontend/.svelte-kit/ambient.d.ts +4 -0
  25. package/frontend/.svelte-kit/generated/server/internal.js +1 -1
  26. package/frontend/.svelte-kit/output/client/.vite/manifest.json +35 -35
  27. package/frontend/.svelte-kit/output/client/_app/immutable/assets/2.C1TbMUws.css +6 -0
  28. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.C1TbMUws.css +6 -0
  29. package/frontend/{build/client/_app/immutable/chunks/DEKAA-Fm.js → .svelte-kit/output/client/_app/immutable/chunks/DDZw0L0T.js} +1 -1
  30. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{Dhf4xQKo.js → kkA1mrsH.js} +2 -2
  31. package/frontend/{build/client/_app/immutable/entry/app.B0GH5ONo.js → .svelte-kit/output/client/_app/immutable/entry/app.KrtMZ3my.js} +2 -2
  32. package/frontend/.svelte-kit/output/client/_app/immutable/entry/{start.Bn25CW9X.js → start.4qxHHAcl.js} +1 -1
  33. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/{0.-imXt0f5.js → 0.C8DodwXs.js} +1 -1
  34. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/{1.Dom3CKWF.js → 1.Df9sLw8b.js} +1 -1
  35. package/frontend/{build/client/_app/immutable/nodes/11.DMlayLCK.js → .svelte-kit/output/client/_app/immutable/nodes/11.BViaDK2m.js} +1 -1
  36. package/frontend/{build/client/_app/immutable/nodes/12.Bu89A1eX.js → .svelte-kit/output/client/_app/immutable/nodes/12.BMSCSd88.js} +1 -1
  37. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/2.BCPSg7H4.js +6 -0
  38. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/{3.B86rlHXU.js → 3.8BFAJoHT.js} +1 -1
  39. package/frontend/{build/client/_app/immutable/nodes/5.CqTXvadV.js → .svelte-kit/output/client/_app/immutable/nodes/5.DVeH2eQP.js} +1 -1
  40. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/{6.BJZ62MCd.js → 6.DI7-IJhN.js} +1 -1
  41. package/frontend/{build/client/_app/immutable/nodes/8.B4fj2Xyu.js → .svelte-kit/output/client/_app/immutable/nodes/8.93Mb3ofT.js} +4 -4
  42. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/{9.C57_2xq6.js → 9.CvfGx3Hu.js} +1 -1
  43. package/frontend/.svelte-kit/output/client/_app/version.json +1 -1
  44. package/frontend/.svelte-kit/output/server/.vite/manifest.json +1 -1
  45. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.C1TbMUws.css +6 -0
  46. package/frontend/.svelte-kit/output/server/chunks/internal.js +1 -1
  47. package/frontend/.svelte-kit/output/server/entries/pages/_page.svelte.js +22 -22
  48. package/frontend/.svelte-kit/output/server/entries/pages/settings/_page.svelte.js +3 -3
  49. package/frontend/.svelte-kit/output/server/manifest-full.js +1 -1
  50. package/frontend/.svelte-kit/output/server/manifest.js +1 -1
  51. package/frontend/.svelte-kit/output/server/nodes/0.js +1 -1
  52. package/frontend/.svelte-kit/output/server/nodes/1.js +1 -1
  53. package/frontend/.svelte-kit/output/server/nodes/11.js +1 -1
  54. package/frontend/.svelte-kit/output/server/nodes/12.js +1 -1
  55. package/frontend/.svelte-kit/output/server/nodes/2.js +2 -2
  56. package/frontend/.svelte-kit/output/server/nodes/3.js +1 -1
  57. package/frontend/.svelte-kit/output/server/nodes/5.js +1 -1
  58. package/frontend/.svelte-kit/output/server/nodes/6.js +1 -1
  59. package/frontend/.svelte-kit/output/server/nodes/8.js +1 -1
  60. package/frontend/.svelte-kit/output/server/nodes/9.js +1 -1
  61. package/frontend/build/client/_app/immutable/assets/2.C1TbMUws.css +6 -0
  62. package/frontend/build/client/_app/immutable/assets/2.C1TbMUws.css.br +0 -0
  63. package/frontend/build/client/_app/immutable/assets/2.C1TbMUws.css.gz +0 -0
  64. package/frontend/build/client/_app/immutable/assets/_page.C1TbMUws.css +6 -0
  65. package/frontend/build/client/_app/immutable/assets/_page.C1TbMUws.css.br +0 -0
  66. package/frontend/build/client/_app/immutable/assets/_page.C1TbMUws.css.gz +0 -0
  67. package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/DEKAA-Fm.js → build/client/_app/immutable/chunks/DDZw0L0T.js} +1 -1
  68. package/frontend/build/client/_app/immutable/chunks/DDZw0L0T.js.br +0 -0
  69. package/frontend/build/client/_app/immutable/chunks/DDZw0L0T.js.gz +0 -0
  70. package/frontend/build/client/_app/immutable/chunks/{Dhf4xQKo.js → kkA1mrsH.js} +2 -2
  71. package/frontend/build/client/_app/immutable/chunks/kkA1mrsH.js.br +0 -0
  72. package/frontend/build/client/_app/immutable/chunks/kkA1mrsH.js.gz +0 -0
  73. package/frontend/{.svelte-kit/output/client/_app/immutable/entry/app.B0GH5ONo.js → build/client/_app/immutable/entry/app.KrtMZ3my.js} +2 -2
  74. package/frontend/build/client/_app/immutable/entry/app.KrtMZ3my.js.br +0 -0
  75. package/frontend/build/client/_app/immutable/entry/app.KrtMZ3my.js.gz +0 -0
  76. package/frontend/build/client/_app/immutable/entry/{start.Bn25CW9X.js → start.4qxHHAcl.js} +1 -1
  77. package/frontend/build/client/_app/immutable/entry/{start.Bn25CW9X.js.br → start.4qxHHAcl.js.br} +0 -0
  78. package/frontend/build/client/_app/immutable/entry/{start.Bn25CW9X.js.gz → start.4qxHHAcl.js.gz} +0 -0
  79. package/frontend/build/client/_app/immutable/nodes/{0.-imXt0f5.js → 0.C8DodwXs.js} +1 -1
  80. package/frontend/build/client/_app/immutable/nodes/0.C8DodwXs.js.br +0 -0
  81. package/frontend/build/client/_app/immutable/nodes/0.C8DodwXs.js.gz +0 -0
  82. package/frontend/build/client/_app/immutable/nodes/{1.Dom3CKWF.js → 1.Df9sLw8b.js} +1 -1
  83. package/frontend/build/client/_app/immutable/nodes/1.Df9sLw8b.js.br +0 -0
  84. package/frontend/build/client/_app/immutable/nodes/1.Df9sLw8b.js.gz +0 -0
  85. package/frontend/{.svelte-kit/output/client/_app/immutable/nodes/11.DMlayLCK.js → build/client/_app/immutable/nodes/11.BViaDK2m.js} +1 -1
  86. package/frontend/build/client/_app/immutable/nodes/11.BViaDK2m.js.br +0 -0
  87. package/frontend/build/client/_app/immutable/nodes/11.BViaDK2m.js.gz +0 -0
  88. package/frontend/{.svelte-kit/output/client/_app/immutable/nodes/12.Bu89A1eX.js → build/client/_app/immutable/nodes/12.BMSCSd88.js} +1 -1
  89. package/frontend/build/client/_app/immutable/nodes/12.BMSCSd88.js.br +0 -0
  90. package/frontend/build/client/_app/immutable/nodes/{12.Bu89A1eX.js.gz → 12.BMSCSd88.js.gz} +0 -0
  91. package/frontend/build/client/_app/immutable/nodes/2.BCPSg7H4.js +6 -0
  92. package/frontend/build/client/_app/immutable/nodes/2.BCPSg7H4.js.br +0 -0
  93. package/frontend/build/client/_app/immutable/nodes/2.BCPSg7H4.js.gz +0 -0
  94. package/frontend/build/client/_app/immutable/nodes/{3.B86rlHXU.js → 3.8BFAJoHT.js} +1 -1
  95. package/frontend/build/client/_app/immutable/nodes/3.8BFAJoHT.js.br +0 -0
  96. package/frontend/build/client/_app/immutable/nodes/3.8BFAJoHT.js.gz +0 -0
  97. package/frontend/{.svelte-kit/output/client/_app/immutable/nodes/5.CqTXvadV.js → build/client/_app/immutable/nodes/5.DVeH2eQP.js} +1 -1
  98. package/frontend/build/client/_app/immutable/nodes/5.DVeH2eQP.js.br +0 -0
  99. package/frontend/build/client/_app/immutable/nodes/5.DVeH2eQP.js.gz +0 -0
  100. package/frontend/build/client/_app/immutable/nodes/{6.BJZ62MCd.js → 6.DI7-IJhN.js} +1 -1
  101. package/frontend/build/client/_app/immutable/nodes/6.DI7-IJhN.js.br +0 -0
  102. package/frontend/build/client/_app/immutable/nodes/6.DI7-IJhN.js.gz +0 -0
  103. package/frontend/{.svelte-kit/output/client/_app/immutable/nodes/8.B4fj2Xyu.js → build/client/_app/immutable/nodes/8.93Mb3ofT.js} +4 -4
  104. package/frontend/build/client/_app/immutable/nodes/8.93Mb3ofT.js.br +0 -0
  105. package/frontend/build/client/_app/immutable/nodes/8.93Mb3ofT.js.gz +0 -0
  106. package/frontend/build/client/_app/immutable/nodes/{9.C57_2xq6.js → 9.CvfGx3Hu.js} +1 -1
  107. package/frontend/build/client/_app/immutable/nodes/9.CvfGx3Hu.js.br +0 -0
  108. package/frontend/build/client/_app/immutable/nodes/9.CvfGx3Hu.js.gz +0 -0
  109. package/frontend/build/client/_app/version.json +1 -1
  110. package/frontend/build/client/_app/version.json.br +0 -0
  111. package/frontend/build/client/_app/version.json.gz +0 -0
  112. package/frontend/build/server/chunks/{0-DG1Uv07a.js → 0-D5YWFygh.js} +2 -2
  113. package/frontend/build/server/chunks/{0-DG1Uv07a.js.map → 0-D5YWFygh.js.map} +1 -1
  114. package/frontend/build/server/chunks/{1-iB0ogJU_.js → 1-Kxn9d30Z.js} +2 -2
  115. package/frontend/build/server/chunks/{1-iB0ogJU_.js.map → 1-Kxn9d30Z.js.map} +1 -1
  116. package/frontend/build/server/chunks/{11-Df9vGZ_v.js → 11-CNLerze_.js} +2 -2
  117. package/frontend/build/server/chunks/{11-Df9vGZ_v.js.map → 11-CNLerze_.js.map} +1 -1
  118. package/frontend/build/server/chunks/{12-DqvjCln4.js → 12-De6Ol6pu.js} +2 -2
  119. package/frontend/build/server/chunks/{12-DqvjCln4.js.map → 12-De6Ol6pu.js.map} +1 -1
  120. package/frontend/build/server/chunks/{2-Cte30Dgy.js → 2-Dc_rKWoK.js} +4 -4
  121. package/frontend/build/server/chunks/{2-Cte30Dgy.js.map → 2-Dc_rKWoK.js.map} +1 -1
  122. package/frontend/build/server/chunks/{3-BYKCZi4U.js → 3-DrRqVrcX.js} +2 -2
  123. package/frontend/build/server/chunks/{3-BYKCZi4U.js.map → 3-DrRqVrcX.js.map} +1 -1
  124. package/frontend/build/server/chunks/{5-B6Jc1foX.js → 5-CFeE5dPZ.js} +2 -2
  125. package/frontend/build/server/chunks/{5-B6Jc1foX.js.map → 5-CFeE5dPZ.js.map} +1 -1
  126. package/frontend/build/server/chunks/{6-dXZKtN86.js → 6-DZk37MZH.js} +2 -2
  127. package/frontend/build/server/chunks/{6-dXZKtN86.js.map → 6-DZk37MZH.js.map} +1 -1
  128. package/frontend/build/server/chunks/{8-D-Bp7HzS.js → 8-CKPVFOqJ.js} +3 -3
  129. package/frontend/build/server/chunks/{8-D-Bp7HzS.js.map → 8-CKPVFOqJ.js.map} +1 -1
  130. package/frontend/build/server/chunks/{9-BynjuGUO.js → 9-DirZG_Lu.js} +2 -2
  131. package/frontend/build/server/chunks/{9-BynjuGUO.js.map → 9-DirZG_Lu.js.map} +1 -1
  132. package/frontend/build/server/chunks/{_page.svelte-CpB-fgJl.js → _page.svelte-04WxjOuH.js} +23 -23
  133. package/frontend/build/server/chunks/_page.svelte-04WxjOuH.js.map +5 -0
  134. package/frontend/build/server/chunks/{_page.svelte-wKyUmA2e.js → _page.svelte-8gELc_B1.js} +4 -4
  135. package/frontend/build/server/chunks/_page.svelte-8gELc_B1.js.map +5 -0
  136. package/frontend/build/server/index.js +1 -1
  137. package/frontend/build/server/index.js.map +1 -1
  138. package/frontend/build/server/manifest.js +11 -11
  139. package/frontend/build/server/manifest.js.map +1 -1
  140. package/frontend/src/lib/api/repository.js +2 -2
  141. package/frontend/src/lib/copy/repository.js +6 -0
  142. package/frontend/src/routes/+page.svelte +6 -1
  143. package/frontend/src/routes/test-repository/suites/[id]/+page.svelte +116 -0
  144. package/package.json +1 -1
  145. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.DvMkmYA-.css +0 -6
  146. package/frontend/.svelte-kit/output/client/_app/immutable/assets/2.DvMkmYA-.css +0 -6
  147. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.DvMkmYA-.css +0 -6
  148. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/2.BnHalSCi.js +0 -6
  149. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.DvMkmYA-.css +0 -6
  150. package/frontend/build/client/_app/immutable/assets/2.DvMkmYA-.css +0 -6
  151. package/frontend/build/client/_app/immutable/assets/2.DvMkmYA-.css.br +0 -0
  152. package/frontend/build/client/_app/immutable/assets/2.DvMkmYA-.css.gz +0 -0
  153. package/frontend/build/client/_app/immutable/assets/_page.DvMkmYA-.css +0 -6
  154. package/frontend/build/client/_app/immutable/assets/_page.DvMkmYA-.css.br +0 -0
  155. package/frontend/build/client/_app/immutable/assets/_page.DvMkmYA-.css.gz +0 -0
  156. package/frontend/build/client/_app/immutable/chunks/DEKAA-Fm.js.br +0 -0
  157. package/frontend/build/client/_app/immutable/chunks/DEKAA-Fm.js.gz +0 -0
  158. package/frontend/build/client/_app/immutable/chunks/Dhf4xQKo.js.br +0 -0
  159. package/frontend/build/client/_app/immutable/chunks/Dhf4xQKo.js.gz +0 -0
  160. package/frontend/build/client/_app/immutable/entry/app.B0GH5ONo.js.br +0 -0
  161. package/frontend/build/client/_app/immutable/entry/app.B0GH5ONo.js.gz +0 -0
  162. package/frontend/build/client/_app/immutable/nodes/0.-imXt0f5.js.br +0 -0
  163. package/frontend/build/client/_app/immutable/nodes/0.-imXt0f5.js.gz +0 -0
  164. package/frontend/build/client/_app/immutable/nodes/1.Dom3CKWF.js.br +0 -0
  165. package/frontend/build/client/_app/immutable/nodes/1.Dom3CKWF.js.gz +0 -0
  166. package/frontend/build/client/_app/immutable/nodes/11.DMlayLCK.js.br +0 -0
  167. package/frontend/build/client/_app/immutable/nodes/11.DMlayLCK.js.gz +0 -0
  168. package/frontend/build/client/_app/immutable/nodes/12.Bu89A1eX.js.br +0 -0
  169. package/frontend/build/client/_app/immutable/nodes/2.BnHalSCi.js +0 -6
  170. package/frontend/build/client/_app/immutable/nodes/2.BnHalSCi.js.br +0 -0
  171. package/frontend/build/client/_app/immutable/nodes/2.BnHalSCi.js.gz +0 -0
  172. package/frontend/build/client/_app/immutable/nodes/3.B86rlHXU.js.br +0 -0
  173. package/frontend/build/client/_app/immutable/nodes/3.B86rlHXU.js.gz +0 -0
  174. package/frontend/build/client/_app/immutable/nodes/5.CqTXvadV.js.br +0 -0
  175. package/frontend/build/client/_app/immutable/nodes/5.CqTXvadV.js.gz +0 -0
  176. package/frontend/build/client/_app/immutable/nodes/6.BJZ62MCd.js.br +0 -0
  177. package/frontend/build/client/_app/immutable/nodes/6.BJZ62MCd.js.gz +0 -0
  178. package/frontend/build/client/_app/immutable/nodes/8.B4fj2Xyu.js.br +0 -0
  179. package/frontend/build/client/_app/immutable/nodes/8.B4fj2Xyu.js.gz +0 -0
  180. package/frontend/build/client/_app/immutable/nodes/9.C57_2xq6.js.br +0 -0
  181. package/frontend/build/client/_app/immutable/nodes/9.C57_2xq6.js.gz +0 -0
  182. package/frontend/build/server/chunks/_page.svelte-CpB-fgJl.js.map +0 -5
  183. package/frontend/build/server/chunks/_page.svelte-wKyUmA2e.js.map +0 -5
@@ -15,21 +15,21 @@ return {
15
15
  assets: new Set(["favicon-32x32.png","favicon.ico"]),
16
16
  mimeTypes: {".png":"image/png"},
17
17
  _: {
18
- client: {start:"_app/immutable/entry/start.Bn25CW9X.js",app:"_app/immutable/entry/app.B0GH5ONo.js",imports:["_app/immutable/entry/start.Bn25CW9X.js","_app/immutable/chunks/Dhf4xQKo.js","_app/immutable/chunks/BAACMRH5.js","_app/immutable/entry/app.B0GH5ONo.js","_app/immutable/chunks/BAACMRH5.js","_app/immutable/chunks/CMBQQ9RZ.js","_app/immutable/chunks/CgnwuKKO.js","_app/immutable/chunks/C8OURRSs.js","_app/immutable/chunks/2zMvi6fR.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
18
+ client: {start:"_app/immutable/entry/start.4qxHHAcl.js",app:"_app/immutable/entry/app.KrtMZ3my.js",imports:["_app/immutable/entry/start.4qxHHAcl.js","_app/immutable/chunks/kkA1mrsH.js","_app/immutable/chunks/BAACMRH5.js","_app/immutable/entry/app.KrtMZ3my.js","_app/immutable/chunks/BAACMRH5.js","_app/immutable/chunks/CMBQQ9RZ.js","_app/immutable/chunks/CgnwuKKO.js","_app/immutable/chunks/C8OURRSs.js","_app/immutable/chunks/2zMvi6fR.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
19
19
  nodes: [
20
- __memo(() => import('./chunks/0-DG1Uv07a.js')),
21
- __memo(() => import('./chunks/1-iB0ogJU_.js')),
22
- __memo(() => import('./chunks/2-Cte30Dgy.js')),
23
- __memo(() => import('./chunks/3-BYKCZi4U.js')),
20
+ __memo(() => import('./chunks/0-D5YWFygh.js')),
21
+ __memo(() => import('./chunks/1-Kxn9d30Z.js')),
22
+ __memo(() => import('./chunks/2-Dc_rKWoK.js')),
23
+ __memo(() => import('./chunks/3-DrRqVrcX.js')),
24
24
  __memo(() => import('./chunks/4-Bo04DC5Z.js')),
25
- __memo(() => import('./chunks/5-B6Jc1foX.js')),
26
- __memo(() => import('./chunks/6-dXZKtN86.js')),
25
+ __memo(() => import('./chunks/5-CFeE5dPZ.js')),
26
+ __memo(() => import('./chunks/6-DZk37MZH.js')),
27
27
  __memo(() => import('./chunks/7-DiQJZEF_.js')),
28
- __memo(() => import('./chunks/8-D-Bp7HzS.js')),
29
- __memo(() => import('./chunks/9-BynjuGUO.js')),
28
+ __memo(() => import('./chunks/8-CKPVFOqJ.js')),
29
+ __memo(() => import('./chunks/9-DirZG_Lu.js')),
30
30
  __memo(() => import('./chunks/10-l6_ikL_D.js')),
31
- __memo(() => import('./chunks/11-Df9vGZ_v.js')),
32
- __memo(() => import('./chunks/12-DqvjCln4.js'))
31
+ __memo(() => import('./chunks/11-CNLerze_.js')),
32
+ __memo(() => import('./chunks/12-De6Ol6pu.js'))
33
33
  ],
34
34
  routes: [
35
35
  {
@@ -2,4 +2,4 @@
2
2
  This file is part of Plum.
3
3
  Licensed under the MIT License. See LICENSE file in the project root for details.
4
4
  */
5
- {"version":3,"file":"manifest.js","sources":["../../.svelte-kit/adapter-node/manifest.js"],"sourcesContent":["export const manifest = (() => {\nfunction __memo(fn) {\n\tlet value;\n\treturn () => value ??= (value = fn());\n}\n\nreturn {\n\tappDir: \"_app\",\n\tappPath: \"_app\",\n\tassets: new Set([\"favicon-32x32.png\",\"favicon.ico\"]),\n\tmimeTypes: {\".png\":\"image/png\"},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.Bn25CW9X.js\",app:\"_app/immutable/entry/app.B0GH5ONo.js\",imports:[\"_app/immutable/entry/start.Bn25CW9X.js\",\"_app/immutable/chunks/Dhf4xQKo.js\",\"_app/immutable/chunks/BAACMRH5.js\",\"_app/immutable/entry/app.B0GH5ONo.js\",\"_app/immutable/chunks/BAACMRH5.js\",\"_app/immutable/chunks/CMBQQ9RZ.js\",\"_app/immutable/chunks/CgnwuKKO.js\",\"_app/immutable/chunks/C8OURRSs.js\",\"_app/immutable/chunks/2zMvi6fR.js\"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},\n\t\tnodes: [\n\t\t\t__memo(() => import('./nodes/0.js')),\n\t\t\t__memo(() => import('./nodes/1.js')),\n\t\t\t__memo(() => import('./nodes/2.js')),\n\t\t\t__memo(() => import('./nodes/3.js')),\n\t\t\t__memo(() => import('./nodes/4.js')),\n\t\t\t__memo(() => import('./nodes/5.js')),\n\t\t\t__memo(() => import('./nodes/6.js')),\n\t\t\t__memo(() => import('./nodes/7.js')),\n\t\t\t__memo(() => import('./nodes/8.js')),\n\t\t\t__memo(() => import('./nodes/9.js')),\n\t\t\t__memo(() => import('./nodes/10.js')),\n\t\t\t__memo(() => import('./nodes/11.js')),\n\t\t\t__memo(() => import('./nodes/12.js'))\n\t\t],\n\t\troutes: [\n\t\t\t{\n\t\t\t\tid: \"/\",\n\t\t\t\tpattern: /^\\/$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 2 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/login\",\n\t\t\t\tpattern: /^\\/login\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 3 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/reports\",\n\t\t\t\tpattern: /^\\/reports\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 4 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/reports/live\",\n\t\t\t\tpattern: /^\\/reports\\/live\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 6 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/reports/[id]\",\n\t\t\t\tpattern: /^\\/reports\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 5 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/scheduled-tests\",\n\t\t\t\tpattern: /^\\/scheduled-tests\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 7 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/settings\",\n\t\t\t\tpattern: /^\\/settings\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 8 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/setup\",\n\t\t\t\tpattern: /^\\/setup\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 9 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/test-repository\",\n\t\t\t\tpattern: /^\\/test-repository\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 10 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/test-repository/runs/[id]\",\n\t\t\t\tpattern: /^\\/test-repository\\/runs\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 11 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/test-repository/suites/[id]\",\n\t\t\t\tpattern: /^\\/test-repository\\/suites\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 12 },\n\t\t\t\tendpoint: null\n\t\t\t}\n\t\t],\n\t\tprerendered_routes: new Set([]),\n\t\tmatchers: async () => {\n\t\t\t\n\t\t\treturn { };\n\t\t},\n\t\tserver_assets: {}\n\t}\n}\n})();\n\nexport const prerendered = new Set([]);\n\nexport const base = \"\";"],"names":[],"mappings":"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"}
5
+ {"version":3,"file":"manifest.js","sources":["../../.svelte-kit/adapter-node/manifest.js"],"sourcesContent":["export const manifest = (() => {\nfunction __memo(fn) {\n\tlet value;\n\treturn () => value ??= (value = fn());\n}\n\nreturn {\n\tappDir: \"_app\",\n\tappPath: \"_app\",\n\tassets: new Set([\"favicon-32x32.png\",\"favicon.ico\"]),\n\tmimeTypes: {\".png\":\"image/png\"},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.4qxHHAcl.js\",app:\"_app/immutable/entry/app.KrtMZ3my.js\",imports:[\"_app/immutable/entry/start.4qxHHAcl.js\",\"_app/immutable/chunks/kkA1mrsH.js\",\"_app/immutable/chunks/BAACMRH5.js\",\"_app/immutable/entry/app.KrtMZ3my.js\",\"_app/immutable/chunks/BAACMRH5.js\",\"_app/immutable/chunks/CMBQQ9RZ.js\",\"_app/immutable/chunks/CgnwuKKO.js\",\"_app/immutable/chunks/C8OURRSs.js\",\"_app/immutable/chunks/2zMvi6fR.js\"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},\n\t\tnodes: [\n\t\t\t__memo(() => import('./nodes/0.js')),\n\t\t\t__memo(() => import('./nodes/1.js')),\n\t\t\t__memo(() => import('./nodes/2.js')),\n\t\t\t__memo(() => import('./nodes/3.js')),\n\t\t\t__memo(() => import('./nodes/4.js')),\n\t\t\t__memo(() => import('./nodes/5.js')),\n\t\t\t__memo(() => import('./nodes/6.js')),\n\t\t\t__memo(() => import('./nodes/7.js')),\n\t\t\t__memo(() => import('./nodes/8.js')),\n\t\t\t__memo(() => import('./nodes/9.js')),\n\t\t\t__memo(() => import('./nodes/10.js')),\n\t\t\t__memo(() => import('./nodes/11.js')),\n\t\t\t__memo(() => import('./nodes/12.js'))\n\t\t],\n\t\troutes: [\n\t\t\t{\n\t\t\t\tid: \"/\",\n\t\t\t\tpattern: /^\\/$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 2 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/login\",\n\t\t\t\tpattern: /^\\/login\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 3 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/reports\",\n\t\t\t\tpattern: /^\\/reports\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 4 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/reports/live\",\n\t\t\t\tpattern: /^\\/reports\\/live\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 6 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/reports/[id]\",\n\t\t\t\tpattern: /^\\/reports\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 5 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/scheduled-tests\",\n\t\t\t\tpattern: /^\\/scheduled-tests\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 7 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/settings\",\n\t\t\t\tpattern: /^\\/settings\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 8 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/setup\",\n\t\t\t\tpattern: /^\\/setup\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 9 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/test-repository\",\n\t\t\t\tpattern: /^\\/test-repository\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 10 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/test-repository/runs/[id]\",\n\t\t\t\tpattern: /^\\/test-repository\\/runs\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 11 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/test-repository/suites/[id]\",\n\t\t\t\tpattern: /^\\/test-repository\\/suites\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 12 },\n\t\t\t\tendpoint: null\n\t\t\t}\n\t\t],\n\t\tprerendered_routes: new Set([]),\n\t\tmatchers: async () => {\n\t\t\t\n\t\t\treturn { };\n\t\t},\n\t\tserver_assets: {}\n\t}\n}\n})();\n\nexport const prerendered = new Set([]);\n\nexport const base = \"\";"],"names":[],"mappings":"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"}
@@ -100,11 +100,11 @@ export async function createTestCase({ suiteId, title, description, priority })
100
100
  return data.testCase;
101
101
  }
102
102
 
103
- export async function updateTestCase(id, { title, description, priority }) {
103
+ export async function updateTestCase(id, { title, description, priority, suiteId }) {
104
104
  const res = await fetch(`${API_BASE}/test-cases/${id}`, {
105
105
  method: 'PUT',
106
106
  headers: authHeaders(),
107
- body: JSON.stringify({ title, description, priority })
107
+ body: JSON.stringify({ title, description, priority, suiteId })
108
108
  });
109
109
  const data = await res.json();
110
110
  if (!res.ok) throw new Error(data.error ?? 'Failed to update test case');
@@ -98,14 +98,20 @@ export const FAILED_TO_DELETE_CASE = 'Failed to delete case.';
98
98
  export const TEST_CASE_UPDATED_TOAST = 'Test case updated.';
99
99
  export const STEPS_SAVED_TOAST = 'Steps saved.';
100
100
  export const SUITE_UPDATED_TOAST = 'Suite updated.';
101
+ export const MOVE_CASE_TITLE = 'Move to suite';
102
+ export const MOVE_TEST_CASE_MODAL_TITLE = 'Move Test Case';
103
+ export const MOVE_TO_SUITE_LABEL = 'Move to suite';
104
+ export const FAILED_TO_MOVE_CASE = 'Failed to move case.';
101
105
 
102
106
  export const suiteDetailTitle = (suite) =>
103
107
  `${suite ? `${suite.displayId} — ${suite.name}` : 'Suite'} — Plum`;
104
108
  export const createdByCapitalized = (name) => `Created by ${name}`;
105
109
  export const caseCreatedToast = (displayId) => `${displayId} created.`;
106
110
  export const caseDeletedToast = (displayId) => `${displayId} deleted.`;
111
+ export const caseMovedToast = (displayId, suiteName) => `${displayId} moved to ${suiteName}.`;
107
112
  export const stepCount = (count) => `${count} ${pluralize(count, 'step')}`;
108
113
  export const saveStepsLabel = (saving) => (saving ? 'Saving…' : 'Save Steps');
114
+ export const moveCaseLabel = (saving) => (saving ? 'Moving…' : 'Move');
109
115
  export const runLinkLabel = (title) => `${title} ↗`;
110
116
 
111
117
  // ── Run detail ──
@@ -242,7 +242,7 @@
242
242
  {@const suiteKey = suiteIds(suite)[0] ?? suite.suiteName}
243
243
  {@const suiteOpen = !collapsedSuites.has(suiteKey)}
244
244
  <div class="suite" style={stagger(si, 55)}>
245
- <div class="suite-header">
245
+ <div class="suite-header" class:collapsed={!suiteOpen}>
246
246
  <button
247
247
  class="suite-toggle"
248
248
  on:click={() => toggleSuite(suiteKey)}
@@ -572,6 +572,11 @@
572
572
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
573
573
  }
574
574
 
575
+ .suite-header.collapsed {
576
+ border-bottom: none;
577
+ border-radius: var(--radius-lg);
578
+ }
579
+
575
580
  .suite-toggle {
576
581
  display: flex;
577
582
  align-items: center;
@@ -9,6 +9,7 @@
9
9
  import { fly, fade } from 'svelte/transition';
10
10
  import {
11
11
  fetchSuite,
12
+ fetchAllSuitesWithCases,
12
13
  updateSuite,
13
14
  createTestCase,
14
15
  fetchTestCase,
@@ -80,13 +81,20 @@
80
81
  TEST_CASE_UPDATED_TOAST,
81
82
  STEPS_SAVED_TOAST,
82
83
  SUITE_UPDATED_TOAST,
84
+ MOVE_CASE_TITLE,
85
+ MOVE_TEST_CASE_MODAL_TITLE,
86
+ MOVE_TO_SUITE_LABEL,
87
+ NO_SUITES_AVAILABLE,
88
+ FAILED_TO_MOVE_CASE,
83
89
  suiteDetailTitle,
84
90
  createdByCapitalized,
85
91
  caseCreatedToast,
86
92
  caseDeletedToast,
93
+ caseMovedToast,
87
94
  caseCount,
88
95
  stepCount,
89
96
  saveStepsLabel,
97
+ moveCaseLabel,
90
98
  runLinkLabel
91
99
  } from '$lib/copy/repository';
92
100
 
@@ -118,6 +126,13 @@
118
126
  let confirmDeleteCase = null;
119
127
  let confirmDeleteCaseOpen = false;
120
128
 
129
+ let allSuites = [];
130
+ let moveCaseOpen = false;
131
+ let moveCaseTarget = null;
132
+ let moveCaseSuiteId = '';
133
+ let moveCaseSaving = false;
134
+ $: otherSuites = allSuites.filter((s) => s.id !== suiteId);
135
+
121
136
  let caseSearch = '';
122
137
  let casesPage = 1;
123
138
  let casesSort = (() => {
@@ -181,6 +196,9 @@
181
196
  } finally {
182
197
  loading = false;
183
198
  }
199
+ try {
200
+ allSuites = await fetchAllSuitesWithCases();
201
+ } catch {}
184
202
  });
185
203
 
186
204
  async function handleCreateCase() {
@@ -287,6 +305,34 @@
287
305
  confirmDeleteCaseOpen = false;
288
306
  }
289
307
 
308
+ function openMoveCase(tc) {
309
+ moveCaseTarget = tc;
310
+ moveCaseSuiteId = otherSuites[0]?.id ?? '';
311
+ moveCaseOpen = true;
312
+ }
313
+
314
+ async function handleMoveCase() {
315
+ if (!moveCaseTarget || !moveCaseSuiteId) return;
316
+ moveCaseSaving = true;
317
+ try {
318
+ await updateTestCase(moveCaseTarget.id, { suiteId: moveCaseSuiteId });
319
+ const targetSuite = allSuites.find((s) => s.id === moveCaseSuiteId);
320
+ suite = {
321
+ ...suite,
322
+ cases: suite.cases.filter((c) => c.id !== moveCaseTarget.id),
323
+ _count: { cases: suite._count.cases - 1 }
324
+ };
325
+ if (selectedCase?.id === moveCaseTarget.id) selectedCase = null;
326
+ showToast('success', caseMovedToast(moveCaseTarget.displayId, targetSuite?.name ?? ''));
327
+ moveCaseOpen = false;
328
+ moveCaseTarget = null;
329
+ } catch (e) {
330
+ showToast('error', e.message ?? FAILED_TO_MOVE_CASE);
331
+ } finally {
332
+ moveCaseSaving = false;
333
+ }
334
+ }
335
+
290
336
  async function handleUpdateSuite() {
291
337
  editSuiteSaving = true;
292
338
  try {
@@ -409,6 +455,32 @@
409
455
  </div>
410
456
  </Modal>
411
457
 
458
+ <Modal bind:open={moveCaseOpen} title={MOVE_TEST_CASE_MODAL_TITLE}>
459
+ <div class="form-fields">
460
+ {#if moveCaseTarget}
461
+ <p class="move-case-subtitle">{moveCaseTarget.displayId} — {moveCaseTarget.title}</p>
462
+ {/if}
463
+ {#if otherSuites.length === 0}
464
+ <p class="form-error">{NO_SUITES_AVAILABLE}</p>
465
+ {:else}
466
+ <div class="field">
467
+ <label class="field-label" for="move-suite">{MOVE_TO_SUITE_LABEL}</label>
468
+ <select id="move-suite" class="field-input" bind:value={moveCaseSuiteId}>
469
+ {#each otherSuites as s}
470
+ <option value={s.id}>{s.displayId} — {s.name}</option>
471
+ {/each}
472
+ </select>
473
+ </div>
474
+ {/if}
475
+ <div class="modal-actions">
476
+ <Button on:click={handleMoveCase} disabled={moveCaseSaving || otherSuites.length === 0}>
477
+ {moveCaseLabel(moveCaseSaving)}
478
+ </Button>
479
+ <Button variant="ghost" on:click={() => (moveCaseOpen = false)}>{CANCEL_LABEL}</Button>
480
+ </div>
481
+ </div>
482
+ </Modal>
483
+
412
484
  {#if loading}
413
485
  <div class="loading-state">{LOADING_LABEL}</div>
414
486
  {:else if suite}
@@ -548,6 +620,26 @@
548
620
  <span class="auto-badge">{AUTOMATED_LABEL}</span>
549
621
  {/if}
550
622
  <div class="case-row-actions" on:click|stopPropagation>
623
+ <button
624
+ class="icon-btn small"
625
+ title={MOVE_CASE_TITLE}
626
+ on:click={() => openMoveCase(tc)}
627
+ >
628
+ <svg
629
+ width="11"
630
+ height="11"
631
+ viewBox="0 0 24 24"
632
+ fill="none"
633
+ stroke="currentColor"
634
+ stroke-width="2"
635
+ stroke-linecap="round"
636
+ stroke-linejoin="round"
637
+ >
638
+ <path
639
+ d="M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7z"
640
+ />
641
+ </svg>
642
+ </button>
551
643
  <button
552
644
  class="icon-btn danger small"
553
645
  on:click={() => {
@@ -606,6 +698,26 @@
606
698
  {/if}
607
699
  <div class="detail-header-actions">
608
700
  {#if !editingCase}
701
+ <button
702
+ class="icon-btn"
703
+ title={MOVE_CASE_TITLE}
704
+ on:click={() => openMoveCase(selectedCase)}
705
+ >
706
+ <svg
707
+ width="13"
708
+ height="13"
709
+ viewBox="0 0 24 24"
710
+ fill="none"
711
+ stroke="currentColor"
712
+ stroke-width="2"
713
+ stroke-linecap="round"
714
+ stroke-linejoin="round"
715
+ >
716
+ <path
717
+ d="M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7z"
718
+ />
719
+ </svg>
720
+ </button>
609
721
  <button class="icon-btn" title={EDIT_CASE_TITLE} on:click={startEditCase}>
610
722
  <svg
611
723
  width="13"
@@ -1577,6 +1689,10 @@
1577
1689
  font-size: 0.8125rem;
1578
1690
  color: var(--fail);
1579
1691
  }
1692
+ .move-case-subtitle {
1693
+ font-size: 0.8125rem;
1694
+ color: var(--text-muted);
1695
+ }
1580
1696
  .modal-actions {
1581
1697
  display: flex;
1582
1698
  gap: 0.5rem;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "plum-e2e",
3
- "version": "2.8.4",
3
+ "version": "2.8.6",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/silverlunah/plum.git"
@@ -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)}}
@@ -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)}}
@@ -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};