@hienlh/ppm 0.22.1 → 0.22.3

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 (1287) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/assets/skills/ppm/SKILL.md +1 -1
  3. package/assets/skills/ppm/references/cli-reference.md +4 -4
  4. package/assets/skills/ppm/references/http-api.md +1 -1
  5. package/dist/web/assets/abap-IN2yINdN.js.br +0 -0
  6. package/dist/web/assets/abap-IN2yINdN.js.gz +0 -0
  7. package/dist/web/assets/accounts-settings-section-DbJ7QQg4.js +1 -0
  8. package/dist/web/assets/accounts-settings-section-DbJ7QQg4.js.br +0 -0
  9. package/dist/web/assets/accounts-settings-section-DbJ7QQg4.js.gz +0 -0
  10. package/dist/web/assets/actionscript-3-C_t772eR.js.br +0 -0
  11. package/dist/web/assets/actionscript-3-C_t772eR.js.gz +0 -0
  12. package/dist/web/assets/ada-DPme3emm.js.br +0 -0
  13. package/dist/web/assets/ada-DPme3emm.js.gz +0 -0
  14. package/dist/web/assets/{ai-resource-editor-BLPcnhTM.js → ai-resource-editor-B24DvHYZ.js} +1 -1
  15. package/dist/web/assets/ai-resource-editor-B24DvHYZ.js.br +0 -0
  16. package/dist/web/assets/ai-resource-editor-B24DvHYZ.js.gz +0 -0
  17. package/dist/web/assets/ai-settings-section-BgEN9JJn.js +1 -0
  18. package/dist/web/assets/ai-settings-section-Bq1-gIlM.js +1 -0
  19. package/dist/web/assets/ai-settings-section-Bq1-gIlM.js.br +0 -0
  20. package/dist/web/assets/ai-settings-section-Bq1-gIlM.js.gz +0 -0
  21. package/dist/web/assets/andromeeda-DSV4i4mZ.js.br +0 -0
  22. package/dist/web/assets/andromeeda-DSV4i4mZ.js.gz +0 -0
  23. package/dist/web/assets/angular-html-G66FNlyn.js.br +0 -0
  24. package/dist/web/assets/angular-html-G66FNlyn.js.gz +0 -0
  25. package/dist/web/assets/angular-ts-B-PnUMyt.js.br +0 -0
  26. package/dist/web/assets/angular-ts-B-PnUMyt.js.gz +0 -0
  27. package/dist/web/assets/apache-CWr8s8I8.js.br +0 -0
  28. package/dist/web/assets/apache-CWr8s8I8.js.gz +0 -0
  29. package/dist/web/assets/apex-Z20JnDF5.js.br +0 -0
  30. package/dist/web/assets/apex-Z20JnDF5.js.gz +0 -0
  31. package/dist/web/assets/{api-client-C1ZwRL4Y.js → api-client-Jn3njtNw.js} +1 -1
  32. package/dist/web/assets/api-client-Jn3njtNw.js.br +0 -0
  33. package/dist/web/assets/api-client-Jn3njtNw.js.gz +0 -0
  34. package/dist/web/assets/api-client-rSFnnCj4.js +1 -0
  35. package/dist/web/assets/{api-settings-_7Q-ULxp.js → api-settings-BxijvPBR.js} +1 -1
  36. package/dist/web/assets/api-settings-BxijvPBR.js.br +0 -0
  37. package/dist/web/assets/api-settings-BxijvPBR.js.gz +0 -0
  38. package/dist/web/assets/{api-themes-DRAERo4Q.js → api-themes-B3RwKXw-.js} +1 -1
  39. package/dist/web/assets/apl-BmDqqwE8.js.br +0 -0
  40. package/dist/web/assets/apl-BmDqqwE8.js.gz +0 -0
  41. package/dist/web/assets/{appearance-settings-section-CiMdk3sb.js → appearance-settings-section-DEPNZnJ2.js} +1 -1
  42. package/dist/web/assets/appearance-settings-section-DEPNZnJ2.js.br +0 -0
  43. package/dist/web/assets/appearance-settings-section-DEPNZnJ2.js.gz +0 -0
  44. package/dist/web/assets/applescript-BKNPu3ga.js.br +0 -0
  45. package/dist/web/assets/applescript-BKNPu3ga.js.gz +0 -0
  46. package/dist/web/assets/ara-hWdY3O96.js.br +0 -0
  47. package/dist/web/assets/ara-hWdY3O96.js.gz +0 -0
  48. package/dist/web/assets/asciidoc-eynhq496.js.br +0 -0
  49. package/dist/web/assets/asciidoc-eynhq496.js.gz +0 -0
  50. package/dist/web/assets/asm-Bu02Kq4P.js.br +0 -0
  51. package/dist/web/assets/asm-Bu02Kq4P.js.gz +0 -0
  52. package/dist/web/assets/astro-BfwMNfxr.js.br +0 -0
  53. package/dist/web/assets/astro-BfwMNfxr.js.gz +0 -0
  54. package/dist/web/assets/{audio-preview-DsYvgKqj.js → audio-preview-D9nCryTq.js} +1 -1
  55. package/dist/web/assets/audio-preview-D9nCryTq.js.br +0 -0
  56. package/dist/web/assets/audio-preview-D9nCryTq.js.gz +0 -0
  57. package/dist/web/assets/aurora-x-BHBGXbIZ.js.br +0 -0
  58. package/dist/web/assets/aurora-x-BHBGXbIZ.js.gz +0 -0
  59. package/dist/web/assets/awk-B4ojezyv.js.br +0 -0
  60. package/dist/web/assets/awk-B4ojezyv.js.gz +0 -0
  61. package/dist/web/assets/ayu-dark-D0GQzFi9.js.br +0 -0
  62. package/dist/web/assets/ayu-dark-D0GQzFi9.js.gz +0 -0
  63. package/dist/web/assets/ayu-light-BVYb5Yn8.js.br +0 -0
  64. package/dist/web/assets/ayu-light-BVYb5Yn8.js.gz +0 -0
  65. package/dist/web/assets/ayu-mirage-BGFW6oNb.js.br +0 -0
  66. package/dist/web/assets/ayu-mirage-BGFW6oNb.js.gz +0 -0
  67. package/dist/web/assets/ballerina-B6Og3IKT.js.br +0 -0
  68. package/dist/web/assets/ballerina-B6Og3IKT.js.gz +0 -0
  69. package/dist/web/assets/bat-D8YFILfx.js.br +0 -0
  70. package/dist/web/assets/bat-D8YFILfx.js.gz +0 -0
  71. package/dist/web/assets/beancount-BjlbBBuX.js.br +0 -0
  72. package/dist/web/assets/beancount-BjlbBBuX.js.gz +0 -0
  73. package/dist/web/assets/berry-Cz1ygeoj.js.br +0 -0
  74. package/dist/web/assets/berry-Cz1ygeoj.js.gz +0 -0
  75. package/dist/web/assets/bibtex-CVkJceJh.js.br +0 -0
  76. package/dist/web/assets/bibtex-CVkJceJh.js.gz +0 -0
  77. package/dist/web/assets/bicep-DrhYI5GX.js.br +0 -0
  78. package/dist/web/assets/bicep-DrhYI5GX.js.gz +0 -0
  79. package/dist/web/assets/bird2-BV-KJtmc.js.br +0 -0
  80. package/dist/web/assets/bird2-BV-KJtmc.js.gz +0 -0
  81. package/dist/web/assets/blade-BsFV4pnN.js.br +0 -0
  82. package/dist/web/assets/blade-BsFV4pnN.js.gz +0 -0
  83. package/dist/web/assets/{branch-review-tab-B1pFjlKM.js → branch-review-tab-ruiWErmR.js} +1 -1
  84. package/dist/web/assets/branch-review-tab-ruiWErmR.js.br +0 -0
  85. package/dist/web/assets/branch-review-tab-ruiWErmR.js.gz +0 -0
  86. package/dist/web/assets/bsl-Cw9Outng.js.br +0 -0
  87. package/dist/web/assets/bsl-Cw9Outng.js.gz +0 -0
  88. package/dist/web/assets/button-B9CTrsEf.js.br +0 -0
  89. package/dist/web/assets/button-B9CTrsEf.js.gz +0 -0
  90. package/dist/web/assets/c-CuLlvxbG.js.br +0 -0
  91. package/dist/web/assets/c-CuLlvxbG.js.gz +0 -0
  92. package/dist/web/assets/c3-CI7-1CJ0.js.br +0 -0
  93. package/dist/web/assets/c3-CI7-1CJ0.js.gz +0 -0
  94. package/dist/web/assets/cadence-DjxhNP3Q.js.br +0 -0
  95. package/dist/web/assets/cadence-DjxhNP3Q.js.gz +0 -0
  96. package/dist/web/assets/cairo-DOK5Wqnd.js.br +0 -0
  97. package/dist/web/assets/cairo-DOK5Wqnd.js.gz +0 -0
  98. package/dist/web/assets/can-open-in-ppm-cv5--yHX.js.br +0 -0
  99. package/dist/web/assets/can-open-in-ppm-cv5--yHX.js.gz +0 -0
  100. package/dist/web/assets/catppuccin-frappe-CEozpJRh.js.br +0 -0
  101. package/dist/web/assets/catppuccin-frappe-CEozpJRh.js.gz +0 -0
  102. package/dist/web/assets/catppuccin-latte-C4sXQFMc.js.br +0 -0
  103. package/dist/web/assets/catppuccin-latte-C4sXQFMc.js.gz +0 -0
  104. package/dist/web/assets/catppuccin-macchiato-Ci-fDhXy.js.br +0 -0
  105. package/dist/web/assets/catppuccin-macchiato-Ci-fDhXy.js.gz +0 -0
  106. package/dist/web/assets/catppuccin-mocha-CH7YXw8d.js.br +0 -0
  107. package/dist/web/assets/catppuccin-mocha-CH7YXw8d.js.gz +0 -0
  108. package/dist/web/assets/chat-tab-BeBe2z3X.js +15 -0
  109. package/dist/web/assets/chat-tab-BeBe2z3X.js.br +0 -0
  110. package/dist/web/assets/chat-tab-BeBe2z3X.js.gz +0 -0
  111. package/dist/web/assets/clarity-BWrJ7UmT.js.br +0 -0
  112. package/dist/web/assets/clarity-BWrJ7UmT.js.gz +0 -0
  113. package/dist/web/assets/clojure-C94fh2hb.js.br +0 -0
  114. package/dist/web/assets/clojure-C94fh2hb.js.gz +0 -0
  115. package/dist/web/assets/cmake-CtvCkMsG.js.br +0 -0
  116. package/dist/web/assets/cmake-CtvCkMsG.js.gz +0 -0
  117. package/dist/web/assets/cobol-DRaRy4FK.js.br +0 -0
  118. package/dist/web/assets/cobol-DRaRy4FK.js.gz +0 -0
  119. package/dist/web/assets/code-editor-C7XqHn9o.js +7 -0
  120. package/dist/web/assets/code-editor-C7XqHn9o.js.br +0 -0
  121. package/dist/web/assets/code-editor-C7XqHn9o.js.gz +0 -0
  122. package/dist/web/assets/codeql-BOoP5HY2.js.br +0 -0
  123. package/dist/web/assets/codeql-BOoP5HY2.js.gz +0 -0
  124. package/dist/web/assets/{codex-daily-guard-CaCQJ4r_.js → codex-daily-guard-DetGq_en.js} +1 -1
  125. package/dist/web/assets/codex-daily-guard-DetGq_en.js.br +0 -0
  126. package/dist/web/assets/codex-daily-guard-DetGq_en.js.gz +0 -0
  127. package/dist/web/assets/coffee-DvXuBmEJ.js.br +0 -0
  128. package/dist/web/assets/coffee-DvXuBmEJ.js.gz +0 -0
  129. package/dist/web/assets/common-lisp-B9nlMFJd.js.br +0 -0
  130. package/dist/web/assets/common-lisp-B9nlMFJd.js.gz +0 -0
  131. package/dist/web/assets/{conflict-editor-B7u_p49h.js → conflict-editor-DHUpVDGB.js} +3 -3
  132. package/dist/web/assets/conflict-editor-DHUpVDGB.js.br +0 -0
  133. package/dist/web/assets/conflict-editor-DHUpVDGB.js.gz +0 -0
  134. package/dist/web/assets/context-menu-C6pIsf83.js.br +0 -0
  135. package/dist/web/assets/context-menu-C6pIsf83.js.gz +0 -0
  136. package/dist/web/assets/coq-CgzIQiSH.js.br +0 -0
  137. package/dist/web/assets/coq-CgzIQiSH.js.gz +0 -0
  138. package/dist/web/assets/cpp-zCmm8rKA.js.br +0 -0
  139. package/dist/web/assets/cpp-zCmm8rKA.js.gz +0 -0
  140. package/dist/web/assets/createLucideIcon-DoiEKeJ_.js.br +0 -0
  141. package/dist/web/assets/createLucideIcon-DoiEKeJ_.js.gz +0 -0
  142. package/dist/web/assets/crystal-CdQx6lB6.js.br +0 -0
  143. package/dist/web/assets/crystal-CdQx6lB6.js.gz +0 -0
  144. package/dist/web/assets/csharp-4xAIx3jw.js.br +0 -0
  145. package/dist/web/assets/csharp-4xAIx3jw.js.gz +0 -0
  146. package/dist/web/assets/css-D4YoLYGn.js.br +0 -0
  147. package/dist/web/assets/css-D4YoLYGn.js.gz +0 -0
  148. package/dist/web/assets/csv-C2v-ZakW.js.br +0 -0
  149. package/dist/web/assets/csv-C2v-ZakW.js.gz +0 -0
  150. package/dist/web/assets/csv-parser-DpCmuupp.js.br +0 -0
  151. package/dist/web/assets/csv-parser-DpCmuupp.js.gz +0 -0
  152. package/dist/web/assets/{csv-preview-CttjJU1e.js → csv-preview-DXGt24yG.js} +1 -1
  153. package/dist/web/assets/csv-preview-DXGt24yG.js.br +0 -0
  154. package/dist/web/assets/csv-preview-DXGt24yG.js.gz +0 -0
  155. package/dist/web/assets/cue-Bbznh_an.js.br +0 -0
  156. package/dist/web/assets/cue-Bbznh_an.js.gz +0 -0
  157. package/dist/web/assets/cypher-BKhVEARF.js.br +0 -0
  158. package/dist/web/assets/cypher-BKhVEARF.js.gz +0 -0
  159. package/dist/web/assets/d-D6IhWopl.js.br +0 -0
  160. package/dist/web/assets/d-D6IhWopl.js.gz +0 -0
  161. package/dist/web/assets/dark-plus-xAWu790O.js.br +0 -0
  162. package/dist/web/assets/dark-plus-xAWu790O.js.gz +0 -0
  163. package/dist/web/assets/dart-Bj6S9O1j.js.br +0 -0
  164. package/dist/web/assets/dart-Bj6S9O1j.js.gz +0 -0
  165. package/dist/web/assets/data-grid-overlay-editor-6xUCeLHh.js.br +0 -0
  166. package/dist/web/assets/data-grid-overlay-editor-6xUCeLHh.js.gz +0 -0
  167. package/dist/web/assets/data-grid-types-C5bthITf.js.br +0 -0
  168. package/dist/web/assets/data-grid-types-C5bthITf.js.gz +0 -0
  169. package/dist/web/assets/{database-viewer-Ca4HxIfx.js → database-viewer-zMGckF4c.js} +1 -1
  170. package/dist/web/assets/database-viewer-zMGckF4c.js.br +0 -0
  171. package/dist/web/assets/database-viewer-zMGckF4c.js.gz +0 -0
  172. package/dist/web/assets/dax-CF2zvaqq.js.br +0 -0
  173. package/dist/web/assets/dax-CF2zvaqq.js.gz +0 -0
  174. package/dist/web/assets/desktop-CnmyxMKE.js.br +0 -0
  175. package/dist/web/assets/desktop-CnmyxMKE.js.gz +0 -0
  176. package/dist/web/assets/dialog-B84_DJQ8.js.br +0 -0
  177. package/dist/web/assets/dialog-B84_DJQ8.js.gz +0 -0
  178. package/dist/web/assets/diff-Qi8WuJsI.js.br +0 -0
  179. package/dist/web/assets/diff-Qi8WuJsI.js.gz +0 -0
  180. package/dist/web/assets/{diff-viewer-9-XjLIwa.js → diff-viewer-D8ORwKJO.js} +1 -1
  181. package/dist/web/assets/diff-viewer-D8ORwKJO.js.br +0 -0
  182. package/dist/web/assets/diff-viewer-D8ORwKJO.js.gz +0 -0
  183. package/dist/web/assets/dist-Bjseolz4.js.br +0 -0
  184. package/dist/web/assets/dist-Bjseolz4.js.gz +0 -0
  185. package/dist/web/assets/dist-Czq7BUMy.js.br +0 -0
  186. package/dist/web/assets/dist-Czq7BUMy.js.gz +0 -0
  187. package/dist/web/assets/docker-vLbbNP5d.js.br +0 -0
  188. package/dist/web/assets/docker-vLbbNP5d.js.gz +0 -0
  189. package/dist/web/assets/{docx-preview-CXuk-emm.js → docx-preview-Gzi4QBez.js} +1 -1
  190. package/dist/web/assets/docx-preview-Gzi4QBez.js.br +0 -0
  191. package/dist/web/assets/docx-preview-Gzi4QBez.js.gz +0 -0
  192. package/dist/web/assets/dotenv-DJMvvNzn.js.br +0 -0
  193. package/dist/web/assets/dotenv-DJMvvNzn.js.gz +0 -0
  194. package/dist/web/assets/dracula-CtAh2rhB.js.br +0 -0
  195. package/dist/web/assets/dracula-CtAh2rhB.js.gz +0 -0
  196. package/dist/web/assets/dracula-soft-CXtuAAf6.js.br +0 -0
  197. package/dist/web/assets/dracula-soft-CXtuAAf6.js.gz +0 -0
  198. package/dist/web/assets/dream-maker-D5YQyK49.js.br +0 -0
  199. package/dist/web/assets/dream-maker-D5YQyK49.js.gz +0 -0
  200. package/dist/web/assets/edge-E8QLt7oi.js.br +0 -0
  201. package/dist/web/assets/edge-E8QLt7oi.js.gz +0 -0
  202. package/dist/web/assets/edit-diff-preview-CVv7EOFu.js.br +0 -0
  203. package/dist/web/assets/edit-diff-preview-CVv7EOFu.js.gz +0 -0
  204. package/dist/web/assets/{editor-language-service-D0DuEOs_.js → editor-language-service-DlXOJKTM.js} +1 -1
  205. package/dist/web/assets/editor-language-service-DlXOJKTM.js.br +0 -0
  206. package/dist/web/assets/editor-language-service-DlXOJKTM.js.gz +0 -0
  207. package/dist/web/assets/elixir-DPb_-72P.js.br +0 -0
  208. package/dist/web/assets/elixir-DPb_-72P.js.gz +0 -0
  209. package/dist/web/assets/elm-BMzJY5b0.js.br +0 -0
  210. package/dist/web/assets/elm-BMzJY5b0.js.gz +0 -0
  211. package/dist/web/assets/emacs-lisp-CGTjbiqF.js.br +0 -0
  212. package/dist/web/assets/emacs-lisp-CGTjbiqF.js.gz +0 -0
  213. package/dist/web/assets/erb-AABQNtMK.js.br +0 -0
  214. package/dist/web/assets/erb-AABQNtMK.js.gz +0 -0
  215. package/dist/web/assets/erlang-CEIKOkfP.js.br +0 -0
  216. package/dist/web/assets/erlang-CEIKOkfP.js.gz +0 -0
  217. package/dist/web/assets/esm-B9RVMpwV.js.br +0 -0
  218. package/dist/web/assets/esm-B9RVMpwV.js.gz +0 -0
  219. package/dist/web/assets/everforest-dark-D59p7vAQ.js.br +0 -0
  220. package/dist/web/assets/everforest-dark-D59p7vAQ.js.gz +0 -0
  221. package/dist/web/assets/everforest-light-B3Qtud3V.js.br +0 -0
  222. package/dist/web/assets/everforest-light-B3Qtud3V.js.gz +0 -0
  223. package/dist/web/assets/explorer-body-CvLKavSL.js +2 -0
  224. package/dist/web/assets/explorer-body-CvLKavSL.js.br +0 -0
  225. package/dist/web/assets/explorer-body-CvLKavSL.js.gz +0 -0
  226. package/dist/web/assets/explorer-window-content-DLPV_kMF.js +1 -0
  227. package/dist/web/assets/explorer-window-content-DLPV_kMF.js.br +0 -0
  228. package/dist/web/assets/explorer-window-content-DLPV_kMF.js.gz +0 -0
  229. package/dist/web/assets/{extension-manager-section-HkY7geS5.js → extension-manager-section-CAy3LVt7.js} +1 -1
  230. package/dist/web/assets/extension-manager-section-CAy3LVt7.js.br +0 -0
  231. package/dist/web/assets/extension-manager-section-CAy3LVt7.js.gz +0 -0
  232. package/dist/web/assets/{extension-webview-DZG8YHX9.js → extension-webview-BHg6PTCh.js} +1 -1
  233. package/dist/web/assets/extension-webview-BHg6PTCh.js.br +0 -0
  234. package/dist/web/assets/extension-webview-BHg6PTCh.js.gz +0 -0
  235. package/dist/web/assets/fennel-BCyHNUwf.js.br +0 -0
  236. package/dist/web/assets/fennel-BCyHNUwf.js.gz +0 -0
  237. package/dist/web/assets/{file-icons-BXdvggK2.js → file-icons-wS-OmEVu.js} +1 -1
  238. package/dist/web/assets/file-icons-wS-OmEVu.js.br +0 -0
  239. package/dist/web/assets/file-icons-wS-OmEVu.js.gz +0 -0
  240. package/dist/web/assets/file-icons.generated-BtBErEwb.css.br +0 -0
  241. package/dist/web/assets/file-icons.generated-BtBErEwb.css.gz +0 -0
  242. package/dist/web/assets/{file-store-ojgMXgAw.js → file-store-Ds3qJ4hC.js} +1 -1
  243. package/dist/web/assets/file-store-Ds3qJ4hC.js.br +0 -0
  244. package/dist/web/assets/file-store-Ds3qJ4hC.js.gz +0 -0
  245. package/dist/web/assets/{files-settings-section-qnRtkX05.js → files-settings-section-ND3D08W7.js} +1 -1
  246. package/dist/web/assets/files-settings-section-ND3D08W7.js.br +0 -0
  247. package/dist/web/assets/files-settings-section-ND3D08W7.js.gz +0 -0
  248. package/dist/web/assets/fish-DDDlLV2G.js.br +0 -0
  249. package/dist/web/assets/fish-DDDlLV2G.js.gz +0 -0
  250. package/dist/web/assets/fluent-By54R9tl.js.br +0 -0
  251. package/dist/web/assets/fluent-By54R9tl.js.gz +0 -0
  252. package/dist/web/assets/{format-file-meta-C77h04cZ.js → format-file-meta-PPi3ptkm.js} +1 -1
  253. package/dist/web/assets/format-file-meta-PPi3ptkm.js.br +0 -0
  254. package/dist/web/assets/format-file-meta-PPi3ptkm.js.gz +0 -0
  255. package/dist/web/assets/fortran-fixed-form-CrXvLHyi.js.br +0 -0
  256. package/dist/web/assets/fortran-fixed-form-CrXvLHyi.js.gz +0 -0
  257. package/dist/web/assets/fortran-free-form-tP8mRym_.js.br +0 -0
  258. package/dist/web/assets/fortran-free-form-tP8mRym_.js.gz +0 -0
  259. package/dist/web/assets/fsharp-DCI4qAz_.js.br +0 -0
  260. package/dist/web/assets/fsharp-DCI4qAz_.js.gz +0 -0
  261. package/dist/web/assets/gdresource-Vb2kO1MG.js.br +0 -0
  262. package/dist/web/assets/gdresource-Vb2kO1MG.js.gz +0 -0
  263. package/dist/web/assets/gdscript-nHC2z6Te.js.br +0 -0
  264. package/dist/web/assets/gdscript-nHC2z6Te.js.gz +0 -0
  265. package/dist/web/assets/gdshader-K-cSmPlW.js.br +0 -0
  266. package/dist/web/assets/gdshader-K-cSmPlW.js.gz +0 -0
  267. package/dist/web/assets/general-settings-section-SJbTkh0b.js +1 -0
  268. package/dist/web/assets/general-settings-section-SJbTkh0b.js.br +0 -0
  269. package/dist/web/assets/general-settings-section-SJbTkh0b.js.gz +0 -0
  270. package/dist/web/assets/genie-BAcRhvEe.js.br +0 -0
  271. package/dist/web/assets/genie-BAcRhvEe.js.gz +0 -0
  272. package/dist/web/assets/gherkin-CcifxMLb.js.br +0 -0
  273. package/dist/web/assets/gherkin-CcifxMLb.js.gz +0 -0
  274. package/dist/web/assets/git-commit-BMI_OWn-.js.br +0 -0
  275. package/dist/web/assets/git-commit-BMI_OWn-.js.gz +0 -0
  276. package/dist/web/assets/{git-log-panel-2sGpfEla.js → git-log-panel-_yL7W4EQ.js} +1 -1
  277. package/dist/web/assets/git-log-panel-_yL7W4EQ.js.br +0 -0
  278. package/dist/web/assets/git-log-panel-_yL7W4EQ.js.gz +0 -0
  279. package/dist/web/assets/{git-repo-store-88Z8v-pF.js → git-repo-store-BCEPfUGT.js} +1 -1
  280. package/dist/web/assets/git-repo-store-BCEPfUGT.js.br +0 -0
  281. package/dist/web/assets/git-repo-store-BCEPfUGT.js.gz +0 -0
  282. package/dist/web/assets/github-dark-67KKlMdB.js.br +0 -0
  283. package/dist/web/assets/github-dark-67KKlMdB.js.gz +0 -0
  284. package/dist/web/assets/github-dark-default-tja8pidR.js.br +0 -0
  285. package/dist/web/assets/github-dark-default-tja8pidR.js.gz +0 -0
  286. package/dist/web/assets/github-dark-dimmed-CtjhYQtx.js.br +0 -0
  287. package/dist/web/assets/github-dark-dimmed-CtjhYQtx.js.gz +0 -0
  288. package/dist/web/assets/github-dark-high-contrast-Bf-LPFgn.js.br +0 -0
  289. package/dist/web/assets/github-dark-high-contrast-Bf-LPFgn.js.gz +0 -0
  290. package/dist/web/assets/github-light-CbJxE7n3.js.br +0 -0
  291. package/dist/web/assets/github-light-CbJxE7n3.js.gz +0 -0
  292. package/dist/web/assets/github-light-default-DRQmdHxt.js.br +0 -0
  293. package/dist/web/assets/github-light-default-DRQmdHxt.js.gz +0 -0
  294. package/dist/web/assets/github-light-high-contrast-CJkDgTeM.js.br +0 -0
  295. package/dist/web/assets/github-light-high-contrast-CJkDgTeM.js.gz +0 -0
  296. package/dist/web/assets/gleam-D4LCl2ri.js.br +0 -0
  297. package/dist/web/assets/gleam-D4LCl2ri.js.gz +0 -0
  298. package/dist/web/assets/{glide-data-grid-f0hyITiF.js → glide-data-grid-CfH4uK1t.js} +4 -4
  299. package/dist/web/assets/glide-data-grid-CfH4uK1t.js.br +0 -0
  300. package/dist/web/assets/glide-data-grid-CfH4uK1t.js.gz +0 -0
  301. package/dist/web/assets/glide-data-grid-nthEL3fk.css.br +0 -0
  302. package/dist/web/assets/glide-data-grid-nthEL3fk.css.gz +0 -0
  303. package/dist/web/assets/glimmer-js-BmNNiR0Z.js.br +0 -0
  304. package/dist/web/assets/glimmer-js-BmNNiR0Z.js.gz +0 -0
  305. package/dist/web/assets/glimmer-ts-DQE2Ufha.js.br +0 -0
  306. package/dist/web/assets/glimmer-ts-DQE2Ufha.js.gz +0 -0
  307. package/dist/web/assets/glsl-BcIDsxRJ.js.br +0 -0
  308. package/dist/web/assets/glsl-BcIDsxRJ.js.gz +0 -0
  309. package/dist/web/assets/gn-COY8zZmC.js.br +0 -0
  310. package/dist/web/assets/gn-COY8zZmC.js.gz +0 -0
  311. package/dist/web/assets/gnuplot-ROk1VitR.js.br +0 -0
  312. package/dist/web/assets/gnuplot-ROk1VitR.js.gz +0 -0
  313. package/dist/web/assets/go-H30c3p0C.js.br +0 -0
  314. package/dist/web/assets/go-H30c3p0C.js.gz +0 -0
  315. package/dist/web/assets/graphql-DGKSLmGH.js.br +0 -0
  316. package/dist/web/assets/graphql-DGKSLmGH.js.gz +0 -0
  317. package/dist/web/assets/groovy-DBLCaelV.js.br +0 -0
  318. package/dist/web/assets/groovy-DBLCaelV.js.gz +0 -0
  319. package/dist/web/assets/group-chat-tab-CprxuYA-.js +1 -0
  320. package/dist/web/assets/group-chat-tab-CprxuYA-.js.br +0 -0
  321. package/dist/web/assets/group-chat-tab-CprxuYA-.js.gz +0 -0
  322. package/dist/web/assets/gruvbox-dark-hard-DJy4irps.js.br +0 -0
  323. package/dist/web/assets/gruvbox-dark-hard-DJy4irps.js.gz +0 -0
  324. package/dist/web/assets/gruvbox-dark-medium-Dhfw1QTO.js.br +0 -0
  325. package/dist/web/assets/gruvbox-dark-medium-Dhfw1QTO.js.gz +0 -0
  326. package/dist/web/assets/gruvbox-dark-soft-BncJU-8w.js.br +0 -0
  327. package/dist/web/assets/gruvbox-dark-soft-BncJU-8w.js.gz +0 -0
  328. package/dist/web/assets/gruvbox-light-hard-Cq12_YvM.js.br +0 -0
  329. package/dist/web/assets/gruvbox-light-hard-Cq12_YvM.js.gz +0 -0
  330. package/dist/web/assets/gruvbox-light-medium-DqVja5_v.js.br +0 -0
  331. package/dist/web/assets/gruvbox-light-medium-DqVja5_v.js.gz +0 -0
  332. package/dist/web/assets/gruvbox-light-soft-IvwhveGF.js.br +0 -0
  333. package/dist/web/assets/gruvbox-light-soft-IvwhveGF.js.gz +0 -0
  334. package/dist/web/assets/hack-YiC8bEIb.js.br +0 -0
  335. package/dist/web/assets/hack-YiC8bEIb.js.gz +0 -0
  336. package/dist/web/assets/haml-DjblxAsz.js.br +0 -0
  337. package/dist/web/assets/haml-DjblxAsz.js.gz +0 -0
  338. package/dist/web/assets/handlebars-BQepOXaU.js.br +0 -0
  339. package/dist/web/assets/handlebars-BQepOXaU.js.gz +0 -0
  340. package/dist/web/assets/haskell-DA1JV-MC.js.br +0 -0
  341. package/dist/web/assets/haskell-DA1JV-MC.js.gz +0 -0
  342. package/dist/web/assets/haxe-V9RTRc5E.js.br +0 -0
  343. package/dist/web/assets/haxe-V9RTRc5E.js.gz +0 -0
  344. package/dist/web/assets/hcl-hr1lyZ10.js.br +0 -0
  345. package/dist/web/assets/hcl-hr1lyZ10.js.gz +0 -0
  346. package/dist/web/assets/hjson-D3vW3i7X.js.br +0 -0
  347. package/dist/web/assets/hjson-D3vW3i7X.js.gz +0 -0
  348. package/dist/web/assets/hlsl-BB85gfJT.js.br +0 -0
  349. package/dist/web/assets/hlsl-BB85gfJT.js.gz +0 -0
  350. package/dist/web/assets/horizon-DU8OOnj8.js.br +0 -0
  351. package/dist/web/assets/horizon-DU8OOnj8.js.gz +0 -0
  352. package/dist/web/assets/horizon-bright-DNMUclW6.js.br +0 -0
  353. package/dist/web/assets/horizon-bright-DNMUclW6.js.gz +0 -0
  354. package/dist/web/assets/houston-DAiZKf6T.js.br +0 -0
  355. package/dist/web/assets/houston-DAiZKf6T.js.gz +0 -0
  356. package/dist/web/assets/html-Cayj_2GP.js.br +0 -0
  357. package/dist/web/assets/html-Cayj_2GP.js.gz +0 -0
  358. package/dist/web/assets/http-BeLfdGdz.js.br +0 -0
  359. package/dist/web/assets/http-BeLfdGdz.js.gz +0 -0
  360. package/dist/web/assets/hurl-D9rypCLK.js.br +0 -0
  361. package/dist/web/assets/hurl-D9rypCLK.js.gz +0 -0
  362. package/dist/web/assets/hxml-clG8mmSH.js.br +0 -0
  363. package/dist/web/assets/hxml-clG8mmSH.js.gz +0 -0
  364. package/dist/web/assets/hy-C6Zv0LMe.js.br +0 -0
  365. package/dist/web/assets/hy-C6Zv0LMe.js.gz +0 -0
  366. package/dist/web/assets/icons-DQjqk0lJ.js.br +0 -0
  367. package/dist/web/assets/icons-DQjqk0lJ.js.gz +0 -0
  368. package/dist/web/assets/{image-preview-CzCc4_Do.js → image-preview-xFLgpolc.js} +1 -1
  369. package/dist/web/assets/imba-Didnp6Y-.js.br +0 -0
  370. package/dist/web/assets/imba-Didnp6Y-.js.gz +0 -0
  371. package/dist/web/assets/index-8M7JWSZx.js +52 -0
  372. package/dist/web/assets/index-8M7JWSZx.js.br +0 -0
  373. package/dist/web/assets/index-8M7JWSZx.js.gz +0 -0
  374. package/dist/web/assets/index-CWL5emyr.css +1 -0
  375. package/dist/web/assets/index-CWL5emyr.css.br +0 -0
  376. package/dist/web/assets/index-CWL5emyr.css.gz +0 -0
  377. package/dist/web/assets/ini-m0T7q4gQ.js.br +5 -0
  378. package/dist/web/assets/ini-m0T7q4gQ.js.gz +0 -0
  379. package/dist/web/assets/java-Buy07jGn.js.br +0 -0
  380. package/dist/web/assets/java-Buy07jGn.js.gz +0 -0
  381. package/dist/web/assets/javascript-Cjq3CbRL.js.br +0 -0
  382. package/dist/web/assets/javascript-Cjq3CbRL.js.gz +0 -0
  383. package/dist/web/assets/jinja-BShBWfs5.js.br +0 -0
  384. package/dist/web/assets/jinja-BShBWfs5.js.gz +0 -0
  385. package/dist/web/assets/{jira-watcher-section-CeLmhvu1.js → jira-watcher-section-_pTAalcO.js} +1 -1
  386. package/dist/web/assets/jira-watcher-section-_pTAalcO.js.br +0 -0
  387. package/dist/web/assets/jira-watcher-section-_pTAalcO.js.gz +0 -0
  388. package/dist/web/assets/jison-dN2Nf_Dr.js.br +0 -0
  389. package/dist/web/assets/jison-dN2Nf_Dr.js.gz +0 -0
  390. package/dist/web/assets/json-BSVu8IqD.js.br +0 -0
  391. package/dist/web/assets/json-BSVu8IqD.js.gz +0 -0
  392. package/dist/web/assets/json5-NN_Vb7e6.js.br +0 -0
  393. package/dist/web/assets/json5-NN_Vb7e6.js.gz +0 -0
  394. package/dist/web/assets/jsonc-BdyZhBUw.js.br +0 -0
  395. package/dist/web/assets/jsonc-BdyZhBUw.js.gz +0 -0
  396. package/dist/web/assets/jsonl-BsDSNvwi.js.br +0 -0
  397. package/dist/web/assets/jsonl-BsDSNvwi.js.gz +0 -0
  398. package/dist/web/assets/jsonnet-Gm963F-U.js.br +0 -0
  399. package/dist/web/assets/jsonnet-Gm963F-U.js.gz +0 -0
  400. package/dist/web/assets/jssm-Ds3bKWgJ.js.br +0 -0
  401. package/dist/web/assets/jssm-Ds3bKWgJ.js.gz +0 -0
  402. package/dist/web/assets/jsx-BT5mW58X.js.br +0 -0
  403. package/dist/web/assets/jsx-BT5mW58X.js.gz +0 -0
  404. package/dist/web/assets/julia-5U0vR-uJ.js.br +0 -0
  405. package/dist/web/assets/julia-5U0vR-uJ.js.gz +0 -0
  406. package/dist/web/assets/just-BMppVRy6.js.br +0 -0
  407. package/dist/web/assets/just-BMppVRy6.js.gz +0 -0
  408. package/dist/web/assets/kanagawa-dragon-BvNvf7xd.js.br +0 -0
  409. package/dist/web/assets/kanagawa-dragon-BvNvf7xd.js.gz +0 -0
  410. package/dist/web/assets/kanagawa-lotus-CuSiliSn.js.br +0 -0
  411. package/dist/web/assets/kanagawa-lotus-CuSiliSn.js.gz +0 -0
  412. package/dist/web/assets/kanagawa-wave-C6g-d6jT.js.br +0 -0
  413. package/dist/web/assets/kanagawa-wave-C6g-d6jT.js.gz +0 -0
  414. package/dist/web/assets/kdl-Bx4kZef-.js.br +0 -0
  415. package/dist/web/assets/kdl-Bx4kZef-.js.gz +0 -0
  416. package/dist/web/assets/keybindings-store-BwDohs5S.js +1 -0
  417. package/dist/web/assets/{keyboard-shortcuts-section-PVz6kuh2.js → keyboard-shortcuts-section-DpW1qIXk.js} +1 -1
  418. package/dist/web/assets/keyboard-shortcuts-section-DpW1qIXk.js.br +0 -0
  419. package/dist/web/assets/keyboard-shortcuts-section-DpW1qIXk.js.gz +0 -0
  420. package/dist/web/assets/kotlin-qvaVvCcm.js.br +0 -0
  421. package/dist/web/assets/kotlin-qvaVvCcm.js.gz +0 -0
  422. package/dist/web/assets/kusto-BPLyNCN6.js.br +0 -0
  423. package/dist/web/assets/kusto-BPLyNCN6.js.gz +0 -0
  424. package/dist/web/assets/laserwave-Sf8ZEhWP.js.br +0 -0
  425. package/dist/web/assets/laserwave-Sf8ZEhWP.js.gz +0 -0
  426. package/dist/web/assets/latex-DSSOKjis.js.br +0 -0
  427. package/dist/web/assets/latex-DSSOKjis.js.gz +0 -0
  428. package/dist/web/assets/lean-DGe6uqgk.js.br +0 -0
  429. package/dist/web/assets/lean-DGe6uqgk.js.gz +0 -0
  430. package/dist/web/assets/less-CqM85x-9.js.br +0 -0
  431. package/dist/web/assets/less-CqM85x-9.js.gz +0 -0
  432. package/dist/web/assets/lib-DBeVwCnC.js.br +0 -0
  433. package/dist/web/assets/lib-DBeVwCnC.js.gz +0 -0
  434. package/dist/web/assets/libesm-CPh1Av0r.js.br +0 -0
  435. package/dist/web/assets/libesm-CPh1Av0r.js.gz +0 -0
  436. package/dist/web/assets/light-plus-DBtKwhFA.js.br +0 -0
  437. package/dist/web/assets/light-plus-DBtKwhFA.js.gz +0 -0
  438. package/dist/web/assets/liquid-C24dKoyI.js.br +0 -0
  439. package/dist/web/assets/liquid-C24dKoyI.js.gz +0 -0
  440. package/dist/web/assets/llvm-Dpbq3gky.js.br +0 -0
  441. package/dist/web/assets/llvm-Dpbq3gky.js.gz +0 -0
  442. package/dist/web/assets/log-qKMcPm9S.js.br +0 -0
  443. package/dist/web/assets/log-qKMcPm9S.js.gz +0 -0
  444. package/dist/web/assets/logo-DFo7i5KH.js.br +0 -0
  445. package/dist/web/assets/logo-DFo7i5KH.js.gz +0 -0
  446. package/dist/web/assets/lua-DNOsnyhn.js.br +0 -0
  447. package/dist/web/assets/lua-DNOsnyhn.js.gz +0 -0
  448. package/dist/web/assets/luau-DGlqWFyL.js.br +0 -0
  449. package/dist/web/assets/luau-DGlqWFyL.js.gz +0 -0
  450. package/dist/web/assets/make-CixdvUQe.js.br +0 -0
  451. package/dist/web/assets/make-CixdvUQe.js.gz +0 -0
  452. package/dist/web/assets/markdown-CmRnbngE.js.br +0 -0
  453. package/dist/web/assets/markdown-CmRnbngE.js.gz +0 -0
  454. package/dist/web/assets/markdown-renderer-BzkIv5_4.js +1 -0
  455. package/dist/web/assets/markdown-renderer-CjEg_HGP.js +3 -0
  456. package/dist/web/assets/markdown-renderer-CjEg_HGP.js.br +0 -0
  457. package/dist/web/assets/markdown-renderer-CjEg_HGP.js.gz +0 -0
  458. package/dist/web/assets/marko-26MHO_Q9.js.br +0 -0
  459. package/dist/web/assets/marko-26MHO_Q9.js.gz +0 -0
  460. package/dist/web/assets/material-theme-WDUbafB-.js.br +0 -0
  461. package/dist/web/assets/material-theme-WDUbafB-.js.gz +0 -0
  462. package/dist/web/assets/material-theme-darker-u8y2xpOk.js.br +0 -0
  463. package/dist/web/assets/material-theme-darker-u8y2xpOk.js.gz +0 -0
  464. package/dist/web/assets/material-theme-lighter-cyQZK3Tg.js.br +0 -0
  465. package/dist/web/assets/material-theme-lighter-cyQZK3Tg.js.gz +0 -0
  466. package/dist/web/assets/material-theme-ocean-LBAVvw7k.js.br +0 -0
  467. package/dist/web/assets/material-theme-ocean-LBAVvw7k.js.gz +0 -0
  468. package/dist/web/assets/material-theme-palenight-BJqhBxL0.js.br +0 -0
  469. package/dist/web/assets/material-theme-palenight-BJqhBxL0.js.gz +0 -0
  470. package/dist/web/assets/matlab-B38sOJee.js.br +0 -0
  471. package/dist/web/assets/matlab-B38sOJee.js.gz +0 -0
  472. package/dist/web/assets/mdc-Dhw9mGrC.js.br +0 -0
  473. package/dist/web/assets/mdc-Dhw9mGrC.js.gz +0 -0
  474. package/dist/web/assets/mdx-C8QrE_IW.js.br +0 -0
  475. package/dist/web/assets/mdx-C8QrE_IW.js.gz +0 -0
  476. package/dist/web/assets/{media-url-yfqHpPz0.js → media-url-BmIBOO3z.js} +1 -1
  477. package/dist/web/assets/mermaid-BQ-eeU8A.js.br +0 -0
  478. package/dist/web/assets/mermaid-BQ-eeU8A.js.gz +0 -0
  479. package/dist/web/assets/min-dark-D4gNa5tv.js.br +0 -0
  480. package/dist/web/assets/min-dark-D4gNa5tv.js.gz +0 -0
  481. package/dist/web/assets/min-light-Dfbhn_PL.js.br +0 -0
  482. package/dist/web/assets/min-light-Dfbhn_PL.js.gz +0 -0
  483. package/dist/web/assets/mipsasm-bLOhJkdm.js.br +0 -0
  484. package/dist/web/assets/mipsasm-bLOhJkdm.js.gz +0 -0
  485. package/dist/web/assets/mobile-bottom-sheet-C3TniEP-.js.br +0 -0
  486. package/dist/web/assets/mobile-bottom-sheet-C3TniEP-.js.gz +0 -0
  487. package/dist/web/assets/{mobile-explorer-sheet-CUG_owdf.js → mobile-explorer-sheet-DjeEB2i8.js} +1 -1
  488. package/dist/web/assets/mobile-explorer-sheet-DjeEB2i8.js.br +0 -0
  489. package/dist/web/assets/mobile-explorer-sheet-DjeEB2i8.js.gz +0 -0
  490. package/dist/web/assets/mojo-B0BCOMQW.js.br +0 -0
  491. package/dist/web/assets/mojo-B0BCOMQW.js.gz +0 -0
  492. package/dist/web/assets/monaco/vs/_commonjsHelpers-CT9FvmAN.js +1 -0
  493. package/dist/web/assets/monaco/vs/abap-D-t0cyap.js +1 -0
  494. package/dist/web/assets/monaco/vs/abap-D-t0cyap.js.br +0 -0
  495. package/dist/web/assets/monaco/vs/abap-D-t0cyap.js.gz +0 -0
  496. package/dist/web/assets/monaco/vs/apex-CcIm7xu6.js +1 -0
  497. package/dist/web/assets/monaco/vs/apex-CcIm7xu6.js.br +0 -0
  498. package/dist/web/assets/monaco/vs/apex-CcIm7xu6.js.gz +0 -0
  499. package/dist/web/assets/monaco/vs/assets/css.worker-HnVq6Ewq.js +93 -0
  500. package/dist/web/assets/monaco/vs/assets/css.worker-HnVq6Ewq.js.br +0 -0
  501. package/dist/web/assets/monaco/vs/assets/css.worker-HnVq6Ewq.js.gz +0 -0
  502. package/dist/web/assets/monaco/vs/assets/editor.worker-Be8ye1pW.js +26 -0
  503. package/dist/web/assets/monaco/vs/assets/editor.worker-Be8ye1pW.js.br +0 -0
  504. package/dist/web/assets/monaco/vs/assets/editor.worker-Be8ye1pW.js.gz +0 -0
  505. package/dist/web/assets/monaco/vs/assets/html.worker-B51mlPHg.js +470 -0
  506. package/dist/web/assets/monaco/vs/assets/html.worker-B51mlPHg.js.br +0 -0
  507. package/dist/web/assets/monaco/vs/assets/html.worker-B51mlPHg.js.gz +0 -0
  508. package/dist/web/assets/monaco/vs/assets/json.worker-DKiEKt88.js +58 -0
  509. package/dist/web/assets/monaco/vs/assets/json.worker-DKiEKt88.js.br +0 -0
  510. package/dist/web/assets/monaco/vs/assets/json.worker-DKiEKt88.js.gz +0 -0
  511. package/dist/web/assets/monaco/vs/assets/ts.worker-CMbG-7ft.js +67731 -0
  512. package/dist/web/assets/monaco/vs/assets/ts.worker-CMbG-7ft.js.br +0 -0
  513. package/dist/web/assets/monaco/vs/assets/ts.worker-CMbG-7ft.js.gz +0 -0
  514. package/dist/web/assets/monaco/vs/azcli-BA0tQDCg.js +1 -0
  515. package/dist/web/assets/monaco/vs/basic-languages/monaco.contribution.js +1 -0
  516. package/dist/web/assets/monaco/vs/basic-languages/monaco.contribution.js.br +0 -0
  517. package/dist/web/assets/monaco/vs/basic-languages/monaco.contribution.js.gz +0 -0
  518. package/dist/web/assets/monaco/vs/bat-C397hTD6.js +1 -0
  519. package/dist/web/assets/monaco/vs/bat-C397hTD6.js.br +0 -0
  520. package/dist/web/assets/monaco/vs/bat-C397hTD6.js.gz +0 -0
  521. package/dist/web/assets/monaco/vs/bicep-DF5aW17k.js +2 -0
  522. package/dist/web/assets/monaco/vs/bicep-DF5aW17k.js.br +0 -0
  523. package/dist/web/assets/monaco/vs/bicep-DF5aW17k.js.gz +0 -0
  524. package/dist/web/assets/monaco/vs/cameligo-plsz8qhj.js +1 -0
  525. package/dist/web/assets/monaco/vs/cameligo-plsz8qhj.js.br +0 -0
  526. package/dist/web/assets/monaco/vs/cameligo-plsz8qhj.js.gz +0 -0
  527. package/dist/web/assets/monaco/vs/clojure-Y2auQMzK.js +1 -0
  528. package/dist/web/assets/monaco/vs/clojure-Y2auQMzK.js.br +0 -0
  529. package/dist/web/assets/monaco/vs/clojure-Y2auQMzK.js.gz +0 -0
  530. package/dist/web/assets/monaco/vs/coffee-Bu45yuWE.js +1 -0
  531. package/dist/web/assets/monaco/vs/coffee-Bu45yuWE.js.br +0 -0
  532. package/dist/web/assets/monaco/vs/coffee-Bu45yuWE.js.gz +0 -0
  533. package/dist/web/assets/monaco/vs/cpp-CkKPQIni.js +1 -0
  534. package/dist/web/assets/monaco/vs/cpp-CkKPQIni.js.br +0 -0
  535. package/dist/web/assets/monaco/vs/cpp-CkKPQIni.js.gz +0 -0
  536. package/dist/web/assets/monaco/vs/csharp-CX28MZyh.js +1 -0
  537. package/dist/web/assets/monaco/vs/csharp-CX28MZyh.js.br +0 -0
  538. package/dist/web/assets/monaco/vs/csharp-CX28MZyh.js.gz +0 -0
  539. package/dist/web/assets/monaco/vs/csp-D8uWnyxW.js +1 -0
  540. package/dist/web/assets/monaco/vs/csp-D8uWnyxW.js.br +0 -0
  541. package/dist/web/assets/monaco/vs/csp-D8uWnyxW.js.gz +0 -0
  542. package/dist/web/assets/monaco/vs/css-CaeNmE3S.js +3 -0
  543. package/dist/web/assets/monaco/vs/css-CaeNmE3S.js.br +0 -0
  544. package/dist/web/assets/monaco/vs/css-CaeNmE3S.js.gz +0 -0
  545. package/dist/web/assets/monaco/vs/cssMode-CjiAH6dQ.js +1 -0
  546. package/dist/web/assets/monaco/vs/cssMode-CjiAH6dQ.js.br +0 -0
  547. package/dist/web/assets/monaco/vs/cssMode-CjiAH6dQ.js.gz +0 -0
  548. package/dist/web/assets/monaco/vs/cypher-DVThT8BS.js +1 -0
  549. package/dist/web/assets/monaco/vs/cypher-DVThT8BS.js.br +0 -0
  550. package/dist/web/assets/monaco/vs/cypher-DVThT8BS.js.gz +0 -0
  551. package/dist/web/assets/monaco/vs/dart-CmGfCvrO.js +1 -0
  552. package/dist/web/assets/monaco/vs/dart-CmGfCvrO.js.br +0 -0
  553. package/dist/web/assets/monaco/vs/dart-CmGfCvrO.js.gz +0 -0
  554. package/dist/web/assets/monaco/vs/dockerfile-CZqqYdch.js +1 -0
  555. package/dist/web/assets/monaco/vs/dockerfile-CZqqYdch.js.br +0 -0
  556. package/dist/web/assets/monaco/vs/dockerfile-CZqqYdch.js.gz +0 -0
  557. package/dist/web/assets/monaco/vs/ecl-30fUercY.js +1 -0
  558. package/dist/web/assets/monaco/vs/ecl-30fUercY.js.br +0 -0
  559. package/dist/web/assets/monaco/vs/ecl-30fUercY.js.gz +0 -0
  560. package/dist/web/assets/monaco/vs/editor/editor.main.css +1 -0
  561. package/dist/web/assets/monaco/vs/editor/editor.main.css.br +0 -0
  562. package/dist/web/assets/monaco/vs/editor/editor.main.css.gz +0 -0
  563. package/dist/web/assets/monaco/vs/editor/editor.main.js +5 -0
  564. package/dist/web/assets/monaco/vs/editor/editor.main.js.br +0 -0
  565. package/dist/web/assets/monaco/vs/editor/editor.main.js.gz +0 -0
  566. package/dist/web/assets/monaco/vs/editor.api-CalNCsUg.js +903 -0
  567. package/dist/web/assets/monaco/vs/editor.api-CalNCsUg.js.br +0 -0
  568. package/dist/web/assets/monaco/vs/editor.api-CalNCsUg.js.gz +0 -0
  569. package/dist/web/assets/monaco/vs/elixir-xjPaIfzF.js +1 -0
  570. package/dist/web/assets/monaco/vs/elixir-xjPaIfzF.js.br +0 -0
  571. package/dist/web/assets/monaco/vs/elixir-xjPaIfzF.js.gz +0 -0
  572. package/dist/web/assets/monaco/vs/flow9-DqtmStfK.js +1 -0
  573. package/dist/web/assets/monaco/vs/flow9-DqtmStfK.js.br +0 -0
  574. package/dist/web/assets/monaco/vs/flow9-DqtmStfK.js.gz +0 -0
  575. package/dist/web/assets/monaco/vs/freemarker2-Cz_sV6Md.js +3 -0
  576. package/dist/web/assets/monaco/vs/freemarker2-Cz_sV6Md.js.br +0 -0
  577. package/dist/web/assets/monaco/vs/freemarker2-Cz_sV6Md.js.gz +0 -0
  578. package/dist/web/assets/monaco/vs/fsharp-BOMdg4U1.js +1 -0
  579. package/dist/web/assets/monaco/vs/fsharp-BOMdg4U1.js.br +0 -0
  580. package/dist/web/assets/monaco/vs/fsharp-BOMdg4U1.js.gz +0 -0
  581. package/dist/web/assets/monaco/vs/go-D_hbi-Jt.js +1 -0
  582. package/dist/web/assets/monaco/vs/go-D_hbi-Jt.js.br +0 -0
  583. package/dist/web/assets/monaco/vs/go-D_hbi-Jt.js.gz +0 -0
  584. package/dist/web/assets/monaco/vs/graphql-CKUU4kLG.js +1 -0
  585. package/dist/web/assets/monaco/vs/graphql-CKUU4kLG.js.br +0 -0
  586. package/dist/web/assets/monaco/vs/graphql-CKUU4kLG.js.gz +0 -0
  587. package/dist/web/assets/monaco/vs/handlebars-OwglfO-1.js +1 -0
  588. package/dist/web/assets/monaco/vs/handlebars-OwglfO-1.js.br +0 -0
  589. package/dist/web/assets/monaco/vs/handlebars-OwglfO-1.js.gz +0 -0
  590. package/dist/web/assets/monaco/vs/hcl-DTaboeZW.js +1 -0
  591. package/dist/web/assets/monaco/vs/hcl-DTaboeZW.js.br +0 -0
  592. package/dist/web/assets/monaco/vs/hcl-DTaboeZW.js.gz +0 -0
  593. package/dist/web/assets/monaco/vs/html-Pa1xEWsY.js +1 -0
  594. package/dist/web/assets/monaco/vs/html-Pa1xEWsY.js.br +0 -0
  595. package/dist/web/assets/monaco/vs/html-Pa1xEWsY.js.gz +0 -0
  596. package/dist/web/assets/monaco/vs/htmlMode-Bz67EXwp.js +1 -0
  597. package/dist/web/assets/monaco/vs/htmlMode-Bz67EXwp.js.br +0 -0
  598. package/dist/web/assets/monaco/vs/htmlMode-Bz67EXwp.js.gz +0 -0
  599. package/dist/web/assets/monaco/vs/ini-CsNwO04R.js +1 -0
  600. package/dist/web/assets/monaco/vs/ini-CsNwO04R.js.br +0 -0
  601. package/dist/web/assets/monaco/vs/ini-CsNwO04R.js.gz +0 -0
  602. package/dist/web/assets/monaco/vs/java-CI4ZMsH9.js +1 -0
  603. package/dist/web/assets/monaco/vs/java-CI4ZMsH9.js.br +0 -0
  604. package/dist/web/assets/monaco/vs/java-CI4ZMsH9.js.gz +0 -0
  605. package/dist/web/assets/monaco/vs/javascript-PczUCGdz.js +1 -0
  606. package/dist/web/assets/monaco/vs/jsonMode-DULH5oaX.js +7 -0
  607. package/dist/web/assets/monaco/vs/jsonMode-DULH5oaX.js.br +0 -0
  608. package/dist/web/assets/monaco/vs/jsonMode-DULH5oaX.js.gz +0 -0
  609. package/dist/web/assets/monaco/vs/julia-BwzEvaQw.js +1 -0
  610. package/dist/web/assets/monaco/vs/julia-BwzEvaQw.js.br +0 -0
  611. package/dist/web/assets/monaco/vs/julia-BwzEvaQw.js.gz +0 -0
  612. package/dist/web/assets/monaco/vs/kotlin-IUYPiTV8.js +1 -0
  613. package/dist/web/assets/monaco/vs/kotlin-IUYPiTV8.js.br +0 -0
  614. package/dist/web/assets/monaco/vs/kotlin-IUYPiTV8.js.gz +0 -0
  615. package/dist/web/assets/monaco/vs/language/css/monaco.contribution.js +1 -0
  616. package/dist/web/assets/monaco/vs/language/html/monaco.contribution.js +1 -0
  617. package/dist/web/assets/monaco/vs/language/json/monaco.contribution.js +1 -0
  618. package/dist/web/assets/monaco/vs/language/typescript/monaco.contribution.js +1 -0
  619. package/dist/web/assets/monaco/vs/less-C0eDYdqa.js +2 -0
  620. package/dist/web/assets/monaco/vs/less-C0eDYdqa.js.br +0 -0
  621. package/dist/web/assets/monaco/vs/less-C0eDYdqa.js.gz +0 -0
  622. package/dist/web/assets/monaco/vs/lexon-iON-Kj97.js +1 -0
  623. package/dist/web/assets/monaco/vs/lexon-iON-Kj97.js.br +0 -0
  624. package/dist/web/assets/monaco/vs/lexon-iON-Kj97.js.gz +0 -0
  625. package/dist/web/assets/monaco/vs/liquid-DqKjdPGy.js +1 -0
  626. package/dist/web/assets/monaco/vs/liquid-DqKjdPGy.js.br +0 -0
  627. package/dist/web/assets/monaco/vs/liquid-DqKjdPGy.js.gz +0 -0
  628. package/dist/web/assets/monaco/vs/loader.js +1368 -0
  629. package/dist/web/assets/monaco/vs/loader.js.br +0 -0
  630. package/dist/web/assets/monaco/vs/loader.js.gz +0 -0
  631. package/dist/web/assets/monaco/vs/lspLanguageFeatures-kM9O9rjY.js +4 -0
  632. package/dist/web/assets/monaco/vs/lspLanguageFeatures-kM9O9rjY.js.br +0 -0
  633. package/dist/web/assets/monaco/vs/lspLanguageFeatures-kM9O9rjY.js.gz +0 -0
  634. package/dist/web/assets/monaco/vs/lua-DtygF91M.js +1 -0
  635. package/dist/web/assets/monaco/vs/lua-DtygF91M.js.br +0 -0
  636. package/dist/web/assets/monaco/vs/lua-DtygF91M.js.gz +0 -0
  637. package/dist/web/assets/monaco/vs/m3-CsR4AuFi.js +1 -0
  638. package/dist/web/assets/monaco/vs/m3-CsR4AuFi.js.br +0 -0
  639. package/dist/web/assets/monaco/vs/m3-CsR4AuFi.js.gz +0 -0
  640. package/dist/web/assets/monaco/vs/markdown-C_rD0bIw.js +1 -0
  641. package/dist/web/assets/monaco/vs/markdown-C_rD0bIw.js.br +0 -0
  642. package/dist/web/assets/monaco/vs/markdown-C_rD0bIw.js.gz +0 -0
  643. package/dist/web/assets/monaco/vs/mdx-DEWtB1K5.js +1 -0
  644. package/dist/web/assets/monaco/vs/mdx-DEWtB1K5.js.br +0 -0
  645. package/dist/web/assets/monaco/vs/mdx-DEWtB1K5.js.gz +0 -0
  646. package/dist/web/assets/monaco/vs/mips-CiYP61RB.js +1 -0
  647. package/dist/web/assets/monaco/vs/mips-CiYP61RB.js.br +0 -0
  648. package/dist/web/assets/monaco/vs/mips-CiYP61RB.js.gz +0 -0
  649. package/dist/web/assets/monaco/vs/monaco.contribution-D2OdxNBt.js +1 -0
  650. package/dist/web/assets/monaco/vs/monaco.contribution-D2OdxNBt.js.br +0 -0
  651. package/dist/web/assets/monaco/vs/monaco.contribution-D2OdxNBt.js.gz +0 -0
  652. package/dist/web/assets/monaco/vs/monaco.contribution-DO3azKX8.js +1 -0
  653. package/dist/web/assets/monaco/vs/monaco.contribution-DO3azKX8.js.br +0 -0
  654. package/dist/web/assets/monaco/vs/monaco.contribution-DO3azKX8.js.gz +0 -0
  655. package/dist/web/assets/monaco/vs/monaco.contribution-EcChJV6a.js +1 -0
  656. package/dist/web/assets/monaco/vs/monaco.contribution-EcChJV6a.js.br +0 -0
  657. package/dist/web/assets/monaco/vs/monaco.contribution-EcChJV6a.js.gz +0 -0
  658. package/dist/web/assets/monaco/vs/monaco.contribution-qLAYrEOP.js +1 -0
  659. package/dist/web/assets/monaco/vs/monaco.contribution-qLAYrEOP.js.br +0 -0
  660. package/dist/web/assets/monaco/vs/monaco.contribution-qLAYrEOP.js.gz +0 -0
  661. package/dist/web/assets/monaco/vs/msdax-C38-sJlp.js +1 -0
  662. package/dist/web/assets/monaco/vs/msdax-C38-sJlp.js.br +0 -0
  663. package/dist/web/assets/monaco/vs/msdax-C38-sJlp.js.gz +0 -0
  664. package/dist/web/assets/monaco/vs/mysql-CdtbpvbG.js +1 -0
  665. package/dist/web/assets/monaco/vs/mysql-CdtbpvbG.js.br +0 -0
  666. package/dist/web/assets/monaco/vs/mysql-CdtbpvbG.js.gz +0 -0
  667. package/dist/web/assets/monaco/vs/nls.messages-loader.js +1 -0
  668. package/dist/web/assets/monaco/vs/objective-c-CntZFaHX.js +1 -0
  669. package/dist/web/assets/monaco/vs/objective-c-CntZFaHX.js.br +0 -0
  670. package/dist/web/assets/monaco/vs/objective-c-CntZFaHX.js.gz +0 -0
  671. package/dist/web/assets/monaco/vs/pascal-r6kuqfl_.js +1 -0
  672. package/dist/web/assets/monaco/vs/pascal-r6kuqfl_.js.br +0 -0
  673. package/dist/web/assets/monaco/vs/pascal-r6kuqfl_.js.gz +0 -0
  674. package/dist/web/assets/monaco/vs/pascaligo-BiXoTmXh.js +1 -0
  675. package/dist/web/assets/monaco/vs/pascaligo-BiXoTmXh.js.br +0 -0
  676. package/dist/web/assets/monaco/vs/pascaligo-BiXoTmXh.js.gz +0 -0
  677. package/dist/web/assets/monaco/vs/perl-DABw_TcH.js +1 -0
  678. package/dist/web/assets/monaco/vs/perl-DABw_TcH.js.br +0 -0
  679. package/dist/web/assets/monaco/vs/perl-DABw_TcH.js.gz +0 -0
  680. package/dist/web/assets/monaco/vs/pgsql-me_jFXeX.js +1 -0
  681. package/dist/web/assets/monaco/vs/pgsql-me_jFXeX.js.br +0 -0
  682. package/dist/web/assets/monaco/vs/pgsql-me_jFXeX.js.gz +0 -0
  683. package/dist/web/assets/monaco/vs/php-D_kh-9LK.js +1 -0
  684. package/dist/web/assets/monaco/vs/php-D_kh-9LK.js.br +0 -0
  685. package/dist/web/assets/monaco/vs/php-D_kh-9LK.js.gz +0 -0
  686. package/dist/web/assets/monaco/vs/pla-VfZjczW0.js +1 -0
  687. package/dist/web/assets/monaco/vs/pla-VfZjczW0.js.br +0 -0
  688. package/dist/web/assets/monaco/vs/pla-VfZjczW0.js.gz +0 -0
  689. package/dist/web/assets/monaco/vs/postiats-BBSzz8Pk.js +1 -0
  690. package/dist/web/assets/monaco/vs/postiats-BBSzz8Pk.js.br +0 -0
  691. package/dist/web/assets/monaco/vs/postiats-BBSzz8Pk.js.gz +0 -0
  692. package/dist/web/assets/monaco/vs/powerquery-Dt-g_2cc.js +1 -0
  693. package/dist/web/assets/monaco/vs/powerquery-Dt-g_2cc.js.br +0 -0
  694. package/dist/web/assets/monaco/vs/powerquery-Dt-g_2cc.js.gz +0 -0
  695. package/dist/web/assets/monaco/vs/powershell-B-7ap1zc.js +1 -0
  696. package/dist/web/assets/monaco/vs/powershell-B-7ap1zc.js.br +0 -0
  697. package/dist/web/assets/monaco/vs/powershell-B-7ap1zc.js.gz +0 -0
  698. package/dist/web/assets/monaco/vs/protobuf-BmtuEB1A.js +2 -0
  699. package/dist/web/assets/monaco/vs/protobuf-BmtuEB1A.js.br +0 -0
  700. package/dist/web/assets/monaco/vs/protobuf-BmtuEB1A.js.gz +0 -0
  701. package/dist/web/assets/monaco/vs/pug-BRpRNeEb.js +1 -0
  702. package/dist/web/assets/monaco/vs/pug-BRpRNeEb.js.br +0 -0
  703. package/dist/web/assets/monaco/vs/pug-BRpRNeEb.js.gz +0 -0
  704. package/dist/web/assets/monaco/vs/python-Cr0UkIbn.js +1 -0
  705. package/dist/web/assets/monaco/vs/python-Cr0UkIbn.js.br +0 -0
  706. package/dist/web/assets/monaco/vs/python-Cr0UkIbn.js.gz +0 -0
  707. package/dist/web/assets/monaco/vs/qsharp-BzsFaUU9.js +1 -0
  708. package/dist/web/assets/monaco/vs/qsharp-BzsFaUU9.js.br +0 -0
  709. package/dist/web/assets/monaco/vs/qsharp-BzsFaUU9.js.gz +0 -0
  710. package/dist/web/assets/monaco/vs/r-f8dDdrp4.js +1 -0
  711. package/dist/web/assets/monaco/vs/r-f8dDdrp4.js.br +0 -0
  712. package/dist/web/assets/monaco/vs/r-f8dDdrp4.js.gz +0 -0
  713. package/dist/web/assets/monaco/vs/razor-BYAHOTkz.js +1 -0
  714. package/dist/web/assets/monaco/vs/razor-BYAHOTkz.js.br +0 -0
  715. package/dist/web/assets/monaco/vs/razor-BYAHOTkz.js.gz +0 -0
  716. package/dist/web/assets/monaco/vs/redis-fvZQY4PI.js +1 -0
  717. package/dist/web/assets/monaco/vs/redis-fvZQY4PI.js.br +0 -0
  718. package/dist/web/assets/monaco/vs/redis-fvZQY4PI.js.gz +0 -0
  719. package/dist/web/assets/monaco/vs/redshift-45Et0LQi.js +1 -0
  720. package/dist/web/assets/monaco/vs/redshift-45Et0LQi.js.br +0 -0
  721. package/dist/web/assets/monaco/vs/redshift-45Et0LQi.js.gz +0 -0
  722. package/dist/web/assets/monaco/vs/restructuredtext-C7UUFKFD.js +1 -0
  723. package/dist/web/assets/monaco/vs/restructuredtext-C7UUFKFD.js.br +0 -0
  724. package/dist/web/assets/monaco/vs/restructuredtext-C7UUFKFD.js.gz +0 -0
  725. package/dist/web/assets/monaco/vs/ruby-CZO8zYTz.js +1 -0
  726. package/dist/web/assets/monaco/vs/ruby-CZO8zYTz.js.br +0 -0
  727. package/dist/web/assets/monaco/vs/ruby-CZO8zYTz.js.gz +0 -0
  728. package/dist/web/assets/monaco/vs/rust-Bfetafyc.js +1 -0
  729. package/dist/web/assets/monaco/vs/rust-Bfetafyc.js.br +0 -0
  730. package/dist/web/assets/monaco/vs/rust-Bfetafyc.js.gz +0 -0
  731. package/dist/web/assets/monaco/vs/sb-3GYllVck.js +1 -0
  732. package/dist/web/assets/monaco/vs/sb-3GYllVck.js.br +0 -0
  733. package/dist/web/assets/monaco/vs/sb-3GYllVck.js.gz +0 -0
  734. package/dist/web/assets/monaco/vs/scala-foMgrKo1.js +1 -0
  735. package/dist/web/assets/monaco/vs/scala-foMgrKo1.js.br +0 -0
  736. package/dist/web/assets/monaco/vs/scala-foMgrKo1.js.gz +0 -0
  737. package/dist/web/assets/monaco/vs/scheme-CHdMtr7p.js +1 -0
  738. package/dist/web/assets/monaco/vs/scheme-CHdMtr7p.js.br +0 -0
  739. package/dist/web/assets/monaco/vs/scheme-CHdMtr7p.js.gz +0 -0
  740. package/dist/web/assets/monaco/vs/scss-C1cmLt9V.js +3 -0
  741. package/dist/web/assets/monaco/vs/scss-C1cmLt9V.js.br +0 -0
  742. package/dist/web/assets/monaco/vs/scss-C1cmLt9V.js.gz +0 -0
  743. package/dist/web/assets/monaco/vs/shell-ClXCKCEW.js +1 -0
  744. package/dist/web/assets/monaco/vs/shell-ClXCKCEW.js.br +0 -0
  745. package/dist/web/assets/monaco/vs/shell-ClXCKCEW.js.gz +0 -0
  746. package/dist/web/assets/monaco/vs/solidity-MZ6ExpPy.js +1 -0
  747. package/dist/web/assets/monaco/vs/solidity-MZ6ExpPy.js.br +0 -0
  748. package/dist/web/assets/monaco/vs/solidity-MZ6ExpPy.js.gz +0 -0
  749. package/dist/web/assets/monaco/vs/sophia-DWkuSsPQ.js +1 -0
  750. package/dist/web/assets/monaco/vs/sophia-DWkuSsPQ.js.br +0 -0
  751. package/dist/web/assets/monaco/vs/sophia-DWkuSsPQ.js.gz +0 -0
  752. package/dist/web/assets/monaco/vs/sparql-AUGFYSyk.js +1 -0
  753. package/dist/web/assets/monaco/vs/sparql-AUGFYSyk.js.br +0 -0
  754. package/dist/web/assets/monaco/vs/sparql-AUGFYSyk.js.gz +0 -0
  755. package/dist/web/assets/monaco/vs/sql-32GpJSV2.js +1 -0
  756. package/dist/web/assets/monaco/vs/sql-32GpJSV2.js.br +0 -0
  757. package/dist/web/assets/monaco/vs/sql-32GpJSV2.js.gz +0 -0
  758. package/dist/web/assets/monaco/vs/st-CuDFIVZ_.js +1 -0
  759. package/dist/web/assets/monaco/vs/st-CuDFIVZ_.js.br +0 -0
  760. package/dist/web/assets/monaco/vs/st-CuDFIVZ_.js.gz +0 -0
  761. package/dist/web/assets/monaco/vs/swift-n-2HociN.js +3 -0
  762. package/dist/web/assets/monaco/vs/swift-n-2HociN.js.br +0 -0
  763. package/dist/web/assets/monaco/vs/swift-n-2HociN.js.gz +0 -0
  764. package/dist/web/assets/monaco/vs/systemverilog-Ch4vA8Yt.js +1 -0
  765. package/dist/web/assets/monaco/vs/systemverilog-Ch4vA8Yt.js.br +0 -0
  766. package/dist/web/assets/monaco/vs/systemverilog-Ch4vA8Yt.js.gz +0 -0
  767. package/dist/web/assets/monaco/vs/tcl-D74tq1nH.js +1 -0
  768. package/dist/web/assets/monaco/vs/tcl-D74tq1nH.js.br +0 -0
  769. package/dist/web/assets/monaco/vs/tcl-D74tq1nH.js.gz +0 -0
  770. package/dist/web/assets/monaco/vs/tsMode-CZz1Umrk.js +11 -0
  771. package/dist/web/assets/monaco/vs/tsMode-CZz1Umrk.js.br +0 -0
  772. package/dist/web/assets/monaco/vs/tsMode-CZz1Umrk.js.gz +0 -0
  773. package/dist/web/assets/monaco/vs/twig-C6taOxMV.js +1 -0
  774. package/dist/web/assets/monaco/vs/twig-C6taOxMV.js.br +0 -0
  775. package/dist/web/assets/monaco/vs/twig-C6taOxMV.js.gz +0 -0
  776. package/dist/web/assets/monaco/vs/typescript-DfOrAzoV.js +1 -0
  777. package/dist/web/assets/monaco/vs/typescript-DfOrAzoV.js.br +0 -0
  778. package/dist/web/assets/monaco/vs/typescript-DfOrAzoV.js.gz +0 -0
  779. package/dist/web/assets/monaco/vs/typespec-D-PIh9Xw.js +1 -0
  780. package/dist/web/assets/monaco/vs/typespec-D-PIh9Xw.js.br +0 -0
  781. package/dist/web/assets/monaco/vs/typespec-D-PIh9Xw.js.gz +0 -0
  782. package/dist/web/assets/monaco/vs/vb-Dyb2648j.js +1 -0
  783. package/dist/web/assets/monaco/vs/vb-Dyb2648j.js.br +0 -0
  784. package/dist/web/assets/monaco/vs/vb-Dyb2648j.js.gz +0 -0
  785. package/dist/web/assets/monaco/vs/wgsl-BhLXMOR0.js +298 -0
  786. package/dist/web/assets/monaco/vs/wgsl-BhLXMOR0.js.br +0 -0
  787. package/dist/web/assets/monaco/vs/wgsl-BhLXMOR0.js.gz +0 -0
  788. package/dist/web/assets/monaco/vs/workers-DcJshg-q.js +1 -0
  789. package/dist/web/assets/monaco/vs/workers-DcJshg-q.js.br +0 -0
  790. package/dist/web/assets/monaco/vs/workers-DcJshg-q.js.gz +0 -0
  791. package/dist/web/assets/monaco/vs/xml-CdsdnY8S.js +1 -0
  792. package/dist/web/assets/monaco/vs/xml-CdsdnY8S.js.br +0 -0
  793. package/dist/web/assets/monaco/vs/xml-CdsdnY8S.js.gz +0 -0
  794. package/dist/web/assets/monaco/vs/yaml-DYGvmE88.js +1 -0
  795. package/dist/web/assets/monaco/vs/yaml-DYGvmE88.js.br +0 -0
  796. package/dist/web/assets/monaco/vs/yaml-DYGvmE88.js.gz +0 -0
  797. package/dist/web/assets/monokai-Bdw_07OM.js.br +0 -0
  798. package/dist/web/assets/monokai-Bdw_07OM.js.gz +0 -0
  799. package/dist/web/assets/moonbit-BFdGaeuk.js.br +0 -0
  800. package/dist/web/assets/moonbit-BFdGaeuk.js.gz +0 -0
  801. package/dist/web/assets/move-CyXQFGPM.js.br +0 -0
  802. package/dist/web/assets/move-CyXQFGPM.js.gz +0 -0
  803. package/dist/web/assets/narrat-9DvTD3_3.js.br +0 -0
  804. package/dist/web/assets/narrat-9DvTD3_3.js.gz +0 -0
  805. package/dist/web/assets/nextflow-groovy-C4VY3kNY.js.br +0 -0
  806. package/dist/web/assets/nextflow-groovy-C4VY3kNY.js.gz +0 -0
  807. package/dist/web/assets/nextflow-xH4oJTex.js.br +0 -0
  808. package/dist/web/assets/nextflow-xH4oJTex.js.gz +0 -0
  809. package/dist/web/assets/nginx-CMz4w0M8.js.br +0 -0
  810. package/dist/web/assets/nginx-CMz4w0M8.js.gz +0 -0
  811. package/dist/web/assets/night-owl-feYm66V0.js.br +0 -0
  812. package/dist/web/assets/night-owl-feYm66V0.js.gz +0 -0
  813. package/dist/web/assets/night-owl-light-DALqFjvx.js.br +0 -0
  814. package/dist/web/assets/night-owl-light-DALqFjvx.js.gz +0 -0
  815. package/dist/web/assets/nim-D8FnIYsx.js.br +0 -0
  816. package/dist/web/assets/nim-D8FnIYsx.js.gz +0 -0
  817. package/dist/web/assets/nix-C1kPA9Sw.js.br +0 -0
  818. package/dist/web/assets/nix-C1kPA9Sw.js.gz +0 -0
  819. package/dist/web/assets/nord-1dvrj1Al.js.br +0 -0
  820. package/dist/web/assets/nord-1dvrj1Al.js.gz +0 -0
  821. package/dist/web/assets/notification-store-D8VycLI7.js +1 -0
  822. package/dist/web/assets/{notifications-settings-section-DqlPDfNX.js → notifications-settings-section-4gjKK-DH.js} +1 -1
  823. package/dist/web/assets/notifications-settings-section-4gjKK-DH.js.br +5 -0
  824. package/dist/web/assets/notifications-settings-section-4gjKK-DH.js.gz +0 -0
  825. package/dist/web/assets/number-overlay-editor-CRGwULhR.js.br +0 -0
  826. package/dist/web/assets/number-overlay-editor-CRGwULhR.js.gz +0 -0
  827. package/dist/web/assets/nushell-DSQ_9Uqj.js.br +0 -0
  828. package/dist/web/assets/nushell-DSQ_9Uqj.js.gz +0 -0
  829. package/dist/web/assets/objective-c-Dhcn5ZK8.js.br +0 -0
  830. package/dist/web/assets/objective-c-Dhcn5ZK8.js.gz +0 -0
  831. package/dist/web/assets/objective-cpp-CGVYCSrp.js.br +0 -0
  832. package/dist/web/assets/objective-cpp-CGVYCSrp.js.gz +0 -0
  833. package/dist/web/assets/ocaml-rxXW21An.js.br +0 -0
  834. package/dist/web/assets/ocaml-rxXW21An.js.gz +0 -0
  835. package/dist/web/assets/odin-ClSJX2DE.js.br +0 -0
  836. package/dist/web/assets/odin-ClSJX2DE.js.gz +0 -0
  837. package/dist/web/assets/onboarding-entry-kqfwlUXT.js +1 -0
  838. package/dist/web/assets/onboarding-quick-orientation-Dqmis-E5.js +1 -0
  839. package/dist/web/assets/onboarding-quick-orientation-Dqmis-E5.js.br +0 -0
  840. package/dist/web/assets/onboarding-quick-orientation-Dqmis-E5.js.gz +0 -0
  841. package/dist/web/assets/one-dark-pro-3gbWDfFW.js.br +0 -0
  842. package/dist/web/assets/one-dark-pro-3gbWDfFW.js.gz +0 -0
  843. package/dist/web/assets/one-light-C2q5ZZAw.js.br +0 -0
  844. package/dist/web/assets/one-light-C2q5ZZAw.js.gz +0 -0
  845. package/dist/web/assets/openscad-eHXeafBl.js.br +0 -0
  846. package/dist/web/assets/openscad-eHXeafBl.js.gz +0 -0
  847. package/dist/web/assets/{overview-panel-Di-3aV9p.js → overview-panel-CF7BuqLZ.js} +1 -1
  848. package/dist/web/assets/overview-panel-CF7BuqLZ.js.br +0 -0
  849. package/dist/web/assets/overview-panel-CF7BuqLZ.js.gz +0 -0
  850. package/dist/web/assets/panel-store-D20Zuf3i.js +1 -0
  851. package/dist/web/assets/panel-store-D20Zuf3i.js.br +0 -0
  852. package/dist/web/assets/panel-store-D20Zuf3i.js.gz +0 -0
  853. package/dist/web/assets/pascal-kKha3Txs.js.br +0 -0
  854. package/dist/web/assets/pascal-kKha3Txs.js.gz +0 -0
  855. package/dist/web/assets/{pdf-preview-CmBI6E7d.js → pdf-preview-OvVOptPh.js} +1 -1
  856. package/dist/web/assets/pdf-preview-OvVOptPh.js.br +0 -0
  857. package/dist/web/assets/pdf-preview-OvVOptPh.js.gz +0 -0
  858. package/dist/web/assets/perl-D9iNWYwb.js.br +0 -0
  859. package/dist/web/assets/perl-D9iNWYwb.js.gz +0 -0
  860. package/dist/web/assets/php-Bw3Qo0Zv.js.br +0 -0
  861. package/dist/web/assets/php-Bw3Qo0Zv.js.gz +0 -0
  862. package/dist/web/assets/pkl-CTiPytg-.js.br +0 -0
  863. package/dist/web/assets/pkl-CTiPytg-.js.gz +0 -0
  864. package/dist/web/assets/plastic-D1Ygezi4.js.br +0 -0
  865. package/dist/web/assets/plastic-D1Ygezi4.js.gz +0 -0
  866. package/dist/web/assets/plsql-D_gbgZIr.js.br +0 -0
  867. package/dist/web/assets/plsql-D_gbgZIr.js.gz +0 -0
  868. package/dist/web/assets/po-BkhbDUnq.js.br +0 -0
  869. package/dist/web/assets/po-BkhbDUnq.js.gz +0 -0
  870. package/dist/web/assets/poimandres-Do6NywrA.js.br +0 -0
  871. package/dist/web/assets/poimandres-Do6NywrA.js.gz +0 -0
  872. package/dist/web/assets/polar-B3B23wca.js.br +0 -0
  873. package/dist/web/assets/polar-B3B23wca.js.gz +0 -0
  874. package/dist/web/assets/postcss-Dv_YBvWd.js.br +0 -0
  875. package/dist/web/assets/postcss-Dv_YBvWd.js.gz +0 -0
  876. package/dist/web/assets/{postgres-viewer-8ZAqEALv.js → postgres-viewer-DBwUXRLA.js} +1 -1
  877. package/dist/web/assets/postgres-viewer-DBwUXRLA.js.br +0 -0
  878. package/dist/web/assets/postgres-viewer-DBwUXRLA.js.gz +0 -0
  879. package/dist/web/assets/powerquery-fKJWI-Sh.js.br +0 -0
  880. package/dist/web/assets/powerquery-fKJWI-Sh.js.gz +0 -0
  881. package/dist/web/assets/powershell-B4Y7KIgx.js.br +0 -0
  882. package/dist/web/assets/powershell-B4Y7KIgx.js.gz +0 -0
  883. package/dist/web/assets/{ppmbot-settings-section-Cji-Mil-.js → ppmbot-settings-section-ByROaaIk.js} +1 -1
  884. package/dist/web/assets/ppmbot-settings-section-ByROaaIk.js.br +0 -0
  885. package/dist/web/assets/ppmbot-settings-section-ByROaaIk.js.gz +0 -0
  886. package/dist/web/assets/prisma-J--XdTXX.js.br +0 -0
  887. package/dist/web/assets/prisma-J--XdTXX.js.gz +0 -0
  888. package/dist/web/assets/problems-panel-D-iHH0j8.js +1 -0
  889. package/dist/web/assets/problems-panel-D-iHH0j8.js.br +0 -0
  890. package/dist/web/assets/problems-panel-D-iHH0j8.js.gz +0 -0
  891. package/dist/web/assets/{process-table-CiIqlOIK.js → process-table-CSgGG2La.js} +1 -1
  892. package/dist/web/assets/process-table-CSgGG2La.js.br +0 -0
  893. package/dist/web/assets/process-table-CSgGG2La.js.gz +0 -0
  894. package/dist/web/assets/{project-framework-store-B70Q3dNM.js → project-framework-store-ViZgce6y.js} +1 -1
  895. package/dist/web/assets/{project-store-B87hLRSk.js → project-store-hNvwfqX3.js} +1 -1
  896. package/dist/web/assets/project-store-hNvwfqX3.js.br +0 -0
  897. package/dist/web/assets/project-store-hNvwfqX3.js.gz +0 -0
  898. package/dist/web/assets/prolog-BBTg4Vb3.js.br +0 -0
  899. package/dist/web/assets/prolog-BBTg4Vb3.js.gz +0 -0
  900. package/dist/web/assets/proto-DWlum3T8.js.br +0 -0
  901. package/dist/web/assets/proto-DWlum3T8.js.gz +0 -0
  902. package/dist/web/assets/{proxy-settings-section-BjI4IFgp.js → proxy-settings-section-Cz98fxZn.js} +1 -1
  903. package/dist/web/assets/proxy-settings-section-Cz98fxZn.js.br +0 -0
  904. package/dist/web/assets/proxy-settings-section-Cz98fxZn.js.gz +0 -0
  905. package/dist/web/assets/pug-fT5JC6Vm.js.br +0 -0
  906. package/dist/web/assets/pug-fT5JC6Vm.js.gz +0 -0
  907. package/dist/web/assets/puppet-ZiUfc9JV.js.br +0 -0
  908. package/dist/web/assets/puppet-ZiUfc9JV.js.gz +0 -0
  909. package/dist/web/assets/purescript-CmT8SCHB.js.br +0 -0
  910. package/dist/web/assets/purescript-CmT8SCHB.js.gz +0 -0
  911. package/dist/web/assets/python-BURpj-fq.js.br +0 -0
  912. package/dist/web/assets/python-BURpj-fq.js.gz +0 -0
  913. package/dist/web/assets/qml-P_wEDB1w.js.br +0 -0
  914. package/dist/web/assets/qml-P_wEDB1w.js.gz +0 -0
  915. package/dist/web/assets/qss-C-zdz0i5.js.br +0 -0
  916. package/dist/web/assets/qss-C-zdz0i5.js.gz +0 -0
  917. package/dist/web/assets/{query-audit-section-By6qyqdB.js → query-audit-section-OsYip7HO.js} +1 -1
  918. package/dist/web/assets/query-audit-section-OsYip7HO.js.br +0 -0
  919. package/dist/web/assets/query-audit-section-OsYip7HO.js.gz +0 -0
  920. package/dist/web/assets/r-K56BeS-s.js.br +0 -0
  921. package/dist/web/assets/r-K56BeS-s.js.gz +0 -0
  922. package/dist/web/assets/racket-gkn6Z_Jw.js.br +0 -0
  923. package/dist/web/assets/racket-gkn6Z_Jw.js.gz +0 -0
  924. package/dist/web/assets/raku-C0ZBuKlx.js.br +0 -0
  925. package/dist/web/assets/raku-C0ZBuKlx.js.gz +0 -0
  926. package/dist/web/assets/razor-Drrt2_Ph.js.br +0 -0
  927. package/dist/web/assets/razor-Drrt2_Ph.js.gz +0 -0
  928. package/dist/web/assets/red-BWZ6x-3p.js.br +0 -0
  929. package/dist/web/assets/red-BWZ6x-3p.js.gz +0 -0
  930. package/dist/web/assets/reg-Dt_EsyGR.js.br +0 -0
  931. package/dist/web/assets/reg-Dt_EsyGR.js.gz +0 -0
  932. package/dist/web/assets/regexp-CT6BLG2C.js.br +0 -0
  933. package/dist/web/assets/regexp-CT6BLG2C.js.gz +0 -0
  934. package/dist/web/assets/rel-MJ2LcyzJ.js.br +0 -0
  935. package/dist/web/assets/rel-MJ2LcyzJ.js.gz +0 -0
  936. package/dist/web/assets/{remote-desktop-clipboard-notice-eXYvwgx7.js → remote-desktop-clipboard-notice-fjTRSMfw.js} +1 -1
  937. package/dist/web/assets/remote-desktop-clipboard-notice-fjTRSMfw.js.br +0 -0
  938. package/dist/web/assets/remote-desktop-clipboard-notice-fjTRSMfw.js.gz +0 -0
  939. package/dist/web/assets/remote-desktop-mobile-sheet-BGzXIOnN.js +2 -0
  940. package/dist/web/assets/remote-desktop-mobile-sheet-BGzXIOnN.js.br +0 -0
  941. package/dist/web/assets/remote-desktop-mobile-sheet-BGzXIOnN.js.gz +0 -0
  942. package/dist/web/assets/{remote-desktop-mobile-view-Dt8Akc3p.js → remote-desktop-mobile-view-DC-_I2st.js} +1 -1
  943. package/dist/web/assets/remote-desktop-mobile-view-DC-_I2st.js.br +0 -0
  944. package/dist/web/assets/remote-desktop-mobile-view-DC-_I2st.js.gz +0 -0
  945. package/dist/web/assets/{remote-desktop-readiness-gate-t83fqbID.js → remote-desktop-readiness-gate-BBFhTM_C.js} +1 -1
  946. package/dist/web/assets/remote-desktop-readiness-gate-BBFhTM_C.js.br +0 -0
  947. package/dist/web/assets/remote-desktop-readiness-gate-BBFhTM_C.js.gz +0 -0
  948. package/dist/web/assets/remote-desktop-window-content-S1LNG0iM.js +1 -0
  949. package/dist/web/assets/remote-desktop-window-content-S1LNG0iM.js.br +0 -0
  950. package/dist/web/assets/remote-desktop-window-content-S1LNG0iM.js.gz +0 -0
  951. package/dist/web/assets/resolve-theme-B_ukrg_8.js.br +0 -0
  952. package/dist/web/assets/resolve-theme-B_ukrg_8.js.gz +0 -0
  953. package/dist/web/assets/riscv-BZYWzMAA.js.br +0 -0
  954. package/dist/web/assets/riscv-BZYWzMAA.js.gz +0 -0
  955. package/dist/web/assets/ron-CLbwHWMn.js.br +0 -0
  956. package/dist/web/assets/ron-CLbwHWMn.js.gz +0 -0
  957. package/dist/web/assets/rose-pine-BPiI_daR.js.br +0 -0
  958. package/dist/web/assets/rose-pine-BPiI_daR.js.gz +0 -0
  959. package/dist/web/assets/rose-pine-dawn-BjkJc7dW.js.br +0 -0
  960. package/dist/web/assets/rose-pine-dawn-BjkJc7dW.js.gz +0 -0
  961. package/dist/web/assets/rose-pine-moon-BQSxkt7g.js.br +0 -0
  962. package/dist/web/assets/rose-pine-moon-BQSxkt7g.js.gz +0 -0
  963. package/dist/web/assets/rosmsg-yt4151pJ.js.br +0 -0
  964. package/dist/web/assets/rosmsg-yt4151pJ.js.gz +0 -0
  965. package/dist/web/assets/rst-Dr2mW4-h.js.br +0 -0
  966. package/dist/web/assets/rst-Dr2mW4-h.js.gz +0 -0
  967. package/dist/web/assets/ruby-C6EpUsTY.js.br +0 -0
  968. package/dist/web/assets/ruby-C6EpUsTY.js.gz +0 -0
  969. package/dist/web/assets/{run-in-terminal-CdefEe_R.js → run-in-terminal-Bu3ph5pY.js} +1 -1
  970. package/dist/web/assets/rust-1dAcengL.js.br +0 -0
  971. package/dist/web/assets/rust-1dAcengL.js.gz +0 -0
  972. package/dist/web/assets/sas-D8ZEeP6v.js.br +0 -0
  973. package/dist/web/assets/sas-D8ZEeP6v.js.gz +0 -0
  974. package/dist/web/assets/sass-DUgtQJsg.js.br +0 -0
  975. package/dist/web/assets/sass-DUgtQJsg.js.gz +0 -0
  976. package/dist/web/assets/scala-CxoGYpS0.js.br +0 -0
  977. package/dist/web/assets/scala-CxoGYpS0.js.gz +0 -0
  978. package/dist/web/assets/{schedules-settings-section-BVkpW5ms.js → schedules-settings-section-BERxYmYn.js} +1 -1
  979. package/dist/web/assets/schedules-settings-section-BERxYmYn.js.br +0 -0
  980. package/dist/web/assets/schedules-settings-section-BERxYmYn.js.gz +0 -0
  981. package/dist/web/assets/scheme-B2K3u9e3.js.br +0 -0
  982. package/dist/web/assets/scheme-B2K3u9e3.js.gz +0 -0
  983. package/dist/web/assets/scroll-area-BzeiOd-B.js.br +0 -0
  984. package/dist/web/assets/scroll-area-BzeiOd-B.js.gz +0 -0
  985. package/dist/web/assets/scss-ITL7jQ1f.js.br +0 -0
  986. package/dist/web/assets/scss-ITL7jQ1f.js.gz +0 -0
  987. package/dist/web/assets/sdbl-C0Ygk0n6.js.br +0 -0
  988. package/dist/web/assets/sdbl-C0Ygk0n6.js.gz +0 -0
  989. package/dist/web/assets/{send-to-chat-F207yH3u.js → send-to-chat-DuRTOS7_.js} +1 -1
  990. package/dist/web/assets/send-to-chat-DuRTOS7_.js.br +0 -0
  991. package/dist/web/assets/send-to-chat-DuRTOS7_.js.gz +0 -0
  992. package/dist/web/assets/settings-body-C31PdcMj.js +2 -0
  993. package/dist/web/assets/settings-body-C31PdcMj.js.br +0 -0
  994. package/dist/web/assets/settings-body-C31PdcMj.js.gz +0 -0
  995. package/dist/web/assets/{settings-store-krC6bc79.js → settings-store-DhU2tx3Y.js} +2 -2
  996. package/dist/web/assets/settings-store-DhU2tx3Y.js.br +0 -0
  997. package/dist/web/assets/settings-store-DhU2tx3Y.js.gz +0 -0
  998. package/dist/web/assets/{settings-tab-7DKVUTbM.js → settings-tab-D6QZSBqI.js} +1 -1
  999. package/dist/web/assets/{settings-window-content-3_39TeX-.js → settings-window-content-DLLcDkV0.js} +1 -1
  1000. package/dist/web/assets/shaderlab-mW-IIlhk.js.br +0 -0
  1001. package/dist/web/assets/shaderlab-mW-IIlhk.js.gz +0 -0
  1002. package/dist/web/assets/shellscript-C2CvhqMk.js.br +0 -0
  1003. package/dist/web/assets/shellscript-C2CvhqMk.js.gz +0 -0
  1004. package/dist/web/assets/slack-dark-DYdgzRGj.js.br +0 -0
  1005. package/dist/web/assets/slack-dark-DYdgzRGj.js.gz +0 -0
  1006. package/dist/web/assets/slack-ochin-X-WD0WCg.js.br +0 -0
  1007. package/dist/web/assets/slack-ochin-X-WD0WCg.js.gz +0 -0
  1008. package/dist/web/assets/smalltalk-Dp7g_zb9.js.br +0 -0
  1009. package/dist/web/assets/smalltalk-Dp7g_zb9.js.gz +0 -0
  1010. package/dist/web/assets/snazzy-light-DWHWr-a6.js.br +0 -0
  1011. package/dist/web/assets/snazzy-light-DWHWr-a6.js.gz +0 -0
  1012. package/dist/web/assets/solarized-dark-CxdLsjvb.js.br +0 -0
  1013. package/dist/web/assets/solarized-dark-CxdLsjvb.js.gz +0 -0
  1014. package/dist/web/assets/solarized-light-Cz9rAvG5.js.br +0 -0
  1015. package/dist/web/assets/solarized-light-Cz9rAvG5.js.gz +0 -0
  1016. package/dist/web/assets/solidity-D33gHHdn.js.br +0 -0
  1017. package/dist/web/assets/solidity-D33gHHdn.js.gz +0 -0
  1018. package/dist/web/assets/soy-SdY0Qjtr.js.br +0 -0
  1019. package/dist/web/assets/soy-SdY0Qjtr.js.gz +0 -0
  1020. package/dist/web/assets/sparql-ftqZo2i-.js.br +0 -0
  1021. package/dist/web/assets/sparql-ftqZo2i-.js.gz +0 -0
  1022. package/dist/web/assets/splunk-BFbOroYw.js.br +0 -0
  1023. package/dist/web/assets/splunk-BFbOroYw.js.gz +0 -0
  1024. package/dist/web/assets/sql-ChpxvmdY.js.br +0 -0
  1025. package/dist/web/assets/sql-ChpxvmdY.js.gz +0 -0
  1026. package/dist/web/assets/{sql-query-editor-CQB7Yp7U.js → sql-query-editor-BXaAQmLJ.js} +1 -1
  1027. package/dist/web/assets/sql-query-editor-BXaAQmLJ.js.br +0 -0
  1028. package/dist/web/assets/sql-query-editor-BXaAQmLJ.js.gz +0 -0
  1029. package/dist/web/assets/{sqlite-viewer-Bd7rjr1D.js → sqlite-viewer-DWpzKvve.js} +1 -1
  1030. package/dist/web/assets/sqlite-viewer-DWpzKvve.js.br +0 -0
  1031. package/dist/web/assets/sqlite-viewer-DWpzKvve.js.gz +0 -0
  1032. package/dist/web/assets/ssh-config-CUuSQ6JG.js.br +0 -0
  1033. package/dist/web/assets/ssh-config-CUuSQ6JG.js.gz +0 -0
  1034. package/dist/web/assets/stata-Bj7Yjb4b.js.br +0 -0
  1035. package/dist/web/assets/stata-Bj7Yjb4b.js.gz +0 -0
  1036. package/dist/web/assets/stylus-DDihP0_W.js.br +0 -0
  1037. package/dist/web/assets/stylus-DDihP0_W.js.gz +0 -0
  1038. package/dist/web/assets/surrealql-CLhYGAfB.js.br +0 -0
  1039. package/dist/web/assets/surrealql-CLhYGAfB.js.gz +0 -0
  1040. package/dist/web/assets/svelte-DTAlRHhK.js.br +0 -0
  1041. package/dist/web/assets/svelte-DTAlRHhK.js.gz +0 -0
  1042. package/dist/web/assets/swift-XoalUn4x.js.br +0 -0
  1043. package/dist/web/assets/swift-XoalUn4x.js.gz +0 -0
  1044. package/dist/web/assets/synthwave-84-DjkG0Bff.js.br +0 -0
  1045. package/dist/web/assets/synthwave-84-DjkG0Bff.js.gz +0 -0
  1046. package/dist/web/assets/{system-monitor-body-DsRXeMyU.js → system-monitor-body-CKoLYd_G.js} +2 -2
  1047. package/dist/web/assets/system-monitor-body-CKoLYd_G.js.br +0 -0
  1048. package/dist/web/assets/system-monitor-body-CKoLYd_G.js.gz +0 -0
  1049. package/dist/web/assets/system-monitor-tab-CerUeEbU.js +1 -0
  1050. package/dist/web/assets/{system-monitor-window-content-ClPo4-El.js → system-monitor-window-content-CYFnoCgb.js} +1 -1
  1051. package/dist/web/assets/system-verilog-f_pLKMYd.js.br +0 -0
  1052. package/dist/web/assets/system-verilog-f_pLKMYd.js.gz +0 -0
  1053. package/dist/web/assets/systemd-DjDcLfxp.js.br +0 -0
  1054. package/dist/web/assets/systemd-DjDcLfxp.js.gz +0 -0
  1055. package/dist/web/assets/{tab-host-window-content-d2TAD4PU.js → tab-host-window-content-CloVeb9a.js} +1 -1
  1056. package/dist/web/assets/tab-host-window-content-CloVeb9a.js.br +0 -0
  1057. package/dist/web/assets/tab-host-window-content-CloVeb9a.js.gz +0 -0
  1058. package/dist/web/assets/{tab-store-OJa1GPCq.js → tab-store-krAuHQ6_.js} +1 -1
  1059. package/dist/web/assets/talonscript-BpUzYcDl.js.br +0 -0
  1060. package/dist/web/assets/talonscript-BpUzYcDl.js.gz +0 -0
  1061. package/dist/web/assets/tasl-DP-cUbg8.js.br +0 -0
  1062. package/dist/web/assets/tasl-DP-cUbg8.js.gz +0 -0
  1063. package/dist/web/assets/tcl-BHoy-dfE.js.br +0 -0
  1064. package/dist/web/assets/tcl-BHoy-dfE.js.gz +0 -0
  1065. package/dist/web/assets/{team-member-sheet-7d2Qp-ie.js → team-member-sheet-BXmTXQCt.js} +2 -2
  1066. package/dist/web/assets/team-member-sheet-BXmTXQCt.js.br +0 -0
  1067. package/dist/web/assets/team-member-sheet-BXmTXQCt.js.gz +0 -0
  1068. package/dist/web/assets/{team-member-window-content-Bctg2gmg.js → team-member-window-content-BST7Cs5l.js} +1 -1
  1069. package/dist/web/assets/team-member-window-content-BST7Cs5l.js.br +0 -0
  1070. package/dist/web/assets/team-member-window-content-BST7Cs5l.js.gz +0 -0
  1071. package/dist/web/assets/templ-BMfhACxb.js.br +0 -0
  1072. package/dist/web/assets/templ-BMfhACxb.js.gz +0 -0
  1073. package/dist/web/assets/terminal-tab-BVZhZnTh.js +3 -0
  1074. package/dist/web/assets/terminal-tab-BVZhZnTh.js.br +0 -0
  1075. package/dist/web/assets/terminal-tab-BVZhZnTh.js.gz +0 -0
  1076. package/dist/web/assets/terraform-vCVxN25B.js.br +0 -0
  1077. package/dist/web/assets/terraform-vCVxN25B.js.gz +0 -0
  1078. package/dist/web/assets/tex-BcssM-QA.js.br +0 -0
  1079. package/dist/web/assets/tex-BcssM-QA.js.gz +0 -0
  1080. package/dist/web/assets/tokyo-night-D0u4xZba.js.br +0 -0
  1081. package/dist/web/assets/tokyo-night-D0u4xZba.js.gz +0 -0
  1082. package/dist/web/assets/toml-BS8D0__A.js.br +0 -0
  1083. package/dist/web/assets/toml-BS8D0__A.js.gz +0 -0
  1084. package/dist/web/assets/{tool-cards-CmLLRACd.js → tool-cards-F7hDZH6M.js} +5 -5
  1085. package/dist/web/assets/tool-cards-F7hDZH6M.js.br +0 -0
  1086. package/dist/web/assets/tool-cards-F7hDZH6M.js.gz +0 -0
  1087. package/dist/web/assets/ts-tags-CrR5IYI8.js.br +0 -0
  1088. package/dist/web/assets/ts-tags-CrR5IYI8.js.gz +0 -0
  1089. package/dist/web/assets/tsx-DF8YeRgG.js.br +0 -0
  1090. package/dist/web/assets/tsx-DF8YeRgG.js.gz +0 -0
  1091. package/dist/web/assets/turtle-Bhx1GlIy.js.br +0 -0
  1092. package/dist/web/assets/turtle-Bhx1GlIy.js.gz +0 -0
  1093. package/dist/web/assets/twig-DchfUmyI.js.br +0 -0
  1094. package/dist/web/assets/twig-DchfUmyI.js.gz +0 -0
  1095. package/dist/web/assets/typescript-CAVD2Wb6.js.br +0 -0
  1096. package/dist/web/assets/typescript-CAVD2Wb6.js.gz +0 -0
  1097. package/dist/web/assets/typespec-D7mchdY_.js.br +0 -0
  1098. package/dist/web/assets/typespec-D7mchdY_.js.gz +0 -0
  1099. package/dist/web/assets/typst-CeXzq6Yw.js.br +0 -0
  1100. package/dist/web/assets/typst-CeXzq6Yw.js.gz +0 -0
  1101. package/dist/web/assets/{use-blob-url-CPtCcY3i.js → use-blob-url-DMGlPCQD.js} +1 -1
  1102. package/dist/web/assets/{use-inline-blame-sDMjcz1-.js → use-inline-blame-BmY9SN79.js} +3 -3
  1103. package/dist/web/assets/use-inline-blame-BmY9SN79.js.br +0 -0
  1104. package/dist/web/assets/use-inline-blame-BmY9SN79.js.gz +0 -0
  1105. package/dist/web/assets/{use-lsp-CBgID-EU.js → use-lsp-CEq09fZR.js} +1 -1
  1106. package/dist/web/assets/use-lsp-CEq09fZR.js.br +0 -0
  1107. package/dist/web/assets/use-lsp-CEq09fZR.js.gz +0 -0
  1108. package/dist/web/assets/{use-monaco-theme-gvhJ_jZh.js → use-monaco-theme-CBB5mAYT.js} +1 -1
  1109. package/dist/web/assets/{use-websocket-C9wlRliB.js → use-websocket-BfuA8Guj.js} +1 -1
  1110. package/dist/web/assets/utils-Bmf_8h7Y.js.br +0 -0
  1111. package/dist/web/assets/utils-Bmf_8h7Y.js.gz +0 -0
  1112. package/dist/web/assets/v-DhzO54je.js.br +0 -0
  1113. package/dist/web/assets/v-DhzO54je.js.gz +0 -0
  1114. package/dist/web/assets/vala-Dw_RAk3E.js.br +0 -0
  1115. package/dist/web/assets/vala-Dw_RAk3E.js.gz +0 -0
  1116. package/dist/web/assets/vb-CiXdNh2Y.js.br +0 -0
  1117. package/dist/web/assets/vb-CiXdNh2Y.js.gz +0 -0
  1118. package/dist/web/assets/vendor-markdown-CuWCHIVb.js.br +0 -0
  1119. package/dist/web/assets/vendor-markdown-CuWCHIVb.js.gz +0 -0
  1120. package/dist/web/assets/vendor-mermaid-BitiXJlL.js.br +0 -0
  1121. package/dist/web/assets/vendor-mermaid-BitiXJlL.js.gz +0 -0
  1122. package/dist/web/assets/vendor-ui-DmZ-Mb-H.js.br +0 -0
  1123. package/dist/web/assets/vendor-ui-DmZ-Mb-H.js.gz +0 -0
  1124. package/dist/web/assets/vendor-xterm-DkTCHfhq.css.br +0 -0
  1125. package/dist/web/assets/vendor-xterm-DkTCHfhq.css.gz +0 -0
  1126. package/dist/web/assets/vendor-xterm-JV4hEJsv.js.br +0 -0
  1127. package/dist/web/assets/vendor-xterm-JV4hEJsv.js.gz +0 -0
  1128. package/dist/web/assets/verilog-fITdxqwV.js.br +0 -0
  1129. package/dist/web/assets/verilog-fITdxqwV.js.gz +0 -0
  1130. package/dist/web/assets/vesper-B1wm_At7.js.br +0 -0
  1131. package/dist/web/assets/vesper-B1wm_At7.js.gz +0 -0
  1132. package/dist/web/assets/vhdl-ebHjqKp9.js.br +0 -0
  1133. package/dist/web/assets/vhdl-ebHjqKp9.js.gz +0 -0
  1134. package/dist/web/assets/{video-preview-CSDK5j6H.js → video-preview-C9Aqfcru.js} +1 -1
  1135. package/dist/web/assets/video-preview-C9Aqfcru.js.br +0 -0
  1136. package/dist/web/assets/video-preview-C9Aqfcru.js.gz +0 -0
  1137. package/dist/web/assets/viml-Dgmnoxoo.js.br +0 -0
  1138. package/dist/web/assets/viml-Dgmnoxoo.js.gz +0 -0
  1139. package/dist/web/assets/vitesse-black-BZ5gMb7l.js.br +0 -0
  1140. package/dist/web/assets/vitesse-black-BZ5gMb7l.js.gz +0 -0
  1141. package/dist/web/assets/vitesse-dark-Lij7kkOt.js.br +0 -0
  1142. package/dist/web/assets/vitesse-dark-Lij7kkOt.js.gz +0 -0
  1143. package/dist/web/assets/vitesse-light-DW6Wq7VC.js.br +0 -0
  1144. package/dist/web/assets/vitesse-light-DW6Wq7VC.js.gz +0 -0
  1145. package/dist/web/assets/vue-1EL6Pw1h.js.br +0 -0
  1146. package/dist/web/assets/vue-1EL6Pw1h.js.gz +0 -0
  1147. package/dist/web/assets/vue-html-BPQNwPC6.js.br +0 -0
  1148. package/dist/web/assets/vue-html-BPQNwPC6.js.gz +0 -0
  1149. package/dist/web/assets/vue-vine-Bb_dsWLt.js.br +0 -0
  1150. package/dist/web/assets/vue-vine-Bb_dsWLt.js.gz +0 -0
  1151. package/dist/web/assets/vyper-6FxDnVNg.js.br +0 -0
  1152. package/dist/web/assets/vyper-6FxDnVNg.js.gz +0 -0
  1153. package/dist/web/assets/wasm-BDxaNPCj.js.br +0 -0
  1154. package/dist/web/assets/wasm-BDxaNPCj.js.gz +0 -0
  1155. package/dist/web/assets/wasm-DKhAtzfe.js.br +0 -0
  1156. package/dist/web/assets/wasm-DKhAtzfe.js.gz +0 -0
  1157. package/dist/web/assets/wenyan-C0k0DYG_.js.br +0 -0
  1158. package/dist/web/assets/wenyan-C0k0DYG_.js.gz +0 -0
  1159. package/dist/web/assets/wgsl-Y2zagbdn.js.br +0 -0
  1160. package/dist/web/assets/wgsl-Y2zagbdn.js.gz +0 -0
  1161. package/dist/web/assets/wikitext-C4QGWzkY.js.br +0 -0
  1162. package/dist/web/assets/wikitext-C4QGWzkY.js.gz +0 -0
  1163. package/dist/web/assets/{window-pip-registry-yD6esSju.js → window-pip-registry-D1oXq-Dq.js} +1 -1
  1164. package/dist/web/assets/window-store-UC1jJeLM.js.br +0 -0
  1165. package/dist/web/assets/window-store-UC1jJeLM.js.gz +0 -0
  1166. package/dist/web/assets/wit-CQESzjHy.js.br +0 -0
  1167. package/dist/web/assets/wit-CQESzjHy.js.gz +0 -0
  1168. package/dist/web/assets/wolfram-B-ia69Ia.js.br +0 -0
  1169. package/dist/web/assets/wolfram-B-ia69Ia.js.gz +0 -0
  1170. package/dist/web/assets/ws-auth-BG-cdrQ8.js +1 -0
  1171. package/dist/web/assets/xml-dxkLNA0K.js.br +0 -0
  1172. package/dist/web/assets/xml-dxkLNA0K.js.gz +0 -0
  1173. package/dist/web/assets/xsl-Bw2adwrl.js.br +0 -0
  1174. package/dist/web/assets/xsl-Bw2adwrl.js.gz +0 -0
  1175. package/dist/web/assets/yaml-CEYYTQPm.js.br +0 -0
  1176. package/dist/web/assets/yaml-CEYYTQPm.js.gz +0 -0
  1177. package/dist/web/assets/zenscript-BggWXIeJ.js.br +0 -0
  1178. package/dist/web/assets/zenscript-BggWXIeJ.js.gz +0 -0
  1179. package/dist/web/assets/zig-CbaUfBQe.js.br +0 -0
  1180. package/dist/web/assets/zig-CbaUfBQe.js.gz +0 -0
  1181. package/dist/web/index.html +17 -17
  1182. package/dist/web/index.html.br +0 -0
  1183. package/dist/web/index.html.gz +0 -0
  1184. package/dist/web/sw.js +1 -1
  1185. package/dist/web/sw.js.br +0 -0
  1186. package/dist/web/sw.js.gz +0 -0
  1187. package/docs/architecture/ai-chat-and-providers.md +10 -0
  1188. package/docs/architecture/workspace-and-ui.md +76 -0
  1189. package/docs/project-roadmap.md +6 -0
  1190. package/package.json +1 -1
  1191. package/scripts/release.sh +6 -0
  1192. package/src/cli/commands/init.ts +1 -0
  1193. package/src/providers/codex-app-server/codex-event-mapper.ts +7 -3
  1194. package/src/providers/codex-app-server/codex-history.ts +26 -7
  1195. package/src/providers/codex-app-server/codex-provider.ts +16 -4
  1196. package/src/server/index.ts +5 -0
  1197. package/src/server/routes/chat.ts +4 -8
  1198. package/src/server/routes/files.ts +11 -75
  1199. package/src/server/routes/html-preview.ts +116 -0
  1200. package/src/server/routes/settings.ts +19 -6
  1201. package/src/services/chat.service.ts +2 -4
  1202. package/src/services/config.service.ts +2 -0
  1203. package/src/services/project-content-search.service.ts +119 -0
  1204. package/src/types/chat.ts +19 -1
  1205. package/src/types/config.ts +12 -1
  1206. package/src/web/app.tsx +9 -1
  1207. package/src/web/components/chat/chat-history-bar.tsx +11 -6
  1208. package/src/web/components/chat/chat-tab.tsx +187 -39
  1209. package/src/web/components/chat/chat-welcome.tsx +2 -0
  1210. package/src/web/components/chat/message-events.tsx +6 -6
  1211. package/src/web/components/chat/message-input.tsx +47 -1
  1212. package/src/web/components/chat/model-thinking-selector.tsx +37 -6
  1213. package/src/web/components/chat/new-chat-provider-gate.tsx +68 -0
  1214. package/src/web/components/chat/session-list-panel.tsx +2 -6
  1215. package/src/web/components/chat/session-picker.tsx +2 -6
  1216. package/src/web/components/editor/code-editor.tsx +65 -12
  1217. package/src/web/components/editor/html-preview-toolbar.tsx +80 -0
  1218. package/src/web/components/editor/html-preview.tsx +30 -0
  1219. package/src/web/components/explorer/search-panel.tsx +37 -6
  1220. package/src/web/components/git/git-status-panel.tsx +32 -4
  1221. package/src/web/components/layout/editor-panel.tsx +1 -1
  1222. package/src/web/components/layout/mobile-drawer.tsx +6 -4
  1223. package/src/web/components/layout/project-switcher.tsx +1 -0
  1224. package/src/web/components/layout/reparenting-tab.tsx +4 -2
  1225. package/src/web/components/layout/sidebar.tsx +1 -1
  1226. package/src/web/components/layout/tab-bar.tsx +1 -1
  1227. package/src/web/components/onboarding/onboarding-entry.tsx +15 -0
  1228. package/src/web/components/onboarding/onboarding-file-help.tsx +31 -0
  1229. package/src/web/components/onboarding/onboarding-guide.tsx +45 -0
  1230. package/src/web/components/onboarding/onboarding-hint.tsx +43 -0
  1231. package/src/web/components/onboarding/onboarding-quick-orientation.tsx +81 -0
  1232. package/src/web/components/onboarding/onboarding-root.tsx +137 -0
  1233. package/src/web/components/onboarding/onboarding-run-document-preview.tsx +23 -0
  1234. package/src/web/components/onboarding/onboarding-setup.tsx +50 -0
  1235. package/src/web/components/onboarding/onboarding-step-transition.tsx +27 -0
  1236. package/src/web/components/onboarding/use-onboarding-session-check.ts +32 -0
  1237. package/src/web/components/settings/ai-settings-section.tsx +36 -0
  1238. package/src/web/components/settings/general-settings-section.tsx +7 -0
  1239. package/src/web/components/terminal/terminal-tab.tsx +15 -1
  1240. package/src/web/hooks/use-chat.ts +14 -1
  1241. package/src/web/hooks/use-draft.ts +25 -4
  1242. package/src/web/hooks/use-session-history.ts +2 -6
  1243. package/src/web/hooks/use-usage.ts +6 -4
  1244. package/src/web/lib/api-client.ts +7 -1
  1245. package/src/web/lib/api-settings.ts +1 -0
  1246. package/src/web/lib/chat-attempt-lifecycle.ts +46 -0
  1247. package/src/web/lib/new-chat-provider.ts +8 -0
  1248. package/src/web/lib/onboarding/onboarding-copy.ts +57 -0
  1249. package/src/web/lib/onboarding/onboarding-state.ts +77 -0
  1250. package/src/web/lib/onboarding/onboarding-steps.ts +16 -0
  1251. package/src/web/lib/onboarding/onboarding-types.ts +39 -0
  1252. package/src/web/lib/onboarding/run-instructions.ts +22 -0
  1253. package/src/web/stores/onboarding-store.ts +74 -0
  1254. package/src/web/stores/panel-store.ts +46 -3
  1255. package/vite.config.ts +5 -1
  1256. package/dist/web/assets/accounts-settings-section-D3BylchP.js +0 -1
  1257. package/dist/web/assets/ai-settings-section-BtR7rF-T.js +0 -1
  1258. package/dist/web/assets/ai-settings-section-r9JctHNM.js +0 -1
  1259. package/dist/web/assets/api-client-pQL53cDQ.js +0 -1
  1260. package/dist/web/assets/chat-tab-DZagX06m.js +0 -15
  1261. package/dist/web/assets/code-editor-BJhOEsnZ.js +0 -7
  1262. package/dist/web/assets/explorer-body-VdCBqcZu.js +0 -2
  1263. package/dist/web/assets/explorer-window-content-BIsbl7Th.js +0 -1
  1264. package/dist/web/assets/general-settings-section-BAFSZmCE.js +0 -1
  1265. package/dist/web/assets/group-chat-tab-Ck6sk7yY.js +0 -1
  1266. package/dist/web/assets/index-BH99TIE0.css +0 -1
  1267. package/dist/web/assets/index-CEZVxM4G.js +0 -52
  1268. package/dist/web/assets/keybindings-store-C_3ChOEf.js +0 -1
  1269. package/dist/web/assets/markdown-renderer-C140Ijk0.js +0 -3
  1270. package/dist/web/assets/markdown-renderer-Dz7-DYUg.js +0 -1
  1271. package/dist/web/assets/notification-store-6vib1ISy.js +0 -1
  1272. package/dist/web/assets/panel-store-CboGJAwh.js +0 -1
  1273. package/dist/web/assets/problems-panel-a6_hrWvl.js +0 -1
  1274. package/dist/web/assets/remote-desktop-mobile-sheet-Doh-fci-.js +0 -2
  1275. package/dist/web/assets/remote-desktop-window-content-CguhZMmx.js +0 -1
  1276. package/dist/web/assets/settings-body-CoIxYAh6.js +0 -2
  1277. package/dist/web/assets/streaming-store-BYukdB56.js +0 -1
  1278. package/dist/web/assets/system-monitor-tab-DdSZgux3.js +0 -1
  1279. package/dist/web/assets/terminal-tab-0HQic25V.js +0 -3
  1280. package/dist/web/assets/ws-auth-CEYVQ8NH.js +0 -1
  1281. /package/dist/web/assets/{csv-parser-_oDBUkwQ.js → csv-parser-DpCmuupp.js} +0 -0
  1282. /package/dist/web/assets/{edit-diff-preview-BGGGecVw.js → edit-diff-preview-CVv7EOFu.js} +0 -0
  1283. /package/dist/web/assets/{format-bytes-D1AQyUCt.js → format-bytes-CmnPxZjG.js} +0 -0
  1284. /package/dist/web/assets/{lib-CD6pOS4u.js → lib-DBeVwCnC.js} +0 -0
  1285. /package/dist/web/assets/{separator-TRMsJUYe.js → separator-tjXX_Sky.js} +0 -0
  1286. /package/dist/web/assets/{use-open-team-member-C3mrUzIC.js → use-open-team-member-CHpGPALV.js} +0 -0
  1287. /package/dist/web/assets/{vendor-xterm-BHEY6Ctu.js → vendor-xterm-JV4hEJsv.js} +0 -0
