@juspay/shooter 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (327) hide show
  1. package/.claude/hooks/notifier.cjs +1431 -0
  2. package/.claude/settings.json +162 -0
  3. package/README.md +515 -0
  4. package/bin/shooter.cjs +141 -0
  5. package/build/client/_app/immutable/assets/0.CM9Hl6d-.css +1 -0
  6. package/build/client/_app/immutable/assets/0.CM9Hl6d-.css.br +0 -0
  7. package/build/client/_app/immutable/assets/0.CM9Hl6d-.css.gz +0 -0
  8. package/build/client/_app/immutable/assets/2.CAShZ7lQ.css +1 -0
  9. package/build/client/_app/immutable/assets/2.CAShZ7lQ.css.br +1 -0
  10. package/build/client/_app/immutable/assets/2.CAShZ7lQ.css.gz +0 -0
  11. package/build/client/_app/immutable/assets/3.C0uFg0IS.css +1 -0
  12. package/build/client/_app/immutable/assets/3.C0uFg0IS.css.br +0 -0
  13. package/build/client/_app/immutable/assets/3.C0uFg0IS.css.gz +0 -0
  14. package/build/client/_app/immutable/assets/4.cJuCkJKZ.css +1 -0
  15. package/build/client/_app/immutable/assets/4.cJuCkJKZ.css.br +0 -0
  16. package/build/client/_app/immutable/assets/4.cJuCkJKZ.css.gz +0 -0
  17. package/build/client/_app/immutable/assets/5.DRjApZQW.css +1 -0
  18. package/build/client/_app/immutable/assets/5.DRjApZQW.css.br +0 -0
  19. package/build/client/_app/immutable/assets/5.DRjApZQW.css.gz +0 -0
  20. package/build/client/_app/immutable/assets/6.AraZrY8I.css +1 -0
  21. package/build/client/_app/immutable/assets/6.AraZrY8I.css.br +0 -0
  22. package/build/client/_app/immutable/assets/6.AraZrY8I.css.gz +0 -0
  23. package/build/client/_app/immutable/assets/7.BCJ1IuMx.css +1 -0
  24. package/build/client/_app/immutable/assets/7.BCJ1IuMx.css.br +0 -0
  25. package/build/client/_app/immutable/assets/7.BCJ1IuMx.css.gz +0 -0
  26. package/build/client/_app/immutable/assets/ChatView.CsdBAOKx.css +1 -0
  27. package/build/client/_app/immutable/assets/ChatView.CsdBAOKx.css.br +0 -0
  28. package/build/client/_app/immutable/assets/ChatView.CsdBAOKx.css.gz +0 -0
  29. package/build/client/_app/immutable/assets/markdown.B0b5w2tq.css +1 -0
  30. package/build/client/_app/immutable/assets/markdown.B0b5w2tq.css.br +0 -0
  31. package/build/client/_app/immutable/assets/markdown.B0b5w2tq.css.gz +0 -0
  32. package/build/client/_app/immutable/assets/xterm.DFuMZ0ql.css +1 -0
  33. package/build/client/_app/immutable/assets/xterm.DFuMZ0ql.css.br +0 -0
  34. package/build/client/_app/immutable/assets/xterm.DFuMZ0ql.css.gz +0 -0
  35. package/build/client/_app/immutable/chunks/BNJphC1q.js +56 -0
  36. package/build/client/_app/immutable/chunks/BNJphC1q.js.br +0 -0
  37. package/build/client/_app/immutable/chunks/BNJphC1q.js.gz +0 -0
  38. package/build/client/_app/immutable/chunks/BTGVxaYV.js +9 -0
  39. package/build/client/_app/immutable/chunks/BTGVxaYV.js.br +0 -0
  40. package/build/client/_app/immutable/chunks/BTGVxaYV.js.gz +0 -0
  41. package/build/client/_app/immutable/chunks/BlxrFPDK.js +1 -0
  42. package/build/client/_app/immutable/chunks/BlxrFPDK.js.br +0 -0
  43. package/build/client/_app/immutable/chunks/BlxrFPDK.js.gz +0 -0
  44. package/build/client/_app/immutable/chunks/Bvk7mfPM.js +1 -0
  45. package/build/client/_app/immutable/chunks/Bvk7mfPM.js.br +0 -0
  46. package/build/client/_app/immutable/chunks/Bvk7mfPM.js.gz +0 -0
  47. package/build/client/_app/immutable/chunks/CAokzuPQ.js +1 -0
  48. package/build/client/_app/immutable/chunks/CAokzuPQ.js.br +0 -0
  49. package/build/client/_app/immutable/chunks/CAokzuPQ.js.gz +0 -0
  50. package/build/client/_app/immutable/chunks/CGLrx-H5.js +1 -0
  51. package/build/client/_app/immutable/chunks/CGLrx-H5.js.br +0 -0
  52. package/build/client/_app/immutable/chunks/CGLrx-H5.js.gz +0 -0
  53. package/build/client/_app/immutable/chunks/CgCpWzEA.js +1 -0
  54. package/build/client/_app/immutable/chunks/CgCpWzEA.js.br +0 -0
  55. package/build/client/_app/immutable/chunks/CgCpWzEA.js.gz +0 -0
  56. package/build/client/_app/immutable/chunks/Cjwk_cGO.js +6 -0
  57. package/build/client/_app/immutable/chunks/Cjwk_cGO.js.br +0 -0
  58. package/build/client/_app/immutable/chunks/Cjwk_cGO.js.gz +0 -0
  59. package/build/client/_app/immutable/chunks/CtQ8EED1.js +11 -0
  60. package/build/client/_app/immutable/chunks/CtQ8EED1.js.br +0 -0
  61. package/build/client/_app/immutable/chunks/CtQ8EED1.js.gz +0 -0
  62. package/build/client/_app/immutable/chunks/DERQCisl.js +1 -0
  63. package/build/client/_app/immutable/chunks/DERQCisl.js.br +0 -0
  64. package/build/client/_app/immutable/chunks/DERQCisl.js.gz +0 -0
  65. package/build/client/_app/immutable/chunks/DKrg8TQs.js +1 -0
  66. package/build/client/_app/immutable/chunks/DKrg8TQs.js.br +0 -0
  67. package/build/client/_app/immutable/chunks/DKrg8TQs.js.gz +0 -0
  68. package/build/client/_app/immutable/chunks/DLu6yJIZ.js +1 -0
  69. package/build/client/_app/immutable/chunks/DLu6yJIZ.js.br +0 -0
  70. package/build/client/_app/immutable/chunks/DLu6yJIZ.js.gz +0 -0
  71. package/build/client/_app/immutable/chunks/Dkkpz_4D.js +126 -0
  72. package/build/client/_app/immutable/chunks/Dkkpz_4D.js.br +0 -0
  73. package/build/client/_app/immutable/chunks/Dkkpz_4D.js.gz +0 -0
  74. package/build/client/_app/immutable/chunks/DoczjQhA.js +1 -0
  75. package/build/client/_app/immutable/chunks/DoczjQhA.js.br +0 -0
  76. package/build/client/_app/immutable/chunks/DoczjQhA.js.gz +0 -0
  77. package/build/client/_app/immutable/chunks/PPVm8Dsz.js +1 -0
  78. package/build/client/_app/immutable/chunks/PPVm8Dsz.js.br +0 -0
  79. package/build/client/_app/immutable/chunks/PPVm8Dsz.js.gz +0 -0
  80. package/build/client/_app/immutable/chunks/RpcNruLP.js +2 -0
  81. package/build/client/_app/immutable/chunks/RpcNruLP.js.br +0 -0
  82. package/build/client/_app/immutable/chunks/RpcNruLP.js.gz +0 -0
  83. package/build/client/_app/immutable/chunks/a-St0Zwo.js +1 -0
  84. package/build/client/_app/immutable/chunks/a-St0Zwo.js.br +0 -0
  85. package/build/client/_app/immutable/chunks/a-St0Zwo.js.gz +0 -0
  86. package/build/client/_app/immutable/chunks/bo70OQUZ.js +1 -0
  87. package/build/client/_app/immutable/chunks/bo70OQUZ.js.br +0 -0
  88. package/build/client/_app/immutable/chunks/bo70OQUZ.js.gz +0 -0
  89. package/build/client/_app/immutable/entry/app.QvGgdvTI.js +2 -0
  90. package/build/client/_app/immutable/entry/app.QvGgdvTI.js.br +0 -0
  91. package/build/client/_app/immutable/entry/app.QvGgdvTI.js.gz +0 -0
  92. package/build/client/_app/immutable/entry/start.BntDNRMC.js +1 -0
  93. package/build/client/_app/immutable/entry/start.BntDNRMC.js.br +0 -0
  94. package/build/client/_app/immutable/entry/start.BntDNRMC.js.gz +0 -0
  95. package/build/client/_app/immutable/nodes/0.CzkdvJ7j.js +1 -0
  96. package/build/client/_app/immutable/nodes/0.CzkdvJ7j.js.br +0 -0
  97. package/build/client/_app/immutable/nodes/0.CzkdvJ7j.js.gz +0 -0
  98. package/build/client/_app/immutable/nodes/1.MG1QhfrI.js +1 -0
  99. package/build/client/_app/immutable/nodes/1.MG1QhfrI.js.br +0 -0
  100. package/build/client/_app/immutable/nodes/1.MG1QhfrI.js.gz +0 -0
  101. package/build/client/_app/immutable/nodes/2.B4MlOSh6.js +1 -0
  102. package/build/client/_app/immutable/nodes/2.B4MlOSh6.js.br +0 -0
  103. package/build/client/_app/immutable/nodes/2.B4MlOSh6.js.gz +0 -0
  104. package/build/client/_app/immutable/nodes/3.DIwYkjDn.js +3 -0
  105. package/build/client/_app/immutable/nodes/3.DIwYkjDn.js.br +0 -0
  106. package/build/client/_app/immutable/nodes/3.DIwYkjDn.js.gz +0 -0
  107. package/build/client/_app/immutable/nodes/4.D-cIe70D.js +1 -0
  108. package/build/client/_app/immutable/nodes/4.D-cIe70D.js.br +0 -0
  109. package/build/client/_app/immutable/nodes/4.D-cIe70D.js.gz +0 -0
  110. package/build/client/_app/immutable/nodes/5.D7zPRe3L.js +1 -0
  111. package/build/client/_app/immutable/nodes/5.D7zPRe3L.js.br +0 -0
  112. package/build/client/_app/immutable/nodes/5.D7zPRe3L.js.gz +0 -0
  113. package/build/client/_app/immutable/nodes/6.BB7QE48r.js +2 -0
  114. package/build/client/_app/immutable/nodes/6.BB7QE48r.js.br +0 -0
  115. package/build/client/_app/immutable/nodes/6.BB7QE48r.js.gz +0 -0
  116. package/build/client/_app/immutable/nodes/7.D8mqsrZG.js +2 -0
  117. package/build/client/_app/immutable/nodes/7.D8mqsrZG.js.br +0 -0
  118. package/build/client/_app/immutable/nodes/7.D8mqsrZG.js.gz +0 -0
  119. package/build/client/_app/version.json +1 -0
  120. package/build/client/_app/version.json.br +0 -0
  121. package/build/client/_app/version.json.gz +0 -0
  122. package/build/client/app-icon.png +0 -0
  123. package/build/client/apple-touch-icon.png +0 -0
  124. package/build/client/favicon.png +0 -0
  125. package/build/client/favicon.svg +10 -0
  126. package/build/client/favicon.svg.br +0 -0
  127. package/build/client/favicon.svg.gz +0 -0
  128. package/build/client/manifest.webmanifest +1 -0
  129. package/build/client/pwa-192x192.png +0 -0
  130. package/build/client/pwa-512x512.png +0 -0
  131. package/build/client/registerSW.js +1 -0
  132. package/build/client/registerSW.js.br +0 -0
  133. package/build/client/registerSW.js.gz +0 -0
  134. package/build/client/sw.js +222 -0
  135. package/build/client/sw.js.br +0 -0
  136. package/build/client/sw.js.gz +0 -0
  137. package/build/client/workbox-5119daf5.js +3395 -0
  138. package/build/client/workbox-5119daf5.js.br +0 -0
  139. package/build/client/workbox-5119daf5.js.gz +0 -0
  140. package/build/env.js +94 -0
  141. package/build/handler.js +1494 -0
  142. package/build/index.js +345 -0
  143. package/build/pty-holder.cjs +510 -0
  144. package/build/server/chunks/0-q2IUp76Y.js +9 -0
  145. package/build/server/chunks/0-q2IUp76Y.js.map +1 -0
  146. package/build/server/chunks/1-CU50G5wZ.js +9 -0
  147. package/build/server/chunks/1-CU50G5wZ.js.map +1 -0
  148. package/build/server/chunks/2-D01t9s8T.js +9 -0
  149. package/build/server/chunks/2-D01t9s8T.js.map +1 -0
  150. package/build/server/chunks/3-5PUQ04wC.js +9 -0
  151. package/build/server/chunks/3-5PUQ04wC.js.map +1 -0
  152. package/build/server/chunks/4-e7gywnSG.js +9 -0
  153. package/build/server/chunks/4-e7gywnSG.js.map +1 -0
  154. package/build/server/chunks/5-CA1SA6KZ.js +9 -0
  155. package/build/server/chunks/5-CA1SA6KZ.js.map +1 -0
  156. package/build/server/chunks/6-71H221sV.js +9 -0
  157. package/build/server/chunks/6-71H221sV.js.map +1 -0
  158. package/build/server/chunks/7-Bo-vmdyz.js +9 -0
  159. package/build/server/chunks/7-Bo-vmdyz.js.map +1 -0
  160. package/build/server/chunks/_layout.svelte-SFHOxs74.js +132 -0
  161. package/build/server/chunks/_layout.svelte-SFHOxs74.js.map +1 -0
  162. package/build/server/chunks/_page.svelte-B4w-2wD-.js +120 -0
  163. package/build/server/chunks/_page.svelte-B4w-2wD-.js.map +1 -0
  164. package/build/server/chunks/_page.svelte-B_qAXjkh.js +213 -0
  165. package/build/server/chunks/_page.svelte-B_qAXjkh.js.map +1 -0
  166. package/build/server/chunks/_page.svelte-CsF1_TRG.js +50 -0
  167. package/build/server/chunks/_page.svelte-CsF1_TRG.js.map +1 -0
  168. package/build/server/chunks/_page.svelte-DJC6U-P0.js +68 -0
  169. package/build/server/chunks/_page.svelte-DJC6U-P0.js.map +1 -0
  170. package/build/server/chunks/_page.svelte-DQ6HBtsz.js +407 -0
  171. package/build/server/chunks/_page.svelte-DQ6HBtsz.js.map +1 -0
  172. package/build/server/chunks/_page.svelte-LbhhjP21.js +148 -0
  173. package/build/server/chunks/_page.svelte-LbhhjP21.js.map +1 -0
  174. package/build/server/chunks/_server.ts-BL2FGb5Z.js +387 -0
  175. package/build/server/chunks/_server.ts-BL2FGb5Z.js.map +1 -0
  176. package/build/server/chunks/_server.ts-BgdjBZco.js +47 -0
  177. package/build/server/chunks/_server.ts-BgdjBZco.js.map +1 -0
  178. package/build/server/chunks/_server.ts-BihKSdj_.js +59 -0
  179. package/build/server/chunks/_server.ts-BihKSdj_.js.map +1 -0
  180. package/build/server/chunks/_server.ts-BjOJsoy4.js +63 -0
  181. package/build/server/chunks/_server.ts-BjOJsoy4.js.map +1 -0
  182. package/build/server/chunks/_server.ts-C29xzfaw.js +77 -0
  183. package/build/server/chunks/_server.ts-C29xzfaw.js.map +1 -0
  184. package/build/server/chunks/_server.ts-CPa6DgIt.js +71 -0
  185. package/build/server/chunks/_server.ts-CPa6DgIt.js.map +1 -0
  186. package/build/server/chunks/_server.ts-CbDRDIoP.js +36 -0
  187. package/build/server/chunks/_server.ts-CbDRDIoP.js.map +1 -0
  188. package/build/server/chunks/_server.ts-Cl1OEWL4.js +54 -0
  189. package/build/server/chunks/_server.ts-Cl1OEWL4.js.map +1 -0
  190. package/build/server/chunks/_server.ts-ColfDHW8.js +60 -0
  191. package/build/server/chunks/_server.ts-ColfDHW8.js.map +1 -0
  192. package/build/server/chunks/_server.ts-Cv_OrRuL.js +494 -0
  193. package/build/server/chunks/_server.ts-Cv_OrRuL.js.map +1 -0
  194. package/build/server/chunks/_server.ts-D4MNi4cD.js +25 -0
  195. package/build/server/chunks/_server.ts-D4MNi4cD.js.map +1 -0
  196. package/build/server/chunks/_server.ts-DRVbgm6k.js +125 -0
  197. package/build/server/chunks/_server.ts-DRVbgm6k.js.map +1 -0
  198. package/build/server/chunks/_server.ts-DfajWaqh.js +39 -0
  199. package/build/server/chunks/_server.ts-DfajWaqh.js.map +1 -0
  200. package/build/server/chunks/_server.ts-y9-WYDMa.js +35 -0
  201. package/build/server/chunks/_server.ts-y9-WYDMa.js.map +1 -0
  202. package/build/server/chunks/auth-CEgFis71.js +32 -0
  203. package/build/server/chunks/auth-CEgFis71.js.map +1 -0
  204. package/build/server/chunks/client-CxCatAKr.js +255 -0
  205. package/build/server/chunks/client-CxCatAKr.js.map +1 -0
  206. package/build/server/chunks/error.svelte-BqdwMWdK.js +26 -0
  207. package/build/server/chunks/error.svelte-BqdwMWdK.js.map +1 -0
  208. package/build/server/chunks/exports-CJ0Q5XmL.js +4081 -0
  209. package/build/server/chunks/exports-CJ0Q5XmL.js.map +1 -0
  210. package/build/server/chunks/index2-DAxIoAO-.js +36 -0
  211. package/build/server/chunks/index2-DAxIoAO-.js.map +1 -0
  212. package/build/server/chunks/jsonl-parser-dmZU_Hyu.js +137 -0
  213. package/build/server/chunks/jsonl-parser-dmZU_Hyu.js.map +1 -0
  214. package/build/server/chunks/library-apns-BHxLmuIx.js +104 -0
  215. package/build/server/chunks/library-apns-BHxLmuIx.js.map +1 -0
  216. package/build/server/chunks/markdown-Bxrl3cCF.js +1241 -0
  217. package/build/server/chunks/markdown-Bxrl3cCF.js.map +1 -0
  218. package/build/server/chunks/pending-requests-D8UiTw7L.js +44 -0
  219. package/build/server/chunks/pending-requests-D8UiTw7L.js.map +1 -0
  220. package/build/server/chunks/pty-manager-C0FhBiVq.js +1697 -0
  221. package/build/server/chunks/pty-manager-C0FhBiVq.js.map +1 -0
  222. package/build/server/chunks/shared-server-BDY8jh20.js +200 -0
  223. package/build/server/chunks/shared-server-BDY8jh20.js.map +1 -0
  224. package/build/server/chunks/stores-D0HorpgL.js +36 -0
  225. package/build/server/chunks/stores-D0HorpgL.js.map +1 -0
  226. package/build/server/index.js +6466 -0
  227. package/build/server/index.js.map +1 -0
  228. package/build/server/manifest.js +184 -0
  229. package/build/server/manifest.js.map +1 -0
  230. package/build/shims.js +32 -0
  231. package/package.json +94 -0
  232. package/scripts/clipboard-shims/wl-paste +48 -0
  233. package/scripts/clipboard-shims/xclip +31 -0
  234. package/scripts/install.sh +477 -0
  235. package/scripts/setup-node-pty.sh +63 -0
  236. package/scripts/setup.cjs +571 -0
  237. package/scripts/test-runner.ts +243 -0
  238. package/scripts/vercel-env-commands.sh +60 -0
  239. package/server.ts +139 -0
  240. package/src/app.css +1835 -0
  241. package/src/app.d.ts +31 -0
  242. package/src/app.html +24 -0
  243. package/src/generated/types/APN.ts +305 -0
  244. package/src/generated/types/CLI.ts +52 -0
  245. package/src/generated/types/JWT.ts +92 -0
  246. package/src/generated/types/Terminal.ts +2736 -0
  247. package/src/generated/types/index.ts +6 -0
  248. package/src/lib/assets/icons/alert-triangle.svg +5 -0
  249. package/src/lib/assets/icons/bell.svg +4 -0
  250. package/src/lib/assets/icons/check-circle.svg +4 -0
  251. package/src/lib/assets/icons/file.svg +4 -0
  252. package/src/lib/assets/icons/folder.svg +3 -0
  253. package/src/lib/assets/icons/play.svg +3 -0
  254. package/src/lib/assets/icons/refresh.svg +4 -0
  255. package/src/lib/assets/icons/settings.svg +4 -0
  256. package/src/lib/assets/icons/terminal.svg +1 -0
  257. package/src/lib/assets/icons/tool.svg +3 -0
  258. package/src/lib/assets/icons/x-circle.svg +5 -0
  259. package/src/lib/modules/client/common/Card.svelte +26 -0
  260. package/src/lib/modules/client/common/EmptyState.svelte +36 -0
  261. package/src/lib/modules/client/common/Icon.svelte +61 -0
  262. package/src/lib/modules/client/common/StatusBadge.svelte +38 -0
  263. package/src/lib/modules/client/common/cache.ts +31 -0
  264. package/src/lib/modules/client/common/config-guard.ts +18 -0
  265. package/src/lib/modules/client/common/index.ts +12 -0
  266. package/src/lib/modules/client/common/markdown.ts +23 -0
  267. package/src/lib/modules/client/common/native-bridge.ts +50 -0
  268. package/src/lib/modules/client/common/time.ts +22 -0
  269. package/src/lib/modules/client/common/tool-title.ts +28 -0
  270. package/src/lib/modules/client/terminal/ChatView.svelte +400 -0
  271. package/src/lib/modules/client/terminal/CommandPalette.svelte +60 -0
  272. package/src/lib/modules/client/terminal/ConnectionStatus.svelte +99 -0
  273. package/src/lib/modules/client/terminal/LaunchSheet.svelte +294 -0
  274. package/src/lib/modules/client/terminal/QuickKeys.svelte +71 -0
  275. package/src/lib/modules/client/terminal/ShortcutsHelp.svelte +79 -0
  276. package/src/lib/modules/client/terminal/keyboard-shortcuts.ts +70 -0
  277. package/src/lib/modules/client/terminal/xterm-wrapper.ts +243 -0
  278. package/src/lib/modules/server/apn/library-apns.ts +137 -0
  279. package/src/lib/modules/server/apn/notification-history.ts +35 -0
  280. package/src/lib/modules/server/apn/notification-sessions.ts +117 -0
  281. package/src/lib/modules/server/apn/pending-requests.ts +65 -0
  282. package/src/lib/modules/server/apn/types.ts +51 -0
  283. package/src/lib/modules/server/auth.ts +34 -0
  284. package/src/lib/modules/server/cli/index.ts +79 -0
  285. package/src/lib/modules/server/cli/runner.ts +162 -0
  286. package/src/lib/modules/server/fcm/fcm-service.ts +72 -0
  287. package/src/lib/modules/server/sessions/jsonl-parser.ts +197 -0
  288. package/src/lib/modules/server/sessions/jsonl-reader.ts +301 -0
  289. package/src/lib/modules/server/sessions/opencode-reader.ts +264 -0
  290. package/src/lib/modules/server/sessions/types.ts +53 -0
  291. package/src/lib/modules/server/terminal/holder-client.ts +273 -0
  292. package/src/lib/modules/server/terminal/opencode-watcher.ts +661 -0
  293. package/src/lib/modules/server/terminal/pty-holder.cjs +510 -0
  294. package/src/lib/modules/server/terminal/pty-manager.ts +1012 -0
  295. package/src/lib/modules/server/terminal/session-watcher.ts +320 -0
  296. package/src/lib/modules/server/terminal/terminal-store.ts +198 -0
  297. package/src/lib/modules/server/ws/events-handler.ts +73 -0
  298. package/src/lib/modules/server/ws/keepalive.ts +108 -0
  299. package/src/lib/modules/server/ws/server.ts +93 -0
  300. package/src/lib/modules/server/ws/session-handler.ts +462 -0
  301. package/src/lib/modules/server/ws/terminal-handler.ts +197 -0
  302. package/src/lib/modules/server/ws/ticket-store.ts +58 -0
  303. package/src/lib/theme.css +529 -0
  304. package/src/lib/types/config.ts +6 -0
  305. package/src/routes/+layout.svelte +218 -0
  306. package/src/routes/+page.svelte +261 -0
  307. package/src/routes/api/debug/+server.ts +33 -0
  308. package/src/routes/api/device-token/+server.ts +85 -0
  309. package/src/routes/api/health/+server.ts +100 -0
  310. package/src/routes/api/notify/+server.ts +418 -0
  311. package/src/routes/api/qr-config/+server.ts +45 -0
  312. package/src/routes/api/response/+server.ts +73 -0
  313. package/src/routes/api/sessions/+server.ts +120 -0
  314. package/src/routes/api/terminals/+server.ts +141 -0
  315. package/src/routes/api/terminals/[id]/+server.ts +75 -0
  316. package/src/routes/api/terminals/[id]/paste-image/+server.ts +61 -0
  317. package/src/routes/api/terminals/[id]/resize/+server.ts +60 -0
  318. package/src/routes/api/webhook/+server.ts +42 -0
  319. package/src/routes/api/ws-status/+server.ts +23 -0
  320. package/src/routes/api/ws-ticket/+server.ts +86 -0
  321. package/src/routes/config/+page.svelte +600 -0
  322. package/src/routes/project/+page.svelte +274 -0
  323. package/src/routes/session/[id]/+page.svelte +434 -0
  324. package/src/routes/terminals/+page.svelte +618 -0
  325. package/src/routes/terminals/[id]/+page.svelte +968 -0
  326. package/svelte.config.js +18 -0
  327. package/tsconfig.json +14 -0
