@surething/cockpit 1.0.232 → 1.0.234

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 (220) hide show
  1. package/.next-prod/BUILD_ID +1 -1
  2. package/.next-prod/build-manifest.json +3 -3
  3. package/.next-prod/prerender-manifest.json +3 -3
  4. package/.next-prod/react-loadable-manifest.json +7 -0
  5. package/.next-prod/server/app/_global-error/page.js.nft.json +1 -1
  6. package/.next-prod/server/app/_global-error/page_client-reference-manifest.js +1 -1
  7. package/.next-prod/server/app/_global-error.html +1 -1
  8. package/.next-prod/server/app/_global-error.rsc +1 -1
  9. package/.next-prod/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/.next-prod/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  11. package/.next-prod/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  12. package/.next-prod/server/app/_global-error.segments/_head.segment.rsc +1 -1
  13. package/.next-prod/server/app/_global-error.segments/_index.segment.rsc +1 -1
  14. package/.next-prod/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next-prod/server/app/_not-found/page.js.nft.json +1 -1
  16. package/.next-prod/server/app/_not-found/page_client-reference-manifest.js +1 -1
  17. package/.next-prod/server/app/_not-found.html +2 -2
  18. package/.next-prod/server/app/_not-found.rsc +3 -3
  19. package/.next-prod/server/app/_not-found.segments/_full.segment.rsc +3 -3
  20. package/.next-prod/server/app/_not-found.segments/_head.segment.rsc +1 -1
  21. package/.next-prod/server/app/_not-found.segments/_index.segment.rsc +3 -3
  22. package/.next-prod/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  23. package/.next-prod/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  24. package/.next-prod/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  25. package/.next-prod/server/app/api/agent/test/route.js.nft.json +1 -1
  26. package/.next-prod/server/app/api/bash/route.js.nft.json +1 -1
  27. package/.next-prod/server/app/api/chat/codex/route.js +1 -1
  28. package/.next-prod/server/app/api/chat/codex/route.js.nft.json +1 -1
  29. package/.next-prod/server/app/api/chat/deepseek/route.js +1 -1
  30. package/.next-prod/server/app/api/chat/deepseek/route.js.nft.json +1 -1
  31. package/.next-prod/server/app/api/chat/kimi/route.js +1 -1
  32. package/.next-prod/server/app/api/chat/kimi/route.js.nft.json +1 -1
  33. package/.next-prod/server/app/api/chat/ollama/route.js +1 -1
  34. package/.next-prod/server/app/api/chat/ollama/route.js.nft.json +1 -1
  35. package/.next-prod/server/app/api/chat/pty-input/route.js.nft.json +1 -1
  36. package/.next-prod/server/app/api/chat/route.js +1 -1
  37. package/.next-prod/server/app/api/chat/route.js.nft.json +1 -1
  38. package/.next-prod/server/app/api/chat/stop/route.js.nft.json +1 -1
  39. package/.next-prod/server/app/api/claude-stats/route.js.nft.json +1 -1
  40. package/.next-prod/server/app/api/commands/route.js +1 -1
  41. package/.next-prod/server/app/api/commands/route.js.nft.json +1 -1
  42. package/.next-prod/server/app/api/comments/route.js.nft.json +1 -1
  43. package/.next-prod/server/app/api/db/columns/route.js.nft.json +1 -1
  44. package/.next-prod/server/app/api/db/connect/route.js.nft.json +1 -1
  45. package/.next-prod/server/app/api/db/disconnect/route.js.nft.json +1 -1
  46. package/.next-prod/server/app/api/db/export/route.js.nft.json +1 -1
  47. package/.next-prod/server/app/api/db/query/route.js.nft.json +1 -1
  48. package/.next-prod/server/app/api/db/schemas/route.js.nft.json +1 -1
  49. package/.next-prod/server/app/api/dev/spans/route.js.nft.json +1 -1
  50. package/.next-prod/server/app/api/extension/version/route.js.nft.json +1 -1
  51. package/.next-prod/server/app/api/file/route.js.nft.json +1 -1
  52. package/.next-prod/server/app/api/files/blame/route.js.nft.json +1 -1
  53. package/.next-prod/server/app/api/files/clipboard/route.js.nft.json +1 -1
  54. package/.next-prod/server/app/api/files/copy/route.js.nft.json +1 -1
  55. package/.next-prod/server/app/api/files/delete/route.js.nft.json +1 -1
  56. package/.next-prod/server/app/api/files/expanded/route.js.nft.json +1 -1
  57. package/.next-prod/server/app/api/files/index/route.js.nft.json +1 -1
  58. package/.next-prod/server/app/api/files/init/route.js.nft.json +1 -1
  59. package/.next-prod/server/app/api/files/paste/route.js.nft.json +1 -1
  60. package/.next-prod/server/app/api/files/read/route.js.nft.json +1 -1
  61. package/.next-prod/server/app/api/files/readdir/route.js.nft.json +1 -1
  62. package/.next-prod/server/app/api/files/recent/route.js.nft.json +1 -1
  63. package/.next-prod/server/app/api/files/save/route.js.nft.json +1 -1
  64. package/.next-prod/server/app/api/files/search/route.js.nft.json +1 -1
  65. package/.next-prod/server/app/api/files/stat/route.js.nft.json +1 -1
  66. package/.next-prod/server/app/api/files/text/route.js.nft.json +1 -1
  67. package/.next-prod/server/app/api/git/branch-diff/route.js.nft.json +1 -1
  68. package/.next-prod/server/app/api/git/branches/route.js.nft.json +1 -1
  69. package/.next-prod/server/app/api/git/commit-diff/route.js.nft.json +1 -1
  70. package/.next-prod/server/app/api/git/commits/route.js.nft.json +1 -1
  71. package/.next-prod/server/app/api/git/current-branch/route.js.nft.json +1 -1
  72. package/.next-prod/server/app/api/git/diff/route.js.nft.json +1 -1
  73. package/.next-prod/server/app/api/git/discard/route.js.nft.json +1 -1
  74. package/.next-prod/server/app/api/git/stage/route.js.nft.json +1 -1
  75. package/.next-prod/server/app/api/git/status/route.js.nft.json +1 -1
  76. package/.next-prod/server/app/api/git/unstage/route.js.nft.json +1 -1
  77. package/.next-prod/server/app/api/git/worktree/route.js.nft.json +1 -1
  78. package/.next-prod/server/app/api/global-state/route.js +1 -1
  79. package/.next-prod/server/app/api/global-state/route.js.nft.json +1 -1
  80. package/.next-prod/server/app/api/health/route.js.nft.json +1 -1
  81. package/.next-prod/server/app/api/jupyter/load/route.js.nft.json +1 -1
  82. package/.next-prod/server/app/api/jupyter/save/route.js.nft.json +1 -1
  83. package/.next-prod/server/app/api/jupyter/shutdown/route.js.nft.json +1 -1
  84. package/.next-prod/server/app/api/lsp/definition/route.js.nft.json +1 -1
  85. package/.next-prod/server/app/api/lsp/hover/route.js.nft.json +1 -1
  86. package/.next-prod/server/app/api/lsp/references/route.js.nft.json +1 -1
  87. package/.next-prod/server/app/api/lsp/status/route.js.nft.json +1 -1
  88. package/.next-prod/server/app/api/lsp/warmup/route.js.nft.json +1 -1
  89. package/.next-prod/server/app/api/mysql/columns/route.js.nft.json +1 -1
  90. package/.next-prod/server/app/api/mysql/connect/route.js.nft.json +1 -1
  91. package/.next-prod/server/app/api/mysql/disconnect/route.js.nft.json +1 -1
  92. package/.next-prod/server/app/api/mysql/export/route.js.nft.json +1 -1
  93. package/.next-prod/server/app/api/mysql/query/route.js.nft.json +1 -1
  94. package/.next-prod/server/app/api/mysql/schemas/route.js.nft.json +1 -1
  95. package/.next-prod/server/app/api/neo4j/connect/route.js.nft.json +1 -1
  96. package/.next-prod/server/app/api/neo4j/disconnect/route.js.nft.json +1 -1
  97. package/.next-prod/server/app/api/neo4j/query/route.js.nft.json +1 -1
  98. package/.next-prod/server/app/api/neo4j/schema/route.js.nft.json +1 -1
  99. package/.next-prod/server/app/api/note/route.js.nft.json +1 -1
  100. package/.next-prod/server/app/api/ollama/models/route.js.nft.json +1 -1
  101. package/.next-prod/server/app/api/ollama/start/route.js.nft.json +1 -1
  102. package/.next-prod/server/app/api/open-cursor/route.js.nft.json +1 -1
  103. package/.next-prod/server/app/api/open-vscode/route.js.nft.json +1 -1
  104. package/.next-prod/server/app/api/pick-folder/route.js.nft.json +1 -1
  105. package/.next-prod/server/app/api/pinned-sessions/route.js.nft.json +1 -1
  106. package/.next-prod/server/app/api/project-settings/route.js.nft.json +1 -1
  107. package/.next-prod/server/app/api/project-state/route.js.nft.json +1 -1
  108. package/.next-prod/server/app/api/projectGraph/affected/route.js.nft.json +1 -1
  109. package/.next-prod/server/app/api/projectGraph/callees/route.js.nft.json +1 -1
  110. package/.next-prod/server/app/api/projectGraph/callers/route.js.nft.json +1 -1
  111. package/.next-prod/server/app/api/projectGraph/coedit/route.js.nft.json +1 -1
  112. package/.next-prod/server/app/api/projectGraph/context/route.js.nft.json +1 -1
  113. package/.next-prod/server/app/api/projectGraph/file/route.js.nft.json +1 -1
  114. package/.next-prod/server/app/api/projectGraph/file-functions/route.js.nft.json +1 -1
  115. package/.next-prod/server/app/api/projectGraph/impact/route.js.nft.json +1 -1
  116. package/.next-prod/server/app/api/projectGraph/related/route.js.nft.json +1 -1
  117. package/.next-prod/server/app/api/projectGraph/risk/route.js.nft.json +1 -1
  118. package/.next-prod/server/app/api/projectGraph/search/route.js.nft.json +1 -1
  119. package/.next-prod/server/app/api/projects/route.js.nft.json +1 -1
  120. package/.next-prod/server/app/api/push/public-key/route.js +1 -1
  121. package/.next-prod/server/app/api/push/public-key/route.js.nft.json +1 -1
  122. package/.next-prod/server/app/api/push/subscribe/route.js +1 -1
  123. package/.next-prod/server/app/api/push/subscribe/route.js.nft.json +1 -1
  124. package/.next-prod/server/app/api/push/unsubscribe/route.js +1 -1
  125. package/.next-prod/server/app/api/push/unsubscribe/route.js.nft.json +1 -1
  126. package/.next-prod/server/app/api/redis/command/route.js.nft.json +1 -1
  127. package/.next-prod/server/app/api/redis/connect/route.js.nft.json +1 -1
  128. package/.next-prod/server/app/api/redis/delete/route.js.nft.json +1 -1
  129. package/.next-prod/server/app/api/redis/disconnect/route.js.nft.json +1 -1
  130. package/.next-prod/server/app/api/redis/get/route.js.nft.json +1 -1
  131. package/.next-prod/server/app/api/redis/keys/route.js.nft.json +1 -1
  132. package/.next-prod/server/app/api/redis/set/route.js.nft.json +1 -1
  133. package/.next-prod/server/app/api/review/[id]/comments/route.js.nft.json +1 -1
  134. package/.next-prod/server/app/api/review/[id]/replies/route.js.nft.json +1 -1
  135. package/.next-prod/server/app/api/review/[id]/route.js.nft.json +1 -1
  136. package/.next-prod/server/app/api/review/identify/route.js.nft.json +1 -1
  137. package/.next-prod/server/app/api/review/order/route.js.nft.json +1 -1
  138. package/.next-prod/server/app/api/review/route.js.nft.json +1 -1
  139. package/.next-prod/server/app/api/review/share-info/route.js.nft.json +1 -1
  140. package/.next-prod/server/app/api/review/users/route.js.nft.json +1 -1
  141. package/.next-prod/server/app/api/scheduled-tasks/route.js +2 -2
  142. package/.next-prod/server/app/api/scheduled-tasks/route.js.nft.json +1 -1
  143. package/.next-prod/server/app/api/services/config/route.js.nft.json +1 -1
  144. package/.next-prod/server/app/api/services/scripts/route.js.nft.json +1 -1
  145. package/.next-prod/server/app/api/session/[sessionId]/fork/route.js.nft.json +1 -1
  146. package/.next-prod/server/app/api/session/[sessionId]/history/route.js +1 -1
  147. package/.next-prod/server/app/api/session/[sessionId]/history/route.js.nft.json +1 -1
  148. package/.next-prod/server/app/api/session-by-path/route.js +1 -1
  149. package/.next-prod/server/app/api/session-by-path/route.js.nft.json +1 -1
  150. package/.next-prod/server/app/api/sessions/projects/[encodedPath]/route.js.nft.json +1 -1
  151. package/.next-prod/server/app/api/sessions/projects/route.js.nft.json +1 -1
  152. package/.next-prod/server/app/api/sessions/route.js.nft.json +1 -1
  153. package/.next-prod/server/app/api/settings/route.js.nft.json +1 -1
  154. package/.next-prod/server/app/api/skills/[id]/route.js.nft.json +1 -1
  155. package/.next-prod/server/app/api/skills/content/route.js.nft.json +1 -1
  156. package/.next-prod/server/app/api/skills/route.js.nft.json +1 -1
  157. package/.next-prod/server/app/api/terminal/aliases/route.js.nft.json +1 -1
  158. package/.next-prod/server/app/api/terminal/autocomplete/route.js.nft.json +1 -1
  159. package/.next-prod/server/app/api/terminal/bubble-order/route.js.nft.json +1 -1
  160. package/.next-prod/server/app/api/terminal/env/route.js.nft.json +1 -1
  161. package/.next-prod/server/app/api/terminal/history/route.js.nft.json +1 -1
  162. package/.next-prod/server/app/api/version/route.js.nft.json +1 -1
  163. package/.next-prod/server/app/favicon.ico/route.js.nft.json +1 -1
  164. package/.next-prod/server/app/m/page.js +2 -2
  165. package/.next-prod/server/app/m/page.js.nft.json +1 -1
  166. package/.next-prod/server/app/m/page_client-reference-manifest.js +1 -1
  167. package/.next-prod/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  168. package/.next-prod/server/app/page.js +1 -1
  169. package/.next-prod/server/app/page.js.nft.json +1 -1
  170. package/.next-prod/server/app/page_client-reference-manifest.js +1 -1
  171. package/.next-prod/server/app/project/page.js +1 -1
  172. package/.next-prod/server/app/project/page.js.nft.json +1 -1
  173. package/.next-prod/server/app/project/page_client-reference-manifest.js +1 -1
  174. package/.next-prod/server/app/review/[id]/page.js +2 -2
  175. package/.next-prod/server/app/review/[id]/page.js.nft.json +1 -1
  176. package/.next-prod/server/app/review/[id]/page_client-reference-manifest.js +1 -1
  177. package/.next-prod/server/chunks/3863.js +2 -2
  178. package/.next-prod/server/chunks/{3633.js → 5897.js} +373 -3
  179. package/.next-prod/server/chunks/9658.js +26 -26
  180. package/.next-prod/server/chunks/9830.js +1 -1
  181. package/.next-prod/server/middleware-build-manifest.js +1 -1
  182. package/.next-prod/server/middleware-react-loadable-manifest.js +1 -1
  183. package/.next-prod/server/pages/404.html +2 -2
  184. package/.next-prod/server/pages/500.html +1 -1
  185. package/.next-prod/server/server-reference-manifest.json +1 -1
  186. package/.next-prod/static/chunks/{2625-bc4748f0cd7db618.js → 1332-5e141e2acf28015a.js} +10 -10
  187. package/.next-prod/static/chunks/{217-4f8250a204080159.js → 217-e929c46c0bd599a7.js} +4 -4
  188. package/.next-prod/static/chunks/2502-fb8682bc7a61e04d.js +4 -0
  189. package/.next-prod/static/chunks/{2576-6420f6bad0b8ffb3.js → 2576-11e41242c7dd98f1.js} +2 -2
  190. package/.next-prod/static/chunks/4523.3f277a24fbcfde6d.js +138 -0
  191. package/.next-prod/static/chunks/9304-ddde9008da31b2ce.js +1 -0
  192. package/.next-prod/static/chunks/app/{layout-ac2f1f67df01cc89.js → layout-d202f8e0bcc90661.js} +1 -1
  193. package/.next-prod/static/chunks/app/m/page-71570a066f3eacf8.js +1 -0
  194. package/.next-prod/static/chunks/app/{page-1f0a6f49656a4c52.js → page-814b50b5b440249d.js} +1 -1
  195. package/.next-prod/static/chunks/app/project/{page-1f0a6f49656a4c52.js → page-814b50b5b440249d.js} +1 -1
  196. package/.next-prod/static/chunks/app/review/[id]/{page-39fa3a843adf617e.js → page-0c5d03d65758c7dc.js} +1 -1
  197. package/.next-prod/static/chunks/webpack-2c71a79c277961bc.js +1 -0
  198. package/.next-prod/static/css/fa7218e60ff464b5.css +1 -0
  199. package/.next-prod/trace +13 -13
  200. package/.next-prod/trace-build +1 -1
  201. package/bin/cock-browser.mjs +12 -9
  202. package/bin/cock.mjs +5 -5
  203. package/bin/postinstall.mjs +6 -6
  204. package/chrome-extension/automation.js +45 -40
  205. package/chrome-extension/background.js +70 -67
  206. package/chrome-extension/content.js +38 -38
  207. package/chrome-extension/disguise.js +4 -4
  208. package/chrome-extension/network-capture.js +16 -16
  209. package/dist/{chunk-VHFWPI2X.mjs → chunk-3M3JSZ5R.mjs} +28 -1
  210. package/dist/scheduledTasks.mjs +437 -3
  211. package/dist/wsServer.mjs +6 -31
  212. package/package.json +1 -1
  213. package/server.mjs +122 -26
  214. package/.next-prod/server/chunks/7003.js +0 -1
  215. package/.next-prod/static/chunks/471-504b396c8302f4f2.js +0 -4
  216. package/.next-prod/static/chunks/app/m/page-8b1af6f31b60c485.js +0 -1
  217. package/.next-prod/static/chunks/webpack-dbba7fa77ee1faa4.js +0 -1
  218. package/.next-prod/static/css/2a854655f4108c3a.css +0 -1
  219. /package/.next-prod/static/{Z3Em1C_kM7x4RjcH7E7v2 → JfwcuC5YjyhQWeQD-4Gvn}/_buildManifest.js +0 -0
  220. /package/.next-prod/static/{Z3Em1C_kM7x4RjcH7E7v2 → JfwcuC5YjyhQWeQD-4Gvn}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9304],{26801:(t,e)=>{"use strict";e.byteLength=function(t){var e=s(t),r=e[0],n=e[1];return(r+n)*3/4-n},e.toByteArray=function(t){var e,r,o=s(t),f=o[0],u=o[1],h=new i((f+u)*3/4-u),l=0,a=u>0?f-4:f;for(r=0;r<a;r+=4)e=n[t.charCodeAt(r)]<<18|n[t.charCodeAt(r+1)]<<12|n[t.charCodeAt(r+2)]<<6|n[t.charCodeAt(r+3)],h[l++]=e>>16&255,h[l++]=e>>8&255,h[l++]=255&e;return 2===u&&(e=n[t.charCodeAt(r)]<<2|n[t.charCodeAt(r+1)]>>4,h[l++]=255&e),1===u&&(e=n[t.charCodeAt(r)]<<10|n[t.charCodeAt(r+1)]<<4|n[t.charCodeAt(r+2)]>>2,h[l++]=e>>8&255,h[l++]=255&e),h},e.fromByteArray=function(t){for(var e,n=t.length,i=n%3,o=[],f=0,u=n-i;f<u;f+=16383)o.push(function(t,e,n){for(var i,o=[],f=e;f<n;f+=3)i=(t[f]<<16&0xff0000)+(t[f+1]<<8&65280)+(255&t[f+2]),o.push(r[i>>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return o.join("")}(t,f,f+16383>u?u:f+16383));return 1===i?o.push(r[(e=t[n-1])>>2]+r[e<<4&63]+"=="):2===i&&o.push(r[(e=(t[n-2]<<8)+t[n-1])>>10]+r[e>>4&63]+r[e<<2&63]+"="),o.join("")};for(var r=[],n=[],i="u">typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",f=0,u=o.length;f<u;++f)r[f]=o[f],n[o.charCodeAt(f)]=f;function s(t){var e=t.length;if(e%4>0)throw Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");-1===r&&(r=e);var n=r===e?0:4-r%4;return[r,n]}n[45]=62,n[95]=63},49304:(t,e,r)=>{"use strict";let n=r(26801),i=r(81852),o="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;function f(t){if(t>0x7fffffff)throw RangeError('The value "'+t+'" is invalid for option "size"');let e=new Uint8Array(t);return Object.setPrototypeOf(e,u.prototype),e}function u(t,e,r){if("number"==typeof t){if("string"==typeof e)throw TypeError('The "string" argument must be of type string. Received type number');return l(t)}return s(t,e,r)}function s(t,e,r){if("string"==typeof t){var n=t,i=e;if(("string"!=typeof i||""===i)&&(i="utf8"),!u.isEncoding(i))throw TypeError("Unknown encoding: "+i);let r=0|y(n,i),o=f(r),s=o.write(n,i);return s!==r&&(o=o.slice(0,s)),o}if(ArrayBuffer.isView(t)){var o=t;if(k(o,Uint8Array)){let t=new Uint8Array(o);return p(t.buffer,t.byteOffset,t.byteLength)}return a(o)}if(null==t)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(k(t,ArrayBuffer)||t&&k(t.buffer,ArrayBuffer)||"u">typeof SharedArrayBuffer&&(k(t,SharedArrayBuffer)||t&&k(t.buffer,SharedArrayBuffer)))return p(t,e,r);if("number"==typeof t)throw TypeError('The "value" argument must not be of type number. Received type number');let s=t.valueOf&&t.valueOf();if(null!=s&&s!==t)return u.from(s,e,r);let h=function(t){if(u.isBuffer(t)){let e=0|c(t.length),r=f(e);return 0===r.length||t.copy(r,0,0,e),r}return void 0!==t.length?"number"!=typeof t.length||function(t){return t!=t}(t.length)?f(0):a(t):"Buffer"===t.type&&Array.isArray(t.data)?a(t.data):void 0}(t);if(h)return h;if("u">typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof t[Symbol.toPrimitive])return u.from(t[Symbol.toPrimitive]("string"),e,r);throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}function h(t){if("number"!=typeof t)throw TypeError('"size" argument must be of type number');if(t<0)throw RangeError('The value "'+t+'" is invalid for option "size"')}function l(t){return h(t),f(t<0?0:0|c(t))}function a(t){let e=t.length<0?0:0|c(t.length),r=f(e);for(let n=0;n<e;n+=1)r[n]=255&t[n];return r}function p(t,e,r){let n;if(e<0||t.byteLength<e)throw RangeError('"offset" is outside of buffer bounds');if(t.byteLength<e+(r||0))throw RangeError('"length" is outside of buffer bounds');return Object.setPrototypeOf(n=void 0===e&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,e):new Uint8Array(t,e,r),u.prototype),n}function c(t){if(t>=0x7fffffff)throw RangeError("Attempt to allocate Buffer larger than maximum size: 0x7fffffff bytes");return 0|t}function y(t,e){if(u.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||k(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);let r=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;let i=!1;for(;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return $(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return N(t).length;default:if(i)return n?-1:$(t).length;e=(""+e).toLowerCase(),i=!0}}function g(t,e,r){let i=!1;if((void 0===e||e<0)&&(e=0),e>this.length||((void 0===r||r>this.length)&&(r=this.length),r<=0||(r>>>=0)<=(e>>>=0)))return"";for(t||(t="utf8");;)switch(t){case"hex":return function(t,e,r){let n=t.length;(!e||e<0)&&(e=0),(!r||r<0||r>n)&&(r=n);let i="";for(let n=e;n<r;++n)i+=P[t[n]];return i}(this,e,r);case"utf8":case"utf-8":return B(this,e,r);case"ascii":return function(t,e,r){let n="";r=Math.min(t.length,r);for(let i=e;i<r;++i)n+=String.fromCharCode(127&t[i]);return n}(this,e,r);case"latin1":case"binary":return function(t,e,r){let n="";r=Math.min(t.length,r);for(let i=e;i<r;++i)n+=String.fromCharCode(t[i]);return n}(this,e,r);case"base64":var o,f,u;return o=this,f=e,u=r,0===f&&u===o.length?n.fromByteArray(o):n.fromByteArray(o.slice(f,u));case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return function(t,e,r){let n=t.slice(e,r),i="";for(let t=0;t<n.length-1;t+=2)i+=String.fromCharCode(n[t]+256*n[t+1]);return i}(this,e,r);default:if(i)throw TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),i=!0}}function d(t,e,r){let n=t[e];t[e]=t[r],t[r]=n}function b(t,e,r,n,i){var o;if(0===t.length)return -1;if("string"==typeof r?(n=r,r=0):r>0x7fffffff?r=0x7fffffff:r<-0x80000000&&(r=-0x80000000),(o=r*=1)!=o&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length)if(i)return -1;else r=t.length-1;else if(r<0)if(!i)return -1;else r=0;if("string"==typeof e&&(e=u.from(e,n)),u.isBuffer(e))return 0===e.length?-1:w(t,e,r,n,i);if("number"==typeof e){if(e&=255,"function"==typeof Uint8Array.prototype.indexOf)if(i)return Uint8Array.prototype.indexOf.call(t,e,r);else return Uint8Array.prototype.lastIndexOf.call(t,e,r);return w(t,[e],r,n,i)}throw TypeError("val must be string, number or Buffer")}function w(t,e,r,n,i){let o,f=1,u=t.length,s=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return -1;f=2,u/=2,s/=2,r/=2}function h(t,e){return 1===f?t[e]:t.readUInt16BE(e*f)}if(i){let n=-1;for(o=r;o<u;o++)if(h(t,o)===h(e,-1===n?0:o-n)){if(-1===n&&(n=o),o-n+1===s)return n*f}else -1!==n&&(o-=o-n),n=-1}else for(r+s>u&&(r=u-s),o=r;o>=0;o--){let r=!0;for(let n=0;n<s;n++)if(h(t,o+n)!==h(e,n)){r=!1;break}if(r)return o}return -1}function B(t,e,r){r=Math.min(t.length,r);let n=[],i=e;for(;i<r;){let e=t[i],o=null,f=e>239?4:e>223?3:e>191?2:1;if(i+f<=r){let r,n,u,s;switch(f){case 1:e<128&&(o=e);break;case 2:(192&(r=t[i+1]))==128&&(s=(31&e)<<6|63&r)>127&&(o=s);break;case 3:r=t[i+1],n=t[i+2],(192&r)==128&&(192&n)==128&&(s=(15&e)<<12|(63&r)<<6|63&n)>2047&&(s<55296||s>57343)&&(o=s);break;case 4:r=t[i+1],n=t[i+2],u=t[i+3],(192&r)==128&&(192&n)==128&&(192&u)==128&&(s=(15&e)<<18|(63&r)<<12|(63&n)<<6|63&u)>65535&&s<1114112&&(o=s)}}null===o?(o=65533,f=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|1023&o),n.push(o),i+=f}var o=n;let f=o.length;if(f<=4096)return String.fromCharCode.apply(String,o);let u="",s=0;for(;s<f;)u+=String.fromCharCode.apply(String,o.slice(s,s+=4096));return u}function E(t,e,r){if(t%1!=0||t<0)throw RangeError("offset is not uint");if(t+e>r)throw RangeError("Trying to access beyond buffer length")}function m(t,e,r,n,i,o){if(!u.isBuffer(t))throw TypeError('"buffer" argument must be a Buffer instance');if(e>i||e<o)throw RangeError('"value" argument is out of bounds');if(r+n>t.length)throw RangeError("Index out of range")}function A(t,e,r,n,i){L(e,n,i,t,r,7);let o=Number(e&BigInt(0xffffffff));t[r++]=o,o>>=8,t[r++]=o,o>>=8,t[r++]=o,o>>=8,t[r++]=o;let f=Number(e>>BigInt(32)&BigInt(0xffffffff));return t[r++]=f,f>>=8,t[r++]=f,f>>=8,t[r++]=f,f>>=8,t[r++]=f,r}function I(t,e,r,n,i){L(e,n,i,t,r,7);let o=Number(e&BigInt(0xffffffff));t[r+7]=o,o>>=8,t[r+6]=o,o>>=8,t[r+5]=o,o>>=8,t[r+4]=o;let f=Number(e>>BigInt(32)&BigInt(0xffffffff));return t[r+3]=f,f>>=8,t[r+2]=f,f>>=8,t[r+1]=f,f>>=8,t[r]=f,r+8}function v(t,e,r,n,i,o){if(r+n>t.length||r<0)throw RangeError("Index out of range")}function U(t,e,r,n,o){return e*=1,r>>>=0,o||v(t,e,r,4,34028234663852886e22,-34028234663852886e22),i.write(t,e,r,n,23,4),r+4}function x(t,e,r,n,o){return e*=1,r>>>=0,o||v(t,e,r,8,17976931348623157e292,-17976931348623157e292),i.write(t,e,r,n,52,8),r+8}e.Buffer=u,e.SlowBuffer=function(t){return+t!=t&&(t=0),u.alloc(+t)},e.INSPECT_MAX_BYTES=50,e.kMaxLength=0x7fffffff,u.TYPED_ARRAY_SUPPORT=function(){try{let t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),42===t.foo()}catch(t){return!1}}(),!u.TYPED_ARRAY_SUPPORT&&"u">typeof console&&"function"==typeof console.error&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(u.prototype,"parent",{enumerable:!0,get:function(){if(u.isBuffer(this))return this.buffer}}),Object.defineProperty(u.prototype,"offset",{enumerable:!0,get:function(){if(u.isBuffer(this))return this.byteOffset}}),u.poolSize=8192,u.from=function(t,e,r){return s(t,e,r)},Object.setPrototypeOf(u.prototype,Uint8Array.prototype),Object.setPrototypeOf(u,Uint8Array),u.alloc=function(t,e,r){return(h(t),t<=0)?f(t):void 0!==e?"string"==typeof r?f(t).fill(e,r):f(t).fill(e):f(t)},u.allocUnsafe=function(t){return l(t)},u.allocUnsafeSlow=function(t){return l(t)},u.isBuffer=function(t){return null!=t&&!0===t._isBuffer&&t!==u.prototype},u.compare=function(t,e){if(k(t,Uint8Array)&&(t=u.from(t,t.offset,t.byteLength)),k(e,Uint8Array)&&(e=u.from(e,e.offset,e.byteLength)),!u.isBuffer(t)||!u.isBuffer(e))throw TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(t===e)return 0;let r=t.length,n=e.length;for(let i=0,o=Math.min(r,n);i<o;++i)if(t[i]!==e[i]){r=t[i],n=e[i];break}return r<n?-1:+(n<r)},u.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},u.concat=function(t,e){let r;if(!Array.isArray(t))throw TypeError('"list" argument must be an Array of Buffers');if(0===t.length)return u.alloc(0);if(void 0===e)for(r=0,e=0;r<t.length;++r)e+=t[r].length;let n=u.allocUnsafe(e),i=0;for(r=0;r<t.length;++r){let e=t[r];if(k(e,Uint8Array))i+e.length>n.length?(u.isBuffer(e)||(e=u.from(e)),e.copy(n,i)):Uint8Array.prototype.set.call(n,e,i);else if(u.isBuffer(e))e.copy(n,i);else throw TypeError('"list" argument must be an Array of Buffers');i+=e.length}return n},u.byteLength=y,u.prototype._isBuffer=!0,u.prototype.swap16=function(){let t=this.length;if(t%2!=0)throw RangeError("Buffer size must be a multiple of 16-bits");for(let e=0;e<t;e+=2)d(this,e,e+1);return this},u.prototype.swap32=function(){let t=this.length;if(t%4!=0)throw RangeError("Buffer size must be a multiple of 32-bits");for(let e=0;e<t;e+=4)d(this,e,e+3),d(this,e+1,e+2);return this},u.prototype.swap64=function(){let t=this.length;if(t%8!=0)throw RangeError("Buffer size must be a multiple of 64-bits");for(let e=0;e<t;e+=8)d(this,e,e+7),d(this,e+1,e+6),d(this,e+2,e+5),d(this,e+3,e+4);return this},u.prototype.toString=function(){let t=this.length;return 0===t?"":0==arguments.length?B(this,0,t):g.apply(this,arguments)},u.prototype.toLocaleString=u.prototype.toString,u.prototype.equals=function(t){if(!u.isBuffer(t))throw TypeError("Argument must be a Buffer");return this===t||0===u.compare(this,t)},u.prototype.inspect=function(){let t="",r=e.INSPECT_MAX_BYTES;return t=this.toString("hex",0,r).replace(/(.{2})/g,"$1 ").trim(),this.length>r&&(t+=" ... "),"<Buffer "+t+">"},o&&(u.prototype[o]=u.prototype.inspect),u.prototype.compare=function(t,e,r,n,i){if(k(t,Uint8Array)&&(t=u.from(t,t.offset,t.byteLength)),!u.isBuffer(t))throw TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return -1;if(e>=r)return 1;if(e>>>=0,r>>>=0,n>>>=0,i>>>=0,this===t)return 0;let o=i-n,f=r-e,s=Math.min(o,f),h=this.slice(n,i),l=t.slice(e,r);for(let t=0;t<s;++t)if(h[t]!==l[t]){o=h[t],f=l[t];break}return o<f?-1:+(f<o)},u.prototype.includes=function(t,e,r){return -1!==this.indexOf(t,e,r)},u.prototype.indexOf=function(t,e,r){return b(this,t,e,r,!0)},u.prototype.lastIndexOf=function(t,e,r){return b(this,t,e,r,!1)},u.prototype.write=function(t,e,r,n){var i,o,f,u,s,h,l,a;if(void 0===e)n="utf8",r=this.length,e=0;else if(void 0===r&&"string"==typeof e)n=e,r=this.length,e=0;else if(isFinite(e))e>>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0);else throw Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let p=this.length-e;if((void 0===r||r>p)&&(r=p),t.length>0&&(r<0||e<0)||e>this.length)throw RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let c=!1;for(;;)switch(n){case"hex":return function(t,e,r,n){let i;r=Number(r)||0;let o=t.length-r;n?(n=Number(n))>o&&(n=o):n=o;let f=e.length;for(n>f/2&&(n=f/2),i=0;i<n;++i){var u;let n=parseInt(e.substr(2*i,2),16);if((u=n)!=u)break;t[r+i]=n}return i}(this,t,e,r);case"utf8":case"utf-8":return i=e,o=r,M($(t,this.length-i),this,i,o);case"ascii":case"latin1":case"binary":return f=e,u=r,M(function(t){let e=[];for(let r=0;r<t.length;++r)e.push(255&t.charCodeAt(r));return e}(t),this,f,u);case"base64":return s=e,h=r,M(N(t),this,s,h);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return l=e,a=r,M(function(t,e){let r,n,i=[];for(let o=0;o<t.length&&!((e-=2)<0);++o)n=(r=t.charCodeAt(o))>>8,i.push(r%256),i.push(n);return i}(t,this.length-l),this,l,a);default:if(c)throw TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),c=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},u.prototype.slice=function(t,e){let r=this.length;t=~~t,e=void 0===e?r:~~e,t<0?(t+=r)<0&&(t=0):t>r&&(t=r),e<0?(e+=r)<0&&(e=0):e>r&&(e=r),e<t&&(e=t);let n=this.subarray(t,e);return Object.setPrototypeOf(n,u.prototype),n},u.prototype.readUintLE=u.prototype.readUIntLE=function(t,e,r){t>>>=0,e>>>=0,r||E(t,e,this.length);let n=this[t],i=1,o=0;for(;++o<e&&(i*=256);)n+=this[t+o]*i;return n},u.prototype.readUintBE=u.prototype.readUIntBE=function(t,e,r){t>>>=0,e>>>=0,r||E(t,e,this.length);let n=this[t+--e],i=1;for(;e>0&&(i*=256);)n+=this[t+--e]*i;return n},u.prototype.readUint8=u.prototype.readUInt8=function(t,e){return t>>>=0,e||E(t,1,this.length),this[t]},u.prototype.readUint16LE=u.prototype.readUInt16LE=function(t,e){return t>>>=0,e||E(t,2,this.length),this[t]|this[t+1]<<8},u.prototype.readUint16BE=u.prototype.readUInt16BE=function(t,e){return t>>>=0,e||E(t,2,this.length),this[t]<<8|this[t+1]},u.prototype.readUint32LE=u.prototype.readUInt32LE=function(t,e){return t>>>=0,e||E(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+0x1000000*this[t+3]},u.prototype.readUint32BE=u.prototype.readUInt32BE=function(t,e){return t>>>=0,e||E(t,4,this.length),0x1000000*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},u.prototype.readBigUInt64LE=j(function(t){_(t>>>=0,"offset");let e=this[t],r=this[t+7];(void 0===e||void 0===r)&&S(t,this.length-8);let n=e+256*this[++t]+65536*this[++t]+0x1000000*this[++t],i=this[++t]+256*this[++t]+65536*this[++t]+0x1000000*r;return BigInt(n)+(BigInt(i)<<BigInt(32))}),u.prototype.readBigUInt64BE=j(function(t){_(t>>>=0,"offset");let e=this[t],r=this[t+7];(void 0===e||void 0===r)&&S(t,this.length-8);let n=0x1000000*e+65536*this[++t]+256*this[++t]+this[++t],i=0x1000000*this[++t]+65536*this[++t]+256*this[++t]+r;return(BigInt(n)<<BigInt(32))+BigInt(i)}),u.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||E(t,e,this.length);let n=this[t],i=1,o=0;for(;++o<e&&(i*=256);)n+=this[t+o]*i;return n>=(i*=128)&&(n-=Math.pow(2,8*e)),n},u.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||E(t,e,this.length);let n=e,i=1,o=this[t+--n];for(;n>0&&(i*=256);)o+=this[t+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*e)),o},u.prototype.readInt8=function(t,e){return(t>>>=0,e||E(t,1,this.length),128&this[t])?-((255-this[t]+1)*1):this[t]},u.prototype.readInt16LE=function(t,e){t>>>=0,e||E(t,2,this.length);let r=this[t]|this[t+1]<<8;return 32768&r?0xffff0000|r:r},u.prototype.readInt16BE=function(t,e){t>>>=0,e||E(t,2,this.length);let r=this[t+1]|this[t]<<8;return 32768&r?0xffff0000|r:r},u.prototype.readInt32LE=function(t,e){return t>>>=0,e||E(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},u.prototype.readInt32BE=function(t,e){return t>>>=0,e||E(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},u.prototype.readBigInt64LE=j(function(t){_(t>>>=0,"offset");let e=this[t],r=this[t+7];return(void 0===e||void 0===r)&&S(t,this.length-8),(BigInt(this[t+4]+256*this[t+5]+65536*this[t+6]+(r<<24))<<BigInt(32))+BigInt(e+256*this[++t]+65536*this[++t]+0x1000000*this[++t])}),u.prototype.readBigInt64BE=j(function(t){_(t>>>=0,"offset");let e=this[t],r=this[t+7];return(void 0===e||void 0===r)&&S(t,this.length-8),(BigInt((e<<24)+65536*this[++t]+256*this[++t]+this[++t])<<BigInt(32))+BigInt(0x1000000*this[++t]+65536*this[++t]+256*this[++t]+r)}),u.prototype.readFloatLE=function(t,e){return t>>>=0,e||E(t,4,this.length),i.read(this,t,!0,23,4)},u.prototype.readFloatBE=function(t,e){return t>>>=0,e||E(t,4,this.length),i.read(this,t,!1,23,4)},u.prototype.readDoubleLE=function(t,e){return t>>>=0,e||E(t,8,this.length),i.read(this,t,!0,52,8)},u.prototype.readDoubleBE=function(t,e){return t>>>=0,e||E(t,8,this.length),i.read(this,t,!1,52,8)},u.prototype.writeUintLE=u.prototype.writeUIntLE=function(t,e,r,n){if(t*=1,e>>>=0,r>>>=0,!n){let n=Math.pow(2,8*r)-1;m(this,t,e,r,n,0)}let i=1,o=0;for(this[e]=255&t;++o<r&&(i*=256);)this[e+o]=t/i&255;return e+r},u.prototype.writeUintBE=u.prototype.writeUIntBE=function(t,e,r,n){if(t*=1,e>>>=0,r>>>=0,!n){let n=Math.pow(2,8*r)-1;m(this,t,e,r,n,0)}let i=r-1,o=1;for(this[e+i]=255&t;--i>=0&&(o*=256);)this[e+i]=t/o&255;return e+r},u.prototype.writeUint8=u.prototype.writeUInt8=function(t,e,r){return t*=1,e>>>=0,r||m(this,t,e,1,255,0),this[e]=255&t,e+1},u.prototype.writeUint16LE=u.prototype.writeUInt16LE=function(t,e,r){return t*=1,e>>>=0,r||m(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},u.prototype.writeUint16BE=u.prototype.writeUInt16BE=function(t,e,r){return t*=1,e>>>=0,r||m(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},u.prototype.writeUint32LE=u.prototype.writeUInt32LE=function(t,e,r){return t*=1,e>>>=0,r||m(this,t,e,4,0xffffffff,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},u.prototype.writeUint32BE=u.prototype.writeUInt32BE=function(t,e,r){return t*=1,e>>>=0,r||m(this,t,e,4,0xffffffff,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},u.prototype.writeBigUInt64LE=j(function(t,e=0){return A(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))}),u.prototype.writeBigUInt64BE=j(function(t,e=0){return I(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))}),u.prototype.writeIntLE=function(t,e,r,n){if(t*=1,e>>>=0,!n){let n=Math.pow(2,8*r-1);m(this,t,e,r,n-1,-n)}let i=0,o=1,f=0;for(this[e]=255&t;++i<r&&(o*=256);)t<0&&0===f&&0!==this[e+i-1]&&(f=1),this[e+i]=(t/o|0)-f&255;return e+r},u.prototype.writeIntBE=function(t,e,r,n){if(t*=1,e>>>=0,!n){let n=Math.pow(2,8*r-1);m(this,t,e,r,n-1,-n)}let i=r-1,o=1,f=0;for(this[e+i]=255&t;--i>=0&&(o*=256);)t<0&&0===f&&0!==this[e+i+1]&&(f=1),this[e+i]=(t/o|0)-f&255;return e+r},u.prototype.writeInt8=function(t,e,r){return t*=1,e>>>=0,r||m(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},u.prototype.writeInt16LE=function(t,e,r){return t*=1,e>>>=0,r||m(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},u.prototype.writeInt16BE=function(t,e,r){return t*=1,e>>>=0,r||m(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},u.prototype.writeInt32LE=function(t,e,r){return t*=1,e>>>=0,r||m(this,t,e,4,0x7fffffff,-0x80000000),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},u.prototype.writeInt32BE=function(t,e,r){return t*=1,e>>>=0,r||m(this,t,e,4,0x7fffffff,-0x80000000),t<0&&(t=0xffffffff+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},u.prototype.writeBigInt64LE=j(function(t,e=0){return A(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),u.prototype.writeBigInt64BE=j(function(t,e=0){return I(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),u.prototype.writeFloatLE=function(t,e,r){return U(this,t,e,!0,r)},u.prototype.writeFloatBE=function(t,e,r){return U(this,t,e,!1,r)},u.prototype.writeDoubleLE=function(t,e,r){return x(this,t,e,!0,r)},u.prototype.writeDoubleBE=function(t,e,r){return x(this,t,e,!1,r)},u.prototype.copy=function(t,e,r,n){if(!u.isBuffer(t))throw TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n<r&&(n=r),n===r||0===t.length||0===this.length)return 0;if(e<0)throw RangeError("targetStart out of bounds");if(r<0||r>=this.length)throw RangeError("Index out of range");if(n<0)throw RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e<n-r&&(n=t.length-e+r);let i=n-r;return this===t&&"function"==typeof Uint8Array.prototype.copyWithin?this.copyWithin(e,r,n):Uint8Array.prototype.set.call(t,this.subarray(r,n),e),i},u.prototype.fill=function(t,e,r,n){let i;if("string"==typeof t){if("string"==typeof e?(n=e,e=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),void 0!==n&&"string"!=typeof n)throw TypeError("encoding must be a string");if("string"==typeof n&&!u.isEncoding(n))throw TypeError("Unknown encoding: "+n);if(1===t.length){let e=t.charCodeAt(0);("utf8"===n&&e<128||"latin1"===n)&&(t=e)}}else"number"==typeof t?t&=255:"boolean"==typeof t&&(t=Number(t));if(e<0||this.length<e||this.length<r)throw RangeError("Out of range index");if(r<=e)return this;if(e>>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(i=e;i<r;++i)this[i]=t;else{let o=u.isBuffer(t)?t:u.from(t,n),f=o.length;if(0===f)throw TypeError('The value "'+t+'" is invalid for argument "value"');for(i=0;i<r-e;++i)this[i+e]=o[i%f]}return this};let R={};function T(t,e,r){R[t]=class extends r{constructor(){super(),Object.defineProperty(this,"message",{value:e.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${t}]`,this.stack,delete this.name}get code(){return t}set code(t){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:t,writable:!0})}toString(){return`${this.name} [${t}]: ${this.message}`}}}function O(t){let e="",r=t.length,n=+("-"===t[0]);for(;r>=n+4;r-=3)e=`_${t.slice(r-3,r)}${e}`;return`${t.slice(0,r)}${e}`}function L(t,e,r,n,i,o){if(t>r||t<e){let n,i="bigint"==typeof e?"n":"";throw n=o>3?0===e||e===BigInt(0)?`>= 0${i} and < 2${i} ** ${(o+1)*8}${i}`:`>= -(2${i} ** ${(o+1)*8-1}${i}) and < 2 ** ${(o+1)*8-1}${i}`:`>= ${e}${i} and <= ${r}${i}`,new R.ERR_OUT_OF_RANGE("value",n,t)}_(i,"offset"),(void 0===n[i]||void 0===n[i+o])&&S(i,n.length-(o+1))}function _(t,e){if("number"!=typeof t)throw new R.ERR_INVALID_ARG_TYPE(e,"number",t)}function S(t,e,r){if(Math.floor(t)!==t)throw _(t,r),new R.ERR_OUT_OF_RANGE(r||"offset","an integer",t);if(e<0)throw new R.ERR_BUFFER_OUT_OF_BOUNDS;throw new R.ERR_OUT_OF_RANGE(r||"offset",`>= ${+!!r} and <= ${e}`,t)}T("ERR_BUFFER_OUT_OF_BOUNDS",function(t){return t?`${t} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),T("ERR_INVALID_ARG_TYPE",function(t,e){return`The "${t}" argument must be of type number. Received type ${typeof e}`},TypeError),T("ERR_OUT_OF_RANGE",function(t,e,r){let n=`The value of "${t}" is out of range.`,i=r;return Number.isInteger(r)&&Math.abs(r)>0x100000000?i=O(String(r)):"bigint"==typeof r&&(i=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(i=O(i)),i+="n"),n+=` It must be ${e}. Received ${i}`},RangeError);let C=/[^+/0-9A-Za-z-_]/g;function $(t,e){let r;e=e||1/0;let n=t.length,i=null,o=[];for(let f=0;f<n;++f){if((r=t.charCodeAt(f))>55295&&r<57344){if(!i){if(r>56319||f+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=(i-55296<<10|r-56320)+65536}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else if(r<1114112){if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}else throw Error("Invalid code point")}return o}function N(t){return n.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(C,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function M(t,e,r,n){let i;for(i=0;i<n&&!(i+r>=e.length)&&!(i>=t.length);++i)e[i+r]=t[i];return i}function k(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}let P=function(){let t="0123456789abcdef",e=Array(256);for(let r=0;r<16;++r){let n=16*r;for(let i=0;i<16;++i)e[n+i]=t[r]+t[i]}return e}();function j(t){return"u"<typeof BigInt?F:t}function F(){throw Error("BigInt not supported")}},81852:(t,e)=>{e.read=function(t,e,r,n,i){var o,f,u=8*i-n-1,s=(1<<u)-1,h=s>>1,l=-7,a=r?i-1:0,p=r?-1:1,c=t[e+a];for(a+=p,o=c&(1<<-l)-1,c>>=-l,l+=u;l>0;o=256*o+t[e+a],a+=p,l-=8);for(f=o&(1<<-l)-1,o>>=-l,l+=n;l>0;f=256*f+t[e+a],a+=p,l-=8);if(0===o)o=1-h;else{if(o===s)return f?NaN:1/0*(c?-1:1);f+=Math.pow(2,n),o-=h}return(c?-1:1)*f*Math.pow(2,o-n)},e.write=function(t,e,r,n,i,o){var f,u,s,h=8*o-i-1,l=(1<<h)-1,a=l>>1,p=5960464477539062e-23*(23===i),c=n?0:o-1,y=n?1:-1,g=+(e<0||0===e&&1/e<0);for(isNaN(e=Math.abs(e))||e===1/0?(u=+!!isNaN(e),f=l):(f=Math.floor(Math.log(e)/Math.LN2),e*(s=Math.pow(2,-f))<1&&(f--,s*=2),f+a>=1?e+=p/s:e+=p*Math.pow(2,1-a),e*s>=2&&(f++,s/=2),f+a>=l?(u=0,f=l):f+a>=1?(u=(e*s-1)*Math.pow(2,i),f+=a):(u=e*Math.pow(2,a-1)*Math.pow(2,i),f=0));i>=8;t[r+c]=255&u,c+=y,u/=256,i-=8);for(f=f<<i|u,h+=i;h>0;t[r+c]=255&f,c+=y,f/=256,h-=8);t[r+c-y]|=128*g}}}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{7815:e=>{e.exports={style:{fontFamily:"'Lora', 'Lora Fallback'",fontStyle:"normal"},className:"__className_c1a059",variable:"__variable_c1a059"}},36791:e=>{e.exports={style:{fontFamily:"'Inter', 'Inter Fallback'",fontStyle:"normal"},className:"__className_f367f3",variable:"__variable_f367f3"}},51743:()=>{},66924:e=>{e.exports={style:{fontFamily:"'JetBrains Mono', 'JetBrains Mono Fallback'",fontStyle:"normal"},className:"__className_3c557b",variable:"__variable_3c557b"}},86343:(e,s,o)=>{Promise.resolve().then(o.t.bind(o,36791,23)),Promise.resolve().then(o.t.bind(o,7815,23)),Promise.resolve().then(o.t.bind(o,66924,23)),Promise.resolve().then(o.bind(o,76288)),Promise.resolve().then(o.bind(o,47617)),Promise.resolve().then(o.bind(o,97335)),Promise.resolve().then(o.bind(o,76043)),Promise.resolve().then(o.bind(o,2228)),Promise.resolve().then(o.bind(o,42701)),Promise.resolve().then(o.bind(o,84310)),Promise.resolve().then(o.bind(o,83678)),Promise.resolve().then(o.bind(o,21484)),Promise.resolve().then(o.bind(o,24058)),Promise.resolve().then(o.bind(o,1700)),Promise.resolve().then(o.bind(o,76412)),Promise.resolve().then(o.bind(o,89039)),Promise.resolve().then(o.bind(o,63048)),Promise.resolve().then(o.t.bind(o,51743,23))}},e=>{e.O(0,[8225,8653,3334,7330,8216,4281,3888,5004,277,2625,471,9428,6784,217,2032,2576,8441,3794,7358],()=>e(e.s=86343)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{7815:e=>{e.exports={style:{fontFamily:"'Lora', 'Lora Fallback'",fontStyle:"normal"},className:"__className_c1a059",variable:"__variable_c1a059"}},36791:e=>{e.exports={style:{fontFamily:"'Inter', 'Inter Fallback'",fontStyle:"normal"},className:"__className_f367f3",variable:"__variable_f367f3"}},51743:()=>{},66924:e=>{e.exports={style:{fontFamily:"'JetBrains Mono', 'JetBrains Mono Fallback'",fontStyle:"normal"},className:"__className_3c557b",variable:"__variable_3c557b"}},86343:(e,s,o)=>{Promise.resolve().then(o.t.bind(o,36791,23)),Promise.resolve().then(o.t.bind(o,7815,23)),Promise.resolve().then(o.t.bind(o,66924,23)),Promise.resolve().then(o.bind(o,76288)),Promise.resolve().then(o.bind(o,47617)),Promise.resolve().then(o.bind(o,97335)),Promise.resolve().then(o.bind(o,76043)),Promise.resolve().then(o.bind(o,2228)),Promise.resolve().then(o.bind(o,42701)),Promise.resolve().then(o.bind(o,84310)),Promise.resolve().then(o.bind(o,83678)),Promise.resolve().then(o.bind(o,21484)),Promise.resolve().then(o.bind(o,24058)),Promise.resolve().then(o.bind(o,1700)),Promise.resolve().then(o.bind(o,76412)),Promise.resolve().then(o.bind(o,89039)),Promise.resolve().then(o.bind(o,63048)),Promise.resolve().then(o.t.bind(o,51743,23))}},e=>{e.O(0,[8225,8653,3334,7330,8216,4281,3888,5004,277,1332,2502,9428,6784,217,2032,2576,8441,3794,7358],()=>e(e.s=86343)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4302],{12550:(e,t,s)=>{Promise.resolve().then(s.bind(s,69234))},69234:(e,t,s)=>{"use strict";s.d(t,{default:()=>R});var n=s(95155),a=s(12115),r=s(79114),i=s(90425);let l=(0,i.A)("bell",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]]),o=(0,i.A)("bell-off",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M17 17H4a1 1 0 0 1-.74-1.673C4.59 13.956 6 12.499 6 8a6 6 0 0 1 .258-1.742",key:"178tsu"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M8.668 3.01A6 6 0 0 1 18 8c0 2.687.77 4.653 1.707 6.05",key:"1hqiys"}]]),c=(0,i.A)("pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]);var d=s(2111),u=s(3292),h=s(34075),f=s(69809);let m="/push-sw.js";function x({onOpen:e,onUseDesktop:t,initialSessions:s}){let{t:i}=(0,r.Bd)(),[p,g]=(0,a.useState)("recent"),[v,w]=(0,a.useState)(()=>s??[]),[y,k]=(0,a.useState)(()=>Date.now()),{pinnedSessions:j}=(0,u.P)(),{supported:N,isSubscribed:S,busy:C,subscribe:M,unsubscribe:E}=function(){let[e,t]=(0,a.useState)(!1),[s,n]=(0,a.useState)("default"),[r,i]=(0,a.useState)(!1),[l,o]=(0,a.useState)(!1);(0,a.useEffect)(()=>{let e="serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window;(t(e),e)?(n(Notification.permission),navigator.serviceWorker.getRegistration(m).then(e=>e?.pushManager.getSubscription()).then(e=>i(!!e)).catch(()=>{})):n("unsupported")},[]);let c=(0,a.useCallback)(async()=>{if(e&&!l){o(!0);try{let e=await Notification.requestPermission();if(n(e),"granted"!==e)return;let t=await navigator.serviceWorker.register(m);await navigator.serviceWorker.ready;let s=await fetch("/api/push/public-key");if(!s.ok)throw Error(`public-key HTTP ${s.status}`);let{publicKey:a}=await s.json();if(!a)throw Error("missing VAPID public key");let r=await t.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:function(e){let t="=".repeat((4-e.length%4)%4),s=atob((e+t).replace(/-/g,"+").replace(/_/g,"/")),n=new Uint8Array(s.length);for(let e=0;e<s.length;e++)n[e]=s.charCodeAt(e);return n}(a)}),l=await fetch("/api/push/subscribe",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({subscription:r})});if(!l.ok)throw Error(`subscribe HTTP ${l.status}`);i(!0)}catch(e){console.error("push subscribe failed",e),(0,h.oR)(f.A.t("mobile.notifyError",{defaultValue:"Could not enable notifications"}),"error")}finally{o(!1)}}},[e,l]),d=(0,a.useCallback)(async()=>{if(e&&!l){o(!0);try{let e=await navigator.serviceWorker.getRegistration(m),t=await e?.pushManager.getSubscription();t&&(await fetch("/api/push/unsubscribe",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({endpoint:t.endpoint})}),await t.unsubscribe()),i(!1)}catch(e){console.error("push unsubscribe failed",e)}finally{o(!1)}}},[e,l]);return{supported:e,permission:s,isSubscribed:r,busy:l,subscribe:c,unsubscribe:d}}(),A=(0,a.useCallback)(e=>{"task-fired"===e.type||e.data&&(w(e.data.sessions||[]),k(Date.now()))},[]);(0,d.h)({url:"/ws/global-state",onMessage:A});let I=(0,a.useCallback)(e=>{let t=Math.floor((y-e)/6e4);if(t<1)return i("common.justNow");if(t<60)return i("common.minutesAgo",{count:t});let s=Math.floor(t/60);return s<24?i("common.hoursAgo",{count:s}):i("common.daysAgo",{count:Math.floor(s/24)})},[y,i]),R=e=>e.split("/").pop()||e,L=v.filter(e=>"loading"===e.status).length,P=(e,t)=>(0,n.jsx)("button",{type:"button",onClick:()=>g(e),className:`flex-1 rounded-md py-1.5 text-sm font-medium transition-colors ${p===e?"bg-card text-foreground shadow-sm":"text-muted-foreground"}`,children:t});return(0,n.jsxs)("div",{className:"flex h-[100dvh] flex-col bg-card",children:[(0,n.jsxs)("div",{className:"flex flex-shrink-0 items-center gap-3 border-b border-border px-3 py-2.5 pt-[max(0.625rem,env(safe-area-inset-top))]",children:[(0,n.jsxs)("div",{className:"flex flex-1 items-center gap-1 rounded-lg bg-accent p-0.5",children:[P("recent",i("sessions.recentSessions")),P("pinned",i("sessions.pinnedSessions"))]}),N&&(0,n.jsx)("button",{type:"button",onClick:S?E:M,disabled:C,"aria-label":S?i("mobile.disableNotifications",{defaultValue:"Disable notifications"}):i("mobile.enableNotifications",{defaultValue:"Enable notifications"}),className:`flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-lg active:bg-accent disabled:opacity-40 ${S?"text-brand":"text-muted-foreground"}`,children:S?(0,n.jsx)(l,{className:"h-4 w-4"}):(0,n.jsx)(o,{className:"h-4 w-4"})}),(0,n.jsx)("button",{type:"button",onClick:t,className:"flex-shrink-0 rounded-lg px-2 py-1 text-xs text-muted-foreground active:bg-accent",children:i("mobile.useDesktop")})]}),"recent"===p&&L>0&&(0,n.jsx)("div",{className:"flex-shrink-0 border-b border-border/50 px-4 py-1.5 text-xs text-orange-11",children:i("sessions.runningCount",{count:L})}),(0,n.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto",children:"recent"===p?0===v.length?(0,n.jsx)(b,{text:i("sessions.noSessions")}):v.map(t=>(0,n.jsxs)("button",{onClick:()=>e({cwd:t.cwd,sessionId:t.sessionId,title:t.title}),className:"flex w-full items-start gap-3 border-b border-border/50 px-4 py-3.5 text-left active:bg-accent",children:[(0,n.jsx)("span",{className:`mt-1.5 h-2.5 w-2.5 flex-shrink-0 rounded-full ${"loading"===t.status?"animate-pulse bg-orange-9":"unread"===t.status?"bg-red-500":"bg-muted-foreground/30"}`}),(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("span",{className:"truncate text-sm font-medium",children:R(t.cwd)}),"loading"===t.status&&(0,n.jsx)("span",{className:"flex-shrink-0 text-xs text-orange-11",children:i("sessions.running")}),"unread"===t.status&&(0,n.jsx)("span",{className:"flex-shrink-0 text-xs text-red-500",children:i("sessions.done")}),(0,n.jsx)("span",{className:"ml-auto flex-shrink-0 text-xs text-muted-foreground",children:I(t.lastActive)})]}),(t.lastUserMessage||t.title)&&(0,n.jsx)("div",{className:"mt-0.5 truncate text-xs text-foreground/70",children:t.lastUserMessage||t.title})]})]},`${t.cwd}-${t.sessionId}`)):0===j.length?(0,n.jsx)(b,{text:i("sessions.noPinnedSessions")}):j.map(t=>(0,n.jsxs)("button",{onClick:()=>e({cwd:t.cwd,sessionId:t.sessionId,title:t.customTitle}),className:"flex w-full items-start gap-3 border-b border-border/50 px-4 py-3.5 text-left active:bg-accent",children:[(0,n.jsx)(c,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-brand"}),(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsx)("div",{className:"truncate text-sm font-medium",children:t.customTitle||R(t.cwd)}),(0,n.jsx)("div",{className:"truncate text-xs text-muted-foreground",children:R(t.cwd)})]})]},`${t.cwd}-${t.sessionId}`))})]})}function b({text:e}){return(0,n.jsx)("div",{className:"px-4 py-8 text-center text-sm text-muted-foreground",children:e})}let p=(0,i.A)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);var g=s(49433),v=s(86957),w=s(82680),y=s(85839),k=s(20917),j=s(65153),N=s(8988),S=s(36201),C=s(56204);function M({onSend:e,onStop:t,isRunning:s,disabled:i}){let{t:l}=(0,r.Bd)(),[o,c]=(0,a.useState)(""),d=(0,a.useRef)(null);(0,a.useLayoutEffect)(()=>{let e=d.current;e&&(e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,140)}px`)},[o]);let u=(0,a.useCallback)(()=>{let t=o.trim();t&&!i&&(e(t),c(""))},[o,i,e]),h=(0,a.useCallback)(e=>{"Enter"===e.key&&(e.metaKey||e.ctrlKey)&&!e.nativeEvent.isComposing&&(e.preventDefault(),u())},[u]);return(0,n.jsxs)("div",{className:"flex items-end gap-2 border-t border-border bg-card px-3 py-2 pb-[max(0.5rem,env(safe-area-inset-bottom))]",children:[(0,n.jsx)("textarea",{ref:d,value:o,onChange:e=>c(e.target.value),onKeyDown:h,rows:1,placeholder:l("mobile.messagePlaceholder"),className:"flex-1 resize-none rounded-2xl border border-border bg-background px-4 py-2.5 text-base leading-snug outline-none focus:border-brand"}),s?(0,n.jsx)("button",{type:"button",onClick:t,"aria-label":l("mobile.stop"),className:"flex h-11 w-11 flex-shrink-0 items-center justify-center rounded-full bg-red-500 text-white active:scale-95",children:(0,n.jsx)(S.A,{className:"h-5 w-5",fill:"currentColor"})}):(0,n.jsx)("button",{type:"button",onClick:u,disabled:i||!o.trim(),"aria-label":l("mobile.send"),className:"flex h-11 w-11 flex-shrink-0 items-center justify-center rounded-full bg-brand text-white active:scale-95 disabled:opacity-40",children:(0,n.jsx)(C.A,{className:"h-5 w-5"})})]})}function E({cwd:e,initialSessionId:t,initialTitle:s,onBack:r,isActive:i=!0}){let[l,o]=(0,a.useState)([]),[c,d]=(0,a.useState)(null),[u,h]=(0,a.useState)(s??""),[f,m]=(0,a.useState)({}),x=(0,a.useRef)(null);(0,a.useEffect)(()=>{let s=g.tryPromise({try:async()=>{let t=await fetch(`/api/project-state?cwd=${encodeURIComponent(e)}`);return t.ok?await t.json():null},catch:e=>new w.uV({message:"loadProjectState failed",cause:e})});v.t4.runPromiseExit(s).then(e=>{if("Success"===e._tag&&e.value){let s=e.value;m({engine:s.engines?.[t],ollamaModel:s.ollamaModels?.[t],deepseekModel:s.deepseekModels?.[t]})}})},[e,t]);let[b,S]=(0,a.useState)(!1),C=(0,a.useRef)(!1);(0,a.useEffect)(()=>{C.current=b},[b]);let{isLoadingHistory:A,isLoadingMore:I,hasMoreHistory:R,loadMoreHistory:L,loadHistoryByCwdAndSessionId:P,loadedSessionId:T,loadedEngine:$}=(0,y.m)(l,o,c,{cwd:e,initialSessionId:t,onSessionId:d,onTitleChange:h,liveRunningRef:C}),D=f.engine??$??void 0,O=(0,a.useCallback)(()=>{},[]),{isLoading:V,apiRetryInfo:W,ptyNotice:_,handleSend:X,handleStop:H}=(0,k.e)(l,o,{sessionId:c,cwd:e,engine:D,chatMode:"sdk",planMode:!1,ollamaModel:f.ollamaModel,deepseekModel:f.deepseekModel,onSessionId:d,onFetchTitle:O}),B=T||c,U=!V&&!!B;(0,j.u)(B,o,U,D,{onRunningChange:e=>{C.current=e,S(e)},onComplete:()=>{B&&P(e,B,!0)}}),(0,a.useEffect)(()=>{U||S(!1)},[U]);let z=V||b,K=(0,a.useCallback)(e=>{X(e)},[X]);return(0,n.jsxs)("div",{className:"flex h-[100dvh] flex-col bg-card",children:[(0,n.jsxs)("div",{className:"flex flex-shrink-0 items-center gap-1 border-b border-border bg-card px-2 py-2 pt-[max(0.5rem,env(safe-area-inset-top))]",children:[(0,n.jsx)("button",{type:"button",onClick:r,"aria-label":"Back",className:"flex h-9 w-9 items-center justify-center rounded-lg text-muted-foreground active:bg-accent",children:(0,n.jsx)(p,{className:"h-6 w-6"})}),(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsx)("div",{className:"truncate text-sm font-medium",children:u||"…"}),(0,n.jsx)("div",{className:"truncate text-xs text-muted-foreground",children:e.split("/").pop()})]})]}),A?(0,n.jsx)("div",{className:"flex flex-1 items-center justify-center text-muted-foreground",children:"…"}):(0,n.jsx)(N.M,{ref:x,messages:l,isLoading:z,cwd:e,sessionId:c,engine:D,apiRetryInfo:W,ptyNotice:_,hasMoreHistory:R,isLoadingMore:I,onLoadMore:L,isActive:i}),(0,n.jsx)(M,{onSend:K,onStop:H,isRunning:z,disabled:z})]})}let A="cockpitMobileChat";function I({initialCwd:e,initialSessionId:t,initialSessions:s}){let[r,i]=(0,a.useState)(e&&t?{cwd:e,sessionId:t}:null),[l,o]=(0,a.useState)(!!(e&&t)),[c,d]=(0,a.useState)(0),[u,h]=(0,a.useState)(!1),[f,m]=(0,a.useState)(0),b=(0,a.useRef)(!1),p=(0,a.useRef)(null),g=(0,a.useRef)(l);g.current=l;let v=(0,a.useRef)(r);v.current=r;let w=(0,a.useRef)(f);w.current=f;let y=(0,a.useCallback)(()=>{v.current&&(o(!0),b.current||(window.history.pushState({[A]:v.current},""),b.current=!0))},[]),k=(0,a.useCallback)(()=>{o(!1),b.current&&(b.current=!1,window.history.back())},[]),j=(0,a.useCallback)(e=>{let t={cwd:e.cwd,sessionId:e.sessionId,title:e.title};i(t),o(!0),window.history.pushState({[A]:t},""),b.current=!0},[]),N=(0,a.useCallback)(()=>{try{localStorage.setItem("cockpit-force-desktop","1")}catch{}window.location.href="/"},[]);(0,a.useEffect)(()=>{e&&t&&(window.history.pushState({[A]:{cwd:e,sessionId:t}},""),b.current=!0)},[e,t]),(0,a.useEffect)(()=>{let e=e=>{let t=e.state?.[A];t?(i({cwd:t.cwd,sessionId:t.sessionId,title:t.title}),o(!0),b.current=!0):(o(!1),b.current=!1),d(0)};return window.addEventListener("popstate",e),()=>window.removeEventListener("popstate",e)},[]),(0,a.useEffect)(()=>{let e=p.current;if(!e)return;let t=new ResizeObserver(e=>{for(let t of e)m(t.contentRect.width)});return m(e.clientWidth),t.observe(e),()=>t.disconnect()},[]),(0,a.useEffect)(()=>{let e=p.current;if(!e)return;let t=0,s=0,n="?",a=e=>{1===e.touches.length&&(t=e.touches[0].clientX,s=e.touches[0].clientY,n="?")},r=a=>{if("v"===n||1!==a.touches.length)return;let r=a.touches[0].clientX-t,i=a.touches[0].clientY-s;if("?"===n){if(8>Math.abs(r)&&8>Math.abs(i)||"h"!=(n=Math.abs(r)>Math.abs(i)?"h":"v"))return;h(!0)}a.preventDefault();let l=w.current||e.clientWidth,o=!!v.current,c=r;g.current?(c<0&&(c=0),c>l&&(c=l)):((c>0||!o)&&(c=0),c<-l&&(c=-l)),d(c)},i=s=>{if("h"!==n){n="?";return}h(!1),d(0);let a=w.current||e.clientWidth,r=(s.changedTouches[0]?.clientX??t)-t,i=.25*a;g.current?r>i&&k():r<-i&&v.current&&y(),n="?"};return e.addEventListener("touchstart",a,{passive:!0}),e.addEventListener("touchmove",r,{passive:!1}),e.addEventListener("touchend",i,{passive:!0}),e.addEventListener("touchcancel",i,{passive:!0}),()=>{e.removeEventListener("touchstart",a),e.removeEventListener("touchmove",r),e.removeEventListener("touchend",i),e.removeEventListener("touchcancel",i)}},[y,k]);let S=l?-f:0;return(0,n.jsx)("div",{ref:p,className:"relative h-[100dvh] w-full overflow-hidden",style:{overscrollBehaviorX:"none",touchAction:"pan-y"},children:(0,n.jsxs)("div",{className:"flex h-full",style:{width:"200%",transform:f?`translateX(${S+c}px)`:l?"translateX(-50%)":"translateX(0)",transition:u?"none":"transform 220ms ease-out",willChange:"transform"},children:[(0,n.jsx)("div",{className:"h-full w-1/2 overflow-hidden",children:(0,n.jsx)(x,{onOpen:j,onUseDesktop:N,initialSessions:s})}),(0,n.jsx)("div",{className:"h-full w-1/2 overflow-hidden",children:r&&(0,n.jsx)(E,{cwd:r.cwd,initialSessionId:r.sessionId,initialTitle:r.title,onBack:k,isActive:l},`${r.cwd}-${r.sessionId}`)})]})})}function R(e){return(0,n.jsx)(I,{...e})}}},e=>{e.O(0,[8653,7330,8216,4281,3888,1332,2502,6784,217,8441,3794,7358],()=>e(e.s=12550)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6500,8974],{39823:(e,s,n)=>{Promise.resolve().then(n.bind(n,76288)),Promise.resolve().then(n.bind(n,47617)),Promise.resolve().then(n.bind(n,97335)),Promise.resolve().then(n.bind(n,76043)),Promise.resolve().then(n.bind(n,2228)),Promise.resolve().then(n.bind(n,42701)),Promise.resolve().then(n.bind(n,84310)),Promise.resolve().then(n.bind(n,83678)),Promise.resolve().then(n.bind(n,21484)),Promise.resolve().then(n.bind(n,24058)),Promise.resolve().then(n.bind(n,1700)),Promise.resolve().then(n.bind(n,76412)),Promise.resolve().then(n.bind(n,89039)),Promise.resolve().then(n.bind(n,63048))}},e=>{e.O(0,[8653,7330,8216,4281,3888,5004,277,2625,471,9428,6784,217,2032,2576,8441,3794,7358],()=>e(e.s=39823)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6500,8974],{39823:(e,s,n)=>{Promise.resolve().then(n.bind(n,76288)),Promise.resolve().then(n.bind(n,47617)),Promise.resolve().then(n.bind(n,97335)),Promise.resolve().then(n.bind(n,76043)),Promise.resolve().then(n.bind(n,2228)),Promise.resolve().then(n.bind(n,42701)),Promise.resolve().then(n.bind(n,84310)),Promise.resolve().then(n.bind(n,83678)),Promise.resolve().then(n.bind(n,21484)),Promise.resolve().then(n.bind(n,24058)),Promise.resolve().then(n.bind(n,1700)),Promise.resolve().then(n.bind(n,76412)),Promise.resolve().then(n.bind(n,89039)),Promise.resolve().then(n.bind(n,63048))}},e=>{e.O(0,[8653,7330,8216,4281,3888,5004,277,1332,2502,9428,6784,217,2032,2576,8441,3794,7358],()=>e(e.s=39823)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6500,8974],{39823:(e,s,n)=>{Promise.resolve().then(n.bind(n,76288)),Promise.resolve().then(n.bind(n,47617)),Promise.resolve().then(n.bind(n,97335)),Promise.resolve().then(n.bind(n,76043)),Promise.resolve().then(n.bind(n,2228)),Promise.resolve().then(n.bind(n,42701)),Promise.resolve().then(n.bind(n,84310)),Promise.resolve().then(n.bind(n,83678)),Promise.resolve().then(n.bind(n,21484)),Promise.resolve().then(n.bind(n,24058)),Promise.resolve().then(n.bind(n,1700)),Promise.resolve().then(n.bind(n,76412)),Promise.resolve().then(n.bind(n,89039)),Promise.resolve().then(n.bind(n,63048))}},e=>{e.O(0,[8653,7330,8216,4281,3888,5004,277,2625,471,9428,6784,217,2032,2576,8441,3794,7358],()=>e(e.s=39823)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6500,8974],{39823:(e,s,n)=>{Promise.resolve().then(n.bind(n,76288)),Promise.resolve().then(n.bind(n,47617)),Promise.resolve().then(n.bind(n,97335)),Promise.resolve().then(n.bind(n,76043)),Promise.resolve().then(n.bind(n,2228)),Promise.resolve().then(n.bind(n,42701)),Promise.resolve().then(n.bind(n,84310)),Promise.resolve().then(n.bind(n,83678)),Promise.resolve().then(n.bind(n,21484)),Promise.resolve().then(n.bind(n,24058)),Promise.resolve().then(n.bind(n,1700)),Promise.resolve().then(n.bind(n,76412)),Promise.resolve().then(n.bind(n,89039)),Promise.resolve().then(n.bind(n,63048))}},e=>{e.O(0,[8653,7330,8216,4281,3888,5004,277,1332,2502,9428,6784,217,2032,2576,8441,3794,7358],()=>e(e.s=39823)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2951],{15335:(e,t,r)=>{Promise.resolve().then(r.bind(r,99324)),Promise.resolve().then(r.bind(r,93975)),Promise.resolve().then(r.bind(r,19736)),Promise.resolve().then(r.bind(r,82032)),Promise.resolve().then(r.bind(r,28898)),Promise.resolve().then(r.bind(r,83519)),Promise.resolve().then(r.bind(r,62177)),Promise.resolve().then(r.bind(r,79968))},28898:(e,t,r)=>{"use strict";r.d(t,{ReviewIdentitySettings:()=>i});var n=r(95155),o=r(12115),s=r(79114);function i({identity:e}){let{t}=(0,s.Bd)(),[r,l]=(0,o.useState)(!1),[a,d]=(0,o.useState)(""),c=(0,o.useRef)(null);(0,o.useEffect)(()=>{if(!r)return;let e=e=>{c.current&&!c.current.contains(e.target)&&l(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[r]);let u=()=>{let t=a.trim();t&&t!==e.name&&e.confirmName(t),l(!1)};return(0,n.jsxs)("div",{className:"relative",ref:c,children:[(0,n.jsxs)("button",{onClick:()=>{r||d(e.name),l(!r)},className:"px-2 py-1 text-xs rounded hover:bg-accent transition-colors flex items-center gap-1",title:t("review.identitySettings"),children:[(0,n.jsx)("span",{className:"w-5 h-5 rounded-full bg-brand/20 text-brand flex items-center justify-center text-[10px] font-bold",children:e.name.charAt(0)}),(0,n.jsx)("span",{className:"text-muted-foreground",children:e.name})]}),r&&(0,n.jsxs)("div",{className:"absolute right-0 top-full mt-1 w-56 bg-card border border-border rounded-lg shadow-lg p-3 z-50",children:[(0,n.jsx)("div",{className:"text-xs text-muted-foreground mb-2",children:t("review.reviewNickname")}),(0,n.jsx)("input",{type:"text",value:a,onChange:e=>d(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.nativeEvent.isComposing||u()},className:"w-full px-2 py-1 text-sm bg-secondary border border-border rounded focus:outline-none focus:border-brand",autoFocus:!0}),(0,n.jsxs)("div",{className:"flex items-center gap-2 mt-2",children:[(0,n.jsx)("button",{onClick:()=>{e.randomize(),l(!1)},className:"px-2 py-1 text-xs rounded hover:bg-accent transition-colors text-muted-foreground",children:t("review.random")}),(0,n.jsx)("div",{className:"flex-1"}),(0,n.jsx)("button",{onClick:()=>l(!1),className:"px-2 py-1 text-xs rounded hover:bg-accent transition-colors text-muted-foreground",children:t("common.cancel")}),(0,n.jsx)("button",{onClick:u,className:"px-2 py-1 text-xs rounded bg-brand text-white hover:bg-brand/90 transition-colors",children:t("common.save")})]})]})]})}},62177:(e,t,r)=>{"use strict";r.d(t,{ReviewPage:()=>I});var n=r(95155),o=r(12115),s=r(79114),i=r(13219),l=r(47176),a=r(3238),d=r(97251);function c({selectedText:e,position:t,onSubmit:r,onCancel:i}){let{t:l}=(0,s.Bd)(),[a,d]=(0,o.useState)(""),u=(0,o.useRef)(null),x=(0,o.useRef)(null);(0,o.useEffect)(()=>{u.current?.focus()},[]),(0,o.useEffect)(()=>{let e=e=>{"Escape"===e.key&&i()};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[i]),(0,o.useEffect)(()=>{let e=e=>{!x.current||x.current.contains(e.target)||a.trim()||i()};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[a,i]);let m=()=>{let e=a.trim();e&&r(e)},h=e.length>60?e.slice(0,57)+"...":e;return(0,n.jsxs)("div",{ref:x,className:"absolute z-50 w-96 bg-card border border-border rounded-lg shadow-lg",style:{top:t.top,left:Math.max(8,t.left-192)},children:[(0,n.jsxs)("div",{className:"px-3 pt-3 pb-2",children:[(0,n.jsx)("div",{className:"text-xs text-muted-foreground mb-1",children:l("review.selectedText")}),(0,n.jsx)("div",{className:"text-xs bg-yellow-500/10 border-l-2 border-yellow-500 px-2 py-1 rounded-r truncate",children:h})]}),(0,n.jsx)("div",{className:"px-3 pb-2",children:(0,n.jsx)("textarea",{ref:u,value:a,onChange:e=>d(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),m())},placeholder:l("review.addCommentPlaceholder"),className:"w-full px-2 py-1.5 text-sm bg-secondary border border-border rounded resize-none focus:outline-none focus:border-brand",rows:4})}),(0,n.jsxs)("div",{className:"px-3 pb-3 flex items-center justify-between",children:[(0,n.jsx)("span",{className:"text-[10px] text-muted-foreground",children:l("review.enterSubmitHint")}),(0,n.jsxs)("div",{className:"flex gap-1",children:[(0,n.jsx)("button",{onClick:i,className:"px-2 py-1 text-xs rounded hover:bg-accent transition-colors text-muted-foreground",children:l("common.cancel")}),(0,n.jsx)("button",{onClick:m,disabled:!a.trim(),className:"px-2 py-1 text-xs rounded bg-brand text-white hover:bg-brand/90 transition-colors disabled:opacity-40",children:l("review.commentBtn")})]})]})]})}let u={bg:"rgba(234, 179, 8, 0.15)",bgActive:"rgba(234, 179, 8, 0.4)",bgPending:"rgba(234, 179, 8, 0.3)",border:"rgba(234, 179, 8, 0.7)",borderPending:"rgba(234, 179, 8, 0.9)"},x={bg:"rgba(234, 179, 8, 0.1)",bgActive:"rgba(234, 179, 8, 0.3)",bgPending:"rgba(234, 179, 8, 0.2)",border:"rgba(234, 179, 8, 0.5)",borderPending:"rgba(234, 179, 8, 0.7)"};function m({rects:e,activeCommentId:t,pendingCommentId:r,isDark:o}){if(0===e.length)return null;let s=o?x:u;return(0,n.jsx)("div",{style:{position:"absolute",top:0,left:0,width:"100%",height:0,overflow:"visible",pointerEvents:"none",zIndex:5},children:e.map((e,o)=>{let i=e.commentId===t,l=e.commentId===r,a=s.bg;return l?a=s.bgPending:i&&(a=s.bgActive),(0,n.jsx)("div",{"data-comment-id":e.commentId,style:{position:"absolute",top:e.top,left:e.left,width:e.width,height:e.height,backgroundColor:a,borderBottom:`1px solid ${l?s.borderPending:s.border}`,borderRadius:1,pointerEvents:"none"}},`${e.commentId}-${o}`)})})}var h=r(99324);let f=[d.W];function p({content:e,comments:t,activeCommentId:r,isActive:s,onAddComment:d,onHighlightClick:u,scrollToHighlightRef:x}){let{resolvedTheme:v}=(0,a.D)(),g=(0,o.useRef)(null),b=(0,o.useRef)(null),[w,j]=(0,o.useState)(null),y=(0,o.useMemo)(()=>w?[...t,{id:"__pending__",author:"",authorId:"",content:"",anchor:w.anchor,createdAt:0,replies:[]}]:t,[t,w]),{rects:k,scrollToHighlight:C}=(0,h.useReviewHighlights)(g,b,y,r);(0,o.useEffect)(()=>{x.current=C},[C,x]);let N=(0,o.useRef)(k);(0,o.useEffect)(()=>{N.current=k},[k]);let E=(0,o.useCallback)(e=>{let t=window.getSelection(),r=t&&!t.isCollapsed;if(r&&s&&g.current){let r=t.getRangeAt(0);if(g.current.contains(r.startContainer)&&g.current.contains(r.endContainer)){let n=function(e,t){let r=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),n=0,o=-1,s=-1;for(;r.nextNode();){let e=r.currentNode,i=e.textContent?.length||0;if(e===t.startContainer&&(o=n+t.startOffset),e===t.endContainer){s=n+t.endOffset;break}n+=i}if(-1===o||-1===s||o>=s)return null;let i=e.textContent?.slice(o,s)||"";return i.trim()?{startOffset:o,endOffset:s,selectedText:i}:null}(g.current,r);if(n){let r=b.current??g.current.parentElement,o=r.getBoundingClientRect();j({anchor:n,position:{top:e.clientY-o.top+r.scrollTop+8,left:e.clientX-o.left}}),t.removeAllRanges();return}}}if(!r&&!w){let t=b.current;if(!t)return;let r=t.getBoundingClientRect(),n=e.clientX-r.left+t.scrollLeft,o=e.clientY-r.top+t.scrollTop;for(let e of N.current)if("__pending__"!==e.commentId&&n>=e.left&&n<=e.left+e.width&&o>=e.top&&o<=e.top+e.height)return void u(e.commentId)}},[s,w,u]),R=(0,o.useCallback)(e=>{w&&(d(e,w.anchor),j(null),window.getSelection()?.removeAllRanges())},[w,d]),S=(0,o.useCallback)(()=>{j(null),window.getSelection()?.removeAllRanges()},[]);return(0,n.jsxs)("div",{className:"h-full flex bg-card",children:[(0,n.jsx)(l.l,{content:e,containerRef:b}),(0,n.jsxs)("div",{ref:b,className:"flex-1 overflow-auto relative",onMouseUp:E,children:[(0,n.jsx)("div",{ref:g,className:"p-6 review-markdown-container",children:(0,n.jsx)(i.T,{content:e,rehypePlugins:f})}),(0,n.jsx)(m,{rects:k,activeCommentId:r,pendingCommentId:w?"__pending__":null,isDark:"dark"===v}),w&&(0,n.jsx)(c,{selectedText:w.anchor.selectedText,position:w.position,onSubmit:R,onCancel:S})]})]})}var v=r(69809);function g(e){let t=new Date(e),r=Math.floor((new Date().getTime()-t.getTime())/6e4);if(r<1)return v.A.t("common.justNow");if(r<60)return v.A.t("common.minutesAgo",{count:r});let n=Math.floor(r/60);if(n<24)return v.A.t("common.hoursAgo",{count:n});let o=Math.floor(n/24);return o<7?v.A.t("common.daysAgo",{count:o}):t.toLocaleDateString()}let b=(0,o.forwardRef)(function({comment:e,isActive:t,isOwnComment:r,isAdmin:i,currentAuthorId:l,canInteract:a,userNameMap:d,onClick:c,onDelete:u,onEdit:x,onToggleClosed:m,onAddReply:h,onDeleteReply:f,onEditReply:p},v){let{t:b}=(0,s.Bd)(),w=(e,t)=>d[e]||t,[j,y]=(0,o.useState)(""),[k,C]=(0,o.useState)(!1),[N,E]=(0,o.useState)(!1),[R,S]=(0,o.useState)(""),[I,L]=(0,o.useState)(null),[P,A]=(0,o.useState)(""),T=()=>{let e=j.trim();e&&(h(e),y(""),C(!1))},M=()=>{let t=R.trim();t&&t!==e.content&&x(t),E(!1)},D=()=>{if(!I)return;let t=P.trim(),r=e.replies.find(e=>e.id===I);!t||r&&t===r.content||p(I,t),L(null)},_=e.anchor.selectedText.length>80?e.anchor.selectedText.slice(0,77)+"...":e.anchor.selectedText,F=i||r||a;return e.closed?(0,n.jsxs)("div",{ref:v,className:"rounded-lg border border-border/50 bg-card/50 opacity-60 hover:opacity-80 transition-all cursor-pointer px-3 py-2 flex items-center gap-2",onClick:c,children:[(0,n.jsx)("span",{className:"w-4 h-4 rounded-full bg-brand/20 text-brand flex items-center justify-center text-[9px] font-bold flex-shrink-0",children:w(e.authorId,e.author).charAt(0)}),(0,n.jsx)("span",{className:"text-xs text-muted-foreground truncate flex-1",children:_}),(0,n.jsx)("span",{className:"text-[10px] text-muted-foreground/50 flex-shrink-0",children:b("review.closedLabel")}),F&&(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),m(!1)},className:"text-[10px] text-muted-foreground hover:text-foreground transition-colors flex-shrink-0",title:b("review.reopenReview"),children:b("review.reopen")}),(r&&a||i)&&(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),u()},className:"text-[10px] text-muted-foreground hover:text-red-500 transition-colors flex-shrink-0",title:b("review.deleteComment"),children:b("common.delete")})]}):(0,n.jsxs)("div",{ref:v,className:`rounded-lg border transition-all cursor-pointer ${t?"border-brand bg-brand/5 shadow-sm":"border-border bg-card hover:border-muted-foreground/30"}`,onClick:c,children:[(0,n.jsx)("div",{className:"px-3 pt-3 pb-1",children:(0,n.jsx)("div",{className:"text-xs bg-yellow-500/10 border-l-2 border-yellow-500 px-2 py-1 rounded-r text-muted-foreground truncate",children:_})}),(0,n.jsxs)("div",{className:"px-3 pt-2 flex items-center gap-2",children:[(0,n.jsx)("span",{className:"w-5 h-5 rounded-full bg-brand/20 text-brand flex items-center justify-center text-[10px] font-bold flex-shrink-0",children:w(e.authorId,e.author).charAt(0)}),(0,n.jsx)("span",{className:"text-xs font-medium",children:w(e.authorId,e.author)}),(0,n.jsx)("span",{className:"text-[10px] text-muted-foreground",children:g(e.createdAt)}),(0,n.jsx)("div",{className:"flex-1"}),!N&&(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[F&&(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),m(!0)},className:"text-[10px] text-muted-foreground hover:text-foreground transition-colors",title:b("review.closeComment"),children:b("review.closeComment")}),r&&a&&(0,n.jsx)("button",{onClick:t=>{t.stopPropagation(),S(e.content),E(!0)},className:"text-[10px] text-muted-foreground hover:text-foreground transition-colors",title:b("review.editComment"),children:b("common.edit")}),(r&&a||i)&&(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),u()},className:"text-[10px] text-muted-foreground hover:text-red-500 transition-colors",title:b("review.deleteComment"),children:b("common.delete")})]})]}),(0,n.jsx)("div",{className:"px-3 pt-1 pb-2",children:N?(0,n.jsxs)("div",{onClick:e=>e.stopPropagation(),children:[(0,n.jsx)("textarea",{value:R,onChange:e=>S(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),M()),"Escape"===e.key&&E(!1)},className:"w-full px-2 py-1.5 text-sm bg-secondary border border-border rounded resize-none focus:outline-none focus:border-brand",rows:3,autoFocus:!0}),(0,n.jsxs)("div",{className:"flex items-center justify-end gap-1 mt-1",children:[(0,n.jsx)("button",{onClick:()=>E(!1),className:"px-2 py-0.5 text-xs rounded hover:bg-accent transition-colors text-muted-foreground",children:b("common.cancel")}),(0,n.jsx)("button",{onClick:M,disabled:!R.trim(),className:"px-2 py-0.5 text-xs rounded bg-brand text-white hover:bg-brand/90 transition-colors disabled:opacity-40",children:b("common.save")})]})]}):(0,n.jsxs)("div",{className:"text-sm whitespace-pre-wrap",children:[e.content,e.edited&&(0,n.jsx)("span",{className:"text-[10px] text-muted-foreground ml-1",children:b("review.edited")})]})}),e.replies.length>0&&(0,n.jsx)("div",{className:"mx-3 border-t border-border",children:e.replies.map(e=>(0,n.jsxs)("div",{className:"py-2 border-b border-border last:border-b-0",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("span",{className:"w-4 h-4 rounded-full bg-accent text-muted-foreground flex items-center justify-center text-[9px] font-bold flex-shrink-0",children:w(e.authorId,e.author).charAt(0)}),(0,n.jsx)("span",{className:"text-xs font-medium",children:w(e.authorId,e.author)}),(0,n.jsx)("span",{className:"text-[10px] text-muted-foreground",children:g(e.createdAt)}),(0,n.jsx)("div",{className:"flex-1"}),I!==e.id&&(e.authorId===l&&a||i)&&(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[e.authorId===l&&a&&(0,n.jsx)("button",{onClick:t=>{var r;t.stopPropagation(),r=e.id,A(e.content),L(r)},className:"text-[10px] text-muted-foreground hover:text-foreground transition-colors",title:b("review.editReply"),children:b("common.edit")}),(0,n.jsx)("button",{onClick:t=>{t.stopPropagation(),f(e.id)},className:"text-[10px] text-muted-foreground hover:text-red-500 transition-colors",title:b("review.deleteReply"),children:b("common.delete")})]})]}),I===e.id?(0,n.jsxs)("div",{className:"mt-1 pl-6",onClick:e=>e.stopPropagation(),children:[(0,n.jsx)("textarea",{value:P,onChange:e=>A(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),D()),"Escape"===e.key&&L(null)},className:"w-full px-2 py-1 text-sm bg-secondary border border-border rounded resize-none focus:outline-none focus:border-brand",rows:2,autoFocus:!0}),(0,n.jsxs)("div",{className:"flex items-center justify-end gap-1 mt-1",children:[(0,n.jsx)("button",{onClick:()=>L(null),className:"px-2 py-0.5 text-xs rounded hover:bg-accent transition-colors text-muted-foreground",children:b("common.cancel")}),(0,n.jsx)("button",{onClick:D,disabled:!P.trim(),className:"px-2 py-0.5 text-xs rounded bg-brand text-white hover:bg-brand/90 transition-colors disabled:opacity-40",children:b("common.save")})]})]}):(0,n.jsxs)("div",{className:"text-sm mt-0.5 pl-6 whitespace-pre-wrap",children:[e.content,e.edited&&(0,n.jsx)("span",{className:"text-[10px] text-muted-foreground ml-1",children:b("review.edited")})]})]},e.id))}),(0,n.jsx)("div",{className:"px-3 pb-2 pt-1",children:k?(0,n.jsxs)("div",{className:"mt-1",onClick:e=>e.stopPropagation(),children:[(0,n.jsx)("textarea",{value:j,onChange:e=>y(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),T()),"Escape"===e.key&&C(!1)},placeholder:b("review.replyPlaceholder"),className:"w-full px-2 py-1 text-sm bg-secondary border border-border rounded resize-none focus:outline-none focus:border-brand",rows:2,autoFocus:!0}),(0,n.jsxs)("div",{className:"flex items-center justify-end gap-1 mt-1",children:[(0,n.jsx)("button",{onClick:()=>C(!1),className:"px-2 py-0.5 text-xs rounded hover:bg-accent transition-colors text-muted-foreground",children:b("common.cancel")}),(0,n.jsx)("button",{onClick:T,disabled:!j.trim(),className:"px-2 py-0.5 text-xs rounded bg-brand text-white hover:bg-brand/90 transition-colors disabled:opacity-40",children:b("review.reply")})]})]}):a&&(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),C(!0)},className:"text-xs text-muted-foreground hover:text-foreground transition-colors",children:b("review.reply")})})]})});function w({comments:e,activeCommentId:t,currentAuthorId:r,isActive:i,isAdmin:l,userNameMap:a,onCommentClick:d,onNavigateComment:c,onDeleteComment:u,onEditComment:x,onToggleCommentClosed:m,onAddReply:h,onDeleteReply:f,onEditReply:p,scrollToCommentRef:v}){let{t:g}=(0,s.Bd)(),j=(0,o.useRef)(new Map),y=(0,o.useRef)(null),k=(0,o.useCallback)(e=>{let t=j.current.get(e);t&&t.scrollIntoView({behavior:"smooth",block:"center"})},[]);(0,o.useEffect)(()=>{v.current=k},[k,v]);let C=[...e].sort((e,t)=>e.anchor.startOffset-t.anchor.startOffset);return(0,n.jsxs)("div",{ref:y,className:"h-full flex flex-col bg-card",children:[(0,n.jsxs)("div",{className:"px-4 py-2 bg-secondary border-b border-border flex-shrink-0 flex items-center",children:[(0,n.jsx)("span",{className:"text-xs text-muted-foreground",children:0===e.length?g("review.selectTextToComment"):t?g("review.commentsNavCount",{current:C.findIndex(e=>e.id===t)+1,total:e.length}):g("review.commentsCount",{count:e.length})}),e.length>0&&(0,n.jsxs)("div",{className:"flex items-center gap-1 ml-2",children:[(0,n.jsxs)("button",{onClick:()=>c("prev"),className:"px-1.5 py-0.5 text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors flex items-center gap-0.5",title:g("review.prevComment"),children:[(0,n.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("polyline",{points:"15 18 9 12 15 6"})}),g("review.prevComment")]}),(0,n.jsxs)("button",{onClick:()=>c("next"),className:"px-1.5 py-0.5 text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors flex items-center gap-0.5",title:g("review.nextComment"),children:[g("review.nextComment"),(0,n.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("polyline",{points:"9 18 15 12 9 6"})})]})]})]}),(0,n.jsx)("div",{className:"flex-1 overflow-auto",children:0===C.length?(0,n.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground text-sm",children:(0,n.jsxs)("div",{className:"text-center",children:[(0,n.jsx)("div",{className:"text-2xl mb-2",children:"\uD83D\uDCAC"}),(0,n.jsx)("div",{children:g("review.selectTextHint")})]})}):(0,n.jsx)("div",{className:"p-3 space-y-3",children:C.map(e=>(0,n.jsx)(b,{ref:t=>{t?j.current.set(e.id,t):j.current.delete(e.id)},comment:e,isActive:e.id===t,isOwnComment:e.authorId===r,isAdmin:l,currentAuthorId:r,canInteract:i,userNameMap:a,onClick:()=>d(e.id),onDelete:()=>u(e.id),onEdit:t=>x(e.id,t),onToggleClosed:t=>m(e.id,t),onAddReply:t=>h(e.id,t),onDeleteReply:t=>f(e.id,t),onEditReply:(t,r)=>p(e.id,t,r)},e.id))})})]})}var j=r(28898),y=r(83519);function k({currentName:e,onConfirm:t,onSkip:r}){let{t:i}=(0,s.Bd)(),[l,a]=(0,o.useState)(e),d=(0,o.useRef)(null);(0,o.useEffect)(()=>{d.current?.select()},[]);let c=()=>{let e=l.trim();e&&t(e)};return(0,n.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:(0,n.jsxs)("div",{className:"bg-card border border-border rounded-xl shadow-2xl w-80 p-5",children:[(0,n.jsx)("h2",{className:"text-base font-semibold mb-1",children:i("review.setNickname")}),(0,n.jsx)("p",{className:"text-xs text-muted-foreground mb-4",children:i("review.nicknameHint")}),(0,n.jsx)("input",{ref:d,type:"text",value:l,onChange:e=>a(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.nativeEvent.isComposing||c(),"Escape"===e.key&&r()},placeholder:i("review.nicknamePlaceholder"),maxLength:20,className:"w-full px-3 py-2 text-sm bg-secondary border border-border rounded-lg focus:outline-none focus:border-brand",autoFocus:!0}),(0,n.jsxs)("div",{className:"flex items-center justify-end gap-2 mt-4",children:[(0,n.jsx)("button",{onClick:r,className:"px-3 py-1.5 text-xs rounded-lg hover:bg-accent transition-colors text-muted-foreground",children:i("review.skipForNow")}),(0,n.jsx)("button",{onClick:c,disabled:!l.trim(),className:"px-4 py-1.5 text-xs rounded-lg bg-brand text-white hover:bg-brand/90 transition-colors disabled:opacity-40",children:i("common.save")})]})]})})}var C=r(19736),N=r(93975),E=r(34075),R=r(86957),S=r(90420);function I({reviewId:e}){let{t}=(0,s.Bd)(),[r,i]=(0,o.useState)(e),[l,d]=(0,o.useState)(null),[c,u]=(0,o.useState)(!0),[x,m]=(0,o.useState)(null),[h,f]=(0,o.useState)(null),[v,g]=(0,o.useState)(!1),b=(0,N.useReviewIdentity)(),{resolvedTheme:L,setTheme:P}=(0,a.D)(),[A,T]=(0,o.useState)({}),[M,D]=(0,o.useState)(!1),[_,F]=(0,o.useState)(!1),B=(0,o.useCallback)(async()=>{let e=await R.t4.runPromiseExit((0,S.BL)());if("Success"===e._tag){let t={};for(let[r,n]of Object.entries(e.value.users))t[r]=n.name;T(t)}},[]);(0,o.useEffect)(()=>{B()},[B]),(0,o.useEffect)(()=>{b.loading||!b.authorId||b.nameConfirmed||D(!0)},[b.loading,b.authorId,b.nameConfirmed]),(0,o.useEffect)(()=>{g("localhost"===window.location.hostname||"127.0.0.1"===window.location.hostname)},[]),(0,o.useEffect)(()=>{let e=localStorage.getItem("theme");e&&"system"!==e||P("dark")},[P]);let O=(0,o.useRef)(void 0),W=(0,o.useRef)(void 0),z=(0,o.useCallback)(e=>{e!==r&&(i(e),m(null),f(null),window.history.replaceState(null,"",`/review/${e}`))},[r]),$=(0,o.useCallback)(async()=>{let e=await R.t4.runPromiseExit((0,S.JK)(r));if("Success"===e._tag)d(e.value.review),m(null);else{let r="Fail"===e.cause._tag?e.cause.error:null;r&&"NotFoundError"===r._tag?m(t("review.reviewNotExist")):r&&"AppError"===r._tag?m(t("review.loadFailed")):m(t("review.networkError"))}u(!1)},[r,t]);(0,o.useEffect)(()=>{$()},[$]),(0,o.useEffect)(()=>{let e=setInterval(()=>{$(),B()},1e4);return()=>clearInterval(e)},[$,B]);let H=(0,o.useCallback)(async(e,r)=>{"Success"===(await R.t4.runPromiseExit(e))._tag?await $():(0,E.oR)(t(r),"error")},[$,t]),K=(0,o.useCallback)(async(e,t)=>{b.authorId&&await H((0,S.dU)(r,{author:b.name,authorId:b.authorId,content:e,anchor:t}),"toast.addCommentFailed")},[r,b,H]),V=(0,o.useCallback)(e=>H((0,S.jw)(r,e),"toast.deleteCommentFailed"),[r,H]),Y=(0,o.useCallback)((e,t)=>H((0,S.Y8)(r,{commentId:e,content:t}),"toast.editCommentFailed"),[r,H]),q=(0,o.useCallback)((e,t)=>H((0,S.Y8)(r,{commentId:e,closed:t}),"toast.operationFailed"),[r,H]),U=(0,o.useCallback)(async(e,t)=>{b.authorId&&await H((0,S.mu)(r,{commentId:e,author:b.name,authorId:b.authorId,content:t}),"toast.addReplyFailed")},[r,b,H]),X=(0,o.useCallback)((e,t)=>H((0,S.i7)(r,e,t),"toast.deleteReplyFailed"),[r,H]),J=(0,o.useCallback)((e,t,n)=>H((0,S.vy)(r,{commentId:e,replyId:t,content:n}),"toast.editReplyFailed"),[r,H]),G=(0,o.useCallback)(async()=>{let e=await R.t4.runPromiseExit((0,S._c)());if("Success"===e._tag){let n=e.value.shareBase?`${e.value.shareBase}/review/${r}`:window.location.href;try{await navigator.clipboard.writeText(n),(0,E.oR)(t("toast.linkCopied"),"success")}catch{(0,E.oR)(t("toast.copyFailed"),"error")}}else(0,E.oR)(t("toast.copyFailed"),"error")},[r,t]),Q=(0,o.useCallback)(e=>{f(e),W.current?.(e)},[]),Z=(0,o.useCallback)(e=>{f(e),O.current?.(e)},[]),ee=(0,o.useCallback)(e=>{let t;if(!l||0===l.comments.length)return;let r=[...l.comments].sort((e,t)=>e.anchor.startOffset-t.anchor.startOffset),n=h?r.findIndex(e=>e.id===h):-1;t="next"===e?n<r.length-1?n+1:0:n>0?n-1:r.length-1;let o=r[t];f(o.id),W.current?.(o.id),O.current?.(o.id)},[l,h]);return(0,n.jsxs)("div",{className:"h-screen flex flex-col bg-background text-foreground overflow-hidden",children:[M&&(0,n.jsx)(k,{currentName:b.name,onConfirm:e=>{b.confirmName(e),D(!1),B()},onSkip:()=>D(!1)}),l&&(0,n.jsx)(C.ReviewCommentsListModal,{isOpen:_,onClose:()=>F(!1),comments:l.comments,reviewTitle:l.title,userNameMap:A,onCommentClick:e=>{f(e),W.current?.(e),O.current?.(e)}}),l&&(0,n.jsx)("div",{className:"py-2 bg-secondary border-b border-border flex-shrink-0 flex justify-center",children:(0,n.jsxs)("div",{className:"w-full max-w-[1800px] px-4 flex items-center gap-3",children:[(0,n.jsx)("h1",{className:"text-sm font-semibold truncate",children:l.title}),(0,n.jsx)("span",{className:"text-[11px] text-muted-foreground flex-shrink-0",children:t("review.updatedAt",{date:new Date(l.updatedAt||l.createdAt).toLocaleDateString(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})})}),(0,n.jsx)("span",{className:"flex-1"}),!v&&(0,n.jsx)("span",{className:`px-2 py-0.5 text-xs rounded-full ${l.active?"bg-green-500/15 text-green-600 dark:text-green-400":"bg-muted text-muted-foreground"}`,children:l.active?t("review.active"):t("review.closed")}),(0,n.jsxs)("button",{onClick:()=>F(!0),className:"px-2 py-1 text-xs rounded hover:bg-accent transition-colors text-muted-foreground flex items-center gap-1",title:t("review.viewAllComments"),children:[(0,n.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("path",{d:"M7 8h10M7 12h4m1 8l-4-4H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-3l-4 4z"})}),t("review.viewCommentBtn")]}),(0,n.jsx)("button",{onClick:G,className:"px-2 py-1 text-xs rounded hover:bg-accent transition-colors text-muted-foreground",children:t("review.copyLink")}),(0,n.jsx)("button",{onClick:()=>P("dark"===L?"light":"dark"),className:"p-1 text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",title:"dark"===L?t("settings.switchLight"):t("settings.switchDark"),children:"dark"===L?(0,n.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"5"}),(0,n.jsx)("line",{x1:"12",y1:"1",x2:"12",y2:"3"}),(0,n.jsx)("line",{x1:"12",y1:"21",x2:"12",y2:"23"}),(0,n.jsx)("line",{x1:"4.22",y1:"4.22",x2:"5.64",y2:"5.64"}),(0,n.jsx)("line",{x1:"18.36",y1:"18.36",x2:"19.78",y2:"19.78"}),(0,n.jsx)("line",{x1:"1",y1:"12",x2:"3",y2:"12"}),(0,n.jsx)("line",{x1:"21",y1:"12",x2:"23",y2:"12"}),(0,n.jsx)("line",{x1:"4.22",y1:"19.78",x2:"5.64",y2:"18.36"}),(0,n.jsx)("line",{x1:"18.36",y1:"5.64",x2:"19.78",y2:"4.22"})]}):(0,n.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"})})}),(0,n.jsx)(j.ReviewIdentitySettings,{identity:b})]})}),(0,n.jsx)("div",{className:"flex-1 flex justify-center overflow-hidden",children:(0,n.jsxs)("div",{className:"w-full max-w-[1800px] flex overflow-hidden",children:[(0,n.jsx)(y.ReviewListPanel,{currentReviewId:r,onSelect:z,readOnly:!v,refreshTrigger:l?.comments.length,onViewComments:e=>{e!==r&&z(e),F(!0)}}),c?(0,n.jsx)("div",{className:"flex-1 flex items-center justify-center",children:(0,n.jsx)("div",{className:"text-muted-foreground",children:t("common.loading")})}):x||!l?(0,n.jsx)("div",{className:"flex-1 flex items-center justify-center",children:(0,n.jsxs)("div",{className:"text-center",children:[(0,n.jsx)("div",{className:"text-xl mb-2",children:x||t("review.reviewNotFound")}),(0,n.jsx)("div",{className:"text-sm text-muted-foreground",children:t("review.checkLink")})]})}):(0,n.jsxs)("div",{className:"flex-1 flex overflow-hidden",children:[(0,n.jsx)("div",{className:"flex-1 h-full border-r border-border overflow-hidden",children:(0,n.jsx)(p,{content:l.content,comments:l.comments,activeCommentId:h,isActive:l.active,onAddComment:K,onHighlightClick:Z,scrollToHighlightRef:W})}),(0,n.jsx)("div",{className:"w-[360px] h-full overflow-hidden flex-shrink-0",children:(0,n.jsx)(w,{comments:l.comments,activeCommentId:h,currentAuthorId:b.authorId,isActive:l.active,isAdmin:v,userNameMap:A,onCommentClick:Q,onNavigateComment:ee,onDeleteComment:V,onEditComment:Y,onToggleCommentClosed:q,onAddReply:U,onDeleteReply:X,onEditReply:J,scrollToCommentRef:O})})]})]})})]})}},83519:(e,t,r)=>{"use strict";r.d(t,{ReviewListPanel:()=>d});var n=r(95155),o=r(12115),s=r(79114),i=r(86957),l=r(49433),a=r(90420);function d({currentReviewId:e,onSelect:t,readOnly:r,refreshTrigger:c,onViewComments:u}){let{t:x}=(0,s.Bd)(),[m,h]=(0,o.useState)([]),[f,p]=(0,o.useState)(null),[v,g]=(0,o.useState)(null),[b,w]=(0,o.useState)(!1),[j,y]=(0,o.useState)(null),k=(0,o.useRef)(null),[C,N]=(0,o.useState)(null),E=(0,o.useCallback)(async()=>{let e=await i.t4.runPromiseExit((0,a.Y_)());"Success"===e._tag&&h(e.value.reviews??[])},[]);(0,o.useEffect)(()=>{queueMicrotask(()=>E())},[E]),(0,o.useEffect)(()=>{queueMicrotask(()=>E())},[e,c,E]);let R=(0,o.useCallback)(async(e,t,r)=>{e.stopPropagation(),v||(g(t),"Success"===(await i.t4.runPromiseExit((0,a.Gm)(t,{active:!r})))._tag&&h(e=>e.map(e=>e.id===t?{...e,active:!r}:e)),g(null))},[v]),S=(0,o.useCallback)(async(r,n)=>{if(r.stopPropagation(),!f){if(p(n),"Success"===(await i.t4.runPromiseExit((0,a.Wr)(n)))._tag&&(h(e=>e.filter(e=>e.id!==n)),n===e)){let e=m.filter(e=>e.id!==n);e.length>0&&t(e[0].id)}p(null)}},[f,e,m,t]),I=(0,o.useCallback)((e,t)=>{k.current=t,e.dataTransfer.effectAllowed="move";let r=e.currentTarget;requestAnimationFrame(()=>r.classList.add("opacity-30"))},[]),L=(0,o.useCallback)(e=>{k.current=null,N(null),e.currentTarget instanceof HTMLElement&&e.currentTarget.classList.remove("opacity-30")},[]),P=(0,o.useCallback)((e,t)=>{e.preventDefault(),e.dataTransfer.dropEffect="move",k.current&&k.current!==t&&N(t)},[]),A=(0,o.useCallback)(async(e,t)=>{e.preventDefault(),N(null);let r=k.current;k.current=null,r&&r!==t&&h(e=>{let n=[...e],o=n.findIndex(e=>e.id===r),s=n.findIndex(e=>e.id===t);if(-1===o||-1===s)return e;let[d]=n.splice(o,1);n.splice(s,0,d);let c=n.map(e=>e.id);return i.t4.runFork((0,a.z1)(c).pipe(l.orElse(()=>l.void))),n})},[]),T=r?m.filter(e=>e.active):m,M=!r;return b?(0,n.jsxs)("div",{className:"h-full flex flex-col items-center bg-secondary/50 w-9 flex-shrink-0 border-r border-border",children:[(0,n.jsx)("button",{onClick:()=>w(!1),className:"p-1.5 mt-2 text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",title:x("review.expandList"),children:(0,n.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("polyline",{points:"9 18 15 12 9 6"})})}),(0,n.jsx)("span",{className:"text-[10px] text-muted-foreground/50 mt-2",style:{writingMode:"vertical-rl"},children:r?x("review.nDocs",{count:T.length}):x("review.nReviews",{count:T.length})})]}):(0,n.jsxs)("div",{className:"h-full flex flex-col bg-secondary/50 w-[200px] flex-shrink-0 border-r border-border",children:[(0,n.jsxs)("div",{className:"px-3 py-2 border-b border-border flex-shrink-0 flex items-center justify-between",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:r?x("review.docList"):x("review.allReviewsList")}),(0,n.jsx)("span",{className:"text-xs text-muted-foreground/60 ml-1.5",children:T.length})]}),(0,n.jsx)("button",{onClick:()=>w(!0),className:"p-0.5 text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",title:x("review.collapseList"),children:(0,n.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("polyline",{points:"15 18 9 12 15 6"})})})]}),(0,n.jsxs)("div",{className:"flex-1 overflow-y-auto",children:[T.map(o=>(0,n.jsxs)("div",{draggable:M,onDragStart:M?e=>I(e,o.id):void 0,onDragEnd:M?L:void 0,onDragOver:M?e=>P(e,o.id):void 0,onDrop:M?e=>A(e,o.id):void 0,onMouseEnter:e=>{let t=e.currentTarget.getBoundingClientRect();y({id:o.id,text:o.title,top:t.top+t.height/2,left:t.right})},onMouseLeave:()=>y(e=>e?.id===o.id?null:e),onClick:()=>t(o.id),className:`group px-3 py-2 cursor-pointer border-b transition-colors ${C===o.id?"border-b-brand border-t border-t-transparent":"border-b-border/50"} ${o.id===e?"bg-accent/60":"hover:bg-accent/30"}`,children:[(0,n.jsxs)("div",{className:"flex items-center gap-1.5 min-w-0",children:[!r&&(0,n.jsx)("span",{className:`w-1.5 h-1.5 rounded-full flex-shrink-0 ${o.active?"bg-green-500":"bg-muted-foreground/40"}`}),(0,n.jsx)("span",{className:"text-xs truncate flex-1",children:o.title}),o.commentCount>0&&u&&(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),u(o.id)},className:"flex-shrink-0 p-0.5 rounded text-muted-foreground/0 group-hover:text-muted-foreground/60 hover:!text-brand hover:!bg-brand/10 transition-colors",title:x("review.viewComments"),children:(0,n.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("path",{d:"M7 8h10M7 12h4m1 8l-4-4H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-3l-4 4z"})})}),!r&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{onClick:e=>R(e,o.id,o.active),className:`flex-shrink-0 p-0.5 rounded text-muted-foreground/0 group-hover:text-muted-foreground/60 hover:!text-foreground hover:!bg-accent transition-colors ${v===o.id?"opacity-50 pointer-events-none":""}`,title:o.active?x("review.closeReview"):x("review.reopenReview"),children:o.active?(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("path",{d:"M18.36 6.64a9 9 0 1 1-12.73 0"}),(0,n.jsx)("line",{x1:"12",y1:"2",x2:"12",y2:"12"})]}):(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("path",{d:"M18.36 6.64A9 9 0 0 1 12 21 9 9 0 0 1 5.64 6.64"}),(0,n.jsx)("line",{x1:"12",y1:"2",x2:"12",y2:"12"})]})}),(0,n.jsx)("button",{onClick:e=>S(e,o.id),className:`flex-shrink-0 p-0.5 rounded text-muted-foreground/0 group-hover:text-muted-foreground/60 hover:!text-red-500 hover:!bg-red-500/10 transition-colors ${f===o.id?"opacity-50 pointer-events-none":""}`,title:x("review.deleteReview"),children:(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("polyline",{points:"3 6 5 6 21 6"}),(0,n.jsx)("path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"})]})})]})]}),o.commentCount>0&&(0,n.jsx)("div",{className:`text-[10px] text-muted-foreground/50 mt-0.5 ${r?"":"pl-3"}`,children:x("review.nComments",{count:o.commentCount})})]},o.id)),0===T.length&&(0,n.jsx)("div",{className:"px-3 py-4 text-xs text-muted-foreground/50 text-center",children:r?x("review.noOpenDocs"):x("review.noReviews")})]}),j&&(0,n.jsx)("div",{className:"fixed z-50 px-2 py-1 text-xs bg-popover text-popover-foreground border border-border rounded shadow-md whitespace-nowrap pointer-events-none",style:{top:j.top,left:j.left+8,transform:"translateY(-50%)"},children:j.text})]})}},93975:(e,t,r)=>{"use strict";r.d(t,{useReviewIdentity:()=>d});var n=r(12115);r(34015);var o=r(69809);function s(){let e=o.A.t("reviewUtils.adjectives",{returnObjects:!0}),t=o.A.t("reviewUtils.nouns",{returnObjects:!0}),r=e[Math.floor(Math.random()*e.length)],n=t[Math.floor(Math.random()*t.length)];return`${r}${n}`}var i=r(49433),l=r(86957),a=r(82680);function d(){let[e,t]=(0,n.useState)(""),[r,o]=(0,n.useState)(""),[d,c]=(0,n.useState)(!1),[u,x]=(0,n.useState)(!0);(0,n.useEffect)(()=>{let e=i.tryPromise({try:async()=>{let e=await fetch("/api/review/identify");return e.ok?await e.json():null},catch:e=>new a.uV({message:"review identify failed",cause:e})}),r=()=>{t(Math.random().toString(36).slice(2,10)),o(s()),c(!1)};l.t4.runPromise(e.pipe(i.match({onSuccess:e=>{e?.authorId?(t(e.authorId),e.name?(o(e.name),c(!0)):(o(s()),c(!1))):r()},onFailure:r}))).finally(()=>x(!1))},[]);let m=(0,n.useCallback)(e=>{let t=i.tryPromise({try:async()=>{await fetch("/api/review/identify",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e})})},catch:e=>new a.uV({message:"review identify POST failed",cause:e})});l.t4.runFork(t.pipe(i.orElse(()=>i.void)))},[]),h=(0,n.useCallback)(e=>{let t=e.trim();t&&(o(t),c(!0),m(t))},[m]);return{authorId:e,name:r,nameConfirmed:d,loading:u,setName:(0,n.useCallback)(e=>{let t=e.trim();t&&(o(t),m(t))},[m]),confirmName:h,randomize:(0,n.useCallback)(()=>{o(s())},[])}}},99324:(e,t,r)=>{"use strict";r.d(t,{useReviewHighlights:()=>o});var n=r(12115);function o(e,t,r,o){let[s,i]=(0,n.useState)([]),l=(0,n.useRef)(0),a=(0,n.useRef)(r);(0,n.useEffect)(()=>{a.current=r},[r]);let d=(0,n.useCallback)(()=>{l.current&&cancelAnimationFrame(l.current),l.current=requestAnimationFrame(()=>{let r=e.current,n=t.current;if(!r||!n)return;let o=function(e,t,r){let n=[],o=t.getBoundingClientRect(),s=function(e){let t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),n=0;for(;r.nextNode();){let e=r.currentNode,o=e.textContent?.length||0;t.push({node:e,start:n,end:n+o}),n+=o}return t}(e);if(0===s.length)return n;for(let e of r){let{startOffset:r,endOffset:i}=e.anchor;if(r>=i)continue;let l=null,a=0,d=null,c=0;for(let{node:e,start:t,end:n}of s)if(!l&&r>=t&&r<n&&(l=e,a=r-t),i>t&&i<=n){d=e,c=i-t;break}if(!l||!d)continue;let u=document.createRange();try{u.setStart(l,a),u.setEnd(d,c)}catch{continue}for(let r of u.getClientRects())r.width<1||r.height<1||n.push({commentId:e.id,top:r.top-o.top+t.scrollTop,left:r.left-o.left+t.scrollLeft,width:r.width,height:r.height})}return n}(r,n,a.current);i(e=>e.length===o.length&&e.every((e,t)=>e.commentId===o[t].commentId&&.5>Math.abs(e.top-o[t].top)&&.5>Math.abs(e.left-o[t].left)&&.5>Math.abs(e.width-o[t].width)&&.5>Math.abs(e.height-o[t].height))?e:o)})},[e,t]);(0,n.useEffect)(()=>{d()},[r,o,d]),(0,n.useEffect)(()=>{let t=e.current;if(!t)return;let r=new MutationObserver(()=>d());return r.observe(t,{childList:!0,subtree:!0,characterData:!0}),()=>r.disconnect()},[e,d]),(0,n.useEffect)(()=>{let t=e.current;if(!t)return;let r=new ResizeObserver(()=>d());return r.observe(t),()=>r.disconnect()},[e,d]),(0,n.useEffect)(()=>()=>{l.current&&cancelAnimationFrame(l.current)},[]);let c=(0,n.useCallback)(e=>{let r=t.current;if(!r)return;let n=s.find(t=>t.commentId===e);if(!n)return;let o=r.clientHeight;r.scrollTo({top:n.top-o/2+n.height/2,behavior:"smooth"})},[t,s]);return{rects:s,scrollToHighlight:c}}}},e=>{e.O(0,[8653,7330,8216,4281,9268,2625,2171,6784,2032,8441,3794,7358],()=>e(e.s=15335)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2951],{15335:(e,t,r)=>{Promise.resolve().then(r.bind(r,99324)),Promise.resolve().then(r.bind(r,93975)),Promise.resolve().then(r.bind(r,19736)),Promise.resolve().then(r.bind(r,82032)),Promise.resolve().then(r.bind(r,28898)),Promise.resolve().then(r.bind(r,83519)),Promise.resolve().then(r.bind(r,62177)),Promise.resolve().then(r.bind(r,79968))},28898:(e,t,r)=>{"use strict";r.d(t,{ReviewIdentitySettings:()=>i});var n=r(95155),o=r(12115),s=r(79114);function i({identity:e}){let{t}=(0,s.Bd)(),[r,l]=(0,o.useState)(!1),[a,d]=(0,o.useState)(""),c=(0,o.useRef)(null);(0,o.useEffect)(()=>{if(!r)return;let e=e=>{c.current&&!c.current.contains(e.target)&&l(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[r]);let u=()=>{let t=a.trim();t&&t!==e.name&&e.confirmName(t),l(!1)};return(0,n.jsxs)("div",{className:"relative",ref:c,children:[(0,n.jsxs)("button",{onClick:()=>{r||d(e.name),l(!r)},className:"px-2 py-1 text-xs rounded hover:bg-accent transition-colors flex items-center gap-1",title:t("review.identitySettings"),children:[(0,n.jsx)("span",{className:"w-5 h-5 rounded-full bg-brand/20 text-brand flex items-center justify-center text-[10px] font-bold",children:e.name.charAt(0)}),(0,n.jsx)("span",{className:"text-muted-foreground",children:e.name})]}),r&&(0,n.jsxs)("div",{className:"absolute right-0 top-full mt-1 w-56 bg-card border border-border rounded-lg shadow-lg p-3 z-50",children:[(0,n.jsx)("div",{className:"text-xs text-muted-foreground mb-2",children:t("review.reviewNickname")}),(0,n.jsx)("input",{type:"text",value:a,onChange:e=>d(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.nativeEvent.isComposing||u()},className:"w-full px-2 py-1 text-sm bg-secondary border border-border rounded focus:outline-none focus:border-brand",autoFocus:!0}),(0,n.jsxs)("div",{className:"flex items-center gap-2 mt-2",children:[(0,n.jsx)("button",{onClick:()=>{e.randomize(),l(!1)},className:"px-2 py-1 text-xs rounded hover:bg-accent transition-colors text-muted-foreground",children:t("review.random")}),(0,n.jsx)("div",{className:"flex-1"}),(0,n.jsx)("button",{onClick:()=>l(!1),className:"px-2 py-1 text-xs rounded hover:bg-accent transition-colors text-muted-foreground",children:t("common.cancel")}),(0,n.jsx)("button",{onClick:u,className:"px-2 py-1 text-xs rounded bg-brand text-white hover:bg-brand/90 transition-colors",children:t("common.save")})]})]})]})}},62177:(e,t,r)=>{"use strict";r.d(t,{ReviewPage:()=>I});var n=r(95155),o=r(12115),s=r(79114),i=r(13219),l=r(47176),a=r(3238),d=r(97251);function c({selectedText:e,position:t,onSubmit:r,onCancel:i}){let{t:l}=(0,s.Bd)(),[a,d]=(0,o.useState)(""),u=(0,o.useRef)(null),x=(0,o.useRef)(null);(0,o.useEffect)(()=>{u.current?.focus()},[]),(0,o.useEffect)(()=>{let e=e=>{"Escape"===e.key&&i()};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[i]),(0,o.useEffect)(()=>{let e=e=>{!x.current||x.current.contains(e.target)||a.trim()||i()};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[a,i]);let m=()=>{let e=a.trim();e&&r(e)},h=e.length>60?e.slice(0,57)+"...":e;return(0,n.jsxs)("div",{ref:x,className:"absolute z-50 w-96 bg-card border border-border rounded-lg shadow-lg",style:{top:t.top,left:Math.max(8,t.left-192)},children:[(0,n.jsxs)("div",{className:"px-3 pt-3 pb-2",children:[(0,n.jsx)("div",{className:"text-xs text-muted-foreground mb-1",children:l("review.selectedText")}),(0,n.jsx)("div",{className:"text-xs bg-yellow-500/10 border-l-2 border-yellow-500 px-2 py-1 rounded-r truncate",children:h})]}),(0,n.jsx)("div",{className:"px-3 pb-2",children:(0,n.jsx)("textarea",{ref:u,value:a,onChange:e=>d(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),m())},placeholder:l("review.addCommentPlaceholder"),className:"w-full px-2 py-1.5 text-sm bg-secondary border border-border rounded resize-none focus:outline-none focus:border-brand",rows:4})}),(0,n.jsxs)("div",{className:"px-3 pb-3 flex items-center justify-between",children:[(0,n.jsx)("span",{className:"text-[10px] text-muted-foreground",children:l("review.enterSubmitHint")}),(0,n.jsxs)("div",{className:"flex gap-1",children:[(0,n.jsx)("button",{onClick:i,className:"px-2 py-1 text-xs rounded hover:bg-accent transition-colors text-muted-foreground",children:l("common.cancel")}),(0,n.jsx)("button",{onClick:m,disabled:!a.trim(),className:"px-2 py-1 text-xs rounded bg-brand text-white hover:bg-brand/90 transition-colors disabled:opacity-40",children:l("review.commentBtn")})]})]})]})}let u={bg:"rgba(234, 179, 8, 0.15)",bgActive:"rgba(234, 179, 8, 0.4)",bgPending:"rgba(234, 179, 8, 0.3)",border:"rgba(234, 179, 8, 0.7)",borderPending:"rgba(234, 179, 8, 0.9)"},x={bg:"rgba(234, 179, 8, 0.1)",bgActive:"rgba(234, 179, 8, 0.3)",bgPending:"rgba(234, 179, 8, 0.2)",border:"rgba(234, 179, 8, 0.5)",borderPending:"rgba(234, 179, 8, 0.7)"};function m({rects:e,activeCommentId:t,pendingCommentId:r,isDark:o}){if(0===e.length)return null;let s=o?x:u;return(0,n.jsx)("div",{style:{position:"absolute",top:0,left:0,width:"100%",height:0,overflow:"visible",pointerEvents:"none",zIndex:5},children:e.map((e,o)=>{let i=e.commentId===t,l=e.commentId===r,a=s.bg;return l?a=s.bgPending:i&&(a=s.bgActive),(0,n.jsx)("div",{"data-comment-id":e.commentId,style:{position:"absolute",top:e.top,left:e.left,width:e.width,height:e.height,backgroundColor:a,borderBottom:`1px solid ${l?s.borderPending:s.border}`,borderRadius:1,pointerEvents:"none"}},`${e.commentId}-${o}`)})})}var h=r(99324);let f=[d.W];function p({content:e,comments:t,activeCommentId:r,isActive:s,onAddComment:d,onHighlightClick:u,scrollToHighlightRef:x}){let{resolvedTheme:v}=(0,a.D)(),g=(0,o.useRef)(null),b=(0,o.useRef)(null),[w,j]=(0,o.useState)(null),y=(0,o.useMemo)(()=>w?[...t,{id:"__pending__",author:"",authorId:"",content:"",anchor:w.anchor,createdAt:0,replies:[]}]:t,[t,w]),{rects:k,scrollToHighlight:C}=(0,h.useReviewHighlights)(g,b,y,r);(0,o.useEffect)(()=>{x.current=C},[C,x]);let N=(0,o.useRef)(k);(0,o.useEffect)(()=>{N.current=k},[k]);let E=(0,o.useCallback)(e=>{let t=window.getSelection(),r=t&&!t.isCollapsed;if(r&&s&&g.current){let r=t.getRangeAt(0);if(g.current.contains(r.startContainer)&&g.current.contains(r.endContainer)){let n=function(e,t){let r=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),n=0,o=-1,s=-1;for(;r.nextNode();){let e=r.currentNode,i=e.textContent?.length||0;if(e===t.startContainer&&(o=n+t.startOffset),e===t.endContainer){s=n+t.endOffset;break}n+=i}if(-1===o||-1===s||o>=s)return null;let i=e.textContent?.slice(o,s)||"";return i.trim()?{startOffset:o,endOffset:s,selectedText:i}:null}(g.current,r);if(n){let r=b.current??g.current.parentElement,o=r.getBoundingClientRect();j({anchor:n,position:{top:e.clientY-o.top+r.scrollTop+8,left:e.clientX-o.left}}),t.removeAllRanges();return}}}if(!r&&!w){let t=b.current;if(!t)return;let r=t.getBoundingClientRect(),n=e.clientX-r.left+t.scrollLeft,o=e.clientY-r.top+t.scrollTop;for(let e of N.current)if("__pending__"!==e.commentId&&n>=e.left&&n<=e.left+e.width&&o>=e.top&&o<=e.top+e.height)return void u(e.commentId)}},[s,w,u]),R=(0,o.useCallback)(e=>{w&&(d(e,w.anchor),j(null),window.getSelection()?.removeAllRanges())},[w,d]),S=(0,o.useCallback)(()=>{j(null),window.getSelection()?.removeAllRanges()},[]);return(0,n.jsxs)("div",{className:"h-full flex bg-card",children:[(0,n.jsx)(l.l,{content:e,containerRef:b}),(0,n.jsxs)("div",{ref:b,className:"flex-1 overflow-auto relative",onMouseUp:E,children:[(0,n.jsx)("div",{ref:g,className:"p-6 review-markdown-container",children:(0,n.jsx)(i.T,{content:e,rehypePlugins:f})}),(0,n.jsx)(m,{rects:k,activeCommentId:r,pendingCommentId:w?"__pending__":null,isDark:"dark"===v}),w&&(0,n.jsx)(c,{selectedText:w.anchor.selectedText,position:w.position,onSubmit:R,onCancel:S})]})]})}var v=r(69809);function g(e){let t=new Date(e),r=Math.floor((new Date().getTime()-t.getTime())/6e4);if(r<1)return v.A.t("common.justNow");if(r<60)return v.A.t("common.minutesAgo",{count:r});let n=Math.floor(r/60);if(n<24)return v.A.t("common.hoursAgo",{count:n});let o=Math.floor(n/24);return o<7?v.A.t("common.daysAgo",{count:o}):t.toLocaleDateString()}let b=(0,o.forwardRef)(function({comment:e,isActive:t,isOwnComment:r,isAdmin:i,currentAuthorId:l,canInteract:a,userNameMap:d,onClick:c,onDelete:u,onEdit:x,onToggleClosed:m,onAddReply:h,onDeleteReply:f,onEditReply:p},v){let{t:b}=(0,s.Bd)(),w=(e,t)=>d[e]||t,[j,y]=(0,o.useState)(""),[k,C]=(0,o.useState)(!1),[N,E]=(0,o.useState)(!1),[R,S]=(0,o.useState)(""),[I,L]=(0,o.useState)(null),[P,A]=(0,o.useState)(""),T=()=>{let e=j.trim();e&&(h(e),y(""),C(!1))},M=()=>{let t=R.trim();t&&t!==e.content&&x(t),E(!1)},D=()=>{if(!I)return;let t=P.trim(),r=e.replies.find(e=>e.id===I);!t||r&&t===r.content||p(I,t),L(null)},_=e.anchor.selectedText.length>80?e.anchor.selectedText.slice(0,77)+"...":e.anchor.selectedText,F=i||r||a;return e.closed?(0,n.jsxs)("div",{ref:v,className:"rounded-lg border border-border/50 bg-card/50 opacity-60 hover:opacity-80 transition-all cursor-pointer px-3 py-2 flex items-center gap-2",onClick:c,children:[(0,n.jsx)("span",{className:"w-4 h-4 rounded-full bg-brand/20 text-brand flex items-center justify-center text-[9px] font-bold flex-shrink-0",children:w(e.authorId,e.author).charAt(0)}),(0,n.jsx)("span",{className:"text-xs text-muted-foreground truncate flex-1",children:_}),(0,n.jsx)("span",{className:"text-[10px] text-muted-foreground/50 flex-shrink-0",children:b("review.closedLabel")}),F&&(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),m(!1)},className:"text-[10px] text-muted-foreground hover:text-foreground transition-colors flex-shrink-0",title:b("review.reopenReview"),children:b("review.reopen")}),(r&&a||i)&&(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),u()},className:"text-[10px] text-muted-foreground hover:text-red-500 transition-colors flex-shrink-0",title:b("review.deleteComment"),children:b("common.delete")})]}):(0,n.jsxs)("div",{ref:v,className:`rounded-lg border transition-all cursor-pointer ${t?"border-brand bg-brand/5 shadow-sm":"border-border bg-card hover:border-muted-foreground/30"}`,onClick:c,children:[(0,n.jsx)("div",{className:"px-3 pt-3 pb-1",children:(0,n.jsx)("div",{className:"text-xs bg-yellow-500/10 border-l-2 border-yellow-500 px-2 py-1 rounded-r text-muted-foreground truncate",children:_})}),(0,n.jsxs)("div",{className:"px-3 pt-2 flex items-center gap-2",children:[(0,n.jsx)("span",{className:"w-5 h-5 rounded-full bg-brand/20 text-brand flex items-center justify-center text-[10px] font-bold flex-shrink-0",children:w(e.authorId,e.author).charAt(0)}),(0,n.jsx)("span",{className:"text-xs font-medium",children:w(e.authorId,e.author)}),(0,n.jsx)("span",{className:"text-[10px] text-muted-foreground",children:g(e.createdAt)}),(0,n.jsx)("div",{className:"flex-1"}),!N&&(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[F&&(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),m(!0)},className:"text-[10px] text-muted-foreground hover:text-foreground transition-colors",title:b("review.closeComment"),children:b("review.closeComment")}),r&&a&&(0,n.jsx)("button",{onClick:t=>{t.stopPropagation(),S(e.content),E(!0)},className:"text-[10px] text-muted-foreground hover:text-foreground transition-colors",title:b("review.editComment"),children:b("common.edit")}),(r&&a||i)&&(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),u()},className:"text-[10px] text-muted-foreground hover:text-red-500 transition-colors",title:b("review.deleteComment"),children:b("common.delete")})]})]}),(0,n.jsx)("div",{className:"px-3 pt-1 pb-2",children:N?(0,n.jsxs)("div",{onClick:e=>e.stopPropagation(),children:[(0,n.jsx)("textarea",{value:R,onChange:e=>S(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),M()),"Escape"===e.key&&E(!1)},className:"w-full px-2 py-1.5 text-sm bg-secondary border border-border rounded resize-none focus:outline-none focus:border-brand",rows:3,autoFocus:!0}),(0,n.jsxs)("div",{className:"flex items-center justify-end gap-1 mt-1",children:[(0,n.jsx)("button",{onClick:()=>E(!1),className:"px-2 py-0.5 text-xs rounded hover:bg-accent transition-colors text-muted-foreground",children:b("common.cancel")}),(0,n.jsx)("button",{onClick:M,disabled:!R.trim(),className:"px-2 py-0.5 text-xs rounded bg-brand text-white hover:bg-brand/90 transition-colors disabled:opacity-40",children:b("common.save")})]})]}):(0,n.jsxs)("div",{className:"text-sm whitespace-pre-wrap",children:[e.content,e.edited&&(0,n.jsx)("span",{className:"text-[10px] text-muted-foreground ml-1",children:b("review.edited")})]})}),e.replies.length>0&&(0,n.jsx)("div",{className:"mx-3 border-t border-border",children:e.replies.map(e=>(0,n.jsxs)("div",{className:"py-2 border-b border-border last:border-b-0",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("span",{className:"w-4 h-4 rounded-full bg-accent text-muted-foreground flex items-center justify-center text-[9px] font-bold flex-shrink-0",children:w(e.authorId,e.author).charAt(0)}),(0,n.jsx)("span",{className:"text-xs font-medium",children:w(e.authorId,e.author)}),(0,n.jsx)("span",{className:"text-[10px] text-muted-foreground",children:g(e.createdAt)}),(0,n.jsx)("div",{className:"flex-1"}),I!==e.id&&(e.authorId===l&&a||i)&&(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[e.authorId===l&&a&&(0,n.jsx)("button",{onClick:t=>{var r;t.stopPropagation(),r=e.id,A(e.content),L(r)},className:"text-[10px] text-muted-foreground hover:text-foreground transition-colors",title:b("review.editReply"),children:b("common.edit")}),(0,n.jsx)("button",{onClick:t=>{t.stopPropagation(),f(e.id)},className:"text-[10px] text-muted-foreground hover:text-red-500 transition-colors",title:b("review.deleteReply"),children:b("common.delete")})]})]}),I===e.id?(0,n.jsxs)("div",{className:"mt-1 pl-6",onClick:e=>e.stopPropagation(),children:[(0,n.jsx)("textarea",{value:P,onChange:e=>A(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),D()),"Escape"===e.key&&L(null)},className:"w-full px-2 py-1 text-sm bg-secondary border border-border rounded resize-none focus:outline-none focus:border-brand",rows:2,autoFocus:!0}),(0,n.jsxs)("div",{className:"flex items-center justify-end gap-1 mt-1",children:[(0,n.jsx)("button",{onClick:()=>L(null),className:"px-2 py-0.5 text-xs rounded hover:bg-accent transition-colors text-muted-foreground",children:b("common.cancel")}),(0,n.jsx)("button",{onClick:D,disabled:!P.trim(),className:"px-2 py-0.5 text-xs rounded bg-brand text-white hover:bg-brand/90 transition-colors disabled:opacity-40",children:b("common.save")})]})]}):(0,n.jsxs)("div",{className:"text-sm mt-0.5 pl-6 whitespace-pre-wrap",children:[e.content,e.edited&&(0,n.jsx)("span",{className:"text-[10px] text-muted-foreground ml-1",children:b("review.edited")})]})]},e.id))}),(0,n.jsx)("div",{className:"px-3 pb-2 pt-1",children:k?(0,n.jsxs)("div",{className:"mt-1",onClick:e=>e.stopPropagation(),children:[(0,n.jsx)("textarea",{value:j,onChange:e=>y(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),T()),"Escape"===e.key&&C(!1)},placeholder:b("review.replyPlaceholder"),className:"w-full px-2 py-1 text-sm bg-secondary border border-border rounded resize-none focus:outline-none focus:border-brand",rows:2,autoFocus:!0}),(0,n.jsxs)("div",{className:"flex items-center justify-end gap-1 mt-1",children:[(0,n.jsx)("button",{onClick:()=>C(!1),className:"px-2 py-0.5 text-xs rounded hover:bg-accent transition-colors text-muted-foreground",children:b("common.cancel")}),(0,n.jsx)("button",{onClick:T,disabled:!j.trim(),className:"px-2 py-0.5 text-xs rounded bg-brand text-white hover:bg-brand/90 transition-colors disabled:opacity-40",children:b("review.reply")})]})]}):a&&(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),C(!0)},className:"text-xs text-muted-foreground hover:text-foreground transition-colors",children:b("review.reply")})})]})});function w({comments:e,activeCommentId:t,currentAuthorId:r,isActive:i,isAdmin:l,userNameMap:a,onCommentClick:d,onNavigateComment:c,onDeleteComment:u,onEditComment:x,onToggleCommentClosed:m,onAddReply:h,onDeleteReply:f,onEditReply:p,scrollToCommentRef:v}){let{t:g}=(0,s.Bd)(),j=(0,o.useRef)(new Map),y=(0,o.useRef)(null),k=(0,o.useCallback)(e=>{let t=j.current.get(e);t&&t.scrollIntoView({behavior:"smooth",block:"center"})},[]);(0,o.useEffect)(()=>{v.current=k},[k,v]);let C=[...e].sort((e,t)=>e.anchor.startOffset-t.anchor.startOffset);return(0,n.jsxs)("div",{ref:y,className:"h-full flex flex-col bg-card",children:[(0,n.jsxs)("div",{className:"px-4 py-2 bg-secondary border-b border-border flex-shrink-0 flex items-center",children:[(0,n.jsx)("span",{className:"text-xs text-muted-foreground",children:0===e.length?g("review.selectTextToComment"):t?g("review.commentsNavCount",{current:C.findIndex(e=>e.id===t)+1,total:e.length}):g("review.commentsCount",{count:e.length})}),e.length>0&&(0,n.jsxs)("div",{className:"flex items-center gap-1 ml-2",children:[(0,n.jsxs)("button",{onClick:()=>c("prev"),className:"px-1.5 py-0.5 text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors flex items-center gap-0.5",title:g("review.prevComment"),children:[(0,n.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("polyline",{points:"15 18 9 12 15 6"})}),g("review.prevComment")]}),(0,n.jsxs)("button",{onClick:()=>c("next"),className:"px-1.5 py-0.5 text-[11px] text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors flex items-center gap-0.5",title:g("review.nextComment"),children:[g("review.nextComment"),(0,n.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("polyline",{points:"9 18 15 12 9 6"})})]})]})]}),(0,n.jsx)("div",{className:"flex-1 overflow-auto",children:0===C.length?(0,n.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground text-sm",children:(0,n.jsxs)("div",{className:"text-center",children:[(0,n.jsx)("div",{className:"text-2xl mb-2",children:"\uD83D\uDCAC"}),(0,n.jsx)("div",{children:g("review.selectTextHint")})]})}):(0,n.jsx)("div",{className:"p-3 space-y-3",children:C.map(e=>(0,n.jsx)(b,{ref:t=>{t?j.current.set(e.id,t):j.current.delete(e.id)},comment:e,isActive:e.id===t,isOwnComment:e.authorId===r,isAdmin:l,currentAuthorId:r,canInteract:i,userNameMap:a,onClick:()=>d(e.id),onDelete:()=>u(e.id),onEdit:t=>x(e.id,t),onToggleClosed:t=>m(e.id,t),onAddReply:t=>h(e.id,t),onDeleteReply:t=>f(e.id,t),onEditReply:(t,r)=>p(e.id,t,r)},e.id))})})]})}var j=r(28898),y=r(83519);function k({currentName:e,onConfirm:t,onSkip:r}){let{t:i}=(0,s.Bd)(),[l,a]=(0,o.useState)(e),d=(0,o.useRef)(null);(0,o.useEffect)(()=>{d.current?.select()},[]);let c=()=>{let e=l.trim();e&&t(e)};return(0,n.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:(0,n.jsxs)("div",{className:"bg-card border border-border rounded-xl shadow-2xl w-80 p-5",children:[(0,n.jsx)("h2",{className:"text-base font-semibold mb-1",children:i("review.setNickname")}),(0,n.jsx)("p",{className:"text-xs text-muted-foreground mb-4",children:i("review.nicknameHint")}),(0,n.jsx)("input",{ref:d,type:"text",value:l,onChange:e=>a(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.nativeEvent.isComposing||c(),"Escape"===e.key&&r()},placeholder:i("review.nicknamePlaceholder"),maxLength:20,className:"w-full px-3 py-2 text-sm bg-secondary border border-border rounded-lg focus:outline-none focus:border-brand",autoFocus:!0}),(0,n.jsxs)("div",{className:"flex items-center justify-end gap-2 mt-4",children:[(0,n.jsx)("button",{onClick:r,className:"px-3 py-1.5 text-xs rounded-lg hover:bg-accent transition-colors text-muted-foreground",children:i("review.skipForNow")}),(0,n.jsx)("button",{onClick:c,disabled:!l.trim(),className:"px-4 py-1.5 text-xs rounded-lg bg-brand text-white hover:bg-brand/90 transition-colors disabled:opacity-40",children:i("common.save")})]})]})})}var C=r(19736),N=r(93975),E=r(34075),R=r(86957),S=r(90420);function I({reviewId:e}){let{t}=(0,s.Bd)(),[r,i]=(0,o.useState)(e),[l,d]=(0,o.useState)(null),[c,u]=(0,o.useState)(!0),[x,m]=(0,o.useState)(null),[h,f]=(0,o.useState)(null),[v,g]=(0,o.useState)(!1),b=(0,N.useReviewIdentity)(),{resolvedTheme:L,setTheme:P}=(0,a.D)(),[A,T]=(0,o.useState)({}),[M,D]=(0,o.useState)(!1),[_,F]=(0,o.useState)(!1),B=(0,o.useCallback)(async()=>{let e=await R.t4.runPromiseExit((0,S.BL)());if("Success"===e._tag){let t={};for(let[r,n]of Object.entries(e.value.users))t[r]=n.name;T(t)}},[]);(0,o.useEffect)(()=>{B()},[B]),(0,o.useEffect)(()=>{b.loading||!b.authorId||b.nameConfirmed||D(!0)},[b.loading,b.authorId,b.nameConfirmed]),(0,o.useEffect)(()=>{g("localhost"===window.location.hostname||"127.0.0.1"===window.location.hostname)},[]),(0,o.useEffect)(()=>{let e=localStorage.getItem("theme");e&&"system"!==e||P("dark")},[P]);let O=(0,o.useRef)(void 0),W=(0,o.useRef)(void 0),z=(0,o.useCallback)(e=>{e!==r&&(i(e),m(null),f(null),window.history.replaceState(null,"",`/review/${e}`))},[r]),$=(0,o.useCallback)(async()=>{let e=await R.t4.runPromiseExit((0,S.JK)(r));if("Success"===e._tag)d(e.value.review),m(null);else{let r="Fail"===e.cause._tag?e.cause.error:null;r&&"NotFoundError"===r._tag?m(t("review.reviewNotExist")):r&&"AppError"===r._tag?m(t("review.loadFailed")):m(t("review.networkError"))}u(!1)},[r,t]);(0,o.useEffect)(()=>{$()},[$]),(0,o.useEffect)(()=>{let e=setInterval(()=>{$(),B()},1e4);return()=>clearInterval(e)},[$,B]);let H=(0,o.useCallback)(async(e,r)=>{"Success"===(await R.t4.runPromiseExit(e))._tag?await $():(0,E.oR)(t(r),"error")},[$,t]),K=(0,o.useCallback)(async(e,t)=>{b.authorId&&await H((0,S.dU)(r,{author:b.name,authorId:b.authorId,content:e,anchor:t}),"toast.addCommentFailed")},[r,b,H]),V=(0,o.useCallback)(e=>H((0,S.jw)(r,e),"toast.deleteCommentFailed"),[r,H]),Y=(0,o.useCallback)((e,t)=>H((0,S.Y8)(r,{commentId:e,content:t}),"toast.editCommentFailed"),[r,H]),q=(0,o.useCallback)((e,t)=>H((0,S.Y8)(r,{commentId:e,closed:t}),"toast.operationFailed"),[r,H]),U=(0,o.useCallback)(async(e,t)=>{b.authorId&&await H((0,S.mu)(r,{commentId:e,author:b.name,authorId:b.authorId,content:t}),"toast.addReplyFailed")},[r,b,H]),X=(0,o.useCallback)((e,t)=>H((0,S.i7)(r,e,t),"toast.deleteReplyFailed"),[r,H]),J=(0,o.useCallback)((e,t,n)=>H((0,S.vy)(r,{commentId:e,replyId:t,content:n}),"toast.editReplyFailed"),[r,H]),G=(0,o.useCallback)(async()=>{let e=await R.t4.runPromiseExit((0,S._c)());if("Success"===e._tag){let n=e.value.shareBase?`${e.value.shareBase}/review/${r}`:window.location.href;try{await navigator.clipboard.writeText(n),(0,E.oR)(t("toast.linkCopied"),"success")}catch{(0,E.oR)(t("toast.copyFailed"),"error")}}else(0,E.oR)(t("toast.copyFailed"),"error")},[r,t]),Q=(0,o.useCallback)(e=>{f(e),W.current?.(e)},[]),Z=(0,o.useCallback)(e=>{f(e),O.current?.(e)},[]),ee=(0,o.useCallback)(e=>{let t;if(!l||0===l.comments.length)return;let r=[...l.comments].sort((e,t)=>e.anchor.startOffset-t.anchor.startOffset),n=h?r.findIndex(e=>e.id===h):-1;t="next"===e?n<r.length-1?n+1:0:n>0?n-1:r.length-1;let o=r[t];f(o.id),W.current?.(o.id),O.current?.(o.id)},[l,h]);return(0,n.jsxs)("div",{className:"h-screen flex flex-col bg-background text-foreground overflow-hidden",children:[M&&(0,n.jsx)(k,{currentName:b.name,onConfirm:e=>{b.confirmName(e),D(!1),B()},onSkip:()=>D(!1)}),l&&(0,n.jsx)(C.ReviewCommentsListModal,{isOpen:_,onClose:()=>F(!1),comments:l.comments,reviewTitle:l.title,userNameMap:A,onCommentClick:e=>{f(e),W.current?.(e),O.current?.(e)}}),l&&(0,n.jsx)("div",{className:"py-2 bg-secondary border-b border-border flex-shrink-0 flex justify-center",children:(0,n.jsxs)("div",{className:"w-full max-w-[1800px] px-4 flex items-center gap-3",children:[(0,n.jsx)("h1",{className:"text-sm font-semibold truncate",children:l.title}),(0,n.jsx)("span",{className:"text-[11px] text-muted-foreground flex-shrink-0",children:t("review.updatedAt",{date:new Date(l.updatedAt||l.createdAt).toLocaleDateString(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})})}),(0,n.jsx)("span",{className:"flex-1"}),!v&&(0,n.jsx)("span",{className:`px-2 py-0.5 text-xs rounded-full ${l.active?"bg-green-500/15 text-green-600 dark:text-green-400":"bg-muted text-muted-foreground"}`,children:l.active?t("review.active"):t("review.closed")}),(0,n.jsxs)("button",{onClick:()=>F(!0),className:"px-2 py-1 text-xs rounded hover:bg-accent transition-colors text-muted-foreground flex items-center gap-1",title:t("review.viewAllComments"),children:[(0,n.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("path",{d:"M7 8h10M7 12h4m1 8l-4-4H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-3l-4 4z"})}),t("review.viewCommentBtn")]}),(0,n.jsx)("button",{onClick:G,className:"px-2 py-1 text-xs rounded hover:bg-accent transition-colors text-muted-foreground",children:t("review.copyLink")}),(0,n.jsx)("button",{onClick:()=>P("dark"===L?"light":"dark"),className:"p-1 text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",title:"dark"===L?t("settings.switchLight"):t("settings.switchDark"),children:"dark"===L?(0,n.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"5"}),(0,n.jsx)("line",{x1:"12",y1:"1",x2:"12",y2:"3"}),(0,n.jsx)("line",{x1:"12",y1:"21",x2:"12",y2:"23"}),(0,n.jsx)("line",{x1:"4.22",y1:"4.22",x2:"5.64",y2:"5.64"}),(0,n.jsx)("line",{x1:"18.36",y1:"18.36",x2:"19.78",y2:"19.78"}),(0,n.jsx)("line",{x1:"1",y1:"12",x2:"3",y2:"12"}),(0,n.jsx)("line",{x1:"21",y1:"12",x2:"23",y2:"12"}),(0,n.jsx)("line",{x1:"4.22",y1:"19.78",x2:"5.64",y2:"18.36"}),(0,n.jsx)("line",{x1:"18.36",y1:"5.64",x2:"19.78",y2:"4.22"})]}):(0,n.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"})})}),(0,n.jsx)(j.ReviewIdentitySettings,{identity:b})]})}),(0,n.jsx)("div",{className:"flex-1 flex justify-center overflow-hidden",children:(0,n.jsxs)("div",{className:"w-full max-w-[1800px] flex overflow-hidden",children:[(0,n.jsx)(y.ReviewListPanel,{currentReviewId:r,onSelect:z,readOnly:!v,refreshTrigger:l?.comments.length,onViewComments:e=>{e!==r&&z(e),F(!0)}}),c?(0,n.jsx)("div",{className:"flex-1 flex items-center justify-center",children:(0,n.jsx)("div",{className:"text-muted-foreground",children:t("common.loading")})}):x||!l?(0,n.jsx)("div",{className:"flex-1 flex items-center justify-center",children:(0,n.jsxs)("div",{className:"text-center",children:[(0,n.jsx)("div",{className:"text-xl mb-2",children:x||t("review.reviewNotFound")}),(0,n.jsx)("div",{className:"text-sm text-muted-foreground",children:t("review.checkLink")})]})}):(0,n.jsxs)("div",{className:"flex-1 flex overflow-hidden",children:[(0,n.jsx)("div",{className:"flex-1 h-full border-r border-border overflow-hidden",children:(0,n.jsx)(p,{content:l.content,comments:l.comments,activeCommentId:h,isActive:l.active,onAddComment:K,onHighlightClick:Z,scrollToHighlightRef:W})}),(0,n.jsx)("div",{className:"w-[360px] h-full overflow-hidden flex-shrink-0",children:(0,n.jsx)(w,{comments:l.comments,activeCommentId:h,currentAuthorId:b.authorId,isActive:l.active,isAdmin:v,userNameMap:A,onCommentClick:Q,onNavigateComment:ee,onDeleteComment:V,onEditComment:Y,onToggleCommentClosed:q,onAddReply:U,onDeleteReply:X,onEditReply:J,scrollToCommentRef:O})})]})]})})]})}},83519:(e,t,r)=>{"use strict";r.d(t,{ReviewListPanel:()=>d});var n=r(95155),o=r(12115),s=r(79114),i=r(86957),l=r(49433),a=r(90420);function d({currentReviewId:e,onSelect:t,readOnly:r,refreshTrigger:c,onViewComments:u}){let{t:x}=(0,s.Bd)(),[m,h]=(0,o.useState)([]),[f,p]=(0,o.useState)(null),[v,g]=(0,o.useState)(null),[b,w]=(0,o.useState)(!1),[j,y]=(0,o.useState)(null),k=(0,o.useRef)(null),[C,N]=(0,o.useState)(null),E=(0,o.useCallback)(async()=>{let e=await i.t4.runPromiseExit((0,a.Y_)());"Success"===e._tag&&h(e.value.reviews??[])},[]);(0,o.useEffect)(()=>{queueMicrotask(()=>E())},[E]),(0,o.useEffect)(()=>{queueMicrotask(()=>E())},[e,c,E]);let R=(0,o.useCallback)(async(e,t,r)=>{e.stopPropagation(),v||(g(t),"Success"===(await i.t4.runPromiseExit((0,a.Gm)(t,{active:!r})))._tag&&h(e=>e.map(e=>e.id===t?{...e,active:!r}:e)),g(null))},[v]),S=(0,o.useCallback)(async(r,n)=>{if(r.stopPropagation(),!f){if(p(n),"Success"===(await i.t4.runPromiseExit((0,a.Wr)(n)))._tag&&(h(e=>e.filter(e=>e.id!==n)),n===e)){let e=m.filter(e=>e.id!==n);e.length>0&&t(e[0].id)}p(null)}},[f,e,m,t]),I=(0,o.useCallback)((e,t)=>{k.current=t,e.dataTransfer.effectAllowed="move";let r=e.currentTarget;requestAnimationFrame(()=>r.classList.add("opacity-30"))},[]),L=(0,o.useCallback)(e=>{k.current=null,N(null),e.currentTarget instanceof HTMLElement&&e.currentTarget.classList.remove("opacity-30")},[]),P=(0,o.useCallback)((e,t)=>{e.preventDefault(),e.dataTransfer.dropEffect="move",k.current&&k.current!==t&&N(t)},[]),A=(0,o.useCallback)(async(e,t)=>{e.preventDefault(),N(null);let r=k.current;k.current=null,r&&r!==t&&h(e=>{let n=[...e],o=n.findIndex(e=>e.id===r),s=n.findIndex(e=>e.id===t);if(-1===o||-1===s)return e;let[d]=n.splice(o,1);n.splice(s,0,d);let c=n.map(e=>e.id);return i.t4.runFork((0,a.z1)(c).pipe(l.orElse(()=>l.void))),n})},[]),T=r?m.filter(e=>e.active):m,M=!r;return b?(0,n.jsxs)("div",{className:"h-full flex flex-col items-center bg-secondary/50 w-9 flex-shrink-0 border-r border-border",children:[(0,n.jsx)("button",{onClick:()=>w(!1),className:"p-1.5 mt-2 text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",title:x("review.expandList"),children:(0,n.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("polyline",{points:"9 18 15 12 9 6"})})}),(0,n.jsx)("span",{className:"text-[10px] text-muted-foreground/50 mt-2",style:{writingMode:"vertical-rl"},children:r?x("review.nDocs",{count:T.length}):x("review.nReviews",{count:T.length})})]}):(0,n.jsxs)("div",{className:"h-full flex flex-col bg-secondary/50 w-[200px] flex-shrink-0 border-r border-border",children:[(0,n.jsxs)("div",{className:"px-3 py-2 border-b border-border flex-shrink-0 flex items-center justify-between",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:r?x("review.docList"):x("review.allReviewsList")}),(0,n.jsx)("span",{className:"text-xs text-muted-foreground/60 ml-1.5",children:T.length})]}),(0,n.jsx)("button",{onClick:()=>w(!0),className:"p-0.5 text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",title:x("review.collapseList"),children:(0,n.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("polyline",{points:"15 18 9 12 15 6"})})})]}),(0,n.jsxs)("div",{className:"flex-1 overflow-y-auto",children:[T.map(o=>(0,n.jsxs)("div",{draggable:M,onDragStart:M?e=>I(e,o.id):void 0,onDragEnd:M?L:void 0,onDragOver:M?e=>P(e,o.id):void 0,onDrop:M?e=>A(e,o.id):void 0,onMouseEnter:e=>{let t=e.currentTarget.getBoundingClientRect();y({id:o.id,text:o.title,top:t.top+t.height/2,left:t.right})},onMouseLeave:()=>y(e=>e?.id===o.id?null:e),onClick:()=>t(o.id),className:`group px-3 py-2 cursor-pointer border-b transition-colors ${C===o.id?"border-b-brand border-t border-t-transparent":"border-b-border/50"} ${o.id===e?"bg-accent/60":"hover:bg-accent/30"}`,children:[(0,n.jsxs)("div",{className:"flex items-center gap-1.5 min-w-0",children:[!r&&(0,n.jsx)("span",{className:`w-1.5 h-1.5 rounded-full flex-shrink-0 ${o.active?"bg-green-500":"bg-muted-foreground/40"}`}),(0,n.jsx)("span",{className:"text-xs truncate flex-1",children:o.title}),o.commentCount>0&&u&&(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),u(o.id)},className:"flex-shrink-0 p-0.5 rounded text-muted-foreground/0 group-hover:text-muted-foreground/60 hover:!text-brand hover:!bg-brand/10 transition-colors",title:x("review.viewComments"),children:(0,n.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("path",{d:"M7 8h10M7 12h4m1 8l-4-4H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-3l-4 4z"})})}),!r&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{onClick:e=>R(e,o.id,o.active),className:`flex-shrink-0 p-0.5 rounded text-muted-foreground/0 group-hover:text-muted-foreground/60 hover:!text-foreground hover:!bg-accent transition-colors ${v===o.id?"opacity-50 pointer-events-none":""}`,title:o.active?x("review.closeReview"):x("review.reopenReview"),children:o.active?(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("path",{d:"M18.36 6.64a9 9 0 1 1-12.73 0"}),(0,n.jsx)("line",{x1:"12",y1:"2",x2:"12",y2:"12"})]}):(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("path",{d:"M18.36 6.64A9 9 0 0 1 12 21 9 9 0 0 1 5.64 6.64"}),(0,n.jsx)("line",{x1:"12",y1:"2",x2:"12",y2:"12"})]})}),(0,n.jsx)("button",{onClick:e=>S(e,o.id),className:`flex-shrink-0 p-0.5 rounded text-muted-foreground/0 group-hover:text-muted-foreground/60 hover:!text-red-500 hover:!bg-red-500/10 transition-colors ${f===o.id?"opacity-50 pointer-events-none":""}`,title:x("review.deleteReview"),children:(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("polyline",{points:"3 6 5 6 21 6"}),(0,n.jsx)("path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"})]})})]})]}),o.commentCount>0&&(0,n.jsx)("div",{className:`text-[10px] text-muted-foreground/50 mt-0.5 ${r?"":"pl-3"}`,children:x("review.nComments",{count:o.commentCount})})]},o.id)),0===T.length&&(0,n.jsx)("div",{className:"px-3 py-4 text-xs text-muted-foreground/50 text-center",children:r?x("review.noOpenDocs"):x("review.noReviews")})]}),j&&(0,n.jsx)("div",{className:"fixed z-50 px-2 py-1 text-xs bg-popover text-popover-foreground border border-border rounded shadow-md whitespace-nowrap pointer-events-none",style:{top:j.top,left:j.left+8,transform:"translateY(-50%)"},children:j.text})]})}},93975:(e,t,r)=>{"use strict";r.d(t,{useReviewIdentity:()=>d});var n=r(12115);r(34015);var o=r(69809);function s(){let e=o.A.t("reviewUtils.adjectives",{returnObjects:!0}),t=o.A.t("reviewUtils.nouns",{returnObjects:!0}),r=e[Math.floor(Math.random()*e.length)],n=t[Math.floor(Math.random()*t.length)];return`${r}${n}`}var i=r(49433),l=r(86957),a=r(82680);function d(){let[e,t]=(0,n.useState)(""),[r,o]=(0,n.useState)(""),[d,c]=(0,n.useState)(!1),[u,x]=(0,n.useState)(!0);(0,n.useEffect)(()=>{let e=i.tryPromise({try:async()=>{let e=await fetch("/api/review/identify");return e.ok?await e.json():null},catch:e=>new a.uV({message:"review identify failed",cause:e})}),r=()=>{t(Math.random().toString(36).slice(2,10)),o(s()),c(!1)};l.t4.runPromise(e.pipe(i.match({onSuccess:e=>{e?.authorId?(t(e.authorId),e.name?(o(e.name),c(!0)):(o(s()),c(!1))):r()},onFailure:r}))).finally(()=>x(!1))},[]);let m=(0,n.useCallback)(e=>{let t=i.tryPromise({try:async()=>{await fetch("/api/review/identify",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e})})},catch:e=>new a.uV({message:"review identify POST failed",cause:e})});l.t4.runFork(t.pipe(i.orElse(()=>i.void)))},[]),h=(0,n.useCallback)(e=>{let t=e.trim();t&&(o(t),c(!0),m(t))},[m]);return{authorId:e,name:r,nameConfirmed:d,loading:u,setName:(0,n.useCallback)(e=>{let t=e.trim();t&&(o(t),m(t))},[m]),confirmName:h,randomize:(0,n.useCallback)(()=>{o(s())},[])}}},99324:(e,t,r)=>{"use strict";r.d(t,{useReviewHighlights:()=>o});var n=r(12115);function o(e,t,r,o){let[s,i]=(0,n.useState)([]),l=(0,n.useRef)(0),a=(0,n.useRef)(r);(0,n.useEffect)(()=>{a.current=r},[r]);let d=(0,n.useCallback)(()=>{l.current&&cancelAnimationFrame(l.current),l.current=requestAnimationFrame(()=>{let r=e.current,n=t.current;if(!r||!n)return;let o=function(e,t,r){let n=[],o=t.getBoundingClientRect(),s=function(e){let t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),n=0;for(;r.nextNode();){let e=r.currentNode,o=e.textContent?.length||0;t.push({node:e,start:n,end:n+o}),n+=o}return t}(e);if(0===s.length)return n;for(let e of r){let{startOffset:r,endOffset:i}=e.anchor;if(r>=i)continue;let l=null,a=0,d=null,c=0;for(let{node:e,start:t,end:n}of s)if(!l&&r>=t&&r<n&&(l=e,a=r-t),i>t&&i<=n){d=e,c=i-t;break}if(!l||!d)continue;let u=document.createRange();try{u.setStart(l,a),u.setEnd(d,c)}catch{continue}for(let r of u.getClientRects())r.width<1||r.height<1||n.push({commentId:e.id,top:r.top-o.top+t.scrollTop,left:r.left-o.left+t.scrollLeft,width:r.width,height:r.height})}return n}(r,n,a.current);i(e=>e.length===o.length&&e.every((e,t)=>e.commentId===o[t].commentId&&.5>Math.abs(e.top-o[t].top)&&.5>Math.abs(e.left-o[t].left)&&.5>Math.abs(e.width-o[t].width)&&.5>Math.abs(e.height-o[t].height))?e:o)})},[e,t]);(0,n.useEffect)(()=>{d()},[r,o,d]),(0,n.useEffect)(()=>{let t=e.current;if(!t)return;let r=new MutationObserver(()=>d());return r.observe(t,{childList:!0,subtree:!0,characterData:!0}),()=>r.disconnect()},[e,d]),(0,n.useEffect)(()=>{let t=e.current;if(!t)return;let r=new ResizeObserver(()=>d());return r.observe(t),()=>r.disconnect()},[e,d]),(0,n.useEffect)(()=>()=>{l.current&&cancelAnimationFrame(l.current)},[]);let c=(0,n.useCallback)(e=>{let r=t.current;if(!r)return;let n=s.find(t=>t.commentId===e);if(!n)return;let o=r.clientHeight;r.scrollTo({top:n.top-o/2+n.height/2,behavior:"smooth"})},[t,s]);return{rects:s,scrollToHighlight:c}}}},e=>{e.O(0,[8653,7330,8216,4281,9268,1332,9304,2171,6784,2032,8441,3794,7358],()=>e(e.s=15335)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (()=>{"use strict";var e,a,f,c,d,b,t,r,o={},n={};function i(e){var a=n[e];if(void 0!==a)return a.exports;var f=n[e]={exports:{}},c=!0;try{o[e].call(f.exports,f,f.exports,i),c=!1}finally{c&&delete n[e]}return f.exports}i.m=o,e=[],i.O=(a,f,c,d)=>{if(f){d=d||0;for(var b=e.length;b>0&&e[b-1][2]>d;b--)e[b]=e[b-1];e[b]=[f,c,d];return}for(var t=1/0,b=0;b<e.length;b++){for(var[f,c,d]=e[b],r=!0,o=0;o<f.length;o++)(!1&d||t>=d)&&Object.keys(i.O).every(e=>i.O[e](f[o]))?f.splice(o--,1):(r=!1,d<t&&(t=d));if(r){e.splice(b--,1);var n=c();void 0!==n&&(a=n)}}return a},i.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return i.d(a,{a:a}),a},f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,i.t=function(e,c){if(1&c&&(e=this(e)),8&c||"object"==typeof e&&e&&(4&c&&e.__esModule||16&c&&"function"==typeof e.then))return e;var d=Object.create(null);i.r(d);var b={};a=a||[null,f({}),f([]),f(f)];for(var t=2&c&&e;"object"==typeof t&&!~a.indexOf(t);t=f(t))Object.getOwnPropertyNames(t).forEach(a=>b[a]=()=>e[a]);return b.default=()=>e,i.d(d,b),d},i.d=(e,a)=>{for(var f in a)i.o(a,f)&&!i.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:a[f]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce((a,f)=>(i.f[f](e,a),a),[])),i.u=e=>9304===e?"static/chunks/9304-ddde9008da31b2ce.js":"static/chunks/"+(({535:"4ca0cff5",1290:"cee15710",1630:"53c1bd3f",2577:"d1c28714",3879:"cfdf2ac7",4763:"4402d2ac",4814:"799ebd4e",6666:"570e4624",6814:"7d29de82",7442:"92e53eb0",8835:"ce16f5a9",9312:"1cd6e1d3"})[e]||e)+"."+({10:"6cf001c181ce1098",34:"ce581867cf95e24b",36:"b4a553bf2106f6d3",123:"d6fe9c2353baf42b",194:"76dbdc07cdc2311d",214:"f6bba63dfa159e01",252:"a9e22657cbf67b42",327:"8ecab0b86d52b597",376:"9e742ff6919b2b54",392:"3cad93691f1b7360",400:"59979e0d3ae126e4",425:"9a3434a28926566a",480:"60af76ef919bafc9",535:"07efe2bc8f09d72e",541:"cfa15b606745131a",579:"33fc87fb95163c6a",583:"5061a2f9e7b7e97d",624:"2dd909fbfce98c5e",640:"5bf1e25d0bddf875",698:"e0dda03fd303b96b",794:"06b1ae4fc9cc10a9",816:"f909c891b91aa79f",830:"e49b226c07876df4",840:"a9c535f8868cc4bd",862:"fe3b86ecfb9c0716",893:"c469257bbbbca4f5",966:"57e4cd93c2368d34",968:"237f19aca13543fe",1078:"02294b2934d5bf21",1142:"8248bfb76c695146",1161:"06b33878b495da50",1184:"e80a999422621ed9",1188:"1d4ce94ddc297119",1198:"2a5c215f01a8b74d",1215:"88ed89521e915107",1219:"e27b0bd10b029e40",1247:"64e212daa5bb3925",1248:"36af3903f037c1f5",1274:"ce6906b1fe2e04b8",1280:"1651bb5167170457",1290:"869cef5f741d40c2",1335:"716cc5924662708e",1365:"d7391145ca7f8791",1379:"03e1e0f31bdaa2cc",1410:"276ad7bf15452d27",1413:"117c5958c59cc695",1453:"3c24c777a3deca2d",1456:"217c3832b3e76b7f",1501:"549af2c91a889a08",1534:"918a25b2e3daab22",1556:"96abc9ff91b0c383",1583:"03a06dbdde85ac56",1595:"ee61519fde230f60",1630:"2911e2bac119d910",1656:"a9efc78185a5a85f",1664:"6d5b5e3112b66906",1898:"e07b2b1c5e789b06",1932:"b0aea9b52cabe5e8",1959:"698f1d1accabcbe6",1977:"a06c8e8d2198f765",2013:"598558c40e51e107",2031:"3877441c49bff5cd",2041:"00f4fa0ab26c6ba5",2062:"4a0ab3400fea0e34",2107:"c627112b02b9e1c8",2130:"441ae0f68863efeb",2160:"e38d781fd5c4cde0",2179:"1bf5fe315e6e132c",2215:"9d2d6fbe90ffcc80",2278:"0b14de1cb2041bfd",2349:"ca15d465c4260b4b",2374:"7560cc5c4b8ed6b0",2403:"3dda71b6482dce3b",2485:"3188870375e9fbee",2489:"fcc70bd67329a70e",2501:"4e65b56602faa956",2503:"bb9d3528c3c7ccae",2577:"f52cffdd449a2d14",2580:"69af80de5bcfcefe",2614:"8349e4b407470a30",2710:"fe0656d4ebae4d30",2728:"5fed9ac13dfcd1d1",2735:"5a3e65a580bd5af9",2747:"1d85d388314f2904",2765:"2c6d9772af50feed",2783:"e8bbf2c794ef9750",2812:"dcd8179a6b1d76c9",2839:"c9a657d5b4031a19",2895:"0339e755e79ee794",2954:"7d8daeae6410d4a4",2964:"1a0e15f7327680a2",3072:"b6da96c10080c967",3074:"911584369786c26c",3077:"bf82c0c332cc9fec",3082:"159e4ab8f0572597",3095:"8cd478c42cee505a",3111:"1cf85db2faeb20cc",3175:"538ce7aec634bddb",3186:"3665756f8aae3eb7",3194:"5a331fb5e3dc34e9",3229:"5e91f7d0b135266b",3274:"858f7f9216c8b074",3286:"196c508356bb0b66",3288:"f210cd6796271d4f",3290:"b5ba2646ad49c9fd",3304:"16305e84f4ff6598",3313:"471138e5504646a9",3324:"85e21e3313d0901c",3392:"460f5a753531f501",3419:"78b520dab7e2f96d",3437:"0ad1ecc8c5b8a679",3476:"246c30b47bded3b7",3483:"fc2a0b1185dbaa5d",3492:"ca55498822ad7796",3526:"2d446315a022bc48",3633:"17e30dbc99941b40",3782:"8de9ba0149339c0c",3787:"78ebe68a043f50ce",3860:"be5b243bf7d6618c",3873:"72a9a21509f713f7",3879:"4506d3f72b310564",3942:"085da8d58242eeab",3979:"cea8623f6e9f83ea",4053:"90d71fcbe4ffd852",4080:"08a21dae9e93c547",4163:"c6ebefdd9aa5c358",4174:"b6ff75dd91a2a32e",4223:"c10556cd92fc8018",4242:"3a66c58375424a5b",4275:"8f2e531757c2a813",4295:"6c0f4838b0c9c69d",4309:"a887a10e84c44f9e",4350:"b9d80827e8eee01a",4357:"3fe2cd657f69ff7b",4358:"f89b14cf7a988731",4367:"2610339aa03a9fb3",4370:"ac13b62c811f7ede",4474:"053807fa34066566",4523:"3f277a24fbcfde6d",4539:"559c223da16b0282",4540:"03df20c499bca840",4553:"a16dba8d6d03226c",4567:"7dc81a6e1c7df565",4583:"2a5df6eb3a6ea30b",4593:"676ac488744e1af5",4608:"1ff246d6b4c771f8",4634:"0332a56fdb8e26c0",4650:"61aec912b756287b",4659:"0b14de1cb2041bfd",4678:"867dfae26694be02",4763:"d0d1b1777a45e0b2",4814:"ccb85c56e9216a38",4823:"907850963b2bcb70",4829:"402ec60139d36417",4900:"b723a916eafdf743",4903:"004f583a12223dac",4963:"0f6678151a159143",4969:"1cb10af9489ea295",4976:"8870319ffbd1c31f",5005:"73745d7fcae6989e",5025:"b597364f0cf8b85a",5061:"025d30c3123eeaf6",5136:"ac897c2a56ee392f",5183:"2e5c895a2be76262",5269:"2e771096652dc113",5318:"d48b9096df0171df",5320:"50f81e2e2f74ba52",5331:"4d5d42e5253dbee2",5338:"76f7773c317f3142",5347:"3192e0021174aaa8",5375:"ebc026e6140b52f1",5424:"4d62f7ee887cd8b9",5482:"0907421e6bf5eeec",5491:"5cc285c4b84dac30",5498:"fa0a196807d6cd2f",5518:"6c3dc9afe81a566b",5520:"eab85d7487e77510",5553:"75df19e3cc1246d6",5575:"3d90c643343a1329",5645:"0b86853ae26d9ee3",5670:"2a1b27a6fdb7aa6b",5690:"d30877807cf5c7eb",5712:"574fca2d5f06483a",5728:"8ef773d61765855e",5750:"aa57d25b74640d23",5755:"00015c284ed6fb39",5920:"9db223329ee9e11a",5922:"ce56021f8cc6ebbc",5937:"0827b5b3eb831ff0",5968:"63d5869783fad06f",5997:"226c07d9e6c496e0",6046:"00d36aea7fd5b147",6089:"2dd351186ec85cc3",6099:"43e6595fcf24fc33",6110:"5ce3f75fced27aaf",6144:"f967a8228bcdf663",6155:"e6cf0ef7c818caa9",6166:"ecd82a9dcb484b97",6290:"e14cf4fc52dd4539",6293:"5914fa73a9f7e777",6311:"5b9c1f74df9a8f67",6331:"758f2f66b92cada9",6339:"bc9301cc22898be0",6358:"8c64eb45ea2b4418",6360:"ff0a9063773daeeb",6402:"a0070d7688ed986b",6412:"089ee787a294d10b",6455:"12b78a2660d609eb",6563:"5d618b608750f4dc",6572:"ca2463823b9b01a0",6580:"75d53830b434451f",6588:"0fbca957af7d9e6a",6647:"584c5d5cd8dfdb5a",6666:"a82467c542429379",6686:"796c782c33ab8ca9",6701:"bff0efb979f71a17",6704:"f280f0ad0f5d8644",6729:"77a5381ac8f5c9ae",6741:"06fdaf122961074e",6814:"30ff86a90cbfd921",6846:"91283f709c40802c",6859:"bacad166ee995fe0",6887:"6c81234d73740fb9",6927:"aa3914b5fb0d14d4",6931:"3c90e9fe0f7f1e66",6938:"0ccf683bd8aa8410",6948:"2719ed8731963209",6959:"5a803faf27f88e9f",7021:"b71240b1d5f6fbe4",7040:"0b14de1cb2041bfd",7041:"174bf29bd837f06d",7082:"fc816f91214026d7",7113:"39704408fef3d26e",7130:"8d24694735826c22",7142:"dbd2cf8141eece5e",7152:"c7b7f1f5e9622f21",7182:"b747e3ef1524157a",7227:"a6b2f01487bb3d9d",7258:"6cbe24c3bcb63d1d",7425:"8b47c8e398a12dd8",7442:"097194be4a0e7d55",7455:"71d54397710b923c",7465:"867e8ff655666413",7524:"9528295a19a5837a",7525:"f433aaf1fe40c90a",7557:"bdc743175125b3d8",7562:"8fdc3abdd45c77ab",7610:"b1439345dbcf285d",7625:"ab66bd50d2fb61a4",7635:"166d83de1d29e758",7636:"bf91320a9ff695af",7785:"1402a4110c300764",7799:"40b047a634f96a24",7819:"3c56f48c0dc5ad5d",7844:"2bb29faa262f313e",7846:"c9705c044ab8f87a",7884:"390ae2efbbf230c4",7889:"af3e581842f34c28",7921:"c361f794cc208e06",7977:"80e4daa080a79c39",8113:"907baefc7227cfb8",8132:"74491162f08af899",8192:"5918d83ac6a0e2dc",8243:"1450514f8390977e",8257:"dd8f651f1a43fee2",8288:"9bd1d26060cb00a1",8318:"81c7ac586fcbb728",8406:"955ccfbb4b70b8c3",8430:"b1f802dcffa41626",8432:"bd66ac287c569996",8457:"b61d96d8d30215fc",8496:"046efd6301dd804f",8545:"be0c9eea6aae5971",8555:"ab3ee6358f1d64da",8656:"2ceb4e5ff5df2fca",8670:"90ede75068758e82",8704:"a1003918da6654da",8773:"614f1f4f0f845c5e",8835:"5c7821b201f35593",8848:"1e41678a18f85af6",8947:"31d3d834d8281fd9",8977:"01b9c429327004e9",9005:"33cf91e617920d4f",9006:"11537833945ec4b8",9012:"6ed079104670001d",9015:"c4e40321a6503a1b",9136:"191be42a2fee842c",9178:"48a90097ee3f0b0c",9186:"3af6fcd13ab752fa",9189:"3e9d29bf275ec462",9220:"bc767ebb5adb9f49",9224:"401f9320ee58570b",9240:"d38ddbe94e0bf128",9261:"303cbbe69262a995",9267:"fbfd65ea31e7448c",9294:"a20485f3282321b3",9302:"726b065f2df0323a",9312:"8121a74b2042bff3",9377:"f9db706e76f04afe",9382:"bc0e11ecc88dd62c",9421:"a5c1dbcfbfdd8f52",9448:"2668b3cd408e86de",9466:"3dacf5969d47ba2c",9521:"e1240eb862eb32dc",9547:"7729788fff21926f",9565:"8de0671f99d12abe",9569:"2f36b2b1c2f838d7",9615:"3b62c13af671f714",9617:"d038e8ea9fc93e24",9648:"8235b6fea7087b3a",9666:"a515fa6d89a71f1c",9680:"d5ceac8967e0b6a8",9690:"7773c72f0eff6dec",9841:"422321143547591a",9842:"3b71b65b30d8ef2a",9996:"18b7bca2f0ab222e"})[e]+".js",i.miniCssF=e=>{},i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),c={},i.l=(e,a,f,d)=>{if(c[e])return void c[e].push(a);if(void 0!==f)for(var b,t,r=document.getElementsByTagName("script"),o=0;o<r.length;o++){var n=r[o];if(n.getAttribute("src")==e||n.getAttribute("data-webpack")=="_N_E:"+f){b=n;break}}b||(t=!0,(b=document.createElement("script")).charset="utf-8",b.timeout=120,i.nc&&b.setAttribute("nonce",i.nc),b.setAttribute("data-webpack","_N_E:"+f),b.src=i.tu(e)),c[e]=[a];var u=(a,f)=>{b.onerror=b.onload=null,clearTimeout(l);var d=c[e];if(delete c[e],b.parentNode&&b.parentNode.removeChild(b),d&&d.forEach(e=>e(f)),a)return a(f)},l=setTimeout(u.bind(null,void 0,{type:"timeout",target:b}),12e4);b.onerror=u.bind(null,b.onerror),b.onload=u.bind(null,b.onload),t&&document.head.appendChild(b)},i.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.U=function(e){var a=new URL(e,"x:/"),f={};for(var c in a)f[c]=a[c];for(var c in f.href=e,f.pathname=e.replace(/[?#].*/,""),f.origin=f.protocol="",f.toString=f.toJSON=()=>e,f)Object.defineProperty(this,c,{enumerable:!0,configurable:!0,value:f[c]})},i.U.prototype=URL.prototype,i.tt=()=>(void 0===d&&(d={createScriptURL:e=>e},"u">typeof trustedTypes&&trustedTypes.createPolicy&&(d=trustedTypes.createPolicy("nextjs#bundler",d))),d),i.tu=e=>i.tt().createScriptURL(e),i.p="/_next/",b={8068:0,8225:0,8653:0,3334:0},i.f.j=(e,a)=>{var f=i.o(b,e)?b[e]:void 0;if(0!==f)if(f)a.push(f[2]);else if(/^(8(068|225|653)|3334)$/.test(e))b[e]=0;else{var c=new Promise((a,c)=>f=b[e]=[a,c]);a.push(f[2]=c);var d=i.p+i.u(e),t=Error();i.l(d,a=>{if(i.o(b,e)&&(0!==(f=b[e])&&(b[e]=void 0),f)){var c=a&&("load"===a.type?"missing":a.type),d=a&&a.target&&a.target.src;t.message="Loading chunk "+e+" failed.\n("+c+": "+d+")",t.name="ChunkLoadError",t.type=c,t.request=d,f[1](t)}},"chunk-"+e,e)}},i.O.j=e=>0===b[e],t=(e,a)=>{var f,c,[d,t,r]=a,o=0;if(d.some(e=>0!==b[e])){for(f in t)i.o(t,f)&&(i.m[f]=t[f]);if(r)var n=r(i)}for(e&&e(a);o<d.length;o++)c=d[o],i.o(b,c)&&b[c]&&b[c][0](),b[c]=0;return i.O(n)},(r=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})();