@@ -6,6 +6,7 @@ import { useTabStore } from "@/stores/tab-store";
6
6
  import { projectUrl, api } from "@/lib/api-client";
7
7
  import { cn } from "@/lib/utils";
8
8
  import { FileIcon } from "@/lib/file-icons";
9
+ import { emitOnboardingEvidence } from "@/lib/onboarding/onboarding-types";
9
10
 
10
11
  interface SearchMatch {
11
12
  lineNum: number;
@@ -63,7 +64,7 @@ function OptionButton({ active, onClick, title, children }: { active: boolean; o
63
64
  );
64
65
  }
65
66
 
66
- export function SearchPanel() {
67
+ export function SearchPanel({ onNavigate }: { onNavigate?: () => void } = {}) {
67
68
  const { activeProject } = useProjectStore(useShallow((s) => ({ activeProject: s.activeProject })));
68
69
  const openTab = useTabStore((s) => s.openTab);
69
70
 
@@ -82,8 +83,25 @@ export function SearchPanel() {
82
83
  const [collapsed, setCollapsed] = useState<Set<string>>(new Set());
83
84
  const inputRef = useRef<HTMLInputElement>(null);
84
85
  const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);
86
+ const panelRef = useRef<HTMLDivElement>(null);
87
+ const requestId = useRef(0);
88
+ const [searchError, setSearchError] = useState<string | null>(null);
89
+ const [searched, setSearched] = useState(false);
90
+ // Invalidate synchronously during render, including the debounce gap.
91
+ const signature = JSON.stringify([activeProject?.name, query, caseSensitive, wholeWord, useRegex, filesFilter]);
92
+ const currentSignature = useRef(signature);
93
+ if (currentSignature.current !== signature) {
94
+ currentSignature.current = signature;
95
+ requestId.current++;
96
+ }
85
97
 
86
98
  const doSearch = useCallback(async (q: string, cs: boolean, ww: boolean, rx: boolean, ff: string) => {
99
+ const id = ++requestId.current;
100
+ setSearchError(null);
101
+ setSearched(false);
102
+ setLoading(false);
103
+ setResults([]);
104
+ setTotal(0);
87
105
  setRegexError(false);
88
106
  if (!activeProject || (!rx && q.length < 2) || (rx && q.length < 1)) {
89
107
  setResults([]);
@@ -100,19 +118,30 @@ export function SearchPanel() {
100
118
  const data = await api.get<{ results: SearchResult[]; total: number }>(
101
119
  `${projectUrl(activeProject.name)}/files/search?${params}`
102
120
  );
121
+ if (id !== requestId.current) return;
103
122
  setResults(data.results);
104
123
  setTotal(data.total);
105
- } catch {
124
+ setSearched(true);
125
+ const visible = !!panelRef.current?.checkVisibility({ checkOpacity: true, checkVisibilityCSS: true });
126
+ if (visible) emitOnboardingEvidence({ type: "search-succeeded", projectName: activeProject.name, requestId: String(id), visible });
127
+ } catch (error) {
128
+ if (id !== requestId.current) return;
106
129
  setResults([]);
130
+ setSearchError(error instanceof Error ? error.message : "Unable to search this project.");
107
131
  } finally {
108
- setLoading(false);
132
+ if (id === requestId.current) setLoading(false);
109
133
  }
110
134
  }, [activeProject]);
111
135
 
112
136
  useEffect(() => {
113
137
  if (debounceRef.current) clearTimeout(debounceRef.current);
138
+ setSearched(false);
139
+ setSearchError(null);
140
+ setResults([]);
141
+ setTotal(0);
142
+ setLoading(false);
114
143
  debounceRef.current = setTimeout(() => doSearch(query, caseSensitive, wholeWord, useRegex, filesFilter), 300);
115
- return () => { if (debounceRef.current) clearTimeout(debounceRef.current); };
144
+ return () => { requestId.current++; if (debounceRef.current) clearTimeout(debounceRef.current); };
116
145
  }, [query, caseSensitive, wholeWord, useRegex, filesFilter, doSearch]);
117
146
 
118
147
  useEffect(() => { inputRef.current?.focus(); }, []);
@@ -129,6 +158,7 @@ export function SearchPanel() {
129
158
  projectId: activeProject.name,
130
159
  closable: true,
131
160
  });
161
+ onNavigate?.();
132
162
  }
133
163
 
134
164
  function toggleCollapse(file: string) {
@@ -169,7 +199,7 @@ export function SearchPanel() {
169
199
  }
170
200
 
171
201
  return (
172
- <div className="flex flex-col h-full">
202
+ <div ref={panelRef} data-onboarding="search" className="flex flex-col h-full">
173
203
  {/* Search input + options */}
174
204
  <div className="p-2 border-b border-border space-y-1.5">
175
205
  {/* Search row */}
@@ -265,7 +295,8 @@ export function SearchPanel() {
265
295
  {!loading && !replacing && replaceCount !== null && (
266
296
  <span className="text-success">{replaceCount} replacement{replaceCount !== 1 ? "s" : ""} made</span>
267
297
  )}
268
- {!loading && !replacing && replaceCount === null && !regexError && query.length >= 2 && results.length === 0 && <span>No results</span>}
298
+ {searchError && <span role="alert" className="text-destructive">Search failed: {searchError} <button className="underline" onClick={() => void doSearch(query, caseSensitive, wholeWord, useRegex, filesFilter)}>Retry search</button></span>}
299
+ {!loading && !replacing && !searchError && searched && replaceCount === null && !regexError && results.length === 0 && <span>No results</span>}
269
300
  {!loading && !replacing && replaceCount === null && total > 0 && (
270
301
  <span>{total} result{total !== 1 ? "s" : ""} in {results.length} file{results.length !== 1 ? "s" : ""}</span>
271
302
  )}
@@ -1,4 +1,5 @@
1
- import { useEffect, useState, useCallback, useMemo } from "react";
1
+ import { useEffect, useState, useCallback, useMemo, useRef } from "react";
2
+ import { emitOnboardingEvidence } from "@/lib/onboarding/onboarding-types";
2
3
  import {
3
4
  Plus,
4
5
  Minus,
@@ -134,6 +135,29 @@ export function GitStatusPanel({ metadata, tabId, onNavigate }: GitStatusPanelPr
134
135
  // whose children are. This resolves which one every call below talks to.
135
136
  const gitRepo = useGitRepo(projectName);
136
137
  const gitRoot = gitRepo.repo?.path ?? activeProjectPath;
138
+ const panelRef = useRef<HTMLDivElement>(null);
139
+ const requestId = useRef(0);
140
+ const repoKey = `${projectName}:${gitRepo.repo?.path ?? ""}`;
141
+ const currentRepoKey = useRef(repoKey);
142
+ if (currentRepoKey.current !== repoKey) {
143
+ currentRepoKey.current = repoKey;
144
+ requestId.current++;
145
+ }
146
+ const [loadedRepoKey, setLoadedRepoKey] = useState<string | null>(null);
147
+ const activeProjectName = useProjectStore((s) => s.activeProject?.name);
148
+ const activeTabId = useTabStore((s) => s.activeTabId);
149
+ const [onboardingRefresh, setOnboardingRefresh] = useState(0);
150
+ useEffect(() => {
151
+ const refresh = () => setOnboardingRefresh((n) => n + 1);
152
+ window.addEventListener("ppm:onboarding-refresh", refresh);
153
+ return () => window.removeEventListener("ppm:onboarding-refresh", refresh);
154
+ }, []);
155
+ useEffect(() => {
156
+ if (!projectName || projectName !== activeProjectName || (tabId && tabId !== activeTabId) ||
157
+ !gitRepo.repo || loading || error || !status || loadedRepoKey !== repoKey) return;
158
+ const visible = !!panelRef.current?.checkVisibility({ checkOpacity: true, checkVisibilityCSS: true });
159
+ if (visible) emitOnboardingEvidence({ type: "git-ready", projectName, visible });
160
+ }, [onboardingRefresh, projectName, activeProjectName, tabId, activeTabId, gitRepo.repo, loading, error, status, loadedRepoKey, repoKey]);
137
161
  // Git Graph extension is available when it has registered its command.
138
162
  const gitGraphAvailable = useExtensionStore(
139
163
  (s) => s.contributions?.commands?.some((c) => c.command === "git-graph.view") ?? false,
@@ -143,12 +167,15 @@ export function GitStatusPanel({ metadata, tabId, onNavigate }: GitStatusPanelPr
143
167
  // No repository resolved yet: the panel is showing the picker, and asking
144
168
  // git in the container folder is what produced the error this replaced.
145
169
  if (!projectName || !gitRepo.repo) return;
170
+ const id = ++requestId.current;
146
171
  try {
147
172
  setLoading(true);
148
173
  const data = await api.get<GitStatus>(
149
174
  gitRepo.gitUrl("/status"),
150
175
  );
176
+ if (id !== requestId.current) return;
151
177
  setStatus(data);
178
+ setLoadedRepoKey(`${projectName}:${gitRepo.repo.path}`);
152
179
  setGitChangesCount(
153
180
  projectName,
154
181
  data.staged.length + data.unstaged.length + data.untracked.length,
@@ -156,9 +183,10 @@ export function GitStatusPanel({ metadata, tabId, onNavigate }: GitStatusPanelPr
156
183
  useGitStatusStore.getState().setMeta(projectName, data);
157
184
  setError(null);
158
185
  } catch (e) {
186
+ if (id !== requestId.current) return;
159
187
  setError(e instanceof Error ? e.message : "Failed to fetch status");
160
188
  } finally {
161
- setLoading(false);
189
+ if (id === requestId.current) setLoading(false);
162
190
  }
163
191
  }, [projectName, gitRepo, setGitChangesCount]);
164
192
 
@@ -166,7 +194,7 @@ export function GitStatusPanel({ metadata, tabId, onNavigate }: GitStatusPanelPr
166
194
  fetchStatus();
167
195
  // Auto-reload every 5 seconds
168
196
  const interval = setInterval(fetchStatus, 5000);
169
- return () => clearInterval(interval);
197
+ return () => { requestId.current++; clearInterval(interval); };
170
198
  }, [fetchStatus]);
171
199
 
172
200
  const stageFiles = async (files: string[]) => {
@@ -460,7 +488,7 @@ export function GitStatusPanel({ metadata, tabId, onNavigate }: GitStatusPanelPr
460
488
  );
461
489
 
462
490
  return (
463
- <div className="flex flex-col h-full overflow-hidden">
491
+ <div ref={panelRef} data-onboarding="git" className="flex flex-col h-full overflow-hidden">
464
492
  <SidebarHeader icon={GitBranch} title={status?.current ? `On: ${status.current}` : "Source Control"}>
465
493
  <Button
466
494
  variant={viewMode === "flat" ? "secondary" : "ghost"}
@@ -54,7 +54,7 @@ export function EditorPanel({ panelId, projectName }: EditorPanelProps) {
54
54
  panelCount > 1 && "border border-transparent",
55
55
  panelCount > 1 && isFocused && "border-primary/30",
56
56
  )}
57
- onMouseDown={() => { if (usePanelStore.getState().focusedPanelId !== panelId) usePanelStore.getState().setFocusedPanel(panelId); }}
57
+ onMouseDown={() => { if (usePanelStore.getState().focusedPanelId !== panelId) usePanelStore.getState().setFocusedPanel(panelId, false); }}
58
58
  >
59
59
  <TabBar panelId={panelId} />
60
60
 
@@ -5,6 +5,7 @@ import { useProjectStore } from "@/stores/project-store";
5
5
  import { useSettingsStore, type SidebarActiveTab } from "@/stores/settings-store";
6
6
  import { useExtensionStore } from "@/stores/extension-store";
7
7
  import { FileTree } from "@/components/explorer/file-tree";
8
+ import { SearchPanel } from "@/components/explorer/search-panel";
8
9
  import { GitStatusPanel } from "@/components/git/git-status-panel";
9
10
  import { DatabaseSidebar } from "@/components/database/database-sidebar";
10
11
  import { JiraPanel } from "@/components/jira/jira-panel";
@@ -29,10 +30,10 @@ import { FeatureBadge } from "@/components/ui/feature-badge";
29
30
  import type { FeatureBadgeId } from "@/lib/feature-badges";
30
31
  import { cn } from "@/lib/utils";
31
32
 
32
- // Tab ids the mobile drawer can render content for. `search` is desktop-only for now;
33
+ // Tab ids the mobile drawer can render content for;
33
34
  // ext views are supported via the `ext:` prefix.
34
35
  const MOBILE_SUPPORTED = new Set<string>([
35
- "history", "teams", "explorer", "git", "database", "tunnels", "ai-resources", "jira",
36
+ "history", "teams", "explorer", "search", "git", "database", "tunnels", "ai-resources", "jira",
36
37
  ]);
37
38
  const isMobileSupported = (id: SidebarActiveTab) => MOBILE_SUPPORTED.has(id) || id.startsWith("ext:");
38
39
 
@@ -137,13 +138,14 @@ export function MobileDrawer({ isOpen, onClose, initialTab }: MobileDrawerProps)
137
138
  </div>
138
139
 
139
140
  {/* Tab content — scrollable */}
140
- <div className="flex-1 overflow-y-auto min-h-0">
141
+ <div data-onboarding={isOpen ? activeTab : undefined} className="flex-1 overflow-y-auto min-h-0">
141
142
  {activeTab === "history" && (activeProject
142
143
  ? <SessionHistoryList variant="sidebar" projectName={activeProject.name} onNavigate={onClose} />
143
144
  : noProject)}
144
145
  {activeTab === "teams" && (activeProject ? <GroupList /> : noProject)}
145
146
  {activeTab === "explorer" && (activeProject ? <FileTree onFileOpen={onClose} /> : noProject)}
146
- {activeTab === "git" && <GitStatusPanel metadata={{ projectName: activeProject?.name }} onNavigate={onClose} />}
147
+ {isOpen && activeTab === "search" && <SearchPanel onNavigate={onClose} />}
148
+ {isOpen && activeTab === "git" && <GitStatusPanel metadata={{ projectName: activeProject?.name }} onNavigate={onClose} />}
147
149
  {activeTab === "database" && <DatabaseSidebar />}
148
150
  {activeTab === "tunnels" && <TunnelManagerTab />}
149
151
  {activeTab === "jira" && <JiraPanel />}
@@ -206,6 +206,7 @@ export const ProjectSwitcher = memo(function ProjectSwitcher() {
206
206
  <input ref={fileInputRef} type="file" accept="image/*" className="hidden" onChange={onFilePicked} />
207
207
  <button
208
208
  ref={btnRef}
209
+ data-onboarding="project"
209
210
  onClick={toggleFlyout}
210
211
  title="Switch project"
211
212
  className={cn(
@@ -65,9 +65,11 @@ export function ReparentingTab({
65
65
  if (pid === DOCK_PANEL_ID || isWindowPanelId(pid)) return;
66
66
  usePanelStore.getState().setFocusedPanel(pid);
67
67
  };
68
- wrapper.addEventListener("mousedown", onMouseDown, true);
68
+ wrapper.addEventListener("pointerdown", onMouseDown, true);
69
+ wrapper.addEventListener("focusin", onMouseDown, true);
69
70
  return () => {
70
- wrapper.removeEventListener("mousedown", onMouseDown, true);
71
+ wrapper.removeEventListener("pointerdown", onMouseDown, true);
72
+ wrapper.removeEventListener("focusin", onMouseDown, true);
71
73
  wrapper.remove();
72
74
  };
73
75
  }, [wrapper, hiddenContainer]);
@@ -108,7 +108,7 @@ export const Sidebar = memo(function Sidebar() {
108
108
 
109
109
  <div className="flex-1 min-w-0 flex flex-col">
110
110
  {/* Panel content */}
111
- <div className="flex-1 overflow-y-auto min-h-0">
111
+ <div className="flex-1 overflow-y-auto min-h-0" data-onboarding={sidebarActiveTab === "explorer" ? "explorer" : undefined}>
112
112
  {sidebarActiveTab === "explorer" && (
113
113
  activeProject ? (
114
114
  <FileTree />
@@ -448,6 +448,7 @@ export const TabBar = memo(function TabBar({ panelId }: TabBarProps) {
448
448
  metadata: project ? { projectName: project.name } : undefined,
449
449
  });
450
450
  } else {
451
+ usePanelStore.getState().setFocusedPanel(effectivePanelId, false);
451
452
  openCommandPalette();
452
453
  }
453
454
  }}
@@ -503,4 +504,3 @@ export const TabBar = memo(function TabBar({ panelId }: TabBarProps) {
503
504
  </>
504
505
  );
505
506
  });
506
-
@@ -0,0 +1,15 @@
1
+ import { Sparkles } from "@/lib/icons";
2
+ import { Button } from "@/components/ui/button";
3
+ import { useOnboardingStore } from "@/stores/onboarding-store";
4
+ import { useProjectStore } from "@/stores/project-store";
5
+ import { openQuickOrientation } from "./onboarding-quick-orientation";
6
+
7
+ /** Reopening guidance never changes the workspace or the user's drafts. */
8
+ export function OnboardingEntry({ compact = false }: { compact?: boolean }) {
9
+ const state = useOnboardingStore();
10
+ const projectName = useProjectStore((s) => s.activeProject?.name);
11
+ const canResume = state.goal && state.familiarity && state.status !== "finished";
12
+ return <div className={compact ? "flex flex-wrap items-center gap-2" : "grid gap-2"}><Button variant="outline" className={compact ? "min-h-11" : "min-h-11 w-full"}
13
+ onClick={() => canResume ? state.resume(projectName) : state.status === "finished" ? state.replay() : state.begin()}><Sparkles className="size-4" />{canResume ? "Resume guided tour" : state.status === "unseen" ? "Get started with PPM" : "Open guided tour"}</Button>
14
+ <Button variant="link" className="min-h-11" onClick={openQuickOrientation}>Quick orientation</Button></div>;
15
+ }
@@ -0,0 +1,31 @@
1
+ import { useEffect, useState } from "react";
2
+ import { api, projectUrl } from "@/lib/api-client";
3
+ import { Button } from "@/components/ui/button";
4
+ import { useOnboardingStore } from "@/stores/onboarding-store";
5
+ import type { FileDirEntry } from "../../../types/project";
6
+
7
+ export function OnboardingFileHelp() {
8
+ const projectName = useOnboardingStore((state) => state.projectName);
9
+ const skip = useOnboardingStore((state) => state.skip);
10
+ const [empty, setEmpty] = useState(false);
11
+ useEffect(() => {
12
+ let cancelled = false;
13
+ let requestId = 0;
14
+ setEmpty(false);
15
+ if (!projectName) return;
16
+ const check = () => {
17
+ const id = ++requestId;
18
+ void api.get<FileDirEntry[]>(`${projectUrl(projectName)}/files/list`).then((entries) => {
19
+ if (!cancelled && id === requestId) setEmpty(entries.length === 0);
20
+ }).catch(() => { if (!cancelled && id === requestId) setEmpty(false); });
21
+ };
22
+ check();
23
+ window.addEventListener("ppm:onboarding-refresh", check);
24
+ return () => { cancelled = true; window.removeEventListener("ppm:onboarding-refresh", check); };
25
+ }, [projectName]);
26
+ return empty ? <div className="mt-3 rounded-lg border border-border p-3" role="status">
27
+ <p className="text-sm text-text-secondary">No files are visible in this project yet. You can create your own files later or choose another project. Nothing needs to be created for this tour.</p>
28
+ <Button variant="outline" className="w-full min-h-11 mt-2" onClick={skip}>Skip empty project step</Button>
29
+ <p className="text-xs text-text-secondary mt-2">This step will be marked skipped, not completed.</p>
30
+ </div> : <p className="text-xs text-text-secondary mt-2">Choose any text file, such as .txt, .js, .py or .md. No README or package.json is required. Markdown Preview counts too. If there is no readable file, use Skip step.</p>;
31
+ }
@@ -0,0 +1,45 @@
1
+ import { useState } from "react";
2
+ import { Check, ChevronDown, ChevronUp, X } from "@/lib/icons";
3
+ import { Button } from "@/components/ui/button";
4
+ import { useOnboardingStore } from "@/stores/onboarding-store";
5
+ import { getOnboardingCopy } from "@/lib/onboarding/onboarding-copy";
6
+ import { getOnboardingSteps } from "@/lib/onboarding/onboarding-steps";
7
+ import type { OnboardingStepId } from "@/lib/onboarding/onboarding-types";
8
+ import { openQuickOrientation } from "./onboarding-quick-orientation";
9
+ import { OnboardingFileHelp } from "./onboarding-file-help";
10
+
11
+ export function OnboardingGuide({ collapsed, setCollapsed, onAction, onSettings }: {
12
+ collapsed: boolean; setCollapsed: (value: boolean) => void; onAction: (step: OnboardingStepId) => void; onSettings: () => void;
13
+ }) {
14
+ const state = useOnboardingStore();
15
+ const [more, setMore] = useState(false);
16
+ const steps = getOnboardingSteps(state.goal);
17
+ const step = state.currentStep;
18
+ if (!step) return null;
19
+ const copy = getOnboardingCopy(step, state.familiarity ?? "beginner");
20
+ const index = steps.indexOf(step);
21
+ return <div className="p-4">
22
+ <div className="flex items-center gap-2">
23
+ <div className="flex-1 min-w-0"><p className="text-[11px] uppercase tracking-widest text-primary font-medium">Guided tour · {index + 1} of {steps.length}</p><h2 className="font-semibold text-sm mt-1" aria-live="polite">{copy.title}</h2></div>
24
+ <Button variant="ghost" className="min-h-11 min-w-11" aria-label={collapsed ? "Expand guide" : "Collapse guide"} onClick={() => setCollapsed(!collapsed)}>{collapsed ? <ChevronUp /> : <ChevronDown />}</Button>
25
+ <Button variant="ghost" className="min-h-11 min-w-11" aria-label="Pause tour" onClick={state.pause}><X /></Button>
26
+ </div>
27
+ {!collapsed && <>
28
+ <div className="flex gap-1 mt-3 mb-4" aria-label="Tour progress">{steps.map((id) => <span key={id} className={`h-1 flex-1 rounded-full ${state.completed.includes(id) ? "bg-primary" : state.skipped.includes(id) ? "bg-text-subtle" : "bg-border"}`} />)}</div>
29
+ <p className="text-sm text-text-secondary leading-relaxed">{copy.body}</p>
30
+ {step === "file" && <OnboardingFileHelp />}
31
+ {step === "run" && <p className="text-xs text-text-secondary mt-2">Open README directly, or package.json if no README is available. README Preview counts too.</p>}
32
+ {step === "run" && state.runDocumentReady && <p className="text-sm text-primary mt-2 flex items-center gap-1"><Check className="size-4" />Run instructions opened</p>}
33
+ <Button className="w-full mt-4 min-h-11" onClick={() => onAction(step)}>{step === "run" && state.runDocumentReady ? "I know where to run commands" : copy.action}</Button>
34
+ {(step === "chat" || step === "send") && <Button variant="ghost" className="w-full min-h-11 mt-1" onClick={onSettings}>AI settings</Button>}
35
+ <button className="text-xs text-primary py-3 min-h-11" onClick={() => setMore(!more)} aria-expanded={more}>{more ? "Less explanation" : "Explain this step"}</button>
36
+ {more && <p className="text-sm text-text-secondary leading-relaxed mb-3">{copy.more}</p>}
37
+ <Button variant="link" className="w-full min-h-11" onClick={openQuickOrientation}>Quick orientation</Button>
38
+ <div className="flex items-center justify-between border-t border-border pt-2">
39
+ <Button variant="ghost" className="min-h-11 px-2" disabled={index === 0} onClick={state.back}>Back</Button>
40
+ <Button variant="ghost" className="min-h-11 px-2" onClick={state.changeChoices}>Change guide</Button>
41
+ <Button variant="ghost" className="min-h-11 px-2" onClick={state.skip}>Skip step</Button>
42
+ </div>
43
+ </>}
44
+ </div>;
45
+ }
@@ -0,0 +1,43 @@
1
+ import { useEffect, useRef, useState, type ReactNode } from "react";
2
+ import { useIsMobile } from "@/hooks/use-is-mobile";
3
+ import { useVisualViewport } from "@/hooks/use-visual-viewport";
4
+
5
+ export function findTourTarget(target: string): HTMLElement | undefined {
6
+ return Array.from(document.querySelectorAll<HTMLElement>(`[data-onboarding="${target}"]`))
7
+ .find((node) => node.getClientRects().length > 0 && node.getBoundingClientRect().width > 0);
8
+ }
9
+
10
+ /** Nonmodal: the real app stays interactive throughout a guided action. */
11
+ export function OnboardingHint({ target, children, collapsed }: { target?: string; children: ReactNode; collapsed: boolean }) {
12
+ const mobile = useIsMobile();
13
+ const viewport = useVisualViewport(mobile);
14
+ const [rect, setRect] = useState<DOMRect | null>(null);
15
+ const card = useRef<HTMLElement>(null);
16
+ const [height, setHeight] = useState(360);
17
+ useEffect(() => {
18
+ if (!card.current) return;
19
+ const observer = new ResizeObserver(() => setHeight(card.current?.getBoundingClientRect().height ?? 360));
20
+ observer.observe(card.current);
21
+ return () => observer.disconnect();
22
+ }, []);
23
+ useEffect(() => {
24
+ if (!target || collapsed) { setRect(null); return; }
25
+ const measure = () => setRect(findTourTarget(target)?.getBoundingClientRect() ?? null);
26
+ measure();
27
+ const timer = window.setInterval(measure, 500);
28
+ window.addEventListener("resize", measure);
29
+ window.addEventListener("scroll", measure, true);
30
+ return () => { clearInterval(timer); window.removeEventListener("resize", measure); window.removeEventListener("scroll", measure, true); };
31
+ }, [target, collapsed]);
32
+ const left = !mobile && rect && rect.right + 380 < window.innerWidth ? rect.right + 12 : undefined;
33
+ const top = collapsed ? 48 : !mobile && rect
34
+ ? Math.max(16, Math.min(left !== undefined ? rect.top : rect.top - height - 12, window.innerHeight - height - 44)) : undefined;
35
+ return <>
36
+ {rect && !mobile && !collapsed && <div aria-hidden className="fixed pointer-events-none z-[59] rounded-md border-2 border-primary" style={{ left: rect.left, top: rect.top, width: rect.width, height: rect.height }} />}
37
+ <aside ref={card} aria-label="PPM guided tour" className="fixed z-[60] overflow-x-hidden rounded-xl border border-border bg-background text-foreground shadow-xl"
38
+ style={{ width: mobile ? "calc(100% - 24px)" : 352, maxWidth: "calc(100vw - 24px)", left: mobile ? 12 : left, right: mobile || left !== undefined ? undefined : 20,
39
+ top, bottom: top !== undefined ? undefined : mobile ? (viewport?.keyboardInset ?? 0) + 60 : 44, maxHeight: mobile ? "min(48dvh, 370px)" : "calc(100dvh - 80px)", overflowY: "auto" }}>
40
+ {children}
41
+ </aside>
42
+ </>;
43
+ }
@@ -0,0 +1,81 @@
1
+ import { useRef, useState } from "react";
2
+ import { Bell, Cloud, FolderTree, Settings, Bug, Search } from "@/lib/icons";
3
+ import { Button } from "@/components/ui/button";
4
+ import { Dialog, DialogContent, DialogDescription, DialogTitle } from "@/components/ui/dialog";
5
+ import { BUILTIN_SIDEBAR_TABS } from "@/lib/sidebar-tabs/tab-registry";
6
+ import { useIsMobile } from "@/hooks/use-is-mobile";
7
+ import { OnboardingStepTransition } from "./onboarding-step-transition";
8
+
9
+ export const OPEN_QUICK_ORIENTATION = "ppm:open-quick-orientation";
10
+ export function openQuickOrientation(): void {
11
+ window.dispatchEvent(new Event(OPEN_QUICK_ORIENTATION));
12
+ }
13
+
14
+ const descriptions: Record<string, string> = {
15
+ history: "Return to earlier AI conversations and continue where you left off.",
16
+ teams: "Find group conversations with multiple AI agents.",
17
+ explorer: "Browse files and folders in the selected project.",
18
+ search: "Find words across your project's files.",
19
+ git: "Review changed files and diffs before committing your work.",
20
+ database: "Browse connected databases and open the query editor.",
21
+ tunnels: "Manage tunnels for accessing local services remotely.",
22
+ "ai-resources": "Find available AI skills, commands and agents.",
23
+ };
24
+ const utilities = [
25
+ { title: "Notifications", icon: Bell, body: "See conversations that finished or need your attention." },
26
+ { title: "Cloud & Share", icon: Cloud, body: "Find sharing and remote-access options for this PPM instance." },
27
+ { title: "File Explorer", icon: FolderTree, body: "Browse the host computer, beyond the selected project." },
28
+ { title: "Settings", icon: Settings, body: "Configure AI, appearance and preferences; reopen guided tours." },
29
+ { title: "Report Bug", icon: Bug, body: "Open the bug-report form when something does not work." },
30
+ ];
31
+
32
+ /** Optional reference: it never changes tour progress or executes a palette command. */
33
+ export function OnboardingQuickOrientation({ onClose, onTryPalette }: { onClose: () => void; onTryPalette: () => void }) {
34
+ const [page, setPage] = useState<"palette" | "rail">("palette");
35
+ const mobile = useIsMobile();
36
+ const opener = useRef(document.activeElement as HTMLElement | null);
37
+ const openingPalette = useRef(false);
38
+ return <Dialog open onOpenChange={(open) => { if (!open) onClose(); }}>
39
+ <DialogContent className="max-h-[88dvh] overflow-y-auto sm:max-w-2xl p-5 sm:p-6" onCloseAutoFocus={(event) => {
40
+ event.preventDefault();
41
+ if (!openingPalette.current) {
42
+ const target = opener.current?.isConnected ? opener.current : document.querySelector<HTMLElement>('aside[aria-label="PPM guided tour"] button');
43
+ target?.focus();
44
+ }
45
+ }}>
46
+ <div className="text-xs font-medium uppercase tracking-widest text-primary">Quick orientation</div>
47
+ <DialogTitle className="text-xl">Find your way around PPM</DialogTitle>
48
+ <DialogDescription>Two shortcuts to getting comfortable. Your guided-tour progress stays saved.</DialogDescription>
49
+ <div className="flex gap-2" aria-label="Orientation topics">
50
+ <Button variant={page === "palette" ? "default" : "outline"} className="min-h-11 flex-1" aria-pressed={page === "palette"} onClick={() => setPage("palette")}>Command Palette</Button>
51
+ <Button variant={page === "rail" ? "default" : "outline"} className="min-h-11 flex-1" aria-pressed={page === "rail"} onClick={() => setPage("rail")}>{mobile ? "Navigation buttons" : "Left rail"}</Button>
52
+ </div>
53
+ <OnboardingStepTransition stepKey={page} order={page === "palette" ? 0 : 1}>
54
+ {page === "palette" ? <section className="space-y-4" aria-label="Command Palette introduction">
55
+ <div className="rounded-lg border border-border bg-surface p-4">
56
+ <Search className="size-6 text-primary mb-3" />
57
+ <h3 className="font-medium">One place to find actions and files</h3>
58
+ <p className="text-sm text-text-secondary mt-2">Type what you need, such as “Settings”, “Open Terminal”, or a filename. Choose a result to open it.</p>
59
+ </div>
60
+ <p className="text-sm text-text-secondary">{mobile ? "No keyboard required: tap Open Command Palette below. The same palette works on your phone." : "Double-tap Shift to open it from anywhere. F1 is the default shortcut and can be changed in Settings → Keyboard Shortcuts."}</p>
61
+ <p className="text-sm text-text-secondary">With a keyboard, use ↑ / ↓ to select a result, Enter to open it, and Escape to close. Opening the palette alone does not run a command.</p>
62
+ <Button className="w-full min-h-11" onClick={() => { openingPalette.current = true; onTryPalette(); }}>Open Command Palette</Button>
63
+ </section> : <section aria-label="Navigation introduction" className="space-y-4">
64
+ <p className="text-sm text-text-secondary">{mobile ? "Tap the menu button at the bottom to open navigation. These are the same sections shown in the left rail on desktop." : "The icon strip on the left switches between project sections. Hover for labels; click a section to open it. Clicking the active section again collapses it."}</p>
65
+ <div className="grid sm:grid-cols-2 gap-3">
66
+ {BUILTIN_SIDEBAR_TABS.map(({ id, label, icon: Icon }) => <div key={id} className="flex gap-3 rounded-lg border border-border p-3">
67
+ <Icon className="size-5 shrink-0 text-primary mt-0.5" /><div><h3 className="text-sm font-medium">{label}</h3><p className="text-sm text-text-secondary mt-1">{descriptions[id]}</p></div>
68
+ </div>)}
69
+ </div>
70
+ <h3 className="font-medium text-sm">{mobile ? "Utilities in the navigation menu" : "Utilities at the bottom of the rail"}</h3>
71
+ <div className="space-y-3">{utilities.filter((item) => !mobile || item.title !== "Notifications").map(({ title, icon: Icon, body }) => <div key={title} className="flex gap-3">
72
+ <Icon className="size-4 shrink-0 text-primary mt-1" /><p className="text-sm text-text-secondary"><strong className="font-medium text-foreground">{title}</strong> — {body}</p>
73
+ </div>)}</div>
74
+ {mobile && <p className="text-sm text-text-secondary">Mobile uses shorter labels: History, Tunnels and AI for the matching sections above; Files, Cloud and Bug for File Explorer, Cloud &amp; Share and Report Bug. The menu badge signals conversations needing attention.</p>}
75
+ <p className="text-xs text-text-secondary">Jira, Remote Desktop and extension buttons appear when available. Button order can be customized.</p>
76
+ </section>}
77
+ </OnboardingStepTransition>
78
+ <Button variant="ghost" className="min-h-11" onClick={onClose}>Back to what I was doing</Button>
79
+ </DialogContent>
80
+ </Dialog>;
81
+ }