@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
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-FhOqtrmT.js";import{C as t,S as n}from"./vendor-markdown-CuWCHIVb.js";import"./vendor-ui-DmZ-Mb-H.js";import{$n as r,Ct as i,Dr as a,Fr as o,Gn as s,Ir as c,Pr as l,Tt as u,er as d,ln as f,mn as p,or as m,st as h,xn as g,yt as _,zn as v}from"./icons-DQjqk0lJ.js";import"./api-client-C1ZwRL4Y.js";import"./portal-container-context-BarKmT4S.js";import{t as y}from"./button-B9CTrsEf.js";import{Gt as b,Ht as x,Kt as S,Ut as C,Vt as w,Wt as T,Xt as E,zt as D}from"./index-CEZVxM4G.js";import{o as O}from"./can-open-in-ppm-cv5--yHX.js";import{a as k,i as A,n as j,r as M,t as ee}from"./media-url-yfqHpPz0.js";var N=e(t(),1),P={rotation:0,flipH:!1,flipV:!1};function F(e){return{...e,rotation:(e.rotation+90)%360}}function te(e){return{...e,rotation:(e.rotation+270)%360}}function I(e){return e.rotation===0&&!e.flipH&&!e.flipV}function ne(e){let t=[];return e.rotation&&t.push(`rotate(${e.rotation}deg)`),e.flipH&&t.push(`scaleX(-1)`),e.flipV&&t.push(`scaleY(-1)`),t.length?t.join(` `):`none`}function re(e,t){return e.rotation===90||e.rotation===270?{maxWidth:t.height,maxHeight:t.width}:{maxWidth:t.width,maxHeight:t.height}}var L=[[`Space / K`,`Play / pause`],[`← / →`,`Seek 5s`],[`J / L or Shift+← / →`,`Seek 10s`],[`↑ / ↓`,`Volume`],[`M`,`Mute`],[`F`,`Fullscreen`],[`< / >`,`Speed`],[`R / Shift+R`,`Rotate`]];function R(e){return(0,N.useCallback)(t=>{let n=t.target;if(n.tagName===`INPUT`||n.tagName===`TEXTAREA`||n.isContentEditable||t.ctrlKey||t.metaKey||t.altKey)return;let r=!0;switch(t.key){case` `:case`k`:case`K`:e.togglePlay();break;case`ArrowLeft`:e.seekBy(t.shiftKey?-10:-5);break;case`ArrowRight`:e.seekBy(t.shiftKey?10:5);break;case`j`:case`J`:e.seekBy(-10);break;case`l`:case`L`:e.seekBy(10);break;case`ArrowUp`:e.volumeBy(.1);break;case`ArrowDown`:e.volumeBy(-.1);break;case`m`:case`M`:e.toggleMute();break;case`f`:case`F`:e.toggleFullscreen();break;case`<`:case`,`:e.speedStep(-1);break;case`>`:case`.`:e.speedStep(1);break;case`r`:e.rotate(1);break;case`R`:e.rotate(-1);break;default:r=!1}r&&t.preventDefault()},[e])}var z=n(),B=[.25,.5,.75,1,1.25,1.5,2,3];function V({speed:e,onSpeed:t,transform:n,onRotate:o,onFlipH:s,onFlipV:c,onResetTransform:l}){return(0,z.jsxs)(D,{children:[(0,z.jsx)(E,{asChild:!0,children:(0,z.jsxs)(y,{variant:`ghost`,size:`icon`,className:`size-11 shrink-0 relative`,"aria-label":`Playback settings`,children:[(0,z.jsx)(m,{className:`size-5`}),e!==1&&(0,z.jsxs)(`span`,{className:`absolute -top-0.5 -right-0.5 text-[10px] leading-none px-1 rounded bg-primary text-primary-foreground tabular-nums`,children:[e,`x`]})]})}),(0,z.jsxs)(w,{align:`end`,className:`w-60 max-h-[70vh] overflow-y-auto`,children:[(0,z.jsx)(C,{children:`Speed`}),(0,z.jsx)(T,{value:String(e),onValueChange:e=>t(Number(e)),children:(0,z.jsx)(`div`,{className:`grid grid-cols-4 gap-1 px-1 pb-1`,children:B.map(e=>(0,z.jsxs)(b,{value:String(e),className:`justify-center pl-2 min-h-11 text-xs tabular-nums data-[state=checked]:bg-accent [&>span:first-child]:hidden`,children:[e,`x`]},e))})}),(0,z.jsx)(S,{}),(0,z.jsx)(C,{children:`Orientation`}),(0,z.jsxs)(x,{className:`min-h-11`,onSelect:e=>{e.preventDefault(),o(1)},children:[(0,z.jsx)(d,{className:`size-4`}),` Rotate right `,(0,z.jsx)(`span`,{className:`ml-auto text-xs text-text-subtle`,children:`R`})]}),(0,z.jsxs)(x,{className:`min-h-11`,onSelect:e=>{e.preventDefault(),o(-1)},children:[(0,z.jsx)(r,{className:`size-4`}),` Rotate left `,(0,z.jsx)(`span`,{className:`ml-auto text-xs text-text-subtle`,children:`⇧R`})]}),(0,z.jsxs)(x,{className:`min-h-11`,onSelect:e=>{e.preventDefault(),s()},children:[(0,z.jsx)(i,{className:`size-4`}),` Flip horizontal `,n.flipH&&(0,z.jsx)(`span`,{className:`ml-auto text-xs`,children:`✓`})]}),(0,z.jsxs)(x,{className:`min-h-11`,onSelect:e=>{e.preventDefault(),c()},children:[(0,z.jsx)(u,{className:`size-4`}),` Flip vertical `,n.flipV&&(0,z.jsx)(`span`,{className:`ml-auto text-xs`,children:`✓`})]}),!I(n)&&(0,z.jsxs)(x,{className:`min-h-11`,onSelect:l,children:[(0,z.jsx)(a,{className:`size-4`}),` Reset orientation`]}),(0,z.jsx)(S,{}),(0,z.jsx)(C,{children:`Keyboard`}),(0,z.jsx)(`div`,{className:`px-2 pb-2 grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 text-xs text-text-secondary`,children:L.map(([e,t])=>(0,z.jsxs)(`div`,{className:`contents`,children:[(0,z.jsx)(`kbd`,{className:`font-mono text-text-subtle whitespace-nowrap`,children:e}),(0,z.jsx)(`span`,{children:t})]},e))})]})]})}function ie(e){let t=e.muted||e.volume===0?c:e.volume<.5?l:o,n=t=>e.onSeek(Number(t.target.value));return(0,z.jsxs)(`div`,{className:`flex items-center gap-1 px-2 py-1 bg-surface border-t border-border`,children:[(0,z.jsx)(y,{variant:`ghost`,size:`icon`,className:`size-11 shrink-0`,onClick:e.onTogglePlay,"aria-label":e.playing?`Pause`:`Play`,children:e.playing?(0,z.jsx)(v,{className:`size-5`}):(0,z.jsx)(s,{className:`size-5`})}),(0,z.jsxs)(`span`,{className:`text-xs tabular-nums text-text-secondary shrink-0 min-w-[4.5rem] text-center`,children:[H(e.position),e.duration?` / ${H(e.duration)}`:``]}),e.duration?(0,z.jsx)(`input`,{type:`range`,min:0,max:e.duration,step:.1,value:Math.min(e.position,e.duration),"aria-label":`Seek`,className:`flex-1 h-11 accent-primary cursor-pointer min-w-0`,onChange:t=>e.onScrub(Number(t.target.value)),onPointerUp:n,onKeyUp:n,onTouchEnd:n}):(0,z.jsx)(`div`,{className:`flex-1`}),(0,z.jsxs)(`div`,{className:`flex items-center shrink-0`,children:[(0,z.jsx)(y,{variant:`ghost`,size:`icon`,className:`size-11`,onClick:e.onToggleMute,"aria-label":e.muted?`Unmute`:`Mute`,children:(0,z.jsx)(t,{className:`size-5`})}),(0,z.jsx)(`input`,{type:`range`,min:0,max:1,step:.05,value:e.muted?0:e.volume,"aria-label":`Volume`,className:`hidden sm:block w-20 h-11 accent-primary cursor-pointer`,onChange:t=>e.onVolume(Number(t.target.value))})]}),(0,z.jsx)(V,{speed:e.speed,onSpeed:e.onSpeed,transform:e.transform,onRotate:e.onRotate,onFlipH:e.onFlipH,onFlipV:e.onFlipV,onResetTransform:e.onResetTransform}),(0,z.jsx)(y,{variant:`ghost`,size:`icon`,className:`size-11 shrink-0`,onClick:e.onToggleFullscreen,"aria-label":e.fullscreen?`Exit fullscreen`:`Fullscreen`,children:e.fullscreen?(0,z.jsx)(g,{className:`size-5`}):(0,z.jsx)(p,{className:`size-5`})})]})}function H(e){let t=Math.max(0,Math.floor(Number.isFinite(e)?e:0)),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60,a=n?String(r).padStart(2,`0`):String(r);return`${n?`${n}:`:``}${a}:${String(i).padStart(2,`0`)}`}function U({filePath:e,projectName:t,mode:n,probeDuration:r=null,onNativeError:i}){let a=(0,N.useRef)(null),o=(0,N.useRef)(null),s=(0,N.useRef)(null),c=(0,N.useRef)(!0),[l]=(0,N.useState)(ee),[u,d]=(0,N.useState)(0),[p,m]=(0,N.useState)(0),[h,g]=(0,N.useState)(null),[_,v]=(0,N.useState)(!1),[b,x]=(0,N.useState)(!0),[S,C]=(0,N.useState)(null),[w,T]=(0,N.useState)(1),[E,D]=(0,N.useState)(!1),[O,j]=(0,N.useState)(1),[I,L]=(0,N.useState)(P),[V,H]=(0,N.useState)(!1),[U,W]=(0,N.useState)({width:0,height:0}),[G,K]=(0,N.useState)(null),q=n===`transcode`,J=q?k(e,t,u,l):M(e,t),Y=q?r:h,X=S??(q?u+p:p);(0,N.useEffect)(()=>{m(0),x(!0),K(null)},[J]),(0,N.useEffect)(()=>{d(0),g(null),L(P)},[e,n]),(0,N.useEffect)(()=>{let e=s.current;e&&(e.volume=w,e.muted=E)},[w,E]),(0,N.useEffect)(()=>{let e=s.current;e&&(e.playbackRate=O)},[O,J]),(0,N.useEffect)(()=>{let n=s.current,r=()=>{q&&A(e,t,l)};return window.addEventListener(`pagehide`,r),()=>{window.removeEventListener(`pagehide`,r),n&&!n.isConnected&&(n.pause(),n.removeAttribute(`src`),n.load(),r())}},[e,t,q,l]),(0,N.useEffect)(()=>{let e=()=>H(document.fullscreenElement===a.current);return document.addEventListener(`fullscreenchange`,e),()=>document.removeEventListener(`fullscreenchange`,e)},[]),(0,N.useEffect)(()=>{let e=o.current;if(!e)return;let t=new ResizeObserver(()=>W({width:e.clientWidth,height:e.clientHeight}));return t.observe(e),()=>t.disconnect()},[]);let Z=(0,N.useCallback)(e=>{let t=s.current,n=Math.max(0,Y?Math.min(e,Y-.5):e);if(C(null),!q){t&&(t.currentTime=n);return}Math.abs(n-(u+(t?.currentTime??0)))<.5||d(n)},[Y,q,u]),Q=(0,N.useMemo)(()=>({togglePlay:()=>{let e=s.current;e&&(c.current=e.paused,e.paused?e.play().catch(()=>{}):e.pause())},seekBy:e=>Z((q?u:0)+(s.current?.currentTime??0)+e),toggleFullscreen:()=>{document.fullscreenElement?document.exitFullscreen():a.current?.requestFullscreen?.()},toggleMute:()=>D(e=>!e),volumeBy:e=>{D(!1),T(t=>Math.min(1,Math.max(0,Math.round((t+e)*100)/100)))},speedStep:e=>j(t=>{let n=B.indexOf(t);return B[Math.min(B.length-1,Math.max(0,(n===-1?3:n)+e))]??1}),rotate:e=>L(t=>e===1?F(t):te(t))}),[Z,q,u]),ae=R(Q),$=re(I,U),oe=()=>{K(null),d(e=>e+.001)};return(0,z.jsxs)(`div`,{ref:a,"data-testid":`video-player`,tabIndex:0,onKeyDown:ae,className:`flex flex-col h-full bg-black outline-none focus-visible:ring-1 focus-visible:ring-primary/60`,children:[(0,z.jsxs)(`div`,{ref:o,className:`relative flex-1 min-h-0 flex items-center justify-center overflow-hidden`,onClick:e=>{a.current?.focus(),e.detail===1&&Q.togglePlay()},onDoubleClick:Q.toggleFullscreen,children:[(0,z.jsx)(`video`,{ref:s,src:J,autoPlay:!0,playsInline:!0,preload:q?`auto`:`metadata`,style:{transform:ne(I),maxWidth:$.maxWidth||void 0,maxHeight:$.maxHeight||void 0},onLoadedMetadata:e=>{let t=e.currentTarget;t.playbackRate=O,t.volume=w,t.muted=E,!q&&Number.isFinite(t.duration)&&g(t.duration),q&&!c.current&&t.pause()},onPlay:()=>v(!0),onPause:()=>v(!1),onWaiting:()=>x(!0),onPlaying:()=>x(!1),onCanPlay:()=>x(!1),onTimeUpdate:e=>m(e.currentTarget.currentTime),onEnded:()=>{v(!1),c.current=!1},onError:()=>{q?K(`Transcoding failed. ffmpeg may have stopped or the file is corrupt.`):i?.()}}),b&&!G&&(0,z.jsx)(f,{className:`absolute size-8 animate-spin text-white/80 pointer-events-none`}),G&&(0,z.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center gap-3 bg-black/85 text-text-secondary p-4 text-center`,onClick:e=>e.stopPropagation(),onDoubleClick:e=>e.stopPropagation(),children:[(0,z.jsx)(`p`,{className:`text-sm`,children:G}),(0,z.jsx)(y,{variant:`outline`,size:`sm`,className:`h-11 px-4`,onClick:oe,children:`Retry`})]})]}),(0,z.jsx)(ie,{playing:_,position:X,duration:Y,volume:w,muted:E,speed:O,transform:I,fullscreen:V,onTogglePlay:Q.togglePlay,onScrub:C,onSeek:Z,onVolume:e=>{T(e),D(e===0)},onToggleMute:Q.toggleMute,onSpeed:j,onRotate:Q.rotate,onFlipH:()=>L(e=>({...e,flipH:!e.flipH})),onFlipV:()=>L(e=>({...e,flipV:!e.flipV})),onResetTransform:()=>L(P),onToggleFullscreen:Q.toggleFullscreen})]})}var W=new Set([`mp4`,`m4v`,`webm`,`ogg`,`ogv`,`mov`]);function G({filePath:e,projectName:t}){let n=O(e),[r,i]=(0,N.useState)(()=>W.has(n)?{kind:`native`}:{kind:`probing`});return(0,N.useEffect)(()=>{i(W.has(O(e))?{kind:`native`}:{kind:`probing`})},[e]),(0,N.useEffect)(()=>{if(r.kind!==`probing`)return;let n=!1;return j(e,t).then(e=>{n||i(e.transcodable?{kind:`transcode`,probe:e}:{kind:`unsupported`,probe:e})}).catch(()=>{n||i({kind:`unsupported`,probe:null})}),()=>{n=!0}},[r.kind,e,t]),r.kind===`probing`?(0,z.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,z.jsx)(f,{className:`size-5 animate-spin text-text-subtle`})}):r.kind===`transcode`?(0,z.jsx)(U,{filePath:e,projectName:t,mode:`transcode`,probeDuration:r.probe.duration}):r.kind===`unsupported`?(0,z.jsx)(K,{filePath:e,projectName:t,probe:r.probe}):(0,z.jsx)(U,{filePath:e,projectName:t,mode:`native`,onNativeError:()=>i({kind:`probing`})})}function K({filePath:e,projectName:t,probe:n}){let r=[n?.video?.codec,n?.audio?.codec].filter(Boolean).join(` + `);return(0,z.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full gap-3 text-text-secondary p-6 text-center`,children:[(0,z.jsx)(_,{className:`size-10 text-text-subtle`}),(0,z.jsxs)(`p`,{className:`text-sm`,children:[`This video cannot be played in the browser`,r?` (${r})`:``,`.`]}),(0,z.jsxs)(`p`,{className:`text-xs text-text-subtle max-w-sm`,children:[`Install `,(0,z.jsx)(`code`,{children:`ffmpeg`}),` on the PPM server (e.g. `,(0,z.jsx)(`code`,{children:`winget install ffmpeg`}),`, `,(0,z.jsx)(`code`,{children:`brew install ffmpeg`}),`,`,` `,(0,z.jsx)(`code`,{children:`apt install ffmpeg`}),`) and restart PPM to transcode it on the fly.`]}),(0,z.jsx)(y,{asChild:!0,variant:`outline`,size:`sm`,className:`h-11 px-4`,children:(0,z.jsxs)(`a`,{href:`${M(e,t)}&download=true`,download:!0,children:[(0,z.jsx)(h,{className:`size-4 mr-2`}),` Download file`]})})]})}export{G as VideoPreview};
1
+ import{o as e}from"./rolldown-runtime-FhOqtrmT.js";import{C as t,S as n}from"./vendor-markdown-CuWCHIVb.js";import"./vendor-ui-DmZ-Mb-H.js";import{$n as r,Ct as i,Dr as a,Fr as o,Gn as s,Ir as c,Pr as l,Tt as u,er as d,ln as f,mn as p,or as m,st as h,xn as g,yt as _,zn as v}from"./icons-DQjqk0lJ.js";import"./api-client-Jn3njtNw.js";import"./portal-container-context-BarKmT4S.js";import{t as y}from"./button-B9CTrsEf.js";import{Bt as b,Gt as x,Ht as S,Kt as C,Ut as w,Wt as T,Zt as E,qt as D}from"./index-8M7JWSZx.js";import{o as O}from"./can-open-in-ppm-cv5--yHX.js";import{a as k,i as A,n as j,r as M,t as ee}from"./media-url-BmIBOO3z.js";var N=e(t(),1),P={rotation:0,flipH:!1,flipV:!1};function F(e){return{...e,rotation:(e.rotation+90)%360}}function te(e){return{...e,rotation:(e.rotation+270)%360}}function I(e){return e.rotation===0&&!e.flipH&&!e.flipV}function ne(e){let t=[];return e.rotation&&t.push(`rotate(${e.rotation}deg)`),e.flipH&&t.push(`scaleX(-1)`),e.flipV&&t.push(`scaleY(-1)`),t.length?t.join(` `):`none`}function re(e,t){return e.rotation===90||e.rotation===270?{maxWidth:t.height,maxHeight:t.width}:{maxWidth:t.width,maxHeight:t.height}}var L=[[`Space / K`,`Play / pause`],[`← / →`,`Seek 5s`],[`J / L or Shift+← / →`,`Seek 10s`],[`↑ / ↓`,`Volume`],[`M`,`Mute`],[`F`,`Fullscreen`],[`< / >`,`Speed`],[`R / Shift+R`,`Rotate`]];function R(e){return(0,N.useCallback)(t=>{let n=t.target;if(n.tagName===`INPUT`||n.tagName===`TEXTAREA`||n.isContentEditable||t.ctrlKey||t.metaKey||t.altKey)return;let r=!0;switch(t.key){case` `:case`k`:case`K`:e.togglePlay();break;case`ArrowLeft`:e.seekBy(t.shiftKey?-10:-5);break;case`ArrowRight`:e.seekBy(t.shiftKey?10:5);break;case`j`:case`J`:e.seekBy(-10);break;case`l`:case`L`:e.seekBy(10);break;case`ArrowUp`:e.volumeBy(.1);break;case`ArrowDown`:e.volumeBy(-.1);break;case`m`:case`M`:e.toggleMute();break;case`f`:case`F`:e.toggleFullscreen();break;case`<`:case`,`:e.speedStep(-1);break;case`>`:case`.`:e.speedStep(1);break;case`r`:e.rotate(1);break;case`R`:e.rotate(-1);break;default:r=!1}r&&t.preventDefault()},[e])}var z=n(),B=[.25,.5,.75,1,1.25,1.5,2,3];function V({speed:e,onSpeed:t,transform:n,onRotate:o,onFlipH:s,onFlipV:c,onResetTransform:l}){return(0,z.jsxs)(b,{children:[(0,z.jsx)(E,{asChild:!0,children:(0,z.jsxs)(y,{variant:`ghost`,size:`icon`,className:`size-11 shrink-0 relative`,"aria-label":`Playback settings`,children:[(0,z.jsx)(m,{className:`size-5`}),e!==1&&(0,z.jsxs)(`span`,{className:`absolute -top-0.5 -right-0.5 text-[10px] leading-none px-1 rounded bg-primary text-primary-foreground tabular-nums`,children:[e,`x`]})]})}),(0,z.jsxs)(S,{align:`end`,className:`w-60 max-h-[70vh] overflow-y-auto`,children:[(0,z.jsx)(T,{children:`Speed`}),(0,z.jsx)(x,{value:String(e),onValueChange:e=>t(Number(e)),children:(0,z.jsx)(`div`,{className:`grid grid-cols-4 gap-1 px-1 pb-1`,children:B.map(e=>(0,z.jsxs)(C,{value:String(e),className:`justify-center pl-2 min-h-11 text-xs tabular-nums data-[state=checked]:bg-accent [&>span:first-child]:hidden`,children:[e,`x`]},e))})}),(0,z.jsx)(D,{}),(0,z.jsx)(T,{children:`Orientation`}),(0,z.jsxs)(w,{className:`min-h-11`,onSelect:e=>{e.preventDefault(),o(1)},children:[(0,z.jsx)(d,{className:`size-4`}),` Rotate right `,(0,z.jsx)(`span`,{className:`ml-auto text-xs text-text-subtle`,children:`R`})]}),(0,z.jsxs)(w,{className:`min-h-11`,onSelect:e=>{e.preventDefault(),o(-1)},children:[(0,z.jsx)(r,{className:`size-4`}),` Rotate left `,(0,z.jsx)(`span`,{className:`ml-auto text-xs text-text-subtle`,children:`⇧R`})]}),(0,z.jsxs)(w,{className:`min-h-11`,onSelect:e=>{e.preventDefault(),s()},children:[(0,z.jsx)(i,{className:`size-4`}),` Flip horizontal `,n.flipH&&(0,z.jsx)(`span`,{className:`ml-auto text-xs`,children:`✓`})]}),(0,z.jsxs)(w,{className:`min-h-11`,onSelect:e=>{e.preventDefault(),c()},children:[(0,z.jsx)(u,{className:`size-4`}),` Flip vertical `,n.flipV&&(0,z.jsx)(`span`,{className:`ml-auto text-xs`,children:`✓`})]}),!I(n)&&(0,z.jsxs)(w,{className:`min-h-11`,onSelect:l,children:[(0,z.jsx)(a,{className:`size-4`}),` Reset orientation`]}),(0,z.jsx)(D,{}),(0,z.jsx)(T,{children:`Keyboard`}),(0,z.jsx)(`div`,{className:`px-2 pb-2 grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 text-xs text-text-secondary`,children:L.map(([e,t])=>(0,z.jsxs)(`div`,{className:`contents`,children:[(0,z.jsx)(`kbd`,{className:`font-mono text-text-subtle whitespace-nowrap`,children:e}),(0,z.jsx)(`span`,{children:t})]},e))})]})]})}function ie(e){let t=e.muted||e.volume===0?c:e.volume<.5?l:o,n=t=>e.onSeek(Number(t.target.value));return(0,z.jsxs)(`div`,{className:`flex items-center gap-1 px-2 py-1 bg-surface border-t border-border`,children:[(0,z.jsx)(y,{variant:`ghost`,size:`icon`,className:`size-11 shrink-0`,onClick:e.onTogglePlay,"aria-label":e.playing?`Pause`:`Play`,children:e.playing?(0,z.jsx)(v,{className:`size-5`}):(0,z.jsx)(s,{className:`size-5`})}),(0,z.jsxs)(`span`,{className:`text-xs tabular-nums text-text-secondary shrink-0 min-w-[4.5rem] text-center`,children:[H(e.position),e.duration?` / ${H(e.duration)}`:``]}),e.duration?(0,z.jsx)(`input`,{type:`range`,min:0,max:e.duration,step:.1,value:Math.min(e.position,e.duration),"aria-label":`Seek`,className:`flex-1 h-11 accent-primary cursor-pointer min-w-0`,onChange:t=>e.onScrub(Number(t.target.value)),onPointerUp:n,onKeyUp:n,onTouchEnd:n}):(0,z.jsx)(`div`,{className:`flex-1`}),(0,z.jsxs)(`div`,{className:`flex items-center shrink-0`,children:[(0,z.jsx)(y,{variant:`ghost`,size:`icon`,className:`size-11`,onClick:e.onToggleMute,"aria-label":e.muted?`Unmute`:`Mute`,children:(0,z.jsx)(t,{className:`size-5`})}),(0,z.jsx)(`input`,{type:`range`,min:0,max:1,step:.05,value:e.muted?0:e.volume,"aria-label":`Volume`,className:`hidden sm:block w-20 h-11 accent-primary cursor-pointer`,onChange:t=>e.onVolume(Number(t.target.value))})]}),(0,z.jsx)(V,{speed:e.speed,onSpeed:e.onSpeed,transform:e.transform,onRotate:e.onRotate,onFlipH:e.onFlipH,onFlipV:e.onFlipV,onResetTransform:e.onResetTransform}),(0,z.jsx)(y,{variant:`ghost`,size:`icon`,className:`size-11 shrink-0`,onClick:e.onToggleFullscreen,"aria-label":e.fullscreen?`Exit fullscreen`:`Fullscreen`,children:e.fullscreen?(0,z.jsx)(g,{className:`size-5`}):(0,z.jsx)(p,{className:`size-5`})})]})}function H(e){let t=Math.max(0,Math.floor(Number.isFinite(e)?e:0)),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60,a=n?String(r).padStart(2,`0`):String(r);return`${n?`${n}:`:``}${a}:${String(i).padStart(2,`0`)}`}function U({filePath:e,projectName:t,mode:n,probeDuration:r=null,onNativeError:i}){let a=(0,N.useRef)(null),o=(0,N.useRef)(null),s=(0,N.useRef)(null),c=(0,N.useRef)(!0),[l]=(0,N.useState)(ee),[u,d]=(0,N.useState)(0),[p,m]=(0,N.useState)(0),[h,g]=(0,N.useState)(null),[_,v]=(0,N.useState)(!1),[b,x]=(0,N.useState)(!0),[S,C]=(0,N.useState)(null),[w,T]=(0,N.useState)(1),[E,D]=(0,N.useState)(!1),[O,j]=(0,N.useState)(1),[I,L]=(0,N.useState)(P),[V,H]=(0,N.useState)(!1),[U,W]=(0,N.useState)({width:0,height:0}),[G,K]=(0,N.useState)(null),q=n===`transcode`,J=q?k(e,t,u,l):M(e,t),Y=q?r:h,X=S??(q?u+p:p);(0,N.useEffect)(()=>{m(0),x(!0),K(null)},[J]),(0,N.useEffect)(()=>{d(0),g(null),L(P)},[e,n]),(0,N.useEffect)(()=>{let e=s.current;e&&(e.volume=w,e.muted=E)},[w,E]),(0,N.useEffect)(()=>{let e=s.current;e&&(e.playbackRate=O)},[O,J]),(0,N.useEffect)(()=>{let n=s.current,r=()=>{q&&A(e,t,l)};return window.addEventListener(`pagehide`,r),()=>{window.removeEventListener(`pagehide`,r),n&&!n.isConnected&&(n.pause(),n.removeAttribute(`src`),n.load(),r())}},[e,t,q,l]),(0,N.useEffect)(()=>{let e=()=>H(document.fullscreenElement===a.current);return document.addEventListener(`fullscreenchange`,e),()=>document.removeEventListener(`fullscreenchange`,e)},[]),(0,N.useEffect)(()=>{let e=o.current;if(!e)return;let t=new ResizeObserver(()=>W({width:e.clientWidth,height:e.clientHeight}));return t.observe(e),()=>t.disconnect()},[]);let Z=(0,N.useCallback)(e=>{let t=s.current,n=Math.max(0,Y?Math.min(e,Y-.5):e);if(C(null),!q){t&&(t.currentTime=n);return}Math.abs(n-(u+(t?.currentTime??0)))<.5||d(n)},[Y,q,u]),Q=(0,N.useMemo)(()=>({togglePlay:()=>{let e=s.current;e&&(c.current=e.paused,e.paused?e.play().catch(()=>{}):e.pause())},seekBy:e=>Z((q?u:0)+(s.current?.currentTime??0)+e),toggleFullscreen:()=>{document.fullscreenElement?document.exitFullscreen():a.current?.requestFullscreen?.()},toggleMute:()=>D(e=>!e),volumeBy:e=>{D(!1),T(t=>Math.min(1,Math.max(0,Math.round((t+e)*100)/100)))},speedStep:e=>j(t=>{let n=B.indexOf(t);return B[Math.min(B.length-1,Math.max(0,(n===-1?3:n)+e))]??1}),rotate:e=>L(t=>e===1?F(t):te(t))}),[Z,q,u]),ae=R(Q),$=re(I,U),oe=()=>{K(null),d(e=>e+.001)};return(0,z.jsxs)(`div`,{ref:a,"data-testid":`video-player`,tabIndex:0,onKeyDown:ae,className:`flex flex-col h-full bg-black outline-none focus-visible:ring-1 focus-visible:ring-primary/60`,children:[(0,z.jsxs)(`div`,{ref:o,className:`relative flex-1 min-h-0 flex items-center justify-center overflow-hidden`,onClick:e=>{a.current?.focus(),e.detail===1&&Q.togglePlay()},onDoubleClick:Q.toggleFullscreen,children:[(0,z.jsx)(`video`,{ref:s,src:J,autoPlay:!0,playsInline:!0,preload:q?`auto`:`metadata`,style:{transform:ne(I),maxWidth:$.maxWidth||void 0,maxHeight:$.maxHeight||void 0},onLoadedMetadata:e=>{let t=e.currentTarget;t.playbackRate=O,t.volume=w,t.muted=E,!q&&Number.isFinite(t.duration)&&g(t.duration),q&&!c.current&&t.pause()},onPlay:()=>v(!0),onPause:()=>v(!1),onWaiting:()=>x(!0),onPlaying:()=>x(!1),onCanPlay:()=>x(!1),onTimeUpdate:e=>m(e.currentTarget.currentTime),onEnded:()=>{v(!1),c.current=!1},onError:()=>{q?K(`Transcoding failed. ffmpeg may have stopped or the file is corrupt.`):i?.()}}),b&&!G&&(0,z.jsx)(f,{className:`absolute size-8 animate-spin text-white/80 pointer-events-none`}),G&&(0,z.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center gap-3 bg-black/85 text-text-secondary p-4 text-center`,onClick:e=>e.stopPropagation(),onDoubleClick:e=>e.stopPropagation(),children:[(0,z.jsx)(`p`,{className:`text-sm`,children:G}),(0,z.jsx)(y,{variant:`outline`,size:`sm`,className:`h-11 px-4`,onClick:oe,children:`Retry`})]})]}),(0,z.jsx)(ie,{playing:_,position:X,duration:Y,volume:w,muted:E,speed:O,transform:I,fullscreen:V,onTogglePlay:Q.togglePlay,onScrub:C,onSeek:Z,onVolume:e=>{T(e),D(e===0)},onToggleMute:Q.toggleMute,onSpeed:j,onRotate:Q.rotate,onFlipH:()=>L(e=>({...e,flipH:!e.flipH})),onFlipV:()=>L(e=>({...e,flipV:!e.flipV})),onResetTransform:()=>L(P),onToggleFullscreen:Q.toggleFullscreen})]})}var W=new Set([`mp4`,`m4v`,`webm`,`ogg`,`ogv`,`mov`]);function G({filePath:e,projectName:t}){let n=O(e),[r,i]=(0,N.useState)(()=>W.has(n)?{kind:`native`}:{kind:`probing`});return(0,N.useEffect)(()=>{i(W.has(O(e))?{kind:`native`}:{kind:`probing`})},[e]),(0,N.useEffect)(()=>{if(r.kind!==`probing`)return;let n=!1;return j(e,t).then(e=>{n||i(e.transcodable?{kind:`transcode`,probe:e}:{kind:`unsupported`,probe:e})}).catch(()=>{n||i({kind:`unsupported`,probe:null})}),()=>{n=!0}},[r.kind,e,t]),r.kind===`probing`?(0,z.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,z.jsx)(f,{className:`size-5 animate-spin text-text-subtle`})}):r.kind===`transcode`?(0,z.jsx)(U,{filePath:e,projectName:t,mode:`transcode`,probeDuration:r.probe.duration}):r.kind===`unsupported`?(0,z.jsx)(K,{filePath:e,projectName:t,probe:r.probe}):(0,z.jsx)(U,{filePath:e,projectName:t,mode:`native`,onNativeError:()=>i({kind:`probing`})})}function K({filePath:e,projectName:t,probe:n}){let r=[n?.video?.codec,n?.audio?.codec].filter(Boolean).join(` + `);return(0,z.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full gap-3 text-text-secondary p-6 text-center`,children:[(0,z.jsx)(_,{className:`size-10 text-text-subtle`}),(0,z.jsxs)(`p`,{className:`text-sm`,children:[`This video cannot be played in the browser`,r?` (${r})`:``,`.`]}),(0,z.jsxs)(`p`,{className:`text-xs text-text-subtle max-w-sm`,children:[`Install `,(0,z.jsx)(`code`,{children:`ffmpeg`}),` on the PPM server (e.g. `,(0,z.jsx)(`code`,{children:`winget install ffmpeg`}),`, `,(0,z.jsx)(`code`,{children:`brew install ffmpeg`}),`,`,` `,(0,z.jsx)(`code`,{children:`apt install ffmpeg`}),`) and restart PPM to transcode it on the fly.`]}),(0,z.jsx)(y,{asChild:!0,variant:`outline`,size:`sm`,className:`h-11 px-4`,children:(0,z.jsxs)(`a`,{href:`${M(e,t)}&download=true`,download:!0,children:[(0,z.jsx)(h,{className:`size-4 mr-2`}),` Download file`]})})]})}export{G as VideoPreview};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-FhOqtrmT.js";import{C as t}from"./vendor-markdown-CuWCHIVb.js";import{f as n}from"./panel-store-CboGJAwh.js";var r=e(t(),1),i=new Map,a=new Map,o=new Set;function s(e,t){t?i.set(e,t):i.delete(e);for(let e of o)e()}function c(e,t=2e3){let n=p(e);return n?Promise.resolve(n):new Promise(n=>{let r=e=>{o.delete(i),clearTimeout(a),n(e)},i=()=>{let t=p(e);t&&r(t)},a=setTimeout(()=>r(null),t);o.add(i)})}var l=new Set;function u(e){l.add(e)}function d(e){return l.has(e)}function f(e){l.delete(e)}function p(e){return i.get(e)??null}function m(e,t){if((a.get(e)??null)!==t){t?a.set(e,t):a.delete(e);for(let e of o)e()}}function h(e){return e?a.get(e)??null:null}function g(e){return o.add(e),()=>{o.delete(e)}}function _(e){return(0,r.useSyncExternalStore)(g,(0,r.useCallback)(()=>h(e),[e]))}function v(e){return _(n(e))?.pipWindow.document.body}export{m as a,c,s as i,h as l,d as n,v as o,u as r,_ as s,f as t,p as u};
1
+ import{o as e}from"./rolldown-runtime-FhOqtrmT.js";import{C as t}from"./vendor-markdown-CuWCHIVb.js";import{f as n}from"./panel-store-D20Zuf3i.js";var r=e(t(),1),i=new Map,a=new Map,o=new Set;function s(e,t){t?i.set(e,t):i.delete(e);for(let e of o)e()}function c(e,t=2e3){let n=p(e);return n?Promise.resolve(n):new Promise(n=>{let r=e=>{o.delete(i),clearTimeout(a),n(e)},i=()=>{let t=p(e);t&&r(t)},a=setTimeout(()=>r(null),t);o.add(i)})}var l=new Set;function u(e){l.add(e)}function d(e){return l.has(e)}function f(e){l.delete(e)}function p(e){return i.get(e)??null}function m(e,t){if((a.get(e)??null)!==t){t?a.set(e,t):a.delete(e);for(let e of o)e()}}function h(e){return e?a.get(e)??null:null}function g(e){return o.add(e),()=>{o.delete(e)}}function _(e){return(0,r.useSyncExternalStore)(g,(0,r.useCallback)(()=>h(e),[e]))}function v(e){return _(n(e))?.pipWindow.document.body}export{m as a,c,s as i,h as l,d as n,v as o,u as r,_ as s,f as t,p as u};
@@ -0,0 +1 @@
1
+ import{r as e}from"./api-client-Jn3njtNw.js";function t(t){let n=e();return!n||/[?&]token=/.test(t)?t:`${t}${t.includes(`?`)?`&`:`?`}token=${encodeURIComponent(n)}`}export{t};
@@ -9,7 +9,7 @@
9
9
  <link rel="preconnect" href="https://fonts.googleapis.com" />
10
10
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
11
11
  <link href="https://fonts.googleapis.com/css2?family=Geist+Mono:wght@400;500;600;700&family=Geist:wght@400;500;600;700&display=swap" rel="stylesheet" />
12
- <script type="module" crossorigin src="/assets/index-CEZVxM4G.js"></script>
12
+ <script type="module" crossorigin src="/assets/index-8M7JWSZx.js"></script>
13
13
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-FhOqtrmT.js">
14
14
  <link rel="modulepreload" crossorigin href="/assets/vendor-mermaid-BitiXJlL.js">
15
15
  <link rel="modulepreload" crossorigin href="/assets/vendor-markdown-CuWCHIVb.js">
@@ -17,33 +17,33 @@
17
17
  <link rel="modulepreload" crossorigin href="/assets/utils-Bmf_8h7Y.js">
18
18
  <link rel="modulepreload" crossorigin href="/assets/button-B9CTrsEf.js">
19
19
  <link rel="modulepreload" crossorigin href="/assets/createLucideIcon-DoiEKeJ_.js">
20
- <link rel="modulepreload" crossorigin href="/assets/api-client-C1ZwRL4Y.js">
20
+ <link rel="modulepreload" crossorigin href="/assets/api-client-Jn3njtNw.js">
21
21
  <link rel="modulepreload" crossorigin href="/assets/react-Bghu0NUO.js">
22
- <link rel="modulepreload" crossorigin href="/assets/settings-store-krC6bc79.js">
23
- <link rel="modulepreload" crossorigin href="/assets/file-store-ojgMXgAw.js">
22
+ <link rel="modulepreload" crossorigin href="/assets/settings-store-DhU2tx3Y.js">
23
+ <link rel="modulepreload" crossorigin href="/assets/file-store-Ds3qJ4hC.js">
24
24
  <link rel="modulepreload" crossorigin href="/assets/window-store-UC1jJeLM.js">
25
- <link rel="modulepreload" crossorigin href="/assets/panel-store-CboGJAwh.js">
26
- <link rel="modulepreload" crossorigin href="/assets/window-pip-registry-yD6esSju.js">
27
- <link rel="modulepreload" crossorigin href="/assets/format-file-meta-C77h04cZ.js">
25
+ <link rel="modulepreload" crossorigin href="/assets/panel-store-D20Zuf3i.js">
26
+ <link rel="modulepreload" crossorigin href="/assets/window-pip-registry-D1oXq-Dq.js">
28
27
  <link rel="modulepreload" crossorigin href="/assets/portal-container-context-BarKmT4S.js">
29
28
  <link rel="modulepreload" crossorigin href="/assets/icons-DQjqk0lJ.js">
30
- <link rel="modulepreload" crossorigin href="/assets/context-menu-C6pIsf83.js">
31
29
  <link rel="modulepreload" crossorigin href="/assets/dialog-B84_DJQ8.js">
30
+ <link rel="modulepreload" crossorigin href="/assets/use-is-mobile-TkcwP1Gx.js">
31
+ <link rel="modulepreload" crossorigin href="/assets/onboarding-quick-orientation-Dqmis-E5.js">
32
+ <link rel="modulepreload" crossorigin href="/assets/format-file-meta-PPi3ptkm.js">
33
+ <link rel="modulepreload" crossorigin href="/assets/context-menu-C6pIsf83.js">
32
34
  <link rel="modulepreload" crossorigin href="/assets/input-C7Q8FxeL.js">
33
35
  <link rel="modulepreload" crossorigin href="/assets/use-visual-viewport-Lp878uzs.js">
34
36
  <link rel="modulepreload" crossorigin href="/assets/mobile-bottom-sheet-C3TniEP-.js">
35
37
  <link rel="modulepreload" crossorigin href="/assets/scroll-area-BzeiOd-B.js">
36
- <link rel="modulepreload" crossorigin href="/assets/use-is-mobile-TkcwP1Gx.js">
37
- <link rel="modulepreload" crossorigin href="/assets/project-framework-store-B70Q3dNM.js">
38
- <link rel="modulepreload" crossorigin href="/assets/file-icons-BXdvggK2.js">
39
- <link rel="modulepreload" crossorigin href="/assets/git-repo-store-88Z8v-pF.js">
40
- <link rel="modulepreload" crossorigin href="/assets/project-store-B87hLRSk.js">
41
- <link rel="modulepreload" crossorigin href="/assets/ws-auth-CEYVQ8NH.js">
42
- <link rel="modulepreload" crossorigin href="/assets/streaming-store-BYukdB56.js">
43
- <link rel="modulepreload" crossorigin href="/assets/tab-store-OJa1GPCq.js">
38
+ <link rel="modulepreload" crossorigin href="/assets/project-framework-store-ViZgce6y.js">
39
+ <link rel="modulepreload" crossorigin href="/assets/file-icons-wS-OmEVu.js">
40
+ <link rel="modulepreload" crossorigin href="/assets/git-repo-store-BCEPfUGT.js">
41
+ <link rel="modulepreload" crossorigin href="/assets/project-store-hNvwfqX3.js">
42
+ <link rel="modulepreload" crossorigin href="/assets/ws-auth-BG-cdrQ8.js">
43
+ <link rel="modulepreload" crossorigin href="/assets/tab-store-krAuHQ6_.js">
44
44
  <link rel="modulepreload" crossorigin href="/assets/apply-theme-CbR31K6I.js">
45
45
  <link rel="modulepreload" crossorigin href="/assets/resolve-theme-B_ukrg_8.js">
46
- <link rel="stylesheet" crossorigin href="/assets/index-BH99TIE0.css">
46
+ <link rel="stylesheet" crossorigin href="/assets/index-CWL5emyr.css">
47
47
  <link rel="manifest" href="/manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="/registerSW.js"></script></head>
48
48
  <body class="text-text font-sans antialiased" style="background: var(--bg)">
49
49
  <!-- FOUC guard: apply the persisted theme mode before first paint.
Binary file
Binary file
package/dist/web/sw.js CHANGED
@@ -1 +1 @@
1
- try{self[`workbox:core:7.3.0`]&&_()}catch{}var e=(e,...t)=>{let n=e;return t.length>0&&(n+=` :: ${JSON.stringify(t)}`),n},t=class extends Error{constructor(t,n){let r=e(t,n);super(r),this.name=t,this.details=n}},n={googleAnalytics:`googleAnalytics`,precache:`precache-v2`,prefix:`workbox`,runtime:`runtime`,suffix:typeof registration<`u`?registration.scope:``},r=e=>[n.prefix,e,n.suffix].filter(e=>e&&e.length>0).join(`-`),i=e=>{for(let t of Object.keys(n))e(t)},a={updateDetails:e=>{i(t=>{typeof e[t]==`string`&&(n[t]=e[t])})},getGoogleAnalyticsName:e=>e||r(n.googleAnalytics),getPrecacheName:e=>e||r(n.precache),getPrefix:()=>n.prefix,getRuntimeName:e=>e||r(n.runtime),getSuffix:()=>n.suffix};function o(e,t){let n=t();return e.waitUntil(n),n}try{self[`workbox:precaching:7.3.0`]&&_()}catch{}var s=`__WB_REVISION__`;function c(e){if(!e)throw new t(`add-to-cache-list-unexpected-type`,{entry:e});if(typeof e==`string`){let t=new URL(e,location.href);return{cacheKey:t.href,url:t.href}}let{revision:n,url:r}=e;if(!r)throw new t(`add-to-cache-list-unexpected-type`,{entry:e});if(!n){let e=new URL(r,location.href);return{cacheKey:e.href,url:e.href}}let i=new URL(r,location.href),a=new URL(r,location.href);return i.searchParams.set(s,n),{cacheKey:i.href,url:a.href}}var l=class{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:e,state:t})=>{t&&(t.originalRequest=e)},this.cachedResponseWillBeUsed=async({event:e,state:t,cachedResponse:n})=>{if(e.type===`install`&&t&&t.originalRequest&&t.originalRequest instanceof Request){let e=t.originalRequest.url;n?this.notUpdatedURLs.push(e):this.updatedURLs.push(e)}return n}}},u=class{constructor({precacheController:e}){this.cacheKeyWillBeUsed=async({request:e,params:t})=>{let n=t?.cacheKey||this._precacheController.getCacheKeyForURL(e.url);return n?new Request(n,{headers:e.headers}):e},this._precacheController=e}},d;function f(){if(d===void 0){let e=new Response(``);if(`body`in e)try{new Response(e.body),d=!0}catch{d=!1}d=!1}return d}async function p(e,n){let r=null;if(e.url&&(r=new URL(e.url).origin),r!==self.location.origin)throw new t(`cross-origin-copy-response`,{origin:r});let i=e.clone(),a={headers:new Headers(i.headers),status:i.status,statusText:i.statusText},o=n?n(a):a,s=f()?i.body:await i.blob();return new Response(s,o)}var m=e=>new URL(String(e),location.href).href.replace(RegExp(`^${location.origin}`),``);function h(e,t){let n=new URL(e);for(let e of t)n.searchParams.delete(e);return n.href}async function g(e,t,n,r){let i=h(t.url,n);if(t.url===i)return e.match(t,r);let a=Object.assign(Object.assign({},r),{ignoreSearch:!0}),o=await e.keys(t,a);for(let t of o)if(i===h(t.url,n))return e.match(t,r)}var v=class{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}},y=new Set;async function b(){for(let e of y)await e()}function x(e){return new Promise(t=>setTimeout(t,e))}try{self[`workbox:strategies:7.3.0`]&&_()}catch{}function S(e){return typeof e==`string`?new Request(e):e}var C=class{constructor(e,t){this._cacheKeys={},Object.assign(this,t),this.event=t.event,this._strategy=e,this._handlerDeferred=new v,this._extendLifetimePromises=[],this._plugins=[...e.plugins],this._pluginStateMap=new Map;for(let e of this._plugins)this._pluginStateMap.set(e,{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(e){let{event:n}=this,r=S(e);if(r.mode===`navigate`&&n instanceof FetchEvent&&n.preloadResponse){let e=await n.preloadResponse;if(e)return e}let i=this.hasCallback(`fetchDidFail`)?r.clone():null;try{for(let e of this.iterateCallbacks(`requestWillFetch`))r=await e({request:r.clone(),event:n})}catch(e){if(e instanceof Error)throw new t(`plugin-error-request-will-fetch`,{thrownErrorMessage:e.message})}let a=r.clone();try{let e;e=await fetch(r,r.mode===`navigate`?void 0:this._strategy.fetchOptions);for(let t of this.iterateCallbacks(`fetchDidSucceed`))e=await t({event:n,request:a,response:e});return e}catch(e){throw i&&await this.runCallbacks(`fetchDidFail`,{error:e,event:n,originalRequest:i.clone(),request:a.clone()}),e}}async fetchAndCachePut(e){let t=await this.fetch(e),n=t.clone();return this.waitUntil(this.cachePut(e,n)),t}async cacheMatch(e){let t=S(e),n,{cacheName:r,matchOptions:i}=this._strategy,a=await this.getCacheKey(t,`read`),o=Object.assign(Object.assign({},i),{cacheName:r});n=await caches.match(a,o);for(let e of this.iterateCallbacks(`cachedResponseWillBeUsed`))n=await e({cacheName:r,matchOptions:i,cachedResponse:n,request:a,event:this.event})||void 0;return n}async cachePut(e,n){let r=S(e);await x(0);let i=await this.getCacheKey(r,`write`);if(!n)throw new t(`cache-put-with-no-response`,{url:m(i.url)});let a=await this._ensureResponseSafeToCache(n);if(!a)return!1;let{cacheName:o,matchOptions:s}=this._strategy,c=await self.caches.open(o),l=this.hasCallback(`cacheDidUpdate`),u=l?await g(c,i.clone(),[`__WB_REVISION__`],s):null;try{await c.put(i,l?a.clone():a)}catch(e){if(e instanceof Error)throw e.name===`QuotaExceededError`&&await b(),e}for(let e of this.iterateCallbacks(`cacheDidUpdate`))await e({cacheName:o,oldResponse:u,newResponse:a.clone(),request:i,event:this.event});return!0}async getCacheKey(e,t){let n=`${e.url} | ${t}`;if(!this._cacheKeys[n]){let r=e;for(let e of this.iterateCallbacks(`cacheKeyWillBeUsed`))r=S(await e({mode:t,request:r,event:this.event,params:this.params}));this._cacheKeys[n]=r}return this._cacheKeys[n]}hasCallback(e){for(let t of this._strategy.plugins)if(e in t)return!0;return!1}async runCallbacks(e,t){for(let n of this.iterateCallbacks(e))await n(t)}*iterateCallbacks(e){for(let t of this._strategy.plugins)if(typeof t[e]==`function`){let n=this._pluginStateMap.get(t);yield r=>{let i=Object.assign(Object.assign({},r),{state:n});return t[e](i)}}}waitUntil(e){return this._extendLifetimePromises.push(e),e}async doneWaiting(){for(;this._extendLifetimePromises.length;){let e=this._extendLifetimePromises.splice(0),t=(await Promise.allSettled(e)).find(e=>e.status===`rejected`);if(t)throw t.reason}}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let t=e,n=!1;for(let e of this.iterateCallbacks(`cacheWillUpdate`))if(t=await e({request:this.request,response:t,event:this.event})||void 0,n=!0,!t)break;return n||t&&t.status!==200&&(t=void 0),t}},w=class{constructor(e={}){this.cacheName=a.getRuntimeName(e.cacheName),this.plugins=e.plugins||[],this.fetchOptions=e.fetchOptions,this.matchOptions=e.matchOptions}handle(e){let[t]=this.handleAll(e);return t}handleAll(e){e instanceof FetchEvent&&(e={event:e,request:e.request});let t=e.event,n=typeof e.request==`string`?new Request(e.request):e.request,r=`params`in e?e.params:void 0,i=new C(this,{event:t,request:n,params:r}),a=this._getResponse(i,n,t);return[a,this._awaitComplete(a,i,n,t)]}async _getResponse(e,n,r){await e.runCallbacks(`handlerWillStart`,{event:r,request:n});let i;try{if(i=await this._handle(n,e),!i||i.type===`error`)throw new t(`no-response`,{url:n.url})}catch(t){if(t instanceof Error){for(let a of e.iterateCallbacks(`handlerDidError`))if(i=await a({error:t,event:r,request:n}),i)break}if(!i)throw t}for(let t of e.iterateCallbacks(`handlerWillRespond`))i=await t({event:r,request:n,response:i});return i}async _awaitComplete(e,t,n,r){let i,a;try{i=await e}catch{}try{await t.runCallbacks(`handlerDidRespond`,{event:r,request:n,response:i}),await t.doneWaiting()}catch(e){e instanceof Error&&(a=e)}if(await t.runCallbacks(`handlerDidComplete`,{event:r,request:n,response:i,error:a}),t.destroy(),a)throw a}},T=class e extends w{constructor(t={}){t.cacheName=a.getPrecacheName(t.cacheName),super(t),this._fallbackToNetwork=t.fallbackToNetwork!==!1,this.plugins.push(e.copyRedirectedCacheableResponsesPlugin)}async _handle(e,t){return await t.cacheMatch(e)||(t.event&&t.event.type===`install`?await this._handleInstall(e,t):await this._handleFetch(e,t))}async _handleFetch(e,n){let r,i=n.params||{};if(this._fallbackToNetwork){let t=i.integrity,a=e.integrity,o=!a||a===t;r=await n.fetch(new Request(e,{integrity:e.mode===`no-cors`?void 0:a||t})),t&&o&&e.mode!==`no-cors`&&(this._useDefaultCacheabilityPluginIfNeeded(),await n.cachePut(e,r.clone()))}else throw new t(`missing-precache-entry`,{cacheName:this.cacheName,url:e.url});return r}async _handleInstall(e,n){this._useDefaultCacheabilityPluginIfNeeded();let r=await n.fetch(e);if(!await n.cachePut(e,r.clone()))throw new t(`bad-precaching-response`,{url:e.url,status:r.status});return r}_useDefaultCacheabilityPluginIfNeeded(){let t=null,n=0;for(let[r,i]of this.plugins.entries())i!==e.copyRedirectedCacheableResponsesPlugin&&(i===e.defaultPrecacheCacheabilityPlugin&&(t=r),i.cacheWillUpdate&&n++);n===0?this.plugins.push(e.defaultPrecacheCacheabilityPlugin):n>1&&t!==null&&this.plugins.splice(t,1)}};T.defaultPrecacheCacheabilityPlugin={async cacheWillUpdate({response:e}){return!e||e.status>=400?null:e}},T.copyRedirectedCacheableResponsesPlugin={async cacheWillUpdate({response:e}){return e.redirected?await p(e):e}};var E=class{constructor({cacheName:e,plugins:t=[],fallbackToNetwork:n=!0}={}){this._urlsToCacheKeys=new Map,this._urlsToCacheModes=new Map,this._cacheKeysToIntegrities=new Map,this._strategy=new T({cacheName:a.getPrecacheName(e),plugins:[...t,new u({precacheController:this})],fallbackToNetwork:n}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this._strategy}precache(e){this.addToCacheList(e),this._installAndActiveListenersAdded||=(self.addEventListener(`install`,this.install),self.addEventListener(`activate`,this.activate),!0)}addToCacheList(e){let n=[];for(let r of e){typeof r==`string`?n.push(r):r&&r.revision===void 0&&n.push(r.url);let{cacheKey:e,url:i}=c(r),a=typeof r!=`string`&&r.revision?`reload`:`default`;if(this._urlsToCacheKeys.has(i)&&this._urlsToCacheKeys.get(i)!==e)throw new t(`add-to-cache-list-conflicting-entries`,{firstEntry:this._urlsToCacheKeys.get(i),secondEntry:e});if(typeof r!=`string`&&r.integrity){if(this._cacheKeysToIntegrities.has(e)&&this._cacheKeysToIntegrities.get(e)!==r.integrity)throw new t(`add-to-cache-list-conflicting-integrities`,{url:i});this._cacheKeysToIntegrities.set(e,r.integrity)}if(this._urlsToCacheKeys.set(i,e),this._urlsToCacheModes.set(i,a),n.length>0){let e=`Workbox is precaching URLs without revision info: ${n.join(`, `)}\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(e)}}}install(e){return o(e,async()=>{let t=new l;this.strategy.plugins.push(t);for(let[t,n]of this._urlsToCacheKeys){let r=this._cacheKeysToIntegrities.get(n),i=this._urlsToCacheModes.get(t),a=new Request(t,{integrity:r,cache:i,credentials:`same-origin`});await Promise.all(this.strategy.handleAll({params:{cacheKey:n},request:a,event:e}))}let{updatedURLs:n,notUpdatedURLs:r}=t;return{updatedURLs:n,notUpdatedURLs:r}})}activate(e){return o(e,async()=>{let e=await self.caches.open(this.strategy.cacheName),t=await e.keys(),n=new Set(this._urlsToCacheKeys.values()),r=[];for(let i of t)n.has(i.url)||(await e.delete(i),r.push(i.url));return{deletedURLs:r}})}getURLsToCacheKeys(){return this._urlsToCacheKeys}getCachedURLs(){return[...this._urlsToCacheKeys.keys()]}getCacheKeyForURL(e){let t=new URL(e,location.href);return this._urlsToCacheKeys.get(t.href)}getIntegrityForCacheKey(e){return this._cacheKeysToIntegrities.get(e)}async matchPrecache(e){let t=e instanceof Request?e.url:e,n=this.getCacheKeyForURL(t);if(n)return(await self.caches.open(this.strategy.cacheName)).match(n)}createHandlerBoundToURL(e){let n=this.getCacheKeyForURL(e);if(!n)throw new t(`non-precached-url`,{url:e});return t=>(t.request=new Request(e),t.params=Object.assign({cacheKey:n},t.params),this.strategy.handle(t))}},D,O=()=>(D||=new E,D);try{self[`workbox:routing:7.3.0`]&&_()}catch{}var k=e=>e&&typeof e==`object`?e:{handle:e},A=class{constructor(e,t,n=`GET`){this.handler=k(t),this.match=e,this.method=n}setCatchHandler(e){this.catchHandler=k(e)}},j=class extends A{constructor(e,t,n){super(({url:t})=>{let n=e.exec(t.href);if(n&&!(t.origin!==location.origin&&n.index!==0))return n.slice(1)},t,n)}},M=class{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener(`fetch`,(e=>{let{request:t}=e,n=this.handleRequest({request:t,event:e});n&&e.respondWith(n)}))}addCacheListener(){self.addEventListener(`message`,(e=>{if(e.data&&e.data.type===`CACHE_URLS`){let{payload:t}=e.data,n=Promise.all(t.urlsToCache.map(t=>{typeof t==`string`&&(t=[t]);let n=new Request(...t);return this.handleRequest({request:n,event:e})}));e.waitUntil(n),e.ports&&e.ports[0]&&n.then(()=>e.ports[0].postMessage(!0))}}))}handleRequest({request:e,event:t}){let n=new URL(e.url,location.href);if(!n.protocol.startsWith(`http`))return;let r=n.origin===location.origin,{params:i,route:a}=this.findMatchingRoute({event:t,request:e,sameOrigin:r,url:n}),o=a&&a.handler,s=e.method;if(!o&&this._defaultHandlerMap.has(s)&&(o=this._defaultHandlerMap.get(s)),!o)return;let c;try{c=o.handle({url:n,request:e,event:t,params:i})}catch(e){c=Promise.reject(e)}let l=a&&a.catchHandler;return c instanceof Promise&&(this._catchHandler||l)&&(c=c.catch(async r=>{if(l)try{return await l.handle({url:n,request:e,event:t,params:i})}catch(e){e instanceof Error&&(r=e)}if(this._catchHandler)return this._catchHandler.handle({url:n,request:e,event:t});throw r})),c}findMatchingRoute({url:e,sameOrigin:t,request:n,event:r}){let i=this._routes.get(n.method)||[];for(let a of i){let i,o=a.match({url:e,sameOrigin:t,request:n,event:r});if(o)return i=o,(Array.isArray(i)&&i.length===0||o.constructor===Object&&Object.keys(o).length===0||typeof o==`boolean`)&&(i=void 0),{route:a,params:i}}return{}}setDefaultHandler(e,t=`GET`){this._defaultHandlerMap.set(t,k(e))}setCatchHandler(e){this._catchHandler=k(e)}registerRoute(e){this._routes.has(e.method)||this._routes.set(e.method,[]),this._routes.get(e.method).push(e)}unregisterRoute(e){if(!this._routes.has(e.method))throw new t(`unregister-route-but-not-found-with-method`,{method:e.method});let n=this._routes.get(e.method).indexOf(e);if(n>-1)this._routes.get(e.method).splice(n,1);else throw new t(`unregister-route-route-not-registered`)}},N,P=()=>(N||(N=new M,N.addFetchListener(),N.addCacheListener()),N);function F(e,n,r){let i;if(typeof e==`string`){let t=new URL(e,location.href);i=new A(({url:e})=>e.href===t.href,n,r)}else if(e instanceof RegExp)i=new j(e,n,r);else if(typeof e==`function`)i=new A(e,n,r);else if(e instanceof A)i=e;else throw new t(`unsupported-route-type`,{moduleName:`workbox-routing`,funcName:`registerRoute`,paramName:`capture`});return P().registerRoute(i),i}function I(e,t=[]){for(let n of[...e.searchParams.keys()])t.some(e=>e.test(n))&&e.searchParams.delete(n);return e}function*L(e,{ignoreURLParametersMatching:t=[/^utm_/,/^fbclid$/],directoryIndex:n=`index.html`,cleanURLs:r=!0,urlManipulation:i}={}){let a=new URL(e,location.href);a.hash=``,yield a.href;let o=I(a,t);if(yield o.href,n&&o.pathname.endsWith(`/`)){let e=new URL(o.href);e.pathname+=n,yield e.href}if(r){let e=new URL(o.href);e.pathname+=`.html`,yield e.href}if(i){let e=i({url:a});for(let t of e)yield t.href}}var R=class extends A{constructor(e,t){super(({request:n})=>{let r=e.getURLsToCacheKeys();for(let i of L(n.url,t)){let t=r.get(i);if(t)return{cacheKey:t,integrity:e.getIntegrityForCacheKey(t)}}},e.strategy)}};function z(e){F(new R(O(),e))}var B=`-precache-`,V=async(e,t=B)=>{let n=(await self.caches.keys()).filter(n=>n.includes(t)&&n.includes(self.registration.scope)&&n!==e);return await Promise.all(n.map(e=>self.caches.delete(e))),n};function H(){self.addEventListener(`activate`,(e=>{let t=a.getPrecacheName();e.waitUntil(V(t).then(e=>{}))}))}function U(e){O().precache(e)}function W(e,t){U(e),z(t)}var G=class extends w{async _handle(e,n){let r=await n.cacheMatch(e),i;if(!r)try{r=await n.fetchAndCachePut(e)}catch(e){e instanceof Error&&(i=e)}if(!r)throw new t(`no-response`,{url:e.url,error:i});return r}};W([{"revision":"e7df0dd1bfe9b16560e99adb2afd00f8","url":"index.html"},{"revision":"26dccd02a2ef7522892015154f5e3680","url":"manifest.webmanifest"},{"revision":"a0fb34fc84eb148d51812cd62669f20d","url":"icon-512.svg"},{"revision":"a0fb34fc84eb148d51812cd62669f20d","url":"icon-192.svg"},{"revision":null,"url":"assets/index-CEZVxM4G.js"},{"revision":null,"url":"assets/index-BH99TIE0.css"},{"revision":"a0fb34fc84eb148d51812cd62669f20d","url":"icon-192.svg"},{"revision":"a0fb34fc84eb148d51812cd62669f20d","url":"icon-512.svg"},{"revision":"26dccd02a2ef7522892015154f5e3680","url":"manifest.webmanifest"}]),H();var K=e=>(e.headers.get(`content-type`)??``).startsWith(`text/html`);F(({url:e})=>e.pathname.startsWith(`/assets/`),new G({cacheName:`ppm-assets`,plugins:[{cacheWillUpdate:async({response:e})=>K(e)?null:e,cachedResponseWillBeUsed:async({cachedResponse:e})=>e&&K(e)?null:e}]})),self.skipWaiting(),self.addEventListener(`activate`,()=>{self.clients.claim()});
1
+ try{self[`workbox:core:7.3.0`]&&_()}catch{}var e=(e,...t)=>{let n=e;return t.length>0&&(n+=` :: ${JSON.stringify(t)}`),n},t=class extends Error{constructor(t,n){let r=e(t,n);super(r),this.name=t,this.details=n}},n={googleAnalytics:`googleAnalytics`,precache:`precache-v2`,prefix:`workbox`,runtime:`runtime`,suffix:typeof registration<`u`?registration.scope:``},r=e=>[n.prefix,e,n.suffix].filter(e=>e&&e.length>0).join(`-`),i=e=>{for(let t of Object.keys(n))e(t)},a={updateDetails:e=>{i(t=>{typeof e[t]==`string`&&(n[t]=e[t])})},getGoogleAnalyticsName:e=>e||r(n.googleAnalytics),getPrecacheName:e=>e||r(n.precache),getPrefix:()=>n.prefix,getRuntimeName:e=>e||r(n.runtime),getSuffix:()=>n.suffix};function o(e,t){let n=t();return e.waitUntil(n),n}try{self[`workbox:precaching:7.3.0`]&&_()}catch{}var s=`__WB_REVISION__`;function c(e){if(!e)throw new t(`add-to-cache-list-unexpected-type`,{entry:e});if(typeof e==`string`){let t=new URL(e,location.href);return{cacheKey:t.href,url:t.href}}let{revision:n,url:r}=e;if(!r)throw new t(`add-to-cache-list-unexpected-type`,{entry:e});if(!n){let e=new URL(r,location.href);return{cacheKey:e.href,url:e.href}}let i=new URL(r,location.href),a=new URL(r,location.href);return i.searchParams.set(s,n),{cacheKey:i.href,url:a.href}}var l=class{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:e,state:t})=>{t&&(t.originalRequest=e)},this.cachedResponseWillBeUsed=async({event:e,state:t,cachedResponse:n})=>{if(e.type===`install`&&t&&t.originalRequest&&t.originalRequest instanceof Request){let e=t.originalRequest.url;n?this.notUpdatedURLs.push(e):this.updatedURLs.push(e)}return n}}},u=class{constructor({precacheController:e}){this.cacheKeyWillBeUsed=async({request:e,params:t})=>{let n=t?.cacheKey||this._precacheController.getCacheKeyForURL(e.url);return n?new Request(n,{headers:e.headers}):e},this._precacheController=e}},d;function f(){if(d===void 0){let e=new Response(``);if(`body`in e)try{new Response(e.body),d=!0}catch{d=!1}d=!1}return d}async function p(e,n){let r=null;if(e.url&&(r=new URL(e.url).origin),r!==self.location.origin)throw new t(`cross-origin-copy-response`,{origin:r});let i=e.clone(),a={headers:new Headers(i.headers),status:i.status,statusText:i.statusText},o=n?n(a):a,s=f()?i.body:await i.blob();return new Response(s,o)}var m=e=>new URL(String(e),location.href).href.replace(RegExp(`^${location.origin}`),``);function h(e,t){let n=new URL(e);for(let e of t)n.searchParams.delete(e);return n.href}async function g(e,t,n,r){let i=h(t.url,n);if(t.url===i)return e.match(t,r);let a=Object.assign(Object.assign({},r),{ignoreSearch:!0}),o=await e.keys(t,a);for(let t of o)if(i===h(t.url,n))return e.match(t,r)}var v=class{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}},y=new Set;async function b(){for(let e of y)await e()}function x(e){return new Promise(t=>setTimeout(t,e))}try{self[`workbox:strategies:7.3.0`]&&_()}catch{}function S(e){return typeof e==`string`?new Request(e):e}var C=class{constructor(e,t){this._cacheKeys={},Object.assign(this,t),this.event=t.event,this._strategy=e,this._handlerDeferred=new v,this._extendLifetimePromises=[],this._plugins=[...e.plugins],this._pluginStateMap=new Map;for(let e of this._plugins)this._pluginStateMap.set(e,{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(e){let{event:n}=this,r=S(e);if(r.mode===`navigate`&&n instanceof FetchEvent&&n.preloadResponse){let e=await n.preloadResponse;if(e)return e}let i=this.hasCallback(`fetchDidFail`)?r.clone():null;try{for(let e of this.iterateCallbacks(`requestWillFetch`))r=await e({request:r.clone(),event:n})}catch(e){if(e instanceof Error)throw new t(`plugin-error-request-will-fetch`,{thrownErrorMessage:e.message})}let a=r.clone();try{let e;e=await fetch(r,r.mode===`navigate`?void 0:this._strategy.fetchOptions);for(let t of this.iterateCallbacks(`fetchDidSucceed`))e=await t({event:n,request:a,response:e});return e}catch(e){throw i&&await this.runCallbacks(`fetchDidFail`,{error:e,event:n,originalRequest:i.clone(),request:a.clone()}),e}}async fetchAndCachePut(e){let t=await this.fetch(e),n=t.clone();return this.waitUntil(this.cachePut(e,n)),t}async cacheMatch(e){let t=S(e),n,{cacheName:r,matchOptions:i}=this._strategy,a=await this.getCacheKey(t,`read`),o=Object.assign(Object.assign({},i),{cacheName:r});n=await caches.match(a,o);for(let e of this.iterateCallbacks(`cachedResponseWillBeUsed`))n=await e({cacheName:r,matchOptions:i,cachedResponse:n,request:a,event:this.event})||void 0;return n}async cachePut(e,n){let r=S(e);await x(0);let i=await this.getCacheKey(r,`write`);if(!n)throw new t(`cache-put-with-no-response`,{url:m(i.url)});let a=await this._ensureResponseSafeToCache(n);if(!a)return!1;let{cacheName:o,matchOptions:s}=this._strategy,c=await self.caches.open(o),l=this.hasCallback(`cacheDidUpdate`),u=l?await g(c,i.clone(),[`__WB_REVISION__`],s):null;try{await c.put(i,l?a.clone():a)}catch(e){if(e instanceof Error)throw e.name===`QuotaExceededError`&&await b(),e}for(let e of this.iterateCallbacks(`cacheDidUpdate`))await e({cacheName:o,oldResponse:u,newResponse:a.clone(),request:i,event:this.event});return!0}async getCacheKey(e,t){let n=`${e.url} | ${t}`;if(!this._cacheKeys[n]){let r=e;for(let e of this.iterateCallbacks(`cacheKeyWillBeUsed`))r=S(await e({mode:t,request:r,event:this.event,params:this.params}));this._cacheKeys[n]=r}return this._cacheKeys[n]}hasCallback(e){for(let t of this._strategy.plugins)if(e in t)return!0;return!1}async runCallbacks(e,t){for(let n of this.iterateCallbacks(e))await n(t)}*iterateCallbacks(e){for(let t of this._strategy.plugins)if(typeof t[e]==`function`){let n=this._pluginStateMap.get(t);yield r=>{let i=Object.assign(Object.assign({},r),{state:n});return t[e](i)}}}waitUntil(e){return this._extendLifetimePromises.push(e),e}async doneWaiting(){for(;this._extendLifetimePromises.length;){let e=this._extendLifetimePromises.splice(0),t=(await Promise.allSettled(e)).find(e=>e.status===`rejected`);if(t)throw t.reason}}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let t=e,n=!1;for(let e of this.iterateCallbacks(`cacheWillUpdate`))if(t=await e({request:this.request,response:t,event:this.event})||void 0,n=!0,!t)break;return n||t&&t.status!==200&&(t=void 0),t}},w=class{constructor(e={}){this.cacheName=a.getRuntimeName(e.cacheName),this.plugins=e.plugins||[],this.fetchOptions=e.fetchOptions,this.matchOptions=e.matchOptions}handle(e){let[t]=this.handleAll(e);return t}handleAll(e){e instanceof FetchEvent&&(e={event:e,request:e.request});let t=e.event,n=typeof e.request==`string`?new Request(e.request):e.request,r=`params`in e?e.params:void 0,i=new C(this,{event:t,request:n,params:r}),a=this._getResponse(i,n,t);return[a,this._awaitComplete(a,i,n,t)]}async _getResponse(e,n,r){await e.runCallbacks(`handlerWillStart`,{event:r,request:n});let i;try{if(i=await this._handle(n,e),!i||i.type===`error`)throw new t(`no-response`,{url:n.url})}catch(t){if(t instanceof Error){for(let a of e.iterateCallbacks(`handlerDidError`))if(i=await a({error:t,event:r,request:n}),i)break}if(!i)throw t}for(let t of e.iterateCallbacks(`handlerWillRespond`))i=await t({event:r,request:n,response:i});return i}async _awaitComplete(e,t,n,r){let i,a;try{i=await e}catch{}try{await t.runCallbacks(`handlerDidRespond`,{event:r,request:n,response:i}),await t.doneWaiting()}catch(e){e instanceof Error&&(a=e)}if(await t.runCallbacks(`handlerDidComplete`,{event:r,request:n,response:i,error:a}),t.destroy(),a)throw a}},T=class e extends w{constructor(t={}){t.cacheName=a.getPrecacheName(t.cacheName),super(t),this._fallbackToNetwork=t.fallbackToNetwork!==!1,this.plugins.push(e.copyRedirectedCacheableResponsesPlugin)}async _handle(e,t){return await t.cacheMatch(e)||(t.event&&t.event.type===`install`?await this._handleInstall(e,t):await this._handleFetch(e,t))}async _handleFetch(e,n){let r,i=n.params||{};if(this._fallbackToNetwork){let t=i.integrity,a=e.integrity,o=!a||a===t;r=await n.fetch(new Request(e,{integrity:e.mode===`no-cors`?void 0:a||t})),t&&o&&e.mode!==`no-cors`&&(this._useDefaultCacheabilityPluginIfNeeded(),await n.cachePut(e,r.clone()))}else throw new t(`missing-precache-entry`,{cacheName:this.cacheName,url:e.url});return r}async _handleInstall(e,n){this._useDefaultCacheabilityPluginIfNeeded();let r=await n.fetch(e);if(!await n.cachePut(e,r.clone()))throw new t(`bad-precaching-response`,{url:e.url,status:r.status});return r}_useDefaultCacheabilityPluginIfNeeded(){let t=null,n=0;for(let[r,i]of this.plugins.entries())i!==e.copyRedirectedCacheableResponsesPlugin&&(i===e.defaultPrecacheCacheabilityPlugin&&(t=r),i.cacheWillUpdate&&n++);n===0?this.plugins.push(e.defaultPrecacheCacheabilityPlugin):n>1&&t!==null&&this.plugins.splice(t,1)}};T.defaultPrecacheCacheabilityPlugin={async cacheWillUpdate({response:e}){return!e||e.status>=400?null:e}},T.copyRedirectedCacheableResponsesPlugin={async cacheWillUpdate({response:e}){return e.redirected?await p(e):e}};var E=class{constructor({cacheName:e,plugins:t=[],fallbackToNetwork:n=!0}={}){this._urlsToCacheKeys=new Map,this._urlsToCacheModes=new Map,this._cacheKeysToIntegrities=new Map,this._strategy=new T({cacheName:a.getPrecacheName(e),plugins:[...t,new u({precacheController:this})],fallbackToNetwork:n}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this._strategy}precache(e){this.addToCacheList(e),this._installAndActiveListenersAdded||=(self.addEventListener(`install`,this.install),self.addEventListener(`activate`,this.activate),!0)}addToCacheList(e){let n=[];for(let r of e){typeof r==`string`?n.push(r):r&&r.revision===void 0&&n.push(r.url);let{cacheKey:e,url:i}=c(r),a=typeof r!=`string`&&r.revision?`reload`:`default`;if(this._urlsToCacheKeys.has(i)&&this._urlsToCacheKeys.get(i)!==e)throw new t(`add-to-cache-list-conflicting-entries`,{firstEntry:this._urlsToCacheKeys.get(i),secondEntry:e});if(typeof r!=`string`&&r.integrity){if(this._cacheKeysToIntegrities.has(e)&&this._cacheKeysToIntegrities.get(e)!==r.integrity)throw new t(`add-to-cache-list-conflicting-integrities`,{url:i});this._cacheKeysToIntegrities.set(e,r.integrity)}if(this._urlsToCacheKeys.set(i,e),this._urlsToCacheModes.set(i,a),n.length>0){let e=`Workbox is precaching URLs without revision info: ${n.join(`, `)}\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(e)}}}install(e){return o(e,async()=>{let t=new l;this.strategy.plugins.push(t);for(let[t,n]of this._urlsToCacheKeys){let r=this._cacheKeysToIntegrities.get(n),i=this._urlsToCacheModes.get(t),a=new Request(t,{integrity:r,cache:i,credentials:`same-origin`});await Promise.all(this.strategy.handleAll({params:{cacheKey:n},request:a,event:e}))}let{updatedURLs:n,notUpdatedURLs:r}=t;return{updatedURLs:n,notUpdatedURLs:r}})}activate(e){return o(e,async()=>{let e=await self.caches.open(this.strategy.cacheName),t=await e.keys(),n=new Set(this._urlsToCacheKeys.values()),r=[];for(let i of t)n.has(i.url)||(await e.delete(i),r.push(i.url));return{deletedURLs:r}})}getURLsToCacheKeys(){return this._urlsToCacheKeys}getCachedURLs(){return[...this._urlsToCacheKeys.keys()]}getCacheKeyForURL(e){let t=new URL(e,location.href);return this._urlsToCacheKeys.get(t.href)}getIntegrityForCacheKey(e){return this._cacheKeysToIntegrities.get(e)}async matchPrecache(e){let t=e instanceof Request?e.url:e,n=this.getCacheKeyForURL(t);if(n)return(await self.caches.open(this.strategy.cacheName)).match(n)}createHandlerBoundToURL(e){let n=this.getCacheKeyForURL(e);if(!n)throw new t(`non-precached-url`,{url:e});return t=>(t.request=new Request(e),t.params=Object.assign({cacheKey:n},t.params),this.strategy.handle(t))}},D,O=()=>(D||=new E,D);try{self[`workbox:routing:7.3.0`]&&_()}catch{}var k=e=>e&&typeof e==`object`?e:{handle:e},A=class{constructor(e,t,n=`GET`){this.handler=k(t),this.match=e,this.method=n}setCatchHandler(e){this.catchHandler=k(e)}},j=class extends A{constructor(e,t,n){super(({url:t})=>{let n=e.exec(t.href);if(n&&!(t.origin!==location.origin&&n.index!==0))return n.slice(1)},t,n)}},M=class{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener(`fetch`,(e=>{let{request:t}=e,n=this.handleRequest({request:t,event:e});n&&e.respondWith(n)}))}addCacheListener(){self.addEventListener(`message`,(e=>{if(e.data&&e.data.type===`CACHE_URLS`){let{payload:t}=e.data,n=Promise.all(t.urlsToCache.map(t=>{typeof t==`string`&&(t=[t]);let n=new Request(...t);return this.handleRequest({request:n,event:e})}));e.waitUntil(n),e.ports&&e.ports[0]&&n.then(()=>e.ports[0].postMessage(!0))}}))}handleRequest({request:e,event:t}){let n=new URL(e.url,location.href);if(!n.protocol.startsWith(`http`))return;let r=n.origin===location.origin,{params:i,route:a}=this.findMatchingRoute({event:t,request:e,sameOrigin:r,url:n}),o=a&&a.handler,s=e.method;if(!o&&this._defaultHandlerMap.has(s)&&(o=this._defaultHandlerMap.get(s)),!o)return;let c;try{c=o.handle({url:n,request:e,event:t,params:i})}catch(e){c=Promise.reject(e)}let l=a&&a.catchHandler;return c instanceof Promise&&(this._catchHandler||l)&&(c=c.catch(async r=>{if(l)try{return await l.handle({url:n,request:e,event:t,params:i})}catch(e){e instanceof Error&&(r=e)}if(this._catchHandler)return this._catchHandler.handle({url:n,request:e,event:t});throw r})),c}findMatchingRoute({url:e,sameOrigin:t,request:n,event:r}){let i=this._routes.get(n.method)||[];for(let a of i){let i,o=a.match({url:e,sameOrigin:t,request:n,event:r});if(o)return i=o,(Array.isArray(i)&&i.length===0||o.constructor===Object&&Object.keys(o).length===0||typeof o==`boolean`)&&(i=void 0),{route:a,params:i}}return{}}setDefaultHandler(e,t=`GET`){this._defaultHandlerMap.set(t,k(e))}setCatchHandler(e){this._catchHandler=k(e)}registerRoute(e){this._routes.has(e.method)||this._routes.set(e.method,[]),this._routes.get(e.method).push(e)}unregisterRoute(e){if(!this._routes.has(e.method))throw new t(`unregister-route-but-not-found-with-method`,{method:e.method});let n=this._routes.get(e.method).indexOf(e);if(n>-1)this._routes.get(e.method).splice(n,1);else throw new t(`unregister-route-route-not-registered`)}},N,P=()=>(N||(N=new M,N.addFetchListener(),N.addCacheListener()),N);function F(e,n,r){let i;if(typeof e==`string`){let t=new URL(e,location.href);i=new A(({url:e})=>e.href===t.href,n,r)}else if(e instanceof RegExp)i=new j(e,n,r);else if(typeof e==`function`)i=new A(e,n,r);else if(e instanceof A)i=e;else throw new t(`unsupported-route-type`,{moduleName:`workbox-routing`,funcName:`registerRoute`,paramName:`capture`});return P().registerRoute(i),i}function I(e,t=[]){for(let n of[...e.searchParams.keys()])t.some(e=>e.test(n))&&e.searchParams.delete(n);return e}function*L(e,{ignoreURLParametersMatching:t=[/^utm_/,/^fbclid$/],directoryIndex:n=`index.html`,cleanURLs:r=!0,urlManipulation:i}={}){let a=new URL(e,location.href);a.hash=``,yield a.href;let o=I(a,t);if(yield o.href,n&&o.pathname.endsWith(`/`)){let e=new URL(o.href);e.pathname+=n,yield e.href}if(r){let e=new URL(o.href);e.pathname+=`.html`,yield e.href}if(i){let e=i({url:a});for(let t of e)yield t.href}}var R=class extends A{constructor(e,t){super(({request:n})=>{let r=e.getURLsToCacheKeys();for(let i of L(n.url,t)){let t=r.get(i);if(t)return{cacheKey:t,integrity:e.getIntegrityForCacheKey(t)}}},e.strategy)}};function z(e){F(new R(O(),e))}var B=`-precache-`,V=async(e,t=B)=>{let n=(await self.caches.keys()).filter(n=>n.includes(t)&&n.includes(self.registration.scope)&&n!==e);return await Promise.all(n.map(e=>self.caches.delete(e))),n};function H(){self.addEventListener(`activate`,(e=>{let t=a.getPrecacheName();e.waitUntil(V(t).then(e=>{}))}))}function U(e){O().precache(e)}function W(e,t){U(e),z(t)}var G=class extends w{async _handle(e,n){let r=await n.cacheMatch(e),i;if(!r)try{r=await n.fetchAndCachePut(e)}catch(e){e instanceof Error&&(i=e)}if(!r)throw new t(`no-response`,{url:e.url,error:i});return r}};W([{"revision":"804a5c60d7798b266ab577754b149c86","url":"index.html"},{"revision":"26dccd02a2ef7522892015154f5e3680","url":"manifest.webmanifest"},{"revision":"a0fb34fc84eb148d51812cd62669f20d","url":"icon-512.svg"},{"revision":"a0fb34fc84eb148d51812cd62669f20d","url":"icon-192.svg"},{"revision":null,"url":"assets/index-CWL5emyr.css"},{"revision":null,"url":"assets/index-8M7JWSZx.js"},{"revision":"a0fb34fc84eb148d51812cd62669f20d","url":"icon-192.svg"},{"revision":"a0fb34fc84eb148d51812cd62669f20d","url":"icon-512.svg"},{"revision":"26dccd02a2ef7522892015154f5e3680","url":"manifest.webmanifest"}]),H();var K=e=>(e.headers.get(`content-type`)??``).startsWith(`text/html`);F(({url:e})=>e.pathname.startsWith(`/assets/`),new G({cacheName:`ppm-assets`,plugins:[{cacheWillUpdate:async({response:e})=>K(e)?null:e,cachedResponseWillBeUsed:async({cachedResponse:e})=>e&&K(e)?null:e}]})),self.skipWaiting(),self.addEventListener(`activate`,()=>{self.clients.claim()});
Binary file
Binary file
@@ -11,6 +11,16 @@ opens its first allowance on Monday. Slots are 24 hours from the weekly reset
11
11
  time and use UTC weekdays, consistently in the server and browser. This does not
12
12
  change Codex's reset schedule. Users can disable the guard per account.
13
13
 
14
+ ## Model discovery cache
15
+
16
+ The chat model picker shares successful model lists across chat tabs, keyed by
17
+ project and provider, in browser memory for five minutes. Expired lists remain
18
+ visible while a refresh runs; failed or empty refreshes retain the last usable
19
+ list. Reloading the page clears this browser cache. Codex discovery also keeps
20
+ a five-minute server memory cache, shares concurrent discovery requests, and
21
+ serves its previous list while refreshing. The first uncached request still
22
+ waits for Codex app-server initialization and model discovery.
23
+
14
24
  ## Codex context settings
15
25
 
16
26
  **AI Settings → Codex** exposes **Context window (tokens)** and **Auto-compact
@@ -2,6 +2,76 @@
2
2
 
3
3
  > Part of the [PPM system architecture](../system-architecture.md).
4
4
 
5
+ ## Adaptive guided tour
6
+
7
+ The optional welcome card and Settings → General → Learn PPM open a two-screen chooser:
8
+ experience (beginner/familiar/advanced), then goal (AI/explore/developer). Shared step IDs
9
+ and level-specific copy live in `src/web/lib/onboarding/`; `onboarding-store.ts` owns
10
+ versioned browser-local progress. Active guidance restores paused after reload. This is
11
+ per browser/origin, not an account profile; changing devices or tunnel origins does not
12
+ sync progress. Denied or corrupt storage falls back safely.
13
+
14
+ Quick orientation is available from the welcome/resume card, active guide, chat welcome
15
+ and General settings. Its optional Command Palette and navigation reference uses the
16
+ canonical sidebar icon/label registry, explains desktop/mobile entry points and utility
17
+ buttons, and opens the real palette on request. It never changes tour progress. While
18
+ the reference or palette is open, Escape closes that surface without pausing the tour;
19
+ the tour card is hidden behind the palette so it cannot cover its controls.
20
+
21
+ Step changes use the shared `OnboardingStepTransition`: a 200ms fade and 12px horizontal
22
+ slide, reversed for Back. It animates the existing DOM node without delaying state or
23
+ duplicating controls. Rapid navigation cancels the previous animation; reduced-motion
24
+ preferences skip animation and cancel any running transition when changed live.
25
+
26
+ `OnboardingRoot` mounts only inside the authenticated app. Nonmodal hints preserve real
27
+ workspace interactions; mobile navigation reuses the project sheet and drawer, including
28
+ the shared SearchPanel. Collapsed guidance moves above content controls to keep Send reachable.
29
+ Typed `ppm:onboarding-evidence` events report actual text-editor, search, terminal and Git
30
+ readiness. Chat uses an optional transport lifecycle observer and a client-local attempt ID;
31
+ partial output after cancellation/error/disconnection never counts as success. Canonical
32
+ session migration preserves identity. `ppm:onboarding-refresh` requests existing readiness
33
+ only, never replays a user send or search. History uses the chat toolbar's menu.
34
+
35
+ The tour never sends prompts, executes terminal commands, edits files or changes provider
36
+ permissions automatically. Suggestions fill only an empty hydrated focused composer after
37
+ a user click. Completed and skipped steps remain separate. The run-instructions step is
38
+ orientation, not proof that a program ran. Images and preview-only files offer a text-file
39
+ alternative or skip. Settings and chat welcome can resume a paused/dismissed tour.
40
+
41
+ The file-reading step accepts any successfully loaded text/source file and Markdown
42
+ Preview, regardless of filename. Empty visible project roots offer an explicit skip;
43
+ the tour never creates sample files. Root-list errors do not masquerade as emptiness,
44
+ and stale requests cannot replace the current guidance. On mobile, collapsed guidance
45
+ hides while the navigation drawer/project picker is open so the first file remains tappable.
46
+
47
+ Project content search resolves grep from PATH or Git for Windows without changing the
48
+ server environment. It runs asynchronously with timeout/output bounds, uses project-relative
49
+ NUL-delimited filenames, and distinguishes errors from successful zero-result searches.
50
+ The frontend surfaces the actual retryable error. The sandbox no longer injects grep into PATH.
51
+
52
+ The run-instructions action opens a readable root README directly, falling back to
53
+ package.json. A loaded visible README Markdown preview qualifies for this orientation
54
+ step without switching to Edit, and Markdown previews also qualify for general file reading.
55
+ Missing documents and list failures show a retry/browse/skip explanation. Only the
56
+ user's explicit acknowledgment completes the run-instructions step.
57
+
58
+ Verification uses `tests/e2e/onboarding-tour.mjs` and its isolated fixtures: fresh database,
59
+ scratch project, local ports, allowlisted test provider and real HTTP/WebSocket routes.
60
+ Playwright captures desktop/mobile screenshots and videos without live AI credentials.
61
+
62
+ ## New Chat Provider
63
+
64
+ Settings → AI offers `Always use default provider` and `Follow last focused chat`.
65
+ `ai.default_provider` is the fixed choice or the fallback when the current project has
66
+ no focused chat. Fresh installations use follow-focus; existing configurations without
67
+ `ai.new_chat_provider_mode` retain default mode.
68
+
69
+ Focus memory is per project and browser session, across panels. Editors, terminals and
70
+ panel chrome do not replace it. New tabs snapshot the source at creation and resolve
71
+ settings before mounting chat or claiming an account. An unavailable provider prompts
72
+ for an available choice. Existing tabs, resumed sessions and explicit fork/clear
73
+ providers are preserved; changing the setting only affects new tabs.
74
+
5
75
  ## File Service & Filtering (Lazy-Load Tree, Palette Index)
6
76
 
7
77
  **Component:** FileFilterService + API endpoints `/files/list`, `/files/index`, settings endpoints
@@ -144,6 +214,12 @@ When switching projects, workspaces are preserved instead of destroyed:
144
214
 
145
215
  ---
146
216
 
217
+ ### HTML file preview
218
+
219
+ Saved `.html` and `.htm` files open with a single toolbar row: breadcrumb, Refresh preview, Code / Preview and an overflow menu. The single refresh button reloads the entry document, also restoring it after following an image or link inside the sandbox. Download, wrap, blame, language and language-server settings live in the menu; Code mode also offers Reload code from disk (disabled while unsaved). Controls support desktop, mobile and external files from OS Explorer. Preview renders the saved file; refreshing it does not replace the editor buffer. Once opened, the code editor stays mounted across mode changes to retain undo and cursor state. Existing tab pop-out/redock also hosts the preview.
220
+
221
+ `POST /api/html-preview` requires normal API authentication and returns a one-hour capability URL under `/api/html-preview/content/:token/`. The capability serves static assets from the HTML file's directory and descendants with byte-range support for video. Realpath containment, filesystem credential guards, hidden asset restrictions and a static extension allowlist apply to each request. No PPM login token is embedded in the document. Both the iframe and response CSP sandbox scripts without same-origin privileges; resource/fetch access is limited to that preview directory. External CDNs, parent-directory assets, forms, nested frames and browser storage are intentionally unsupported. Refresh renews an expired capability; at most 128 capabilities are retained per server.
222
+
147
223
  ## Terminal Flow
148
224
 
149
225
  ```
@@ -14,6 +14,12 @@ PPM is the **lightest path from phone to code** — a self-hosted, BYOK, multi-d
14
14
 
15
15
  ## Completed Milestones
16
16
 
17
+ ### Adaptive onboarding (0.22.3)
18
+
19
+ - Adaptive onboarding: choose experience and goal, follow contextual guidance, pause/resume,
20
+ skip or replay. Includes mobile project-content search. Verified in an isolated sandbox;
21
+ AI recordings use a deterministic test provider, not live accounts.
22
+
17
23
  ### v0.18 — Windows, floating windows, whole-machine tooling (Released)
18
24
  - **Tab pop-out → floating window → Document Picture-in-Picture** — any desktop tab detaches into an
19
25
  in-app floating window and from there into an always-on-top browser PiP window; both directions
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hienlh/ppm",
3
- "version": "0.22.1",
3
+ "version": "0.22.3",
4
4
  "description": "Personal Project Manager — mobile-first web IDE with AI assistance",
5
5
  "author": "hienlh",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -69,6 +69,12 @@ echo " ✓ on main · clean · in sync with origin · version $VERSION"
69
69
  echo "[1/6] Regenerating skill assets + building frontend..."
70
70
  bun run generate:skill || fail "generate:skill failed."
71
71
  bun run build:web || fail "build:web failed."
72
+ # `npm publish --ignore-scripts` below deliberately skips `prepublishOnly`, so
73
+ # the release path must run the two post-build steps itself. Monaco is loaded
74
+ # dynamically from `dist/web/assets/monaco/vs`; without this copy an editor
75
+ # receives its file contents but spins forever waiting for the AMD loader.
76
+ bun scripts/copy-monaco.ts || fail "copy-monaco failed."
77
+ bun scripts/precompress-web.ts || fail "precompress-web failed."
72
78
 
73
79
  # Skill assets are generated artifacts kept in git (mirrors the published pkg).
74
80
  # Commit + push them if regeneration changed anything, so the tag we cut below
@@ -155,6 +155,7 @@ export async function initProject(options: InitOptions = {}) {
155
155
  configService.set("auth", { enabled: authEnabled, token: authToken });
156
156
  configService.set("ai", {
157
157
  default_provider: "claude",
158
+ new_chat_provider_mode: configService.get("ai").new_chat_provider_mode,
158
159
  providers: {
159
160
  claude: {
160
161
  type: "agent-sdk",
@@ -197,12 +197,16 @@ export function mapCodexEvent(notif: Notif, sessionId: string): ChatEvent[] {
197
197
  return typeof p.delta === "string" ? [{ type: "text", content: p.delta }] : [];
198
198
 
199
199
  case "item/reasoning/textDelta":
200
- // `summary` is what turn/start requests for PPM's Thinking switch. Recent
201
- // app-server builds stream it under this method, while older builds used
202
- // textDelta directly. Both are safe, user-visible reasoning summaries.
200
+ // Preserve provider text verbatim; summaryTextDelta is the summary stream
201
+ // requested by turn/start, textDelta is the supported content stream.
203
202
  case "item/reasoning/summaryTextDelta":
204
203
  return typeof p.delta === "string" ? [{ type: "thinking", content: p.delta }] : [];
205
204
 
205
+ case "item/reasoning/summaryPartAdded":
206
+ // Separate sections, including the first section of a new reasoning item,
207
+ // without inserting whitespace between individual streaming chunks.
208
+ return [{ type: "thinking", content: "\n\n" }];
209
+
206
210
  case "item/started": {
207
211
  const item = asObj(p.item) as Item;
208
212
  if (item.type === "contextCompaction") return [{ type: "system", subtype: "compacting" }];
@@ -1,8 +1,9 @@
1
1
  import type { ChatMessage, ChatEvent, SessionInfo } from "../provider.interface.ts";
2
2
  import { stripSharedContext } from "../../shared/provider-context.ts";
3
- import { readdirSync, readFileSync, statSync } from "node:fs";
3
+ import { readdirSync, readFileSync, statSync, realpathSync } from "node:fs";
4
4
  import { join, resolve } from "node:path";
5
5
  import { homedir } from "node:os";
6
+ import { getPpmDir } from "../../services/ppm-dir.ts";
6
7
  import { redactTruncate } from "./codex-redact.ts";
7
8
  import { parseApplyPatch, changeToToolUse } from "./codex-patch.ts";
8
9
  import { mapRolloutItem } from "./codex-rollout-items.ts";
@@ -449,14 +450,27 @@ export function getRolloutMessages(sessionsDir: string, threadId: string, reques
449
450
 
450
451
  /** True when a path points at a codex rollout in the ambient or a PPM account home. */
451
452
  export function isCodexRolloutPath(p: string): boolean {
452
- const n = normPath(p);
453
- const ambient = normPath(join(homedir(), ".codex", "sessions"));
454
- const managed = normPath(join(homedir(), ".ppm", "codex-accounts"));
455
- return n.endsWith(".jsonl") && (n.includes(ambient) || (n.includes(managed) && n.includes("/sessions/")));
453
+ return withinCodexSessions(p, false);
454
+ }
455
+
456
+ function withinCodexSessions(p: string, canonical: boolean): boolean {
457
+ const normalize = (value: string) => process.platform === "win32" ? normPath(value).replace(/\\/g, "/") : normPath(value);
458
+ const n = normalize(p);
459
+ if (!n.endsWith(".jsonl")) return false;
460
+ const rootPath = (value: string) => {
461
+ if (canonical) { try { return normalize(realpathSync(value)); } catch { return null; } }
462
+ return normalize(value);
463
+ };
464
+ const ambientRoots = [join(homedir(), ".codex", "sessions")];
465
+ if (process.env.CODEX_HOME) ambientRoots.push(join(process.env.CODEX_HOME, "sessions"));
466
+ if (ambientRoots.some((value) => { const root = rootPath(value); return root && n.startsWith(root + "/"); })) return true;
467
+ const managed = rootPath(join(getPpmDir(), "codex-accounts"));
468
+ return !!managed && n.startsWith(managed + "/") && /^[^/]+\/sessions\/.+/.test(n.slice(managed.length + 1));
456
469
  }
457
470
 
458
471
  /**
459
- * One pre-compact segment for the "load more" feature. Jails to ~/.codex/sessions,
472
+ * One pre-compact segment for the "load more" feature. Jails to ambient,
473
+ * CODEX_HOME, or PPM managed-account session directories via real paths;
460
474
  * fail-closed on cwd.
461
475
  *
462
476
  * One segment per request rather than everything before the first boundary, which is
@@ -468,7 +482,12 @@ export function isCodexRolloutPath(p: string): boolean {
468
482
  */
469
483
  export function getCodexPreCompactMessages(file: string, requestedCwd?: string, beforeId?: string): ChatMessage[] {
470
484
  if (!isCodexRolloutPath(file)) throw new Error("Access denied: not a codex rollout");
471
- const resolved = resolve(file);
485
+ let resolved: string;
486
+ try { resolved = realpathSync(resolve(file)); } catch { throw new Error("File not found"); }
487
+ if (!withinCodexSessions(resolved, true)) throw new Error("Access denied: transcript outside Codex sessions");
488
+ const info = statSync(resolved);
489
+ if (!info.isFile()) throw new Error("Not a regular file");
490
+ if (info.size > 256 * 1024 * 1024) throw new Error("Transcript too large");
472
491
  let text: string;
473
492
  try { text = readFileSync(resolved, "utf-8"); } catch { throw new Error("File not found"); }
474
493
  // Read once and reused below. `readSessionMeta` opens and reads the whole rollout again, and