@@ -0,0 +1,1241 @@
1
+ import { aE as attr_class, aG as escape_html, aJ as attr, aL as bind_props, aM as ssr_context, aC as stringify, aN as hash, aO as attr_style, aI as ensure_array_like, M as prevent_snippet_stringification, aP as spread_props, aQ as clsx, J as FILENAME } from './exports-CJ0Q5XmL.js';
2
+ import { p as push_element, a as pop_element } from './client-CxCatAKr.js';
3
+ import 'dompurify';
4
+ import { marked } from 'marked';
5
+
6
+ function html(value) {
7
+ var html2 = String(value ?? "");
8
+ var open = `<!--${hash(html2)}-->`;
9
+ return open + html2 + "<!---->";
10
+ }
11
+ function onDestroy(fn) {
12
+ /** @type {SSRContext} */
13
+ ssr_context.r.on_destroy(fn);
14
+ }
15
+ ModalAnimation[FILENAME] = "node_modules/.pnpm/@juspay+svelte-ui-components@2.13.1_svelte@5.49.1_type-decoder@2.2.0/node_modules/@juspay/svelte-ui-components/dist/Animations/ModalAnimation.svelte";
16
+ function ModalAnimation($$renderer, $$props) {
17
+ $$renderer.component(
18
+ ($$renderer2) => {
19
+ let {
20
+ enable = true,
21
+ align = "bottom",
22
+ transitionType = "ALL",
23
+ children
24
+ } = $$props;
25
+ let useFlyAnimation = align === "top" || align === "bottom";
26
+ let useOutTransition = transitionType === "ALL";
27
+ if (enable) {
28
+ $$renderer2.push("<!--[-->");
29
+ if (useFlyAnimation && useOutTransition) {
30
+ $$renderer2.push("<!--[-->");
31
+ $$renderer2.push(`<div>`);
32
+ push_element($$renderer2, "div", 37, 4);
33
+ children?.($$renderer2);
34
+ $$renderer2.push(`<!----></div>`);
35
+ pop_element();
36
+ } else {
37
+ $$renderer2.push("<!--[!-->");
38
+ if (useFlyAnimation) {
39
+ $$renderer2.push("<!--[-->");
40
+ $$renderer2.push(`<div>`);
41
+ push_element($$renderer2, "div", 41, 4);
42
+ children?.($$renderer2);
43
+ $$renderer2.push(`<!----></div>`);
44
+ pop_element();
45
+ } else {
46
+ $$renderer2.push("<!--[!-->");
47
+ if (useOutTransition) {
48
+ $$renderer2.push("<!--[-->");
49
+ $$renderer2.push(`<div>`);
50
+ push_element($$renderer2, "div", 45, 4);
51
+ children?.($$renderer2);
52
+ $$renderer2.push(`<!----></div>`);
53
+ pop_element();
54
+ } else {
55
+ $$renderer2.push("<!--[!-->");
56
+ $$renderer2.push(`<div>`);
57
+ push_element($$renderer2, "div", 49, 4);
58
+ children?.($$renderer2);
59
+ $$renderer2.push(`<!----></div>`);
60
+ pop_element();
61
+ }
62
+ $$renderer2.push(`<!--]-->`);
63
+ }
64
+ $$renderer2.push(`<!--]-->`);
65
+ }
66
+ $$renderer2.push(`<!--]-->`);
67
+ } else {
68
+ $$renderer2.push("<!--[!-->");
69
+ children?.($$renderer2);
70
+ $$renderer2.push(`<!---->`);
71
+ }
72
+ $$renderer2.push(`<!--]-->`);
73
+ },
74
+ ModalAnimation
75
+ );
76
+ }
77
+ ModalAnimation.render = function() {
78
+ throw new Error("Component.render(...) is no longer valid in Svelte 5. See https://svelte.dev/docs/svelte/v5-migration-guide#Components-are-no-longer-classes for more information");
79
+ };
80
+ OverlayAnimation[FILENAME] = "node_modules/.pnpm/@juspay+svelte-ui-components@2.13.1_svelte@5.49.1_type-decoder@2.2.0/node_modules/@juspay/svelte-ui-components/dist/Animations/OverlayAnimation.svelte";
81
+ function OverlayAnimation($$renderer, $$props) {
82
+ $$renderer.component(
83
+ ($$renderer2) => {
84
+ let { children } = $$props;
85
+ $$renderer2.push(`<div>`);
86
+ push_element($$renderer2, "div", 12, 0);
87
+ children?.($$renderer2);
88
+ $$renderer2.push(`<!----></div>`);
89
+ pop_element();
90
+ },
91
+ OverlayAnimation
92
+ );
93
+ }
94
+ OverlayAnimation.render = function() {
95
+ throw new Error("Component.render(...) is no longer valid in Svelte 5. See https://svelte.dev/docs/svelte/v5-migration-guide#Components-are-no-longer-classes for more information");
96
+ };
97
+ function validateInput(inputValue, dataType, validPattern, inProgressPattern, customValidators) {
98
+ let validationResult = "Valid";
99
+ switch (dataType) {
100
+ case "email":
101
+ validationResult = validateEmailInput(inputValue);
102
+ break;
103
+ case "tel":
104
+ validationResult = validPattern === null ? validatePhoneNumber(inputValue) : validateTextWithPattern(inputValue, validPattern, inProgressPattern);
105
+ break;
106
+ case "password":
107
+ validationResult = validatePassword(inputValue, validPattern, inProgressPattern);
108
+ break;
109
+ case "text":
110
+ validationResult = validateTextWithPattern(inputValue, validPattern, inProgressPattern);
111
+ break;
112
+ }
113
+ customValidators.forEach((validator) => {
114
+ const currentResult = validator(inputValue, validationResult);
115
+ if (currentResult === "Invalid") {
116
+ validationResult = "Invalid";
117
+ } else if (currentResult === "InProgress") {
118
+ validationResult = "InProgress";
119
+ } else {
120
+ validationResult = validationResult === "Valid" && currentResult === "Valid" ? "Valid" : validationResult;
121
+ }
122
+ });
123
+ return validationResult;
124
+ }
125
+ function validateTextWithPattern(inputValue, validationPattern, inProgressPattern) {
126
+ if (validationPattern !== null) {
127
+ if (validationPattern.test(inputValue)) {
128
+ return "Valid";
129
+ } else if (inProgressPattern !== null && inProgressPattern.test(inputValue) || inputValue.length === 0) {
130
+ return "InProgress";
131
+ } else {
132
+ return "Invalid";
133
+ }
134
+ }
135
+ return "Valid";
136
+ }
137
+ function validatePassword(password, validationPattern, inProgressPattern) {
138
+ if (validationPattern !== null) {
139
+ if (validationPattern.test(password)) {
140
+ return "Valid";
141
+ } else if (inProgressPattern !== null && inProgressPattern.test(password) && password.length === 0) {
142
+ return "InProgress";
143
+ } else {
144
+ return "Invalid";
145
+ }
146
+ }
147
+ return "Valid";
148
+ }
149
+ function validateEmailInput(emailId) {
150
+ try {
151
+ const validPattern = new RegExp(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/);
152
+ const inProgressPattern = new RegExp(/[^ ]{1,}[\w0-9.,_,@]{0,}/);
153
+ if (validPattern.test(emailId)) {
154
+ return "Valid";
155
+ } else if (inProgressPattern.test(emailId) || emailId.length === 0) {
156
+ return "InProgress";
157
+ } else {
158
+ return "Invalid";
159
+ }
160
+ } catch (e) {
161
+ console.error("Email Regex creation failed: ", e);
162
+ }
163
+ return "Valid";
164
+ }
165
+ function validatePhoneNumber(phoneNumber) {
166
+ try {
167
+ const validationPattern = new RegExp("^[6-9]{1}[0-9]{9}$");
168
+ const inProgressPattern = new RegExp("^[6-9]{1}[0-9]{0,9}$");
169
+ if (validationPattern.test(phoneNumber)) {
170
+ return "Valid";
171
+ } else if (inProgressPattern.test(phoneNumber) || phoneNumber.length === 0) {
172
+ return "InProgress";
173
+ } else {
174
+ return "Invalid";
175
+ }
176
+ } catch (e) {
177
+ console.error("Phone Regex creation failed", e);
178
+ }
179
+ return phoneNumber.length === 10 ? "Valid" : phoneNumber.length > 10 ? "InProgress" : "Invalid";
180
+ }
181
+ Loader[FILENAME] = "node_modules/.pnpm/@juspay+svelte-ui-components@2.13.1_svelte@5.49.1_type-decoder@2.2.0/node_modules/@juspay/svelte-ui-components/dist/Loader/Loader.svelte";
182
+ function Loader($$renderer, $$props) {
183
+ $$renderer.component(
184
+ ($$renderer2) => {
185
+ let { classes } = $$props;
186
+ $$renderer2.push(`<div${attr_class(`loader ${stringify(classes ?? "")}`, "svelte-c8sjvm")}>`);
187
+ push_element($$renderer2, "div", 7, 0);
188
+ $$renderer2.push(`</div>`);
189
+ pop_element();
190
+ },
191
+ Loader
192
+ );
193
+ }
194
+ Loader.render = function() {
195
+ throw new Error("Component.render(...) is no longer valid in Svelte 5. See https://svelte.dev/docs/svelte/v5-migration-guide#Components-are-no-longer-classes for more information");
196
+ };
197
+ Button[FILENAME] = "node_modules/.pnpm/@juspay+svelte-ui-components@2.13.1_svelte@5.49.1_type-decoder@2.2.0/node_modules/@juspay/svelte-ui-components/dist/Button/Button.svelte";
198
+ function Button($$renderer, $$props) {
199
+ $$renderer.component(
200
+ ($$renderer2) => {
201
+ let {
202
+ text,
203
+ enable = true,
204
+ disabled = false,
205
+ showLoader = false,
206
+ loaderType,
207
+ type = "button",
208
+ testId,
209
+ ariaLabel,
210
+ ariaExpanded,
211
+ onclick,
212
+ onkeyup = () => {
213
+ },
214
+ showProgressBar = false,
215
+ icon,
216
+ children,
217
+ classes
218
+ } = $$props;
219
+ let isDisabled = !enable || disabled || showLoader;
220
+ $$renderer2.push(`<div${attr_class(`button-container ${stringify(classes ?? "")}`, "svelte-1bkokxo")}>`);
221
+ push_element($$renderer2, "div", 36, 0);
222
+ if (showProgressBar) {
223
+ $$renderer2.push("<!--[-->");
224
+ $$renderer2.push(`<div class="button-progress-bar svelte-1bkokxo">`);
225
+ push_element($$renderer2, "div", 38, 4);
226
+ $$renderer2.push(`</div>`);
227
+ pop_element();
228
+ } else {
229
+ $$renderer2.push("<!--[!-->");
230
+ }
231
+ $$renderer2.push(`<!--]--> <button${attr("disabled", isDisabled, true)}${attr("type", type)}${attr("data-pw", testId)}${attr("aria-label", ariaLabel)}${attr("aria-expanded", ariaExpanded)}${attr_class("svelte-1bkokxo", void 0, { "disabled": isDisabled })}>`);
232
+ push_element($$renderer2, "button", 40, 2);
233
+ if (showLoader && loaderType === "Circular") {
234
+ $$renderer2.push("<!--[-->");
235
+ $$renderer2.push(`<div class="button-loader svelte-1bkokxo">`);
236
+ push_element($$renderer2, "div", 51, 6);
237
+ Loader($$renderer2, {});
238
+ $$renderer2.push(`<!----></div>`);
239
+ pop_element();
240
+ } else {
241
+ $$renderer2.push("<!--[!-->");
242
+ }
243
+ $$renderer2.push(`<!--]--> `);
244
+ if (typeof icon === "function") {
245
+ $$renderer2.push("<!--[-->");
246
+ $$renderer2.push(`<div class="button-icon svelte-1bkokxo">`);
247
+ push_element($$renderer2, "div", 54, 6);
248
+ icon($$renderer2);
249
+ $$renderer2.push(`<!----></div>`);
250
+ pop_element();
251
+ } else {
252
+ $$renderer2.push("<!--[!-->");
253
+ }
254
+ $$renderer2.push(`<!--]--> `);
255
+ if (typeof text === "string" && text.length > 0) {
256
+ $$renderer2.push("<!--[-->");
257
+ $$renderer2.push(`<div class="button-text svelte-1bkokxo">`);
258
+ push_element($$renderer2, "div", 58, 6);
259
+ $$renderer2.push(`${html(text)}</div>`);
260
+ pop_element();
261
+ } else {
262
+ $$renderer2.push("<!--[!-->");
263
+ }
264
+ $$renderer2.push(`<!--]--> `);
265
+ if (typeof children === "function") {
266
+ $$renderer2.push("<!--[-->");
267
+ children($$renderer2);
268
+ $$renderer2.push(`<!---->`);
269
+ } else {
270
+ $$renderer2.push("<!--[!-->");
271
+ }
272
+ $$renderer2.push(`<!--]--></button>`);
273
+ pop_element();
274
+ $$renderer2.push(`</div>`);
275
+ pop_element();
276
+ bind_props($$props, { showProgressBar });
277
+ },
278
+ Button
279
+ );
280
+ }
281
+ Button.render = function() {
282
+ throw new Error("Component.render(...) is no longer valid in Svelte 5. See https://svelte.dev/docs/svelte/v5-migration-guide#Components-are-no-longer-classes for more information");
283
+ };
284
+ Modal[FILENAME] = "node_modules/.pnpm/@juspay+svelte-ui-components@2.13.1_svelte@5.49.1_type-decoder@2.2.0/node_modules/@juspay/svelte-ui-components/dist/Modal/Modal.svelte";
285
+ function Modal($$renderer, $$props) {
286
+ $$renderer.component(
287
+ ($$renderer2) => {
288
+ let backPressed = false;
289
+ let {
290
+ size = "fit-content",
291
+ align = "center",
292
+ showOverlay = true,
293
+ supportHardwareBackPress = false,
294
+ enableTransition = true,
295
+ transitionType = "ALL",
296
+ header = {},
297
+ footer,
298
+ debounceTime = 700,
299
+ leftImageTestId,
300
+ testId,
301
+ content,
302
+ footerSnippet,
303
+ onclose,
304
+ onheaderRightImageClick,
305
+ onheaderLeftImageClick,
306
+ onprimaryButtonClick,
307
+ onsecondaryButtonClick,
308
+ onoverlayClick,
309
+ onkeydown,
310
+ classes
311
+ } = $$props;
312
+ function handlePopstate() {
313
+ backPressed = true;
314
+ onclose?.();
315
+ }
316
+ function handlePrimaryButtonClick(event) {
317
+ onprimaryButtonClick?.(event);
318
+ }
319
+ function handleSecondaryButtonClick(event) {
320
+ onsecondaryButtonClick?.(event);
321
+ }
322
+ onDestroy(() => {
323
+ if (typeof window !== "undefined") {
324
+ document.body.style.overflow = "";
325
+ if (supportHardwareBackPress) {
326
+ if (!backPressed) {
327
+ history.back();
328
+ }
329
+ window.removeEventListener("popstate", handlePopstate);
330
+ }
331
+ }
332
+ });
333
+ if (typeof content === "function") {
334
+ $$renderer2.push("<!--[-->");
335
+ OverlayAnimation($$renderer2, {
336
+ children: prevent_snippet_stringification(($$renderer3) => {
337
+ $$renderer3.push(`<div${attr_class(`modal ${stringify(align)} ${stringify(showOverlay ? "overlay-active" : "overlay-inactive")} ${stringify(classes ?? "")}`, "svelte-9ivi3e")} role="button" tabindex="0"${attr("data-pw", testId)}>`);
338
+ push_element($$renderer3, "div", 100, 4);
339
+ ModalAnimation($$renderer3, {
340
+ enable: enableTransition,
341
+ align,
342
+ transitionType,
343
+ children: prevent_snippet_stringification(($$renderer4) => {
344
+ $$renderer4.push(`<div${attr_class(`modal-content ${stringify(size)}`, "svelte-9ivi3e")}>`);
345
+ push_element($$renderer4, "div", 110, 8);
346
+ if (typeof header?.leftImage === "string" && header.leftImage.length > 0 || typeof header?.text === "string" && header.text.length > 0 || typeof header?.rightImage === "string" && header.rightImage.length > 0) {
347
+ $$renderer4.push("<!--[-->");
348
+ $$renderer4.push(`<div class="header svelte-9ivi3e">`);
349
+ push_element($$renderer4, "div", 112, 12);
350
+ if (header.leftImage) {
351
+ $$renderer4.push("<!--[-->");
352
+ $$renderer4.push(`<div role="button" tabindex="0"${attr("data-pw", leftImageTestId)}>`);
353
+ push_element($$renderer4, "div", 114, 16);
354
+ $$renderer4.push(`<img class="header-left-img svelte-9ivi3e"${attr("src", header.leftImage)} alt=""/>`);
355
+ push_element($$renderer4, "img", 121, 18);
356
+ pop_element();
357
+ $$renderer4.push(`</div>`);
358
+ pop_element();
359
+ } else {
360
+ $$renderer4.push("<!--[!-->");
361
+ }
362
+ $$renderer4.push(`<!--]--> `);
363
+ if (header.text) {
364
+ $$renderer4.push("<!--[-->");
365
+ $$renderer4.push(`<div class="header-text svelte-9ivi3e"${attr("data-pw", header.testId)}>`);
366
+ push_element($$renderer4, "div", 125, 16);
367
+ $$renderer4.push(`${escape_html(header.text)}</div>`);
368
+ pop_element();
369
+ } else {
370
+ $$renderer4.push("<!--[!-->");
371
+ }
372
+ $$renderer4.push(`<!--]--> `);
373
+ if (header.rightImage) {
374
+ $$renderer4.push("<!--[-->");
375
+ $$renderer4.push(`<div role="button" tabindex="0"${attr("data-pw", header.buttonTestId)}>`);
376
+ push_element($$renderer4, "div", 130, 16);
377
+ $$renderer4.push(`<img class="header-right-img svelte-9ivi3e"${attr("src", header.rightImage)} alt=""/>`);
378
+ push_element($$renderer4, "img", 137, 18);
379
+ pop_element();
380
+ $$renderer4.push(`</div>`);
381
+ pop_element();
382
+ } else {
383
+ $$renderer4.push("<!--[!-->");
384
+ }
385
+ $$renderer4.push(`<!--]--></div>`);
386
+ pop_element();
387
+ } else {
388
+ $$renderer4.push("<!--[!-->");
389
+ }
390
+ $$renderer4.push(`<!--]--> <div class="slot-content svelte-9ivi3e">`);
391
+ push_element($$renderer4, "div", 142, 10);
392
+ content?.($$renderer4);
393
+ $$renderer4.push(`<!----></div>`);
394
+ pop_element();
395
+ $$renderer4.push(` `);
396
+ if (typeof footerSnippet === "function") {
397
+ $$renderer4.push("<!--[-->");
398
+ $$renderer4.push(`<div class="footer-content svelte-9ivi3e">`);
399
+ push_element($$renderer4, "div", 146, 12);
400
+ footerSnippet?.($$renderer4);
401
+ $$renderer4.push(`<!----></div>`);
402
+ pop_element();
403
+ } else {
404
+ $$renderer4.push("<!--[!-->");
405
+ if (typeof footer?.primaryButton === "object" || typeof footer?.secondaryButton === "object") {
406
+ $$renderer4.push("<!--[-->");
407
+ $$renderer4.push(`<div class="footer-content svelte-9ivi3e">`);
408
+ push_element($$renderer4, "div", 150, 12);
409
+ $$renderer4.push(`<div class="footer-action-buttons svelte-9ivi3e">`);
410
+ push_element($$renderer4, "div", 151, 14);
411
+ if (footer.secondaryButton) {
412
+ $$renderer4.push("<!--[-->");
413
+ $$renderer4.push(`<div class="footer-secondary-button svelte-9ivi3e">`);
414
+ push_element($$renderer4, "div", 153, 18);
415
+ Button($$renderer4, spread_props([
416
+ footer.secondaryButton,
417
+ { onclick: handleSecondaryButtonClick }
418
+ ]));
419
+ $$renderer4.push(`<!----></div>`);
420
+ pop_element();
421
+ } else {
422
+ $$renderer4.push("<!--[!-->");
423
+ }
424
+ $$renderer4.push(`<!--]--> `);
425
+ if (footer.primaryButton) {
426
+ $$renderer4.push("<!--[-->");
427
+ $$renderer4.push(`<div class="footer-primary-button svelte-9ivi3e">`);
428
+ push_element($$renderer4, "div", 158, 18);
429
+ Button($$renderer4, spread_props([footer.primaryButton, { onclick: handlePrimaryButtonClick }]));
430
+ $$renderer4.push(`<!----></div>`);
431
+ pop_element();
432
+ } else {
433
+ $$renderer4.push("<!--[!-->");
434
+ }
435
+ $$renderer4.push(`<!--]--></div>`);
436
+ pop_element();
437
+ $$renderer4.push(`</div>`);
438
+ pop_element();
439
+ } else {
440
+ $$renderer4.push("<!--[!-->");
441
+ }
442
+ $$renderer4.push(`<!--]-->`);
443
+ }
444
+ $$renderer4.push(`<!--]--></div>`);
445
+ pop_element();
446
+ })
447
+ });
448
+ $$renderer3.push(`<!----></div>`);
449
+ pop_element();
450
+ })
451
+ });
452
+ } else {
453
+ $$renderer2.push("<!--[!-->");
454
+ }
455
+ $$renderer2.push(`<!--]-->`);
456
+ },
457
+ Modal
458
+ );
459
+ }
460
+ Modal.render = function() {
461
+ throw new Error("Component.render(...) is no longer valid in Svelte 5. See https://svelte.dev/docs/svelte/v5-migration-guide#Components-are-no-longer-classes for more information");
462
+ };
463
+ Input[FILENAME] = "node_modules/.pnpm/@juspay+svelte-ui-components@2.13.1_svelte@5.49.1_type-decoder@2.2.0/node_modules/@juspay/svelte-ui-components/dist/Input/Input.svelte";
464
+ function Input($$renderer, $$props) {
465
+ $$renderer.component(
466
+ ($$renderer2) => {
467
+ let {
468
+ value = "",
469
+ placeholder = "",
470
+ dataType = "text",
471
+ label = "",
472
+ onErrorMessage = "",
473
+ infoMessage = "",
474
+ validators = [],
475
+ disable = false,
476
+ validationPattern = null,
477
+ inProgressPattern = null,
478
+ addFocusColor = false,
479
+ maxLength = 1e3,
480
+ minLength = 0,
481
+ actionInput = false,
482
+ useTextArea = false,
483
+ autoComplete = "on",
484
+ name = "",
485
+ testId = "",
486
+ textTransformers = [],
487
+ textViewPresentation = [],
488
+ onFocus = () => {
489
+ },
490
+ onFocusout = () => {
491
+ },
492
+ onInput = () => {
493
+ },
494
+ onPaste = () => {
495
+ },
496
+ onStateChange = () => {
497
+ },
498
+ onClick = () => {
499
+ },
500
+ onKeyDown = () => {
501
+ },
502
+ classes
503
+ } = $$props;
504
+ function focus() {
505
+ try {
506
+ inputElement?.focus();
507
+ inputElement?.scrollIntoView({ behavior: "smooth", block: "center" });
508
+ } catch (error) {
509
+ console.error("Error focusing or scrolling inputElement:", error);
510
+ }
511
+ }
512
+ let inputElement = null;
513
+ let validationState = (() => {
514
+ const valueValidation = validateInput(value, dataType, validationPattern, inProgressPattern, validators);
515
+ if (valueValidation === "InProgress" && value.length > 0 && inputElement) ;
516
+ return valueValidation;
517
+ })();
518
+ const showErrorMessage = validationState === "Invalid";
519
+ (() => {
520
+ const state = validationState;
521
+ onStateChange(state);
522
+ return state;
523
+ })();
524
+ $$renderer2.push(`<div${attr_class(`input-container ${stringify(classes ?? "")}`, "svelte-1rv1bbi", { "input-error": validationState === "Invalid" && !actionInput })}>`);
525
+ push_element($$renderer2, "div", 175, 0);
526
+ if (typeof label === "string" && label !== "" && !actionInput) {
527
+ $$renderer2.push("<!--[-->");
528
+ $$renderer2.push(`<label class="label svelte-1rv1bbi"${attr("for", name)}>`);
529
+ push_element($$renderer2, "label", 180, 4);
530
+ $$renderer2.push(`${escape_html(label)}</label>`);
531
+ pop_element();
532
+ } else {
533
+ $$renderer2.push("<!--[!-->");
534
+ }
535
+ $$renderer2.push(`<!--]--> `);
536
+ if (useTextArea) {
537
+ $$renderer2.push("<!--[-->");
538
+ $$renderer2.push(`<textarea${attr("placeholder", placeholder)}${attr("autocomplete", autoComplete)}${attr("name", name)}${attr_style(`--focus-border: ${stringify(addFocusColor ? 1 : 0)}px;`)}${attr("disabled", disable, true)}${attr("maxlength", dataType === "tel" ? null : maxLength)}${attr("minlength", minLength)}${attr_class("svelte-1rv1bbi", void 0, { "action-input": actionInput })}>`);
539
+ push_element($$renderer2, "textarea", 187, 4);
540
+ const $$body = escape_html(value);
541
+ if ($$body) {
542
+ $$renderer2.push(`${$$body}`);
543
+ }
544
+ $$renderer2.push(`</textarea>`);
545
+ pop_element();
546
+ } else {
547
+ $$renderer2.push("<!--[!-->");
548
+ $$renderer2.push(`<input${attr("type", dataType)}${attr("value", value)}${attr("placeholder", placeholder)}${attr("autocomplete", autoComplete)}${attr("name", name)}${attr("data-pw", testId)}${attr("disabled", disable, true)}${attr("maxlength", dataType === "tel" ? null : maxLength)}${attr("minlength", minLength)}${attr_class("svelte-1rv1bbi", void 0, { "action-input": actionInput })}/>`);
549
+ push_element($$renderer2, "input", 206, 4);
550
+ pop_element();
551
+ }
552
+ $$renderer2.push(`<!--]--> `);
553
+ if (onErrorMessage !== "" && showErrorMessage && !actionInput) {
554
+ $$renderer2.push("<!--[-->");
555
+ $$renderer2.push(`<div class="error-message svelte-1rv1bbi">`);
556
+ push_element($$renderer2, "div", 228, 4);
557
+ $$renderer2.push(`${escape_html(onErrorMessage)}</div>`);
558
+ pop_element();
559
+ } else {
560
+ $$renderer2.push("<!--[!-->");
561
+ }
562
+ $$renderer2.push(`<!--]--> `);
563
+ if (infoMessage !== "" && !actionInput) {
564
+ $$renderer2.push("<!--[-->");
565
+ $$renderer2.push(`<div class="info-message svelte-1rv1bbi">`);
566
+ push_element($$renderer2, "div", 233, 4);
567
+ $$renderer2.push(`${escape_html(infoMessage)}</div>`);
568
+ pop_element();
569
+ } else {
570
+ $$renderer2.push("<!--[!-->");
571
+ }
572
+ $$renderer2.push(`<!--]--></div>`);
573
+ pop_element();
574
+ bind_props($$props, { value, focus });
575
+ },
576
+ Input
577
+ );
578
+ }
579
+ Input.render = function() {
580
+ throw new Error("Component.render(...) is no longer valid in Svelte 5. See https://svelte.dev/docs/svelte/v5-migration-guide#Components-are-no-longer-classes for more information");
581
+ };
582
+ Img[FILENAME] = "node_modules/.pnpm/@juspay+svelte-ui-components@2.13.1_svelte@5.49.1_type-decoder@2.2.0/node_modules/@juspay/svelte-ui-components/dist/Img/Img.svelte";
583
+ function Img($$renderer, $$props) {
584
+ $$renderer.component(
585
+ ($$renderer2) => {
586
+ let { src, alt, fallback, onerror, classes } = $$props;
587
+ let currentSrc = src;
588
+ $$renderer2.push(`<img${attr_class(clsx(classes ?? ""), "svelte-8j9okm")}${attr("src", currentSrc)}${attr("alt", alt)} onerror="this.__e=event"/>`);
589
+ push_element($$renderer2, "img", 17, 0);
590
+ pop_element();
591
+ },
592
+ Img
593
+ );
594
+ }
595
+ Img.render = function() {
596
+ throw new Error("Component.render(...) is no longer valid in Svelte 5. See https://svelte.dev/docs/svelte/v5-migration-guide#Components-are-no-longer-classes for more information");
597
+ };
598
+ const closeSvg = '<svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">\n <line x1="18" y1="6" x2="6" y2="18" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>\n <line x1="6" y1="6" x2="18" y2="18" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>\n</svg>\n';
599
+ Banner[FILENAME] = "node_modules/.pnpm/@juspay+svelte-ui-components@2.13.1_svelte@5.49.1_type-decoder@2.2.0/node_modules/@juspay/svelte-ui-components/dist/Banner/Banner.svelte";
600
+ function Banner($$renderer, $$props) {
601
+ $$renderer.component(
602
+ ($$renderer2) => {
603
+ let {
604
+ text,
605
+ icon,
606
+ linkText,
607
+ dismissible = false,
608
+ visible = true,
609
+ testId,
610
+ rightContent,
611
+ dismissIcon,
612
+ onclick,
613
+ ondismiss,
614
+ classes
615
+ } = $$props;
616
+ let interactive = typeof onclick === "function";
617
+ function handleDismiss(event) {
618
+ event.stopPropagation();
619
+ visible = false;
620
+ ondismiss?.();
621
+ }
622
+ if (visible) {
623
+ $$renderer2.push("<!--[-->");
624
+ $$renderer2.push(`<div${attr_class(`banner ${stringify(classes ?? "")}`, "svelte-1bchsow")}${attr("role", interactive ? "button" : null)}${attr("tabindex", interactive ? 0 : null)}${attr("data-pw", typeof testId === "string" ? testId : null)}>`);
625
+ push_element($$renderer2, "div", 45, 2);
626
+ if (typeof icon === "function") {
627
+ $$renderer2.push("<!--[-->");
628
+ $$renderer2.push(`<div class="banner-icon svelte-1bchsow">`);
629
+ push_element($$renderer2, "div", 55, 6);
630
+ icon($$renderer2);
631
+ $$renderer2.push(`<!----></div>`);
632
+ pop_element();
633
+ } else {
634
+ $$renderer2.push("<!--[!-->");
635
+ }
636
+ $$renderer2.push(`<!--]--> <div class="banner-text svelte-1bchsow">`);
637
+ push_element($$renderer2, "div", 59, 4);
638
+ $$renderer2.push(`${escape_html(text)} `);
639
+ if (typeof linkText === "string" && linkText.length > 0) {
640
+ $$renderer2.push("<!--[-->");
641
+ $$renderer2.push(`<span class="banner-link-text svelte-1bchsow">`);
642
+ push_element($$renderer2, "span", 62, 8);
643
+ $$renderer2.push(`${escape_html(linkText)}</span>`);
644
+ pop_element();
645
+ } else {
646
+ $$renderer2.push("<!--[!-->");
647
+ }
648
+ $$renderer2.push(`<!--]--></div>`);
649
+ pop_element();
650
+ $$renderer2.push(` `);
651
+ if (typeof rightContent === "function") {
652
+ $$renderer2.push("<!--[-->");
653
+ $$renderer2.push(`<div class="banner-right svelte-1bchsow">`);
654
+ push_element($$renderer2, "div", 66, 6);
655
+ rightContent($$renderer2);
656
+ $$renderer2.push(`<!----></div>`);
657
+ pop_element();
658
+ } else {
659
+ $$renderer2.push("<!--[!-->");
660
+ }
661
+ $$renderer2.push(`<!--]--> `);
662
+ if (dismissible) {
663
+ $$renderer2.push("<!--[-->");
664
+ $$renderer2.push(`<div class="banner-dismiss svelte-1bchsow">`);
665
+ push_element($$renderer2, "div", 71, 6);
666
+ Button($$renderer2, spread_props([
667
+ { onclick: handleDismiss, ariaLabel: "Dismiss" },
668
+ typeof testId === "string" ? { testId: `${testId}-dismiss` } : {},
669
+ {
670
+ children: prevent_snippet_stringification(($$renderer3) => {
671
+ if (typeof dismissIcon === "function") {
672
+ $$renderer3.push("<!--[-->");
673
+ dismissIcon($$renderer3);
674
+ $$renderer3.push(`<!---->`);
675
+ } else {
676
+ $$renderer3.push("<!--[!-->");
677
+ $$renderer3.push(`${html(closeSvg)}`);
678
+ }
679
+ $$renderer3.push(`<!--]-->`);
680
+ }),
681
+ $$slots: { default: true }
682
+ }
683
+ ]));
684
+ $$renderer2.push(`<!----></div>`);
685
+ pop_element();
686
+ } else {
687
+ $$renderer2.push("<!--[!-->");
688
+ }
689
+ $$renderer2.push(`<!--]--></div>`);
690
+ pop_element();
691
+ } else {
692
+ $$renderer2.push("<!--[!-->");
693
+ }
694
+ $$renderer2.push(`<!--]-->`);
695
+ bind_props($$props, { visible });
696
+ },
697
+ Banner
698
+ );
699
+ }
700
+ Banner.render = function() {
701
+ throw new Error("Component.render(...) is no longer valid in Svelte 5. See https://svelte.dev/docs/svelte/v5-migration-guide#Components-are-no-longer-classes for more information");
702
+ };
703
+ Step[FILENAME] = "node_modules/.pnpm/@juspay+svelte-ui-components@2.13.1_svelte@5.49.1_type-decoder@2.2.0/node_modules/@juspay/svelte-ui-components/dist/Stepper/Step.svelte";
704
+ function Step($$renderer, $$props) {
705
+ $$renderer.component(
706
+ ($$renderer2) => {
707
+ let { stepIndex, label, icon, classes, onclick, onkeydown } = $$props;
708
+ $$renderer2.push(`<div${attr_class(`step ${stringify(classes ?? "")}`, "svelte-1yxp7wt")} role="button" tabindex="0">`);
709
+ push_element($$renderer2, "div", 11, 0);
710
+ if (typeof icon === "string" && icon.length > 0) {
711
+ $$renderer2.push("<!--[-->");
712
+ $$renderer2.push(`<div class="step-icon-container">`);
713
+ push_element($$renderer2, "div", 13, 4);
714
+ $$renderer2.push(`<img class="step-icon"${attr("src", icon)} alt=""/>`);
715
+ push_element($$renderer2, "img", 14, 6);
716
+ pop_element();
717
+ $$renderer2.push(`</div>`);
718
+ pop_element();
719
+ } else {
720
+ $$renderer2.push("<!--[!-->");
721
+ $$renderer2.push(`<div class="step-index-container svelte-1yxp7wt">`);
722
+ push_element($$renderer2, "div", 17, 4);
723
+ $$renderer2.push(`<div class="step-index-text svelte-1yxp7wt">`);
724
+ push_element($$renderer2, "div", 18, 6);
725
+ $$renderer2.push(`${escape_html(stepIndex)}</div>`);
726
+ pop_element();
727
+ $$renderer2.push(`</div>`);
728
+ pop_element();
729
+ }
730
+ $$renderer2.push(`<!--]--> <div class="step-text svelte-1yxp7wt">`);
731
+ push_element($$renderer2, "div", 23, 2);
732
+ $$renderer2.push(`${escape_html(label)}</div>`);
733
+ pop_element();
734
+ $$renderer2.push(` <div class="separator svelte-1yxp7wt">`);
735
+ push_element($$renderer2, "div", 26, 2);
736
+ $$renderer2.push(`</div>`);
737
+ pop_element();
738
+ $$renderer2.push(`</div>`);
739
+ pop_element();
740
+ },
741
+ Step
742
+ );
743
+ }
744
+ Step.render = function() {
745
+ throw new Error("Component.render(...) is no longer valid in Svelte 5. See https://svelte.dev/docs/svelte/v5-migration-guide#Components-are-no-longer-classes for more information");
746
+ };
747
+ Stepper[FILENAME] = "node_modules/.pnpm/@juspay+svelte-ui-components@2.13.1_svelte@5.49.1_type-decoder@2.2.0/node_modules/@juspay/svelte-ui-components/dist/Stepper/Stepper.svelte";
748
+ function Stepper($$renderer, $$props) {
749
+ $$renderer.component(
750
+ ($$renderer2) => {
751
+ let { steps, currentStepIndex, classes, onhandleStepClick } = $$props;
752
+ $$renderer2.push(`<div${attr_class(`container ${stringify(classes ?? "")}`, "svelte-riuc26")}>`);
753
+ push_element($$renderer2, "div", 8, 0);
754
+ $$renderer2.push(`<!--[-->`);
755
+ const each_array = ensure_array_like(steps);
756
+ for (let stepIndex = 0, $$length = each_array.length; stepIndex < $$length; stepIndex++) {
757
+ let currentStep = each_array[stepIndex];
758
+ $$renderer2.push(`<div${attr_class("step-container svelte-riuc26", void 0, {
759
+ "active-step": currentStepIndex === stepIndex,
760
+ "completed-step": currentStepIndex > stepIndex
761
+ })}>`);
762
+ push_element($$renderer2, "div", 10, 4);
763
+ Step($$renderer2, {
764
+ onclick: onhandleStepClick,
765
+ label: currentStep.label,
766
+ icon: currentStep.icon,
767
+ stepIndex: stepIndex + 1
768
+ });
769
+ $$renderer2.push(`<!----></div>`);
770
+ pop_element();
771
+ }
772
+ $$renderer2.push(`<!--]--></div>`);
773
+ pop_element();
774
+ },
775
+ Stepper
776
+ );
777
+ }
778
+ Stepper.render = function() {
779
+ throw new Error("Component.render(...) is no longer valid in Svelte 5. See https://svelte.dev/docs/svelte/v5-migration-guide#Components-are-no-longer-classes for more information");
780
+ };
781
+ Shimmer[FILENAME] = "node_modules/.pnpm/@juspay+svelte-ui-components@2.13.1_svelte@5.49.1_type-decoder@2.2.0/node_modules/@juspay/svelte-ui-components/dist/Shimmer/Shimmer.svelte";
782
+ function Shimmer($$renderer, $$props) {
783
+ $$renderer.component(
784
+ ($$renderer2) => {
785
+ let { testId, classes } = $$props;
786
+ $$renderer2.push(`<div${attr_class(`shimmer ${stringify(classes ?? "")}`, "svelte-lqrqhi")}${attr("data-pw", typeof testId === "string" ? testId : null)}>`);
787
+ push_element($$renderer2, "div", 7, 0);
788
+ $$renderer2.push(`</div>`);
789
+ pop_element();
790
+ },
791
+ Shimmer
792
+ );
793
+ }
794
+ Shimmer.render = function() {
795
+ throw new Error("Component.render(...) is no longer valid in Svelte 5. See https://svelte.dev/docs/svelte/v5-migration-guide#Components-are-no-longer-classes for more information");
796
+ };
797
+ const SvelteMap = globalThis.Map;
798
+ KeyboardInput[FILENAME] = "node_modules/.pnpm/@juspay+svelte-ui-components@2.13.1_svelte@5.49.1_type-decoder@2.2.0/node_modules/@juspay/svelte-ui-components/dist/KeyboardInput/KeyboardInput.svelte";
799
+ function KeyboardInput($$renderer, $$props) {
800
+ $$renderer.component(
801
+ ($$renderer2) => {
802
+ let { keys, separator = "+", testId, onclick, classes } = $$props;
803
+ const KEY_SYMBOLS = {
804
+ cmd: "⌘",
805
+ command: "⌘",
806
+ ctrl: "⌃",
807
+ control: "⌃",
808
+ alt: "⌥",
809
+ option: "⌥",
810
+ shift: "⇧",
811
+ enter: "↵",
812
+ backspace: "⌫",
813
+ delete: "⌦",
814
+ tab: "⇥",
815
+ escape: "Esc",
816
+ esc: "Esc",
817
+ up: "↑",
818
+ down: "↓",
819
+ left: "←",
820
+ right: "→",
821
+ space: "␣"
822
+ };
823
+ let keyList = Array.isArray(keys) ? keys : keys.split(separator).map((k) => k.trim());
824
+ let interactive = typeof onclick === "function";
825
+ function getSymbol(key) {
826
+ return KEY_SYMBOLS[key.toLowerCase()] ?? key;
827
+ }
828
+ $$renderer2.push(`<span${attr_class(`keyboard-input ${stringify(classes ?? "")}`, "svelte-13eosom")}${attr("data-pw", typeof testId === "string" ? testId : null)}${attr("role", interactive ? "button" : null)}${attr("tabindex", interactive ? 0 : null)}>`);
829
+ push_element($$renderer2, "span", 43, 0);
830
+ $$renderer2.push(`<!--[-->`);
831
+ const each_array = ensure_array_like(keyList);
832
+ for (let i = 0, $$length = each_array.length; i < $$length; i++) {
833
+ let key = each_array[i];
834
+ if (i > 0) {
835
+ $$renderer2.push("<!--[-->");
836
+ $$renderer2.push(`<span class="separator svelte-13eosom">`);
837
+ push_element($$renderer2, "span", 53, 6);
838
+ $$renderer2.push(`${escape_html(separator)}</span>`);
839
+ pop_element();
840
+ } else {
841
+ $$renderer2.push("<!--[!-->");
842
+ }
843
+ $$renderer2.push(`<!--]--> <kbd class="key svelte-13eosom">`);
844
+ push_element($$renderer2, "kbd", 55, 4);
845
+ $$renderer2.push(`${escape_html(getSymbol(key))}</kbd>`);
846
+ pop_element();
847
+ }
848
+ $$renderer2.push(`<!--]--></span>`);
849
+ pop_element();
850
+ },
851
+ KeyboardInput
852
+ );
853
+ }
854
+ KeyboardInput.render = function() {
855
+ throw new Error("Component.render(...) is no longer valid in Svelte 5. See https://svelte.dev/docs/svelte/v5-migration-guide#Components-are-no-longer-classes for more information");
856
+ };
857
+ const searchSvg = '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg">\n <circle cx="11" cy="11" r="8"></circle>\n <line x1="21" y1="21" x2="16.65" y2="16.65"></line>\n</svg>\n';
858
+ CommandMenu[FILENAME] = "node_modules/.pnpm/@juspay+svelte-ui-components@2.13.1_svelte@5.49.1_type-decoder@2.2.0/node_modules/@juspay/svelte-ui-components/dist/CommandMenu/CommandMenu.svelte";
859
+ function CommandMenu($$renderer, $$props) {
860
+ $$renderer.component(
861
+ ($$renderer2) => {
862
+ let {
863
+ items,
864
+ open = false,
865
+ placeholder = "Search commands...",
866
+ emptyText = "No results found.",
867
+ testId,
868
+ itemIcon,
869
+ searchIcon,
870
+ onselect,
871
+ onclose,
872
+ classes
873
+ } = $$props;
874
+ let query = "";
875
+ let activeIndex = 0;
876
+ let filteredItems = (() => {
877
+ if (query.trim() === "") {
878
+ return items;
879
+ }
880
+ const lower = query.toLowerCase();
881
+ return items.filter((item) => item.label.toLowerCase().includes(lower));
882
+ })();
883
+ let groupedItems = (() => {
884
+ const groups = new SvelteMap();
885
+ for (const item of filteredItems) {
886
+ const group = item.group ?? "";
887
+ if (!groups.has(group)) {
888
+ groups.set(group, []);
889
+ }
890
+ const groupList = groups.get(group);
891
+ if (Array.isArray(groupList)) {
892
+ groupList.push(item);
893
+ }
894
+ }
895
+ return groups;
896
+ })();
897
+ let flatItems = (() => {
898
+ const result = [];
899
+ for (const [, groupItems] of groupedItems) {
900
+ for (const item of groupItems) {
901
+ result.push(item);
902
+ }
903
+ }
904
+ return result;
905
+ })();
906
+ let flatIndexLookup = (() => {
907
+ const map = new SvelteMap();
908
+ for (let i = 0; i < flatItems.length; i++) {
909
+ const item = flatItems.at(i);
910
+ if (typeof item === "object") {
911
+ map.set(item.value, i);
912
+ }
913
+ }
914
+ return map;
915
+ })();
916
+ function close() {
917
+ open = false;
918
+ query = "";
919
+ activeIndex = 0;
920
+ onclose?.();
921
+ }
922
+ function handleGlobalKeyDown(event) {
923
+ if ((event.metaKey || event.ctrlKey) && event.key === "k") {
924
+ event.preventDefault();
925
+ if (open) {
926
+ close();
927
+ } else {
928
+ open = true;
929
+ }
930
+ }
931
+ }
932
+ onDestroy(() => {
933
+ if (typeof window !== "undefined") {
934
+ document.body.style.overflow = "";
935
+ window.removeEventListener("keydown", handleGlobalKeyDown);
936
+ }
937
+ });
938
+ if (open) {
939
+ $$renderer2.push("<!--[-->");
940
+ $$renderer2.push(`<div${attr_class(`command-menu-overlay ${stringify(classes ?? "")}`, "svelte-9f9a")} role="dialog" aria-modal="true" aria-label="Command menu" tabindex="-1"${attr("data-pw", typeof testId === "string" ? testId : null)}>`);
941
+ push_element($$renderer2, "div", 191, 2);
942
+ $$renderer2.push(`<div class="command-menu-dialog svelte-9f9a">`);
943
+ push_element($$renderer2, "div", 202, 4);
944
+ $$renderer2.push(`<div class="command-menu-input-wrapper svelte-9f9a">`);
945
+ push_element($$renderer2, "div", 203, 6);
946
+ if (typeof searchIcon === "function") {
947
+ $$renderer2.push("<!--[-->");
948
+ searchIcon($$renderer2);
949
+ $$renderer2.push(`<!---->`);
950
+ } else {
951
+ $$renderer2.push("<!--[!-->");
952
+ $$renderer2.push(`<span class="command-menu-search-icon svelte-9f9a">`);
953
+ push_element($$renderer2, "span", 208, 10);
954
+ $$renderer2.push(`${html(searchSvg)}</span>`);
955
+ pop_element();
956
+ }
957
+ $$renderer2.push(`<!--]--> <input${attr("value", query)} type="text" class="command-menu-input svelte-9f9a"${attr("placeholder", placeholder)} autocomplete="off" spellcheck="false"${attr("data-pw", typeof testId === "string" ? `${testId}-input` : null)}/>`);
958
+ push_element($$renderer2, "input", 210, 8);
959
+ pop_element();
960
+ $$renderer2.push(`</div>`);
961
+ pop_element();
962
+ $$renderer2.push(` <div class="command-menu-separator svelte-9f9a">`);
963
+ push_element($$renderer2, "div", 225, 6);
964
+ $$renderer2.push(`</div>`);
965
+ pop_element();
966
+ $$renderer2.push(` <div class="command-menu-list svelte-9f9a" role="listbox">`);
967
+ push_element($$renderer2, "div", 227, 6);
968
+ if (flatItems.length === 0) {
969
+ $$renderer2.push("<!--[-->");
970
+ $$renderer2.push(`<div class="command-menu-empty svelte-9f9a">`);
971
+ push_element($$renderer2, "div", 229, 10);
972
+ $$renderer2.push(`${escape_html(emptyText)}</div>`);
973
+ pop_element();
974
+ } else {
975
+ $$renderer2.push("<!--[!-->");
976
+ $$renderer2.push(`<!--[-->`);
977
+ const each_array = ensure_array_like(groupedItems);
978
+ for (let $$index_2 = 0, $$length = each_array.length; $$index_2 < $$length; $$index_2++) {
979
+ let [group, groupItems] = each_array[$$index_2];
980
+ if (group !== "") {
981
+ $$renderer2.push("<!--[-->");
982
+ $$renderer2.push(`<div class="command-menu-group-heading svelte-9f9a">`);
983
+ push_element($$renderer2, "div", 235, 14);
984
+ $$renderer2.push(`${escape_html(group)}</div>`);
985
+ pop_element();
986
+ } else {
987
+ $$renderer2.push("<!--[!-->");
988
+ }
989
+ $$renderer2.push(`<!--]--> <!--[-->`);
990
+ const each_array_1 = ensure_array_like(groupItems);
991
+ for (let $$index_1 = 0, $$length2 = each_array_1.length; $$index_1 < $$length2; $$index_1++) {
992
+ let item = each_array_1[$$index_1];
993
+ const index = flatIndexLookup.get(item.value) ?? -1;
994
+ $$renderer2.push(`<button type="button"${attr_class("command-menu-item svelte-9f9a", void 0, { "active": index === activeIndex, "disabled": item.disabled })}${attr("data-active", index === activeIndex)} role="option"${attr("aria-selected", index === activeIndex)}${attr("aria-disabled", item.disabled)} tabindex="-1"${attr("data-pw", typeof testId === "string" ? `${testId}-item-${item.value}` : null)}>`);
995
+ push_element($$renderer2, "button", 239, 14);
996
+ if (typeof itemIcon === "function") {
997
+ $$renderer2.push("<!--[-->");
998
+ $$renderer2.push(`<span class="command-menu-item-icon svelte-9f9a">`);
999
+ push_element($$renderer2, "span", 258, 18);
1000
+ itemIcon($$renderer2, item);
1001
+ $$renderer2.push(`<!----></span>`);
1002
+ pop_element();
1003
+ } else {
1004
+ $$renderer2.push("<!--[!-->");
1005
+ if (typeof item.icon === "string" && item.icon.length > 0) {
1006
+ $$renderer2.push("<!--[-->");
1007
+ $$renderer2.push(`<div class="command-menu-item-icon-img-wrapper svelte-9f9a">`);
1008
+ push_element($$renderer2, "div", 262, 18);
1009
+ Img($$renderer2, { src: item.icon, alt: "" });
1010
+ $$renderer2.push(`<!----></div>`);
1011
+ pop_element();
1012
+ } else {
1013
+ $$renderer2.push("<!--[!-->");
1014
+ }
1015
+ $$renderer2.push(`<!--]-->`);
1016
+ }
1017
+ $$renderer2.push(`<!--]--> <span class="command-menu-item-label svelte-9f9a">`);
1018
+ push_element($$renderer2, "span", 266, 16);
1019
+ $$renderer2.push(`${escape_html(item.label)}</span>`);
1020
+ pop_element();
1021
+ $$renderer2.push(` `);
1022
+ if (typeof item.shortcut === "string" && item.shortcut.length > 0) {
1023
+ $$renderer2.push("<!--[-->");
1024
+ $$renderer2.push(`<span class="command-menu-item-shortcut svelte-9f9a">`);
1025
+ push_element($$renderer2, "span", 268, 18);
1026
+ $$renderer2.push(`<!--[-->`);
1027
+ const each_array_2 = ensure_array_like(item.shortcut.split("+"));
1028
+ for (let i = 0, $$length3 = each_array_2.length; i < $$length3; i++) {
1029
+ let key = each_array_2[i];
1030
+ $$renderer2.push(`<kbd class="command-menu-kbd svelte-9f9a">`);
1031
+ push_element($$renderer2, "kbd", 270, 22);
1032
+ $$renderer2.push(`${escape_html(key.trim())}</kbd>`);
1033
+ pop_element();
1034
+ }
1035
+ $$renderer2.push(`<!--]--></span>`);
1036
+ pop_element();
1037
+ } else {
1038
+ $$renderer2.push("<!--[!-->");
1039
+ }
1040
+ $$renderer2.push(`<!--]--></button>`);
1041
+ pop_element();
1042
+ }
1043
+ $$renderer2.push(`<!--]-->`);
1044
+ }
1045
+ $$renderer2.push(`<!--]-->`);
1046
+ }
1047
+ $$renderer2.push(`<!--]--></div>`);
1048
+ pop_element();
1049
+ $$renderer2.push(`</div>`);
1050
+ pop_element();
1051
+ $$renderer2.push(`</div>`);
1052
+ pop_element();
1053
+ } else {
1054
+ $$renderer2.push("<!--[!-->");
1055
+ }
1056
+ $$renderer2.push(`<!--]-->`);
1057
+ bind_props($$props, { open });
1058
+ },
1059
+ CommandMenu
1060
+ );
1061
+ }
1062
+ CommandMenu.render = function() {
1063
+ throw new Error("Component.render(...) is no longer valid in Svelte 5. See https://svelte.dev/docs/svelte/v5-migration-guide#Components-are-no-longer-classes for more information");
1064
+ };
1065
+ Card[FILENAME] = "src/lib/modules/client/common/Card.svelte";
1066
+ function Card($$renderer, $$props) {
1067
+ $$renderer.component(
1068
+ ($$renderer2) => {
1069
+ const { children, class: className = "", description, title } = $$props;
1070
+ $$renderer2.push(`<div${attr_class(`card ${stringify(className)}`)}>`);
1071
+ push_element($$renderer2, "div", 14, 0);
1072
+ if (title) {
1073
+ $$renderer2.push("<!--[-->");
1074
+ $$renderer2.push(`<div class="card-header">`);
1075
+ push_element($$renderer2, "div", 16, 4);
1076
+ $$renderer2.push(`<h2 class="card-title">`);
1077
+ push_element($$renderer2, "h2", 17, 6);
1078
+ $$renderer2.push(`${escape_html(title)}</h2>`);
1079
+ pop_element();
1080
+ $$renderer2.push(` `);
1081
+ if (description) {
1082
+ $$renderer2.push("<!--[-->");
1083
+ $$renderer2.push(`<p class="card-description">`);
1084
+ push_element($$renderer2, "p", 19, 8);
1085
+ $$renderer2.push(`${escape_html(description)}</p>`);
1086
+ pop_element();
1087
+ } else {
1088
+ $$renderer2.push("<!--[!-->");
1089
+ }
1090
+ $$renderer2.push(`<!--]--></div>`);
1091
+ pop_element();
1092
+ } else {
1093
+ $$renderer2.push("<!--[!-->");
1094
+ }
1095
+ $$renderer2.push(`<!--]--> <div class="card-content">`);
1096
+ push_element($$renderer2, "div", 23, 2);
1097
+ children($$renderer2);
1098
+ $$renderer2.push(`<!----></div>`);
1099
+ pop_element();
1100
+ $$renderer2.push(`</div>`);
1101
+ pop_element();
1102
+ },
1103
+ Card
1104
+ );
1105
+ }
1106
+ Card.render = function() {
1107
+ throw new Error("Component.render(...) is no longer valid in Svelte 5. See https://svelte.dev/docs/svelte/v5-migration-guide#Components-are-no-longer-classes for more information");
1108
+ };
1109
+ const AlertTriangle = '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">\n <path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/>\n <line x1="12" y1="9" x2="12" y2="13"/>\n <line x1="12" y1="17" x2="12.01" y2="17"/>\n</svg>\n';
1110
+ const Bell = '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">\n <path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"/>\n <path d="M13.73 21a2 2 0 0 1-3.46 0"/>\n</svg>\n';
1111
+ const CheckCircle = '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">\n <path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"/>\n <polyline points="22 4 12 14.01 9 11.01"/>\n</svg>\n';
1112
+ const File = '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">\n <path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/>\n <polyline points="14 2 14 8 20 8"/>\n</svg>\n';
1113
+ const Folder = '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">\n <path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"/>\n</svg>\n';
1114
+ const Play = '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">\n <polygon points="5 3 19 12 5 21 5 3"/>\n</svg>\n';
1115
+ const Refresh = '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">\n <path d="M23 4v6h-6M1 20v-6h6"/>\n <path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"/>\n</svg>\n';
1116
+ const Settings = '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">\n <circle cx="12" cy="12" r="3"/>\n <path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"/>\n</svg>\n';
1117
+ const Terminal = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="4 17 10 11 4 5"></polyline><line x1="12" y1="19" x2="20" y2="19"></line></svg>\n';
1118
+ const Tool = '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">\n <path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"/>\n</svg>\n';
1119
+ const XCircle = '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">\n <circle cx="12" cy="12" r="10"/>\n <line x1="15" y1="9" x2="9" y2="15"/>\n <line x1="9" y1="9" x2="15" y2="15"/>\n</svg>\n';
1120
+ Icon[FILENAME] = "src/lib/modules/client/common/Icon.svelte";
1121
+ function Icon($$renderer, $$props) {
1122
+ $$renderer.component(
1123
+ ($$renderer2) => {
1124
+ const icons = {
1125
+ "alert-triangle": AlertTriangle,
1126
+ bell: Bell,
1127
+ "check-circle": CheckCircle,
1128
+ file: File,
1129
+ folder: Folder,
1130
+ play: Play,
1131
+ refresh: Refresh,
1132
+ settings: Settings,
1133
+ terminal: Terminal,
1134
+ tool: Tool,
1135
+ "x-circle": XCircle
1136
+ };
1137
+ const { class: className = "", name, size = 16 } = $$props;
1138
+ const svgContent = icons[name] || "";
1139
+ $$renderer2.push(`<span${attr_class(`icon ${stringify(className)}`, "svelte-1worgqe")}${attr_style(`width: ${stringify(size)}px; height: ${stringify(size)}px;`)} role="img" aria-hidden="true">`);
1140
+ push_element($$renderer2, "span", 39, 0);
1141
+ $$renderer2.push(`${html(svgContent)}</span>`);
1142
+ pop_element();
1143
+ },
1144
+ Icon
1145
+ );
1146
+ }
1147
+ Icon.render = function() {
1148
+ throw new Error("Component.render(...) is no longer valid in Svelte 5. See https://svelte.dev/docs/svelte/v5-migration-guide#Components-are-no-longer-classes for more information");
1149
+ };
1150
+ EmptyState[FILENAME] = "src/lib/modules/client/common/EmptyState.svelte";
1151
+ function EmptyState($$renderer, $$props) {
1152
+ $$renderer.component(
1153
+ ($$renderer2) => {
1154
+ const { children, description, icon, title } = $$props;
1155
+ $$renderer2.push(`<div class="empty-state">`);
1156
+ push_element($$renderer2, "div", 27, 0);
1157
+ $$renderer2.push(`<div class="empty-state-icon">`);
1158
+ push_element($$renderer2, "div", 28, 2);
1159
+ Icon($$renderer2, { name: icon, size: 24 });
1160
+ $$renderer2.push(`<!----></div>`);
1161
+ pop_element();
1162
+ $$renderer2.push(` <h3 class="empty-state-title">`);
1163
+ push_element($$renderer2, "h3", 31, 2);
1164
+ $$renderer2.push(`${escape_html(title)}</h3>`);
1165
+ pop_element();
1166
+ $$renderer2.push(` <p class="empty-state-description">`);
1167
+ push_element($$renderer2, "p", 32, 2);
1168
+ $$renderer2.push(`${escape_html(description)}</p>`);
1169
+ pop_element();
1170
+ $$renderer2.push(` `);
1171
+ if (children) {
1172
+ $$renderer2.push("<!--[-->");
1173
+ children($$renderer2);
1174
+ $$renderer2.push(`<!---->`);
1175
+ } else {
1176
+ $$renderer2.push("<!--[!-->");
1177
+ }
1178
+ $$renderer2.push(`<!--]--></div>`);
1179
+ pop_element();
1180
+ },
1181
+ EmptyState
1182
+ );
1183
+ }
1184
+ EmptyState.render = function() {
1185
+ throw new Error("Component.render(...) is no longer valid in Svelte 5. See https://svelte.dev/docs/svelte/v5-migration-guide#Components-are-no-longer-classes for more information");
1186
+ };
1187
+ StatusBadge[FILENAME] = "src/lib/modules/client/common/StatusBadge.svelte";
1188
+ function StatusBadge($$renderer, $$props) {
1189
+ $$renderer.component(
1190
+ ($$renderer2) => {
1191
+ const { status } = $$props;
1192
+ function getStatusLabel(s) {
1193
+ switch (s) {
1194
+ case "degraded":
1195
+ return "Degraded";
1196
+ case "error":
1197
+ return "Offline";
1198
+ case "healthy":
1199
+ return "Online";
1200
+ default:
1201
+ return "Checking";
1202
+ }
1203
+ }
1204
+ function getStatusClass(s) {
1205
+ switch (s) {
1206
+ case "degraded":
1207
+ return "degraded";
1208
+ case "error":
1209
+ return "offline";
1210
+ case "healthy":
1211
+ return "online";
1212
+ default:
1213
+ return "";
1214
+ }
1215
+ }
1216
+ $$renderer2.push(`<div${attr_class(`status-badge ${stringify(getStatusClass(status))}`)}>`);
1217
+ push_element($$renderer2, "div", 35, 0);
1218
+ $$renderer2.push(`<span class="status-dot">`);
1219
+ push_element($$renderer2, "span", 36, 2);
1220
+ $$renderer2.push(`</span>`);
1221
+ pop_element();
1222
+ $$renderer2.push(` <span>`);
1223
+ push_element($$renderer2, "span", 37, 2);
1224
+ $$renderer2.push(`${escape_html(getStatusLabel(status))}</span>`);
1225
+ pop_element();
1226
+ $$renderer2.push(`</div>`);
1227
+ pop_element();
1228
+ },
1229
+ StatusBadge
1230
+ );
1231
+ }
1232
+ StatusBadge.render = function() {
1233
+ throw new Error("Component.render(...) is no longer valid in Svelte 5. See https://svelte.dev/docs/svelte/v5-migration-guide#Components-are-no-longer-classes for more information");
1234
+ };
1235
+ marked.setOptions({
1236
+ breaks: true,
1237
+ gfm: true
1238
+ });
1239
+
1240
+ export { Button as B, Card as C, EmptyState as E, Icon as I, KeyboardInput as K, Modal as M, StatusBadge as S, Shimmer as a, Input as b, Stepper as c, Banner as d, CommandMenu as e, onDestroy as o };
1241
+ //# sourceMappingURL=markdown-Bxrl3cCF.js.map